Serializability of Transactions in Software Transactional Memory

The use of two-phase locking (2PL) to enforce serialization in today’s Software Transactional Memory (STM) systems leads to poor performance for programs with long-running transactions and considerable data sharing. We propose the use of ConflictSerializability (CS) instead of 2PL. The use of CS allows transactions to complete when they would have either stalled or aborted with 2PL, potentially leading to better performance. Multi-Versioning further increases concurrency by allowing transactions to read older versions of shared data. We implement an obstruction-free STM system that uses CS with multi-versioning and evaluate its performance on 32 processors using 3 standard benchmarks. Our evaluation shows that the use of CS significantly reduces abort rates in programs with high abort rates. This results in up to 2.5 times improvement in throughput, in spite of the overhead of testing for the CS of transactions at run-time. We also propose an adaptive approach that switches between 2PL and CS to mitigate the overhead in applications that have low abort rates.

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

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

[3]  Andreas Reuter,et al.  Transaction Processing: Concepts and Techniques , 1992 .

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

[5]  Eljas Soisalon-Soininen,et al.  Relaxed Balanced Red-Black Trees , 1997, CIAC.

[6]  Kimmo E. E. Raatikainen,et al.  Dynamic adjustment of serialization order using time-stamp intervals in real-time databases , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

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

[8]  Keir Fraser,et al.  Practical lock-freedom , 2003 .

[9]  Virendra J. Marathe,et al.  Adaptive Software Transactional Memory , 2005, DISC.

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

[11]  David Eisenstat,et al.  Lowering the Overhead of Software Transactional Memory , 2006 .

[12]  Torvald Riegel,et al.  Snapshot Isolation for Software Transactional Memory , 2006 .

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

[14]  Nir Shavit,et al.  What Really Makes Transactions Faster , 2006 .

[15]  C. Kozyrakis,et al.  Early Release : Friend or Foe ? , 2006 .

[16]  Michael F. Spear,et al.  Conflict Detection and Validation Strategies for Software Transactional Memory , 2006, DISC.

[17]  Kunle Olukotun,et al.  The Atomos transactional programming language , 2006, PLDI '06.

[18]  Kunle Olukotun,et al.  Transactional collection classes , 2007, PPOPP.

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

[20]  Torvald Riegel,et al.  From causal to z-linearizable transactional memory , 2007, PODC '07.