Abstract

Modern NVMe solid state drives offer significantly higher bandwidth and low latency than prior storage devices. Current key-value stores struggle to fully utilize the bandwidth of such devices. This paper presents SplinterDB, a new key-value store explicitly designed for NVMe solid-state-drives. SplinterDB is designed around a novel data structure (STBε-tree), a co-designed memtable, and a concurrent replacement for the page cache. STBε-trees combine ideas from log-structured merge trees and Bε-trees to reduce write amplification and CPU costs of compaction. The memtable and cache are designed to be highly concurrent and to reduce cache misses. We evaluate SplinterDB on a number of micro- and macro-benchmarks, and show that SplinterDB outperforms RocksDB, a state-of-the-art key-value store, by a factor of 6–10x on insertions and 2–2.6x on point queries, while matching RocksDB on small range queries. Furthermore, SplinterDB reduces write amplification by 2x compared to RocksDB.

Date

July, 2020

Authors

Research Areas

  • Write-Optimized Data Structures

Type

Inproceedings

Booktitle

USENIX ATC