Commit Graph

361 Commits

Author SHA1 Message Date
Azat Khuzhin
4707dd827a StorageDistributed: cleanup skipping unused shards 2020-03-24 10:58:34 +03:00
Azat Khuzhin
66ccbf5d11 Pass query to the IStorage::getQueryProcessingStage()
Will be used to return correct stage with optimize_skip_unused_shards.
2020-03-24 10:58:16 +03:00
alexey-milovidov
9a2760d914
Merge pull request #9673 from azat/processors-max_distributed_connections
Fix max_distributed_connections
2020-03-24 08:32:15 +03:00
alexey-milovidov
1ee26193f0
Update StorageDistributed.cpp 2020-03-23 20:28:38 +03:00
Azat Khuzhin
b89de69345 Evaluate constant expressions for optimize_skip_unused_shards 2020-03-22 19:30:36 +03:00
Azat Khuzhin
62b60a09a4 Add missing space in StorageDistributed logging (sharding key) 2020-03-20 20:51:37 +03:00
Alexey Milovidov
93466ce097 Added even more clang-tidy checks 2020-03-18 19:51:20 +03:00
Alexey Milovidov
1bd7e594b0 clang-tidy, part 2 2020-03-18 03:57:00 +03:00
Alexander Tokmakov
cf28bfe8a7 Merge branch 'master' into split_databases_from_context 2020-03-12 15:09:41 +03:00
Alexander Tokmakov
c7468d2502 Merge branch 'master' into split_databases_from_context 2020-03-10 13:15:27 +03:00
Alexey Milovidov
6320f59abb clang-tidy, part 11 2020-03-09 04:03:43 +03:00
Alexander Tokmakov
2d5ed7832b remove tryGetTable 2020-03-04 23:29:52 +03:00
Vladimir Chebotarev
2bd6474379 Adding storage policies and disks while reloading configuration. 2020-03-04 15:10:17 +03:00
Alexander Tokmakov
70dc82f9aa add StorageID to ASTInsertQuery 2020-03-02 23:23:58 +03:00
Alexander Tokmakov
a4d12b31a1 Merge branch 'master' into split_databases_from_context 2020-03-02 17:57:54 +03:00
Alexey Milovidov
766ae8261a Added some missing ErrorCodes 2020-02-25 21:02:41 +03:00
Alexey Milovidov
3602126a1e Remove unused ErrorCodes 2020-02-25 17:35:37 +03:00
Alexander Tokmakov
8548089e00 Merge branch 'master' into split_databases_from_context 2020-02-25 15:47:19 +03:00
Alexander Tokmakov
d6205fa4fa Merge branch 'master' into fix_expressions_in_metadata 2020-02-22 03:17:15 +03:00
Alexander Tokmakov
e117e5838e fixes 2020-02-21 16:44:44 +03:00
Alexander Tokmakov
c492ee93d9 fold constant expressions in storage engine arguments 2020-02-20 17:13:43 +03:00
Nikolai Kochetov
a3c4b2e922 Remove readWithProcessors from IStorage. 2020-02-19 19:07:28 +03:00
Nikolai Kochetov
f4d5175a12 Fix build. 2020-02-17 14:26:09 +03:00
Nikolai Kochetov
52a63275ea Merge with master. 2020-02-14 20:47:39 +03:00
Alexander Tokmakov
869e20d207 move databases from Context to DatabaseCatalog 2020-02-10 17:49:44 +03:00
Nikolai Kochetov
0157de021a Processors support for StorageDistributed reading. 2020-01-31 11:54:57 +03:00
Azat Khuzhin
ca8d9ac7f8 Fix error message for force_optimize_skip_unused_shards 2020-01-30 09:01:54 +03:00
alexey-milovidov
2df93a6d21
Merge pull request #8756 from azat/distributed_storage_configuration
Multiple disks/volumes for storing data for send in Distributed engine
2020-01-26 02:19:28 +03:00
Azat Khuzhin
e5a43d2751 Add ability to use multiple disks/volumes for Distributed engine
Now Distributed() has gain the 5-th argument -- policy name (for storing
data to send):

  CREATE TABLE foo (key Int) Engine=Distributed(test_shard_localhost, currentDatabase(), some_table, key%2, 'default');
2020-01-25 20:52:31 +03:00
Azat Khuzhin
6939ffeabf force_optimize_skip_unused_shards setting to throw if skipping is not possible 2020-01-24 21:15:40 +03:00
Alexander Tokmakov
250f170a69 Merge branch 'master' into table_name_in_istorage 2019-12-30 14:08:09 +03:00
Alexander Tokmakov
8987b027ba fixes 2019-12-27 15:18:49 +03:00
alesapin
d341b648d2 Better alter 2019-12-26 21:17:05 +03:00
Alexander Tokmakov
42296cc80a remove separate getTableName() and getDatabaseName() 2019-12-26 21:11:49 +03:00
Alexander Tokmakov
2e5d61cd81 better constructors of storages 2019-12-26 20:04:08 +03:00
Alexander Tokmakov
cf5c998b30 refactor storage name 2019-12-26 19:23:38 +03:00
Alexander Tokmakov
60a47c3453 Merge branch 'master' into relative_paths_in_storages 2019-12-24 19:58:34 +03:00
Alexander Tokmakov
514868cebc use relative paths in IStorage::rename(...) 2019-12-24 16:35:50 +03:00
Alexander Tokmakov
4f58d662f7 make data path relative 2019-12-23 18:20:08 +03:00
Alexander Tokmakov
d1568c1614 fix rename distributed 2019-12-19 22:51:12 +03:00
Azat Khuzhin
81aeff2d2a Add _shard_num virtual column for the Distributed engine
With JOIN from system.clusters one can figure out from which server data
came.

