Non-quiescentcheckpointing =
performaining
the log checkpointing procedurewithout
having to
stop the
database system
I.e.:
We perform
the log checkpointing procedurewhiletransactions are
active !!!
Key observation in the undo log
Observation:
When you find a <COMMIT T>record for
transaction T, then:
The undo log records
written on behalf
of the transaction T
are nowunnecessary !!!
Graphically:
Reason:
The undo log records is
used to
roll back the
updates made by
transaction T in case
transaction T did
not write all its updates
to disk
due to
system failure
(These log records is like
an insurance policy for
an accident)
The log record <COMMIT T>
is proof (= evidence) that
transaction T has
writte all its updates
onto the disk !!!
(This is enforced by
UNDO log update rule #2)
The log records
(insurance policy) are
thereforeno longer needed !!!
(And can be
removed/truncated !!)
How to to
truncate an
UNDO log:
Find the
first uncommitted transaction
in the (undo) log:
You can removeeverythingbefore
this
<START Tk>record, because:
All log recordsabove the
first uncommitted transaction
belongs to a
committed transaction !!!