暂无图片
Bitcask是怎样的存储引擎?
我来答
分享
2023-02-13
Bitcask是怎样的存储引擎?

Bitcask是怎样的存储引擎?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
语菲

Bitcask是Riak中使用的存储引擎之一,它是一个无序的日志结构存储引擎。它不使用memtable进行缓冲,而是将数据记录直接存储在日志文件中。

为了使值可被搜索,Bitcask使用一种名为keydir(键目录)的数据结构,它保存与键相应的最新数据记录的引用。旧的数据记录可能仍然在磁盘中,但不会被keydir引用,并且它们会在压实过程中被垃圾收集。keydir被实现为内存中的哈希表,并且在启动期间必须从日志文件中重建。

在一次写入中,键和数据记录被顺序地追加到日志文件中,并且会在keydir中放入指向新写入的数据记录位置的指针。

读取时会查看keydir以定位要搜索的键,并跟随指向对应日志文件的指针以定位数据记录。由于在任何给定时刻都只能有一个值与keydir中的键相关联,所以点查询不必合并来自多个数据源的数据。

暂无图片 评论
暂无图片 有用 3
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