English

Optimize Unsynchronized Garbage Collection in an SSD Array

Operating Systems 2015-06-26 v1

Abstract

Solid state disks (SSDs) have advanced to outperform traditional hard drives significantly in both random reads and writes. However, heavy random writes trigger fre- quent garbage collection and decrease the performance of SSDs. In an SSD array, garbage collection of individ- ual SSDs is not synchronized, leading to underutilization of some of the SSDs. We propose a software solution to tackle the unsyn- chronized garbage collection in an SSD array installed in a host bus adaptor (HBA), where individual SSDs are exposed to an operating system. We maintain a long I/O queue for each SSD and flush dirty pages intelligently to fill the long I/O queues so that we hide the performance imbalance among SSDs even when there are few parallel application writes. We further define a policy of select- ing dirty pages to flush and a policy of taking out stale flush requests to reduce the amount of data written to SSDs. We evaluate our solution in a real system. Experi- ments show that our solution fully utilizes all SSDs in an array under random write-heavy workloads. It improves I/O throughput by up to 62% under random workloads of mixed reads and writes when SSDs are under active garbage collection. It causes little extra data writeback and increases the cache hit rate.

Keywords

Cite

@article{arxiv.1506.07566,
  title  = {Optimize Unsynchronized Garbage Collection in an SSD Array},
  author = {Da Zheng and Randal Burns and Alexander S. Szalay},
  journal= {arXiv preprint arXiv:1506.07566},
  year   = {2015}
}
R2 v1 2026-06-22T09:59:48.479Z