INF: Two-Phase and Three-Phase Commit Information

ID Number: Q61653

1.10 1.11 4.20

OS/2

Summary:

The clearest explanation of two-phase and three-phase commits is in

Ullman's "Baseball Database" book. The reference to this publication

does not represent a recommendation by Microsoft to use this book as a

database reference; however, the information regarding two-phase and

three-phase commits is helpful to understand these concepts.

Two-phase commit is defined to be the following:

A participant commits when it knows that all other participants

have voted to commit.

Three-phase commit is defined to be the following:

A participant commits when it knows that all other participants

know that all participants have voted to commit.

The extra phase reduces the amount of time that locks must be held if

a failure occurs. Any participant that had received a commit or abort

message can respond to a "help-me" message from a participant that is

unsure of the state of the transaction. It is not necessary to hold

all the locks until the coordinator gets back up.

Additional reference words: 1.10 1.11 4.20