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.

11.1. REPLICAÇÃO 181<br />

da<strong>de</strong> 3 . Esta técnica permite verificar a <strong>de</strong>sigualda<strong>de</strong> entre duas réplicas e i<strong>de</strong>ntificar aquela que po<strong>de</strong> ser<br />

causalmente <strong>de</strong>pen<strong>de</strong>nte da outra.<br />

No entanto, esta técnica não permite verificar se os valores <strong>de</strong> duas réplicas foram modificados con-<br />

corrent<strong>em</strong>ente. Para tal, uma aproximação possível consiste <strong>em</strong> manter duas estampilhas t<strong>em</strong>porais: a<br />

actual e a anterior. Esta aproximação é usada, por ex<strong>em</strong>plo, no sist<strong>em</strong>a Palm HotSync [117]. Esta técnica<br />

apenas é exacta quando se usam apenas duas réplicas.<br />

A utilização <strong>de</strong> vectores-versão [119] permite verificar <strong>de</strong> forma exacta se duas réplicas foram mo-<br />

dificadas concorrent<strong>em</strong>ente (quer se use a propagação do estado ou <strong>de</strong> operações). Esta técnica é usada<br />

<strong>de</strong> forma generalizada nos sist<strong>em</strong>as <strong>de</strong> replicação com múltiplas réplicas (por ex<strong>em</strong>plo, nos sist<strong>em</strong>as<br />

Ficus [66], Coda [87], Bayou [161]).<br />

Como a dimensão do vector-versão é proporcional ao número <strong>de</strong> réplicas existentes no sist<strong>em</strong>a 4 , os<br />

vectores-versão po<strong>de</strong>m ter dimensões significativas nos sist<strong>em</strong>a <strong>de</strong> muito larga-escala. Assim, o pro-<br />

bl<strong>em</strong>a da <strong>gestão</strong> dos vectores-versão, i.e, como se po<strong>de</strong> introduzir e r<strong>em</strong>over novos el<strong>em</strong>entos <strong>de</strong> forma<br />

eficiente e s<strong>em</strong> exigir coor<strong>de</strong>nação global, foi estudada <strong>em</strong> vários sist<strong>em</strong>as [5, 140].<br />

No sist<strong>em</strong>a DOORS, cada sequência <strong>de</strong> operações é i<strong>de</strong>ntificada no servidor com um relógio lógico<br />

que permite <strong>de</strong>finir uma or<strong>de</strong>m total que respeita a causalida<strong>de</strong>. A cada sequência <strong>de</strong> operações é ainda<br />

adicionado, no cliente, um vector-versão que i<strong>de</strong>ntifica o estado do objecto no qual foram produzidas<br />

as modficações. Como este vector-versão apenas reflecte as operações recebidas nos servidores, apenas<br />

permite traçar <strong>de</strong> forma exacta a <strong>de</strong>pendência com as operações já executadas num servidor. Nas aplica-<br />

ções <strong>de</strong>senvolvidas, esta aproximação básica revelou-se suficiente. No entanto, este probl<strong>em</strong>a e possíveis<br />

soluções foram discutidos com maior <strong>de</strong>talhe na secção 4.1.1.<br />

Quando se preten<strong>de</strong> reconciliar um conjunto <strong>de</strong> objectos, po<strong>de</strong>m usar-se as técnicas anteriores, as-<br />

sociadas ao conjunto <strong>de</strong> objectos (<strong>em</strong> vez <strong>de</strong> associadas a cada um dos objectos) para <strong>de</strong>tectar mo-<br />

dificações num nível <strong>de</strong> granularida<strong>de</strong> superior. Esta técnica é usada, por ex<strong>em</strong>plo, <strong>em</strong> sist<strong>em</strong>as <strong>de</strong><br />

ficheiros [107, 86] e sist<strong>em</strong>a <strong>de</strong> bases <strong>de</strong> <strong>dados</strong> [137].<br />

11.1.8 Propagação das modificações: propagar como?<br />

A propagação das modificações entre as várias réplicas <strong>de</strong> um sist<strong>em</strong>a po<strong>de</strong> ser dividido <strong>em</strong> dois sub-<br />

probl<strong>em</strong>as: a propagação entre as réplicas principais e a propagação entre as réplicas principais e se-<br />

cundárias. Diz<strong>em</strong>os que uma réplica principal está presente num servidor e uma réplica secundária está<br />

3 No caso dos relógios físicos é necessários manter os relógios sincronizados.<br />

4 Note que apenas é necessário manter uma entrada no vector para cada réplica <strong>em</strong> que são produzidas alterações. Assim,<br />

se se assumir que <strong>em</strong> cada momento apenas existe um pequeno número <strong>de</strong> réplicas <strong>em</strong> que são produzidas alterações, mas<br />

que a i<strong>de</strong>ntida<strong>de</strong> das réplicas varia ao longo do t<strong>em</strong>po, o probl<strong>em</strong>a principal consiste <strong>em</strong> efectuar a reciclag<strong>em</strong> automática<br />

(garbage-collection) das referências às réplicas que já não são necessárias.

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

Saved successfully!

Ooh no, something went wrong!