1个不稳定版本
0.2.1 | 2024年4月8日 |
---|
#2 in #bitcask
130KB
3.5K SLoC
Bitkv
简介
Bitkv是一个用Rust编写的性能关键值存储系统。它采用日志结构设计,采用只追加写方法,以提供出色的速度、可靠性和可伸缩性。
功能
- 高效的键值存储:优化了快速读写操作,最小化开销。
- 多种索引:支持BTree、跳表、BPlusTree索引,以实现多种索引策略。
- 使用MemMap文件进行高效的I/O:快速索引重建和快速启动时间
- 每个项目读写低延迟
- 写延迟:
~ 7 µs
- 读延迟:
~ 3 ns
- 写延迟:
- 并发支持:细粒度锁定最小化了竞争。
- 写批处理事务:提交一批写操作,增强隔离性。
安装
要在项目中使用bitkv,请将其添加到Cargo.toml文件中的依赖项
[dependencies]
bitkv = "0.2.1"
然后,运行cargo build下载和编译bitkv-rs及其依赖项。
有关更详细的设置和编译说明,请访问Bitkv-rs GitHub仓库。
用法
请参阅examples
。
有关详细用法和API文档,请参阅bitkv-rs 文档。
待办事项
- 基本错误处理
- 压缩期间合并文件
- 可配置压缩触发器和阈值
- WriteBactch事务
- 使用mmap读取磁盘上的数据文件。
- 优化hintfile存储结构以支持更快的memtable构建
- Http API服务器
- 测试
- 基准测试
- 文档
- 增加flatbuffers选项的使用以提高读取速度
- 扩展对Redis数据类型的支持
贡献
欢迎对本项目做出贡献!如果您发现任何问题或对改进有建议,请提出问题或提交拉取请求。
授权
Bitkv-rs受[MIT授权](https://github.com/example/bitkv-rs/blob/main/LICENSE-MIT)许可,允许在开源和私有项目中使用。本许可证授予您在您的项目中使用bitkv-rs的自由,条件是必须将原始许可证和版权声明与Bitkv-rs软件的任何实质部分一起包含。
依赖项
~5-14MB
~173K SLoC