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.
4.5 Zatwierdzanie stanu 81<br />
35<br />
13<br />
12<br />
11<br />
30<br />
10<br />
9<br />
25<br />
8<br />
7<br />
20<br />
6<br />
15<br />
100 200 300 400 500 600 700 800 900 1000 1100<br />
5<br />
4<br />
0 100 200 300 400 500 600 700 800 900 1000 1100<br />
Rysunek 4.9: Sterowanie częs<strong>to</strong>ścią zapisu stanu (prawa stro<strong>na</strong>) dla zmieniającego<br />
się zakłóconego czasu wyko<strong>na</strong>nia usługi (lewa stro<strong>na</strong>) (L max = 100, t =<br />
20, δ=0.5).<br />
zmieniającego się czasu wyko<strong>na</strong>nia usługi.<br />
Pro<strong>to</strong>kół zatwierdzania stanu. Przedstawię teraz pro<strong>to</strong>kół synchronizacji i zatwierdzania<br />
stanu, który mógłby używać dowolnej me<strong>to</strong>dy wyz<strong>na</strong>czania kolejnej<br />
chwili migawki.<br />
1. Replika i po wyko<strong>na</strong>niu rundy wyz<strong>na</strong>cza za ile wyko<strong>na</strong>ń <strong>na</strong>stąpi synchronizacja<br />
T ′ i rozgłasza komunikat < schedule-request, i, T ′ > σi i czeka<br />
<strong>na</strong> 2f +1takich samych odpowiedzi od innych replik z uwzględnieniem<br />
siebie samej.<br />
2. Po odebraniu propozycji replika rozgłasza war<strong>to</strong>ść zatwierdzoną < scheduleresponse,<br />
i, ˆT >σi która jest war<strong>to</strong>ścią średnią ze wszystkich war<strong>to</strong>ści odpowiednio<br />
blisko war<strong>to</strong>ści proponowanej przez nią samą ˆT ≤ T j ± 10%.<br />
3. Replika co każdą rundę zapisuje stan (nie potwierdzony przez resztę replik),<br />
o ile ta operacja nie jest za bardzo pracochłon<strong>na</strong> .<br />
4. Po wyko<strong>na</strong>niu ˆT rund replika rozgłasza < checkpoint, ˆT , H(s), i>σi i<br />
czeka <strong>na</strong> 2f +1odpowiedzi uwzględniając ją samą.<br />
5. Zgromadzenie f +1podpisów dla s powoduje, że replika rozgłasza komunikat<br />
< checkpoint-commit, ˆT , H(s), i>σi oraz zatwierdza stan s<br />
podobnie jak <strong>to</strong> miało miejsce w przypadku pro<strong>to</strong>kołu BFT.<br />
6. Replika ponownie wyz<strong>na</strong>cza kolejny punkt synchronizacji T i rozgłasza<br />
komunikat schedule-request.<br />
Łatwo moż<strong>na</strong> zauważyć pewne usprawnienie, które polega <strong>na</strong> tym, że uzgadnianie<br />
kolejnego momentu zatwierdzenia stanu może odbyć się podczas bieżącej<br />
operacji zatwierdzania stanu, co z<strong>na</strong>cznie zmniejsza <strong>na</strong>kłady <strong>na</strong> komunikację.