pastry e tapestry

Upload: dudassa-salvador

Post on 12-Jul-2015

65 views

Category:

Documents


0 download

TRANSCRIPT

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.