Clustered Checkpointing and Partial Rollbacks for Reducing Conflict Costs in STMs

A Software Transactional Memory is a concurrency control mechanism that executes multiple concurrent, optimistic, lockfree, atomic transactions, thus alleviating many problems associated with conventional mutual exclusion primitives such as monitors and locks. With the advent of massive multi-cores, more transactions can be initiated concurrently, however resulting in an increase in the percentage of conflicting transactions. Each time a transaction conflicts, it imposes a significant cost on the system, originating from the need to abort and redo all the operations, including the costly shared memory read operations, thus making the overall system significantly heavy and impractical. We present an algorithm, Clustered Checkpointing and Partial Rollback (CCPR), for reducing the conflict costs of transactions in the face of increasing conflicts. The algorithm is based on intelligent checkpointing of transactions as they proceed, and, in case of conflict, rolling them back to a safe, consistent, intermediate checkpoint, thus reducing conflict costs. The intelligence of the algorithm lies in the fact that as conflicts decrease, the checkpointing costs go low, however, when conflicts increase, the checkpointing costs increase but are still pretty much less than the amount of savings obtained by the partial rollback of the conflicting transactions. We simulated several applications in the CCPR framework and found that it can result in as good as 17% reduction in the conflict costs originating from the need to redo all the shared memory read operations.

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

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

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

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

[5]  Per Stenström,et al.  Intermediate checkpointing with conflicting access prediction in transactional memory systems , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.

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

[7]  Maged M. Michael,et al.  Software Transactional Memory: Why Is It Only a Research Toy? , 2008, ACM Queue.

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

[9]  Michael L. Scott Sequential Specification of Transactional Memory Semantics , 2006 .

[10]  Amir Pnueli,et al.  Verifying Correctness of Transactional Memories , 2007, Formal Methods in Computer Aided Design (FMCAD'07).

[11]  Håkan Grahn,et al.  Transactional memory , 2010, J. Parallel Distributed Comput..

[12]  Hagit Attiya,et al.  Inherent Limitations on Disjoint-Access Parallel Implementations of Transactional Memory , 2010, Theory of Computing Systems.

[13]  Mateo Valero,et al.  Taking the heat off transactions: Dynamic selection of pessimistic concurrency control , 2009, 2009 IEEE International Symposium on Parallel & Distributed Processing.

[14]  Maurice Herlihy,et al.  Checkpoints and continuations instead of nested transactions , 2008, SPAA '08.