Abstract
Modern fast NVMe devices with high throughput and ultra-low latency have brought new opportunities for persistent key-value (KV) engines. In this paper, we propose Limon, a persistent KV engine to exploit the performance potentials of fast NVMe devices. Limon targets three practical design aspects that existing KV engines fail to consider simultaneously: functionality, scalability, and stability. Limon carefully redesigns the index structure, on-disk KV record layout, and I/O processing of a persistent KV engine for these aspects. Specifically, Limon (i) proposes a semi-shared global index to improve scalability and range queries. (ii) employs a fast slab-based record layout with light-weight defragmentation to enable stable performance, and (iii) uses efficient asynchronous per-core I/O processing with two optimizations: DMA-backed buffer pool and page deduplication, to further improve scalability. Our evaluations with the YCSB benchmark and one production workload show that Limon outperforms state-of-the-art persistent key-value engines (i.e., SpanDB, KVell, and uDepot) by up to 1.2x to 3.8x and has the best scalability. Moreover, Limon has stable and predictable performance due to its novel record layout strategy.
| Original language | English |
|---|---|
| Pages (from-to) | 3017-3028 |
| Number of pages | 12 |
| Journal | IEEE Transactions on Computers |
| Volume | 72 |
| Issue number | 10 |
| DOIs | |
| State | Published - 1 Oct 2023 |
Keywords
- Computer architecture
- I/O processing
- KV store
- fast NVMe devices
- index
- storage layout
- storage system
Fingerprint
Dive into the research topics of 'Limon: A Scalable and Stable Key-Value Engine for Fast NVMe Devices'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver