様々な分析的データ処理がDBMSにおいて行われてきた.RDBMSにおける古典的な分析的ワークロードとしてはTPC-Hが知られており,新しいワークロードとしてはデータマイニング・機械学習などである.これらのワークロードがDBMSにおいて実行されるとき,その処理内容は論理的には演算木により表現される.演算木は演算子をノード,演算子間を繋ぐデータ配送機構をエッジとするDAGである. 分析的データ処理を構成する演算木におけるデータ配送の特徴を眺めると,そこには既存のデータ処理系では注目されてこなかった二つの特徴が存在することに気づく.第一の特徴は,分析的な演算子は多量の結果を出力する可能性がある点である.第二の特徴は,異なる複数の分析的演算子が入力を共有する点である. これらの特徴に関する問題について考える.第一の特徴における問題点はメモリ溢れである. 第二の特徴に際して顕在化する問題点はタプル複製コストである.本研究ではこれらの問題を解決する方式を考案した.まず,第一の特徴における問題を解決するために,新しい演算子制御機構を提案した.同機構はメモリ枯渇を防ぐために,演算子の出力量を制御する.要求駆動方式を基本としながら高性能化を実現するためにブロック出力と演算子内並列処理を導入する.出力ブロックを最大化しながらもメモリ枯渇を回避するため,上部ノードから下部ノードへと出力率(選択率)を用いて各ノードの出力量を計算する.提案方式はメモリが少ない場合には固定ブロックを用いる既存の要求駆動方式よりも15倍程度性能が良いことが実験により示された.第二の特徴における問題を解決するために,参照に基づくデータ授受機構を提案した.提案機構は参照表を利用することでラッチを取得することなく,データ授受を可能にする.提案方式は参照カウンタ方式に比べて最大で51%の性能を改善することが実験により示された.
|