View
0
Download
0
Category
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