Click here to load reader
View
263
Download
0
Embed Size (px)
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