Leveldb源码分析--5

5 操作Log 1 分析完KV在内存中的存储,接下来就是操作日志。所有的写操作都必须先成功的append到操作日志中,然后再更新内存memtable。这样做有两个有点:1可以将随机的写IO变成append,极大的提高写磁盘速度;2防止在节点down机导致内存数据丢失,造成数据丢失,这对系...

2013-02-28 20:56:04

阅读数 10270

评论数 3

Leveldb源码分析--4

4 Memtable之24.6 Comparator弄清楚了key,接下来就要看看key的使用了,先从Comparator开始分析。首先Comparator是一个抽象类,导出了几个接口。其中Name()和Compare()接口都很明了,另外的两个Find xxx接口都有什么功能呢,直接看程序注释:...

2013-02-23 00:24:12

阅读数 12386

评论数 7

Leveldb源码分析--3

4 Memtable之1 Memtable是leveldb很重要的一块,leveldb的核心之一。我们肯定关注KV数据在Memtable中是如何组织的,秘密在Skip list中。 4.1 用途 在Leveldb中,所有内存中的KV数据都存储在Memtable中,物理disk...

2013-02-23 00:06:07

阅读数 16859

评论数 9

Leveldb源码分析--2

3 Int Coding 轻松一刻,前面约定中讲过Leveldb使用了很多VarInt型编码,典型的如后面将涉及到的各种key。其中的编码、解码函数分为VarInt和FixedInt两种。int32和int64操作都是类似的。 3.1 Decode 首先是FixedInt编码,直...

2013-02-06 11:32:46

阅读数 15131

评论数 2

Leveldb源码分析--1

【前言:看了一点oceanbase,没有意志力继续坚持下去了,暂时就此中断,基本上算把master看完了,比较重要的update server和merge server代码却没有细看。中间又陆续研究了hadoop的源码,主要是name node和写入pipeline。主要的目的是想看看name...

2013-02-05 22:58:28

阅读数 50610

评论数 16

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