XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010
XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010
XI Workshop de Testes e Tolerância a Falhas (WTF) - SBRC 2010
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>XI</strong> <strong>Workshop</strong> <strong>de</strong> <strong>Testes</strong> e Tolerância a <strong>Falhas</strong> 33<br />
porais, assim <strong>de</strong>tectores <strong>de</strong> falhas são possíveis. Se este período for longo o suficiente,<br />
problemas como o do consenso po<strong>de</strong>m ser resolvidos nestes sistemas [Raynal 2005].<br />
Para o uso prático <strong>de</strong> <strong>de</strong>tectores <strong>de</strong> falhas, aplicações po<strong>de</strong>m ter necessida<strong>de</strong>s<br />
além das proprieda<strong>de</strong>s eventuais dos <strong>de</strong>tectores, propostas em [Chandra and Toueg 1996].<br />
Aplicações po<strong>de</strong>m ter restrições temporais, e um <strong>de</strong>tector que possui um atraso muito<br />
gran<strong>de</strong> na <strong>de</strong>tecção <strong>de</strong> falhas po<strong>de</strong> não ser suficiente. Por este motivo, [Chen et al. 2002]<br />
propõe métricas para a qualida<strong>de</strong> <strong>de</strong> serviço (quality of service), ou simplesmente QoS,<br />
<strong>de</strong> <strong>de</strong>tectores <strong>de</strong> falhas. De maneira geral, as métricas <strong>de</strong> QoS para um <strong>de</strong>tector <strong>de</strong> falhas<br />
buscam <strong>de</strong>screver a velocida<strong>de</strong> (speed) e a exatidão (accuracy) da <strong>de</strong>tecção. Em<br />
outras palavras, as métricas <strong>de</strong>finem quão rápido o <strong>de</strong>tector <strong>de</strong>tecta uma falha e quão<br />
bem este evita enganos. Ainda em [Chen et al. 2002], os autores propõem um <strong>de</strong>tector<br />
<strong>de</strong> falhas, chamado NFD-E, que po<strong>de</strong> ser configurado <strong>de</strong> acordo com os parâmetros <strong>de</strong><br />
QoS necessários para a aplicação em questão. Este <strong>de</strong>tector visa o sistema probabilístico<br />
proposto pelos autores.<br />
Em [Das et al. 2002], é <strong>de</strong>scrito um protocolo <strong>de</strong> gestão da composição <strong>de</strong> grupos,<br />
chamado SWIM. O protocolo SWIM é dividido em duas partes: um <strong>de</strong>tector <strong>de</strong><br />
falhas e um protocolo <strong>de</strong> disseminação da composição do grupo. Este <strong>de</strong>tector <strong>de</strong> falhas<br />
foi proposto inicialmente em [Gupta et al. 2001]. O <strong>de</strong>tector utiliza uma estratégia<br />
<strong>de</strong> ping randomizado, on<strong>de</strong> cada processo periodicamente testa outro processo, selecionado<br />
aleatoriamente. Informações sobre a composição do grupo e falhas <strong>de</strong> processos são<br />
transmitidas nas próprias mensagens do <strong>de</strong>tector <strong>de</strong> falhas, através <strong>de</strong> um mecanismo <strong>de</strong><br />
piggybacking.<br />
Em [van Renesse et al. 1998], é proposto um algoritmo <strong>de</strong> <strong>de</strong>tecção <strong>de</strong> falhas que<br />
se utiliza <strong>de</strong> uma estratégia <strong>de</strong> disseminação epidêmica (gossip). De acordo com esta<br />
estratégia, processos enviam periodicamente mensagens <strong>de</strong> gossip para um grupo <strong>de</strong> outros<br />
processos, estes escolhidos <strong>de</strong> maneira aleatória. A <strong>de</strong>tecção falhas é feita por um<br />
mecanismo <strong>de</strong> heartbeat. Cada mensagem <strong>de</strong> gossip é composta pelo valor <strong>de</strong> heartbeat<br />
do processo emissor juntamente com últimos valores <strong>de</strong> heartbeat que este tenha recebido<br />
<strong>de</strong> outros processos. Processos que não recebem informação nova sobre um outro<br />
<strong>de</strong>terminado processo, após um <strong>de</strong>terminado intervalo <strong>de</strong> tempo, passam a consi<strong>de</strong>rar este<br />
último como falho. Os autores sugerem ainda uma melhora para o algoritmo, para o caso<br />
do mesmo ser utilizado em um ambiente como o da Internet. Mais especificamente para<br />
o caso dos processos estarem espalhados em diferentes domínios e sub-re<strong>de</strong>s. O serviço<br />
<strong>de</strong> <strong>de</strong>teção proposto neste trabalho se baseia neste algoritmo <strong>de</strong> <strong>de</strong>teção.<br />
3. O Serviço <strong>de</strong> Detecção Proposto<br />
Este trabalho propõe um serviço <strong>de</strong> <strong>de</strong>teção <strong>de</strong> falhas baseado em disseminação<br />
epidêmica. O serviço foi implementado para a plataforma JXTA, sendo chamado JXTA-<br />
FD. O algoritmo <strong>de</strong> <strong>de</strong>tecção implementado pelo serviço JXTA-FD é baseado no algoritmo<br />
proposto em [van Renesse et al. 1998]. O monitoramento entre os processos do<br />
sistema utiliza uma estratégia <strong>de</strong> heartbeats, que são propagados através <strong>de</strong> disseminação<br />
epidêmica (gossip). O algoritmo completo do serviço po<strong>de</strong> ser visto na Figura 1.<br />
O sistema consi<strong>de</strong>rado para a execução do algoritmo é representável por um grafo<br />
completo, isto é, cada processo po<strong>de</strong> se comunicar com qualquer outro processo. Esta<br />
consi<strong>de</strong>ração foi feita com base em funcionalida<strong>de</strong>s providas pela plataforma JXTA. O