Approximately Opaque Multi-version Permissive Transactional Memory

In multi-version transactional memory read-only transactions do not have to abort, while update transactions may abort. There are situations where system delays do not allow to have precise consistency, such as in large scale network and database applications, due to network delays or other factors. In order to cope with such systems, we introduce here the notion of approximate consistency in transactional memory. We define K-opacity as a relaxed consistency property where read instructions in a read-only transaction may read one of K most recent written values, while read instructions in an update transaction read always the latest value. The relaxed consistency for read-only transactions has two benefits: (i) it reduces space requirements, since a new object version is saved once every K object updates, which reduces the total number of saved object versions by a factor of K, and (ii) it reduces the number of aborts, since there is smaller chance for read-only transactions to abort update transactions. This framework allows to have worst-case consistency guarantees and simultaneously good performance characteristics. In addition to correctness proofs, we demonstrate the performance benefits of our approach with experimental analysis. We tested our algorithm for different values of K using different benchmarks and we observed that when we increase K the number of aborts decreases and at the same time the throughput increases.

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

[2]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

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

[4]  Rachid Guerraoui,et al.  The semantics of progress in lock-based transactional memory , 2009, POPL '09.

[5]  Rachid Guerraoui,et al.  Permissiveness in Transactional Memories , 2008, DISC.

[6]  Jacob Nelson,et al.  Approximate storage in solid-state memories , 2013, MICRO-46.

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

[8]  Irving L. Traiger,et al.  Granularity of Locks and Degrees of Consistency in a Shared Data Base , 1998, IFIP Working Conference on Modelling in Data Base Management Systems.

[9]  U. Aydonat Serializability of Transactions in Software Transactional Memory , 2008 .

[10]  Idit Keidar,et al.  On maintaining multiple versions in STM , 2010, PODC.

[11]  William N. Scherer,et al.  Contention Management in Dynamic Software Transactional Memory ∗ , 2004 .

[12]  Torvald Riegel,et al.  Time-Based Software Transactional Memory , 2010, IEEE Transactions on Parallel and Distributed Systems.

[13]  Hagit Attiya,et al.  Single-Version STMs Can Be Multi-version Permissive (Extended Abstract) , 2011, ICDCN.

[14]  Rachid Guerraoui,et al.  Opacity: A Correctness Condition for Transactional Memory , 2007 .

[15]  Sathya Peri,et al.  A TimeStamp Based Multi-version STM Algorithm , 2014, ICDCN.

[16]  Mukul K. Sinha,et al.  Nonsensitive Data and Approximate Transactions , 1983, IEEE Transactions on Software Engineering.

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

[18]  Viswanath Poosala,et al.  Aqua: A Fast Decision Support Systems Using Approximate Query Answers , 1999, VLDB.

[19]  Konrad Siek,et al.  Brief Announcement: Relaxing Opacity in Pessimistic Transactional Memory , 2014 .

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

[21]  Idit Keidar,et al.  SMV: Selective Multi-Versioning STM , 2011, DISC.

[22]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[23]  João P. Cachopo,et al.  Versioned boxes as the basis for memory transactions , 2006, Sci. Comput. Program..