SlideShare uma empresa Scribd logo
1 de 29
Baixar para ler offline
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
Presented By
Riyad Parvez
Real World Graph Processing
● Web graph:
○ PageRank (influential vertices)
● Social graph:
○ Popularity rank, personalized rank, shortest paths, shared
connections, clustering (communities), propagation
● Advertisement:
○ Target ads
● Communication network:
○ Maximum flow, transportation routes
● Biology network
○ protein interactions
● Pathology network
○ find anomalies
Graph Processing is Different
● Poor locality of memory access.
● Very little work done per vertex.
● Changes degree of parallelism over the
course of execution.
Why not MapReduce (MR)
● Graph algorithms can be expressed as
series of MR jobs.
● Data must be reloaded and reprocessed at
each iteration, wasting I/O, network.
bandwidth, and processor resources.
● Needs an extra MR job for each iteration just
to detect termination condition.
● MR isn’t very good at dynamic dependency
graph.
Pregel
● Developed at Google
● Modeled after Bulk Synchronous Parallel (BSP)
computing model
● Distributed message passing system
● Computes in vertex-centric fashion
○ “Think like a vertex”
● Scalable and fault tolerant
● Influenced systems like Apache Giraph and
other BSP distributed systems
Bulk Synchronous Parallel
● Leslie Valiant introduced in 1990.
● Computations are consist of a sequence of iterations,
called superstep.
● During superstep, framework calls user-defined
computation function on every vertex.
● Computation function specifies behaviour at a single
vertex V and a single superstep S.
● Supersteps end with barrier synchronization.
● All communications are from superstep S to superstep
S+1.
● Performance of the model is predictable.
Bulk Synchronous Parallel
Source: https://cs.uwaterloo.ca/~kdaudjee/courses/cs848/slides/jenny.pdf
Bulk Synchronous Parallel
Source: https://cs.uwaterloo.ca/~kdaudjee/courses/cs848/slides/jenny.pdf
Pregel Computation Model
● Computation on locally stored data.
● Computations are in-memory.
● Terminates when all vertices are inactive or no
messages to be delivered.
● Vertices are distributed among workers using hash(ID)
mod N, where N is the number of partitions (default
partitioning)
● Barrier synchronization
➢ Wait and synchronize before the end of superstep
➢ Fast processors can be delayed by slow ones
● Persistent data is stored on a distributed storage system
(GFS/BigTable)
● Temporary data is stored in disk.
C++ API
Source: http://kowshik.github.io/JPregel/pregel_paper.pdf
Vertex
● Can mutate local value and value on outgoing edges.
● Can send arbitrary number of messages to any other
vertices.
● Receive messages from previous superstep.
● Can mutate local graph topology.
● All active vertices participate in the computation in a
superstep.
Vertex State Machine
● Initially, every vertices
are active.
● A vertice can deactivate
itself by vote to halt.
● Deactivated vertices
don't participate in
computation.
● Vertices are reactivated
upon receiving
message.
Example
Messages
● Consists of a message value and destination
vertex.
● Typically sent along outgoing edges.
● Can be sent to any vertex whose identifier is
known.
● Are only available to receiver at the beginning of
superstep.
● Guaranteed to be delivered.
● Guaranteed not to be duplicated.
● Can be out of order.
Combiner
● Sending messages incurs overhead.
● System calls Combine() for several messages intended
for a vertex V into a single message containing the
combined message.
● No guarantees which messages will be combined or the
order of combination.
● Should be enabled for commutative and associative
messages.
● Not enabled by default.
Combiner
Source: https://wiki.engr.illinois.edu/download/attachments/188588798/pregel.pdf?version=1
Aggregator
● Mechanism for global communication,
monitoring and global state.
○ Vertices provide value to aggregator in superstep S.
○ Values are combined using a reduction operator.
○ Resulting value is available to all vertices at
superstep S+1.
● New aggregator is defined by subclassing
"Aggregator" class.
● Reduction operator should be associative and
commutative.
Reduction (Aggregator)
Source: https://wiki.engr.illinois.edu/download/attachments/188588798/pregel.pdf?version=1
Topology Mutation
● Vertices can dynamically create/destroy vertices, edges.
● Mutations and conflict resolution take place at barrier.
● Except local mutation (self-edge) immediately takes
place.
● Order of mutations
○ Edge deletion
○ Vertex deletion
○ Vertex addition
○ Edge addition
Master
● Partitions the input and assigns one or more partitions
to each worker.
● Keeps list of
○ All alive workers
○ Worker's unique identifiers
○ Addressing informations
○ Partition of the graph is assigned to the worker.
● Coordinates barrier synchronization i.e., superstep.
● Fault tolerance by checkpoint, failure detection and
reassignment.
● Maintains statistics of the progress of computation and
the state of the graph.
● Doesn’t participate in computation.
● Not responsible for load-balancing.
Worker
● Responsible for computation of assigned
vertices.
● Keeps two copies of active vertices and
incoming messages
○ Current superstep
○ Next superstep
● Place local messages immediately in
message queue.
● Buffer remote messages.
○ Flush asynchronously in single message if threshold
reached.
Fault Tolerance
● Checkpoint at the beginning of superstep.
○ Master saves aggregators.
○ Workers save vertices, edges and incoming messages.
● Worker failure detected by ping messages.
● Recovery
○ Master reassigns failed worker partition to other available
workers.
○ All workers restart from superstep S by loading state from the
most recently available checkpoint.
● Confined recovery: recovery is only confined to lost
partitions
○ Workers also save outgoing messages.
○ Recomputes using logged messages from healthy partitions
and recalculated ones from recovering partitions.
PageRank
Source: http://kowshik.github.io/JPregel/pregel_paper.pdf
Performance
Experimental Setup:
● Hardware: A cluster of 300 multi-core commodity PCs.
● Algorithm: SSSP with unit weight edges.
• All-pairs shortest paths impractical b/c O(|V|2) storage.
● Measures scalability w.r.t. both the number of workers
and the number of vertices.
● Data collected for:
• Binary trees (to test scalability).
• log-normal random graphs (to study performance in a realistic
setting).
● No checkpointing.
Performance
Source: http://kowshik.github.io/JPregel/pregel_paper.pdf
Performance
Source: http://kowshik.github.io/JPregel/pregel_paper.pdf
Performance
Source: http://kowshik.github.io/JPregel/pregel_paper.pdf
Summary
● Distributed system for large scale graph
processing.
● Vertex-centric BSP model
○ Message passing API
○ A sequence of supersteps
○ Barrier synchronization
● Coarse grained parallelism
● Fault tolerance by checkpointing
● Runtime performance scales near linearly to the
size of the graph (CPU bound)
Discussion
● No fault tolerance for master is mentioned in
the paper (Probably Paxos or replication).
● Static partitioning! What happens if a worker
is too slow?
● Dynamic partitioning, network overhead for
reassigning vertices and state.
● Good for sparse graph. But communication
overhead for dense graph can bring the
system down to knees.

