sistemas distribuídos – capítulo 8 - aula...

35
1 Sistemas Distribuídos – Capítulo 8 - Aula 14 Aula de hoje Comunicação Confiável Cliente-Servidor Comunicação Confiável de Grupo Aula Passada Tolerância a Falhas Conceitos básicos Modelos de falha Redundância Resiliência de Processo

Upload: vothuan

Post on 03-Jan-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

1

Sistemas Distribuídos –Capítulo 8 - Aula 14

Aula de hojeComunicação Confiável Cliente-Servidor

Comunicação Confiável de Grupo

Aula PassadaTolerância a Falhas

Conceitos básicosModelos de falhaRedundância

Resiliência de Processo

Page 2: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

- Falhas não atingem somente processos, mas também a comunicação entre eles

● Um canal de comunicação pode exibir falhas por queda, omissão, temporização e arbitrárias

● Na prática, ao se “construir” canais de comunicação confiáveis, o foco está em mascarar falhas por queda e omissão

Page 3: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

- Comunicação ponto-a-ponto

● Quando um middleware de comunicação não é usado, a comunicação confiável em um SD pode ser estabelecida com a utilização de um protocolo de transporte confiável ex. TCP→

● TCP mascara falhas por omissão mensagens →perdidas reconhecimentos e retransmissões→

Page 4: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

- Comunicação ponto-a-ponto

● Falhas por queda não são mascaradas: conexão TCP é interropida abruptamente de modo que nenhuma msg possa ser transmitida pelo canal● Um SD pode mascarar tal falha, tentando uma nova

conexão, com o reenvio de uma requisição de conexão

Page 5: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

- Utilizando Middleware de Comunicação: RPC

● Objetivo da RPC é ocultar comunicação fazendo chamadas de procedimentos remotos parecerem chamadas locais

● Quando erros ocorrem, é difícil mascarar a diferença entre chamadas locais e remotas

● Vamos considerar algumas categorias de erros e possíveis soluções

Page 6: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

- Diferentes classses (1) Cliente não consegue localizar o servidor (2) A mensagem de requisição do cliente para o

servidor se perde (3) O servidor cai após receber uma requisição (4) A mensagem de resposta do servidor para o

cliente se perde (5) O cliente cai após enviar uma requisição

Page 7: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

- Cliente não consegue localizar o servidor Possíveis prolemas: (1) Servidores podem ter caído (2) Cliente pode ter sido compilado usando uma

versão de apêndice antiga

Solução: Ativar uma exceção acarreta em perda →da transparência

Page 8: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

Mensagens de requisição perdidas

Solução: Temporizador de espera para a mensagem de resposta servidor deverá reconhecer a →mensagem original da mensagem de retransmissão

Page 9: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

Quedas de servidor

Page 10: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

Mensagens de respostas perdidas Problema: cliente não sabe com certeza por que não

houve reposta. Requisição ou reposta que se perdeu ou servidor está lento?

No caso de requisição idempotente: operações que podem ser repetidas sem causar nenhum dano. e.x leitura de arquivos retransmissão pode ser feita sem →problemas a consistência do SD

Page 11: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável Cliente-Servidor

Mensagens de respostas perdidas E no caso de requisições idempotentes? (1) Estruturar todas as requisições como idempotentes (2) Abordagem TCP-like, onde o cliente designa um

número de sequência a cada requisição servidor →deve manter informações de cada cliente

Page 12: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de Grupo

Comunicação Multicast: mesagens são entregues a um grupo de processos

No entanto, a comunicação multicast é bem complicada!

Page 13: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de Grupo - Camadas de Transporte oferecem comunicação ponto-a-ponto confiável (TCP)

- Raro oferecer comunicação confiável a um conjunto de processosPossível solução: Estabelecer comunicações ponto-a-ponto entre os processosProblema: Desperdício de largura de banda de rede

Page 14: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de Grupo - O que é multicast confiável? Significa que uma mensagem enviada a um grupo de processos deve ser entregue a cada membro do grupo

O que ocorre se durante a comunicação um processo se juntar ao grupo? O que ocorre se um processo sair deste grupo?

Page 15: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de Grupo - Para apresentar soluções vamos considerar dois cenários: (1) Processos estáo funcionando corretamente e o grupo é estático (2) Processos falham!

Page 16: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de Grupo Cenário 1 Processos não falham e não se juntam ao grupo nem saem dele enquanto a comunicação está em curso

Multicast confiável Toda mensagem deve ser entregue a cada membro do grupo no momento em questão

Page 17: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSuposições (1) Consideremos o caso em que um único remetente queira enviar uma mensagem multicast a vários receptores. E.x: Algoritmo de Berkeley para sincronizar os relógios

(2) Rede de Comunicação não confiável: mensagem multicast pode se perder em algum ponto do caminho e ser entregue a alguns, mas não a todos os receptores

Page 18: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 1 – Cenário 1

Page 19: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 1 – Cenário 1

(1) Processo remetente designa um número de sequência a cada mensagem multicast(2) Mensagens são recebidas na ordem (3) Cada mensagem multicast é armazenada no remetente, em um buffer (4) Mensagem é mantida até receptores confirmem o recebimento(5) Retransmissão Reconhecimento negativo ou Timeout

Page 20: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 1 – Cenário 1 – Questões!

(1) Como reduzir o número de mensagens retornadas ao remetente? piggybacking?

