Transactional standards in distributed transactional systems, allows heterogeneous resources to participate in an Atomic Commitment Protocol (ACP). An ACP ensures the atomicity of distributed transactions even in the presence of site failures. Atomic commitment is one of the key functionalities of modern distributed information systems. Two-Phase Commit Protocol (2PC) is a well-known and widely accepted standard algorithm which safeguards the ACID properties of a transaction in the distributed system. But, since this algorithm introduces a substantial time delay and is a blocking protocol, there has always been an open challenge or issue to solve while designing a reliable, highly available and efficient distributed system. Blocking in distributed transactions, occurs during two-phase commit processing, when the coordinator itself fails and at the same time one or more sites are ready to commit the transaction. Several variants of 2PC, optimized protocols and non-blocking protocols have been proposed in the literature, but none of them combines high efficiency during normal processing with fault-tolerance (i.e. non-blocking). Generally the proposed protocols either violate site autonomy or are inherently more costly in time and increase communication overhead. This paper proposes a Decentralized Non-Blocking Two Phase Commit Protocol that will drastically reduce the cost of distributed transaction commitment in terms of time delay to reach a common view, i.e. a consensus between the cooperating processes across various sites on the global state, and message complexity as well. Since this algorithm is decentralized in nature, it will overcome the disadvantage of centralized architecture which relies heavily on the central computing unit (master controller or co-ordinator). This paper describes a token-based non-blocking commitment protocol that also subsumes the functions of termination and recovery protocols. The protocol survives any single site crash or network partition provided that the failure is not falsely detected. The protocol is correct despite the occurrence of failures at multiplesites and whether or not failures are falsely detected. Performance measures show that the protocol is significantly faster and efficient than obsolete 2PC.The protocol is simple, and has several advantages, including prevention of deadlocks, avoids blocking and single point of failure kind of dependencies as well. The protocol is equipped with fast abort properties, i.e., aborting a transaction as soon as possible if some site wants to abort which is involved in distributed transaction, and the fast commit property, i.e., committing a transaction as soon as possible when all the sites are ready to commit, and no site crashes. This protocol allows operational sites to continue transaction processing even though site failures have occurred. So for an algorithm to be efficient, it is desirable to keep the number of message exchanges on a low level and keeping the number of phases as minimal as possible, which redirect us to the two-phase commit protocol. In order to achieve the non-blocking property there have been presented a variety of solutions throughout the years. To maintain a low level of message exchanges the protocol uses the concept of token and does not uses acknowledgements, as a substitute the participants use the Store and Forward manner and update their vote on the token. And since the architecture is decentralized, there’s no need to elect any co-ordinator either. The vast majority of complex systems like conventional distributed databases, transaction processing monitor, or distributed object platforms implement atomic commitment using some variation of 2 Phase Commit, (although 2PC may block under certain conditions) and since this algorithm inherits few properties of 2PC this will make the protocol compatible with the existing DDBS's.
Read More...