Transactions as the Foundation of a Memory Consistency Model

We argue that traditional synchronization objects, such as locks, conditions, and atomic/volatile variables, should be defined in terms of transactions, rather than the other way around. A traditional critical section, in particular, is a region of code, bracketed by transactions, in which certain data have been privatized. We base our memory model on the notion of strict serializability (SS), and show that selective relaxation of the relationship between program order and transaction order can allow the implementation of transaction-based locks to be as efficient as conventional locks. We also show that condition synchronization can be accommodated without explicit mention of speculation, opacity, or aborted transactions. Finally, we compare SS to the notion of strong isolation (SI), arguing that SI is neither sufficient for transactional sequential consistency (TSC) nor necessary in programs that are transactional data-race free (TDRF).

[1]  Timothy L. Harris Language constructs for transactional memory , 2009, POPL '09.

[2]  Michael F. Spear,et al.  NOrec: streamlining STM by abolishing ownership records , 2010, PPoPP '10.

[3]  Yannis Smaragdakis,et al.  Transactions with isolation and cooperation , 2007, OOPSLA.

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

[5]  Maurice Herlihy,et al.  Committing conflicting transactions in an STM , 2009, PPoPP '09.

[6]  V AdveSarita,et al.  Weak orderinga new definition , 1990 .

[7]  Michael F. Spear,et al.  Ordering-Based Semantics for Software Transactional Memory , 2008, OPODIS.

[8]  Jeremy T. Fineman,et al.  Nested parallelism in transactional memory , 2008, PPoPP.

[9]  Dan Grossman,et al.  What do high-level memory models mean for transactions? , 2006, MSPC '06.

[10]  Dan Grossman,et al.  Enforcing isolation and ordering in STM , 2007, PLDI '07.

[11]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2005, CACM.

[12]  Adam Welc,et al.  Towards transactional memory semantics for C++ , 2009, SPAA '09.

[13]  Michael M. Swift,et al.  Pathological Interaction of Locks with Transactional Memory , 2008 .

[14]  Tatiana Shpeisman,et al.  Dynamic optimization for efficient strong atomicity , 2008, OOPSLA.

[15]  Brian T. Lewis,et al.  Compiler and runtime support for efficient software transactional memory , 2006, PLDI '06.

[16]  Bratin Saha,et al.  Code Generation and Optimization for Transactional Memory Constructs in an Unmanaged Language , 2007, International Symposium on Code Generation and Optimization (CGO'07).

[17]  Maged M. Michael,et al.  Inevitability Mechanisms for Software Transactional Memory , 2008 .

[18]  Anoop Gupta,et al.  Programming for Different Memory Consistency Models , 1992, J. Parallel Distributed Comput..

[19]  Arvind,et al.  Store Atomicity for Transactional Memory , 2007, Electron. Notes Theor. Comput. Sci..

[20]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[21]  James R. Larus,et al.  Transactional Memory, 2nd edition , 2010, Transactional Memory.

[22]  Martín Abadi,et al.  Semantics of transactional memory and automatic mutual exclusion , 2011, TOPL.

[23]  Adam Welc,et al.  Practical weak-atomicity semantics for java stm , 2008, SPAA '08.

[24]  Mark Plesko,et al.  Optimizing memory transactions , 2006, PLDI '06.

[25]  Victor Luchangco Against lock-based semantics for transactional memory , 2008, SPAA '08.

[26]  Dan Grossman,et al.  High-level small-step operational semantics for transactions , 2008, POPL '08.

[27]  Martín Abadi,et al.  Transactional memory with strong atomicity using off-the-shelf memory protection hardware , 2009, PPoPP '09.

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

[29]  Dennis Shasha,et al.  Efficient and correct execution of parallel programs that share memory , 1988, TOPL.

[30]  Michael F. Spear,et al.  Scalable Techniques for Transparent Privatization in Software Transactional Memory , 2008, 2008 37th International Conference on Parallel Processing.

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

[32]  Hans-Juergen Boehm,et al.  Foundations of the C++ concurrency memory model , 2008, PLDI '08.

[33]  Mark D. Hill,et al.  Weak ordering—a new definition , 1998, ISCA '98.

[34]  Maged M. Michael,et al.  Implementing and Exploiting Inevitability in Software Transactional Memory , 2008, 2008 37th International Conference on Parallel Processing.

[35]  James R. Larus,et al.  Transactional Memory , 2006, Transactional Memory.

[36]  Jeremy Manson,et al.  The Java memory model , 2005, POPL '05.

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

[38]  Michael L. Scott Sequential Specification of Transactional Memory Semantics , 2006 .

[39]  Luke Dalessandro Michael,et al.  Strong Isolation is a Weak Idea , 2009 .

[40]  Adam Welc,et al.  Irrevocable transactions and their applications , 2008, SPAA '08.

[41]  Adam Welc,et al.  Single global lock semantics in a weakly atomic STM , 2008, SIGP.

[42]  Rachid Guerraoui MichaKapaka On the Correctness of Transactional Memory , 2008 .

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

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

[45]  Marek Olszewski,et al.  JudoSTM: A Dynamic Binary-Rewriting Approach to Software Transactional Memory , 2007, 16th International Conference on Parallel Architecture and Compilation Techniques (PACT 2007).

[46]  Michael F. Spear,et al.  A comprehensive strategy for contention management in software transactional memory , 2009, PPoPP '09.