学位論文要旨



No 214393
著者(漢字) 鳥居,俊一
著者(英字)
著者(カナ) トリイ,シュンイチ
標題(和) ベクトル演算方式を用いた関係データベースの高速化に関する研究
標題(洋)
報告番号 214393
報告番号 乙14393
学位授与日 1999.07.15
学位種別 論文博士
学位種類 博士(工学)
学位記番号 第14393号
研究科 工学系研究科
専攻 情報工学専攻
論文審査委員 主査: 東京大学 教授 喜連川,優
 東京大学 教授 井上,博允
 東京大学 教授 田中,英彦
 東京大学 教授 武市,正人
 東京大学 教授 安達,淳
 東京大学 教授 相田,仁
内容要旨

 関係データベースは、SQL言語による高い抽象レベルのデータベース演算機能を提供し、多くの分野での実用化が進んでいるが、高機能ゆえに大規模化に伴う性能の劣化が大きな隘路になりやすい。従来の関係データベースの高速化方式としては、高機能I/O方式や並列プロセッサ方式があるが、いずれも高い適用率の実現が難しく、アムダールの法則からコストパフォーマンスの改善に壁があった。本研究では、基本的には低レベルではあるが幅広い機能を有するベクトル演算機構を利用して高い適用率を実現し、安価な付加プロセッサ方式を採用することにより、コストパフォーマンスに優れた高速化方式を開発することが狙いである。大容量主記憶を前提として、ベクトル演算方式を用いた関係データベース処理高速化を実現するために、以下に示す3つの高速化基本方式を提案した。

 (a)大容量主記憶を利用したDBキャッシュの大容量化による高速化方式

 (b)簡潔化されたカラム単位一括化処理形態による高速化方式

 (c)ベクトル演算命令適用による高速化方式

 高速化方式(a)は、大容量主記憶上にDBキャッシュを実装することにより、表やインデクス情報を大容量主記憶上に常駐化し、I/O時間の大幅な短縮と、I/O起動に関連するCPU時間の削減も実現した。

 高速化方式(b)は、従来のデータ形式とレコードを単位とする処理方式の問題点を解決するものである。従来のレコード単位方式では、「レコード更新時のI/O性能」と「必要な主記憶容量の少なさ」の点は優れているが、「手続き呼び出しの多発等に起因する低い処理効率」と「ベクトル化に適さない」などの点が問題があった。本研究ではこれに対して、ディスク上は従来のレコード単位の格納方式を採用して、ディスク上の互換性と更新処理でのI/O性能を踏襲しつつ、検索時にはカラムを単位としたベクトルを動的に生成する「動的カラムベクトル生成方式」を提案した。本方式により、手続き呼び出し回数の削減等による大幅な処理効率向上が可能となると共に、全件検索、インデックス検索、結合検索やインデックス生成などのベクトル化が実現できた。図1に、二表の結合検索を例題に、動的カラムベクトル生成方式による高速化方式の概要を示す。この例題では、効率的な突き合わせを実現するために、前処理として両表を部品番号に関してソートする。この図からも、ソートや突き合わせが重要かつ負荷の重い演算である事がわかる。

 又、表に多数のインデックスが付与される情報検索分野での適用をはかるため、複数インデックス利用検索方式を導入し、複雑な検索条件を有する検索に対しても高いベクトル化率を可能とした。

 高速化方式(c)は、数値演算を対象に開発されていた従来のベクトル演算機能を拡張し、関係データベースにおいても高い適用率(ベクトル化率)を実現した。ベクトル演算機能は、スーパーコンピュータに代表される数値計算分野では高速化を実現して大きな成功を収めているが、データベースの基本処理に適用した例はほとんど無い。従来のベクトル演算機能では、「オペランドの各ベクトル要素を指し示す添字(インデックス)が全オペランドに共通であるため、マージ演算が実現出来ない」、「ベクトル要素が単一値しか格納出来ないため、表構造を効率的に表現できない」などが問題点であることを指摘した。

 この問題点に対して、本研究で提案する内蔵データベースプロセッサ(IDP:Integrated Database Processor)のアーキテクチャでは、「各オペランド別に添字」を持つことにより、ベクトル化マージ演算機能を提供する。マージ演算が対象とする各要素については、識別子を格納するフロント部とキー値等を格納するリア部を有する「デュアルベクトル(DV)形式」を考案した。前述の図1の例では、レコード識別子(ID)と、結合値である部品番号からなるDVを使用し、表全体をソートせずにDVのみをソートする効率化を図った。

