A method and system for reducing overhead associated with recovering after
a failure. According to the method, a checkpoint value is maintained that
indicates which records of a plurality of records have to be processed
after the failure. The plurality of records contain change information
that corresponds to a plurality of data blocks. A target checkpoint value
is determined based on a desired number of data block reads that will be
required during a redo phase of recovery. Changes contained in volatile
memory are then written to nonvolatile memory to advance the checkpoint
value to at least the target checkpoint value.