1个稳定版本
1.0.0 | 2023年3月13日 |
---|
#183 in 数据库实现
330KB
6.5K SLoC
CamelliaKV
CamelliaKV是一种嵌入式和持久键值存储,针对随机访问工作负载和大容量硬盘进行了优化。
CamelliaKV主要具有以下特性
- 用于存储对象的本地存储,称为"块"
- 基本上,一个块是一个简单的键值条目
- 其独特属性是键的长度是固定长度(128位),适合存储相对较大的值(例如,几个MB)
- 提供简单的功能
- 基本上,您需要了解的唯一操作是
PUT
、GET
和DELETE
- 但它支持基于截止日期的I/O调度作为高级功能
- 基本上,您需要了解的唯一操作是
- 针对大容量硬盘(高达512TB)上的随机访问工作负载进行了优化
- 有关性能的更多详细信息,请参阅基准测试结果
- 旨在提供可预测和稳定的读写延迟
- 在执行操作时,关于发出磁盘访问次数的严格上限
- 在
PUT
和DELETE
时为一个磁盘访问,在PUT
时为两个
- 在
- 没有诸如压缩和停止世界的GC等后台处理,这些处理可能会长时间阻止正常操作
- 为了消除开销和不确定性,CamelliaKV没有缓存层
- 它使用直接I/O来绕过操作系统层缓存(例如,页面缓存)
- 如果您需要任何缓存层,则由您负责实现它
- 在执行操作时,关于发出磁盘访问次数的严格上限
- 使用Prometheus公开详细指标
有关CamelliaKV的更多详细信息,请参阅Wiki
文档
依赖关系
~3.5MB
~71K SLoC