平成9年度 委託研究ソフトウェアの提案

(21) 並列アクティブデータベースにおけるI/O処理の高速化

        
研究代表者: 横田 治夫 助教授
北陸先端科学技術大学院大学 情報科学研究科
(現・東京工業大学大学院 情報理工学研究科 助教授)



[目次]

  1. 研究の背景
  2. 研究の目的
  3. 研究内容
  4. 研究体制/研究方法
  5. 想定されるソフトウェア成果

[研究の背景]

 現在、データベースの分野で、データベースの状態により、予め定 められたルールに従って、データベース管理システムが能動的にデー タベース処理を行なうアクティブデータベースシステムが注目を集め ている。アクティブルールを利用することにより、自由度の高い高度 な処理の実現が可能となることが、その大きな要因であると思われる。
 具体的には、従来からのデータベースのトリガー/アラータ機能に 加え、完全性制約や参照制約などをデータベース内で自動的に保つ機 構を持たすことができる。また、データの自動解析、データマイニン グ、マルチデータベース間のメディエータとして状態管理をするエー ジェントの実現、モーバイルデータベースにおける移動ホストの環境 変化への適応などが研究されており、推論機能を使った大規模知識ベー スの実現など知識処理分野への展開も期待される。このように、アク ティブデータベースの利用範囲は非常に広いと言える。
 しかし、アクティブルール処理自体が重い処理であるため、実際に 利用されるためには、並列処理による高速化が望まれている。ルール 実行の並列化、ルールの条件照合の並列化、ルールの最適化処理の並 列化などに加え、ベースとなる関係データベース自体の並列化も重要 である。
 これまで我々は、アクティブデータベース処理を統合的に並列化す ることを目指して Parade と名付けたアクティブデータベースエンジ ンを KLIC を用いて実現してきた。昨年度までに、サーバが並列マシ ン上で動作するクライアント/サーバタイプの実験システムを試作し てきた。これにより、KLIC の並列プログラムの記述能力や移植性を 実証してきた。
 しかしながら、データベースとしての実用的な処理速度という面で、 特に大きなデータをアクセスする際に、I/Oがボトルネックとなるこ とが分かってきた。速度向上を目指して並列化しているため、実質的 に処理速度を支配している I/O を高速化することが、何より重要で ある。これは、今後 I/O を含む処理に対する KLIC の潜在能力を示 し、更に広く多くの分野に KLIC の機能をアピールすることにつなが ると確信する。


[研究の目的]

 我々が研究している KLIC による並列アクティブデータベースシス テムのプロトタイプを、実用的な処理速度で動作させるため、KLIC のジェネリックオブジェクトを用いた低レベルの I/O 性能の向上と、 並列ディスクアレー向けに B-Tree の改良を施すことにより、達成す ることを目指す。これは、KLIC の拡張性や記述能力の高さを実証す るとともに、その応用の広さを示し、第五世代技術の普及と発展に貢 献することにつながる。
 第五世代プロジェクトでの成果を、経営判断の意志決定支援等の応 用分野において広く利用されるためには、実用的な処理速度を持つ、 並列アクティブデータベースシステムを用意することが重要である。 KLICの論理変数によるプロセス間のメッセージ通信は、無共有並列計 算機上でデータベース処理を実現する際に非常に適合性がよい。
 昨年までの委託研究では、アクティブデータベース処理をKLICのプ ロセス間のメッセージ通信を利用することにより実現し、汎用ワーク ステーションならびに超並列計算機nCUBE上で動作させ、その記述能 力と移植性の高さを実証してきた。この研究を通して、データベース 処理では非常に大きな鍵を握るI/O処理が、システムの性能の向上に 大きく影を落していることが分かってきた。これは、KLIC標準のI/O が、性能を重視して設計されたものではないことと、一般のB-Treeが 並列ディスクアレーに対応しておらず、データへのアクセスの際に木 のルートノード付近にトラフィックが集中することに起因する。本研 究では、KLICのジェネリックオブジェクトを用いて、ページ単位で I/Oを直接アクセスし、低レベルI/Oの高速化を目指すとともに、 B-Treeを並列ディスクアレー向けに改良したFat B-Treeにより、デー タへのアクセス速度の改善を、ワークステーションクラスタや超並列 計算機nCUBE上での実験を通して明らかにする。特に、ジェネリック オブジェクトを利用した低レベルのI/O性能の向上は、アクティブ データベースの実用的な処理速度を目指す目的だけでなく、KLICの言 語処理系レベルの拡張性をアピールすることにもつながる。


