SlideShare a Scribd company logo
Tegra: Time-evolving Graph Processing
on Commodity Clusters
Anand Iyer, Ion Stoica
Presented by Ankur Dave
Graphs are everywhere…
Social Networks
Graphs are everywhere…
Gnutella network subgraph
Graphs are everywhere…
Graphs are everywhere…
Metabolic network of a single cell organism Tuberculosis
Plenty of interest in processing them
• Graph DBMS 25% of all enterprises by 20171
• Many open-source and research prototypes on distributed
graph processing frameworks: Giraph, Pregel, GraphLab,
Chaos, GraphX, …
1Forrester Research
Real-world Graphs are Dynamic
Many interesting business and research insights
possible by processing them…
…but little work on incrementally updating
computation results or on window-based operations
A Motivating Example…
A Motivating Example…
A Motivating Example…
Retrieve the network state when a disruption happened
Analyze the evolution of hotspot groups in the last day by hour
Track regions of heavy load in the last 10 minutes
What factors explain the performance in the network?
Tegra
How do we perform efficient computations on
time-evolving, dynamically changing graphs?
Goals
• Create and manage time-evolving graphs
• Retrieve the network state when a disruption happened
• Temporal analytics on windows
• Analyze the evolution of hotspot groups in the last day by hour
• Sliding window computations
• Track regions of heavy load in the last 10 minutes interval
• Mix graph and data parallel computing
• What factors explain the performance in the network
Tegra
Graph Snapshot
Index
Timelapse Abstraction
Lightweight
Incremental
Computations
→ →
Pause-Shift-Resume
Computations
→ →
Goals
• Create and manage time-evolving graphs using Graph
Snapshot Index
• Retrieve the network state when a disruption happened
• Temporal analytics on windows
• Analyze the evolution of hotspot groups in the last day by hour
• Sliding window computations
• Track regions of heavy load in the last 10 minutes interval
• Mix graph and data parallel computing
• What factors explain the performance in the network
Representing Evolving Graphs
Time
A
B C
G1
A
B C
δg1
A D
δg2
C
D
E
δg3
A
B C
D
G2
A
B C
D
E
G3
Snapshots
Updates
E
D
D
A
D
C
E
C
D
A
remove add add add add
Graph Composition
Updating graphs depend on application semantics
A
B C
D
G2
A
B C
D
E
G3’
C
D
E
δg
A
+ =
Maintaining Multiple Snapshots
Store entire
snapshots
A
B C
G1
A
B C
D
G2
A
B C
D
E
G3
+ Efficient retrieval
- Storage overhead
Store only deltas
A
B C
δg1
A D
δg2
C
D
E
δg3
+ Efficient storage
- Retrieval overhead
Maintaining Multiple Snapshots
Snapshot 2Snapshot 1
t1 t2
Use a structure-sharing persistent
data-structure.
Persistent Adaptive Radix Tree (PART)
is one solution available for Spark.
Graph Snapshot Index
Snapshot 2Snapshot 1
Vertex
t1 t2
Snapshot 2Snapshot 1
t1 t2
Edge
Partition
Snapshot ID Management
Graph Windowing
A
B C
G1
A
B C
D
G2
A
B C
D
E
G3
A
C
D
E
G4
G’1=	G3 G’2=	G4- G1
Equivalent	to	GraphReduce() in	GraphLINQ,	GraphReduceByWindow()in	CellIQ
G’2=	G’1+	δg4	- δg1
G’1=	δg1	+	δg2 +	δg3
A
B C
δg1
A D
δg2
C
D
E
δg3
B
δg4
Goals
• Create and manage time-evolving graphs using
Distributed Graph Snapshot Index
• Retrieve the network state when a disruption happened
• Temporal analytics on windows using Timelapse
Abstraction
• Analyze the evolution of hotspot groups in the last day by hour
• Sliding window computations
• Track regions of heavy load in the last 10 minutes interval
• Mix graph and data parallel computing
• What factors explain the performance in the network
Graph Parallel Computation
Many approaches
• Vertex centric, edge centric, subgraph centric, …
Timelapse
Operations on windows of snapshots result in redundant
computation
A
B C
A
B C
D A
B C
D
E
Time
G1 G2 G3
Timelapse
A
B C
A
B C
D A
B C
D
E
Time
G1 G2 G3
D
BCBA
AAA
B C
D
E
• Significant reduction in messages exchanged
between graph nodes
• Avoids redundant computations
Instead, expose the temporal evolution of a node
Timelapse API
B C
A D
F E
A DD
B C
D
E
AA
F
B C
A D
F E
A DD
B C
D
E
AA
F
Transition
(0.977, 0.968)
(X ,Y): X is 10 iteration PageRank
Y is 23 iteration PageRank
After 11 iteration on graph 2,
Both converge to 3-digit precision
(0.977, 0.968)(0.571, 0.556)
1.224
0.8490.502
(2.33, 2.39)
2.07
0.8490.502
(0.571, 0.556)(0.571, 0.556)
8: Example showing the benefit of PSR computation.
ing master program. For each iteration of Pregel,
ck for the availability of a new graph. When it
able, we stop the iterations on the current graph,
ume resume it on the new graph after copying
e computed results. The new computation will
ve vertices in the new active set continue message
. The new active set is a function of the old active
the changes between the new graph and the old
For a large class of algorithms (e.g. incremental
nk [19]), the new active set includes vertices from
active set, any new vertices and vertices with
dditions and deletions. Listing 2 shows a simple
class Graph[V, E] {
// Collection views
def vertices(sid: Int): Collection[(Id, V)]
def edges(sid: Int): Collection[(Id, Id, E)]
def triplets(sid: Int): Collection[Triplet]
// Graph-parallel computation
def mrTriplets(f: (Triplet) => M,
sum: (M, M) => M,
sids: Array[Int]): Collection[(Int, Id, M)]
// Convenience functions
def mapV(f: (Id, V) => V,
sids: Array[Int]): Graph[V, E]
def mapE(f: (Id, Id, E) => E
sids: Array[Int]): Graph[V, E]
def leftJoinV(v: Collection[(Id, V)],
f: (Id, V, V) => V,
sids: Array[Int]): Graph[V, E]
def leftJoinE(e: Collection[(Id, Id, E)],
f: (Id, Id, E, E) => E,
sids: Array[Int]): Graph[V, E]
def subgraph(vPred: (Id, V) => Boolean,
ePred: (Triplet) => Boolean,
sids: Array[Int]): Graph[V, E]
def reverse(sids: Array[Int]): Graph[V, E]
}
Listing 3: GraphX [24] operators modified to support Tegra’s
Temporal Operations
Evolution analysis with no state keeping requirements
Bulk Transformations
A
B C
A
B C
D A
B C
D
E
A
B C
A
B C
D A
B C
D
E
Bulk Iterative Computations
A
B C
A
B C
D A
B C
D
E
A
A A
A
A A
A A
A A
A
A
How did the hotspots change over this window?
Goals
• Create and manage time-evolving graphs using
Distributed Graph Snapshot Index
• Retrieve the network state when a disruption happened
• Temporal analytics on windows using Timelapse
Abstraction
• Analyze the evolution of hotspot groups in the last day by hour
• Sliding window computations
• Track regions of heavy load in the last 10 minutes interval
• Mix graph and data parallel computing
• What factors explain the performance in the network
Incremental Computation
• If results from a previous snapshot is available, how can we
reuse them?
• Three approaches in the past:
• Restart the algorithm
• Redundant computations
• Memoization (GraphInc1)
• Too much state
• Operator-wise state (Naiad2,3)
• Too much overhead
1Facilitating real- time graph mining, CloudDB ’12
2 Naiad: A timely dataflow system, SOSP ’13
3 Differential dataflow, CIDR ‘13
Incremental Computation
A
B C
D
G1
A
B C
D
E
G2
A
B C
D A
A B
A A
A A
A
A
B C
D
E
A
A B
A
C
A
A A
A
A
Time
→ →
• Can keep state as an efficient time-evolving graph
• Not limited to vertex-centric computations
Incremental Computation
• Some iterative graph algorithms are robust to
graph changes
• Allow them to proceed without keeping any state
A
D E
B
C
0.5570.557
0.5570.557
2.37
A
D E
B
C B
0.5570.557
0.5570.557
2.37 0
A
D E
B
C
0.8470.507
0.8470.507
2.07 B 1.2
→
Goals
• Create and manage time-evolving graphs using
Distributed Graph Snapshot Index
• Retrieve the network state when a disruption happened
• Temporal analytics on windows using Timelapse
Abstraction
• Analyze the evolution of hotspot groups in the last day by hour
• Sliding window computations
• Track regions of heavy load in the last 10 minutes interval
• Mix graph and data parallel computing
• What factors explain the performance in the network
Implementation & Evaluation
• Implemented as a major enhancement to GraphX
• Evaluated on two open source real-world graphs
• Twitter: 41,652,230 vertices, 1,468,365,182 edges
• uk-2007: 105,896,555 vertices, 3,738,733,648 edges
Preliminary Evaluation
����
��
����
��
����
��
����
��
����
�� �� �� �� �� �� �� �� �� ���
�������������������
�������������
�����������������������������
�������
����������
Tegra can pack more snapshots in memory
Linear	reduction
Graph	difference	significant
Preliminary Evaluation
��
����
��
����
��
����
��
�� �� �� �� ��
�����������������
�������������
�������������������������
�������
����������
Timelapse results in run time reduction
Preliminary Evaluation
Effectiveness of incremental computation
220
45
34 35 37
0
50
100
150
200
250
1 2 3 4 5
ConvergenceTime(s)
Snapshot #
Summary
• Processing time-evolving graph efficiently can be useful.
• Efficient storage of multiple snapshots and reducing
communication between graph nodes key to evolving graph
analysis.
Ongoing Work
• Expand timelapse and its incremental computation model to other
graph-parallel paradigms
• Other interesting graph algorithms:
• Fraud detection/prediction/incremental pattern matching
• Add graph querying support
• Graph queries and analytics in a single system
• Stay tuned for code release!

