A-A+
Bitcask简介
Bitcask是由Basho公司搞的一个产品。
技术设计
数据顺序追加到磁盘上的active data file,并在内存中建立hash索引。
active data file文件长到一定程度就切成old data file,新的数据写入新的active data file。
old data files定期merge成一个merged data file,merge过程中同时会生成一个hint file来索引这个merged data file。
data file存放格式
内存keydir
是一个key -> <file_id, value_sz, value_pos, tstamp>的内存hashtable。
merge和hint file
引擎特点
限制
- 索引需要全部放到内存(keydir)中。豆瓣搞的beandb的一个改进是keydir中只存放key的hash code,在key比较大的情况下,可以多处理一些数据。
- 读请求只支持点查,不支持顺序scan接口。
几个优点
- 读写低延迟:读写都只有一次磁盘IO。
- 备份功能可以直接rsync文件。
- rcash-recovery慢。
其他、参考
bason这个公司下面有几个产品,看着很丰富,见 https://riak.com/products/
Tech Report: A Log-Structured Hash Table for Fast Key/Value Data
https://www.douban.com/note/122507891/
https://riak.com/products/