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.

202 APÊNDICE A. DOORS<br />

Adicionalmente, para garantir que as operações são or<strong>de</strong>nadas correctamente, <strong>em</strong> cada um dos coob-<br />

jectos, a primeira operação submetida no novo servidor <strong>de</strong>ve ter número <strong>de</strong> sequência igual ou superior<br />

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

qualquer réplica.<br />

Relativamente aos servidores conhecidos, a verificação da estabilida<strong>de</strong> garante que as operações<br />

são executadas pela sua or<strong>de</strong>m correcta. Assim, apenas seria possível executar uma operação fora<br />

<strong>de</strong> or<strong>de</strong>m, executando num qualquer servidor uma operação, op1, <strong>de</strong> um servidor conhecido que <strong>de</strong>-<br />

vesse ser or<strong>de</strong>nada após uma operação, op2, submetida num novo servidor ainda não conhecido. Como<br />

seq(op2) ≥ max+2, então necessariamente seq(op1) ≥ max+2. No entanto, para or<strong>de</strong>nar uma operação<br />

com número <strong>de</strong> sequência max + 2, um servidor t<strong>em</strong> <strong>de</strong> receber informação <strong>de</strong> todos os servidores que<br />

não existe mais nenhuma operação com número <strong>de</strong> sequência max + 1. Para tal, é necessário contactar<br />

o patrocinador da junção ao grupo do novo servidor (porque no momento da junção ao grupo, no patro-<br />

cinador, apenas se tinham usado números <strong>de</strong> sequência inferiores ou iguais a max). Como no contacto<br />

com o patrocinador, o servidor vai ser informado da existência do novo servidor, ele t<strong>em</strong> <strong>de</strong> consi<strong>de</strong>rar<br />

a informação recebida do novo servidor antes <strong>de</strong> or<strong>de</strong>nar a operação op1. Como a informação do novo<br />

servidor não po<strong>de</strong> ser usada enquanto a posição do servidor na vista local não é estável, um servidor<br />

não po<strong>de</strong> executar nenhuma operação op : seq(op) = max + 2 enquanto a posição do novo servidor não<br />

é estável, porque necessita <strong>de</strong> usar a informação que não existe nenhuma operação nesse servidor com<br />

número <strong>de</strong> sequência igual a max + 1. Assim, as operações com número <strong>de</strong> sequência max + 2 apenas<br />

são executadas quando o número <strong>de</strong> sequência do novo servidor está estável, o que garante a correcção<br />

da or<strong>de</strong>nação das operações.<br />

A.1.4 Protocolo <strong>de</strong> saída voluntária do grupo <strong>de</strong> replicadores <strong>de</strong> um volume<br />

O protocolo <strong>de</strong> saída voluntária do grupo <strong>de</strong> replicadores <strong>de</strong> um volume controla a saída voluntária <strong>de</strong><br />

um servidor do grupo <strong>de</strong> servidores que replicam um volume. Nesta situação, é necessário que não se<br />

perca nenhuma informação que se encontre apenas nesse servidor (i.e., operações relativas a coobjectos<br />

do volume, incluindo o coobjecto <strong>de</strong> filiação, que apenas sejam conhecidas nesse servidor). Adicional-<br />

mente, a filiação do grupo <strong>de</strong> replicadores <strong>de</strong>ve ser actualizada e os recursos usados para replicar esse<br />

volume <strong>de</strong>v<strong>em</strong> ser libertos.<br />

Quando o servidor que preten<strong>de</strong> cessar a replicação <strong>de</strong> um volume é o único que replica o volume (<strong>de</strong><br />

acordo com o estado do coobjecto <strong>de</strong> filiação nesse servidor), o servidor limita-se a libertar os recursos<br />

<strong>de</strong> filiação, i.e., sse existe pelo menos um servidor activo, srv2vol, do qual po<strong>de</strong> existir um operação ainda <strong>de</strong>sconhecida com<br />

número <strong>de</strong> sequência n_seq2, <strong>em</strong> que n_seq2 ≤ n_seq nos casos <strong>em</strong> que o i<strong>de</strong>ntificador <strong>de</strong> srv2vol na vista actual é inferior ao<br />

i<strong>de</strong>ntificador <strong>de</strong> srvvol, ou n_seq2 < n_seq nos outros casos.

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

Saved successfully!

Ooh no, something went wrong!