59
Prof. Luiz Fernando Bittencourt IC - UNICAMP MC714 Sistemas Distribuídos 2° semestre, 2013

MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

MC714 Sistemas Distribuídos 2° semestre, 2013

Page 2: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Ex: Multicast totalmente ordenado • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida: cada atualização deve ser executada em cada réplica. • Mais: atualizações devem ser feitas na mesma ordem nas

réplicas. • Ex.: Saldo de 1000; adição de juros de 1% em um banco de

dados de depósito de 100 em outro. • Apesar de ordem fazer diferença no resultado, não faz na

consistência: todas as cópias devem ser iguais. • Solução: multicast totalmente ordenado

Page 3: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Ex: Multicast totalmente ordenado • Operação onde todas as mensagens são entregues na mesma ordem a cada receptor.

• Grupo de processos enviam mensagens multicast uns aos outros.

• Mensagens transportam marca de tempo lógico. • Mensagem enviada também é enviada ao próprio remetente.

• Mensagens do mesmo remetente são recebidas na ordem que foram enviadas e mensagens não são perdidas.

Page 4: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Ex: Multicast totalmente ordenado • Processo recebe mensagem: coloca em uma fila local ordenada por marcas de tempo.

• Receptor envia ack em multicast para mensagem recebida. • Marca de tempo da mensagem de ack sempre maior que da

mensagem original devido ao ajuste de relógios por Lamport

• Resultado: todos os processos terão a mesma cópia da fila local (se nada for removido).

Page 5: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Ex: Multicast totalmente ordenado • Entrega de msg à aplicação somente quando a msg no início da fila tiver sido reconhecida por todos.

• Filas iguais à mensagens entregues na mesma ordem à multicast totalmente ordenado

•  Importante para consistência de réplicas à replicação de estado de máquina

Page 6: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Relógios vetoriais • Relógios lógicos de Lamport: todos os eventos são totalmente ordenados • Se evento a aconteceu antes do evento b, C(a) < C(b).

• Nada se pode dizer sobre a relação entre dois eventos, a e b, pela comparação de seus valores de tempo C(a) e C(b). • C(a) < C(b) não implica necessariamente que a realmente

aconteceu antes de b.

Page 7: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Relógios vetoriais • Fig. 99 • Tsnd(mi) < Trcv(mi) • Trcv(mi) < Tsnd(mj) ?

•  Trcv(m1) < Tsnd(m3) •  Trcv(m1) < Tsnd(m2) • Envio de m2 não tem nenhuma relação com recebimento de

m1 à Não captura causalidade.

• Pode ser capturada por relógios vetoriais.

Page 8: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Relógios vetoriais • Relógio vetorial VC(a) para um evento a:

• Se VC(a) < VC(b) para algum evento b, sabe-se que o evento a precede por causalidade o evento b.

• Relógios vetoriais • Cada processo Pi mantém um vetor VCi tal que: 1.  VCi[i] é o número de eventos que ocorreram em Pi até o

instante em questão. VCi[i] é o relógio lógico local do processo Pi.

2.  Se VCi[j] = k, então Pi sabe que k eventos ocorreram em Pj. Portanto, Pi conhece o tempo local em Pj.

Page 9: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Relógios vetoriais • Primeira propriedade depende do incremento de VCi[i] na

ocorrência de cada evento no processo Pi. • Segunda propriedade depende de caronas que os vetores

pegam com as mensagens que são enviadas.

Page 10: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Relógios vetoriais 1.  Antes de executar um evento (isto é, enviar uma mensagem

pela rede, entregar uma mensagem a uma aplicação...), Pi executa VCi[i] ß VCi[i] + 1

2.  Quando o processo Pi envia uma mensagem m a Pj, ele iguala a marca de tempo (vetorial) de m, ts(m), à marca de tempo de VCi, após ter executado a etapa anterior.

3.  Ao receber uma mensagem m o processo Pj ajusta seu próprio vetor fixando VCj[k] ß max{VCi[k], ts(m)[k]} para cada k; em seguida executa a primeira etapa e entraga a mensagem à aplicação.

Page 11: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Relógios vetoriais • Se marca de tempo de um evento a for ts(a), então ts(a)[i] – 1 é o número de eventos processados em Pi que precedem a por causalidade.

• Pj recebe mensagem de Pi com marca de tempo ts(m) à Pj sabe quantos eventos ocorreram em Pi que precedem por causalidade o envio de m.

