平成7年度 委託研究ソフトウェアの提案 |
これまで、ビジネス分野は既成の技術の応用で実現できるものとして、第五 世代コンピュータで研究されてきた技術の利用分野としてはあまり注目されて こなかったと思われる。しかし、並列処理の要素技術という面から見ると、新 たに適用できる技術も多数存在し、特に KLIC の潜在的な能力を示す上で、非 常に重要な適用分野であると思われる。
銀行、生保、流通を始めとして多くの業界では、より高性能で、高機能なデー タベースシステムを待ち望んでいる。例えば、POS により入ってきた大量のデー タをいかに速く、的確に分析して経営判断に結び付けるかが、企業として生き 残る鍵を握っている。そこには、第五世代で研究されてきた並列処理と知識処 理の技術を大いに活用できる。
データベースの分野で、最近注目されているアクティブデータベースは、ルー ルによる能動的なデータベース処理の発火を行なうものである。論理の拡張と しての演繹データベースとは機構的に異なり、人工知能におけるプロダクショ ンシステムとデータベースの融合といった側面を持つ。動的な経営判断や株の 動向解析等への利用も可能なことから、ビジネス分野でも注目されている。
これまで ICOT で研究されてきた、Kappa やQuixote は、知識処理の面から 見ると、オブジェクト指向データベースと演繹データベースを基礎にした、非 常に優れた成果であると思われるが、ビジネス分野に要求される高負荷トラン ザクション処理や SQL インタフェース、アクティブルール発火、更に耐故障 機能と言った内容については、別の方向からの研究が必要であると認識する。
多くの並列マシンに KLIC を移植する場合、ビジネス分野に利用できるデー タベース機能が準備されていることは、その普及をより魅力的にするものと確 信する。
第五世代で研究されてきた成果を、経営判断の意志決定支援等に広く活用す るためには、並列データベース管理システムを用意することが肝要である。 KL1 は、その論理変数の単一代入則のため、データの書き換えを主な操作内容 とするデータベース処理に対しては困難さを残す面もあるが、再帰呼び出しに よる永続プロセスと論理変数によるプロセス間のメッセージ通信は、データベー ス処理の並列化には非常に強力な武器ともなる。
これまで、並列データベース管理システムは各種研究開発されてきたが、並 列関係演算等を並列論理型言語のプロセス間メッセージ通信によって実現して いる例はない。KLIC のメッセージ通信によるシステム記述のスマートさと、 処理速度を示すことにより、その記述能力と適用範囲の広さを示すことができ る。更には、各種並列マシン上に実現することにより、KLIC のポータビリティ を示すこともできる。
昨年の委託研究では、アクティブルールの発火や、ネステッドトランザクショ ン管理、ロック管理、デッドロック検出、等の機能を KL1 のメッセージ通信 により実現する方法について検討を行ない、スマートにモデル化できることを 示した。今回の研究では、その成果を基に、KLIC によって実際に利用できる 並列データベース管理システムのプロトタイプ作成を目指す。
ある程度負荷に耐えられる実用的なプロトタイプを提供するためには、最低 限のリカバリィ機能、耐故障機能、排他制御、標準的な SQL のインタフェー ス、LAN 環境を前提としたクライアント/サーバー機能、等を KLIC によって 実現する必要がある。また、実用的な処理速度を実現するためには、関係デー タベース演算の並列実行、アクティブルールの並列発火管理、等も実現する必 要がある。更に、耐故障機能については、言語処理系レベルでの機能拡張をす る必要もある。これらを、並列論理型言語の枠組でいかに統合するかを明らか にすることも本研究の目的の一つである。
具体的には、 KLIC の UNIX インタフェースのソケット機能を用いて、関係 代数レベルのコマンドを受け付けて実行する並列データベース処理サーバと、 標準的な SQL を受け付けて関係代数レベルのコマンドにパーズする SQL クラ イアントを実現する。クライアントは、SUN 等のワークステーション上に実現 し、並列データベース処理サーバは、超並列マシン nCUBE 上に実現するする ことを想定している。
実際には、研究は既に先行して開始しており、一部動作を確認している部分 もある。SQL パーザの部分は、横田が ICOT 在籍中に作成した Prolog による SQL パーザを KLIC 用に書き直して一部実現している。また、クライアント/ サーバ機能も、複数 SUN 上の SQL クライアントと並列データベース処理サー バが基本的な関係レベルコマンドをやりとりする部分は確認できている。簡単 なデモンストレーションも可能となっている。SQL 全機能の実現と、入力間違 いの対応法、トランザクション中断時のコミュニケーション等を検討していく。
アルゴリズム的には、並列ハッシュ結合、並列ソートマージ結合や、木状プ ロセス構成、ブロードキャスト型プロセス構成による選択演算、集約演算等を 用いる。また、データ分散も、値域分割、ラウンドロビン分割、ハッシュ分割 等を想定している。このように、アルゴリズムやデータ分散方法に関しては、 これまでに研究されてきたものをベースに、特に奇抜なものを実現する予定は 今の所ないが、従来から行なわれてきた手法を KLIC によって実現した場合の 実行時間の計測は、 KLIC の通信コストの評価等に非常に重要であると考える。 また、そこから KLIC 特有のアルゴリズムやデータ分割方法が見い出せる可能 性もある。
現時点では、本学の所有する nCUBE 上に移植した KLIC で実現することと するが、ポータビリティを考慮した実現としたい。
全体の枠組としては、昨年度の委託研究テーマの「論理型言語による並列ト ランザクション管理」として検討した、トランザクションオブジェクト集合、 データオブジェクト集合、ロックオブジェクト集合、ルールオブジェクト集合 の間のメッセージ通信を用いたシステム構成を基に実現する。各オブジェクト 集合は、KLIC の永続プロセスにより自律的なエージェントとして動作する。 エージェント毎に並列に動作できるため、データオブジェクト単位の並列化が 可能である。また、ロックエントリー毎に並列にデッドロック検出を行なうこ とができる。
アクティブルールの更新とデータオブジェクトアクセスの同期の取り方、階 層ロックを採り入れる場合のデッドロック検出機構の拡張方法、データオブジェ クトとしてのディスクに格納された内容のキャッシング等、検討項目は多いが、 まず基本的な機能から実現し、順次新しい機能を取り込んでいく。
アクティブデータベースの実現で重要な要点の一つに、効率的なルール発火 がある。アクティブデータベースの基となったプロダクションシステムでも、 条件に合致するルールの検索が処理時間の大半を占めることが知られている。 プロダクションシステムでは、ルール発火の効率化のために、ルールをネット ワーク状にコンパイルして、その上に変更トークンを流す Rete アルゴリズム と呼ばれるような手法が主流となっている。また、 Rete アルゴリズムの並列 化の手法として、ハッシュを利用して、ネットワークの2入力ノードを並列化 する方法も提案されている。
我々は、これまで、ハッシュ利用による Rete アルゴリズムの偏りを、プロ セッサのグループ化によって軽減する方法や、ソフトウェアキャッシュによっ てシステムを効率化する方法を提案し、超並列マシン nCUBE の上に実現し、 その効果を実証してきた。
本研究では、その手法をアクティブデータベースに採り入れ、KLIC を使っ て実現する。
KLIC でシステムを実現する場合、プロセッサのマッピングが必ずしも記述 されたアルゴリズムに依存しないことがあるため、KLIC でのアルゴリズム記 述レベルで耐故障化することは、必ずしも効果的ではない。そのため、プロセッ サの故障を、言語の処理系のレベルでマスクする方法が考えられる。
我々は、これまでに nCUBE 上に KLIC を移植してきた。その処理系を基に、 分散フォールトトレラントシステムの分野で、プライマリサイト方式と呼ばれ るバックアッププロセッサを用意する技法を、KLIC の処理系に埋め込む方法 を検討する。言語処理系レベルで耐故障化することは、データベース処理のみ ならず、広い範囲のアプリケーションで大いに効果のあるものと思われる。
以上述べた機能を統合して、ある程度使い物になる並列データベース管理シ ステムを実現する。
SQL インタフェース仕様自身は、JIS、ISO 等で規格化されており、それに 準拠する形になっているため、特にビジネス分野での利用性が高い。また、す べてが KLIC で記述されているため、機能拡張性に富み、 SQL の言語仕様的 に新たなものを組み込むことも可能である。さらに、当然、ソケットインタフェー スをサポートするマシンなら、KLIC が乗ってさえいれば、機種に依存するこ となく、何の変更もせずに動かすことができ、ポータビリティが高い。
機能的には、アクティブルール発火をサポートしているため、一貫性制約等 をルールで記述することにより、データベース処理の高機能化を図ることが可 能となる。アクティブデータベースの応用範囲は、演繹データベースと比較す るとかなり広く、ビジネス分野の利用が望める。さらに、アクティブデータベー スを実行する場合、内部でネステッドトランザクションをサポートしているた め、複雑なルール実行であっても、並列性を活かした高速実行が可能である。
当然、サーバーとして、同時に複数のクライアントからの要求に対応するこ とができ、データベースとしての排他制御の機能により、クライアント間のシ リアライザビリティは保たれる。
クライアントは、必ずしもSQL クライアントである必要はなく、関係代数レ ベルのコマンドを生成できるものであれば何でもよい。例えば演繹データベー ス用のクライアントを実現すれば、アクティブデータベースと演繹データベー スとを組み合わせたシステムの実験等も可能となる。このように、並列マシン で動作させた場合の効果が大きく、拡張性も高いシステムである。
ベースとなる技術は、分散フォールトトレラントシステムの分野でプライマ リサイト方式と呼ばれるバックアッププロセッサを用意しておく方法である。 まずは、プログラム変換で対応できるかどうかから検討を始め、場合によって は、処理系の中に変更を加える。
利用者にとっては、プログラミング上特に耐故障性を意識させないことを特 徴とし、できるだけ実行時間への影響も少なくしたいと考えている。
www-admin@icot.or.jp