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

(15) KLIC による並列アクテイブデータベース処理の実現

研究代表者:横田治夫 助教授
      北陸先端科学技術大学院大学 情報科学研究科




[目次]

  1. 研究体制
  2. 2年目の研究内容
  3. 想定されるソフトウェア成果

[研究体制]

       氏名        所属
研究代表者 横田 治夫  北陸先端科学技術大学院大学助教授
研究協力者 杉野 栄二  北陸先端科学技術大学院大学博士課程3年
研究協力者 宮崎 純   北陸先端科学技術大学院大学博士課程3年
研究協力者 土屋由美子  北陸先端科学技術大学院大学修士課程2年
研究協力者 上杉 浩之  北陸先端科学技術大学院大学修士課程2年


[2年目の研究内容]

昨年度は、並列アクティブデータベース処理のうち、ユーザインタ フェースとなる SQL クライアントと、並列アクティブデータベースサーバの 基幹部分となる並列関係データベース処理と並列トランザクション管理の基本 部分を実現するとともに、並列アクティブルール発火の基本部分の検討と、 KLIC プログラムを耐故障化するための基本機能の検討を行った。

今年度はこれに引続き、並列関係データベース処理の最適化、並列 トランザクション管理の機能拡張等を行う。また、並列アクティブルール処理 の基本部分と KLIC プログラム耐故障化コンバータの基本機能の実現を目指す。

並列関係データベース処理では、特に並列結合演算の最適化に焦点を 絞り、並列ハッシュ結合を前提に処理前、処理中にサイト間でデータの偏りが あった場合の対応方法等を検討し、本システムにあった最適化手法を実現する。 この部分は、主に土屋が担当する。

並列トランザクション管理では、ネステッドトランザクションの排他 制御に焦点を当て、子のトランザクションがアボートした場合の排他ロックの 親のトランザクションでの取扱等に関して検討し、アクティブルール処理に合っ た手法を実現する。この部分は、主に横田および上杉が担当する。

並列アクティブルール処理では、アクティブルールのマッチング処理 の並列化を重点に、これまでのシステムにルール処理を組み込む。具体的には、 マッチング処理を高速化するため、プロダクションシステムで用いられる弁別 ネットワークを関係データベース処理で実現する上で、実行順序の最適化を行 う。この部分は、主に宮崎が担当する。

KLIC プログラムの耐故障化では、デバッグで並列論理型言語の非決 定性を扱うために提案されたインスタントリプレイ手法を耐故障化のためにプ ライマリサイト方式に適用する。具体的には、オリジナルのKLIC プログラム を、レコードバージョン、リプレイバージョンと、故障検出兼プロセス割り当 て用プロセスを含むプログラムに変換する。この部分は、主に杉野が担当する。

最終的に、上記の機能を統合して、本年度の成果とする。


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

(1)作成されるソフトウェア名称
KLIC による SQL クライアント/並列アクティブデータベースサーバおよび KLIC プログラム耐故障化コンバータ

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

以下に、SQL クライアントと並列アクティブデータベースサーバ、 および KLIC プログラム耐故障コンバータに分けて記述する。

a) SQL クライアント

関係データベースの標準的なデータ操作記述言語である SQL をイ ンタラクティブに受け付け、関係代数レベルのコマンドに変換する。LAN 環境 のワークステーション上で動作することを前提に、変換したコマンドを Unix のソケットインタフェースを用いて、後述する並列アクティブデータベースサー バに渡す。さらに、サーバーから送られてくる検索結果を表示する。

SQL インタフェース仕様自身は、JIS、ISO 等で規格化されており、 それに準拠する形になっているため、特にビジネス分野での利用性が高い。ま た、すべてが KLIC で記述されているため、機能拡張性に富み、 SQL の言語 仕様的に新たなものを組み込むことも可能である。さらに、当然、ソケットイ ンタフェースをサポートするマシンなら、KLIC が乗ってさえいれば、機種に 依存することなく、何の変更もせずに動かすことができ、ポータビリティが高 い。

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

前述の SQL クライアントからの関係代数レベルのコマンドを受け、 nCUBE 上での並列データベース処理を行なう。SQL クライアント同様、すべて が KLIC で記述されているため、ディスクドライブ名等マシン依存のテーブル を書き換えるのみで、他の機種で動作させることができる。すなわち、並列マ シンを持たないワークステーションのみ LAN 環境でもデータベースサーバと して利用することができる。一方、並列マシンの上で動作させると、KLIC に より関係データベース演算やデッドロック検出の並列アルゴリズムを記述して あるため、並列性を活かした高速実行が可能である。特に、処理コストの大き な結合演算は高い速度向上が望める。

機能的には、アクティブルール発火をサポートしているため、一貫 性制約等をルールで記述することにより、データベース処理の高機能化を図る ことが可能となる。アクティブデータベースの応用範囲は、演繹データベース と比較するとかなり広く、ビジネス分野の利用が望める。さらに、アクティブ データベースを実行する場合、内部でネステッドトランザクションをサポート しているため、複雑なルール実行であっても、並列性を活かした高速実行が可 能である。

