转储最常用的控制参数是 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 用户指南》文档中合并管理 > 修改合并配置章节的内容。