Skip to main content
QUICK REVIEW

[论文解读] Garbage Collection Techniques for Flash-Resident Page-Mapping FTLs

Niv Dayan, Philippe Bonnet|arXiv (Cornell University)|Apr 7, 2015
Advanced Data Storage Technologies参考文献 5被引用 3
一句话总结

本文提出了两种互补的垃圾回收技术——Lazy Gecko 和 Logarithmic Gecko,用于闪存驻留的页映射闪存转换层(FTL)。Lazy Gecko 使用驻留在 RAM 中的位图和驻留在闪存中的反向映射,实现高效垃圾回收,且对 RAM 的需求适中;Logarithmic Gecko 将元数据以 LSM-tree 形式存储在闪存中,大幅降低 RAM 使用量,仅带来轻微的 IO 开销。其核心贡献在于实现了在嵌入式内存有限的闪存设备中可扩展的、低 RAM 垃圾回收机制。

ABSTRACT

Storage devices based on flash memory have replaced hard disk drives (HDDs) due to their superior performance, increasing density, and lower power consumption. Unfortunately, flash memory is subject to challenging idiosyncrasies like erase-before-write and limited block lifetime. These constraints are handled by a flash translation layer (FTL), which performs out-of-place updates, wear-leveling and garbage-collection behind the scene, while offering the application a virtualization of the physical address space. A class of relevant FTLs employ a flash-resident page-associative mapping table from logical to physical addresses, with a smaller RAM-resident cache for frequently mapped entries. In this paper, we address the problem of performing garbage-collection under such FTLs. We observe two problems. Firstly, maintaining the metadata needed to perform garbage-collection under these schemes is problematic, because at write-time we do not necessarily know the physical address of the before-image. Secondly, the size of this metadata must remain small, because it makes RAM unavailable for caching frequently accessed entries. We propose two complementary techniques, called Lazy Gecko and Logarithmic Gecko, which address these issues. Lazy Gecko works well when RAM is plentiful enough to store the GC metadata. Logarithmic Gecko works well when RAM isn't plentiful and efficiently stores the GC metadata in flash. Thus, these techniques are applicable to a wide range of flash devices with varying amounts of embedded RAM.

研究动机与目标

  • 解决在 RAM 有限的闪存驻留页映射 FTL 中维护垃圾回收元数据的挑战。
  • 克服在写入时无法获知前一版本物理地址的问题,该问题使元数据维护变得复杂。
  • 设计可扩展的垃圾回收技术,在不牺牲性能的前提下最小化 RAM 使用,尤其适用于 eMMC 等嵌入式内存极小的设备。
  • 提供两种互补的解决方案——Lazy Gecko 适用于中等 RAM 环境,Logarithmic Gecko 适用于极低 RAM 环境,适用于广泛的闪存存储设备。

提出的方法

  • Lazy Gecko 使用驻留在闪存中的反向映射和驻留在 RAM 中的位图,以追踪有效页并选择垃圾回收的受害块。
  • Logarithmic Gecko 用存储在闪存中的 LSM-tree 结构替代 RAM 中的位图,实现高效的元数据存储并最小化 RAM 占用。
  • Logarithmic Gecko 中的 LSM-tree 通过分层搜索重建块有效性位图,垃圾回收期间的最坏情况 IO 成本为 log_T(K·B/P)。
  • 两种方案均通过从反向映射读取并重写页面来执行垃圾回收,每次 GC 操作引入一次闪存读取和一次闪存写入。
  • 使用 EagleTree SSD 模拟器对方案进行评估,工作负载为逻辑地址空间内均匀随机写入。
  • 通过测量写放大和读放大来评估性能,同时将 LSM-tree 操作、反向映射访问和映射查找的贡献分别隔离并量化。

实验结果

研究问题

  • RQ1当在写入时无法获知前一版本的物理地址时,如何高效维护闪存驻留页映射 FTL 中的垃圾回收元数据?
  • RQ2在嵌入式内存有限的闪存设备中,垃圾回收的 RAM 使用量与 IO 开销之间存在何种权衡?
  • RQ3能否设计一种垃圾回收方案,使其在极低 RAM 配置(如 eMMC 中常见)下仍能有效扩展?
  • RQ4与理论值和基线实现相比,所提出的方案在多大程度上减少了写放大和读放大?

主要发现

  • Logarithmic Gecko 将 RAM 消耗降低至与 DFTL 相当的水平,与 Lazy Gecko 相比显著减少了 RAM 占用。
  • 当可用 RAM 充足时,Lazy Gecko 的写放大接近理论最优值,但随着 RAM 减少,性能因 CMT 淘汰增加而下降。
  • 由于其将元数据结构存储在闪存中的 LSM-tree,Logarithmic Gecko 可扩展至远低于 Lazy Gecko 的 RAM 水平,即使在极低 RAM 条件下也能保持较低的写放大。
  • Logarithmic Gecko 引入的 LSM-tree IO 开销极小,在 RAM 紧张时对读放大的贡献不足 3%,在 RAM 充裕时不足 12%。
  • 即使在最坏情况下,LSM-tree 操作对写放大的贡献也微乎其微——低于 3%,表明 IO 成本得到了良好控制。
  • 垃圾回收和 CMT 淘汰仍是写放大的主要来源,而映射访问和反向映射访问是读放大的主要成因。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。