For commodities of a temporal nature, such as electricity and computing resources on a cloud platform, demand and supply fluctuate stochastically over time, and time-of-use pricing is an effective way to balance supply and demand. For a single time period in isolation, determining the right price to set is a newsvendor type problem. The optimal solution is to set the price in a way that the system is slightly over provisioned. We study settings where demand can be temporally flexible: when prices are high, consumers with temporally-flexible workloads can move their demand to a lower price period. This movement of demand complicates the relationship between the advertised prices and observed demand. In particular, it is no longer clear that optimizing the price for each individual time period suffices to ensure good system performance. Indeed, excess demand from one time period can move over to another period and cause an overload, which can in turn cause an overload at another time period, and so on. How much should the system be over provisioned in each time period so as to ensure that the loss of efficiency is small? Under what conditions can we guarantee that overload cascades of the sort described above are unlikely? In this work we develop techniques for answering these questions. Our main result is that in a large market setting, i.e. where the total supply in any time period far exceeds any single customer’s demand, slightly over provisioning each time period is sufficient to achieve high system efficiency — overload cascades of the sort described above are few and short lived.
Discovery Building, Orchard View Room