Update 与 Delete:为什么旧数据不会立即消失
从新版本、Tombstone、Snapshot 与 Compaction 出发,图解 RocksDB 更新和删除的真实含义,分清逻辑不可见、版本保留、文件淘汰与磁盘空间回收。
TECHNICAL WRITING
把踩过的坑、做过的取舍和正在学习的东西,写成以后还愿意重看的笔记。
从新版本、Tombstone、Snapshot 与 Compaction 出发,图解 RocksDB 更新和删除的真实含义,分清逻辑不可见、版本保留、文件淘汰与磁盘空间回收。
从默认字节序出发,图解复合 Key、Seek、Iterator、Prefix/Range Scan、exclusive upper bound、Cursor 分页与编码陷阱,理解 Key Schema 为什么就是 RocksDB 的查询设计和持久格式契约。
从当前读视图下的最新可见记录出发,图解 Mutable/Immutable MemTable、Version、L0 与 L1+ 文件候选、Bloom Filter、Index/Data Block 和 Block Cache,建立完整的 RocksDB 点查模型。
沿一次 RocksJava Put 的时间顺序,图解 Writer Group、Sequence Number、WAL、Mutable/Immutable MemTable、Flush、L0 SST 与 Write Stall,回答 Put 返回前后数据到底在哪里。
从原地更新与新增记录的差异出发,图解 MemTable、Sorted Run、Merge 与 Compaction,理解 LSM Tree 如何转移前台成本,以及读、写、空间放大的权衡。
从 user:42 的一次写入出发,建立 RocksDB 的完整心智模型,理解 WAL、MemTable、Flush、SST、Compaction、读取、更新与删除之间的关系。
从 AOP 代理边界出发,梳理自调用、异常处理和传播行为如何影响事务是否真正生效。
当热点键失效后,请求如何穿透到数据库,以及如何用互斥、预热和过期策略建立分层防线。