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.

10.3. ALGORITMO DE RECONCILIAÇÃO 153<br />

<strong>de</strong> outra transacção. Se duas transacções for<strong>em</strong> in<strong>de</strong>pen<strong>de</strong>ntes, a or<strong>de</strong>m pela qual são executadas não<br />

influencia o resultado final. Face às relações <strong>de</strong>finidas anteriormente, as transacções a e b são in<strong>de</strong>pen-<br />

<strong>de</strong>ntes sse:<br />

in<strong>de</strong>pen<strong>de</strong>ntes(a,b) =¬pre<strong>de</strong>cessor/sucessor(a,b) ∧ ¬pre<strong>de</strong>cessor/sucessor(b,a)∧<br />

¬pre<strong>de</strong>cessor/sucessor f raco(a,b) ∧ ¬pre<strong>de</strong>cessor/sucessor f raco(b,a)∧<br />

∧ comutativas(a,b)<br />

10.3 Algoritmo <strong>de</strong> reconciliação<br />

O algoritmo <strong>de</strong> reconciliação <strong>de</strong>fine a or<strong>de</strong>m <strong>de</strong> execução das transacções na base <strong>de</strong> <strong>dados</strong>. O espaço <strong>de</strong><br />

soluções possíveis é explorado por amostrag<strong>em</strong> <strong>de</strong> forma heurística. Para tal, sucessivas soluções são cri-<br />

adas e executadas até que uma solução satisfatória seja encontrada. Cada solução gerada é in<strong>de</strong>pen<strong>de</strong>nte<br />

das anteriores, i.e., não se usa uma aproximação <strong>de</strong> optimização local.<br />

Uma solução inclui apenas as transacções executadas com sucesso. As restantes transacções po<strong>de</strong>m<br />

ter sido excluídas da solução por não po<strong>de</strong>r<strong>em</strong> ser executadas no estado final da base <strong>de</strong> <strong>dados</strong> ou por vi-<br />

olar<strong>em</strong> uma relação estática (por ex<strong>em</strong>plo, pertencer a um conjunto <strong>de</strong> alternativas, do qual foi executada<br />

uma transacção).<br />

A cada transacção po<strong>de</strong> ser atribuído um valor numérico que representa a sua importância no contexto<br />

da aplicação (no sist<strong>em</strong>a Mobisnap, assume-se que todas as transacções t<strong>em</strong> valor igual a um). A soma<br />

dos valores numéricos das transacções incluídas numa sequência representa o valor da solução — o<br />

sist<strong>em</strong>a SqlIceCube tenta criar uma sequência <strong>de</strong> transacções que maximize este valor.<br />

Para melhorar o <strong>de</strong>s<strong>em</strong>penho do sist<strong>em</strong>a <strong>de</strong> reconciliação <strong>de</strong>compõe-se a criação da sequência <strong>de</strong><br />

execução <strong>em</strong> vários subprobl<strong>em</strong>as. Cada subprobl<strong>em</strong>a consiste <strong>em</strong> criar uma parte da sequência a partir<br />

<strong>de</strong> um subconjunto <strong>de</strong> transacções in<strong>de</strong>pen<strong>de</strong>ntes do resto das transacções. Nesta secção <strong>de</strong>talham-se os<br />

algoritmos usados no sist<strong>em</strong>a <strong>de</strong> reconciliação.<br />

10.3.1 Heurística<br />

Uma solução (sequência <strong>de</strong> execução) é criada incr<strong>em</strong>entalmente seleccionando <strong>em</strong> cada passo uma<br />

transacção para execução. Esta selecção é efectuada, aleatoriamente, entre as transacções com mérito<br />

mais elevado.<br />

O mérito associado a uma transacção é estimado, <strong>de</strong> forma heurística, a partir das relações estáticas<br />

que se estabelec<strong>em</strong> entre as transacções. Nesta estimativa, apenas são consi<strong>de</strong>radas as transacções que<br />

po<strong>de</strong>m ser executadas. O mérito <strong>de</strong> uma transacção que não po<strong>de</strong> ser executada imediatamente por as<br />

relações da aplicação estabelecidas não estar<strong>em</strong> satisfeitas (por ex<strong>em</strong>plo, uma transacção que é sucessora

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

Saved successfully!

Ooh no, something went wrong!