Jump to content

Two-phase commit

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Dysprosia (talk | contribs) at 11:18, 1 April 2004 (fmt). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A commit operation is an operation that is all or nothing. A two phase commit allows data to be written to more than location and for all operations to be rolled back, if one or more of the operation fails.

In essence:

  • Phase 1
Each participants resource manager coordinates local operations
If successful
respond "OK"
If unsuccessful
either allow a time-out or respond "NOT OK"
  • Phase 2
If all participants respond "OK":
Coordinator instructs participating resource managers to "COMMIT"
Participants complete operation
Otherwise:
Coordinator instructs participating resource managers to "ROLLBACK"
Participants complete their respective local undos