Vivek Narasayya, Sudipto Das, Manoj Syamala, Badrish Chandramouli, and Surajit Chaudhuri
A relational Database-as-a-Service provider, such as Microsoft SQL Azure, can share resources of a single database server among multiple tenants. This multi-tenancy enables cost reduction for the cloud service provider which it can pass on as savings to the tenants. However, resource sharing can adversely affect a tenant’s performance due to resource demands of other tenants’ workloads. Service providers today do not provide any assurances to a tenant in terms of isolating its performance from other co-located tenants. We present SQLVM, an abstraction for performance isolation which is built on a promise of reservation of key database server resources, such as CPU, I/O and memory, for each tenant. The key challenge is in supporting this abstraction within a DBMS without statically allocating resources to tenants, while ensuring low overheads and scaling to large numbers of tenants. Our contributions are in (1) formalizing the above abstraction of SQLVM; (2) designing mechanisms to support the promised resources; and (3) proposing low-overhead techniques to objectively meter resource allocation to establish accountability. We implemented a prototype of SQLVM in Microsoft SQL Azure and our experiments demonstrate that SQLVM results in significantly improved performance isolation from other tenants when compared to the state-of-the-art.
|Published in||CIDR 2013|
|Publisher||6th Biennial Conference on Innovative Data Systems Research|
This article is published under a Creative Commons Attribution License (http://creativecommons.org/licenses/by/3.0/), which permits distribution and reproduction in any medium as well allowing derivative works, provided that you attribute the original work to the author(s) and CIDR 2013.