Recoverable, Abortable, and Adaptive Mutual Exclusion with Sublogarithmic RMR Complexity
We present the first recoverable mutual exclusion (RME) algorithm that is simultaneously abortable, adaptive to point contention, and with sublogarithmic RMR complexity. Our algorithm has O(min(K,log_W N)) RMR passage complexity and O(F + min(K,log_W N)) RMR super-passage complexity, where K is the number of concurrent processes (point contention), W is the size (in bits) of registers, and F is the number of crashes in a super-passage. Under the standard assumption that W=Θ(log N), these bounds translate to worst-case O(log N/loglog N) passage complexity and O(F + log N/loglog N) super-passage complexity. Our key building blocks are: * A D-process abortable RME algorithm, for D ≤ W, with O(1) passage complexity and O(1+F) super-passage complexity. We obtain this algorithm by using the Fetch-And-Add (FAA) primitive, unlike prior work on RME that uses Fetch-And-Store (FAS/SWAP). * A generic transformation that transforms any abortable RME algorithm with passage complexity of B < W, into an abortable RME lock with passage complexity of O(min(K,B)).
READ FULL TEXT