Performing log checkpointing
without stopping
database processing operation
Remember that the
goal of
"log checkpointing" is:
- Removing all
log records that
are not necessary to
recover transactions
|
Each type of
log file (UNDO/REDO/etc)
has a
different log checkpointing
algorithm
When is an
UNDO log record no longer
necessary ???
(UNDO rule U2
mandates that
we must
write all updated DB elements
from committed transactions to
disk before
writing its
<COMMIT> record to
the UNDO log file !)
When is an
UNDO log record no longer
necessary ???
-
Explanation
Why:
The Non-quiescent checkpointing algorithm for the
UNDO log
Previous observation:
all committed transactions can
be (logically) removed from
the UNDO log
Problem:
we need a
way to
find out/make sure
when the currently running transactions
have committed/aborted
Solution:
we wait...
The Non-quiescent checkpointing algorithm for the
UNDO log
The Non-quiescent checkpointing algorithm for the
UNDO log -
Timing diagram
Timing diagram of
the UNDO log checkpointing algorithm:
Observation:
the
<BEGIN CKPT> record
contains
all incomplete transaction when
the checkpoint operation begins
UNDO log checkpointing
- Example
UNDO log checkpointing
- Example
Actions of the
UNDO log checkpointing algorithm:
UNDO log checkpointing
- Example
A possible continuation of
this UNDO log:
❮
❯