当然、サーバーとして、同時に複数のクライアントからの要求に対 応することができ、データベースとしての排他制御の機能により、クライアン ト間のシリアライザビリティは保たれる。
クライアントは、必ずしもSQL クライアントである必要はなく、関 係代数レベルのコマンドを生成できるものであれば何でもよい。例えば演繹デー タベース用のクライアントを実現すれば、アクティブデータベースと演繹デー タベースとを組み合わせたシステムの実験等も可能となる。このように、並列 マシンで動作させた場合の効果が大きく、拡張性も高いシステムである。

c) KLIC プログラムの耐故障化コンバータ

データベース処理を記述する上で、プロセッサの故障を KLIC の処 理系のレベルでマスクすることは、システムの信頼性を確保するために重要な ことである。このための、KLIC のプログラムを変換して、耐故障化すること 試みる。

ベースとなる技術は、分散フォールトトレラントシステムの分野で プライマリサイト方式と呼ばれるバックアッププロセッサを用意しておく方法 である。利用者にとっては、プログラミング上特に耐故障性を意識させないこ とを特徴とし、できるだけ実行時間への影響も少なくしたいと考えている。

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

a) SQL クライアント

SQL のパーザおよび関係代数レベルコマンドジェネレータとソケッ トインタフェースから構成される。昨年度納入したものに機能拡張等を加える。

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

サーバは、トランザクションオブジェクトマネジャ、データオブジェ クトマネジャ、ロックオブジェクトマネジャ、ルールオブジェクトマネジャ、 およびソケットインタフェースから構成される。それぞれのマネジャの構成は、 昨年度の委託研究で検討した構成をベースに記述する。

トランザクションオブジェクトマネジャは、クライアントに対応し てトランザクションID を管理しながら、他のマネジャとのメッセージ通信を 行い、トランザクションのネストも取り扱う。

データオブジェクトマネジャは、関係代数レベルのコマンドに従っ て、並列関係演算の実行を行う。並列アルゴリズムとディスクの並列アクセス によって高速処理を実現する。

ロックオブジェクトマネジャは、データオブジェクトのアクセスに 対し排他制御を行うもので、操作の粒度に従ったロック管理を行う。また、デッ ドロック検出を並列化したことを特徴とする。

ルールオブジェクトマネジャは、アクティブルールの発火管理を行 う。発火可能性のチェックを効率化するために、プロダクションシステムで利 用されている Rete アルゴリズム等を修正して利用することを考えている。

ソケットインタフェースは、SQL クライアント同様に KLIC で提供 されているインタフェースを利用するが、複数のクライアントからの要求をト ランザクションと対応づけるところを特徴とする。

c) KLIC プログラムの耐故障化コンバータ

KL1 の非決定性の部分を吸収して、プライマリィサイトとバックアッ プサイトに同様の実行シーケンスを実現する。まずは、プログラム変換によっ て対応する方向で検討する。

(4)参考とされたICOTフリーソフトウェアとの関連
全体を KLIC で記述してある。

(5)使用予定言語および動作環境/必要とされるソフトウェア・パッ ケージ/ポータビリティなど
使用言語:KLIC
動作環境:Unix ワークステーション 及び nCUBE その他並列マシン
ポータビリティ:並列ディスクアクセスのマシン依存の部分を除けば、非 常にポータビリティは高いと思われる。殊に、SQL クライアン トについては、 UNIX のソケットさえサポートしていれば、 特にマシンを限定しない。

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

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

これまで、汎用並列マシン上の関係データベース処理系としては、 Oracle 7 等市販のものは存在しているが、フリーでポータビリティの高く、 簡単に実験等に利用できるものはなかった。このため、本システムのように移 植が簡単で、機能的な拡張も容易である並列データベースが、フリーソフトと して公開されれば、かなり広い範囲の利用者に喜ばれるではないかと想像する。

特に、すべてをKLIC で記述してあるために、研究者が自分で手を 入れて変更することも容易であり、これからの並列データベース関係の研究の ツールとして、利用してもらえることを望んでいる。また、クライアントとサー バー間で規定している関係代数レベルのコマンドは、クライアントを構成する 上でも各種の実験が試みられる枠組みであり、単なる SQL のインタフェース だけでなく、いろいろなシステムに組み込んで、利用してもらえるものと思う。

さらに、研究分野のみでなく、ビジネス分野からの利用も可能であ ると思われる。当然、その場合に、完成度が十分ではないことは承知していた だくしかないが、銀行のオンライン等シビアな環境でなく、企業内データのデー タベース化等には使えるレベルにしたいと考えている。特に、SQL クライアン トは、これまでビジネスでデータベースを利用してきた人々にとって、非常に 馴染みやすいインタフェースであり、逐次処理の実行時間に不満があるような 場合には、積極的に利用してもらえるのではないかと思う。また、本システム をベースに、より完成度の高いシステムの開発を目指すところが出現してくれ れば、より広い利用が望めると思われる。

アクティブルール発火の枠組みは、今後いろいろな発展が望めると 思われるが、さしあたって、一貫性保持や、動的な動向調査等は、研究分野で もビジネス分野でも利用してもらえると思っている。また、KLIC 処理系の耐 故障化は、今後の KLIC の応用範囲を広げる上で必要な機能であると考える。

(8)添付予定資料

ソースプログラム、利用手引書、使用例


www-admin@icot.or.jp