In Database-as-a-Service (DBaaS), a large number of tenants share DBaaS resources (CPU, I/O and Memory). While the DBaaS provider runs DBaaS to "share" resources across the entire tenant population to maximize resource utilization and minimize cost, the tenants subscribe to DBaaS at a low price point while still having resources conceptually "isolated" according to service level agreements (SLAs). To optimize this dichotomy of goals, we propose a dynamic resource allocation framework that periodically re-allocates resources to tenants to maximize resource utilization while tolerating a low risk of SLA violations. We model the resource allocation problem as a modified unbounded knapsack problem. The model introduces an additional fairness constraint to assign residual resources to active tenants, while avoiding that few tenants consume all residual resources. Performed experiments demonstrate the effectiveness and efficiency of the proposed allocation algorithm for a synthetic workload with burstiness and predicted tenant behavior.
['Jie Zhu', 'Bo Gao', 'Zhi Hu Wang', 'Berthold Reinwald', 'Changjie Guo', 'Xiaoping Li', 'Wei Sun']
A Dynamic Resource Allocation Algorithm for Database-as-a-Service