Enhancing The Fault-Tolerance of Nonmasking Programs

Sandeep S. Kulkarni and Ali Ebnenasir


In this paper, we focus on automated techniques to enhance the fault-tolerance of a nonmasking fault-tolerant program to masking. A masking program continually satisfies its specification even if faults occur. By contrast, a nonmasking program merely guarantees that after faults stop occurring, the program recovers to states from where it continually satisfies its specification. Until the recovery is complete, however, a nonmasking program can violate its (safety) specification. Thus, the problem of enhancing fault-tolerance from nonmasking to masking requires that safety be added and recovery be preserved. We focus on this enhancement problem for high atomicity programs --where each process can read all variables-- and for distributed programs --where restrictions are imposed on what processes can read and write. We present a sound and complete algorithm for high atomicity programs and a sound algorithm for distributed programs. We also argue that our algorithms are simpler than previous algorithms, where masking fault-tolerance is added to a fault-intolerant program. Hence, these algorithms can partially reap the benefits of automation when the cost of adding masking fault-tolerance to a fault-intolerant program is high. To illustrate
these algorithms, we show how the masking fault-tolerant programs for triple modular redundancy and Byzantine agreement can be obtained by
enhancing the fault-tolerance of the corresponding nonmasking versions. We also discuss how the derivation of these programs is simplified when we begin with a nonmasking fault-tolerant program.



BibTeX Entry


 author =       {S.~S.~Kulkarni and A.~Arora},   

title =        {Enhancing The Fault-Tolerance of Nonmasking Programs},  

 journal =      {International Conference on Distributed Computing Systems},   

year =         {2003},   

OPTkey =       {},   

OPTvolume =    {},   

OPTnumber =    {},   

OPTpages =     {},   

OPTmonth =     {},   

OPTnote =      {},  

 OPTannote =    {} 


Return to the publication list
Return to the Sandeep's home page