转储最常用的控制参数是 minor_freeze_times ,该参数控制在转储多少次后自动转化为合并。如果该参数设置为 0,则表示关闭转储功能,每次租户 Memtable 内存的使用达到阈值不会触发转储而是直接进行合并。通常根据具体的业务需求来进行配置。

    配置项

    含义

    默认值

    设定范围

    minor_compact_trigger

    触发转储的 sstable 的个数阈值

    2

    [0, 16]

    minor_freeze_times

    转储多少次后触发合并

    0

    [0, 65535]

    minor_merge_concurrency

    并行转储线程数或并行度,为 0 表示只有一个线程数

    0

    [0,64]

    minor_deferred_gc_time

    合并之后 sstable 延迟回收的时间间隔

    0s

    [0s, 24h]

    minor_warm_up_duration_time

    转储后的预热时间

    30s

    [0s, 60m]

    freeze_trigger_percentage

    租户 Memstore 占用内存的比例阈值,达到该值则触发 Freeze

    70

    [1, 99]

    memstore_limit_percentage

    租户 Memstore 占租户总内存的百分比

    50

    [1, 99]

    说明

    参数 minor_freeze_times 的增长依赖 Memtable 内存达到设定阈值而触发的转储,而手动运行的转储命令不会进行计数。因此,无论手动转储多少次,都不会记录 minor_freeze_times。例如,minor_freeze_times 的值为 3 时,手动执行 3 次 ALTER SYSTEM MINOR FREEZE 后,当 Memtable 内存使用达到阈值后,并不会触发合并,因为之前的手动转储不做计数。

    此外, OCP 从 V2.4.x 版本开始已支持触发转储的 sstable 数量阈值、触发合并的转储次数、转储线程数以及转储水位百分比的设置,具体操作请参见对应版本的《OCP 用户指南》文档中合并管理 > 修改合并配置章节的内容。