Using a Market Economy to Provision Compute Resources Across Planet-wide Clusters
Murray Stokely, Jim Winget, Ed Keyes, Carrie Grimes, Benjamin Yolken
TL;DR
This work introduces a market-based framework for provisioning compute resources across heterogeneous, planet-wide clusters. It uses long-term bids and a simulated ascending clock auction to derive uniform prices that reflect supply-demand signals, with congestion-weighted reserves guiding initial pricing and resource reallocation. In a Google pilot, the approach improved utilization, encouraged workload mobility, and revealed substantial price premiums for reconfiguring workloads, illustrating practical economic incentives for dynamic provisioning. The results demonstrate the method's scalability, robustness, and potential to reduce shortages and surpluses typical of traditional allocation schemes, while highlighting avenues for theoretical and implementation refinements.
Abstract
We present a practical, market-based solution to the resource provisioning problem in a set of heterogeneous resource clusters. We focus on provisioning rather than immediate scheduling decisions to allow users to change long-term job specifications based on market feedback. Users enter bids to purchase quotas, or bundles of resources for long-term use. These requests are mapped into a simulated clock auction which determines uniform, fair resource prices that balance supply and demand. The reserve prices for resources sold by the operator in this auction are set based on current utilization, thus guiding the users as they set their bids towards under-utilized resources. By running these auctions at regular time intervals, prices fluctuate like those in a real-world economy and provide motivation for users to engineer systems that can best take advantage of available resources. These ideas were implemented in an experimental resource market at Google. Our preliminary results demonstrate an efficient transition of users from more congested resource pools to less congested resources. The disparate engineering costs for users to reconfigure their jobs to run on less expensive resource pools was evidenced by the large price premiums some users were willing to pay for more expensive resources. The final resource allocations illustrated how this framework can lead to significant, beneficial changes in user behavior, reducing the excessive shortages and surpluses of more traditional allocation methods.
