A Write Leveling Scheme for Synchronizing Garbage Collection in RAID-Enabled SSDs
Listed in
This article is not in any list yet, why not save it to one of your lists.Abstract
Parity-based solid state drives (SSD) RAID provides fast I/O parallel processing and ensures data redundancy. However, frequent random small writes can lead to frequent updates of parity. More critically, the resulting uneven writing may impair the synchronization of garbage collection (GC), causing delays in subsequent I/O operations. This article proposes a Small Writes Aggregate Cache (SAC), which efficiently aggregates random small writes into larger ones, thereby improving the parallel write efficiency of SSD RAID. First, we utilize caching devices to aggregate partial stripe writes into full stripe writes wherever possible, enabling simultaneous write operations across all SSDs and increasing the probability of synchronized GCs. Second, to quickly identify data in the cache that can form a full stripe, we introduce a stripe bitmap table that tracks the real-time status of cached data. Finally, we propose a stripe LRU algorithm that, when cache space is limited and no data in the cache can form a full stripe, uses the stripe bitmap table to efficiently remove some partial stripe data written to different devices. SAC ensures that even the least efficient partial stripe writes can have a comparable impact on GC operations to full stripe writes. Through a series of simulation tests on several realistic disk workloads, we show that SAC effectively synchronizes GC operations across SSDs and reduces overall I/O response time compared to state-of-the-art PPC and Patch schemes.