10.03.2015 Views

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 ...

SHOW MORE
SHOW LESS

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ę.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!