(2) Como fazer a retransmissão? Ponto-a-ponto ou novamente multicast

(3) E a escalabilidade? Caso com N receptores, o remetente deve

estar preparado para aceitar no mínimo N reconhecimentos → IMPLOSÃO DE RETORNO

Page 21: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 2 – Cenário 1

(1) Receptores enviam mensagem de retorno somente para informar ao remetente a FALTA de uma mensagem(2) Retornar somente reconhecimentos negativos melhora a escalabilidade [Towsley et al 1997], mas não garante que implosões de retorno nunca acontecerão(3) Problema: Remetente será forçado a manter uma mensagem em seu buffer de histórico para “sempre” timeout para retirada da msg pode →levar ao caso onde uma requisição pode não ser efetivada!

Page 22: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 3 – Cenário 1 [Floyd et al, 1997]

(1) Objetivo principal: Reduzir mensagens de retorno (supressão de retorno)(2) Utiliza o protocolo de multicast confiável escalável (SRM)(3) Somente reconhecimentos negativos são devolvidos como realimentação. Aplicação decide como detectar a perda de uma mensagem(4) Ao reconhecer que está faltando uma mensagem, receptor envia o pedido da mensagem perdida, usando multicast, ao resto do grupo

Page 23: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 3 – Cenário 1 [Floyd et al, 1997]

(5) Utilizar realimentação multicast permite que um outro lmembro do grupo suprima seu reconhecimento (realimentação) - Suponha que vários receptores tenham percebido a falta da msg m - Cada um deles precisará retornar um reconhecimento negativo ao remetente S, para retransmissão de m - Se considerarmos que as retransmissões são enviadas ao grupo, basta uma única mensagem de requisição para que o pedido de retrasnmissão chegue até S

Page 24: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 3 – Cenário 1 [Floyd et al, 1997](5) Utilizar realimentação multicast permite que um outro membro do grupo suprima seu reconhecimento (realimentação) - Um receptor R que não recebeu a msg m escalona uma msg de realimentação com certo atraso aleatório - A requisição para retransmissão não é enviada até passar algum tempo aleatório - Se um requisição de m chegar a R, antes do timeout, R não enviará a msg de realimentação negativa - Espera-se que somente uma msg de pedido de retransmissão de m chegue a S

Page 25: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de Grupo

Page 26: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 3 – Cenário 1 [Floyd et al, 1997]

Aprimoramento: Permitir que um receptor tenha o papel de transmitir uma mensagem m, mesmo antes de a requisição de retransmissão chegar ao remetente original

Page 27: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 3 – Cenário 1 [Floyd et al, 1997]

Exemplo de aplicação: aplicações colaborativas, como a de whiteboard compartilhado.

Page 28: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 3 – Cenário 1 [Floyd et al, 1997]Problemas - Garantir que somente uma requisição de retransmissão chegue ao remetente S →temporizadores? - Interrupção dos processos os quais a msg já foi entregue separar os processos que não →receberam m em um grupo separado (Kasera et al – 1997) – gerenciamento dos grupos!- Reunir os processos em grupos que tendem a perder mensagens (Lui et al 1998)

Page 29: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoSolução 4 – Cenário 1 – Controle de Realimentação Hierárquico - Único remetente - Grupo é dividido em sub-grupos, organizados em árvore - Cada sub-grupo possui um coordenador que gerencia os pedidos de retransmissão - O coordenador possui um buffer para armazenar as msgs para atender pedidos dos membros do seu sub-grupoProblema: Manutenção da árvore

Page 30: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de Grupo

Page 31: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoCenário 2 - Suposição: Processos podem falhar! Deve-se chegar a um acordo sobre a real composição do grupo! - Objetivo: Uma msg será entregue a todos os processos ou a nenhum deles. Mensagens são entregues na mesma ordem a todos os processos

Atomicidade!→

Page 32: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoExemplo: Banco de Dados replicado - Banco de dados é construído como um grupo de processos, um processo para cada réplica - Operações de atualização são enviadas em multicast a todas as réplicas (multicast confiável na entrega destas operações!)Suponha que durante a execução de uma das atualizações de uma sequência, uma réplica caia

Page 33: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoExemplo: Banco de dados replicadoSe o sistema NÃO suporta multicast atômico - Problema!!!!!!!!!! Réplica se recupera: essencial que seja atualizada em relação as outras réplicas

Quais operações estão faltando e em que ordem devem ser executadas????

Page 34: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoExemplo: Banco de dados replicadoSe o sistema suporta multicast atômico - A operação de atualização que foi enviada a todas as réplicas um pouco antes de uma delas cair ou é executada em todas as réplicas não faltosas ou em nenhuma- A atualização é realizada se as réplicas restantes concordarem que a réplica que caiu não pertence mais ao grupo - Após a recuperação, a réplica é validada como sendo do grupo e recebe as atualizações

Page 35: Sistemas Distribuídos – Capítulo 8 - Aula 14leandro/ensino/MC714/1s2016/aulas/Comunicação... · Comunicação Confiável de Grupo Exemplo: Banco de dados replicado Se o sistema

Comunicação Confiável de GrupoExemplo: Banco de dados replicadoSe o sistema suporta multicast atômico - multicast atômico garante que processos não faltosos mantenham uma visão consistente do banco de dados e força a reconciliação quando uma réplica se recupera e se junta ao grupo novamente.