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.
6 Anais<br />
consenso para o mo<strong>de</strong>lo assíncrono, <strong>de</strong>senvolvidos a partir <strong>de</strong> algoritmos existentes para o<br />
mo<strong>de</strong>lo <strong>de</strong> falhas crash-stop.<br />
O algoritmo Paxos, apresentado por Lamport em [Lamport 1998, Lamport 2001],<br />
executa sobre um sistema assíncrono dotado <strong>de</strong> um mecanismo para eleição <strong>de</strong> lí<strong>de</strong>r que<br />
apresente a proprieda<strong>de</strong> mínima <strong>de</strong> que em algum momento <strong>de</strong> sua execução irá indicar como<br />
lí<strong>de</strong>r um processo que não irá falhar, o que irá garantir a terminação do protocolo. O Paxos<br />
tolera a recuperação <strong>de</strong> <strong>de</strong>feitos, <strong>de</strong>s<strong>de</strong> que uma maioria dos processos esteja correta, para<br />
garantir tanto a terminação quanto o acordo uniforme.<br />
Diferente <strong>de</strong>stes algoritmos propostos para o consenso, assumimos um mo<strong>de</strong>lo híbrido<br />
<strong>de</strong> sistema distribuídos, no qual existem componentes síncronos e assíncronos.<br />
3. Mo<strong>de</strong>lo Spa (Partitioned Synchronous)<br />
Um sistema é composto por conjunto Π = {p 1 , p 2 , ..., p n } <strong>de</strong> processos que estão distribuídos<br />
em sítios possivelmente distintos <strong>de</strong> uma re<strong>de</strong> <strong>de</strong> computadores e por um conjunto χ =<br />
{c 1 , c 2 , ..., c m } <strong>de</strong> canais <strong>de</strong> comunicação. Sítios computacionais formam topologias arbitrárias<br />
e processos se comunicam por meio <strong>de</strong> protocolos <strong>de</strong> transporte fim-a-fim. A comunicação<br />
fim-a-fim <strong>de</strong>fine canais que po<strong>de</strong>m incluir várias conexões físicas no nível da re<strong>de</strong>. Portanto,<br />
um canal <strong>de</strong> comunicação c i conectando processos p i e p j <strong>de</strong>fine uma relação do tipo "é possível<br />
se comunicar" entre p i e p j , ao invés <strong>de</strong> uma conexão ao nível da re<strong>de</strong> entre as máquinas que<br />
hospedam p i e p j . Assumimos que o sistema <strong>de</strong>finido por processos e canais <strong>de</strong> comunicação<br />
forma o grafo simples e completo DS(Π, χ) com (n × (n − 1))/2 arestas. Particionamento <strong>de</strong><br />
re<strong>de</strong> não é consi<strong>de</strong>rado em nosso mo<strong>de</strong>lo.<br />
Um processo tem acesso a um relógio local com taxa <strong>de</strong> <strong>de</strong>svio limitado por ρ.<br />
Processos e canais <strong>de</strong> comunicação po<strong>de</strong>m ser timely ou untimely. Timely/untimely é<br />
equivalente a synchronous/asynchronous como apresentado em [Dwork et al. 1988]. Contudo,<br />
os mo<strong>de</strong>los parcialmente síncronos consi<strong>de</strong>rados em [Dwork et al. 1988] não consi<strong>de</strong>ram<br />
configurações híbridas on<strong>de</strong> alguns processos/canais são síncronos e outros assíncronos. Um<br />
processo p i é dito timely se existe um limite superior (upper-bound) φ para a execução <strong>de</strong><br />
um passo <strong>de</strong> computação por p i . De forma análoga, um canal c i é timely se existe um limite<br />
superior δ para o atrazo <strong>de</strong> transmissão <strong>de</strong> uma mensagem em c i , e c i conecta dois processos<br />
timely. Caso essas condições não se verifiquem, processos e canais são ditos untimely e os<br />
respectivos limites superiores são finitos, porém arbitrários.<br />
Um canal c i = (p i , p j ) implementa transmissão <strong>de</strong> mensagem em ambas as direções,<br />
<strong>de</strong> p i para p j e <strong>de</strong> p j para p i . δ and φ são parâmetros do sistema computacional subjacente,<br />
fornecidos por mecanismos a<strong>de</strong>quados <strong>de</strong> sistemas operacionais e re<strong>de</strong>s <strong>de</strong> tempo real. Também<br />
assumimos que os processos em Π sabem a QoS <strong>de</strong> todos os processos e canais antes da<br />
execução da aplicação.<br />
É assumido a existência <strong>de</strong> um oráculo <strong>de</strong> timeliness <strong>de</strong>finido pela função QoS que<br />
mapeia processos e canais para valores T ou U (timely ou untimely). Portanto, tal oráculo<br />
informa os processos sobre a QoS atual em termos <strong>de</strong> timeliness <strong>de</strong> processos e canais <strong>de</strong><br />
comunicação. O oráculo é assumido ser preciso: a execução <strong>de</strong> QoS(x) no instante t retorna<br />
T/U se e somente se a QoS do elemento x (processo ou canal) no instante t for timely/untimely.<br />
Uma vez que assumimos que a QoS dos processos e canais é estática e conhecida, uma<br />
implementação trivial para o oráculo po<strong>de</strong> ser realizada durante uma fase <strong>de</strong> inicialização do