Long lived adaptive splitter and applications

Summary. Long-lived and adaptive implementations of mutual exclusion and renaming in the read/write shared memory model are presented. An implementation of a task is adaptive if the step complexity of any operation in the implementation is a function of the number of processes that take steps concurrently with the operation. The renaming algorithm assigns a new unique id in the range $1,\cdots, 4k^2$ to any process whose initial unique name is taken from a set of size N, for an arbitrary N and where k is the number of processes that actually take steps or hold a name while the new name is being acquired. The step complexity of acquiring a new name is $O(k^2)$, while the step complexity of releasing a name is 1. The space complexity of the algorithm is $O(Nn^2)$ where n is an upper bound on the number of processes that may be active at the same time (acquiring or holding new names), which could be N in the worst case.Both the system response time and the worst case number of operations per process in the presented mutual-exclusion algorithm are adaptive. Both algorithms rely on the basic building block of a long-lived and adaptive splitter. While the adaptive-splitter satisfies a slightly different set of properties than the Moir-Anderson splitter [MA95], it is adaptive and long-lived. In addition, the new splitter properties enable the construction of a non-blocking long-lived (2k-1)-renaming algorithm (which is optimal in the size of the new name space). We believe that the mechanisms introduced in our splitter implementation are interesting on their own, and might be used in other adaptive and long-lived constructions.

[1]  Leslie Lamport,et al.  A fast mutual exclusion algorithm , 1987, TOCS.

[2]  Yehuda Afek,et al.  Fast, wait-free (2k-1)-renaming , 1999, PODC '99.

[3]  Mark Moir,et al.  Wait-Free Algorithms for Fast, Long-Lived Renaming , 1995, Sci. Comput. Program..

[4]  Mark Moir,et al.  Using k-exclusion to implement resilient, scalable shared objects (extended abstract) , 1994, PODC '94.

[5]  Danny Dolev,et al.  Shared-memory vs. message-passing in an asynchronous distributed environment , 1989, PODC '89.

[6]  Michael Merritt,et al.  Speeding Lamport's Fast Mutual Exclusion Algorithm , 1993, Inf. Process. Lett..

[7]  Hagit Attiya,et al.  Renaming in an asynchronous environment , 1990, JACM.

[8]  Marcin Paprzycki,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 2001, Scalable Comput. Pract. Exp..

[9]  Mark Moir,et al.  Fast, Long-Lived Renaming Improved and Simplified , 1996, WDAG.

[10]  Hagit Attiya,et al.  Distributed Computing: Fundamentals, Simulations and Advanced Topics , 1998 .

[11]  N. Lynch,et al.  Timing-based mutual exclusion , 1992, [1992] Proceedings Real-Time Systems Symposium.

[12]  Gary L. Peterson,et al.  The ambiguity of choosing , 1989, PODC '89.

[13]  Hagit Attiya,et al.  Achievable cases in an asynchronous environment , 1987, 28th Annual Symposium on Foundations of Computer Science (sfcs 1987).

[14]  Manhoi Choy,et al.  Adaptive solutions to the mutual exclusion problem , 1993, PODC '93.

[15]  Yehuda Afek,et al.  Wait-free made fast , 1995, STOC '95.

[16]  Hagit Attiya,et al.  Adaptive wait-free algorithms for lattice agreement and renaming (extended abstract) , 1998, PODC '98.

[17]  G. Taubenfeld,et al.  Results about fast mutual exclusion , 1992, [1992] Proceedings Real-Time Systems Symposium.

[18]  Mark Moir,et al.  Long-lived renaming made fast , 1995, PODC '95.

[19]  Eugene Styer Improving fast mutual exclusion , 1992, PODC '92.

[20]  Maurice Herlihy,et al.  Wait-free synchronization , 1991, TOPL.

[21]  Maurice Herlihy,et al.  The asynchronous computability theorem for t-resilient tasks , 1993, STOC.

[22]  James H. Anderson,et al.  Fast and Scalable Mutual Exclusion , 1999, DISC.

[23]  Eli Gafni,et al.  Immediate atomic snapshots and fast renaming , 1993, PODC '93.