【多选题】OceanBase MemTable 相关描述正确的有?

【多选题】OceanBase MemTable 相关描述正确的有?
A. 存储近期增量修改数据
B. 内存写满后触发 Minor Freeze
C. Freeze 后 MemTable 转化为 SSTable 直接落盘
D. 支持多版本实现快照读

A、B、D

  • A. 存储近期增量修改数据(正确)
    OceanBase 采用 LSM-Tree 存储架构,将数据分为基线数据(SSTable)和增量数据(MemTable)。所有的 DML 操作(如 Insert、Update、Delete)都会首先写入内存中的 MemTable,因此它确实存储的是近期的增量修改数据。

  • B. 内存写满后触发 Minor Freeze(正确)
    当 MemTable 的内存使用量达到设定的阈值(由参数 freeze_trigger_percentage 控制)时,系统会自动触发 Minor Freeze(小冻结),将当前的 Active MemTable 冻结,并创建一个新的 MemTable 来接收后续的写入请求。

  • C. Freeze 后 MemTable 转化为 SSTable 直接落盘(错误)
    这个描述不够准确。MemTable 被冻结后,会生成一个 Frozen MemTable,随后系统会启动转储(Minor Compaction) 任务,将 Frozen MemTable 中的数据持久化到磁盘上生成 Mini SSTable。这个过程并不是“直接”落盘,而是需要经过转储(Compaction)的处理。

  • D. 支持多版本实现快照读(正确)
    OceanBase 实现了多版本并发控制(MVCC)。在 MemTable 中,数据的多个版本会通过链表结构进行管理,每个版本都带有版本号(如 SCN)和事务 ID。这使得数据库能够支持快照读(Snapshot Read),即事务可以读取到某个特定时间点的一致性数据视图。