Results 1 - 10
of
35
Synthesis of fault-tolerant concurrent programs
- Proceedings of the 17th ACM Symposium on Principles of Distributed Computing (PODC
, 1998
"... Methods for mechanically synthesizing concurrent programs from temporal logic specifications obviate the need to manually construct a program and compose a proof of its correctness. A serious drawback of extant synthesis methods, however, is that they produce concurrent programs for models of comput ..."
Abstract
-
Cited by 34 (5 self)
- Add to MetaCart
Methods for mechanically synthesizing concurrent programs from temporal logic specifications obviate the need to manually construct a program and compose a proof of its correctness. A serious drawback of extant synthesis methods, however, is that they produce concurrent programs for models of computation that are often unrealistic. In particular, these methods assume completely fault-free operation, i.e., the programs they produce are fault-intolerant. In this paper, we show how to mechanically synthesize fault-tolerant concurrent programs for various fault classes. We illustrate our method by synthesizing fault-tolerant solutions to the mutual exclusion and barrier synchronization problems. Categories and Subject Descriptors: F.3.1 [Logics and Meanings of Programs]: Specifying and Verifying and Reasoning about Programs—logics of programs, mechanical verification, specification
SAT-Based Synthesis of Fault-Tolerance
"... We present a technique where we use SAT solvers in automatic synthesis of fault-tolerant distributed programs from their faultintolerant version. Since adding fault-tolerance to distributed programs is NP-complete, we use state-of-the-art SAT solvers to benefit from efficient heuristics integrated i ..."
Abstract
-
Cited by 20 (12 self)
- Add to MetaCart
We present a technique where we use SAT solvers in automatic synthesis of fault-tolerant distributed programs from their faultintolerant version. Since adding fault-tolerance to distributed programs is NP-complete, we use state-of-the-art SAT solvers to benefit from efficient heuristics integrated in SAT solvers to deal with the exponential complexity of adding fault-tolerance. Also, such SAT-based technique has the potential to use multiple instances of SAT solvers simultaneously so that independent sub-problems can be solved in parallel during synthesis.
Polynomial Time Synthesis of Byzantine Agreement
- Symposium on Reliable Distributed Systems
, 2001
"... In this paper, we present a polynomial time algorithm for automating the synthesis of a fault-tolerant distributed program from a fault-intolerant distributed program. Since the problem of synthesizing faulttolerant distributed program is NP-hard, we present heuristics that allow us to reduce the ..."
Abstract
-
Cited by 18 (6 self)
- Add to MetaCart
In this paper, we present a polynomial time algorithm for automating the synthesis of a fault-tolerant distributed program from a fault-intolerant distributed program. Since the problem of synthesizing faulttolerant distributed program is NP-hard, we present heuristics that allow us to reduce the complexity.
The Complexity of Adding Failsafe Fault-Tolerance
"... In this paper, we focus our attention on the problem of automating the addition of failsafe fault-tolerance where fault-tolerance is added to an existing (fault-intolerant) program. A failsafe faulttolerant program satisfies its specification (including safety and liveness) in the absence of faults. ..."
Abstract
-
Cited by 17 (9 self)
- Add to MetaCart
In this paper, we focus our attention on the problem of automating the addition of failsafe fault-tolerance where fault-tolerance is added to an existing (fault-intolerant) program. A failsafe faulttolerant program satisfies its specification (including safety and liveness) in the absence of faults. And, in the presence of faults, it satisfies its safety specification. We present a somewhat unexpected result that, in general, the problem of adding failsafe fault-tolerance in distributed programs is NP-hard. Towards this end, we reduce the 3-SAT problem to the problem of adding failsafe fault-tolerance. We also identify a class of specifications, monotonic specifications and a class of programs, monotonic programs. Given a (positive) monotonic specification and a (negative) monotonic program, we show that failsafe fault-tolerance can be added in polynomial time. We note that the monotonicity restrictions are met for commonly encountered problems such as Byzantine agreement, distributed consensus, and atomic commitment. Finally, we argue that the restrictions on the specifications and programs are necessary to add failsafe fault-tolerance in polynomial time; we prove that if only one of these conditions is satisfied, the addition of failsafe faulttolerance is still NP-hard.
Automated synthesis of multitolerance
- IEEE Conference on Dependable and Network Systems (DSN’04
, 2004
"... We concentrate on automated synthesis of multitolerant programs, i.e., programs that tolerate multiple classes of faults and provide a (possibly) different level of fault-tolerance to each class. We consider three levels of fault-tolerance: (1) failsafe, where in the presence of faults, the synthesi ..."
Abstract
-
Cited by 15 (5 self)
- Add to MetaCart
We concentrate on automated synthesis of multitolerant programs, i.e., programs that tolerate multiple classes of faults and provide a (possibly) different level of fault-tolerance to each class. We consider three levels of fault-tolerance: (1) failsafe, where in the presence of faults, the synthesized program guarantees safety, (2) nonmasking, where in the presence of faults, the synthesized program recovers to states from where its safety and liveness are satisfied, and (3) masking where in the presence of faults the synthesized program satisfies safety and recovers to states from where its safety and liveness are satisfied. We focus on the automated synthesis of finite-state multitolerant programs in high atomicity model where the program can read and write all its variables in an atomic step. We show that if one needs to add failsafe (respectively, nonmasking) fault-tolerance to one class of faults and masking faulttolerance to another class of faults then such addition can be done in polynomial time in the state space of the faultintolerant program. However, if one needs to add failsafe fault-tolerance to one class of faults and nonmasking faulttolerance to another class of faults then the resulting problem is NP-complete. We find this result to be counterintuitive since adding failsafe and nonmasking fault-tolerance to the same class of faults (which is equivalent to adding masking fault-tolerance to that class of faults) can be done in polynomial time, whereas adding failsafe fault-tolerance to one class of faults and nonmasking fault-tolerance to a different class of faults is NP-complete. Keywords: Fault-tolerance, Automatic addition of faulttolerance, Formal methods, Program synthesis, Distributed programs 1
Exploiting symbolic techniques in automated synthesis of distributed programs
- In IEEE International Conference on Distributed Computing Systems
, 2007
"... Automated formal analysis methods such as program verification and synthesis algorithms often suffer from time complexity of their decision procedures and also high space complexity known as the state explosion problem. Symbolic techniques, in which elements of a problem are represented by Boolean f ..."
Abstract
-
Cited by 10 (6 self)
- Add to MetaCart
Automated formal analysis methods such as program verification and synthesis algorithms often suffer from time complexity of their decision procedures and also high space complexity known as the state explosion problem. Symbolic techniques, in which elements of a problem are represented by Boolean formulae, are desirable in the sense that they often remedy the state explosion problem and time complexity of decision procedures. Although symbolic techniques have successfully been used in program verification, their benefits have not yet been exploited in the context of program synthesis and transformation extensively. In this paper, we present a symbolic method for automatic synthesis of fault-tolerant distributed programs. Our experimental results on synthesis of classical fault-tolerant distributed problems such as Byzantine agreement and token ring show a significant performance improvement by several orders of magnitude in both time and space complexity. To the best of our knowledge, this is the first illustration where programs with large state space (beyond 2 100) is handled during synthesis.
A.: Automating the addition of failsafe fault-tolerance: Beyond fusion-closed specifications
- Formal Techniques in Real-Time and FaultTolerant Systems (FTRTFT
, 2004
"... The fault tolerance theories of Arora and Kulkarni [3] and of Jhumka et al. [11] view a fault-tolerant program as the result of composing a fault-intolerant program with fault tolerance components called detectors and correctors. At their core, the theories assume that the correctness specifications ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
The fault tolerance theories of Arora and Kulkarni [3] and of Jhumka et al. [11] view a fault-tolerant program as the result of composing a fault-intolerant program with fault tolerance components called detectors and correctors. At their core, the theories assume that the correctness specifications under consideration are fusion closed. In general, fusion closure of specifications can be achieved by adding history variables to the program. However, addition of history variables causes an exponential growth of the state space of the program, causing addition of fault tolerance to be expensive. To redress this problem, we present a method which can be used to add history information to a program in a way that (in a certain sense) minimizes the additional states. Hence, automated methods that add fault tolerance can now be efficiently applied in environments where specifications are not necessarily fusion closed. Keywords:
Complexity Issues in Automated Synthesis of Failsafe
"... We focus on the problem of synthesizing failsafe fault-tolerance where fault-tolerance ..."
Abstract
-
Cited by 7 (5 self)
- Add to MetaCart
We focus on the problem of synthesizing failsafe fault-tolerance where fault-tolerance
On Systematic Design of Fast and Perfect Detectors
- Swiss Federal Institute of Technology (EPFL), School of Computer and Communication Sciences
, 2002
"... We present a theory of fast and perfect detector components that extends the theory of detectors and correctors of Arora and Kulkarni, and based on which, we develop an algorithm that automatically transforms a fault-intolerant program into a fail-safe fault-tolerant program. Apart from presenting ..."
Abstract
-
Cited by 6 (4 self)
- Add to MetaCart
We present a theory of fast and perfect detector components that extends the theory of detectors and correctors of Arora and Kulkarni, and based on which, we develop an algorithm that automatically transforms a fault-intolerant program into a fail-safe fault-tolerant program. Apart from presenting novel insights into the working principles of detectors, the theory also allows the definition of a detection latency e#ciency metric for a fail-safe fault-tolerant program. We prove that in contrast to an earlier algorithm by Kulkarni and Arora, our algorithm produces fail-safe fault-tolerant programs with optimal detection latency. The application area of our results is in the domain of distributed embedded applications.
Adding fault-tolerance using pre-synthesized components
- FIFTH EUROPEAN DEPENDABLE COMPUTING CONFERENCE (EDCC-5), LNCS
, 2003
"... We present a hybrid synthesis method for automatic addition of fault-tolerance to distributed programs. In particular, we automatically specify and add pre-synthesized fault-tolerance components to programs in the cases where existing heuristics fail to add fault-tolerance. Such addition of pre-syn ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
We present a hybrid synthesis method for automatic addition of fault-tolerance to distributed programs. In particular, we automatically specify and add pre-synthesized fault-tolerance components to programs in the cases where existing heuristics fail to add fault-tolerance. Such addition of pre-synthesized components has the advantage of reusing pre-synthesized fault-tolerance components in the synthesis of different programs, and as a result, reusing the effort put in the synthesis of one program for the synthesis of another program. Our synthesis method is sound in that the synthesized fault-tolerant program satisfies its specification in the absence of faults, and provides desired level of faulttolerance in the presence of faults. We illustrate our synthesis method by adding pre-synthesized components with linear topology to a token ring program that tolerates the corruption of all processes. Also, we have reused the same component in the synthesis of a fault-tolerant alternating bit protocol. Elsewhere, we have applied this method for adding presynthesized components with hierarchical topology.

