Key-Value data stores have been extremely successful in supporting large applications with huge amount of data and large number of concurrent requests. But Key-Value stores provide transactional guarantees only at the granularity of single rows which is restrictive for some applications. This project aims to build on the Key-Value data stores to provide transactional guarantees over dynamic groups of keys specified by the applications on demand.
The success of cloud computing as a platform for deploying web-applications has led to a deluge of applications characterized by small data footprints but unpredictable access patterns. An autonomic and scalable multitenant database management system (DBMS) is therefore an important component of the software stack for platforms supporting these applications.
ElasTraS targets the design space of scalable, elastic, fault-tolerant, self-managing, transactional relational database for the cloud. ElasTraS is designed to scale out using a cluster of commodity machines while being fault-tolerant and self-managing. ElasTraS is designed to support both classes of database needs for the cloud: (i) large databases partitioned across a set of nodes, and (ii) a large number of small and independent databases common in multi-tenant databases. ElasTraS borrows from the design philosophy of scalable Key-Value stores to minimize distributed synchronization and remove scalability bottlenecks, while leveraging decades of research on transaction processing, concurrency control, and recovery to support rich functionality and transactional guarantees.