Google
 
   
Login
Username:

Password:


Lost Password?

Register now!
Search
Main Menu
top books
Polls
What do you think about php-deluxe.net?
Excellent!
Cool
Hmm..not bad
What the hell is this?
encyclopedia
recommendation
Freenet DSL
Who's Online
2 user(s) are online (1 user(s) are browsing encyclopedia)

Members: 0
Guests: 2

more...
browser tip
recommendation!
Sponsored
partner

Two-phase commit

In computer science, especially in durability (computer science), a two phase commit allows data to be written to more than one location and for all operations to be rolled back, if one or more of the operations fails.

= The Algorithm =

The process is controlled from one of the participants called the Coordinator . The other participants are called Cohorts . The algorithm is initiated by the Coordinator after the last step of the transaction has been reached. The Cohorts then respond with an OK or NOT OK depending on success.

*Phase 1 #All participants execute the transaction up to the point where they will be asked to commit. #If successful #*respond OK to Coordinator #If unsuccessful #*either allow a time-out or respond NOT OK to Coordinator

*Phase 2 *If all Cohorts respond OK : *#Coordinator instructs participating resource managers to COMMIT *#Participants complete operation and send acknowledgement to Coordinator *#Coordinator completes transaction when acknowledgements have been received. *Otherwise (some Cohorts responded NOT OK , or didn t respond at all): *#Coordinator instructs participating resource managers to ROLLBACK *#Participants complete their respective local undos

= Disadvantages =

The algorithm can block indefinitely in two ways:

# When the Coordinator has sent COMMIT to the Cohorts, it will block until all Cohorts have acknowledged. Thus, if a Cohort is permanently down, the Coordinator will block indefinitely. # When a Cohort has sent OK to the Coordinator, it will block until a COMMIT or ROLLBACK is received. If the Coordinator is permanently down, the Cohort will block indefinitely.

=See also=

*Atomic commit *Commit (data management) *Resource Recovery Services *Two-phase-commit protocol *X/Open_XA