Mais conteúdo relacionado

Mais procurados

MapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large ClustersMapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large ClustersAbolfazl Asudeh
 
GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™Databricks
 
What No One Tells You About Writing a Streaming App: Spark Summit East talk b...
What No One Tells You About Writing a Streaming App: Spark Summit East talk b...What No One Tells You About Writing a Streaming App: Spark Summit East talk b...
What No One Tells You About Writing a Streaming App: Spark Summit East talk b...Spark Summit
 
Web-Scale Graph Analytics with Apache Spark with Tim Hunter
Web-Scale Graph Analytics with Apache Spark with Tim HunterWeb-Scale Graph Analytics with Apache Spark with Tim Hunter
Web-Scale Graph Analytics with Apache Spark with Tim HunterDatabricks
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekVenkata Naga Ravi
 
Four Things to Know About Reliable Spark Streaming with Typesafe and Databricks
Four Things to Know About Reliable Spark Streaming with Typesafe and DatabricksFour Things to Know About Reliable Spark Streaming with Typesafe and Databricks
Four Things to Know About Reliable Spark Streaming with Typesafe and DatabricksLegacy Typesafe (now Lightbend)
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Alexey Lesovsky
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used forAljoscha Krettek
 
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScyllaDB
 
Greenplum 6 Changes
Greenplum 6 ChangesGreenplum 6 Changes
Greenplum 6 ChangesVMware Tanzu
 
Benchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on SparkBenchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on SparkXiaoqian Liu
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresqlbotsplash.com
 
Analyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DB
Analyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DBAnalyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DB
Analyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DBCarol McDonald
 
Apache Hive Tutorial
Apache Hive TutorialApache Hive Tutorial
Apache Hive TutorialSandeep Patil
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniZalando Technology
 
Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™Databricks
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDatabricks
 

Mais procurados (20)

