122
1 Konsenzus otporan na otkaze (Fault-Tolerant Consensus)

Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

1

Konsenzus otporan na otkaze(Fault-Tolerant Consensus)

Page 2: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

2

Model komunikacije

1p

2p

3p

4p5p

•Potpun graf (svaki čvor povezan sa svakim)•Sinhrona mreža

Page 3: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

3

Slanje svima (Broadcast)

Slanje poruke a svim proc u jednoj rundi

1p

2p

3p

4p5p

aa

aa

Page 4: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

4

Na kraju runde: svi su primili a

1p

2p

3p

4p5p

a

a

a

a

Page 5: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

5

Slanje svima

Dva ili više procesora mogu slati svima uistoj rudi

1p

2p

3p

4p5p

a

a

aab

b

b

b

Page 6: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

6

1p

2p

3p

4p5p

a,b

a

ba,b

a,b

Page 7: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

7

Otkazi tipa ispada (Crash)

Neispravanprocesor

1p

2p

3p

4p5p

aa

aa

Page 8: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

8

Neke od poruka se gube,one nikad neće biti primljene

1p

2p

3p

4p5p

a

a

Neispravanprocesor

Page 9: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

9

1p

2p

3p

4p5p

a

a

Neispravanprocesor

Page 10: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

10

Otkaz

1p

2p

3p

4p

5p

Runda1

1p

2p

3p

4p

5p

1p

2p

3p

4p

5p

Runda2

Runda3

1p

2p

4p

5p

Runda4

1p

2p

4p

5p

Runda5

Posle otkaza proces nestaje iz mreže

3p 3p

Page 11: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

11

Konsenzus

0

1

2 3

4

Početak

Svako ima neku početnu vrednost

Page 12: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

12

3

3

3 3

3

Kraj

Svi moraju da se odluče za istu vrednost

Page 13: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

13

1

1

1 1

1

Početak

Ako svi počnu sa istom vrednošću,oni moraju da se odluče za tu vrednost

Kraj1

1

1 1

1

Uslov validnosti:

Page 14: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

14

Jedan jednostavan algoritam

1. Pošalji vrednost svim procesorima

2. Odluči se za minimum

Svaki procesor:

(potrebna je samo jedna runda)

Page 15: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

15

0

1

2 3

4

Početak

Page 16: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

16

0

1

2 3

4

Razmenjene vrednosti

0,1,2,3,4

0,1,2,3,4

0,1,2,3,4

0,1,2,3,4

0,1,2,3,4

Page 17: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

17

0

0

0 0

0

Odluči se za minimum

0,1,2,3,4

0,1,2,3,4

0,1,2,3,4

0,1,2,3,4

0,1,2,3,4

Page 18: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

18

0

0

0 0

0

Kraj

Page 19: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

19

Ovaj algoritan zadovoljava uslov validnosti

1

1

1 1

1

Početak Kraj1

1

1 1

1

ako svi počnu sa istom početnom vrednošću,svi se odlučuju za tu vrednost (minimum)

Page 20: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

20

Konsenzus sa otkazima ispada

1. Šalje vrednost svim procesorima

2. Odlučuje se za minimum

Svaki procesor:

Ovaj jednostavan algoritam ne radi

Page 21: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

21

0

1

2 3

4

Početakfail

Neispravan procesor ne šaljesvoju vrednost svim procesorima

0

0

Page 22: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

22

0

1

2 3

4

Razmenjene vrednosti

0,1,2,3,4

1,2,3,4

ispao

0,1,2,3,4

1,2,3,4

Page 23: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

23

0

0

1 0

1

Odluči se za minimum

0,1,2,3,4

1,2,3,4

ispao

0,1,2,3,4

1,2,3,4

Page 24: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

24

0

0

1 0

1

Krajispao

Nema konsenzusa!!!

Page 25: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

25

Ako neki algoritam rešava konsenzus zaf procesa u otkazu, kažemo da je on:

f-elastičan algoritam konsenzusa

Page 26: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

26

Ulaz i izlaz jednog3-elastičnog algoritma konsenzusa

0

1

4 3

2

Početak Kraj1

1

Primer:

Page 27: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

27

Jedan f-elastičan algoritam

Runda 1:pošalji svima svoju vrednost

Runda 2 do runde f+1:pošalji svima sve novo primljene vred.

Kraj runde f+1:odluči se za min. primljenu vrednost

Page 28: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

28

0

1

2 3

4

PočetakPrimer: f=1 otkaza, f+1 = 2 potrebne runde

Page 29: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

29

0

1

2 3

4

Runda 1

0

0ispao

Pošalji svima sve vrednosti

0,1,2,3,4

1,2,3,4 0,1,2,3,4

1,2,3,4

(nove vrednosti)

Primer: f=1 otkaza, f+1 = 2 potrebne runde

Page 30: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

30

Runda 2

0,1,2,3,4

0,1,2,3,4 0,1,2,3,4

0,1,2,3,41

2 3

4

Primer: f=1 otkaza, f+1 = 2 potrebne runde

Pošalji svima sve vrednosti

Page 31: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

31

Kraj

Odluči se za min vrednost

0

0 0

00,1,2,3,4

0,1,2,3,4 0,1,2,3,4

0,1,2,3,4

Primer: f=1 otkaza, f+1 = 2 potrebne runde

Page 32: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

32

0

1

2 3

4

PočetakPrimer: f=2 otkaza, f+1 = 3 potrebne runde

Drugi primer: izvršenje sa 2 otkaza

Page 33: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

33

0

1

2 3

4

Runda 1

0

Otkaz 1

Pošalji svima sve vrednosti

1,2,3,4

1,2,3,4 0,1,2,3,4

1,2,3,4

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Page 34: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

34

0

1

2 3

4

Runda 2Otkaz 1

0,1,2,3,4

1,2,3,4 0,1,2,3,4

1,2,3,4

Otkaz 2

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Pošalji svima sve vrednosti

Page 35: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

35

0

1

2 3

4

Runda 3Otkaz 1

0,1,2,3,4

0,1,2,3,4 0,1,2,3,4

0, 1,2,3,4

Otkaz 2

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Pošalji svima sve vrednosti

Page 36: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

36

0

0

0 3

0

KrajOtkaz 1

Odluči se za min vrednost

0,1,2,3,4

0,1,2,3,4 0,1,2,3,4

0, 1,2,3,4

Otkaz 2

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Page 37: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

37

0

1

2 3

4

Početak

Još jedan primer izvršenja sa 2 otkaza

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Page 38: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

38

0

1

2 3

4

Runda 1

0

Otkaz 1

Pošalji svima sve vrednosti

1,2,3,4

1,2,3,4 0,1,2,3,4

1,2,3,4

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Page 39: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

39

0

1

2 3

4

Runda 2Otkaz 1

Pošalji svima sve vrednosti

0,1,2,3,4

0,1,2,3,4 0,1,2,3,4

0,1,2,3,4

Na kraju ove runde svi procesiznaju sve druge vrednosti

Napomena:

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Page 40: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

40

0

1

2 3

4

Runda 3Otkaz 1

Pošalji svima sve vrednosti

0,1,2,3,4

0,1,2,3,4 0,1,2,3,4

0,1,2,3,4

(niko ne dobija novu vrednost u ovoj rundi)

Otkaz 2

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Page 41: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

41

0

0

0 3

0

KrajOtkaz 1

Odluči se za min vrednost

0,1,2,3,4

0,1,2,3,4 0,1,2,3,4

0,1,2,3,4

Otkaz 2

Primer: f=2 otkaza, f+1 = 3 potrebne runde

Page 42: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

42

Ako ima f otkaza i f+1 rundi, ondapostoji runda bez otkaza procesa

Primer:5 otkaza,6 rundi

1 2

Bez otkaza

3 4 5 6Runda

Page 43: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

43

U algoritmu, na krajurunde bez otkaza:

• Svaki (ispravan) proces znasve vrednosti svih drugihprocesa koji učestvuju

