Described is an approach for recovering the failure of a transaction.
According to the approach, a first change and a third change is made to a
first resource and a second change is made to a second resource. The
second change was made after the first but before the third. However, to
recover the failure of the transaction, a recovery record for the third
change is applied before the recovery record for the second change. Also
described is an approach involving establishing links that link together
a set of undo records that contain changes made to the particular
resource. Also described is an approach for applying two or more undo
records in parallel.