[論文レビュー] Scalable Analytics over Distributed Time-series Graphs using GoFFish
この論文では、時間的変化する属性を持つトポロジーがゆっくり変化する時間系列グラフのスケーラブルな分析を可能にする分散分析プラットフォーム、GoFFishを紹介する。GoFFishは、部分グラフ中心の反復的バッチ同期並列(iBSP)プログラミングモデルと、特別に設計された分散ストレージシステムであるGoFSを統合している。時間的パッケージング、部分グラフのビニング、キャッシュ化が、大規模な時間系列グラフにおけるI/Oオーバーヘッドを顕著に低減し、性能を向上させることを示している。最適化されたiBSP SSSPワークロードでは、計算がボトルネックとなり、I/Oがボトルネックではなくなることが確認された。
Graphs are a key form of Big Data, and performing scalable analytics over them is invaluable to many domains. As our ability to collect data grows, there is an emerging class of inter-connected data which accumulates or varies over time, and on which novel analytics - both over the network structure and across the time-variant attribute values - is necessary. We introduce the notion of time-series graph analytics and propose Gopher, a scalable programming abstraction to develop algorithms and analytics on such datasets. Our abstraction leverages a sub-graph centric programming model and extends it to the temporal dimension using an iterative BSP (Bulk Synchronous Parallel) approach. Gopher is co-designed with GoFS, a distributed storage specialized for time-series graphs, as part of the GoFFish distributed analytics platform. We examine storage optimizations for GoFS, design patterns in Gopher to leverage the distributed data layout, and evaluate the GoFFish platform using time-series graph data and applications on a commodity cluster.
研究の動機と目的
- 時間的変化する属性を持つが、トポロジーはゆっくり変化する時間系列グラフに対するスケーラブルな分析ニーズに対応すること。
- 複数のタイムスタンプにおけるトポロジー構造と時間変動する属性値を捉える時間系列グラフモデルを形式化すること。
- 時間系列グラフ上の部分グラフ中心の反復的分散分析を可能にする、Gopherと呼ばれる反復的BSP抽象化の設計および実装。
- 時間系列グラフのレイアウトに最適化された分散ストレージシステムであるGoFSを共同で設計し、効率的なI/Oとデータローカリティを実現すること。
- 実世界のワークロード(例:時間的SSSP)を用いてGoFFishプラットフォームを実験的に評価し、ストレージおよび実行最適化による性能向上を示すこと。
提案手法
- 静的テンプレートがトポロジーを定義し、複数のインスタンスが異なるタイムスタンプにおける時間的変動する属性値を保持する時間系列グラフモデルを提案する。
- 部分グラフ中心のiBSPプログラミング抽象化であるGopherを導入し、時間系列グラフインスタンス全体にわたる反復的で分散可能な分析を可能にする。
- グラフ指向のファイルシステムであるGoFSを設計し、トポロジーごとにグラフをパーティショニングし、時間系列インスタンスを部分グラフごとにグループ化し、属性-値ペアを効率的に格納する。
- 複数の時間インスタンスを同じディスクスライスにまとめる時間的パッケージングを採用し、I/O遅延を低減し、データローカリティを向上させる。
- 関連する部分グラフをグループ化することで、分散実行中のI/O操作回数を削減する部分グラフビニングを適用する。
- 頻繁にアクセスされるデータを事前にフェッチするキャッシュ戦略を統合し、ディスクI/Oを最小限に抑え、反復的ワークロードの性能を向上させる。
実験結果
リサーチクエスチョン
- RQ1静的トポロジーと動的属性値を併せ持つ時間系列グラフにおける、分散分析のためのスケーラブルなプログラミングモデルをどのように設計できるか?
- RQ2コンmodityクラスタ上での時間系列グラフワークロードにおいて、I/Oオーバーヘッドを低減するためのストレージ最適化として、どのような手法が最も効果的か?
- RQ3時間的パッケージング、部分グラフビニング、キャッシュ化の3つが、反復的グラフ分析の性能向上にどのように作用し合うか?
- RQ4部分グラフ中心の実行を特徴とするiBSPモデルは、時間系列データ処理において、従来のグラフ処理モデルをどの程度上回るか?
- RQ5ストレージレイアウト最適化と分散実行を組み合わせた場合、時間的SSSPのような実世界ワークロードにおける性能への影響はどの程度か?
主な発見
- 1スライスあたり20インスタンスの時間的パッケージングは、80個以上のインスタンスを持つ部分グラフにおいて、非パッケージングより優れた性能を示し、パッケージングが有効になる性能クロスオーバー点があることを示している。
- 20のビンを使用した部分グラフビニングは、40ビンよりも顕著な性能向上を示し、特に時間的パッケージングとキャッシュ化と組み合わせた場合に顕著である。
- キャッシュ化によりI/Oオーバーヘッドが顕著に低減され、キャッシュありバージョン(s20-i20-c14)はキャッシュなしバージョン(s20-i20-c0)と比べてほぼ3倍の性能を達成した。
- iBSP SSSP実装は、I/Oがボトルネックではなく、計算がボトルネックとなることが確認され、ストレージ最適化がI/O遅延を効果的に隠蔽していることが示された。
- 時間的パッケージング、部分グラフビニング、キャッシュ化の組み合わせが最良の性能をもたらし、最適な設定下では、読み込まれるディスクスライスの累積数が顕著に減少した。
- GoFFishプラットフォームは、GopherやGoFSのようなストレージに配慮したプログラミング抽象化が、データローカリティを活用し、I/Oを低減することで、大規模な時間系列グラフ分析を効率的に行えることを示している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。