OceanBase V4 中 LSM-Tree 的分层转储机制是怎样的?相比 V3 有什么变化?

OceanBase V4 中 LSM-Tree 的分层转储机制是怎样的?相比 V3 有什么变化?

V4 采用 4 层 LSM-Tree 架构 :MemTable → Mini SSTable(L0) → Minor SSTable(L1) → Major SSTable(L2)。

分层转储流程:

  1. MemTable 冻结后直接 flush 为 Mini SSTable(L0) ,而非 V3 的直接生成 Minor SSTable。
  2. 当 L0 层 Mini SSTable 数量超过阈值(minor_compact_trigger ),触发 Minor Compaction ,将多个 Mini SSTable 合并为 Minor SSTable(L1)。
  3. 当转储次数达到 minor_freeze_times 阈值,触发 Major Compaction ,将增量与基线合并为新的 Major SSTable(L2)。

相比 V3 的变化: V3 为 3 层架构(MemTable + Minor SSTable + Major SSTable),V4 新增 L0 层,将冻结数据先 flush 为 Mini SSTable,通过多层转储减少单次合并的数据量,降低写放大和合并耗时。