和我一起学习leveldb [8 table]
时间过得真快,距离上一篇完成日已经有点时日了,光阴如白驹过隙,一晃就到了2015年的开春,在这春光明媚、冰河解冻、万物复苏的时节,我也结束了自己的蛰伏季,重新拾起“笔”,开始对本系列博文的耕作。
#[表结构]
年前结束了对port和util目录的分析,接下来我们开始分析table目录,通过对table目录下的源代码的学习,我们可以得知leveldb的表文件在内存和磁盘中的数据结构。按照前面的写作惯例,我们还是先来查看一下这个目录下的代码结构(不含测试代码):
table
|
+--block.h // block在内存中的数据结构
+--block.cc
|
+--block_builder.h //
+--block_builder.cc
|
+--filter_block.h
+--filter_block.cc
|
+--format.h
+--format.cc
|
+--iterator.cc
+--iterator_wrapper.h
|
+--merger.h
+--merger.cc
|
+--table.cc
+--table_builder.cc
|
+--two_level_iterator.h
+--two_level_iterator.cc