### Abstract

The difficulty of designing fault-tolerant distributed algorithms increases with the severity of failures that an algorithm must tolerate, especially for systems with synchronous message passing. This paper considers methods that automatically translate algorithms tolerant of simple crash failures into ones tolerant of more severe failures. These translations simplify the design task by allowing algorithm designers to assume that processors fail only by stopping. Such translations can be quantified by two measures: fault-tolerance, which is a measure of how many processors must remain correct for the translation to be correct, and round-complexity, which is a measure' of how the translation increases the running time of an algorithm. Understanding these translations and their limitations with respect to these measures can provide insight into the relative impact of different models of faulty behavior on the ability to provide fault-tolerant applications for systems with synchronous message passing. This paper considers translations from crash failures to each of the following types of more severe failures: omission to send messages; omission to send and receive messages; and totally arbitrary behavior. It shows that previously developed translations to send-omission failures are optimal with respect to both fault-tolerance and round-complexity. It exhibits a hierarchy of translations to general (send/receive) omission failures that improves upon the fault-tolerance of previously developed translations. These translations are optimal in that they cannot be improved with respect to one measure without negatively affecting the other; that is, the hierarchy of translations is matched by corresponding hierarchy of impossibility results. The paper also gives a hierarchy of translations to arbitrary failures that improves upon the round-complexity of previously developed translations. These translations are near-optimal; the hierarchy is matched by a hierarchy of impossibility results whose fault-tolerances differ from those of the translations only by small constants.

Original language | English (US) |
---|---|

Pages (from-to) | 499-554 |

Number of pages | 56 |

Journal | Journal of the ACM |

Volume | 48 |

Issue number | 3 |

DOIs | |

State | Published - May 2001 |

### Fingerprint

### Keywords

- Crash failures
- Fault-tolerance
- Translations

### ASJC Scopus subject areas

- Hardware and Architecture
- Information Systems
- Computer Graphics and Computer-Aided Design
- Software
- Theoretical Computer Science
- Computational Theory and Mathematics

### Cite this

*Journal of the ACM*,

*48*(3), 499-554. https://doi.org/10.1145/382780.382784

**Simplifying fault-tolerance : Providing the abstraction of crash failures.** / Bazzi, Rida; Neiger, Gil.

Research output: Contribution to journal › Article

*Journal of the ACM*, vol. 48, no. 3, pp. 499-554. https://doi.org/10.1145/382780.382784

}

TY - JOUR

T1 - Simplifying fault-tolerance

T2 - Providing the abstraction of crash failures

AU - Bazzi, Rida

AU - Neiger, Gil

PY - 2001/5

Y1 - 2001/5

N2 - The difficulty of designing fault-tolerant distributed algorithms increases with the severity of failures that an algorithm must tolerate, especially for systems with synchronous message passing. This paper considers methods that automatically translate algorithms tolerant of simple crash failures into ones tolerant of more severe failures. These translations simplify the design task by allowing algorithm designers to assume that processors fail only by stopping. Such translations can be quantified by two measures: fault-tolerance, which is a measure of how many processors must remain correct for the translation to be correct, and round-complexity, which is a measure' of how the translation increases the running time of an algorithm. Understanding these translations and their limitations with respect to these measures can provide insight into the relative impact of different models of faulty behavior on the ability to provide fault-tolerant applications for systems with synchronous message passing. This paper considers translations from crash failures to each of the following types of more severe failures: omission to send messages; omission to send and receive messages; and totally arbitrary behavior. It shows that previously developed translations to send-omission failures are optimal with respect to both fault-tolerance and round-complexity. It exhibits a hierarchy of translations to general (send/receive) omission failures that improves upon the fault-tolerance of previously developed translations. These translations are optimal in that they cannot be improved with respect to one measure without negatively affecting the other; that is, the hierarchy of translations is matched by corresponding hierarchy of impossibility results. The paper also gives a hierarchy of translations to arbitrary failures that improves upon the round-complexity of previously developed translations. These translations are near-optimal; the hierarchy is matched by a hierarchy of impossibility results whose fault-tolerances differ from those of the translations only by small constants.

AB - The difficulty of designing fault-tolerant distributed algorithms increases with the severity of failures that an algorithm must tolerate, especially for systems with synchronous message passing. This paper considers methods that automatically translate algorithms tolerant of simple crash failures into ones tolerant of more severe failures. These translations simplify the design task by allowing algorithm designers to assume that processors fail only by stopping. Such translations can be quantified by two measures: fault-tolerance, which is a measure of how many processors must remain correct for the translation to be correct, and round-complexity, which is a measure' of how the translation increases the running time of an algorithm. Understanding these translations and their limitations with respect to these measures can provide insight into the relative impact of different models of faulty behavior on the ability to provide fault-tolerant applications for systems with synchronous message passing. This paper considers translations from crash failures to each of the following types of more severe failures: omission to send messages; omission to send and receive messages; and totally arbitrary behavior. It shows that previously developed translations to send-omission failures are optimal with respect to both fault-tolerance and round-complexity. It exhibits a hierarchy of translations to general (send/receive) omission failures that improves upon the fault-tolerance of previously developed translations. These translations are optimal in that they cannot be improved with respect to one measure without negatively affecting the other; that is, the hierarchy of translations is matched by corresponding hierarchy of impossibility results. The paper also gives a hierarchy of translations to arbitrary failures that improves upon the round-complexity of previously developed translations. These translations are near-optimal; the hierarchy is matched by a hierarchy of impossibility results whose fault-tolerances differ from those of the translations only by small constants.

KW - Crash failures

KW - Fault-tolerance

KW - Translations

UR - http://www.scopus.com/inward/record.url?scp=0141441473&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0141441473&partnerID=8YFLogxK

U2 - 10.1145/382780.382784

DO - 10.1145/382780.382784

M3 - Article

VL - 48

SP - 499

EP - 554

JO - Journal of the ACM

JF - Journal of the ACM

SN - 0004-5411

IS - 3

ER -