Recoverable Mutual Exclusion with Abortability
Recent advances in non-volatile main memory (NVRAM) technology have spurred research on designing algorithms that are resilient to process crashes. This paper is a fuller version of our conference paper <cit.>, which presents the first Recoverable Mutual Exclusion (RME) algorithm that supports abortability. Our algorithm uses only the read, write, and CAS operations, which are commonly supported by multiprocessors. It satisfies FCFS and other standard properties. Our algorithm is also adaptive. On DSM and Relaxed-CC multiprocessors, a process incurs O(min(k, log n)) RMRs in a passage and O(f+ min(k, log n)) RMRs in an attempt, where n is the number of processes that the algorithm is designed for, k is the point contention of the passage or the attempt, and f is the number of times that p crashes during the attempt. On a Strict CC multiprocessor, the passage and attempt complexities are O(n) and O(f+n). Attiya et al. proved that, with any mutual exclusion algorithm, a process incurs at least Ω(log n) RMRs in a passage, if the algorithm uses only the read, write, and CAS operations <cit.>. This lower bound implies that the worst-case RMR complexity of our algorithm is optimal for the DSM and Relaxed CC multiprocessors.
READ FULL TEXT