Skip to main content
QUICK REVIEW

[論文レビュー] SharedDB: Killing One Thousand Queries With One Stone

Georgios Giannikis, Gustavo Alonso|arXiv (Cornell University)|Mar 1, 2012
Advanced Database Systems and Queries参考文献 26被引用数 16
ひとこと要約

SharedDBは、数百もの同時クエリや更新処理における重複するデータアクセスパターンを共有することで、高並列処理下でもパフォーマンスと応答時間の保証を向上させる、画期的なバッチ処理型データベースアーキテクチャを提案する。クエリをバッチ処理し、重複する操作(例えば、共通の顧客および注文データに対する複数ジョイン)を一度の統合実行で処理することで、トップエンドの商用データベースの2倍のスループットを達成し、TPC-WベンチマークではMySQLのほぼ8倍の性能を発揮する。これは、予測不能で混合されたワークロード下でも同様に成立する。

ABSTRACT

Traditional database systems are built around the query-at-a-time model. This approach tries to optimize performance in a best-effort way. Unfortunately, best effort is not good enough for many modern applications. These applications require response time guarantees in high load situations. This paper describes the design of a new database architecture that is based on batching queries and shared computation across possibly hundreds of concurrent queries and updates. Performance experiments with the TPC-W benchmark show that the performance of our implementation, SharedDB, is indeed robust across a wide range of dynamic workloads.

研究の動機と目的

  • 高並列処理下で厳格なサービスポリシー契約(SLA)を満たせない従来型クエリ単位処理データベースシステムの限界を解消すること。
  • 既存システムにおける同時クエリや更新処理の干渉によって引き起こされるパフォーマンス劣化とリソース競合を克服すること。
  • OLTP、OLAP、および混合ワークロードを含む多様なワークロードを処理できる一般用途のデータベースアーキテクチャを設計すること。
  • 手動によるチューニングや負荷制御メカニズムを必要とせず、動的で予測不能なクエリの混合処理を効率的かつスケーラブルに処理できるように、共有実行とクエリバッチ処理を実現すること。

提案手法

  • 重複するデータアクセスパターンを持つ多数の同時クエリや更新処理を1つの実行計画にバッチ処理し、共有計算を可能にする。
  • 関連タプルの集合(例:ドイツおよびスイスの顧客)に対して一度の統合ジョイン処理を実行することで、複数のクエリを同時に処理し、重複作業を削減する。
  • クエリ数に依存しない、計算量の上限(全テーブルジョイン)を定義することで、予測可能なスケーリング性能を保証する。
  • マルチクエリ最適化およびデータストリーム処理(例:QPipe、CJoin、DataPath)の技術を採用・一般化し、OLAPワークロードにとどまらず幅広い用途に適用可能にする。
  • 実行時システムを実装し、クエリおよび更新処理の共有実行を動的にスケジューリング・調整することで、1クエリあたりのオーバーヘッドを最小限に抑える。
  • 標準の関係代数演算子に拡張を加え、共有実行計画をサポートすることで、標準SQLおよび関係演算との互換性を確保する。

実験結果

リサーチクエスチョン

  • RQ1高並列処理・混合ワークロード環境下でも、バッチ処理型で共有計算を行うモデルが、従来型クエリ単位処理システムを上回る性能を発揮できるか?
  • RQ2重複するアクセスパターンを持つ数百もの同時クエリにおいて、共有実行がどれほど冗長な計算を削減できるか?
  • RQ3負荷制御やクエリ優先順位付けメカニズムを一切必要とせず、SharedDBがどのように低遅延と高スループットを維持できるか?
  • RQ4共有計算モデルを、頻繁な小規模な更新処理と複雑な分析クエリを含むOLTPおよびOLAPワークロードの両方に対応できるように一般化できるか?
  • RQ5クエリ述語が大きくばらついており、完全な共有が達成できない状況下でも、共有実行のスケーラビリティの上限はどこに達するか?

主な発見

  • SharedDBは、高負荷下でトップエンド商用リレーショナルデータベースシステムの2倍のスループットを維持し、TPC-WベンチマークではMySQLのほぼ8倍の性能を発揮する。
  • 「タイトルで商品を検索する」などの軽量クエリと「ベストセラーを検索する」などの重量クエリを混合しても、軽量クエリの応答時間に劣化が生じない、堅牢なパフォーマンスを維持する。
  • 共有の機会が増えるにつれて、同時クエリ数の増加に伴いスループットが単調増加するため、動的ワークロード下での強力なスケーラビリティを示す。
  • 極端なワークロード下でも、競合するシステムがスループットの崩壊を経験する中で、SharedDBはMySQLおよび商用システムを3倍の性能で上回る。
  • 異なるハードウェア構成やクエリ多様性レベルにおいても、性能が安定的かつ予測可能であるため、実世界のシナリオにおける耐障害性が裏付けられる。
  • 1クエリあたりのオーバーヘッドが完全なスケーリングを制限するものの、特に混合で予測不能なワークロード下では、従来型システムに比べてはるかに優れたスケーラビリティを達成する。

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

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

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

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