ShadowGC: Cooperative Garbage Collection with Multi-level Buffer for Performance Improvement in NAND flash-based SSDs

Jinhua Cui1,a, Youtao Zhang2,d, Jianhang Huang1,b, Weiguo Wu1,c and Jun Yang2,e
1Xi'an Jiaotong University
acjhnicole@gmail.com
bwgwu@xjtu.edu.cn
chuangjhsx@gmail.com
2University of Pittsburgh
dzhangyt@cs.pitt.edu
ejuy9@pitt.edu

ABSTRACT


Garbage collection, an essential background activity in NAND flash based SSDs, often introduces large runtime overhead. Recent studies showed that it is beneficial to separate the flash pages that have dirty copies in the write buffers from those that do not. However, the existing schemes exploring this observation have limitations, which prevent them from maximizing the performance improvement. In this paper, we address the above challenge through ShadowGC, a novel GC design that exploits the pages in both host-side and device-side write buffers and adopts different read and write strategies to minimize the GC overhead. When garbage collecting flash pages that have dirty copies in the device-side write buffer, ShadowGC reads data from the write buffer. When garbage collecting flash pages that have dirty copies in the host-side write buffer, ShadowGC moves them to dedicated blocks and speeds up the movement with fast-write operations. Our experimental results show that, on average, ShadowGC reduces the write amplification by 16.2% and the GC latency by 20.5% over the state-of-the-art..



Full Text (PDF)