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.

5.1 Projekt systemu 89<br />

5.1.3 Postarzanie obiektów<br />

Użyteczną techniką s<strong>to</strong>sowaną przez DHT zaimplemen<strong>to</strong>wanym w systemie Kademlia<br />

jest postarzanie obiektów [MM02]. Wcześniej ta technika była s<strong>to</strong>sowa<strong>na</strong><br />

<strong>na</strong> przykład w systemie plików rozproszonego systemu operacyjnego Amoeba<br />

[Tan95], aczkolwiek użycie tej techniki w systemie Amoeba miało zupełnie inne<br />

przesłanki, niż ma <strong>to</strong> miejsce w Kademlii. W Amoebie postarzanie wiązało się<br />

z usuwaniem nieużywanych już plików, do których nie odnosi się żad<strong>na</strong> ścieżka<br />

dojścia 1 , starsze pliki, niż pew<strong>na</strong> ustalo<strong>na</strong> war<strong>to</strong>ść były kasowane. Kademlia implementuje<br />

podobny mechanizm. Użytkownik chcąc, by jego obiekt pozostał w<br />

DHT Kademlii musi wywołać przy<strong>na</strong>jmniej raz <strong>na</strong> dobę operację odświeżania,<br />

co odpowiada operacji dotknięcia (ang. <strong>to</strong>uch) s<strong>to</strong>sowanej w systemie Amoeba.<br />

Przesłanki, jakie kierowały projektantami Kademlii wiązały się z rozsądnym gospodarowaniem<br />

przestrzenią dyskową, chociaż przyjęty czas przeterminowania<br />

obiektu, czyli doba, wydaje się być trudny do interpretacji.<br />

W systemie Pas<strong>to</strong>r, postarzanie obiektów moż<strong>na</strong> usprawiedliwić nie tylko<br />

optymalizacją zaję<strong>to</strong>ści przestrzeni dyskowej, ale też wydatkami komunikacyjnymi<br />

<strong>na</strong> utrzymywanie stanu replik dla obiektów, które nie są więcej wywoływane.<br />

FreePastry posiada rozszerzenie GCPast (ang. Garbage Collec<strong>to</strong>r Past),<br />

które implementuje usuwanie obiektów dlatego Pas<strong>to</strong>r opierał się <strong>na</strong> tym rozszerzeniu.<br />

Implementacja FreePastry<br />

Do realizacji oprogramowania uży<strong>to</strong> wersji FreePastry 1.4.1 (maj 2005), w skład<br />

której wchodzą <strong>na</strong>stępujące komponenty:<br />

• Pastry - substrat <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong>.<br />

• Past - implementacja DHT.<br />

• Scribe - mechanizm komunikacji grupowej.<br />

• Glacier - współdzielenie zawar<strong>to</strong>ści (podobne do pro<strong>to</strong>kołu BitTorrent).<br />

• SplitStream - strumieniowe przesyłanie danych.<br />

Jest <strong>to</strong> duża baza, która pozwala <strong>na</strong> skonstruowanie <strong>na</strong>wet bardzo wyszukanych<br />

aplikacji rozproszonych. W tym rozdziale nie będę dokładnie opisywał<br />

interfejsu programistycznego dostarczanego przez FreePastry, gdyż przedstawienie<br />

funkcjo<strong>na</strong>lności tego oprogramowania wykracza daleko poza ramy tej pracy<br />

1 Serwer pików periodycznie odświeżał z<strong>na</strong>czniki czasu do plików, do których istniały dojścia<br />

w systemie katalogowym.

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

Saved successfully!

Ooh no, something went wrong!