首页 > 其他 > 详细

bitcask

时间:2015-08-06 21:53:46      阅读:189      评论:0      收藏:0      [点我收藏+]

Bitcask模型是一种日志型kv模型。所谓日志型,是指它不直接支持随机写入,而是像日志一样支持追加操作。Bitcask模型将随机写入转化为顺序写入。

任意时刻,系统中只有一个数据文件支持写入,称为active data file。其余的数据文件都是只读文件,称为older data file。即所有写操作都是对最后更新文件的一个追加。

 

除了增加外,删除和更新也全部不随机读写已有文件。删除只是增加一个带删除标志的记录,随后更新索引hash;而更新也是一样。

 

 

 

技术分享

 

文件中的数据结构非常简单,是一条一条的数据写入操作,每一条数据的结构如下:

技术分享

上面数据项分别为:后面几项的crc校验值,时间戳,key,value,key的大小,value的大小。
而数据文件存储的就是连续一条条上面格式的数据,如下图:

技术分享

kv之间的映射是通过中间的一个hash结构来处理,包含:记录文件的编号,value长度,value的在文件中的位置和时间戳。

Bitcask的总体数据结构如下图:

 

技术分享

 

总体的流程如下:

技术分享

 

为加速重启时建立hash表结构的速度,额外引入了hintfile,它将真实数据内容换成偏移。这样在建立hash时就不需要读数据文件了。

技术分享

 

bitcask

原文:http://www.cnblogs.com/qqmomery/p/4709156.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!