Apache Spark Architecture
Apache Spark ArchitectureApache Spark Architecture
Apache Spark Architecture
 
MapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large ClustersMapReduce : Simplified Data Processing on Large Clusters
MapReduce : Simplified Data Processing on Large Clusters
 
Spark vs Hadoop
Spark vs HadoopSpark vs Hadoop
Spark vs Hadoop
 
GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™
 
What No One Tells You About Writing a Streaming App: Spark Summit East talk b...
What No One Tells You About Writing a Streaming App: Spark Summit East talk b...What No One Tells You About Writing a Streaming App: Spark Summit East talk b...
What No One Tells You About Writing a Streaming App: Spark Summit East talk b...
 
Web-Scale Graph Analytics with Apache Spark with Tim Hunter
Web-Scale Graph Analytics with Apache Spark with Tim HunterWeb-Scale Graph Analytics with Apache Spark with Tim Hunter
Web-Scale Graph Analytics with Apache Spark with Tim Hunter
 
Catalyst optimizer
Catalyst optimizerCatalyst optimizer
Catalyst optimizer
 
Processing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeekProcessing Large Data with Apache Spark -- HasGeek
Processing Large Data with Apache Spark -- HasGeek
 
Four Things to Know About Reliable Spark Streaming with Typesafe and Databricks
Four Things to Know About Reliable Spark Streaming with Typesafe and DatabricksFour Things to Know About Reliable Spark Streaming with Typesafe and Databricks
Four Things to Know About Reliable Spark Streaming with Typesafe and Databricks
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
 
Apache Flink and what it is used for
Apache Flink and what it is used forApache Flink and what it is used for
Apache Flink and what it is used for
 
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion RecordsScylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
Scylla Summit 2022: How to Migrate a Counter Table for 68 Billion Records
 
Greenplum 6 Changes
Greenplum 6 ChangesGreenplum 6 Changes
Greenplum 6 Changes
 
Benchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on SparkBenchmark MinHash+LSH algorithm on Spark
Benchmark MinHash+LSH algorithm on Spark
 
Getting started with postgresql
Getting started with postgresqlGetting started with postgresql
Getting started with postgresql
 
Analyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DB
Analyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DBAnalyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DB
Analyzing Flight Delays with Apache Spark, DataFrames, GraphFrames, and MapR-DB
 
Apache Hive Tutorial
Apache Hive TutorialApache Hive Tutorial
Apache Hive Tutorial
 
High Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando PatroniHigh Availability PostgreSQL with Zalando Patroni
High Availability PostgreSQL with Zalando Patroni
 
Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™Web-Scale Graph Analytics with Apache® Spark™
Web-Scale Graph Analytics with Apache® Spark™
 
Dynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache SparkDynamic Partition Pruning in Apache Spark
Dynamic Partition Pruning in Apache Spark
 

Semelhante a Pregel: A System For Large Scale Graph Processing

Cassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage SystemCassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage SystemVarad Meru
 
Distributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflowDistributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflowEmanuel Di Nardo
 
Taskerman - a distributed cluster task manager
Taskerman - a distributed cluster task managerTaskerman - a distributed cluster task manager
Taskerman - a distributed cluster task managerRaghavendra Prabhu
 
Netflix machine learning
Netflix machine learningNetflix machine learning
Netflix machine learningAmer Ather
 
Advanced memory allocation
Advanced memory allocationAdvanced memory allocation
Advanced memory allocationJoris Bonnefoy
 
Graph processing
Graph processingGraph processing
Graph processingyeahjs
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartMukesh Singh
 
Reactive by example - at Reversim Summit 2015
Reactive by example - at Reversim Summit 2015Reactive by example - at Reversim Summit 2015
Reactive by example - at Reversim Summit 2015Eran Harel
 
Apache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming modelApache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming modelMartin Zapletal
 
Software Design Practices for Large-Scale Automation
Software Design Practices for Large-Scale AutomationSoftware Design Practices for Large-Scale Automation
Software Design Practices for Large-Scale AutomationHao Xu
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I💻 Anton Gerdelan
 
Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Ramith Jayasinghe
 
Scalability broad strokes
Scalability   broad strokesScalability   broad strokes
Scalability broad strokesGagan Bajpai
 
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018VMware Tanzu
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedbacksinfomicien
 
Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...
Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...
Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...Thien Q. Tran
 
