Content deleted Content added
Incorrect information was written in the text to be removed. 3PC was not introduced in the paper "A Formal Model of Crash Recovery in a Distributed System" (http://www.inf.fu-berlin.de/lehre/SS10/DBS-TA/Reader/3PCSkeenStonebr.pdf) |
too many unnecessary bold words distraction from reading the infromation. |
||
Line 19:
===Coordinator===
#The coordinator receives a transaction request. If there is a failure at this point, the coordinator aborts the transaction (i.e. upon recovery, it will consider the transaction aborted). Otherwise, the coordinator sends a
#If there is a failure, timeout, or if the coordinator receives a
#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.
===Cohort===
#The cohort receives a
#In the prepared state, if the cohort receives an
#If, after a cohort member receives a
==Motivation==
A [[Two-phase commit protocol]] cannot dependably recover from a failure of both the
no
failed, it is possible that the failed cohort member was the first to be notified, and had
actually done the
confidently proceed with the operation until it has received an agreement from
The Three-phase commit protocol eliminates this problem by introducing the
state. If the
unanimously agree that the operation was
message until
This eliminates the possibility that
transaction before
(an ambiguity that necessitated indefinite blocking in the [[Two-phase commit protocol]]).
|