The Push/Pull model of transactions

We present a general theory of serializability, unifying a wide range of transactional algorithms, including some that are yet to come. To this end, we provide a compact semantics in which concurrent transactions PUSH their effects into the shared view (or UNPUSH to recall effects) and PULL the effects of potentially uncommitted concurrent transactions into their local view (or UNPULL to detangle). Each operation comes with simple criteria given in terms of commutativity (Lipton's left-movers and right-movers). The benefit of this model is that most of the elaborate reasoning (coinduction, simulation, subtle invariants, etc.) necessary for proving the serializability of a transactional algorithm is already proved within the semantic model. Thus, proving serializability (or opacity) amounts simply to mapping the algorithm on to our rules, and showing that it satisfies the rules' criteria.

[1]  Richard J. Lipton,et al.  Reduction: a method of proving properties of parallel programs , 1975, CACM.

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

[3]  Dimitar Dimitrov,et al.  Commutativity race detection , 2014, PLDI.

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

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

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

[7]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[8]  Sumit Gulwani,et al.  Inferring locks for atomic sections , 2008, PLDI '08.

[9]  Nir Shavit,et al.  Noninvasive concurrency with Java STM , 2009 .

[10]  Maged M. Michael,et al.  Evaluation of Blue Gene/Q hardware support for transactional memories , 2012, 2012 21st International Conference on Parallel Architectures and Compilation Techniques (PACT).

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

[12]  Keshav Pingali,et al.  Optimistic parallelism requires abstractions , 2007, PLDI '07.

[13]  Mark Moir,et al.  A Framework for Formally Verifying Software Transactional Memory Algorithms , 2012, CONCUR.

[14]  Martin C. Rinard,et al.  Verification of semantic commutativity conditions and inverse operations on linked data structures , 2011, PLDI '11.

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

[16]  Jens Palsberg,et al.  Communicating memory transactions , 2011, PPoPP '11.

[17]  Maurice Herlihy,et al.  Composable Transactional Objects: A Position Paper , 2014, ESOP.

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

[19]  Bratin Saha,et al.  Open nesting in software transactional memory , 2007, PPOPP.

[20]  Torvald Riegel,et al.  Dynamic performance tuning of word-based software transactional memory , 2008, PPoPP.

[21]  Maurice Herlihy,et al.  Transactional boosting: a methodology for highly-concurrent transactional objects , 2008, PPoPP.

[22]  Maurice Herlihy,et al.  Coarse-grained transactions , 2010, POPL '10.

[23]  Rachid Guerraoui,et al.  On the liveness of transactional memory , 2012, PODC '12.

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

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

[26]  Maurice Herlihy,et al.  Checkpoints and continuations instead of nested transactions , 2008, SPAA '08.

[27]  ParkinsonMatthew,et al.  The Push/Pull model of transactions , 2015 .

[28]  Bratin Saha,et al.  McRT-STM: a high performance software transactional memory system for a multi-core runtime , 2006, PPoPP '06.

[29]  Jens Palsberg,et al.  Decomposing Opacity , 2014, DISC.

[30]  Nir Shavit,et al.  Towards a Fully Pessimistic STM Model , 2012 .

[31]  Michael F. Spear,et al.  Privatization techniques for software transactional memory , 2007, PODC '07.

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

[33]  Sebastian Burckhardt,et al.  Lightweight software transactions for games , 2009 .

[34]  Amir Pnueli,et al.  Mechanical Verification of Transactional Memories with Non-transactional Memory Accesses , 2008, CAV.

[35]  Sebastian Burckhardt,et al.  Semantics of Concurrent Revisions , 2011, ESOP.

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

[37]  William E. Weihl Data-dependent concurrency control and recovery (Extended Abstract) , 1983, PODC '83.

[38]  David A. Wood,et al.  Supporting nested transactional memory in logTM , 2006, ASPLOS XII.