Transaction commit protocols help in reaching an agreement among the participating nodes when a transaction has to be committed or aborted. To initiate an agreement each participating node is asked to vote its decision on the operations on its transactional fragment. The participating nodes can decide to either commit or abort an ongoing transaction. In case of a node failure, the active participants take essential steps such as running the termination protocol to preserve database correctness. This paper sought to investigate the current distributed databases commit protocols such as 2PC and 3PC in order to pin-point their shortcomings. For instance, 2PC suffers from blocking of participant site in case of coordinator failure and increased latency due to forced writes of logs. On its part, 3PC suffers more communication overhead due to extra pre-commit phase. Based on these setbacks, an efficient protocol is suggested towards the end of this paper that it believed to address some of the challenges such as blocking and extra message exchange between communicating nodes.
Read full abstract