利用PrismDB在存储层之间实现高效压缩
Efficient Compactions Between Storage Tiers with PrismDB
摘要:
近年来,新兴的存储硬件技术专注于不同的目标:更好的性能或更低的每位成本。相应地,采用这些技术的数据系统通常被优化为快速(但昂贵)或便宜(但缓慢)。我们采取不同的方法:通过将存储引擎设计为原生地利用两层快速且低成本的存储技术,我们可以在性能和每比特成本之间实现帕累托有效的平衡。本文介绍了PrismDB的设计和实现,这是一种新型的键值存储,同时利用了现代NVMe存储技术的两个极端(3D XPoint和QLC NAND)。我们的主要贡献是如何在两个不同的存储层之间有效地迁移和压缩数据。受经典的日志清理成本效益分析的启发,我们开发了一种新的多层存储压缩算法,该算法平衡了快速存储中热对象回收空间的好处与慢速存储中压缩I/O的成本。与当今数据中心闪存上RocksDB的标准使用相比,PrismDB在分层存储上的平均吞吐量快3.3 $\times$,读尾延迟好2 $\times$,使用价格相当的硬件。
英文摘要:
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$\times$ faster and its read tail latency is 2$\times$ better, using equivalently priced hardware.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。