Sharing Buffer Pool Memory in Multi-Tenant Relational Database-as-a-Service
- Vivek Narasayya ,
- Ishai Menache ,
- Mohit Singh ,
- Feng Li ,
- Manoj Syamala ,
- Surajit Chaudhuri
Proceedings of the VLDB Endowment |
Published by VLDB Endowment
Relational database-as-a-service (DaaS) providers need to rely on multi-tenancy and resource sharing among tenants, since statically reserving resources for a tenant is not cost effective. A major consequence of resource sharing is that the performance of one tenant can be adversely affected by resource demands of other colocated tenants. One such resource that is essential for good performance of a tenant’s workload is buffer pool memory. In this paper, we study the problem of how to effectively share buffer pool memory in multi-tenant relational DaaS. We first develop an SLA framework that defines and enforces accountability of the service provider to the tenant even when buffer pool memory is not statically reserved on behalf of the tenant. Next, we present a novel buffer pool page replacement algorithm (MT-LRU) that builds upon theoretical concepts from weighted online caching, and is designed for multi-tenant scenarios involving SLAs and overbooking. MTLRU generalizes the LRU-K algorithm which is commonly used in relational database systems. We have prototyped our techniques inside a commercial DaaS engine and extensive experiments demonstrate the effectiveness of our solution.