An Artificial Bee Colony Algorithm for Detecting Distributed Predicates (original) (raw)
Related papers
A Harmony Search Based Algorithm for Detecting Distributed Predicates
International Journal of Advanced Computer Science and Applications, 2012
Detection of distributed predicates (also referred to as runtime verification) can be used to verify that a particular run of a given distributed program satisfies certain properties (represented as predicates). Consequently, distributed predicates detection techniques can be used to effectively improve the dependability of a given distributed application. Due to concurrency, the detection of distributed predicates can incur significant overhead. Most of the effective techniques developed to solve this problem work efficiently for certain classes of predicates, like conjunctive predicates. In this paper, we have presented a technique based on harmony search to efficiently detect the satisfaction of a predicate under the possibly modality. We have implemented the proposed technique and we have conducted several experiments to demonstrate its effectiveness.
Detection of weak unstable predicates in distributed programs
IEEE Transactions on Parallel and Distributed Systems, 1994
|This paper discusses detection of global predicates in a distributed program. Earlier algorithms for detection of global predicates proposed by Chandy and Lamport work only for stable predicates. A predicate is stable if it does not turn false once it becomes true. Our algorithms detect even unstable predicates without excessive overhead. In the past, such predicates have been regarded as too dicult to detect. The predicates are speci ed using a logic described formally in this paper. We discuss detection of weak conjunctive predicates which are formed by conjunction of predicates local to processes in the system. Our detection methods will detect if such a predicate is true for any interleaving of events in the system, whether the predicate is stable or not. Also, any predicate which can be reduced to a set of weak conjunctive predicates is detectable. This class of predicates captures many global predicates that are of interest to a programmer. The message complexity of our algorithm is bounded by the number of messages used by the program. The main application of our results are in debugging and testing of distributed programs. Our algorithms have been incorporated in a distributed debugger which runs on a network of Sun Workstations under SunOS.
Detection of strong unstable predicates in distributed programs
IEEE Transactions on Parallel and Distributed Systems, 1996
This paper discusses detection of global predicates in a distributed program. A run of a distributed program results in a set of sequential traces, one for each process. These traces may be combined to form many global sequences consistent with the single run of the program. A strong global predicate is true in a run if it is true for all global sequences consistent with the run. We present algorithms which detect if the given strong global predicate became true in a run of a distributed program.
On Detecting Global Predicates in Distributed Computations
2001
Monitoring of global predicates is a fundamental prob- lem in asynchronous distributed systems. This problem arises in various contexts such as design, testing and debug- ging, and fault-tolerance of distributed programs. In this paper, we establish that the problem of determining whether there exists a consistent cut of a computation that satisfies a predicate in -CNF, , in which no
Deriving distributed algorithms from a general predicate detector
computer software and applications conference, 1995
Designing and debugging distributed systems requires the detection of conditions across the entire system. As an illustration, monitoring the status of an application requires detection of termination, and using virtual time requires the periodic calculation of the global virtual time. The Generalized Conjunctive Predicate (GCP) detector o ers a method to derive detection algorithms for these and other problems based on optimizing the base algorithm.
Distributed predicate detection in a faulty environment
Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183)
There has been very little research in distributed predicate detection for faulty, asynchronous environments. In this paper we de ne a class of predicates called set decreasing predicates which can be detected in such an environment. We introduce a set of failure detectors called in nitely often accurate detectors which are implementable in asynchronous systems. Based on these failure detectors we present an algorithm to detect conjunction of local predicates and send-monotonic channel predicates. Since perfect failure detection is impossible in an asynchronous system, we cannot guarantee that our detection algorithm will not have false detections. However, if the predicate ever holds then it is guaranteed to be detected.
Efficient detection of a locally stable predicate in a distributed system
Journal of Parallel and Distributed Computing, 2007
We present an efficient approach to detect a locally stable predicate in a distributed computation. Examples of properties that can be formulated as locally stable predicates include termination and deadlock of a subset of processes. Our algorithm does not require application messages to be modified to carry control information (e.g., vector timestamps), nor does it inhibit events (or actions) of the underlying computation. The worst-case message complexity of our algorithm is O(n(m + 1)), where n is the number of processes in the system and m is the number of events executed by the underlying computation. We show that, in practice, its message complexity should be much lower than its worst-case message complexity. The detection latency of our algorithm is O(d) time units, where d is the diameter of communication topology. Our approach also unifies several known algorithms for detecting termination and deadlock. We also show that our algorithm for detecting a locally stable predicate can be used to efficiently detect a stable predicate that is a monotonic function of other locally stable predicates.
Global Predicate Detection in Distributed Systems with Small Faults
Lecture Notes in Computer Science, 2007
We study the problem of global predicate detection in presence of permanent and transient failures. We term the transient failures as small faults. We show that it is impossible to detect predicates in an asynchronous distributed system prone to small faults even if nodes are equipped with a powerful device known as failure detector sequencer (denoted by Σ). To redress this impossibility, we introduce a theoretical device, known as a small fault sequencer (denoted by ΣSF), and show that ΣSF is necessary and sufficient for predicate detection. Unfortunately, we also show that ΣSF cannot be implemented even in a synchronous distributed system. Fortunately, however, we show that predicate detection can be achieved with high probability in synchronous systems.
A Distributed Abstraction Algorithm for Online Predicate Detection
2013 IEEE 32nd International Symposium on Reliable Distributed Systems, 2013
Analyzing a distributed computation is a hard problem in general due to the combinatorial explosion in the size of the state-space with the number of processes in the system. By abstracting the computation, unnecessary state explorations can be avoided. Computation slicing is an approach for abstracting distributed computations with respect to a given predicate. We focus on regular predicates, a family of predicates that covers many commonly used predicates for runtime verification. The existing algorithms for computation slicing are centralized-a single process is responsible for computing the slice in either offline or online manner. In this paper, we present first distributed online algorithm for computing the slice of a distributed computation with respect to a regular predicate. Our algorithm distributes the work and storage requirements across the system, thus reducing the space and computation complexity per process.
Detection of global predicates: Techniques and their limitations
Distributed Computing, 1998
We show that the problem of predicate detection in distributed systems is NP-complete. In the past, efficient algorithms have been developed for special classes of predicates such as stable predicates, observer-independent predicates, and conjunctive predicates. We introduce a class of predicates, semi-linear predicates, which properly contains all of the above classes. We first discuss stable, observer-independent and semi-linear classes of predicates and their relationships with each other. We also study closure properties of these classes with respect to conjunction and disjunction. Finally, we discuss algorithms for detection of predicates in these classes. We provide a non-deterministic, detection algorithm for each class of predicate. We show that each class can be equivalently characterized by the degree of non-determinism present in the algorithm. Stable predicates are defined as those that can be detected by an algorithm with the most nondeterminism. All other classes can be derived by appropriately constraining the non-determinism in this algorithm. keywords: distributed debugging, predicate detection, unstable predicates. £ A preliminary version of this