- 博客(6)
- 资源 (6)
- 收藏
- 关注
原创 Leveldb源码分析--11
7 TableCache这章的内容比较简单,篇幅也不长。7.1 TableCache简介TableCache缓存的是Table对象,每个DB一个,它内部使用一个LRUCache缓存所有的table对象,实际上其内容是文件编号{file number, TableAndFile*}。TableAndFile是一个拥有2个变量的结构体:RandomAccessFile*和Table*;TableCac
2013-03-30 18:50:33 8201
原创 Leveldb源码分析--10
6 SSTable之46.6 遍历Table6.6.1 遍历接口Table导出了一个返回Iterator的接口,通过Iterator对象,调用者就可以遍历Table的内容,它简单的返回了一个TwoLevelIterator对象。见函数实现:Iterator* NewIterator(const ReadOptions&options) const;{ return NewTwoLevel
2013-03-23 09:28:33 8555
原创 Leveldb源码分析--9
6 SSTable之36.5 读取sstable文件6.5.1 类层次Sstable文件的读取逻辑在类Table中,其中涉及到的类还是比较多的,如图6.5-1所示。图6.5-1Table类导出的函数只有3个,先从这三个导出函数开始分析。其中涉及到的类(包括上图中为画出的)都会一一遇到,然后再一一拆解。本节分析sstable的打开逻辑,后面
2013-03-16 18:21:44 9171
原创 Leveldb源码分析--8
6 SSTable之26.4 创建sstable文件了解了sstable文件的存储格式,以及Data Block的组织,下面就可以分析如何创建sstable文件了。相关代码在table_builder.h/.cc以及block_builder.h/.cc(构建Block)中。6.4.1 TableBuilder类构建sstable文件的类是TableBuil
2013-03-09 11:48:36 10099 2
原创 Leveldb源码分析--7
6 SSTable之1SSTable是Leveldb的核心之一,是表数据最终在磁盘上的物理存储。也是体量比较大的模块。6.1 SSTable的文件组织作者在文档doc/table_format.txt中描述了表的逻辑结构,如图6.1-1所示。逻辑上可分为两大块,数据存储区Data Block,以及各种Meta信息。1)文件中的k/v对是有序存储的,并且被划分到连续排列的
2013-03-06 22:14:52 14657 4
原创 Leveldb源码分析--6
5 操作Log 2 5.3 读日志日志读取显然比写入要复杂,要检查checksum,检查是否有损坏等等,处理各种错误。5.3.1 类层次先来看看读取涉及到的类图,如图5.3-1。Reader主要用到了两个接口,一个是汇报错误的Reporter,另一个是log文件读取类SequentialFile。> Reporter的接口只有一个:void Co
2013-03-01 22:38:22 11009 2
CRC32算法-从bit到table-driven
2010-01-24
Linux Slab分配器分析文档
2009-12-22
GUI版Tail源码-支持Filter功能
2009-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人