2. • GLog: A High Level Graph Analysis
System Using MapReduce
• MapReduce ジョブに変換可能なグラフ分析言語
GLog の提案
• Continuous Pattern Detection over
Billion-Edge Graph Using Distributed
Framework
• 変化するグラフに対するグラフパターンマッチを Giraph
上で行う近似解法の提案
• How to Partition a Billion-Node Graph
• 実世界のグラフを分割するためのスケーラブルなアルゴリ
ズムの提案
2
3. • GLog: A High Level Graph Analysis
System Using MapReduce
• MapReduce ジョブに変換可能なグラフ分析言語
GLog の提案
• Continuous Pattern Detection over
Billion-Edge Graph Using Distributed
Framework
• 変化するグラフに対するグラフパターンマッチを Giraph
上で行う近似解法の提案
• How to Partition a Billion-Node Graph
• 実世界のグラフを分割するためのスケーラブルなアルゴリ
ズムの提案
3
4. GLog: A High Level Graph
Analysis System Using MapReduce
Jun Gao, Jiashuai Zhou, Chang Zhou and Jeffrey Xu Yu
• グラフ分析言語を使ってグラフ分散処理を効率的に記
述したい
• Well-accepted な既存言語はない
• 簡潔で表現力が高いグラフ分析言語 GLog を提案
• GLog 用のデータ形式として RG テーブルも提案
• GLog クエリは最適化して MapReduce ジョブに変換
• Pig より短く書ける上に 1.3~5.8 倍高速
4
23. • GLog: A High Level Graph Analysis
System Using MapReduce
• MapReduce ジョブに変換可能なグラフ分析言語
GLog の提案
• Continuous Pattern Detection over
Billion-Edge Graph Using Distributed
Framework
• 変化するグラフに対するグラフパターンマッチを Giraph
上で行う近似解法の提案
• How to Partition a Billion-Node Graph
• 実世界のグラフを分割するためのスケーラブルなアルゴリ
ズムの提案
23
27. パターン検出アルゴリズムの基本アイデア
• グラフ上でメッセージを流す
• メッセージには通過した頂点の情報が含まれる
• クエリと同じラベルの頂点を同じ順序で辿った部分がマッチ
• ‘Sink’ の頂点に全経路からのメッセージが集まったら全体がマッ
チしたということ
• Sink はクエリパターンの中から適当に決める
a0
b0
c0
d0
a1
b1
c1
a2
d1 c3
e0 d3
a3 a4
c2 d4
Graph
これをどう
検出するか?
a e
b d
c
c
a d
a d
c
Query
0 1
2
3
4
5 6
7 8
9 10
27
Sink
Sink
28. Transition Rule によるパターン検出
• Transition rule で「クエリと同じラベルの頂点を同じ順序で
辿った」ことを検出する
• ルールに従って配送されたメッセージが sink に揃ったらマッチ
a0
b0
c0
d0
a1
b1
c1
a2
d1 c3
e0 d3
a3 a4
c2 d4
GraphTransition
Rules
頂点へ
割当て生成
a e
b d
c
c
a d
a d
c
Query
0 1
2
3
4
5 6
7 8
9 10
自身のラベルが a のとき、ラベル d の頂点からメッセー
ジを受け取ったら、隣接するラベル c の頂点へ転送
28
ルール例:
33. • GLog: A High Level Graph Analysis
System Using MapReduce
• MapReduce ジョブに変換可能なグラフ分析言語
GLog の提案
• Continuous Pattern Detection over
Billion-Edge Graph Using Distributed
Framework
• 変化するグラフに対するグラフパターンマッチを Giraph
上で行う近似解法の提案
• How to Partition a Billion-Node
Graph
• 実世界のグラフを分割するためのスケーラブルなアルゴリ
ズムの提案
33
34. How to Partition
a Billion-Node Graph
Lu Wang, Yanghua Xiao, Bin Shao, Haixun Wang
• 実世界の大規模グラフを分散メモリ環境で分割したい
• 分散処理時の効率的な負荷分散のため
• Multilevel label propagation (MLP) を提案
• Label propagation (LP) でノードを集約してから
METIS で分割
• Trinity 上に MLP を実装し評価
• 逐次実行 (METIS 比):
エッジカット最大2倍増 (悪化)、最大約30倍高速化
• 8ノード実行:
6.5B edges のグラフを約4時間で分割
34