4 ms·
What's the significance of the 1 unacknowledged write in the last run?
by misframer 13y ago
What's the significance of the 1 unacknowledged write in the last run?
- teraflop 13y agoThat means a client submitted a write that was successfully committed, but the client never found out that it was successful. It's more or less inevitable in the face of network partitions. You don't want the database to report that a transaction was successful before the data is actually committed, or else you lose consistency. But if you wait until after the commit happens, there's a chance that the client might no longer be reachable. There's no way around this aside from waiting an indefinite period of time for the partition to be resolved.
- misframer 13y agoThat makes perfect sense. If it is the case, I think it's worth mentioning that the acknowledge write happened when the partition happened. I assumed that it happened when everything was going well, which is odd.
- jrullmann 13y agoGood idea - I've updated the blog post. Thanks for the feedback!
- jrullmann 13y agoRight. Most of the time you would simply retry the transaction - that's what FoundationDB's automatic transaction retry loop does. The first two tests I ran do that, but the third (foundationdb-append-noretry) does not.
- jcoene 13y agoWhen a network partition occurs it's possible that transactions be committed but not acknowledged due to the inability to receive the ack.