I’m trying to understand the three phase commit protocol by reading the wiki page (http://en.wikipedia.org/wiki/Three-phase_commit_protocol#Motivation). In the description for the diagram I posted below, it says the following: “If the coordinator succeeds in the prepared state, it will move to the commit state. However if the coordinator times out while waiting for an acknowledgement from a cohort, it will abort the transaction. In the case where all acknowledgements are received, the coordinator moves to the commit state as well.“
Is that a typo where it says “coordinator moves to the commit state as well?” Isn’t it already in the commit state? Does it mean “the cohort moves to the commit state as well?” Seems like it kind of says the same thing twice.
Is that a typo where it says “coordinator moves to the commit state as well?”
No. This sentence:
In the case where all acknowledgements are received, the coordinator moves to the commit state as well.”
references acknowledgements
which is ACK
in the diagram, so that is part of the prepared state.