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.

8.2. CONCESSÃO E GARANTIA DE RESPEITO PELAS RESERVAS 119<br />

uma transacção <strong>móvel</strong> actualiza o seu valor através <strong>de</strong> uma instrução update. No sist<strong>em</strong>a Mobisnap, o<br />

sist<strong>em</strong>a infere automaticamente a quantida<strong>de</strong> usada do recurso reservado a partir da instrução <strong>de</strong> update.<br />

Como esperado, os recursos usados são consumidos da reserva escrow. As próximas transacções apenas<br />

po<strong>de</strong>m ser garantidas usando o r<strong>em</strong>anescente dos recursos reservados.<br />

Como se <strong>de</strong>screveu, esta aproximação é completamente transparente para os programadores. Os<br />

programadores escrev<strong>em</strong> as transacções móveis s<strong>em</strong> nenhuma referência às reservas. Se o cliente possui<br />

alguma reserva, o sist<strong>em</strong>a usa-a automaticamente para tentar garantir o resultado das transacções. O<br />

sist<strong>em</strong>a mantém igualmente registo das reservas usadas <strong>de</strong> forma automática.<br />

O protótipo do sist<strong>em</strong>a Mobisnap t<strong>em</strong> uma limitação: apenas é possível impor uma única restrição<br />

sobre cada el<strong>em</strong>ento <strong>de</strong> <strong>dados</strong> fungível (ou x ≥ min ou x ≤ max) — antecipa-se que este seja o cenário<br />

mais comum. Para impor uma restrição min ≤ x ≤ max seria necessário usar diferentes valores para xi<br />

<strong>de</strong>pen<strong>de</strong>ndo do tipo <strong>de</strong> operação executada.<br />

8.1.5 Reservas shared value-change e shared slot<br />

Uma reserva shared value-change garante o direito partilhado <strong>de</strong> modificar o valor <strong>de</strong> um registo (ou<br />

subconjunto <strong>de</strong> colunas <strong>de</strong> um registo). Por ex<strong>em</strong>plo, esta reserva po<strong>de</strong> ser usada para garantir uma<br />

operação <strong>de</strong> incr<strong>em</strong>ento sobre um contador partilhado. Esta reserva permite obter a garantia que uma<br />

instrução update não será bloqueada por uma reserva value-change, slot ou value-lock.<br />

Uma reserva shared slot garante o direito partilhado <strong>de</strong> inserir, r<strong>em</strong>over e modificar registos com<br />

valores pré-<strong>de</strong>finidos. Por ex<strong>em</strong>plo, esta reserva po<strong>de</strong> ser usada para garantir operações sobre tabelas a<br />

que apenas é possível adicionar registos (append-only tables). Esta reserva garante que uma instrução <strong>de</strong><br />

insert, <strong>de</strong>lete ou update não será bloqueada por uma reserva value-change, slot ou value-lock.<br />

Estas reservas não fornec<strong>em</strong> qualquer garantia sobre o estado futuro da base <strong>de</strong> <strong>dados</strong>. No entanto,<br />

ao garantir<strong>em</strong> que nenhum cliente obtém uma reserva exclusiva que impossibilite a execução <strong>de</strong> uma<br />

operação, elas são importantes para garantir <strong>de</strong> forma completa uma transacção, como se ex<strong>em</strong>plifica na<br />

secção 8.5.<br />

8.2 Concessão e garantia <strong>de</strong> respeito pelas reservas<br />

Nesta secção <strong>de</strong>screve-se o modo como as reservas são concedidas e como se garante o respeito pelas<br />

reservas concedidas, i.e., como se garante que nenhuma transacção viola as garantias fornecidas por<br />

uma reserva (incluindo as transacções executadas directamente na base <strong>de</strong> <strong>dados</strong> central pelos clientes<br />

legados). Nas próximas secções <strong>de</strong>screve-se o processamento das transacções móveis no cliente e no<br />

servidor quando se usam reservas.

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

Saved successfully!

Ooh no, something went wrong!