OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
OdpornoÅÄ na bÅÄdy bizantyjskie w systemach peer-to-peer - Instytut ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
B.2 Uzgadnianie z częściowym zachowaniem poprawności 107<br />
poprawnie, chociaż może odpowiadać <strong>na</strong> otrzymane wiadomości. Musi istnieć<br />
mechanizm, gdzie pozostałe procesy są w stanie ustalić, który z procesów zawiódł<br />
i wykluczyć go z uzgadniania. Twierdzenie 1 jest is<strong>to</strong>tne z praktycznego<br />
punktu widzenia, gdyż wskazuje, że s<strong>to</strong>sowalne pro<strong>to</strong>koły muszą zakładać synchronizację<br />
między procesami w celu zapewnienia częściowej poprawności.<br />
B.2 Uzgadnianie z częściowym zachowaniem poprawności<br />
Rozpatrujemy system wprowadzony w poprzednim punkcie. Pokażemy pro<strong>to</strong>kół<br />
działający dwufazowo, który potwierdza poprawność <strong>na</strong>stępującego twierdzenia.<br />
Twierdzenie 6 Istnieje częściowo poprawny pro<strong>to</strong>kół uzgadniania, w którym<br />
wszystkie poprawnie działające procesy podejmą decyzję, jeżeli tylko stanowią<br />
większość i podczas uzgadniania wszystkie, te procesy pozostaną sprawne.<br />
Szkic dowodu. Każdy proces konstruuje skierowany graf G, gdzie węzłami są<br />
inne procesy, rozsyła do wszystkich procesów wiadomość ze swoim numerem i<br />
czeka <strong>na</strong> L − 1 odpowiedzi <strong>na</strong> wiadomość od innych procesów, L = ⌈ ⌉<br />
(N+1)<br />
2 . G<br />
ma gałąź od i do j jeżeli j odbierze wiadomość. G jest s<strong>to</strong>pnia L − 1.<br />
Druga faza. Procesy konstruują graf G + , tak, że każdy proces k po zakończeniu<br />
fazy z<strong>na</strong> wszystkie krawędzie (j, k) incydentne do k w G + ,jakrównież<br />
początkowe war<strong>to</strong>ści dla j. Konstrukcja G + przebiega w ten sposób, że każdy<br />
proces rozgłasza numery L − 1 procesów, od których otrzymało komunikat w<br />
fazie pierwszej, <strong>na</strong>stępnie czeka <strong>na</strong> odpowiedzi od każdego poprzednika w G z<br />
fazy pierwszej. W ten sposób k wie o L−1 sąsiadach, jak również o wszystkich<br />
węzłach, dla których on jest sąsiadem. Zatem każdy z procesów z<strong>na</strong> początkową<br />
klikę w G + o war<strong>to</strong>ści przy<strong>na</strong>jmniej L. Następnie każdy proces podejmuje<br />
decyzję <strong>na</strong> podstawie odebranych war<strong>to</strong>ści początkowych od innych procesów.<br />
Ten pro<strong>to</strong>kół ma bardzo ważną właściwość, a mianowicie wystarczy jedynie,<br />
⌈ <strong>to</strong> żeby⌉ większość procesów była spraw<strong>na</strong>, by uzgodnienie doszło do skutku<br />
(N+1)<br />
2 . Gdyby uzgodnienie nie doszło do skutku, bo jakiś z poprawnych procesów<br />
odmówiłby uczestniczenia w pro<strong>to</strong>kole, <strong>to</strong> konieczne byłoby rozpoczęcie<br />
uzgadniania od początku wykluczając ten proces. Opisany pro<strong>to</strong>kół do złudzenia<br />
przypomi<strong>na</strong> ten, który s<strong>to</strong>sowano do rozwiązania problemu bizanyjskich generałów,<br />
z tym wyjątkiem, że tu, każdy z uczestników uzgadnia jedną war<strong>to</strong>ść dla<br />
całej grupy.