•To znanje se ne menjasve do kraja algoritma

Page 44: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

44

Zbog toga, na krajurunde bez otkaza:

svi bi se odlučili za istu vrednost

Ali, pošto nije poznata tačna pozicijaove runde, moramo pustiti algoritamda izvrši svih f+1 rundi

Page 45: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

45

Validnost algoritma:

kad svi procesi počnu sa jedom istomulaznom vred. onda je konsenzus ta vred.

Ovo važi, pošto je vrednost za koju se odlučisvaki proces neka ulazna vrednost

Page 46: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

46

Donja granica

Bilo koji f-elastičan alg. konsenzusazahteva bar f+1 rundi

Teorema:

Page 47: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

47

Skica dokaza:

Predpost. zbog kontradikcije da je f ili manje rundi dovoljno

Scenario najgoreg slučaja:

U svakoj rundi,postoji proces koji otkazuje

Page 48: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

48

Runda

a

1

pre nego proces otkaže, on šalje svojuvred. a samo procesu

ip

kp

ipkp

Scenario najgoreg slučaja

Page 49: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

49

Runda

a

1

pre nego proces otkaže, on šalje vred. a samo procesu

mp

kp

kpmp

2

Scenario najgoreg slučaja

Page 50: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

50

Runda 1

fp

2

………

a np

f3

Na kraju runde f samo proceszna za vrednost a

np

Scenario najgoreg slučaja

Page 51: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

51

Runda 1 2

………

f3

proces može odlučiti a, a svi drugiprocesi mogu odlučiti drugu vrednost (b)

np

npa

b

odlukaScenario najgoreg slučaja

Page 52: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

52

Runda 1 2

………

f3

npa

b

odluka

Zbog toga f rundi nije dovoljnoPotrebno je bar f+1 rundi

Scenario najgoreg slučaja

Page 53: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

53

Vizantijski otkazi(Byzantine Failures)

Page 54: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

54

Vizantijski otkazi

Neisprvanprocesor

1p

2p

3p

4p5p

ab

ac

Različiti procesi primaju različite vrednosti

Page 55: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

55

Neispravanprocesor

1p

2p

3p

4p5p

a

a

Vizantijski proces se može ponašati kaoproces koji je ispao iz rada (Crash)

Neke poruke mogu biti izgubljene

Page 56: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

56

Otkaz

1p

2p

3p

4p

5p

Runda1

1p

2p

3p

4p

5p

1p

2p

3p

4p

5p

Runda2

Runda3

1p

2p

4p

5p

Runda4

1p

2p

4p

5p

Runda5

Nakon otkaza, proces nastavlja dafunkcioniše u mreži

3p 3p

Otkaz

1p

2p

4p

5p

Runda6

3p

Page 57: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

57

Konsenzus sa vizantijskim otkazima

rešava konsenzus za f procesa u otkazu

f-elastičan algoritam konsenzusa:

Page 58: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

58

Ulaz i izlaz za1-elastičan algoritam konsenzusa

0

1

4 3

2

Početak Kraj3

3

Primer:

3 3

Page 59: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

59

Uslov validnosti:ako svi ispravni procesi počnu saistom vred. onda se svi ispravni procesiodlučuju za tu vrednost

1

1

1 1

1

Početak Kraj1

1

1 1

Page 60: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

60

Bilo koji f-elastičan alg. konsenzusasa vizantijskim otkazima zahtevabar f+1 rundi

Teorema:

sledi iz donje granice za ispade (crash)

Dokaz:

Donja granica za broj rundi

Page 61: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

61

Jedan algoritam konsenzusa

rešava konsenzus zaprocesa iotkaza, gde je

nf

4nf

Algoritam Kralj (King)

Page 62: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

62

Algoritam Kralj

Postoji faza

Svaka faza ima dve runde slanja svima

U svakoj fazi postoji različit kralj

1f

Page 63: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

63

Primer: 12 procesa, 2 otkaza, 3 kralja

0 1 1 2 21 0 00 1 1 0

početne vrednosti

Otkazali

Page 64: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

