Towards a universal construction for transaction-based multiprocess programs

The aim of a Software Transactional Memory (STM) system is to discharge the programmer from the explicit management of synchronization issues. The programmer's job resides in the design of multiprocess programs in which processes are made up of transactions, each transaction being an atomic execution unit that accesses concurrent objects. The important point is that the programmer has to focus her/his efforts only on the parts of the code which have to be atomic execution units without worrying on the way how the corresponding synchronization has to be realized. Non-trivial STM systems allow transactions to execute concurrently and rely on the notion of commit/abort of a transaction in order to solve their conflicts on the objects they access simultaneously. In some cases, the management of aborted transactions is left to the programmer. In other cases, the underlying system scheduler is appropriately modified or an underlying contention manager is used in order for each transaction to be (''practically always'' or with high probability) eventually committed. This paper presents a deterministic STM system in which (1) every invocation of a transaction is executed exactly once and (2) the notion of commit/abort of a transaction remains unknown to the programmer. This system, which imposes restrictions neither on the design of processes nor on their concurrency pattern, can be seen as a step towards the design of a deterministic universal construction to execute transaction-based multiprocess programs on top of a multiprocessor. Interestingly, the proposed construction is lock-free (in the sense that it uses no lock).

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

[2]  Pascal Felber,et al.  Deadline-aware scheduling for Software Transactional Memory , 2011, 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN).

[3]  Rachid Guerraoui,et al.  Permissiveness in Transactional Memories , 2008, DISC.

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

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

[6]  Rachid Guerraoui,et al.  The weakest failure detectors to boost obstruction-freedom , 2006, Distributed Computing.

[7]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[8]  Faith Ellen,et al.  A universal construction for wait-free transaction friendly data structures , 2010, SPAA '10.

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

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

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

[12]  Michel Raynal,et al.  Concurrent Programming: Algorithms, Principles, and Foundations , 2012, Springer Berlin Heidelberg.

[13]  Rachid Guerraoui,et al.  Stretching transactional memory , 2009, PLDI '09.

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

[15]  Panagiota Fatourou,et al.  The RedBlue Adaptive Universal Constructions , 2009, DISC.

[16]  Mark Moir,et al.  Universal Constructions for Large Objects , 1999, IEEE Trans. Parallel Distributed Syst..

[17]  Hagit Attiya,et al.  Transactional Scheduling for Read-Dominated Workloads , 2009, OPODIS.

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

[19]  Rachid Guerraoui,et al.  Principles of Transactional Memory , 2010, Synthesis Lectures on Distributed Computing Theory.

[20]  Edsger W. Dijkstra,et al.  Solution of a problem in concurrent programming control , 1965, CACM.

[21]  Daniel J. Rosenkrantz,et al.  System level concurrency control for distributed database systems , 1978, TODS.

[22]  James R. Larus,et al.  Transactional memory , 2008, CACM.

[23]  Rachid Guerraoui,et al.  X-Ability: a theory of replication , 2000, PODC '00.

[24]  Michel Raynal,et al.  Towards a Universal Construction for Transaction-Based Multiprocess Programs , 2012, ICDCN.

[25]  Yehuda Afek,et al.  Wait-free made fast , 1995, STOC '95.

[26]  Eli Gafni,et al.  Generalized FLP impossibility result for t-resilient asynchronous computations , 1993, STOC.

[27]  Christof Fetzer,et al.  The Universal Transactional Memory Construction , 2011 .

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

[29]  Maged M. Michael,et al.  Simple, fast, and practical non-blocking and blocking concurrent queue algorithms , 1996, PODC '96.

[30]  Carl Hewitt,et al.  Specification and Proof Techniques for Serializers , 1979, IEEE Transactions on Software Engineering.

[31]  Maurice Herlihy,et al.  The art of multiprocessor programming , 2020, PODC '06.

[32]  Rachid Guerraoui,et al.  Toward a theory of transactional contention managers , 2005, PODC '05.

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

[34]  Mikel Luján,et al.  Steal-on-Abort: Improving Transactional Memory Performance through Dynamic Transaction Reordering , 2008, HiPEAC.

[35]  Torvald Riegel,et al.  RobuSTM: A Robust Software Transactional Memory , 2010, SSS.

[36]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.