Failure Detector
   HOME

TheInfoList



OR:

In a
distributed computing Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers. The components of a distributed system commu ...
system, a failure detector is a
computer application Application software is any computer program that is intended for end-user use not operating, administering or programming the computer. An application (app, application program, software application) is any program that can be categorized as ...
or a
subsystem A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its environment, is described by its boundaries, structure and purpose and is exp ...
that is responsible for the detection of
node In general, a node is a localized swelling (a "knot") or a point of intersection (a vertex). Node may refer to: In mathematics * Vertex (graph theory), a vertex in a mathematical graph *Vertex (geometry), a point where two or more curves, lines ...
failures or crashes. Failure detectors were first introduced in 1996 by Chandra and Toueg in their book ''Unreliable Failure Detectors for Reliable Distributed Systems''. The book depicts the failure detector as a tool to improve consensus (the achievement of reliability) and
atomic broadcast In fault-tolerant distributed computing, an atomic broadcast or total order broadcast is a broadcast where all correct processes in a system of multiple processes receive the same set of messages in the same order; that is, the same sequence of me ...
(the same sequence of messages) in the distributed system. In other words, failure detectors seek errors in the
process A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management * Business process, activities that produce a specific s ...
, and the
system A system is a group of interacting or interrelated elements that act according to a set of rules to form a unified whole. A system, surrounded and influenced by its open system (systems theory), environment, is described by its boundaries, str ...
will maintain a level of
reliability Reliability, reliable, or unreliable may refer to: Science, technology, and mathematics Computing * Data reliability (disambiguation), a property of some disk arrays in computer storage * Reliability (computer networking), a category used to des ...
. In practice, after failure detectors spot crashes, the system will ban the processes that are making mistakes to prevent any further serious crashes or errors. In the 21st century, failure detectors are widely used in distributed computing systems to detect application errors, such as a
software application Application software is any computer program that is intended for end-user use not computer operator, operating, system administration, administering or computer programming, programming the computer. An application (app, application program, sof ...
stops functioning properly. As the distributed computing projects (see List of distributed computing projects) become more and more popular, the usage of the failure detects also becomes important and critical.


Origin


Unreliable failure detector

Chandra and Toueg, the co-authors of the book ''Unreliable Failure Detectors for Reliable Distributed System''s (1996), approached the concept of detecting failure nodes by introducing the unreliable failure detector. They describe the behavior of a unreliable failure detector in a distributed computing system as: after each
process A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management * Business process, activities that produce a specific s ...
in the system entered a local failure detector component, each local
component Component may refer to: In engineering, science, and technology Generic systems *System components, an entity with discrete structure, such as an assembly or software module, within a system considered at a particular level of analysis * Lumped e ...
will examine a portion of all processes within the system. In addition, each process must also contain programs that are currently suspected by failure detectors.


Failure detector

Chandra and Toueg claimed that an unreliable failure detector can still be reliable in detecting the errors made by the system. They generalize unreliable failure detectors to all forms of failure detectors because unreliable failure detectors and failure detectors share the same properties. Furthermore, Chandra and Toueg point out an important fact that the failure detector does not prevent any crashes in the system, even if the crashed program has been suspected previously. The construction of a failure detector is an essential, but a very difficult problem that occurred in the development of the
fault-tolerant Fault tolerance is the ability of a system to maintain proper operation despite failures or faults in one or more of its components. This capability is essential for high-availability, mission-critical, or even life-critical systems. Fault to ...
component in a distributed computer system. As a result, the failure detector was invented because of the need for detecting errors in the massive information transaction in distributed computing systems.


Properties

The classes of failure detectors are distinguished by two important properties: completeness and
accuracy Accuracy and precision are two measures of ''observational error''. ''Accuracy'' is how close a given set of measurements (observations or readings) are to their ''true value''. ''Precision'' is how close the measurements are to each other. The ...
. Completeness means that the failure detectors would find the programs that finally crashed in a process, whereas accuracy means that correct decisions that the failure detectors made in a process.


Degrees of completeness

The degrees of completeness depend on the number of crashed process is suspected by a failure detector in a certain period. * Strong completeness: "every faulty process is eventually permanently suspected by every non-faulty process." * Weak completeness: "every faulty process is eventually permanently suspected by some non-faulty process."


Degrees of accuracy

The degrees of accuracy depend on the number of mistakes that a failure detector made in a certain period. * Strong accuracy: "no process is suspected (by anybody) before it crashes." * Weak accuracy: "some non-faulty process is never suspected." * Eventual strong accuracy: "no non-faulty process is suspected after some time since the end of the initial period of chaos as the time at which the last crash occurs." * Eventual weak accuracy: "after some initial period of confusion, some non-faulty process is never suspected."


Classification

Failure detectors can be categorized in the following eight types: # Perfect failure detector (''P)'' # Eventually perfect failure detectors (''♦P'') # Strong failure detectors (''S'') # Eventually strong failure detectors (''♦S'') # Weak failure detectors (''W'') # Eventually weak failure detectors (''♦W'') # Quasi-perfect failure detectors (''Q'') # Eventually quasi-perfect failure detectors (''♦Q'') The properties of these failure detectors are described below: In a nutshell, the properties of failure detectors depend on how fast the failure detector detects actual
failures Failure is the social concept of not meeting a desirable or intended objective, and is usually viewed as the opposite of success. The criteria for failure depends on context, and may be relative to a particular observer or belief system. One ...
and how well it avoids false detection. A perfect failure detector will find all errors without any mistakes, whereas a weak failure detector will not find any errors and make numerous mistakes.


Applications

Different types of failure detectors can be obtained by changing the properties of failure detectors. The first examples show that how to increase completeness of a failure detector, and the second example shows that how to change one type of the failure detector to another.


Boosting completeness

The following is an example abstracted from the Department of Computer Science at Yale University. It functions by boosting the completeness of a failure detector. initially suspects = ∅ do forever: for each process p: if my weak-detector suspects p, then send p to all processes upon receiving p from some process q: suspects := suspects + p - q From the example above, if p crashes, then the weak-detector will eventually suspect it. All failure detectors in the system will eventually suspect the p because of the infinite loop created by failure detectors. This example also shows that a weak completeness failure detector can also suspect all crashes eventually. The inspection of crashed programs does not depend on completeness.


Reducing a failure detector ''W'' to a failure detector ''S''

The following are correctness arguments to satisfy the algorithm of changing a failure detector ''W'' to a failure detector ''S''. The failure detector ''W'' is weak in completeness, and the failure detector ''S'' is strong in completeness. They are both weak in accuracy. # It transforms weak completeness into strong completeness. # It preserves the perpetual accuracy. # It preserves the eventual accuracy. If all arguments above are satisfied, the reduction of a weak failure detector ''W'' to a strong failure detector ''S'' will agree with the
algorithm In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
within the distributed computing system.


See also

*
Distributed computing Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers. The components of a distributed system commu ...
* List of distributed computing projects * SWIM Protocol *
Crash (computing) In computing, a crash, or system crash, occurs when a computer program such as a software application or an operating system stops functioning properly and exits. On some operating systems or individual applications, a crash reporting servi ...
*
Fault tolerance Fault tolerance is the ability of a system to maintain proper operation despite failures or faults in one or more of its components. This capability is essential for high-availability, mission-critical, or even life-critical systems. Fault t ...
* Consensus *
Atomic broadcast In fault-tolerant distributed computing, an atomic broadcast or total order broadcast is a broadcast where all correct processes in a system of multiple processes receive the same set of messages in the same order; that is, the same sequence of me ...


References


External links

* http://www.cs.yale.edu/homes/aspnes/pinewiki/FailureDetectors.html * http://www.cs.cornell.edu/home/sam/FDpapers.html {{Computer science Distributed computing Fault-tolerant computer systems