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.

158 CAPÍTULO 10. SISTEMA DE RECONCILIAÇÃO SQLICECUBE<br />

10.4 Optimização da reconciliação<br />

Nesta secção apresentam-se dois mecanismos que permit<strong>em</strong> melhorar o <strong>de</strong>s<strong>em</strong>penho do sist<strong>em</strong>a <strong>de</strong> re-<br />

conciliação <strong>de</strong>senvolvido. Como a complexida<strong>de</strong> do algoritmo <strong>de</strong> reconciliação é O(n 2 ), é possível<br />

melhorar o <strong>de</strong>s<strong>em</strong>penho dividindo um probl<strong>em</strong>a <strong>de</strong> reconciliação numa sequência <strong>de</strong> subprobl<strong>em</strong>as <strong>de</strong><br />

menores dimensões (secção 10.4.1) e diminuindo o número <strong>de</strong> el<strong>em</strong>entos envolvidos na reconciliação<br />

(secção 10.4.2). Estes mecanismos foram propostos anteriormente no âmbito do sist<strong>em</strong>a IceCube [134].<br />

10.4.1 Partições<br />

Usando a noção <strong>de</strong> in<strong>de</strong>pendência <strong>de</strong> transacções, <strong>de</strong>finida anteriormente, é possível dividir o probl<strong>em</strong>a<br />

da reconciliação num conjunto <strong>de</strong> subprobl<strong>em</strong>as. Para tal, divi<strong>de</strong>-se o conjunto <strong>de</strong> transacções a recon-<br />

ciliar <strong>em</strong> subconjuntos disjuntos mutuamente in<strong>de</strong>pen<strong>de</strong>ntes, a que se chamam partições. O resultado da<br />

reconciliação do conjunto original <strong>de</strong> transacções é equivalente ao resultado da reconciliação sucessiva<br />

<strong>de</strong> cada uma das partições.<br />

Na figura 10.4 apresenta-se o algoritmo <strong>de</strong> reconciliação usando partições. A reconciliação é exe-<br />

cutada incr<strong>em</strong>entalmente, invocando sequencialmente o algoritmo <strong>de</strong> reconciliação básico (reconcilia)<br />

para cada partição. A função particiona divi<strong>de</strong> o conjunto <strong>de</strong> transacções original, trxs, <strong>em</strong> k partições<br />

<strong>de</strong> acordo com a seguinte relação:<br />

trxs = p1∪p2 ∪ ... ∪ pk : ∀i, j,i = j ⇒ pi ∩ p j = /0∧<br />

∀a ∈ pi,b ∈ p j,in<strong>de</strong>pen<strong>de</strong>ntes(a,b) ∧ ¬alternativas(a,b) ∧ ¬grupo_indivisivel(a,b)<br />

O ciclo que executa a reconciliação sucessiva das várias partições t<strong>em</strong> complexida<strong>de</strong> O(|p1| 2 + ... +<br />

|pk| 2 ). Quando as partições têm dimensões idênticas, o t<strong>em</strong>po <strong>de</strong> execução do ciclo ten<strong>de</strong> a crescer<br />

linearmente com o número <strong>de</strong> partições. Quando uma partição é muito maior do que as outras, o t<strong>em</strong>po<br />

<strong>de</strong> execução do ciclo ten<strong>de</strong> a ser dominado pela maior partição.<br />

No entanto, a complexida<strong>de</strong> do algoritmo <strong>de</strong> reconciliação é igualmente influenciada pela algoritmo<br />

<strong>de</strong> divisão <strong>em</strong> partições. Um algoritmo que use a relação anterior <strong>de</strong> forma imediata t<strong>em</strong> complexida<strong>de</strong><br />

O(n 2 ) porque uma transacção t<strong>em</strong> <strong>de</strong> ser comparada com todas as outras. Assim, para melhorar o <strong>de</strong>s<strong>em</strong>-<br />

penho, efectua-se inicialmente uma divisão imprecisa usando um algoritmo <strong>de</strong> complexida<strong>de</strong> esperada<br />

O(n). Neste algoritmo, cada transacção <strong>de</strong>fine um conjunto arbitrário <strong>de</strong> i<strong>de</strong>ntificadores (por ex<strong>em</strong>plo,<br />

os nomes das tabela acedidas e/ou i<strong>de</strong>ntificadores para as condições dos registos acedidos). As transac-<br />

ções com i<strong>de</strong>ntificadores idênticos são incluídas na mesma partição. Para cada uma das partições é então<br />

aplicado o algoritmo <strong>de</strong> partição exacto. A complexida<strong>de</strong> global é então O(n + |pi1| 2 + ...+|pii| 2 ), com<br />

pi1,..., pii as partições criadas pelo algoritmo <strong>de</strong> divisão imprecisa.

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

Saved successfully!

Ooh no, something went wrong!