Efficient Migrations Between Storage Tiers with PrismDB.
Ashwini Raina, Jianan Lu, Asaf Cidon, Michael J. Freedman · arXiv (Cornell University) · 2021
In recent years, emerging hardware storage technologies have focused on divergent goals: better performance or lower cost-per-bit of storage. Correspondingly, data systems that employ these new technologies are typically optimized either to be fast (but expensive) or cheap (but slow). We take a different approach: by designing a storage engine to natively utilize two tiers of fast and low-cost storage technologies, we can achieve a Pareto-efficient balance between performance and cost-per-bit. This paper presents the design and implementation of PrismDB, a novel key-value store that exploits two extreme ends of the spectrum of modern NVMe storage technologies (3D XPoint and QLC NAND) simultaneously. Unlike prior work that has retrofitted data structures designed for a single tier to multi-tier storage, PrismDB's data structures and migration mechanism are tailored for different storage layers. The key design contributions of PrismDB is a novel hybrid data structure for tiered storage, and an adaptive and lightweight migration mechanism that is able to efficiently demote cold objects from the fast to the slow storage tier, and promote hot objects to the fast tier. Compared to the standard use of RocksDB on flash in datacenters today, PrismDB's average throughput on tiered storage is 3.3$\times$ faster and its read tail latency is 2$\times$ better, using equivalently-priced hardware.