Click here to load reader

Chord - gsd.inesc-id.pt ler/docencia/tm0607/slides/Chord-Fernando... · PDF fileChord – Descrição Geral Protocolo com operação única: dada uma chave, efectua o mapeamento da

  • View
    263

  • Download
    0

Embed Size (px)

Text of Chord - gsd.inesc-id.pt ler/docencia/tm0607/slides/Chord-Fernando... · PDF fileChord...

Chord

Fernando Martins - [email protected]/2007

Tecnologias de Middleware

Tpicos Objectivo Motivao Peer-To-Peer Chord Descrio Geral Caractersticas Distintivas Comparao DNS Modelo do Sistema Aplicaes e Biblioteca Chord Protocolo Chord Hash Consistente Localizao Escalvel de Chaves Gesto de Ns Simulaes e Resultados Aplicaes Trabalho Futuro Concluso

Objectivo

Um servio de pesquisa (lookup) Peer-2-Peer (P2P) escalvel para aplicaes na Internet.

Motivao

Localizao eficiente de um n que possui determinada informao em aplicaes P2P.

Peer-To-Peer

Peer-To-Peer: sistema distribudo sem qualquer controlo centralizado ou organizao hierrquica onde o software presente em cada n equivalente em funcionalidade.

Operao central na generalidade dos sistemas P2P a localizao eficiente da informao.

Exemplos: Napster, Gnutella.

Chord Descrio Geral

Protocolo com operao nica: dada uma chave, efectua o mapeamento da chave num n.

Usa uma variante de hash consistente, que efectua o balanceamento da carga no sistema.

Envolve poucos movimentos de chaves aquando da entrada ou sada de ns no sistema.

Cada n requer informao de rota, apenas sobre alguns ns, com actualizao peridica

Tabela de rotas distribuda, pelo que um n resolve a funo de hash comunicando com outros ns.

Caractersticas Distintivas

Chord distingue-se da generalidade dos protocolos de pesquisa P2P em trs pontos:1. Simplicidade: efectua a rota de uma chave atravs

de outros ns.2. Correctude: apenas necessita de uma parte

correcta de informao por n de forma a garantir a rota correcta das pesquisas.

3. Performance: a degradao simptica quando os ns esto desactualizados.

Chord distingue-se da generalidade dos servios de pesquisa pela flexibilidade de mapeamento: mapeia chaves em ns e no directamente chaves em valores.

Comparao DNS Domnio de Aplicao:

DNS especializado na tarefa de pesquisa de host names.

Chord genrico, podendo ainda ser usado para encontrar informao que no se encontra ligada a nenhuma mquina em particular.

Arquitectura: DNS assenta em servidores especiais. Chord no requer qualquer tipo de servidor especial.

Comparao DNS Mapeamento:

DNS disponibiliza host name a partir do mapeamento de um endereo IP.

Chord pode disponibilizar o mesmo servio usando o nome como chave e o IP associado como o valor.

Estrutura: Os nomes DNS possuem uma estrutura para

reflectir fronteiras administrativas. Chord no impe qualquer estrutura de nomes.

Modelo do Sistema Carregamento Balanceado: Chord actua

como uma funo de hash consistente espalhando as chaves de forma equilibrada pelos ns.

Descentralizao: Chord totalmente distribudo. Nenhum n mais importante que outro.

Escalabilidade: o custo de uma pesquisa do Chord cresce com o logaritmo do nmero de ns. No requer qualquer parametrizao.

Modelo do Sistema Disponibilidade: Chord ajusta automaticamente

as tabelas internas para reflectir a entrada e sada de ns. Assegura que um n responsvel por uma chave pode ser sempre encontrado.

Flexibilidade: Chord no coloca qualquer restrio na estrutura das chaves.

Aplicaes e Biblioteca Chord Chord toma a forma de uma biblioteca ligada s

aplicaes cliente e servidor. As aplicaes interagem com o Chord de duas

formas: lookup(key), algoritmo que retorna o IP do n

responsvel pela chave key. Software Chord em cada n notifica a aplicao das

alteraes que ocorram no conjunto de chaves das quais o n responsvel.

A aplicao que usa o Chord responsvel por gerir autenticao, cache, replicao, nomes de chaves compreensveis para o utilizador, etc..

Protocolo Chord De forma simples, o Chord disponibiliza uma

computao distribuda rpida de uma funo de hash que mapeia chaves em ns responsveis pelas chaves.

Usa hash consistente: balanceamento; baixo impacto nas entradas e sadas de ns; escalvel;

Protocolo Chord Protocolo Chord especifica como:

encontrar a localizao das chaves; os ns entram e saem do sistema; recuperar de falhas nos ns existentes.

N Chord: necessita apenas de uma pequena quantidade de

informao de rota sobre os outros ns; efectua a resoluo de uma funo hash atravs da

comunicao com outros, poucos, ns.

Chord tem de actualizar a informao de rota sempre que um n entra ou sai da rede.

Hash Consistente Funo hash atribui a cada n e chave um

identificador m-bit, usando como base o SHA-1.

