Skip to main content
QUICK REVIEW

[論文レビュー] PIQL: Success-Tolerant Query Processing in the Cloud

Michael Armbrust, Kristal Curtis|arXiv (Cornell University)|Nov 30, 2011
Cloud Computing and Resource Management参考文献 22被引用数 4
ひとこと要約

PIQL は、クエリあたりのキー/値操作回数を静的に上限付けすることにより、スケーリングに依存しない性能を保証する宣言的クエリ言語を導入する。これにより、膨大なデータ成長に対しても予測可能なパフォーマンスが実現される。コンパイル時解析、SLO準拠予測、スケーラブルなキー/値バックエンドを組み合わせることで、PIQL は、データ独立性を損なわず、命令型コードを書かずに成功に耐えるウェブアプリケーションの構築を可能にする。

ABSTRACT

Newly-released web applications often succumb to a "Success Disaster," where overloaded database machines and resulting high response times destroy a previously good user experience. Unfortunately, the data independence provided by a traditional relational database system, while useful for agile development, only exacerbates the problem by hiding potentially expensive queries under simple declarative expressions. As a result, developers of these applications are increasingly abandoning relational databases in favor of imperative code written against distributed key/value stores, losing the many benefits of data independence in the process. Instead, we propose PIQL, a declarative language that also provides scale independence by calculating an upper bound on the number of key/value store operations that will be performed for any query. Coupled with a service level objective (SLO) compliance prediction model and PIQL's scalable database architecture, these bounds make it easy for developers to write success-tolerant applications that support an arbitrarily large number of users while still providing acceptable performance. In this paper, we present the PIQL query processing system and evaluate its scale independence on hundreds of machines using two benchmarks, TPC-W and SCADr.

研究の動機と目的

  • ウェブアプリケーションにおける「成功の災難(Success Disaster)」に対処すること。これは、ユーザーの急増がデータベースの過負荷とパフォーマンス劣化を引き起こす現象である。
  • 従来のRDBMSがデータ独立性によって高価な操作を隠蔽するため、スケーラビリティの失敗を引き起こすという制限を克服すること。
  • 宣言的クエリ言語の利点を維持しつつ、スケーリングに伴う予測可能なパフォーマンスを保証するソリューションを提供すること。
  • 開発者がデータ独立性を放棄せず、低レベルの命令型コードに頼らずに、高スケーラブルなウェブアプリケーションを構築できるようにすること。

提案手法

  • PIQL は、クエリコンパイル時に静的解析を用いて、任意のクエリプランにおけるキー/値ストア操作回数の上限を計算する。
  • システムは、操作回数が無限大になる可能性があるクエリプランを拒否することで、スケーリングに依存しない性質を保証する。これは、小さなデータセットでは高速に動作するが、大規模データでは性能が劣化するプランに対しても同様に適用される。
  • サービスレベルオブジェクティブ(SLO)準拠予測モデルは、コンパイル時に応答時間を推定し、パフォーマンスリスクの早期特定を可能にする。
  • 実行エンジンは並列処理とパイプライン型オペレータを活用してレイテンシを最小限に抑え、データストップオペレータにより選択ロジックをデータソースに近づける。
  • クエリコンパイラはしきい値アルゴリズムとストップアフターロジックを統合し、中間結果サイズの上限を設定し、I/O を削減する。
  • PIQL のアーキテクチャは、分散型キー/値ストアをレコードマネージャーとして使用しており、線形スケーラビリティとリクエストごとの予測可能なパフォーマンスを実現する。

実験結果

リサーチクエスチョン

  • RQ1宣言的クエリ言語が、小さなデータで良好に動作するクエリがデータ成長に伴ってもパフォーマンスを維持できるような、スケーリングに依存しない性質を提供できるか。
  • RQ2複雑なSQLに類似したクエリに対して、コンパイル時にキー/値操作回数の上限をどのように計算できるか。これにより、パフォーマンスの予測可能性が保証される。
  • RQ3静的解析とランタイム統計を用いて、コンパイル時におけるSLO準拠の予測はどの程度の精度で達成できるか。
  • RQ4宣言的クエリ処理、静的上限、キー/値ストレージを統合したシステムが、線形スケーリングと低レイテンシをスケールで達成できるか。
  • RQ5PIQL の表記能力は、TPC-W やツイッターに類似したワークロードを含む実世界のウェブアプリケーションワークロードをどれほど効果的にサポートできるか。

主な発見

  • PIQL は、すべてのクエリに対してキー/値操作回数を明確に上限付けしており、データスケーリングに伴うパフォーマンス劣化が発生しないことを保証している。
  • SLO予測モデルは、応答時間を高精度で推定できており、開発者がデプロイ前にパフォーマンスのボトルネックを特定・修正できる。
  • TPC-W およびツイッターに類似したベンチマークでの評価では、PIQL は数百台のマシンを対象としていても、高負荷下でも低く安定したレイテンシを維持している。
  • PIQL のクエリ言語は、ジョインや集計を含む複雑なインタラクティブウェブアプリケーションをサポートするのに十分な表現力を備えている。
  • システムは線形スケーリングを示し、一貫したパフォーマンスを発揮しており、データサイズが桁違いに増加しても応答時間がSLO内に収まっている。
  • 静的解析、上限付き実行プラン、キー/値バックエンドの組み合わせにより、開発者は命令型コードを書かずに成功に耐えるシステムを実現できる。

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

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

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

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