LSM-Tree的Compaction为何让数据库工程师又爱又恨:从写放大到读放大的三十年权衡

2018年,某互联网公司的一条生产事故报告引发了广泛关注:他们的RocksDB实例在写入量激增时突然"卡死",应用层请求超时雪崩。排查日志后发现,罪魁祸首是Write Stall——RocksDB的内部保护机制在L0层文件过多时主动暂停写入。这不是孤例。在LSM-Tree架构的数据库中,Compaction(合并压缩)机制既是性能的守护者,也可能成为故障的导火索。 ...

12 min · 5976 words

B+树与LSM-tree:为什么数据库存储引擎没有万能方案

1970年7月,波音研究实验室的 Rudolf Bayer 和 Edward McCreight 首次流传了一篇题为"Organization and Maintenance of Large Ordered Indices"的论文,两年后正式发表在 Acta Informatica 期刊。他们发明的 B-tree 在此后五十年里统治了数据库存储引擎的设计。 ...

9 min · 4508 words