求教一个生产相关问题:
OceanBase 中 Mini 转储、Minor 合并、Major 合并分别的触发条件是什么?线上业务环境,一般如何调优,降低合并动作对业务读写的影响,麻烦大佬指点一二。
1. Mini Compaction(Mini转储)
触发条件: MemTable内存使用量达到 memstore_limit_percentage × freeze_trigger_percentage 时自动触发
- V4.x默认
freeze_trigger_percentage=20%(V3是70%) - 手动触发:
ALTER SYSTEM MINOR FREEZE
2. Minor Compaction(Minor合并)
触发条件: L0层Mini SSTable个数超过 minor_compact_trigger(默认2)时自动触发
- 不能手动触发,完全由系统调度
- 作用:减少SSTable个数,回收多版本数据
3. Major Compaction(Major合并)
触发条件:
-
定时触发:
major_freeze_duty_time(默认02:00) -
自动触发:转储次数达到
major_compact_trigger(V4.x默认0=不自动触发) -
手动触发:
ALTER SYSTEM MAJOR FREEZE - 自适应合并:V4.2新特性,Buffer表墓碑记录达阈值时自动触发