leveldb代码结构
2015-11-21 20:16
225 查看
leveld代码结构
源文件
$ tree -I "*test*" . ├── AUTHORS ├── build_detect_platform ├── db #具体逻辑 │ ├── builder.cc # 定义了BuildTable函数 │ ├── builder.h │ ├── c.cc # c封装,暂时不用看 │ ├── db_bench.cc │ ├── dbformat.cc # 搞懂几个key的关系即可,internal,lookupkey │ ├── dbformat.h │ ├── db_impl.cc # 具体实现,DBImpl::Write是重中之重 │ ├── db_impl.h │ ├── db_iter.cc │ ├── db_iter.h │ ├── filename.cc # 管理db目录下的个各个文件 │ ├── filename.h # 管理db目录下的个各个文件 │ ├── log_format.h # 物理日志格式定义 │ ├── log_reader.cc # 读物理日志,ReadRecord │ ├── log_reader.h │ ├── log_writer.cc # 日志封装成相应的格式,并写入物理日志 │ ├── log_writer.h │ ├── memtable.cc # memtable定义,对记录进行格式化,并调用skiplist的相应接口 │ ├── memtable.h # │ ├── repair.cc # 啥? │ ├── skiplist.h # skiplist的定义 │ ├── snapshot.h # 成员变量只有SequenceNumber的双链表<http://www.blogjava.net/sandy/archive/2012/03/13/leveldb5.html> │ ├── table_cache.cc # 缓存sst文件,保存sst文件与Table的对应关系, │ ├── table_cache.h # 要想全部搞懂Table,还需要弄清楚format.cc │ ├── version_edit.cc #啥? │ ├── version_edit.h │ ├── version_set.cc │ ├── version_set.h │ ├── write_batch.cc # 批量写操作的实现,WriteBatch::Iterate │ └── write_batch_internal.h # 批量操作辅助文件 ├── doc #帮助文档 │ ├── bench │ │ ├── db_bench_sqlite3.cc │ │ └── db_bench_tree_db.cc │ ├── benchmark.html │ ├── doc.css │ ├── impl.html │ ├── index.html │ ├── log_format.txt │ └── table_format.txt ├── helpers │ └── memenv │ ├── memenv.cc │ └── memenv.h ├── include # 接口 │ └── leveldb │ ├── cache.h │ ├── c.h │ ├── comparator.h │ ├── db.h │ ├── env.h │ ├── filter_policy.h │ ├── iterator.h │ ├── options.h │ ├── slice.h │ ├── status.h │ ├── table_builder.h │ ├── table.h │ └── write_batch.h ├── libleveldb.so.1.4 ├── LICENSE ├── Makefile ├── NEWS ├── port │ ├── atomic_pointer.h # 无锁编程 │ ├── port_android.cc │ ├── port_android.h │ ├── port_example.h │ ├── port.h │ ├── port_posix.cc │ ├── port_posix.h │ ├── README │ └── win │ └── stdint.h ├── README ├── table │ ├── block_builder.cc # 构造block,准备写入 │ ├── block_builder.h # 构造block,准备写入 │ ├── block.cc # 通过ReadBlock读取,通过迭代器读取各个record │ ├── block.h # 读取block。定义了block,和相应的迭代器 │ ├── filter_block.cc # 与block类似,用以处理filter_block │ ├── filter_block.h # 与block类似,用以处理filter_block │ ├── format.cc # 定义了ReadBlock函数[重点] │ ├── format.h # 定义了BlockContent,BlockHandle,Footer │ ├── iterator.cc # 迭代器? │ ├── iterator_wrapper.h # 迭代器? │ ├── merger.cc # 定义了MergingIterator迭代器 │ ├── merger.h │ ├── table_builder.cc # 构造Table,Add()、Flush()、WriteBlock │ ├── table.cc # 定义了操作table的方法,InternalGet │ ├── two_level_iterator.cc # 定义了TwoLevelIterator迭代器 │ └── two_level_iterator.h ├── TODO └── util ├── arena.cc # 内存分配器 ├── arena.h # 内存分配器 ├── bloom.cc # 布隆过滤器 ├── cache.cc # Cache ├── coding.cc ├── coding.h # 编码 ├── comparator.cc # 比较函数 ├── crc32c.cc # crc32校验 ├── crc32c.h # crc32校验 ├── env.cc #日志相关 ├── env_posix.cc # 文件操作封装和线程封装 ├── filter_policy.cc ├── hash.cc # hash函数 ├── hash.h # hash函数 ├── histogram.cc # 测试文件 ├── histogram.h # 测试文件 ├── logging.cc # 日志 ├── logging.h # 日志头文件 ├── mutexlock.h # mutex ├── options.cc # option ├── posix_logger.h # 日志文件 ├── random.h # 随机数生成器 └── status.cc # 错误管理,Status 11 directories, 109 files
相关文章推荐
- JAVA数据库连接-JDBC
- 过滤器与拦截器区别,action通配符配置,struts2数据验证
- 我的Bit路-C语言实现顺序
- C++程序员必须知道的5大内存区域
- while练习*登陆系统*大小写转换*None与“”
- Eclipse自动提示
- Eclipse自动提示
- Java串口编程(开源RxTx实现串口)
- Spring杂记之Bean注入(xml)
- C语言实现顺序表
- python中字符与数字的转换
- Unix环境编程学习笔记-----编程实例---- the fist exit
- KMP-快速模式匹配算法
- Django模型修改及数据迁移
- PHP Mysql数据库
- struts2框架的第一个程序
- Python 编码问题 utf-8 和 unicode
- socket编程基础
- JDK动态代理
- c语言符号常量与常变量的区别?