Skip to Main Content
Mainstream applications-such as file copy/transfer, Web, DBMS, or video streaming-typically issue synchronous disk requests. As shown in this paper, this fact may cause work-conserving schedulers to fail both to enforce guarantees and provide a high disk throughput. A high throughput can be, however, recovered by just idling the disk for a short time interval after the completion of each request. In contrast, guarantees may still be violated by existing time-stamp-based schedulers because of the rules they use to tag requests. Budget Fair Queuing (BFQ), the new disk scheduler presented in this paper, is an example of how disk idling, combined with proper back-shifting of request time stamps, may allow a time-stamp-based disk scheduler to preserve both guarantees and a high throughput. Under BFQ, each application is always guaranteed-over any time interval and independently of whether it issues synchronous requests-a bounded lag with respect to its reserved fraction of the total number of bytes transferred by the disk device. We show the single-disk performance of our implementation of BFQ in the Linux kernel through experiments with real and emulated mainstream applications.