• Nenhum resultado encontrado

ÈÖÓØÓÓÐÓ Ô Ö¹ ¹Ô Ö Ô Ö ÒØ ÖÐ Ó ÐÓÑ Ö Ó Ñ Ö ÓÑÔÙØ ÓÒ ÎÐ Ñ Ö ÅÓÖ Ö ÊÓ ÖØ Ó ÔÖ ÒØ Ó ÁÒ Ø ØÙØÓ Å Ø Ñ Ø Ø Ø Ø ÍÒ Ú Ö ËÓ È ÙÐÓ Ô Ö Ó Ø ÒÓ Ó Ö Ù Å ØÖ Ñ Ò ÓÑÔ

N/A
N/A
Protected

Academic year: 2021

Share "ÈÖÓØÓÓÐÓ Ô Ö¹ ¹Ô Ö Ô Ö ÒØ ÖÐ Ó ÐÓÑ Ö Ó Ñ Ö ÓÑÔÙØ ÓÒ ÎÐ Ñ Ö ÅÓÖ Ö ÊÓ ÖØ Ó ÔÖ ÒØ Ó ÁÒ Ø ØÙØÓ Å Ø Ñ Ø Ø Ø Ø ÍÒ Ú Ö ËÓ È ÙÐÓ Ô Ö Ó Ø ÒÓ Ó Ö Ù Å ØÖ Ñ Ò ÓÑÔ"

Copied!
97
0
0

Texto

(1)

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

(2)

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

(3)

Vou 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

(4)

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

(5)

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

(6)

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

(7)

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)

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

(9)

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

(10)

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

(11)

3.1 Apli ações Par-a-Par. . . 19

4.1 Denição databelade roteamento de um par

p

. . . 24

5.1 Exemplo de um Repositório lo alde Pares . . . 35

(12)

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

(13)

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

(14)

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 de

Interligaçã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 denidas

paraumintervalodosvaloresdessesre 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, esses

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

(15)

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 olo

de 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

(16)

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 Uso

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

(17)

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ça

Um 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 paralelas

O 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 kpointing

O 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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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 mediador

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

(24)

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 as

arquiteturas 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

(25)

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

(26)

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 possui

x

, o que evita, de erta forma, apropagaçãoda mensageme melhoraodesempenho de algumas

bus 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

(27)

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

(28)

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

(29)

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 (onde

n

é aquantidade de pares da rede).

(30)

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

(31)

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 tabela

(32)

arregado é muito baixa.

Des entralização. Seguindo as propriedades das redes Par-a-Par, ne-nhum par nestatabelaé maisimportantequeoutro,isso impli ana

me-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 ser

onsiderada 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ça

ontí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. Esse

me 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

(33)

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

(34)

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 tabela

X

,

X1

e

X2

(

X1

e

X2

são as haves riadasapartirde

X

,que ontém informações adi ionais). Finalmente, o par responsável por

X

terá também referên ias às haves

X1

e

X2

.

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

(35)

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áximo

log n

ponteiros registrados(

n

é aquantidade de paresna estrutura) evitando om isso um ex es so de informação. Se tivéssemos

todos os pares registrados tornaríamoso proto olo pou o es alável.

Cada entrada

i

da tabela de roteamento de

p

ontém o identi adordo primeiropar noanel ujovalorsejamaiorouiguala

p

+ 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 ponteiroaoprimeiropar

s

no

aneltalque

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 ador

p < v

(onde

p

é o valor mais próximo de

v

onhe ido pela tabela). A partir de

p

, o pro esso se repete de maneira re ursiva, passando essa mensagem até se en ontrar o valor

v

. Este pro esso é ompletado om

O(log n)

tro a de

(36)

150

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

(37)

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 essor

p

donovo par ingressado, que hamaremos de

n

.

n

ontata o seu su essor

s

