OBCP V4.0每日一题
问题
在OceanBase中,关于转储(Minor Compaction)和合并(Major Compaction)的描述,以下哪个是正确的?
A. 转储是租户级别的全局操作,合并是分区级别的操作
B. 转储只包含增量数据,合并会生成新的全量基线数据
C. 转储会减少SSTable的数量,合并不会减少SSTable的数量
D. 转储可以在业务高峰期进行,合并必须在业务低峰期进行
答案
B. 转储只包含增量数据,合并会生成新的全量基线数据
Tips
- 转储是将内存中的MemTable数据转储为磁盘上的Mini SSTable,只包含增量数据,不会与全量基线数据合并。而合并是租户级别的全局操作,会将当前所有增量数据与基线数据合并,生成新的全量基线数据。
- 选项A错误——转储可以在租户级别或分区级别独立触发,合并则是租户级别的全局操作,要求所有分区在统一快照点合并。
- 合并能够有效减少SSTable的数量(因为多个版本合并为一个),而转储只是增加新的SSTable文件,不会减少数量。
- 合并通常需要在业务低峰期执行(如每日合并),因为涉及大量I/O操作;转储则相对轻量,可以更频繁触发。
延伸思考
V4版本将每日合并与统计信息收集拆分开,合并策略更加灵活。理解转储和合并的区别,有助于合理配置租户的内存和磁盘参数,避免MemStore写满触发限速,保障业务平稳运行。