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.

A.1. FILIAÇÃO 199<br />

A operação <strong>de</strong> r<strong>em</strong>oção <strong>de</strong> um servidor apenas altera o estado no trio que representa esse servidor<br />

<strong>em</strong> M . A operação <strong>de</strong> eliminação das referências <strong>de</strong> um servidor r<strong>em</strong>ove o trio respectivo do conjunto<br />

M .<br />

A garantia da igualda<strong>de</strong> entre o estado <strong>de</strong> duas réplicas <strong>de</strong> um coobjecto <strong>de</strong> filiação que conheçam<br />

o mesmo conjunto <strong>de</strong> operações (proprieda<strong>de</strong> <strong>de</strong> segurança) é resultado <strong>de</strong>: (1) ser<strong>em</strong> executadas todas<br />

as operações conhecidas; (2) as operações ser<strong>em</strong> executadas pela mesma or<strong>de</strong>m total; e (3) as operações<br />

ser<strong>em</strong> <strong>de</strong>terministas.<br />

A propagação das operações <strong>de</strong> modificação entre as várias réplicas garante que todas as réplicas do<br />

coobjecto <strong>de</strong> filiação evolu<strong>em</strong> para o mesmo estado comum (proprieda<strong>de</strong> <strong>de</strong> evolução contínua).<br />

O sumário das operações que modificam a filiação é usado como i<strong>de</strong>ntificador da vista. O algoritmo<br />

optimista usado para executar as operações po<strong>de</strong> levar a que o mesmo i<strong>de</strong>ntificador seja (t<strong>em</strong>porari-<br />

amente) usado <strong>em</strong> cópias diferentes para i<strong>de</strong>ntificar servidores diferentes (por ex<strong>em</strong>plo, quando dois<br />

servidores entram concorrent<strong>em</strong>ente no grupo <strong>de</strong> replicadores usando patrocinadores diferentes). No<br />

entanto, como se explica <strong>de</strong> seguida, o i<strong>de</strong>ntificador da vista i<strong>de</strong>ntifica univocamente uma vista.<br />

Sejam si e s j as sequências <strong>de</strong> operações que modificam a filiação executadas nas cópias i e j do coob-<br />

jecto <strong>de</strong> filiação (a partir do mesmo estado inicial). Se si = s j, a igualda<strong>de</strong> das cópias i e j garante a igual-<br />

da<strong>de</strong> dos i<strong>de</strong>ntificados da vista. Se si = si, é possível <strong>de</strong>compor si ≡ scomum,opi,s fi e s j ≡ scomum,op j,s f j<br />

<strong>em</strong> que scomum é o maior prefixo (eventualmente nulo) <strong>de</strong> operações comuns (s fi e s f j po<strong>de</strong>m ser sequên-<br />

cias nulas e op j po<strong>de</strong> representar a ausência <strong>de</strong> uma operação se s f j for a sequência nula).<br />

Vamos supor, s<strong>em</strong> perda <strong>de</strong> generalida<strong>de</strong>, que opi é anterior a op j na or<strong>de</strong>m total pela qual as opera-<br />

ções são executadas, e i<strong>de</strong>nt(opi) = (srvk,n). Após executar scomum, t<strong>em</strong>-se (srvk,m,_) ∈ M <strong>em</strong> ambos<br />

as cópias do coobjecto <strong>de</strong> filiação.<br />

O trio associado a srvk existe necessariamente <strong>em</strong> M pelas seguinte razões. Primeiro, é impossível<br />

ser conhecida uma operação submetida num servidor antes da operação <strong>de</strong> inserção porque: a cópia do<br />

coobjecto <strong>de</strong> filiação no novo servidor é iniciada a partir da cópia do patrocinador que já reflecte o novo<br />

servidor; as operações submetidas no novo servidor são i<strong>de</strong>ntificadas com um n_seq superior ao n_seq da<br />

operação que o inseriu no grupo <strong>de</strong> replicadores; e as operações são propagadas entre servidores usando<br />

um mecanismo <strong>de</strong> propagação epidémica (que propaga as operações por or<strong>de</strong>m <strong>de</strong> n_seq). Segundo, é<br />

impossível a entrada do servidor ter sido eliminada porque uma entrada apenas é eliminada quando todas<br />

as operações relativas a esse servidor foram executadas <strong>em</strong> todos os servidores.<br />

Assim, após a execução da sequência <strong>de</strong> operações si, t<strong>em</strong>-se necessariamente v[m] ≥ n 2 . Por outro<br />

2 Note que, se o servidor associado a m, srvm, tiver sido r<strong>em</strong>ovido, se t<strong>em</strong>: v[m] = ⊤ > n se a posição não tiver sido reutilizada<br />

por outro servidor, ou v[m] > n se a posição tiver sido reutilizada — porque a operação <strong>de</strong> inserção do novo el<strong>em</strong>ento no grupo<br />

terá <strong>de</strong> ter s<strong>em</strong>pre um n_seq superior ou igual ao n_seq da operação <strong>de</strong> r<strong>em</strong>oção do servidor (ou ser-lhe-ia atribuído um diferente<br />

i<strong>de</strong>ntificador na vista), a qual por sua vez terá <strong>de</strong> ter s<strong>em</strong>pre um n_seq superior a n (pelo modo como as operações <strong>de</strong> r<strong>em</strong>oção

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

Saved successfully!

Ooh no, something went wrong!