This project shows that we can successfully use predictive modeling to enable a database cluster to elastically expand or contract in anticipation of changes in the workload.
Database workloads are extremely variable. The difference between daytime and nighttime traffic can be an order of magnitude. Startups can experience the “hockey stick effect” of rapid growth, and current events or “trending topics” on social media can cause large spikes in query volume. The standard wisdom has been to provision servers for maximum load. But that approach is brittle and costly, since most companies don’t actually know their peak load in advance, and they end of paying a lot of money for machines that sit idle most of the time. The solution is database elasticity, which enables the database to automatically add or remove servers as needed to try to match database server capacity to demand. Prior work has studied reactive provisioning – in which the database scales out whenever performance starts to degrade -- but we will show in this work that we can achieve better performance by using predictive modeling for proactive provisioning, because many workloads are actually quite predictable.