64Napomena: Postoji kralj koji je ispravan

0 1 1 2 21 0 00 1 1 0

Kralj 1 Kralj 2 Kralj 3

Primer: 12 procesa, 2 otkaza, 3 kralja

početne vrednosti

Page 65: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

65

Algoritam Kralj

Svaki procesor ima prioritetnu vrednostip iv

Na početku, prioritetna vrednost se postavlja na početnu vrednost

Page 66: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

66

Algoritam Kralj Faza k

Runda 1, procesor :ip

• Šalji svima prioritetnu vred.

• Postavi avi

iv

• Neka je većinska vrednostod primljenih vred. (uključujući )

aiv

(u slučaju nerešenog ishoda izaberi proizvoljnu vred.)

Page 67: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

67

Ako ima većinu, ne veću od

Algoritam Kralj Faza k

Runda 2, kralj :kp

Šalji svima novu prior. vrednost

Runda 2, proces :ip

kv

iv fn

2onda postavi ki vv

Page 68: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

68

Algoritam Kralj

Kraj Faze f+1:

Svaki proces odlučuje o prior. vrednosti

Page 69: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

69

Primer: 6 procesa, 1 otkaz

Otkazao

0 1

kralj 1

kralj 20

11

2

Page 70: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

70

0 1

kralj 1

0

11

2

Faza 1, Runda 1

2,1,1,0,0,0

2,1,1,1,0,0

2,1,1,1,0,0 2,1,1,0,0,0

2,1,1,0,0,0

0

1

1 0

0

Svi šalju svima

Page 71: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

71

1 0

kralj 1

0

11

0

Faza 1, Runda 1Izaberi većinsku vred

Svima većinski glas bio 42

3 fn

U rundi 2, svi će izabrati kraljevu vrednost

2,1,1,1,0,0

Page 72: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

72

Faza 1, Runda 2

1 0

0

11

00

1

0 1

2

kralj 1

Kralj šalje svima

Page 73: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

73

Faza 1, Runda 2

0 1

0

11

2

kralj 1

Svi izabiraju kraljevu vrednost

Page 74: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

74

0 1

kralj 20

11

2

Faza 2, Runda 1

2,1,1,0,0,0

2,1,1,1,0,0

2,1,1,1,0,0 2,1,1,0,0,0

2,1,1,0,0,0

0

1

1 0

0

Svi šalju svima

Page 75: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

75

1 0

0

11

0

Faza 2, Runda 1Izaberi većinsku vred

Svima većinski glas bio

U rundi 2, svi će izabrati kraljevu vrednost

kralj 2

2,1,1,1,0,0

42

3 fn

Page 76: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

76

Faza 2, Runda 2

1 0

0

11

0

Kralj šalje svima

kralj 2

000

0 0

Page 77: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

77

Faza 2, Runda 2

0 0

0

10

0kralj 2

Svi izabiraju kraljevu vrednost

Konačna odluka

Page 78: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

78

Teorema: U fazi u kojojje kralj ispravan,svi ispravni procesori seodlučuju za istu vrednost

Dokaz: Razmotrimo fazu

Page 79: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

79

Na kraju runde 1, ispitujemo dva slučaja:

Sluč. 1: neki čvor je izabraosvoju prioritetnu vrednost sajakom većinom ( glasova)

Sluč. 2: ni jedan čvor nije izabraosvoju prioritetnu vrednost sajakom većinom

Page 80: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

80

Sluč. 1: neka je čvor izabrao svoju prioritetnu vred.sa jakom većinom ( glasova)

i a

Na kraju runde 1, svi drugi čvorovimoraju imati prioritetnu vred. a

Objašnjenje:

Bar ispravnih čvorova je moraloposlati svima na početku runde 1 a

(uključujući kralja)

Page 81: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

81

Na kraju runde 2:Ako čvor zadrži svoju spost. vred.:

onda odlučuje a

Ako čvor dobije vrednost od kralja:onda on odlučuje ,pošto je kralj odlučio

aa

Zbog toga: Svaki ispravan čvor odlučuje a

Page 82: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

