On termination detection in crash-prone distributed systems with failure detectors
We investigate the problem of detecting termination of a distributed computation in systems where processes can fail by crashing. Specifically, when the communication topology is fully connected, we describe a way to transform any termination detection algorithm A that has been designed for a failur...
Gespeichert in:
Veröffentlicht in: | Journal of parallel and distributed computing 2008-06, Vol.68 (6), p.855-875 |
---|---|
Hauptverfasser: | , , , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | We investigate the problem of detecting termination of a distributed computation in systems where processes can fail by crashing. Specifically, when the communication topology is fully connected, we describe a way to transform
any termination detection algorithm
A
that has been designed for a failure-free environment into a termination detection algorithm
B
that can tolerate process crashes. Our transformation assumes the existence of a
perfect failure detector. We show that a perfect failure detector is in fact necessary to solve the termination detection problem in a crash-prone distributed system even if
at most one process can crash.
Let
μ
(
n
,
M
)
and
δ
(
n
,
M
)
denote the message complexity and detection latency, respectively, of
A
when the system has
n
processes and the underlying computation exchanges
M
application messages. The message complexity of
B
is
O
(
n
+
μ
(
n
,
0
)
)
messages per failure more than the message complexity of
A
. Also, its detection latency is
O
(
δ
(
n
,
0
)
)
per failure more than that of
A
. Furthermore, application message size increases by at most
log
(
f
+
1
)
bits, where
f
is the actual number of processes that fail during an execution. We show that, when the communication topology is fully connected, under certain realistic assumption, any fault-tolerant termination detection algorithm can be forced to exchange
Ω
(
n
f
)
control messages in the worst-case even when
at most one process may be active initially and the underlying computation
does not exchange any application messages. This implies that our transformation is optimal in terms of message complexity when
μ
(
n
,
0
)
=
O
(
n
)
.
The fault-tolerant termination detection algorithm resulting from the transformation satisfies three desirable properties. First, it can tolerate the failure of up to
n
−
1
processes. Second, it does not impose any overhead on the fault-sensitive termination detection algorithm until one or more processes crash. Third, it does not block the application at any time. Further, using our transformation, we derive a fault-tolerant termination detection algorithm that is the
most efficient fault-tolerant termination detection algorithm that has been proposed so far to our knowledge. Our transformation can be extended to arbitrary communication topologies provided process crashes do not partition the system. |
---|---|
ISSN: | 0743-7315 1096-0848 |
DOI: | 10.1016/j.jpdc.2008.02.001 |