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.

Rozdział 3<br />

Bezpieczne <strong>bizantyjskie</strong> uzgadnianie<br />

Replikacja jest podstawową techniką s<strong>to</strong>sowaną w DHT do utrzymania danych,<br />

które zostały umieszczone w różnych węzłach systemu <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong> pod odpowiednimi<br />

kluczami. Wprowadzenie replikacji skutkuje podwyższeniem <strong>to</strong>lerancji<br />

<strong>na</strong> uszkodzenia, jed<strong>na</strong>k wiąże się z koniecznością synchronizacji danych<br />

między replikami. W systemie, gdzie użytkownicy przyłączają się i odłączają w<br />

losowy sposób, techniki replikacji stają się bardzo skomplikowane. Replikacji<br />

moż<strong>na</strong> używać również w związku z różną popularnością obiektów dostępnych<br />

w systemie, dzięki czemu te bardziej pożądane przez użytkowników będą szybciej<br />

i łatwiej osiągalne. Problemy pojawiają się, gdy część replik zawodzi oraz<br />

gdy nie możemy mieć zaufania do działania poszczególnych elementów systemu.<br />

Heterogeniczność oprogramowania i częste umyślne działanie <strong>na</strong> szkodę systemów<br />

informatycznych wymusza s<strong>to</strong>sowanie takich algorytmów replikacji, które<br />

nie tylko zadbają o a<strong>to</strong>mowy dostęp do pożądanego obiektu, ale zagwarantują<br />

poprawność uzyskanych danych. W <strong>systemach</strong> <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong> odporność <strong>na</strong> przypadkowe<br />

bądź złośliwe zachowanie jest koniecznością, gdyż <strong>na</strong>wet mała liczba<br />

źle działających węzłów może spowodować utratę informacji.<br />

Ten rozdział ma <strong>na</strong> celu a<strong>na</strong>lizę obecnie s<strong>to</strong>sowanych algorytmów replikacji<br />

usługi, które zapewniają <strong>to</strong>lerancję bizantyjskich uszkodzeń. Na wstępie został<br />

opisany problem bizantyjskich generałów, który jest klasyczną ilustracją zagadnienia<br />

i wprowadzeniem do problemu <strong>bizantyjskie</strong>go uzgadniania. Następnie<br />

omówiono dwa algorytmy replikacji <strong>to</strong>lerującej błędy <strong>bizantyjskie</strong>, które s<strong>to</strong>sują<br />

całkowicie odmienne techniki, by ostatecznie osiągnąć podobny cel. Oba<br />

przedstawione w tym rozdziale algorytmy nie były projek<strong>to</strong>wane z myślą o <strong>systemach</strong><br />

słabo powiązanych, jed<strong>na</strong>k stanowią dobrą bazę dla algorytmu, który<br />

<strong>na</strong>dawałby się do zas<strong>to</strong>sowania w <strong>systemach</strong> <strong>peer</strong>-<strong>to</strong>-<strong>peer</strong>. Próba opracowania<br />

takiego algorytmu przedstawio<strong>na</strong> jest w <strong>na</strong>stępnym rozdziale.<br />

Większa <strong>to</strong>lerancja uszkodzeń i maskowanie błędów w <strong>systemach</strong> rozproszonych<br />

wymaga rozwiązania dwóch podstawowych problemów:

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

Saved successfully!

Ooh no, something went wrong!