Part 1: In a two-phase, total-order multicast system, messages are sent in the following sequence from node S to G1 and G2. G1 and G2 are the members of the group.
S sends m1 to G1
S sends m1 to G2
S sends m2 to G2
S sends m2 to G1
Use the basic implementation of the Lamport clock. The clock s at each node start at: S: 4, G1: 6, G2: 1
Show the exchange of messages and their acknowledgments in a clock diagram using the basic implementation of Lamport’s clock.
In which order and at what times are m1 and m2 delivered?
Part 2. Draw a state diagram of Maekawa’s voting algorithm on the slide “Maekawa’s algorithm” in the “Distributed mutual exclusion” slide set. Note that the state diagram is from the point of view of any one of the nodes, called “this” node below. A state diagram cannot also show the states of other nodes.
i) Start with the basic case where “this” node wants the lock, gets it, and then releases it, and no other node wants the lock at the same time. In this case, “this” node goes through all the states in this order:
Released and not voted
Wanted and not voted
Wanted and voted
Held and voted
Released and voted
(Back to) Released and not voted
acquire for when “this” node wants the lock
release for when “this” node gives up the lock.
request_received, reply_received, and release_received when a message from any node arrives at “this” node.
The state diagram is similar the one of Ricart and Agrawala’s state machine (in the Distributed Mutual Exclusion PowerPoint deck) but has more states.
*** If you do part i) more or less correctly, you will earn most of the points. ***
ii) The complete solution includes the situations where “this” node votes on requests from other nodes. The states are the same as above, but there are additional transitions and actions. Use the “Maekawa scenario” slide in the Distributed Mutual Exclusion slide set, or Fig. D-10 in the Study Guide.