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.

56 CAPÍTULO 4. DESCRIÇÃO DAS FUNCIONALIDADES PRINCIPAIS DO SISTEMA DOORS<br />

4.1.4.1 Sequenciador<br />

No conjunto <strong>de</strong> réplicas <strong>de</strong> um coobjecto <strong>de</strong>signa-se uma, o sequenciador, que fica responsável por<br />

seriar as operações. Para tal, por cada nova operação recebida, o sequenciador submete uma operação<br />

especial (que será propagada para todas as réplicas) que apenas contém o i<strong>de</strong>ntificador da nova operação<br />

recebida 4 . A execução <strong>de</strong>sta operação especial correspon<strong>de</strong> à execução da operação cujo i<strong>de</strong>ntificador<br />

ela contém. A operação especial é i<strong>de</strong>ntificada como originária no servidor 0, i.e., t<strong>em</strong> i<strong>de</strong>ntificador<br />

(0,n_seq).<br />

Em todas as réplicas, o componente <strong>de</strong> reconciliação pessimista, limita-se a executar as operações<br />

com i<strong>de</strong>ntificadores (0,n_seq) por or<strong>de</strong>m crescente <strong>de</strong> número <strong>de</strong> sequência.<br />

O componente <strong>de</strong> reconciliação optimista usando a técnica <strong>de</strong>sfazer-refazer executa três passos s<strong>em</strong>-<br />

pre que uma nova operação é recebida: <strong>de</strong>sfaz as operações executadas <strong>de</strong> forma optimista; processa as<br />

operações com i<strong>de</strong>ntificadores (0,n_seq); executa <strong>de</strong> forma optimista todas as outras operações.<br />

Em ambos os casos, é possível transferir a função <strong>de</strong> sequenciador entre duas réplicas. Para tal, o<br />

sequenciador submete uma operação especial que, ao ser executada, transfere a função <strong>de</strong> sequenciador<br />

para outro servidor.<br />

Quando o servidor que contém o sequenciador <strong>de</strong>ci<strong>de</strong> abandonar o grupo <strong>de</strong> replicadores <strong>de</strong> um<br />

volume, o sequenciador transfere essa responsabilida<strong>de</strong> para o patrocinador 5 . Quando o servidor que<br />

contém o sequenciador é r<strong>em</strong>ovido <strong>de</strong> forma forçada, a réplica do servidor que actua como patrocinador<br />

no protocolo <strong>de</strong> r<strong>em</strong>oção forçada assume o papel <strong>de</strong> sequenciador.<br />

Os blocos só-uma-vez são executados no sequenciador. Como após seriar uma operação, o sequen-<br />

ciador a executa imediatamente garante-se que os blocos só-uma-vez são executados uma e uma só vez.<br />

Nesta aproximação, o sequenciador funciona como réplica principal que mantém o estado oficial do<br />

coobjecto. Adicionalmente, o resultado <strong>de</strong> uma operação propagada para o sequenciador é conhecido<br />

imediatamente.<br />

A execução da or<strong>de</strong>nação total usando um sequenciador apresenta algumas limitações. Primeiro,<br />

por cada operação executada num cliente, o sequenciador executa uma operação adicional que <strong>de</strong>fine<br />

a or<strong>de</strong>m <strong>de</strong> execução da primeira. Segundo, o sequenciador funciona como ponto central <strong>de</strong> falha —<br />

quando o sequenciador falha não é possível or<strong>de</strong>nar novas operações.<br />

4 Actualmente, este componente limita-se a seriar as operações pela or<strong>de</strong>m pela qual elas são recebidas no servidor. No<br />

entanto, é possível adoptar estratégias mais complexas para optimizar o número <strong>de</strong> operações que po<strong>de</strong>m ser executadas com<br />

sucesso, como proposto no sist<strong>em</strong>a IceCube [134] e SqlIceCube <strong>de</strong>scrito no capítulo 10<br />

5 Esta transferência é executada submetendo a operação <strong>de</strong> transferência <strong>de</strong> sequenciador quando é informado da r<strong>em</strong>oção<br />

do servidor — passo 1 do protocolo <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!