The procedure described here reflects only the general part of how to restore a
recovery point. In case of coordinated recovery points or message passing systems,
additional steps might be necessary.
In the next chapters, we give more details about one specific approach that
includes new language extensions.
9.2 Modified Linear Algorithm
The system model used in the previous chapter was based on the assumption of
having a fail-stop system. Recovery procedure includes two phases: (a) restoring of
system state from the last consistent recovery line and (b) resuming processing.
However, in real life, faults might stay latent in the system for a long time until
they trigger an error, which also implies that the last recovery line still contains the
latent fault. Optimizations such as reducing the required storage by only keeping
the last recovery line can thus lead to a non-recoverable system that must be
restarted.
What happens if we change the system model from a fail-stop system to a system
where faults can stay undetected for a long time in the system? In this case, a
method is required to find the exact appearance of the fault in the system, i.e., the
last recovery point that was not affected by the fault.
We present here an approach of how to cope with faults existed in the system
undetected an arbitrary period of time. Our approach and implementation algorithm
called Modified Linear Recovery (MLR). This section is based on the papers [7–10]
and adapted to our needs.
Using an ordered set of recovery points (Fig. 9.1), we split the program execution into pieces of exactly the same execution length.
Let RP be the set of recovery points that is generated during the program
execution. By ordering the set RP, we achieve sequential consistency, which means
that if all non-determinants are equal, for any RPi and RPj (i < j) the computing
process passes after the recovery of RPi through all subsequent states RPi + 1,
RPi + 2, …, up to RPj and on.
As in Sect. 8.4, a checksum CSi is calculated for every RPi analog to the
probabilistic approach introduced in the previous chapter.
Generating the set of checksums CS concurrently with RP effectively saves time
for generation of the recovery point and also for looking up a correct RPk from
which the task can be continued. Using the method of Modified Linear Recovery
(MLR) when the type of hardware faults is known is possible to even recover from
multiple sequential faults. To solve this problem we must answer the following
questions:
• Does redundancy used for recovery (recovery points) is sufficient to determine
the type of a fault and therefore be involved in checking and recovery?
9.1 Recovery as a Process
143
recovery point. In case of coordinated recovery points or message passing systems,
additional steps might be necessary.
In the next chapters, we give more details about one specific approach that
includes new language extensions.
9.2 Modified Linear Algorithm
The system model used in the previous chapter was based on the assumption of
having a fail-stop system. Recovery procedure includes two phases: (a) restoring of
system state from the last consistent recovery line and (b) resuming processing.
However, in real life, faults might stay latent in the system for a long time until
they trigger an error, which also implies that the last recovery line still contains the
latent fault. Optimizations such as reducing the required storage by only keeping
the last recovery line can thus lead to a non-recoverable system that must be
restarted.
What happens if we change the system model from a fail-stop system to a system
where faults can stay undetected for a long time in the system? In this case, a
method is required to find the exact appearance of the fault in the system, i.e., the
last recovery point that was not affected by the fault.
We present here an approach of how to cope with faults existed in the system
undetected an arbitrary period of time. Our approach and implementation algorithm
called Modified Linear Recovery (MLR). This section is based on the papers [7–10]
and adapted to our needs.
Using an ordered set of recovery points (Fig. 9.1), we split the program execution into pieces of exactly the same execution length.
Let RP be the set of recovery points that is generated during the program
execution. By ordering the set RP, we achieve sequential consistency, which means
that if all non-determinants are equal, for any RPi and RPj (i < j) the computing
process passes after the recovery of RPi through all subsequent states RPi + 1,
RPi + 2, …, up to RPj and on.
As in Sect. 8.4, a checksum CSi is calculated for every RPi analog to the
probabilistic approach introduced in the previous chapter.
Generating the set of checksums CS concurrently with RP effectively saves time
for generation of the recovery point and also for looking up a correct RPk from
which the task can be continued. Using the method of Modified Linear Recovery
(MLR) when the type of hardware faults is known is possible to even recover from
multiple sequential faults. To solve this problem we must answer the following
questions:
• Does redundancy used for recovery (recovery points) is sufficient to determine
the type of a fault and therefore be involved in checking and recovery?
9.1 Recovery as a Process
143
