【单选题】关于 OceanBase 的存储引擎,以下哪项描述是正确的?

【单选题】关于 OceanBase 的存储引擎,以下哪项描述是正确的?

A. OceanBase 是基于 LSM-Tree (Log-Structured Merge Tree) 架构的,数据主要存储在内存的 MemTable 中,定期转储到磁盘的 SSTable。
B. OceanBase 使用传统的 B+Tree 作为主键索引结构,所有数据都常驻内存以获得高性能。
C. OceanBase 的 Minor Compaction 是将多个 Major SSTable 合并为一个更大的 SSTable。
D. OceanBase 的数据存储不支持压缩,以保证查询性能。

2 个赞

正确答案是 A. OceanBase 是基于 LSM-Tree (Log-Structured Merge Tree) 架构的,数据主要存储在内存的 MemTable 中,定期转储到磁盘的 SSTable。

解析:

  • A 选项正确 :OceanBase 的存储引擎正是基于 LSM-Tree 架构设计的。它将数据分为内存中的动态增量数据(MemTable)和磁盘上的静态基线数据(SSTable)。当内存中的 MemTable 达到一定阈值时,会将其冻结并转储(Dump)到磁盘上生成 SSTable46。
  • B 选项错误 :OceanBase 并非所有数据都常驻内存,而是“磁盘为主、内存加速”的架构。此外,虽然其 MemTable 采用了 B+Tree 结构来组织数据,但磁盘上的 SSTable 使用的是宏块/微块结构,并非传统的 B+Tree 主键索引结构24。
  • C 选项错误 :Minor Compaction(小合并/转储)是将 L0 层的多个 Mini SSTable 归并成一个 Minor SSTable(L1层)的过程,而不是将多个 Major SSTable 合并3。将增量数据与基线数据(Major SSTable)归并的操作称为 Major Compaction(大合并)13。
  • D 选项错误 :OceanBase 高度支持数据压缩。在数据合并(Major Compaction)期间,系统会对数据进行两层压缩(基于语义的编码压缩和通用压缩算法如 lz4、zstd 等),这不仅极大地节省了存储空间,还能提升查询性能13。