TODO:
- optimization to avoid communicating with unrelated shards (for queries
  like "AND _shard_num = n")
- fix aliases (see tests with serverError expected)

v0: AddingConstColumnBlockInputStream
v2: VirtualColumnUtils::rewriteEntityInAst
v3: fix remote(Distributed) by appending _shard_num only if has been requested
2019-11-06 15:26:12 +03:00
Alexander Kuzmenkov
29052b6a37
Merge pull request #7377 from azat/INSERT-Distributed-MATERIALIZED-cols
* Fix INSERT into Distributed non local node with MATERIALIZED columns

Previous patch e527def18a ("Fix INSERT
into Distributed() table with MATERIALIZED column") fixes it only for
cases when the node is local, i.e. direct insert.

This patch address the problem when the node is not local
(`is_local == false`), by erasing materialized columns on INSERT into
Distributed.

And this patch fixes two cases, depends on `insert_distributed_sync`
setting:

- `insert_distributed_sync=0`

    ```
    Not found column value in block. There are only columns: date. Stack trace:

    2. 0x7ffff7be92e0 DB::Exception::Exception() dbms/src/Common/Exception.h:27
    3. 0x7fffec5d6cf6 DB::Block::getByName(...) dbms/src/Core/Block.cpp:187
    4. 0x7fffec2fe067 DB::NativeBlockInputStream::readImpl() dbms/src/DataStreams/NativeBlockInputStream.cpp:159
    5. 0x7fffec2d223f DB::IBlockInputStream::read() dbms/src/DataStreams/IBlockInputStream.cpp:61
    6. 0x7ffff7c6d40d DB::TCPHandler::receiveData() dbms/programs/server/TCPHandler.cpp:971
    7. 0x7ffff7c6cc1d DB::TCPHandler::receivePacket() dbms/programs/server/TCPHandler.cpp:855
    8. 0x7ffff7c6a1ef DB::TCPHandler::readDataNext(unsigned long const&, int const&) dbms/programs/server/TCPHandler.cpp:406
    9. 0x7ffff7c6a41b DB::TCPHandler::readData(DB::Settings const&) dbms/programs/server/TCPHandler.cpp:437
    10. 0x7ffff7c6a5d9 DB::TCPHandler::processInsertQuery(DB::Settings const&) dbms/programs/server/TCPHandler.cpp:464
    11. 0x7ffff7c687b5 DB::TCPHandler::runImpl() dbms/programs/server/TCPHandler.cpp:257
    ```

- `insert_distributed_sync=1`

    ```
    2019.10.18 13:23:22.114578 [ 44 ] {a78f669f-0b08-4337-abf8-d31e958f6d12} <Error> executeQuery: Code: 171, e.displayText() = DB::Exception: Block structure mismatch in RemoteBlockOutputStream stream: different number of columns:
    date Date UInt16(size = 1), value Date UInt16(size = 1)
    date Date UInt16(size = 0): Insertion status:
    Wrote 1 blocks and 0 rows on shard 0 replica 0, 127.0.0.1:59000 (average 0 ms per block)
    Wrote 0 blocks and 0 rows on shard 1 replica 0, 127.0.0.2:59000 (average 2 ms per block)
     (version 19.16.1.1) (from [::1]:3624) (in query: INSERT INTO distributed_00952 VALUES ), Stack trace:

    2. 0x7ffff7be92e0 DB::Exception::Exception() dbms/src/Common/Exception.h:27
    3. 0x7fffec5da4e9 DB::checkBlockStructure<void>(...)::{...}::operator()(...) const dbms/src/Core/Block.cpp:460
    4. 0x7fffec5da671 void DB::checkBlockStructure<void>(...) dbms/src/Core/Block.cpp:467
    5. 0x7fffec5d8d58 DB::assertBlocksHaveEqualStructure(...) dbms/src/Core/Block.cpp:515
    6. 0x7fffec326630 DB::RemoteBlockOutputStream::write(DB::Block const&) dbms/src/DataStreams/RemoteBlockOutputStream.cpp:68
    7. 0x7fffe98bd154 DB::DistributedBlockOutputStream::runWritingJob(DB::DistributedBlockOutputStream::JobReplica&, DB::Block const&)::{lambda()#1}::operator()() const dbms/src/Storages/Distributed/DistributedBlockOutputStream.cpp:280
    <snip>
    ````

Fixes: #7365
Fixes: #5429
Refs: #6891

* Cover INSERT into Distributed with MATERIALIZED columns and !is_local node

I guess that adding new cluster into server-test.xml is not required,
but it won't harm.

* Update DistributedBlockOutputStream.cpp
2019-10-24 12:35:09 +03:00
Amos Bird
295864e6e0
better scalar query 2019-10-23 21:37:54 +08:00
Azat Khuzhin
260a9fba2b StorageDistributed: Drop extra inclusion of materializeBlock.h 2019-10-18 23:38:33 +03:00
Alexey Milovidov
285d66cee1 Improve table locks (incomplete) 2019-08-27 23:43:08 +03:00
alexey-milovidov
561b173ddc
Merge pull request #6675 from yandex/simplify-shared-ptr-helper
Simplify shared_ptr_helper
2019-08-27 00:36:52 +03:00
Alexey Milovidov
0eec226c9a Simplify shared_ptr_helper 2019-08-26 22:07:29 +03:00
alesapin
cf31187254 Resolve conflicts 2019-08-26 21:08:58 +03:00
alesapin
0d0ebf885f Remove two redundant arguments from alter 2019-08-26 17:50:34 +03:00
Alexey Milovidov
479b4d81f3 Fixed error 2019-08-26 16:46:07 +03:00