Konsenzus otporan na otkaze (Fault-Tolerant Consensus) · 8 Neke od poruka se gube, one nikad neće...

Preview:

Citation preview

1

Konsenzus otporan na otkaze(Fault-Tolerant Consensus)

2

Model komunikacije

1p

2p

3p

4p5p

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

3

Slanje svima (Broadcast)

Slanje poruke a svim proc u jednoj rundi

1p

2p

3p

4p5p

aa

aa

4

Na kraju runde: svi su primili a

1p

2p

3p

4p5p

a

a

a

a

5

Slanje svima

Dva ili više procesora mogu slati svima uistoj rudi

1p

2p

3p

4p5p

a

a

aab

b

b

b

6

1p

2p

3p

4p5p

a,b

a

ba,b

a,b

7

Otkazi tipa ispada (Crash)

Neispravanprocesor

1p

2p

3p

4p5p

aa

aa

8

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

1p

2p

3p

4p5p

a

a

Neispravanprocesor

9

1p

2p

3p

4p5p

a

a

Neispravanprocesor

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

11

Konsenzus

0

1

2 3

4

Početak

Svako ima neku početnu vrednost

12

3

3

3 3

3

Kraj

Svi moraju da se odluče za istu vrednost

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:

14

Jedan jednostavan algoritam

1. Pošalji vrednost svim procesorima

2. Odluči se za minimum

Svaki procesor:

(potrebna je samo jedna runda)

15

0

1

2 3

4

Početak

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

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

18

0

0

0 0

0

Kraj

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)

20

Konsenzus sa otkazima ispada

1. Šalje vrednost svim procesorima

2. Odlučuje se za minimum

Svaki procesor:

Ovaj jednostavan algoritam ne radi

21

0

1

2 3

4

Početakfail

Neispravan procesor ne šaljesvoju vrednost svim procesorima

0

0

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

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

24

0

0

1 0

1

Krajispao

Nema konsenzusa!!!

25

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

f-elastičan algoritam konsenzusa

26

Ulaz i izlaz jednog3-elastičnog algoritma konsenzusa

0

1

4 3

2

Početak Kraj1

1

Primer:

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

28

0

1

2 3

4

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

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

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

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

32

0

1

2 3

4

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

Drugi primer: izvršenje sa 2 otkaza

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

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

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

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

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

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

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

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

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

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

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

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

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

46

Donja granica

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

Teorema:

47

Skica dokaza:

Predpost. zbog kontradikcije da je f ili manje rundi dovoljno

Scenario najgoreg slučaja:

U svakoj rundi,postoji proces koji otkazuje

48

Runda

a

1

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

ip

kp

ipkp

Scenario najgoreg slučaja

49

Runda

a

1

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

mp

kp

kpmp

2

Scenario najgoreg slučaja

50

Runda 1

fp

2

………

a np

f3

Na kraju runde f samo proceszna za vrednost a

np

Scenario najgoreg slučaja

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

52

Runda 1 2

………

f3

npa

b

odluka

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

Scenario najgoreg slučaja

53

Vizantijski otkazi(Byzantine Failures)

54

Vizantijski otkazi

Neisprvanprocesor

1p

2p

3p

4p5p

ab

ac

Različiti procesi primaju različite vrednosti

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

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

57

Konsenzus sa vizantijskim otkazima

rešava konsenzus za f procesa u otkazu

f-elastičan algoritam konsenzusa:

58

Ulaz i izlaz za1-elastičan algoritam konsenzusa

0

1

4 3

2

Početak Kraj3

3

Primer:

3 3

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

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

61

Jedan algoritam konsenzusa

rešava konsenzus zaprocesa iotkaza, gde je

nf

4nf

Algoritam Kralj (King)

62

Algoritam Kralj

Postoji faza

Svaka faza ima dve runde slanja svima

U svakoj fazi postoji različit kralj

1f

63

Primer: 12 procesa, 2 otkaza, 3 kralja

0 1 1 2 21 0 00 1 1 0

početne vrednosti

Otkazali

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

65

Algoritam Kralj

Svaki procesor ima prioritetnu vrednostip iv

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

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.)

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

68

Algoritam Kralj

Kraj Faze f+1:

Svaki proces odlučuje o prior. vrednosti

69

Primer: 6 procesa, 1 otkaz

Otkazao

0 1

kralj 1

kralj 20

11

2

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

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

72

Faza 1, Runda 2

1 0

0

11

00

1

0 1

2

kralj 1

Kralj šalje svima

73

Faza 1, Runda 2

0 1

0

11

2

kralj 1

Svi izabiraju kraljevu vrednost

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

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

76

Faza 2, Runda 2

1 0

0

11

0

Kralj šalje svima

kralj 2

000

0 0

77

Faza 2, Runda 2

0 0

0

10

0kralj 2

Svi izabiraju kraljevu vrednost

Konačna odluka

78

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

Dokaz: Razmotrimo fazu

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

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)

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

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

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

84

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

1fa

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

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

87

0p

1p 2p

A(0)

B(1) C(0)

Početna vrednost

Lokalnialgoritam

88

0p

1p 2p

1

1 1

Odlučena vrednost

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

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)

91

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

11p

0p1

2potkazao

(uslov validnosti)

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

93

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

0p1

1p

2p0

0

0potkazao

(uslov validnosti)

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

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

96

3p

4p

2pA(0)

B(1)

C(1)

1p

5p 0pA(1)C(0)

B(0)

0p1

2p0

2p 0p10

1p otkazao

97

2p 0p10

1p otkazao

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

98

Zaključak:

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

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)

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

101

Svaki proces simulira algoritam A

za svih procesa

31 npp

1q

2q3q321

3nn pp

nn pp 1

32

q

3n p

102

31 npp

1q

2q3q321

3nn pp

nn pp 1

32

otkazali

Kad otkaže

onda svih procesa takođe otkaže3n

q

p

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

104

1q

2q3q

otkazali

Konačna odlukak

k

Došli smo do konsenzusa sa 1 otkazom

Nemoguće!!!

105

Ne postoji -elastičan algoritamza procesa, gde je

Zaključak:

fn

3nf

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

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

108

Ovaj algoritam toleriševizantijskih procesora 8

nf

Postoje tri praga vrednosti:

185

nL 1

86

nH 1

87

nG

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

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:

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

112

Zbog toga, svaki procesor kp

će imati ki majmaj

186

nHtallyksa

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

ikk majmajv

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

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.

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

116

Onda je bar

12

184

nnftallyi

dobrih procesora glasalo imaj

185

nLtallyi

Predpost. (radi kontradikcije) da je

Sledstveno, ji majmaj

Kontradikcija!

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

118

}{minmin ii tallytally

Neka je procesor saminp

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

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

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

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

Recommended