Pregel: Um Sistema de Processamento de Grafos em Larga-Escala

1,825 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,825
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Pregel: Um Sistema de Processamento de Grafos em Larga-Escala

  1. 1. Pregel: A System for Large-Scale Graph Processing Escrito por G. Malewicz et al. no SIGMOD 2010
  2. 2. PregelUm Sistema de Processamento de Grafos em Larga-Escala Sábado, 11 de Junho de 2011 Apresentado por: Bruno Cunha
  3. 3. Sumário• Grafos• MapReduce• Pregel• Experimentos• Conclusão
  4. 4. Grafo
  5. 5. Grafo Não-Direcionado 1. Vértices • Todos os vértices denotam o mesmo tipo de objeto. 2. Arestas • Todas as arestas denotam o mesmo tipo de relacionamento. • Todas as arestas denotam um relacionamento simétrico.
  6. 6. Grafo Não-Direcionado no Mundo RealGrafo de amizade é não-direcionado Grafo de rotas é não-direcionado
  7. 7. Grafo Direcionado 1. Vértices • Todos os vértices denotam o mesmo tipo de objeto. 2. Arestas • Todas as arestas denotam o mesmo tipo de relacionamento. • Todas as arestas denotam um relacionamento assimétrico.
  8. 8. Grafo Direcionado no Mundo RealGrafo de seguidores no Twitter é direcionado Grafo de citações é direcionado
  9. 9. Estruturas de Relacionamento Único• Sem uma forma de demarcar as arestas, todas as arestas tem o mesmo significado/tipo.• É o tipo mais comum de grafo.
  10. 10. Como Modelar um Mundo com Múltiplas Estruturas?
  11. 11. Google Inc.MAPREDUCE E PREGEL
  12. 12. MapReduce• Framework para computação distribuída – Desenvolvedor não se preocupa com protocolos, tolerância a falhas, etc. – Simplesmente escreve seu códigoMAP REDUCE Aplicar a função a todos Combinar os elementos elementos de uma lista de uma lista quadrado x = x * x; reduce (+) [1, 2, 3, 4, 5] map quadrado [1, 2, 3, 4, 5]; > [1, 4, 9, 16, 25] > 15
  13. 13. MapReduce• Funcionamento básicoEntrada Map Reduce Saída
  14. 14. MapReduce MAP Organiza REDUCEEntrada Saída
  15. 15. MapReduce e Pregel• MapReduce é uma infra-estrutura para computação distribuída, e Pregel é outra.• Por que eles fizeram o Pregel? – MapReduce não é ideal para algoritmos de grafos • Não suporta comunicação entre os nós. – Não existe nenhum sistema desse tipo para computação de grafos em larga-escala.
  16. 16. MapReduce e Pregel• Pregel também usa a estrutura Master/Worker – Master é responsável por coordenar as atividades dos Workers – Worker mantém o estado de uma parte do grafo em memória Master Worker Worker Worker Worker
  17. 17. MapReduce VS Pregel• No Pregel, o estado do Worker é armazenado – Um Worker é responsável pelo mesmo conjunto de vértices – O grafo é carregado na memória uma vez e reutilizado nas iterações• No Pregel, somente os resultados são enviados – Não é necessário enviar a estrutura do grafo – Menor consumo de banda• No Pregel, há um checkpoint periódico – Cada Worker grava seu estado em disco
  18. 18. Processamento de Grafos de Larga-EscalaPREGEL
  19. 19. O que significa Pregel?Pregel é o nome do rio que passa sob as pontes de Königsberg. Destruídas durante a Segunda Guerra Mundial Sete pontes de Königsberg Screenshot do Google Maps
  20. 20. Estrutura Pregel• Mestre (Master)• Trabalhador (Worker)• Passagem de Mensagem (Message Passing)• Combinadores (Combiners)• Agregadores (Aggregators)• Mudança de Topologia (Topology Mutations)• Entrada e Saída (Input/Output)
  21. 21. Message Passing• Não garante entrega das mensagens na ordem• Mensagens são entregues exatamente uma vez (Exactly Once)• Possível enviar mensagens para qualquer nó• Se o destino não existe, uma função do usuário é chamada
  22. 22. Combiners• Desabilitado por default• Usuário especifica uma forma de reduzir várias mensagens em um valor (igual ao Reduce no MapReduce)• Extremamente útil em certos contextos (aumenta em 4x a velocidade em computações de menor caminho)
  23. 23. Aggregators• Usuário especifica uma função – Cada Worker envia um valor ao aggregator – Cada Worker recebe um aggregate(vals)• Pregel inclui um número de agregators predefinidos, como operações de min, max ou sum• Pode ser usado para estatísticas e coordenação
  24. 24. Topology Mutations• É possível criar/destruir vértices• Resolvendo requisições conflitantes – Ordenação parcial • Operações de remoção são realizadas primeiro • Remoção de um vértice implica na remoção de suas arestas – Handlers definidos pelo usuário • Usuário resolve os conflitos
  25. 25. Input / Output• Pregel evita impor tipos para formatos de entrada desacoplando a tarefa de interpretar essas entradas• Da mesma forma, a saída pode ser gerada em um formato arbitrário e armazenada da forma mais adequada
  26. 26. Master• Tem controle sobre que Worker tem certa parte do grafo. – Não conhece cada vértice do grafo• Coordena todas as operações• Mantém estatísticas• É executado em um servidor HTTP para que usuários visualizem as informações
  27. 27. Funcionamento do Pregel Nó 1 Nó 5 Nó 2 Nó 3Nó N Nó 4
  28. 28. Funcionamento do PregelUma máquina se torna Master Nó 1 Master Nó 2 Nó 3 Nó N Nó 4
  29. 29. Funcionamento do Pregel Worker 1 Master As outras setornam Workers Worker 3 Worker 2 Worker N Worker 4
  30. 30. Funcionamento do PregelMaster particiona a entrada Worker 1 Master Master particiona o grafo Worker 2 Worker 3 Worker N Se um Worker recebe uma Worker 4 entrada que não é para seus vértices, ele passa adiante
  31. 31. Funcionamento do Pregel Super Etapa: Início Worker 1 MasterSincronismo ecoordenação Worker 2 Worker 3 Worker N Worker 4 Mensagens entre 2 nós podem ser combinadas
  32. 32. Funcionamento do PregelSuper Etapa: Checkpoint Worker 1 Master Worker 2 Worker 3 Worker N Banco de Dados Worker 4 Checkpoint Master pode dizer Master pode dizer aos Workers para aos Workers para salvarem seus grafos salvarem seus grafos
  33. 33. Funcionamento do Pregel Super Etapa: Todos recarregam Tolêrancia a Falhas seus estados através Worker 1 do último checkpoint MasterMaster usa o “ping”para detectar falhas Worker 2 Worker 3 nos Workers Worker N Banco de Dados Worker 4 Se um nó falha, o Master redistribui o grafo e entradas para os outros Workers
  34. 34. Funcionamento do Pregel Super Etapa: Recomeçando Worker 1 Master Worker 3 Worker N Worker 4A Super Etapa então é recomeçada a partirdo último checkpoint
  35. 35. Funcionamento do Pregel Super Etapa: Final Worker 1 MasterValor final é enviado para o Master Workers passam Worker 3 valores para um Aggregator Worker N Worker 4 Aggregator 1 Aggregator 2 Combinam e reduzem em valores globais
  36. 36. Funcionamento do Pregel Super Etapa: Início da próxima Início Super Etapa Worker 1 MasterO Master envia ovalor global para Worker 3todos os Workers Worker N Worker 4
  37. 37. Experimentos• Cluster com 300 PCs multi-núcleos (multicore)• Checkpoint foi desabilitado• Peso de todas as arestas setado em 1• Executado com árvores binárias
  38. 38. Variando Número de Workers• Algoritmo do Menor Caminho• Árvore binária com 1 bilhão de vértices 174 seg para 17 seg 16x mais Workers = 10x menos tempo
  39. 39. Variando Tamanho do Grafo• Algoritmo do Menor Caminho• Árvore binária de 1 bilhão à 50 bilhões de vértices• 800 Workers 17 seg para 702 seg Tempo de execução aumenta linearmente com o tamanho do grafo
  40. 40. Conclusões• Pregel é uma API de código fechado, porém gratuita• Inspirado no modelo Bulk Synchronous Parallel• Provê uma solução fácil para processamento de grafos de larga-escala• Acredita-se que 80% dos serviços do Google utilizam o MapReduce e 20% o Pregel• Pode ser usado para mapear e estudar os relacionamentos nas Mídias Sociais
  41. 41. Obrigado!PERGUNTAS?
  42. 42. Referências The Graph Traversal Programming Pattern Marko A. Rodriguez WindyCityDB – Chicago, Illinois 26 de Junho de 2010 Pregel: A System for Large-Scale Graph Processing Cris Bunch UCBS 12 de Outubro de 2010
  43. 43. Artigo Original Pregel: A System for Large-Scale Graph Processing Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and Grzegorz Czajkowski Google Inc. SIGMOD 2010

×