ACID Objects and Modularity in the Cloud – Part 1


June 5, 2012


ACID transactions are a classical tool that makes it easier to develop applications that operate correctly in the presence of failures and concurrency. Implementing a high-performance data store that supports ACID transactions is challenging. A complex internal data store component, the storage manager, consisting of interacting recovery and concurrency subsystems has to be implemented and tuned to achieve good performance.

A known limitation of high-performance transaction systems has been the lack of flexibility. For example, there was no way to add a new concurrency control scheme to exploit the semantics of a new application, or to add useful storage manager functionality such as consistent snapshots, without invasive, potentially destabilizing modifications of the data store internals.

These lectures present techniques for extending high-performance transactional systems in a modular way, without invasive modifications to data store internals. After reviewing the basic recovery and concurrency schemes for implementing high-performance ACID transactions, we focus on two extension frameworks, 1) adding type-specific concurrency control, without modification to the storage manager, using a two-level transaction system, and 2) a generic method for implementing a snapshot system in a modular way by deriving the snapshot system protocols from the native concurrency control and recovery protocols.

For each extension framework, we explain the key performance challenge, describe the algorithms addressing the problem, present the correctness arguments, and the implementation and experimental evaluation, and discuss the remaining open problems in the area.


Liuba Shrira

Liuba Shrira is a Professor in the Computer Science Department at Brandeis University, and is affiliated with MIT/CSAIL. She received her PhD from Technion, Israel, working on theoretical aspects of distributed algorithms. From 1986 to 1997 she was a research scientist at MIT/LCS and joined Brandeis in 1997. In 2004-2005 she was a visiting researcher at Microsoft Research, Cambridge, UK. In 2010-2011 she was a visiting researcher at Microsoft Research, Asia and a visiting Professor in the Computer Science Department, Technion.
Her research interests span aspects of design and implementation of distributed systems and especially storage systems. This includes transactions, fault-tolerance, availability and performance issues. Her recent focus is modular approaches to software upgrades, time travel (in storage), and collaborative access to consistent objects.
Liuba Shrira is a member of ACM and of the IEEE Computer Society. She has been recognized as a Distinguished Scientist by ACM for “significant accomplishments in, and impact on, the computing field”.