Skip to main content

Generic Multiversion STM

  • Conference paper
Distributed Computing (DISC 2013)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8205))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. Cachopo, J., Rito-Silva, A.: Versioned Boxes as the Basis for Memory Transactions. Science of Computer Programming 63(2), 172–185 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. Dice, D., Shalev, O., Shavit, N.: Transactional Locking II. In: Proc. of the 20th Intl. Symp. on Distributed Computing, Stockholm, Sweden (September 2006)

    Google Scholar 

  7. 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)

    Google Scholar 

  8. Fraser, K., Harris, T.: Concurrent Programming Without Locks. ACM Trans. on Computer Systems 25(2), article 5 (May 2007)

    Google Scholar 

  9. Harris, T., Fraser, K.: Language Support for Lightweight Transactions. In: OOPSLA 2003 Conf. Proc., Anaheim, CA (October 2003)

    Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. 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)

    Google Scholar 

  16. Napper, J., Alvisi, L.: Lock-Free Serializable Transactions. Technical report TR-05-04, Dept. of Computer Sciences, Univ. of Texas at Austin (February 2005)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. Reconfigurable Software Transactional Memory Runtime. Project web site, code.google.com/p/rstm/

  20. 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)

    Chapter  Google Scholar 

  21. 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)

    Google Scholar 

  22. 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)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. Treiber, R.K.: Systems Programming: Coping with Parallelism. RJ 5118, IBM Almaden Research Center (April 1986)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics