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.

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

(a)<br />

(b)<br />

group-create<br />

failure-detection<br />

group-invite<br />

Rysunek 4.4: Inicjacja grupy replik. (a) Replika tworzy zupełnie nową grupę<br />

używając komunikatu group-create. (b) Replika jest zaproszo<strong>na</strong> do grupy w<br />

miejsce uszkodzonej, rozgłaszany jest komunikat group-invite.<br />

niego zlecenia zapamiętania obiektu. Nie oz<strong>na</strong>cza <strong>to</strong>, że w <strong>to</strong>warzystwie węzła<br />

nie ma grup replikujących, które realizują zlecenia. Widocznie w tym czasie<br />

nowa replika nie jest potrzeb<strong>na</strong>. Pomimo tego, węzeł, który dopiero co włączył<br />

się do systemu, powinien spróbować utworzyć własną grupę replik, gdyż za<br />

chwilę może otrzymać zlecenie zapamiętania obiektu. Nie <strong>na</strong>leży zwlekać, gdyż<br />

tworzenie grupy w chwili otrzymania pierwszego zlecenia z<strong>na</strong>cznie obniżałoby<br />

wydajność, ponieważ utworzenie nowej grupy jest bardzo pracochłonne. Gdybyśmy<br />

zezwolili <strong>na</strong> swobodne przyłączanie do grupy replik możliwym stałoby<br />

się, że kilka replik sparaliżowałaby pracę przyłączając się i odłączając dowolnie<br />

częs<strong>to</strong>.<br />

Rozpatrzę sytuację, gdy nowa grupa replik tworzo<strong>na</strong> jest przez węzeł:<br />

1. Do z<strong>na</strong>nych węzłów rozsyłany jest komunikat propozycji utworzenia grupy<br />

< group-create, i id , g id , G> σi . Identyfika<strong>to</strong>r i id jest identyfika<strong>to</strong>rem węzła<br />

proponującego utworzenie grupy, g id jest wygenerowanym identyfika<strong>to</strong>rem<br />

grupy, <strong>na</strong><strong>to</strong>miast G <strong>to</strong> wek<strong>to</strong>r identyfika<strong>to</strong>rów węzłów, do których został<br />

<strong>na</strong>dany komunikat włączając też twórcę grupy.<br />

2. W odpowiedzi węzły rozgłaszają komunikat do wszystkich węzłów w G,<br />

który precyzuje, czy chcą przyłączyć się do grupy, czy też nie 8 < groupjoin,<br />

j id , v> σj , gdzie v = {0, 1} w zależności od odpowiedzi.<br />

3. Każdy z węzłów zbiera odpowiedzi i składa je w wek<strong>to</strong>r J otakimsamym<br />

uporządkowaniu jak G, gdzie J(j) =1, gdy uczestnik o identyfika<strong>to</strong>rze<br />

8 Nie ma przymusu przy włączaniu się do grupy.

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

Saved successfully!

Ooh no, something went wrong!