generalized universality - École polytechnique fédérale ...lpdwhat form of universality with...

38
1 © R. Guerraoui Generalized Universality R. Guerraoui, EPFL E. Gafni, UCLA

Upload: others

Post on 09-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

1 © R. Guerraoui

Generalized Universality

R. Guerraoui, EPFL

E. Gafni, UCLA

Page 2: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

2

Page 3: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

3

Act 1

Act 2

Act 3

Classical Universality

Modern Universality

Generalized Modern Universality

Page 4: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

4

Page 5: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

5

Algorithm

A finite set of precise instructions

Must always produce a result

The only intelligence required is to compute the instructions

Page 6: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

6 Universality

Which machine enables to compute everything?

Page 7: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

7

Act 1

Act 2

Act 3

Classical Universality

Generalized Universality

Modern Universality

Page 8: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

8

The Network is the Computer

Page 9: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

9

Algorithm

A finite set of precise instructions

Must always produce a result

The only intelligence required is to compute the instructions

NB. Despite concurrency and failures

Page 10: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

10

Which network enables to compute everything?

Linearizable Highly-available

Page 11: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

11

Universality of consensus [L-L-S-H-CT]

Test&Set?

Message Passing?

Register?

Consensus C&S Abcast

Page 12: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

12

Consensus

same-output = propose(input)

Processes propose each a value and agree on one of those values

Page 13: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

13

Universal construction

A state machine of which each process holds a copy

A list of commands local to each process

A list of consensus objects shared by the processes

Page 14: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

14

Universal construction

  while(true)

  c = commands.next()   cons = Consensus.next()

  c’ = cons.propose(c)   sM.perform(c’)

Page 15: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

15

Act 1

Act 2

Act 3

Classical Universality

Modern Universality

Generalized Universality

Page 16: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

16

Consensus is the particular case of k-consensus

Generalized Universality

Page 17: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

17

K-consensus [C, AGK]

  (value,position) = propose(kVect)

  Every process proposes a vector of k values and returns a value at some position

Page 18: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

18

K-consensus

  Validity: the value returned at some position has been proposed at that position

  Agreement: no two values returned at the same position are different

  Termination: every correct process that proposes eventually returns

Page 19: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

19

Generalized Universality

With consensus

Processes implement k state machines of which at least one is highly-available

Processes implement a highly-available state machine

With k-consensus

What form of universality with K-consensus?

Page 20: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

20

Act 1

Act 2

Act 3

Classical Universality

Modern Universality

Generalized Universality

Page 21: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

21

k state machines: each process holding a copy of each (sM(i))

k lists of commands local to each process

A list of k-vector consensus objects (kVectCons)

Reads and writes in shared memory

Generalized universality

Page 22: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

22

Universal construction

  while(true)   c = commands.next()   cons = consensus.next()

  c’ = cons.propose(c)   sM.perform(c’)

Page 23: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

23

Generalized universality?

  while(true)   for j = 1 to k: com(j) = commands(j).next()   kVectC = kVectCons.next()

  (c,i) = kVectC.propose(com)   sM(i).perform(c)

Page 24: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

24

Generalized universality?

  while(true)   for j = 1 to k: com(j) = commands(j).next()   kVectC = kVectCons.next()

  (c,i) = kVectC.propose(com)   read shared memory and update any missing c’   sM(i).perform(c)   write (c,i) in shared memory

Page 25: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

25

Key idea

  Safety (commitment): a process does not perform a command unless all others know the command

Page 26: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

26

write (c) at level 1 let V1 be the set of values at level 1 if V1 has only c, write (commit, c) at level 2

let V2 be the set of values at level 2 if V2 has only (commit, c) then return(commit, c) if V2 has some (commit, c’) then return(adopt, c’) else return (adopt, c)

Commitment

Page 27: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

27

Commitment

  Invariant (1): if a value v is committed then no other value is returned

  Invariant (2): if all processes propose the same command then the command is committed

Page 28: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

28

Generalized universality (step 0)

  newCom = commands.next()

  while(true)

  kVectC = kVectCons.next()

Page 29: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

29

Generalized universality (step 1)

  …

  (c,i) = kVectC.propose(newCom)

  …

Page 30: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

30

Generalized universality (step1-2)

  …

  (c,i) = kVectC.propose(newCom)

  vect(i) = commitment(i,c)

  …

Page 31: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

31

Generalized universality (step1-2-2’)

  …

  (c,i) = kVectC.propose(newCom)

  vect(i) = commitment(i,c)

  for j = 1 to k except i:   vect(j) = commitment(newCom(j)) …

Page 32: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

32

Generalized universality (step 3)

… for i = 1 to k   if ok(vect(i)) then

  sM(i).perform(vect(i))   newCom(i) = commands(i).next()

  else   newCom(i) = vect(i)

Page 33: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

33

Key ideas

  Safety (commitment): a process does not perform a command unless all others know the command

  Liveness (success first): at least one process executes a command in every round

Page 34: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

34

Generalized universality (step 3’)

… for i = 1 to k   If older(newCom(i),vect(i)) then

sM(i).perform(newCom(i))   If no(vect(i)) then newCom(i) = vect(i)   else   sM(i).perform(vect(i))   If vect(i) = newCom(i) then

  newCom(i) = commands(i).next()   add(newCom(i),vect(i))

Page 35: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

35

3 Key ideas

  Safety (commitment): a process does not perform a command unless all others know the command

  Liveness (success first): at least one process executes a command in every round

  Safety (old promises): a process might execute two commands at the same round

Page 36: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

36

Act 1

Act 2

Act 3

Classical Universality

Modern Universality

Generalized Universality

Page 37: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

37

What if consensus is not available? Mistakes? Partitions?

Consensus is the particular case of k-consensus

Generalized Universality

Page 38: Generalized Universality - École Polytechnique Fédérale ...lpdWhat form of universality with K-consensus? 20 Act 1 Act 2 Act 3 Classical Universality Modern Universality Generalized

38

Generalized Universality With consensus

Processes implement k state machines of which at least one is highly-available

Processes implement a highly-available state machine

With k-consensus