uDepot
uDepot is a research key-value store for fast block-addressed nonvolatile storage with a resizable two-level DRAM index.
Its modified hopscotch index uses eight-byte slots; occupancy and temporary resize structures add to the memory budget. The persistent log, not a possibly stale index checkpoint, governs recovery. [1]
Recovery scope: The pinned implementation conditions crash recovery on protected device buffers and does not guarantee crash integrity for filesystem-backed storage. [2]
Read results: A successful get can fill only part of a value. Compare val_size_read with val_size before treating the returned buffer as the complete value. [3]
Relations
- related
- SILT, KVell, Direct I/O, Database checkpoint
Citations
- Kourtis, Ioannou and Koltsidas. Reaping the performance of fast NVM storage with uDepot. FAST 2019, pp. 1-15, sections 4.2-4.4.
- uDepot authors' archived implementation, revision 5b9d9f4c: README, crash-recovery conditions.
- uDepot authors' implementation, revision 5b9d9f4c: KV::get output sizes and successful partial retrieval.
Sources & caveats
- Source review of FAST 2019 and archived code at revision 5b9d9f4c559c76f0d02f65a3dc300b665138cd0b. No engine benchmark or power-loss experiment performed.