• Nenhum resultado encontrado

Modelo M4’: Modelo Alternativo ao Modelo M4

32 64 96 128 160 192 224 256 Q u a lid a d e d a D is tr ib u iç ã o 0,00 0,02 0,04 0,06 0,08 H min(v) = 1 H min(v) = 2 H min(v) = 4 Hmin(v) = 8 . . .

Figura 3.7: σ[Q(n)] com N ≤ 256, V' 1024, V(n) = random(1, 8) e Hmin(v) ∈ {1, 2, 4, 8}.

da figura 3.7 apresentam-se em geral inferiores aos da figura 3.3 para Hmin(n) = 4.

Número de Nós 32 64 96 128 160 192 224 256 Q u a lid a d e d a D is tr ib u iç ã o 0,00 0,02 0,04 0,06 0,08 0,10 0,12

H min(v) = 1 com V min(n)=4.5 H min(n) = 4 com nós homogéneos

Figura 3.8: σ[Q(n)] para Hmin(n) = 4 (figura 3.3) versus Hmin(v) = 1 (figura 3.7).

3.7

Modelo M4’: Modelo Alternativo ao Modelo M4

Nesta sec¸c˜ao apresenta-se o modelo M4’, como modelo de Distribui¸c˜ao Heterog´enea com Hashing Dinˆamico, alternativo ao modelo M4. Basicamente, o modelo M4’ ´e uma reformu-

3.7 Modelo M4’: Modelo Alternativo ao Modelo M4 53

la¸c˜ao do M4, baseada no refinamento do conceito de n´o virtual introduzido no modelo M3. Esse refinamento representa uma re-aproxima¸c˜ao conceptual aos modelos de Distribui¸c˜ao Homog´enea (M1 e M2). De facto, nesses modelos, cada n´o persegue uma mesma quota (ideal) da DHT e, como veremos, o mesmo se passa no modelo M4’, para cada n´o virtual. Basicamente, o modelo M4’ serve para demonstrar a flexibilidade do conceito de n´o virtual. Na pr´atica, o modelo M4 ´e prefer´ıvel: ambos geram o mesmo n´umero de entradas por n´o, mas o Procedimento de (Re)Distribui¸c˜ao de M4 ´e mais simples/eficiente que o de M4’.

3.7.1 N´o Virtual como Conjunto de Entradas

Nos modelos M3 e M4 de Distribui¸c˜ao Heterog´enea, cada n´o n da DHT tem direito a um certo n´umero total de entradas, H(n), por virtude de exibir um certo n´umero total de n´os virtuais, V(n). Na pr´atica, ´e como se, por cada um dos seus V(n) n´os virtuais, um n´o n tivesse direito a um certo n´umero de entradas que, em termos m´edios, ser´a H(n)/V(n); esta m´edia local ser´a semelhante `a m´edia global H/V, uma vez que o Procedimento de (Re)Distribui¸c˜ao atribui entradas aos n´os proporcionalmente ao seu n´umero de n´os virtuais. Em suma, os modelos M3 e M4 assentam na vis˜ao do“n´o virtual como n´umero de entradas”. Uma vis˜ao refinada, deriv´avel da anterior, ´e a do “n´o virtual como (sub)conjunto de en- tradas”. Em termos globais, esta vis˜ao corresponde a considerar que o conjunto global das entradas da DHT, H, ´e particionado em V subconjuntos (um por cada n´o virtual), com um n´umero m´edio de entradas de H/V; em termos locais, equivale a considerar que o conjunto local das H(n) entradas atribu´ıdas a um n´o n ´e particionado em V(n) subconjun- tos, com um n´umero m´edio de H(n)/V(n) entradas. Os subconjuntos de entradas s˜ao n´os virtuais que, `a luz do seu novo conceito, necessitam de alguma forma de identifica¸c˜ao17; neste contexto, passa tamb´em a ser l´ıcito fazer referˆencia `as “entradas de um n´o virtual”.

H= { 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 }

H(n0)

H[v0(n0)] H[v1(n0)] H[v0(n1)] H[v1(n1)] H[v2(n1)]

H(n1)

Figura 3.9: Particionamento de H em N´os Virtuais.

A figura 3.9 ilustra a aplica¸c˜ao do novo conceito de n´o virtual e apoia a introdu¸c˜ao de nota¸c˜ao adequada. Assim, come¸camos por convencionar o uso da nota¸c˜ao vi(n) (com i =

0, 1, ..., V(n) − 1) para identificar individualmente os n´os virtuais de um n´o computacional n, com V(n) n´os virtuais; neste contexto, o conjunto dos n´os virtuais de n ´e V (n) = {v0(n), v1(n), ..., vV(n)−1(n)}. O conjunto global dos n´os virtuais, V , ´e ent˜ao dado por

[

n∈N

V (n) = V (3.22)

54 3.7 Modelo M4’: Modelo Alternativo ao Modelo M4

, rela¸c˜ao que complementa a definida anteriormente pela express˜ao 3.14: V =P

n∈NV(n).

Prosseguindo, denotamos por H[v(n)] o conjunto de entradas associadas ao n´o virtual v do n´o n, e por H[v(n)] o n´umero de entradas correspondente. Neste contexto, e com base na nota¸c˜ao j´a introduzida, podemos exprimir de imediato uma s´erie de rela¸c˜oes b´asicas:

R1: a uni˜ao das entradas dos n´os virtuais de um n´o, corresponde `as entradas do n´o

