Distributed Software Transactional Memory



Project Description : The goal of this project is to design and implement an efficient and fault tolerant distributed software transactional memory system. We consider a fully replicated DSTM and follow multi-master replication model where any of the multiple replicas can process a transaction and modify the globally shared data item. We take lazy replication approach where the transactions are executed locally and transaction data sets are broadcast to other replicas for validation and detection of remote conflicts. This is achieved using the underlying View Synchronous Group Communication framework which integrates group membership service and reliable multicast communication. The replication protocol has to maintain the consistency of shared data at all the replicas by establishing a global serialisation order in an efficient manner. A local, deterministic STM running on each node uses the serialisation order to schedule transactions on each node. We assume crash-recovery with partial amnesia model for replica failure and recovery.

Overview : With the advent in multicore processors, software transactional memory(STM) systems have emerged as a powerful programming paradigm for developing concurrent applications which aim to replace the conventional locking mechanisms. Transactional memory research has focussed on single address space parallel or multicore machines. Replicated or distributed STM which provides scalability as well as dependability is an upcoming research field. Though a few DSTM implementations are available, there is a lack of efficient replication strategies which guarentee adequate scalability and fault-tolerance. We propose a token-ring based asynchronous fault-tolerant replication scheme for DSTM system. Our replication scheme provides one-copy serializability as the consistency criterion and follows multi-master replication model where any of the multiple master nodes can process a transaction and modify the globally shared data item. The transactions can be classified into two classes: read transactions and write transactions. The STM at each node employs the technique of multi-version concurrency control(MVCC) which provides snapshot-isolation to transactions by maintaining several generational versions of the shared data items. MVCC increases concurrency and improves performance as it ensures that all the read transactions are always committed successfully. Only the data sets for write transactions need to be communicated to other nodes in order to maintain replica consistency. Writesets are transmitted over the network using the underlying View Synchronous Group Communication framework which integrates group membership service and reliable multicast communication. A token-ring based replication protocol establishes a global serialisation order for transaction scheduling. With the assumption that system follows crash-recovery with partial amnesia model, a recovery protocol is incorporated which allows efficient and fast recovery of the failed node.

Emulab - Network Emulation Testbed