2014年6月30日

leveldb源码分析--BloomFilter

摘要: bloomfilter是leveldb中的一大性能利器,所以为了文章的表现完整性这里新启这么一篇文章。leveldb中的bloomfilter的实现在bloom.cc中,是一个较为简单的实现,所以就不再具体进行分析。本文列出两个参考地址:那些优雅的数据结构(1) : BloomFilter——大规模... 阅读全文

posted @ 2014-06-30 16:35 tgates 阅读(718) 评论(0) 推荐(0) 编辑

leveldb源码分析--SSTable之block

摘要: 在SSTable中主要存储数据的地方是data block,block_builder就是这个专门进行block的组织的地方,我们来详细看看其中的内容,其主要有Add,Finish和CurrentSizeEstimate三个函数。Finish的逻辑十分简单就是简单的将restart点信息和resta... 阅读全文

posted @ 2014-06-30 16:15 tgates 阅读(1371) 评论(0) 推荐(0) 编辑

leveldb源码分析--SSTable之TableBuilder

摘要: 上一篇文章讲述了SSTable的格式以后,本文结合源码解析SSTable是如何生成的。void TableBuilder::Add(const Slice& key, const Slice& value) {//如果已经插入过数据,那么要保证当前插入的key > 之前最后一次插入的key,// S... 阅读全文

posted @ 2014-06-30 15:54 tgates 阅读(1710) 评论(0) 推荐(0) 编辑

leveldb源码分析--SSTable之逻辑结构

摘要: SSTable是leveldb 的核心模块,这也是其称为leveldb的原因,leveldb正是通过将数据分为不同level的数据分为对应的不同的数据文件存储到磁盘之中的。为了理解其机制,我们首先看看SSTable中的基本概念。首先看看数据的整体存储结构:可以从图中看到了几个概念:Datablock... 阅读全文

posted @ 2014-06-30 15:45 tgates 阅读(2013) 评论(0) 推荐(0) 编辑

导航