Distributed hash table
Tabelas hash distribuídas (DHTs) ou ainda tabelas de espalhamento distribuídas são uma classe de sistemas distribuídos| descentralizados que provêem um serviço de lookup similar a uma tabela hash: pares (chave, valor) são armazenados na DHT e qualquer nó participante pode eficientemente recuperar o valor associado a uma dada chave. A responsabilidade de manter o mapeamento de chaves para valores é distribuída entre os nós tal que mudanças no conjunto de participantes causem o mínimo de desordem. Isso faz com que as DHTs escalem a um número extremamente grande de nós e gerenciem chegadas, saídas e falhas contínuas dos mesmos.
DHTs formam infra-estruturas que podem ser usadas para construir sistemas mais complexos como sistema de arquivos distribuído, compartilhamento de arquivos peer-to-peer e sistemas de distribuição de conteúdo, web caching cooperativo, multicast, anycast, domain name system, e comunicador instantâneo. Redes distribuídas notáveis que usam DHT incluem o tracker distribuído do BitTorrent, a rede eDonkey, o botnet Storm, YaCy, e a Coral Content Distribution Network.
Exemplos
Protocolos e implementações de DHT
Applicações usando DHTs
- BitTorrent: Distribuição de arquivos. BitTorrent usa opcionalmente uma DHT como um tracker distribuído para prover um ponto de encontro entre os clientes fazendo download de um arquivo particular (veja Comparação dos clientes de BitTorrent)
- The Circle: Compartilhamento de arquivos e chat
- Codeen: Web caching
- Coral Content Distribution Network: Rede de distribuição de conteúdo
- Dijjer: Rede de distribuição parecida com o Freenet
- eMule: Compartilhamento de arquivos
- FAROO: Mecanismo peer-to-peer de busca na web
- GNUnet: Rede de distribuição parecida com o Freenet com uma implementação de DHT [1]
- JXTA: Plataforma peer-to-peer de código aberto
- LimeWire: Compartilhamento de arquivos; contendo Mojito DHT
- NEOnet: Compartilhamento de arquivos
- Overnet: Compartilhamento de arquivos
- Warez P2P: Compartilhamento de arquivos
- YaCy: Mecanismo distribuído de busca na web