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.

80 Rozdział 4. Tolerowanie bizantyjskich uszkodzeń<br />

35<br />

12<br />

11<br />

30<br />

10<br />

25<br />

20<br />

9<br />

8<br />

7<br />

6<br />

15<br />

0 100 200 300 400 500 600 700 800 900 1000 1100<br />

5<br />

0 100 200 300 400 500 600 700 800 900 1000 1100<br />

Rysunek 4.8: Sterowanie częs<strong>to</strong>ścią zapisu stanu (prawa stro<strong>na</strong>) dla zmieniającego<br />

się czasu wyko<strong>na</strong>nia usługi (lewa stro<strong>na</strong>) (L max = 100, t=20, δ =0.5).<br />

2. Czas wyko<strong>na</strong>nia zleceń jest mały w porów<strong>na</strong>niu do czasu odzyskania usługi<br />

stanu - migawki <strong>na</strong>leży wykonywać w momencie zapełnienia dziennika,<br />

<strong>na</strong>jrzadziej jak <strong>to</strong> jest możliwe.<br />

Przea<strong>na</strong>lizuję sytuację drugą, gdyż dla pierwszego przypadku opłaca się archiwizować<br />

dane dowolnie częs<strong>to</strong>. T będzie oz<strong>na</strong>czało ostatni okres wyko<strong>na</strong>nia<br />

migawki. Niech t T oz<strong>na</strong>cza średni czas wyko<strong>na</strong>nia rundy od ostatniej migawki,<br />

<strong>na</strong><strong>to</strong>miast l T średnią długość dziennika, który powstaje podczas wyko<strong>na</strong>nia rund<br />

od ostatniej migawki. Odpowiednio definiujemy war<strong>to</strong>ści średnie za okres równy<br />

2T - t 2T , l 2T . Nowy wyz<strong>na</strong>czony okres między zapisami migawki oz<strong>na</strong>czymy<br />

T ,<strong>na</strong><strong>to</strong>miastT max = Lmax− l T<br />

l T<br />

, maksymalny okres wynikający z rozmiaru dziennika.<br />

Wyz<strong>na</strong>czenie okresu kolejnej migawki T ′ będzie przebiegało z wykorzystaniem<br />

prostej formuły:<br />

T ′ = δ<br />

(<br />

tT<br />

t 2T<br />

l T<br />

l 2T<br />

) −1<br />

T max<br />

Początkowa war<strong>to</strong>ści T ′ , dla której rozpoczy<strong>na</strong> się działanie, powin<strong>na</strong> być<br />

taka, by nie przekroczyć dozwolonej długości dziennika. Parametr δ ∈〈0, 1〉<br />

jest odpowiedzialny za dodatkową regulację war<strong>to</strong>ści T i powinien być wyprowadzony<br />

w zależności od t max ,t min ,l max ,l min oraz t T ,l T . Dodatkowo <strong>na</strong>leży<br />

wprowadzić „bezpiecznik”, który będzie pilnował, żeby rozmiar dziennika nie<br />

został przekroczony:<br />

T ′ =min{T ′ ,T max }<br />

Formuła, która wyz<strong>na</strong>cza T ′ jest bardzo prostym prawem sterowania. Oczywiście<br />

taki sposób zarządzania dziennikiem wyda się trywialny dla kogoś, k<strong>to</strong><br />

z<strong>na</strong> dobrze zagadnienia sterowania, jed<strong>na</strong>k z praktycznego punktu widzenia <strong>to</strong><br />

podejście jest wystarczające, jeżeli tylko czasy wyko<strong>na</strong>nia rundy oraz długość<br />

dziennika nie zmieniają się zbyt gwał<strong>to</strong>wnie.<br />

Na rysunkach 4.8 oraz 4.9 pokazano przykład sterowania dla zmieniającego<br />

się czasu wyko<strong>na</strong>nia rundy. Sterowanie wskazuje co ile kroków <strong>na</strong>leży wyko<strong>na</strong>ć<br />

zapis stanu usługi. Rysunek 4.9 zawiera wyz<strong>na</strong>czone sterowanie dla losowo

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

Saved successfully!

Ooh no, something went wrong!