MaaT: Effective and scalable coordination of distributed transactions in the cloud
The past decade has witnessed an increasing adoption of cloud database technology, which provides better scalability, availability, and fault tolerance via transparent partitioning and replication, and automatic load balancing and fail over. However, only a small number of cloud databases provide strong consistency guarantees for distributed transactions, despite decades of research on distributed transaction processing, due to practical challenges that arise in the cloud setting, where failures are the norm, and human administration is minimal. For example, dealing with locks left by transactions initiated by failed machines, and determining a multi programming level that avoids thrashing without under utilizing available resources, are some of the challenges that arise when using lock based transaction processing mechanisms in the cloud context. Even in the case of optimistic concurrency control, most proposals in the literature deal with distributed validation but still require the database to acquire locks during two phase commit when installing updates of a single transaction on multiple machines. Very little theoretical work has been done to entirely eliminate the need for locking in distributed transactions, including locks acquired during two phase commit. In this paper, we re design optimistic concurrency control to eliminate any need for locking even for atomic commitment, while handling the practical issues in earlier theoretical work related to this problem. We conduct an extensive experimental study to evaluate our approach against lock based methods under various setups and workloads, and demonstrate that our approach provides many practical advantages in the cloud context.
Proc. VLDB Endow.