Non-Blocking Two Phase Commit Using Blockchain
Paul Ezhilchelvan, Amjad Yousef Aldweesh, Aad van Moorsel · 2018
Though the 2 Phase Commit protocol (2PC) remains central to distributed database management, it has a provably-inevitable vulnerability to blocking even when a distributed system guarantees the most demanding synchrony or timing-related requirements. This paper investigates eliminating that vulnerability by coordinating 2PC using a blockchain that supports execution of user-defined smart contracts. It demonstrates that the 2PC blocking can be eliminated at a moderate financial cost, if the blockchain also meets the synchrony requirements. Otherwise, despite the blockchain being a reliable state-machine, eliminating 2PC blocking may well be impossible, depending on whether the cluster hosting the database is synchronous or not. Where not possible, the practical consequences turn out to be not so serious: unnecessary aborts occurring with a small probability.