Abort, cont.
 | To perform UNDO, must have a lock on data!
 | No problem!
| |
 | Before restoring old value of a page, write a CLR:
 | You continue logging while you UNDO!!
 | CLR has one extra field: undonextLSN
 | Points to the next LSN to undo (i.e. the prevLSN of the record were currently undoing).
|  | CLRs never Undone (but they might be Redone when repeating history: guarantees Atomicity!)
| | | |
 | At end of UNDO, write an end log record.
|
|