Open In App

Atomic Commit Protocol in Distributed System

In distributed systems, transactional consistency is guaranteed by the Atomic Commit Protocol. It coordinates two phases—voting and decision—to ensure that a transaction is either fully committed or completely canceled on several nodes.

Distributed Transactions

Distributed transaction refers to a transaction in which multiple servers are involved. Multiple servers are called by a client in Simple Distributed Transaction whereas a server calls another server in Nested Transaction. The execution of a transaction at many sites, must either be committed at all sites or aborted at all sites. However, this should not be the case when a transaction is committed at one site and aborted at another site. Distributed site systems use distributed commitment rules to ensure atomicity across sites. Atomic commitment is a channel of need for cooperation across a variety of systems.



Properties of the Distributed Transactions

The distributed transactions must possess the following ACID properties, like any other transaction. In distributed systems, a transaction manager is used to coordinate the distinct operations and then commit/rollback the transaction as needed.

Coordination in Distributed Transactions

At the time of coordination in Distributed Transactions, one of the servers becomes a coordinator, and the rest of the workers become coordinators. 



Atomic Commit

The atomic commit procedure should meet the following requirements: 

Distributed One-Phase Commit

A one-phase commitment protocol involves a coordinator who communicates with servers and performs each task regularly to inform them to perform or cancel actions i.e. transactions.

One phase Commit

Distributed Two-Phase Commit

There are two phases for the commit procedure to work:

Phase 1: Voting 

Phase 2: Completion of the voting result 

Two phase Commit

Conclusion

In Conclusion, the Atomic Commit Protocol is essential to maintaining transaction dependability and consistency in distributed systems. Its main goal is to ensure that, even in the event of a failure, a transaction is either fully committed or fully aborted across all participating nodes.

Article Tags :