CachedGC: Cache-Assisted Garbage Collection in Modern Solid State Drives

Solid State Drives (SSDs) have many attractive features, and they are well-positioned to replace traditional HDDs in cloud and enterprise storages. However, some specific features they have such as erase-before-write and limited erase count make this transition more challenging. To tackle the issues brought by these features, Flash Translation Layer (FTL) leverages functionalities such as Garbage Collection (GC) to provide free space by erasing the blocks and cleaning the stale data. This process occupies SSD resources and causes extra waiting time for normal IO requests, and ultimately increases response time. Cloud workloads include many applications with small random write access patterns which cause frequent GC invocations. Flash occupation at the time of GC causes inconsistent performance and increases tail latency which may in turn violate SLA in these applications. In this paper, we modify the conventional GC process and propose a Cache-assisted Garbage Collection (CachedGC). CachedGC postpones writing back valid pages during the GC, erases the block at the first possible time, and hence resumes normal SSD operations sooner. CachedGC reduces request response time and tail latency by reducing the effective latency of GC. Our experimental results using a variety of workloads show that CachedGC reduces read tail latency by 19% and improves write IOPS by as much as 27%.

[1]  Werner Bux,et al.  Scheduling in Flash-Based Solid-State Drives - Performance Modeling and Optimization , 2012, 2012 IEEE 20th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.

[2]  Andrew A. Chien,et al.  Tiny-Tail Flash , 2017, ACM Trans. Storage.

[3]  Werner Bux,et al.  Performance of greedy garbage collection in flash-based solid-state drives , 2010, Perform. Evaluation.

[4]  Alistair A. McEwan,et al.  Pre-Emptive Garbage Collection for SSD RAID , 2016, 2016 Euromicro Conference on Digital System Design (DSD).

[5]  Young Ik Eom,et al.  TS-CLOCK: temporal and spatial locality aware buffer replacement algorithm for NAND flash storages , 2014, SIGMETRICS '14.

[6]  Xiaodong Zhang,et al.  Essential roles of exploiting internal parallelism of flash memory based solid state drives in high-speed data processing , 2011, 2011 IEEE 17th International Symposium on High Performance Computer Architecture.

[7]  Yong Wang,et al.  SDF: software-defined flash for web-scale internet storage systems , 2014, ASPLOS.

[8]  Sang-Won Lee,et al.  SFS: random write considered harmful in solid state drives , 2012, FAST.

[9]  Xubin He,et al.  Reducing SSD read latency via NAND flash program and erase suspension , 2012, FAST.

[10]  Evangelos Eleftheriou,et al.  Write amplification analysis in flash-based solid state drives , 2009, SYSTOR '09.

[11]  Hong Jiang,et al.  Performance impact and interplay of SSD parallelism through advanced commands, allocation strategy and data granularity , 2011, ICS '11.

[12]  Anand Sivasubramaniam,et al.  Leveraging Value Locality in Optimizing NAND Flash-based SSDs , 2011, FAST.

[13]  Yuvraj Patel,et al.  Algorithms and Data Structures for Efficient Free Space Reclamation in WAFL , 2017, FAST.

[14]  Jun Yang,et al.  CBM: A cooperative buffer management for SSD , 2014, 2014 30th Symposium on Mass Storage Systems and Technologies (MSST).

[15]  Young-Jin Kim,et al.  LAST: locality-aware sector translation for NAND flash memory-based storage systems , 2008, OPSR.

[16]  David Hung-Chang Du,et al.  Hot data identification for flash-based storage systems using multiple bloom filters , 2011, 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies (MSST).

[17]  Wendy Belluomini,et al.  STOW: A Spatially and Temporally Optimized Write Caching Algorithm , 2009, USENIX Annual Technical Conference.

[18]  John C. S. Lui,et al.  Impact of Data Locality on Garbage Collection in SSDs: A General Analytical Study , 2015, ICPE.

[19]  Dharmendra S. Modha,et al.  WOW: wise ordering for writes - combining spatial and temporal locality in non-volatile caches , 2005, FAST'05.

[20]  Javier González,et al.  LightNVM: The Linux Open-Channel SSD Subsystem , 2017, FAST.

[21]  Hyojun Kim,et al.  BPLRU: A Buffer Management Scheme for Improving Random Writes in Flash Storage , 2008, FAST.

[22]  Sungjin Lee,et al.  To collect or not to collect: Just-in-time garbage collection for high-performance SSDs with long lifetimes , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[23]  Mohammad Arjomand,et al.  Storage consolidation: Not always a panacea, but can we ease the pain? , 2016, 2016 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[24]  Luiz André Barroso,et al.  The tail at scale , 2013, CACM.

[25]  Andrew A. Chien,et al.  The Tail at Store: A Revelation from Millions of Hours of Disk and SSD Deployments , 2016, FAST.

[26]  Arul Selvan Ramasamy,et al.  RFFE: A Buffer Cache Management Algorithm for Flash-Memory-Based SSD to Improve Write Performance , 2015, Canadian Journal of Electrical and Computer Engineering.

[27]  Heeseung Jo,et al.  A superblock-based flash translation layer for NAND flash memory , 2006, EMSOFT '06.

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

[29]  Sang-Won Lee,et al.  A log buffer-based flash translation layer using fully-associative sector translation , 2007, TECS.

[30]  Ethan L. Miller,et al.  Purity: Building Fast, Highly-Available Enterprise Flash Storage from Commodity Components , 2015, SIGMOD Conference.

[31]  Xubin He,et al.  An adaptive write buffer management scheme for flash-based SSDs , 2012, TOS.