Shinjuku: Preemptive scheduling for µsecond-scale tail latency
Author(s)Kaffes, K; Chong, T; Humphries, JT; Belay, Adam M; Mazières, D; Kozyrakis, C; ... Show more Show less
MetadataShow full item record
The recently proposed dataplanes for microsecond scale applications, such as IX and ZygOS, use non-preemptive policies to schedule requests to cores. For the many real-world scenarios where request service times follow distributions with high dispersion or a heavy tail, they allow short requests to be blocked behind long requests, which leads to poor tail latency. Shinjuku is a single-address space operating system that uses hardware support for virtualization to make preemption practical at the microsecond scale. This allows Shinjuku to implement centralized scheduling policies that preempt requests as often as every 5µsec and work well for both light and heavy tailed request service time distributions. We demonstrate that Shinjuku provides significant tail latency and throughput improvements over IX and ZygOS for a wide range of workload scenarios. For the case of a RocksDB server processing both point and range queries, Shinjuku achieves up to 6.6× higher throughput and 88% lower tail latency.
DepartmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Proceedings of the 16th USENIX Symposium on Networked Systems Design and Implementation
Association for Computing Machinery (ACM)/ USENIX Association
KOstis, Kaffes et al. "Shinjuku: Preemptive scheduling for µsecond-scale tail latency." Proceedings of the 16th USENIX Symposium on Networked Systems Design and Implementation, February 2019, Boston, MA, Association for Computing Machinery (ACM)/ USENIX Association, February 2019.
Author's final manuscript