liqingqiya / readcode-goleveldb-master

完整的 LevelDB 学习过程,产出最详细的代码注释。欢迎相互交流学习。关注公众号:奇伢云存储,获取更丰富的分享。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

goleveldb 代码学习

goleveldb 是 Leveldb 的 go 版本实现,基本实现了 LSM Tree 所有的功能,非常具有学习意义

本仓库是拉出来写注释的,记录最详细的学习过程。LSM Tree

源码博客

模块学习

cache

filter

iterator

journal

memdb

opt

storage

table

Python 解析 leveldb/rocksdb

这几个 Python 脚本是奇伢深入理解 LSM Tree 的数据结构之后,用 Python 写的解析规则,能够解析 leveldb 和 rocksdb 的 manifest 文件和 sst 文件,并且是兼容的。理解它们能让你更加深入了解 LSM 的设计。

解析 Manifest 文件:

截图如下:

manifest 的 journal 结构:

sst 的增删日志:

当前在用的 sst 文件:

解析 sst 文件

sst 文件的 block 信息:

About

完整的 LevelDB 学习过程,产出最详细的代码注释。欢迎相互交流学习。关注公众号:奇伢云存储,获取更丰富的分享。

License:BSD 2-Clause "Simplified" License


Languages

Language:Go 95.9%Language:Python 4.1%