ScaleDefrag: Design and implementation of a scalable file defragmentation tool for flash-based SSDs
Fig 9
Synchronous and asynchronous defragmentation I/O timeline in e4defrag and ScaleDefrag, respectively.
(A) Synchronous I/O timeline in e4defrag. The defragger reads one page (P1, P2, P3) at a time, submits a single I/O request, and waits for its completion before preparing and issuing the next request. As a result, the device time for successive pages does not overlap and much of the potential parallelism in the storage device is left unused. (B) Asynchronous I/O timeline in ScaleDefrag. The defragger first collects multiple pages related to the same file (P1-P3 and P4-P6), submits their I/O requests, and then waits for completion. This allows the device times of different pages to overlap and exposes higher I/O parallelism, reducing the effective defragmentation time.