View
116
Download
5
Category
Preview:
Citation preview
Sistemas DistribuídosFrancisco Brasileiro
Aula 4: Tolerância a Falhas em Sistemas Distribuídos
AgendaAgenda• Motivação
• Conceitos básicos e definições
• Mecanismos básicos– Acordo Bizantino– Sincronização de relógios– Armazenagem estável– Entrega confiável de mensagens– Nodos com semântica de falha controlada
MotivaçãoMotivação
• Necessidade de tolerância a faltas– aumento do uso de computadores– diversificação do uso de computadores– aumento da dependência no correto
funcionamento dos sistemas computacionais
MotivaçãoMotivação
• Exemplos de aplicações com requisitos de confiança no funcionamento– Sistemas críticos envolvendo risco de vida
• controle de vôo em aeronaves
– Sistemas envolvendo perdas financeiras• transações bancárias e do mercado financeiro
– Sistemas envolvendo desastres ambientais• controle de usinas nucleares
MotivaçãoMotivação
• Quando é que um sistema falha?– Qual é o serviço adequado de um sistema?– Vamos assumir que a especificação é correta– Importância de se tratar faltas em sistemas
distribuídos• em um sistema distribuído a probabilidade de um
componente falhar é maior• aplicações críticas
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Serviços de um sistema computacional
• Confiança no funcionamento (dependability)
• Atributos de confiança no funcionamento– Fiabilidade (reliability)– Disponibilidade (availability)– Segurança
• prevenção contra catástrofes (safety)• prevenção contra acesso não autorizado (security)
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Tratamento de faltas– Prevenção
• minimizar, por construção, a probabilidade da ocorrência de faltas
– Tolerância• prover o serviço, ainda que ocorram faltas• introduz redundância no sistema
– física– temporal
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Características de prevenção de faltas– ausência de redundância– falhas ocasionais do sistema– manutenção assistida por humanos
• Problemas com a abordagem– atraso longo quando há necessidade de reparo– possível inacessibilidade para efetuar reparo– custos excessivos na manutenção e com o
processamento perdido
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Combinando prevenção e tolerância– As duas técnicas são complementares– Algumas aplicações devem necessariamente
tolerar faltas– A introdução de redundância física possibilita a
substituição do reparo manual– Outros pontos importantes
• diagnóstico de faltas• validação dos mecanismos do sistema para
tolerância a faltas
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Modelando sistemas– Visão externa– Visão interna– Comportamento do sistema– Especificação de serviços– Características desejáveis em uma especificação
• completa• consistente• correta
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições• Falha ou defeito (failure)
– Desvio da especificação
• Erro (error)– Estado ou transição interna ilegais
• Falta (fault)– Causa dos erros e falhas
• Relação entre falta, erro e falha
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Tipos de faltas– Quanto à duração
• permanentes, transientes, intermitentes
– Quanto à natureza• físicas, interação
– Quanto à fase de introdução• projeto, operação
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Semântica de falha de componentes– domínio do valor– domínio do tempo– tipos de falhas
• silenciosa (crash, fail-stop)• omissão• temporização (desempenho)• valor• arbitrária (Bizantina)
– Bizantina com autenticação
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Sistemas tolerantes a faltas– Evitam a falha do sistema, mesmo na presença
de faltas em alguns dos componentes do sistema
– Mesmo que alguns componentes falhem, o sistema ainda é consistente com a sua especificação
• redução de desempenho (graceful degradation)
– Introdução de redundância é o princípio básico
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Fases na tolerância a faltas– Detecção de erros– Contenção e avaliação de estragos– Recuperação de erros– Tratamento de faltas e continuidade do serviço
• diagnóstico de faltas• reconfiguração do sistema
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Detecção de erros– Dedução de faltas e falhas– Propriedades de um detetor de erros ideal
• completude e corretude• independência de projeto
– Principais tipos de detetores de erros• replicados• temporizadores (watchdogs)• códigos e redundância estrutural• testes de aceitação e diagnósticos
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Contenção e avaliação de estragos– Latência– Disseminação de erros– Análise do fluxo de informação– Portas “corta-fogo”– SRU’s (smallest replacement units)
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Recuperação de erros– Abordagem pessimista (backward recovery)
• pontos de salvaguarda (checkpoint)• implementação razoavelmente simples• custo alto• efeito “dominó“
– Abordagem otimista (forward recovery)• ações corretivas• considerações sobre a natureza dos erros• normalmente é dependente da aplicação ou do sistema
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Tratamentos de faltas e continuidade do serviço– Identificação de componentes defeituosos– Localização do erro– Reparo do sistema
• on-line• reconfiguração• componentes suplentes (spares)
– passivos (cold-spares) e ativos (hot-spares)
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições• Modelagem de sistemas distribuídos
– Modelo físico• Principais componentes
– processadores– rede de comunicação– dispositivos de armazenagem não voláteis– software
– Modelo lógico• Aplicações implementadas por processos cooperantes• Comunicação via troca de mensagens• Sistemas síncronos versus sistemas assíncronos
Conceitos Básicos e DefiniçõesConceitos Básicos e Definições
• Tipos de sistemas distribuídos– Sistemas síncronos
• atraso máximo conhecido para escalonamento e troca de mensagens
• oferecem framework mais simples• mais difíceis de serem implementados
– Sistemas assíncronos• timed-related x time-free• mais fáceis de serem implementados
Mecanismos BásicosMecanismos Básicos
• Suportes para construção de sistemas distribuídos tolerantes a faltas– Como disseminar informação de forma
consistente e confiável?– Como ordenar eventos?– Como prover um sistema de tempo global?– Como armazenar informação de forma estável?– Como restringir a semântica de falha de
componentes?
Mecanismos Básicos:Acordo Bizantino
Mecanismos Básicos:Acordo Bizantino
• Como atingir consenso na presença de componentes com semântica de falha arbitrária?– O problema dos generais Bizantinos
• decisão final é baseada nas decisões locais• alguns generais podem ser traidores
– Como garantir que todos os generais leais decidirão pelo mesmo plano?
• os generais devem receber as mesmas informações• os generais devem usar a mesma função de decisão
Mecanismos Básicos:Acordo Bizantino
Mecanismos Básicos:Acordo Bizantino
• Como entrar em um acordo sobre qual valor usar para a decisão de um general traidor? – Todos os generais leais devem chegar a um
consenso sobre que valor usar para a decisão de cada general
• Consistência interativa– todos os generais leais usam o mesmo valor v(i) para o
general i– se o general i é leal, então todos os generais leais devem
usar o valor v(i) que o general i envia
Mecanismos Básicos:Acordo Bizantino
Mecanismos Básicos:Acordo Bizantino
• Requisitos para obter consistência interativa– Várias rodadas de troca de informação– Sistema de comunicação síncrono– Número limitado de generais traidores
• Há solução para o caso de 3 generais, onde um deles pode ser um traidor?– os generais podem tomar apenas duas
decisões (atacar ou esperar)
Mecanismos Básicos:Acordo Bizantino
Mecanismos Básicos:Acordo Bizantino
atacar
G1 (T)
G2 (R) G3 (R)
atacar
esperar
O que fazer?
Mecanismos Básicos:Acordo Bizantino
Mecanismos Básicos:Acordo Bizantino
esperar
G1 (R)G2 (R)
G1 (T)atacar
esperar
O que fazer?
Mecanismos Básicos:Acordo Bizantino
Mecanismos Básicos:Acordo Bizantino
• Resultados teóricos– Número mínimo de rodadas
• k+1
– Relação mínima entre componentes corretos/defeituosos
• n/k>3
– Número mínimo de canais de comunicação disjuntos
• 2k+1
Mecanismos Básicos: Acordo BizantinoMecanismos Básicos: Acordo Bizantino
• Algoritmo recursivo para consistência interativa• ICA(k), k>0
– 1. O transmissor envia o seu valor para os outros n-1 receptores
– 2. Seja v o valor recebido pelo general i, ou o valor default se nada for recebido. O general i se comporta como transmissor no algoritmo ICA(k-1) para enviar v para os outros n-2 receptores
– 3. Para cada general i, seja vj o valor recebido de j (i¡). O general i usa o valor da maioria dos valores recebidos para i
• ICA(0)– 1. O transmissor envia seu valor para os outros n-1 receptores
– 2. Cada general usa o valor recebido do transmissor ou o valor default se nada for recebido
Mecanismos Básicos:Acordo Bizantino
Mecanismos Básicos:Acordo Bizantino
• Consistência interativa com mensagens assinadas– Mensagens repassadas por generais traidores
não podem ser modificadas sem que isso seja detectado por generais leais
• assinaturas digitais
– Resultados teóricos• número de rodadas: k+1• número máximo de generais traidores: n>k• número de canais de comunicação disjuntos: k+1
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Como estabelecer um referencial de tempo global em um sistema distribuído?– Cada nodo tem seu relógio local– Relógios desviam do tempo real– Tempo global e ordenação de eventos
• relógios lógicos• sincronização de relógios
– sincronização interna– sincronização externa
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• A relação “aconteceu antes” () e a ordenação de eventos– Para dois eventos a e b:
• se a e b são eventos no mesmo processo e a vem antes de b, então a b
• se a é o evento de envio de uma mensagem m e b é o evento de recepção de m, então a b
• se existe um terceiro evento c, tal que a b e b c, então a c
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Relógios lógicos implementam a relação “”– Um relógio lógico é um contador que serve para
associar valores a eventos e cada processo tem um relógio lógico
• Ci<a> é o valor associado ao evento a pelo processo i onde a ocorreu
• Para dois eventos a e b: se a b, então C(a) < C(b)
• Como implementar relógios lógicos?– Relógio é incrementado entre dois eventos locais– Mensagens carregam estampilhas
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Aspectos a serem considerados na sincronização de relógios físicos– Relógios corretos operam em diferentes
velocidades– Necessidade de re-sincronização periódica– Troca de mensagens com valores das leituras
dos relógios introduz incerteza– Falhas nos relógios e nos canais de
comunicação
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Definição do problema:– Sejam Ci(t) a leitura de Ci no tempo real t e ci(T) o
tempo real quando o i-ésimo relógio lê o valor T• assumindo que os relógios são contínuos:
– para um relógio correto, |d(Ci/dt)-1| < • existem dois requisitos básicos para sincronização de
relógios:– a todo instante a leitura de dois relógios corretos deve ser
bastante próxima (|Ci(t)-Cj(t)| )
– um relógio correto só pode ser adiantado/atrasado de um intervalo de tempo pequeno e limitado, durante cada re-sincronização
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Tipos de protocolos– Determinísticos
• sempre garantem a precisão da sincronização• assumem um limite máximo no atraso para a
transmissão de mensagens
– Probabilísticos• nenhuma restrição sobre o atraso na troca de
mensagens• garantem a precisão da sincronização apenas dentro
de uma probabilidade pré-definida
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Protocolos determinísticos– Uma possível solução é:
• cada nodo lê o seu relógio e o relógio dos outros nodos
• atribui ao seu relógio a mediana dos valores lidos
– Em que circunstâncias esse protocolo funciona?• a maioria dos nodos (e seus relógios) são corretos
• nodos e relógios não sofrem falhas arbitrárias
– O que fazer na presença de falhas arbitrárias?• dois nodos corretos quaisquer devem obter
(aproximadamente) o mesmo valor para um relógio Ci
• se Ci é correto, o valor obtido é o valor de Ci
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Uma solução com mensagens orais• Número de nodos é pelo menos 3k+1• C(t)=H(t)+CORR(t)• Inicialmente os relógios estão sincronizados em
• Existe min e max para o atraso na transmissão
• Quando Ci(t)=T o nodo i dissemina “a hora é T”
• Guarda tempo das recepções de mensagens dos outros nodos por um período de (+max)(1+)
• Com os tempos de recepção recalcula CORR(t)– joga fora os k maiores e os k menores
– CORR(t)=+ mediana dos valores restantes
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Protocolos probabilísticos– Algoritmo de Cristian
• tolera falhas de desempenho• não assume atraso máximo, mas assume um atraso
mínimo• nodo j requisita o valor do relógio de um nodo i e
corrige esse valor com base no atraso de leitura
Mecanismos Básicos:Sincronização de Relógios
Mecanismos Básicos:Sincronização de Relógios
• Protocolos probabilísticos– Algoritmo de Cristian
• seja T o valor do relógio i quando a requisição de j é recebida e 2D o tempo de transmitir o pedido para i e receber a resposta:
– quando j recebe a mensagem o relógio de i lê um valor no
intervalo [T+min(1-), T+2D(1+2)-min(1+)]
– o valor médio do intervalo minimiza o erro
– o erro máximo dá a precisão da leitura
– quanto menor D maior a precisão
» para uma precisão e é preciso descartar todas as leituras
com atraso maior que 2U, onde U=(1-2)(+min)
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Qual a necessidade de se ter armazenagem estável?– Ter acesso à informação depois que uma falha
ocorre• uso de dispositivos de armazenagem não voláteis
– Recuperação para trás• leitura de pontos de salvaguarda
– Aumentar a fiabilidade de discos “de prateleira”
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Definição do problema– Toda informação que é gravada com sucesso
no tempo T, pode ser lida no tempo T’, T’>T• mesmo que falhas ocorram durante a operação• mesmo que os dispositivos sofram faltas físicas
– Cada bloco do disco tem um valor e um estado• o estado pode ser correto ou defeituoso
– Primitivas básicas de acesso ao disco• write(endereço, dado), retorna sucesso ou fracasso• read(endereço), retorna (estado, valor)
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Como tratar faltas em discos?– A maior parte pode ser tratada por meio de
codificação– Algumas faltas não podem ser tratadas assim
• falta transiente• setor defeituoso• falha da controladora• falha do disco
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Tratando os efeitos das faltas– Ao invés de enumerar todas as possíveis faltas,
é melhor estudar o impacto das mesmas• prover métodos para esconder/reverter os erros
– Eventos que ocorrem em um disco• leitura, gravação e espontâneos• desejáveis e não desejáveis
– É preciso mascarar os efeitos de eventos não desejáveis
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Eventos indesejáveis da operação read– Erro temporário
• bloco correto mas operação retorna bloco defeituoso
– Erro persistente• bloco correto mas operação retorna bloco
defeituoso, mesmo depois de sucessivas tentativas
– Erro não detectado• bloco está defeituoso mas operação retorna bloco
correto, ou bloco correto mas operação retorna um valor diferente do conteúdo do bloco
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Eventos indesejáveis da operação write– Escrita nula
• o bloco não é mudado
– Escrita incompleta• o bloco se torna defeituoso após a escrita
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Eventos espontâneos indesejáveis• Corrupção
– o bloco muda de correto para defeituoso
• Recuperação– o bloco muda de defeituoso para correto
• Erro não detectado– o bloco muda de valor
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Armazenagem estável usando um único disco– Primitivas básicas
• CarefulRead(e)– elimina erros temporários
• CarefulWrite(e, d)– elimina escrita nula e escrita incompleta
– Dividir disco em pares de blocos• informação duplicada
• independentes em relação a eventos espontâneos
• pelo menos um dos blocos sempre terá um estado correto
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Primitivas de acesso ao disco– StableRead(e)
• faz CarefulRead(e) em um dos pares; se não tiver sucesso, faz CarefulRead(e) no outro par
– StableWrite(e, d)• faz CarefulWrite(e, d) em um dos pares; quando a
operação retorna sucesso, faz CarefulWrite(e, d) no outro par
– Cleanup()• faz a consistência do disco após uma falha do nodo
(normalmente na inicialização do sistema)
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Eventos indesejáveis mascarados– erro de leitura temporário e persistente– escrita nula e defeituosa– corrupção de um bloco
• Eventos não mascarados– erros não detectados– quedas do disco ou do nodo
Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável
• Armazenagem estável usando replicação– Pares de blocos são organizados em discos
distintos– Discos espelhados
• Mascaram falhas do disco, controladora ou nodo• Boa aproximação de uma unidade de armazenagem
estável– só não mascara erros não detectados
– RAID’s
Mecanismos Básicos:Entrega Confiável de Mensagens
Mecanismos Básicos:Entrega Confiável de Mensagens
• Definição do problema– Uma mensagem enviada de i para j é recebida
por j corretamente– Mensagens enviadas por i são entregues a j na
ordem em que foram enviadas
• Implementação– Detecção de erros– Ordenação e garantia de entrega– Tratamento de falhas
Mecanismos Básicos:Entrega Confiável de Mensagens
Mecanismos Básicos:Entrega Confiável de Mensagens
• Como fazer comunicação um-para-muitos?– Broadcast– Multicast
• Propriedades de interesse– Fiabilidade– Ordenação consistente– Causalidade
Mecanismos Básicos:Entrega Confiável de Mensagens
Mecanismos Básicos:Entrega Confiável de Mensagens
• Caracterização do sistema– Comunicação via troca de mensagens
– Sistema síncrono ()
– Relógios são sincronizados ()
– Semântica de falha arbitrária para os nodos– Até k nodos e l canais de comunicação podem
falhar– Não há partições da rede
Mecanismos Básicos:Entrega Confiável de Mensagens
Mecanismos Básicos:Entrega Confiável de Mensagens
• O objetivo é garantir as seguintes propriedades:– terminação: todo valor disseminado por um
transmissor correto no tempo t é entregue a todos os nodos corretos no tempo t+
– atomicidade: qualquer mensagem disseminada no tempo t ou é entregue por todos os nodos corretos no tempo t+ ou não é entregue a nenhum nodo;
– ordem: as mensagens entregues são entregues na mesma ordem em todos os nodos corretos
Mecanismos Básicos:Entrega Confiável de Mensagens
Mecanismos Básicos:Entrega Confiável de Mensagens
• Protocolo de Cristian (protocolo-)– Implementado por três processos
• Transmissor: inicia a transmissão de mensagens• Repetidor: difunde mensagens recebidas• Entregador: ordena e entrega mensagens estáveis
– Mensagens estáveis
• Para tolerar faltas por omissão: =k+Dk,l+• Para tolerar faltas de desempenho ou arbitrárias:=k(+)+Dk,l+
• Para redes completamente conectadas: =(k+1)(+)
Mecanismos Básicos:Entrega Confiável de Mensagens
Mecanismos Básicos:Entrega Confiável de Mensagens
• Outros protocolos– Sistemas síncronos
• Protocolos baseados em temporizadores ao invés de relógios sincronizados
– Nodos Voltan e Seljuk
– Sistemas assíncronos (time-related)• Ordenação causal
– Isis, Horus e Ensemble– Transis– NewTOP
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
• Por que restringir a semântica de falhas de componentes?– Simplificação de projetos
• Como se escolhe a semântica de falha de componentes?– Qualidade do componente– Requisitos da aplicação– Tempo de missão
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
• Como implementar nodos com semântica de falha controlada– Replicando processadores com semântica de
falha menos restritiva– Máquina de estados
• processamento determinístico• submeter réplicas às mesmas entradas• validar saídas
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada• Nodos com semântica de falha por parada
(fail-stop)– Propriedades de um nodo fail-stop
• falha silenciosa• armazenagem estável é mantida após a parada do
nodo• qualquer nodo pode detectar a falha de um nodo
fail-stop
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
• Implementação com armazenagem estável– Um nodo fail-stop k-resiliente é composto por k+1
processadores convencionais e um nodo confiável implementando armazenagem estável
– Assinatura digital para autenticar origem– Comunicação é feita via armazenagem estável– Pedidos de leitura/gravação são enviados por
cada processador para o nodo de armazenagem– Qualquer diferença entre os valores para o
mesmo pedido indicam uma falha do nodo
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
• Implementação sem armazenagem estável– Um nodo fail-stop k-resiliente é composto por k+1
processadores convencionais– O nodo de armazenagem estável é implementado
por 2k+1 processadores convencionais– Para escrever na armazenagem estável, um
acordo Bizantino é iniciado com o nodo de armazenagem; qualquer diferença nos valores do mesmo pedido indicam uma falha do nodo
– Para ler faz um broadcast e usa o valor majoritário
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada• Implementação em hardware de um nodo
com semântica de falha silenciosa (crash)
processador
processador
comparadorentrada saída
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada• Implementação em software
Receptor Transmissor
Validador
RemetenteOrdenador
ServidorDMQ
PMQ
RMQ
ICL
ECL
VMQ
Sim Não
Mensagens originadas da rede Mensagens destinadas à rede
Links
Links
Links
deve ser ordenada?
Links
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada• Vantagens dos nodos hard
– Impacto mínimo no desempenho– Impacto mínimo no projeto do software
• Vantagens dos nodos soft– Possibilidade de uso de diversidade no projeto– Uso de componentes off-the-shelf– Facilidade de expansão– Maior robustez contra a ocorrência de faltas
geradas por uma causa comum
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada
Mecanismos Básicos:Nodos com Semântica de Falha
Controlada• Como proceder?
– A escolha não é clara, porém ...– O tempo de projeto de nodos hard é longo
(entre 1 e 2 anos), e enfrenta alguns problemas sérios
– Para algumas aplicações, o impacto no desempenho introduzido nos nodos soft pode não ser muito grande
Mecanismos Básicos:Replicando Componentes
Mecanismos Básicos:Replicando Componentes
• Estratégias de replicação– Replicação ativa
• modelo da máquina de estados– determinismo de réplicas– ordenação das entradas
• grau de replicação– sistema k-resiliente– semântica de falhas assumida
Mecanismos Básicos:Replicando Componentes
Mecanismos Básicos:Replicando Componentes
• Estratégias de replicação– Replicação passiva
• primária e cópias• pontos de salvaguarda + detecção de falhas• mais simples quando não ocorrem falhas• réplicas podem ser não-determinísticas• recuperação mais lenta• só tolera faltas de componentes com semântica de
falha silenciosa
Mecanismos Básicos:Replicando Componentes
Mecanismos Básicos:Replicando Componentes
• Estratégias de replicação– Replicação semi-ativa
• tenta prover as vantagens das outras duas abordagens
– recuperação rápida– tratamento de não-determinismo
• só tolera faltas de componentes com semântica de falha silenciosa
Recommended