O identificador do n escolhido atravs do hash do IP do n.

O identificador da chave escolhido atravs do hash da chave.

Hash Consistente Atribuio de chaves a ns:

Identificadores esto ordenados num circulo identificador mdulo 2m.

Chave k atribuda ao primeiro n cujo identificador igual, ou seguinte ao identificador, k.

O n seguinte conhecido como o n sucessor da chave k, denominado por successor(k).

Hash Consistente Circulo identificador com m=3. Possui 3 ns: 0, 1 e 3. Sucessor do identificador 1 o n 1, logo a

chave 1 encontra-se no n 1.

Localizao Escalvel de Chaves

Cada n tem apenas de ter conhecimento sobre o seu sucessor no crculo.

Pesquisas sobre um identificador podem ser passadas volta do crculo atravs dos sucessores at encontrar um n que sucede o identificador: o n que a pesquisa mapeia.

Este esquema de resoluo garante a correcta resoluo das pesquisas mas insuficiente em termos de performance.

Localizao Escalvel de Chaves

Tabela de rotas, ou tabela apontadora (finger): presente em cada n; possui informao sobre o identificador e o IP do n

relevante; contm, pelo menos, m entradas mas possui

informao apenas sobre alguns ns; primeira entrada refere sempre o n seguinte; a i-sima entrada na tabela no n n contm a

identidade do primeiro n, s, que sucede n por, pelo menos, 2i-1 no crculo identificador;

n s o i-simo finger do n n e denomina-se por n.finger[i].node.

Localizao Escalvel de Chaves

Tabelas de rotas Finger

Gesto de Ns Chord consegue encontrar qualquer n na rede

mesmo com ns constantemente a entrar e sair, para tal necessita de preservar dois invariantes: o sucessor de cada n correctamente mantido; para cada chave k o n successor(k)

responsvel por k. Por razes de performance, desejvel que as

tabelas de rota se mantenham correctas. Para simplificar a gesto de entradas e sadas

de ns, cada n possui um apontador para o seu antecessor.

Gesto de Ns Para preservar os invariantes, o Chord tem de

efectuar trs tarefas quando um n entra:1. inicializar o antecessor e a tabela de rota do n n;2. actualizar as tabelas de rota e os antecessores dos

ns existentes de forma a reflectir a adio do n n na rede;

3. notificar a camada superior de software para que possa transferir o estado, e.g. valores, associados com as chaves das quais o n n agora responsvel.

Assume-se que o novo n conhece um n n' existente atravs de um mecanismo externo

Gesto de Ns Pseudocdigo:

Gesto de Ns Entrada de um novo n 6:

Gesto de Ns Sada do n 1:

Gesto de Ns Estabilizao:

funo stabilize de um n n questiona o sucessor de n pelo antecessor do sucessor p e decide se p deve passar a ser o sucessor de n;

cada n executa stabilize de forma peridica;

Gesto de Ns Falhas:

quando um n n falha, todos os ns cujas tabelas de rota incluem n necessitam de encontrar o sucessor de n;

cada n mantm uma lista de sucessores dos seus r sucessores mais prximos.

Gesto de Ns Replicao:

a lista de sucessores funciona como um mecanismo que permite que a camada mais alta de software replique dados;

sempre que um n entra ou sai, o software sabe quando deve ocorrer a propagao de rplicas.

Simulaes e Resultados Testes efectuados com uma verso menos

evoluda do que a aqui apresentada.

Load Balance: hash consistente efectua uma distribuio uniforme das chaves pelos ns.

Comprimento do Caminho: cresce de forma logartmica com o nmero de ns.

Falhas Simultneas de Ns: no existem falhas significativas na pesquisa de ns.

Simulaes e Resultados Pesquisas Durante a Estabilizao: taxa de

falhas na ordem dos 3%.

Escalabilidade: a latncia nas pesquisas cresce lentamente com o nmero total de ns, resultando numa boa escalabilidade.

Aplicaes Rplicas Cooperativas: rplicas de servidores

de ficheiros para download, permitindo inclusive o balanceamento da carga entre os servidores.

ndices Distribudos: para suportar pesquisas por palavras chave como Napster ou Gnutella.

Pesquisa Combinatria em Larga Escala: tal como quebra de cdigos criptogrficos.

Trabalho Futuro Recuperao de Crculos Partidos: Chord

no possui mecanismos especficos para recuperar de crculos partidos.

Segurana: Chord est sujeito a ataques uma vez que possvel a introduo de um n no crculo com informao errada.

Latncia de Pesquisa: melhorar o tempo de latncia nas pesquisa.

Concluso

Protocolo Chord resolve o problema da procura do n que contm a informao usando uma abordagem descentralizada.

Possui uma primitiva poderosa, dado uma chave, determina, de forma eficiente, o n responsvel por guardar o valor da chave.

Garante o correcto funcionamento do sistema, embora de forma degradada, quando a informao de um n est parcialmente correcta.

Concluso

Carregamento balanceado.

Boa escalabilidade.

Recupera de uma grande q