| OCR Text |
Show 75 with the faulty node. The complete recovery is done by collective efforts from various associated processors to retrieve the corrupted tasks. 3.2.1 Determinacy and checkpoint selection An attractive characteristic of applicative systems is the determinacy, or referential transparency, of functional programs (35, 65]. A program is determinate if an identical answer always results from any function invocation. In other words, a functional program is free from side effects. Determinacy suggests that an appropriate functional checkpoint is the place where a parent task spawns a child function. A task packet is formed for the new function and then waits for execution. The packet contains all necessary information, either directly or indirectly accessible, to activate the child task. Furthermore, determinacy insures that different activations of the same task packet will always yield the same result. Thus, even if a task is aborted during computation, a new invocation will not be contaminated by its predecessor or predecessors. 3.2.2 Properties of functional checkpointing 3.2.2.1 Asynchrony. Periodic checkpointing is a synchronous operation. It requires a consistent global system state for proper error recovery. To insure system-wide synchronization among a network of processors is not an easy task [2]. By contrast. functional checkpointing is asynchronous. Each processor holds the privilege and responsibiJity of checkpointing its offspring tasks. A processor may opt. to arrange the checkpoints in a partial order such that more efficient recovery can be implemented (section 3.3). Checkpoint coordination between processors is not necessary. 3.2.2.2 Implicitness. Functional checkpointing can be implemented implicitly. As a child task is spawned to a new node, the parent task may retain a copy of the task packet. This retained copy is all that the parent needs to regenerate the child task, should the node evaluating the child task fail. Therefore, functional checkpointing can be fully embedded in the evaluation process. |