Checkpoints and continuations instead of nested transactions

We present a mechanism for partially aborting transactions through the use of data structure checkpoints and control-flow continuations. In particular, we show that boosted transactions [9] already have built-in restoration points and afford a simple, efficient implementation. Our mechanism is far simpler than previous work, which relied on complex nesting schemes to establish checkpoints. We demonstrate syntactic advantages and we quantify the overhead of checkpoints and explore several examples, illustrating the utility of partially aborting transactions. We additionally present a novel queue-based spin lock which allows threads to timeout and differ in priority. Unlike the known lock due to Craig [5], our lock is more efficient for priority schemes of few levels.

[1]  Jan-Willem Maessen,et al.  Split hardware transactions: true nesting of transactions using best-effort hardware transactional memory , 2008, PPOPP.

[2]  Maurice Herlihy,et al.  Transactional boosting: a methodology for highly-concurrent transactional objects , 2008, PPoPP.

[3]  Travis S. Craig Queuing spin lock algorithms to support timing predictability , 1993, 1993 Proceedings Real-Time Systems Symposium.

[4]  Kunle Olukotun,et al.  Transactional memory coherence and consistency , 2004, Proceedings. 31st Annual International Symposium on Computer Architecture, 2004..

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

[6]  David A. Wood,et al.  Supporting nested transactional memory in logTM , 2006, ASPLOS XII.

[7]  Erik Hagersten,et al.  Queue locks on cache coherent multiprocessors , 1994, Proceedings of 8th International Parallel Processing Symposium.

[8]  Christopher Strachey,et al.  Continuations: A Mathematical Semantics for Handling Full Jumps , 2000, High. Order Symb. Comput..

[9]  Tim Harris,et al.  Abstract Nested Transactions , 2007 .

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

[11]  Katherine Yelick,et al.  Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming , 2007, PPOPP.

[12]  Traviss. Craig,et al.  Building FIFO and Priority-Queuing Spin Locks from Atomic Swap , 1993 .

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

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

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

[16]  Andrew W. Appel,et al.  Modern Compiler Implementation in ML , 1997 .