guidade das parti¸c˜oes de H detidas pelos n´os da DHT e fazer com que a sua composi¸c˜ao pare¸ca aleat´oria. Esta caracter´ıstica separa claramente os nossos modelos de particiona- mento dos baseados em Hashing Consistente (que garante parti¸c˜oes cont´ıguas) e influencia decisivamente a forma como se constr´oi o grafo de localiza¸c˜ao distribu´ıda (ver sec¸c˜ao 4.4.2). Note-se ainda que, `a semelhan¸ca de um posicionamento inicial rotativo, um posicionamento que tende a ser aleat´orio continua a ser adequado a distribui¸c˜oes n˜ao-uniformes de registos.
4.4
Especificidades da Localiza¸c˜ao Distribu´ıda
4.4.1 Adequabilidade a Ambientes Cluster
Em ambiente cluster, o n´umero de n´os dispon´ıveis para instanciar uma DHT ´e inferior, em v´arias ordens de grandeza, ao n´umero de n´os que, tipicamente, participam num sistema P2P (dezenas/centenas contra milhares/milh˜oes). Desde logo, essa diferen¸ca de escala sugere que a informa¸c˜ao de posicionamento de uma DHT instanciada em cluster dever´a ser suficientemente pequena (da ordem dos Kbytes ou Mbytes) para que a sua totalidade seja comport´avel por qualquer n´o. Este argumento favorece a utiliza¸c˜ao de localiza¸c˜ao baseada num registo centralizado da informa¸c˜ao de localiza¸c˜ao (ou at´e mesmo com replica¸c˜ao total – rever sec¸c˜ao 2.4.1.5). Outro argumento que vem ao encontro do anterior ´e o facto de, em ambiente cluster, o conjunto de n´os que suportam uma DHT ter composi¸c˜ao mais est´avel. Todavia, se admitirmos 1) a possibilidade de se instanciarem m´ultiplas DHTs no cluster, em simultˆaneo e 2) de estas estarem sujeitas a um mecanismo de balanceamento dinˆamico7, ent˜ao a aplica¸c˜ao de mecanismos de localiza¸c˜ao distribu´ıda faz sentido. No primeiro caso, interessa balancear a carga de armazenamento da maior quantidade de informa¸c˜ao de lo- caliza¸c˜ao, das v´arias DHTs. No segundo caso, a redistribui¸c˜ao de uma ou mais DHTs8 acarreta a necessidade de actualizar a sua informa¸c˜ao de localiza¸c˜ao; essa actualiza¸c˜ao pode ser mais ou menos abrangente, dependendo da percentagem redistribu´ıda; com a in- forma¸c˜ao de localiza¸c˜ao distribu´ıda, o esfor¸co de actualiza¸c˜ao ´e distribu´ıdo por v´arios n´os, e o n´umero de n´os envolvidos na actualiza¸c˜ao ser´a fun¸c˜ao da dimens˜ao da redistribui¸c˜ao.
4.4.2 Necessidade de Grafos Completos em H
Quando o particionamento de H origina parti¸c˜oes cont´ıguas (intervalos), ´e suficiente cons- truir um grafo GN (ou GV) para localiza¸c˜ao distribu´ıda, tomando como v´ertices os n´os
computacionais (ou virtuais) da DHT. Por exemplo, no Chord [SMK+01], cada n´o tem correspondˆencia com um hash em H = {0, 1, ..., 2L− 1) (com fun¸c˜ao de hash de L bits), pelo que apenas um certo n´umero de hashes, inferior a H = 2L, ´e usado para construir o grafo; este grafo ´e pois “esparso no dom´ınio dos hashes” e “completo no dom´ınio dos n´os”. Ora, como referido na sec¸c˜ao 4.3, a aplica¸c˜ao dos nossos modelos de distribui¸c˜ao e po-
7
Pressupostos que, entre outros, est˜ao na base da arquitectura Domus, discutida no cap´ıtulo 5.
8
A redistribui¸c˜ao traduz-se na transferˆencia de entradas entre um ou mais n´os, podendo envolver apenas os n´os actuais da DHT, ou n´os que abandonam/ingressam a/na DHT.
4.4 Especificidades da Localiza¸c˜ao Distribu´ıda 71
sicionamento resulta em parti¸c˜oes descont´ıguas (com hashes dispersos). Essa particulari- dade imp˜oe a constru¸c˜ao de grafos GH, completos no dom´ınio dos hashes; ou seja, sendo H = {0, 1, ..., 2L−1), um grafo GH ter´a H = 2Lv´ertices, correspondentes a todos os hashes de H. O grafo GH ser´a particionado, de forma impl´ıcita, atrav´es dos n´os da DHT: cada
n´o ser´a respons´avel pelos v´ertices correspondentes aos hashes da(s) sua(s) parti¸c˜ao(˜oes). A necessidade de um grafo GH em vez de GN (ou GV) parece ser uma menos valia impor- tante dos nossos modelos, dado que GH assenta num maior n´umero (o m´aximo poss´ıvel) de v´ertices. Veremos, no entanto, que ´e poss´ıvel desenvolver algoritmos de encaminhamento acelerado, que permitem que a localiza¸c˜ao distribu´ıda em GH tenha um custo semelhante
(e at´e inferior) ao custo em GN. Al´em disso, comparando o custo da localiza¸c˜ao em GH com o custo num grafo GV (em que os v´ertices s˜ao n´os virtuais, como acontece no Chord9), constata-se que as diferen¸cas no esfor¸co de localiza¸c˜ao podem ser marginais (ver a seguir).
Número de Nós da DHT (N ) 128 256 384 512 640 768 896 1024 0 2048 4096 6144 8192 10240 12288 14336 16384 N = | V (GC N ) | V (Chord) = | V (GC V (HC)) | H (Chord) = | V (GC H (HC)) | H (M2) = | V (GC H (M2)) | a) Número de Nós da DHT (N ) 128 256 384 512 640 768 896 1024 0 1 2 3 4 5 6 7 d (GCN ) d (GC V (HC)) d (GC H (HC)) d (GC H (M2)) b)
Figura 4.1: a) N´umero de V´ertices e b) Distˆancia M´edia, p/ v´arias classes de grafos Chord. A figura 4.1.a) representa o n´umero de v´ertices de grafos Chord de diferentes classes, em fun¸c˜ao do n´umero de n´os N de uma DHT: 1) para a classe GN, os v´ertices correspondem
a n´os computacionais; 2) para as classes GV(HC) e GH(HC), os v´ertices correspondem aos n´os virtuais e `as entradas, respectivamente, de uma DHT em que o total de n´os virtuais, V(HC), e de entradas, H(HC), ´e gerado de acordo com o procedimento descrito na avalia¸c˜ao do Hashing Consistente (HC) da sec¸c˜ao 3.8 (com parˆametro k = 1); 3) para a classe GH(M 2), os v´ertices correspondem `as entradas de uma DHT em que H ´e gerado pela f´ormula 3.11 do modelo M2 de distribui¸c˜ao homog´enea (com parˆametro Hmin(n) = 810).
A relativa proximidade do n´umero de v´ertices dos grafos GV(HC) e GH(HC), deixa
adivinhar que a navega¸c˜ao nesses grafos ter´a um custo semelhante. Esse custo ´e dado
9Sendo baseado em Hashing Consistente, cada n´o virtual ´e associado a uma parti¸c˜ao cont´ınua. A
compara¸c˜ao com o Chord ´e importante, pois ´e gra¸cas `a utiliza¸c˜ao de m´ultiplos n´os virtuais por cada n´o computacional que o Chord assegura distribui¸c˜oes balanceadas, sejam homog´eneas, sejam heterog´eneas.
10
A escolha de k = 1 e Hmin(n) = 8 assegura que o valor de H ´e semelhante sob HC e M2, o que acaba
por favorecer o HC na compara¸c˜ao; de facto, valores Hmin(n) inferiores s˜ao suficientes para garantir a M2
uma qualidade da distribui¸c˜ao superior `a do HC (como se demonstrou na avalia¸c˜ao da sec¸c˜ao 3.8); como valores inferiores de Hmin(n) se traduzem em valores inferiores de H(M 2) ent˜ao, sob o modelo M2, o grafo
72 4.4 Especificidades da Localiza¸c˜ao Distribu´ıda
pela distˆancia m´edia11, d, representada na figura 4.1.b). A evolu¸c˜ao logar´ıtmica de d
torna menos vincadas as diferen¸cas entre os grafos, em especial entre GV(HC) e GH(HC).
4.4.3 Conceito de Encaminhamento Acelerado
Realizada segundo o algoritmo base de navega¸c˜ao do grafo GH, a localiza¸c˜ao distribu´ıda (ou, equivalentemente, o mecanismo de encaminhamento que a suporta) ´e convencional, no sentido de que progride entrada-a-entrada e pode resultar na visita repetida de um mesmo n´o da DHT. Alternativamente, a an´alise conjunta das v´arias tabelas de encami- nhamento detidas por cada n´o da DHT suporta um encaminhamento acelerado; neste, tenta-se progredir n´o-a-n´o e evitar visitas repetidas do mesmo n´o, ao mesmo tempo que se procuram encontrar e explorar eventuais atalhos topol´ogicos; o saldo final ser´a uma redu¸c˜ao do esfor¸co de localiza¸c˜ao em GH, face ao obtido com encaminhamento convencional. O encaminhamento acelerado procura assim compensar o facto de, na sequˆencia dos nos- sos modelos de particionamento (que originam parti¸c˜oes descont´ınuas de H), a localiza- ¸c˜ao distribu´ıda assentar num grafo GH, em vez de num grafo GN. Em termos formais, o objectivo ´e o de aproximar a distˆancia m´edia em GH, `a distˆancia m´edia em GN. Preci- samente, a figura 4.1.b) contextualiza este racioc´ınio, para a utiliza¸c˜ao de grafos Chord. O encaminhamento acelerado dever´a pois reduzir a distˆancia m´edia d(GH) pelo menos at´e
ao valor d(GN) e, se poss´ıvel, abaixo dele, fazendo uma utiliza¸c˜ao inteligente do conjunto de informa¸c˜ao de localiza¸c˜ao dispersa pela v´arias tabelas de encaminhamento de cada n´o.
4.4.4 Tabelas de Encaminhamento
A navegabilidade no grafo GH (da qual depende, em ´ultima instˆancia, o mecanismo de localiza¸c˜ao distribu´ıda) requer a manuten¸c˜ao, por cada hash h de H, de uma tabela de enca- minhamento, T E(h). Genericamente, se qualquer hash h ∈ H tiver K sucessores no grafo, ent˜ao T E(h) guardar´a 1) a identidade dos K sucessores (suc(h, k), com k = 0, 1, ..., K − 1) e 2) para cada sucessor, a identifica¸c˜ao12 do seu n´o hospedeiro (n(suc(h, k))). Um n´o n
respons´avel por uma parti¸c˜ao H(n), alojar´a H(n) = #H(n) tabelas de encaminhamento.
4.4.5 Arvores de Encaminhamento´
Para realizar encaminhamento acelerado de forma eficiente, todas as tabelas de encami- nhamento de cada n´o de uma DHT s˜ao concentradas numa estrutura de dados local. Ge- nericamente, designamos essa estrutura por ´arvore de encaminhamento. Tendo em conta o seu prop´osito, uma ´arvore de encaminhamento deve satisfazer um conjunto de proprieda- des relevantes: 1) suportar a adi¸c˜ao/remo¸c˜ao eficiente de tabelas de encaminhamento, 2) assegurar acesso eficiente a tabelas individuais (no m´aximo, acesso de ordem logar´ıtmica, face ao n´umero total de tabelas), 3) permitir a travessia eficiente da totalidade das tabelas.
11
Para um grafo Chord gen´erico, G, com um certo n´umero |V (G)| de v´ertices, a distˆancia m´axima ´e dmax(G) ≈ log2|V (G)| e a distˆancia m´edia ´e d(G) ≈ dmax(G)/2 [LKRG03] (ver tamb´em sec¸c˜ao 4.6.1).