随着现代计算机系统对存储和I/O需求的持续增长,具有数据去重(Deduplication)功能的SSDs(Solid State Drives)在云平台中得到了广泛部署以满足高性能存储需求。在多租户场景中,由于内存资源有限,来自不同租户的多个I/O流同时运行时,会出现指纹缓存的争用。然而,现有的全局和固定指纹管理方案难以适应不同租户的负载特性,在多租户环境中争用指纹缓存空间影响系统性能,指纹计算和指纹查找的开销导致的性能下降。
为了解决这一问题,信息存储与光显示功能实验室的硕士生刘昊,在王芳教授的指导下提出了一种名为CostFM的创新指纹管理机制。CostFM首先估算每个租户的缓存命中收益,并使用动态规划算法找到最佳的指纹缓存分配方案,在最大化利用内存资源的同时进行资源隔离,从而避免了对指纹资源的缓存争用并提高了缓存利用率。其次,它应用了一个策略选择模型,该模型捕获负载访问特征,为每个租户选择合适的缓存管理策略从而提高整体缓存效率。研究团队的实验结果显示,CostFM显著提高了系统性能,可以将平均请求延迟降低30%,并将指纹写入闪存的次数减少高达4.7倍。
图1 CostFM的架构图
分区命名空间(ZNS)固态硬盘(SSD)是一种新兴的存储设备形式,将数据布局以及垃圾回收(GC)功能交由主机端负责,使得设备具有更加稳定的、可预测性能。ZNS将SSD中的闪存块暴露为仅顺序写的分区,这与日志结构合并树(LSM-tree)的顺序写入特性完美契合,因此LSM-tree天然适合ZNS SSD。然而, 由于同一分区内大量的有序字符串表(SSTable)之间巨大的寿命差异,ZNS SSD上的LSM-tree需要垃圾回收(GC),导致性能受限。
为了解决这一问题,信息存储与光显示功能实验室的硕士生刘必勇,在童薇副教授的指导下提出LifetimeKV。 LifetimeKV通过缩小同一层内SST的寿命差距,确保将同一层的SST放置到同一区域时,每个区域中的SST具有相似的寿命,从而减少垃圾回收中的数据迁移。(1)LifetimeKV提出range compaction算法,确保新生成的SST和上一层的SST具有不重叠的键范围。这可以防止新生成的SST快速参与上一层SST的Compaction成为短寿命SST,从而减少了短寿命的SST。(2)LifetimeKV提出了一种基于重叠比例和寿命的SST选择算法,该算法优先选择长寿命SST进行Compaction,从而缩短长寿命SST的寿命。它还延迟选择短寿命SST进行Compaction,从而延长了短寿命SST的寿命。实验结果表明,与最先进的工作相比,LifetimeKV将垃圾回收量减少了63.23%,吞吐量提升了98.81%。
图2 LifetimeKV的架构图