Download - Pastry e Tapestry
Aula Sistemas Distribudos Henrique P. de Oliveira - IC/UNICAMP
Peer2PeerTeoria e Estudo de Casos
Livro Texto Sistemas Distribudos, Conceitos e Projetos. G. Coulouris, J. Dollimore e T. Kindberg. Bookman, 4 ed
O que P2P?
Arquitetura de Comunicao. Mudana no papel dos peers (Cliente x Servidor).
2
Motivao da Rede P2P Crescimento da Internet. Escalabilidade de aplicaes. O cliente passa a contribuir com a informao formando uma rede de compartilhamento.
3
Caractersticas Escalabilidade, conabilidade e segurana. Equilbrio no armazenamento da informao. Localidade da informao. Busca da informao.4
Arquitetura
Middleware. Overlay. Exemplos: Pastry, Tapestry e Chord.
5
Roteamento
Roteamento pelo IP x Roteamento do IP mapeado.
6
Comparaosobre IP Escala Equilbrio de Carga IPv6 - 2128 IPs Topologia da rede e trfego IP mapeado pode ser >2128 Algoritmo
Entrada/sada de ns Tolerncia a Falhas Busca da informao Segurana
Assncrono (atraso de Sncrono ou Assncrono uma hora) (atrasos de segundos) Endereos Direta Os ns precisam ser conveis7
Replicao Dispendiosa A conana dos ns pode ser limitada
Estrutura da Rede P2P Tabela de buscas centralizada e dados distribudos. Exemplo: Napster. Estrutura hierrquica de busca de dados. Exemplos: Gnutella e Freenet. Estrutura totalmente distribuda. Exemplos: Pastry e Tapestry.8
Estudos de Casos Vamos analisar: Pastry Tapestry Squirrel OceanStore9
Pastry
Pastry - Introduo
Algoritmo de encaminhamento de mensagens e localizao de objetos. Trabalha sobre a Internet.
11
Pastry - Denies Identicador nico - nodeID (128-bit), composto de dgitos escritos com b bits. Mensagem + chave segue para nodeID mais prximo da chave. Cada n conhece os |M| = |L| mais prximos numericamente.12
Pastry - Estado do N
Tabela de Roteamento. Conjunto dos Vizinhos. Conjunto das Folhas.
13
Pastry - Leaf Set
Composto por |L|/2 ns menoresadjacentes e |L|/2 ns maioresadjacentes que o nodeID. |L| = 2b ou 2b+1.
14
Pastry - Neighbor. Set
Composto por |M| = |L| ns sicamente prximos ao n.
15
Pastry - Routing Table
Conceitualmente uma tabela hash com: log2bN linhas 2b - 1 colunas
16
Pastry - Exemplo
b=2 ID = 16-bit L=M=8 N 105 ns
17
Pastry - Algoritmo D Chave A nodeID Rli Coluna i linha l Di i-simo dgito shl(A,B) n. de dgitos compart. entre A e B
18
Pastry - Entrada de Ns Novo n com nodeID X conhece um n Pastry A sicamente prximo a ele:- X envia para A uma msg de join. - A transmite join at Z (numericamente prximo de X). - A e Z e todos os ns do caminho de join enviam as tabelas de estado para X. - X monta seu estado e avisa os interessados.19
Pastry - Sada de Ns Um n est fora se no responde tentativa de comunicao de outro n. Existem trs pontos de perda: - Conjunto de folhas - Tabela de roteamento - Conjunto de vizinhos.20
Pastry - Sada de Ns Perda no conjunto de folhas: - O n que detectou pede a leaf set para o n mais extremo do lado do n perdido. - Recebendo, o n decide qual ser o substituto.21
Pastry - Sada de Ns
Perda na tabela de roteamento: - O n pergunta sobre a posio perdida para outro n na mesma coluna.
22
Pastry - Sada de Ns
Perda no conjunto de vizinhos: - O n pede a tabela de vizinhos para algum outro n deste conjunto e substitui o n perdido pelo mais prximo sicamente.
23
Pastry - Tolerncia a Falhas
Cada entrada da tabela de roteamento possui mais de um nodeID.
24
Tapestry
Tapestry - Introduo
Opera da mesma forma que o Pastry. A diferena est no fato da rede Tapestry tratar do armazenamento de objetos.
26
Tapestry - Denies
Ns possuem nodeID e objetos possuem GUI - Global Unique Identier. O n destino de um objeto o seu root e nele consta os apontadores para os servidores do objeto.
27
Tapestry - Denies
Os ns possuem somente o mapa de vizinhos, anlogo tabela de roteamento. Todo n guarda um apontador para os os ns que o apontam - backpointers.
28
Tapestry - Publicando Um servidor envia uma mensagem de publicao de um objeto com GUID igual a Og. A mensagem segue at a raiz R. Todos os ns at R guardam um link para o servidor.29
Tapestry - Publicando
30
Tapestry - Localizando
Mensagens de busca podem ser rapidamente resolvidas se passarem pelo caminho de publicao do objeto. Quando a mais de um servidor, escolhese o de menor latncia.
31
Tapestry - Localizando
32
Tapestry - Entrada de Ns O novo n N procura sua raiz S. S encontra P que o n que mais compartilha dgitos com N. S envia um aviso para todos os ns que compartilham tantos dgitos quanto P.
33
Tapestry - Entrada de Ns
N recebe referncias de ns e apontadores de servidores se houver. Iterativamente N pede os backpointers do nvel p e monta o nvel p-1.
34
Tapestry - Sada de Ns Voluntria: - O n avisa seus backpointers e repassa responsabilidades. Involuntria: - Amortizado por republicaes.
35
Exemplo
Exemplo/Library/x/key.lib
ExemploMSG10110
/Library/x/key.lib
ExemploMSG10110
00100
N
Exemplo
10110
00100 Shared
0-0-1010 0-0-101 00-0-11 001-0-0 0010-0-
1-1-0100 0-1-111 00-1-11 001-1-0 0010-1-
0 1 2 3 4
Exemplo
10110
00100 Shared
0-0-1010 0-0-101 00-0-11 001-0-0 0010-0-
1-1-0100 0-1-111 00-1-11 001-1-0 0010-1-
0 1 2 3 4
Exemplo
10110
00100 Shared
0-0-1010 0-0-101 00-0-11 001-0-0 0010-0-
1-1-0100 0-1-111 00-1-11 001-1-0 0010-1-
0 1 2 3 4
Exemplo
10110
00100 Shared
0-0-1010 0-0-101 00-0-11 001-0-0 0010-0-
1-1-0100 0-1-111 00-1-11 001-1-0 0010-1-
0 1 2 3 4
Exemplo1011010100
00100 Shared
0-0-1010 0-0-101 00-0-11 001-0-0 0010-0-
1-1-0100 0-1-111 00-1-11 001-1-0 0010-1-
0 1 2 3 4
Exemplo1011010100
00100 Shared
0-0-1111 1-0-100 10-0-111 101-0-1 1010-0-
1-1-0101 1-1-101 10-1-001 101-1-1 1010-1-
0 1 2 3 4
Exemplo1011010100
00100 Shared
0-0-1111 1-0-100 10-0-111 101-0-1 1010-0-
1-1-0101 1-1-101 10-1-001 101-1-1 1010-1-
0 1 2 3 4
Exemplo1011010100
00100 Shared
0-0-1111 1-0-100 10-0-111 101-0-1 1010-0-
1-1-0101 1-1-101 10-1-001 101-1-1 1010-1-
0 1 2 3 4
Exemplo1011010100
00100 Shared
0-0-1111 1-0-100 10-0-111 101-0-1 1010-0-
1-1-0101 1-1-101 10-1-001 101-1-1 1010-1-
0 1 2 3 4
Exemplo1011010100 10111 00100 Shared
0-0-1111 1-0-100 10-0-111 101-0-1 1010-0-
1-1-0101 1-1-101 10-1-001 101-1-1 1010-1-
0 1 2 3 4
Exemplo1011010100 10111 00100
Exemplo1011010100 10111 00100 Shared
0-0-0000 1-0-110 10-0-01 101-0-1 x
1-1-0100 1-1-110 10-1-01 101-1-0 1011-1-
0 1 2 3 4
Exemplo1011010100 10111 00100 Shared
0-0-0000 1-0-110 10-0-01 101-0-1 x
1-1-0100 1-1-110 10-1-01 101-1-0 1011-1-
0 1 2 3 4
Exemplo1011010100 10111 00100 Shared
0-0-0000 1-0-110 10-0-01 101-0-1 x
1-1-0100 1-1-110 10-1-01 101-1-0 1011-1-
0 1 2 3 4
Exemplo1011010100 10111 00100 Shared
0-0-0000 1-0-110 10-0-01 101-0-1 x
1-1-0100 1-1-110 10-1-01 101-1-0 1011-1-
0 1 2 3 4
Exemplo1011010100 10111 00100 Shared
0-0-0000 1-0-110 10-0-01 101-0-1 x
1-1-0100 1-1-110 10-1-01 101-1-0 1011-1-
0 1 2 3 4
Squirrel
Squirrel - Introduo
Baseado no algoritmo Pastry O objetivo realizar Web Caching distribudo.
57
Squirrel - Denies
URLs so mapeadas em um objectID. O n com nodeID mais prximo do objectID ser seu homenode.
58
Squirrel - Modelos Home-store: - O prprio homenode fornece o objeto. Directory: - O homenode conhece uma lista de ns que acessaram o objeto recentemente e um deles fornecer o objeto.59
Squirrel - Home-store
60
Squirrel - Home-store
Duas possibilidades: - a: A cpia recente e ela transferida para o n requisitante ou somente uma mensagem de no modicada.
61
Squirrel - Home-store
- b1-b2-b3: A cpia no recente ento o homenode verica no servidor e a transfere para o n requisitante.
62
Squirrel - Directory
63
Squirrel - Directory Caminhos: - a1-a2-a3: No existe uma tupla na tabela de diretrios. O cliente envia posteriormente seus dados para o homenode inclu-lo.
64
Squirrel - Directory
- b: Caso a vericao seja um cGET.
65
Squirrel - Directory- c1-c2: Caso exista um n que possua uma verso recente do objeto. O homenode requisita ao n delegate que envie a cpia para o cliente. Para o caminho c, o n delegate possui uma cpia recente.66
Squirrel - Directory- d1-d2-d3: Caso a requisio seja um cGET. O homenode avisa o n cliente que ele possui um cpia antiga e no existe um n delegate com cpia recente. O n cliente requisita ao servidor a cpia recente.67
Squirrel - Directory- e1-e2-e3-e4: Caso a requisio seja um GET. O homenode escolhe um n delegate e requesita-o que envie uma cpia ao cliente. O n delegate envia um cGET para o servidor e atualiza o objeto.68
Squirrel - Resultados
69
Squirrel - Resultados
70
Squirrel - Resultados
71
OceanStore
OceanStore Infra-estrutura para prover acesso continuamente informao. Dados protegidos por redundncia e criptograa. Existe movimento de dados prativamente, adaptaes regionais e cache distribudo.73
OceanStore - Metas Ser construdo sobre infra-estrutura no convel:Servidores caem sem aviso. Informaes so perdidas. Servidores so repositrios passivos. Assume-se que a maioria dos servidores esto trabalhando corretamente na maior parte do tempo. Existe uma classe de servidores em que se pode acreditar.
OceanStore - Metas
Dados nmades:Dados podem uir livremente. Dados cacheados em qualquer lugar a qualquer tempo (caching promscuo).
OceanStore - Introduo Objetos possuem um GUID. Objetos so replicados e armazenados em mltiplos servidores. A rplica conhecida como utuante por ser independente do servidor.
OceanStore - Introduo
A busca por um objeto feita por um algoritmo probabilstico (rpido). Em caso de falha, usa-se um algoritmo determinstico (lento).
OceanStore Caractersticas Os objetos so modicados atravs de updates. Os updates contm informao sobre as mudanas do objeto. Todo update cria uma nova verso do objeto.
OceanStore Caractersticas
Os objetos existe no sistema em duas formas: ativos e arquivados.
OceanStore Caractersticas Ativos: - A ltima verso do objeto junto com uma manipulao para atualizao. Arquivados: - Um objeto permanente somente leitura. Nesse caso o objeto pode ser largamente replicado.
OceanStore Caractersticas Armazenar objetos do tipo Arquivado - Deep Arquival Storage:- Tcnica erasure codes. - O dado fragmentado em n partes. - O algoritmo transforma em 2n ou mais fragmentos. - Qualquer n fragmentos reconstri o dado.