図1 二表の結合検索を例題としたベクトル演算方式を用いた高速化方式の概要

 高速化方式(c)を実現するため、拡張されたベクトルアーキテクチャの持ったベクトル型データベースプロセッサ(IDP)のマージ演算機能を、既に数値計算向けのベクトル機能を有する汎用大型計算機M-680H上に、新たに拡張されたベクトル命令として実装した。本来は要素間に依存関係を有するマージ演算に対して、1比較1サイクルで実行する高並列パイプライン方式を開発した。開発規模としては、従来の数値計算用のベクトル機構を活用することにより、マージ演算をベースとした高速なマージソート命令、マージジョイン命令、サーチ命令を、プロセッサ本体の約5%のハードウェアの追加で実現し、付加プロセッサ方式の安価性を示した。

 ベクトルアーキテクチャの実現方式に関してCPU時間について、性能上もっとも重要なソート処理の高速化の性能を評価した。主記憶上の内部ソートでは、新設のソート命令がスカラーの高速なクイックソート法と比較しても9倍近い高性能であることを実測した。また、プロセッサのバッファ容量を越える多量のデータ列に対しても、バッファミスによる効率の低下が少ない水平分割メモリソート方式の提案と、実測値での効果を示した。主記憶容量を越える超多量のデータに対しては、IDP命令(2ウェイマージ命令)による多ウェイ外部マージソート方式を提案し、性能を実測した。

 製品レベルの実用化システムにおいて、上記の関係データベース高速化3方式のCPU時間に関する定量的な性能評価を、ベクトル化のオーバヘッドを含めておこない、新しい関係データベース処理方式が、コストパフォーマンスに優れた高速化方式であることを示した。結合検索を中心として設定したベンチマークでは、大容主記憶量による高速化方式(a)で1.1倍、簡潔化されたカラム単位一括化処理形態による高速化方式(b)では5.7倍、ベクトル演算命令適用による高速化方式(c)では2.4倍の性能向上を実測し、合計では15倍の性能向上を実現した。ソートリストを使用したDBキャッシュ管理方式によるページアドレス変換処理のベクトル化が、適用率向上に大きく寄与している。又、複数のインデックスを有効に利用する検索のベンチマークでは、若干のベクトル化のオーバーヘットが存在するものの、合計では3倍以上の高速化が実現できた。これらにより、動的なカラムベクトル生成方式がベクトル演算を用いた高速化方式に非常に有効であることを実証した。

 性能評価の分析から、M-680H/IDPには改善すべき点がある事を指摘し、改善の効果をM-880/IDP上で確認した。M-680HのIDPでは最小限の機能に限定したため、ベクトル化とベクトル命令の適用は出来たが効率的でない点を解明し、重複排除機能、十進データ型、長いキー値等を、次機種であるM-880/IDPでは拡張した。この拡張により、殆どすべてのインデックス生成にIDP命令が適用可能となり、本来冗長なデータ形式変換や重複排除処理も無くすことができた。

 ベクトル化のオーバヘッドと、ベクトル機溝すなわちIDP命令の適用効果の関係を定量的に分析した。ベクトル命令を適用するために、データ構造や処理アルゴリズムを変更するベクトル化では、オーバヘッドが新たに発生する可能性があることを指摘した。内部ソート処理、外部ソート処理、結合検索、複数インデックス利用検索、及び解探索での性能分析から、「データ形式の追加・変更」、「ループ制御等の処理形態の変更」、「アルゴリズム自体の変更」の3つの観点を用いて、ベクトル化に伴うオーバヘッド又は性能改善は、定性的な予測が可能であることを示した。

 今後の課題としては、データウェアハウス(DWH:DataWare House)と全文検索が、本研究で提案するIDPの新しいデータベース分野への適用拡大の有望候補として挙げられる。関係データベースの中での適用分野拡大では、更新系SQLのベクトル化が今後は必要である。ベクトルアーキテクチャの将来方向としては、最高性能を追求した大規模な専用プロセッサ化だけでなく、IDPが不得意である「性能のスケーラビリティ」を改善するため、ベクトル方式と相補的な関係にある並列プロセッサ方式との統合が、今後は有望である。

審査要旨

 本論文は「ベクトル演算方式を用いた関係データベースの高速化に関する研究」と題し、数値計算分野で多用されて来たベクトル演算機構を拡張し、関係データベースの高速処理に適した新しい方式を提案すると共に、汎用大型計算機上の関係データベース管理システムに当該手法を実装し、詳細な性能測定を行うことによりその有効性に明らかにしたものであり、8章から構成される。

 第1章は「序論」であり、本研究の背景と目的について述べている。

 第2章は「大容量主記憶向き関係データベース高速化の基本方式」と題し、従来の関係データベースシステムにおける性能上の問題点を指摘し、3つの高速化方式を提案している。第1の高速化方式として、大容量主記憶の活用による表やインデックスの主記憶常駐化を取り上げ、その効果について述べている。第2の高速化方式として、カラムを単位としたベクトルを動的に生成する動的カラムベクトル生成方式を提案している。各ベクトル要素が二つの値を格納できるデュアルベクトルと名付けたデータ表現形式を採用することにより、従来のレコード単位操作に比べて大幅に処理効率の向上が見込まれるとしている。第3の高速化手法として、デュアルベクトルを操作可能とするベクトル命令を提案すると共に、ハードウェアによる高速化方式について提案している。

 第3章は「動的カラムベクトル生成による関係データベース高速化方式」と題し、提案するベクトル命令によって主要な関係データベース基本演算を実現可能であることを示している。即ち、条件検索、結合検索、重複除去、集約演算等の基本となる関係演算をベクトル命令によって処理する為のアルゴリズムを提案すると共に、SQLによって記述された関係問い合せを一連のベクトル処理に展開する手法について詳述している。インデックスを有する関係表に対してもベクトル命令の適応を可能とするなど、ベクトル化率向上策についても論じている。

 第4章は「ベクトル型データベースプロセッサ(IDP)のハードウェア方式」と題し、関係データベース処理に適したベクトル命令セットを提案すると共に、当該ベクトル命令のハードウエアによる実現方式を提案している。データベースベクトル演算命令は、要素間に強い依存関係がある為、数値計算分野で用いる単純なベクトル処理機構の適用が困難であったのに対し、オペランドバッファ機構を工夫することにより、1サイクルに1演算の高速パイプライン処理を実現する方式を提案している。提案する実現方式は数値演算ベクトル機構に対してわずか5%程度のハードウエアの追加で可能なことを示しており、実用上極めて有効な方式と言える。

 第5章は「IDPを用いたソート処理の高速化方式と性能評価」と題し、提案するソート専用ベクトル命令の導入により、通常の逐次命令を用いたクイックソート法に比べて大幅に高速化可能であることを示すと共に、詳細な性能評価を行っている。レコード数がプロッセサ内バッファ容量を越えた場合の処理方式、キー長がハードウエアで提供される比較器の容量を越えた場合の処理方式など種々の場合に対して各種の工夫を提案している。これにより、常に高いベクトル化率を維持可能とし、データベース処理において必須なソート演算の高速化を実現している。

 第6章は「ベンチマークを用いた性能評価と命令拡充の考察」と題し、提案するベクトル演算機構の有効性を確認すべく、いくつかの関係問い合せを用い定量的な性能評価を行っている。動的カラムベクトル生成方式の有効性をソフトウエアによる実現方式とハードウエアによる実現方式に分けて詳細に評価を行い、ソフトウエアによる実現だけでも大きな高速化が達成可能なこと、IDPハードウエアを導入することにより全体として、結合演算負荷の高い問い合せに関しては20倍程度の高速化が達成出来ることを示している。又、ベクトル命令使用頻度の解析を行い、ソート命令の利用が著しく高くIDPハードウエアによる高速化が全体性能の向上に大きく寄与していることを定量的に明らかにしている。更にその問題点を解析し、一層の高速化を達成する為の機能拡充項目を明確化すると共に、性能向上の定量的評価も試みている。

 第7章は「今後のIDPの展開に関する考察」と題し、ベクトル演算方式と並列プロセッサ方式との統合化など、IDPアーキテクチャの将来の方向性、ならびにその適用領域の拡大について纏めている。

 第8章は「結論」であり、本研究の成果が要約されている。

 以上、これを要するに本論文は、関係データベースを高速化する方式として、関係データベースの情報をベクトルデータ形式に動的に変換する動的カラムベクトル生成方式と、要素間に強い依存関係を有するデータベースベクトル演算を1サイクルピッチのパイブラインで処理するハードウエア機構を提案すると共に、汎用大型計算機システム上に当該方式を実装することにより詳細な性能評価を行い、従来システムに比べて大幅な性能向上が達成可能であるを示したものであり、情報工学上貢献するところが少なくない。

 よって、本論文は、博士(工学)の学位請求論文として合格と認められる。

UTokyo Repositoryリンク