5个版本
使用旧的Rust 2015
0.10.0 | 2020年8月7日 |
---|---|
0.9.4 | 2020年2月25日 |
0.9.2 | 2019年1月16日 |
0.9.1 | 2018年10月26日 |
0.9.0 | 2018年10月17日 |
#98 in 数据库实现
77 每月下载量
在 8 crates 中使用
345KB
6.5K SLoC
cannyls
CannyLS是一种嵌入式持久化键值存储,针对随机访问工作负载和大容量硬盘进行优化。
CannyLS主要具有以下特性
- 用于存储称为“块”的对象的本地存储
- 基本上,一个块是一个简单的键值条目
- 其独特属性是键是固定长度(128位)且适合存储相对较大的值(例如,几个MB)
- 提供简单功能
- 基本上,您需要了解的唯一操作是
PUT
、GET
和DELETE
- 但它支持基于截止日期的I/O调度作为高级功能
- 基本上,您需要了解的唯一操作是
- 针对大容量硬盘(高达512 TB)的随机访问工作负载进行优化
- 有关性能的更多详细信息,请参阅基准测试结果
- 旨在提供可预测和稳定的读写延迟
- 在执行操作时,有关磁盘访问次数的(几乎)严格上限
- 在执行
PUT
和DELETE
时只有一个磁盘访问,而在执行PUT
时有两个
- 在执行
- 没有像压缩和全停GC这样的后台处理,这些处理可能会长时间阻止正常操作
- 为了消除开销和不确定性,CannyLS没有缓存层
- 它使用直接I/O以绕过操作系统层缓存(例如,页面缓存)
- 如果您需要任何缓存层,则由您负责实现
- 在执行操作时,有关磁盘访问次数的(几乎)严格上限
- 通过 Prometheus 暴露详细的指标。
有关CannyLS的更多详细信息,请参阅 Wiki。
文档
依赖项
~4MB
~79K SLoC