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.

4.3 Zestaw dostępnych operacji 67<br />

r 1<br />

1<br />

Prepare{r 11 }<br />

Commit{r 11 }<br />

0<br />

1<br />

2<br />

3<br />

r 2<br />

1<br />

R g<br />

{r 1 1 , r 12 }<br />

R g { r 12 }<br />

Vote-request<br />

Pre-commit{r<br />

11 }<br />

Rysunek 4.2: Szkic działania pro<strong>to</strong>kołu dla grupy czterech replik i <strong>na</strong>desłania<br />

zleceń przez dwóch klientów.<br />

twierdzenia wyko<strong>na</strong>nia i musi zostać potwierdzony przez co <strong>na</strong>jmniej f +1<br />

replik. Opisa<strong>na</strong> procedura odpowiada pro<strong>to</strong>kołowi trójfazowego zatwierdzania<br />

[TS01].<br />

W przypadku, gdy replika j wysłała już komunikat vote-response z podanym<br />

wek<strong>to</strong>rem R j , wstawia wszystkie <strong>na</strong>pływające zlecenia do swojej kolejki<br />

i po zakończeniu bieżącej rundy sama może zainicjować nowe wyko<strong>na</strong>nie wysyłając<br />

vote-request. Mechanizm rund wprowadza do pro<strong>to</strong>kołu pewien s<strong>to</strong>pień<br />

synchroniczności, gdyż repliki muszą uzgodnić wyko<strong>na</strong>nie zanim przejdą do<br />

fazy realizacji zleceń. Tutaj <strong>na</strong>leży mieć <strong>na</strong> uwadze twierdzenie wprowadzone<br />

w rozdziale trzecim, które neguje istnienie pro<strong>to</strong>kołu, który byłby całkowicie<br />

asynchroniczny i pozwalał grupie replik dojść do konsensusu w obecności błędów.<br />

4.3 Zestaw dostępnych operacji<br />

Pro<strong>to</strong>kół <strong>bizantyjskie</strong>go uzgadniania pozwala <strong>na</strong> replikację usługi, dlatego moż<strong>na</strong><br />

w oparciu o ten pro<strong>to</strong>kół zrealizować więcej operacji, niż tylko put,get,delete,<br />

które tworzą ogólny interfejs DHT [DZDS03], ale również zaproponowaną w<br />

BFT operację invoke. Nazewnictwo me<strong>to</strong>d pozostanie zgodne z obowiązującym<br />

wsystemiePast [RD01a], który implementuje rozproszoną tablicę z kodowaniem<br />

mieszającym dla obiektów, zbudowany <strong>na</strong> bazie warstwy komunikacyjnej<br />

Pastry. Past nie umożliwia zlecania wyko<strong>na</strong>nia operacji <strong>na</strong> obiektach, jak<br />

również nie jest odporny <strong>na</strong> <strong>bizantyjskie</strong> uszkodzenia. Zaprojek<strong>to</strong>wano system<br />

bardzo podobny do Past o <strong>na</strong>zwie OceanS<strong>to</strong>re opracowany w Berkeley University<br />

of California [KBC + 00], w którego pro<strong>to</strong>typie Pond [REG + 03], zaimple-

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

Saved successfully!

Ooh no, something went wrong!