4.2 Protocolos de recuperação de falhas do tipo coordenados
4.2.1 Protocolo de checkpoint segundo NEVES & FUCHS (1997)
Segundo os autores, o alto grau de troca de mensagens durante a criação do checkpoint ou a coleta de informações durante o processo de recuperação são alguns dos principais problemas com os algoritmos de recuperação de falhas em ambientes móveis. Outro problema igualmente importante, segundo os autores, é o fato de que alguns protocolos não adaptam os seus ambientes para as características da conexão de rede corrente. A proposta deste protocolo é oferecer um mecanismo de recuperação de falhas adaptado às alterações de disponibilidade do enlace de comunicação das unidades móveis com a rede estacionária. Os autores sugerem a alternância de tipos de checkpoints na intenção de adaptação com o meio em que se encontra inserida a unidade móvel. O protocolo proposto estaria apto a armazenar estados de recuperação consistentes sem necessitar da troca de mensagens para este fim.
Os processos utilizam um timer local para determinar o momento da execução dos checkpoints. Nesta proposta os checkpoints podem ser salvos e armazenados tanto em locais de armazenamento estável quanto nas próprias estações. Os checkpoints armazenados localmente não consomem recursos de rede e podem ser construídos em muito pouco tempo, porém no caso de uma falha da unidade móvel podem ser permanentemente perdidos. Durante a execução da aplicação, o protocolo mantém um estado global em um local de armazenamento estável e um outro estado global fragmentado entre as unidades móveis e o local de armazenamento estável. O primeiro estado global é utilizado para a recuperação de falhas permanentes16 enquanto que o segundo estado global é utilizado na recuperação das falhas passageiras17.
16 Falhas permanentes: este tipo de falha danifica permanentemente a unidade móvel
17 Falhas passageiras: são as falhas cuja ocorrência não danifica permanentemente a unidade móvel, como
Quando se desloca para outro endereço de rede, a unidade móvel confia os serviços de envio e recebimento dos seus pacotes de rede para o foreign agent, este agente possui uma interface wireless que permite o repasse dos pacotes relativos a unidade móvel. O processo de desconexão ocorre quando a unidade móvel está fora do alcance de todas as células de cobertura, o home agent representa a unidade móvel quando ela está fora da sua rede padrão (home network). O home agent intercepta os pacotes direcionados para a unidade móvel e os repassa para o foreign agent corrente. O home node é informado pela unidade móvel sobre a mudança dos foreign agents.
Segundo os autores, um protocolo de checkpoint coordenado salva os estados globais de uma aplicação que é executado por um ou mais processos. Estes processos executam em estações fixas ou móveis e utilizam mensagens para efetuar as trocas de dados. Desta forma, um estado global irá incluir o estado de cada processo ao longo da aplicação e algumas mensagens. A recuperação da falha é executada revertendo o processo para o último estado armazenado, então o processo re-executa o programa de aplicação e faz a releitura das mensagens “logadas”. O protocolo de checkpoint adaptativo utiliza intervalos de tempo para coordenar a criação de estados globais, os processos salvam seus estados periodicamente sempre que um intervalo de tempo local para o checkpoint expira.
O protocolo utiliza dois tipos distintos de processos de checkpoint: soft checkpoints e hard checkpoints. Os processos do tipo soft checkpoints utilizam-se de checkpoints salvos localmente na unidade móvel para resolver as falhas soft. Os checkpoints do tipo hard utilizam checkpoints armazenados em plataformas consideráveis estáveis para a recuperação de falhas do tipo hard. Estes checkpoints necessitam ser enviados através de um enlace de comunicação, para que, através da rede estacionária se concretize o armazenamento em local estável, são, portanto, mais caros na construção e mais confiáveis no armazenamento. Este protocolo possibilita a adaptação com o ambiente de rede, intercalando a construção de soft e hard checkpoints conforme a disponibilidade de largura de banda. O número de soft checkpoints armazenados por hard checkpoints é chamado de maxsoft. Um estado global pode incluir tanto soft quanto hard checkpoints. Para assegurar que a recuperação seja sempre possível, o protocolo precisa manter em cada momento um estado global contendo somente hard checkpoints. Este estado global é utilizado para a recuperação de falhas
do tipo hard. O sincronismo do protocolo adaptativo obtido por meio dos intervalos de tempo para a criação de checkpoints evita a troca de mensagens durante este processo. Os processos salvam seus estados sempre que o contador de tempo local expirar, de forma independente dos outros processos. Cada processo carrega junto com suas mensagens a informação do intervalo de tempo restante para a ocorrência do próximo checkpoint.
Quando um processo recebe uma mensagem, compara seu intervalo local com aquele que está recebendo, se o intervalo recebido é menor, o processo ajusta seu contador de tempo com o valor recebido. O protocolo mantém um contador de número de checkpoint (CN), o valor de CN é incrementado sempre que o processo cria um novo checkpoint, e envia este valor junto com cada mensagem. O processo cria um novo checkpoint antes da entrega da mensagem para a aplicação se o CNm for maior que o CN local. Todas as mensagens que podem estar em trânsito são registradas em log do emitente, estas mensagens são todas aquelas que não foram confirmadas pelos destinatários no momento do checkpoint. O processo emitente também registra em log os CN emitentes e destinatários, estes contadores são utilizados para a detecção de perda ou duplicidade de mensagens devido às retransmissões. Durante o período de desconexão, a unidade móvel encontra-se fora da área de cobertura das células, desta forma a unidade não poderá acessar as informações mantidas em local estável (rede estacionária). A criação de um novo estado global antes da desconexão evitará que o trabalho efetuado na unidade móvel seja revertido. Sem a existência deste estado global a aplicação irá retroceder para o último estado global que foi armazenado, sem avisar a unidade móvel. No momento da reconexão, os processos da unidade móvel serão avisados sobre a falha e irão igualmente reverter, desfazendo todo o trabalho executado enquanto estivera desconectada.
Os processos de recepção de mensagem, criação e transmissão de registro de checkpoint são explanados através do algoritmo a seguir:
Pm = identificador do emitente
CNm = número do checkpoint atual do emitente.
tempoCkpm = intervalo de tempo para o próximo checkpoint enviado pelo emitente
tempoCkpl = intervalo de tempo para o próximo checkpoint do processo local
Recebimento de Mensagens
Recebemensagem(Pm, CNm, tempoCkpm, msgm):
Se (( CN = CNm) e (tempoCkpl > tempoCkpm))
Ajusta contador de tempo para tempoCkpm ;
Senão Se (CN < CNm)
CriaCkp( );
Ajusta contador de tempo para tempoCkpm;
Fim Se Fim Se
Criação e envio de checkpoints
CriaCkp( ): CN := CN + 1;
Ajusta contador de tempo para T; Se ( CN = maxsoft )
Envia registro de checkpoint para a área de armazenamento estável; Senão
Armazena o registro de checkpoint localmente;
Fim Se