Page 12: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Relógios vetoriais • Pj também é informado de quantos eventos ocorreram em outros processos antes de Pi enviar a mensagem m.

• Marca de tempo ts(m) informa ao receptor quantos eventos ocorreram em outros processos antes do envio de m e dos quais m pode depender por causalidade.

Page 13: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Imposição de comunicação causal • Garantir que uma mensagem seja entregue somente se todas as mensagens que a precederem por causalidade também tenham sido recebidas. • Uso de relógios vetoriais + multicast

• Multicast ordenado por causalidade • Relação com multicast totalmente ordenado?

Page 14: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Imposição de comunicação causal • Para duas mensagens não relacionadas:

• Não importa a ordem que serão entregues às aplicações • Podem ser entregues em ordens diferentes para processos

diferentes

• Relógios só são ajustados quando enviam e recebem mensagens. • Ao enviar mensagem, Pi faz VCi[i] ß VCi[i] + 1 • Pj ao receber mensagem m com marca ts(m), ajusta VCi[k]

para max{VCj[k], ts(m)[k]} para cada k.

Page 15: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Imposição de comunicação causal • Quando Pj recebe de Pi mensagem m com marca de tempo vetorial ts(m), entrega à camada de aplicação será atrasada até que duas condições sejam cumpridas:

1.  ts(m)[i] = VCj[i] + 1 • m é a próxima mensagem que Pj está esperando de Pi

2.  ts(m)[k] <= VCj[k] para todo k != i • Pj viu todas as mensagens que foram vistas por Pi quando

este enviou a mensagem m.

Page 16: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Imposição de comunicação causal • Considere P0, P1, P2. • P0 envia m a P1 e P2 no tempo local (1,0,0). • Após receber m, P1 envia m*, que chega a P2 antes de m.

• Entrega de m* é atrasada por P2 até que m tenha sido recebida e entregue à camada de aplicação

• Fig. 100

Page 17: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Entrega ordenada de mensagens • Alguns sistemas de middleware fornecem suporte a multicast totalmente ordenado e multicast ordenado por causalidade.

• Tal suporte deve ser fornecido como parte da camada de comunicação ou aplicações deveriam se encarregar da ordenação?

Page 18: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Entrega ordenada de mensagens • Middleware não pode dizer o que uma mensagem contém • Só pode capturar causalidade pontencial. • Duas mensagens completamente independentes enviadas

pelo mesmo remetente sempre serão marcadas como relacionadas por causalidade pela camada de middleware.

• Pode resultar em problemas de eficiência

• Nem toda causalidade pode ser capturada • Comunicação externa pode implicar causalidade • Não capturada pelo middleware.

Page 19: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Exclusão mútua

Page 20: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Exclusão mútua • SDs Concorrência e colaboração entre vários processos.

• Acesso simultâneo aos mesmos recursos. • Necessário evitar que recurso seja corrompido ou torne-se inconsistente.

• Acesso mutuamente exclusivo pelos processos.

Page 21: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Exclusão mútua • Duas categorias de algoritmos de exclusão mútua 1.  Soluções baseadas em ficha (token).

• Passagem de mensagem especial entre processos – ficha • Há somente uma ficha disponível • Quem tem a ficha pode acessar o recurso • Ao terminar, ficha é passada diante para o próximo processo • Se processo não precisar acessar o recurso, passa ficha

adiante.

Page 22: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Exclusão mútua 1.  Soluções baseadas em ficha (token).

• Pode garantir com razoável facilidade que todo processo terá oportunidade de acessar o recurso à evita inanição (starvation).

•  Fácil evitar deadlocks à contribui para otimização do processo.

• Desvantagem: ficha pode se perder à precisa-se de procedimento distribuído para criar nova ficha única.

2.  Abordagem baseada em permissão. •  Processo que quer acessar o recurso solicita permissão aos outros

processos.

Page 23: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo centralizado • Simular como é feita em monoprocessador. • Processo é eleito coordenador. • Outro processo quer acessar recurso compartilhado:

• Envia mensagem ao coordenador declarando qual recurso quer acessar e solicitando permissão.

• Se recurso está livre, coordenador respode com premissão. • Se não está livre, pode negar permissão ou não responder

até estar livre. • Fig. 101.

Page 24: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo centralizado • Garante exclusão mútua • Permissões concedidas na ordem • Não há inanição • Fácil de implementar. Três tipos de mensagem:

