A Versatile STM Protocol with Invisible Read Operations That Satisfies the Virtual World Consistency Condition

The aim of a Software Transactional Memory (STM) is to discharge the programmers from the management of synchronization in multiprocess programs that access concurrent objects. To that end, a STM system provides the programmer with the concept of a transaction. The job of the programmer is to design each process the application is made up of as a sequence of transactions. A transaction is a piece of code that accesses concurrent objects, but contains no explicit synchronization statement. It is the job of the underlying STM system to provide the illusion that each transaction appears as being executed atomically. Of course, for efficiency, a STM system has to allow transactions to execute concurrently. Consequently, due to the underlying STM concurrency management, a transaction commits or aborts. This paper first presents a new STM consistency condition, called virtual world consistency. This condition states that no transaction reads object values from an inconsistent global state. It is similar to opacity for the committed transactions but weaker for the aborted transactions. More precisely, it states that (1) the committed transactions can be totally ordered, and (2) the values read by each aborted transaction are consistent with respect to its causal past only. Hence, virtual world consistency is weaker than opacity while keeping its spirit. Then, assuming the objects shared by the processes are atomic read/write objects, the paper presents a STM protocol that ensures virtual world consistency (while guaranteeing the invisibility of the read operations). From an operational point of view, this protocol is based on a vector-clock mechanism. Finally, the paper considers the case where the shared objects are regular read/write objects. It also shows how the protocol can easily be weakened while still providing an STM system that satisfies causal consistency, a condition strictly weaker than virtual world consistency.

[1]  Michel Raynal,et al.  From serializable to causal transactions (abstract) , 1996, PODC '96.

[2]  Michel Raynal,et al.  A Lock-Based STM Protocol That Satisfies Opacity and Progressiveness , 2008, OPODIS.

[3]  Jennifer L. Welch,et al.  Multi-writer Consistency Conditions for Shared Memory Objects , 2003, DISC.

[4]  Hagit Attiya Needed: foundations for transactional memory , 2008, SIGA.

[5]  Keith Marzullo,et al.  Consistent detection of global predicates , 1991, PADD '91.

[6]  Leslie Lamport,et al.  Interprocess Communication , 2020, Practical System Programming with C.

[7]  Nir Shavit,et al.  Atomic snapshots of shared memory , 1990, JACM.

[8]  Leslie Lamport,et al.  On interprocess communication , 1986, Distributed Computing.

[9]  Philip A. Bernstein,et al.  Formal Aspects of Serializability in Database Concurrency Control , 1979, IEEE Transactions on Software Engineering.

[10]  Torvald Riegel,et al.  Time-based transactional memory with scalable time bases , 2007, SPAA '07.

[11]  Sape Mullender,et al.  Distributed systems , 1989 .

[12]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[13]  Mustaque Ahamad,et al.  Plausible clocks: constant size logical clocks for distributed systems , 1996, Distributed Computing.

[14]  Gil Neiger,et al.  Causal memory: definitions, implementation, and programming , 1995, Distributed Computing.

[15]  Nir Shavit,et al.  Software transactional memory , 1995, PODC '95.

[16]  Michel Raynal,et al.  From serializable to causal transactions for collaborative applications , 1997, EUROMICRO 97. Proceedings of the 23rd EUROMICRO Conference: New Frontiers of Information Technology (Cat. No.97TB100167).

[17]  Friedemann Mattern,et al.  Detecting causal relationships in distributed computations: In search of the holy grail , 1994, Distributed Computing.

[18]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.

[19]  Leslie Lamport,et al.  Distributed snapshots: determining global states of distributed systems , 1985, TOCS.

[20]  Michel Raynal,et al.  On the Consistency Conditions of Transactional Memories , 2008 .

[21]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[22]  Ozalp Babaoglu,et al.  Consistent global states of distributed systems: fundamental concepts and mechanisms , 1993 .

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

[24]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

[25]  Rachid Guerraoui,et al.  Partial snapshot objects , 2008, SPAA '08.

[26]  Rachid Guerraoui,et al.  Transactions are back---but are they the same? , 2008, SIGA.

[27]  Michel Raynal,et al.  Provable STM Properties: Leveraging Clock and Locks to Favor Commit and Early Abort , 2009, ICDCN.

[28]  Maurice Herlihy,et al.  Distributed computing and the multicore revolution , 2008, SIGA.

[29]  Michel Raynal,et al.  Help When Needed, But No More: Efficient Read/Write Partial Snapshot , 2009, DISC.

[30]  B. R. Badrinath,et al.  in Distributed Systems , 1991 .

[31]  Marcos K. Aguilera,et al.  Distributed Computing and Networking , 2011, Lecture Notes in Computer Science.

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

[33]  Eduard Ayguadé,et al.  Transactional Memory: An Overview , 2007, IEEE Micro.