18.03.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!