Skip to main content

A TimeStamp Based Multi-version STM Algorithm

  • Conference paper
Distributed Computing and Networking (ICDCN 2014)

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

Included in the following conference series:

Abstract

Software Transactional Memory Systems (STM) are a promising alternative for concurrency control in shared memory systems. Multiversion STM systems maintain multiple versions for each t-object. The advantage of storing multiple versions is that it facilitates successful execution of higher number of read operations than otherwise. Multi-Version permissiveness (mv-permissiveness) is a progress condition for multi-version STMs that states that a read-only transaction never aborts. Recently a STM system was proposed that maintains only a single version but is mv-permissive. This raises a natural question: how much concurrency can be achieved by multi-version STM. We show that fewer transactions are aborted in multi-version STMs than single-version systems. We also show that any STM system that is permissive w.r.t opacity must maintain at least as many versions as the number of live transactions. A direct implication of this result is that no single-version STM can be permissive w.r.t opacity.

In this paper we present a time-stamp based multiversion STM system that satisfies opacity and is easy to implement. We formally prove the correctness of the proposed STM system. Although many multi-version STM systems have been proposed in literature that satisfy opacity, to the best of our knowledge none of them has been formally proved to be opaque. We also present garbage collection procedure which deletes unwanted versions of the transaction objects. We show that with garbage collection the number of versions maintained is bounded by number of live transactions.

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. Attiya, H., Hillel, E.: A Single-Version STM that is Multi-Versioned Permissive. Theory Comput. Syst. 51(4), 425–446 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  2. Aydonat, U., Abdelrahman, T.: Serializability of Transactions in Software Transactional Memory. In: TRANSACT 2008: 3rd Workshop on Transactional Computing (February 2008)

    Google Scholar 

  3. Bernstein, P.A., Goodman, N.: Multiversion Concurrency Control: Theory and Algorithms. ACM Trans. Database Syst. 8(4), 465–483 (1983)

    Article  MATH  MathSciNet  Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

  5. Dice, D., Shalev, O., Shavit, N.: Transactional locking II. In: Dolev, S. (ed.) DISC 2006. LNCS, vol. 4167, pp. 194–208. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  6. Fernandes, S.M., Cachopo, J.: Lock-free and Scalable Multi-version Software Transactional Memory. In: Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming, PPoPP 2011, pp. 179–188. ACM, New York (2011)

    Chapter  Google Scholar 

  7. Guerraoui, R., Henzinger, T.A., Singh, V.: Permissiveness in Transactional Memories. In: Taubenfeld, G. (ed.) DISC 2008. LNCS, vol. 5218, pp. 305–319. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  8. Guerraoui, R., Kapalka, M.: On the Correctness of Transactional Memory. In: PPoPP 2008: Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 175–184. ACM, New York (2008)

    Chapter  Google Scholar 

  9. Guerraoui, R., Kapalka, M.: Principles of Transactional Memory, Synthesis Lectures on Distributed Computing Theory. Morgan and Claypool (2010)

    Google Scholar 

  10. Herlihy, M., Moss, J.E.B.: Transactional memory: Architectural Support for Lock-Free Data Structures. SIGARCH Comput. Archit. News 21(2), 289–300 (1993)

    Article  Google Scholar 

  11. Herlihy, M., Luchangco, V., Moir, M., Scherer III, W.N.: Software transactional memory for dynamic-sized data structures. In: PODC 2003: Proc. 22nd ACM Symposium on Principles of Distributed Computing, pp. 92–101 (July 2003)

    Google Scholar 

  12. Kumar, P., Peri, S.: A timestamp based multi-version stm protocol that satisfies opacity. CoRR, abs/1305.6624 (2013)

    Google Scholar 

  13. Kuznetsov, P., Peri, S.: On non-interference of transactions. CoRR, abs/1211.6315 (2012)

    Google Scholar 

  14. Kuznetsov, P., Ravi, S.: On the cost of concurrency in transactional memory. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds.) OPODIS 2011. LNCS, vol. 7109, pp. 112–127. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  15. Lu, L., Scott, M.L.: Unmanaged Multiversion STM. Transact (2012)

    Google Scholar 

  16. Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26(4), 631–653 (1979)

    Article  MATH  MathSciNet  Google Scholar 

  17. Papadimitriou, C.H., Kanellakis, P.C.: On Concurrency Control by Multiple Versions. ACM Trans. Database Syst. 9(1), 89–99 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  18. Perelman, D., Byshevsky, A., Litmanovich, O., Keidar, I.: SMV: Selective Multi-Versioning STM. In: Peleg, D. (ed.) Distributed Computing. LNCS, vol. 6950, pp. 125–140. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  19. Perelman, D., Fan, R., Keidar, I.: On Maintaining Multiple Versions in STM. In: PODC, pp. 16–25 (2010)

    Google Scholar 

  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. Shavit, N., Touitou, D.: Software Transactional Memory. In: PODC 1995: Proceedings of the Fourteenth Annual ACM Symposium on Principles of Distributed Computing, pp. 204–213. ACM, New York (1995)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kumar, P., Peri, S., Vidyasankar, K. (2014). A TimeStamp Based Multi-version STM Algorithm. In: Chatterjee, M., Cao, Jn., Kothapalli, K., Rajsbaum, S. (eds) Distributed Computing and Networking. ICDCN 2014. Lecture Notes in Computer Science, vol 8314. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45249-9_14

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-45249-9_14

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-45248-2

  • Online ISBN: 978-3-642-45249-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics