结合 ScheduleFlushes、SwitchMemtable、BackgroundFlush、FlushJob、MemTableList::TryInstallMemtableFlushResults 与 GetDBRecoveryEditForObsoletingMemTables 的源码,梳理 RocksDB 如何把 mutable memtable 切成 immutable、刷成 L0 SST,并推进 MANIFEST 与 WAL 保留边界。
结合 LookupKey、InternalKeyComparator、MemTable::Get、SaveValue、range_del_table_ 与 WriteBatch::InsertInto 的源码,梳理 RocksDB 如何在 memtable 中实现删除、多版本可见性、范围删除覆盖以及 seq_per_batch 语义。
结合 MemTable::Add、MemTable::Get、SkipListRep、InlineSkipList 与 ConcurrentArena 的源码,梳理 RocksDB 如何把带 sequence 的更新编码进内存表,并用跳表与分块分配器组织读写与内存生命周期。