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
LRU缓存 util/cache.cc
2、log文件相关实现

leveldb是由Jeff Dean和Sanjay Ghemawat创建的key-value数据库,广泛应用于顺序读写场景,如bigtable和tera。源码阅读顺序包括数据结构(如slice、跳跃表、整型编码和LRU缓存)、log文件、memtable、sorted string table及db核心实现,适合提升编程能力。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



