Skip to main content
QUICK REVIEW

[論文レビュー] Exact Selectivity Computation for Modern In-Memory Database Query Optimization

Jun Hyung Shin, Florin Rusu|arXiv (Cornell University)|Jan 6, 2019
Data Management and Algorithms参考文献 11被引用数 4
ひとこと要約

本論文は、主にメモリ内およびGPUアクセラレーテッドデータベースを対象とした、新しいクエリ最適化パラダイムであるExact Selectivity Computation (ESC)を提案する。ESCは最適化中にサブクエリを実行することで選択性を正確に計算し、不正確なサマリスケッチに依存しない。ESCはGPU上で30ms未塔のオーバーヘッドを達成し、正確なカーディナリティ推定とフィルタリング結果のマテリアライゼーションにより、クエリ実行計画の性能を最大32倍まで向上させる。

ABSTRACT

Selectivity estimation remains a critical task in query optimization even after decades of research and industrial development. Optimizers rely on accurate selectivities when generating execution plans. They maintain a large range of statistical synopses for efficiently estimating selectivities. Nonetheless, small errors -- propagated exponentially -- can lead to severely sub-optimal plans---especially, for complex predicates. Database systems for modern computing architectures rely on extensive in-memory processing supported by massive multithread parallelism and vectorized instructions. However, they maintain the same synopses approach to query optimization as traditional disk-based databases. We introduce a novel query optimization paradigm for in-memory and GPU-accelerated databases based on extit{exact selectivity computation (ESC)}. The central idea in ESC is to compute selectivities exactly through queries during query optimization. In order to make the process efficient, we propose several optimizations targeting the selection and materialization of tables and predicates to which ESC is applied. We implement ESC in the MapD open-source database system. Experiments on the TPC-H and SSB benchmarks show that ESC records constant and less than 30 milliseconds overhead when running on GPU and generates improved query execution plans that are as much as 32X faster.

研究の動機と目的

  • 複雑な述語や偏りのあるデータにおいて、継続的に不正確な選択性推定が生じる問題に対処すること。
  • ヒストограмやサンプルといった統計的サマリスケッチに依存することを排除し、属性間の相関関係を正しく捉えないことが一般的な問題を解消すること。
  • 低遅延実行が可能な現代のメモリ内およびGPUアクセラレーテッドデータベースにおいて、正確で正確な選択性計算を可能にすること。
  • 正確なカーディナリティを用いることで、より良いジョイン順序選択とパフォーマンス向上を実現するクエリ実行計画の改善。
  • 特定の適用と結果のマテリアライゼーションにより、正確計算のパフォーマンスコストを最小限に抑えること。

提案手法

  • ESCは、複雑な述語に一致する行数を正確に特定するために最適化中にサブクエリを実行することで選択性を計算する。
  • 最適化器は、複雑さと潜在的なパフォーマンス向上の大きさに基づき、特定のテーブルと述語をESCの対象に選ぶ。
  • サブクエリの結果はマテリアライズされ、最終的な実行計画で再利用され、再計算を回避する。
  • 本手法は、クエリ最適化器への最小限の変更で実装可能なMapDオープンソースデータベースに統合された。
  • 最適化では、影響の大きい述語にのみESCを適用する戦略的適用と、GPU並列処理を活用した低遅延サブクエリ実行が行われる。
  • メモリ内システムではパイプライン処理よりもマテリアライゼーションを優先することで、キャッシュ効率を向上させ、I/Oを削減する。

実験結果

リサーチクエスチョン

  • RQ1サブクエリによる正確な選択性計算は、複雑で相関関係が強い、または偏りのあるデータ環境において、従来のサマリースケッチベース推定を上回る性能を発揮できるか?
  • RQ2現代のGPUアクセラレーテッドメモリ内データベースで実行された正確な選択性計算のパフォーマンスオーバーヘッドはどの程度か?
  • RQ3正確な選択性はより良いクエリ実行計画をもたらし、パフォーマンスはどの程度向上するか?
  • RQ4述語の複雑さや属性数の増加に伴い、ESCのオーバーヘッドはどのように変化するか?
  • RQ5初期計算コストがあるにもかかわらず、サブクエリ結果のマテリアライゼーションが実行時間をさらに短縮できるか?

主な発見

  • ESCは、すべてのテストワークロードにおいて、複雑な述語や多数の属性を含む状況でも、GPU上で常に30ミリ秒未塔のオーバーヘッドを達成した。
  • TPC-Hベンチマークでは、ESCによりクエリ実行速度が最大32.27倍向上した。特に、より良いジョイン順序が選択された場合に顕著な向上が見られた。
  • スケールファクター80のSSBベンチマークでは、ESCにより最大7倍の高速化が達成され、特に選択性の高いクエリで最も大きな向上が見られた。
  • CPU上では、属性数の増加に伴いキャッシュ効果によりESCのオーバーヘッドが増加したが、4つの属性の場合でも340ms未塔に留まった。
  • GPU上でのESCサブクエリ実行はCPUより常に高速であり、一部のTPC-Hクエリでは4.88倍のパフォーマンス優位性が確認された。
  • フィルタリング結果のマテリアライゼーションにより、最終計画における繰り返しフィルタリングが排除され、実行時間が顕著に短縮された。

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

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

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

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