SlideShare uma empresa Scribd logo
1 de 81
Baixar para ler offline
TOLERÂNCIAAFALHAS
VICTOR HAZIN DA ROCHA
CONCEITOSBÁSICOS
▸ Técnica fundamental para tratamento de falhas: redundância;
▸ Tolerância a falhas está relacionada à confiabilidade (dependability)
de um sistema;
▸ Requisitos para confiabilidade:
▸ Disponibilidade (availability)
▸ Confiabilidade (reliability)
▸ Segurança (safety)
▸ Capacidade de manutenção (maintainability)
DISPONIBILIDADE(AVAILABILITY)
▸ Indica que um sistema está pronto para uso imediato;
▸ Refere-se à probabilidade de que sistema está operando
corretamente num dado instante e está disponível para
executar suas funções;
▸ Alta disponibilidade indica que sistema muito
provavelmente estará funcionando num dado instante;
CONFIABILIDADE(RELIABILITY)
▸ Refere-se à propriedade que um sistema irá operar
continuamente sem falha;
▸ É definida em termos de um intervalo de tempo, ao invés
de num dado instante como ocorre com a disponibilidade;
▸ Sistema confiável é aquele que muito provavelmente irá
operar sem interrupção durante um período relativamente
longo de tempo;
SEGURANÇA(SAFETY)
▸ Refere-se às consequências da falha de um sistema em
operar corretamente;
▸ Sistemas críticos devem prover alto grau de segurança;
CAPACIDADEDEMANUTENÇÃO(MAINTAINABILITY)
▸ Indica a facilidade para que um sistema que falhou seja
reparado;
▸ Sistema com alta capacidade de manutenção
normalmente também apresenta alto grau de
disponibilidade, especialmente se falhas podem ser
detectadas e reparadas automaticamente;
DISPONIBILIDADEXCONFIABILIDADE
▸ Sistema que falha por 1 milissegundo a cada hora:
▸ Disponibilidade alta, acima de 99.9999 %;
▸ Confiabilidade baixa;
▸ Sistema que nunca cai (crashes) mas é desligado por 2
semanas no ano:
▸ Alta confiabilidade;
▸ Apenas 96 % de disponibilidade;
CONCEITOSBÁSICOS
▸ Defeito: se um sistema não pode cumprir suas promessas,
apresenta defeito.
▸ Ex.: Não consegue garantir as consistências prometidas.
▸ Erro: parte do estado de um sistema causado por uma
falha.
▸ Ex.: Pacotes danificados.
▸ Falha: é a causa de um erro.
▸ Ex.: Um meio de transmissão errado ou ruim pode
danificar pacotes.
CONCEITOSBÁSICOS
▸ Sistema falha quando não pode manter seus
compromissos;
▸ Um erro é uma parte do estado de um sistema que pode
levar a uma falha;
▸ Causa do erro é chamada de falta(fault);
▸ A construção de sistemas confiáveis (dependable) está
relacionada ao controle das faltas (faults);
▸ Faltas podem ser prevenidas, removidas e previstas.
CONCEITOSBÁSICOS
▸ Sistemas de uma máquina (não distribuídos): uma falha é
quase sempre total;
▸ Sistemas distribuídos: pode ocorrer uma falha parcial,
quando um componente do sistema falha.
▸ Objetivo: recuperar automaticamente de falhas parciais
sem afetar seriamente o desempenho global
TOLERÂNCIAAFALTAS(FAULTTOLERANCE)
▸ Significa que um sistema pode prover seus serviços
mesmo na presença de faltas;
▸ NÃO significa que falhas não vão ocorrer!!!
TIPOSDEFALHAS:
▸ Transiente:
▸ Ocorre uma vez e desaparece;
▸ Intermitente:
▸ Ocorre, para por um período indeterminado, reaparece, e
assim por diante;
▸ Permanente:
▸ Continua a existir até que o componente faltoso seja
substituído;
COMOTRATARFALTAS:
▸ Fault prevention:
▸ Prevenir a ocorrência de faltas
▸ Fault tolerance:
▸ Construir componente que possa mascarar a presença de faltas;
▸ Fault removal:
▸ Reduzir a presença, o número e a gravidade (seriousness) de
faltas;
▸ Fault forecasting:
▸ Estimar a situação atual e futura de faltas e as consequências de
suas ocorrências;
MODELOSDEFALHA
▸ Para melhor identificar as falhas, foram desenvolvidos
diversos esquemas de classificação, entre eles, o quadro
abaixo:
MASCARAMENTODEFALHAPORREDUNDÂNCIA
▸ Para o sistema ser tolerante a falhas, as ocorrências destas
devem ser ocultas de outros processos e dos usuários;
▸ A técnica fundamental para mascarar falhas é usar
redundância;
MASCARAMENTODEFALHAPORREDUNDÂNCIA
▸ Redundância de informação:
▸ bits extras para recuperação de pacotes (Hamming);
▸ Redundância de tempo:
▸ executar novamente uma ação, se for preciso;
▸ Redundância física:
▸ adicionar equipamentos ou processos extras para
possibilitar tolerância a perda ou mal funcionamento de
alguns componentes;
MASCARAMENTODEFALHAPORREDUNDÂNCIA
RESILIÊNCIADEPROCESSO
RESILIÊNCIADEPROCESSO
▸ Resiliência:
▸ The ability to recover quickly from illness, change, or
misfortune;
▸ The property of a material that enables it to resume its
original shape or position after being bent, stretched, or
compressed; elasticity;
▸ Proteção contra falha de processos: obtida com
replicação de processos em grupos;
RESILIÊNCIADEPROCESSO
▸ Diversos processos idênticos são organizados num grupo;
▸ Quando uma mensagem é enviada para um grupo, todos
os processos membros deste grupo a recebem;
▸ Se um processo no grupo falha, outro pode assumir;
▸ Grupos podem ser dinâmicos, criados e destruídos por
demanda;
RESILIÊNCIADEPROCESSO
▸ Processos podem entrar e sair de grupos em tempo de
execução e podem pertencer a vários grupos simultaneamente;
▸ Mecanismos devem existir para gerenciamento de grupos e
processos;
▸ Grupos permitem tratar com vários processos usando uma
abstração;
▸ Mensagens podem ser enviadas para grupos sem saber
informações sobre;
QUESTÕESDEPROJETODEGRUPOS
▸ A abordagem fundamental para tolerar um processo faltoso
é organizar vários processos idênticos em um grupo.
▸ Quando uma mensagem é enviada a um grupo, todos
membros do grupo a recebem;
▸ Se um processo falhar, espera-se que algum outro se
encarregue da mensagem em seu lugar;
▸ Grupos podem ser dinâmicos;
▸ A finalidade de introduzir grupos é permitir que
processos tratem conjuntos de processos como uma
única abstração;
GRUPOSSIMPLES(FLATGROUP)
▸ Todos processos são iguais dentro de um grupo;
▸ Ninguém manda, todas decisões são coletivas;
▸ Simétrico, sem um ponto único de falha;
▸ Tomada de decisão é mais complexa;
▸ Entrada e saída de membros no grupo feitas através de
mensagens multicast (confiáveis); pode ocorrer fail-stop;
GRUPOSHIERÁRQUICOS:(HIERARCHICALGROUP)
▸ Possui coordenador(es) e operários;
▸ Comunicação ocorre via coordenador;
▸ Não completamente tolerante a falhas e escalável, mas de
fácil implementação;
▸ Servidor de grupo (group server) gerencia entrada e saída
de membros no grupo;
GRUPOSSIMPLESXGRUPOSHIERÁRQUICOS
RESILIÊNCIADEPROCESSO
▸ Processos podem ser replicados e organizados num
grupo(tolerante a faltas) para substituir um processo único
(vulnerável);
▸ Existência de processos idênticos num grupo permite
mascarar a falha de um ou mais processos nesse grupo;
▸ Replicação pode ocorrer através de protocolos baseados
em primário (primary-based) ou com escrita
replicada(replicated-write);
RESILIÊNCIADEPROCESSO
▸ Primary-based: grupo é organizado de forma hierárquica e
processo primário coordena todas as operações de escrita;
▸ Se primário falha, processos backup executam
algoritmo de eleição para escolha de um novo primário;
▸ Operação na forma de replicação ativa, ou de protocolos
baseados em quórum (quorum-based);
▸ Processos idênticos operam em organização flat com
coordenação distribuída;
MASCARAMENTODEFALHAEREPLICAÇÃO
▸ Questão: quanta replicação é necessária?
▸ Sistema é dito k fault tolerant(k-tolerante a faltas) se pode
sobreviver a faltas em k componentes e ainda cumprir suas
especificações;
▸ Se componentes (processos) falham silenciosamente, k+1
processos remanescentes são suficientes para prover k-
tolerância a faltas;
▸ Nesse caso, se k processos falharem, processo restante provê
a resposta desejada
ACORDOEMSISTEMASCOMFALHAS
▸ Organizar processos replicados em um grupo ajuda a
aumentar a tolerância a falha. Existem várias situações:
▸ Sistemas síncronos vs. assíncronos;
▸ Atraso de comunicação limitado ou não;
▸ Entrega de mensagens ordenada ou não;
▸ Transmissão de mensagens unicast ou multicast;
ACORDOEMSISTEMASCOMFALHAS
ACORDOEMSISTEMASCOMFALHAS
▸ Esse problema, estudado pela primeira vez por Lamport
(1982), é também conhecido como problema do acordo
bizantino, consideramos problemas assíncronos,
mensagens unicast, ordenação preservada e atraso
limitado.
ACORDOEMSISTEMASCOMFALHAS
▸ Em um sistema com k processos faltosos pode-se
conseguir um acordo somente se estiverem presentes
2k+1 processos funcionando corretamente, para um total
de 3k+1 (ou seja, mínimo mais que 2/3).
DETECÇÃODEFALHA
▸ Mascaramento de falha requer sua identificação prévia;
▸ Membros do grupo que não têm falta devem ser capazes
de detectar quem ainda é membro do grupo e quem
apresentou falta e deve ser removido;
▸ Mecanismos:
▸ Envio de msg: “are you alive?” entre os nós, e espera
por resposta – ping ativo;
▸ Espera passiva até que mensagens cheguem dos
diferentes processos (viável apenas se há comunicação
suficiente (frequente) entre os nós;
DETECÇÃODEFALHA
▸ Mecanismo de timeout é usado para verificar se processo tem
falta;
▸ Problema: ausência de resposta pode indicar erroneamente
que processo tem falta;
▸ Implementação pode considerar mecanismo de gossiping,
em que nó propaga informações do seu estado aos vizinhos;
▸ Necessidade de distinguir falha da rede e falha de um
processo;
DETECÇÃODEFALHA
▸ Detecção de faltas também pode ser feita como um efeito
colateral do uso de gossiping para troca de informações
entre os vizinhos, propagando informações sobre os
estados dos nós;
▸ Eventualmente, todo processo terá informações
suficientes para decidir sobre o estado dos demais e se há
processos com falta;
COMUNICAÇÃOCONFIÁVEL
CLIENTE-SERVIDOR
COMUNICAÇÃOPONTO-A-PONTO
▸ Tolerância a falta normalmente concentra-se na detecção
de falta de processo;
▸ Faltas na comunicação também devem ser consideradas;
▸ Modelos de falha também se aplicam aos canais de
comunicação: crash, omissão, timing e arbitrárias;
▸ Construção de canais de comunicação normalmente foca
no mascaramento de falhas do tipo crashe omissões;
COMUNICAÇÃOPONTO-A-PONTO
▸ Falhas arbitrárias podem ocorrer na forma de mensagens
duplicadas, resultantes de armazenamento temporário e
retransmissões;
▸ Na comunicação ponto-a-ponto, confiabilidade é obtida
com o uso de protocolos de transporte confiável, como
TCP;
▸ Mensagens de reconhecimento e retransmissões
mascaram omissões;
▸ Falhas na conexão TCP podem ser tratadas permitindo
que SD tente estabelecer uma nova conexão;
COMUNICAÇÃOPONTO-A-PONTO
▸ A forma mais adotada para adquirir esta transparência é
através do uso de RPC;
▸ RPCs visam esconder detalhes da comunicação, tornando
chamadas remotas semelhantes às chamadas locais;
FALHASEMRPC
‣ Falhas possíveis:
‣ Cliente não consegue localizar o servidor;
‣ Mensagem do cliente não chega ao servidor (perdida);
‣ Servidor cai (crashes) depois de receber pedido;
‣ Resposta do servidor ao cliente é perdida;
‣ Cliente cai (crashes) depois de enviar pedido;
FALHASEMRPC
▸ Cliente não consegue localizar o servidor:
▸ Servidores todos podem ter caído (down);
▸ Cliente pode estar usando versão stub antiga
incompatível com versão atual do servidor;
▸ Erro pode gerar exceção (exception– Java, ou sinal
específico – C);
▸ Nem toda linguagem tem suporte;
FALHASEMRPC
▸ Mensagem do cliente não chega ao servidor (perdida):
▸ Pode ser tratada com timer mantido pelo SO ou pelo
stub do cliente;
▸ Expiração de timeout antes de resposta ou
reconhecimento gera retransmissão;
▸ Servidor pode precisar diferenciar retransmissões de
novas chamadas;
FALHASEMRPC
▸ Servidor cai (crashes) depois de receber pedido:
▸ Possíveis tratamentos dependem do que é esperado
pelo cliente:
a. Semântica at-least-once (ao menos uma vez): sistema cliente
continua tentando (retransmitindo pedido) até uma resposta seja
recebida. Nesse caso, RPC terá sido executada ao menos1vez;
b. Semântica at-most-once (no máximo uma vez): cliente desiste
imediatamente e retorna indicação de falha. RPC terá sido
executada no máximo 1 vez, mas possivelmente nenhuma;
c. Semântica exactly once (exatamente uma vez);
FALHASEMRPC
▸ Servidor cai (crashes) depois de receber pedido;
▸ Quedas de Servidor – situações possíveis na ocorrência
de uma queda do servidor.
FALHASEMRPC
▸ Resposta do servidor ao cliente é perdida;
▸ Ausência de resposta pode gerar retransmissões depois
da expiração de temporizadores
▸ Problema: como saber se servidor recebeu pedido (e
realizou serviço)?
▸ Solução: tentar tornar operações idempotentes
(repetíveis sem efeitos indesejados)
FALHASEMRPC
▸ Resposta do servidor ao cliente é perdida;
▸ Para operações não idempotentes pode-se atribuir
número de sequência para requisições de cada cliente;
▸ Números permitem ao servidor diferenciar pedido de
retransmissões. Servidor tem que manter informações
de estado;
▸ Mensagens podem conter (bit) identificador de
retransmissão: novos pedidos podem ser realizados
imediatamente. Retransmissões requerem tratamento;
FALHASEMRPC
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Problema: servidor está realizando solicitação e
mantendo recursos por nada;
▸ Computação órfã gera desperdício de recursos de
processamento;
▸ Pode haver bloqueio de recursos;
FALHASEMRPC
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Soluções:
▸ Client stub salva registro (log) em disco (persistente)
antes de realizar chamada RPC. Depois de um reinício
(reboot) computação órfã é explicitamente encerrada
(or rolled back): orphan extermination
▸ Possibilidade de surgimento de grandorphans, e atrasos para
acesso ao disco antes de RPCs tornam proposta não
interessante
FALHASEMRPC
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Soluções:
▸ Tempo é dividido em épocas; ao reiniciar, cliente
divulga uma mensagem às demais máquinas
declarando nova época. Ao receber mensagem, nó
remove todas as computações anteriores daquele
cliente. Falha na rede pode gerar órfãos ativos.
Estratégia conhecida como reencarnação
(reincarnation).
FALHASEMRPC
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Soluções:
▸ Gentle reincarnation: ao receber mensagem de nova
época, servidor tenta localizar todos os clientes remotos
associados. Na ausência de comunicação, computações
são encerradas.
▸ Expiration: cada RPC recebe um tempo (T) para
conclusão. Se não for concluída nesse tempo, RPC deve
negociar novo prazo. Em caso de reiniciação, servidor
pode encerrar requisições órfãs depois de tempo T.
FALHASEMRPC
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Problemas:
▸ Encerramento das computações órfãs pode ter
consequência imprevistas
▸ Requisições podem ter bloqueado recursos
▸ Requisições podem ter iniciado outras requisições...
COMUNICAÇÃOCONFIÁVELDE
GRUPO
MULTICASTCONFIÁVEL(RELIABLEMULTICASTING)
▸ Multicast confiável é importante para garantir que
mensagens sejam entregues a todos os processos
replicados num grupo;
▸ Protocolos de transporte oferecem comunicação confiável
apenas ponto-a-ponto;
▸ Possível abordagem para multicast confiável consiste em
criar-se vários canais unicast, um para cada receptor:
solução ineficiente;
Comunicação Confiável de G
MULTICASTCONFIÁVEL(RELIABLEMULTICASTING)
▸ Situações envolvem diferentes aspectos se processos
membros do grupo podem variar, saindo por falha, ou
ingressando no grupo, durante transmissão de
mensagem;
▸ Como garantir que mensagem seja entregue aos
processos do grupo apenas se todos receberem?
▸ Transmissor associa número a cada mensagem
transmitida;
Comunicação Confiável de G
MULTICASTCONFIÁVEL(RELIABLEMULTICASTING)
▸ Mensagens são transmitidas em sequência;
▸ Mensagens transmitidas são mantidas em buffer no
transmissor até que todos os destinatários confirmem
recebimento;
▸ Receptores conseguem identificar mensagens fora de
ordem e geram reconhecimento negativo (negative
acknowledgment) solicitando retransmissão;
Comunicação Confiável de G
MULTICASTCONFIÁVEL(RELIABLEMULTICASTING)
▸ Transmissor também pode manter temporizador que
indica necessidade de retransmissão em caso de ausência
de resposta;
▸ Reconhecimentos podem ser enviados “de carona” em
mensagens;
Comunicação Confiável de G
MULTICASTCONFIÁVEL(RELIABLEMULTICASTING)
Comunicação Confiável de G
MULTICASTCONFIÁVEL(RELIABLEMULTICASTING)
▸ Abordagem usando reconhecimento não é adequada para
grande número de receptores (não escalável);
▸ Um problema apresentado é a implosão de retorno, que pode
lotar o remetente com mensagens de confirmação de
recebimento;
▸ Solução: Não confirmar recebimento, mas apenas devolver
respostas quando detectar faltas.
▸ Gera novo problema: Quando remover mensagem enviada do
buffer?
▸ Quando fica cheio, mas pode resultar em uma retransmissão não ser honrada!
▸ Implosões de retorno ainda podem acontecer!
Comunicação Confiável de G
CONTROLEDERECONHECIMENTO(FEEDBACK)NÃOHIERÁRQUICO
▸ Proposta: Scalable Reliable Multicasting (SRM);
▸ Receptores geram notificações apenas para mensagens
não recebidas;
▸ Identificação de mensagem não recebida é deixada a
cargo da aplicação;
▸ Ao detectar falha, receptor notifica os demais processos
no grupo via multicast;
Comunicação Confiável de G
CONTROLEDERECONHECIMENTO(FEEDBACK)NÃOHIERÁRQUICO
▸ Proposta: Scalable Reliable Multicasting (SRM);
▸ Outros membros do grupo com falha não precisam
gerar notificações também;
▸ Supondo que m processos podem ter falha de
recebimento, uso de multicast gera economia de
transmissões;
▸ Atraso aleatório é introduzido antes do envio da
mensagem de feedback;
Comunicação Confiável de G
CONTROLEDERECONHECIMENTO(FEEDBACK)NÃOHIERÁRQUICO
▸ Proposta: Scalable Reliable Multicasting (SRM);
▸ Algoritmo tem boa escalabilidade, mas pode fazer com
que processos tenham que tratar transmissões de
mensagens já recebidas;
▸ Possibilidade de criação de sub-grupos; requer
gerenciamento eficiente de grupos;
Comunicação Confiável de G
CONTROLEDERECONHECIMENTO(FEEDBACK)NÃOHIERÁRQUICO
Comunicação Confiável de G
CONTROLEDERECONHECIMENTO(FEEDBACK)HIERÁRQUICO
▸ Escalabilidade no envio de mensagens para grandes
grupos requer abordagem hierárquica;
▸ Receptores são particionados em subgrupos e
organizados na forma de uma árvore;
▸ Dentro de cada subgrupo, qualquer mecanismo de
entrega, adequado para pequenos grupos, pode ser
usado;
Comunicação Confiável de G
CONTROLEDERECONHECIMENTO(FEEDBACK)HIERÁRQUICO
▸ Cada subgrupo determina um coordenador local, que
passa a ser responsável pelos envios de pedidos de
retransmissão deste subgrupo
▸ Coordenador local tem seu próprio buffer de histórico de
transmissões.
▸ Mensagens recebidas por todos no subgrupo podem ser
descartadas.
▸ Questão: dificuldade para construção da árvore.
▸ Normalmente, roteador multicast no grupo é usado como
coordenador
Comunicação Confiável de G
CONTROLEDERECONHECIMENTO(FEEDBACK)HIERÁRQUICO
Comunicação Confiável de G
MULTICASTATÔMICO
▸ Comunicação multicast confiável implica que mensagens
sejam entregues a todos os processos ou a nenhum
▸ Mensagens também devem ser entregues na mesma
ordem a todos os processos
▸ Considerando que operações são replicadas em vários
processos de um grupo, aplicação das operações
depende de processos estarem em acordo sobre quem
participa do grupo (está ativo), de forma que ou todos
realizem as operações, ou nenhum
Comunicação Confiável de G
MULTICASTATÔMICO–SINCRONIAVIRTUAL
Comunicação Confiável de G
MULTICASTATÔMICO–SINCRONIAVIRTUAL
▸ Há apenas uma situação em que entrega de mensagem
pode falhar: quando participação no grupo muda como
resultado do emissor da mensagem m quebrar(crash)
▸ Nesse caso, deve ser entregue a cada um dos processos
restantes, ou pode ser ignorada por todos os membros do
grupo, como se o emissor tivesse quebrado antes do
envio
▸ Multicast confiável com essas características é
denominado virtualmente síncrono(virtually synchronous)
Comunicação Confiável de G
MULTICASTATÔMICO–SINCRONIAVIRTUAL
Comunicação Confiável de G
ORDENAÇÃODEMENSAGENS
▸ São distinguidas quatro ordenações diferentes:
▸ Multicasts não ordenados;
▸ Multicasts ordenados em FIFO;
▸ Multicasts ordenados por causalidade;
▸ Multicasts totalmente ordenados;
Comunicação Confiável de G
ORDENAÇÃODEMENSAGENS
▸ Multicast confiável não ordenado é um multicast
virtualmente síncrono sem garantias sobre a ordem em
que mensagens recebidas são entregues aos diferentes
processos
▸ Com multicasts ordenados em FIFO, camada de
comunicação deve entregar as mensagens aos processos
na mesma ordem em que foram enviadas
Comunicação Confiável de G
ORDENAÇÃODEMENSAGENS
▸ Multicast confiáveis ordenados por causalidade entregam
mensagens de forma que potenciais causalidades entre
mensagens diferentes é preservada
▸ Com multicasts totalmente ordenados, independente de
ordenações entre as mensagens, todos os processos as
recebem na mesma ordem
Comunicação Confiável de G
ORDENAÇÃODEMENSAGENS
▸ Multicasts não ordenados;
▸ Multicasts ordenados em FIFO
Comunicação Confiável de G
ORDENAÇÃODEMENSAGENS
▸ A entrega totalmente ordenada é aplicada em adição às
três primeiras, e significa que, independente da ordem
aplicada, a ordem de entrega deve ser a mesma em todos
os membros do grupo.
▸ Multicasts que apresentam essa propriedade são
denominados multicasts atômicos.
Comunicação Confiável de G
ORDENAÇÃODEMENSAGENS
Comunicação Confiável de G
RECUPERAÇÃO
RECUPERAÇÃO
▸ Ocorrida uma falha, é necessário não apenas identificá-la,
mas recuperar-se da mesma e voltar para um estado
correto.
▸ Essencialmente existem 2 maneiras de se recuperar:
▸ Recuperação retroativa – volta para um estado anterior à
falha;
▸ Recuperação para a frente – tenta levar o sistema para um
novo estado correto para que possa continuar a executar.
GARANTIADEESTADOESTÁVEL
PONTOSDEVERIFICAÇÃO
▸ Independentes:
▸ Coordenados: usam, por exemplo, bloqueio em duas fases
RECUPERAÇÃO-CARACTERIZAÇÃODEESQUEMASDEREGISTRODEMENSAGENS
REFERÊNCIAS
▸ Cap 8 Tanenbaum e van Steen - Sistemas Distribuídos:
princípios e paradigmas

Mais conteúdo relacionado

Mais procurados

Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open SourceDiogo Silva
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualizaçãocamila_seixas
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Pepe Rocker
 
Aula 19 instalação de drivers de dispositivos
Aula 19   instalação de drivers de dispositivosAula 19   instalação de drivers de dispositivos
Aula 19 instalação de drivers de dispositivosMarcos Basilio
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisAdir Kuhn
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Leinylson Fontinele
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoAdriano Teixeira de Souza
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidorSandu Postolachi
 
Segurança dos Sistemas Operativos
Segurança dos Sistemas OperativosSegurança dos Sistemas Operativos
Segurança dos Sistemas OperativosPedro Marmelo
 
Servidores Web
Servidores Web Servidores Web
Servidores Web bastosluis
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Leinylson Fontinele
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisAbnel Junior
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Luis Ferreira
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosMessias Batista
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10ºteacherpereira
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaVictor Hazin da Rocha
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de DadosIorgama Porcely
 
Backups e restauração de dados
Backups e restauração de dadosBackups e restauração de dados
Backups e restauração de dadoselliando dias
 

Mais procurados (20)

Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open Source
 
Aula 1: Virtualização
Aula 1: VirtualizaçãoAula 1: Virtualização
Aula 1: Virtualização
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)
 
