A Ring-Based Decentralized Collaborative Non-blocking Atomic Commit Protocol
Many asynchronous distributed atomic commit protocols use a coordinator, either an application server or an elected database server, to handle the progress of a transaction. When the coordinator fails or the network becomes partitioned, the transaction may block or may suffer from a split brain syndrome. In this paper we propose a decentralized, collaborative, non-blocking atomic protocol, which piggybacks transaction statuses of all transaction participants onto tokens, and passes the tokens in a logical ring with two distinct directions. Each participant uses the information in the tokens to make a decision of when to go to the next state. Using the state vectors in the tokens, the transaction can progress even if the network is partitioned, and the protocol will ensure uniform agreement on success or failure of the transaction.