Distributed Transaction Model
Presented by:Rohit Srivastava & Ashutosh Tripathi
Definition A distributed transaction is an operation bundle, in which two or more network hosts are involved. Transaction should contain 4 ACID properties 1. 2. 3. 4.
Atomicity (ability of BBMS to gurantee that all tasks are performed) Consistency (DBMS remain in consistent state before and after transaction) Isolation (other operations cannot access data during transaction) Durability (once transaction is done then it may remain in persistent state)
System Structure
TC1
TCn
TM1
TMn
Computer 1
Computer n
Transaction Coordinator
Transaction Manager
Responsibilties Transaction Manager:• Managing a log for recovery purpose • Participating in an appropriate Concurrency Control to coordinate concurrent execution Transaction Coordinator:• Starting the execution of transaction • Breaking transaction into subtransactions and distribute them to sites for execution • Coordinating the termination of transaction
Commit Protocols To ensure Atomicity property the Transaction Cordinator must execute commit protocols. There are 2 types of Commit Protocols:1. 2.
Two Phase Commit protocol Three Phase Commit protocol
Two Phase Commit It comprises of 3 phases:1.
Prepare Phase:- The initiating node in the transaction asks the other participating nodes to promise to commit or roll back the transaction.
2. Commit Phase:- The initiating node asks all participating nodes to commit the transaction. If this outcome is not possible, then all nodes are asked to roll back. 3. Forget Phase:- The global coordinator forgets about the transaction.
Types of Responses in the Prepare Phase
Prepared:- Data on the node has been modified by a statement in the distributed transaction, and the node has successfully prepared. Read-only:- No data on the node has been, or can be, modified (only queried), so no preparation is necessary. Abort:- The node cannot successfully prepare.
Steps in the Prepare Phase
The node requests that its descendants, that is, the nodes subsequently referenced, prepare to commit. The node checks to see whether the transaction changes data on itself or its descendants. If there is no change to the data, then the node skips the remaining steps and returns a read-only response. The node allocates the resources it needs to commit the transaction if data is changed.
Cont…
The node saves redo records corresponding to changes made by the transaction to its online redo log. The node guarantees that locks held for the transaction are able to survive a failure. The node responds to the initiating node with a prepared response or, if its attempt or the attempt of one of its descendents to prepare was unsuccessful, with an abort response.
Steps in the Commit Phase
The global coordinator instructs the commit point site to commit. The commit point site commits. The commit point site informs the global coordinator that it has committed. The global and local coordinators send a message to all nodes instructing them to commit the transaction.
Cont…
At each node, Site commits the local portion of the distributed transaction and releases locks. At each node, Site records an additional redo entry in the local redo log, indicating that the transaction has committed. The participating nodes notify the global coordinator that they have committed.
Steps of Forget Phase
After receiving notice from the global coordinator that all nodes have committed, the commit point site erases status information about this transaction. The commit point site informs the global coordinator that it has erased the status information. The global coordinator erases its own information about the transaction.
Failures of Two Phase Protocol
Failure of a participating site
Failure of a Coordinator
Network Partition
Recovery and Concurrency Control
In doubt transactions
Noting lock information
Faster Recovery
Three Phase Commit Protocol
Extension of Two Phase Protocol
Select new Coordinator
Property of Non Blocking
Refrences Database System Concepts: Henry F. Korth http://stonesoup.esd.ornl.gov/ http://extremelinux.esd.ornl.gov/ http://www.beowulf.org/ http://www.cacr.caltech.edu/researc h/beowulf/ http://beowulf-underground.org/
Thank You