Efficient Compactions between Storage Tiers with PrismDB
Efficient Compactions between Storage Tiers with PrismDB
复制标题
DOI:
10.1145/3582016.3582052
复制
发表时间:
2020-08
期刊:
影响因子:
--
通讯作者:
Ashwini Raina;Jianan Lu;Asaf Cidon;M. Freedman
中科院分区:
文献类型:
--
作者:
Ashwini Raina;Jianan Lu;Asaf Cidon;M. Freedman
In recent years, emerging storage hardware technologies have focused on divergent goals: better performance or lower cost-per-bit. Correspondingly, data systems that employ these technologies are typically optimized either to be fast (but expensive) or cheap (but slow). We take a different approach: by architecting 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. Our key contribution is how to efficiently migrate and compact data between two different storage tiers. Inspired by the classic cost-benefit analysis of log cleaning, we develop a new algorithm for multi-tiered storage compaction that balances the benefit of reclaiming space for hot objects in fast storage with the cost of compaction I/O in slow storage. Compared to the standard use of RocksDB on flash in datacenters today, PrismDB’s average throughput on tiered storage is 3.3× faster, its read tail latency is 2× better, and it is 5× more durable using equivalently-priced hardware.