Advertisement

Achieving Starvation-Freedom in Multi-version Transactional Memory Systems

  • Ved P. ChaudharyEmail author
  • Chirag JuyalEmail author
  • Sandeep KulkarniEmail author
  • Sweta KumariEmail author
  • Sathya PeriEmail author
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11704)

Abstract

Software Transactional Memory systems (STMs) have garnered significant interest as an elegant alternative for addressing synchronization and concurrency issues with multi-threaded programming in multi-core systems. Client programs use STMs by issuing transactions. STM ensures that transaction either commits or aborts. A transaction aborted due to conflicts is typically re-issued with the expectation that it will complete successfully in a subsequent incarnation. However, many existing STMs fail to provide starvation freedom, i.e., in these systems, it is possible that concurrency conflicts may prevent an incarnated transaction from committing. To overcome this limitation, we systematically derive a novel starvation free algorithm for multi-version STM. Our algorithm can be used either with the case where the number of versions is unbounded and garbage collection is used or where only the latest K versions are maintained, KSFTM. We have demonstrated that our proposed algorithm performs better than existing state-of-the-art STMs.

Keywords

Software Transactional Memory System Concurrency control Starvation-freedom Opacity Local opacity Multi-version 

Notes

Acknowledgments

We are thankful to the anonymous reviewers for carefully reading the paper and providing us valuable suggestions.

References

  1. 1.
    Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. SIGARCH Comput. Archit. News 21(2) (1993)CrossRefGoogle Scholar
  2. 2.
    Shavit, N., Touitou, D.: Software transactional memory. In: PODC (1995)Google Scholar
  3. 3.
    Guerraoui, R., Kapalka, M.: On the correctness of transactional memory. In: PPoPP (2008)Google Scholar
  4. 4.
    Kuznetsov, P., Peri, S.: Non-interference and local correctness in transactional memory. In: ICDCN (2014) 197–211Google Scholar
  5. 5.
    Kuznetsov, P., Peri, S.: Non-interference and local correctness in transactional memory. Theor. Comput. Sci. 688, 103–116 (2017)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26(4) (1979)MathSciNetCrossRefGoogle Scholar
  7. 7.
    Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, Revised Reprint, 1st edn. Morgan Kaufmann Publishers Inc., San Francisco (2012) Google Scholar
  8. 8.
    Herlihy, M., Shavit, N.: On the nature of progress. In: Fernàndez Anta, A., Lipari, G., Roy, M. (eds.) OPODIS 2011. LNCS, vol. 7109, pp. 313–328. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-25873-2_22CrossRefGoogle Scholar
  9. 9.
    Bushkov, V., Guerraoui, R., Kapalka, M.: On the liveness of transactional memory. In: ACM Symposium on PODC (2012)Google Scholar
  10. 10.
    Gramoli, V., Guerraoui, R., Trigonakis, V.: TM2C: a software transactional memory for many-cores. In: EuroSys (2012)Google Scholar
  11. 11.
    Waliullah, M.M., Stenström, P.: Schemes for avoiding starvation in transactional memory systems. Concurr. Comput. Pract. Exp. 21(7), 859–873 (2009)CrossRefGoogle Scholar
  12. 12.
    Spear, M.F., Dalessandro, L., Marathe, V.J., Scott, M.L.: A comprehensive strategy for contention management in software transactional memory (2009)CrossRefGoogle Scholar
  13. 13.
    Kumar, P., Peri, S., Vidyasankar, K.: A TimeStamp based multi-version STM algorithm. In: Chatterjee, M., Cao, J., Kothapalli, K., Rajsbaum, S. (eds.) ICDCN 2014. LNCS, vol. 8314, pp. 212–226. Springer, Heidelberg (2014).  https://doi.org/10.1007/978-3-642-45249-9_14CrossRefGoogle Scholar
  14. 14.
    Lu, L., Scott, M.L.: Generic multiversion STM. In: Afek, Y. (ed.) DISC 2013. LNCS, vol. 8205, pp. 134–148. Springer, Heidelberg (2013).  https://doi.org/10.1007/978-3-642-41527-2_10CrossRefGoogle Scholar
  15. 15.
    Fernandes, S.M., Cachopo, J.: Lock-free and scalable multi-version software transactional memory. In: PPoPP (2011)CrossRefGoogle Scholar
  16. 16.
    Perelman, D., Byshevsky, A., Litmanovich, O., Keidar, I.: SMV: selective multi-versioning STM. In: Peleg, D. (ed.) DISC 2011. LNCS, vol. 6950, pp. 125–140. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-24100-0_9CrossRefGoogle Scholar
  17. 17.
    Dalessandro, L., Spear, M.F., Scott, M.L.: NOrec: streamlining STM by abolishing ownership records. In: PPoPP (2010)Google Scholar
  18. 18.
    Felber, P., Gramoli, V., Guerraoui, R.: Elastic transactions. J. Parallel Distrib. Comput. 100(C), 103–127 (2017)CrossRefGoogle Scholar
  19. 19.
    Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: stanford transactional applications for multi-processing. In: IISWC (2008)Google Scholar
  20. 20.
    Guerraoui, R., Kapalka, M.: Principles of Transactional Memory, Synthesis Lectures on Distributed Computing Theory. Morgan and Claypool, San Rafael (2010)zbMATHGoogle Scholar
  21. 21.
    Chaudhary, V.P., Juyal, C., Kulkarni, S.S., Kumari, S., Peri, S.: Starvation freedom in multi-version transactional memory systems. CoRR abs/1709.01033 (2017)Google Scholar
  22. 22.
    Bernstein, P.A., Goodman, N.: Multiversion concurrency control: theory and algorithms. ACM Trans. Database Syst 8, 465–483 (1983)MathSciNetCrossRefGoogle Scholar
  23. 23.
    Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)CrossRefGoogle Scholar
  24. 24.
    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).  https://doi.org/10.1007/11864219_20CrossRefGoogle Scholar
  25. 25.
    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).  https://doi.org/10.1007/978-3-540-87779-0_21CrossRefGoogle Scholar
  26. 26.
    Crain, T., Imbs, D., Raynal, M.: Read invisibility, virtual world consistency and probabilistic permissiveness are compatible. In: Xiang, Y., Cuzzocrea, A., Hobbs, M., Zhou, W. (eds.) ICA3PP 2011. LNCS, vol. 7016, pp. 244–257. Springer, Heidelberg (2011).  https://doi.org/10.1007/978-3-642-24650-0_21CrossRefGoogle Scholar
  27. 27.
    Bushkov, V., Guerraoui, R.: Liveness in transactional memory. In: Guerraoui, R., Romano, P. (eds.) Transactional Memory. Foundations, Algorithms, Tools, and Applications. LNCS, vol. 8913, pp. 32–49. Springer, Cham (2015).  https://doi.org/10.1007/978-3-319-14720-8_2CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.CSE DepartmentIIT HyderabadSangareddyIndia
  2. 2.CSE DepartmentMichigan State UniversityEast LansingUSA

Personalised recommendations