Motivação Redes estruturadas Chord
Sistemas entre Pares e Redes Sobrepostas
Sistemas P2P estruturados: Chord1 Ricardo Lopes Pereira [email protected]
IST
Motivação Redes estruturadas Chord 1 Motivação 2 Redes estruturadas Características 3 Chord Características Funcionamento Routing Churn
Motivação Redes estruturadas Chord
Limitações das redes não estruturadas
Procuras não determinísticas:
diculdade em localizar objectos raros falsos negativos
Tráfego elevado e difícil de estimar (sem conhecer estrutura) Esforço (recursos consumidos) de procura não conhecido à partida (sem limites inferior e superior)
Motivação Redes estruturadas
Chord Características
Características
Cada nó possui um identicador único Cada objecto possui um identicador único
Cada nó responsável por guardar objectos cujos identicadores quem no seu espaço de inuência
Tipicamente espaço de identicadores de nós e objectos é idêntico
Balanceamento de carga surge naturalmente
Semântica semelhante à de uma HashTable: inserir objecto (chave, objecto), procurar objecto (chave), remover objecto (chave)
DHT: distributed hash table
Motivação Redes estruturadas
Chord Características
Vantagens
Determinísticas:
Garantia de encontrar objecto se este existir
Número de hops de uma procura são xos (limitados em função da dimensão da rede)
Motivação Redes estruturadas
Chord Características
Desvantagens
Procuras apenas por identicado do objecto
Não são possíveis procuras por expressões Não são possíveis procuras booleanas
Motivação Redes estruturadas
Chord Características
Características
Posição de nó na rede é determinada pelo algoritmo Procuras: decisão de encaminhamento local a cada nó Procuras: a cada hop camos mais perto do nó nal Protocolos lidam com peer churn
Motivação Redes estruturadas
Chord Características
Geometria e encaminhamento
Geometria escolhida dene: caminhos disponíveis para as mensagens
Encaminhamento: selecciona, de entre os caminhos disponíveis, aqueles a usar
Geometria deve ter em conta:
Custo de manutenção devido a churn
Funcionamento com elevada e baixa densidade de peers
Objectivos: limitar atraso de encaminhamento no caso médio e pior caso
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Características
Apenas mapeia chaves para nós
Se guardarmos pares chave/valor em cada no, permite procura pelo valor
Em estado estático, cada nó:
Mantém estado sobre O(logN) nós
Encontrar o nó que guarda uma chave em O(logN) hops
Cada entrada ou saída resulta, com elevada probabilidade, em O(log2N) mensagens de actualização
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Propriedades
Espaço de identicadores unidimensional (círculo)
Balanceamento de carga: chaves distribuidas uniformemente Descentralizado: nós todos iguais
Escalável: custo da procura O(logN)
Disponível: resiste a alterações constantes no nós (entradas e saídas). Nó responsável pela chave é sempre encontrado. Desempenho degrada suavemente quando não é possível manter O(logN) entradas de routing actualizadas
Estrutura de nomes exível. Apenas mapeia ID (hash) para nós Facilita vericação da autenticidade dos dados. Basta que chave seja hash criptográca dos dados
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Forma de uso
Biblioteca com duas funções
Dada uma chave indica o IP/porto do nó responsável Notica a aplicação sobre alterações ao espaço de identicadores por que é responsável
Aplicação responsável por implementar serviços como: autenticação, caching, replicação, ...
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Funcionamento
Utiliza função de hash (SHA-1) para colocar nó (IP)/chave num espaço de m bit
m sucientemente grande para a probabilidade de colisões ser negligenciável Cada chave é guardada no nó com id igual ou
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Sucessor: garantia de localização
Cada nó mantém uma referência para o seu sucessor no círculo Isto garante que podemos encontrar qualquer nó (responsável por uma chave) em O(N)
Garante que é possível a um nó que entra encontrar o seu sucessor (o primeiro com id superior ao seu)
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Tabela de nger: desempenho
Cada nó mantém até m entradas de routing (IP, porto, id).
Densidade de informação diminui com a distância. Cada nó sabe mais sobre os nós mais próximos.
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Tabela de nger: desempenho
Densidade de informação diminui com a distância. Cada nó sabe mais sobre os nós mais próximos.
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Encaminhamento
Nó pode não conhecer destinos, mas conhece alguém mais perto
Escolhe nger que é maior antecessor da chave Não pode ser o do intervalo, pois pode ter havido alterações (apenas sucessor é garantido) A cada passo, a distância diminui para metade
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Entradas de nós
Após a entrade de um nó é necessário garantir que:
O sucessor de cada nó está correcto
Cada chave k é da responsabilidade de sucessor(k)
Para manter o desempenho, é desejável que as tabelas de nger estejam correctas
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Questão
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Entradas não simultâneas
Nós mantém predecessor, para ajudar no processo de entrada Quando um nó entra é necessário:
Denir o predecessor e ngers do novo nó. O(mlogN) reduz para O(log2N) devido a intervalos vazios que criam ngers
repetidos
Actualizar predecessores e ngers de outros nós para reectir adição de n. O(log2N)
Noticar camada superior para transferir, do sucessor do novo nó, as chaves por que ca responsável
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Entradas concorrentes
Entradas concorrentes podem causar: Tabelas de nger incorrectas: degradação desempenho Sucessores incorrectos: falha na procuraEntradas degradas ecácia dos ngers por colocam-se no meio, implicando uso de sucessores
Motivação Redes estruturadas Chord Características Funcionamento Routing Churn
Saída dos nós
O essencial para o correcto funcionamento é o sucessor Cada nó mantém uma lista de O(logN) sucessores, para recuperar de falhas. Se o sucessor falha, muda para o próximo Isto permite, com elevada probabilidade, sobreviver à saída de N/2 nós
Se não for possível contactar um nó, contactamos nger anterior e depois lista de sucessores