11.04.2013 Views

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

gestão de dados partilhados em ambientes de computação móvel

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

58 CAPÍTULO 4. DESCRIÇÃO DAS FUNCIONALIDADES PRINCIPAIS DO SISTEMA DOORS<br />

à da or<strong>de</strong>nação total usando um sequenciador).<br />

Para garantir a execução correcta dos blocos só-uma-vez usa-se a mesma aproximação utilizada no<br />

componente <strong>de</strong> reconciliação or<strong>de</strong>m causal pessimista.<br />

Quando se usam técnicas <strong>de</strong> estabilida<strong>de</strong>, a falha <strong>de</strong>finitiva <strong>de</strong> um qualquer servidor impe<strong>de</strong> a or<strong>de</strong>-<br />

nação <strong>de</strong> novas operações. No caso <strong>de</strong> todas as falhas nos servidores ser<strong>em</strong> t<strong>em</strong>porárias, garante-se que<br />

todas as operações são finalmente or<strong>de</strong>nadas <strong>de</strong>s<strong>de</strong> que todos os servidores continu<strong>em</strong> a participar <strong>em</strong><br />

sessões <strong>de</strong> sincronização, mesmo que não exista nenhum “momento” <strong>em</strong> que todos os servidores estejam<br />

activos.<br />

As múltiplas réplicas <strong>de</strong> um coobjecto converg<strong>em</strong> para um estado comum passando pelos mesmos<br />

estados intermédios. Em cada momento existe uma réplica que executou um maior número <strong>de</strong> operações<br />

(e cujo estado se po<strong>de</strong> <strong>de</strong>finir como estado oficial actual do coobjecto). No entanto, apenas é possível<br />

<strong>de</strong>terminar a sua i<strong>de</strong>ntida<strong>de</strong> comparando o estado das várias réplicas.<br />

4.1.4.3 Consenso/eleição/quorum<br />

As técnicas apresentadas anteriormente para or<strong>de</strong>nar totalmente as operações executadas num coobjecto<br />

apresentam algumas limitações na tolerância a falhas. Assim, no caso da utilização <strong>de</strong> uma réplica<br />

sequenciadora, a falha do sequenciador impe<strong>de</strong> o progresso do sist<strong>em</strong>a, i.e., a or<strong>de</strong>nação <strong>de</strong> novas men-<br />

sagens. No caso da utilização <strong>de</strong> técnicas <strong>de</strong> verificação <strong>de</strong> estabilida<strong>de</strong>, a falha <strong>de</strong>finitiva <strong>de</strong> um servidor<br />

impe<strong>de</strong> o progresso do sist<strong>em</strong>a (até o servidor ser r<strong>em</strong>ovido do grupo <strong>de</strong> replicadores do volume).<br />

Para ultrapassar as limitações anteriores é possível impl<strong>em</strong>entar técnicas <strong>de</strong> or<strong>de</strong>nação por consenso.<br />

Neste caso, o sist<strong>em</strong>a po<strong>de</strong> progredir <strong>de</strong>s<strong>de</strong> que exista um qualquer quorum [56, 121] <strong>de</strong> réplicas activas.<br />

Usando técnicas <strong>de</strong> consenso, a or<strong>de</strong>nação das operações faz-se <strong>em</strong> rondas sucessivas. Em cada<br />

ronda, as réplicas <strong>de</strong> um coobjecto executam um algoritmo <strong>de</strong> consenso [102] no qual <strong>de</strong>ci<strong>de</strong>m qual a<br />

operação (ou conjunto <strong>de</strong> operações) a or<strong>de</strong>nar.<br />

Os algoritmos <strong>de</strong> consenso propostos <strong>em</strong> [70] e [82], baseados na utilização <strong>de</strong> comunicação epi-<br />

démica, po<strong>de</strong>m ser impl<strong>em</strong>entados <strong>de</strong> forma imediata no sist<strong>em</strong>a DOORS. Nestes algoritmos, <strong>em</strong> cada<br />

ronda, cada servidor <strong>de</strong>ve votar <strong>em</strong> uma e uma só operação. A operação a ser executada é aquela que<br />

obtiver um quorum <strong>de</strong> votos <strong>em</strong> [70] ou a maioria dos votos <strong>em</strong> [82]. Enquanto no algoritmo [70] é pos-<br />

sível a existência <strong>de</strong> rondas <strong>em</strong> que nenhuma operação é or<strong>de</strong>nada, <strong>em</strong> [82] selecciona-se s<strong>em</strong>pre uma<br />

operação. Em ambos os algoritmos exist<strong>em</strong> situações <strong>em</strong> que a <strong>de</strong>cisão apenas po<strong>de</strong> ser tomada após<br />

conhecer o voto <strong>de</strong> todos os servidores, o que é consistente com a conhecida impossibilida<strong>de</strong> <strong>de</strong> <strong>de</strong>finir<br />

um algoritmo <strong>de</strong> consenso que termine <strong>em</strong> todas as situações num sist<strong>em</strong>a distribuído assíncrono [52].<br />

Para contornar esta impossibilida<strong>de</strong> foram propostos vários algoritmos usando diferentes aproximações,<br />

entre as quais a utilização <strong>de</strong> <strong>de</strong>tectores <strong>de</strong> falhas [3, 72, 110] e aleatorieda<strong>de</strong> [15].

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

Saved successfully!

Ooh no, something went wrong!