Abstract
Recoverable algorithms have blossomed recently in the distributed computing community in response to the commercial release of persistent main memory by Intel. In this context, recoverability refers to an algorithm’s capacity to meet its correctness guarantees despite crash failures, which affect the memory hierarchy in complex ways: any state written to the persistent memory medium is preserved, but any state held in DRAM and volatile CPU registers is lost, along with the volatile cache on some hardware platforms. Classic synchronization problems suddenly become more challenging and interesting to solve in this failure model. In this paper, we focus specifically on the recoverable variant of mutual exclusion, called recoverable mutual exclusion (RME), which was formalized recently by Golab and Ramaraju (PODC’16). Aiming to make RME locks more practical, we introduce a simple memory management scheme for an important class of RME locks, and discuss how to tune it.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The algorithm assumes that S[1..N] are unbounded integers, but 64-bit variables are sufficient in practice to prevent overflow.
- 2.
In the amortized analysis, the cost of executing the code in Fig. 2 by thread \(t_i\) is charged to \(t_i\)’s most recent \(N-1\) passages if they were all failure-free, otherwise it is charged to \(t_i\)’s most recent passage where it is recovering from a failure.
References
Anderson, T.E.: The performance of spin lock alternatives for shared-memory multiprocessors. IEEE Trans. Parallel Distrib. Syst. 1(1), 6–16 (1990)
Chan, D., Woelfel, P.: A tight lower bound for the RMR complexity of recoverable mutual exclusion. In: Proceedings of the 40th ACM Symposium on Principles of Distributed Computing (PODC), pp. 533–543 (2021)
Chan, D.Y.C., Woelfel, P.: Recoverable mutual exclusion with constant amortized RMR complexity from standard primitives. In: Proceedings of the 39th ACM Symposium on Principles of Distributed Computing (PODC), pp. 181–190 (2020)
David, T., Guerraoui, R., Trigonakis, V.: Everything you always wanted to know about synchronization but were afraid to ask. In: Proceedings of the 25th ACM Symposium on Operating System Principles (SOSP), pp. 33–48 (2013)
Dhoked, S., Mittal, N.: An adaptive approach to recoverable mutual exclusion. In: Proceedings of the 39th ACM Symposium on Principles of Distributed Computing (PODC), pp. 1–10 (2020)
Dhoked, S., Mittal, N.: An adaptive approach to recoverable mutual exclusion. CoRR abs/2006.07086 (2020). https://arxiv.org/abs/2006.07086
Dijkstra, E.W.: Solutions of a problem in concurrent programming control (reprint). Commun. ACM 26(1), 21–22 (1983)
Golab, W., Hendler, D.: Recoverable mutual exclusion in sub-logarithmic time. In: Proceedings of the 36th ACM Symposium on Principles of Distributed Computing (PODC), pp. 211–220 (2017)
Golab, W., Hendler, D.: Recoverable mutual exclusion under system-wide failures. In: Proceedings of the 37th ACM Symposium on Principles of Distributed Computing (PODC), pp. 17–26 (2018)
Golab, W., Ramaraju, A.: Recoverable mutual exclusion. In: Proceedings of the 35th ACM Symposium on Principles of Distributed Computing (PODC), pp. 65–74 (2016)
Golab, W., Ramaraju, A.: Recoverable mutual exclusion. Distrib. Comput. 32(6), 535–564 (2019). https://doi.org/10.1007/s00446-019-00364-0
Jayanti, P., Jayanti, S., Joshi, A.: Optimal recoverable mutual exclusion using only FASAS. In: Podelski, A., Taïani, F. (eds.) NETYS 2018. LNCS, vol. 11028, pp. 191–206. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-05529-5_13
Jayanti, P., Jayanti, S., Joshi, A.: A recoverable mutex algorithm with sub-logarithmic RMR on both CC and DSM. In: Proceedings of the 38th ACM Symposium on Principles of Distributed Computing (PODC), pp. 177–186 (2019)
Jayanti, P., Joshi, A.: Recoverable FCFS mutual exclusion with wait-free recovery. In: Proceedings of the 31th International Symposium on Distributed Computing (DISC), pp. 30:1–30:15 (2017)
Jayanti, P., Joshi, A.: Recoverable mutual exclusion with abortability. In: Proceedings of the 7th International Conference on Networked Systems (NETYS), pp. 217–232 (2019)
Katzan, D., Morrison, A.: Recoverable, abortable, and adaptive mutual exclusion with sublogarithmic RMR complexity. In: Proceedings of the 24th International Conference on Principles of Distributed Systems (OPODIS), pp. 15:1–15:16 (2021)
Mellor-Crummey, J.M., Scott, M.L.: Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Trans. Comput. Syst. 9(1), 21–65 (1991)
Xiao, J., Zhang, Z., Golab, W.: Benchmarking recoverable mutex locks. In: Proceedings of the 32nd ACM Symposium on Parallel Algorithms and Architectures (SPAA), pp. 583–585 (2020)
Acknowledgements
We thank Neeraj Mittal and Sahil Dhoked for stimulating technical discussions of the RME problem. This research was supported by an Ontario Early Researcher Award, a Google Faculty Research Award, as well as the Natural Sciences and Engineering Research Council (NSERC) of Canada.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Segu, A., Golab, W. (2022). Recycling Memory in Recoverable Mutex Locks. In: Koulali, MA., Mezini, M. (eds) Networked Systems. NETYS 2022. Lecture Notes in Computer Science, vol 13464. Springer, Cham. https://doi.org/10.1007/978-3-031-17436-0_3
Download citation
DOI: https://doi.org/10.1007/978-3-031-17436-0_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-17435-3
Online ISBN: 978-3-031-17436-0
eBook Packages: Computer ScienceComputer Science (R0)