System Checkpointing in System R

Marc Horowitz

Section 4: Prof. Peter Elias Luis Rodriguez April 23, 1991

When System R does a system checkpoint it only waits for the system to be action consistent. The major reason for this is efficiency. System checkpoints should happen reasonably often, so they need to be quick. Blocking new transactions until all old transactions have completed could interrupt availability for several minutes. Since actions are quick, just waiting for all pending actions to terminate takes little time.

Also, the relative occurences make checkpointing at transaction-consistency inefficient. Checkpoints occur often during normal operation. System crashes, which are the only condition which make checkpoint recovery necessary, occur far less frequently. Making the recovery more efficient, then, is the wrong way to optimize. Checkpointing in an action-consistent state allows the more common operation to proceed more quickly, at the expense of the less common operation occurring more slowly. This is acceptable.

Note: I think this question is too specific for a one-page paper. There isn’t a whole lot to say without adding meaningless filler, so I didn’t say a whole lot.