indi ando que atualize seu ponteiro prede essor (que agora apontará para

n

). O mesmo pro esso é feito para o prede essor de

p

, o ponteiro su essorde

p

agoraapontará para

n

.

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 que

tem atualmente(identi ador28). Lembremosquesegundo asregrasda

n

+ 2

i

= 25 + 2

1

(38)

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 par

Esta última operação move as haves (identi adas omo

k

) que agora serão de responsabilidade do novo par ingressado. Somente se pre isa

extrair 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

+

(39)

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

lase

2

b

olunas

(40)

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

(41)

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 longo

omparado om

v

(vamos supor que esse par tem omo valor

p

). A partir de

p

, o pro esso se repete de maneira re ursiva, passando essa mensagem até se en ontrar o valor

v

. Para efetuar esta bus a é ne essário

O(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). Apartirde

p

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 umvalor

v

(dadopeloprexo da élulamaiso valorda oluna)o qual será pro uradona tabela de hash distribuídada

seguintemaneira: amensagemde bus a,poresse valor

v

,érepassadaao primeiroidenti adordopar desta tabelade roteamentoque pertença à

mesma

f ila

da élula e

coluna

= i

om

(coluna > i ≥ 0

).

Para dar um exemplo, vamos supor que de forma aleatória es olhemos

(42)

Se-tenha prexo 102333 (prexo 10233 mais a

coluna

= 3

). Agora, para en ontrar um par ao qualrepassar a mensagem de bus a teremos queir

diminuindoo 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

(43)

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

(44)

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,

(45)

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 par

p2

, o pa ote enviado segue uma rota

r1

determinada pela amada de rede. Suponhamos queem um dos roteadores dessa rota exista outra rota

r2

para o par

p3

,que não é onhe ido equeestá mais pertode

p1

,em termosde latên ia,doque

p2

. Se pudéssemos onhe er

p3

,

p1

poderiase omuni ar om

p3

, assim,a omuni ação entre eles provavelmenteseria mais rápida doque a omuni ação entre

p1

e

p2

.

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 DHT

armazenará em uma estrutura, que hamaremos de objeto roteador, a

latên iae o identi adordo par mais próximoa ele.

(46)

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 om

p1

. Aseguirdetalharemos ada uma dessas situações.

(47)

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

osarmazena.

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(

p

1

)poderiase one tar. Esses identi a-dores serão obtidos do pro essamento da página Web, se for a primeira

Referências

Documentos relacionados

para sistemas l ogios quanto algor tmios, a ei^ enia de planejamento n~ ao dep ende.. ap enas da p ol tia de prote ~ ao de submetas adotada em ada um deles, mas

uma instânia (E; S; ) do problema MinCC para a qual o algoritmo. devolve uma obertura de usto não inferior a opt (E;

Por outro lado, quando choques atingem a economia no período de stress financeiro, os efeitos sobre a taxa de juros (de um choque nos preços de ações) e sobre os preços

As variáveis estudadas foram idade e raça da mulher (branca e não branca); escolaridade (&lt;8 anos e &gt;8 anos de estudo formal); renda familiar &lt;2 salários mínimos (SM), de 2 a

Graduado em Ciências Contábeis pela Universidade São Judas Tadeu, Especialista em Auditoria Contábil pela Universidade Mackenzie, Especialista em Direito Previ- denciário pela EPD

Jas mislam deka familijata koja mo`e sekoga{ da se smee mora da e sre}na i, da go citiram Osnova~ot Nikjo Nivano, kako {to e objaveno vo izdanieto za Juni 2016 na mese~noto

A Sociedade Goiana de Ginecologia e Obstetrícia (SGGO), enquanto entidade represen- tativa dos médicos ginecologistas e obstetras de Goiás, possui o dever de informar sobre

Quando esta opção está desativada, o SmartControl Lite não inicializa ou aparece barra de tarefa.. A única forma de iniciar o SmartControl Lite é a partir do atalho existente