Font Size: a A A

Elasticity Primitives for Database as a Service

Posted on:2015-05-20Degree:Ph.DType:Dissertation
University:University of California, Santa BarbaraCandidate:Elmore, Aaron JFull Text:PDF
GTID:1478390017489218Subject:Computer Science
Abstract/Summary:
Transactional databases are a critical component in data intensive applications. They enable application developers to persist and query data without having to design for concurrency control, fault tolerance, atomic multi-operation transactions, or physical storage layout. Due to their utility and general purpose design databases are widely used within organizations. However, databases are predicated on an architecture that assumes one database instance is dedicated to hosting a single application. Organizations managing many small databases with fluctuating requirements, face wasted resources and redundant costs. Building a database-as-a-service platform allows for the effective consolidation of many databases into a reduced number of servers.;This dissertation focuses on the primitives, or tools, required to transform traditional database architectures into a distributed, scalable, and self-managed data platform. The presented primitives enable system elasticity, or the ability for a system to dynamically adapt the available capacity in response to changing resource requirements. First, we propose a self-managed controller to leverage expert administrators in managing database placement and maintaining system performance. This controller provides a method to identify resource requirements at runtime and a method to empirically learn how various databases will behave when colocated. These techniques are utilized to place databases and load-balance the system when resources are constrained. Second, this dissertation presents two techniques to migrate databases between servers without making the system unavailable for applications. These advances include the live migration of shared nothing databases and the live reconfiguration of partitioned main-memory databases. The presented primitives are critical steps in building a scalable database platform to host many applications using existing database architectures.
Keywords/Search Tags:Database, Primitives, Applications
Related items