Pregel: A System for Large- Scale Graph Processing. Written by G. Malewicz et al. at SIGMOD 2010 Presented by Chris Bunch Tuesday, October 12, 2010

Similar documents
PREGEL: A SYSTEM FOR LARGE- SCALE GRAPH PROCESSING

Authors: Malewicz, G., Austern, M. H., Bik, A. J., Dehnert, J. C., Horn, L., Leiser, N., Czjkowski, G.

Pregel: A System for Large-Scale Graph Proces sing

PREGEL: A SYSTEM FOR LARGE-SCALE GRAPH PROCESSING

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

Large-Scale Graph Processing 1: Pregel & Apache Hama Shiow-yang Wu ( 吳秀陽 ) CSIE, NDHU, Taiwan, ROC

PREGEL AND GIRAPH. Why Pregel? Processing large graph problems is challenging Options

Pregel. Ali Shah

Distributed Systems. 21. Graph Computing Frameworks. Paul Krzyzanowski. Rutgers University. Fall 2016

One Trillion Edges. Graph processing at Facebook scale

CS 347 Parallel and Distributed Data Processing

Parallel HITS Algorithm Implemented Using HADOOP GIRAPH Framework to resolve Big Data Problem

CS 347 Parallel and Distributed Data Processing

King Abdullah University of Science and Technology. CS348: Cloud Computing. Large-Scale Graph Processing

Big Graph Processing. Fenggang Wu Nov. 6, 2016

CS /21/2016. Paul Krzyzanowski 1. Can we make MapReduce easier? Distributed Systems. Apache Pig. Apache Pig. Pig: Loading Data.

COSC 6339 Big Data Analytics. Graph Algorithms and Apache Giraph

modern database systems lecture 10 : large-scale graph processing

Graph Processing. Connor Gramazio Spiros Boosalis

Turning NoSQL data into Graph Playing with Apache Giraph and Apache Gora

BSP, Pregel and the need for Graph Processing

GraphHP: A Hybrid Platform for Iterative Graph Processing

Giraph: Large-scale graph processing infrastructure on Hadoop. Qu Zhi

Large Scale Graph Processing Pregel, GraphLab and GraphX

Webinar Series TMIP VISION

Distributed Systems. 20. Other parallel frameworks. Paul Krzyzanowski. Rutgers University. Fall 2017

Palgol: A High-Level DSL for Vertex-Centric Graph Processing with Remote Access

CS November 2017

Map-Reduce. Marco Mura 2010 March, 31th

Putting it together. Data-Parallel Computation. Ex: Word count using partial aggregation. Big Data Processing. COS 418: Distributed Systems Lecture 21

Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing

Apache Giraph: Facebook-scale graph processing infrastructure. 3/31/2014 Avery Ching, Facebook GDM

Distributed Systems. 21. Other parallel frameworks. Paul Krzyzanowski. Rutgers University. Fall 2018

CS November 2018

Pregel: A System for Large-Scale Graph Processing

GPS: A Graph Processing System

Data Clustering on the Parallel Hadoop MapReduce Model. Dimitrios Verraros

PREGEL. A System for Large-Scale Graph Processing

TI2736-B Big Data Processing. Claudia Hauff

PREGEL. A System for Large Scale Graph Processing

MapReduce: Simplified Data Processing on Large Clusters 유연일민철기

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

[CoolName++]: A Graph Processing Framework for Charm++

Graph Processing Frameworks

Exam 2 Review. October 29, Paul Krzyzanowski 1

Massive Online Analysis - Storm,Spark

Distributed File Systems II

Distributed Systems. Fall 2017 Exam 3 Review. Paul Krzyzanowski. Rutgers University. Fall 2017

Today s content. Resilient Distributed Datasets(RDDs) Spark and its data model

Lessons Learned While Building Infrastructure Software at Google

Resilient Distributed Datasets

Distributed computing: index building and use

Graph Processing & Bulk Synchronous Parallel Model

High Performance Data Analytics: Experiences Porting the Apache Hama Graph Analytics Framework to an HPC InfiniBand Connected Cluster

Piccolo. Fast, Distributed Programs with Partitioned Tables. Presenter: Wu, Weiyi Yale University. Saturday, October 15,

2/4/2019 Week 3- A Sangmi Lee Pallickara

The Stratosphere Platform for Big Data Analytics

Spark. In- Memory Cluster Computing for Iterative and Interactive Applications

Spark. In- Memory Cluster Computing for Iterative and Interactive Applications

Giraph Unchained: Barrierless Asynchronous Parallel Execution in Pregel-like Graph Processing Systems

CSE 444: Database Internals. Lectures 26 NoSQL: Extensible Record Stores

Part II: Software Infrastructure in Data Centers: Distributed Execution Engines

MINIMIZING TRANSACTION LATENCY IN GEO-REPLICATED DATA STORES

MapReduce. U of Toronto, 2014

CISC 7610 Lecture 2b The beginnings of NoSQL

References. What is Bigtable? Bigtable Data Model. Outline. Key Features. CSE 444: Database Internals

GFS: The Google File System

HDFS: Hadoop Distributed File System. CIS 612 Sunnie Chung

Distributed computing: index building and use

Research challenges in data-intensive computing The Stratosphere Project Apache Flink

Apache Hadoop Goes Realtime at Facebook. Himanshu Sharma

MapReduce Spark. Some slides are adapted from those of Jeff Dean and Matei Zaharia

Apache Giraph. for applications in Machine Learning & Recommendation Systems. Maria Novartis

Survey Paper on Traditional Hadoop and Pipelined Map Reduce

CS MapReduce. Vitaly Shmatikov

Graph-Parallel Problems. ML in the Context of Parallel Architectures

Lecture Notes to Big Data Management and Analytics Winter Term 2017/2018 Apache Flink

