A fault-tolerant technique for managing cross-hierarchy failure of a
process of transactions is disclosed. The process has blocks of
transactions and one or more of the transactions may be subtransaction of
others. The technique includes enabling a block having one or more
transactions in the process to notice, e.g., the failure in a transaction
not in the process, wherein the noticed failure will cause a failure of a
transaction (FFT) in the process. The technique also includes, upon the
failure of the transaction FFT in the process, determining an in-progress
closest recoverable ancestor (ICRA) in a block in the process. The ICRA is
the nearest transaction to the failed transaction FFT, in the block on an
ancestor tree of the FFT, that is in-block-recoverable and in-progress.
The technique further includes recovering from the first process failed
transaction by undoing from the ICRA to that failed transaction. The
undoing step includes aborting or compensating one or more transactions,
or both. In the case that the closest recoverable ancestor (CRA), i.e.,
the nearest transaction to the FFT is not in-progress, the closest
in-progress ancestor (CIP) of the CRA and the closest recoverable
in-progress ancestor (ERA) of the CIP are identified. The CIP is the
nearest transaction to the CRA, on the ancestor tree of the FFT, that is
neither committed nor aborted as viewed from outside the first process.
The ERA is the nearest in-block recoverable transaction to the CIP on the
ancestor tree of the FFT and in progress in a block containing the CIP.