这一组文章偏“自己动手做一个数据库部件”:从日志、MemTable、SSTable、Bloom Filter、Compaction 到完整引擎,把抽象名词还原成可运行的代码路径。
本页提供统一入口;当前共收录 9 篇正文。
推荐入口
- 【从零写一个 LSM-Tree 存储引擎】Compaction:LSM-Tree 的心脏手术
- 【从零写一个 LSM-Tree 存储引擎】完整引擎 + Rust 重写对比
- 从零写一个 LSM-Tree 存储引擎
- 【从零写一个 LSM-Tree 存储引擎】LSM-Tree 全景:为什么要先写日志再排序
目录
- 【从零写一个 LSM-Tree 存储引擎】Compaction:LSM-Tree 的心脏手术
- 【从零写一个 LSM-Tree 存储引擎】完整引擎 + Rust 重写对比
- 从零写一个 LSM-Tree 存储引擎
- 【从零写一个 LSM-Tree 存储引擎】LSM-Tree 全景:为什么要先写日志再排序
- 【从零写一个 LSM-Tree 存储引擎】SSTable + Bloom Filter:磁盘上的有序表
- 【从零写一个 LSM-Tree 存储引擎】WAL + MemTable:崩溃了也不丢数据
- 数据库 MVCC:快照隔离到底隔离了什么
- 持久化数据结构在数据库中的应用
- SQLite 是怎么做到十亿行每秒的
延伸阅读
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
从零写一个 LSM-Tree 存储引擎
五篇长文,从 LSM-Tree 的设计哲学讲到完整 KV 引擎实现,最后用 Rust 重写并三方 benchmark 对比。每篇含完整 C 代码、架构图、数学推导。
【存储工程】LSM-Tree 工程调优:三种放大的权衡
LSM-Tree 的核心设计是把随机写转换为顺序写,但这个转换不是免费的。写入经过 MemTable 刷盘、再经过多次 Compaction 合并,每一字节的用户数据在磁盘上可能被反复读写数十次。读取一个 key 时,最坏情况下需要逐层搜索,直到命中或遍历全部层级。与此同时,旧版本数据和墓碑标记占用的额外空间,在 Co…
【存储工程】存储引擎概览:堆文件到 LSM-Tree 的演化路径
数据库系统的架构可以划分为两大层:上层的查询处理层负责解析 SQL、生成执行计划、优化查询;下层的存储引擎(Storage Engine)负责把数据持久化到磁盘,并在需要时高效地把数据取回来。查询处理层决定"做什么",存储引擎决定"怎么存、怎么取"。同一个查询处理层可以对接不同的存储引擎——MySQL 的 InnoDB…
【从零写一个 LSM-Tree 存储引擎】Compaction:LSM-Tree 的心脏手术
从零实现 LSM-Tree Compaction:最小堆多路归并迭代器、Level 分层与 Compaction 打分、Tombstone 下推、Version/VersionEdit/MANIFEST 版本管理,以及 Leveled/Size-Tiered/Universal 三种策略的量化对比。从零写一个 LSM-Tree 存储引擎系列第 4 篇。