|
The incremental checkpoint technique uses the same data
structures that are used by conventional checkpoints. It
exploits the fact that the dirty buffers in the cache are
linked in low RBA order. If DBWR continually writes
buffers from the head of the checkpoint queue, the instance
checkpoint (lowest low-RBA of the modified buffers) will
keep advancing. Periodically, CKPT can record this lowest
low-RBA to the control file (using a very lightweight control-
file update protocol). This periodically recorded lowest
low RBA is the current position of the incremental
checkpoint for the instance. Since the incremental checkpoint
is performed continuously, the value of the incremental
checkpoint RBA will be much closer to the tail of
the log than the RBA of a “conventional” checkpoint, thus
limiting the amount of recovery needed. When incremental
checkpointing is enabled, DBWR keeps writing buffers
from the checkpoint queues in ascending low RBA order
in addition to performing other writing activity. In addition,
the CKPT process periodically records the progress
of the incremental checkpoint in the control file. By controlling
the rate at which buffers are written, we can reduce
the overhead for incremental checkpoint. Quite often,
writing buffers in ascending low RBA order also performs
LRU replacement writes and vice versa. Hence, aging
writes and checkpoint writes can complement each other. |
|