关于 OceanBase 的 LSM-Tree 存储引擎,以下描述错误的是?


A. OceanBase 使用 LSM-Tree 架构,数据先写入内存中的 MemTable,达到阈值后转储为 SSTable 存储在磁盘上。

B. LSM-Tree 架构通过将随机写入转换为顺序写入,显著提升了写入性能。

C. OceanBase 的 LSM-Tree 引擎在读取数据时,需要合并内存中的 MemTable 和磁盘上的多个 SSTable,可能导致读放大。

D. LSM-Tree 引擎中的数据一旦写入 SSTable 后就不再修改,因此更新操作是直接在原数据位置覆盖写入。

2 个赞

解析
LSM-Tree 引擎的核心设计之一是 “追加写”和“异地更新” 。数据写入 SSTable 后确实不再修改(只读),但更新操作并非覆盖原位置,而是写入新的数据版本 (追加到新的 SSTable 中),旧版本数据保留在原有的 SSTable 中,直到合并(Major Compaction)时才会清理过期版本。这种设计将随机写转换为顺序写,提升了写入性能,但会产生多版本数据。

  • A 正确 :MemTable → 转储 → SSTable 是 LSM-Tree 的标准流程。
  • B 正确 :顺序写入是 LSM-Tree 提升写入性能的核心优势。
  • C 正确 :读取时需要合并 MemTable 和多个 SSTable,确实存在读放大。
  • D 错误 :更新不会覆盖原数据,而是追加新的版本。
4 个赞

正确答案:D

4 个赞

支持一下

5 个赞

选D

1 个赞