goleveldb 是 Leveldb 的 go 版本实现,基本实现了 LSM Tree 所有的功能,非常具有学习意义。
本仓库是拉出来写注释的,记录最详细的学习过程。LSM Tree
这几个 Python 脚本是奇伢深入理解 LSM Tree 的数据结构之后,用 Python 写的解析规则,能够解析 leveldb 和 rocksdb 的 manifest 文件和 sst 文件,并且是兼容的。理解它们能让你更加深入了解 LSM 的设计。
截图如下:
manifest 的 journal 结构:
sst 的增删日志:
当前在用的 sst 文件:
sst 文件的 block 信息: