leveldb代码结构

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

你可能感兴趣的:(leveldb代码结构)