• Requisição • Concessão •  Liberação

• Coordenador é ponto de falha único •  Falha implica queda do sistema •  Se processo bloqueia depois de pedir recurso, pode ficar bloqueado •  Coordenador pode ser gargalo

Page 25: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo descentralizado • Lin et al. (2004): algoritmo de votação que pode ser usado sobre uma DHT.

• Ampliação do coordenador central. • Premissa: cada recurso é replicado n vezes. • Toda réplica tem seu próprio coordenador para controlar acesso concorrente.

• Quando processo quer acessar um recurso, precisa de voto majoritário m > n/2 coordenadores.

• Coordenador informa ao requisitante se não der permissão.

Page 26: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo descentralizado • Torna solução centralizada original menos vulnerável a falhas.

• Premissa: quando um coordenador falha, se recupera rapidamente, mas esquece votos que tenha dado antes de falhar (coordenador reinicia). • Risco de conceder permissão dupla ao recurso que

gerencia.

Page 27: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo descentralizado • p: probabilidade de um coordenador reiniciar durante um intervalo de tempo .

• P[k] probabilidade de que k entre m coordenadores se reiniciem durante o mesmo intervalo.

P [k] =

✓m

k

◆pk(1� p)m�k

Page 28: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo descentralizado • 2m – n coordenadores precisam reiniciar para violar correção do mecanismo.

• Probabilidade de ocorrer:

• Ex: nós ficam 3h em DHT •  =10s • n=32, m=0,75n • Probabilidade de violação menor que 10-40

nX

k=2m�n

P [k]

Page 29: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo descentralizado • Usando DHT à recurso replicado n vezes • Nome exclusivo rname •  i-ésima réplica: rname-i, usada para calcular chave • Dado o nome do recurso, todo processo pode gerar as n chaves, podendo consultá-lo.

Page 30: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo distribuído • Algoritmo distribuído determinístico para exclusão mútua

• Lamport (1978), aprimorado por Ricart e Agrawala (1981)

• Requer ordenação total de todos os eventos no sistema • Para qualquer par de eventos, como mensagens, não pode

haver ambiguidade sobre o qual aconteceu primeiro. • Algoritmo de Lamport é um modo de conseguir essa

ordenação.

Page 31: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo distribuído • Processo quer acessar recurso compartilhado:

• Monta mensagem que contém nome do recurso, seu número de processo e hora (lógica) corrente.

• Envia mensagem a todos os outros processos, incluindo ele mesmo.

• Premissa: envio de mensagens é confiável.

Page 32: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo distribuído • Processo recebe uma mensagem com requisição, ação depende do seu próprio estado em relação ao recurso solicitado na mensagem.

1.  Receptor não está acessando recurso e não quer acessá-lo à responde OK.

2.  Receptor já tem acesso ao recurso à Não responde e põe requisição na fila.

3.  Receptor quer acessar mas ainda não o fez à compara marca de tempo da mensagem que chegou com a que enviou para todos. Mais baixa vence: OK se sua é mais alta; c.c. enfileira sem responder

Page 33: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo distribuído • Após enviar requisições de permissão, processo espera até que todos tenham dado permissão.

• Ao terminar, envia mensagem de OK para todos que estão em sua fila e remove todos da fila.

• Fig. 102.

Page 34: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo distribuído • Exclusão mútua garantida sem deadlock • Número de mensagens: 2(n-1). • Não existe ponto de falha único... mas existem n pontos de falha. • Se um processo falha, não responde; • Requisitante pode ficar bloqueado, assumindo erroneamente

que processo que falhou está ocupando recurso. • Bloqueará todas as tentativas de todos os processos de

entrar em região crítica. • Solução?

Page 35: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmo distribuído • Solução? • Receptor enviar respostas negativas. • Requisição/resposta perdida: refaz até receber resposta ou declarar processo morto.

• Requisição negada: bloqueia até receber um OK. • Precisa de primitiva de comunicação multicast

• Ou cada nó mantém lista de associados com controle de entrada/saída de nós

• Gargalo continua existindo: todos lidam com todas as requisições.

• Pior que centralizado, mas mostra que é possível

Page 36: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição

Page 37: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição • Objetivo: escolher um líder – processo que seja coordenador dentre um conjunto de processos.

• Suposição: cada processo tem um número exclusivo (endereço de rede, por exemplo).

