- Transaction
- A collection of actions that forms a consistent transformation of the system state, and that is atomic and durable: either all its actions are done and it commits, or none of its effects survive and it aborts. Gray defines it by three properties, consistency, atomicity and durability, and never uses the word isolation.
- Real action
- An action which, once done, cannot be undone, such as commitment itself, dispensing cash, or moving an airplane wing. Real actions must be deferred until commit, so they generate only a redo log record which the recovery system applies for the first time after the commit decision.
- Compensating transaction
- A further transaction run after the fact to reverse or adjust the effects of one that has already committed, since a committed transaction cannot be abrogated. Gray takes the idea from contract law and from double-entry bookkeeping, where an error is annotated and a new offsetting entry is made rather than the books being altered.
- Fail-fast module
- A self-checked component that either operates correctly or detects its own failure and does nothing, never doing the wrong thing silently. Because a system is built hierarchically from fewer than about 100 such modules with mean times to failure measured in months, duplexing them plus quick spares yields system mean times to failure measured in centuries.
- Time-domain addressing
- An implementation style in which objects are never updated but evolved, so an address is a name together with a time and each entity holds a sequence of values with validity intervals. Also called version-oriented systems; Gray rejects the label immutable object systems as a misnomer, since objects do change values with time.
- DO-UNDO-REDO protocol
- The rule that executing a protected action must both perform it and emit log records sufficient to undo it and to redo it, while unprotected actions and pure reads need emit nothing. Undo walks the transaction's threaded log records backwards; redo replays committed actions forward onto an old stable copy to reconstruct lost state.
- Restartability
- The property that applying UNDO or REDO to an object which has already been undone or redone leaves it unchanged, needed because failures can occur during recovery processing itself. It is implemented by tagging objects with version numbers for disc pages or sequence numbers for sessions, and skipping the operation when the number already matches.
- Two-phase commit
- A commit protocol in which the coordinator first asks every participant to prepare, and a participant that answers yes abdicates its right to unilaterally abort; if consent is unanimous the coordinator broadcasts commit, otherwise the transaction aborts. Its purpose is to minimize the time during which a node is not allowed to unilaterally abort.
- Save point
- A declared intermediate state to which a transaction's program and data can be reset instead of being aborted entirely. Gray proposes save points so that active long-lived transactions survive system restart, since discarding 10,000 in-flight transactions at restart is inconceivable even though discarding 100 is merely unpleasant.