Nested Transaction Models

Definition

A nested transaction model as proposed by Moss is a generalization of the flat transaction model that allows nesting. A nested transaction forms a tree of transactions with the root being called a top-level transaction and all other nodes called nested transactions (subtransactions). Transactions having no subtransactions are called leaf transactions. Transactions with subtransactions are called parents (ancestors) and their subtransactions are called children (descendants).

A subtransaction can commit or rollback by itself. However, the effects of the commit cannot take place unless the parent transaction also commits. Therefore, in order for any subtransaction to commit, the top-level transaction must commit. If a subtransaction aborts, all its children subtransactions (forming a subtree) are forced to abort even if they committed locally.

Historical Background

Nested transactions were introduced by Moss in 1981 [1] to overcome some of the limitations of the flat...