Introduction

A key-value store for modern storage devices.

Summary

Modern NVMe solid state drives offer significantly higher bandwidth and lower 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 (the STBε-tree) that exposes I/O and CPU concurrency and reduces write amplification without sacrificing query performance. STBε-tree combines ideas from log-structured merge trees and Bε-trees to reduce write amplification and CPU costs of compaction. The SplinterDB memtable and cache are designed to be highly concurrent and to reduce cache misses.

On a number of micro- and macro-benchmarks, 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.

Researchers

External Researchers

  • Martin Farach-Colton

Related Publications

Category

  • Active VMW Software Systems Projects

Research Areas

  • Data Structures
  • Databases
  • External-Memory Data Structures
  • Key-Value Stores
  • Write-Optimized Data Structures