Assessing the Crash-Failure Assumption of Group Communication Protocols

Designing and correctly implementing Group Communication Systems (GCSs) is notoriously difficult. Assuming that processes fail only by crashing provides a powerful means to simplify the theoretical development of these systems. When making this assumption, however, one should not forget that clean crash failures provide only a coarse approximation of the effects that errors can have in distributed systems. Ignoring such a discrepancy can lead to complex GCS-based applications that pay a large price in terms of performance overhead yet fail to deliver the promised level of dependability. This paper provides a thorough study of error effects in real systems by demonstrating a \emph{error-injection-driven design methodology}, where error injection is integrated in the core steps of the design process of a robust fault-tolerant system. The methodology is demonstrated for the \emph{Fortika} toolkit, a Java-based GCS. Error injection enables us to uncover subtle reliability bottlenecks both in the design of Fortika and in the implementation of Java. Based on the obtained insights, we enhance Fortika's design to reduce the identified bottlenecks. Finally, a comparison of the results obtained for Fortika with the results obtained for the OCAML-based Ensemble system in a previous work, allows us to investigate the reliability implications that the choice of the development platform (Java versus OCAML) can have.

Published in:
Proceedings of the 16th IEEE International Symposium on Software Reliability Engineering
Presented at:
16th IEEE International Symposium on Software Reliability Engineering, Chicago, USA, November 8-11, 2005

Note: The status of this file is: EPFL only

 Record created 2005-11-25, last modified 2018-03-17

Download fulltextPDF
External link:
Download fulltextURL
Rate this document:

Rate this document:
(Not yet reviewed)