82

Sluč. 2: Ni jedan čvor nije izabrao svoju prior. vred. sajakom većinom ( glasova)

Svaki ispravan čvor će usvojitivrednost od kralja, pa će se sviodlučiti za istu vrednost

KRAJ DOKAZA

Page 83: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

83

Posle , vred. će uvek biti prioritetnasa jakom većinom, pošto je brojispravnih procesora: fnfn

2

Neka je vrednost koja je odlučenana kraju faze

4nf (jer je )

a

a

Page 84: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

84

Zato, od sve do poslednje fazesvaki ispravan procesor odlučuje

1fa

Page 85: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

85

Ne postoji -elastičan algoritamza procesa, koji zadovoljava

Teorema:

Dokaz: Prvo dokazujemo slučaj sa 3 procesa,a zatim opšti slučaj

fn

3nf

Jedan nemoguć rezultat

Page 86: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

86

Ne postoji 1-elastičan algoritamza 3 procesa

Lema:

Dokaz: Predpost. radi kontradikcije da postoji1-elastičan algoritam za 3 procesa

Slučaj sa 3 procesa

Page 87: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

87

0p

1p 2p

A(0)

B(1) C(0)

Početna vrednost

Lokalnialgoritam

Page 88: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

88

0p

1p 2p

1

1 1

Odlučena vrednost

Page 89: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

89

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

Predpost. da su procesi u prstenu

Procesi misle da su u trouglu

Page 90: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

90

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

B(1)1p

0pA(1)

2potkazao

C(1)

C(0)

Page 91: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

91

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

11p

0p1

2potkazao

(uslov validnosti)

Page 92: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

92

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

0p1

1p

2pC(0)

B(0)

0pA(0)

A(1)

otkazao

Page 93: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

93

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

0p1

1p

2p0

0

0potkazao

(uslov validnosti)

Page 94: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

94

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

0p1

2p0

2p 0pA(1)C(0)

1pB(1)B(0)

otkazao

Page 95: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

95

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

B(1)

1p

0pA(1)

2potkazao

C(1)

C(0)

1p

2pC(0)

B(0)

0pA(0)

A(1)

otkazao 2p 0pA(1)C(0)

1pB(1)B(0)

otkazao

0

0 1

1

Page 96: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

96

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

0p1

2p0

2p 0p10

1p otkazao

Page 97: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

97

2p 0p10

1p otkazao

Nemoguće!!!jer je algoritam 1-elastičan

Page 98: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

98

Zaključak:

Ne postoji algoritam koji rešavakonsenzus za 3 procesaod kojih je 1 vizantijski proces

Page 99: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

99

Slučaj sa n procesa

Predpost. radi kontradikcije dapostoji neki -elastičan algoritam Aza procesa, za koji je:

fn

3nf

Koristićemo algoritam A da rešimo konsenzusza 3 procesa i 1 otkaz

(kontradikcija)

Page 100: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

100

algoritam A

1p

0 1

2p np

1

… …

2 21 0 00 1 1počet.

otkazi

1p

1 1

2p np… …

1 1 11 1kraj

Page 101: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

101

Svaki proces simulira algoritam A

za svih procesa

31 npp

1q

2q3q321

3nn pp

nn pp 1

32

q

3n p

Page 102: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

102

31 npp

1q

2q3q321

3nn pp

nn pp 1

32

otkazali

Kad otkaže

onda svih procesa takođe otkaže3n

q

p

Page 103: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

103

31 npp

1q

2q3q321

3nn pp

nn pp 1

32

otkazali

algoritam A toleriše otkaza3n

Krajalgoritma A

kkk

k kk

k

k

kkkk

k svi odlučili k

Page 104: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

104

1q

2q3q

otkazali

Konačna odlukak

k

Došli smo do konsenzusa sa 1 otkazom

Nemoguće!!!

Page 105: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

105

Ne postoji -elastičan algoritamza procesa, gde je

Zaključak:

fn

3nf

Page 106: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

106

Rendomizirani vizantijski dogovor

