Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

max_delay_* MergeTree 表设置

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

max_delay_to_insert

类型
UInt64
默认值
1

以秒为单位的值;如果单个分区中的活跃 parts 数量超过 parts_to_delay_insert 的值, 则使用该值来计算 INSERT 延迟。

可能的值:

  • 任意正整数。

INSERT 的延迟 (以毫秒为单位) 按以下公式计算:

max_k = parts_to_throw_insert - parts_to_delay_insert
k = 1 + parts_count_in_partition - parts_to_delay_insert
delay_milliseconds = pow(max_delay_to_insert * 1000, k / max_k)

例如,如果某个分区有 299 个活跃 parts,并且 parts_to_throw_insert = 300,parts_to_delay_insert = 150,max_delay_to_insert = 1,则 INSERT 将延迟 pow( 1 * 1000, (1 + 299 - 150) / (300 - 150) ) = 1000 毫秒。

从 23.1 版本开始,公式已改为:

allowed_parts_over_threshold = parts_to_throw_insert - parts_to_delay_insert
parts_over_threshold = parts_count_in_partition - parts_to_delay_insert + 1
delay_milliseconds = max(min_delay_to_insert_ms, (max_delay_to_insert * 1000)
* parts_over_threshold / allowed_parts_over_threshold)

例如,如果某个分区有 224 个活跃 parts,且 parts_to_throw_insert = 300,parts_to_delay_insert = 150,max_delay_to_insert = 1, min_delay_to_insert_ms = 10,则 INSERT 会延迟 max( 10, 1 * 1000 * (224 - 150 + 1) / (300 - 150) ) = 500 毫秒。

max_delay_to_mutate_ms

类型
UInt64
默认值
1000

当存在大量未完成的变更时,对 MergeTree 表执行变更的最大延迟 (以毫秒为单位)

Navigation