How to Write to SSDs
Bohyun Lee, Tobias Ziegler, Viktor Leis
TL;DR
This paper designs the in-place, B-tree-based LeanStore to write out-of-place and supports a set of out-of-place optimizations that collectively reduce write amplification across both the DBMS and SSD layers, and shows that the architecture can seamlessly support novel SSD interfaces such as ZNS and FDP.
Abstract
This paper demonstrates that adopting out-of-place writes is essential for database systems to fully leverage SSD performance and extend SSD lifespan. We propose a set of out-of-place optimizations that collectively reduce write amplification across both the DBMS and SSD layers. We redesign the in-place, B-tree-based LeanStore to write out-of-place and support these optimizations, and evaluate it on diverse OLTP benchmarks, dataset sizes, and SSDs. The final design improves throughput by 1.65-2.24x and reduces flash writes per transaction by 6.2-9.8x on YCSB-A. On TPC-C with 15,000 warehouses, throughput improves by 2.45x while flash writes decrease by 7.2x. Finally, we show that the architecture can seamlessly support novel SSD interfaces such as ZNS and FDP.