More Related Content

What's hot (20)

PDF
A More Scaleable Way of Making Recommendations with MLlib-(Xiangrui Meng, Dat...
Spark Summit
 
PDF
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
MLconf
 
PPTX
TensorFrames: Google Tensorflow on Apache Spark
Databricks
 
PDF
Sketching Data with T-Digest In Apache Spark: Spark Summit East talk by Erik ...
Spark Summit
 
PDF
Flare: Scale Up Spark SQL with Native Compilation and Set Your Data on Fire! ...
Databricks
 
PPTX
A Scaleable Implementation of Deep Learning on Spark -Alexander Ulanov
Spark Summit
 
PDF
Sebastian Schelter – Distributed Machine Learing with the Samsara DSL
Flink Forward
 
PDF
Dynamic Community Detection for Large-scale e-Commerce data with Spark Stream...
Spark Summit
 
PDF
Large-Scale Lasso and Elastic-Net Regularized Generalized Linear Models (DB T...
Spark Summit
 
PPTX
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15
MLconf
 
PDF
Joey gonzalez, graph lab, m lconf 2013
MLconf
 
PDF
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...
Spark Summit
 
PDF
A Scalable Hierarchical Clustering Algorithm Using Spark: Spark Summit East t...
Spark Summit
 
PPTX
Online learning with structured streaming, spark summit brussels 2016
Ram Sriharsha
 
PDF
Lazy Join Optimizations Without Upfront Statistics with Matteo Interlandi
Databricks
 
PDF
MapReduce Algorithm Design
Gabriela Agustini
 
PDF
Challenging Web-Scale Graph Analytics with Apache Spark with Xiangrui Meng
Databricks
 
PDF
Machine learning at scale with Google Cloud Platform
Matthias Feys
 
PDF
Lessons Learned while Implementing a Sparse Logistic Regression Algorithm in ...
Spark Summit
 
PDF
Generalized Linear Models in Spark MLlib and SparkR
Databricks
 
A More Scaleable Way of Making Recommendations with MLlib-(Xiangrui Meng, Dat...
Spark Summit
 
Ehtsham Elahi, Senior Research Engineer, Personalization Science and Engineer...
MLconf
 
TensorFrames: Google Tensorflow on Apache Spark
Databricks
 
Sketching Data with T-Digest In Apache Spark: Spark Summit East talk by Erik ...
Spark Summit
 
Flare: Scale Up Spark SQL with Native Compilation and Set Your Data on Fire! ...
Databricks
 
A Scaleable Implementation of Deep Learning on Spark -Alexander Ulanov
Spark Summit
 
Sebastian Schelter – Distributed Machine Learing with the Samsara DSL
Flink Forward
 
Dynamic Community Detection for Large-scale e-Commerce data with Spark Stream...
Spark Summit
 
Large-Scale Lasso and Elastic-Net Regularized Generalized Linear Models (DB T...
Spark Summit
 
Braxton McKee, Founder & CEO, Ufora at MLconf SF - 11/13/15
MLconf
 
Joey gonzalez, graph lab, m lconf 2013
MLconf
 
Ernest: Efficient Performance Prediction for Advanced Analytics on Apache Spa...
Spark Summit
 
A Scalable Hierarchical Clustering Algorithm Using Spark: Spark Summit East t...
Spark Summit
 
Online learning with structured streaming, spark summit brussels 2016
Ram Sriharsha
 
Lazy Join Optimizations Without Upfront Statistics with Matteo Interlandi
Databricks
 
MapReduce Algorithm Design
Gabriela Agustini
 
Challenging Web-Scale Graph Analytics with Apache Spark with Xiangrui Meng
Databricks
 
Machine learning at scale with Google Cloud Platform
Matthias Feys
 
Lessons Learned while Implementing a Sparse Logistic Regression Algorithm in ...
Spark Summit
 
Generalized Linear Models in Spark MLlib and SparkR
Databricks
 

Viewers also liked (20)

PDF
Re-Architecting Spark For Performance Understandability
Jen Aman
 
PDF
RISELab:Enabling Intelligent Real-Time Decisions
Jen Aman
 
PDF
Spark And Cassandra: 2 Fast, 2 Furious
Jen Aman
 
PDF
Livy: A REST Web Service For Apache Spark
Jen Aman
 
PDF
Spark on Mesos
Jen Aman
 
PDF
Yggdrasil: Faster Decision Trees Using Column Partitioning In Spark
Jen Aman
 
PDF
Spark at Bloomberg: Dynamically Composable Analytics
Jen Aman
 
PDF
Low Latency Execution For Apache Spark
Jen Aman
 
PDF
Spark Uber Development Kit
Jen Aman
 
PDF
Big Data in Production: Lessons from Running in the Cloud
Jen Aman
 
PDF
GPU Computing With Apache Spark And Python
Jen Aman
 
PDF
Elasticsearch And Apache Lucene For Apache Spark And MLlib
Jen Aman
 
PDF
Large Scale Deep Learning with TensorFlow
Jen Aman
 
PDF
Re-Architecting Spark For Performance Understandability
Jen Aman
 
PDF
Vskills certified html5 developer Notes
Vskills
 
PPTX
Solution Architecture Cassandra
Sandeep Sharma IIMK Smart City,IoT,Bigdata,Cloud,BI,DW
 
PDF
Deploying Accelerators At Datacenter Scale Using Spark
Jen Aman
 
PPTX
Amazon Redshift Analytical functions
Sandeep Sharma IIMK Smart City,IoT,Bigdata,Cloud,BI,DW
 
DOCX
Cassandra data modelling best practices
Sandeep Sharma IIMK Smart City,IoT,Bigdata,Cloud,BI,DW
 
PDF
Spark and Couchbase: Augmenting the Operational Database with Spark
Spark Summit
 
Re-Architecting Spark For Performance Understandability
Jen Aman
 
RISELab:Enabling Intelligent Real-Time Decisions
Jen Aman
 
Spark And Cassandra: 2 Fast, 2 Furious
Jen Aman
 
Livy: A REST Web Service For Apache Spark
Jen Aman
 
Spark on Mesos
Jen Aman
 
Yggdrasil: Faster Decision Trees Using Column Partitioning In Spark
Jen Aman
 
Spark at Bloomberg: Dynamically Composable Analytics
Jen Aman
 
Low Latency Execution For Apache Spark
Jen Aman
 
Spark Uber Development Kit
Jen Aman
 
Big Data in Production: Lessons from Running in the Cloud
Jen Aman
 
GPU Computing With Apache Spark And Python
Jen Aman
 
Elasticsearch And Apache Lucene For Apache Spark And MLlib
Jen Aman
 
Large Scale Deep Learning with TensorFlow
Jen Aman
 
Re-Architecting Spark For Performance Understandability
Jen Aman
 
Vskills certified html5 developer Notes
Vskills
 
Deploying Accelerators At Datacenter Scale Using Spark
Jen Aman
 
Amazon Redshift Analytical functions
Sandeep Sharma IIMK Smart City,IoT,Bigdata,Cloud,BI,DW
 
Cassandra data modelling best practices
Sandeep Sharma IIMK Smart City,IoT,Bigdata,Cloud,BI,DW
 
Spark and Couchbase: Augmenting the Operational Database with Spark
Spark Summit
 
Ad

Similar to Time-Evolving Graph Processing On Commodity Clusters (20)

PPTX
Architectural Optimizations for High Performance and Energy Efficient Smith-W...
NECST Lab @ Politecnico di Milano
 
PDF
An35225228
IJERA Editor
 
PPTX
Graph processing
yeahjs
 
PPTX
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...
MLconf
 
PPTX
Large-scale Recommendation Systems on Just a PC
Aapo Kyrölä
 
PPSX
matrixmultiplicationparallel.ppsx
Bharathi Lakshmi Pon
 
PPSX
MAtrix Multiplication Parallel.ppsx
BharathiLakshmiAAssi
 
PPTX
Pregel
Weiru Dai
 
PPTX
A Highly Parallel Semi-Dataflow FPGA Architecture for Large-Scale N-Body Simu...
NECST Lab @ Politecnico di Milano
 
PDF
Introduction to Big Data
Albert Bifet
 
PPT
CS 354 Transformation, Clipping, and Culling
Mark Kilgard
 
PDF
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
MLconf
 
PDF
Tutorial-on-DNN-09A-Co-design-Sparsity.pdf
Duy-Hieu Bui
 
PDF
ICIAM 2019: A New Algorithm Model for Massive-Scale Streaming Graph Analysis
Jason Riedy
 
PPT
Short.course.introduction.to.vhdl for beginners
Ravi Sony
 
PDF
Detecting Lateral Movement with a Compute-Intense Graph Kernel
Data Works MD
 
PDF
GraphChi big graph processing
huguk
 
PDF
A Multicore Parallelization of Continuous Skyline Queries on Data Streams
Tiziano De Matteis
 
PDF
Optimization of graph storage using GoFFish
Anushree Prasanna Kumar
 
PDF
GoFFish - A Sub-graph centric framework for large scale graph analytics
charithwiki
 
Architectural Optimizations for High Performance and Energy Efficient Smith-W...
NECST Lab @ Politecnico di Milano
 
An35225228
IJERA Editor
 
Graph processing
yeahjs
 
Hanjun Dai, PhD Student, School of Computational Science and Engineering, Geo...
MLconf
 
Large-scale Recommendation Systems on Just a PC
Aapo Kyrölä
 
matrixmultiplicationparallel.ppsx
Bharathi Lakshmi Pon
 
MAtrix Multiplication Parallel.ppsx
BharathiLakshmiAAssi
 
Pregel
Weiru Dai
 
A Highly Parallel Semi-Dataflow FPGA Architecture for Large-Scale N-Body Simu...
NECST Lab @ Politecnico di Milano
 
Introduction to Big Data
Albert Bifet
 
CS 354 Transformation, Clipping, and Culling
Mark Kilgard
 
Alex Smola, Professor in the Machine Learning Department, Carnegie Mellon Uni...
MLconf
 
Tutorial-on-DNN-09A-Co-design-Sparsity.pdf
Duy-Hieu Bui
 
ICIAM 2019: A New Algorithm Model for Massive-Scale Streaming Graph Analysis
Jason Riedy
 
Short.course.introduction.to.vhdl for beginners
Ravi Sony
 
Detecting Lateral Movement with a Compute-Intense Graph Kernel
Data Works MD
 
GraphChi big graph processing
huguk
 
A Multicore Parallelization of Continuous Skyline Queries on Data Streams
Tiziano De Matteis
 
Optimization of graph storage using GoFFish
Anushree Prasanna Kumar
 
GoFFish - A Sub-graph centric framework for large scale graph analytics
charithwiki
 
Ad

More from Jen Aman (15)

PPTX
Deep Learning and Streaming in Apache Spark 2.x with Matei Zaharia
Jen Aman
 
PDF
Snorkel: Dark Data and Machine Learning with Christopher Ré
Jen Aman
 
PDF
Deep Learning on Apache® Spark™: Workflows and Best Practices
Jen Aman
 
PDF
Deep Learning on Apache® Spark™ : Workflows and Best Practices
Jen Aman
 
PDF
Spatial Analysis On Histological Images Using Spark
Jen Aman
 
PDF
Efficient State Management With Spark 2.0 And Scale-Out Databases
Jen Aman
 
PDF
Building Custom Machine Learning Algorithms With Apache SystemML
Jen Aman
 
PDF
EclairJS = Node.Js + Apache Spark
Jen Aman
 
PDF
Spark: Interactive To Production
Jen Aman
 
PDF
High-Performance Python On Spark
Jen Aman
 
PDF
Scalable Deep Learning Platform On Spark In Baidu
Jen Aman
 
PDF
Scaling Machine Learning To Billions Of Parameters
Jen Aman
 
PDF
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...
Jen Aman
 
PDF
Temporal Operators For Spark Streaming And Its Application For Office365 Serv...
Jen Aman
 
PDF
Utilizing Human Data Validation For KPI Analysis And Machine Learning
Jen Aman
 
Deep Learning and Streaming in Apache Spark 2.x with Matei Zaharia
Jen Aman
 
Snorkel: Dark Data and Machine Learning with Christopher Ré
Jen Aman
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Jen Aman
 
Deep Learning on Apache® Spark™ : Workflows and Best Practices
Jen Aman
 
Spatial Analysis On Histological Images Using Spark
Jen Aman
 
Efficient State Management With Spark 2.0 And Scale-Out Databases
Jen Aman
 
Building Custom Machine Learning Algorithms With Apache SystemML
Jen Aman
 
EclairJS = Node.Js + Apache Spark
Jen Aman
 
Spark: Interactive To Production
Jen Aman
 
High-Performance Python On Spark
Jen Aman
 
Scalable Deep Learning Platform On Spark In Baidu
Jen Aman
 
Scaling Machine Learning To Billions Of Parameters
Jen Aman
 
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...
Jen Aman
 
Temporal Operators For Spark Streaming And Its Application For Office365 Serv...
Jen Aman
 
Utilizing Human Data Validation For KPI Analysis And Machine Learning
Jen Aman
 

Recently uploaded (20)

PDF
Development and validation of the Japanese version of the Organizational Matt...
Yoga Tokuyoshi
 
PPTX
apidays Helsinki & North 2025 - Running a Successful API Program: Best Practi...
apidays
 
PDF
apidays Singapore 2025 - Trustworthy Generative AI: The Role of Observability...
apidays
 
PPTX
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
PDF
Simplifying Document Processing with Docling for AI Applications.pdf
Tamanna
 
PPTX
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
PDF
OOPs with Java_unit2.pdf. sarthak bookkk
Sarthak964187
 
PDF
Using AI/ML for Space Biology Research
VICTOR MAESTRE RAMIREZ
 
PPTX
apidays Singapore 2025 - Designing for Change, Julie Schiller (Google)
apidays
 
PDF
OPPOTUS - Malaysias on Malaysia 1Q2025.pdf
Oppotus
 
PPTX
apidays Helsinki & North 2025 - From Chaos to Clarity: Designing (AI-Ready) A...
apidays
 
PPTX
apidays Helsinki & North 2025 - API access control strategies beyond JWT bear...
apidays
 
PDF
apidays Singapore 2025 - How APIs can make - or break - trust in your AI by S...
apidays
 
PDF
Research Methodology Overview Introduction
ayeshagul29594
 
PDF
Driving Employee Engagement in a Hybrid World.pdf
Mia scott
 
PPTX
Exploring Multilingual Embeddings for Italian Semantic Search: A Pretrained a...
Sease
 
PDF
Product Management in HealthTech (Case Studies from SnappDoctor)
Hamed Shams
 
PDF
JavaScript - Good or Bad? Tips for Google Tag Manager
📊 Markus Baersch
 
PPT
Growth of Public Expendituuure_55423.ppt
NavyaDeora
 
PDF
apidays Singapore 2025 - From API Intelligence to API Governance by Harsha Ch...
apidays
 
Development and validation of the Japanese version of the Organizational Matt...
Yoga Tokuyoshi
 
apidays Helsinki & North 2025 - Running a Successful API Program: Best Practi...
apidays
 
apidays Singapore 2025 - Trustworthy Generative AI: The Role of Observability...
apidays
 
Module-5-Measures-of-Central-Tendency-Grouped-Data-1.pptx
lacsonjhoma0407
 
Simplifying Document Processing with Docling for AI Applications.pdf
Tamanna
 
apidays Helsinki & North 2025 - APIs at Scale: Designing for Alignment, Trust...
apidays
 
OOPs with Java_unit2.pdf. sarthak bookkk
Sarthak964187
 
Using AI/ML for Space Biology Research
VICTOR MAESTRE RAMIREZ
 
apidays Singapore 2025 - Designing for Change, Julie Schiller (Google)
apidays
 
OPPOTUS - Malaysias on Malaysia 1Q2025.pdf
Oppotus
 
apidays Helsinki & North 2025 - From Chaos to Clarity: Designing (AI-Ready) A...
apidays
 
apidays Helsinki & North 2025 - API access control strategies beyond JWT bear...
apidays
 
apidays Singapore 2025 - How APIs can make - or break - trust in your AI by S...
apidays
 
Research Methodology Overview Introduction
ayeshagul29594
 
Driving Employee Engagement in a Hybrid World.pdf
Mia scott
 
Exploring Multilingual Embeddings for Italian Semantic Search: A Pretrained a...
Sease
 
Product Management in HealthTech (Case Studies from SnappDoctor)
Hamed Shams
 
JavaScript - Good or Bad? Tips for Google Tag Manager
📊 Markus Baersch
 
Growth of Public Expendituuure_55423.ppt
NavyaDeora
 
apidays Singapore 2025 - From API Intelligence to API Governance by Harsha Ch...
apidays
 

Time-Evolving Graph Processing On Commodity Clusters

  • 1. Tegra: Time-evolving Graph Processing on Commodity Clusters Anand Iyer, Ion Stoica Presented by Ankur Dave
  • 5. Graphs are everywhere… Metabolic network of a single cell organism Tuberculosis
  • 6. Plenty of interest in processing them • Graph DBMS 25% of all enterprises by 20171 • Many open-source and research prototypes on distributed graph processing frameworks: Giraph, Pregel, GraphLab, Chaos, GraphX, … 1Forrester Research
  • 7. Real-world Graphs are Dynamic Many interesting business and research insights possible by processing them… …but little work on incrementally updating computation results or on window-based operations
  • 10. A Motivating Example… Retrieve the network state when a disruption happened Analyze the evolution of hotspot groups in the last day by hour Track regions of heavy load in the last 10 minutes What factors explain the performance in the network?
  • 11. Tegra How do we perform efficient computations on time-evolving, dynamically changing graphs?
  • 12. Goals • Create and manage time-evolving graphs • Retrieve the network state when a disruption happened • Temporal analytics on windows • Analyze the evolution of hotspot groups in the last day by hour • Sliding window computations • Track regions of heavy load in the last 10 minutes interval • Mix graph and data parallel computing • What factors explain the performance in the network
  • 14. Goals • Create and manage time-evolving graphs using Graph Snapshot Index • Retrieve the network state when a disruption happened • Temporal analytics on windows • Analyze the evolution of hotspot groups in the last day by hour • Sliding window computations • Track regions of heavy load in the last 10 minutes interval • Mix graph and data parallel computing • What factors explain the performance in the network
  • 15. Representing Evolving Graphs Time A B C G1 A B C δg1 A D δg2 C D E δg3 A B C D G2 A B C D E G3 Snapshots Updates
  • 16. E D D A D C E C D A remove add add add add Graph Composition Updating graphs depend on application semantics A B C D G2 A B C D E G3’ C D E δg A + =
  • 17. Maintaining Multiple Snapshots Store entire snapshots A B C G1 A B C D G2 A B C D E G3 + Efficient retrieval - Storage overhead Store only deltas A B C δg1 A D δg2 C D E δg3 + Efficient storage - Retrieval overhead
  • 18. Maintaining Multiple Snapshots Snapshot 2Snapshot 1 t1 t2 Use a structure-sharing persistent data-structure. Persistent Adaptive Radix Tree (PART) is one solution available for Spark.
  • 19. Graph Snapshot Index Snapshot 2Snapshot 1 Vertex t1 t2 Snapshot 2Snapshot 1 t1 t2 Edge Partition Snapshot ID Management
  • 20. Graph Windowing A B C G1 A B C D G2 A B C D E G3 A C D E G4 G’1= G3 G’2= G4- G1 Equivalent to GraphReduce() in GraphLINQ, GraphReduceByWindow()in CellIQ G’2= G’1+ δg4 - δg1 G’1= δg1 + δg2 + δg3 A B C δg1 A D δg2 C D E δg3 B δg4
  • 21. Goals • Create and manage time-evolving graphs using Distributed Graph Snapshot Index • Retrieve the network state when a disruption happened • Temporal analytics on windows using Timelapse Abstraction • Analyze the evolution of hotspot groups in the last day by hour • Sliding window computations • Track regions of heavy load in the last 10 minutes interval • Mix graph and data parallel computing • What factors explain the performance in the network
  • 22. Graph Parallel Computation Many approaches • Vertex centric, edge centric, subgraph centric, …
  • 23. Timelapse Operations on windows of snapshots result in redundant computation A B C A B C D A B C D E Time G1 G2 G3
  • 24. Timelapse A B C A B C D A B C D E Time G1 G2 G3 D BCBA AAA B C D E • Significant reduction in messages exchanged between graph nodes • Avoids redundant computations Instead, expose the temporal evolution of a node
  • 25. Timelapse API B C A D F E A DD B C D E AA F B C A D F E A DD B C D E AA F Transition (0.977, 0.968) (X ,Y): X is 10 iteration PageRank Y is 23 iteration PageRank After 11 iteration on graph 2, Both converge to 3-digit precision (0.977, 0.968)(0.571, 0.556) 1.224 0.8490.502 (2.33, 2.39) 2.07 0.8490.502 (0.571, 0.556)(0.571, 0.556) 8: Example showing the benefit of PSR computation. ing master program. For each iteration of Pregel, ck for the availability of a new graph. When it able, we stop the iterations on the current graph, ume resume it on the new graph after copying e computed results. The new computation will ve vertices in the new active set continue message . The new active set is a function of the old active the changes between the new graph and the old For a large class of algorithms (e.g. incremental nk [19]), the new active set includes vertices from active set, any new vertices and vertices with dditions and deletions. Listing 2 shows a simple class Graph[V, E] { // Collection views def vertices(sid: Int): Collection[(Id, V)] def edges(sid: Int): Collection[(Id, Id, E)] def triplets(sid: Int): Collection[Triplet] // Graph-parallel computation def mrTriplets(f: (Triplet) => M, sum: (M, M) => M, sids: Array[Int]): Collection[(Int, Id, M)] // Convenience functions def mapV(f: (Id, V) => V, sids: Array[Int]): Graph[V, E] def mapE(f: (Id, Id, E) => E sids: Array[Int]): Graph[V, E] def leftJoinV(v: Collection[(Id, V)], f: (Id, V, V) => V, sids: Array[Int]): Graph[V, E] def leftJoinE(e: Collection[(Id, Id, E)], f: (Id, Id, E, E) => E, sids: Array[Int]): Graph[V, E] def subgraph(vPred: (Id, V) => Boolean, ePred: (Triplet) => Boolean, sids: Array[Int]): Graph[V, E] def reverse(sids: Array[Int]): Graph[V, E] } Listing 3: GraphX [24] operators modified to support Tegra’s
  • 26. Temporal Operations Evolution analysis with no state keeping requirements Bulk Transformations A B C A B C D A B C D E A B C A B C D A B C D E Bulk Iterative Computations A B C A B C D A B C D E A A A A A A A A A A A A How did the hotspots change over this window?
  • 27. Goals • Create and manage time-evolving graphs using Distributed Graph Snapshot Index • Retrieve the network state when a disruption happened • Temporal analytics on windows using Timelapse Abstraction • Analyze the evolution of hotspot groups in the last day by hour • Sliding window computations • Track regions of heavy load in the last 10 minutes interval • Mix graph and data parallel computing • What factors explain the performance in the network
  • 28. Incremental Computation • If results from a previous snapshot is available, how can we reuse them? • Three approaches in the past: • Restart the algorithm • Redundant computations • Memoization (GraphInc1) • Too much state • Operator-wise state (Naiad2,3) • Too much overhead 1Facilitating real- time graph mining, CloudDB ’12 2 Naiad: A timely dataflow system, SOSP ’13 3 Differential dataflow, CIDR ‘13
  • 29. Incremental Computation A B C D G1 A B C D E G2 A B C D A A B A A A A A A B C D E A A B A C A A A A A Time → → • Can keep state as an efficient time-evolving graph • Not limited to vertex-centric computations
  • 30. Incremental Computation • Some iterative graph algorithms are robust to graph changes • Allow them to proceed without keeping any state A D E B C 0.5570.557 0.5570.557 2.37 A D E B C B 0.5570.557 0.5570.557 2.37 0 A D E B C 0.8470.507 0.8470.507 2.07 B 1.2 →
  • 31. Goals • Create and manage time-evolving graphs using Distributed Graph Snapshot Index • Retrieve the network state when a disruption happened • Temporal analytics on windows using Timelapse Abstraction • Analyze the evolution of hotspot groups in the last day by hour • Sliding window computations • Track regions of heavy load in the last 10 minutes interval • Mix graph and data parallel computing • What factors explain the performance in the network
  • 32. Implementation & Evaluation • Implemented as a major enhancement to GraphX • Evaluated on two open source real-world graphs • Twitter: 41,652,230 vertices, 1,468,365,182 edges • uk-2007: 105,896,555 vertices, 3,738,733,648 edges
  • 33. Preliminary Evaluation ���� �� ���� �� ���� �� ���� �� ���� �� �� �� �� �� �� �� �� �� ��� ������������������� ������������� ����������������������������� ������� ���������� Tegra can pack more snapshots in memory Linear reduction Graph difference significant
  • 34. Preliminary Evaluation �� ���� �� ���� �� ���� �� �� �� �� �� �� ����������������� ������������� ������������������������� ������� ���������� Timelapse results in run time reduction
  • 35. Preliminary Evaluation Effectiveness of incremental computation 220 45 34 35 37 0 50 100 150 200 250 1 2 3 4 5 ConvergenceTime(s) Snapshot #
  • 36. Summary • Processing time-evolving graph efficiently can be useful. • Efficient storage of multiple snapshots and reducing communication between graph nodes key to evolving graph analysis.
  • 37. Ongoing Work • Expand timelapse and its incremental computation model to other graph-parallel paradigms • Other interesting graph algorithms: • Fraud detection/prediction/incremental pattern matching • Add graph querying support • Graph queries and analytics in a single system • Stay tuned for code release!