Generating Fast Indulgent Algorithms
Synchronous distributed algorithms are easier to design and prove correct than algorithms that tolerate asynchrony. Yet, in the real world, networks experience asynchrony and other timing anomalies. In this paper, we address the question of how to efficiently transform an algorithm that relies on synchronization into an algorithm that tolerates asynchronous executions. We introduce a transformation technique from synchronous algorithms to indulgent algorithms , which induces only a constant overhead in terms of time complexity in well-behaved executions.
Our technique is based on a new abstraction we call an asynchrony detector, which the participating processes implement collectively. The resulting transformation works for a large class of colorless tasks, including consensus and set agreement. Interestingly, we also show that our technique is relevant for colored tasks, by applying it to the renaming problem, to obtain the first indulgent renaming algorithm.
Unable to display preview. Download preview PDF.
- 1.Guerraoui, R.: Indulgent algorithms. In: PODC 2000, pp. 289–297. ACM, New York (July 2000)Google Scholar
- 3.Dutta, P., Guerraoui, R.: The inherent price of indulgence. In: PODC 2002: Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, pp. 88–97 (2002)Google Scholar
- 5.Lamport, L.: Generalized consensus and paxos. Microsoft Research Technical Report MSR-TR-2005-33 (March 2005)Google Scholar
- 11.Chandra, T.D., Toueg, S.: Unreliable failure detectors for asynchronous systems (preliminary version). In: ACM Symposium on Principles of Distributed Computing, pp. 325–340 (August 1991)Google Scholar
- 12.Gafni, E.: Round-by-round fault detectors (extended abstract): Unifying synchrony and asynchrony. In: Proceedings of the 17th Symposium on Principles of Distributed Computing (1998)Google Scholar