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.

206 APÊNDICE A. DOORS<br />

Optimizações Em relação a esta <strong>de</strong>scrição existe algumas uma optimização simples: na matriz v ape-<br />

nas é necessário manter as entradas relativas aos servidores contidos <strong>em</strong> S (e, no caso <strong>de</strong> um <strong>de</strong>sses<br />

servidores ter sido r<strong>em</strong>ovido, dos servidores que foram os seus patrocinadores, como se explicou anteri-<br />

ormente). Adicionalmente, seria possível usar apenas uma matriz v para todos os pedidos <strong>de</strong> diss<strong>em</strong>ina-<br />

ção pen<strong>de</strong>ntes, com as modificações apropriadas no comportamento das operações.<br />

Existe um caso especial para esta operação — a situação <strong>em</strong> que se preten<strong>de</strong> a diss<strong>em</strong>inação entre<br />

todos os servidores do estado actual <strong>de</strong> todas as cópias do volume. Neste caso, o servidor que submete a<br />

operação do pedido <strong>de</strong> diss<strong>em</strong>inação po<strong>de</strong> não ter conhecimento <strong>de</strong> todos os servidores que actualmente<br />

replicam o volume. Assim, é impossível, quando a operação é submetida, <strong>de</strong>terminar exactamente o<br />

valor <strong>de</strong> S. Por isso, usa-se o valor especial S = U. Neste caso, a operação op será executada no servidor<br />

i no momento <strong>em</strong> que, <strong>de</strong> acordo com a vista actualmente <strong>de</strong>finida localmente, se tiver informação que<br />

o estado <strong>de</strong> todos os servidores activos ou r<strong>em</strong>ovidos está reflectido na cópia actual do servidor, i.e: (1)<br />

para todo o servidor j activo se t<strong>em</strong> v[i, j] = −1; (2) para todo o servidor j r<strong>em</strong>ovido com patrocinador<br />

k e número <strong>de</strong> sequência da operação nr j se t<strong>em</strong> v[i, j] = −1 ∨ v[i,k] ≥ nr j (e <strong>de</strong> forma s<strong>em</strong>elhante ao<br />

apresentado anteriormente no caso <strong>de</strong> o patrocinador ter sido igualmente r<strong>em</strong>ovido).<br />

A.1.6 Protocolo <strong>de</strong> eliminação do i<strong>de</strong>ntificador <strong>de</strong> um servidor r<strong>em</strong>ovido<br />

O protocolo <strong>de</strong> eliminação do i<strong>de</strong>ntificador <strong>de</strong> um servidor r<strong>em</strong>ovido t<strong>em</strong> por objectivo garantir que o<br />

i<strong>de</strong>ntificador do servidor r<strong>em</strong>ovido apenas é eliminado quando não é necessário ao bom funcionamento<br />

<strong>de</strong> nenhum coobjecto, ou seja, quando as operações do servidor r<strong>em</strong>ovido tiver<strong>em</strong> sido propagadas e<br />

<strong>de</strong>finitivamente processadas <strong>em</strong> todos os servidores. A eliminação <strong>de</strong> um i<strong>de</strong>ntificador permite que o<br />

mesmo seja utilizado por um novo replicador.<br />

O protocolo <strong>de</strong> eliminação do i<strong>de</strong>ntificador <strong>de</strong> um servidor r<strong>em</strong>ovido, i, é iniciado pelo patrocinador<br />

da r<strong>em</strong>oção, j, e consiste nos seguintes passos:<br />

• O patrocinador, j, da r<strong>em</strong>oção do servidor i, após submeter a operação <strong>de</strong> r<strong>em</strong>oção, submete a<br />

operação diss<strong>em</strong>inate(uid,{ j},askEliminate(i),null). Desta forma, garante-se que a operação<br />

askEliminate apenas é executada num servidor após se conhecer<strong>em</strong> nesse servidor todas as opera-<br />

ções conhecidas actualmente <strong>em</strong> j relativas a todos os coobjectos (e, <strong>em</strong> consequência do protocolo<br />

<strong>de</strong> r<strong>em</strong>oção, todas as operações que foram submetidas <strong>em</strong> i).<br />

• O coobjecto <strong>de</strong> filiação mantém, para cada i<strong>de</strong>ntificador i que se preten<strong>de</strong> eliminar, o par (i,R), <strong>em</strong><br />

que R contém o conjunto <strong>de</strong> servidores que <strong>de</strong>ram a sua concordância à eliminação <strong>de</strong> i.<br />

• A execução da operação askEliminate(i) num servidor l, leva à introdução do par (i,{}) na infor-<br />

mação sobre os i<strong>de</strong>ntificadores a eliminar.

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

Saved successfully!

Ooh no, something went wrong!