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> 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: