Abstract
We introduce split-level I/O scheduling, a new framework that splits I/O scheduling logic across handlers at three layers of the storage stack: block, system call, and page cache. We demonstrate that traditional block-level I/O schedulers are unable to meet throughput, latency, and isolation goals. By utilizing the split-level framework, we build a variety of novel schedulers to readily achieve these goals: our Actually Fair Queuing scheduler reduces priority-misallocation by 28×; our Split-Deadline scheduler reduces tail latencies by 4×; our Split-Token scheduler reduces sensitivity to interference by 6×. We show that the framework is general and operates correctly with disparate file systems (ext4 and XFS). Finally, we demonstrate that split-level scheduling serves as a useful foundation for databases (SQLite and Post-greSQL), hypervisors (QEMU), and distributed file systems (HDFS), delivering improved isolation and performance in these important application scenarios.
Cite
CITATION STYLE
Yang, S., Harter, T., Agrawal, N., Kowsalya, S. S., Krishnamurthy, A., Al-Kiswany, S., … Arpaci-Dusseau, R. H. (2015). Split-level I/O scheduling. In SOSP 2015 - Proceedings of the 25th ACM Symposium on Operating Systems Principles (pp. 474–489). Association for Computing Machinery, Inc. https://doi.org/10.1145/2815400.2815421
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.