分区命名空间(ZNS)固态硬盘(SSD)是一种新兴的存储设备形式,它为日志结构合并树(LSM-tree)提供了新的前景。ZNS将SSD中的闪存块暴露为仅顺序写的分区,使LSM树能够了解数据的物理布局。然而,由于巨大的分区和相对较小的有序字符串表(SSTable)之间的不匹配,ZNS SSD上的LSM-tree需要垃圾回收(GC),导致性能受限。
实验室博士生黄栋,在冯丹教授和童薇副教授的指导下,提出SplitZNS。它通过调整区域到芯片的映射来引入小分区,从而最大化ZNS SSD上LSM树的GC效率。根据LSM树的多级特性和ZNS SSD固有的并行架构,SplitZNS提出了一些技术来利用和加速小区域,以减轻由于未充分利用的并行性而导致的性能影响。(1) 首先,SplitZNS有选择地使用小分区,以防止由于它们的低性能而加剧写入减速和停滞。(2) 其次,为了提高并行利用率,SplitZNS提出SubZone Ring,采用了一个FIFO缓冲区域来使小分区模仿大分区的写入风格; (3) SplitZNS还提出了Read Prefetcher,通过多个芯片并发预取数据; (4) SplitZNS最后提出了Read Scheduler,它为查询请求分配最高优先级。实验结果表明,与基于生命周期的数据放置相比,SplitZNS实现了最高达2.77倍的性能,并减少了78%的数据迁移。
该研究成果于2023年7月发表在ACM Transactions on Architecture and Code Optimization上,题为“SplitZNS: Towards an Efficient LSM-tree on ZNS SSDs”。该工作得到了国家自然科学基金(No. 61821003 and No. 62172178)的支持。