mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Merge pull request #17567 from ClickHouse/insert_quorum_parallel-default
Insert quorum parallel by default
This commit is contained in:
commit
0d9519a0a2
@ -166,7 +166,7 @@ class IColumn;
|
||||
\
|
||||
M(UInt64, insert_quorum, 0, "For INSERT queries in the replicated table, wait writing for the specified number of replicas and linearize the addition of the data. 0 - disabled.", 0) \
|
||||
M(Milliseconds, insert_quorum_timeout, 600000, "", 0) \
|
||||
M(Bool, insert_quorum_parallel, false, "For quorum INSERT queries - enable to make parallel inserts without linearizability", 0) \
|
||||
M(Bool, insert_quorum_parallel, true, "For quorum INSERT queries - enable to make parallel inserts without linearizability", 0) \
|
||||
M(UInt64, select_sequential_consistency, 0, "For SELECT queries from the replicated table, throw an exception if the replica does not have a chunk written with the quorum; do not read the parts that have not yet been written with the quorum.", 0) \
|
||||
M(UInt64, table_function_remote_max_addresses, 1000, "The maximum number of different shards and the maximum number of replicas of one shard in the `remote` function.", 0) \
|
||||
M(Milliseconds, read_backoff_min_latency_ms, 1000, "Setting to reduce the number of threads in case of slow reads. Pay attention only to reads that took at least that much time.", 0) \
|
||||
|
@ -5,6 +5,7 @@
|
||||
<max_memory_usage>10000000000</max_memory_usage>
|
||||
<use_uncompressed_cache>0</use_uncompressed_cache>
|
||||
<insert_quorum>2</insert_quorum>
|
||||
<insert_quorum_parallel>0</insert_quorum_parallel>
|
||||
<select_sequential_consistency>1</select_sequential_consistency>
|
||||
</default>
|
||||
</profiles>
|
||||
|
@ -17,7 +17,7 @@ SET select_sequential_consistency=1;
|
||||
SELECT x FROM quorum1 ORDER BY x;
|
||||
SELECT x FROM quorum2 ORDER BY x;
|
||||
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
|
||||
INSERT INTO quorum1 VALUES (4, '1990-11-15');
|
||||
INSERT INTO quorum1 VALUES (5, '1990-11-15');
|
||||
|
@ -6,7 +6,7 @@ DROP TABLE IF EXISTS quorum2;
|
||||
CREATE TABLE quorum1(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum_lost_alive', '1') ORDER BY x PARTITION BY y;
|
||||
CREATE TABLE quorum2(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum_lost_alive', '2') ORDER BY x PARTITION BY y;
|
||||
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
SET select_sequential_consistency=1;
|
||||
|
||||
INSERT INTO quorum1 VALUES (1, '2018-11-15');
|
||||
@ -30,7 +30,7 @@ SET select_sequential_consistency=1;
|
||||
|
||||
SYSTEM START FETCHES quorum1;
|
||||
SYSTEM SYNC REPLICA quorum1;
|
||||
|
||||
|
||||
SELECT x FROM quorum1 ORDER BY x;
|
||||
SELECT x FROM quorum2 ORDER BY x;
|
||||
|
||||
|
@ -6,7 +6,7 @@ DROP TABLE IF EXISTS quorum2;
|
||||
CREATE TABLE quorum1(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum_lost', '1') ORDER BY x PARTITION BY y;
|
||||
CREATE TABLE quorum2(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum_lost', '2') ORDER BY x PARTITION BY y;
|
||||
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
SET select_sequential_consistency=1;
|
||||
|
||||
SET insert_quorum_timeout=0;
|
||||
@ -27,7 +27,7 @@ SET insert_quorum_timeout=100;
|
||||
|
||||
SYSTEM START FETCHES quorum1;
|
||||
SYSTEM SYNC REPLICA quorum1;
|
||||
|
||||
|
||||
SELECT x FROM quorum1 ORDER BY x;
|
||||
SELECT x FROM quorum2 ORDER BY x;
|
||||
|
||||
|
@ -13,7 +13,7 @@ INSERT INTO quorum1 VALUES (3, '2020-12-16');
|
||||
SYSTEM SYNC REPLICA quorum2;
|
||||
|
||||
SET select_sequential_consistency=1;
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
|
||||
SET insert_quorum_timeout=0;
|
||||
|
||||
|
@ -6,7 +6,7 @@ DROP TABLE IF EXISTS quorum2;
|
||||
CREATE TABLE quorum1(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum1', '1') ORDER BY x PARTITION BY y;
|
||||
CREATE TABLE quorum2(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum1', '2') ORDER BY x PARTITION BY y;
|
||||
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
SET select_sequential_consistency=1;
|
||||
|
||||
INSERT INTO quorum1 VALUES (1, '2018-11-15');
|
||||
|
@ -6,7 +6,7 @@ DROP TABLE IF EXISTS quorum2;
|
||||
CREATE TABLE quorum1(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum2', '1') ORDER BY x PARTITION BY y;
|
||||
CREATE TABLE quorum2(x UInt32, y Date) ENGINE ReplicatedMergeTree('/clickhouse/tables/test_00732/quorum2', '2') ORDER BY x PARTITION BY y;
|
||||
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
SET select_sequential_consistency=1;
|
||||
|
||||
INSERT INTO quorum1 VALUES (1, '2018-11-15');
|
||||
|
@ -4,7 +4,7 @@ DROP TABLE IF EXISTS mutations_and_quorum2;
|
||||
CREATE TABLE mutations_and_quorum1 (`server_date` Date, `something` String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test_01090/mutations_and_quorum', '1') PARTITION BY toYYYYMM(server_date) ORDER BY (server_date, something);
|
||||
CREATE TABLE mutations_and_quorum2 (`server_date` Date, `something` String) ENGINE = ReplicatedMergeTree('/clickhouse/tables/test_01090/mutations_and_quorum', '2') PARTITION BY toYYYYMM(server_date) ORDER BY (server_date, something);
|
||||
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
|
||||
INSERT INTO mutations_and_quorum1 VALUES ('2019-01-01', 'test1'), ('2019-02-01', 'test2'), ('2019-03-01', 'test3'), ('2019-04-01', 'test4'), ('2019-05-01', 'test1'), ('2019-06-01', 'test2'), ('2019-07-01', 'test3'), ('2019-08-01', 'test4'), ('2019-09-01', 'test1'), ('2019-10-01', 'test2'), ('2019-11-01', 'test3'), ('2019-12-01', 'test4');
|
||||
|
||||
|
@ -22,7 +22,7 @@ SELECT * FROM replica2;
|
||||
-- drop of empty partition works
|
||||
ALTER TABLE replica2 DROP PARTITION ID 'all';
|
||||
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum = 2, insert_quorum_parallel = 0;
|
||||
|
||||
INSERT INTO replica2 VALUES (1);
|
||||
|
||||
|
@ -17,7 +17,7 @@ done
|
||||
function thread {
|
||||
for x in {0..99}; do
|
||||
while true; do
|
||||
$CLICKHOUSE_CLIENT --insert_quorum 5 --query "INSERT INTO r$1 SELECT $x" 2>&1 | grep -qF 'Quorum for previous write has not been satisfied yet' || break
|
||||
$CLICKHOUSE_CLIENT --insert_quorum 5 --insert_quorum_parallel 0 --query "INSERT INTO r$1 SELECT $x" 2>&1 | grep -qF 'Quorum for previous write has not been satisfied yet' || break
|
||||
done
|
||||
done
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ SYSTEM SYNC REPLICA quorum3;
|
||||
|
||||
SET select_sequential_consistency=0;
|
||||
SET optimize_trivial_count_query=1;
|
||||
SET insert_quorum=2;
|
||||
SET insert_quorum=2, insert_quorum_parallel=0;
|
||||
|
||||
SYSTEM STOP FETCHES quorum1;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user