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
Limitations
- O_DIRECT alone does not provide O_SYNC durability guarantees; atomic page writes and persistence are separate requirements. [5] [1]
Citations
- Lepers et al. KVell. SOSP 2019, pp. 447-461, sections 5.2-5.6, 6.5-6.6. DOI: 10.1145/3341301.3359628.
- KVell author code, revision a6cbc0cb: slab.c, single-page update callbacks.
- KVell author artifact, revision a6cbc0cb: OVERVIEW, prototype scope and item-size limits.
- KVell author repository: distinct SOSP KVell and OSDI KVell+ artifacts.
Further reading
- Linux man-pages: open(2), O_DIRECT does not provide the synchronized I/O guarantees of O_SYNC.
- Hesela: KVell, page traffic and persistence assumptions.
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.