预览 LSM 与嵌入式存储引擎专题,说明为什么 B+Tree/page update 之外还需要 WAL、memtable、SST 与 compaction 这条路线,并为后续 RocksDB、BadgerDB、Pebble 的系统文章建立 storage-first 比较框架。
从 VersionStorageInfo 的 compaction score、ColumnFamilyData 的 picker、DBImpl 的后台调度、CompactionJob 的输出 SST 构建、以及 VersionEdit/LogAndApply 的提交链路出发,建立 RocksDB compaction 的基础机制与主流程。
先用更清晰的概念分层讲清 DB、CF、MemTable、WAL、SuperVersion、VersionSet、MANIFEST 分别负责什么,再从 DBImpl、ColumnFamilyData、SuperVersion、MemTable、VersionSet 的源码关系出发,建立 RocksDB 的整体架构与 LSM-Tree 心智模型。