ClickHouse/src/Client
Aleksei Semiglazov 921518db0a CLICKHOUSE-606: query deduplication based on parts' UUID
* add the query data deduplication excluding duplicated parts in MergeTree family engines.

query deduplication is based on parts' UUID which should be enabled first with merge_tree setting
assign_part_uuids=1

allow_experimental_query_deduplication setting is to enable part deduplication, default ot false.

data part UUID is a mechanism of giving a data part a unique identifier.
Having UUID and deduplication mechanism provides a potential of moving parts
between shards preserving data consistency on a read path:
duplicated UUIDs will cause root executor to retry query against on of the replica explicitly
asking to exclude encountered duplicated fingerprints during a distributed query execution.

NOTE: this implementation don't provide any knobs to lock part and hence its UUID. Any mutations/merge will
update part's UUID.

* add _part_uuid virtual column, allowing to use UUIDs in predicates.

Signed-off-by: Aleksei Semiglazov <asemiglazov@cloudflare.com>

address comments
2021-02-02 16:53:39 +00:00
..
tests Update test 2021-01-31 10:48:18 +03:00
CMakeLists.txt dbms/ → src/ 2020-04-03 18:14:31 +03:00
Connection.cpp CLICKHOUSE-606: query deduplication based on parts' UUID 2021-02-02 16:53:39 +00:00
Connection.h CLICKHOUSE-606: query deduplication based on parts' UUID 2021-02-02 16:53:39 +00:00
ConnectionPool.h More forward declaration for generic headers 2020-12-12 17:43:10 +03:00
ConnectionPoolWithFailover.cpp More forward declaration for generic headers 2020-12-12 17:43:10 +03:00
ConnectionPoolWithFailover.h First attempt to fix data race in ConnectionPoolWithFailover::getStatus() 2020-08-20 23:25:38 +03:00
MultiplexedConnections.cpp CLICKHOUSE-606: query deduplication based on parts' UUID 2021-02-02 16:53:39 +00:00
MultiplexedConnections.h CLICKHOUSE-606: query deduplication based on parts' UUID 2021-02-02 16:53:39 +00:00
TimeoutSetter.cpp Fix half of typos 2020-08-08 03:47:03 +03:00
TimeoutSetter.h dbms/ → src/ 2020-04-03 18:14:31 +03:00
ya.make Follow Arcadia ya.make rules 2020-11-17 00:16:50 +03:00
ya.make.in Follow Arcadia ya.make rules 2020-11-16 21:24:58 +03:00