関係データベース演算やアクティブルール発火を並列実行し、クライアントの SQL インタフェースをサポートする、並列データベース管理システムのプロト タイプを、KLIC によって実現している。以下に、SQL クライアント、並列関 係データベース演算実行、並列トランザクション管理、耐故障化、に分けてそ の内容を記す。
○SQL クライアント
関係データベースの標準的なデータ操作言語である SQL のサポートは、シス
テムの利用範囲を広げる上でも非常に重要である。また、LAN 環境での利用を
前提に、複数のクライアントからデータベースサーバをアクセスできるように
しておくことも必要である。そこで、 標準的な SQL をパーズして関係代数レ
ベルのコマンド木を生成する SQL クライアントと、コマンド木を受け付けて
実行する並列アクティブデータベース処理サーバを実現している。これらは、
KLIC をビジネス分野で展開するために必須の機能であると考えられる。
○並列関係データベース処理
関係データベース検索処理で十分な実行性能を出すためには、ディスクアクセ
スと読み出したデータの処理を並列化することが必要である。並列アクティブ
データベース処理サーバは、関係代数レベルのコマンド木を受け付けて、結合
演算、選択演算、集合演算、集約演算等を並列に実行する。並列データベース
検索処理には、いろいろなレベルで並列化する部分があり、それらの並列化手
法が全体の効率の上で非常に重要となる。KLIC の永続プロセスや論理変数に
よるプロセス間のメッセージ通信等を有効に利用して、効率の良い並列アクティ
ブデータベースサーバを構成するための手法を研究する。
○並列トランザクション管理
複数のクライアントからのデータベースアクセス要求に対して、矛盾のない一
貫したデータベースの状態を維持することは、データベースサーバにとって必
須の機能である。そのために、トランザクションの並列実行管理、データの階
層ロック、並列デッドロック検出、ログによるリカバリィ機能等を実現してい
る。また、アクティブルールの発火により新たな内部的なトランザクションの
生成がされるため、ネステッドトランザクションの実行制御も実現する必要が
ある。これらを、KLIC の特徴を生かして効率良く実現する手法を研究する。
○耐故障化
データベース処理では、故障発生時のデータの損失の与える影響の大きさから、
耐故障設計は非常に重要である。特に並列システムの場合、要素プロセッサ数
が増えるとシステムとしての故障確率が高くなることから、十分な耐故障化を
行なっておく必要がある。KLIC でシステムを実現する場合、プロセッサのマッ
ピングが必ずしもアルゴリズムに依存しないため、アルゴリズム記述レベルで
耐故障化することは効果的ではない。そのため、プロセッサの故障を、言語の
処理系のレベルでマスクする方法を検討している。言語処理系レベルで耐故障
化することは、データベース処理のみならず、広い範囲のアプリケーションで
大いに効果のあるものと思われる。
www-admin@icot.or.jp