Exo: Atomic Broadcast for the Rack-Scale Computer Matthew P. - - PowerPoint PPT Presentation

exo atomic broadcast for the rack scale computer
SMART_READER_LITE
LIVE PREVIEW

Exo: Atomic Broadcast for the Rack-Scale Computer Matthew P. - - PowerPoint PPT Presentation

Exo: Atomic Broadcast for the Rack-Scale Computer Matthew P. Grosvenor Marwan Fayed Andrew W. Moore What is a Rack-Scale Computer 2 Today Tomorrow I/O Compute Memory Storage C 50 - 200 machines 500-2000 nodes Commodity


slide-1
SLIDE 1

Exo: Atomic Broadcast for the Rack-Scale Computer

Matthew P. Grosvenor Marwan Fayed Andrew W. Moore

slide-2
SLIDE 2

What is a Rack-Scale Computer

  • 50 - 200 machines
  • Commodity

hardware

  • Commodity

network

2

C

I/O Compute Memory Storage

  • 500-2000 “nodes”
  • Disaggregated

hardware

  • Custom (photonic?)

interconnect(s) Today Tomorrow

slide-3
SLIDE 3

The problem with disaggregation

3

CPUS Memory GPUS Disk Network I/O

slide-4
SLIDE 4

Other Types of Coordination

  • Coordination using

simple MESI/MOSI protocols

  • Specialised

hardware over a reliable, low latency interconnect.

✓ High performance X Not failure tolerant X Doesn’t scale well

4

Single Machines

slide-5
SLIDE 5

Other Types of Coordination

  • Coordination using

simple MESI/MOSI protocols

  • Specialised

hardware over a reliable, low latency interconnect.

✓ High performance X Not failure tolerant X Doesn’t scale well

5

  • Coordination using

software protocols

  • General purpose,

high latency, error prone network

X Low performance ✓ Fault Tolerant X Doesn’t scale well

Single Machines Cluster Systems

slide-6
SLIDE 6

Other Types of Coordination

  • Coordination using

simple MESI/MOSI protocols

  • Specialised

hardware over a reliable, low latency interconnect.

✓ High performance X Not failure tolerant X Doesn’t scale well

6

  • Coordination using

software protocols

  • General purpose,

high latency, error prone network

X Low performance ✓ Fault Tolerant X Doesn’t scale well

Single Machines Cluster Systems

Something in the middle ???

slide-7
SLIDE 7

Other Types of Coordination

  • Coordination using

simple MESI/MOSI protocols

  • Specialised

hardware over a reliable, low latency interconnect.

✓ High performance X Not failure tolerant X Doesn’t scale well

7

  • Coordination using

software protocols

  • General purpose,

high latency, error prone network

X Low performance ✓ Fault Tolerant X Doesn’t scale well

Single Machines Cluster Systems

Something in the middle ??? That scales?

slide-8
SLIDE 8

Building a Coordination Network (Tomorrow)

✓ Silicon Photonic Interfaces on

chip

X High radix optical switches? ✓ Burst mode transceivers ✓ Passive all optical interconnect

(PON)

✓ Network broadcast as a

primitive for building Atomic Broadcast

8

B A C D B A C D

Unicast Broadcast

slide-9
SLIDE 9

Media Access and Agreement

  • How do we mediate access to the network?
  • What agreement protocol do we use?

  • Use token rings
  • Two birds with one stone

✓ Well established MAC protocol ✓ Well established agreement protocol. Very high

(optimal) throughput performance.

9

slide-10
SLIDE 10

The Problem with Token Passing

  • Token passing is latency

bound

  • Each host must wait at

least n-1 hops for agreement = n x per-hop latency (t)

  • Per hop latency must be

minimised

10

Per hop latency

t t t t Total latency = t + t + t + t = 4t Throughput (per host) ≈ 1/ 4t

slide-11
SLIDE 11

What’s the latency?

11

B A C D B A C D

Unicast Broadcast

7.5ns 7.5ns = 15ns per hop Assuming 3m of fibre @ 0.75C 0ns 0ns

slide-12
SLIDE 12

What’s the latency?

12

