CS542: Professor Bhargava
Homework 3
Due Date: April 5, 2016

Max. Marks: 100

Q1. Design a central site termination protocol. This requires that the operational sites agree on a
       coordinator. Suggest a mechanism that only one coordinator is elected. (Hint: Rank the sites and
       elect the site with the highest ranking as the coordinator) (10)

Q2. Give two examples of the application of commit and termination protocols in a distributed system.
       (Hint: Mail facility is one such example. If you use this example, explain how would you make
       changes in the current mail facility that exists on our system across ITAP and CS machines.) (10)

Q3. Imagine the situation in 2PC protocol when one participant sends a "vote-abort" message while
       another one sends "global-commit". Is this possible? Why? (10)

Q4. In the centralized 3PC termination protocol, the first step involves sending the coordinator’s state
       to all participants. The participants move to new states according to the coordinator’s state. It is possible
       to design the termination protocol such that the coordinator, instead of sending its own state information
       to the participants, asks the participants to send their state information to the coordinator.
       Modify the termination protocol to function in this manner. (10)

       (a) What are the problems in a commit protocol if a failure of a participating site occurs? Give an example
       to illustrate the problem. (10)
       (b) How can the simple termination protocol be made robust? Give the summary of messages that are
       needed to abort, and commit the transaction. (10)
       (c) Define the concurrency set of a local state in a commit protocol. (10)

       (a) What are session numbers and nominal session numbers? What role they play in recovery? (10)
       (b) What are control transactions? What is their role? (10)

Q7. Explain the various ideas of determining a 'unique majority partition' that can continue to process
       transactions during a network partition. Consider cases where multiple partitions and merging may
       take place. Suggest what useful processing can be done in minority partitions so that the merge
       process is quick and efficient. How can the size of the paritition be determined at the time of
       partition and how can we determine if the mutual consistency has been voilated at the time of
       merge? (10)