编程语言
首页 > 编程语言> > leveldb源码分析(一)概述

leveldb源码分析(一)概述

作者:互联网

leveldb是key-value模式数据库,出自Jeff Dean和Sanjay Ghemawat之手,适用于顺序读写场景。各大厂均有以leveldb为积木搭建的成熟数据库产品,如google的bigtable,baidu的tera等,在工程实践上取得了广泛成功。leveldb以其良好的编程风格和设计理念为人称道,阅读leveldb源码对提升自己的编程能力大有裨益。

leveldb源码地址

https://github.com/google/leveldb

leveldb源码目录结构

db/

table/

util/

include/leveldb/

doc/

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