OceanBase 每日合并(Major Compaction)的主要目的?(多选)
A. 保留多版本数据
B. 回收磁盘空间,清理过期版本
C. 合并 SSTable,提升查询性能
D. 生成稳定快照,用于备份
正确选项:B、C、D。
A 不选:保留多版本数据不是每日合并的目的。OceanBase 的多版本主要由 MemTable 中的 MVCC 链表维护,合并时反而会把同一主键的旧版本、已删除的墓碑记录清理掉。
B 选:合并会删除失效的多版本数据和墓碑记录,回收磁盘空间,清理过期版本。
C 选:合并将基线 SSTable 与所有增量 SSTable 归并为新的 Major SSTable,减少读路径上的层数,降低读放大,提升查询性能。
D 选:合并会选取一个全局统一快照点,租户内所有分区基于该快照点生成一致的基线数据,这个稳定快照天然可用于备份和一致性校验。
记忆点:每日合并 = 整合增量 + 清理版本 + 压缩空间 + 生成一致快照。