D 2 STM : Dependable Distributed Software Transactional Memory ∗

Software Transactional Memory (STM) systems have emerged a s a powerful paradigm to develop concurrent applications. At current date, however, t he problem of how to build distributed and replicated STMs to enhance both dependability and performance is still largely unexplored . This paper fills this gap by presenting D STM, a replicated STM that makes use of the computing resources available at multiple nodes of a distributed system . The consistency of the replicated STM is ensured in a transparent manner, even in the presence of fa ilures. In DSTM transactions are autonomously processed on each node, avoiding any replica int er-communication during transaction execution, and without incurring in deadlocks. Strong cons istency is enforced at transaction commit time by a non-blocking distributed certification scheme, wh ich we name BFC (Bloom Filter Certification). BFC exploits a novel Bloom Filter-based encoding m echanism that permits to significantly reduce the overheads of replica coordination at the cost of a user tunable increase in the probability of transaction abort. Through an extensive experimental st udy based on standard STM benchmarks we show that the BFC scheme permits to achieve remarkable per formance gains even for negligible (e.g. 1%) increases of the transaction abort rate.

[1]  Andrei Broder,et al.  Network Applications of Bloom Filters: A Survey , 2004, Internet Math..

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

[3]  Kevin Barraclough,et al.  I and i , 2001, BMJ : British Medical Journal.

[4]  João P. Cachopo,et al.  Combining software transactional memory with a domain modeling language to simplify web application development , 2006, ICWE '06.

[5]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[6]  Maurice Herlihy,et al.  Software transactional memory for dynamic-sized data structures , 2003, PODC '03.

[7]  Ricardo Jiménez-Peris,et al.  Consistent and Scalable Cache Replication for Multi-tier J2EE Applications , 2007, Middleware.

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

[9]  Keir Fraser,et al.  Practical lock-freedom , 2003 .

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

[11]  Dennis Shasha,et al.  The dangers of replication and a solution , 1996, SIGMOD '96.

[12]  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.

[13]  Michael Mitzenmacher,et al.  Less hashing, same performance: Building a better Bloom filter , 2006, Random Struct. Algorithms.

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

[15]  Nuno Carvalho,et al.  Versioned transactional shared memory for the FénixEDU web application , 2008, WDDDM '08.

[16]  Rachid Guerraoui,et al.  On the correctness of transactional memory , 2008, PPoPP.

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

[18]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

[19]  Alan L. Cox,et al.  Lazy release consistency for software distributed shared memory , 1992, ISCA '92.

[20]  Gustavo Alonso,et al.  Exploiting Atomic Broadcast in Replicated Databases (Extended Abstract) , 1997, Euro-Par.

[21]  Fred B. Schneider,et al.  Replication management using the state-machine approach , 1993 .

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

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

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

[25]  Maurice Herlihy,et al.  A flexible framework for implementing software transactional memory , 2006, OOPSLA '06.

[26]  Paul Hudak,et al.  Memory coherence in shared virtual memory systems , 1986, PODC '86.

[27]  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).

[28]  Gustavo Alonso,et al.  Scalable Replication in Database Clusters , 2000, DISC.

[29]  Milo M. K. Martin,et al.  Subtleties of transactional memory atomicity semantics , 2006, IEEE Computer Architecture Letters.

[30]  Willy Zwaenepoel,et al.  C-JDBC: Flexible Database Clustering Middleware , 2004, USENIX Annual Technical Conference, FREENIX Track.

[31]  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.

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

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

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