Work Stealing for Interactive Services to Meet Target Latency
- Jing Li ,
- Kunal Agrawal ,
- Sameh Elnikety ,
- Yuxiong He ,
- I-Ting Angelina Lee ,
- Chenyang Lu ,
- Kathryn S McKinley
ACM SIGPLAN Symposium on Principles and Practice of Parallel Programmming (PPoPP) |
Published by ACM - Association for Computing Machinery
Interactive web services increasingly drive critical business workloads such as search, advertising, games, shopping, and finance. Whereas optimizing parallel programs and distributed server systems have historically focused on average latency and throughput, the primary metric for interactive applications is instead consistent responsiveness, i.e., minimizing the number of requests that miss a target latency. This paper is the first to show how to generalize work-stealing, which is traditionally used to minimize the make span of a single parallel job, to optimize for a target latency in interactive services with multiple parallel requests.
We design a new adaptive work stealing policy, called tailcontrol, that reduces the number of requests that miss a target latency. It uses instantaneous request progress, system load, and a target latency to choose when to parallelize requests with stealing, when to admit new requests, and when to limit parallelism of large requests. We implement this approach in the Intel Thread Building Block (TBB) library and evaluate it on real-world workloads and synthetic workloads. The tail-control policy substantially reduces the number of requests exceeding the desired target latency and delivers up to 58% relative improvement over various baseline policies. This generalization of work stealing for multiple requests effectively optimizes the number of requests that complete within a target latency, a key metric for interactive services.
© ACM. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution.