3 ms·
Two phase commit requires a coordinator. If the coordinator goes down, the system makes no progress. If the coordinator sends inconsistent commands (e.g., com
by curtisf 5y ago
Two phase commit requires a coordinator.
If the coordinator goes down, the system makes no progress.
If the coordinator sends inconsistent commands (e.g., commit to one resource and abort to another), it's not serving its purpose.
So in a system using two phase commit, your availability is limited by the availability of the coordinator.
If the coordinator is a single server, you have a single point of failure in a distributed system.
If you try using multiple servers to increase the availability of the coordinator, you risk sending inconsistent commands -- unless you implement a consensus system within the coordinator.
Paxos and Raft let you combine the availability of multiple servers while still letting them behave consistently. (This is the "consensus problem", and correctly solving it is notoriously tricky).