B A C D B A C D

Unicast Broadcast

7.5ns 7.5ns = 15ns per hop Assuming 3m of fibre @ 0.75C 0ns 0ns @10G 64B frames = 14.4M msg/sec

slide-13
SLIDE 13

Building a Coordination Network (Today)

Use Exalink Fusion Switch to emulate all optical network

  • Broadcast - 5ns
  • Aggregation - 95ns

13

slide-14
SLIDE 14

Building a Coordination Network (Today)

14

B A C D B A C D

Unicast Broadcast

Fusion Aggregate Fusion Broadcast 7.5ns 95ns 5ns 7.5ns = 115ns per hop = 8.6M msg/sec

slide-15
SLIDE 15

Building a Coordination Network (In the lab)

  • Use ethernet switch and matrix

switch to emulate Exablaze Fusion

  • Arista 7124FX
  • Aggregation/switching 350ns
  • Exablaze ExaLink 50
  • Broadcast <5ns

15

slide-16
SLIDE 16

Building a Coordination Network (in the lab)

16

B A C D B A C D

Unicast Broadcast

Artist 7124FX Exablaxe ExaLink50 7.5ns 350ns 5ns 7.5ns = 370ns per hop = 2.7M msg/sec

slide-17
SLIDE 17

But wait, there’s more… (latency)

17

Exo Server NIC Unicast Broadcast

slide-18
SLIDE 18

But wait, there’s more… (latency)

18

Exo Server NIC Unicast Broadcast

Network Latency 370ns

slide-19
SLIDE 19

But wait, there’s more (latency)

19

Exo Server NIC Unicast Broadcast

PCIe Latency Network Latency 370ns

slide-20
SLIDE 20

But wait, there’s more… (latency)

20

Exo Server NIC

400ns 350 5ns 400ns 7.5ns 7.5ns

Unicast Broadcast

PCIe Latency Network Latency 370ns >800ns 5ns

slide-21
SLIDE 21

But wait, there’s more… (latency)

  • total per-hop-latency ≈ 1us
  • 200 x 1us ≈ 200us 


≈ 5000 msgs per host per second.

21

Exo Server NIC

400ns 350 5ns 400ns 7.5ns 7.5ns

Unicast Broadcast

5ns

slide-22
SLIDE 22

Dealing with latency

  • 1. Make it go away
  • e.g use a Fusion
  • e.g use all optical
  • 2. Hide it
  • Introduce pipelining

22

slide-23
SLIDE 23

Dealing with latency

  • 1. Make it go away
  • e.g use a Fusion
  • e.g use all optical
  • 2. Hide it
  • Introduce pipelining

23

slide-24
SLIDE 24

Hiding Latency

  • Introduce pipelining to hide latency
  • Host to NIC and NIC to network transmissions run in

parallel

24

Exo Server Offload Engine

350 5ns 7.5ns 7.5ns C1 C2

Unicast Broadcast

5ns 400ns 400ns

slide-25
SLIDE 25

Hiding Latency

  • In network latency ≈ 400ns
  • Per-hop latency ≈ 1us (pipelined for 1 message per 400ns)
  • 200 x 400ns ≈ 80us 


≈ 12,500 messages per second / per host.

25

Exo Server Offload Engine

350 5ns 7.5ns 7.5ns C1 C2

Unicast Broadcast

400ns 400ns 5ns

slide-26
SLIDE 26

Let’s Talk About Failure

  • Failure is very unlikely.
  • No packet loss due to congestion
  • Bit errors on the wire 1/10^12 … 1/10^14
  • Partitioning - Single chip? Can it half fail?

Byzantine?

  • 1/10^20 ??
  • Partitioning - requires n-way x m - correlated failure
  • (1/10^12)^n * m
  • Therefore, optimise for the common case

26

slide-27
SLIDE 27

The Exo Protocol

  • Protocol is implemented correctly on all hosts
  • Hosts may stop, crash, restart, loose packets or

become partitioned

  • The is a fixed upper number of hosts (n) in the
  • network. Host may leave and come back, but more

hosts may not be added.

27

slide-28
SLIDE 28

Anatomy of the Exo Protocol

