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> 13<br />

consi<strong>de</strong>rando que este wait espera por mensagens <strong>de</strong> diversas rodadas <strong>de</strong> forma<br />

concorrente, até que ocorra uma rodada com <strong>de</strong>cisão.<br />

• Possibilida<strong>de</strong> <strong>de</strong> o algoritmo executar eternamente sem obter o consenso:<br />

– Como existem ao menos k processos corretos, que não irão falhar em nenhum<br />

momento, nas k partições síncronas, e como o mecanismo para eleição <strong>de</strong> lí<strong>de</strong>r<br />

só escolhe processos membros <strong>de</strong> partições síncronas como lí<strong>de</strong>r, e em or<strong>de</strong>m<br />

crescente, no momento em que este mecanismo escolher um <strong>de</strong>stes k processos<br />

como lí<strong>de</strong>r, após o início <strong>de</strong> uma nova rodada por este processo esta rodada será<br />

terminada e o consenso será obtido.<br />

Portanto, como o algoritmo não bloqueia, e não há a possibilida<strong>de</strong> <strong>de</strong> as rodadas serem<br />

sempre executadas sem encerrarem, o consenso termina a sua execução, o que contradiz a<br />

suposição inicial da prova.<br />

✷ T heorem 1<br />

4.3.2. Valida<strong>de</strong><br />

Todos os processos iniciam com algum valor, e apenas valores indicados pelos processos po<strong>de</strong>m<br />

ser utilizados para o acordo.<br />

Theorem 2. Se um processo <strong>de</strong>ci<strong>de</strong>, o faz pelo valor inicial <strong>de</strong> algum dos processos<br />

participantes do consenso.<br />

A prova <strong>de</strong>ste teorema se baseia fato <strong>de</strong> que no início os processos só propõem seu<br />

valor inicial, e que a cada rodada, os processos propõem seu valor inicial, ou o valor inicial<br />

<strong>de</strong> algum outro processo, adquirido em uma rodada anterior. Esta prova não será apresentada<br />

neste trabalho.<br />

4.3.3. Acordo Uniforme<br />

O consenso apresentado na Figura 2 satifaz a proprieda<strong>de</strong> consenso uniforme. A prova para<br />

esta proprieda<strong>de</strong> está <strong>de</strong>scrita no Teorema 3, a seguir.<br />

Theorem 3. Se um processo <strong>de</strong>ci<strong>de</strong> por um valor v, todos os processos que <strong>de</strong>ci<strong>de</strong>m o fazem<br />

pelo mesmo valor v.<br />

Proof A prova <strong>de</strong>ste teorema é <strong>de</strong>senvolvida por contradição, assumindo que dois processos,<br />

p x e p y <strong>de</strong>ci<strong>de</strong>m pelos valores v x e v y , respectivamente, e que v x ≠ v y .<br />

Vamos consi<strong>de</strong>rar duas possibilida<strong>de</strong>s:<br />

1. Os processos p x e p y <strong>de</strong>ci<strong>de</strong>m na mesma rodada:<br />

• Se os processos p x e p y <strong>de</strong>ci<strong>de</strong>m na mesma rodada, o fazem pelo valor<br />

recebido nas mensagens ACK-ACCEPT-REQUEST, enviadas por um Quorum<br />

<strong>de</strong> processos. O valor encaminhado nestas mensagens é valor v c , proposto<br />

pelo processo p c da rodada, sendo, portanto o mesmo em todas as mensagens.<br />

Portanto, neste caso p x e p y <strong>de</strong>ci<strong>de</strong>m pelo mesmo valor, e v x = v y .<br />

2. Os processos p x e p y <strong>de</strong>ci<strong>de</strong>m em rodadas diferentes:

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

Saved successfully!

Ooh no, something went wrong!