Postoji neki poverljiv procesorkoji u svakoj rundi baca na slučaj novčić(coin) i informiše sve druge procesore

q

coin = heads (verovatnoća ) 21

coin = tail (verovatnoća ) 21

Page 107: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

107

Svaki procesor ima prioritetnu vred.ip iv

Na početku,prioritetna vred se postavlja na početnu vred

Predpostavimo da je početna vred. binarna

}1,0{iv

Page 108: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

108

Ovaj algoritam toleriševizantijskih procesora 8

nf

Postoje tri praga vrednosti:

185

nL 1

86

nH 1

87

nG

Page 109: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

109

U svakoj rundi, procesor izvršava:ipŠalji svima ;ivPrimi vrednosti od svih procesora;

imaj većinska vrednost;

itally broj pojava od ;maj

If coin=heads then threshold

else threshold

If thenthesholdtallyi ii majv else 0iv

185

nL

186

nH

If itally then došlo se do odluke18

7

nG

Page 110: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

110

Analiza: Ispitajmo slučajeve u rundi

Sluč. 1: Dva procesora i imajurazličite

ip kp

ki majmaj

Sluč. 2: Svi procesori imaju isti imaj

Završetak: Postoji neki procesorsa

ip1

87

nGtallyi

Drugi slučajevi:

Page 111: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

111

Završetak: Postoji neki procesorsa

ip1

87

nGtallyi

Pošto procesora u otkazu ima najviše 8nf

procesor prima barip

186

nftallyi

glasova za od dobrih procesoraimaj

Page 112: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

112

Zbog toga, svaki procesor kp

će imati ki majmaj

186

nHtallyksa

Sledstveno, na kraju rundesvi dobri procesori će imati istuprioritetnu vrednost:

ikk majmajv

Page 113: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

113

Opažanje:

Ako na početku runde svi dobriprocesori imaju istu prioritetnu vrednostonda se algoritam završava u toj rundi

Ovo važi jer će za svaki procesoruslov završetka

ip1

87

nGtallyi

biti zadovoljen u toj rundi

Page 114: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

114

Zbog toga, ako je usloz završetkazadovoljen za jedan procesor u nekoj rundi,onda, će uslov završetka biti zadovoljenza sve procesore u sledećoj rundi.

Page 115: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

115

Sluč. 1: Dva procesora i imajurazličite

ip kp

ki majmaj

Mora biti da je 185

nLtallyi

185

nLtallyki da je

I zbog toga je 0 ki vv

Zato, svaki procesor bira 0,i algoritam se završava u sledećoj rundi

Page 116: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

116

Onda je bar

12

184

nnftallyi

dobrih procesora glasalo imaj

185

nLtallyi

Predpost. (radi kontradikcije) da je

Sledstveno, ji majmaj

Kontradikcija!

Page 117: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

117

Sluč. 2: Svi procesori imaju isti imaj

Onda za bilo koja dva procesora ivaži da je

ip kpftallytally ki ||

jer bi inače, broj procesorau otkazu bio veći od f

Page 118: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

118

}{minmin ii tallytally

Neka je procesor saminp

Page 119: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

119

Pod-sluč. 1: 185

min nLtally

Ako je 186

nHthreshold

onda, za bilo koji procesor važi da je

HnfLftallytallyk 186

min

kp

(ovo se dešava sa verovatnoćom ) 21

Page 120: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

120

I zbog toga je 0 ki vv

Dakle, svaki procesor izabira 0,i algoritam se završava u sledećoj rundi

(ovo se dešava sa verovatnoćom ) 21

Page 121: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

121

185

min nLtallyPod-sluč. 2:

Ako je 185

nLthreshold

onda, za bilo koji procesor važi da je

Ltallytallyk min

kp

(ovo se dešava sa verovatnoćom ) 21

Page 122: Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće biti primljene p 1 p 2 p 3 p 5 p 4 a a Neispravan procesor

122

I zbog toga je minvvk

Dakle, svaki procesor izabira ,i algoritam se završava u sledećoj rundi

(ovo se dešava sa verovatnoćom ) 21

minv