[研究内容]

 昨年度までの委託研究により開発した、並列アクティブデータベー スParadeをベースに、1) ジェネリックオブジェクトによる低レベル I/O性能の改善、2) 並列ディスクアレー向きFat B-Treeによるデータ アクセスの高速化、に分けてその内容の詳細を以下に示す。

1) ジェネリックオブジェクトによる低レベルI/Oの高速化

KLIC標準のI/Oは、外部表現と内部表現を交換するために parse/unparse機構を必要とし、かつそのデータアクセスの単位は小 さい。そのため、極めてソフトウェアオーバヘッドの大きいものと なっており、かつディスクI/Oの面から見ても、スループットを高く することを困難なものとしている。
 しかしながら、一般的にデータベース処理では、ディスクI/Oが全 体のボトルネックとなることが多く、このボトルネックを解決するこ とが、データベース全体の処理速度の向上に大きく貢献する。通常の データベースでは、ディスクをページ単位といった大きなデータ単位 でアクセスしてディスクI/Oのスループットを高くすることが行なわ れている。これをKLICで行なうためには、KLICのデータ型を拡張する ためのジェネリックオブジェクトを用いるのが、最も簡単にかつ性能 を上げることを可能にすると考えられる。なおかつ、ジェネリックオ ブジェクトの導入により、プログラムの移植性を損なわないという利 点も見逃せない。具体的には、新しいデータ型としてページオブジェ クトをジェネリックオブジェクトにより定義し、ページ単位でディス クアクセスを行なえるようにし、ディスクI/Oのスループットの向上 を図る。このページオブジェクトによるページ単位のディスクアクセ スは、B-Treeなどのアクセスパス構造との親和性の向上にも貢献す る。また、このページオブジェクトに適切なメソッドを定義し、KLIC の基本データ構造に変換することなく直接データを扱えるようにす る。これにより、parse/unparseというソフトウェアのオーバヘッド を大きく削減できる。
 このページオブジェクトの導入は、無共有並列計算機におけるKLIC のプロセス間のメッセージ通信のオーバヘッドの削減にも有効であ る。なぜならば、一般的に無共有並列計算機は、メッセージのセット アップコストがメッセージバッファの獲得やロックのため、通信のス ループットに比較してかなり大きいが、一方で分散版KLICはプロセッ サ間通信の際に、通常1レベルずつの細かなメッセージが転送され る。このため、言語処理系レベルでの通信オーバヘッドが大きくなっ てしまうからである。分散版KLICでは、マルチレベルでのメッセージ 通信もサポートしているが、これは、メッセージのencode/decodeと いうソフトウェアのオーバヘッドを伴う。しかしながら、前述のペー ジオブジェクトを用いれば、大きなデータ単位でメッセージを送受信 することが可能となり、メッセージのセットアップコストを相対的に 小さくでき、データのencode/decodeといったソフトウェアのオーバ ヘッドも削減することができる。これによりトータルなメッセージハ ンドリングオーバヘッドを大きく改善することが期待できる。特に、 専用計算機に比較して、メッセージハンドリングオーバヘッドが大き いワークステーションクラスタでは、この改善は大きな意味をなす。
 このページオブジェクトを実現し、具体的なI/O性能やメッセージ ハンドリングオーバヘッドを、nCUBEやワークステーションクラスタ 上で比較し、評価を行なう。

