FTSyn: a framework for automatic synthesis of fault-tolerance

  • Authors:
  • Ali Ebnenasir;Sandeep S. Kulkarni;Anish Arora

  • Affiliations:
  • Michigan Technological University, Computer Science Department, 49931, Houghton, MI, USA;Michigan State University, Department of Computer Science and Engineering, 48824, East Lansing, MI, USA;Ohio State University, Department of Computer Science and Engineering, 43210, Columbus, OH, USA

  • Venue:
  • International Journal on Software Tools for Technology Transfer (STTT)
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper, we present a software framework for adding fault-tolerance to existing finite-state programs. The input to our framework is a fault-intolerant program and a class of faults that perturbs the program. The output of our framework is a fault-tolerant version of the input program. Our framework provides (1) the first automated tool for the synthesis of fault-tolerant distributed programs, and (2) an extensible platform for researchers to develop a repository of heuristics that deal with the complexity of adding fault-tolerance to distributed programs. We also present a set of heuristics for polynomial-time addition of fault-tolerance to distributed programs. We have used this framework for automated synthesis of several fault-tolerant programs including a simplified version of an aircraft altitude switch, token ring, Byzantine agreement, and agreement in the presence of Byzantine and fail-stop faults. These examples illustrate that our framework can be used for synthesizing programs that tolerate different types of faults (process restarts, Byzantine and fail-stop) and programs that are subject to multiple faults (Byzantine and fail-stop) simultaneously. We have found our framework to be highly useful for pedagogical purposes, especially for teaching concepts of fault-tolerance, automatic program transformation, and the effect of heuristics.