28

Assume ¡a ¡network ¡with ¡ fast ¡and ¡cheap ¡broadcast ¡ messaging

slide-29
SLIDE 29

Anatomy of the Exo Protocol

29

And ¡some ¡maximum ¡ number ¡of ¡hosts ¡n ¡(5) ¡ labeled ¡A-­‑E E A D C B

slide-30
SLIDE 30

Anatomy of the Exo Protocol

30

And ¡some ¡maximum ¡ number ¡of ¡hosts ¡n ¡(5) ¡ labeled ¡A-­‑E, ¡in ¡a ¡fixed, ¡ predetermined ¡order E A D C B

slide-31
SLIDE 31

Anatomy of the Exo Protocol

31

Each ¡host ¡keeps ¡the ¡ following ¡state: ¡

  • ­‑append ¡only ¡log ¡
  • ­‑sequence ¡number ¡
  • ­‑n/2 ¡message ¡history

E A D C B seq ¡: ¡0

X X

Append Agreement

slide-32
SLIDE 32

Anatomy of the Exo Protocol

32

E A D C B Host ¡B ¡broadcasts ¡a ¡message ¡M ¡ with ¡the ¡sequence ¡number ¡and ¡ message ¡history ¡included ¡as ¡well ¡ as ¡any ¡data ¡(optional) M=0,X,X seq ¡: ¡0

X X

Append Agreement

slide-33
SLIDE 33

Anatomy of the Exo Protocol

33

E A D C B Message ¡from ¡B ¡arrives ¡ at ¡all ¡hosts, ¡causes ¡a: ¡ ¡

  • ­‑log ¡append

seq ¡: ¡0

X X

Append

0 ¡ x ¡ x

Agreement M=0,X,X B

slide-34
SLIDE 34

Anatomy of the Exo Protocol

34

E A D C B Message ¡from ¡B ¡arrives ¡ at ¡all ¡hosts, ¡causes ¡a: ¡ ¡

  • ­‑log ¡append ¡
  • ­‑sequence ¡number ¡

update ¡ seq ¡: ¡1

X X

Append

0 ¡ x ¡ x

Agreement M=0,X,X B

slide-35
SLIDE 35

Anatomy of the Exo Protocol

35

E A D C B Message ¡from ¡B ¡arrives ¡ at ¡all ¡hosts, ¡causes ¡a: ¡ ¡

  • ­‑log ¡append ¡
  • ­‑sequence ¡number ¡

update ¡ ¡

  • ­‑message ¡history ¡update

seq ¡: ¡1

B X

Append

0 ¡ x ¡ x

Agreement M=0,X,X B

slide-36
SLIDE 36

Anatomy of the Exo Protocol

36

E A D C B Host ¡C ¡now ¡has ¡the ¡network seq ¡: ¡1

B X

Append

0 ¡ x ¡ x

Agreement B

slide-37
SLIDE 37

Anatomy of the Exo Protocol

37

E A D C B M=1,B,X Host ¡C ¡broadcasts ¡a ¡message seq ¡: ¡1

B X

Append

0 ¡ x ¡ x

Agreement B

slide-38
SLIDE 38

seq ¡: ¡2

C B

Append

0 ¡ x ¡ x 1 ¡ B ¡ x

Agreement

Anatomy of the Exo Protocol

38

E A D C B M=1,B,X Message ¡from ¡C ¡arrives ¡at ¡hosts, ¡ causing ¡update B C

slide-39
SLIDE 39

Anatomy of the Exo Protocol

39

E A D C B D ¡now ¡has ¡the ¡token seq ¡: ¡2

C B

Append

0 ¡ x ¡ x 1 ¡ B ¡ x

Agreement B C

slide-40
SLIDE 40

Anatomy of the Exo Protocol

40

E A D C B M=2,C,B seq ¡: ¡2

C B

Append

0 ¡ x ¡ x 1 ¡ B ¡ x

Agreement Host ¡D ¡broadcasts ¡a ¡message B C

slide-41
SLIDE 41

Anatomy of the Exo Protocol

41

