kvell · research

KVell

KVell is a research key-value store that combines per-worker memory indexes with unsorted slab files and batched direct I/O.

Layout: same-size single-page updates overwrite their slab slot instead of entering an LSM compaction pipeline. A cache miss still requires a page read before its rewrite. [1] [2]

Trade-offs: small-item scans can fetch a page per item, and paging the key-location index sharply reduces lookup throughput. The index budget is separate from the data-page cache. [1]

Recovery: the design assumes power-fail-atomic 4 KiB page writes. Its recovery experiment kills the process, not device power. Ordinary scans return current values per key, not a single snapshot. [1]

Artifact: the pinned prototype documents no support for items larger than 4 KiB, although the paper describes a multi-block design. KVell+ is a separate snapshot-isolation extension. [3] [4]

Relations

related
Key-value separation, Direct I/O, NVMe Atomic Write Unit Power Fail

Limitations

  • O_DIRECT alone does not provide O_SYNC durability guarantees; atomic page writes and persistence are separate requirements. [5] [1]

Citations

  1. Lepers et al. KVell. SOSP 2019, pp. 447-461, sections 5.2-5.6, 6.5-6.6. DOI: 10.1145/3341301.3359628. (accessed 2026-11-11)
  2. KVell author code, revision a6cbc0cb: slab.c, single-page update callbacks. (accessed 2026-11-11)
  3. KVell author artifact, revision a6cbc0cb: OVERVIEW, prototype scope and item-size limits. (accessed 2026-11-11)
  4. KVell author repository: distinct SOSP KVell and OSDI KVell+ artifacts. (accessed 2026-11-11)

Further reading

  1. Linux man-pages: open(2), O_DIRECT does not provide the synchronized I/O guarantees of O_SYNC. (accessed 2026-11-11)
  2. Hesela: KVell, page traffic and persistence assumptions. (accessed 2026-11-11)
Sources & caveats
  • Full 15-page paper and pinned update source reviewed. No KVell execution, power-loss experiment or benchmark reproduction.
  • Prototype restrictions are scoped to a6cbc0cb186c7934dc6be785225d809f62730fea, not inferred for every later branch.

JSON: /data/terms/kvell.json

Published by Hesela team · Updated

Report a correction · Editorial standards · Reuse guidance

Cite this page
Hesela team. KVell. Hesela. 2026-11-11. https://hesela.dev/terms/kvell/