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.
Author sequence follows lexical order of last names.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Technically \(\infty \), which is assigned to \(tutl_i \), cannot be decremented. But here as mentioned earlier, we use \(\infty \) to denote the largest possible value that can be represented in a system.
- 2.
Code is available here: https://github.com/PDCRL/KSFTM.
References
Herlihy, M., Moss, J.E.B.: Transactional memory: architectural support for lock-free data structures. SIGARCH Comput. Archit. News 21(2) (1993)
Shavit, N., Touitou, D.: Software transactional memory. In: PODC (1995)
Guerraoui, R., Kapalka, M.: On the correctness of transactional memory. In: PPoPP (2008)
Kuznetsov, P., Peri, S.: Non-interference and local correctness in transactional memory. In: ICDCN (2014) 197–211
Kuznetsov, P., Peri, S.: Non-interference and local correctness in transactional memory. Theor. Comput. Sci. 688, 103–116 (2017)
Papadimitriou, C.H.: The serializability of concurrent database updates. J. ACM 26(4) (1979)
Herlihy, M., Shavit, N.: The Art of Multiprocessor Programming, Revised Reprint, 1st edn. Morgan Kaufmann Publishers Inc., San Francisco (2012)
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_22
Bushkov, V., Guerraoui, R., Kapalka, M.: On the liveness of transactional memory. In: ACM Symposium on PODC (2012)
Gramoli, V., Guerraoui, R., Trigonakis, V.: TM2C: a software transactional memory for many-cores. In: EuroSys (2012)
Waliullah, M.M., Stenström, P.: Schemes for avoiding starvation in transactional memory systems. Concurr. Comput. Pract. Exp. 21(7), 859–873 (2009)
Spear, M.F., Dalessandro, L., Marathe, V.J., Scott, M.L.: A comprehensive strategy for contention management in software transactional memory (2009)
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_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_10
Fernandes, S.M., Cachopo, J.: Lock-free and scalable multi-version software transactional memory. In: PPoPP (2011)
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_9
Dalessandro, L., Spear, M.F., Scott, M.L.: NOrec: streamlining STM by abolishing ownership records. In: PPoPP (2010)
Felber, P., Gramoli, V., Guerraoui, R.: Elastic transactions. J. Parallel Distrib. Comput. 100(C), 103–127 (2017)
Minh, C.C., Chung, J., Kozyrakis, C., Olukotun, K.: STAMP: stanford transactional applications for multi-processing. In: IISWC (2008)
Guerraoui, R., Kapalka, M.: Principles of Transactional Memory, Synthesis Lectures on Distributed Computing Theory. Morgan and Claypool, San Rafael (2010)
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)
Bernstein, P.A., Goodman, N.: Multiversion concurrency control: theory and algorithms. ACM Trans. Database Syst 8, 465–483 (1983)
Herlihy, M.P., Wing, J.M.: Linearizability: a correctness condition for concurrent objects. ACM Trans. Program. Lang. Syst. 12(3), 463–492 (1990)
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_20
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_21
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_21
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_2
Acknowledgments
We are thankful to the anonymous reviewers for carefully reading the paper and providing us valuable suggestions.
Author information
Authors and Affiliations
Corresponding authors
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Chaudhary, V.P., Juyal, C., Kulkarni, S., Kumari, S., Peri, S. (2019). Achieving Starvation-Freedom in Multi-version Transactional Memory Systems. In: Atig, M., Schwarzmann, A. (eds) Networked Systems. NETYS 2019. Lecture Notes in Computer Science(), vol 11704. Springer, Cham. https://doi.org/10.1007/978-3-030-31277-0_20
Download citation
DOI: https://doi.org/10.1007/978-3-030-31277-0_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31276-3
Online ISBN: 978-3-030-31277-0
eBook Packages: Computer ScienceComputer Science (R0)