| OCR Text |
Show 72 checkpointing, is proposed in section 3.2. A simple rollback recovery algorithm, which basically discards all orphan tasks, is discussed in section 3.3. In section 3.4, another distributed recovery algorithm, the splice recovery, is proposed to salvage as many orphan results as possible. The idea is to establish a robust evaluation structure while an applicative program is being evaluated. Equivalent tasks can be generated to replace the failed tasks in the robust structure. The correctness of the algorithm is argued in section 3.4.5. A hierarchical level stamping method is proposed to uniquely identif'l a task. The stamp is used to minimize the retry effort in the rollback scheme. It is also used in the splice recovery scheme as the tag for orphan results. Compression techniques are suggested in section 3.5 to facilitate practical implementations. 3.1.1 Applicative calling tree The evaluation of an applicative program generates a call tree. The result of the root task is the answer of the program. Every task in the calling tree represents a partial result which is used by its parent task to compute bigger partial results. A parent task is capable of regenerating all its child tasks. 3.1.2 Single processor failure A fault can be modeled at the circuit level, the gate level, or the processor level: In this study, the approach to fault-tolerant applicative systems focuses ~n fault modeling at the processor level. A .Processor is either faulty or faultfree. A faulty processor voluntarily declares itself faulty, or is otherwise identified as faulty by other processors [26]. Furthermore, single processor failure is assumed. |