- 博客(5)
- 资源 (6)
- 收藏
- 关注
原创 Leveldb源码分析--16
10 Version分析之1先来分析leveldb对单版本的sstable文件管理,主要集中在Version类中。前面的10.4节已经说明了Version类的功能和成员,这里分析其函数接口和代码实现。Version不会修改其管理的sstable文件,只有读取操作。10.1 Version接口先来看看Version类的接口函数,接下来再一一分析。 // 追加一系列iterator到 @*ite
2013-04-19 13:46:21 10187
原创 Leveldb源码分析--15
9 LevelDB框架之29.4 版本控制当执行一次compaction后,Leveldb将在当前版本基础上创建一个新版本,当前版本就变成了历史版本。还有,如果你创建了一个Iterator,那么该Iterator所依附的版本将不会被leveldb删除。在leveldb中,Version就代表了一个版本,它包括当前磁盘及内存中的所有文件信息。在所有的version中,只有一个是CURRENT。Ver
2013-04-15 09:29:38 14608
原创 Leveldb源码分析--14
9 LevelDB框架之1到此为止,基本上Leveldb的主要功能组件都已经分析完了,下面就是把它们组合在一起,形成一个高性能的k/v存储系统。这就是leveldb::DB类。这里先看一下LevelDB的导出接口和涉及的类,后面将依次以接口分析的方式展开。而实际上leveldb::DB只是一个接口类,真正的实现和框架类是DBImpl这个类,正是它集合了上面的各种组件。此外,还有Leveldb对版本
2013-04-10 17:55:44 12273
原创 Leveldb源码分析--13
8 FilterPolicy&Bloom之28.5 构建FilterBlock8.5.1 FilterBlockBuilder了解了filter机制,现在来看看filter block的构建,这就是类FilterBlockBuilder。它为指定的table构建所有的filter,结果是一个string字符串,并作为一个block存放在table中。它有三个函数接口: // 开始构建新的filt
2013-04-05 14:12:18 8353 1
原创 Leveldb源码分析--12
8 FilterPolicy&Bloom之18.1 FilterPolicy因名知意,FilterPolicy是用于key过滤的,可以快速的排除不存在的key。前面介绍Table的时候,在Table::InternalGet函数中有过一面之缘。FilterPolicy有3个接口:virtual const char* Name() const = 0; // 返回filter的名字virtual
2013-04-01 12:53:18 9667 2
CRC32算法-从bit到table-driven
2010-01-24
Linux Slab分配器分析文档
2009-12-22
GUI版Tail源码-支持Filter功能
2009-11-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人