The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.12 - December (2010 vol.21)
pp: 1793-1807
Pascal Felber , University of Neuchâtel, Neuchâtel
Christof Fetzer , Dresden University of Technology, Dresden
Patrick Marlier , University of Neuchâtel, Neuchâtel
Torvald Riegel , Dresden University of Technology, Dresden
ABSTRACT
Software transactional memory (STM) is a concurrency control mechanism that is widely considered to be easier to use by programmers than other mechanisms such as locking. The first generations of STMs have either relied on visible read designs, which simplify conflict detection while pessimistically ensuring a consistent view of shared data to the application, or optimistic invisible read designs that are significantly more efficient but require incremental validation to preserve consistency, at a cost that increases quadratically with the number of objects read in a transaction. Most of the recent designs now use a “time-based” (or “time stamp-based”) approach to still benefit from the performance advantage of invisible reads without incurring the quadratic overhead of incremental validation. In this paper, we give an overview of the time-based STM approach and discuss its benefits and limitations. We formally introduce the first time-based STM algorithm, the Lazy Snapshot Algorithm (LSA). We study its semantics and the impact of its design parameters, notably multiversioning and dynamic snapshot extension. We compare it against other classical designs and we demonstrate that its performance is highly competitive, both for obstruction-free and lock-based STM designs.
INDEX TERMS
Transactional memory, transactions, concurrency, atomicity.
CITATION
Pascal Felber, Christof Fetzer, Patrick Marlier, Torvald Riegel, "Time-Based Software Transactional Memory", IEEE Transactions on Parallel & Distributed Systems, vol.21, no. 12, pp. 1793-1807, December 2010, doi:10.1109/TPDS.2010.49
REFERENCES
[1] N. Shavit and D. Touitou, "Software Transactional Memory," Proc. 14th Ann. ACM Symp. Principles of Distributed Computing (PODC '95), Aug. 1995.
[2] B. Saha, A.-R. Adl-Tabatabai, R.L. Hudson, C.C. Minh, and B. Hertzberg, "McRT-STM: A High Performance Software Transactional Memory System for a Multi-Core Runtime," Proc. 11th ACM SIGPLAN Symp. Principles and Practice of Parallel Programming (PPoPP '06), 2006.
[3] T. Harris, M. Plesko, A. Shinnar, and D. Tarditi, "Optimizing Memory Transactions," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI '06), June 2006.
[4] D. Dice and N. Shavit, "What Really Makes Transactions Fast?" Proc. First ACM SIGPLAN Workshop Transactional Computing (TRANSACT '06), June 2006.
[5] M.P. Herlihy and J.M. Wing, "Linearizability: A Correctness Condition for Concurrent Objects," ACM Trans. Programming Languages and Systems, vol. 12, no. 3, pp. 463-492, 1990.
[6] T. Riegel, C. Fetzer, and P. Felber, "Snapshot Isolation for Software Transactional Memory," Proc. First ACM SIGPLAN Workshop Transactional Computing (TRANSACT '06), June 2006.
[7] W.N. SchererIII and M.L. Scott, "Contention Management in Dynamic Software Transactional Memory," Proc. ACM Symp. Principles of Distributed Computing (PODC) Workshop Concurrency and Synchronization in Java Programs, July 2004.
[8] W. SchererIII and M. Scott, "Advanced Contention Management for Dynamic Software Transactional Memory," Proc. 24th Ann. ACM Symp. Principles of Distributed Computing (PODC '05), July 2005.
[9] R. Guerraoui, M. Herlihy, and B. Pochon, "Polymorphic Contention Management," Proc. 19th Int'l Symp. Distributed Computing (DISC '05), Sept. 2005.
[10] V. Marathe, W. SchererIII, and M. Scott, "Adaptive Software Transactional Memory," Proc. 19th Int'l Symp. Distributed Computing (DISC '05), 2005.
[11] H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O'Neil, and P. O'Neil, "A Critique of ANSI SQL Isolation Levels," Proc. ACM SIGMOD, 1995.
[12] D. Dice, O. Shalev, and N. Shavit, "Transactional Locking II," Proc. 20th Int'l Symp. Distributed Computing (DISC '06), Sept. 2006.
[13] M. Spear, V. Marathe, W. SchererIII, and M. Scott, "Conflict Detection and Validation Strategies for Software Transactional Memory," Proc. 20th Int'l Symp. Distributed Computing (DISC '06), 2006.
[14] C. Wang, W.-Y. Chen, Y. Wu, B. Saha, and A.-R. Adl-Tabatabai, "Code Generation and Optimization for Transactional Memory Constructs in an Unmanaged Language," Proc. Int'l Symp. Code Generation and Optimization (CGO '07), 2007.
[15] Y. Ni, A. Welc, A.-R. Adl-Tabatabai, M. Bach, S. Berkowits, J. Cownie, R. Geva, S. Kozhukow, R. Narayanaswamy, J. Olivier, S. Preis, B. Saha, A. Tal, and X. Tian, "Design and Implementation of Transactional Constructs for C/C++," Proc. 23rd Ann. ACM SIGPLAN Conf. Object-Oriented Programming Languages, Systems, and Applications (OOPSLA), 2008.
[16] T. Riegel, C. Fetzer, and P. Felber, "Time-Based Transactional Memory with Scalable Time Bases," Proc. 19th Symp. Parallelism in Algorithms and Architectures (SPAA '07), June 2007.
[17] R. Zhang, Z. Budimlić, and W. SchererIII, "Commit Phase in Timestamp-Based STM," Proc. 20th Symp. Parallelism in Algorithms and Architectures (SPAA '08), June 2008.
[18] M. Herlihy, V. Luchangco, M. Moir, and W. SchererIII, "Software Transactional Memory for Dynamic-Sized Data Structures," Proc. 22nd Ann. ACM Symp. Principles of Distributed Computing (PODC '03), July 2003.
[19] T. Riegel, P. Felber, and C. Fetzer, "A Lazy Snapshot Algorithm with Eager Validation," Proc. 20th Int'l Symp. Distributed Computing (DISC '06), Sept. 2006.
[20] J. Napper and L. Alvisi, "Lock-Free Serializable Transactions," Technical Report TR-05-04, Dept. of Computer Sciences, Univ. of Texas at Austin, 2005.
[21] T. Riegel, C. Fetzer, H. Sturzrehm, and P. Felber, "From Causal to z-Linearizable Transactional Memory (Brief Announcement)," Proc. 26th Ann. ACM Symp. Principles of Distributed Computing (PODC '07), (Brief Announcement), Aug. 2007.
[22] U. Aydonat and T.S. Abdelrahman, "Serializability of Transactions in Software Transactional Memory," Proc. Third ACM SIGPLAN Workshop Transactional Computing (TRANSACT '08), Feb. 2008.
[23] R. Ennals, "Software Transactional Memory Should Not Be Obstruction-Free," unpublished.
[24] C.C. Minh, M. Trautmann, J. Chung, A. McDonald, N. Bronson, J. Casper, C. Kozyrakis, and K. Olukotun, "An Effective Hybrid Transactional Memory System with Strong Isolation Guarantees," Proc. 34th Int'l Symp. Computer Architecture (ISCA), 2007.
[25] R. Guerraoui, M. Herlihy, and S. Pochon, "Toward a Theory of Transactional Contention Managers," Proc. 24th Ann. ACM Symp. Principles of Distributed Computing (PODC '05), July 2005.
15 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool