You are on page 1of 59

FIFO-Broadcast

FIFO Order

p0

m1

m2

p1
p2
p3
Messages from pi are received in
the order they are sent from pi
2

Not FIFO-order

p0

m1

m2

p1
p2
p3

FIFO order

m1

p0
p1

m3

m2
m4

p2
p3
Messages from different
processors may be received in
different order
4

Not FIFO-order

m1

p0
p1

m3

m2
m4

p2
p3

Why is FIFO important?

ATM

Bank
Account

Deposit
$1000

$0

Withdraw
$500

$1000

$500

FIFO order
6

Why is FIFO important?


Deposit
$1000

ATM

Bank
Account

$0

Not FIFO order

Withdraw
$500

-$500

$500

Not an allowed
transaction

A simple FIFO algorithm

p0
p1
p2
p3

m1
1

m2

1
1

2
2

A processor increments a counter


when it broadcasts
8

p0
p1
p2
p3

m1
1

m2

V p0 = 0

1
1

V p0 = 1

2
2

V p0 = 2

A processor keeps track of the highest values


received from other processors
9

p0
p1
p2
p3

m1
1

m2

1
1

V p0 = 0

2
2

wait

ok

Wait until all messages with smaller


values from the same sender are received
10

p0
p1
p2
p3

m1
1

m2

1
1

2
2

2
2

V p0 = 0

V p0 = 1

V p0 = 2

receive

11

Totally Ordered - Broadcast

12

Total Order

p0
p1

m1
m2

p2
p3
Messages are received in
the same order in every processor
13

Not Total Order

p0
p1

m1
m2

p2
p3

14

Total Order

p0
p1

m1
m2

p2
p3

15

Not Total Order

p0
p1

m1
m2

p2
p3

16

An Asymmetric Algorithm
counter
1
p0

p1
p2
p3
Request a counter value

17

counter
1
p0

p1

p2
p3
Receive a counter value

18

counter
1
p0

p1

1
1
1

p2
p3

Broadcast

19

counter
1
p0

p1
p2
p3

2
1

1
1

2
2
2

1
1

20

p0
p1
p2
p3

2
1
2
1

wait

ok

With the counter,


broadcast messages are totally ordered
21

p0
p1
p2
p3

2
1
2

wait

ok
received

With the counter,


broadcast messages are totally ordered

22

A Symmetric Algorithm

Builds on top of FIFO

It is a form of Vector Clocks

23

Every process has a counter

On broadcast:
the process sends the
counter value to every body

24

On reception of a message:
If received counter value is higher
than local value, then:
Update local counter to new value
Broadcast new counter value to
everybody else
25

p0

p1

p2

0
0

0

0
0

0

0
0

0

26

p0

p1

p2

0
0

0

0
0

0

0
0

0

1
0

0

27

p0

p1

p2

0
0

0

0
0

0

0
0

0

1
0

0

1
0

0

1
1

0

1
0

1

28

p0

p1

p2

0
0

0

0
0

0

0
0

0

1
0

0

1
0

0

1
1

0

1
0

1

1
1

0

1
1

1
1

0

1
1

0

Special broadcast message


29

p0

p1

p2

0
0

0

0
0

0

0
0

0

1
0

0

1
0

0

1
1

0

1
1

0

1
1

1
1

0

1
1

1
1

1
1
0

1

1
1

1
1

30

p0

p1

p2

0
0

0

0
0

0

0
0

0

1
0

0

1
0

0

1
1

0

1
1

0

1
1

1
1

0

1
1

1
1

1
1
0

1

1
1

0

1
1

Actual reception of normal broadcast message


31

p0

p1

p2

0
0

0

0
0

0

0
0

0

1
0

0

1
0

0

1
1

0

1
1

0

1
1

1
1

0

1
1

1
1

1
2

1

2
2

1
1
0

1

1
1

0

1
1

Another normal broadcast


32

Local vector of

pi

a0
a
1
a2
K

pi

receive a normal broadcast message


if messages counter
is smaller or equal than each a j

33

p0

p1

p2

0
0

0

0
0

0

0
0

0

34

p0

p1

p2

0
0

0

1
0

0

1
1

0
0

0

0
0

0

0
0

1

1
1

35

p0

p1

p2

0
0

0

1
0

0

1
0

1

1
1

0
0

0

0
0

0

1
1

0
0

1

1
1

1
0

1

36

p0

p1

p2

0
0

0

1
0

0

1
0

1

1
1

1
0
0

0

0
0

0

1
1

0
0

1

1
1

1
1

1
0

1

1
1

1
1

37

p0

p1

p2

0
0

0

1
0

0

1
0

1

0
0

0

0
0

0

0
0

1

1
1

1
1

1
1

1
1

1
0

1

1
1

1
1

38

p0

p1

p2

0
0

0

1
0

0

1
0

1

0
0

0

0
0

0

0
0

1

1
1

1
1

1
0

1

1
1

1
1

1
1

Symmetry is broken with node ids


39

Causally Ordered - Broadcast

40

Causal Order

p0
p1

m1
m2

p2
p3
Messages are received in
the order they are caused
41

Not causal order

p0
p1

m1
m2

p2
p3

42

Causal order

p0
p1
p2
p3

m2
m1

43

Not causal order

p0
p1
p2
p3

m2
m1

44

Observation: The Total Order algorithms


we described are also
Causal Order algorithms

There is a more efficient algorithm


in terms of message complexity

45

p0

p1

p2

0
0

0

0
0

0

0
0

0

46

p0

p1

p2

0
0

0

0
0

0

0
0

0

0
1

0

0
1

0

0
1

0 0

1

0

0
1

0
0
1

0

0
1

0

47

p0

p1

p2

0
0

0

0
0

0

0
0

0

0
1

0

0
1

0

0
1

0

0
2

0

0
2

0

0
2

0
0
1

0

48

p0

p1

p2

0
0

0

0
0

0

0
0

0

0
1

0

0
1

0

0
1

0

0
2

0

0
2

0

0
2

0
0
1

0

0
2

0

49

p0

p1

p2

0
2

0

0
2

0

0
2

0

50

p0

p1

p2

0
2

0

0
2

0

0
2

0

0
3

0

0
3

0

0
3

0

0
3

0

51

p0

p1

p2

0
2

0

0
2

0

0
2

0

0
3

0

0
3

0

0
3

0

1
3

0

1
3

0

1
3

0

0
3

0

52

p0

p1

p2

0
2

0

0
2

0

0
2

0

0
3

0

0
3

0

0
3

0

1
3

0

1
3

0

1
3

0

0
3

0

1
3

0

53

v0
Processor pi officially receives
v
1

a message from p j with vector clock


v2
K

When:

1) All messages from pk ( k j )


smaller or equal to vk arrive
2) All messages from p j
smaller than v j arrive

54

Relationship Between
Broadcast Orders

55

Causal Order
a

a b

b
b a
Causal Order does not imply Total Order
56

Causal Order
a

Causal Order implies FIFO


57

Total Order
a

Total Order does not imply Causal Order


nor FIFO
58

FIFO
a

FIFO does not imply Causal Order


nor Total Order
59

You might also like