A Generic and Distributed Dependable Software Transactional Memory

Nuno Miguel, Rei Carvalho, Luís Eduardo, Isilda Rodrigues · 2011

A Software Transactional Memory (STM) is an abstraction that aims at simplifying the development of concurrent programs. When using STMs, the programmers are not required to manage explicitly concurrency control, for instance, by using low-level synchronization mechanisms such as locks. Instead, programmers only need to identify the sequences of operations that need to be executed in isolation, using the concept of a transaction. Concurrency control is then performed by the runtime support, in a transparent manner to the programmer. This thesis addresses the problem of implementing distributed dependable STMs. A distributed STM provides the abstraction of a global address space, that can be accessed from threads in different nodes as a local STM. Furthermore, a dependable STM ensures that multiple copies of the data are maintained, and kept consistent, such that data is not lost if a node fails. These features need to be added to STMs to address the high availability and scalability requirements posed by realistic production environments (e.g. the FenixEDU system). One of the most challenging problems in the management of replicated data is to reduce the cost of preserving replica consistency, a task that requires coordination among replicas. Given that the costs of executing an in-memory transaction are much smaller than executing transactions in other settings (such as in database systems), there is the risk that coordination costs become prohibitively expensive. Therefore, the thesis proposes several novel replication protocols suitable for building dependable distributed STMs. The results reported in the thesis, show that it is unlikely that a single replication protocol can outperform all the other protocols, for all workloads that characterize STMs environments. Therefore, the thesis also proposes a generic architecture that allows multiple replication protocols to coexist in a seamless manner in the same STM. This architecture opens the door to build adaptive solutions that can dynamically and automatically select the best replication protocol for a given deployment and workload, thus paving the way to the implementation of autonomic distributed dependable STMs that offer good performance in a wide range of scenarios.

Read the paper · More papers on PaperTik