Abstract
Multiversion software transactional memory (STM) allows a transaction to read old values of a recently updated object, after which the transaction may serialize before transactions that committed earlier in physical time. This ability to “commit in the past” is particularly appealing for long-running read-only transactions, which may otherwise starve in many STM systems, because short-running peers modify data out from under them before they have a chance to finish.
Most previous approaches to multiversioning have been designed as an integral part of some larger STM system, and have assumed an object-oriented, garbage-collected language. We describe, instead, how multiversioning may be implemented on top of an almost arbitrary “word-based” STM system. To the best of our knowledge, ours is the first work (for any kind of STM) to combine bounded space consumption with guaranteed wait freedom for read-only transactions (in the form presented here, it may require writers to be blocking). We make no assumptions about data or metadata layout, though we do require that the base system provide a hash function with certain ordering properties. We neither require nor interfere with automatic garbage collection. Privatization safety can be ensured—without compromising wait freedom for readers—either by forcing privatizing writers to wait for all extant readers or by requiring that programmers explicitly identify the data being privatized.
This work was supported in part by the National Science Foundation under grants CCR-0963759, CCF-1116055, and CNS-1116109.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aydonat, U., Abdelrahman, T.: Serializability of Transactions in Software Transactional Memory. In: 3rd ACM SIGPLAN Wkshp. on Transactional Computing, Salt Lake City, UT (February 2008)
Bieniusa, A., Fuhrmann, T.: Consistency in Hindsight: A Fully Decentralized STM Algorithm. In: Proc. of the 24th Intl. Parallel and Distributed Processing Symp., Atlanta, GA (April 2010)
Cachopo, J., Rito-Silva, A.: Versioned Boxes as the Basis for Memory Transactions. Science of Computer Programming 63(2), 172–185 (2006)
Cachopo, J., Rito-Silva, A.: Versioned Boxes as the Basis for Memory Transactions. In: Proc., Wkshp. on Synchronization and Concurrency in Object-Oriented Languages, in conjunction with OOPSLA 2005, San Diego, CA (October 2005)
Dalessandro, L., Spear, M.F., Scott, M.L.: NOrec: Streamlining STM by Abolishing Ownership Records. In: Proc. of the 15th ACM Symp. on Principles and Practice of Parallel Programming, Bangalore, India (January 2010)
Dice, D., Shalev, O., Shavit, N.: Transactional Locking II. In: Proc. of the 20th Intl. Symp. on Distributed Computing, Stockholm, Sweden (September 2006)
Dragojević, A., Guerraoui, R., Kapałka, M.: Stretching Transactional Memory. In: Proc. of the SIGPLAN 2009 Conf. on Programming Language Design and Implementation, Dublin, Ireland (June 2009)
Fraser, K., Harris, T.: Concurrent Programming Without Locks. ACM Trans. on Computer Systems 25(2), article 5 (May 2007)
Harris, T., Fraser, K.: Language Support for Lightweight Transactions. In: OOPSLA 2003 Conf. Proc., Anaheim, CA (October 2003)
Harris, T.L.: A Pragmatic Implementation of Non-Blocking Linked-Lists. In: Welch, J.L. (ed.) DISC 2001. LNCS, vol. 2180, pp. 300–314. Springer, Heidelberg (2001)
Keidar, I., Perelman, D.: On Avoiding Spare Aborts in Transactional Memory. In: Proc. of the 21st ACM Symp. on Parallelism in Algorithms and Architectures, Calgary, AB, Canada (August 2009)
Marathe, V.J., Moir, M.: Toward High Performance Nonblocking Software Transactional Memory. In: Proc. of the 13th ACM Symp. on Principles and Practice of Parallel Programming, Salt Lake City, UT (February 2008) Expanded version available as TR 932 Dept. of Computer Science, Univ. of Rochester (March 2008)
Marathe, V.J., Spear, M.F., Scott, M.L.: Scalable Techniques for Transparent Privatization in Software Transactional Memory. In: Proc. of the 2008 Intl. Conf. on Parallel Processing, Portland, OR (September 2008)
Michael, M.M.: High Performance Dynamic Lock-Free Hash Tables and List-Based Sets. In: Proc. of the 14th ACM Symp. on Parallel Algorithms and Architectures, Winnipeg, MB, Canada (August 2002)
Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: Stanford Transactional Applications for Multi-Processing. In: Proc. of the 2008 IEEE Intl. Symp. on Workload Characterization, Seattle, WA (September 2008)
Napper, J., Alvisi, L.: Lock-Free Serializable Transactions. Technical report TR-05-04, Dept. of Computer Sciences, Univ. of Texas at Austin (February 2005)
Perelman, D., Byshevsky, A., Litmanovich, O., Keidar, I.: SMV: Selective Multi-Versioning STM. In: Proc. of the 25th Intl. Symp. on Distributed Computing, Rome, Italy (September 2011)
Perelman, D., Fan, R., Keidar, I.: On Maintaining Multiple Versions in STM. In: Proc. of the 29th ACM Symp. on Principles of Distributed Computing, Zurich, Switzerland (July 2010)
Reconfigurable Software Transactional Memory Runtime. Project web site, code.google.com/p/rstm/
Riegel, T., Felber, P., Fetzer, C.: A lazy snapshot algorithm with eager validation. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 284–298. Springer, Heidelberg (2006)
Riegel, T., Fetzer, C., Felber, P.: Snapshot Isolation for Software Transactional Memory. In: 1st ACM SIGPLAN Wkshp. on Transactional Computing, Ottawa, ON, Canada (June 2006)
Riegel, T., Fetzer, C., Felber, P.: Time-based Transactional Memory with Scalable Time Bases. In: Proc. of the 19th ACM Symp. on Parallelism in Algorithms and Architectures, San Diego, CA (June 2007)
Spear, M.F., Michael, M.M., von Praun, C.: RingSTM: Scalable Transactions with a Single Atomic Instruction. In: Proc. of the 20th ACM Symp. on Parallelism in Algorithms and Architectures, Munich, Germany (June 2008)
Treiber, R.K.: Systems Programming: Coping with Parallelism. RJ 5118, IBM Almaden Research Center (April 1986)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
� 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lu, L., Scott, M.L. (2013). Generic Multiversion STM. In: Afek, Y. (eds) Distributed Computing. DISC 2013. Lecture Notes in Computer Science, vol 8205. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-41527-2_10
Download citation
DOI: https://doi.org/10.1007/978-3-642-41527-2_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-41526-5
Online ISBN: 978-3-642-41527-2
eBook Packages: Computer ScienceComputer Science (R0)