RobuSTM: A Robust Software Transactional Memory

For software transactional memory (STM) to be usable in large applications such as databases, it needs to be robust, i.e., live, efficient, tolerant of crashed and non-terminating transactions, and practical. In this paper, we study the question of whether one can implement a robust software transactional memory in an asynchronous system. To that end, we introduce a system model - the multicore system model (MSM) - which captures the properties provided by mainstream multicore systems. We show how to implement a robust software transactional memory (RobuSTM) in MSM. Our experimental evaluation indicates that RobuSTM compares well against existing blocking and nonblocking software transactional memories in terms of performance while providing a much higher degree of robustness.

[1]  Rachid Guerraoui How Live Can a Transactional Memory Be , 2009 .

[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]  William N. Scherer,et al.  Contention Management in Dynamic Software Transactional Memory ∗ , 2004 .

[5]  Cong Wang,et al.  NZTM: nonblocking zero-indirection transactional memory , 2009, SPAA '09.

[6]  Torvald Riegel,et al.  A Lazy Snapshot Algorithm with Eager Validation , 2006, DISC.

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

[8]  Ron Weiss,et al.  Fast-Start: quick fault recovery in oracle , 2001, SIGMOD '01.

[9]  Mark Moir,et al.  Obstruction-Free Algorithms Can Be Practically Wait-Free , 2005, DISC.

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

[11]  Mark Moir,et al.  Toward high performance nonblocking software transactional memory , 2008, PPOPP.

[12]  Maurice Herlihy,et al.  Robust Contention Management in Software Transactional Memory , 2005, OOPSLA 2005.

[13]  Robert Ennals Software Transactional Memory Should Not Be Obstruction-Free , 2005 .

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

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

[16]  Danny Hendler,et al.  Scheduling support for transactional memory contention management , 2010, PPoPP '10.

[17]  Mark Moir,et al.  Efficient nonblocking software transactional memory , 2007, PPOPP.

[18]  G. S. Graham A New Solution of Dijkstra ' s Concurrent Programming Problem , 2022 .

[19]  Marcos K. Aguilera,et al.  No Time for Asynchrony , 2009, HotOS.

[20]  Torvald Riegel,et al.  Evaluation of AMD's advanced synchronization facility within a complete transactional memory stack , 2010, EuroSys '10.

[21]  Kunle Olukotun,et al.  STAMP: Stanford Transactional Applications for Multi-Processing , 2008, 2008 IEEE International Symposium on Workload Characterization.