250 likes | 380 Views
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
E N D
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 m p1 po m p1
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