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

asc.di.fct.unl.pt
from asc.di.fct.unl.pt More from this publisher
11.04.2013 Views

58 CAPÍTULO 4. DESCRIÇÃO DAS FUNCIONALIDADES PRINCIPAIS DO SISTEMA DOORS à da ordenação total usando um sequenciador). Para garantir a execução correcta dos blocos só-uma-vez usa-se a mesma aproximação utilizada no componente de reconciliação ordem causal pessimista. Quando se usam técnicas de estabilidade, a falha definitiva de um qualquer servidor impede a orde- nação de novas operações. No caso de todas as falhas nos servidores serem temporárias, garante-se que todas as operações são finalmente ordenadas desde que todos os servidores continuem a participar em sessões de sincronização, mesmo que não exista nenhum “momento” em que todos os servidores estejam activos. As múltiplas réplicas de um coobjecto convergem para um estado comum passando pelos mesmos estados intermédios. Em cada momento existe uma réplica que executou um maior número de operações (e cujo estado se pode definir como estado oficial actual do coobjecto). No entanto, apenas é possível determinar a sua identidade comparando o estado das várias réplicas. 4.1.4.3 Consenso/eleição/quorum As técnicas apresentadas anteriormente para ordenar totalmente as operações executadas num coobjecto apresentam algumas limitações na tolerância a falhas. Assim, no caso da utilização de uma réplica sequenciadora, a falha do sequenciador impede o progresso do sistema, i.e., a ordenação de novas men- sagens. No caso da utilização de técnicas de verificação de estabilidade, a falha definitiva de um servidor impede o progresso do sistema (até o servidor ser removido do grupo de replicadores do volume). Para ultrapassar as limitações anteriores é possível implementar técnicas de ordenação por consenso. Neste caso, o sistema pode progredir desde que exista um qualquer quorum [56, 121] de réplicas activas. Usando técnicas de consenso, a ordenação das operações faz-se em rondas sucessivas. Em cada ronda, as réplicas de um coobjecto executam um algoritmo de consenso [102] no qual decidem qual a operação (ou conjunto de operações) a ordenar. Os algoritmos de consenso propostos em [70] e [82], baseados na utilização de comunicação epi- démica, podem ser implementados de forma imediata no sistema DOORS. Nestes algoritmos, em cada ronda, cada servidor deve votar em uma e uma só operação. A operação a ser executada é aquela que obtiver um quorum de votos em [70] ou a maioria dos votos em [82]. Enquanto no algoritmo [70] é pos- sível a existência de rondas em que nenhuma operação é ordenada, em [82] selecciona-se sempre uma operação. Em ambos os algoritmos existem situações em que a decisão apenas pode ser tomada após conhecer o voto de todos os servidores, o que é consistente com a conhecida impossibilidade de definir um algoritmo de consenso que termine em todas as situações num sistema distribuído assíncrono [52]. Para contornar esta impossibilidade foram propostos vários algoritmos usando diferentes aproximações, entre as quais a utilização de detectores de falhas [3, 72, 110] e aleatoriedade [15].

4.1. RECONCILIAÇÃO 59 No decurso do trabalho que conduziu a esta dissertação explorou-se a possibilidade de desenvolver e implementar um componente de reconciliação baseado na utilização de um algoritmo de consenso 6 . Este componente teria como objectivo ultrapassar as limitações na tolerância a falhas expostas anteriormente. No entanto, um estudo desenvolvido num ambiente de larga escala (a Internet) [9] mostra que as falhas de comunicação limitam a disponibilidade dos sistemas de quorum. Nos ambientes de larga escala, o melhor sistema de quorum parece ser obtido limitando os servidores utilizados a uma única rede local. No âmbito de uma rede local, a forte correlação nas falhas dos servidores (as quais são explicadas pela dependência de um serviço de DNS comum, de uma fonte de energia comum, de um sistema distribuído de ficheiros comum, etc.) limita a melhoria de disponibilidade obtida pela utilização de um sistema de quorum face ao recurso a um servidor único. Assim, como os algoritmos de consenso requerem que exista um quorum de servidores activos, parece não ser clara a vantagem na utilização de um componente de reconciliação usando técnicas de consenso para ultrapassar as limitações na tolerância a falhas, face à utilização do componente de reconciliação que usa um sequenciador. Este facto, conjugado com o elevado número de mensagens envolvidas num algoritmo de consenso (i.e., mensagens necessárias para ordenar cada operação ou conjunto de operações), levou a que não se tivesse implementado nenhum componente de reconciliação utilizando técnicas de consenso. 4.1.5 Transformação de operações A execução pela mesma ordem em todas as réplicas de um conjunto de operações executadas concor- rentemente garante a equivalência final das várias réplicas. No entanto, como cada operação vai ser executada num estado do coobjecto diferente do observado aquando da execução (submissão) original da operação, os seus efeitos podem ser diferentes dos esperados pelo utilizador. Para solucionar este problema foi proposto que, antes de executar uma operação numa réplica, a operação fosse transformada para incluir os efeitos das operações não conhecidas aquando da execução inicial da operação. Desta forma, as intenções do utilizador são respeitadas. Vários algoritmos foram propostos utilizando esta ideia [46, 159, 118, 158]. Esta aproximação tem o inconveniente de requerer a definição de uma ou várias funções capazes de transformar as operações. No caso geral, definir uma função de transformação de operações pode ser bastante complexo, pelo que esta técnica tem sido utilizada quase exclusivamente no âmbito dos editores cooperativos síncronos. No entanto, os exemplos apresentados na literatura e a experiência obtida com o sistema DOORS, parecem sugerir que esta técnica pode ser usada facilmente nas seguintes situações: anular a execução de operações idênticas; e ajustar parâmetros que contêm posições absolutas. No protótipo do sistema DOORS estendeu-se o componente de reconciliação ordem total optimista 6 No âmbito deste trabalho, chegaram a ser produzidos alguns resultado relativos à teoria de sistemas de quorum [127].

4.1. RECONCILIAÇÃO 59<br />

No <strong>de</strong>curso do trabalho que conduziu a esta dissertação explorou-se a possibilida<strong>de</strong> <strong>de</strong> <strong>de</strong>senvolver e<br />

impl<strong>em</strong>entar um componente <strong>de</strong> reconciliação baseado na utilização <strong>de</strong> um algoritmo <strong>de</strong> consenso 6 . Este<br />

componente teria como objectivo ultrapassar as limitações na tolerância a falhas expostas anteriormente.<br />

No entanto, um estudo <strong>de</strong>senvolvido num ambiente <strong>de</strong> larga escala (a Internet) [9] mostra que as<br />

falhas <strong>de</strong> comunicação limitam a disponibilida<strong>de</strong> dos sist<strong>em</strong>as <strong>de</strong> quorum. Nos <strong>ambientes</strong> <strong>de</strong> larga escala,<br />

o melhor sist<strong>em</strong>a <strong>de</strong> quorum parece ser obtido limitando os servidores utilizados a uma única re<strong>de</strong> local.<br />

No âmbito <strong>de</strong> uma re<strong>de</strong> local, a forte correlação nas falhas dos servidores (as quais são explicadas pela<br />

<strong>de</strong>pendência <strong>de</strong> um serviço <strong>de</strong> DNS comum, <strong>de</strong> uma fonte <strong>de</strong> energia comum, <strong>de</strong> um sist<strong>em</strong>a distribuído<br />

<strong>de</strong> ficheiros comum, etc.) limita a melhoria <strong>de</strong> disponibilida<strong>de</strong> obtida pela utilização <strong>de</strong> um sist<strong>em</strong>a<br />

<strong>de</strong> quorum face ao recurso a um servidor único. Assim, como os algoritmos <strong>de</strong> consenso requer<strong>em</strong> que<br />

exista um quorum <strong>de</strong> servidores activos, parece não ser clara a vantag<strong>em</strong> na utilização <strong>de</strong> um componente<br />

<strong>de</strong> reconciliação usando técnicas <strong>de</strong> consenso para ultrapassar as limitações na tolerância a falhas, face<br />

à utilização do componente <strong>de</strong> reconciliação que usa um sequenciador. Este facto, conjugado com o<br />

elevado número <strong>de</strong> mensagens envolvidas num algoritmo <strong>de</strong> consenso (i.e., mensagens necessárias para<br />

or<strong>de</strong>nar cada operação ou conjunto <strong>de</strong> operações), levou a que não se tivesse impl<strong>em</strong>entado nenhum<br />

componente <strong>de</strong> reconciliação utilizando técnicas <strong>de</strong> consenso.<br />

4.1.5 Transformação <strong>de</strong> operações<br />

A execução pela mesma or<strong>de</strong>m <strong>em</strong> todas as réplicas <strong>de</strong> um conjunto <strong>de</strong> operações executadas concor-<br />

rent<strong>em</strong>ente garante a equivalência final das várias réplicas. No entanto, como cada operação vai ser<br />

executada num estado do coobjecto diferente do observado aquando da execução (submissão) original<br />

da operação, os seus efeitos po<strong>de</strong>m ser diferentes dos esperados pelo utilizador.<br />

Para solucionar este probl<strong>em</strong>a foi proposto que, antes <strong>de</strong> executar uma operação numa réplica, a<br />

operação fosse transformada para incluir os efeitos das operações não conhecidas aquando da execução<br />

inicial da operação. Desta forma, as intenções do utilizador são respeitadas. Vários algoritmos foram<br />

propostos utilizando esta i<strong>de</strong>ia [46, 159, 118, 158].<br />

Esta aproximação t<strong>em</strong> o inconveniente <strong>de</strong> requerer a <strong>de</strong>finição <strong>de</strong> uma ou várias funções capazes <strong>de</strong><br />

transformar as operações. No caso geral, <strong>de</strong>finir uma função <strong>de</strong> transformação <strong>de</strong> operações po<strong>de</strong> ser<br />

bastante complexo, pelo que esta técnica t<strong>em</strong> sido utilizada quase exclusivamente no âmbito dos editores<br />

cooperativos síncronos. No entanto, os ex<strong>em</strong>plos apresentados na literatura e a experiência obtida com<br />

o sist<strong>em</strong>a DOORS, parec<strong>em</strong> sugerir que esta técnica po<strong>de</strong> ser usada facilmente nas seguintes situações:<br />

anular a execução <strong>de</strong> operações idênticas; e ajustar parâmetros que contêm posições absolutas.<br />

No protótipo do sist<strong>em</strong>a DOORS esten<strong>de</strong>u-se o componente <strong>de</strong> reconciliação or<strong>de</strong>m total optimista<br />

6 No âmbito <strong>de</strong>ste trabalho, chegaram a ser produzidos alguns resultado relativos à teoria <strong>de</strong> sist<strong>em</strong>as <strong>de</strong> quorum [127].

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

Saved successfully!

Ooh no, something went wrong!