konsenzus otporan na otkaze (fault-tolerant consensus) · 8 neke od poruka se gube, one nikad neće...
TRANSCRIPT
![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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/67.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/69.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/70.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/71.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/72.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/73.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/74.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/75.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/77.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/81.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/82.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/83.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/84.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/85.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/86.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/87.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/88.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/89.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/90.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/91.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/92.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/93.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/94.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/95.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/96.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/97.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/98.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/99.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/100.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/101.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/102.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/103.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/104.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/105.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/106.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/107.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/108.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/109.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/110.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/111.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/112.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/113.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/114.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/115.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/116.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/117.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/118.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/119.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/120.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/121.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022041703/5e42c14df2050203d03aaaf9/html5/thumbnails/122.jpg)
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