insert_quorum
此设置不适用于 SharedMergeTree,更多信息请参见 SharedMergeTree 一致性。
- 如果
insert_quorum < 2,则仲裁写入被禁用。 - 如果
insert_quorum >= 2,则启用仲裁写入。 - 如果
insert_quorum = 'auto',则使用多数值 (number_of_replicas / 2 + 1) 作为仲裁数量。
insert_quorum_timeout 期间成功将数据写入 insert_quorum 个副本时,INSERT 才会成功。如果由于任何原因,成功写入的副本数未达到 insert_quorum,则此次写入会被视为失败,ClickHouse 会从所有已写入数据的副本中删除该插入块。
当 insert_quorum_parallel 被禁用时,仲裁中的所有副本都保持一致,也就是说,它们包含此前所有 INSERT 查询的数据 (INSERT 序列是线性化的) 。读取通过 insert_quorum 写入的数据时,如果 insert_quorum_parallel 被禁用,可以通过 select_sequential_consistency 为 SELECT 查询启用顺序一致性。
ClickHouse 会生成异常:
- 如果查询时可用副本的数量少于
insert_quorum。 - 当
insert_quorum_parallel被禁用,并且在前一个块尚未写入insert_quorum个副本之前又尝试写入数据时。这种情况可能发生在前一个带有insert_quorum的INSERT尚未完成时,用户又尝试对同一个表执行另一条INSERT查询。
insert_quorum_parallel
此设置不适用于 SharedMergeTree,更多信息请参见 SharedMergeTree 一致性。
INSERT 查询的并行执行。如果启用,则在之前的查询尚未完成时,仍可发送额外的 INSERT 查询。如果禁用,则会拒绝对同一表的额外写入。
可能的值:
- 0 — 禁用。
- 1 — 启用。