最近的文章

RocksDB 学习笔记 Day 012:MANIFEST、VersionEdit 与 VersionSet
·12919 字·26 分钟
从 CURRENT 指向 MANIFEST、VersionEdit 增量记录、VersionBuilder/VersionEditHandler 的应用与回放、以及 VersionSet::LogAndApply/Recover 的主链出发,讲清 RocksDB 如何持久化 SST 元数据、切换 current Version,并在 DB 打开时恢复回来。

RocksDB 学习笔记 Day 011:磁盘 I/O、TableReader 与 Block 读取
·9242 字·19 分钟
从 FileSystem/Env 文件抽象、TableCache、TableReader、BlockBasedTableReader、BlockFetcher、RandomAccessFileReader 和 ReadOptions 出发,梳理 RocksDB 点查 SST 时如何从逻辑查找落到物理 block 读取,并区分 table cache、block cache、prefetch buffer 与 OS page cache 的职责边界。

RocksDB 学习笔记 Day 010:Snapshot / Sequence Number / 可见性语义
从 WriteBatch sequence 分配、SnapshotImpl、DBImpl::GetImpl、LookupKey、GetContext、DBIter 和 ReadCallback 源码出发,梳理 RocksDB 如何用 sequence number 表达版本顺序,用 snapshot 固定读可见性上界,并在 Get 与 Iterator 路径中过滤不可见版本。




