Skip to main content
QUICK REVIEW

[論文レビュー] Apache VXQuery: A Scalable XQuery Implementation

E. Preston Carman, Till Westmann|arXiv (Cornell University)|Apr 1, 2015
Cloud Computing and Resource Management参考文献 16被引用数 9
ひとこと要約

Apache VXQuery は、Hyracks と Algebricks に基づいて構築されたスケーラブルでオープンソースの XQuery プロセッサであり、大規模な XML データセット上で XQuery ワークロードを効率的な並列実行が可能である。単一ノード環境では Saxon より最大 3 倍の高速性能を達成し、クラスターデプロイでは Apache MRQL より 2.5 倍速く、パス式および結合処理のためのデータフロー型並列処理と高度な最適化ルールを活用している。

ABSTRACT

The wide use of XML for document management and data exchange has created the need to query large repositories of XML data. To efficiently query such large data collections and take advantage of parallelism, we have implemented Apache VXQuery, an open-source scalable XQuery processor. The system builds upon two other open-source frameworks -- Hyracks, a parallel execution engine, and Algebricks, a language agnostic compiler toolbox. Apache VXQuery extends these two frameworks and provides an implementation of the XQuery specifics (data model, data-model dependent functions and optimizations, and a parser). We describe the architecture of Apache VXQuery, its integration with Hyracks and Algebricks, and the XQuery optimization rules applied to the query plan to improve path expression efficiency and to enable query parallelism. An experimental evaluation using a real 500GB dataset with various selection, aggregation and join XML queries shows that Apache VXQuery performs well both in terms of scale-up and speed-up. Our experiments show that it is about 3x faster than Saxon (an open-source and commercial XQuery processor) on a 4-core, single node implementation, and around 2.5x faster than Apache MRQL (a MapReduce-based parallel query processor) on an eight (4-core) node cluster.

研究の動機と目的

  • 大規模な XML リポジトリを効率的に照会できる、スケーラブルで並列処理可能な XQuery プロセッサの不足を解消すること。
  • 現代のデータフロー実行エンジンを活用して並列処理と最適化を実現する高パフォーマンスな XQuery プロセッサを構築すること。
  • 既存のフレームワーク(Hyracks と Algebricks)に XQuery 専用のデータモデル、パーサー、最適化ルールを拡張すること。
  • 実世界の大規模な XML ワークロード(最大 500GB)における VXQuery のパフォーマンスを、スループットとスケーリングの観点から評価すること。
  • データフロー型アプローチが、Apache MRQL のような MapReduce 基盤の XQuery プロセッサを上回ることを実証すること。

提案手法

  • XQuery 専用の実行計画をサポートするように、並列データフロー実行エンジンである Hyracks を拡張して VXQuery を構築した。
  • 言語に依存しないコンパイラー用ツールボックスである Algebricks を統合し、再利用可能でデータモデルに依存しないクエリ最適化を可能にした。
  • パス式の最適化と効率的な並列実行を可能にするために、Algebricks を XQuery 専用のリライトルールで拡張した。
  • Hyracks ランタイム内で XQuery 1.0 の意味論をサポートするカスタム XQuery パーサーと XML データモデルを実装した。
  • MapReduce 基盤のアプローチと比較して I/O を削減し、結合処理のパフォーマンスを向上させるために、ハイブリッドハッシュ結合アルゴリズムを VXQuery に実装した。
  • ユーザーが並列処理の詳細を意識しなくてもよいように設計し、標準的な XQuery 語彙を維持しながら自動並列化を可能にした。

実験結果

リサーチクエスチョン

  • RQ1一般用途のデータフロー実行エンジン(例:Hyracks)を拡張することで、スケーラブルな XQuery プロセッサを効率的に構築できるか?
  • RQ2単一ノードの XQuery プロセッサ(例:Saxon)と比較して、VXQuery のスループットとスケーリング性能はどの程度向上するか?
  • RQ3大規模な XML データセットにおいて、Apache MRQL のような MapReduce 基盤の XQuery システムと比較して、VXQuery はどの程度優れているか?
  • RQ4XQuery 専用の最適化ルールは、パス式の効率性向上と並列実行の実現にどの程度効果的か?
  • RQ5VXQuery は、500GB の気象データリポジトリのような大規模な XML データセットに対して、複数ノードにわたって効果的にスケーリングできるか?

主な発見

  • 4 コアの単一ノード環境では、代表的なオープンソース XQuery プロセッサである SaxonHE よりも約 3 倍の高速化を達成した。
  • 8 ノードのクラスタ(ノードあたり 4 コア)環境では、同じ XML クエリに対して Apache MRQL よりも約 2.5 倍速い性能を示した。
  • VXQuery は強力なスケールアップ性能を示した。ノードあたり 7.2GB のデータを処理した場合、ノード数を増やしてもクエリ実行時間が安定したため、効率的な負荷分散が実現された。
  • ノードあたり 66GB のデータ(合計 528GB)を処理した場合でも、VXQuery は高いパフォーマンスを維持した。これは、非常に大規模な XML データセットにおいても水平スケーリングが効果的であることを示している。
  • Apache MRQL に対するパフォーマンス優位性は、XML パースィングが約 2 倍速く、ハイブリッドハッシュ結合アルゴリズムによる結合処理の効率化に起因する。
  • プロファイリングの結果、特に大規模データセット処理時、VXQuery は XML パースィング段階で CPU バイアスを示しており、今後の改善の鍵となるのはパースィングの最適化であると判明した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。