Table of Contents
Fetching ...

Dynamic read & write optimization with TurtleKV

Tony Astolfi, Vidya Silai, Darby Huye, Lan Liu, Raja R. Sambasivan, Johes Bater

TL;DR

This work challenges the conventional fixed trade-offs in key-value stores by introducing TurtleKV, which dynamically tunes memory allocation to balance reads and writes without altering on-disk data structures. The core is the TurtleTree, a B^{ε+}-tree with trunk/branch separation and a checkpoint-distance (χ) WM knob, enabling fast in-memory updates and scalable, parallelized checkpointing. Empirical results show TurtleKV delivering up to 8x write throughput and 5x read throughput over RocksDB, while achieving competitive performance against SplinterDB and improved query-tail latencies, with similar space amplification. The approach emphasizes first-class WM tuning, dynamic online adaptability, and strong performance under diverse YCSB workloads, suggesting practical routes for tunable KV engines in modern storage systems.

Abstract

High read and write performance is important for generic key/value stores, which are fundamental to modern applications and databases. Yet, achieving high performance for both reads and writes is challenging due to traditionally limited memory and the pick-any-two-out-of-three tradeoff between memory use, read performance, and write performance. Existing state-of-the-art approaches limit memory usage and chose a primary dimension (reads or writes) for which to optimize their on-disk structures. They recover performance in the remaining dimension by other mechanisms. This approach limits databases' maximum performance in the remaining dimension and their dynamic (online) tunability to respond to changing workloads. We explore a different approach that dynamically trades memory for read or write performance as needed. We present TurtleKV, which includes a novel unbiased data structure for on-disk storage. It includes a knob that dynamically increases memory reserved for increasing read or write performance. When evaluated on YCSB, TurtleKV achieves up to 8x the write throughput of industry-leader RocksDB and up to 5x the read throughput while incurring similar space amplification. Compared to the state-of-the-art system SplinterDB, TurtleKV runs up to 40% better on point queries, up to 6x better on range scans and achieves similar write performance, while incurring 50% less space amplification.

Dynamic read & write optimization with TurtleKV

TL;DR

This work challenges the conventional fixed trade-offs in key-value stores by introducing TurtleKV, which dynamically tunes memory allocation to balance reads and writes without altering on-disk data structures. The core is the TurtleTree, a B^{ε+}-tree with trunk/branch separation and a checkpoint-distance (χ) WM knob, enabling fast in-memory updates and scalable, parallelized checkpointing. Empirical results show TurtleKV delivering up to 8x write throughput and 5x read throughput over RocksDB, while achieving competitive performance against SplinterDB and improved query-tail latencies, with similar space amplification. The approach emphasizes first-class WM tuning, dynamic online adaptability, and strong performance under diverse YCSB workloads, suggesting practical routes for tunable KV engines in modern storage systems.

Abstract

High read and write performance is important for generic key/value stores, which are fundamental to modern applications and databases. Yet, achieving high performance for both reads and writes is challenging due to traditionally limited memory and the pick-any-two-out-of-three tradeoff between memory use, read performance, and write performance. Existing state-of-the-art approaches limit memory usage and chose a primary dimension (reads or writes) for which to optimize their on-disk structures. They recover performance in the remaining dimension by other mechanisms. This approach limits databases' maximum performance in the remaining dimension and their dynamic (online) tunability to respond to changing workloads. We explore a different approach that dynamically trades memory for read or write performance as needed. We present TurtleKV, which includes a novel unbiased data structure for on-disk storage. It includes a knob that dynamically increases memory reserved for increasing read or write performance. When evaluated on YCSB, TurtleKV achieves up to 8x the write throughput of industry-leader RocksDB and up to 5x the read throughput while incurring similar space amplification. Compared to the state-of-the-art system SplinterDB, TurtleKV runs up to 40% better on point queries, up to 6x better on range scans and achieves similar write performance, while incurring 50% less space amplification.

Paper Structure

This paper contains 51 sections, 1 equation, 12 figures, 2 tables.

Figures (12)

  • Figure 1: RUM as a three-dimensional resource space
  • Figure 2: B$^\epsilon$-tree $\rightarrow$ B$^{\epsilon+}$-tree structural transformation
  • Figure 3: Write-Memory Trade-off Scaling (N=100M$\times$128b)
  • Figure 4: Write/Cache Size Trade-off Scaling (N=500M$\times$128b)
  • Figure 5: The TurtleTree data structure.
  • ...and 7 more figures