1. First Phase: In this phase, when a user wants to
COMMIT a transaction, the coordinator issues a
PREPARE message to all the subordinates, (Mohan et
al., 1986). When a subordinate receives the PREPARE
message, it writes a PREPARE log and, if that
subordinate is willing to COMMIT, sends a YES
VOTE, and enters the PREPARED state; or, it writes
an abort record and, if that subordinate is not willing
to COMMIT, sends a NO VOTE. A subordinate
sending a NO VOTE doesn’t need to enter a
PREPARED state since it knows that the coordinator
will issue an abort. In this case, the NO VOTE acts
like a veto in the sense that only one NO VOTE is
needed to abort the transaction. The following two
rules apply to the coordinator’s decision, (Ozsu et al.,
1991):