Download Ordered Multicast Communication in Distributed Systems | CS 425 and more Study notes Computer Science in PDF only on Docsity!
Lecture 5
ordered multicast communication
distributed systems
CS425 / ECE 428 / CSE 424
sayan mitra
acknowledgment
These slides are based on ideas and material from the following sources:
- slides prepared by Professors M. T. Harandi and J. Hou and subsequently modified by Professors Indranil Gupta, Nitin Vaidya, and Yih-Chun Hu at University of Illinois
- slides from Professor S. Ghosh’s course at University of Iowa
plan for today
• ordered multicast algorithms
– fifo-ordered multicast
– causal-ordered multicast
FIFO-ordered multicast
FIFO ordered multicast
- Spg : the number of messages p has sent to g.
- Rqg : the sequence number of the latest group- g message p has delivered from q.
- for p to FO-multicast m to g
- p increments Spg by 1.
- p piggy backs the value Spg onto the message.
- p B-multicasts m to g.
- upon receipt of m from q with sequence number S :
- p checks whether S= Rqg+1. If so, p FO-delivers m and increments Rqg
- If S > Rqg+1, p places the message in the hold-back queue until the intervening messages have been delivered and S= Rqg+1.
hold-back queue for received yet undelivered
multicast messages
Message processing
Delivery queue
Hold-back queue
deliver
Incoming messages
When delivery guarantees are met
causal-ordered multicast
causal multicast
- let us focus on multicast group g
- each process i g maintains a vector Vgi^ of length | g | where
- Vgi[j] counts the number of group g messages from j to I
- messages are tagged with the vector timestamp
example: causally ordered multicast
P 1
P 2
P 3
real time
(1,1,0)
Reject:
Accept
0,0,
0,0,
0,0,
1,0,0 (^) 1,1,
1,0,
Buffer missing p 1 (1)
1,1,
1,1,
1,1,
Accept:
1,0,
Accept Buffered message
1,1,
(1,0,0)
(1,0,0)
(1,1,0) (^) (1,1,0)
Accept
total-ordered multicast
ISIS algorithm for total ordering
2 1
1
2
2
1 Message
P 2
P 3
P 1
P 4
3 Agreed Seq
3
3
ISIS algorithm for total ordering
- The multicast sender multicasts the message to everyone.
- Recipients add the received message to a special queue called the priority queue , tag the message undeliverable , and reply to the sender with a proposed priority that is basically a sequence number. Further, this proposed priority is 1 more than the latest sequence number heard so far ), suffixed with the recipient's process ID. The priority queue is always sorted by priority.
- The sender collects all responses from the recipients, calculates their maximum , and re-multicasts with this as the final priority for the message.
- On receipt of this information, recipients mark the message as deliverable , reorder the priority queue, and deliver the set of lowest priority messages that are marked as deliverable.
groups
• multicast algorithms rely on groups
• open group: anyone may join (e.g.
customers of Walmart)
• closed group: membership is closed (e.g.
class of 2010)
• the view of a process is its current
knowledge of the membership
• it is important that all processes have
identical views
example: inconsistent views
can lead to problems
four members (0,1,2,3) will send out 144 emails.
assume that 3 left the group but only 2 knows about it
0 will send 144/4 = 36 emails (first quarter 1-36)
1 will send 144/4 = 48 emails (second quarter 37-72)
2 will send 144/3 = 48 emails (last one-third 97-144)
3 has left, mails 73-96 will never be sent out!