Two-phase commit
Appearance
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