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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Incydenty. Incydentem <strong>na</strong>zywamy sytuację, gdy podczas wykonywania pro<strong>to</strong>kołu<br />

warunek <strong>na</strong> liczbę takich samych odpowiedzi od różnych <strong>na</strong>dawców nie jest<br />

spełniony.<br />

Tak, jak w prawdziwym świecie reakcja <strong>na</strong> incydent powin<strong>na</strong> być przemyśla<strong>na</strong>.<br />

Najpierw <strong>na</strong>leży przea<strong>na</strong>lizować dostępne informacje, <strong>na</strong>stępnie wyciągnąć<br />

z nich wnioski i podjąć odpowiednią decyzję. Działanie trzeba podjąć<br />

<strong>na</strong>tychmiast, gdyż częs<strong>to</strong> jedynie szybka reakcja potrafi przywrócić właściwy<br />

stan. Incydenty w opisanym pro<strong>to</strong>kole mogą pojawiać się w <strong>na</strong>stępujących przypadkach:<br />

A. Uzgadnianie stanu po wyko<strong>na</strong>niu zlecenia.<br />

B. Uzgadnianie składu grupy replik.<br />

C. Transfer stanu między replikami.<br />

Dodatkowo każdy incydent może mieć <strong>na</strong>stępujący charakter:<br />

1. Przypadkowy. Nadesłane odpowiedzi mają losowe war<strong>to</strong>ści.<br />

2. Odmowy. Nadesłanych odpowiedzi jest za mało, by zagwaran<strong>to</strong>wać<br />

poprawne działanie.<br />

3. „Koordynowanego buntu”. Nadesłane odpowiedzi dają się podzielić <strong>na</strong><br />

kilka grup. Niestety żad<strong>na</strong> nie tworzy wymaganej większości.<br />

Iloczyn kartezjański charakteru incydentu i przypadku występowania prowadzi<br />

do pełnej listy incydentów (patrz tablica 4.1) oraz możliwych reakcji.<br />

4.5 Zatwierdzanie stanu<br />

Opisywa<strong>na</strong> technika transferu stanu wymaga istnienia mechanizmu, który zatwierdzałby<br />

stan usługi, jako stabilny. De fac<strong>to</strong> moż<strong>na</strong> w tym miejscu posłużyć<br />

się techniką zatwierdzania stanu (ang. checkpointing) opisaną w poprzednim<br />

rozdziale, użytą w algorytmie BFT.<br />

Pozostaje do rozpatrzenia, czy rzeczywiście zatwierdzanie stanu musi odbywać<br />

się w sposób bezpośrednio koordynowany oraz czy wymaga zebrania „dowodu<br />

stabilności”. Poprzez bezpośrednią koordy<strong>na</strong>cję <strong>na</strong>leży rozumieć technikę,<br />

która wymaga komunikacji grupowej oraz doprowadzi do wspólnego zatwierdzenia<br />

stanu.<br />

Na rysunku 4.7 pokazano, że dowolny moment zatwierdzenia stanu przez<br />

replikę może prowadzić do jej awarii. Dlaczego? Przecież moż<strong>na</strong> transferować<br />

stan od repliki o numerze trzecim, oraz wszystkie zlecenia, tak, że replika

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

Saved successfully!

Ooh no, something went wrong!