Filedb: Disk Based Key-Value Store Inspired by Bitcask
a year ago
- #Zig
- #database
- #Bitcask
- FileDB是受Riak1论文启发的Bitcask的Zig语言实现
- 它采用日志结构哈希表存储记录元数据,并保持一个磁盘文件始终处于追加写入状态
- 在重启或达到MAX_FILE_REACHED时进行文件轮转,旧文件转为只读模式
- 定期执行压缩操作合并磁盘文件并更新元数据哈希表
- 同步进程按配置间隔或每次请求时同步打开的磁盘文件
- 元数据通过精确记录文件位置实现O(1)复杂度检索
- 内存中的元数据体积恒定,与记录值大小无关
- 仅追加(append-only)模式保障高吞吐量
- 提供初始化/销毁/存储/获取/删除/列表/同步/哈希表存储/键目录加载等功能
- 包含兼容Redis的客户端及性能基准测试
- 基准测试显示set/get操作具有高吞吐量
- 附有Zig编程相关资源参考