Questions: Three-Phase Commit Protocol

5 questions to test your understanding

Score: 0 / 5
Question 1 Multiple Choice

In 2PC, all participants have voted 'yes' in the prepare phase and the coordinator then crashes before sending any commit or abort. A new coordinator takes over. What is the fundamental problem?

AThe new coordinator must restart the entire transaction because participant votes expire after a timeout
BThe new coordinator cannot determine whether to commit or abort safely — it doesn't know whether the original coordinator decided to commit or abort, and participants cannot distinguish these cases either
CThe participants will automatically abort after a timeout, safely rolling back the transaction
DThe new coordinator can safely commit because all participants already voted yes and no abort was sent
Question 2 Multiple Choice

Why does 3PC's non-blocking guarantee break down when the network can partition, even though it solves the coordinator-crash scenario?

ANetwork partitions prevent the preCommit acknowledgment from reaching the coordinator, stalling the protocol indefinitely
BParticipants on one side of a partition may time out waiting for the coordinator and abort, while participants on the other side receive preCommit and eventually commit — violating atomicity
CThe 3PC protocol uses UDP, which is unreliable, making partitions catastrophic in a way that TCP-based 2PC handles gracefully
DNetwork partitions corrupt the flow table in the coordinator's switch, causing it to route preCommit messages incorrectly
Question 3 True / False

In 3PC, if a participant has received a preCommit message, it knows that all other participants voted 'yes' in the canCommit phase, which enables a new coordinator to safely issue doCommit.

TTrue
FFalse
Question 4 True / False

Three-phase commit was designed to improve transaction throughput over 2PC by reducing the total number of messages exchanged during the commit process.

TTrue
FFalse
Question 5 Short Answer

What specific knowledge does the preCommit phase give participants that allows 3PC to avoid the indefinite blocking problem of 2PC, and what failure assumption must hold for this to work?

Think about your answer, then reveal below.