Professional Documents
Culture Documents
S2 Multicast 1
S2 Multicast 1
Multicast T1
T2
Ordered multicast T1
T2
2 4
1
30/07/2017
T1 T1
T2 T2
F1
F2 F3
Time Time
P1 P2 P3 P1 P2 P3
5 7
T1 T1
T2 T2
F1 F1
F2 F3 F2 F3
Time Time
P1 P2 P3 P1 P2 P3
6 8
2
30/07/2017
T1 T1
T2 T2
F1 F1
F2 F3 F2 F3
Time Time
C1 C1
C2 C3
C2 C3
P1 P2 P3 P1 P2 P3
9 11
3
30/07/2017
P2 P2
1 Message 1 Message
3
P4 2 P4
1 1
3 Agreed TS
1 1
P1 2 P1
3
P3 P3
13 15
h2
1
Holding queue: Delivery queue:
2 P1 m2
S2
P3
14 16
4
30/07/2017
h1 h1
Holding queue: Delivery queue: Holding queue: Delivery queue:
m1 (1, S1) m1 (1, S1)
S1 m1 S1 m2 (2, S2)
m1 (1, S1)
h2 h2
Holding queue: Delivery queue: Holding queue: Delivery queue:
m2
S2 m2 (1, S2) S2 m2 (1, S2)
m1 (2, S1)
m2 (1, S2)
17 19
h1 h1
Holding queue: Delivery queue: Holding queue: Delivery queue:
m1 (1, S1) m1 (1, S1)
S1 m1 S1 m2 (2, S2)
m1 (1, S1)
h2 h2
Holding queue: Delivery queue: Holding queue: Delivery queue:
m2
S2 m2 (1, S2) S2 m2 (1, S2)
m1 (2, S1)
m2 (1, S2)
18 20
5
30/07/2017
h1 h1
Holding queue: Delivery queue: Holding queue: Delivery queue:
m1 (1, S1) m1 (2, S1)*
S1 m2 (2, S2) S1 m1 (2, S1) m2 (2, S2)
m1 (1, S1)
m1 (2, S1)
h2 h2
Holding queue: Delivery queue: Holding queue: Delivery queue:
m2 (2, S2)
S2 m2 (1, S2) S2 m1 (2, S1)
m1 (2, S1) m2 (2, S2)*
m2 (1, S2)
m2 (2, S2)
21 23
h1 h1
Holding queue: Delivery queue: Holding queue: Delivery queue:
m1 (1, S1) m2 (2, S2) m1 (2, S1)
S1 m1 (2, S1) m2 (2, S2) S1 m1 (2, S1)
h2 h2
Holding queue: Delivery queue: Holding queue: Delivery queue:
m2 (2, S2) m2 (2, S2)
S2 m2 (1, S2) S2 m1 (2, S1)
m1 (2, S1) m2 (2, S2)*
22 24
6
30/07/2017
26 28
7
30/07/2017
P1 P2 P3 P1 P2 P3
29 31
P1 P2 P3 P1 P2 P3
30 32
8
30/07/2017
M2 M3 M2 M3
deliver M3
V1[1]=2 V3[1]=1 V1[1]=2 V3[1]=1
V1[2]=0 V3[2]=0 V1[2]=0 V3[2]=0
V1[3]=0 V3[3]=1 V1[3]=0 V3[3]=1
deliver M3
deliver M2 deliver M2
P1 P2 P3 P1 P2 P3
33 35
M2 M3
V1[1]=2 V3[1]=1
V1[2]=0 V3[2]=0
V1[3]=0 V3[3]=1
P1 P2 P3 P1 P2 P3
34 36
9
30/07/2017
38 40
10
30/07/2017
42 44
11
30/07/2017
examples
Acknowledgement: This example is adapted from Prof. Indranil Gupta of UIUC Acknowledgement: This example is adapted from Prof. Indranil Gupta of UIUC
45 47
Acknowledgement: This example is adapted from Prof. Indranil Gupta of UIUC Acknowledgement: This example is adapted from Prof. Indranil Gupta of UIUC
46 48
12
30/07/2017
Implementing Virtual Synchrony When a process P receives a view change message, P sends a
copy of any unstable message from the current view to
Assumptions
A message is multicast using reliable point-to-point communication every process in the current view and marked these
(e.g. TCP). messages as stable
Although each point-to-point transmission is guaranteed to succeed, there
are no guarantees that all group members receive the message To indicate that P no longer has any unstable messages and
The sender might crash during or before transmitting the message that it is prepared to install the new view, P multicast a
No process crash during view change flush message for installing the new view
There is one leader for handling view change
Problem
Guarantee that all messages sent to group view G are delivered to all
nonfaulty processes in G before the group view changes to G’ (i.e. G Process 6 sends out
≠G’) all its unstable
messages followed
Solution by a flush message
For each message m, each process in G keeps m until it knows that all
members in G have received m
If m has been received by all members in G, m is called stable.
Only stable messages can be deleted.
49 51
Process 4 noticed
the failure of Process 6 installs
process 7 and sends the new view when
a view change it has received a
flush message
message
from all other
processes
50 52
13
30/07/2017
reviews
Understand the meaning of FIFO, total and causal
readings
order multicast and use an example to show why
they are important for applications.
Understand the three algorithms for implementing K. Birman and T. Joseph. Reliable
the three ordered multicast protocols. communications in the presence of failures.
Can the causal order protocol be used to ensure ACM Trans. Comput. Syst., 5(1), 1987
FIFO order multicast? Explain why.
Can the FIFO order multicast protocol be used to K. Birman, A. Schiper, and P. Stephenson.
ensure total order multicast? Explain why. Lightweight causal and atomic group
Design an algorithm that uses the partially
ordered logical timestamp to ensure the casual- multicast. ACM Transactions on Computer
ordering of multicast messages. Systems, 9(3):272--314, 1991
What properties does virtual synchrony have?
53 55
reviews
14