E A D C B M=2,C,B Message ¡from ¡D ¡arrives ¡at ¡hosts, ¡ causing ¡update ¡and ¡agreement ¡on ¡ sequence ¡number ¡0 seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement B C D

slide-42
SLIDE 42

Zooming in…

42

E A D C B M=2,C,B Message ¡from ¡D ¡arrives ¡at ¡hosts, ¡ causing ¡update ¡and ¡agreement ¡on ¡ sequence ¡number ¡0 seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement B C D

slide-43
SLIDE 43

Zooming in…

43

seq ¡: ¡3

D C Append 0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B Agreement B C D

slide-44
SLIDE 44

Zooming in…

44

seq ¡: ¡3

D C Append 0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B Agreement B C D

No ¡missing ¡messages

NB: ¡Using ¡a ¡64bit ¡sequence ¡number ¡gives ¡>400 ¡years ¡operation ¡at ¡1 ¡message ¡ per ¡nano-­‑second.

slide-45
SLIDE 45

Zooming in…

45

seq ¡: ¡3

D C Append 0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B Agreement B C D

slide-46
SLIDE 46

Zooming in…

46

seq ¡: ¡3

D C Append 0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B Agreement B C D

slide-47
SLIDE 47

Zooming in…

47

seq ¡: ¡3

D C Append 0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B Agreement B C D

A ¡majority ¡of ¡hosts ¡agree ¡on ¡ the ¡message ¡order

NB: ¡Assuming ¡at ¡most ¡256 ¡nodes, ¡message ¡history ¡is ¡128B ¡and ¡can ¡

slide-48
SLIDE 48

48

seq ¡: ¡3

D C Append 0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B Agreement B C D

seq ¡: ¡3 D C Append 0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

How to accelerate the protocol?

NIC Host

slide-49
SLIDE 49

Implementation

  • Protocol implemented over CamIO
  • Runs on TCP, Broadcast UDP, Raw Frames and

OpenOnload (ExaSock)

  • Offload engine (mostly) implemented in FPGA
  • Currently working for empty messages.

49

slide-50
SLIDE 50

Results

50

Linux TCP 36µs/msg 28K msg/sec) Linux UDP 29µs/msg (34K msg/sec) Linux UDP (broadcast) 16µs/msg (62K msg/sec) Linux TCP (loopback) 9µs/msg (110K msg/sec) Linux UDP (loopback) 4us/msg (231K msg/sec) Libexanic (raw frames) 3µs/msg (359K msg/sec) Exo HW offload 0.4µs/msg (2500K msg/sec)

slide-51
SLIDE 51

Results

51

Linux TCP 36µs/msg 28K msg/sec) Linux UDP 29µs/msg (34K msg/sec) Linux UDP (broadcast) 16µs/msg (62K msg/sec) Linux TCP (loopback) 9µs/msg (110K msg/sec) Linux UDP (loopback) 4us/msg (231K msg/sec) Libexanic (raw frames) 3µs/msg (359K msg/sec) Exo HW offload 0.4µs/msg (2500K msg/sec)

≈ 100x Faster

slide-52
SLIDE 52

Concuslisions

  • Exo is a work in progress
  • We use a specialised network and hardware
  • ffload to build fast scalable coordination for rack-

scale architectures

  • Initial results suggest at least a 100x speed

improvement over existing protocols/systems

52

slide-53
SLIDE 53

Questions?

53

Thanks to our sponsors

This work was jointly supported by the EPSRC INTERNET Project EP/H040536/1 and the Defense Advanced Research Projects Agency (DARPA) and the Air Force Research Laboratory (AFRL), under contract FA8750-11-C-0249. The views, opinions, and/or findings contained in this article/presentation are those of the author/presenter and should not be interpreted as representing the official views or policies, either expressed or implied, of the Defense Advanced Research Projects Agency or the Department of Defense.

slide-54
SLIDE 54

Backups

slide-55
SLIDE 55

Anatomy of the Exo Protocol

55

E A D C B seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement E ¡now ¡has ¡the ¡token B C D

slide-56
SLIDE 56

Handling Errors?

56

E A D C B seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement E ¡now ¡has ¡the ¡token B C D

