[論文レビュー] Graph Analytics using the Vertica Relational Database
この論文は、Vertica — 項目指向のリレーショナルデータベース — が、Giraph や GraphLab のような専用の頂点中心型システムと同等の性能を発揮できる、グラフ解析を効率的に行えることを示している。これは、ノードおよびエッジテーブルに対するテーブルスキャン、ジョイン、集約を含む SQL クエリとしてグラフアルゴリズムを表現することで達成される。リレーショナルデータベース、特に項目ストアは、反復的かつ複雑なグラフワークロードに適しており、リレーショナル操作とのシームレスな統合と ACID 性能を備えていることが示された。
Graph analytics is becoming increasingly popular, with a deluge of new systems for graph analytics having been proposed in the past few years. These systems often start from the assumption that a new storage or query processing system is needed, in spite of graph data being often collected and stored in a relational database in the first place. In this paper, we study Vertica relational database as a platform for graph analytics. We show that vertex-centric graph analysis can be translated to SQL queries, typically involving table scans and joins, and that modern column-oriented databases are very well suited to running such queries. Specifically, we present an experimental evaluation of the Vertica relational database system on a variety of graph analytics, including iterative analysis, a combination of graph and relational analyses, and more complex 1- hop neighborhood graph analytics, showing that it is competitive to two popular vertex-centric graph analytics systems, namely Giraph and GraphLab.
研究の動機と目的
- Vertica のようなリレーショナルデータベースが、専用のグラフシステムにデータを移動させることなく、グラフ解析を効率的に行えるかどうかを評価すること。
- 反復的かつ 1 ステップ近隣計算を含む複雑なグラフ解析が、SQL で効果的に表現され、最適化可能かどうかを調査すること。
- 標準的なグラフワークロードにおいて、Vertica と専用の頂点中心型グラフシステム(Giraph、GraphLab)のパフォーマンスを比較すること。
- 別々のシステムを用いる場合と比較して、1 つのシステム内でグラフ処理とリレーショナル操作を統合することで得られる利点を検討すること。
- RDBMS 機能(クエリ最適化、ACID 合致、拡張性など)が、スケーラブルなグラフ処理に活用可能かどうかを評価すること。
提案手法
- ノードおよびエッジテーブルに対するテーブルスキャン、自己結合、集約操作を用いて、頂点中心型グラフアルゴリズムを SQL クエリに変換すること。
- Vertica の項目ストレージ、圧縮、ソートに基づく物理最適化を活用し、グラフ解析で一般的なフルテーブルスキャンおよびマルチジョイン処理を高速化すること。
- 繰り返し処理のグラフアルゴリズムにおけるディスク I/O を削減し、パフォーマンスを向上させるために、メモリ管理とデータレイアウト制御を可能にするテーブル UDF(ユーザー定義関数)を活用すること。
- Vertica のクエリオプティマイザを用いて、中間結果を物性化しないパイプライン型でコストベースの実行計画を生成すること。
- トライアングルカウンティングや弱い縁の検出といった複雑なグラフパターンを、マルチジョイン SQL クエリとして表現することで、頂点中心型のメッセージ伝達モデルよりも自然で効率的な方法を実現すること。
- PageRank、最短経路、トライアングルカウンティング、近隣分析を含む複数のグラフワークロードにおいて、エンドツーエンドのパフォーマンスをベンチマークすること。
実験結果
リサーチクエスチョン
- RQ1Vertica のようなリレーショナルデータベースは、Giraph や GraphLab のような専用の頂点中心型グラフ処理システムと同等のパフォーマンスを達成できるか?
- RQ2特に 1 ステップ近隣領域や複数頂点間の関係を含む複雑なグラフ解析が、SQL でどの程度効果的に表現できるか?
- RQ31 つのシステム内でグラフ処理とリレーショナル操作を統合することで、別々のシステムを使用する場合と比較して、パフォーマンスと使いやすさがどの程度向上するか?
- RQ4項目ストレージとクエリ最適化は、RDBMS におけるグラフ解析ワークロードの高速化にどのような役割を果たすか?
- RQ5ACID 合致、障害耐性、トランザクションサポートといった RDBMS 機能は、パフォーマンスを犠牲にすることなく、グラフ処理に活用可能か?
主な発見
- Vertica は、PageRank や最短経路といった反復的アルゴリズムを含む、さまざまなグラフ解析ワークロードにおいて、Giraph や GraphLab と同等のエンドツーエンドのパフォーマンスを達成した。
- Vertica の項目ストレージによるパフォーマンス優位性は、トライアングルカウンティングにおける三重自己結合のような、フルテーブルスキャンおよびマルチジョイン処理に特に顕著に現れた。
- 1 ステップ近隣領域分析(例:弱い縁の検出)を SQL で表現した場合、頂点中心型モデルが複数のスーパステップとメッセージ伝達を必要とするのと比較して、はるかに効率的かつ実装が簡単であった。
- テーブル UDF の使用により、メモリ管理とデータレイアウト制御が可能になり、ディスク I/O が削減され、反復クエリのパフォーマンスが向上した。
- Vertica のクエリオプティマイザは、自動的に効率的でパイプライン型の実行計画を選択し、中間結果の物性化を回避した。その結果、Giraph のようなシステムで使用される静的実行計画を上回るパフォーマンスを発揮した。
- 1 つのシステム内でリレーショナル処理とグラフ処理を統合することで、データ移動のオーバーヘッドが排除され、フィルタリングや集約処理などの前処理・後処理がシームレスに可能になった。例えば、タイムスタンプによるエッジのフィルタリングや、結果の集約処理が容易になった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。