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.

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

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

Saved successfully!

Ooh no, something went wrong!