A TimeStamp based Multi-version STM Protocol that satisfies Opacity and Multi-Version Permissiveness

Software Transactional Memory Systems (STM) are a promising alternative to lock based systems for concurrency control in shared memory systems. In multiversion STM systems, each write on a transaction object produces a new version of that object. The advantage obtained by storing multiple versions is that one can ensure that read operations do not fail. Opacity is a commonly used correctness criterion for STM systems. Multi-Version permissive STM system never aborts a read-only transaction. Although many multi-version STM systems have been proposed, to the best of our knowledge none of them have been formally proved to satisfy opacity. In this paper we present a time-stamp based multiversion STM system that satisfies opacity and mv-permissiveness. We formally prove the correctness of the proposed STM system. We also present garbage collection procedure which deletes unwanted versions of the transaction objects and formally prove it correctness.

[1]  Philip A. Bernstein,et al.  Categories and Subject Descriptors: H.2.4 [Database Management]: Systems. , 2022 .

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

[3]  Petr Kuznetsov,et al.  On Non-Interference of Transactions , 2012, arXiv.org.

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

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

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

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

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

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

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

[11]  Hagit Attiya,et al.  A Single-Version STM that Is Multi-Versioned Permissive , 2012, Theory of Computing Systems.

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

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

[14]  Christos H. Papadimitriou,et al.  The serializability of concurrent database updates , 1979, JACM.

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

[16]  Petr Kuznetsov,et al.  On the Cost of Concurrency in Transactional Memory , 2011, OPODIS.

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

[18]  Rachid Guerraoui,et al.  Principles of Transactional Memory , 2010, Synthesis Lectures on Distributed Computing Theory.