Skip to main content
QUICK REVIEW

[論文レビュー] Fast Updates on Read-Optimized Databases Using Multi-Core CPUs

Jens Krueger, Changkyu Kim|arXiv (Cornell University)|Sep 30, 2011
Distributed systems and fault tolerance参考文献 21被引用数 4
ひとこと要約

本稿では、読み取り最適化されたメモリ内列指向データベースにおけるマージオーバーヘッドを30倍削減する、マルチコアを考慮した線形時間マージアルゴリズムを提案する。これにより、ダウンタイムなしで高スループットのトランザクショナルワークロードをサポートできるようになった。CPUキャッシュ階層とスレッドレベルの並列処理を活用することで、圧縮されたメインストレージにデルタ更新を効率的にマージしつつ、分析クエリのパフォーマンスを維持する。

ABSTRACT

Read-optimized columnar databases use differential updates to handle writes by maintaining a separate write-optimized delta partition which is periodically merged with the read-optimized and compressed main partition. This merge process introduces significant overheads and unacceptable downtimes in update intensive systems, aspiring to combine transactional and analytical workloads into one system. In the first part of the paper, we report data analyses of 12 SAP Business Suite customer systems. In the second half, we present an optimized merge process reducing the merge overhead of current systems by a factor of 30. Our linear-time merge algorithm exploits the underlying high compute and bandwidth resources of modern multi-core CPUs with architecture-aware optimizations and efficient parallelization. This enables compressed in-memory column stores to handle the transactional update rate required by enterprise applications, while keeping properties of read-optimized databases for analytic-style queries.

研究の動機と目的

  • 企業システムで使用される読み取り最適化済みで圧縮されたメモリ内列指向ストアにおけるマージ処理のパフォーマンスボトルネックを解消すること。
  • 従来は分析クエリ専用に最適化されていたデータベースにおいて、リアルタイムのトランザクショナルワークロードを可能にすること。
  • マージオーバーヘッドを低減し、更新頻度の高い環境でのダウンタイムを排除すること。
  • 高い更新レートと高い読み取りパフォーマンスを同時に満たすシステムを設計すること。
  • 12のSAPビジネススイート顧客システムからの実際のエンタープライズワークロードデータを用いて、提案手法を検証すること。

提案手法

  • 著者らは、12のSAPビジネススイートシステムからの実世界のエンタープライズワークロードを分析し、マージ処理における主要なパフォーマンスボトルネックを同定した。
  • アーキテクチャに配慮した最適化を用いて、圧縮された列指向データをインプレースで処理する線形時間マージアルゴリズムを設計した。
  • マルチコアCPUの並列処理、キャッシュに優しいデータレイアウト、および効率的なスレッドスケジューリングを活用し、計算およびメモリ帯域幅の利用を最大化した。
  • システムのダウンタイムを要せず、オンラインで段階的にデルタパーティションをメインの圧縮列ストアにマージする。
  • 実装では辞書エンコードを用い、完全な解凍を回避することで、直接的に圧縮されたデータ構造上で処理を行った。
  • 現在および将来のCPUアーキテクチャにおける計算およびメモリ帯域幅要件を予測するための詳細な分析モデルを構築した。

実験結果

リサーチクエスチョン

  • RQ1実際のエンタープライズワークロード下で、読み取り最適化されたメモリ内列指向ストアのマージプロセスにおける主要なパフォーマンスボトルネックは何か?
  • RQ2読み取りパフォーマンスを損なわせることなく、高速度のトランザクショナルワークロードをサポートするには、マージパフォーマンスをどのように向上できるか?
  • RQ3現代のマルチコアCPUを、アーキテクチャに配慮した最適化によってマージプロセスを加速するためにどの程度活用できるか?
  • RQ4完全な解凍なしに、圧縮データ上で効率的に動作する線形時間マージアルゴリズムを設計できるか?
  • RQ5データ量およびシステム負荷の増加に伴い、最適化されたマージアルゴリズムのパフォーマンスはどの程度スケーリングするか?

主な発見

  • 現在のシステムでは、エンタープライズ環境下で月間約20時間のダウンタイムが必要であり、リアルタイムのトランザクショナルワークロードを著しく制限している。
  • 提案されたアルゴリズムは、最適化されていないシングルスレッド実装と比較して、マージ時間を30倍短縮した。
  • マルチコア並列処理とキャッシュに配慮したメモリアクセスパターンのおかげで、最適化された実装は30倍の高速化を達成した。
  • メインストアに圧縮された列指向形式を維持することで、高い読み取りパフォーマンスを維持した。
  • 分析モデルは、現在および将来のCPUアーキテクチャにおけるパフォーマンスを正確に予測でき、本手法のスケーラビリティを裏付けた。
  • 生産環境では、効率的なマージが可能である限り、最大で1秒あたり約1,000件の更新をサポートでき、これは企業向けトランザクショナルワークロードに十分である。

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

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

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

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