Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

37
Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos

Transcript of Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

Page 1: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

Nomeação

Nazareno AndradeUniversidade Federal de Campina Grande

02/2008

Sistemas Distribuídos

Page 2: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

2

FundamentosCoordenando processosConstruíndo sistemasSistemas construídos

Page 3: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

3

FundamentosCoordenando processos

– Mensagens (e fluxos): UDP, TCP, MPI, Enfileiramento, Gossiping

– RPC e objetos distribuídos: RMI– Mensagens vs. RPC– Nomeação– Sincronização e replicação

Construíndo sistemasSistemas construídos

Page 4: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

4

Objetivos

Compreender o uso de nomes em sistemas distribuídos

Entender o processo de descoberta de recursos em diferentes tipos de sistema distribuído

Analisar o espaço de soluções para um sistema de nomes distribuído

Page 5: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

5

Pra que nomes?

Como um componente do sistema usa nomes?

O que um serviço de descoberta (ou de nomes) precisa ser capaz de fazer?– Nomes úteis a seres humanos são os mais apropriados

para o serviço?

E se não quero usar um nome, mas atributos da entidade?

Page 6: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

6

O serviço de nomes ou de descoberta de recursos mapeia nomes ou atributos para pontos de acesso a

entidades

Um nome referencia uma entidadePonto de acesso acesso à entidadeEndereço nome do ponto de acesso

Page 7: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

7

Endereços na prática

Qual o mapeamento ponto de acesso entidade?

Por que não usamos sempre o endereço como nome?– Mobilidade de dispositivos, de código, de serviços– Múltiplos servidores replicados

Qual a relação disso com transparência?

Page 8: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

8

Identificadores

Outro tipo de nome

1. Identifica no máximo uma entidade2. Entidade tem no máximo um identificador3. Identificadores não são reutilizados

Como isso é possível?

Page 9: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

9

Atributos

E se eu quero uma descoberta de recursos menos acoplada?

“Quero a máquina menos carregada do sistema”

Atributos podem referenciar entidades

Page 10: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

10

O problema

Dado que temos nomes, identificadores, atributos e endereços

Como resolver [nome ou identificador ou atributos] endereço(s)?

Essencialmente, usando uma tabela– Centralizada, hierárquica, distribuída, ...

Para sistemas de nomes distribuídos, resolver é próximo de rotear

Page 11: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

11

Onde estamos

Pra que servem nomesResolvendo identificadoresNomes estruturadosAtributos

Page 12: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

12

Resolvendo identificadores

Nomeadores podem ter referência ao endereço da entidade?

Problema 0: – Localizar máquina na rede com endereço MAC XYZW– Localizar máquina que roda o DHCP na rede

Page 13: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

13

Problema 1: entidades que se movem– Ponteiros repassadores– Localização nativa

Page 14: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

14

DHTs

Tabelas hash distribuídas escalabilidadeOperação central: lookup(chave)

Princípios:1. Mapear chaves para nós de forma balanceada2. Função de distância entre chave e id de um nó3. Um nó que recebe uma requisição deve ser capaz de repassá-la a um

nó mais perto de key ou respondê-la4. Tabelas de roteamento devem ser adaptativas

As principais diferenças estão na implementação da função de distância e na construição da tabela de roteamento

Page 15: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

15

Roteamento com skiplists: Chord

Espaço mesmo de nomes para nós e objetos– Distância é distância entre identificadores em lista circular

Objeto está em succ(k)

Tabela de roteamento (finger table) de p:FTp[i] = succ(p + 2i-1)

Roteamento:Envie para nó com índice j em FT tal que FTp[j] ≤ k ≤ FTp[j+1]

(envia para sucessor, caso não haja nós assim)

Page 16: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

16

Page 17: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

17

Detalhes operacionais

A topologia precisa ser mantida– Nós monitoram sucessor e predecessor– Periodicamente verifico se eu == predecessor de meu sucessor

• Se ele falhou, procuro um novo sucessor– Se meu predecessor falha, salvo essa informação e aguardo contato

de novo predecessor

Redundância nos sucessores aumenta robustez

A topologia da overlay pode explorar topologia da rede– IDs podem ser distribuídos de acordo com topologia da rede

Page 18: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

18

Roteamento com árvores

Pastry, Tapestry e Kademlia usam uma árvore para construir tabela de roteamento

Em Kademlia a distância entre k e i é k XOR i

Para identificadores de 128 bits, cada nó considera 128 distâncias possíveis– Para cada distância, mantem uma lista de nós naquela distância– No momento da busca, envia requisições recursivas para os nós da

