interligação de aglo mera dos
em grades omputa ionais
Vladimir Moreira Ro ha
Dissertação apresentada ao
Instituto de Matemáti a e Estatísti a
da Universidade de São Paulo
para obtenção do grau de
Mestre em Ciên ias da Computação
ÁreadeCon entração: Ciên ia da Computação
Orientador: Prof. Dr. Fabio Kon
de Aglomerados em Grades Computa ionais
Este exemplar orresponde àredação
nal da dissertaçãodevidamente
orrigidae defendidapor
VladimirMoreira Ro ha
eaprovada pela omissãojulgadora.
São Paulo, dezembro 2005.
Ban aexaminadora:
•
Prof. Dr. Fabio Kon(Orientador) - IME-USP•
Prof. Dr. Mar elo Finger -IME-USPVou omeçar porDeus, agrade er Eleporterme dadoavidaeporestaraqui.
Ainda não sei muito bem qual o destino que Ele me deu, mas um dia vou
on luí-lo. Aos meus pais, por seu apoioin ondi ional, pelos momentos
vivi-dos, pelo arinho,amor e pora reditar sempre em mi.
AgradeçoprofundamenteaoprofessorFabioKonpelas suasorientações
sempre a ertadas bem omo pela sua amizade.
Agora aos amigos, quero agrade er aos meus irmãos da Republi a e
da vida,Edu, Thiaguin, Christian, Gordito e Karina. Com eles osmomentos
vividosequevamosviverestarãosempre omigo,são inesque íveis. Yrla,vo ê
mere e um beijo espe ial.
Gostaria de agrade er também aos professores que parti iparam tanto
naban adadefesa omo daquali ação,Mar elo Finger,RenatoCerqueirae
AlfredoGoldman.
É laro que não vou esque er dos membros do GSD e do InteGrade,
prin ipalmentepelas reuniões, pelas omidase pelos temasengraçados queas
vezes abordávamos.
Finalmente,agradeço aoIME eàUSPporter me dadoaoportunidade
de ontinuarmeusestudosdepós-graduaçãoeàCAPESpeloapoionan eiro.
Vladimir Moreira Ro ha
Neste trabalho são apresentados dois novos proto olos Par-a-Par que
servirãoparainterligaraglomeradosemumaGradeComputa ionalelo alizar,
nos geren iadores desses aglomerados,os re ursos ofere idos poreles.
Oprimeiro proto olo permite queos aglomeradosde uma Grade
Com-puta ionalse onheçamequealatên iaentre elesseja amenorpossível. Para
istoutiliza-seafunção deroteamentoda amadade rede parades obrirnovos
aglomerados queestão dentro de uma rota entre dois aglomerados.
O segundo proto olo permitelo alizar informações nos diferentes
aglo-merados. A lo alização destas informações pode ser feita por intervalo de
valores, epara istoé riadauma estrutura de listadistribuída ordenadapelos
valores das informações.
Os proto olos foram simulados e testados em relação a vários pontos
ríti os dos proto olos Par-a-Par, omo es alabilidade, tempo de ingresso e
largurade bandautilizada. Mostramosque osresultados da simulação destas
In this work, we present two new Peer-to-Peer proto ols that allow
to inter onne t Grid lusters and to lo ate, in the lusters manager, shared
resour es.
The rst proto olallows tolink dierent Grid lusters and to organize
them to obtain the less laten y possible among them. To a omplish these
objetives, we utilize the routing fun tion present in the network layer. With
that,it ispossibletond new lusterspresentinapathbetween two lusters.
The se ond proto ol allows to lo ate information shared by the Grid
lusters. The lo ation of these information ould be made by a value range.
In order to perform a lo ation, adistributed list stru ture is reated, ordered
by the information values.
Finally, we simulate these proto ols in many riti al points of
Peer-to-Peer proto ols like, s alability, join time and bandwidth used. We show the
Resumo iv Abstra t v Sumário vi Lista de Figuras ix Lista de Tabelas xi 1 Introdução 1 1.1 Motivação . . . 2 1.2 Objetivos . . . 3 1.3 Contribuições . . . 4 1.4 Estrutura daDissertação . . . 4 2 InteGrade 5 2.1 ArquiteturaIntra-Aglomerado . . . 7
2.1.1 Proto olo de Disseminação de Informações . . . 8
2.1.2 Proto olo de Exe ução de Apli ações . . . 9
2.2 ArquiteturaInter-Aglomerados . . . 10
3 Redes P2P 12 3.1 Arquiteturas . . . 13
3.1.1 Modelo Atmi o . . . 13
3.1.2 Modelo Centrado noUsuário . . . 15
3.1.3 Modelo Centrado nos Dados . . . 17
3.1.4 Modelo Estruturado . . . 17
4.1 Cara terísti as daTabela de Hash Distribuída . . . 20 4.2 Estrutura de anel . . . 21 4.3 Implementações . . . 23 4.3.1 Chord . . . 23 4.3.2 Bamboo . . . 28 5 Proto olo de Interligação 32 5.1 VisãoGeral . . . 33
5.1.1 Usando e Armazenandoa Informaçãodos Roteadores . 33 5.1.2 RepositórioLo alde Pares . . . 35
5.2 Des rição doProto olo . . . 35
5.2.1 Adi ionandoum Parà Rede . . . 36
5.2.2 Saída de um Parda Rede . . . 38
5.2.3 Pro esso de Atualização . . . 39
6 Proto olo de Lo alização 42 6.1 Tiposde Re ursos . . . 42
6.2 Alternativasde Lo alização . . . 43
6.3 ListaDistribuída . . . 45
6.3.1 OProblema das Bus as nas tabelas de hash distribuídas 45 6.3.2 Estrutura Simpli ada . . . 46
6.3.3 Estrutura Estendida . . . 47
6.3.4 Bus as porIntervalo . . . 49
6.3.5 Inserção de um NovoRe urso . . . 49
6.3.6 Algoritmode Estabilizaçãoda Estrutura . . . 51
6.3.7 Algortimode Estabilizaçãoda Tabelade Repeated Finger 51 7 Trabalhos Rela ionados 54 7.1 TrabalhosRela ionados à Interligação. . . 54
7.1.1 Condor. . . 54
7.1.2 Globus . . . 56
7.1.3 Gridbus . . . 57
7.2 TrabalhosRela ionados à Lo alização . . . 59
7.2.1 Prex Hash Tree . . . 59
7.2.2 Extended PHT . . . 60
8.1 Es olhae Implantação . . . 63
8.2 Resultados ExperimentaisdaInter omuni ação . . . 65
8.2.1 Ambientede Teste . . . 65
8.2.2 Custo de Ingresso naRede . . . 65
8.2.3 Quantidade de pares espalhados . . . 66
8.2.4 Largurade Banda Usada . . . 67
8.3 Resultados ExperimentaisdaLo alização . . . 68
8.3.1 Ambientede Teste . . . 68
8.3.2 Custo de Inserir um Re urso . . . 68
8.3.3 Número de Re ursos Visitadosem uma Bus a . . . 69
8.3.4 Largurade Banda usada pelo Proto olo . . . 70
8.3.5 Bus as porIntervalo . . . 70
9 Integração dos Proto olos ao InteGrade 73 9.1 VisãoGeral . . . 73 9.1.1 Proto olo de Interligação . . . 73 9.1.2 Proto olo de Lo alização . . . 74 9.2 Obtendo osLRMs. . . 75 9.2.1 Utilizandoa Vizinhança . . . 76 9.2.2 Utilizandoas LBIs . . . 76
10 Con lusões e Trabalhos Futuros 78 10.1 Con lusões . . . 78
10.2 TrabalhosFuturos. . . 79
2.1 ArquiteturaIntra-Aglomeradodo InteGrade. . . 7
2.2 Proto olo de Exe ução de Apli ações. . . 9
2.3 Hierarquiade aglomerados.. . . 11
3.1 Modelo Atmi o. . . 14
3.2 Modelo Centrado noUsuário. . . 16
3.3 Modelo Estruturado. . . 18
4.1 Estrutura de anel om oitopares. . . 22
4.2 Exemplo de uma tabelade hash distribuída. . . 22
4.3 Exemplo databelade roteamento dopar número25. . . 25
4.4 Opar número25 pro ura pela have 122. . . 25
4.5 Atualização da tabelade roteamentoidenti ando o par 27. . 27
4.6 Transferên ia das haves dopar 28para o par 27. . . 28
4.7 Exemplo de uma tabelade roteamento dopastry. . . 29
5.1 Estrutura de uma rede Par-a-Par geral. . . 33
5.2 Rota damensagem entre dois pares. . . 34
5.3 Algoritmopara o ingressode um par narede. . . 37
5.4 Propagação de uma mensagem pelos pares om o TTL = 3. . 40
6.1 Todos os paresatualizamnum sópar gerando uma arquitetura Cliente-Servidor. . . 44
6.2 Exemplo de uma bus a simples om uma ombinação de ele-mentos atributo-valor. . . 46
6.3 Exemplo de bus as porintervalo de valores. . . 46
6.4 AestruturaListaparaBus asporIntervalosemvaloresrepetidos. 47
6.5 Aestrutura ListaparaBus aporIntervalo om valoresrepetidos. 48
6.9 OmétodoEstabilizaapli ado adiferentes re ursos. . . 52
6.10 Algoritmopara estabilizar os valores repetidos.. . . 52
7.1 A estrutura Skip List. . . 61
8.1 Custo em segundos daentrada de um par na rede. . . 66
8.2 Quantidade de pares espalhados nos pro essos de entrada de um par e de atualização dorepositório. . . 67
8.3 Consumo de largura de banda usada nos pro essos de entrada de um par narede e de atualização dorepositório. . . 68
8.4 Custo de inserir um re ursousando ounão atabelade ngers. 69 8.5 Quantidade de re ursos visitados em uma bus a. . . 70
8.6 Larguradebandausadapelospro essosderegistroeestabilização. 71 8.7 Quantidadede re ursos devolvidos dadaumabus a porintervalo. 71 9.1 Conguração darede formada pelos GRMs. . . 74
9.2 Estrutura doRe urso armazenado naLBI. . . 75
9.3 Três LBI,uma para a memória RAM, uma para o pro essador eoutra para o dis o rígido. . . 75
9.4 Algoritmo utilizado para bus ar os LRMs nas LBIs dado um requisitopara a exe ução de uma tarefa. . . 76
3.1 Apli ações Par-a-Par. . . 19
4.1 Denição databelade roteamento de um par
p
. . . 245.1 Exemplo de um Repositório lo alde Pares . . . 35
Introdução
Sejanoâmbito omer ial,industrialoudepesquisa,faz-se ne essário
apresen-tar e distribuir alguns serviços para as pessoas. Com a hegada da Internet,
passouaserpossívela essarestesserviçosdequalquerpartedomundoatravés
de um omputador. Sóé pre isosaber omo en ontrar asmáquinas queestão
one tadas àrede eque disponibilizamtais serviços.
A arquitetura omputa ional mais utilizada que permite expor esses
serviços é a liente/servidor. Nesta arquitetura, ada omputador umpre
um papel bem denido. Se o omputador é um servidor, então possui ertas
ara terísti as, omo por exemplo, ser um omputador poderoso em termos
de velo idadede pro essamento,armazenamentoeadministraçãodos pedidos
dos lientes para evitar ongestionamentos e onseguir ofere er os serviços
omqualidade. Sefor um liente, elepode a essarosserviçosdisponíveispelo
servidor para seu aproveitamento.
Como exemplo, desde o omeço dos anos 90, existiam servidores que
ofere iam arquivos de músi a e outros do umentos para ompartilhamento
e eram a essados por um número pequeno de lientes. Quando a Internet
foi se massi ando, surgiram problemas de omo administrar o res imento
exponen ial do número de lientes que requisitavam estes arquivos e omo
distribuir e lo alizar as informações disponibilizadas pelos milhares de novos
servidores queapare eram.
Para atender estes problemas foram desenvolvidos dois ambientes, que
surgiramde diferentes omunidades eportantoforamprojetados para
satisfa-zer diferentes ne essidades : asredes Par-a-Par eos sistemas de Computação
em Grade.
As redes Par-a-Par surgiram para atender a ne essidade de
dades,podendoser aomesmotemposervidore liente. Istoera umaproposta
muito diferente da arquitetura liente/servidor que se tinha até o momento
[eA01℄. Neste tipode rede, a omuni ação é feitadiretamenteentre
omputa-dores e não por intermédio de servidores. Estes omputadores são hamados
pares. Assim, seum lientepre isa de um serviço, simplesmentebus a outros
pares que oofereçam.
Dentro dos proto olos de omuni ação Par-a-Par, existem diversos
as-pe tos que foram abordados nos últimos anos. No entanto, os pesquisadores
têm se on entrado na onstrução de sistemas e arquiteturas que des obrem
e lo alizam re ursos que existem em um outro omputador, tais omo
do u-mentos e arquivos de músi a, e naes alabilidade do sistemapara milharesde
pares one tados.
No aso dossistemasde Computaçãoem Grade,eles surgiramnos anos
80 para atender a ne essidade do ompartilhamento de re ursos para o uso
intensivoda omputação,parapro essamentode dados,simulações,et . Para
aproveitar emelhoraresta novaidéia,ospesquisadores daáreadesenvolveram
serviçossosti adosque one tamvários omputadoresparaproverumamaior
apa idade de pro essamentona exe uçãode tarefas.
A lo alização dos re ursos neste tipo de sistema não apresenta
proble-mas quando são pou os os omputadores envolvidos. Mas, om o res imento
de sistemas de grade omputa ionais,passoua ser possível a omputação
dis-tribuídaentreaglomeradosde omputadoresgeogra amentedistantes. Assim
nãosóépossívelexe utarumatarefa emumoutroaglomerado, omotambém
a essar osseus re ursos.
1.1 Motivação
O InteGrade [GKG
+
04℄ [Int℄ é um sistema de Computação em Grade que
interliga omputadores om a nalidade de usar a apa idade o iosa de ada
um deles em tarefas de omputação de altodesempenho.
Sua arquitetura basi amenteseresume amáquinasque fazem partede
umaglomeradoeumnógeren iadorresponsávelporadministrá-los. Os
módu-losque oletamasinformaçõesdisponíveissobreum nó, omomemóriaRAM,
Dis oRígidoeSistemaOpera ional,são hamados LRM( Lo al Resour e
aglomerado. Se a tarefa nãopode ser exe utada noaglomeradolo al, a
soli i-taçãode exe ução datarefa temque ser enviadaposteriormenteaté poderser
realizada.
A motivação do presente trabalho é riar um novo proto olo para
re-des Par-a-Par que servirá para interligar aglomerados no InteGrade. Com
esses proto olos será possível fazer om que osGRMs de diferentes
aglomera-dos possam se onhe er e lo alizar, nos GRMs da rede, informações que são
modi adas periodi amente, as quais hamaremosde informações dinâmi as.
No asodainterligaçãode GRMs,oobjetivoéquea omuni açãoentre
eles tenha baixa latên ia. Assim, se uma tarefa não pode ser exe utada num
aglomerado,poderá sertransferidaparaoutro omuma perdade desempenho
relativamentemenor. No asodalo alização,asinformaçõespodem ser
re ur-sosdisponíveis oletadaspelosLRMs. Comissoumusuáriodosistemapoderá
en ontrar, por exemplo, 64 máquinas (LRM) que tenham omo mínimo 256
MB de RAM disponível, no momento, para exe utar uma multipli ação de
matrizes.
1.2 Objetivos
Osprin ipaisobjetivosdo presentetrabalho são:
•
Criarumproto oloquepermitaestruturarosparesdeumarededeforma que a omuni ação entre eles seja a mais rápida possível. (Proto olo deInterligação).
•
Criar um proto olo que permita lo alizar os re ursos disponibilizados pelos pares da rede. As bus as por estes re ursos poderão ser denidasparaumintervalodosvaloresdessesre ursos. (Proto olodeLo alização).
Osobjetivosespe í os traçados são:
•
Os proto olos desenvolvidos para redes Par-a-Par poderão se adequar aos sistemas de Computação em Grade e vi e-versa. Por tanto, essesproto olos deveriam ter as seguintes ara terísti as: independên ia de
um administrador entral, suporte para bus as baseadas em atributos e
es alabilidade [IFN02℄.
•
UtilizarumaestruturaPar-a-Par quepermitaabus ade umre ursoem tempo sub-linear. Esta estrutura será atabelade hash distribuída.•
Avaliar a es alabilidade dos proto olos desenvolvidos, utilizando um si-mulador de redes de grande área.1.3 Contribuições
As ontribuições deste trabalho orrespondem aos proto olos riados para
umpriros objetivos traçados nasua on epção.
No aso do Proto olo de Interligação, é inovador a utilização da função de
roteamentoda amada de rede para que um par possa en ontrar novos pares
que possam estar mais perto em termos de latên ia.
Emrelação aoProto olode Lo alização, foi desenvolvidauma nova estrutura
quepermiteumabus apelointervalodosvaloresdos re ursos. Estaestrutura,
baseada na tabela de hash distribuída, orresponde a uma lista distribuída,
ordenada pelos valores dos re ursos e que é mais simples de administrar que
as estruturas baseadas em árvores.
1.4 Estrutura da Dissertação
Esta dissertação está organizada omo aseguir. NoCapítulo 2apresentamos
a arquitetura do InteGrade que utilizará os proto olos para lo alização e
o-muni ação entre aglomerados. O Capítulo 3é dedi ado àdes rição das redes
Par-a-Par. No Capítulo 4, des revemos omo fun iona a estrutura que será
a base do proto olo e que permite uma lo alização em tempo
O(log(n))
de informações espalhadas pela rede. No Capítulo 5, des revemos o Proto olode Interligaçãoque propõe resolveroproblema de omoobter uma
omuni a-ção e ienteentre ospares. NoCapítulo 7apresentamos algunsdos sistemas
existentes rela ionados ao Proto olo de Interligação. O Capítulo 6 des reve
o Proto olo de Lo alização, que servirá para bus ar nos GRMs informações
dinâmi as dos LRM. Alguns dos sistemas existentes rela ionados ao
Proto- olo de Lo alização são apresentados no Capitulo 7.2. O Capítulo 8 mostra
os resultados da simulação dos proto olos apresentados, em redes de grande
área. Finalmente, as on lusões e trabalhos futuros a serem desenvolvidos
InteGrade
OInteGrade[Int℄éumsistemade omputaçãoem gradedesenvolvidopor
vá-riasuniversidadesbrasileiras: IME/USP,DCT/UFMS,DI/PUC-Rio,DEINF/UFMA
eque tem porobjetivoo ompartilhamentode omputadores pessoaisde
ma-neiraa permitirautilizaçãode sua apa idadeo iosaem tarefas de
omputa-ção dealtodesempenho,sem nenhum ustoadi ionalem termosdehardware,
nem exigindo nenhuma mudança drásti a na instalação de software nas
má-quinas.
OInteGradeestá sendo onstruídousandoumaimplementaçãode uma
arquiteturapadronizada,CORBA,quepermiteaobjetosdistribuídosse
omu-ni arem[Gro02℄. NaarquiteturaCORBAsão des ritosserviços, omoServiço
de Nomes, Serviço de Nego iação e Serviço de Transações os quais já estão
implementados,testados eque ajudam adiminuira omplexidade dosistema
e ustos de manutenção do software, permitindo que o desenvolvimento do
projeto somente que on entrado na domíniodaapli ação.
Segue abaixo um resumo dos diferentes aspe tos dentro do InteGrade
que formam aarquitetura interna dosistema e que permitemo seu
fun iona-mento.
•
Dete ção e Análise de Padrões de UsoOmodulo de Análise eDete ção de Padrõesde Usoéo en arregadopor
oletarlongassériesde informaçõesreferentes aouso de re ursosde ada
uma das máquinas da Grade. Ele forne erá, ao es alonador de
apli a-ções, informações que melhorarão a sua apa idade de de isão de onde
alo ar a tarefa a exe utar. Por exemplo, se uma determinada máquina
perten ente à Grade é usada de maneira intermitente ao longo do dia,
de exe ução, resultando no an elamento ou migração da tarefa.
Entre-tanto, onvém lembrarqueessemódulosomenteforne erádi as, ouseja,
a han e dopadrãosugeridoo orrer tendeaser grande,masde maneira
algumarepresenta uma erteza.
•
SegurançaUm dos problemas sérios que temos em apli açõese sistemas que usam
asredeséasegurança. Esse módulopretendeassegurar queasmáquinas
da grade sejam protegidas ontra ataques, preservando assim a
integri-dade dos dados da máquinado provedor de re ursos. Com isso, evita-se
que um usuário possa tentar roubar dados sigilosos e arquivos pessoais,
prejudi ar ou impedir o orreto fun ionamento da máquina e também
instalar programas que ausem perdas de arquivos e dados. Assim, são
ne essários medidasque impeçam quetal tipode ataque o orra.
•
Suporte a apli ações paralelasO suporte de apli ações paralelas onsiste em permitir o uso de
apli a-ções paralelas que pre isam de uso simultâneo de vários re ursos e que
geralmente são exe utadas em sistemas de omputação em grade. No
momento,pou ossistemasdegradeofere emsuporte àexe uçãode
apli- ações paralelasfortemente a opladas,espe ialmente quandonão há
ne-nhuma garantiasobre a disponibilidadedos re ursos. InteGrade ofere e
suporte ao modelo BSP ( Bulk Syn hronous Parallelism) [Val90℄ om o
objetivo de que as apli ações já existentes possam rodar na Grade.
As-sim, junto om o módulo de Análise e Dete ção de Padrões de Uso, o
InteGrade poderá ofere er uma previsãomuito provável sobre a
disponi-bilidadede re ursos em ada máquina dosistema.
•
Che kpointingO me anismo de he kpointing provê re uperação por retro esso para
apli ações sendo exe utadas na Grade. Isto é muito importante devido
ao fato de máquinas poderem ar ina essíveis ou mudar seu estado de
o iosoao upadorapidamente, omprometendoaexe uçãodasapli ações
nessas máquinas. O me anismo onsiste em armazenar periodi amente
o estado de um pro esso, de modoque este estadopossa ser re uperado
Cada aglomerado ontém normalmente entre duas e 100 máquinas. Vamos
des rever a arquitetura de um aglomerado típi o e a arquitetura entre
aglo-merados.
2.1 Arquitetur a Intra-Aglomerado
A Figura 2.1 apresenta os elementos mais importantes de um aglomeradodo
InteGrade. Existem vários tipos de nós no aglomerado. O Nó Dedi ado é
uma máquina reservada à omputação em grade, assim omo se fosse um nó
em um aglomeradodedi ado tradi ional. Tais máquinas não são o fo o
prin- ipal do InteGrade, mas tais re ursos podem ser integrados aos aglomerados
se desejado. O Nó Compartilhado é aquele que perten e a um usuário que
ompartilhaseusre ursos o iosos omagrade. Finalmente, oNóde Usuárioé
aquele quepossuia apa idade desubmeter apli açõesparaserem exe utadas
na grade. OGeren iador de Aglomerado é responsável pela exe ução de
mó-dulos responsáveis pela oleta de informaçõese es alonamento. É importante
desta ar que um nópode perten er a várias ategorias simultaneamente, por
exemplo, um nó que tanto ompartilha seus re ursos o iosos quanto é apaz
de submeter apli açõespara serem exe utadas na grade.
Gerenciador do Aglomerado
GRM
AR
No Compartilhado
No de Usuario
No Dedicado
LRM
LRM
ASCT
Figura2.1: ArquiteturaIntra-Aglomerado doInteGrade.
Osmódulos apresentados naFigura2.1 são responsáveis pelaexe ução
de diversas tarefas ne essárias àGrade,daremosaseguir umades rição deles.
OASCT ( Appli ation Submissionand Control Tool)éuma ferramenta
exe ução, omo: sistema opera ional, ongurações de hardware e software,
et . epreferên ias, omore ursos ne essários (porexemploquantidadede
me-mória RAM mínima)para melhoraro desempenho da exe uçãoda apli ação.
Essa ferramentatambém disponibilizaao usuárioso ontrole,monitoramento
e re uperação dos resultados daexe ução da tarefa. O LRM ( Lo al Resour e
Manager)é exe utado em todas asmáquinasque ompartilhamseus re ursos
omaGradeeéresponsávelpela oletadeinformaçõessobreadisponibilidade
de re ursos em um dado nó. Também é responsável por exportar os re ursos
desse nó à grade, permitindo à exe ução de apli ações submetidas por
usuá-rios da grade. O GRM ( Global Resour e Manager) geralmente é exe utado
em um nó que geren ia o aglomerado e é responsável por oletar as
informa-çõesdos LRM,assim omotomarde isõesdees alonamentobaseadas em tais
informações [GKG
+
04℄. O AR ( Appli ation Repository) é o responsável por
armazenar asapli açõessubmetidas pelos usuários eque serão exe utadas na
Grade. Esse repositóriode apli ações forne e também outras fun ionalidades
omoporexemplooregistrode meta-dados daapli ação, omo nome,tipode
apli açãoesistemaopera ionalondepode serexe utado. Finalmente,existem
outros módulos omo o LUPA, GUPA e o NCC que saem do es opo deste
trabalho, mas que são analisadosem [Gol04℄.
A olaboraçãoentre essesmódulosédadapelosproto olosresponsáveis
peladisseminaçãodeinformaçõesepelaexe uçãodetarefasequesãoderivados
dos proto olos utilizados pelosistema opera ionaldistribuído 2K [KCM
+
00℄.
2.1.1 Proto olo de Dissemi nação de Informações
Este proto olo permitea um aglomerado doInteGrade manter atualizadasas
informações dos re ursos disponibilizados nas diversas máquinas do
aglome-rado. Essas informaçõespodem ser dados estáti os(arquitetura damáquina,
sistema opera ional, memória total dis o rígido, et .) ou dados dinâmi os
(por entagem de CPU o iosa, memória RAM disponível no momento, et .)
e que permite que o GRM es alone as tarefas da forma mais adequada aos
requisitos daapli açãosubmetida.
Para manter osdados doaglomeradoatualizados,periodi amente ada
LRMveri aadisponibilidadedosseusre ursos. Casoexistaalgumamudança
signi ativa entre a informação atual e a informação anterior, o LRM envia
2.1.2 Proto olo de Exe ução de Apli ações
Este proto olotêmporobjetivoaexe uçãodeuma apli açãosubmetidasobre
re ursos ompartilhados da Grade. A Figura 2.2 apresenta os passos
ne es-sários para exe utar uma apli ação. Depois que a apli açãofoi submetida ao
repositório de apli ações através do ASCT, o usuário pede a este a exe ução
de uma tarefa o qual é en aminhada ao GRM (1). O GRM, om as
infor-mações oletadas da Grade, pro ura os nós andidatos que umprem om os
requisitos datarefa (2). Caso existam nós disponíveis, o GRM veri a se eles
realmente possuem os re ursos ne essários para a exe ução da tarefa e pede
para exe utá-la nesses nós (3). Devemos lembrar que o GRM somente tem
uma visão aproximada da Grade. O LRM que a eita a exe ução da tarefa
pede para o Repositório de Apli ações o arquivo exe utável da apli ação (4)
e para o nó requisitante os arquivos de entrada (5). Finalmente exe uta a
apli ação(6).
No de Usuario
ASCT
Gerenciador do Aglomerado
GRM
Repositorio
Repositorio
de
Aplicaçoes
No Compartilhado
LRM
Aplicação
(1) Solicita
Execuçao
(2) Procura
Candidato
(3) Confirma
Oferta
(4) Solicita
Aplicaçao
(5) Solicita Arquivos
de Entrada
(6) Lança a
Aplicaçao
Umaprimeirapropostaparainterligare ientementediversosaglomeradosdo
InteGrade foi a de integrar os diferentes aglomerados em uma hierarquia de
árvore denida pelos administradoresdos aglomerados, omomostraa Figura
2.3. Um dos problemas que esta alternativa apresenta é que a es alabilidade
dosistemapode ser omprometidade duas formas: aprimeiraéque os
admi-nistradores tem que onhe er os endereços dos geren iadores do aglomerado
para one tá-los manualmente e no aso de haver muitos geren iadores pode
ardifí ildeadministrar. Asegunda équeum nómantéminformaçõessobre
asub-árvore de suahierarquiae,no aso dessa subárvore sermuitogrande,a
atualizaçãodasinformaçõesnessenópodegeraruma argamuitoalta. Mesmo
assim, no aso de seter entenas de aglomerados do InteGrade esta proposta
pare e ser muito e iente.
Comoum dos objetivosdoInteGradeéimplementar um sistema apaz
de atender poten ialmente milhares de máquinas one tadas através de uma
rede de grande área omo a Internet, éne essárioestender a arquitetura para
interligar vários aglomerados. O objetivo deste projeto é ofere er o máximo
de es alabilidade evelo idade de omuni ação entre eles.
A arquitetura Inter-Aglomerados, terá dois proto olos fundamentais
para seu fun ionamento: O Proto olo de Interligação e o Proto olo de
Lo- alização de Re ursos. O Proto olo de Interligação, omo veremos na Seção
5, one taosAglomeradosdeumamaneirae iente. OProto olode
Lo aliza-ção pro urapornós dos aglomeradosquesatisfaçam ertos ritérios,des ritos
Gerenciador do Aglomerado
GRM
AR
No Compartilhado
No de Usuario
No Dedicado
LRM
LRM
ASCT
Gerenciador do Aglomerado
GRM
AR
No Compartilhado
No de Usuario
No Dedicado
LRM
LRM
ASCT
Gerenciador do Aglomerado
GRM
AR
No Compartilhado
No de Usuario
No Dedicado
LRM
LRM
ASCT
Gerenciador do Aglomerado
GRM
AR
No Compartilhado
No de Usuario
No Dedicado
LRM
LRM
ASCT
Redes P2P
O termo Par-a-Par (P2P ouPeer-to-Peer) omo on eito foi usado pela
pri-meiravezporvendedoresderedeslo aisemmeadosdosanos80parades rever
a one tividadede uma arquitetura de uma rede lo al[Leu02℄.
Mesmo que algumas apli ações Par-a-Par existam desde os nais dos
anos 70, omo aUsenet, quepermitiao ompartilhamentode notí iasnas
o-munidades UNIX,foisónoano 2000, omo surgimentode uma apli açãoque
ompartilhaarquivosde músi a hamadaNapster ,que o on eito omeçoua
segeneralizareser onhe ido[STDG01℄. Desde então,em meiosnão
a adêmi- os,Par-a-Par virouquaseumsinnimode apli açõespara ompartilhamento
de arquivos.
Daremos a seguir uma denição do que é uma rede Par-a-Par. Como
on eito,estarádivididaemváriosaspe tosquejuntosformarãoumadenição
ompreensível.
•
Comuni ação direta entre os pares: A omuni ação entre os pares, que podem ser pessoas, máquinas ou programas, não possui um mediadorentralque a ontrole. Épossível ter uma omuni ação entre dois pares
quaisquer perten entes àrede Par-a-Par.
•
A one tividade é usualmente transitória e não permanente: Cada par perten ente à rede Par-a-Par tem uma período de vida urto(normal-mentepou as horas [GDS
+
03, SGG02, CLL02℄). Isso impli a que nesta
topologia,osserviços ofere idose a omuni ação são variáveise
intermi-tentes.
que o ara teriza omo úni o.
•
Alternativa às estruturas baseadas em servidores: A maioria das te -nologias riadas para as redes Par-a-Par tem omo objetivo evitar asarquiteturas onde o par sóatua omo lienteou só omo servidor.
3.1 Arquitetur as
Existem vários modelos arquiteturaispara redes Par-a-Par [Min01℄. A seguir
serãomostradasas ara terísti as,vantagens,desvantagens,ingressos ebus as
dequatrodessesmodelosque onsideramos omoosmaisusadose onhe idos.
3.1.1 Modelo Atmi o
Omodeloatmi oé hamadopelospuristasde averdadeiraredePar-a-Par.
Este modelo apresenta algumas ara terísti as que diferem totalmente das
arquitetura baseadas emservidores. Primeiro,nãoexistem servidores entrais
quepossamter informação ompleta daredeedos seususuários, de modoque
todos os pares são por sua vez lientes e servidores. Segundo, a estrutura de
onexão formada por eles é aleatória, uma vez que um par pode se one tar
poten ialmentea qualquer outro par da rede. Ter eiro, ada par é autnomo
eadministraseus própriosre ursos esuaspróprias onexões. Nesse aso, ada
um deles mantém ontato direto ( onexão direta) om alguns outros, mas a
omuni ação pode ser estabele ida om qualquer outro par da rede ( onexão
virtual), omo mostraa Figura3.1.
Nos últimos tempos, algumas pesquisas em redes Par-a-Par têm
utili-zadoumavariaçãodomodeloatmi o. Essavariação onstada riaçãodeuma
nova amadadepares, onhe idos omosuper pares, quetem omo
ara terís-ti aumamelhor apa idadedepro essamento,armazenamento, one tividade
e onabilidade. Com essa variação setenta riar umaestrutura de pares que
permita melhoraro desempenho nas bus as.
Es alabilidadeéumaquestãoimportantenosmodelosarquiteturaisdas
redes Par-a-Par onde a quantidade de pares que a utilizam é muito grande.
Algumas pesquisas [Rit01℄ mostram que apli açõesque utilizam este modelo,
omo Gnutella 1,são es aláveisnomáximoa alguns milharesde pares
Conexao Direta
Conexao Virtual
Figura3.1: ModeloAtmi o.
rede, omeçaadegradar exponen ialmenteaté arede arindisponível.
Exis-tem dois tipos de alternativas ao problema men ionado a ima. A primeira é
estruturar os pares omo veremos na Seção 3.1.4 e a segunda é utilizar uma
propagação ontrolada na omuni ação entre pares, mostrado em Bus as na
rede deste modelo.
Ingresso na rede. Nomodeloatmi o, omonão existe um servidor entral
de onde poder-se-ia obter outros pares om os quais se omuni ar, existe um
problema fundamentalde omo seunir à rede.
Existemdoismétodostradi ionaispararesolveremparteesseproblema,
ada um deles usado para diferentes propósitos. A primeira é propagar uma
mensagem de pedido de ingresso usando broad ast para obter respostas de
pares que estejam es utando esse tipo de mensagens. Essa proposta é muito
utilizada e e iente para redes lo ais, onde determinar os pares que estão
es utando uma requisição de ingresso não é difí il. A segunda alternativa é
se one tar a pares ujos endereços são onhe idos, geralmente utilizada nos
asos onde os pares estão espalhados em uma rede grande, por exemplo uma
WAN ( Wide Area Network). A propagação de uma mensagem de ingresso
expli ada na primeira alternativa pode resultar em um grande onsumo de
largura de banda, pois a mensagem será propagada pela rede para todos os
pares sem onsiderar se eles estão, ounão, es utando pela requisição.
Bus as na rede A base de todas as bus as por re ursos neste modelo é a
dos ospares da rede, hamado de ooding. A desvantagem desta alternativa
se produz quando a quantidade de pares que utilizam a rede aumenta. Neste
aso, a quantidadede mensagens de bus a aumentade formaexponen ial ea
rede a inutilizada rapidamente pelasobre arga. Surgiu então uma variação
desta alternativa que utiliza uma variável TTL ( Time To Live) que dene o
tempo de vida da mensagem, ou seja limitaa propagação. O valor desta
va-riáveldiminuiem ada propagaçãodamensagem,oque ontrolaaquantidade
de mensagens queutilizam a rede. Com esta proposta, apesar damelhorado
problema dasobre arga da rede, não podemos ter erteza se o re urso existe
ou não. Como a propagação da mensagem é ontrolada, ela somenteal ança
um ertonívelde paresquepodem não onter ore ursopro uradoequepode
estar além da barreira denida pela TTL. Outras alternativas mais re entes,
omo a do proto olo do Gnutella 2 [gnua ℄, propõem que um par ( onhe ido
omo super par ou hub peer) armazene osnomes dos re ursos dos seus
onhe- idos. Com isso, quando a esse par hega uma mensagem de bus a por um
re urso
x
, este en aminha diretamente ao par que possuix
, o que evita, de erta forma, apropagaçãoda mensageme melhoraodesempenho de algumasbus as.
3.1.2 Modelo Centrado no Usuário
O modelo entrado no usuário,diferentemente do modelo atmi o, é
geren i-adoporumservidor entralqueatua omomediadorparaingressoebus asde
pares da rede, omo mostra aFigura 3.2. Esse servidor ontém um diretório,
quemantémosendereços( hamadodelinks persistentes)dospares one tados
narede eque possibilitaa pro uraporeles. Éatualizadoenviando
periodi a-menteumamensagemde vida( heartbeat)aos pares one tados. Essa
arquite-turaéuma dasmais utilizadasdevido àfa ilidade de onhe er osoutrospares
one tadosà redee porser bem pare ida oma arquiteturaCliente/Servidor.
A es alabilidade deste tipo de modelo é dada pela sobre arga exer ida
noservidor entral. Para saberseomodelopode ser onsideradoes alável,ou
não, parauma quantidade grandede pares one tados,devemos analisarqual
éafunçãodoadministrador entral. Seafunçãodeleforsomenteadepermitir
o ingressode pares à rede, então todas astransferên ias de mensagens ( omo
asde bus a)serãoentre osparesenvolvidos. Neste asoomodeloétotalmente
es alável. Se o administrador entral fortambém oresponsável pela bus ade
Servidor Central
Par
Figura3.2: ModeloCentrado noUsuário.
porquetodasasbus asserãofeitasutilizandoesteadministrador. Neste aso,o
modelo apou oes aláveleseráne essário riarrépli asdesseadministrador,
omo no aso das apli açõesKazaa [kaz℄ou Napster [nap℄.
Ingresso na rede. Para um par se one tar àrede, deve primeiro ontataro
servidor entral( omendereço onhe ido)epedir permissãopara se one tar.
Quando oadministrador entralpermite o ingresso, este registra noseu
dire-tório o novo par disponibilizando sua onexão om os outros pares da rede.
Uma vez registrado, um par pode pro urar nodiretórioporpares que
orres-pondamaos ritériosde bus adadospelodiretório. Devemosdeixar laroque
esse ritérioseráa ara terísti adoparenãoosre ursos queeledisponibiliza.
A informação re ebida será os endereços desses pares e a transferên ia de
in-formaçãoserá sempre entre ospares envolvidos enão afetará o administrador
entral.
Bus asna rede. Abus aporpares one tadosestáimplí itanodiretóriodo
administrador entral, mas a bus a por re ursos terá que ser pare ida om a
domodelo atmi o, ouseja,pelapropagaçãodabus a. Umaalternativaé ter
diretóriosdos re ursos disponibilizadospelos pares darede, omo veremosna
Esse modeloé muitopare ido om omodelo entrado nousuário. Adiferença
prin ipaléqueoservidormantémumíndi edosre ursos aoinvésde usuários.
Nesse modelo, as políti as de segurança eregras de onexão om os pares são
mais estritas que no modelo entrado no usuário. Nemsempre é permitidoo
a esso aos re ursos, espe ialmente noâmbito empresarial.
Aes alabilidadedesse modeloémenorqueadoCentradonos Usuários
devido à quantidade de re ursos disponíveis ser muito maior que a
quanti-dade de pares. As mensagens de atualização de re ursos disponíveis e as de
bus a por re ursos podem sobre arregar o administrador entral provo ando
uma queda no desempenho. Como no aso do modelo entrado nos usuários,
uma alternativaé usarrépli asdestes administradoresde modoadispersaras
mensagens de ingresso e bus a.
Ingresso na rede Para o ingresso de um par nessa rede, é ne essário
veri- ar a segurança uma vez que alguns re ursos podem não estar disponíveis
para ertos pares. De modo similar ao modelo entrado nos usuários, o par
se ontata om o administrador entral pedindo permissão para se one tar.
Quando o administrador entral permite o ingresso, este registra no seu
di-retório todos os re ursos disponibilizados pelo par que esta ingressando e as
políti as de segurança desses re ursos.
Bus as na rede Para bus as por re ursos o par envia uma mensagem de
bus a para oadministrador entral. Este por sua vez pro ura osre ursos
dis-poníveisnoseu diretórioedevolveosendereços dosparesqueodisponibilizam
equepermitemoseu ompartilhamento,segundo aspolíti as desegurançado
re urso. O mapeamentoentre re ursos eendereços está no diretóriodo
admi-nistrador entral.
3.1.4 Modelo Estruturado
Este modelo foi um dos últimos a surgir no enário dos modelos Par-a-Par.
A idéia prin ipal é a de onstruir redes estruturadas de modo a melhorar a
e iên ia das bus as por re ursos nos pares da rede que o armazenam. Esse
tipodemodeloé hamadoderedessobrepostas( overlaynetworks),vejaFigura
3.3. Comisso, tenta-se evitarque abus aporum re ursosejapropagada sem
redes Par-a-Par, tais omo: listas distribuídas [AS03℄, árvores distribuídas
[Cos97℄ etabelas de hash distribuídas [SMK
+
03℄.
Modelo Atomico
Rede Sobreposta
Figura 3.3: ModeloEstruturado.
A es alabilidadedeste modelo, segundo as simulações feitas[RGRK04,
SMK
+
03, RFH
+
01℄ foi demonstrada para milhares de pares unidos à rede.
Mesmo assim ainda não existem experimentos para asos onde a quantidade
de usuários é pare ida om asapli açõesreais, ouseja entena de milhares.
Ingresso na rede. Da mesma forma que no modelo atmi o, aqui também
não existe umservidor entralaoqualse one tar àredee portantose temos
mesmos problemas ealternativasde onexão apresentadas naquelemodelo.
Bus as na rede. Devido à estrutura formada pelos pares, a pro ura por
re ursos sempre devolverá um resultado positivo aso exista o re urso. A
idéia éque o aminho seguido( hamadode roteamento) pelamensagem para
pro uraroparquearmazenaore ursoéomaise ientepossível. Éimportante
desta arquetodas essasestruturasutilizam
O
(log n)
tro ade mensagenspara lo alizar ore urso (onden
é aquantidade de pares da rede).MostramosnaTabela 3.1algumasdasapli açõesPar-a-Par mais onhe idas.
Nome daApli ação Domínio Arquitetura
ICQ Serviço demensagens Centradono usuário
Jabber Serviço demensagens Centrado nosdados
Napster Compartilhament o e
transfe-rên ia de arquivosMP3
Centrado nosdados/usuário
Gnutella Compartilhament o e
transfe-rên ia de arquivos
Atmi o
Freenet Persistên ia dearquivos Atmi o
Groove Ambiente de trabalho
olabo-rativo
Centrado nosdados
JXTA Persistên ia, mensagens,
tra-balho olaborativo, et .
Atmi o
Chord Persistên ia, indexação de
in-formações, trabalho
olabora-tivo,et .
Estruturado
CAN Persistên ia, indexação de
in-formações, trabalho
olabora-tivo,et .
Estruturado
BitTorrent Compartilhament o e
transfe-rên ia de arquivos
Centrado nosdados
MSN Serviço demensagens Centradono usuário
Kazaa Compartilhament o e
transfe-rên ia de arquivos
Centrado nosdados/usuário
Lo alização E iente de Re ursos
No âmbito das redes Par-a-Par as apli ações estão baseadas em
ara terísti- as omo: armazenamento, seleção do servidor mais próximo, bus as,
auten-ti ação, entre outras [SMK
+
03℄. Nesses últimos anos, diversas pesquisas se
on entraram no prin ipalproblema de todos os sistemas Par-a-Par, que é a
lo alizaçãoe iente domembro que armazena ore urso pro urado.
Para resolvero problema a ima,diversas estruturas distribuídas foram
riadas(verSeção3.1.4),mas atabelade hash distribuídateve efeitos
revolu- ionáriosnodesempenho ees alabilidade. Atabelade hash distribuídaéuma
estrutura quepermitearealizaçãodas funçõesdeuma tabelade hash normal,
ouseja,nela pode-se armazenarum valordadauma haveepro urarporesse
valorutilizandoa have [Tan02 ℄.
Umadas ara terísti asimportantessobre astabelasde hash
distribuí-das é que o armazenamentoe as operações de bus a são distribuídas entre as
máquinas que perten em à rede Par-a-Par. Diferentemente das arquiteturas
liente/servidor existentes, os membros podem se unir e sair da rede
livre-mente. Apesar do aos evidente que poderia a onte er om essas mudanças
na estrutura darede, o fun ionamentoda tabela de hash distribuída garante
a qualidadede serviço nas operações de bus a.
4.1 Cara terísti as da Tabela de Hash Distribuída
As tabelas de hash distribuídasapresentam algumas ara terísti as omo:
•
Balan eamentodeCarga. Éutilizadaumafunçãodehash para distri-buir igualmenteas haves aserem armazenadasentre os paresda tabelaarregado é muito baixa.
•
Des entralização. Seguindo as propriedades das redes Par-a-Par, ne-nhum par nestatabelaé maisimportantequeoutro,isso impli aname-lhoria da robustez omparado om alternativas baseadas em servidores
devido à pou a organizaçãodeste tipo de redes.
•
Es alabilidade. O usto das bus as sóaumenta logaritmi amente om a quantidade de pares perten entes à rede. Essa quantidade pode seronsiderada onstante mesmo para apli ações om um número muito
grandedepares. Portanto,qualquerapli açãoquesejabaseadanatabela
de hash distribuída pode ser desenvolvida sem se preo upar em olo ar
restrições queafetem o res imentoda rede.
•
Disponibi lidade. Essa ara terísti a impõe que toda have será sem-pre en ontrada, in lusive se o sistema está em um estado de mudançaontínua. A tabela de hash distribuída preo upa-se om as entradas e
saídas aleatórias dos pares da rede.
•
Flexibilidade de nomes. As haves a serem riadaspelos usuáriosda tabelade hash distribuída não pre isam ter um formatoespe í o.•
E iên i a. A tabela de hash distribuída provê me anismos para o in-gresso/saída de um par e para en ontrar uma have armazenada. Esseme anismo somente pre isa de uma tro a de mensagens de ordem
loga-rítmi aem relaçãoà quantidadede pares perten entes à rede.
4.2 Estrutura de anel
Aestruturadastabelasdehash distribuídaspodeservista omoumavariação
de uma lista ir ular duplamente en adeada onde ada nó dessa lista
orres-ponde a um par darede. Como aestrutura é ir ular,elaé hamada de anel.
Na Figura 4.1 podemos observar uma estrutura de anel já formada om oito
pares.
Cadapar perten enteàestrutura têm umainformaçãoúni aqueo
dis-tingue,porexemploauniãodoIP omonúmerodaportaondeestáes utando
as requisições. A essa informação úni a é apli ada uma função de hash que
devolveum identi ador úni o (se a informação dopar éúni a, o número
150
8
25
28
30
45
113
136
informaçao: 143.34.55.246:30956
X
H (informaçao) -> 27
(a) Transformaçãoda informação do
parX
150
8
25
28
30
45
113
136
27
X
(b)InserçãodoParX naestrutura
Figura4.2: Exemplo de umatabelade hash distribuída.
estrutura de formaque oanel que sempreordenadode forma res entepelos
números. Na Figura 4.2(a) podemos observar que ao par X que está
ingres-sando é dado o identi ador 27, o qual será inserido entre os identi adores
25e 28(Figura 4.2(b)).
identi ador. Por exemplo, na Figura 4.2(a) o par om identi ador 25 será
responsável pelas haves 9 (o primeiro número após o seu prede essor) até o
25.
A transformação de uma have em um número, que servirá para
o-nhe er quepar será responsável por essa have, éfeita de maneiraanálogaao
ingresso dos pares. À have a ser armazenada é apli adauma função de hash
a qual devolverá o número que será armazenado em algum par da estrutura
responsávelpela have. Porexemplo,naestrutura omodaFigura4.2(a),uma
have om valor32 será armazenadano par om identi ador45.
No aso de olisões das haves, é a implementação da tabela de hash
distribuída a responsável por administrar esse problema. Geralmente, as
im-plementações insereminformaçõesadi ionaisque permitem que a have a
in-serir seja úni a om uma alta probabilidade. Logo, estruturas internas da
tabelade hash distribuída possuem referên ias a essas olisões. Porexemplo,
setivermos uma have
X
aser inseridaduasvezes, aimplementaçãoinserena tabelaX
,X1
eX2
(X1
eX2
são as haves riadasapartirdeX
,que ontém informações adi ionais). Finalmente, o par responsável porX
terá também referên ias às havesX1
eX2
.4.3 Implementações
Comomen ionamosno omeçodo apítulo,aestrutura emanel éduplamente
en adeada, ou seja, ada par tem ponteiros para seu prede essor e para seu
su essor. Uma bus aporuma havenesse tipo de estrutura, portanto,requer
tempode ordem linear (abus a passará por ada par seguindo o su essor até
lo alizar o par responsável pela have). Para que a e iên ia de uma bus a
nastabelasde hash distribuídassejadeordemlogarítmi a,pre isamosdeuma
estrutura adi ional, hamada de tabela de roteamento, que permite onhe er
pares que estão mais a frente que o su essor imediato. Mostraremos a seguir
duas implementações da tabela de hash distribuída: a primeira baseia sua
tabela de roteamento em uma lista om ponteiros que seguem uma fórmula
matemáti a ea segunda em uma estrutura de árvore de prexos.
4.3.1 Chord
Chord[Cho℄éuma implementaçãonalinguagemC++de umatabelade hash
omo ospares saem da rede.
Tabela de Roteamento Suponhamos que temos, em um dado momento, a
seguinteestruturadeanelmostradanaFigura4.3. Cadapar omidenti ador
p
tem um tabela de roteamento lo al que aponta para pares que estão mais na frente que ele no anel e que ajuda na lo alização e iente dos re ursos.Esta tabela de roteamento, que é hamada de ngers pelo Chord, é denida
daseguintemaneira (Ver Tabela4.1):
•
Háno máximolog n
ponteiros registrados(n
é aquantidade de paresna estrutura) evitando om isso um ex es so de informação. Se tivéssemostodos os pares registrados tornaríamoso proto olo pou o es alável.
•
Cada entradai
da tabela de roteamento dep
ontém o identi adordo primeiropar noanel ujovalorsejamaiorouigualap
+ 2
i
emenorqueo
identi adordo últimopar databela de hash distribuída. Por exemplo,
na Figura 4.3, a entrada
i
= 3
tem omo identi ador o par 45 que é o primeiropar en ontrado ujovalorémaiorque33(p
+ 2
i
= 25 + 8 = 33
).
Entrada Denição
0 ponteiro ao su essorde
p
i ponteiroaoprimeiropars
noaneltalque
p
+ 2
i
≤ s
,
1 ≤ i ≤ log
2
(iddoúltimopar -p
)Tabela 4.1: Deniçãoda tabelade roteamento de um par
p
.Bus a por um re urso. A bus a por um re urso dada uma have é feita
da seguinte maneira. Quando um par envia uma mensagem em bus a de
uma have, é apli ada a ela uma função de hash que devolve um valor
v
,h
(chave) = v
. A seguir, atabela de roteamento forne e o identi adorp < v
(ondep
é o valor mais próximo dev
onhe ido pela tabela). A partir dep
, o pro esso se repete de maneira re ursiva, passando essa mensagem até se en ontrar o valorv
. Este pro esso é ompletado omO(log n)
tro a de150
8
25
28
30
45
113
136
Tabela Roteamento
id : 25
i 2 exp i id
0 1 28
1 2 28
2 4 30
3 8 45
Figura4.3: Exemploda tabelade roteamento do par número 25.
Para dar um exemplo onsideremos a seguinte situação: suponha que
um par identi ado om onúmero 25pre isapro urara have uja funçãode
hash devolveu o valor122. Os passos seguintes semanifestamna Figura4.4.
150
8
25
28
30
45
113
136
Figura4.4: Opar número 25 pro urapela have 122.
O par 25 verá, em sua tabela de roteamento, que existe um par om
identi ador mais próximo à have pro urada, neste aso o par 45. A bus a
novamente omoqualse hegaráaopar136, responsávelpormanteras haves
do114 ao136.
Aquantidadede tro ade mensagensutilizadapara exe utaressabus a
é
O(log n)
,poisas entradas das tabelas de roteamento evitam que uma men-sagem passe portodos ospares da estrutura [CJK+
01℄.
Ingresso deum par na tabelade hash Emum ambientedinâmi o omoas
redesPar-a-Par, oingressode um parnaestrutura pode a onte er aqualquer
momento. Para manter as propriedades da tabela de hash distribuída, faz-se
ne essáriolevar em ontaas seguintes onsiderações:
•
Alo ação donovo par.Primeiro deve-se en ontrar o lugar exato onde in luir o novo par. Para
isso, faz-se uma bus a (perguntando a qualquer par da tabela de hash
distribuída) pelo identi ador do novo par. O ponto nal do aminho
traçado por essa bus a permitirá saber qual é o par mais próximo da
posição onde teremos que inserir o novo par (Na Figura 4.2(a), o par
om identi ador 28 é o mais próximo do novo par). A quantidade de
tro a de mensagens ne essáriapara exe utar a alo ação é
O(log n)
, que seriaabus adaposiçãomaisainserçãodopar,quelevatempo onstante.•
Atualizar os registros dos outros pares já existentes na tabela de hash distribuída.Aprimeiraatualizaçãoéfeitasobreoparsu essor
s
eoparprede essorp
donovo par ingressado, que hamaremos den
.n
ontata o seu su essors
indi ando que atualize seu ponteiro prede essor (que agora apontará paran
). O mesmo pro esso é feito para o prede essor dep
, o ponteiro su essordep
agoraapontará paran
.Asegundaatualização orrespondeàsentradasdastabelasderoteamento
dos outros pares para que estes tenham onhe imento do novo par que
ingressou. Para ada entrada é feitauma pro ura pelo valor, segundo a
fórmuladaTabela4.1,sem onsiderarovalorqueatabelade roteamento
ontém. Na Figura 4.5, podemos observar que a entrada
i
= 1
depois de exe utar este pro esso vai apontar para o par 27 e não para o quetem atualmente(identi ador28). Lembremosquesegundo asregrasda
n
+ 2
i
= 25 + 2
1
Tabela Roteamento
id : 25
i 2 exp i id
0 1 28
1 2 28
2 4 30
3 8 45
150
8
25
28
30
45
113
136
27
Figura4.5: Atualizaçãoda tabelade roteamento identi and o opar 27.
As duas atualizações apresentadas são exe utadas om uma tro a de
mensagens de ordem logarítmi a[SMK
+
03℄.
•
Transferên ia das havesao novo parEsta última operação move as haves (identi adas omo
k
) que agora serão de responsabilidade do novo par ingressado. Somente se pre isaextrair do su essor imediato do novo par as haves do intervalo entre o
identi adordonovoparatéadoidenti adordosu essor. Estepro esso
é mostrado na Figura 4.6 na qual podemos observar que as haves 27 e
26são transferidas para o par 27.
Saída de um par da tabela de hash Da mesma forma que para o ingresso
de um par na estrutura, para a saída de um par, que pode ser planejada ou
não, devemos onsiderar os seguintes aspe tos:
•
Atualizar os registros dos outros pares já existentes na tabela de hash distribuída.É ne essário atualizar atabelade roteamento dos outrospares para que
estes tenham onhe imento do par que saiu da estrutura. Para isso é
utilizado o mesmo pro esso de atualização quando um par ingressa na
rede. Primeiro se irá pro urar o identi ador do par para ada entrada
da tabela de roteamento. Essa atualização é exe utada om uma tro a
de mensagens de ordemlogarítmi a[SMK
+
150
8
25
28
30
45
113
136
27
K = 26
K = 27
Figura4.6: Transferên ia das havesdopar 28 para o par27.
•
Transferên ia das havesao su essor do par que saiu.Esta últimaoperação move as havesdo par quesaiu daestrutura para
o su essor imediato dele, já que agora serão de responsabilidade do
su- essor.
4.3.2 Bamboo
Bamboo é uma implementação da tabela de hash distribuída na linguagem
Java desenvolvida na Universidade da California em Berkeley. A equipe do
Bamboo dire ionou os esforços de desenvolvimento no melhoramento do
de-sempenho e estabilidade da rede quando os pares entram e saem dela om
uma alta probabilidade [RGRK04℄. O proto olo des reve omo a har as
ha-ves entre os pares da rede, omo novos pares se unem à rede e o pro esso de
atualização daestrutura.
Tabela de Roteamento A tabela de roteamento do Bamboo que, omo no
aso do Chord,tem ponteiros a pares queestão na frente noanel e ajudam a
melhorara e iên ia nas bus as poruma have,utilizauma versão da tabela
muitopare ida omoutilizadopeloalgoritmoPastry[RD01℄queébaseado em
uma estrutura de árvore de prexos.
Essa tabela ontém os identi adores de outros pares perten entes à
tabeladehashdistribuídae onsisteemumamatriz om
log n
lase2
b
olunas
om
b
= 2
. Com isso, qualquer número que esteja na base 10 (ou outra base) será transformado nabase 4.NaFigura4.7(a)temosatabeladeroteamentodopar omidenti ador
10123102 (base 4) ou 19410 (base 10). Como podemos observar, ada élula
f ila, coluna
da tabela de roteamento orresponde a um identi ador de um par. Este identi adorestá dividido em três partes:1. um prexo do identi ador formadopelaunião de todas as élulas
som-breadas até a
f ila −
1
2. o valorda
coluna
3. um suxo que, naunião om osoutrosdois valoresa ima, orrespondea
um identi adorválido de um par perten ente àestrutura.
Se essa élulaestivervazia quer dizerqueatabelanão onhe e nenhum
par om esse prexo. Para dar um exemplo, vemos que na Figura 4.7(a) e
4.7(b), a élula dala4 oluna2 têm omo prexo 1023, omo suxo 121 ea
união doprexo- oluna-suxo representa ao par om identi ador10232121.
No asoda ultimala, podemos observarque está vazia, signi andoque não
existem pares om o prexo 1023310.
Identificador: 1 0 2 3 3 1 0 2
Tabela de Roteamento
0
10-0-31203
102-0-0230
1023-0-322
10233-0-01
0
1-3-021022
10-3-23302
3
3
1
1-1-301233
10-1-32102
102-1-1302
1023-1-000
1
1-2-230203
2
102-2-2302
1023-2-121
10233-2-32
102331-2-0
2
0
0
1
2
3
4
5
6
7
8
1
2
3
(a) Tabela de roteamento paraopar
omidenti ador10233102
1
0
1
2
3
2
...
...
3
...
.
.
.
.
.
.
2
...
121
(b) Árvore de prexospara o
identi- ador10232121
Quando um par envia uma mensagem em bus a de uma have, será apli ada
uma função de hash à have que devolverá um valor
v
. A tabela de rotea-mento devolverá então o identi adordo par que tenha o prexo mais longoomparado om
v
(vamos supor que esse par tem omo valorp
). A partir dep
, o pro esso se repete de maneira re ursiva, passando essa mensagem até se en ontrar o valorv
. Para efetuar esta bus a é ne essárioO(log n)
tro a de mensagens.Por exemplo, vamos supor que estamos pro urando pelo valor
v
=
10232123
. A tabela de roteamento da Figura 4.7(a) devolveráp
= 10232121
(segundo aFigura4.7(b)oprexo onhe idomais longoé10232). Apartirdep
esse pro esso serepete até lo alizar ovalor 10232123.Ingresso de um par na tabela de hash Como a onte e om Chord, faz-se
ne essáriolevarem ontaalgumas onsideraçõespara oingressodeum parna
estrutura do Bamboo:
•
Alo ação donovo par.O lugar na tabela onde será inserido segue as mesmas regras que no
Chord, ou seja, faz-se uma bus a pelo identi ador do novo par até
lo- alizarovalordosu essormais próximoaesse identi ador. Essa será a
posição orreta na tabelade hash distribuída onde será inserido o novo
par. A diferença om Chord está em que, neste pro esso, ao novo par é
dadoumatabeladeroteamentoini ial, om valoresmuitopare idos om
a tabela de roteamentodo seu su essor.
•
Atualizar os registros dos outros pares já existentes na tabela de Hash distribuída.A atualização é dada da seguinte forma. Primeiro se es olhe de forma
aleatória uma élula
(f ila, coluna)
da tabela de roteamento de um par. Essa élulatêmasso iado umvalorv
(dadopeloprexo da élulamaiso valorda oluna)o qual será pro uradona tabela de hash distribuídadaseguintemaneira: amensagemde bus a,poresse valor
v
,érepassadaao primeiroidenti adordopar desta tabelade roteamentoque pertença àmesma
f ila
da élula ecoluna
= i
om(coluna > i ≥ 0
).Para dar um exemplo, vamos supor que de forma aleatória es olhemos
Se-tenha prexo 102333 (prexo 10233 mais a
coluna
= 3
). Agora, para en ontrar um par ao qualrepassar a mensagem de bus a teremos queirdiminuindoo valorda oluna. A élula(5,2) ontém opar10233232. No
asodessa élulaestarvaziaamensagemserárepassadaaopar10233001,
ouseja, para a élula(5,0).
Saída deum par da tabela dehash Quando umpar saidaestruturafaz-se
ne essárioatualizarastabelas de roteamentodos outrosparesjáexistentesna
tabela de hash distribuída. Para isso, utiliza-se o mesmo pro esso de
atuali-zação de registros, ouseja, es olhe-se uma élula que tem asso iado um valor
e pro ura-se pelo valor omo denido anteriormente na atualização quando
Proto olo de Interligação
Estaseçãoapresentaoproto oloquepermitirámontarumaestruturadepares
quesejae ientena omuni ação. Chamaremosesteproto olodeProto olo de
Interligação. Esse proto olo, baseado no modelo atmi o ( vide Seção 3.1.1),
visa interligar os pares mais próximos entre si em termos de latên ia. Antes
de des reverosdetalhes doproto olo,vejamosquaissão osprin ipaismotivos
pelo qualse fazne essário riá-lo.
Primeiro ,existe umane essidadenoInteGradedeinterligarosGRMs
dos diferentes aglomerados. Com isso, no aso em que uma tarefa não possa
serrealizadalo almente,teremosapossibilidadederequisitaraexe uçãodesta
tarefa a outros GRMs.
Segundo, nos proto olos Par-a-Par existentes, omo no aso de
Gnu-tella [gnub℄ ou do Gisp [Kat02℄ do JXTA [jxt℄, a informação que um par
disponibiliza( omoporexemploumarquivode músi a)somenteéen ontrada
em alguns pares. Em nosso aso, as informações que um par ompartilha
( omo sua quantidade de memória RAM disponível) devem estar na maioria
dos pares.
Ter eiro , na maioria das redes Par-a-Par que utilizam o modelo
at-mi o, aestrutura eformaçãodos pares é riada de formaaleatóriaem relação
a seus vizinhos 1
. Para o nosso trabalho, o tempo de latên ia entre um par e
seus vizinhoséumrequisitoimportante,quenão é onsideradonosproto olos
desenvolvidos até agora.
Veremos agora omo o nosso proto olo resolve os problemas
anterior-mente men ionados. É importante desta ar que esse proto olo, desenvolvido
para redes Par-a-Par, é uma generalização da ne essidade do InteGrade de
5.1 Visão Geral
Comomen ionadonomodeloatmi odaSeção 3.1.1,asredesPar-a-Par não
têm uma estrutura de onexão estabele ida, ouseja, não seguem nenhum
pa-drãodenido, omomostrado naFigura5.1. Para queumpar possa melhorar
o desempenho no envio e re epção das mensagens, se faz ne essário que ele
se one te om o par mais próximo onsiderando o tempo de latên ia e não
om outro qualquer. No aso do InteGrade, amelhora nodesempenho da
o-muni ação serviriapara queumGRMpossarepassar, de formae iente, uma
tarefaquenãopde serexe utadalo almente. Aseguirveremos omoresolver
esse problema usando a função de roteamentoda amadade rede.
Figura5.1: Estrutura de umaredePar-a-Par geral.
5.1.1 Usando e Armazenando a Informação dos Roteadores
A amada de rede tem omo função entregar pa otes de um lugar a outro
através de uma infra-estrutura de redes inter one tadas [Sta03℄. Para isso,
para o enviode pa otes.
A ompreensãodarota seguidaporum pa otepode ajudar a des obrir
queparesestãopróximosemtermosdelatên ia. ConformeilustradonaFigura
5.2, se o par
p1
envia uma mensagem para o parp2
, o pa ote enviado segue uma rotar1
determinada pela amada de rede. Suponhamos queem um dos roteadores dessa rota exista outra rotar2
para o parp3
,que não é onhe ido equeestá mais pertodep1
,em termosde latên ia,doquep2
. Se pudéssemos onhe erp3
,p1
poderiase omuni ar omp3
, assim,a omuni ação entre eles provavelmenteseria mais rápida doque a omuni ação entrep1
ep2
.Figura5.2: Rotadamensagem entredois pares.
Nosso proto olo usa earmazena as informações de latên ia edas rotas
daseguintemaneira:
•
Informações sobre ada roteador presente em uma rota entre dois pa-res serão armazenadas na Tabela de Hash Distribuída (DHT). A DHTarmazenará em uma estrutura, que hamaremos de objeto roteador, a
latên iae o identi adordo par mais próximoa ele.
No Proto olo de Interligação, o repositório é um omponente muito
impor-tante, já que om ele podemos armazenar onhe imento sobre os vizinhos de
um par. Esse onhe imento orresponde aumalistade identi adoresdos
pa-res, ordenada em ordem res ente de latên ia, armazenadanum arquivolo al
aopar. Ospares,junto om sua latên ia,são atualizadosperiodi amentepelo
pro esso de atualização do repositório (vide Seção 5.2.3). O identi ador do
par deve ser úni o e depende do implementador es olher de que tipo vai ser.
Geralmenteusa-seoendereçoIPeaportanaqualopar re ebeasrequisições.
PeerID Latên ia(ms) 217.73.145. 120:2411 10.01 164.109.41. 38:1475 10.33 69.2.200.18 3:3352 12.87 212.40.5.72 :2463 12.87 209.203.253.95:2674 12.98 198.65.117. 133:4213 13.53 83.97.42.2:80 15.08 205.217.153.53:1113 15.48 195.95.30.1 70:3442 17.65
Tabela5.1: Exemplode um Repositóriolo alde Pares
NaTabela5.1,vemosqueorepositóriodeum parpropor iona
informa-ção sobre paresvizinhos (endereço IP :porta) e alatên iaentre eles. No aso
dopar sedes one tar daredeevoltaraentrar, orepositórioserámuitoútilna
obtenção dos seus antigosvizinhos. Naimplementaçãodorepositório,deveria
se usar uma quantidade de não mais que 10 vizinhos, que evita que a
atuali-zaçãoperiódi a gereuma sobre arganaredepelaquantidade de informaçãoa
atualizar.
5.2 Des rição do Proto olo
Para garantirainterligaçãousandoaproximidadedelatên ia,nossoproto olo
deve onsiderar três situações dopar
p1
: aentrada narede, a saída darede e asatualizaçõesdasreferên iasdosoutrospares omp1
. Aseguirdetalharemos ada uma dessas situações.Segundo o detalhado na Seção 3.1.1, em um modelo arquitetni o atmi o
omo o nosso proto olo, o par que quer ingressar na rede pre isa onhe er
outros pares quaisquer aonde se one tar. Para isso, podemos identi ar
duas opções:
•
É a primeira vez que o par se one ta à rede: obteremos esses outros pares de uma fontena Internet, omo porexemplo uma página Web.•
O par já tinha ingressado antes e deseja voltar a se one tar na rede: obteremos esses outros pares dorepositóriolo al( vide Seção 5.1.2) queosarmazena.
Primeira vez. A solução proposta é ter o endereço de alguns pares, mais
estáveis, emumlo alxo,porexemplo,umapáginaWebquetodos onheçam.
Estes pares estáveis devem ter omo ara terísti a ofatode a probabilidade
desaíremdaredeserbaixa. Outrapossibilidadeéabus aatravésdeBroad ast
esperandoquealguématendaàrequisição,masistoé laramentenãoes alável.
Umadas ara terísti asdasoluçãousandoapáginaWeb équeeladeve
onter uma quantidade pequena de pares (no máximoalgumas dezenas),
evi-tando omissoumademoranopro essamentodapágina. Outra ara terísti a
é que esta página não seja ne essariamente úni a, ou seja, podem existir
ou-tras páginas organizadas por grupos, países, et , que permitiria uma maior
es alabilidade. NaTabela5.2vemosum exemplodeuma possívelpáginaWeb
que armazena osendereços e portas onde os pares re ebem as mensagens.
Játinhaingressado. Neste aso,nãodevemosnospreo uparempro uraros
pares napáginaWeb des ritaanteriormente. Agora simplesmenteosobtemos
dorepositório de pares.
Na Figura 5.3, apresentamos o algoritmode ingresso de um par
p
1
na rede. É importante desta ar que este algoritmo é exe utado no par que estáingressando narede. Detalharemos o seu fun ionamentoa seguir.
1. Obtemos umaquantidade onstantede possíveisidenti adoresde pares
omosquaisonovo andidato(