[控场AI]
概念日志结构合并树 / Log-Structured Merge-Tree

LSM-Tree

由Patrick O'Neil等人于1996年提出的数据结构,将随机写转化为顺序写,通过MemTable内存缓冲和分层Compaction机制降低写放大,广泛用于高写入负载存储引擎如RocksDB、LevelDB

时间轴 (近 90 天)

10月14日

列式存储写入时需要把不同列的值分别落到不同位置,单行插入代价远高于行式存储,因此OLAP系统通常采用批量导入和后台合并(如LSM-Tree的compaction)来摊薄写入成本。

待验证50%
10月8日

主打写入优化的存储引擎通常采用LSM-Tree(日志结构合并树)作为底层数据结构

待验证50%
10月8日

LSM-Tree将随机写入转化为顺序写入,数据先写入内存中的MemTable,达到阈值后批量刷盘,再通过后台Compaction逐层整理

待验证50%
10月8日

LSM-Tree由Patrick O'Neil等人于1996年提出,最初为解决传统B树在高写入负载下的随机IO瓶颈

待验证50%
10月8日

B+树因频繁页分裂,写放大通常在10倍以上;LSM-Tree的写放大通常在3-30倍之间波动

待验证50%
10月8日

写放大与读放大之间存在反向权衡,调低Compaction触发阈值可减小读放大但会提高写放大

待验证50%
10月8日

LSM类引擎在写入上占优,但读取尤其是范围查询可能需要跨多层查找,存在读放大

待验证50%
9月11日

亲手实现简易LSM-Tree存储引擎有助于理解LevelDB、RocksDB和Cassandra的架构设计

待验证50%

全部知识事实 (8)

来源文章