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 ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
106 Dodatek B. Uzgadnianie w asynchronicznym systemie<br />
p ′ = p Rozważmy decydujący przebieg σ nie uwzględniający p z C 0 oraz niech<br />
A = σ(C 0 ). Z lematu 1 wynika, że σ może zaistnieć dla D i oraz prowadzi<br />
do i-określonej konfiguracji E i = σ(D i ),i ∈{0, 1}. Także z lematu<br />
1 wynika, e(A) =E 0 oraz e(e ′ (A)) = E 1 . Co za tym idzie, A jest dwuokreślone,<br />
co nie zgadza się z założeniem. Ostatecznie D musi zawierać<br />
dwuokreśloną konfigurację.<br />
Powyższe rozważania prowadzą do wniosku, że każdy decydujący przebieg<br />
rozpoczy<strong>na</strong>jący się dwuokreśloną konfiguracją przechodzi do jednookreślonej<br />
konfiguracji w jakimś kroku. Ten krok determinuje przyszłą war<strong>to</strong>ść decyzyjną.<br />
W całkowicie asynchronicznym pro<strong>to</strong>kole uzgadniania gdy jakikolwiek z procesów<br />
jest uszkodzony, moż<strong>na</strong> unikać takiego kroku, który powoduje przejście<br />
z dwuokreślonej konfiguracji do jednookreślonej. Używając udowodnionych lematów<br />
moż<strong>na</strong> pokazać, że <strong>na</strong>stępujące twierdzenie jest prawdziwe.<br />
Twierdzenie 5 Nie istnieje taki pro<strong>to</strong>kół asynchronicznego uzgadniania P, który<br />
byłby całkowicie poprawny, gdy chociaż jeden proces działa błędnie.<br />
Dowód. Przebieg, który nie prowadzi do uzgodnienia decyzji (war<strong>to</strong>ści) konstruowany<br />
jest w fazach. Utrzymywa<strong>na</strong> jest kolejka procesów początkowo nieuporządkowa<strong>na</strong>.<br />
Bufor wiadomości uporządkowany jest zgodnie z czasem ich<br />
<strong>na</strong>dania, w porządku od <strong>na</strong>jstarszej wiadomości do <strong>na</strong>jmłodszej. Każda faza<br />
składa się z pewnej liczby kroków. Faza przebiega począwszy od pierwszego<br />
procesu w kolejce procesów, którego bufor wiadomości nie jest pusty <strong>na</strong> początku<br />
fazy, odbiera on <strong>na</strong>jstarszą wiadomość i jest ustawiany <strong>na</strong> koniec kolejki.<br />
W ten sposób, żaden z procesów nie jest zagłodzony, wykonuje wszystkie kroki<br />
i odbiera wszelkie wysłane do niego wiadomości.<br />
Niech C 0 jest dwuokreśloną konfiguracją początkową, której istnienie gwarantuje<br />
lemat 2. Załóżmy, że proces p jest <strong>na</strong> początku kolejki procesów, a m<br />
jest <strong>na</strong>jstarszą wiadomością wysłaną do p, a w innym przypadku φ. Zdarzenie<br />
e =(p, m) jest ostatnim zdarzeniem przeprowadzającym konfigurację C do C ′ ,<br />
gdzie C ′ jest dwuokreślone co gwarantuje lemat 3. Ta sekwencja kroków zakańcza<br />
fazę.<br />
Każda faza zakańcza się dwuokreśloną konfiguracją, co prowadzi do nieskończonego<br />
przebiegu, gdzie decyzja nigdy nie zostaje podjęta, <strong>to</strong> pociąga za sobą,<br />
że P nie jest całkowicie poprawne.<br />
Zrozumienie tego dowodu daje świadomość, że nie ma pro<strong>to</strong>kołu, który pozwalałby<br />
podjąć decyzję przez grupę procesów, jeżeli któryś z nich nie działa