Maintaining Consistent Transactional States without a Global Clock

A crucial property required from software transactional memory systems (STMs) is that transactions, even ones that will eventually abort, will operate on consistent states. The only known technique for providing this property is through the introduction of a globally shared version clock whose values are used to tag memory locations. Unfortunately, the need for a shared clock moves STM designs from being completely decentralized back to using centralized global information. This paper presents TLC, the first thread-local clock mechanism for allowing transactions to operate on consistent states. TLC is the proof that one can devise coherent-state STM systems without a global clock. A set of early benchmarks presented here within the context of the TL2 STM algorithm, shows that TLC's thread-local clocks perform as well as a global clock on small scale machines. Of course, the big promise of the TLC approach is in providing a decentralized solution for future large scale machines, ones with hundreds of cores. On such machines, a globally coherent clock based solution is most likely infeasible, and TLC promises a way for transactions to operate consistently in a distributed fashion.

[1]  Bratin Saha,et al.  Code Generation and Optimization for Transactional Memory Constructs in an Unmanaged Language , 2007, International Symposium on Code Generation and Optimization (CGO'07).

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

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

[4]  R. K. Shyamasundar,et al.  Introduction to algorithms , 1996 .

[5]  Nir Shavit,et al.  Atomic snapshots of shared memory , 1990, JACM.

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

[7]  V. Rich Personal communication , 1989, Nature.

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

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

[10]  Keir Fraser,et al.  Language support for lightweight transactions , 2003, SIGP.

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

[12]  Mark Moir,et al.  Hybrid transactional memory , 2006, ASPLOS XII.

[13]  Michael F. P. O'Boyle,et al.  Using machine learning to focus iterative optimization , 2006, International Symposium on Code Generation and Optimization (CGO'06).

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

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

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

[17]  Kunle Olukotun,et al.  An effective hybrid transactional memory system with strong isolation guarantees , 2007, ISCA '07.