加载中...

Bitcask 是一种日志结构的键值存储模型,由 Basho 公司在 2010 年的论文中提出,作为分布式数据库 Riak 的默认存储引擎。它以极简的设计换取可预测的高性能。
所有写入都追加到活跃数据文件末尾(顺序写),文件写满后关闭并新建;内存中维护一张哈希表(keydir),记录每个键指向其最新值所在的文件、偏移与长度。读取任何键最多一次磁盘寻址;更新与删除同样以追加方式写入(删除写墓碑),旧数据由后台 merge 过程压实回收,并生成 hint 文件加速重启时重建 keydir。
优点:读写延迟低且稳定、崩溃恢复简单、代码量小。缺点:全部键必须放进内存,键数量受内存限制;不支持范围查询(哈希无序);merge 期间有额外 IO。
Bitcask 是"日志追加 + 内存索引"这一存储范式的代表作,《数据密集型应用系统设计》(DDIA)以它作为存储引擎章节的入门例子。

登录 后参与讨论
暂无讨论,来发表第一条评论吧