SplinterDB: Closing the bandwidth gap for NVMe key-value stores

Alex Conway, Abhishek Gupta, Vijay Chidambaran, Martin Farach-Colton, Rick Spillane, Amy Tai, Rob Johnson

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    Abstract

    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. 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-10× on insertions and 2-2.6× on point queries, while matching RocksDB on small range queries. Furthermore, SplinterDB reduces write amplification by 2× compared to RocksDB.

    Original languageEnglish (US)
    Title of host publicationProceedings of the 2020 USENIX Annual Technical Conference, ATC 2020
    PublisherUSENIX Association
    Pages49-63
    Number of pages15
    ISBN (Electronic)9781939133144
    StatePublished - 2020
    Event2020 USENIX Annual Technical Conference, ATC 2020 - Virtual, Online
    Duration: Jul 15 2020Jul 17 2020

    Publication series

    NameProceedings of the 2020 USENIX Annual Technical Conference, ATC 2020

    Conference

    Conference2020 USENIX Annual Technical Conference, ATC 2020
    CityVirtual, Online
    Period7/15/207/17/20

    ASJC Scopus subject areas

    • General Computer Science

    Fingerprint

    Dive into the research topics of 'SplinterDB: Closing the bandwidth gap for NVMe key-value stores'. Together they form a unique fingerprint.

    Cite this