[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...
[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...
[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...PingCAP
 

Semelhante a Pregel: A System For Large Scale Graph Processing (20)

Apache Giraph
Apache GiraphApache Giraph
Apache Giraph
 
Cassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage SystemCassandra - A Decentralized Structured Storage System
Cassandra - A Decentralized Structured Storage System
 
Distributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflowDistributed implementation of a lstm on spark and tensorflow
Distributed implementation of a lstm on spark and tensorflow
 
Taskerman - a distributed cluster task manager
Taskerman - a distributed cluster task managerTaskerman - a distributed cluster task manager
Taskerman - a distributed cluster task manager
 
Netflix machine learning
Netflix machine learningNetflix machine learning
Netflix machine learning
 
Advanced memory allocation
Advanced memory allocationAdvanced memory allocation
Advanced memory allocation
 
Graph processing
Graph processingGraph processing
Graph processing
 
Ledingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @LendingkartLedingkart Meetup #2: Scaling Search @Lendingkart
Ledingkart Meetup #2: Scaling Search @Lendingkart
 
Reactive by example - at Reversim Summit 2015
Reactive by example - at Reversim Summit 2015Reactive by example - at Reversim Summit 2015
Reactive by example - at Reversim Summit 2015
 
Apache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming modelApache spark - Spark's distributed programming model
Apache spark - Spark's distributed programming model
 
Software Design Practices for Large-Scale Automation
Software Design Practices for Large-Scale AutomationSoftware Design Practices for Large-Scale Automation
Software Design Practices for Large-Scale Automation
 
Computer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming IComputer Graphics - Lecture 01 - 3D Programming I
Computer Graphics - Lecture 01 - 3D Programming I
 
Concurrency - Why it's hard ?
Concurrency - Why it's hard ?Concurrency - Why it's hard ?
Concurrency - Why it's hard ?
 
Scalability broad strokes
Scalability   broad strokesScalability   broad strokes
Scalability broad strokes
 
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
Greenplum Overview for Postgres Hackers - Greenplum Summit 2018
 
BlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search FeedbackBlaBlaCar Elastic Search Feedback
BlaBlaCar Elastic Search Feedback
 
Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...
Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...
Set Transfomer: A Framework for Attention-based Permutaion-Invariant Neural N...
 
Why Concurrency is hard ?
Why Concurrency is hard ?Why Concurrency is hard ?
Why Concurrency is hard ?
 
FrackingPaper
FrackingPaperFrackingPaper
FrackingPaper
 
[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...
[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...
[Paper reading] Interleaving with Coroutines: A Practical Approach for Robust...
 

Último

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 

Pregel: A System For Large Scale Graph Processing

  • 1. 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 Presented By Riyad Parvez
  • 2. Real World Graph Processing ● Web graph: ○ PageRank (influential vertices) ● Social graph: ○ Popularity rank, personalized rank, shortest paths, shared connections, clustering (communities), propagation ● Advertisement: ○ Target ads ● Communication network: ○ Maximum flow, transportation routes ● Biology network ○ protein interactions ● Pathology network ○ find anomalies
  • 3. Graph Processing is Different ● Poor locality of memory access. ● Very little work done per vertex. ● Changes degree of parallelism over the course of execution.
  • 4. Why not MapReduce (MR) ● Graph algorithms can be expressed as series of MR jobs. ● Data must be reloaded and reprocessed at each iteration, wasting I/O, network. bandwidth, and processor resources. ● Needs an extra MR job for each iteration just to detect termination condition. ● MR isn’t very good at dynamic dependency graph.
  • 5. Pregel ● Developed at Google ● Modeled after Bulk Synchronous Parallel (BSP) computing model ● Distributed message passing system ● Computes in vertex-centric fashion ○ “Think like a vertex” ● Scalable and fault tolerant ● Influenced systems like Apache Giraph and other BSP distributed systems
  • 6. Bulk Synchronous Parallel ● Leslie Valiant introduced in 1990. ● Computations are consist of a sequence of iterations, called superstep. ● During superstep, framework calls user-defined computation function on every vertex. ● Computation function specifies behaviour at a single vertex V and a single superstep S. ● Supersteps end with barrier synchronization. ● All communications are from superstep S to superstep S+1. ● Performance of the model is predictable.
  • 7. Bulk Synchronous Parallel Source: https://cs.uwaterloo.ca/~kdaudjee/courses/cs848/slides/jenny.pdf
  • 8. Bulk Synchronous Parallel Source: https://cs.uwaterloo.ca/~kdaudjee/courses/cs848/slides/jenny.pdf
  • 9. Pregel Computation Model ● Computation on locally stored data. ● Computations are in-memory. ● Terminates when all vertices are inactive or no messages to be delivered. ● Vertices are distributed among workers using hash(ID) mod N, where N is the number of partitions (default partitioning) ● Barrier synchronization ➢ Wait and synchronize before the end of superstep ➢ Fast processors can be delayed by slow ones ● Persistent data is stored on a distributed storage system (GFS/BigTable) ● Temporary data is stored in disk.
  • 11. Vertex ● Can mutate local value and value on outgoing edges. ● Can send arbitrary number of messages to any other vertices. ● Receive messages from previous superstep. ● Can mutate local graph topology. ● All active vertices participate in the computation in a superstep.
  • 12. Vertex State Machine ● Initially, every vertices are active. ● A vertice can deactivate itself by vote to halt. ● Deactivated vertices don't participate in computation. ● Vertices are reactivated upon receiving message.
  • 14. Messages ● Consists of a message value and destination vertex. ● Typically sent along outgoing edges. ● Can be sent to any vertex whose identifier is known. ● Are only available to receiver at the beginning of superstep. ● Guaranteed to be delivered. ● Guaranteed not to be duplicated. ● Can be out of order.
  • 15. Combiner ● Sending messages incurs overhead. ● System calls Combine() for several messages intended for a vertex V into a single message containing the combined message. ● No guarantees which messages will be combined or the order of combination. ● Should be enabled for commutative and associative messages. ● Not enabled by default.
  • 17. Aggregator ● Mechanism for global communication, monitoring and global state. ○ Vertices provide value to aggregator in superstep S. ○ Values are combined using a reduction operator. ○ Resulting value is available to all vertices at superstep S+1. ● New aggregator is defined by subclassing "Aggregator" class. ● Reduction operator should be associative and commutative.
  • 19. Topology Mutation ● Vertices can dynamically create/destroy vertices, edges. ● Mutations and conflict resolution take place at barrier. ● Except local mutation (self-edge) immediately takes place. ● Order of mutations ○ Edge deletion ○ Vertex deletion ○ Vertex addition ○ Edge addition
  • 20. Master ● Partitions the input and assigns one or more partitions to each worker. ● Keeps list of ○ All alive workers ○ Worker's unique identifiers ○ Addressing informations ○ Partition of the graph is assigned to the worker. ● Coordinates barrier synchronization i.e., superstep. ● Fault tolerance by checkpoint, failure detection and reassignment. ● Maintains statistics of the progress of computation and the state of the graph. ● Doesn’t participate in computation. ● Not responsible for load-balancing.
  • 21. Worker ● Responsible for computation of assigned vertices. ● Keeps two copies of active vertices and incoming messages ○ Current superstep ○ Next superstep ● Place local messages immediately in message queue. ● Buffer remote messages. ○ Flush asynchronously in single message if threshold reached.
  • 22. Fault Tolerance ● Checkpoint at the beginning of superstep. ○ Master saves aggregators. ○ Workers save vertices, edges and incoming messages. ● Worker failure detected by ping messages. ● Recovery ○ Master reassigns failed worker partition to other available workers. ○ All workers restart from superstep S by loading state from the most recently available checkpoint. ● Confined recovery: recovery is only confined to lost partitions ○ Workers also save outgoing messages. ○ Recomputes using logged messages from healthy partitions and recalculated ones from recovering partitions.
  • 24. Performance Experimental Setup: ● Hardware: A cluster of 300 multi-core commodity PCs. ● Algorithm: SSSP with unit weight edges. • All-pairs shortest paths impractical b/c O(|V|2) storage. ● Measures scalability w.r.t. both the number of workers and the number of vertices. ● Data collected for: • Binary trees (to test scalability). • log-normal random graphs (to study performance in a realistic setting). ● No checkpointing.
  • 28. Summary ● Distributed system for large scale graph processing. ● Vertex-centric BSP model ○ Message passing API ○ A sequence of supersteps ○ Barrier synchronization ● Coarse grained parallelism ● Fault tolerance by checkpointing ● Runtime performance scales near linearly to the size of the graph (CPU bound)
  • 29. Discussion ● No fault tolerance for master is mentioned in the paper (Probably Paxos or replication). ● Static partitioning! What happens if a worker is too slow? ● Dynamic partitioning, network overhead for reassigning vertices and state. ● Good for sparse graph. But communication overhead for dense graph can bring the system down to knees.