Towards Consistency Oblivious Programming

It is well known that guaranteeing program consistency when accessing shared data comes at the price of degraded performance and scalability. This paper initiates the investigation of consistency oblivious programming (COP). In COP, sections of concurrent code that meet certain criteria are executed without checking for consistency. However, checkpoints are added before any shared data modification to verify the algorithm was on the right track, and if not, it is re-executed in a more conservative and expensive consistent way. We show empirically that the COP approach can enhance a software transactional memory (STM) framework to deliver more efficient concurrent data structures from serial source code. In some cases the COP code delivers performance comparable to that of more complex fine-grained structures.

[1]  Maurice Herlihy,et al.  A Simple Optimistic Skiplist Algorithm , 2007, SIROCCO.

[2]  Michael F. Spear,et al.  NOrec: streamlining STM by abolishing ownership records , 2010, PPoPP '10.

[3]  Eran Yahav,et al.  Automatic Fine-Grain Locking using Shape Properties Guy Golan-Gueta , 2011 .

[4]  Dan Grossman,et al.  Enforcing isolation and ordering in STM , 2007, PLDI '07.

[5]  Tom Schrijvers,et al.  Optimal union-find in Constraint Handling Rules , 2005, Theory and Practice of Logic Programming.

[6]  Clifford Stein,et al.  Introduction to Algorithms, 2nd edition. , 2001 .

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

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

[9]  Eran Yahav,et al.  Automatic fine-grain locking using shape properties , 2011, OOPSLA '11.

[10]  Doug Lea,et al.  The java.util.concurrent synchronizer framework , 2005, Sci. Comput. Program..

[11]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[12]  Ronald L. Rivest,et al.  Introduction to Algorithms, Second Edition , 2001 .

[13]  Sabine Hanke,et al.  The Performance of Concurrent Red-Black Tree Algorithms , 1998, WAE.

[14]  Yehuda Afek,et al.  Brief announcement: view transactions: transactional model with relaxed consistency checks , 2010, PODC '10.

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

[16]  Maurice Herlihy,et al.  A Lazy Concurrent List-Based Set Algorithm , 2005, OPODIS.

[17]  Michael F. Spear,et al.  Delaunay Triangulation with Transactions and Barriers , 2007, 2007 IEEE 10th International Symposium on Workload Characterization.

[18]  Nir Shavit,et al.  Implicit Privatization Using Private Transactions , 2010 .

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

[20]  Martin Rinard,et al.  Acceptability-oriented computing , 2003, SIGP.