Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing
- Eric Boutin ,
- Jaliya Ekanayake ,
- Wei Lin ,
- Bing Shi ,
- Jingren Zhou ,
- Zhengping Qian ,
- Ming Wu ,
- Lidong Zhou
OSDI '14 |
Published by USENIX
The 11th USENIX Symposium on Operating Systems Design and Implementation
Efficiently scheduling data-parallel computation jobs over cloud-scale computing clusters is critical for job performance, system throughput, and resource utilization. It is becoming even more challenging with growing cluster sizes and more complex workloads with diverse characteristics. This paper presents Apollo, a highly scalable and coordinated scheduling framework, which has been deployed on production clusters at Microsoft to schedule thousands of computations with millions of tasks efficiently and effectively on tens of thousands of machines daily. The framework performs scheduling decisions in a distributed manner, utilizing global cluster information via a loosely coordinated mechanism. Each scheduling decision considers future resource availability and optimizes various performance and system factors together in a single unified model. Apollo is robust, with means to cope with unexpected system dynamics, and can take advantage of idle system resources gracefully while supplying guaranteed resources when needed.