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