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