Efficient Compactions between Storage Tiers with PrismDB

Efficient Compactions between Storage Tiers with PrismDB
复制标题

DOI:
10.1145/3582016.3582052
复制
发表时间:
2020-08
期刊:
Proceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 3
影响因子:
--
通讯作者:
Ashwini Raina;Jianan Lu;Asaf Cidon;M. Freedman
Ashwini Raina;Jianan Lu;Asaf Cidon;M. Freedman
中科院分区:
其他
文献类型:
--
作者:
Ashwini Raina;Jianan Lu;Asaf Cidon;M. Freedman

文献摘要

被引文献

相似文献

近年来,新兴的存储硬件技术专注于不同的目标:更好的性能或更低的每比特成本。相应地,采用这些技术的数据系统通常被优化为快速(但昂贵)或廉价(但缓慢)。我们采取不同的方法:通过构建存储引擎以本地利用两层快速且低成本的存储技术,我们可以在性能和每比特成本之间实现帕累托有效平衡。本文介绍了 PrismDB 的设计和实现,这是一种新颖的键值存储,它同时利用现代 NVMe 存储技术的两个极端(3D XPoint 和 QLC NAND)。我们的主要贡献是如何在两个不同的存储层之间有效地迁移和压缩数据。受日志清理的经典成本效益分析的启发,我们开发了一种用于多层存储压缩的新算法,该算法平衡了快速存储中热对象回收空间的好处与慢速存储中压缩 I/O 的成本。与当今数据中心闪存上的 RocksDB 标准使用相比,PrismDB 在分层存储上的平均吞吐量快了 3.3 倍,读取尾部延迟低了 2 倍,使用同等价格的硬件时,其耐用性提高了 5 倍。
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.