SLM-DB: Single-Level Key-Value Store with Persistent Memory
summary
SLM-DB is a key-value store built for byte-addressable persistent memory: it keeps the memtable in PM (so no write-ahead log), uses a persistent B+tree index in PM to point into on-disk data, and maintains only single-level SSTables on SSD with selective compaction (three heuristics: live-key ratio for GC plus two schemes to increase sequentiality). Implementation on LevelDB shows 1.07–1.96x read and 1.56–2.22x write throughput, ~2.5x lower write amplification, and works within hundreds of MBs of PM.
AI-written summary · about
chapters (21)
- 0:00Intro
- 0:25Outline
- 0:46Key-Value Databases
- 1:47LSM-tree: disadvantages
- 2:38State-of-the-art LSM-tree: LevelDB
- 4:21LSM-tree optimizations
- 4:48Simple approach
- 5:05Our approach
- 6:57Contributions
- 8:24Insert into Persistent Mem Table
- 9:09Flush
- 10:26Why we need Compaction?
- 11:52Selective compaction
- 12:48Live-key ratio selection
- 15:41General operations
- 16:11Put(key, value) if exists/if not exists
- 18:05Evaluation
- 19:07db bench microbenchmark
- 21:02PM sensitivity
- 22:44Conclusion
- 24:49Effect of persistent Mem Table
related talks
01h 09mLMDB
48mThe LMDB Engine — a Special Champion
12mSpanDB: A Fast, Cost-Effective LSM-tree Based KV Store on Hybrid Storage
15mImproving Performance of Flash Based Key-Value Stores Using Storage Class Memory...
35mDeveloping Software for Persistent Memory
39mDissecting the Humble LSM Tree and SSTable
20mRevisiting Secondary Indexing in LSM-based Storage Systems with Persistent Memory
49mmnesia + leveldb (...)
