T1, if we allow that T1 might timeout first, then the sequence of events described above
could also occur with timeout-based deadlock prevention.
If timeouts occur for any transaction at exactly t seconds from when it first started to wait,
19.3.5
The task of the compensating transaction is first to determine whether the file f is still the
present one with that name, or whether it has been replaced with a later version.
1. If f is still in place, then the compensating transaction must
To see that this compensation works, we can consider all the possible cases above, and
check that the file system, after compensation, is the same as would be the case had f
never been written. If f was overwritten before compensation, then we surely leave the
There are two interesting issues. First, in order for there to be a compensating transaction,
it seems we must both remember the time at which the installation occurred (so we can
tell whether the file f has been overwritten when the uninstallation occurs), and we must
19.3.2