ShadowGC: Cooperative Garbage Collection with Multi-Level Buffer for Performance Improvement in NAND Flash-Based SSDs.

Jinhua Cui,Youlao Zhang,Jianhang Huang,Weiguo Wu,Jun Yang
DOI: https://doi.org/10.23919/date.2018.8342206
2018-01-01
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.
What problem does this paper attempt to address?