protocolos de recuperação márcio augusto sekeff sallem
TRANSCRIPT
Protocolos de Recuperação
Márcio Augusto Sekeff Sallem
Sistemas Distribuídos
• Coleção de processos– Meio de comunicação: rede
– Susceptíveis a falhas
• Protocolos de Recuperação de Falhas– Solução
Sistemas Distribuídos
• Aplicações:– Sistemas Cliente-Servidor
– Processamento de Transações
– Computação Científica
– WWW
Protocolos de Recuperação de Falhas
• Objetivo: estado de consistência global– Linha de recuperação
• Checkpoint: informação mínima de recuperação
• Técnicas– Transparentes– Participação do usuário
Protocolos de Recuperação de Falhas
• Problemas– Trocas de mensagens
– Efeito dominó
• Metodologias– Checkpoints
– Logging
Protocolos de Recuperação de Falhas - Modelagem
• Sistema– Número fixo de processos
– Comunicação confiável ou não
– Execução do processo• Seqüência de intervalos de estado
• Estados são determinísticos
• Estados são iniciados por eventos não-determinísticos
– Não admite falhas durante recuperação
Protocolos de Recuperação de Falhas - Modelagem
• Estados Consistentes
• Estados Inconsistentes
po
p1
m
po
p1
m
Protocolos de Recuperação de Falhas - Modelagem
• Mundo exterior– Características dos processos
• Não podem falhar
• Não mantém estados
• Não participam do protocolo de recuperação
• Causa efeitos irreversíveis
– Problemas• Confirmação externa
• “Gagueira”
Protocolos de Recuperação de Falhas - Modelagem
• Encarnações– Evitam recebimento de mensagens duplicadas
• Anexa a mensagem
– Incrementada após recuperação do processo
• Mensagens em trânsito– Consideradas em comunicação confiável
– Comunicação não confiável• Perda de mensagem por falha do processo ou
comunicação?
Protocolos de Recuperação de Falhas - Modelagem
• Determinismo– Protocolos de logging
– Recriar os eventos não-determinísticos• Determinantes dos eventos
• Armazém estável
• Coleta de lixo
Protocolos baseados em Checkpointing
• Conceito de linha de recuperação• Vantagens
– Pouco restritivas– Simples
• Desvantagens– Interações com o mundo externo– Sem garantia de regeneração do estado pré-falha
• Tipos– Sem coordenação– Com coordenação– Induzidos
Checkpointing sem Coordenação
• Funcionamento– Falha no processo– Broadcast com solicitação de dependência– Cálculo da linha de recuperação
• Vantagem– Autonomia para o processo
• Desvantagens– Efeito dominó– Checkpoints desnecessários– Overhead em coletas de lixo– Aplicações com o mundo exterior
Checkpointing Coordenado
• Com bloqueio: em duas fases– Overhead
• Sem bloqueio– Mensagens causam inconsistências– Exemplos
• Marcadores sobrepostos em mensagens c/ Iniciador• Relógios sincronizados• Mínimo checkpoint coordenado
Checkpointing Coordenado
• Vantagens– Estado consistente global
– Simplifica a recuperação
– Evita o efeito dominó
– Redução do overhead
– Sem coleta de lixo
• Desvantagem– Latência: comunicação com o mundo exterior
Checkpointing Induzido por Comunicação
• Checkpoints– Local– Forçado: andamento da linha de recuperação
• Sem coordenação
• Protocolo de coordenação sobreposto em mensagens de controle
Checkpointing Induzido por Comunicação
• Baseados em modelo– Padrões de comunicação e checkpoints
– Prática conservadora: maior número de checkpoints
• Baseados em índice– Marcas de tempo
Protocolos baseados em Logging
• Execução de processo– Seqüência de intervalos de estado determinísticos
– Estado iniciado por evento não-determinístico
• Armazém estável– Determinantes dos eventos não-determinísticos
– Checkpoints
• Não ocorre processos órfãos
Logging Pessimista ou Síncrono
• Assume que falhas podem ocorrer após qualquer evento não-determinístico
• Sincronismo: se um evento não for armazenado no armazém estável, então nenhum processo pode depender dele– Overhead
• Vantagens– Comunicação com o mundo exterior– Limitação da recuperação (checkpoints)
Logging Otimista ou Assíncrono
• Escrita em memória volátil e no armazém estável– Menor overhead
– Não há bloqueios
• Desvantagens– Recuperação mais complexa
– Surgimento temporário de órfãos
Logging Otimista ou Assíncrono
• Protocolos de recuperação otimista– Síncrono: o próprio processo calcula a linha de
recuperação baseado em informações e em dependências
– Assíncrono: o processo envia mensagem de recuperação. Quaisquer outros processos que ficarem “órfãos” enviam também a mensagem.
• Recuperação exponencial.
Logging Casual
• Vantagens do logging otimista– Sem acesso síncrono, exceto em operações com o mundo
exterior
• Vantagens do logging pessimista– Autonomia dos processos– Sem surgimento de órfãos– Linha de recuperação curta (um checkpoint)
• Altamente complexo– Casualidade
Implementações
• Acesso ao armazém estável– Alto custo
– Favorece checkpoint coordenado (poucos acessos)
• Comunicação entre processos: pouco gasto– Checkpoints sem coordenação eram melhores
antigamente
– Checkpoints induzidos por mensagem não são escaláveis para muitos processos
Implementações
• Protocolos e canais de comunicação– Sem conceito de posição local (usa-se máscara de
posição atual)– Canais confiáveis?
• Logging– Cópia de mensagens: armazenamento no
destinatário ou remetente?– Uso dobrado do canal de comunicação
Implementações
• Armazém estável: discos magnéticos
• Não-determinismo: interação processo/SO com eventos assíncronos– Idempotentes: retornam valor determinístico– As que precisam ser gravadas e não re-
executadas (ex: estado do ambiente)– As que precisam ser gravadas e ré-executadas
(ex: alocação de memória, instanciação)
Conclusões
• Checkpoint– Pouca comunicação com o mundo exterior– Recuperação simples– Eficaz
• Logging– Alta comunicação com o mundo exterior– Maior overhead
• Checkpoint coordenado: melhor solução