2-Phase Commit Protocol Simulation
What is the primary purpose of the Two-Phase Commit (2PC) protocol?
In which phase of 2PC does the coordinator ask participants if they are ready to commit?
What message does a participant send if it is ready to commit?
What happens if the coordinator receives at least one `VOTE_ABORT` message?
Why must a participant write 'READY' to a durable log before sending `VOTE_COMMIT`?
If a coordinator fails before sending any decision messages, what is the state of a participant that voted `VOTE_COMMIT`?
Which of the following scenarios is the primary cause of the 'blocking problem' in 2PC?
How does the 'Presumed Abort' optimization work in 2PC?
Why is Three-Phase Commit (3PC) considered non-blocking compared to 2PC?