Garbage Collection Techniques for Flash-Resident Page-Mapping FTLs

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.

[1]  Guoliang Li,et al.  LazyFTL: a page-level flash translation layer optimized for NAND flash memory , 2011, SIGMOD '11.

[2]  Steven Swanson,et al.  The bleak future of NAND flash memory , 2012, FAST.

[3]  Guoliang Li,et al.  A survey of address translation technologies for flash memories , 2014, CSUR.

[4]  Hiroshi Motoda,et al.  A Flash-Memory Based File System , 1995, USENIX.

[5]  Michael Wu,et al.  eNVy: a non-volatile, main memory storage system , 1994, ASPLOS VI.

[6]  Sang Lyul Min,et al.  A space-efficient flash translation layer for CompactFlash systems , 2002, IEEE Trans. Consumer Electron..

[7]  Patrick E. O'Neil,et al.  The log-structured merge-tree (LSM-tree) , 1996, Acta Informatica.

[8]  Joo Young Hwang,et al.  F2FS: A New File System for Flash Storage , 2015, FAST.

[9]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

[10]  Sang-Won Lee,et al.  FAST: An Efficient Flash Translation Layer for Flash Memory , 2006, EUC Workshops.

[11]  Peter Desnoyers,et al.  Analytic modeling of SSD write performance , 2012, SYSTOR '12.

[12]  Chanik Park,et al.  A Re-configurable FTL (Flash Translation Layer) Architecture for NAND Flash based Applications , 2007, 18th IEEE/IFIP International Workshop on Rapid System Prototyping (RSP '07).

[13]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[14]  Philippe Bonnet,et al.  EagleTree: Exploring the Design Space of SSD-Based Algorithms , 2013, Proc. VLDB Endow..

[15]  Anastasia Ailamaki,et al.  Improving Flash Write Performance by Using Update Frequency , 2013, Proc. VLDB Endow..