slide-57
SLIDE 57

Handling Errors?

57

E A D C B seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement Consider ¡the ¡following ¡ pathological ¡case Network ¡partition B C D

slide-58
SLIDE 58

seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement

Handling Errors?

58

E A D C B seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement Consider ¡the ¡following ¡ pathological ¡case Network ¡partition B C D B C D

slide-59
SLIDE 59

seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement

Handling Errors?

59

E A D C B seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement Host ¡E ¡broadcasts ¡a ¡message M=3,D,C,B B C D B C D

slide-60
SLIDE 60

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

60

E A D C B seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement Message ¡from ¡E ¡arrives ¡at ¡C,D ¡& ¡E ¡ causing ¡an ¡update ¡and ¡agreement ¡

  • n ¡sequence ¡1

S=3,D,C,B B C D B C D E

slide-61
SLIDE 61

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

61

E A D C B Host ¡A ¡broadcasts ¡a ¡message seq ¡: ¡3

D C

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B

Agreement M=3,D,C,B B C D E B C D

slide-62
SLIDE 62

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

62

E A D C B seq ¡: ¡4

A D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement Message ¡from ¡A ¡arrives ¡at ¡A ¡& ¡B, ¡ causing ¡an ¡update ¡and ¡agreement M=3,D,C,B B C D E B C D A

slide-63
SLIDE 63

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

63

E A D C B seq ¡: ¡4

A D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement B ¡now ¡has ¡the ¡token B C D E B C D A

slide-64
SLIDE 64

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

64

E A D C B seq ¡: ¡4

A D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement Host ¡B ¡broadcasts ¡a ¡message M=4,A,D,C B C D E B C D A

slide-65
SLIDE 65

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

65

E A D C B seq ¡: ¡5

B A

Ap

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement Message ¡from ¡B ¡arrives ¡at ¡A ¡& ¡B, ¡ causing ¡an ¡update ¡and ¡agreement M=4,A,D,C B C D E B C D A B

slide-66
SLIDE 66

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C ¡ B

Agreement

Handling Errors?

66

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement After ¡some ¡time, ¡A ¡times ¡out ¡ and ¡assumes ¡it ¡has ¡the ¡token. ¡ B C D E B C D A B

slide-67
SLIDE 67

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

67

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement Message ¡from ¡A ¡is ¡sent. ¡ ¡ Since ¡there ¡is ¡no ¡quorum, ¡the ¡ message ¡is ¡rejected. ¡ M=5,B,A,D B C D E B C D A B

slide-68
SLIDE 68

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

68

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement Message ¡from ¡A ¡is ¡sent. ¡ ¡ Since ¡there ¡is ¡no ¡quorum, ¡the ¡ message ¡is ¡rejected. ¡ M=5,B,A,D B C D E B C D A B Exo ¡will ¡only ¡accept ¡a ¡new ¡ message ¡if ¡the ¡source ¡of ¡the ¡ message ¡is ¡not ¡in ¡the ¡history ¡

  • list. ¡Nodes ¡in ¡a ¡minor ¡partition ¡

are ¡halted ¡until ¡the ¡partition ¡

  • restores. ¡
slide-69
SLIDE 69

seq ¡: ¡4

E D

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C

Agreement

Handling Errors?

69

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement In ¡the ¡meantime, ¡Host ¡C ¡ broadcasts ¡a ¡message M=4,E,D,C B C D E B C D A B

slide-70
SLIDE 70

seq ¡: ¡5

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

Handling Errors?

70

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement M=4,E,D,C Message ¡from ¡B ¡arrives ¡at ¡A ¡& ¡B, ¡ causing ¡an ¡update ¡and ¡agreement B C D E B C D A B C

slide-71
SLIDE 71

seq ¡: ¡5

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

Handling Errors?

71

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement D ¡now ¡has ¡the ¡token B C D E B C D A B C

slide-72
SLIDE 72

seq ¡: ¡5

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

Handling Errors?

72

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement Miraculously, ¡the ¡ partition ¡is ¡healed!!! B C D E B C D A B C

