Key-value (KV) stores play an increasingly critical role in supporting diverse large-scale applications in modern data centers hosting terabytes of KV items which even might reside on a single server due to virtualization purpose. The combination of ever growing volume of KV items and storage/application consolidation is driving a trend of high storage density for KV stores. Shingled Magnetic Recording (SMR) represents a promising technology for increasing disk capacity, but it comes at a cost of poor random write performance and severe I/O amplification. Applications/software working with SMR devices need to be designed and optimized in an SMR-friendly manner. In this work, we present SEALDB, a Log-Structured Merge tree (LSM-tree) based key-value store that is specifically optimized for and works well with SMR drives via adequately addressing the poor random writes and severe I/O amplification issues. First, for LSM-trees, SEALDB concatenates SSTables of each compaction, and groups them into sets. Taking sets as the basic unit for compactions, SEALDB improves compaction efficiency by mitigating random I/Os. Second, SEALDB creates varying size bands on HM-SMR drives, named dynamic bands. Dynamic bands not only accommodate the storage of sets, but also eliminate the auxiliary write amplification from SMR drives. We demonstrate the advantages of SEALDB via extensive experiments in various workloads. Overall, SEALDB delivers impressive performance improvement. Compared with LevelDB, SEALDB is 3.42 times faster on random load due to improved compaction efficiency and eliminated auxiliary write amplification on SMR drives.
密钥价值(KV)商店在支持托管KV项目的TRABYTES的不同大规模应用程序中起着越来越重要的作用,这些应用程序托管了KV项目,这些应用程序甚至可能由于虚拟化目的而存在于单个服务器上。越来越多的KV项目与存储/应用合并的结合正在推动KV商店高存储密度的趋势。带状的磁记录(SMR)代表了增加磁盘容量的有前途的技术,但它以不良的随机写作性能和严重的I/O扩增为代价。与SMR设备一起工作的应用程序/软件需要以SMR友好的方式进行设计和优化。在这项工作中,我们介绍了SeaLdB,这是一棵基于对数的合并树(LSM-Tree)的键值商店,该商店专门针对SMR驱动器进行了专门优化,可以通过充分解决可怜的随机写入和严重的I/O扩增问题。首先,对于LSM-Trees,SeaLDB将每个压实的S stables串联,然后将它们分为一组。 SEALDB将集合作为压缩的基本单元,通过减轻随机I/O可提高压实效率。其次,SeaLdB在HM-SMR驱动器上创建了不同的尺寸频段,名为Dynamic Bands。动态带不仅可以容纳集合的存储,还可以消除SMR驱动器的辅助写入放大。我们通过在各种工作量中进行的广泛实验来证明SEALDB的优势。总体而言,SEALDB可以提高性能。与LevelDB相比,由于压实效率的提高,随机负载速度的SEALDB速度快3.42倍,并消除了SMR驱动器上的辅助写入放大。