camelliakv

Crates.iocamelliakv
lib.rscamelliakv
version1.0.0
sourcesrc
created_at2023-03-13 11:45:52.05968
updated_at2023-03-13 11:45:52.05968
descriptionEmbedded persistent key-value storage optimized for random-access workload and huge-capacity HDD
homepagehttps://product.cins.com.cn/camellia/camelliakv
repositoryhttps://git.cins.com.cn/camellia/camelliakv
max_upload_size
id808790
size442,574
(cinsdev)

documentation

README

CamelliaKV

Crates.io: camelliakv Documentation Build Status License: MIT

CamelliaKV is an embedded and persistent key-value storage optimized for random-access workload and huge-capacity HDD.

CamelliaKV mainly has following features:

  • A local storage for storing objects that called as "lump":
    • Basically, a lump is a simple key-value entry
    • The distinctive properties are that the key is fixed length (128 bits) and suited for storing a relatively large size value (e.g., several MB)
  • Provides simple functionalities:
  • Optimized for random-access workload on huge-capacity HDD (up to 512 TB):
  • Aiming to provide predictable and stable read/write latency:
    • There are (nearly) strict upper bounds about the number of disk accesses issued when executing operations
      • One disk access when PUT and DELETE, and two when PUT
    • There are no background processings like compaction and stop-the-world GC which may block normal operations for a long time
    • For eliminating overhead and uncertainty, CamelliaKV has no caching layer:
      • It uses Direct I/O for bypassing OS layer caching (e.g., page cache)
      • If you need any caching layer, it is your responsibility to implement it
  • Detailed metrics are exposed using Prometheus

See Wiki for more details about CamelliaKV.

Documentation

Commit count: 0

cargo fmt