Hitchhike: An I/O Scheduler Enabling Writeback for Small Synchronous Writes
Xing Liu, Song Jiang, Yang Wang, Chengzhong Xu · 2016
Small and synchronous writes are pervasive in various environments and manifest in various levels of software stack, ranging from device drivers to application software. Given block interface, these writes can cause serious write amplifications, excess disk seeks or flash wear, and expensive flush operations, which, together, can substantially degrade the overall I/O performance. To address these issues, we present a novel block I/O scheduler, named Hitchhike, in this paper. Hitchhike is able to identify small writes, and embed them into other data blocks through data compression. With Hitchhike, we can complete a small write and another write in one atomic block operation, removing write amplification, and the overhead in excess disk seeks. We implemented Hitchhike based on the Deadline I/O schedulers in Linux 2.6.32, and evaluated it by running Filebench benchmark. Our results show that compared to traditional approaches, Hitchhike can significantly improve the performance of synchronous small writes.