Aula 19 instalação de drivers de dispositivos
Aula 19   instalação de drivers de dispositivosAula 19   instalação de drivers de dispositivos
Aula 19 instalação de drivers de dispositivos
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
Sistemas Operacionais - Aula 04 - Prática 1 - (SOSim)
 
Sistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de ProjetoSistemas Distribuídos - Aspectos de Projeto
Sistemas Distribuídos - Aspectos de Projeto
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
Segurança dos Sistemas Operativos
Segurança dos Sistemas OperativosSegurança dos Sistemas Operativos
Segurança dos Sistemas Operativos
 
Servidores Web
Servidores Web Servidores Web
Servidores Web
 
Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)Sistemas Operacionais - Aula 05 (Concorrência)
Sistemas Operacionais - Aula 05 (Concorrência)
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Aula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - ProcessosAula04 Sistemas Distribuídos - Processos
Aula04 Sistemas Distribuídos - Processos
 
Sistemas operativos 10º
Sistemas operativos 10ºSistemas operativos 10º
Sistemas operativos 10º
 
Aula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação IndiretaAula de Sistemas Distribuídos - Comunicação Indireta
Aula de Sistemas Distribuídos - Comunicação Indireta
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
 
Backups e restauração de dados
Backups e restauração de dadosBackups e restauração de dados
Backups e restauração de dados
 