slide-73
SLIDE 73

seq ¡: ¡5

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

Handling Errors?

73

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement Miraculously, ¡the ¡ partition ¡is ¡healed!!! B C D E B C D A B C

slide-74
SLIDE 74

seq ¡: ¡5

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

Handling Errors?

74

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement M=5,C,E Host ¡D ¡broadcasts ¡a ¡message B C D E B C D A B C

slide-75
SLIDE 75

seq ¡: ¡5

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

Handling Errors?

75

E A D C B seq ¡: ¡5

B A

App

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement M=5,C,E Message ¡from ¡D ¡arrives ¡at ¡A, ¡ B,C,D ¡& ¡E ¡causing ¡??? B C D E B C D A B C

slide-76
SLIDE 76

Handling Errors?

76

Message ¡from ¡D ¡arrives ¡at ¡A, ¡ B,C,D ¡& ¡E ¡causing ¡??? seq ¡: ¡5

B A

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement seq ¡: ¡5

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement B C D E B C D A B C

slide-77
SLIDE 77

seq ¡: ¡6

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

5 ¡ CE

Handling Errors?

77

Message ¡from ¡D ¡arrives ¡at ¡A, ¡ B,C,D ¡& ¡E ¡causing ¡??? seq ¡: ¡5

B A

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement B C D E C D B C D A B

slide-78
SLIDE 78

Handling Errors?

78

Message ¡from ¡D ¡arrives ¡at ¡A, ¡ B,C,D ¡& ¡E ¡causing ¡??? seq ¡: ¡5

B A

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement

5 ¡ CE

seq ¡: ¡6

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

5 ¡ CE

B C D E C D B C D A B D

slide-79
SLIDE 79

Handling Errors?

79

Message ¡from ¡D ¡arrives ¡at ¡A, ¡B,C,D ¡& ¡E ¡causing ¡ ¡

  • ­‑update ¡and ¡agreement ¡to ¡C, ¡D ¡& ¡E ¡
  • ­‑error ¡detection ¡for ¡A ¡& ¡B

seq ¡: ¡5

B A

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement

5 ¡ CE

seq ¡: ¡6

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

5 ¡ CE

B C D E C D B C D A B D

slide-80
SLIDE 80

Handling Errors?

80

Hosts ¡A ¡&B ¡must ¡now ¡use ¡the ¡out ¡of ¡band ¡network ¡to ¡query ¡C,D ¡& ¡E ¡about ¡their ¡ log ¡state ¡ ¡for ¡sequence ¡3-­‑5. ¡Once ¡a ¡majority ¡of ¡response ¡are ¡gathered ¡is ¡reached, ¡ host ¡A ¡& ¡B ¡can ¡continue ¡to ¡move ¡the ¡agreement ¡pointer seq ¡: ¡5

B A

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement

5 ¡ CE

seq ¡: ¡6

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

5 ¡ CE

B C D E C D B C D A B D

slide-81
SLIDE 81

Handling Errors?

81

Hosts ¡A ¡&B ¡must ¡now ¡use ¡the ¡out ¡of ¡band ¡network ¡to ¡query ¡C,D ¡& ¡E ¡about ¡their ¡ log ¡state ¡ ¡for ¡sequence ¡3-­‑5. ¡Once ¡a ¡majority ¡of ¡response ¡are ¡gathered ¡is ¡reached, ¡ host ¡A ¡& ¡B ¡can ¡continue ¡to ¡move ¡the ¡agreement ¡pointer seq ¡: ¡5

B A

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ A ¡ D

Agreement

5 ¡ CE

seq ¡: ¡6

C E

Append

0 ¡ x ¡ x 1 ¡ B ¡ x 2 ¡ C ¡ B 3 ¡ D ¡ C 4 ¡ E ¡ D

Agreement

5 ¡ CE

B C D E C D B C D A B D NB: ¡New ¡messages ¡can ¡be ¡added ¡to ¡the ¡log ¡at ¡the ¡append ¡pointer, ¡but ¡the ¡agreement ¡ pointer ¡cannot ¡move ¡until ¡consensus ¡has ¡been ¡reached