1个不稳定版本

0.2.1 2024年4月8日

#2 in #bitcask

MIT授权

130KB
3.5K SLoC

Bitkv

github Build Codecov GitHub License

一个高效的关键值存储引擎,旨在快速读写,并受到Bitcask的启发。

有关详细信息,请参阅简介安装用法

简介

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