2) 並列ディスクアレー向きFat B-Treeによるデータアクセスの高速化

 並列ディスクアレー上へのデータ配置の有効な手法として、ハッ シュ分割と値域分割がある。ハッシュ分割は適切なハッシュ関数によ りデータの分配の偏りを小さくすることができるが、値域指定の検索 やデータのクラスタ化には対応できない。値域分割はこれらに対応で きるが、静的な基準によりデータを分配するためデータ配置の偏りが 生じる。
 一方、効率の良いデータのアクセスパス構造の1つとして、B-Tree が挙げられる。B-Treeは、範囲指定の検索やデータのクラスタ化に強 いが、データの分割が困難である。また、その構造が木状であるた め、データへのアクセス頻度が高い場合、木の根付近のノードでトラ フィックが集中し、ボトルネックとなる。
 本研究では、B-Treeの問題点を解決するFat B-Treeを提案する。
Fat B-Treeは値域分割されたページのディレクトリ構造としてB-Tree を利用し、各ディスクには均等に分配されたB-Treeの葉ページの一部 と、そこから根までのパス構造を持つ部分木を格納する。このため Fat B-Treeでは、多くの葉ページまでのパスに共有される木の根付近 のノードは、複数のコピーが存在することになり、根ノードは全ての ディスクにコピーされる。しかしながら、木の根付近のノードの更新 頻度は葉ページに比較して少ないため、ディレクトリを全てのディス クにコピーする方式に比較して、更新時の処理は軽くなることが期待 できる。さらに、根から各葉ページへのアクセスパス構造は全ての ディスクに存在するため、木の根付近のノードのアクセスの衝突を減 少させることができる。また、Fat B-Treeの各ページは、前述した ページオブジェクト型を利用することにより、ディスクI/Oのオーバ ヘッドを削減でき、データアクセスの高速化に貢献する。
 この提案するFat B-Treeを、並列ディスクアレーをもつnCUBEに実 現することにより、データのアクセスに対するレスポンスタイムやス ループットを測定することにより、通常のB-Treeに対する利点を示 す。

 以上で述べた2つの項目を、現状の並列アクティブデータベース Paradeに統合して、システムの性能の向上を目指す。


[研究体制/研究方法]

(1) 研究体制

   氏 名 所 属
研究代表者横田 治夫北陸先端大 助教授
研究協力者宮崎 純北陸先端大 助手
研究協力者金政 泰彦北陸先端大 修士課程2年


(2) 研究の方法

 ジェネリックオブジェクトを用いた低レベルI/Oの高速化には、宮 崎が担当し、Fat B-Treeの実現には金政が担当する。それぞれの作業 は並行して行ない、最終的な機能の統合および取りまとめは横田が担 当する。


[想定されるソフトウェア成果]

(1)作成されるソフトウェア名称

KLICによる並列アクティブデータベース

(2)そのソフトウェアの機能/役割/特徴

 以下に、並列アクティブデータベースサーバとクライアントに分け て記述する。

