Operation-Level Wait-Free Transactional Memory with Support for Irrevocable Operations

Transactional memory (TM) aims to be a general purpose concurrency mechanism. However, operations which cause side-effects cannot be easily managed by a TM system, in which transactions are executed optimistically. In particular, networking, I/O, and some system calls cannot be executed within a transaction that may abort and restart (e.g., due to conflicts). Thus, many TM systems let transactions become irrevocable, i.e., they are guaranteed to commit. Supporting this in TM is a challenge, but there exist fast and highly parallel TM systems that allow for irrevocable transactions. However, no such system so far provides guarantees that all transactional operations terminate in a finite time. In this paper, we show that support for irrevocable operations does not entail inherent waiting. We present a TM algorithm that guarantees wait-freedom for any transactional operation. The algorithm is based on the weakest synchronization primitive possible (test-and-set), and guarantees opacity and strong progressiveness. To experimentally evaluate the algorithm, we developed a proof-of-concept TM system and tested it using the STMBench7 benchmark.

[1]  Petr Kuznetsov,et al.  On Partial Wait-Freedom in Transactional Memory , 2014, ICDCN.

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

[3]  William N. Scherer,et al.  Advanced contention management for dynamic software transactional memory , 2005, PODC '05.

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

[5]  Simon L. Peyton Jones,et al.  Composable memory transactions , 2008, Commun. ACM.

[6]  Craig B. Zilles,et al.  An Analysis of I/O And Syscalls In Critical Sections And Their Implications For Transactional Memory , 2008, ISPASS 2008 - IEEE International Symposium on Performance Analysis of Systems and software.

[7]  Milo M. K. Martin,et al.  Unrestricted Transactional Memory: Supporting I/O and System Calls Within Transactions , 2006 .

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

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

[10]  Torvald Riegel,et al.  Time-Based Software Transactional Memory , 2010, IEEE Transactions on Parallel and Distributed Systems.

[11]  Eduard Ayguadé,et al.  Atomic quake: using transactional memory in an interactive multiplayer game server , 2009, PPoPP '09.

[12]  Jan Vitek,et al.  STMBench7: a benchmark for software transactional memory , 2007, EuroSys '07.

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

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

[15]  Rachid Guerraoui,et al.  Why STM can be more than a research toy , 2011, Commun. ACM.

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

[17]  Danny Hendler,et al.  CAR-STM: scheduling-based collision avoidance and resolution for software transactional memory , 2008, PODC '08.

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

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

[20]  Timothy L. Harris,et al.  Exceptions and side-effects in atomic blocks , 2005, Sci. Comput. Program..