Abstract
Recent research has focused on designing concurrent algorithms that are resilient to process crashes. The idea is to leverage non-volatile memory so that processes can recover from crashes with as little disruption to the normal behavior of the system as possible. We present the first Recoverable Mutual Exclusion algorithm whose Remote Memory Reference (RMR) complexity is optimal for both Cache-Coherent (CC) and Distributed Shared Memory (DSM) machines. If a process fails f times during its attempt to acquire the Critical Section, our algorithm ensures that the process incurs O(1) RMRs on a DSM machine and O(f) RMRs on a CC machine, which we prove is an optimal bound. Our algorithm improves on a recent algorithm by Golab and Hendler in three ways: It has a provably optimal RMR complexity, has a wait-free Exit section, and less reliance on instructions that are not commonly supported on multiprocessors. In particular, Golab and Hendler’s algorithm relies on hardware support for both Fetch-And-Store-And-Store (FASAS) and Double-Word Compare-And-Swap (DCAS), while our algorithm relies only on FASAS. (If X and Y are shared variables and v is a value, FASAS(X, Y, v) writes X’s value in Y and writes v in X, all in a single atomic action.)
The first author is grateful to the Frank family and Dartmouth College for their support through James Frank Family Professorship of Computer Science.
The second author is grateful for the support of Department of Defense (DoD) through the National Defense Science & Engineering Graduate Fellowship (NDSEG) Program.
The third author is grateful for the support of Dartmouth Fellowship.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Dijkstra, E.W.: Solution of a problem in concurrent programming control. Commun. ACM 8(9), 569 (1965)
Golab, W., Hendler, D.: Recoverable mutual exclusion in sub-logarithmic time. In: Proceedings of the ACM Symposium on Principles of Distributed Computing. PODC 2017, pp. 211–220. ACM, New York (2017)
Golab, W., Ramaraju, A.: Recoverable mutual exclusion: [extended abstract]. In: Proceedings of the 2016 ACM Symposium on Principles of Distributed Computing. PODC 2016, pp. 65–74. ACM, New York (2016)
Jayanti, P., Joshi, A.: Recoverable FCFS mutual exclusion with wait-free recovery. In: 31st International Symposium on Distributed Computing. DISC, pp. 30:1–30:15 (2017)
Ramaraju, A.: RGLock: Recoverable mutual exclusion for non-volatile main memory systems. Master’s thesis. University of Waterloo (2015)
Craig, T.S.: Building FIFO and Priority-Queuing Spin Locks from Atomic Swap. Technical report TR-93-02-02, Department of Computer Science, University of Washington, February 1993
Dvir, R., Taubenfeld, G.: Mutual exclusion algorithms with constant RMR complexity and wait-free exit code. In: Proceedings of The 21st International Conference on Principles of Distributed Systems, OPODIS 2017 (2017)
Lamport, L.: A new solution of Dijkstra’s concurrent programming problem. Commun. ACM 17(8), 453–455 (1974)
Mellor-Crummey, J.M., Scott, M.L.: Algorithms for scalable synchronization on shared-memory multiprocessors. ACM Trans. Comput. Syst. 9(1), 21–65 (1991)
Acknowledgment
We are grateful to the anonymous reviewers for their careful and detailed reviews.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Jayanti, P., Jayanti, S., Joshi, A. (2019). Optimal Recoverable Mutual Exclusion Using only FASAS. In: Podelski, A., Taïani, F. (eds) Networked Systems. NETYS 2018. Lecture Notes in Computer Science(), vol 11028. Springer, Cham. https://doi.org/10.1007/978-3-030-05529-5_13
Download citation
DOI: https://doi.org/10.1007/978-3-030-05529-5_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-05528-8
Online ISBN: 978-3-030-05529-5
eBook Packages: Computer ScienceComputer Science (R0)