Semelhante a Tolerância a falhas em sistemas distribuídos

aula06-toleranciaafalhas-170921182607.pptx
aula06-toleranciaafalhas-170921182607.pptxaula06-toleranciaafalhas-170921182607.pptx
aula06-toleranciaafalhas-170921182607.pptxcasa46
 
Tolerancia a falhas sistema distribuído .pdf
Tolerancia a falhas sistema distribuído .pdfTolerancia a falhas sistema distribuído .pdf
Tolerancia a falhas sistema distribuído .pdfHurgelNeto
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Evandro Júnior
 
Es5 qualidade
Es5 qualidadeEs5 qualidade
Es5 qualidadeluacal
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas DistribuídosRoberto Aragy
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisAbadia Cardoso
 

Semelhante a Tolerância a falhas em sistemas distribuídos (7)

aula06-toleranciaafalhas-170921182607.pptx
aula06-toleranciaafalhas-170921182607.pptxaula06-toleranciaafalhas-170921182607.pptx
aula06-toleranciaafalhas-170921182607.pptx
 
Tolerancia a falhas sistema distribuído .pdf
Tolerancia a falhas sistema distribuído .pdfTolerancia a falhas sistema distribuído .pdf
Tolerancia a falhas sistema distribuído .pdf
 
Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)Aula 3 (alta disponibilidade)
Aula 3 (alta disponibilidade)
 