CS6030 Cloud Computing. Acknowledgements. Today s Topics. Intro to Cloud Computing 10/20/15. Ajay Gupta, WMU-CS. WiSe Lab

HIGH PERFORMANCE DATA ANALYTICS:

Outline. CS-562 Introduction to data analysis using Apache Spark

Introduction to MapReduce Algorithms and Analysis

ECE 7650 Scalable and Secure Internet Services and Architecture ---- A Systems Perspective

Distributed Graph Storage. Veronika Molnár, UZH

Collective Communication Patterns for Iterative MapReduce

Apache Flink- A System for Batch and Realtime Stream Processing

CA485 Ray Walshe Google File System

RAMCloud. Scalable High-Performance Storage Entirely in DRAM. by John Ousterhout et al. Stanford University. presented by Slavik Derevyanko

GFS: The Google File System. Dr. Yingwu Zhu

CPSC 426/526. Cloud Computing. Ennan Zhai. Computer Science Department Yale University

Big Data Infrastructures & Technologies Hadoop Streaming Revisit.

Large-Scale GPU programming

MapReduce, Hadoop and Spark. Bompotas Agorakis

Data-Intensive Distributed Computing

Programming model and implementation for processing and. Programs can be automatically parallelized and executed on a large cluster of machines

Distributed Computing with Spark

Shark. Hive on Spark. Cliff Engle, Antonio Lupher, Reynold Xin, Matei Zaharia, Michael Franklin, Ion Stoica, Scott Shenker

Frameworks for Graph-Based Problems

Clash of the Titans: MapReduce vs. Spark for Large Scale Data Analytics

Data-intensive computing systems

Putting together the platform: Riak, Redis, Solr and Spark. Bryan Hunt

Transcription:

Pregel: A System for Large- Scale Graph Processing Written by G. Malewicz et al. at SIGMOD 2010 Presented by Chris Bunch Tuesday, October 12, 2010 1

Graphs are hard Poor locality of memory access Very little work per vertex Changing degree of parallelism Running over many machines makes the problem worse 2

State of the Art Today Write your own infrastructure Substantial engineering effort Use MapReduce Inefficient - must store graph state in each stage, too much communication between stages 3

State of the Art Today Use a single-computer graph library Not scalable Use existing parallel graph systems No fault tolerance 4

Bulk Synchronous Parallel Series of iterations (supersteps) Each vertex invokes a function in parallel Can read messages sent in previous superstep Can send messages, to be read at the next superstep Can modify state of outgoing edges 5

Compute Model You give Pregel a directed graph It runs your computation at each vertex Do this until every vertex votes to halt Pregel gives you a directed graph back 6

Primitives Vertices - first class Edges - not Both can be dynamically created and destroyed 7

Vertex State Machine 8

C++ API Your code subclasses Vertex, writes a Compute method Can get/set vertex value Can get/set outgoing edges values Can send/receive messages 9

C++ API Message passing: No guaranteed message delivery order Messages are delivered exactly once Can send messages to any node If dest doesn t exist, user s function is called 10

C++ API Combiners (off by default): User specifies a way to reduce many messages into one value (ala Reduce in MR) Must be commutative and associative Exceedingly useful in certain contexts (e.g., 4x speedup on shortest-path compuation) 11

C++ API Aggregators: User specifies a function Each vertex sends it a value Each vertex receives aggregate(vals) Can be used for statistics or coordination 12

C++ API Topology mutations: Vertices can create / destroy vertices at will Resolving conflicting requests: Partial ordering: E Remove, V Remove, V Add, E Add User-defined handlers: You fix the conflicts on your own 13

C++ API Input and output: Text file Vertices in a relational DB Rows in BigTable Custom - subclass Reader/Writer classes 14

Implementation Executable is copied to many machines One machine becomes the Master Coordinates activities Other machines become Workers Performs computation 15

Implementation Master partitions the graph Master partitions the input If a Worker receives input that is not for their vertices, they pass it along Supersteps begin Master can tell Workers to save graphs 16

Fault Tolerance At each superstep S: Workers checkpoint V, E, and Messages Master checkpoints Aggregators If a node fails, everyone starts over at S Confined recovery is under development what happens if the Master fails? 17

The Worker Keeps graph in memory Message queues for supersteps S and S+1 Remote messages are buffered Combiner is used when messages are sent or received (save network and disk) 18

The Master Master keeps track of which Workers own each partition Not who owns each Vertex Coordinates all operations (via barriers) Maintains statistics and runs a HTTP server for users to view info on 19

Aggregators Worker passes values to its aggregator Aggregator uses tree structure to reduce vals w/ other aggregators Better parallelism than chain pipelining Final value is sent to Master 20

PageRank in Pregel 21

Shortest Path in Pregel 22

Evaluation 300 multicore commodity PCs used Only running time is counted Checkpointing disabled Measures scalability of Worker tasks Measures scalability w.r.t. # of Vertices in binary trees and log-normal trees 23

24

25

26

Current / Future Work Graph must fit in RAM - working on spilling over to / from disk Assigning vertices to machines to optimize traffic is an open problem Want to investigate dynamic repartitioning 27

Conclusions Pregel is production-ready and in use Usable after a short learning curve Vertex centric is not always easy to do Pregel works best on sparse graphs w / communication over edges Can t change the API - too many people using it! 28

Related Work Hama - from the Apache Hadoop team BSP model but not vertex centric ala Pregel Appears not to be ready for real use: 29

Related Work Phoebus, released last week on github Runs on Mac OS X Cons (as of this writing): Doesn t work on Linux Must write code in Erlang (since Phoebus is written in it) 30

Thanks! To my advisor, Chandra Krintz To Google for this paper To all of you for coming! 31