1) 並列アクティブデータベースサーバ

 クライアントからの関係代数レベルのコマンドを受け付け、主に nCUBE上において並列データベース処理を行なう。全てがKLICで記述 されているため、ディスクドライブ名など機種や計算機環境依存部分 のテーブルを書き換えるのみで、他の機種で動作させることができ る。すなわち、LANに接続されたワークステーション上でもデータ ベースサーバとして利用することができる。並列マシンの上で動作さ せる場合、KLICにより関係データベース演算やデッドロック検出の並 列アルゴリズムを記述してあるため、並列性を活かした高速実行が可 能である。特に、処理コストの大きな結合演算は高い速度向上が望め る。さらに、ジェネリックオブジェクトを用いた低レベルI/Oの高速 化のほか、並列ディスクアレー向けのFat B-Treeにより、高速なデー タアクセスが可能である。
 機能的には、アクティブルールをサポートしているため、一貫性制 約などをルールで記述することにより、データベース処理の高機能化 を図ることが可能である。アクティブデータベースの応用範囲は、演 繹データベースと比較するとかなり広く、データの一貫性を強く維持 しなければならないようなビジネス分野での利用が望める。さらに、 複雑なルールの実行であっても、ネステッドトランザクションにより 並列性を活かした高速実行が可能である。
 当然、サーバとして同時に複数のクライアントからの要求に対応す る必要があり、二相ロックによる並行性の制御により、クライアント 間のシリアライザビリティは保たれる。
 なお、クライアントは、関係代数コマンドを発行できるものであれ ば何でもよい。例えば演繹データベース用のクライアントを実現すれ ば、アクティブデータベースと演繹データベースとを組み合わせたシ ステムの実験等も可能となる。このように、並列マシンで動作させた 場合の効果が大きく、拡張性も高いシステムである。

2) クライアント

 SQL、OQL、QBEライクな3種類のクライアントを用意する。SQLクラ イアントは、関係データベースの標準的なデータ操作記述言語(DML) である SQLをインタラクティブに受け付け、関係代数レベルのコマン ドに変換する。OQLクライアントは、OODBのようなDMLをインタラク ティブに受け付け、関係代数レベルのコマンドに変換する。QBEクラ イアントはJAVAで記述されており、GUIを利用したインタフェースと なっており、最終的には関係代数レベルのコマンドに変換する。LAN 環境下のワークステーション上で動作することを前提に、変換した関 係代数コマンドを、Unixのソケットインタフェースを介して、前述し た並列アクティブデータベースサーバに渡す。さらに、各クライアン トは、サーバーから送られてくる実行結果の表示を行なう。
 特に、SQLクライアントにおけるSQL自身は、JISやISO等で規格化さ れており、それに準拠する形になっているため、ビジネス分野等の広 い分野での利用性が高い。また、SQL、OQLクライアントは、全てが KLICで記述されているため機能拡張性に富み、言語仕様を拡張するこ とも容易である。当然ながら、ソケットをサポートする機種ならば、 KLICがインストールされていれば機種に依存することなく、変更なし に動作させることができ、ポータビリティは非常に高い。
 QBEクライアントはJAVAで記述されており、それ自身のポータビリ ティは非常に高く、ワークステーションに限らずソケットをサポート するパソコンなど、多くの機種で動作させることが可能である。ま た、GUIを用いてインタラクティブにデータの操作を行なえるため、 初心者でも違和感なく操作できる。

(3)ソフトウェアの構成/構造

1) 並列アクティブデータベースサーバ

 サーバは、トランザクションマネージャ、ロックマネージャ、デッ ドロックマネージャ、コマンド実行マネージャ、ログマネージャ、 ディスクアクセスマネージャ、ルールマネージャ、およびクライアン トと対話するためのソケットインタフェースから構成される。
 トランザクションマネージャは、クライアントに対応してトランザ クションIDを管理しながら、他のマネジャとのメッセージ通信を行 い、ネステッドトランザクションの管理も行なう。ロックマネージャ は、アクセスするデータに対する適切なロックを獲得し、これを管理 する。デッドロックマネージャは、Wait-For Graphを利用して、トラ ンザクション間のデッドロックを検出する。コマンド実行マネージャ は関係代数レベルのコマンドの実行を行なう。ディスクアクセスマ ネージャは、並列ディスクアレー内に格納されたデータのアクセス、 およびその維持を行なう。ログマネージャは実行ログの管理を行な う。ルールマネージャは、アクティブルールの管理を行なうととも に、ルールで指定されたデータベースイベントに反応して、適切な ルールをトランザクションマネージャを介して実行する。
 以上は、昨年度までの委託研究により実現されている構成である。