• Abordagem geral: procurar processo com número mais alto e designá-lo como líder.

• Algoritmos variam na maneira de localizar tal processo.

Page 38: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição - suposições • Todo processo sabe o número de todos os outros. • Processos não sabem quais estão funcionando e quais estão inativos.

• Meta do algoritmo de eleição: garantir que, quando uma eleição começar, ela terminará com todos os processos concordando com o novo coordenador escolhido.

Page 39: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição tradicionais • 1. Algoritmo do valentão • Processo P qualquer nota que coordenador não está mais respondendo, inicia eleição da seguinte forma: • Envia mensagem ELEIÇÃO a todos os processos de número

mais alto • Se nenhum responder, P vence a eleição e se torna

coordenador • Se algum responder, este toma o poder e P conclui seu

trabalho.

Page 40: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição tradicionais • Processos podem receber mensagem ELEIÇÃO a qualquer momento de nós com número mais baixo.

• Receptor envia OK de volta ao remetente, indicando que está vivo e que tomará o poder.

• Receptor convoca uma eleição (a não ser que já tenha convocado uma)

• Converge para situação onde todos desistem, exceto um, que será o novo coordenador. • Este anuncia a vitória enviando a todos os processos

informando que ele é o novo coordenador.

Page 41: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição tradicionais

• Processo inativo convoca eleição quando volta. • Se for processo de número mais alto, ganha.

• Mais “poderoso” sempre ganha.

• Fig. 103.

Page 42: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição tradicionais • 2. Algoritmo de anel • Processos ordenados por ordem física ou lógica

• Cada um sabe quem é seu sucessor

• Processo nota que coordenador não responde à envia mensagem ELEIÇÃO, contendo seu número de processo. • Se sucessor não estiver respondendo, envia ao próximo

membro ao longo do anel. Repete até encontrar um processo funcional.

• Cada nó adiciona seu número de processo à mensagem, candidatando-se a coordenador.

Page 43: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Algoritmos de eleição tradicionais • Quando mensagem retornar ao iniciador da eleição:

• Extrai maior número de processo que encontrar na mensagem.

• Envia mensagem COORDENADOR com tal número, além dos participantes do anel.

• Mensagem chegou ao iniciador, é removida.

• O que ocorre se dois processos iniciarem eleição?

• Fig. 104.

Page 44: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em ambiente sem fio • Sem premissa de que troca de mensagem é confiável e topologia não muda. • Em especial redes ad hoc.

• Vasudevan et al. à pode eleger o melhor líder

Page 45: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em rede ad hoc sem fio • Qualquer nó, chamado nó fonte, pode iniciar uma eleição • Envia mensagem ELEIÇÃO a seus vizinhos imediatos (nós

que estão ao seu alcance). • Nó recebe ELEIÇÃO pela primeira vez:

• Designa remetente como seu pai • Envia mensagem ELEIÇÃO a todos seus vizinhos imediatos

(exceto pai) • Se nó recebe ELEIÇÃO de vizinho que não é seu pai, se

limita a reconhecer o recebimento.

Page 46: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em rede ad hoc sem fio • Quando um nó R designou um nó Q como seu ai, repassa mensagem ELEIÇÃO aos vizinhos imediatos, exceto Q.

• Aguarda que reconhecimentos cheguem antes de reconhecer e ELEIÇÃO recebida de Q. • Vizinhos que já tem pai respondem imediatamente a R. • Se todos os vizinhos já tem pai, R é um nó folha e pode

responder a Q rapidamente. • Resposta inclui informações (tempo de vida útil da bateria,

capacidades dos recursos)

Page 47: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em rede ad hoc sem fio • Q enviou mensagem ELEIÇÃO porque seu pai, P, havia enviado a ele.

• Quando Q reconhecer mensagem de P, Q passará o nó mais qualificado a P.

• O nó fonte saberá qual o melhor nó • Seleciona como líder •  Transmite decisão em broadcast

• Fig. 105.

Page 48: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em sistema de grande escala • Seleção de mais de um nó

• Ex.: Superpares

• Requisitos: • Nós normais devem ter baixa latência de acesso a

superpares • Superpares devem estar uniformemente distribuídos pela

rede de sobreposição • Deve haver uma porção definida de superpares em relação

ao número total de nós na rede de sobreposição • Cada superpar não deve precisar atender mais do que um

