leveldb是key-value模式数据库,出自Jeff Dean和Sanjay Ghemawat之手,适用于顺序读写场景。各大厂均有以leveldb为积木搭建的成熟数据库产品,如google的bigtable,baidu的tera等,在工程实践上取得了广泛成功。leveldb以其良好的编程风格和设计理念为人称道,阅读leveldb源码对提升自己的编程能力大有裨益。
leveldb源码地址
https://github.com/google/leveldb
leveldb源码目录结构
|
table/存放sstable相关实现,sstable即sorted string table,是leveldb的数据文件
db/存放数据库核心操作实现
util/存放公共方法集
include/leveldb/存放头文件
doc/下存放文档,描述诸如sstable文件格式、log文件格式等
leveldb源码阅读顺序
1、数据结构和基础组件
字符串 include/leveldb/slice.h
跳跃表 skiplist.h
整型 util/coding.h util/coding.cc