A three-phase commit protocol has the following parts:
Phase 1: is the same as for two-phase commit.
Phase 2: the coordinator collects the votes and makes a decision; if it is No, it aborts and informs participants that voted Yes; if the decision is Yes, it sends a preCommit request to all the participants. participants that voted Yes wait for a preCommit or doAbort request. They acknowledge preCommit requests and carry out doAbort requests.
Phase 3: the coordinator collects the acknowledgments. When all are received, it Commits and sends doCommit to the participants. participants wait for a doCommit request. When it arrives they Commit.
Explain how this protocol avoids delay to participants during their ‘uncertain’ period due to the failure of the coordinator or other participants. Assume that communication does not fail.
Phase 1: is the same as for two-phase commit.
Phase 2: the coordinator collects the votes and makes a decision; if it is No, it aborts and informs participants that voted Yes; if the decision is Yes, it sends a preCommit request to all the participants. participants that voted Yes wait for a preCommit or doAbort request. They acknowledge preCommit requests and carry out doAbort requests.
Phase 3: the coordinator collects the acknowledgments. When all are received, it Commits and sends
doCommit to the participants. participants wait for a doCommit request. When it arrives they Commit.
Explain how this protocol avoids delay to participants during their ‘uncertain’ period due to the failure of the coordinator or other participants. Assume that communication does not fail.
You might also like to view...
When adding elements to an ordered list, the elements are ordered according to
a) the order of the calls to the add operation to add them to the list. b) increasing size of storage to hold the element c) the key value of each element d) the address of the location in memory that holds the element. e) none of the above is used to determine the order of the elements in an ordered list.
What keyword is added to member function declaration to prevent it from being overridden in a child class?
a) static b) virtual c) override d) final