Halting failures
Scenario
C does not notice any activity from C' - Terminal failure?
Distinguishing between a crash and a failure by omission/temporal can be impossible.
Asynchronous vs. Synchronous systems
Asynchronous system: does not assume anything about the speed of execution of a process of delivery times of messages -> it is not possible to reliably detect crashing failures.
Synchronous system: execution times and message deliveries are delimited -> it is possible to reliably identify temporal and omission failures.
In practice, we have partial synchronous systems: most of the time we can assume that the system behaves synchronously, despite the fact that there are no limits to the moments when it behaves asynchronously -> usually, failures by a crash can be detected.
Terminal failures
Fail-stop
Failure by crash, but reliably detected.
Fail-noisy
Failure by crash, eventually not detected.
Fail-silent
Failure by omission or crash: client does not distinguish what happened.
Fail-safe
Arbitrary, but benign.
Fail-arbitrary
Arbitrary, with malicious failures.
Last updated