1 Introduction
Solid state drives (SSDs) are now widely deployed in computing systems. They differ from traditional hard disks on various aspects, such as high random access performance, low power consumption, and erase-before-write. However, traditional I/O stack designs are mainly towards HDD performance enhancements, paying little attention to taking advantage of SSD features [10], [13], [16], [19]. I/O merging adopted by I/O schedulers is an example of such designs [31], [32].