Es5 qualidade
Es5 qualidadeEs5 qualidade
Es5 qualidade
 
Sistemas Distribuídos
Sistemas DistribuídosSistemas Distribuídos
Sistemas Distribuídos
 
SISTEMA SD
SISTEMA SDSISTEMA SD
SISTEMA SD
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 

Tolerância a falhas em sistemas distribuídos

  • 2. CONCEITOSBÁSICOS ▸ Técnica fundamental para tratamento de falhas: redundância; ▸ Tolerância a falhas está relacionada à confiabilidade (dependability) de um sistema; ▸ Requisitos para confiabilidade: ▸ Disponibilidade (availability) ▸ Confiabilidade (reliability) ▸ Segurança (safety) ▸ Capacidade de manutenção (maintainability)
  • 3. DISPONIBILIDADE(AVAILABILITY) ▸ Indica que um sistema está pronto para uso imediato; ▸ Refere-se à probabilidade de que sistema está operando corretamente num dado instante e está disponível para executar suas funções; ▸ Alta disponibilidade indica que sistema muito provavelmente estará funcionando num dado instante;
  • 4. CONFIABILIDADE(RELIABILITY) ▸ Refere-se à propriedade que um sistema irá operar continuamente sem falha; ▸ É definida em termos de um intervalo de tempo, ao invés de num dado instante como ocorre com a disponibilidade; ▸ Sistema confiável é aquele que muito provavelmente irá operar sem interrupção durante um período relativamente longo de tempo;
  • 5. SEGURANÇA(SAFETY) ▸ Refere-se às consequências da falha de um sistema em operar corretamente; ▸ Sistemas críticos devem prover alto grau de segurança;
  • 6. CAPACIDADEDEMANUTENÇÃO(MAINTAINABILITY) ▸ Indica a facilidade para que um sistema que falhou seja reparado; ▸ Sistema com alta capacidade de manutenção normalmente também apresenta alto grau de disponibilidade, especialmente se falhas podem ser detectadas e reparadas automaticamente;
  • 7. DISPONIBILIDADEXCONFIABILIDADE ▸ Sistema que falha por 1 milissegundo a cada hora: ▸ Disponibilidade alta, acima de 99.9999 %; ▸ Confiabilidade baixa; ▸ Sistema que nunca cai (crashes) mas é desligado por 2 semanas no ano: ▸ Alta confiabilidade; ▸ Apenas 96 % de disponibilidade;
  • 8. CONCEITOSBÁSICOS ▸ Defeito: se um sistema não pode cumprir suas promessas, apresenta defeito. ▸ Ex.: Não consegue garantir as consistências prometidas. ▸ Erro: parte do estado de um sistema causado por uma falha. ▸ Ex.: Pacotes danificados. ▸ Falha: é a causa de um erro. ▸ Ex.: Um meio de transmissão errado ou ruim pode danificar pacotes.
  • 9. CONCEITOSBÁSICOS ▸ Sistema falha quando não pode manter seus compromissos; ▸ Um erro é uma parte do estado de um sistema que pode levar a uma falha; ▸ Causa do erro é chamada de falta(fault); ▸ A construção de sistemas confiáveis (dependable) está relacionada ao controle das faltas (faults); ▸ Faltas podem ser prevenidas, removidas e previstas.
  • 10. CONCEITOSBÁSICOS ▸ Sistemas de uma máquina (não distribuídos): uma falha é quase sempre total; ▸ Sistemas distribuídos: pode ocorrer uma falha parcial, quando um componente do sistema falha. ▸ Objetivo: recuperar automaticamente de falhas parciais sem afetar seriamente o desempenho global
  • 11. TOLERÂNCIAAFALTAS(FAULTTOLERANCE) ▸ Significa que um sistema pode prover seus serviços mesmo na presença de faltas; ▸ NÃO significa que falhas não vão ocorrer!!!
  • 12. TIPOSDEFALHAS: ▸ Transiente: ▸ Ocorre uma vez e desaparece; ▸ Intermitente: ▸ Ocorre, para por um período indeterminado, reaparece, e assim por diante; ▸ Permanente: ▸ Continua a existir até que o componente faltoso seja substituído;
  • 13. COMOTRATARFALTAS: ▸ Fault prevention: ▸ Prevenir a ocorrência de faltas ▸ Fault tolerance: ▸ Construir componente que possa mascarar a presença de faltas; ▸ Fault removal: ▸ Reduzir a presença, o número e a gravidade (seriousness) de faltas; ▸ Fault forecasting: ▸ Estimar a situação atual e futura de faltas e as consequências de suas ocorrências;
  • 14. MODELOSDEFALHA ▸ Para melhor identificar as falhas, foram desenvolvidos diversos esquemas de classificação, entre eles, o quadro abaixo:
  • 15. MASCARAMENTODEFALHAPORREDUNDÂNCIA ▸ Para o sistema ser tolerante a falhas, as ocorrências destas devem ser ocultas de outros processos e dos usuários; ▸ A técnica fundamental para mascarar falhas é usar redundância;
  • 16. MASCARAMENTODEFALHAPORREDUNDÂNCIA ▸ Redundância de informação: ▸ bits extras para recuperação de pacotes (Hamming); ▸ Redundância de tempo: ▸ executar novamente uma ação, se for preciso; ▸ Redundância física: ▸ adicionar equipamentos ou processos extras para possibilitar tolerância a perda ou mal funcionamento de alguns componentes;
  • 19. RESILIÊNCIADEPROCESSO ▸ Resiliência: ▸ The ability to recover quickly from illness, change, or misfortune; ▸ The property of a material that enables it to resume its original shape or position after being bent, stretched, or compressed; elasticity; ▸ Proteção contra falha de processos: obtida com replicação de processos em grupos;
  • 20. RESILIÊNCIADEPROCESSO ▸ Diversos processos idênticos são organizados num grupo; ▸ Quando uma mensagem é enviada para um grupo, todos os processos membros deste grupo a recebem; ▸ Se um processo no grupo falha, outro pode assumir; ▸ Grupos podem ser dinâmicos, criados e destruídos por demanda;
  • 21. RESILIÊNCIADEPROCESSO ▸ Processos podem entrar e sair de grupos em tempo de execução e podem pertencer a vários grupos simultaneamente; ▸ Mecanismos devem existir para gerenciamento de grupos e processos; ▸ Grupos permitem tratar com vários processos usando uma abstração; ▸ Mensagens podem ser enviadas para grupos sem saber informações sobre;
  • 22. QUESTÕESDEPROJETODEGRUPOS ▸ A abordagem fundamental para tolerar um processo faltoso é organizar vários processos idênticos em um grupo. ▸ Quando uma mensagem é enviada a um grupo, todos membros do grupo a recebem; ▸ Se um processo falhar, espera-se que algum outro se encarregue da mensagem em seu lugar; ▸ Grupos podem ser dinâmicos; ▸ A finalidade de introduzir grupos é permitir que processos tratem conjuntos de processos como uma única abstração;
  • 23. GRUPOSSIMPLES(FLATGROUP) ▸ Todos processos são iguais dentro de um grupo; ▸ Ninguém manda, todas decisões são coletivas; ▸ Simétrico, sem um ponto único de falha; ▸ Tomada de decisão é mais complexa; ▸ Entrada e saída de membros no grupo feitas através de mensagens multicast (confiáveis); pode ocorrer fail-stop;
  • 24. GRUPOSHIERÁRQUICOS:(HIERARCHICALGROUP) ▸ Possui coordenador(es) e operários; ▸ Comunicação ocorre via coordenador; ▸ Não completamente tolerante a falhas e escalável, mas de fácil implementação; ▸ Servidor de grupo (group server) gerencia entrada e saída de membros no grupo;
  • 26. RESILIÊNCIADEPROCESSO ▸ Processos podem ser replicados e organizados num grupo(tolerante a faltas) para substituir um processo único (vulnerável); ▸ Existência de processos idênticos num grupo permite mascarar a falha de um ou mais processos nesse grupo; ▸ Replicação pode ocorrer através de protocolos baseados em primário (primary-based) ou com escrita replicada(replicated-write);
  • 27. RESILIÊNCIADEPROCESSO ▸ Primary-based: grupo é organizado de forma hierárquica e processo primário coordena todas as operações de escrita; ▸ Se primário falha, processos backup executam algoritmo de eleição para escolha de um novo primário; ▸ Operação na forma de replicação ativa, ou de protocolos baseados em quórum (quorum-based); ▸ Processos idênticos operam em organização flat com coordenação distribuída;
  • 28. MASCARAMENTODEFALHAEREPLICAÇÃO ▸ Questão: quanta replicação é necessária? ▸ Sistema é dito k fault tolerant(k-tolerante a faltas) se pode sobreviver a faltas em k componentes e ainda cumprir suas especificações; ▸ Se componentes (processos) falham silenciosamente, k+1 processos remanescentes são suficientes para prover k- tolerância a faltas; ▸ Nesse caso, se k processos falharem, processo restante provê a resposta desejada
  • 29. ACORDOEMSISTEMASCOMFALHAS ▸ Organizar processos replicados em um grupo ajuda a aumentar a tolerância a falha. Existem várias situações: ▸ Sistemas síncronos vs. assíncronos; ▸ Atraso de comunicação limitado ou não; ▸ Entrega de mensagens ordenada ou não; ▸ Transmissão de mensagens unicast ou multicast;
  • 31. ACORDOEMSISTEMASCOMFALHAS ▸ Esse problema, estudado pela primeira vez por Lamport (1982), é também conhecido como problema do acordo bizantino, consideramos problemas assíncronos, mensagens unicast, ordenação preservada e atraso limitado.
  • 32. ACORDOEMSISTEMASCOMFALHAS ▸ Em um sistema com k processos faltosos pode-se conseguir um acordo somente se estiverem presentes 2k+1 processos funcionando corretamente, para um total de 3k+1 (ou seja, mínimo mais que 2/3).
  • 33. DETECÇÃODEFALHA ▸ Mascaramento de falha requer sua identificação prévia; ▸ Membros do grupo que não têm falta devem ser capazes de detectar quem ainda é membro do grupo e quem apresentou falta e deve ser removido; ▸ Mecanismos: ▸ Envio de msg: “are you alive?” entre os nós, e espera por resposta – ping ativo; ▸ Espera passiva até que mensagens cheguem dos diferentes processos (viável apenas se há comunicação suficiente (frequente) entre os nós;
  • 34. DETECÇÃODEFALHA ▸ Mecanismo de timeout é usado para verificar se processo tem falta; ▸ Problema: ausência de resposta pode indicar erroneamente que processo tem falta; ▸ Implementação pode considerar mecanismo de gossiping, em que nó propaga informações do seu estado aos vizinhos; ▸ Necessidade de distinguir falha da rede e falha de um processo;
  • 35. DETECÇÃODEFALHA ▸ Detecção de faltas também pode ser feita como um efeito colateral do uso de gossiping para troca de informações entre os vizinhos, propagando informações sobre os estados dos nós; ▸ Eventualmente, todo processo terá informações suficientes para decidir sobre o estado dos demais e se há processos com falta;
  • 37. COMUNICAÇÃOPONTO-A-PONTO ▸ Tolerância a falta normalmente concentra-se na detecção de falta de processo; ▸ Faltas na comunicação também devem ser consideradas; ▸ Modelos de falha também se aplicam aos canais de comunicação: crash, omissão, timing e arbitrárias; ▸ Construção de canais de comunicação normalmente foca no mascaramento de falhas do tipo crashe omissões;
  • 38. COMUNICAÇÃOPONTO-A-PONTO ▸ Falhas arbitrárias podem ocorrer na forma de mensagens duplicadas, resultantes de armazenamento temporário e retransmissões; ▸ Na comunicação ponto-a-ponto, confiabilidade é obtida com o uso de protocolos de transporte confiável, como TCP; ▸ Mensagens de reconhecimento e retransmissões mascaram omissões; ▸ Falhas na conexão TCP podem ser tratadas permitindo que SD tente estabelecer uma nova conexão;
  • 39. COMUNICAÇÃOPONTO-A-PONTO ▸ A forma mais adotada para adquirir esta transparência é através do uso de RPC; ▸ RPCs visam esconder detalhes da comunicação, tornando chamadas remotas semelhantes às chamadas locais;
  • 40. FALHASEMRPC ‣ Falhas possíveis: ‣ Cliente não consegue localizar o servidor; ‣ Mensagem do cliente não chega ao servidor (perdida); ‣ Servidor cai (crashes) depois de receber pedido; ‣ Resposta do servidor ao cliente é perdida; ‣ Cliente cai (crashes) depois de enviar pedido;
  • 41. FALHASEMRPC ▸ Cliente não consegue localizar o servidor: ▸ Servidores todos podem ter caído (down); ▸ Cliente pode estar usando versão stub antiga incompatível com versão atual do servidor; ▸ Erro pode gerar exceção (exception– Java, ou sinal específico – C); ▸ Nem toda linguagem tem suporte;
  • 42. FALHASEMRPC ▸ Mensagem do cliente não chega ao servidor (perdida): ▸ Pode ser tratada com timer mantido pelo SO ou pelo stub do cliente; ▸ Expiração de timeout antes de resposta ou reconhecimento gera retransmissão; ▸ Servidor pode precisar diferenciar retransmissões de novas chamadas;
  • 43. FALHASEMRPC ▸ Servidor cai (crashes) depois de receber pedido: ▸ Possíveis tratamentos dependem do que é esperado pelo cliente: a. Semântica at-least-once (ao menos uma vez): sistema cliente continua tentando (retransmitindo pedido) até uma resposta seja recebida. Nesse caso, RPC terá sido executada ao menos1vez; b. Semântica at-most-once (no máximo uma vez): cliente desiste imediatamente e retorna indicação de falha. RPC terá sido executada no máximo 1 vez, mas possivelmente nenhuma; c. Semântica exactly once (exatamente uma vez);
  • 44. FALHASEMRPC ▸ Servidor cai (crashes) depois de receber pedido; ▸ Quedas de Servidor – situações possíveis na ocorrência de uma queda do servidor.
  • 45. FALHASEMRPC ▸ Resposta do servidor ao cliente é perdida; ▸ Ausência de resposta pode gerar retransmissões depois da expiração de temporizadores ▸ Problema: como saber se servidor recebeu pedido (e realizou serviço)? ▸ Solução: tentar tornar operações idempotentes (repetíveis sem efeitos indesejados)
  • 46. FALHASEMRPC ▸ Resposta do servidor ao cliente é perdida; ▸ Para operações não idempotentes pode-se atribuir número de sequência para requisições de cada cliente; ▸ Números permitem ao servidor diferenciar pedido de retransmissões. Servidor tem que manter informações de estado; ▸ Mensagens podem conter (bit) identificador de retransmissão: novos pedidos podem ser realizados imediatamente. Retransmissões requerem tratamento;
  • 47. FALHASEMRPC ▸ Cliente cai (crashes) depois de enviar pedido; ▸ Problema: servidor está realizando solicitação e mantendo recursos por nada; ▸ Computação órfã gera desperdício de recursos de processamento; ▸ Pode haver bloqueio de recursos;
  • 48. FALHASEMRPC ▸ Cliente cai (crashes) depois de enviar pedido; ▸ Soluções: ▸ Client stub salva registro (log) em disco (persistente) antes de realizar chamada RPC. Depois de um reinício (reboot) computação órfã é explicitamente encerrada (or rolled back): orphan extermination ▸ Possibilidade de surgimento de grandorphans, e atrasos para acesso ao disco antes de RPCs tornam proposta não interessante
  • 49. FALHASEMRPC ▸ Cliente cai (crashes) depois de enviar pedido; ▸ Soluções: ▸ Tempo é dividido em épocas; ao reiniciar, cliente divulga uma mensagem às demais máquinas declarando nova época. Ao receber mensagem, nó remove todas as computações anteriores daquele cliente. Falha na rede pode gerar órfãos ativos. Estratégia conhecida como reencarnação (reincarnation).
  • 50. FALHASEMRPC ▸ Cliente cai (crashes) depois de enviar pedido; ▸ Soluções: ▸ Gentle reincarnation: ao receber mensagem de nova época, servidor tenta localizar todos os clientes remotos associados. Na ausência de comunicação, computações são encerradas. ▸ Expiration: cada RPC recebe um tempo (T) para conclusão. Se não for concluída nesse tempo, RPC deve negociar novo prazo. Em caso de reiniciação, servidor pode encerrar requisições órfãs depois de tempo T.
  • 51. FALHASEMRPC ▸ Cliente cai (crashes) depois de enviar pedido; ▸ Problemas: ▸ Encerramento das computações órfãs pode ter consequência imprevistas ▸ Requisições podem ter bloqueado recursos ▸ Requisições podem ter iniciado outras requisições...
  • 53. MULTICASTCONFIÁVEL(RELIABLEMULTICASTING) ▸ Multicast confiável é importante para garantir que mensagens sejam entregues a todos os processos replicados num grupo; ▸ Protocolos de transporte oferecem comunicação confiável apenas ponto-a-ponto; ▸ Possível abordagem para multicast confiável consiste em criar-se vários canais unicast, um para cada receptor: solução ineficiente; Comunicação Confiável de G
  • 54. MULTICASTCONFIÁVEL(RELIABLEMULTICASTING) ▸ Situações envolvem diferentes aspectos se processos membros do grupo podem variar, saindo por falha, ou ingressando no grupo, durante transmissão de mensagem; ▸ Como garantir que mensagem seja entregue aos processos do grupo apenas se todos receberem? ▸ Transmissor associa número a cada mensagem transmitida; Comunicação Confiável de G
  • 55. MULTICASTCONFIÁVEL(RELIABLEMULTICASTING) ▸ Mensagens são transmitidas em sequência; ▸ Mensagens transmitidas são mantidas em buffer no transmissor até que todos os destinatários confirmem recebimento; ▸ Receptores conseguem identificar mensagens fora de ordem e geram reconhecimento negativo (negative acknowledgment) solicitando retransmissão; Comunicação Confiável de G
  • 56. MULTICASTCONFIÁVEL(RELIABLEMULTICASTING) ▸ Transmissor também pode manter temporizador que indica necessidade de retransmissão em caso de ausência de resposta; ▸ Reconhecimentos podem ser enviados “de carona” em mensagens; Comunicação Confiável de G
  • 58. MULTICASTCONFIÁVEL(RELIABLEMULTICASTING) ▸ Abordagem usando reconhecimento não é adequada para grande número de receptores (não escalável); ▸ Um problema apresentado é a implosão de retorno, que pode lotar o remetente com mensagens de confirmação de recebimento; ▸ Solução: Não confirmar recebimento, mas apenas devolver respostas quando detectar faltas. ▸ Gera novo problema: Quando remover mensagem enviada do buffer? ▸ Quando fica cheio, mas pode resultar em uma retransmissão não ser honrada! ▸ Implosões de retorno ainda podem acontecer! Comunicação Confiável de G
  • 59. CONTROLEDERECONHECIMENTO(FEEDBACK)NÃOHIERÁRQUICO ▸ Proposta: Scalable Reliable Multicasting (SRM); ▸ Receptores geram notificações apenas para mensagens não recebidas; ▸ Identificação de mensagem não recebida é deixada a cargo da aplicação; ▸ Ao detectar falha, receptor notifica os demais processos no grupo via multicast; Comunicação Confiável de G
  • 60. CONTROLEDERECONHECIMENTO(FEEDBACK)NÃOHIERÁRQUICO ▸ Proposta: Scalable Reliable Multicasting (SRM); ▸ Outros membros do grupo com falha não precisam gerar notificações também; ▸ Supondo que m processos podem ter falha de recebimento, uso de multicast gera economia de transmissões; ▸ Atraso aleatório é introduzido antes do envio da mensagem de feedback; Comunicação Confiável de G
  • 61. CONTROLEDERECONHECIMENTO(FEEDBACK)NÃOHIERÁRQUICO ▸ Proposta: Scalable Reliable Multicasting (SRM); ▸ Algoritmo tem boa escalabilidade, mas pode fazer com que processos tenham que tratar transmissões de mensagens já recebidas; ▸ Possibilidade de criação de sub-grupos; requer gerenciamento eficiente de grupos; Comunicação Confiável de G
  • 63. CONTROLEDERECONHECIMENTO(FEEDBACK)HIERÁRQUICO ▸ Escalabilidade no envio de mensagens para grandes grupos requer abordagem hierárquica; ▸ Receptores são particionados em subgrupos e organizados na forma de uma árvore; ▸ Dentro de cada subgrupo, qualquer mecanismo de entrega, adequado para pequenos grupos, pode ser usado; Comunicação Confiável de G
  • 64. CONTROLEDERECONHECIMENTO(FEEDBACK)HIERÁRQUICO ▸ Cada subgrupo determina um coordenador local, que passa a ser responsável pelos envios de pedidos de retransmissão deste subgrupo ▸ Coordenador local tem seu próprio buffer de histórico de transmissões. ▸ Mensagens recebidas por todos no subgrupo podem ser descartadas. ▸ Questão: dificuldade para construção da árvore. ▸ Normalmente, roteador multicast no grupo é usado como coordenador Comunicação Confiável de G
  • 66. MULTICASTATÔMICO ▸ Comunicação multicast confiável implica que mensagens sejam entregues a todos os processos ou a nenhum ▸ Mensagens também devem ser entregues na mesma ordem a todos os processos ▸ Considerando que operações são replicadas em vários processos de um grupo, aplicação das operações depende de processos estarem em acordo sobre quem participa do grupo (está ativo), de forma que ou todos realizem as operações, ou nenhum Comunicação Confiável de G
  • 68. MULTICASTATÔMICO–SINCRONIAVIRTUAL ▸ Há apenas uma situação em que entrega de mensagem pode falhar: quando participação no grupo muda como resultado do emissor da mensagem m quebrar(crash) ▸ Nesse caso, deve ser entregue a cada um dos processos restantes, ou pode ser ignorada por todos os membros do grupo, como se o emissor tivesse quebrado antes do envio ▸ Multicast confiável com essas características é denominado virtualmente síncrono(virtually synchronous) Comunicação Confiável de G
  • 70. ORDENAÇÃODEMENSAGENS ▸ São distinguidas quatro ordenações diferentes: ▸ Multicasts não ordenados; ▸ Multicasts ordenados em FIFO; ▸ Multicasts ordenados por causalidade; ▸ Multicasts totalmente ordenados; Comunicação Confiável de G
  • 71. ORDENAÇÃODEMENSAGENS ▸ Multicast confiável não ordenado é um multicast virtualmente síncrono sem garantias sobre a ordem em que mensagens recebidas são entregues aos diferentes processos ▸ Com multicasts ordenados em FIFO, camada de comunicação deve entregar as mensagens aos processos na mesma ordem em que foram enviadas Comunicação Confiável de G
  • 72. ORDENAÇÃODEMENSAGENS ▸ Multicast confiáveis ordenados por causalidade entregam mensagens de forma que potenciais causalidades entre mensagens diferentes é preservada ▸ Com multicasts totalmente ordenados, independente de ordenações entre as mensagens, todos os processos as recebem na mesma ordem Comunicação Confiável de G
  • 73. ORDENAÇÃODEMENSAGENS ▸ Multicasts não ordenados; ▸ Multicasts ordenados em FIFO Comunicação Confiável de G
  • 74. ORDENAÇÃODEMENSAGENS ▸ A entrega totalmente ordenada é aplicada em adição às três primeiras, e significa que, independente da ordem aplicada, a ordem de entrega deve ser a mesma em todos os membros do grupo. ▸ Multicasts que apresentam essa propriedade são denominados multicasts atômicos. Comunicação Confiável de G
  • 77. RECUPERAÇÃO ▸ Ocorrida uma falha, é necessário não apenas identificá-la, mas recuperar-se da mesma e voltar para um estado correto. ▸ Essencialmente existem 2 maneiras de se recuperar: ▸ Recuperação retroativa – volta para um estado anterior à falha; ▸ Recuperação para a frente – tenta levar o sistema para um novo estado correto para que possa continuar a executar.
  • 79. PONTOSDEVERIFICAÇÃO ▸ Independentes: ▸ Coordenados: usam, por exemplo, bloqueio em duas fases
  • 81. REFERÊNCIAS ▸ Cap 8 Tanenbaum e van Steen - Sistemas Distribuídos: princípios e paradigmas