leveldb源码分析(一)概述
作者:互联网
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文件相关实现
文件格式:db/log_format.h
读文件:db/log_reader.h db/log_reader.cc
写文件:db/log_writer.h db/log_writer.cc
3、memtable相关实现
db/memtable.h db/memtable.cc
4、sorted string table相关实现
table/目录下代码,包含:
sst文件构建:block_builder.h block_builder.cc block.h block.cc
过滤块构建:flilter_block.h filter_blok.cc
迭代器:iterator_wrapper.h iterator.cc two_level_iterator.h two_level_iterator.cc
5、db核心实现
db/目录下代码,包含:
builder.h builder.cc
db格式:dbformat.h dbformat.cc
db实现:db_impl.h db_impl.cc
db遍历:db_iter.h db_iter.cc
table缓存:table_cache.h table_cache.cc
版本管理:vesion_edit.h version_edit.cc version_set.h version_set.cc
合并写:write_batch_internal.h write_batch.cc
标签:leveldb,log,cc,db,源码,概述,table 来源: https://blog.csdn.net/kdb_viewer/article/details/115866452