今年度は、I/O周り、すなわちディスクアクセスマネージャの強化を 行なう。新たにジェネリックオブジェクトを利用することにより、 ページ単位で低オーバヘッドでディスクアクセスできるように改良を 行なうとともに、並列計算機上でのメッセージ通信のオーバヘッドの 削減も、同時に実現する。さらに、Fat B-Treeと名付ける並列ディス クアレー向けの、アクセス衝突の少ない、かつデータのクラスタ化が 可能なアクセスパス構造を実現し、データのアクセスの高速化、維持 の効率化を行なえるようにする。

2) クライアント

 SQL、OQL、QBEの3種類のクライアントとも、パーザおよび関係代数 レベルコマンドジェネレータとソケットインタフェースから構成され る。
 SQL、OQLクライアントは、ともに全てKLICで記述されており、イン タラクティブに入力されたデータ操作言語の解釈、関係代数コマンド への変換、およびソケットインタフェースを介してサーバとの対話を 行なう。
 QBEクライアントは、JAVAで記述されており、GUIを通してインタラ クティブに入力されたデータ操作言語の解釈、関係代数への変換、ソ ケットインタフェースを介してのサーバとの対話を行なう。
 ソケットインタフェースによるサーバとの対話は、基本的にキャラ クタベースで行なわれる。

(4)参考とされたICOTフリーソフトウェアとの関連

KLIC(一部JAVA)で記述した内容を、全てIFSとして公開する。

(5)使用予定言語および動作環境/必要とされるソフトウェア・パッケージ/ポータビリティなど

使用予定言語:KLICおよびJAVA(オプショナル)

動作環境: Unixワークステーション及びnCUBEを始めとする並列マシン

ポータビリティ:並列ディスクアクセスなどの機種依存の部分を除け ば、非常にポータビリティは高い。特に、クライアントについては、 ソケットさえサポートしていれば特に機種を限定しない。

(6)ソフトウェアの予想サイズ(新規作成分の行数)

2000行程度

(7)ソフトウェアの利用形態

 これまで、汎用並列マシン上の関係データベース処理系としては、 Oracle 7等市販のものは存在しているが、フリーでポータビリティの 高い、なおかつ簡単に実験に利用できるものはなかった。そのため、 本システムのように移植が簡単で、機能的な拡張も容易である並列ア クティブデータベースがフリーソフトとして公開されれば、かなり広 範囲で利用されると考える。
 特に、QBEクライアントを除く全てがKLICで記述されているため、 研究者や技術者が自ら拡張することも容易であり、これからの並列 データベース関係の研究用、実験用のツールとして、利用してもらえ ることを望んでいる。また、クライアントとサーバ間で規定している 関係代数レベルのコマンドは、クライアントを構成する上でも、各種 の実験を試みることが可能な枠組みとなっており、単なるSQL、OQL、 QBEのインタフェースだけでなく、いろいろなシステムに組み込ん で、利用して貰えるものと考えている。
 さらに、研究分野のみでなく、ビジネスなど広範囲の分野での利用 も可能であると思われる。無論、完成度として不十分な部分があるこ とは承知して頂かなければならないが、銀行のオンライン等シビアな 環境でなく、企業内データのデータベース化等には、性能的に耐える レベルにしたいと考えている。特にクライアントは、これまでビジネ スでデータベースを利用してきた人々にとって、非常に馴染みやすい インタフェースとなるよう設計されており、逐次処理の実行時間に不 満があるような場合には、積極的に利用してもらえるのではないかと 考えている。また、本システムをベースとして、より完成度の高いシ ステムの開発を目指すところが出現してくれれば、より広範囲での利 用が望めると思われる。
 アクティブルールの枠組みは、今後いろいろな発展が望めるが、さ しあたって、一貫性保持や動的な動向調査(OLAP)等は、研究分野でも ビジネス分野でも、実験的に利用されていくものと考えている。

(8)添付予定資料

  • ソースプログラム
  • 内部仕様書
  • 利用手引書


www-admin@icot.or.jp