Generic replication of software transactional memory

Software Transactional Memory (STM) is a powerful tool for managing access to shared data. A major impairment to the adoption of this technology in mainstream applications is the lack of efficient replication schemes capable of ensuring adequate scalability and fault-tolerance levels. A key issue is that no existing replication approach succeeds in delivering optimal performance across the entire spectrum of possible transactional workloads. In this work we describe an architecture for generic replication of STMs. Our approach strongly simplifies the development and evaluation of alternative STM replication policies, by defining neat, generic interfaces that encapsulate the three key components at the core of a replicated STM: the local STM, the replica coordination manager and the underlying group communication system. Our generic architecture for STM replication aims at integrating the results from the growing community of researchers working in this area, paving the way towards the development of self-optimizing STM replication mechanisms.

[1]  Bela Ban Design and Implementation of a Reliable Group Communication Toolkit for Java , 1998 .

[2]  Luís E. T. Rodrigues,et al.  The GlobData Fault-Tolerant Replicated Distributed Object Database , 2002, EurAsia-ICT.

[3]  João P. Cachopo,et al.  Versioned boxes as the basis for memory transactions , 2006, Sci. Comput. Program..

[4]  Paolo Romano,et al.  Towards distributed software transactional memory systems , 2008, LADIS '08.

[5]  Christoforos E. Kozyrakis,et al.  Unlocking Concurrency , 2006, ACM Queue.

[6]  Luís E. T. Rodrigues,et al.  On the Use of a Reflective Architecture to Augment Database Management Systems , 2007, J. Univers. Comput. Sci..

[7]  Rachid Guerraoui,et al.  The Database State Machine Approach , 2003, Distributed and Parallel Databases.

[8]  Nir Shavit,et al.  Transactional Locking II , 2006, DISC.

[9]  Luís E. T. Rodrigues,et al.  Towards a Generic Group Communication Service , 2006, OTM Conferences.

[10]  Luís E. T. Rodrigues,et al.  Appia, a flexible protocol kernel supporting multiple coordinated channels , 2001, Proceedings 21st International Conference on Distributed Computing Systems.

[11]  Bradford L. Chamberlain,et al.  Software transactional memory for large scale clusters , 2008, PPoPP.

[12]  Luís E. T. Rodrigues,et al.  D2STM: Dependable Distributed Software Transactional Memory , 2009, 2009 15th IEEE Pacific Rim International Symposium on Dependable Computing.

[13]  Madalin Mihailescu,et al.  Exploiting distributed version concurrency in a transactional memory cluster , 2006, PPoPP '06.

[14]  Yair Amir,et al.  A low latency, loss tolerant architecture and protocol for wide area group communication , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[15]  Mikel Luján,et al.  DiSTM: A Software Transactional Memory Framework for Clusters , 2008, 2008 37th International Conference on Parallel Processing.

[16]  Luís E. T. Rodrigues,et al.  Asynchronous Lease-Based Replication of Software Transactional Memory , 2010, Middleware.

[17]  Burton H. Bloom,et al.  Space/time trade-offs in hash coding with allowable errors , 1970, CACM.

[18]  Rachid Guerraoui,et al.  Introduction to reliable distributed programming , 2006 .

[19]  David Powell,et al.  Group communication , 1996, CACM.

[20]  Ana Respício,et al.  On Statistically Estimated Optimistic Delivery in Wide-Area Total Order Protocols , 2006, 2006 12th Pacific Rim International Symposium on Dependable Computing (PRDC'06).

[21]  Gustavo Alonso,et al.  Processing transactions over optimistic atomic broadcast protocols , 1999, Proceedings. 19th IEEE International Conference on Distributed Computing Systems (Cat. No.99CB37003).

[22]  Jan Vitek,et al.  STMBench7: a benchmark for software transactional memory , 2007, EuroSys '07.

[23]  Gustavo Alonso,et al.  A suite of database replication protocols based on group communication primitives , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).