• Nenhum resultado encontrado

Taxonomia para soluções de balanceamento de carga em sistemas baseados em tabelas Hash distribuídas

N/A
N/A
Protected

Academic year: 2017

Share "Taxonomia para soluções de balanceamento de carga em sistemas baseados em tabelas Hash distribuídas"

Copied!
85
0
0

Texto

(1)

TAXONOMIA PARA SOLUÇÕES DE

BALANCEAMENTO DE CARGA EM SISTEMAS

BASEADOS EM TABELAS DE HASH

DISTRIBUÍDAS

(2)

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

(3)

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.

(4)

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

(5)

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

(6)
(7)

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

(8)

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

(9)

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

(10)

5 Conlusão 64

5.1 Distribuiçãode tarefas noambiente distribuídoFormigueiro . . . 65

5.2 Trabalhos Futuros. . . 67

Referênias Bibliográas 68

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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 fazendoomqueas

soluçõ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

(22)

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

(23)

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 um

determinadoobjeto(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 todas

as 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.

(24)

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

mod

n

e

h

(

x

) =

x

div

k/n

onde

x

éorótulo,

k

éonúmerodehaves(objetos)e

n

éo

nú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ção

h

(

u

) = (7

u

+ 4)

mod

23

. ÉpossívelmapearagoraasURLsnos servidoresde ahe

uni-formemente, dividindo a arga total do sistema entre as 23 máquinas. Entretanto, se

(25)

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 de

ara-teres em uma determinadafaixa de números

[0

..M

1]

.

Dividimoso valorgeradopor

M

de formaque omapeamentoseja feitono

inter-valo

[0

,

1)

quepode ser vistoomo o intervalode um írulounitário.

Cada URL éentão mapeada dessa formapara um ponto noírulounitário. Da

mesma 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-se

no í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

(26)

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

(27)

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

(28)

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

(29)

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 um

identiador

j

obtido do mesmo espaço de endereçamento. Os identiadores são

gerados 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ável

peloobjeto. 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

(30)

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 pelomenos

2

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

prouraemsua

nger table a entrada que possua o maior identiador menor que

i

. A essa entrada

esolhida 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℄,

(31)

(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ão

armazenado 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)

(32)

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êm

l

dígitosdo

iden-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

(33)

a loalizaçãode um determinado objeto/reurso. Sempre que um objeto

x

é inserido

na rede e armazenado em um nó

n

i

uma mensagem ontendo a tupla <objeto

x

, nó

responsável

i

> é enviadapara o nó raíz

n

r

. Uma ópia datupla é guardada em todo

o 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

(34)

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 om

n

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

(35)

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, om

n

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

(36)

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

))

paraumaredeom

n

partiipantes. Essetipodedistribuiçãopodegerarum

desbalaneamentona 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ível

atingir um fator de desbalaneamento onstante.

(37)

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

(38)

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

(39)

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

(40)

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 virtual

x

oloa na sua tabela PDR uma nova entrada

om 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 servidor

virtual e ovalordamédia ideal são alulados.

Todas as entradas da tabela PDR são ordenadas pelonúmero de partições

do 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ção

(41)

3.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

Imagem

Figura 2.1: Distribuição de identi
adores 
om duas funções hash.
Figura 2.2: (i) Cada URL mapeada é asso
iada 
om a 
a
he mais próxima no sentido
Figura 2.3: Uma taxonomia para sistemas 
omputa
ionais.
Figura 2.5: Exemplo da estrutura de anel da rede Chord. No exemplo, a rede é
+7

Referências

Documentos relacionados

Além das pesquisas nos registos eletrónicos e em papel indicadas no ponto C, n.ºs 1 e 2, a Instituição financeira reportante tem de equiparar a uma Conta sujeita a comunicação

In this study, it was proposed an analysis of two of Edgar Allan Poe’s short stories, “The Black Cat” and The Tell-Tale Heart”, in order to understand how the theme of

O gráfico seguinte mostra a evolução dos indicadores da produção física industrial brasileira, na série 12 meses, encerrados em junho de 2012, frente à igual

Jovina - Cotia - SP Tiragem: 10.000 exemplares - ATENÇÃO Os artigos publicados neste jornal são de inteira responsabilidade dos autores e não refletem necessariamente a opinião

Trabalhar o conteudo de forma tradicional parece dar a seguranga necessaria ao professor, quando nao se tern os recursos necessarios e desejados para o desenvolvimento de uma

A palavra treinamento tem muitos significados, para uns é considerado como um meio para desenvolver a força de trabalho dentro dos cargos particulares, outros consideram

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

24 Gráfico 2 – Frequência média de visitas de baratas no local de aplicação conforme cada tempo avaliado extrato hexano.. 25 Gráfico 3 – Frequência média de