número fixo de nós normais

Page 49: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em sistema de grande escala • DHT: idéia básica é reservar uma fração do espaço de identificadores para superpares.

• Ex.: reservar os primeiros k bits da esquerda dos identificadores (de m bits).

• Se precisamos de N superpares, então os primeiros bits de qualquer chave podem ser usados para identificar esses nós.

Page 50: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em sistema de grande escala • Ex.: no. m=8, k=3. • Consultar chave p: nó responsável por p AND 11100000, que é tratado como superpar

• Cada nó id pode verificar se é um superpar: id AND 11100000 para ver se requisição é roteada para si.

Page 51: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Eleição em sistema de grande escala • Outra abordagem: baseada em posicionamento geográfico dos nós. • N fichas distribuídas para N nós • Cada nó só pode ter 1 ficha •  Ficha tem força de repulsão para outras • Nós devem saber da existência de outras fichas

•  Gossiping para disseminar força das fichas. •  Se nó descobre que força agindo sobre ele é maior que um

patamar, transfere ficha.

• Fig. 106.

Page 52: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência e replicação

Page 53: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência e replicação • Dados são replicados para aprimorar confiabilidade ou melhorar desempenho.

• Problema: manter réplicas consistentes. • Cópia é atualizada à assegurar que as outras também

sejam • Ex. confiabilidade: sistema de arquivos replicados

• Um cai, outro continua atendendo solicitações • Melhor proteção contra dados corrompidos •  3 cópias: toda operação de leitura e escrita feita em cada

cópia; confia na maioria.

Page 54: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência e replicação • Replicação para desempenho

•  Importante quando SD precisa ser ampliado em (1) quantidade e (2) em área.

•  (1) Número cada vez maior de processos precisa acessar dados de um único servidor à replicar

•  (2) Cópias de dados próximas do usuário diminui tempo de acesso à melhora desempenho à pode aumentar uso de banda. •  Métrica de eficiência pode ser diferente dependendo do ponto

de vista.

Page 55: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência e replicação • Cópias próximas ao usuário pode melhorar desempenho à resolve problema de escalabilidade.

• Manter cópias atualizadas pode requerer mais largura de banda. • Compromisso entre manter cópias atualizadas e uso de

banda da rede • Processo P que acessa uma réplica local N vezes por segundo; réplica atualizada M vezes por segundo.

• Se N << M (razão acesso/atualização) for muito baixa, muitas atualizações nunca serão usadas • Desperdício de banda

Page 56: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência e replicação •  Intuitivamente: cópias consistentes = cópias sempre iguais

• Leitura em qualquer cópia sempre retornará o mesmo resultado.

• Atualização em uma cópia à atualização em todas as cópias antes de qualquer operação subsequente • Atualização em todas as cópias como uma única operação

atômica à transação • Difícil concluir transação amplamente distribuída de forma

rápida. •  Sincronização global para decisão de sincronizar réplicas pode

ser muito cara.

Page 57: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência e replicação • Dilema:

•  problemas de escalabilidade podem ser amenizados por replicação e cache à melhor desempenho.

• Manter consistência pode ter desempenho ruim.

• Solução em muitos casos: relaxar restrições de consistência. • Evitar sincronização global (instantânea). • Preço: cópias que nem sempre são iguais em todos os

lugares. • Abrandamento da consistência depende de padrões de

acesso e atualização e da finalidade dos dados.

Page 58: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência centrada em dados • Consistência no contexto de operações de leitura/escrita em dados compartilhados • Memória compartilhada distribuída • Banco de dados distribuído • Sistema de arquivos distribuído

• Termo genérico: depósito de dados • Pode ser distribuído fisicamente por várias máquinas • Cada processo tem uma cópia local (ou próxima) do

depósito inteiro • Escrita propagada para outras cópias.

Page 59: MC714 - Instituto de Computação › ~bit › ensino › mc714_2s13 › ... · • Banco de dados replicado. • 2 cópias, mais próxima responde. • Custo de resposta mais rápida:

Prof. Luiz Fernando Bittencourt IC - UNICAMP

Consistência centrada em dados • Não há regra geral para abrandar consistência

• Depende muito da aplicação

• Pode-se definir três eixos independentes para definir inconsistências (Yu e Vahdat 2004). • Desvio numérico (absoluto ou relativo) • Desvio em idade • Desvio em relação à ordenação de operações de

atualização