您的位置:首页 > 编程语言

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: