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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4.1. RECONCILIAÇÃO 57<br />

4.1.4.2 Verificação <strong>de</strong> estabilida<strong>de</strong><br />

A or<strong>de</strong>nação total por verificação <strong>de</strong> estabilida<strong>de</strong> consiste na execução das operações assim que é possível<br />

<strong>de</strong>terminar que não existe nenhuma operação anterior na or<strong>de</strong>m total <strong>de</strong>finida.<br />

O componente <strong>de</strong> reconciliação por verificação <strong>de</strong> estabilida<strong>de</strong> <strong>de</strong>fine a or<strong>de</strong>m total das operações<br />

<br />

usando o i<strong>de</strong>ntificador atribuído no servidor: (s1,n1) ≺ (s2,n2) sse n1 < n2 (n1 = n2 s1 < s2). Para<br />

verificar a estabilida<strong>de</strong> das operações, cada réplica usa o sumário das operações conhecidas. Este sumário<br />

é actualizado durante as sessões <strong>de</strong> sincronização epidémicas e reflecte não só as operações recebidas,<br />

mas também, os números <strong>de</strong> sequência que se sabe não ter<strong>em</strong> sido usados <strong>em</strong> cada uma das réplicas.<br />

Em cada servidor, o relógio lógico usado para atribuir o número <strong>de</strong> sequência a cada operação é ac-<br />

tualizado após cada sessão <strong>de</strong> sincronização <strong>de</strong> forma a que seja superior ao maior número <strong>de</strong> sequência<br />

<strong>de</strong> uma operação recebida. Em consequência, o valor relativo ao próprio servidor no sumário das opera-<br />

ções recebidas é actualizado (este assunto é <strong>de</strong>talhado na secção 6.2.2). Este facto garante que, se todos<br />

as réplicas participar<strong>em</strong> <strong>em</strong> sessões <strong>de</strong> sincronização (que incluam transitivamente todos os servidores),<br />

todas as operações submetidas serão dadas como estáveis <strong>em</strong> todas as réplicas in<strong>de</strong>pen<strong>de</strong>nt<strong>em</strong>ente do<br />

número <strong>de</strong> operações recebidas <strong>em</strong> cada servidor.<br />

Para garantir que todas as operações são executadas quando um servidor é r<strong>em</strong>ovido, a réplica do<br />

coobjecto nesse servidor submete uma operação a indicar qual o último número <strong>de</strong> sequência utilizado.<br />

No caso da r<strong>em</strong>oção forçada <strong>de</strong> um servidor, a réplica do patrocinador executa essa operação quando<br />

é informada da r<strong>em</strong>oção do servidor (a sincronização do estado entre todas as réplicas garante que o<br />

patrocinador conhece todas as operações do servidor r<strong>em</strong>ovido conhecidas no sist<strong>em</strong>a). Em todas as<br />

réplicas, na or<strong>de</strong>nação das operações, consi<strong>de</strong>ram-se não só as réplicas activas, mas também todas as<br />

réplicas r<strong>em</strong>ovidas até ser<strong>em</strong> or<strong>de</strong>nadas todas as operações com número <strong>de</strong> sequência menor ou igual ao<br />

último número <strong>de</strong> sequência usado nessa réplica.<br />

Para garantir que as operações são or<strong>de</strong>nadas correctamente quando um novo servidor se junta ao<br />

grupo <strong>de</strong> replicadores <strong>de</strong> um volume, é apenas necessário ter especial cuidado com o número <strong>de</strong> sequên-<br />

cia que se atribui à primeira operação submetida no novo servidor (<strong>de</strong>ve ser maior ou igual a max + 2,<br />

com max o valor do maior número <strong>de</strong> sequência que o novo servidor sabe ter sido usado <strong>em</strong> qualquer<br />

réplica) e à utilização da informação obtida nesse servidor (por o i<strong>de</strong>ntificador <strong>de</strong> um servidor ser inici-<br />

almente provisório). A necessida<strong>de</strong> <strong>de</strong>stas restrições, explicada no apêndice A.1.3.1, apenas ficará clara<br />

após a apresentação do mecanismo que controla o conjunto <strong>de</strong> replicadores <strong>de</strong> um volume, <strong>de</strong>scrito na<br />

secção 6.2.1.<br />

No protótipo do sist<strong>em</strong>a DOORS, impl<strong>em</strong>entou-se um componente <strong>de</strong> reconciliação que usa técnicas<br />

<strong>de</strong> verificação <strong>de</strong> estabilida<strong>de</strong> com uma aproximação pessimista. Foi igualmente impl<strong>em</strong>entado um<br />

componente que usa uma aproximação optimista usando a técnica <strong>de</strong>sfazer-refazer (<strong>de</strong> forma s<strong>em</strong>elhante

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

Saved successfully!

Ooh no, something went wrong!