April 21-24, 2015, Bordeaux, France | Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, John Wilkes
Google's Borg system is a highly scalable cluster management framework that manages hundreds of thousands of jobs across thousands of applications and tens of thousands of machines. It achieves high utilization through admission control, efficient task packing, over-commitment, and machine sharing with process-level performance isolation. Borg supports high-availability applications with runtime features that minimize fault-recovery time and scheduling policies that reduce the probability of correlated failures. It simplifies user operations with a declarative job specification language, name service integration, real-time job monitoring, and tools for analyzing and simulating system behavior.
The paper provides an overview of the Borg system architecture, key design decisions, quantitative analysis of policy decisions, and qualitative insights from over a decade of operational experience. Borg's architecture includes a centralized controller (Borgmaster) and agent processes (Borglets) running on each machine in a cell. The system handles a mix of long-running services and batch jobs, with a focus on heterogeneity and fault tolerance. Borg uses priority and quota mechanisms to manage resource allocation, and it supports fine-grained resource requests and resource reclamation to optimize utilization.
The paper also discusses Borg's availability, utilization, and isolation mechanisms, including security and performance isolation techniques. It evaluates the impact of resource sharing and segregation on machine requirements and demonstrates the effectiveness of resource reclamation in reclaiming unused resources. Overall, Borg's design and implementation have significantly improved Google's cluster management efficiency and reliability.Google's Borg system is a highly scalable cluster management framework that manages hundreds of thousands of jobs across thousands of applications and tens of thousands of machines. It achieves high utilization through admission control, efficient task packing, over-commitment, and machine sharing with process-level performance isolation. Borg supports high-availability applications with runtime features that minimize fault-recovery time and scheduling policies that reduce the probability of correlated failures. It simplifies user operations with a declarative job specification language, name service integration, real-time job monitoring, and tools for analyzing and simulating system behavior.
The paper provides an overview of the Borg system architecture, key design decisions, quantitative analysis of policy decisions, and qualitative insights from over a decade of operational experience. Borg's architecture includes a centralized controller (Borgmaster) and agent processes (Borglets) running on each machine in a cell. The system handles a mix of long-running services and batch jobs, with a focus on heterogeneity and fault tolerance. Borg uses priority and quota mechanisms to manage resource allocation, and it supports fine-grained resource requests and resource reclamation to optimize utilization.
The paper also discusses Borg's availability, utilization, and isolation mechanisms, including security and performance isolation techniques. It evaluates the impact of resource sharing and segregation on machine requirements and demonstrates the effectiveness of resource reclamation in reclaiming unused resources. Overall, Borg's design and implementation have significantly improved Google's cluster management efficiency and reliability.