Rozproszona tablica mieszająca

Rozproszona tablica mieszająca (ang. distributed hash table, w skrócie: DHT) – rozproszony system używany do przechowywania informacji o dużych ilościach danych.

Na system DHT składa się pewna liczba stacji roboczych, które dzielą między sobą zbiór kluczy. Dodatkowo stacje posiadają możliwość wymiany informacji. Każda stacja jest w stanie przekazać porcję informacji innej stacji, znając wyłącznie jej identyfikator (klucz) bądź zestaw kluczy. System gromadzi informacje podobnie do tablicy mieszającej. Każda zapisana informacja musi posiadać etykietę. Wszystkie stacje robocze znają funkcję bądź zestaw funkcji haszujących, które są używane przez sieć DHT. Funkcje haszujące zamieniają etykietę informacji na klucz bądź zestaw kluczy, czyli adres w sieci. W celu zapisania informacji w DHT stacja ma obowiązek przekazać informację do stacji roboczej, która identyfikuje się kluczem obliczonym przez funkcję haszującą. Informacja jest zapisywana na odpowiedniej stacji jako para (klucz, wartość). Każda stacja posiada dostęp do takiej informacji za pomocą klucza. Aby odczytać informację zapisaną w DHT, należy obliczyć klucz i zażądać informacji od stacji identyfikującej się tym kluczem.

Zastosowania edytuj

Główne zastosowanie DHT znalazły w sieciach wymiany plików P2P. DHT służy do odszukania komputerów, na których znajduje się dany plik. Przeszukiwanie odbywa się po hashu. Jedną z najbardziej znanych implementacji DHT jest Kademlia, istnieją też sieci klientów BitTorrent, np. µTorrent czy Azureus.

Zalety i wady edytuj

+ Dzięki zastosowaniu DHT nie trzeba przesyłać zapytania do wszystkich komputerów w sieci, wystarczy zajrzeć do tablicy haszującej. Oczywiście komputer udostępniający plik musi do niej najpierw wpisać hash udostępnianego pliku.

+ Możliwa jest wymiana plików bez pośrednictwa trackera lub gdy tracker jest niedostępny.

- Sieci DHT mogą być ze sobą niekompatybilne mimo używania tego samego protokołu do wymiany plików. Wynika to z możliwości używania różnych funkcji haszujących.

- Konieczność przechowywania DHT i dokonywania dodatkowych operacji na komputerze użytkownika klienta zwiększa obciążenie systemu.

Zobacz też edytuj