Leveldb源码分析--11

7 TableCache这章的内容比较简单,篇幅也不长。7.1 TableCache简介TableCache缓存的是Table对象,每个DB一个,它内部使用一个LRUCache缓存所有的table对象,实际上其内容是文件编号{file number, TableAndFile*}。TableAnd...

2013-03-30 18:50:33

阅读数 7324

评论数 0

Leveldb源码分析--10

6 SSTable之46.6 遍历Table6.6.1 遍历接口Table导出了一个返回Iterator的接口,通过Iterator对象,调用者就可以遍历Table的内容,它简单的返回了一个TwoLevelIterator对象。见函数实现:Iterator* NewIterator(const R...

2013-03-23 09:28:33

阅读数 7771

评论数 0

Leveldb源码分析--9

6 SSTable之3 6.5 读取sstable文件 6.5.1 类层次 Sstable文件的读取逻辑在类Table中,其中涉及到的类还是比较多的,如图6.5-1所示。 图6.5-1 Table类导出的函数只有3个,先从这三个导出函数开始分析。其中涉...

2013-03-16 18:21:44

阅读数 8168

评论数 0

Leveldb源码分析--8

6 SSTable之2 6.4 创建sstable文件 了解了sstable文件的存储格式,以及Data Block的组织,下面就可以分析如何创建sstable文件了。相关代码在table_builder.h/.cc以及block_builder.h/.cc(构建Block)中...

2013-03-09 11:48:36

阅读数 8863

评论数 2

Leveldb源码分析--7

6 SSTable之1 SSTable是Leveldb的核心之一,是表数据最终在磁盘上的物理存储。也是体量比较大的模块。 6.1 SSTable的文件组织 作者在文档doc/table_format.txt中描述了表的逻辑结构,如图6.1-1所示。逻辑上可分为两大块,数据存储区D...

2013-03-06 22:14:52

阅读数 12161

评论数 4

Leveldb源码分析--6

5 操作Log 2   5.3 读日志 日志读取显然比写入要复杂,要检查checksum,检查是否有损坏等等,处理各种错误。 5.3.1 类层次 先来看看读取涉及到的类图,如图5.3-1。 Reader主要用到了两个接口,一个是汇报错误的Reporter,另一个...

2013-03-01 22:38:22

阅读数 9746

评论数 2

提示
确定要删除当前文章?
取消 删除
关闭
关闭