Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

insert_quorum_* 会话设置

这些设置可在 system.settings 中查看,并由 源代码 自动生成。

insert_quorum

类型
UInt64Auto
默认值
0

启用仲裁写入。

  • 如果 insert_quorum < 2,则仲裁写入被禁用。
  • 如果 insert_quorum >= 2,则启用仲裁写入。
  • 如果 insert_quorum = 'auto',则使用多数值 (number_of_replicas / 2 + 1) 作为仲裁数量。

仲裁写入

仅当 ClickHouse 在 insert_quorum_timeout 期间成功将数据写入 insert_quorum 个副本时,INSERT 才会成功。如果由于任何原因,成功写入的副本数未达到 insert_quorum,则此次写入会被视为失败,ClickHouse 会从所有已写入数据的副本中删除该插入块。

insert_quorum_parallel 被禁用时,仲裁中的所有副本都保持一致,也就是说,它们包含此前所有 INSERT 查询的数据 (INSERT 序列是线性化的) 。读取通过 insert_quorum 写入的数据时,如果 insert_quorum_parallel 被禁用,可以通过 select_sequential_consistencySELECT 查询启用顺序一致性。

ClickHouse 会生成异常:

  • 如果查询时可用副本的数量少于 insert_quorum
  • insert_quorum_parallel 被禁用,并且在前一个块尚未写入 insert_quorum 个副本之前又尝试写入数据时。这种情况可能发生在前一个带有 insert_quorumINSERT 尚未完成时,用户又尝试对同一个表执行另一条 INSERT 查询。

另请参见:

insert_quorum_parallel

类型
Bool
默认值
1
版本历史
版本默认值注释
21.11默认启用并行仲裁插入。与顺序仲裁插入相比,这种方式方便得多

启用或禁用仲裁 INSERT 查询的并行执行。如果启用,则在之前的查询尚未完成时,仍可发送额外的 INSERT 查询。如果禁用,则会拒绝对同一表的额外写入。

可能的值:

  • 0 — 禁用。
  • 1 — 启用。

另请参见:

insert_quorum_timeout

类型
Milliseconds
默认值
600000

以毫秒为单位的仲裁写入超时时间。如果超时时间已到且仍未完成写入,ClickHouse 将抛出异常,客户端必须重试该查询,将同一个块写入同一副本或其他任意副本。

另请参见:

Navigation