TAXONOMIA PARA SOLUÇÕES DE
BALANCEAMENTO DE CARGA EM SISTEMAS
BASEADOS EM TABELAS DE HASH
DISTRIBUÍDAS
Programa de Pós-Graduação em Ciênia da Computação
TAXONOMIA PARA SOLUÇÕES DE
BALANCEAMENTO DE CARGA EM SISTEMAS
BASEADOS EM TABELAS DE HASH
DISTRIBUÍDAS
Dissertação apresentada ao Curso de
Pós-Graduação em Ciênia da Computação da
UniversidadeFederaldeMinasGeraisomo
requisitoparialparaaobtençãodograude
Mestre emCiênia daComputação.
ANDRÉ RIBEIRO DA SILVA
FOLHA DE APROVAÇO
Taxonomia para soluções de balaneamento de arga em
sistemas baseados em tabelas de hash distribuídas
ANDRÉ RIBEIRO DA SILVA
Dissertaçãodefendida e aprovada pelabana examinadora onstituída por:
Ph. D. Dorgival Olavo Guedes Neto Orientador
Universidade Federal de Minas Gerais
Ph. D. Renato Antnio Celso Ferreira
Universidade Federal de Minas Gerais
Ph. D. Wagner Meira Jr.
Sistemas omputaionais distribuídos são uma valiosa ferramenta para distribuição e
proessamento de informação na solução dos mais diversos problemas. Um problema
em espeial é a distribuição de reursos entre máquinas de uma rede. Apliações que
usamalgoritmosembaraçosamenteparalelosnãopreisamsepreouparomessa
distri-buição. Asdemaisapliaçõesdevemsepreouparomqualnópossuiumadeterminada
informação e qual irá exeutar determinada tarefa. Dependendo dotipode apliação
essa funionalidade deve ser pensada de forma a suportar entrada e saída dos nós da
rede mas, ao mesmo tempo,produzindo omínimode modiaçõesno sistemaquando
isso oorre. A ténia de hash onsistente possui essa funionalidade de exibilidade
ompouamodiaçãodosistema. Essaidéiaéutilizadanasredesbaseadasemtabelas
hash distribuídas(DHT). As DHTs por sua vez são a base de diversas redes par-a-par
quedenominadasestruturadas. Asredes DHTspossuemumproblemainerentede
des-balaneamento de arga devido à forma omo são gerados os identiadores dos nós
nessasredes. Essesproblemasvêmreentementesendoestudadosediversosalgoritmos
para lidar om o problema de balaneamentode arga nessas redes foram
desenvolvi-dos reentemente. Como objetivode organizaresse onheimentode formaapermitir
a omparação entre os diversos algoritmos, bem omo servir de base para o
desen-volvimento de novos, neste trabalho será desrita uma taxonomia para os algoritmos
de balaneamento de arga em redes baseadas em DHTs. Foram analisados diversos
Distributed omputationalsystems are avaluabletool for distributing and proessing
information and are employed in the solution of several problems. A partiular
pro-blem is the distribution of resoures among peers of a network. This isnot a onern
forappliationsbasedonembarrassinglyparallelalgorithms. Many otherappliations,
however, should be able to determine whih node has a spei information or ould
perform a ertain task. Depending on the appliation to be onsidered, this
funtio-nality should be designed to support network hurn with minimum alteration in the
system. This is the ase of the onsistent hash tehnique whih orresponds to the
main ideabehindnetworksbasedonDistributedHashTables(DHT)thatare thebase
of several strutured peer-to-peer networks. An important issue of DHT networks is
itsinherentloadunbalaningduetotheway inwhihpeeridentiersarereated. This
problemhasreeivedmuhattentionreentlyand,asaonsequene,severalalgorithms
have been proposed. In order to organize all this knowledge, ompare the algorithms
proposed in the literature, and provide a base for the development of new strategies,
wepropose inthis worka taxonomy forload balaningalgorithmsforDHT Networks.
As a result of this study, we analyzed several works and lassied them aording to
Chega o momento de onlusão da dissertação. Muita oisa foi feita, muitos artigos
foramlidos,muitaspáginasesritaseonomedoautoréomeu. Masninguémfaznada
sozinho. Cadasorriso,adapalavrade apoio,ada onversa, adainteraçãoom outra
pessoamudaotrabalho. Está páginaentão édediadaatodos queinteragiramomigo
e que em maior oumenor grau ontribuíram para aonlusão deste trabalho.
Gostariade agradeerprimeiramenteaomeu orientador,oprofessorDorgival
Gue-des, que sempre busou disutir e dar sua opinião sobre o andamento do trabalho.
Sempre atenioso e ao alanepara sanar as dúvidas. Gostaria de agradeer também
aos olegasdoDCCe daFunesi, emespeial aoHélioMaros, guraça de Belém,por
ompartilhar diversos momentosde produção edesontração.
Boa parte deste trabalho foi realizado em minha asa. Assim, foi fundamental os
inúmeros momentos de desontração vividos em minha repúblia. Agradeço a todas
as pessoas que frequentaram o apartamento 301/401 e om quem onvivi durante o
mestrado. Agradeço à Bárbara pelo seu sorriso ontagiante. Agradeço à Greiiane
por manter aquela asa em ordem (pelo menos aos sábados). Agradeço ao Eri, pelo
ompartilhamentodosofrimentode esreveradissertação,porsualouuraepormatar
uma igarra om o violão. Gostaria de agradeer ao amigo Maro Cristo, pela sua
sempreboaompanhia,seus lmesmaluoseseus ensinamentos. Gostariatambémde
agradeer aosamigosDanielMouraeTúlioGuimarães pelosmomentosde onvivênia
na repúblia. Gostaria também de agradeer aos amigos Paulo José, Denise, Mário
Lobato, AndréBigonha, Prisila,Liliana Isabel,Jessé, RaphaelNunes, Skizos, etodos
aqueles que tomaramuma erveja omigo.
Dedio este último parágrafo à todos de minha família. Em espeial, gostaria de
agradeer à minha irmã, Graziella,por sempre me transmitir tanta alegria e arinho.
Agradeçomuitomesmoàminhamãe,semdúvida, omaioragradeimentodestapágina
vai para a Sra Stella. Obrigado por todo apoio, arinho e por suas sábias palavras
em todos os momentos da minha vida. Por m, mas de forma alguma om menor
importânia,agradeço à minha namorada, a Kellzinha, portodaa sua paiênia, por
1 Introdução 1
1.1 O ambiente distribuído Formigueiro . . . 2
1.2 Trabalhos relaionados . . . 4
1.2.1 Construção de taxonomias . . . 4
1.2.2 Balaneamentode arga emDHTs . . . 5
1.3 Organização dadissertação . . . 5
2 Fundamentação teória 7 2.1 Balaneamentode arga . . . 7
2.1.1 Balaneamentode arga emsistemas distribuídos . . . 9
2.2 Hash onsistente . . . 11
2.3 Redes par-a-par . . . 14
2.3.1 Formas de organizaçãodas redes P2P . . . 15
2.3.2 Tabelas hash distribuídas . . . 15
2.4 Balaneamentode argaem DHTs. . . 21
3 Análise da literatura de balaneamento de arga em DHTs 27 3.1 Toward a dynamiallybalaned luster oriented DHT . . . 27
3.2 Heterogeneity and load Balane in distributedhash tables . . . 29
3.3 Dynami load balaning indistributed hash tables . . . 29
3.4 Eetive load balaning of peer-to-peer systems . . . 30
3.5 A sheme for load balaning in heterogeneous distributed hash tables . 32 3.6 Distributed,seure load balaning with skew, heterogeneity, and hurn 33 3.7 Multitifaetedsimultaneous load balaning in DHT-based P2Psystems 34 3.8 Eient, proximity-aware load balaning for DHT-based P2Psystems . 35 3.9 Simple load balaning fordistributed hash table . . . 36
3.10 A thermal-dissipation-basedapproah for balaning data load inDHTs 37 3.11 Load balaning in hyperubi DHTs withheterogeneous proessors. . . 38
3.12 Simple eient load balaning algorithmsforpeer-to-peer systems . . . 39
DHT networks. . . 41
4 Taxonomia para balaneamento de arga em DHTs 44 4.1 Metodologia para obtenção dataxonomia. . . 44
4.2 Desrição dataxonomia obtida . . . 45
4.2.1 Ambiente de apliação . . . 45
4.2.2 Dinamiidade . . . 46
4.2.3 Tipo de nó. . . 46
4.2.4 Distribuição daarga . . . 47
4.2.5 Heterogeneidade . . . 47
4.2.6 Padrão de omuniação. . . 48
4.2.7 Objetivo dobalaneamento . . . 49
4.2.8 Tomadade deisão . . . 49
4.3 Apliação da taxonomia aos trabalhos de balaneamento de arga em DHTs . . . 52
4.3.1 Toward a dynamiallybalaned luster oriented DHT . . . 52
4.3.2 Heterogeneity and load balane indistributed hash tables. . . . 53
4.3.3 Dynami load balaning indistributed hash tables . . . 53
4.3.4 Eetiveload balaning of peer-to-peer systems . . . 54
4.3.5 A sheme for load balaning in heterogeneous distributed hash tables . . . 55
4.3.6 Distributed,seure loadbalaningwith skew, heterogeneity,and hurn. . . 55
4.3.7 Multitifaeted simultaneous load balaning in DHT-based P2P systems . . . 56
4.3.8 Eient, proximity-aware load balaning for DHT-based P2P systems . . . 56
4.3.9 Simple load balaning for distributed hash table . . . 57
4.3.10 A thermal-dissipation-basedapproahfor balaningdata loadin DHTs . . . 58
4.3.11 Load balaninginhyperubiDHTswithheterogeneousproessors 58 4.3.12 Simple eientload balaning algorithmsfor peer-to-peer systems 59 4.3.13 Load balaning instrutured P2Psystems . . . 59
4.3.14 Load balaning indynami strutured P2Psystems . . . 60
5 Conlusão 64
5.1 Distribuiçãode tarefas noambiente distribuídoFormigueiro . . . 65
5.2 Trabalhos Futuros. . . 67
Referênias Bibliográas 68
2.1 Distribuiçãode identiadores om duas funções hash. . . 12
2.2 Exemplo de assoiação de nós e objetos om hash onsistente . . . 13
2.3 Umataxonomiapara sistemasomputaionais. . . 14
2.4 Representação das DHTs omo interfae entre apliações e infraestrutura de rede. . . 17
2.5 Exemplo daestrutura de anel darede Chord . . . 17
2.6 Exemplo de busa emuma rede Chord . . . 18
2.7 Exemplodaestrutura e dofunionamentodomeanismo de busa emuma rede CAN. . . 19
2.8 Desvio padrãoda distribuiçãode havespornós . . . 23
2.9 Número de haves redistribuídas. . . 24
2.10 Divisão doespaço de endereçamento omservidores virtuais . . . 25
2.11 Comparação das ténias de distribuição de reursos inluindo agora os servidoresvirtuais. . . 25
3.1 Relaionamentoentre ostrabalhos em termosde itação. . . 43
4.1 Taxonomiariada para a área de balaneamento de arga emredes DHT. . 51
2.1 Tabelade mapeamentopara o nóde identiador67493 na rede Tapestry. 20
2.2 Comparaçãoentre asredes DHTs. . . 21
A.1 Classiaçãodos trabalhos analisados . . . 72
Introdução
Sistemas omputaionaisdistribuídos onstituem uma valiosa ferramentade
proessa-mentode informaçõesnasoluçãodos maisdiversos problemas. Tais sistemasofereem
a vantagem de melhorar signiativamente o desempenho das apliações por meio da
paralelizaçãodos problemas, ouseja,a entradadas apliaçõesédeomposta em
diver-sos bloos que são tratados paralelamente em diferentes unidades de proessamento.
Além disso, sistemasdistribuídos permitemque vários usuários sebeneiem
simulta-neamente da alta disponibilidade gerada pela distribuição de reursos, por exemplo,
paraoarmazenamentoouproessamentodedados. Entreasváriasarquiteturas
distri-buídas destaam-se hoje os agrupamentos ou agregados (Clusters), as grades (Grids)
e os ambientes par-a-par (peer-to-peer).
Tais sistemas podem ser de grande valia, por exemplo, para a implementação de
algoritmosde mineração de dados. Com a ontinuaqueda de preço dos equipamentos
de armazenagem e ao aperfeiçoamento das ténias de oleta de dados, um volume
ada vez maiorde dadossetornadisponível. Comisso, éadavezmaior aneessidade
de extrair informaçõesúteisdessa imensamassade dadosarmazenada. Aapliaçãode
ténias de mineração de dados pode nos ajudar a atingir esse objetivo. Entretanto,
devido ao grande volume de dados, o usto da apliação de tais algoritmos de forma
seqüenial torna-se proibitivo. Dessa forma,é importanteque as apliações
responsá-veis pela mineração possam ser exeutadas em um ambiente distribuído. Para suprir
essa neessidade foi desenvolvido, no laboratório e-Speed do Departamento de
Ciên-iada ComputaçãodaUFMG, oambientedenominadoFormigueiro[7℄que deneum
onjunto de abstrações que permitemuma exeução eiente de algoritmosintensivos
em dados e proessamento (omo é o aso da mineração de dados) em um ambiente
1.1 O ambiente distribuído Formigueiro
OambienteFormigueirotrabalhaomaidéiapipeline deoperações, denominadanesse
aso de modelo Filtro-Fluxo (lter stream). Um uxo é um anal de proessamento
por onde trafegam dados. Esse anal é dividido em estágios, denominados uxos, e
em adaestágio érealizadoum onjunto de operações. Assim, parauma apliaçãoser
exeutada no Formigueiro é preiso que ela seja deomposta em diversos estágios de
exeução, o quejá foi feito para para diversas apliações [7℄.
Uma vez deomposta em estágios, uma apliação pode, a ada etapa do pipeline
(em ada ltro) ter seus dados divididos e proessados em paralelo. Isso permite
que o ambiente explore as araterístias de paralelismo de dados e de tarefas das
apliações. Alémdisso,oFormigueirofoidesenvolvidodeformaapermitirqueestágios
independentes dopipeline sejamexeutadossem aneessidadede esperarpelotérmino
de outros, possibilitando assim a exploração das propriedades de assinronismo de
diversas apliações.
Existem diversos problemas araterístios desse tipo de abstração que devem ser
estudados uidadosamente para que o sistema omo um todo tenha um bom
desem-penho. Por exemplo, o fato de distribuir as tarefas de uma apliação entre diversas
máquinaslevaaoproblemanaturalde realizarestadistribuiçãodeformaeiente. Isso
signia que as máquinas do ambiente distribuído devem reeber aproximadamente o
mesmo volume de proessamento. No aso de uma reonguração do sistemadurante
aexeução, idealmenteissodeveoorreromummínimodereassinalamentodetarefas
entre osnós dosistema.
Um fator ompliador na maioria dos asos é que diversas apliações exigem que
sejapossíveldeterminarrapidamentequalnódaredepossuiumadeterminada
informa-ção, porexemplo,parasedeterminarqualnódeverealizardeterminadatarefa. Apenas
apliações que utilizam algoritmos embaraçosamente paralelos não preisam se
preo-upar om esses problemas; as demaistêm queresolver esse problema para garantir a
sua exeução de formaorreta. Sea argadas tarefas formuito variávelemrelaçãoao
volume de dados envolvidos (apliações dependentes dos dados) o problema se torna
aindamaior,poismesmoumadistribuiçãoequilibradadonúmerodetarefasnão
garan-tiráum balaneamentode argaadequado. Nesse aso épreisolevaremonsideração
aquantidadedeargaobservadaemadamáquinaeadequarasdistribuiçõesdetarefas
a essa informação.
A formamais simples de resolver oproblema de distribuiçãode tarefas é de forma
em tempo de implementação da apliação. Essa solução, embora simples de ser
apli-ada,possuiumalimitaçãomuito importante: nãoépossívelexibilizarasoluçãopara
adaptaramudançasquevenhamaoorrernarede. Umaoutraformade resolvero
pro-blema éutilizar um diionárioglobal quefaçao mapeamento. Essa téniaentretanto
setornaumproblema quandoonúmerodenós daredeaumenta,poisháaneessidade
de manter odiionárioatualizado emtodasasmáquinasdarede. Outraformaéa
uti-lização de uma função de mapeamento xa, omo uma função hash, que permite que
o assinalamento mude om a mudança do número de nós sem que a apliação preise
ser alterada. Esse é o meanismo utilizado no ambiente distribuído Formigueiro para
implementar a distribuição de tarefas entre máquinas. Essa abstração é denominada
labeled-stream e onsiste em assoiar a ada mensagem um rótulo que é utilizado por
uma função hash para indiar qual instânia de um ltro (proesso) deve reeber a
mensagem.
Autilizaçãodefunçõeshash levaaoproblemadeterqueadaptarafunçãoutilizada
quando o ambiente da apliaçãoé dinâmio (uma função que gere um assinalamento
de inteiros entre zero e sete preisa ser alterada se o número de nós do sistema
au-menta para dez, por exemplo). Esses problemas podem ser resolvidos pela adoção da
ténia de hash onsistente, que possui uma grande adaptabilidadea mudanças omo
entrada esaída demáquinas darede[15℄. Poressa araterístia,essa téniaéabase
de diversas soluções de endereçamento em redes par-a-par estruturadas, as quais se
baseiamnadistribuiçãodatabeladehash entre osnós darede (denominadas,porisso,
distributed hash tables, DHTs). Entretanto, autilizaçãode hash onsistente leva aum
desbalaneamentode argainerenteaouso dessaténia,oquetem um impatosobre
adistribuiçãode argaemDHTs. Esse fatotemlevadoaodesenvolvimentode diversos
trabalhos embusa de soluçõesde balaneamentonesse ambiente.
Por ser uma área de pesquisa reente, entender e omparar as diversas tenologias
é uma tarefa difíil,pois não há ainda uma estabilização doonheimento nessa área.
Uma lassiaçãodessas ténias então torna-seútilpara failitaro entendimentodas
araterístias próprias dessa área, bem omo para permitir um posiionamento
or-reto dos novos trabalhos emuma determinadalasse de algoritmos,permitindoassim
a organização do onheimento. Além disso, a partir de uma lassiação das
té-nias é possível identiar pontos fraos e fortes das mesmas e om isso identiar
oportunidadespara o desenvolvimento de novasapliaçõesnaárea.
Sendoassim,propomo-nosnestetrabalhoariarumataxonomiadaáreade
balane-amentodeargaemredesde tabelashash distribuídas(DHT),asquaissão fortemente
estrutura-das. Pretende-seomessataxonomiaobterumabasesigniativadeonheimentoque
permitao desenvolvimento de uma soluçãopara oproblema de distribuição de tarefas
dentro do ambiente Formigueiro. Espera-se que uma solução desenvolvida om base
neste trabalhopossa apresentararaterístiasinteressantes para ambientes
reongu-ráveisaomesmotempoemquemantémadistribuiçãode arganosistemabalaneada.
Além disso, a partir de omparações e analise das desrições espera-se obter novas
direçõesde trabalhos naárea das redes DHT.
1.2 Trabalhos relaionados
Devido à natureza do trabalho que nos propomos a desenvolver, podemos separar os
trabalhos relaionados em duas partes. A primeira parte inlui os trabalhos
relaio-nados à produção de taxonomias para sistemas distribuídos emgeral e é apresentada
a seguir. A segunda se relaiona aos artigos espeiamente sobre balaneamento de
arga em DHTs, que serão analisados om maior detalhes noCapítulo3.
1.2.1 Construção de taxonomias
O desenvolvimento de taxonomias é extremamente importante para estruturar o
o-nheimento em novas áreas de pesquisa e auxiliar os pesquisadores a identiar os
aminhos passíveis de exploração dentro na nova área. Como exemplo, podemos
to-mar a taxonomia de Flynn [8℄, que desreve uma lassiação para as arquiteturas
de omputadores baseada no número de instruções onorrentes e no uxo de dados
disponível, de grande importânia para a área de arquitetura de omputadores. Já
na área de gereniamentode reursos em sistemasdistribuídos foramriadas algumas
taxonomias queabrangem a área omo um todo[4℄, e outras om foo mais espeío
em balaneamento/distribuição de arga [31, 12, 33℄. Não existe, até onde pudemos
observar,nenhum estudo espeío quelassique os algoritmosde balaneamento de
dados em redes baseadas emDHTs.
Dessa forma,onsiderando uma abordagemmais geral, Casavant e Kuhl [4℄,
apre-sentam umataxonomiade esalonamentoemsistemasonorrentes de propósitogeral.
O objetivo do trabalho foi prover uma formade omparação qualitativa entre as
pes-quisas realizadas na époa, bem omo forneer um instrumento de lassiação para
futurostrabalhos. Nessa taxonomiaasváriasabordagensparagereniamentode
e outranão hierárquia. Umaterminologiaadequadatambémfoiproposta,bemomo
uma série de exemplos de apliaçãodataxonomia.
WangeMorris [33℄,poroutrolado,foamseu trabalhodelassiaçãomais
espei-amente na área de balaneamento/distribuição de arga, propondo uma taxonomia
de duas dimensões. Em um eixo os algoritmos são lassiados quanto à iniiativa
de busa por arga, que pode ser feita pelo nó de rede gerador da arga ou pelo nó
de rede exeutor da arga. No outro eixo os algoritmos são lassiados quanto ao
seu nível de dependênia de informaçõesdosistema,propondo, noaso, sete níveisde
dependênia. Além disso é proposto no mesmo trabalho uma métria que possibilita
realizar aomparação entre os diversos algoritmosestudados.
Os trabalhos de Shivaratri et al. [31℄ e Gupta e Bepari [12℄ fazem lassiações
pareidas daáreade distribuiçãode argaemsistemasdistribuídos. Segundoesses
tra-balhos, os algoritmos de balaneamento/distribuiçãode arga podem ser lassiados
de aordo om as polítias adotadas para transferênia de arga, loalização de
des-tino, seleçãode proessos (arga)e de informação(dependênia de informação). Além
disso, as ténias de balaneamento são lassiadas seguindo a hierarquia proposta
porCasavant eKuhl [4℄.
1.2.2 Balaneamento de arga em DHTs
Vários algoritmos de balaneamento de arga em DHTs foram propostos nos últimos
anos. Diversosalgoritmosutilizamaténiadeservidoresvirtuaisparamanteraarga
da rede balaneada [11, 27, 14℄. Outros algoritmos não se utilizam dessas ténias e
propõem uma redistribuição doespaço de identiadores [9, 20, 2℄. Além disso foram
propostos algoritmospara distribuiçãode arga uniformeenão uniforme,e pararedes
om distribuição de apaidades homogênease não homogêneas [16, 23,20,2℄. Foram
tambémpropostosalgoritmosparalidarombalaneamentodeitensdedados[20℄bem
omoalgoritmosquelevamemonsideraçãoinformaçõesdeproximidadeentreosnósda
rede [36℄. Embora menionados resumidamente aqui, as prinipaisaraterístias dos
trabalhos daáreadebalaneamentode argaemDHTsserãodisutidas noCapítulo3.
1.3 Organização da dissertação
Este trabalho foi dividido emino apítulos. Neste apítulo foi realizada uma
apresentadas astenologias de balaneamentode arga,de hash onsistente, das
tabe-las hash distribuídas, bem omo demaisoneitos neessários para o entendimento da
taxonomia riada. No Capítulo3são apresentados asdesrições dos trabalhos
utiliza-dos nariaçãodataxonomia. Emseguida,noCapítulo4,éentão mostradaedisutida
a taxonomiariada e feita a lassiação dos trabalhos da área segundo essa
taxono-mia. No Capítulo 5 são apresentadas as onlusões do trabalho e possíveis trabalhos
futuros. Porm, noApêndie A é possível enontrar uma ompilação da lassiação
Fundamentação teória
Considerando-se o foodeste trabalho, é importantedesrever primeiramenteos
prin-ipaisoneitos relaionadosquesão, nesseaso,ouso dehash onsistente, ossistemas
par-a-par baseados em DHT e os elementos gerais do problema de balaneamento de
arga.
2.1 Balaneamento de arga
Balaneamento de arga se refere ao onjunto de ações tomadas para que os reursos
de um sistemanão sejammaldistribuídos, ouseja,para que todos osmembros de um
sistema de omputadores tenham igual responsabilidade, ou mesmo, num ambiente
heterogêneo, responsabilidade proporional à apaidade de seus reursos. A área de
balaneamento de arga já mostra erta maturidade graças aos avanços das últimas
duas déadas no desenvolvimento de ténias para uma melhor distribuição dos
re-ursos emsistemas distribuídos, mas o problema de balaneamentoem DHTs ainda é
relativamentenovo.
Aarga de um sistemapode ser medidade várias maneirasemrelaçãoadiferentes
reursos. Pode-se levar em onsideração diversos tipos de reursos omo
armazena-mento,banda de rede, CPU, et. Essas três prinipaisformas de balaneamentoserão
brevemente abordadasa seguir:
Balaneamento de armazenamento: nesse aso a arga onsiderada é a
quanti-dade de espaço em diso que uma máquina darede dispõe para armazenamento
de dados. Essa arga pode ser medida em unidades múltiplas de bytes ou em
Balaneamento de banda de rede: nesseasoaargaonsideradaéaporentagem
de banda de rede utilizada. Balaneamentoentre vizinhos e entre nós próximos
siamente normalmente reduzem a quantidade de utilização da banda de rede
porrealizar transferênias entre pouos nós. Um sistema balaneado nesse aso
seria um sistema noqual as onexões de rede fossem bem utilizadasde forma a
se evitar gargalosde omuniação.
Balaneamento de proessamento (CPU): aarga onsiderada éa utilizaçãoda
CPU das máquinas da rede. Essa arga pode ser medida pela porentagem de
CPUutilizadaoupelonúmerode requisiçõesatendidasporuma máquina. Nesse
aso épreisoonsiderarotempodeexeuçãodas tarefas duranteadistribuição.
Emrelaçãoaessaúltimaformadebalaneamento,CPU, éimportanteobservarque
o assinalamentode uma tarefaauma máquinapode aonteer nomomentodariação
datarefa,ouseja,antesdoiníiodasuaexeução, oupormeiodatransferêniadeuma
máquinaparaoutra, interrompendoaexeuçãonamáquinadeorigemeontinuandoa
exeuçãonamáquinadedestino. Oprimeiroasoémaisfáildeserimplementado,pois
éneessárioapenasdeidirqualamáquinadedestinodatarefaeenviaratarefa paraa
máquina. No segundo aso, a implementação émais ompliadadevido àneessidade
de interromperuma tarefa quejáestá sendoexeutada. Nesse aso, oestadodatarefa
devetambémser transferidopara a máquina de destino.
Umoutroproblemaéaassoiaçãoentre atarefaeosdadosqueelaproessa. Nesse
tipo de balaneamento é preiso denir omo será realizadaa transferênia de dados.
Essa araterístiaéimportante, poisaotransferirdadoslida-seomasdemaisformas
de balaneamento,umavez que atransferênia eoarmazenamentodos dadosaserem
proessados estãodiretamenterelaionadosomousodabandaderedeeomoespaço
disponívelpara armazenamentonas máquinas.
Alémdisso,independentementedos reursos esolhidospara realizaçãodo
balane-amentoéimportantedeniroestadode balaneamentode argade uma rede,ouseja,
sob quaisaspetos osistemaéonsideradosobrearregado ouemequilíbrioemrelação
a um determinado reurso. Se a métria utilizada, por exemplo, for o tempo que um
proessador leva para realizar uma tarefa, seria neessário distribuir as tarefas entre
os proessadores de forma que ada um que em funionamento durante um mesmo
períodode tempopara que o sistemaatinja um equilíbriode arga.
Por outro lado, se a arga de uma determinada máquina está relaionada a um
reurso omo armazenamento de dados, por exemplo, a quantidade de arquivos que
máquinasdarede,proporionalmenteàsua apaidadede armazenamento. Assim, em
um sistema de arga equilibrada todas as máquinas armazenariam aproximadamente
o mesmo número de arquivos ou a mesma quantidade de bytes. Neste texto, vamos
indistintamente utilizar os termos distribuição de tarefas e distribuição de reursos,
quando neessário deixaremos explíitoo tipo de arga tratada.
2.1.1 Balaneamento de arga em sistemas distribuídos
De aordo om Shirazi et alii [30℄, a disponibilidade de diversas máquinas para
utili-zação traz o natural problema de omo dividir tarefas entre essas máquinas. Não só
a distribuição de tarefas, mas a busa por atingir o uso justo dos reursos de aordo
omaspotenialidadesdeadamáquinaonstituiametadaáreadebalaneamentode
arga. Assim, algoritmossão desenvolvidos para que a utilização dos reursos (CPU,
armazenamento, banda de rede, et) seja maximizada eos tempos de respostas,
atra-sos de omuniação, et., sejamminimizados. As ténias de balaneamento de arga
são usualmente identiadas omo estátias ou dinâmiasem função da sua forma de
funionamento.
Balaneamento estátio
Algoritmos estátios para balaneamento onsideram que as tarefas são distribuídas
entre os proessadores do sistema de forma estátia, ou seja, antes do iníio da
exe-ução das apliações. O objetivo prinipal dessa ténia é minimizar o tempo de
exeução das apliações. Para fazer isso, informações sobre as tarefas são estimadas
e os proessadores-alvo são então assoiados às tarefas em tempo de ompilação da
apliação.
Embora esse meanismo elimine a sobrearga de esolher o destino de uma tarefa
em tempo de exeução, segundo Papadimitriou e Yannakakis [21℄ obter uma solução
ótimapara omapeamentode tarefaséumproblema
NP
-ompleto fazendoomqueassoluçõesnormalmenteadotadas sejambaseadas emheurístias. Alémdisso, mudanças
nos temposde exeução de umatarefanão sãoprevistasporessas ténias, oquepode
levar a uma distribuição de tarefas ineiente, gerando possivelmente sobrearga em
Balaneamento dinâmio
As ténias de balaneamento dinâmias, ao ontrário das estátias, busam adequar
as tarefas às máquinas durante a exeução das apliações. Nesse aso, as máquinas
são monitoradas e guardam informações sobre a taxa de utilização dos reursos
on-sumidos. Apartir dessas informaçõesépossíveltransferirtarefas (arga)de máquinas
sobrearregadas para máquinas que estejam onsumindo pouos reursos. Para as
ténias dinâmias são normalmente denidos três tipos de polítias para auxiliar a
tomada de deisão:
polítia de informação: dene omo e onde obter informações sobre a arga das
máquinas dosistema;
polítia de transferênia: deneemqueondiçõesdeterminadatarefadeveser
trans-ferida de uma máquina para outra;
polítia de loalização: dene para qual máquina/proessador a tarefa esolhida
deve ser transferida.
Essas polítias podem ser ombinadas de diversas formas e em diversos graus, de
forma entralizada ou distribuída. No aso do balaneamento de arga entralizado,
uma máquinadarede a responsávelporreolher asinformaçõesde arga das outras
máquinas de aordoom alguma polítia de informação. De posse dessas informações
são tomadas então deisões de loalização e transferênia de arga de aordo om as
polítiasadotadas. Oproblemadessaformadebalaneamentoéque,porexistirapenas
um responsável por esse serviço, o sistema terá diuldades de resimento e também
ará mais sujeito apossíveisfalhasdo serviço de balaneamento.
Jánoaso dobalaneamento distribuído,todas asmáquinas darede são
responsá-veispelas tomadasde deisõesque manterãoosistema balaneado. Nesse aso não há
um únio ponto de falha, mas há uma sobrearga de mensagens transferidas entre as
máquinas para realização do balaneamento. Se a polítia de informação não for bem
implantada esse problema pode ser ainda maior pois o grande número de mensagens
poderiaimpedirumaboaesalabilidadedosistema. Assim,épreisodenir,de aordo
om asneessidadesdoambientedistribuído, qualamelhorestratégiaparagereniar o
balaneamentode arga do sistema. É possível tambémombinar as duas estratégias
fazendo om que pouas máquinas realizem oproesso de balaneamentode arga do
sistema. Nesse aso ada máquina seria responsável por uma porção da rede e
Essa exibilidadede ombinações e de tomada de deisão durante a exeução das
apliaçõeséaprinipalvantagemdas ténias debalaneamentodinâmiasemrelação
às estátias. A prinipal desvantagem dessas ténias é a sobrearga de mensagens
transferidas e de proessamentogasta om agerênia dessaspolítiase oma tomada
de deisão.
2.2 Hash onsistente
Antesde desrevermosasredesdotipoDHT,objetoúltimodestetrabalho,preisamos
entenderosoneitosqueservemde baseparaessasredes,ouseja,osoneitosdehash
em geral ede hash onsistenteem partiular.
De aordo om Ziviani [37℄, uma função hash tradiional é uma função de
trans-formação de haves que onsiste em mapear uma dada have
i
, que identique umdeterminadoobjeto(dados,máquina,et.),emumaoutrahave
i
′
dentrodeumafaixa
de números inteiros. Essa novahave é, então, utilizada para loalizarum reurso ou
mesmo a máquina quesuporta talreurso, failitandoa onsultapelo objeto original,
já que, para enontrar esse reurso basta apliar a função de transformação e obter
a sua loalização. Uma função hash bastante utilizada, por exemplo, é a função de
ongruênialinear
x
7→
(
ax
+
b
)
mod
(
p
)
. Há,entretanto,oproblema dereonguração:umavez queashavessãodistribuídasnafaixadafunção,qualquer mudançano
tama-nho dessa faixa (no exemplo anterior,
p
) implia na neessidade de redistribuir todasas haves para evitar inonsistênias [15℄. Essa operação é ara, o que torna difíil o
uso desse tipode função hash emsistemas dinâmios.
Emertosambientesdistribuídosexisteoquehamamosderestriçõesdeanidades,
ou seja, ertas tarefas e dados só podem ser atribuídos a determinada máquina. Isso
aonteequando, porexemplo,épreisomanteralgumtipodeestadoentre aexeução
das tarefas. Assim, uma formaeiente de denirqualmáquinaaráresponsável por
determinada tarefa éutilizar rótulos nos dados e usar esses rótulos omo valores para
funções hash tradiionais.
Entretanto,quandoessetipodesistemapreisasofrerreongurações, porexemplo,
a entrada de um novo nó no sistema,a utilização de uma função tradiional seria um
grande problema, poisuma grande quantidade de redistribuiçãode tarefas deveria ser
realizada. Nesse aso o uso de uma função de hash onsistente é mais aonselhável.
Vamos por enquanto nos ater ao funionamento das funções de hash tradiional.
assinalamentos
inalterados
x mod n
x mod (n+1)
(a) Hashusandomod
x div k/n
x div k/(n+1)
assinalamentos
inalterados
(b) Hashusandodiv
Figura2.1: Distribuiçãode identiadores om duas funções hash.
x
modn
eh
(
x
) =
x
divk/n
ondex
éorótulo,k
éonúmerodehaves(objetos)en
éonúmerodenós partiipantes narede. Essas funçõestêmomo vantagensadistribuição
uniformedas havesentre asmáquinaseasuasimpliidadedeimplementação. Porém,
para um sistema dinâmio, na inlusão ou retirada de um nó, um grande número de
haves preisaria ser redistribuída em um sistema que utilizasse essas funções. Por
exemplo, paraoaso dafunçãomodvejaaFigura2.1(a); nelavemos adistribuiçãode
20 haves entre 4 máquinas e logodepois a redistribuição das haves que é neessária
devido à entrada de mais uma máquina na rede. Após a entrada da nova máquina,
apenas 4 haves permaneem nas máquinas originais, sendo que todas as outras são
distribuídas para máquinas diferentes. Já a Figura 2.1 (b) mostra omo aria um
sistema utilizando a função div; vemos na gura que, embora muitas haves ainda
sejam redistribuídas, o omportamento da redistribuição é um pouo diferente. Com
a utilizaçãodessa função as haves são troadas apenas entre nós vizinhos, mudando
assim o padrão de omuniação na troa, porém mantendo a ordem de omplexidade
do volume de dadosmigrados, queé
O
(
n
)
nos dois asos.Umafunção hash onsistentetem a propriedadede mudar minimamenteà medida
quesuafaixaéalterada[15℄. Issosigniaque,aoutilizarumafunçãohashparamapear
osnós de umaredeouosreursos deuma apliaçãodistribuída,ainlusãoouremoção
de nósdosistemaéfeitadeformaquenãoéneessáriogerarnovashavesparatodosos
objetos,forçandosuaredistribuição. Alémdisso,essasfunçõessãoonstruídasdeforma
a manter aproximadamenteomesmonúmerode haves emada máquinapartiipante
dosistema. Essa propriedadefailitaogereniamentodos reursosde formaagarantir
um melhorbalaneamento daarga de proessamento/armazenamento.
Consideremos, porexemplo, um sistema de ahing distribuído que utiliza23
má-quinas omo repliadoras de onteúdo Web. Podemos utilizar uma função hash que
mapeieumaURL
u
emumadas máquinas(nomeadasde0a22)omaseguintefunçãoh
(
u
) = (7
u
+ 4)
mod
23
. ÉpossívelmapearagoraasURLsnos servidoresde aheuni-formemente, dividindo a arga total do sistema entre as 23 máquinas. Entretanto, se
para, porexemplo,
h
(
u
) = (7
u
+ 4)
mod
24
. Oproblema équeagoratodas asURLsjámapeadasdevemser realuladasom anovafunção emapeadasemoutrasmáquinas.
Uma função hash onsistente poderia resolvero problema daseguinteforma:
•
Esolha uma função hash padrão que realize o mapeamento de adeia deara-teres em uma determinadafaixa de números
[0
..M
−
1]
.•
Dividimoso valorgeradoporM
de formaque omapeamentoseja feitonointer-valo
[0
,
1)
quepode ser vistoomo o intervalode um írulounitário.•
Cada URL éentão mapeada dessa formapara um ponto noírulounitário. Damesma forma, ada servidor de ahe no sistema é também mapeado para um
pontono írulounitário.
•
Agora, assoie ada URL a uma máquina, da seguinte maneira: movendo-seno írulo unitário, em um sentido pré-estabeleido a partir do ponto referente
a uma URL, identia-se a primeira máquina enontrada. Essa máquina será
responsável porarmazenar odoumentoassoiado àquela URL.
Assim, quando existe alguma alteração no número de ahes, somente os objetos
próximos à ahe inluída/exluída no espaço de endereçamento devem ser movidos,
mantendo-se a onsistênia dos sistema. A Figura 2.2 ilustra o exemplo apresentado.
Os servidores representam as ahes e os ítens são as páginas Web apontadas pelas
URLs. Comopode ser vistonagura,asoluçãode hash onsistenteseonguraassim
omo uma forma eiente de se manter um mapeamento entre objetos e servidores,
om um usto de reonguração reduzido.
Figura 2.2: (i)Cada URL mapeada éassoiada om a ahe mais próxima nosentido
horáriodoírulo: itens1,2e3sãoassoiadosàahe Aeosítens4e5são assoiados
à ahe B. (ii) Quando uma nova ahe C é adiionada aosistema, apenas os ítens 1
2.3 Redes par-a-par
As redes par-a-par (peer-to-peer ou P2P) vem nos últimos anos setornando uma
te-nologia ada vez mais utilizada na estrutura de apliações de redes populares. A
popularização da tenologia P2P se iniiou om o surgimento do Napster, apliação
que permitiaompartilhamento de arquivos entre usuários da Internet. Embora fosse
um sistemahíbrido, queexigia aentralizaçãode um servidor para onsultaao índie
de arquivos, a transferênia de informações era feita de forma independente do
ser-vidor, entre os partiipantes. Surgia aí a primeira de muitas apliações distribuídas
que utilizariama idéiade omuniação par-a-par. PodemosvernaFigura2.3omo as
redes par-a-par se enaixam nos sistemas omputaionais dentro da área de sistemas
distribuídos segundo a taxonomiade sistemasomputaionais de Milojii et alii [19℄.
Figura2.3: Umataxonomia para sistemasomputaionais.
Alguns trabalhos armam que a tenologia P2P não traz muita oisa de novo,
poisP2P não passaria de um sistema distribuído mais desentralizado emrelação aos
sistemas liente-servidor [19℄. De qualquer forma, vamos onsiderar neste trabalho
que o termo par-a-par se refere a uma lasse de sistemas onde dois ou mais pares
partiipantes deuma redepossamtroarinformaçõeserealizarolaboraçõesentre eles
ouom demaispares,sem aneessidadede um oordenadorentral, omoemShoder
e Fishbah [28℄. Essa denição inlui todos os sistemas e as apliações onsideradas
2.3.1 Formas de organização das redes P2P
AsredesP2Ppodemserlassiadasdeaordoomassuaorganizaçãointerna,ditada
pelos seus algoritmos de roteamento e busa, omo não-estruturadas e estruturadas.
Uma rede P2P não-estruturada, também hamada de rede P2P pura, é uma rede na
qual não existe estrutura pré-denida de roteamento entre os pares. Cada par, para
realizarumabusaporumdoumento,enviaessabusaparaseusvizinhospormeiode
inundamento(ooding)eosvizinhosporsuavezrepassamabusaparaseusvizinhose
assim suessivamente, atéqueoresultadodabusasejaatingido,ouseja,odoumento
seja enontrado, ou o número de passos de busa atinja o limite do sistema. Esses
sistemas enfrentam, laramente, problemas de esalabilidade devido ao proesso de
ooding. Emsistemaspequenos,omoumaredeuniversitáriaouumaredeempresarial,
esses sistemas são vantajosos devido aobaixo usto de implantaçãoe manutenção. A
prinipal rede P2P que representa essa ategoria é a rede Gnutella 1
utilizada para
ompartilhamentode arquivos naInternet. Para resolvero problema de esala alguns
trabalhos utilizama idéia de super-pares, que serviriamomo pontos de onentração
de reursos/tarefas [35℄.
Já nas redes P2P estruturadas, tambémhamadas de orientadas a onteúdo, ada
par possui um identiador, que pode ou não ser esolhido aleatoriamente, em um
espaço de endereçamento. Cada objeto armazenado narede possui também um
iden-tiador obtido do mesmo espaço de endereçamento. Os identiadores dos objetos
e dos pares são então assoiados segundo alguma noção de proximidade. Além disso,
ada nó da rede 2
possui uma tabela de roteamento om o endereço de outros nós da
rede estrategiamente esolhidos de forma a tornar o proesso de busa eiente. As
estruturas deendereçamento,roteamentoebusadessasredesonstituemashamadas
Tabelas Hash Distribuídas (Distributed Hash Tables - DHT) que serão disutidas na
próxima seção.
2.3.2 Tabelas hash distribuídas
Tabelas hash tradiionaissão utilizadas emdiversas apliaçõespara realização de
ma-peamento entre objetos. No aso de sistemas distribuídos, podem ser utilizadas, por
exemplo, paramapear identiadores de objetos(tarefas, arquivos,et.) emmáquinas
da rede. Nesse aso éutilizada uma tabela queassoiaa todoobjetoum identiador
que india qual máquina é responsável pelo objeto. Essa tabela é então armazenada
1
http://www.gnutella.om
2
ompletamente dentro de ada máquina. Assim a partir de qualquer máquina é
pos-sível saber em tempo onstante qualquer mapeamento entre objetos e máquinas. O
problema dessa abordagem é que quando o número de nós da rede rese o usto de
armazenaressa tabelaemantê-laatualizadaemtodasasmáquinassetornaproibitivo.
Uma rede baseada em tabelas hash distribuídas resolve esse problema dividindo
a faixa de valores possíveis para essa tabela em pedaços e distribuindo esses pedaços
para os diversos nós da rede. Assim o usto de armazenamento é reduzido, uma vez
que ada máquina armazena apenas uma parte da tabela e o usto de manutenção
tambéméreduzido, jáquenão épreisomaisatualizaratabelaemtodas asmáquinas
quandoalgumamodiaçãononúmerodemáquinasaontee. Comessasmodiações,
a partir de uma máquina não é mais possível obter a resposta para um mapeamento
espeío já que a tabela não está mais totalmente armazenada num únio loal. É
preiso, portanto, de uma estrutura de dados distribuída entre os nós da rede e uma
formade rotear mensagensentre esses nós, de formaque,apartir de qualquer nó, seja
possívelenontrar a fração databelapara onde um objeto émapeado.
Nessas redes, a assoiaçãode identiadores de objetosaos identiadores dos nós
da rede é similar à idéia de hash onsistente, ou seja, a assoiação oorre de forma
que ada objeto sejaassoiado aum nó de aordoom alguma noção de proximidade.
Assim, o algoritmo de roteamento deve enviar mensagens para o nó da rede mais
próximo,entreosidentiadoresqueelepossui,doidentiadorprourado. Oproesso
se repete então até que a busa hegue ao m, ou seja, atinja o nó da rede que é
responsável peloidentiador prourado.
Essas redes funionam omo uma interfae entre a infraestrutura de redes e as
apliaçõesedisponibilizamumaprimitivade assoiaçãoouarmazenamentoput(dados,
identiador) e uma primitiva de busa get(identiador) que retorna o objeto que
tem oidentiadorinformado,aFigura2.4mostraumesquemadorelaionamentodas
redes DHT om asapliações eos nós de uma rede.
As diversas redes P2P estruturadas se difereniam prinipalmente em relação ao
tipo de espaço de endereçamento utilizado e à forma de roteamento de mensagens
entre os nós. A seguir apresentamos alguns exemplos de redes par-a-par baseadas em
DHTs.
2.3.2.1 Chord
A rede Chord [32℄ é onstruída omo uma DHT de espaço de endereçamento irular
de tamanho
2
160
Figura 2.4: Representação das DHTs omo interfae entre apliações e infraestrutura
de rede.
i
obtido do espaço de endereçamento. Da mesma forma, todo nó da rede possui umidentiador
j
obtido do mesmo espaço de endereçamento. Os identiadores sãogerados por uma função riptográa SHA-1, utilizando omo entrada algum valor
que identique o objeto, omo nome do arquivo, uma URL, et. Para os nós são
gerados identiadores om a mesma função riptográa utilizando-se, por questões
de segurança, o endereço IP do nó. Cada objeto é então assoiado ao nóda rede que
possuiomenoridentiadormaiorouigualaodele,ouseja,adaobjetoéarmazenado
em um nó que possua o menor identiador tal que
j
≥
i
, que se torna responsávelpeloobjeto. Esse nó éhamadonósuessor de
i
(Figura2.5).Figura 2.5: Exemplo da estrutura de anel da rede Chord. No exemplo, a rede é
ompostade três nós: 0,1e3. Assimahavede identiador1éarmazenadanonó1,
a de identiador2 a armazenadanonó3 eashaves 4,5,6 e7am armazenadas
no nó0.
Osistema de busa é realizadopor meio danger table queé uma tabela de
espeialmente alulados. Assim, dado um determinado nó, a i-ésima entrada da
ta-beladesse nóé alulada para ser o primeiro nó,
s
, que o suede por pelomenos2
i
−
1
pontosdo espaço de endereçamento. Essa forma de alularas entradas databela de
roteamentopermitequeaada passode uma busaotamanhodoespaçode
endereça-mentoseja reduzido pelametadede formaqueo tempo totalde busaseja
O
(
log
(
n
))
,sendo
n
onúmero de paresativosna rede.Dessaforma,pararealizaruma busapeloidentiador
i
,um nók
prouraemsuanger table a entrada que possua o maior identiador menor que
i
. A essa entradaesolhida está assoiado o endereço IP da máquina mais próxima de
i
que o nóo-nhee. Esse proesso serepete emada nóquea mensagemde busahegaraté que a
mensagem hegue aoseu destino, ouseja,ao nóqueé responsávelpeloidentiador
i
.A Figura2.6ilustra ofunionamentoda busa porum objeto de identiador11.
Esse trabalhofoi oprimeiroarelataroproblema de desbalaneamentoda
distribu-ição de identiadores emuma rede DHT, propondo omosolução ouso de servidores
virtuaisparalidaromessedesbalaneamento. Esseproblemaeaténiade servidores
virtuais, que é muito utilizada nos algoritmos de balaneamento de arga em DHTs,
serão desritos om mais detalhes na seção 2.4.
Figura 2.6: Exemplo do funionamentoda busa emuma rede Chord. No exemplo, a
rede é omposta de 9 nós e uma have de identiador 11 que a armazenada no nó
de identiador12. A busa é realiza emdiversos passos. A ada passo hega-semais
próximo aonó responsávelpela have pesquisada.
2.3.2.2 CAN
A rede CAN (Content Addressable Network), desritapor Ratnasamy etalii [24℄,
(a) EstruturadaredeCANom6nósem
um espaço de endereçamento de duas
di-mensões.
(b) Pesquisa por have na rede CAN. A
mensagem épassada para ovizinho mais
próximododestinoemlinha reta.
Figura2.7: Exemplodaestrutura edofunionamentodomeanismode busaemuma
rede CAN.
pelas oordenadas das fronteiras dessa zona. Assim, um objeto a ser armazenado na
rede é mapeado para um ponto
P
em um espaço d-dimensional e esse valor é entãoarmazenado nonó darede que está loalizadona zona onde está o ponto
P
.Para ainserçãode um novonóé neessárioonheer algumnójá presentenarede,
apartirdessenóépossívelenontraronóresponsávelpeloidentiadordonovonó,ou
seja, o nó responsável pelo ponto atribuídoao novo nó. Ao enontrar tal responsável,
o espaço artesiano é então dividido e os nós da vizinhançaatualizamsuas tabelas de
roteamento. Por exemplo, na Figura 2.7 (a) temos uma rede CAN bidimensional em
um espaçode dimensões[0,1℄x[0,1℄ eseis nós inseridos nessa rede.
Para realizar o roteamento de mensagens, ada nó presente na rede possui
infor-mações sobre um onjunto de zonas adjaentes à sua. O roteamento é realizado om
base nadistâniaentre ospontosde origemededestinodaonsulta. Assim, aohegar
uma mensagemaum nóelaéenaminhadaparaonóvizinhomaispróximoàregiãode
destino. Esse proesso se repete até que a região a qual pertene o objeto pesquisado
é enontrada juntamente om o nó responsável pelo objeto. A noção de proximidade
aquiserefere aomenoraminhoentre doispontos, ouseja,onóesolhidoéaquele que
está mais próximoda reta queligao ponto de origem aode destino. A Figura 2.7(b)
2.3.2.3 Tapestry
A redeTapestry[13℄ ébaseadanatenologiadedistribuiçãodeobjetosde Plaxton[22℄
que onsiste emutilizaruma estrutura de dados distribuída que permitea loalização
de objetos e roteamento de mensagens dentrode uma rede overlay.
Nessa rede ada nópossui uma tabela hamadaneighbor map que ontém
b
entra-das, onde
b
éabasenumériadoidentiador,quesão ontatos paraosvizinhosdonóemdiversos níveis. Cada nível
l
possuiontatos para osnós quetêml
dígitosdoiden-tiadoronheidos. Assim, adaentradadomapadevizinhos éum ontatoparaonó
mais próximo ujo identiador asa om o número da entrada. A Tabela 2.1 ilustra
uma possíveltabelade vizinhos para um nóde identiador67493. Porexemplo, a
3
a
entrada para o
4
o
nívelaponta para onó mais próximoque terminaom ..3493.
Nível5 Nível4 Nível 3 Nível 2 Nível1
Entrada 0 07493 x0493 xx093 xxx03 xxxx0
Entrada 1 17493 x1493 xx193 xxx13 xxxx1
Entrada 2 27493 x2493 xx293 xxx23 xxxx2
Entrada 3 37493 x3493 xx393 xxx33 xxxx3
Entrada 4 47493 x4493 xx493 xxx43 xxxx4
Entrada 5 57493 x5493 xx593 xxx53 xxxx5
Entrada 6 67493 x6493 xx693 xxx63 xxxx6
Entrada 7 77493 x7493 xx793 xxx73 xxxx7
Entrada 8 87493 x8493 xx893 xxx83 xxxx8
Entrada 9 97493 x9493 xx993 xxx93 xxxx9
Tabela2.1: Tabelade mapeamentoparaonó de identiador67493 naredeTapestry.
A partir dessa tabela são esolhidos para ada busa o próximo nó que possui
identiador de maior suxo em omum om o objeto de destino e a mensagem é
enaminhadaparaele. Assim, emadasaltoum novodígitodoidentiadordedestino
é resolvido. Esse roteamento é realizado passo a passo perorrendo ada dígito do
identiador dadireita para a esquerda. Por exemplo, a partir do nó de identiador
67493 é possível hegar aonó de identiador45875 resolvendo o endereço dígito por
dígito:
xxxx
5
→
xxx
75
→
xx
875
→
x
5875
→
45875
.A rede Tapestry é portanto uma adaptação das estruturas de roteamento e
arma-zenamento darede Plaxton para uma rede om as araterístiasdas redes par-a-par.
Foramrealizadas modiaçõesnos esquemas de atualização das tabelas para suportar
entradas e saídas na rede, otimizações para melhorar o desempenho e a tolerânia a
a loalizaçãode um determinado objeto/reurso. Sempre que um objeto
x
é inseridona rede e armazenado em um nó
n
i
uma mensagem ontendo a tupla <objetox
, nóresponsável
i
> é enviadapara o nó raízn
r
. Uma ópia datupla é guardada em todoo aminhoperorrido pelamensagem até o nóraiz para melhoraro sistema de busa
porobjetose ofereer uma melhortolerânia à falhasnarede.
Outras redes DHT que utilizam um meanismo de busa por suxos são as redes
Pastry[26℄,queétambémbaseadanaredePlaxtoneémuitosimilaràredeTapestry,e
aredeKademlia[18℄quepossuiumatopologiabaseadanoálulodadistâniadosnós
pormeio de uma função XOR, além de um maior fooem desempenho om o uso de
onorrênia duranteas atualizações e pesquisas por objetos. Uma omparação entre
as redes Chord, CAN,Tapestry é apresentada natabela2.2.
Sistema P2P Modelo Parâmetros Busa Estado
Chord unidimensional,
en-dereçamento irular
N-númerodeparesnarede
log(N
)
(log(N))
2
CAN endereçamento
mul-tidimensional
N-númerodeparesnarede
d-número de dimensões
d
·
N
1
/d
2
·
d
Tapestry malha global
Plax-ton
N - número de pares na
rede, b - base do
identia-dor
log
b
(N
)
log
b
(N
)
Tabela2.2: Comparação entre as redes DHTs.
2.4 Balaneamento de arga em DHTs
Em uma rede baseada em tabelas hash distribuídas (DHTs) osnós darede dividem o
espaço de endereçamento emfunção de seus identiadores. Assim, se onsiderarmos
que a distribuição de arga é uniforme, bastaria dividirde forma justa aestrutura de
endereçamentoentre osparesdarede parabalaneara argadosistemaorretamente.
Umavez quenaredeumnóaresponsávelpelosreursosquepossuemidentiadores
próximos aoseu, ada nóará responsável por uma parelaigual à dos outros nós se
adaumforresponsávelporumapartedoespaçodeendereçamentodemesmotamanho
que o de todos osoutros nós da rede.
Embora a geraçãode identiadoresporfunçõesriptográastenha oobjetivo de
balanear a distribuição de nós, a distribuição nal pode ar desequilibrada devido
à esolha aleatóriade identiadores, ou seja, alguns nós podem ser responsáveis por
pequenasregiõesdoespaçode endereçamentoeoutrosnós podem serresponsáveis por
têmumamenorhanedearemsobrearregados. Damesmaforma,nósresponsáveis
porgrandes regiões têm maiorhane de aremsobrearregados [5, 32℄.
Se, ao ontrário, onsiderarmos que a distribuição de arga do sistema é
não-uniforme, ou seja, alguns pares da rede possam reeber mais ou menos arga
inde-pendente do tamanho da região do espaço de sua responsabilidade, temos o mesmo
problema anterior só que visto por outro ângulo. Agora o que traz o desequilíbrio
é a onentração de arga e não apenas o tamanho da região de ada nó. Veja que
podemoster asduas oisas,ouseja,podemoster umaestrutura de identiadoresmal
balaneadaquereebeumaarganãouniforme. Pararesolveressesproblemasépreiso
manter informações sobre a arga de ada máquina, transferindo tarefas de máquinas
sobrearregadas para as máquinas om poua arga.
Um outro elemento na questão do equilíbrio é levar em onsideração a diferença
de reursos entre as máquinas de uma rede. Normalmente, numa rede par-a-par, que
é omposta por muitos omputadores espalhados pelomundo, a diferença de reursos
entre as máquinas é onsideravelmente grande. Essa araterístia pode ser usada
para alularo balaneamentode argaonsiderandoquemáquinasommais reursos
podem ser responsáveis por uma maior quantidade de arga.
2.4.0.4 Desbalaneamento inerente ao hash onsistente
No trabalhooriginalde hash onsistente, supunha-seaprinípioqueos identiadores
de nós eram igualmente espaçados, o que gerava um bom balaneamento sob arga
uniforme. Entretanto,oassinalamentode identiadores aleatóriosparanós noespaço
de endereçamento não garante um espaçamento uniforme. Stoia, no trabalho om a
rede Chord [32℄, indiouque odesbalaneamentopoderiaser signiativo,hegando a
um fatorde
log
(
n
)
para uma rede omn
nós.Para entendermos melhor as tenologias de hash desritas, vamos realizar a
om-paração de duas funções de hash tradiional om uma função de hash onsistente em
relação à distribuição de tarefas em uma rede que passa por um proesso de
reon-guração. Utilizamos, omo padrão de geração dos identiadores, o padrão seguido
por algumas apliações reais que são exeutadas dentro do ambiente distribuído F
or-migueiro(Anthill)desritoemFerreiraetalii [7℄. Oespaçode havessimuladofoioda
rede Chord,quefoiestudadamaisdetalhadamentenaseção2.3.2.1,ouseja,um espaço
de identiadores baseado nonúmerointeiro geradopelafunção de hash riptográo
SHA-1. O simulador da rede, desenvolvido na linguagem Java, permite a observação
darede. Osexperimentosrealizadosforamexeutadosapenasumavez noasodohash
tradiional, nesse aso foramutilizadasas funções mod ediv, e diversas vezes noaso
dohash onsistente, devidoàssuas araterístiasde geraçãoaleatóriade haves, para
obter-se umasuavização dosresultados. Foisimulado umenário onstituídoporuma
rede om
n
nós, omn
variando de 10 a 100 e om a distribuição de 15.000 haves.Foramtambém utilizadosoutros enáriospara observação doomportamento darede
om oresimentodo número de nós/haves.
AFigura2.8mostraodesviomédionasdistribuições(desviopadrãosobreamédia).
Pode-severpelaguraqueasténiasdedistribuiçãoomhash tradiionalgeramuma
distribuiçãomais uniformedashaves. Essauniformidade diminuiumpouoàmedida
que o número de máquinas narede aumenta, poishá menoshaves por nónesse aso.
Entre as duas funções tradiionais a melhor distribuição ou om a função mod que
apresentou menor variaçãonauniformidade dadistribuiçãoemrelaçãoaoaumentode
nós darede. O hash onsistente apresenta uma distribuiçãomenos uniforme, om um
pequeno resimento om o númerode nós.
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
10
20
30
40
50
60
70
80
90
100
Desvio médio
Número de nós
mod
div
Hash consistente
Figura2.8: Desvio padrãodadistribuição de haves pornós (relativoà média)
Como disutido anteriormente, a maior vantagem dessa de ténia não é a
uni-formidade da distribuição e sim uma melhor adaptação a modiaçõesno número de
máquinas presentes na rede. Como se pode ver na Figura2.9 a quantidade de haves
transferidas quando háuma reonguraçãoda redeémuitomenor parao hash
onsis-tente. Essatransferêniadeobjetoséreduzidaàmedidaqueonúmerodenósaumenta.
Já as funçõesde hash tradiional não se omportam tão bem. A função div transfere
distribuídas. Outrosenárioseumaanálisemaisdetalhadadomeanismodehash para
distribuição de reursos pode ser enontrada em Silvaet alii [5℄.
0
2000
4000
6000
8000
10000
12000
14000
16000
10
20
30
40
50
60
70
80
90
100
Chaves transferidas
Número de nós
mod
div
Hash consistente
Figura2.9: Número de haves redistribuídas
2.4.0.5 Servidores virtuais
Conforme menionado por Stoia [32℄, um problema que aontee om a esolha
ale-atória de identiadores por meio de uma função riptográa é o desbalaneamento
da distribuição de nós no espaço de endereçamento, que pode hegar a um fator de
O
(
log
(
n
))
paraumaredeomn
partiipantes. Essetipodedistribuiçãopodegerarumdesbalaneamentona arga dosistema.
Ao identiar o problema de desbalaneamento no Chord, Stoia props o uso de
servidores virtuais para partiçãodo anel de endereçamento entre os nós. A ténia de
servidores virtuais permite uma melhor adaptação darede à saída eentrada de novos
nós graças àamadaadiionalde gerênia doespaço de identiadores. Nessa ténia,
ada nó real (ou nó físio) ria uma erta quantidade de servidores virtuais. Cada
servidor virtual reebe um identiador aleatório e a responsável por uma fração
do espaçode endereçamento, normalmenteesolhida de formaaleatória. Dessaforma,
um nó físioa responsável porvários pequenos pedaços desse espaço e pode atingir
uma melhordistribuiçãodesua responsabilidade(Figura2.10). Segundoosautoresda
rede Chord,om ouso de
O
(
log
(
n
))
servidoresvirtuais pornófísiodarede épossívelatingir um fator de desbalaneamento onstante.
as funções de hash tradiional, é melhor que no aso do hash onsistente om apenas
um identiador por nó. Ainda assim, a quantidade de objetos redistribuídos após
uma modiação narede ontinuatão boaquantoaohash onsistente omapenas um
identiador(Figura 2.11 (b)).
Figura 2.10: Exemplode divisão do espaçode endereçamento om servidoresvirtuais.
Nesse exemplo,ada nófísio possui três servidoresvirtuais. Dessa formaa
probabili-dade de um desbalaneamento diminui.
Nos algoritmos de balaneamento de arga esses servidores virtuais servem para,
além de failitara distribuição dos segmentos do espaçode endereçamento, failitara
transferênia de arga entre os nós do sistema e a adequação da arga às apaidades
de ada nó.
Alguns problemas, entretanto, surgem quando da utilização de servidores virtuais
para balanear a distribuição de identiadores em uma DHT. Esses problemas têm
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
10
20
30
40
50
60
70
80
90
100
Desvio médio
Número de nós
mod
div
Hash Consistente
Hash consistente com 10 servidores virtuais
(a) Desviopadrão da distribuiçãodehavespor
nós(relativoàmédia)
0
200
400
600
800
1000
1200
1400
1600
10
20
30
40
50
60
70
80
90
100
Chaves transferidas
Número de nós
Hash consistente
Hash consistente com 10 servidores virtuais
(b)Númerodehavesredistribuídas
Figura 2.11: Comparação das ténias de distribuição de reursos inluindo agora os
levado alguns pesquisadores a direionar pesquisas de balaneamento de arga para
a não utilização de servidores virtuais. O primeiro problema é que armazenar as
in-formações de roteamento e de vizinhança aumenta proporionalmente ao número de
servidores virtuais riados. Como o número de servidores neessários para obter uma
boadistribuiçãoélogarítmiononúmerode pares darede[32℄,oespaço amais riado
não hega a ter um grande impato na rede. O segundo problema é manter o estado
das tabelas de roteamento e vizinhançaatualizada. Para realizartal operação são
ne-essárias mensagens de atualização enviadas de tempo em tempo para todos os ítens
dessas tabelas para se ertiar que os servidores estão ainda ativos. Com o aumento
de servidores essas mensagens podem oupar uma grande parte da banda disponível
Análise da literatura de
balaneamento de arga em DHTs
Nesteapítulodesreveremosresumidamentealgunsdostrabalhosqueforamestudados
para obtenção da taxonomia. São trabalhos da área de balaneamento de arga em
DHTsqueforampubliados entreosanos2003 e2006 eque,areditamos,representam
bemoestadodaartedessaárea. Essestrabalhossãoabaseparaariaçãodataxonomia
proposta aqui.
3.1 Toward a dynamially balaned luster oriented
DHT
Otrabalhode Runoetal. [27℄apresentaum modelopara umaDHTorientadapara o
uso emagrupamentos (lusters). O prinipal problema tratado éo balaneamento do
espaço de endereçamento entre um onjunto de nós em um agrupamento. A solução
proposta trata lusters homogêneos e heterogêneos onde a polítia de uso de um nó
é exlusiva, ou seja, ada nó exeuta tarefas de apenas um usuário por vez. Além
disso, opadrão de aessoaos nós daDHT éonsiderado uniforme,não onsiderandoa
popularidadedos dados.
No modelo apresentado existem os nós (hamados snodes) que são instânias de
software. Aadanóéassoiadoumonjuntodeservidoresvirtuais(hamadosvnodes),
quedenemum onjuntodepartiçõesdaDHT.Essaspartiçõespossuemtamanhoxo,
istoé,osidentiadoresdos servidoresvirtuais são xosepré-denidos. A quantidade
utilizados para distribuir os reursos de aordo om a apaidade de ada nó (CPU,
memória,diso,bandade rede,et.). Se onúmerode partiçõespornóair, devido,por
exemplo, à saída de nós da rede, as partições são divididas para alançar novamente
o número mínimo de partições, similarmente, se o número de partições reser, as
partições são unidas formando partições de tamanho maior para alançar novamente
o número máximo de partições.
Éutilizadauma tabelade distribuiçãode partições(Partition Distributed Reord
-PDR) que armazena informações globais sobre o número de partições que um
deter-minado servidor virtual possui. Cada entrada dessa tabelapossui o seguinte formato:
(snode.vnode_id,nparts). São utilizadosesquemasde nomes para osnós físios,
servi-dores virtuais e as partições da DHT. Por exemplo, snode_id.vnode_id.partition_id.
O balaneamento do espaço de endereçamento é feito transferindo partições entre os
servidores virtuais quando um deles entra ou sai da rede. A abordagem foi avaliada
pormeio de simulaçõesom distribuição de arga uniforme. Algumas funionalidades
esseniais domodelo proposto são desritas aseguir:
Criação de um nó: um nóemiteuma requisiçãode riaçãoparatodos osoutrosnós
da DHT,onstituindo um padrãode omuniação global. A requisiçãosó estará
ompleta quandotodoshegarema umaordo sobreatransferênia de partições
entre os servidoresvirtuais antigos eonovo. Oproessode deleção de um nóda
rede é semelhantee, por isso, não será desrito aqui.
Reassinalamento de partições: são denidas as seguintes ações:
•
Um novo servidor virtualx
oloa na sua tabela PDR uma nova entradaom o número de partições igual azero: (snode.vnode_x, 0)
•
O valor do desvio padrão entre o número de partições de ada servidorvirtual e ovalordamédia ideal são alulados.
•
Todas as entradas da tabela PDR são ordenadas pelonúmero de partiçõesdo espaço de endereçamento nparts para obtenção do servidor virtual om
mais partições.
•
Enquanto o desvio padrão diminuirdevido à transferênia de uma partição3.2 Heterogeneity and load Balane in distributed
hash tables
Nesse trabalho,Godfrey eStoia[11℄ propõemum onjuntode ténias paramelhorar
o balaneamento de arga em sistemas distribuídos de larga esala (WANs) que
utili-zam DHTs. A idéia prinipal é onseguir tal balaneamento om um baixo overhead
de movimentação de arga em detrimento do aumento do tamanho das tabelas de
roteamento porum fatoronstante.
Osautoresassumem queaargaéuniformementedistribuídanoespaçode
identi-adores. MesmoemasosondeosnóssãohomogêneosasredesDHTpodemapresentar
um fator de desequilíbrio de O(log n) [32℄. E segundo os autores, esse fator pode
au-mentar à medidaque a heterogeneidade no sistema rese. Normalmenteesse tipo de
problema é resolvido om o uso de servidores virtuais. Nesse aso, a ada nó do
sis-temaéassoiadoumonjuntode identiadoresoletadosdeformaaleatórianoespaço
de endereçamento. Para evitar osproblemas de muitos links gerados pelos servidores
virtuais, ada nó físio agrupa os identiadores de seus servidores virtuais em uma
fração aleatóriade espaçode identiadores. om esse agrupamentoépossívelmanter
o grau de ada nó físio em O(log n). Porém, essa ténia depende de onheimento
global darede, omoonúmero totalde nós. Noaso, osautoresargumentam queesse
valorpode ser estimado.
Outraaraterístiaéqueaquantidadedeservidoresvirtuaiséproporionalà
apa-idadedonó. Asapaidadessãonormalizadas,eadanópodeestimarsua apaidade
(om um fatorde proximidadedoreal) om altaprobabilidade. Nassimulaçõesforam
utilizadas distribuiçõesde apaidades de dois tipos: power law edistribuição real de
apaidades de uma rede Gnutella.
3.3 Dynami load balaning in distributed hash
tables
Bienkowskiet al.[2℄onsidera asuavidade(smoothness),ouseja,arazão entre o
om-primentodo maior e domenor intervalosdo espaço de endereçamento, um parâmetro
importante da rede. Esse parâmetro informa sobre a arga de armazenamento pois
grandes intervalosimpliamem maior armazenamento. Issoé válido jáque otrabalho