|
|
|
|
|
by jeffdavis
4073 days ago
|
|
To me that's not surprising. If the client connection drops, you might not know whether the transaction committed or not... the only way to know is to reconnect and inspect to see what happened. If you want to avoid that kind of problem, use 2PC. Do you (or the author) see this as a bug, or just something that might surprise people who haven't thought through the guarantees? |
|
Quoting the article:
> The 2PC protocol says that we must wait for the acknowledgement message to arrive in order to decide the outcome. If it doesn’t arrive, 2PC deadlocks. It’s not a partition-tolerant protocol. Waiting forever isn’t realistic for real systems, so at some point the client will time out and declare an error occurred. The commit protocol is now in an indeterminate state.