distância mais próxima do id

Page 19: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

19

Exemplo Kademlia

Divisão da rede para nó 0011

Page 20: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

20

Busca no KademliaBusca por 1110

Page 21: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

21

Sistemas de nome hierárquicos

Nós-folha têm conhecem endereço do identificadorNós um nível acima, conhecem que nós abaixo

resolvem um identificador

Page 22: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

22

Page 23: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

23

Onde estamos

Pra que servem nomesResolvendo identificadoresNomes estruturadosAtributos

Page 24: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

24

Nomeação estruturada

Identificadores não são bons para seres humanosNomes estruturados são mais intuitivos:

Espaço de nomes é um grafo:– Nós-folha são entidades nomeadas– Demais nós são diretórios à lá sistemas de arquivos– Tipicamente, há uma raiz, geralmente não há ciclosTudo muito parecido com sistemas de arquivos.

Como funciona a resolução de ‘ls nome’?

Page 25: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

25

Resolução de nomes estruturados distribuída

Mecanismo de fechamentoDetermina por onde começar a resolução– Sistemas de arquivos: /– Variáveis de ambiente unix: espaço de nomes do usuário

Montagem– Combinar espaços de nomes distribuídos– FS é um bom exemplo novamente

Page 26: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

26

Nomes estruturados em grande escalaCamadas com diferentes requisitosReplicação horizontal e caching para escalabilidade e disponibilidade

Page 27: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

27

Resolução iterativa vs. recursiva

Vantagens / desvantagens?– Caching– Localidade de tráfego

Page 28: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

28

Exemplo: DNS

Espaço de nomes– www.lsd.ufcg.edu.br na verdade é www.lsd.ufcg.edu.br.– Domínios == sub-árvores do espaço de nomes

Conteúdo de um nó na árvore– Além do que usamos: servidor de email para esse nome,

email do administrador, IPs alternativos, servidor de nomes desse domínio, ...

Page 29: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

29

Page 30: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

30

Raiz do DNS

Page 31: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

31

Onde estamos

Pra que servem nomesResolvendo identificadoresNomes estruturadosAtributos

Page 32: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

32

Atributos

Nem sempre nomes são suficientes

Atributos referenciam entidades por características– Cada entidade tem conjuntos (atributo, valor)

Por vezes há distinção entre serviços que usam nomes e atributos– Nomes Serviço de nomeação– Atributos Serviço de diretório

Page 33: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

33

Atributos: Implementação hierárquica

LDAP é um padrão bastante usado

Cada recurso é descrito por uma tabela de atributos– dsc.ufcg.edu.br == /C=BR/TO=edu/O=ufcg/OU=DSC/…

O espaço de nomes é dividido em uma árvore

A árvore é dividida em nós– Parece um DNS, mas com pesquisas mais complexas– Search((C=BR)(TO=edu)(O=ufcg)(OU=*))

Page 34: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

34

Atributos: implementação decentralizada estruturada

Várias abordagens, ainda nenhum consenso

SWORD:– Identificadores dos nós não são mais hashes– Identificador = [bits identificando atributo + bits

identificando valor + bits aleatórios]– Um nó é responsável pelo atributo k, outro por k > 50,

outro por k > 75, ...– Consulta na DHT na verdade procura índices de atributos

Page 35: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

35

Atributos decentralizados e não-estruturadosExplorando localidade em redes P2P

– Nós procuram outros nós com interesses semelhantes e se aproximam deles

– Gossiping é útil aqui

IMM: encontrando nó menos carregado em uma árvore de multicast– Um nó que esteve rápido recentemente provavelmente

estará rápido agora

Há também a descoberta semi-estruturada, com supernós...

Page 36: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

36

Recapitulando

Pra que servem nomes– Endereços, nomes, identificadores e atributos

Resolvendo identificadores– Broadcast, hierarquia, DHTs

Nomes estruturados– Fechamento, montagem, resolução iterativa vs. Recursiva

Atributos– Implementação hierárquica– Implementação decentralizada estruturada– Implementação decentralizada não-estruturada

Page 37: Nomeação Nazareno Andrade Universidade Federal de Campina Grande 02/2008 Sistemas Distribuídos.

37

Mais sobre esse assunto

DHTs:– Visão geral: Looking up data in p2p systems– Artigo do Kademlia

DNS:– Livro online explicando e mostrando porque o DNS ainda é

suficiente

Nomes em geral:– Naming and binding of objects, 1978: artigo filosófico

sobre sistemas de nomes (nomenclatura hoje em desuso)