Checkpointing is a fault olerance technique in computing systems. Checkpointing typically includes storing a snapshot of a current application or system state, for example
, in a file or database, and then restoring the snapshot to a new system state. Checkpointing is typically used to recover from a system failure, such as a system crash, or to recover from a system failure that is not detected until after the system has been running for a period of time.
One problem