Recoverable FCFS Mutual Exclusion with Wait-Free Recovery

Authors Prasad Jayanti, Anup Joshi

Thumbnail PDF


  • Filesize: 0.52 MB
  • 15 pages

Document Identifiers

Author Details

Prasad Jayanti
Anup Joshi

Cite AsGet BibTex

Prasad Jayanti and Anup Joshi. Recoverable FCFS Mutual Exclusion with Wait-Free Recovery. In 31st International Symposium on Distributed Computing (DISC 2017). Leibniz International Proceedings in Informatics (LIPIcs), Volume 91, pp. 30:1-30:15, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2017)


Traditional mutual exclusion locks are not resilient to failures: if there is a power outage, the memory is wiped out. Thus, when the system comes back on, the lock will have to be restored to the initial state, i.e., all processes are rolled back to the Remainder section and all variables are reset to their initial values. Recently, Golab and Ramaraju showed that we can improve this state of the art by exploiting the Non-Volatile RAM (NVRAM). They designed algorithms that, by maintaining shared variables in NVRAM, allow processes to recover from crashes on their own without a need for a global reset, even though a crash can wipe out the local memory of a process. We present a Recoverable Mutual Exclusion algorithm using the commonly supported CAS primitive. The main features of our algorithm are that it satisfies FCFS, it ensures that each process recovers in a wait-free manner, and in the absence of failures, it guarantees a worst-case Remote Memory Reference (RMR) complexity of O(lg n) on both Cache Coherent (CC) and Distributed Shared Memory (DSM) machines, where n is the number of processes for which the algorithm is designed. This bound matches the Omega(lg n) RMR lower bound by Attiya, Hendler, and Woelfel for Mutual Exclusion algorithms that use comparison primitives.
  • concurrent algorithm
  • synchronization
  • mutual exclusion
  • recovery
  • fault tolerance
  • non-volatile main memory
  • shared memory
  • multi-core algorithms


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Hagit Attiya, Danny Hendler, and Philipp Woelfel. Tight RMR Lower Bounds for Mutual Exclusion and Other Problems. In Proc. of the Fortieth ACM Symposium on Theory of Computing, STOC'08, pages 217-226, New York, NY, USA, 2008. ACM. Google Scholar
  2. E. W. Dijkstra. Solution of a Problem in Concurrent Programming Control. Commun. ACM, 8(9):569-, September 1965. Google Scholar
  3. Wojciech Golab and Danny Hendler. Recoverable mutual exclusion in sub-logarithmic time. In Proceedings of the ACM Symposium on Principles of Distributed Computing, PODC'17, pages 211-220, New York, NY, USA, 2017. ACM. Google Scholar
  4. Wojciech Golab and Aditya Ramaraju. Recoverable Mutual Exclusion: [Extended Abstract]. In Proceedings of the 2016 ACM Symposium on Principles of Distributed Computing, PODC'16, pages 65-74, New York, NY, USA, 2016. ACM. Google Scholar
  5. Maurice Herlihy. Wait-free Synchronization. ACM Trans. Program. Lang. Syst., 13(1):124-149, January 1991. Google Scholar
  6. Maurice P. Herlihy and Jeannette M. Wing. Linearizability: A Correctness Condition for Concurrent Objects. ACM Trans. Program. Lang. Syst., 12(3):463-492, July 1990. Google Scholar
  7. Prasad Jayanti. f-arrays: Implementation and Applications. In Proceedings of the Twenty-first Symposium on Principles of Distributed Computing, PODC'02, pages 270-279, New York, NY, USA, 2002. ACM. Google Scholar
  8. Leslie Lamport. A New Solution of Dijkstra’s Concurrent Programming Problem. Commun. ACM, 17(8):453-455, August 1974. Google Scholar
  9. John M. Mellor-Crummey and Michael L. Scott. Algorithms for Scalable Synchronization on Shared-memory Multiprocessors. ACM Trans. Comput. Syst., 9(1):21-65, February 1991. Google Scholar
  10. Dushyanth Narayanan and Orion Hodson. Whole-system persistence. In Proceedings of the Seventeenth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XVII, pages 401-410, New York, NY, USA, 2012. ACM. Google Scholar
  11. Aditya Ramaraju. RGLock: Recoverable mutual exclusion for non-volatile main memory systems. Master’s thesis, University of Waterloo, 2015. URL:
  12. Jae-Heon Yang and Jams H. Anderson. A fast, scalable mutual exclusion algorithm. Distributed Computing, 9(1):51-60, 1995. Google Scholar