OceanBase V4 中增量合并的宏块级复用与微块级复用分别是什么?

OceanBase V4 中增量合并的宏块级复用与微块级复用分别是什么?

OceanBase 存储引擎以 2MB 宏块(Macro Block) 为磁盘 IO 基本单位,宏块内部再拆分为多个变长的 微块(Micro Block) 。

  • 宏块级复用 :合并时若某个宏块在增量数据中未被修改,则直接在新基线中引用该宏块,无需重新打开读取和重写,显著减少 IO 和写放大。
  • 微块级复用 :即使宏块被命中,若宏块内部只有部分微块被修改,则仅重写被修改的微块,未修改的微块直接复用,进一步降低合并代价。

两者叠加,使增量合并的工作量仅与"真正被修改的数据量"成比例,是 OceanBase 默认合并算法的核心优化。