[

v(n)∈V (n)

H[v(n)] = H[V (n)] = H(n), ∀n ∈ N (3.23)

R2: a soma do cardinal dos n´os virtuais de um n´o, ´e igual ao n´umero de entradas do n´o

X

v(n)∈V (n)

H[v(n)] = H[V (n)] = H(n), ∀n ∈ N (3.24)

R3: a intersec¸c˜ao das entradas de todos os n´os virtuais de um n´o ´e o conjunto vazio

\

v(n)∈V (n)

H[v(n)] = ⊘, ∀n ∈ N (3.25)

R4: a uni˜ao das entradas dos n´os virtuais de todos os n´os ´e igual `as entradas da DHT

[ v(n)∈V (n),n∈N H[v(n)] = [ n∈N H[V (n)] = [ n∈N H(n) = H (3.26)

R5: a soma do cardinal dos n´os virtuais de todos os n´os ´e o total de entradas da DHT

X v(n)∈V (n),n∈N H[v(n)] = X n∈N H[V (n)] = X n∈N H(n) = H (3.27)

R6: a intersec¸c˜ao das entradas dos n´os virtuais de todos os n´os ´e o conjunto vazio

\

v(n)∈V (n),n∈N

H[v(n)] = ⊘ (3.28)

Por exemplo, na figura 3.9, temos H(n0) = H[v0(n0)] ∪ H[v1(n0)] = {0, 1, 2} ∪ {3, 4, 5} =

{0, ..., 5} e, correspondentemente, H(n0) = H[v0(n0)] + H[v1(n0)] = 3 + 3 = 6. Adicional-

mente, H = H(n0)∪H(n1) = {0, ..., 5}∪{6, ..., 15} com H = H(n0)+H(n0) = 6+10 = 16.

Conv´em ainda referir que, no contexto da figura 3.9, as entradas da DHT que constituem cada n´o virtual s˜ao inteiros sequenciais por uma quest˜ao de simplifica¸c˜ao da representa¸c˜ao. De facto, n˜ao h´a qualquer exigˆencia de contiguidade dessas entradas18, podendo um n´o virtual v ser constitu´ıdo por quaisquer entradas da DHT, desde que em n´umero H(v), e respeitando todas as rela¸c˜oes e restri¸c˜oes definidas pelas f´ormulas anteriores (3.24 a 3.26). As rela¸c˜oes R1 e R3 garantem o particionamento de H(n) em V(n) subconjuntos.

Equivalentemente, R4 e R6 asseguram o particionamento de H em V subconjuntos.

18

Embora, como veremos no cap´ıtulo 5, a contiguidade possa surgir na distribui¸c˜ao inicial de uma DHT, em resultado de um algoritmo que permite a qualquer n´o inicial deduzir, de forma aut´onoma, a distribui¸c˜ao.

3.7 Modelo M4’: Modelo Alternativo ao Modelo M4 55

3.7.2 Quota Real e Ideal de um N´o Virtual

Em termos globais, a quota real e ideal da DHT, para qualquer n´o virtual v ∈ V , ser´a:

Qr(v) = H(v)

H (3.29)

Qi(v) = Q(v) = 1

V (3.30)

Assim, num determinado instante, um n´o virtual v ∈ V comporta a frac¸c˜ao Qr(v) das entradas de H, quando deveria, idealmente, comportar a frac¸c˜ao Qi(v), igual para todos. A defini¸c˜ao de Qi(v) ´e conceptualmente semelhante `a de Qi(n) para os modelos M1 e M2.

3.7.3 Quota Real e Ideal de um N´o Computacional

As quotas de um n´o podem ser expressas em fun¸c˜ao das quotas dos seus n´os virtuais, da forma que se segue. Assim, para a quota ideal de um n´o, dada pela f´ormula 3.13, tem-se

Qi(n) = V(n) V = X v(n)∈V (n) 1 V = X v(n)∈V (n) Qi[v(n)] (3.31)

An´alogamente, para a quota real de um n´o computacional, dada pela f´ormula 3.3, tem-se

Qr(n) = H(n) H = X v(n)∈V (n) H[v(n)] H = X v(n)∈V (n) Qr[v(n)] (3.32)

, tendo em conta a f´ormula 3.24 que estabelece que H(n) = H[V (n)] =P

v(n)∈V (n)H[v(n)].

3.7.4 M´etrica de Qualidade

O grau de aproxima¸c˜ao entre quotas reais e ideais, dos n´os virtuais, pode-se medir atrav´es de m´etricas semelhantes `as desenvolvidas anteriormente, para os modelos M1 e M2. Assim, o facto de Qi(v) ser igual para todos os n´os virtuais (pois Qi(v) coincide com a M´edia

Q(v)) viabiliza a seguinte defini¸c˜ao cl´assica de Soma dos Desvios Absolutos (SDA):

SDA[Q(v)] =X

v∈V

|∆[Q(v)]| (3.33)

com

∆[Q(v)] = Qr(v) − Q(v), ∀v ∈ V (3.34)

56 3.7 Modelo M4’: Modelo Alternativo ao Modelo M4 σ[Q(v)] = s P v∈V[Qr(v) − Q(v)]2 V = r P v∈V ∆[Q(v)]2 V (3.35)

e definimos o Desvio Padr˜ao Relativo, correspondente ao Desvio Padr˜ao Absoluto, como

σ[Q(v)] = σ[Q(v)]

Q(v) (3.36)

3.7.5 Fun¸c˜ao Objectivo

De forma coerente com as defini¸c˜oes anteriores, o objectivo do modelo M4’ ´e a “minimiza¸c˜ao de σ[Q(v)]”. Esse objectivo ´e concili´avel com o do modelo M4 (“minimiza¸c˜ao de σ[Q(n)]”).

3.7.6 Procedimento de (Re)Distribui¸c˜ao

O Procedimento de (Re)Distribui¸c˜ao do modelo M4’ ´e um misto do usado pelos modelos M4 e M1; as afinidades com o procedimento de M4 devem-se ao uso de n´os virtuais; as afinidades com o de M1 devem-se `a distribui¸c˜ao equitativa de entradas pelos n´os virtuais. Assim, sempre que V se alterar (por modifica¸c˜ao do n´umero de n´os virtuais de um ou mais n´os, ou por adi¸c˜ao/remo¸c˜ao de n´os `a/da DHT) recalcula-se H pela f´ormula 3.20; mantendo-se H constante, executa-se de imediato o resto do procedimento, semelhante ao do modelo M1; caso contr´ario, essa execu¸c˜ao ´e precedida da duplica¸c˜ao/subdivis˜ao de H. O resto do procedimento, semelhante ao do modelo M1, procura repartir o mais equitativa- mente poss´ıvel as H entradas da DHT pelos V n´os virtuais, conservando a indivisibilidade das entradas. Assim, numa primeira fase, atribuem-se Hdiv(v) = H div V entradas a cada

n´o virtual, sendo que Hdiv(v) = Hmin(v), igualdade que ´e uma consequˆencia dos invarian-

tes do modelo M4. Desta itera¸c˜ao resulta i) a distribui¸c˜ao de um n´umero total de entradas Hdiv =Pv∈V Hdiv(v), ii) um n´umero total de entradas Hmod = H − Hdiv por atribuir e

iii) a atribui¸c˜ao a cada n´o de um total provis´orio de Hdiv(n) = Hdiv(v) × V(n) entradas.

Numa segunda fase, as Hmod entradas s˜ao atribu´ıdas, uma a uma, a outros tantos n´os

virtuais, (de forma que V acaba por ser divis´ıvel em dois subconjuntos, um em que cada n´o virtual tem Hdiv(v) entradas, e outro em que cada n´o virtual tem Hdiv(v)+ 1 entradas).

Este procedimento ´e suficiente para minimizar a m´etrica σ[Q(v)] do modelo M4’, mas n˜ao garante a minimiza¸c˜ao da m´etrica σ[Q(n)] do modelo M4; uma forma de o conseguir ser´a escolher criteriosamente quais os n´os virtuais benefici´arios das Hmodentradas, em vez

de atribuir essas entradas de forma indiscriminada (ou seja, considerando os n´os virtuais an´onimos, desligados de n´os computacionais, situa¸c˜ao em que qualquer n´o virtual pode ser benefici´ario); os benefici´arios devem ser n´os virtuais (quaisquer) dos n´os computacionais com maior d´ebito de entradas, pelo crit´erio usado na segunda fase do Procedimento de (Re)Distribui¸c˜ao do modelo M3 (rever sec¸c˜ao 3.5.5); aplicando esse crit´erio e o algoritmo de ajuste associado, garante-se a minimiza¸c˜ao de σ[Q(n)], al´em da minimiza¸c˜ao de σ[Q(v)].