Skip to Main Content
We present a fully distributed solution for managing resource allocation for services running across multiple clusters in a large-scale cloud computing environment. Our solution allows individual services running across clusters to compete dynamically for allocations based on their rate of consumption while maintaining the global cloud level allocation limits. The solution monitors resource consumption by services that are spread over a number of clusters. Global polls are triggered only when the allocated balance in a cluster decreases below a threshold and allocations are reassigned in a manner that avoids further immediate global polls. Our solution achieves scalability by minimizing global message exchanges, increases performance by distributing requests, and improves availability by avoiding a single point of failure. We perform a range of simulations to verify the accuracy of our approach, to validate our theoretical results, and to evaluate against competing approaches.