Atomicity principle requires that either all the distributed operations of a transaction complete, or all abort.
Atomicity principle requires that either all the distributed operations of a transaction complete, or all abort.
At some stage, client executes closeTransaction(). Now, atomicity requires that either all participants (remember these are on the server side) and the coordinator commit or all abort.
What problem statement is this?
Consensus, but the system is asynchronous!!
Consensus, but the system is asynchronous!!
So, need to ensure safety property in real-life implementation. Never have some agreeing to commit, and others agreeing to abort.
First cut: one-phase commitprotocol. The coordinator unilaterally communicates either commit or abort, to all participants (servers) until all acknowledge.
Doesn’t work when a participant crashes before receiving this message (partial transaction results that were in memory are lost).