Skip to main content
QUICK REVIEW

[論文レビュー] REX: Recursive, Delta-Based Data-Centric Computation

Svilen R. Mihaylov, Zachary G. Ives|arXiv (Cornell University)|Aug 1, 2012
Cloud Computing and Resource Management参考文献 20被引用数 5
ひとこと要約

REXは、反復的データ分析を能率的に処理するために、反復間で変更部分(デルタ)のみを伝搬する、再帰的でデルタベースのデータ中心の計算モデルを提案する。このアプローチにより、重複する計算を削減できる。REXはデータベース風の操作とクラウド風の耐障害性を統合し、K-meansや最短経路クエリなどの反復的ワークロードにおいて、Hadoop や HaLoop と比べて最大100倍の高速化を達成した。

ABSTRACT

In today's Web and social network environments, query workloads include ad hoc and OLAP queries, as well as iterative algorithms that analyze data relationships (e.g., link analysis, clustering, learning). Modern DBMSs support ad hoc and OLAP queries, but most are not robust enough to scale to large clusters. Conversely, "cloud" platforms like MapReduce execute chains of batch tasks across clusters in a fault tolerant way, but have too much overhead to support ad hoc queries. Moreover, both classes of platform incur significant overhead in executing iterative data analysis algorithms. Most such iterative algorithms repeatedly refine portions of their answers, until some convergence criterion is reached. However, general cloud platforms typically must reprocess all data in each step. DBMSs that support recursive SQL are more efficient in that they propagate only the changes in each step -- but they still accumulate each iteration's state, even if it is no longer useful. User-defined functions are also typically harder to write for DBMSs than for cloud platforms. We seek to unify the strengths of both styles of platforms, with a focus on supporting iterative computations in which changes, in the form of deltas, are propagated from iteration to iteration, and state is efficiently updated in an extensible way. We present a programming model oriented around deltas, describe how we execute and optimize such programs in our REX runtime system, and validate that our platform also handles failures gracefully. We experimentally validate our techniques, and show speedups over the competing methods ranging from 2.5 to nearly 100 times.

研究の動機と目的

  • 反復的データ分析において、現代のDBMSとクラウドプラットフォームの長所を統合すること。
  • クラウドプラットフォームで各反復において全データセットを再処理する非効率性を解消すること。
  • 再帰的SQLにおける状態蓄積問題(古い中間結果が不要に保持される)を克服すること。
  • 1つの拡張可能なシステム内で、アドホックなOLAPクエリと複雑な反復的アルゴリズム(例:クラスタリングやリンク解析)の両方をサポートすること。
  • 完全な中間結果ではなく、デルタ状態のみを永続化することで、効率的な障害回復を可能にすること。

提案手法

  • 全データではなく、変更部分(デルタ)のみを反復間で伝搬するデルタベースのプログラミングモデルを採用する。
  • 再帰的実行と状態管理をサポートするリレーショナルエンジン内で、ユーザー定義関数を実行する。
  • 関数の再順序付け、事前集約プッシュダウン、ユーザーが提供するヒントを活用して、クエリ実行を最適化するランタイムシステム(REX)を採用する。
  • 変化するデルタのみを保持することで、インクリメンタルな状態更新を実現し、メモリとI/Oのオーバーヘッドを削減する。
  • 共有なしクラスタと統合し、可変状態(例:最短経路における最小距離)の耐障害性のあるストレージにDHTを活用する。
  • リレーショナルエンジン内にネイティブHadoopコードを実行可能にし、MapReduceの機能を統合する。

実験結果

リサーチクエスチョン

  • RQ1反復的データ分析ワークロードを、再計算の冗長性を最小限に抑えることで、どのようにより効率的に実行できるか?
  • RQ2統合されたシステムが、アドホックなOLAPクエリとK-meansやリンク解析のような複雑な反復的アルゴリズムの両方を、効率的にサポートできるか?
  • RQ3反復計算において、パフォーマンスを損なわずに耐障害性を実現する方法は何か?
  • RQ4分散環境において、ユーザー定義関数、再帰、集約を含むクエリに対して、どのような最適化が有効か?
  • RQ5ノード障害が発生した場合でも、デルタ伝搬により実行時間と回復オーバーヘッドの両方を削減できるか?

主な発見

  • REXは、K-means や 最短経路クエリを含むさまざまなワークロードにおいて、Hadoop や HaLoop と比べて2.5倍からほぼ100倍の高速化を達成した。
  • インクリメンタル回復戦略により、ノード障害が発生しても、再起動ベースの回復と比べて回復オーバーヘッドを50%削減できた。
  • REXは、収束が遅いケースを除き、ほとんどの反復的クエリシナリオでHaLoopを3倍以上上回った。
  • 全再処理を回避することで、起動および終了のオーバーヘッドを削減でき、特に短期間で終了するか、安定段階の反復において効果的だった。
  • 関数の再順序付けと事前集約プッシュダウンの最適化により、クエリ実行のパフォーマンスが著しく向上したが、実行品質に悪影響を与えることはなかった。
  • ネイティブHadoopコードをリレーショナルエンジン内に統合することで、MapReduce風のジョブをシームレスに実行可能にした一方で、最適化の利点を保持した。

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

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

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

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