(57)【特許請求の範囲】
【請求項１】
複数の計算機を用いた複数の記憶装置を管理する記憶装置管理方法であって、
前記計算機は、前記記憶装置のディレクトリ情報を有し、
前記計算機から前記記憶装置に対するアクセスの分離又はアクセスの統合の指示に基づいて、
前記記憶装置に対応した前記計算機から前記計算機と前記記憶装置との対応関係の変更に関する前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置とのアクセスに関する対応関係を変更するための処理を行うことを特徴とする記憶装置管理方法。
【請求項２】
前記ディレクトリ情報とは、記憶装置に格納されるデータの位置情報を含む情報であることを特徴とする請求項１記載の記憶装置管理方法。
【請求項３】
複数の計算機を用いた複数の記憶装置を管理する記憶装置管理システムであって、
前記計算機は、前記記憶装置のディレクトリ情報と、
前記計算機から前記記憶装置に対するアクセスの分離又はアクセスの統合の指示を受け付ける手段と、
前記記憶装置に関するアクセスの分離又はアクセスの統合の指示に基づいて、
前記記憶装置に対応した前記計算機から前記計算機と前記記憶装置との対応関係の変更に関する前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置とのアクセスに関する対応関係を変更するための処理手段を有することを特徴とする記憶装置管理システム。
【請求項４】
複数の計算機を用いた記憶装置管理方法であって、
第一の計算機は、前記記憶装置のディレクトリ情報を有し、
前記複数の計算機の負荷情報を算出し、
算出した前記複数の計算機の負荷情報に基づいて、前記計算機と前記記憶装置との対応関係の変更に関する前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置とのアクセスに関する対応関係を変更するための処理を行うことを特徴とする記憶装置管理方法。
【請求項５】
複数の計算機とディスクアレイ装置がネットワークを介して接続されたシステムにおけるディスクアレイ装置管理方法であって、
前記複数の計算機の負荷状態を算出し、
算出した前記負荷状態に基づいて、計算機がディスクアレイ装置へアクセスするために用いる前記計算機と前記ディスクアレイ装置との対応関係の変更に関するディレクトリ情報を移動し、
前記記憶装置に対応した前記計算機から前記ディレクトリ情報を移動した計算機と前記ディスクアレイ装置との対応関係を変更するための処理を行うことを特徴とするディスクアレイ装置管理方法。
【請求項６】
複数の計算機とディスクアレイ装置がネットワークを介して接続されたシステムにおけるディスクアレイ装置管理方法であって、
前記複数の計算機の負荷状態を算出し、
算出した前記負荷状態に基づいて、ディスクアレイ装置へアクセスする計算機の台数を変更し、ディスクアレイ装置へアクセスするために用いる変更に関するディレクトリ情報を前記ディスクアレイ装置へアクセスする計算機へ移動し、
前記記憶装置に対応した前記計算機から前記ディレクトリ情報を移動した計算機と前記ディスクアレイ装置との対応関係を変更するための処理を行うことを特徴とするディスクアレイ装置管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベース分割管理方法および並列データベースシステムに関し、さらに詳しくは、データベース処理を行うプロセッサ数またはディスク数を負荷に合わせて最適にするデータベース分割管理方法および並列データベースシステムに関する。
【０００２】
【従来の技術】
例えば、「Ｄｅｖｉｄ  ＤｅＷｉｔｔ  ａｎｄ  Ｊｉｍ  Ｇｒａｙ：Ｐａｒａｌｌｅｌ  Ｄａｔａｂａｓｅ  Ｓｙｓｔｅｍｓ：Ｔｈｅ  Ｆｕｔｕｒｅ  ｏｆ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｄａｔａｂａｓｅ  Ｓｙｓｔｅｍｓ，ＣＡＣＭ，Ｖｏｌ．３５，Ｎｏ．６，１９９２  」において、並列データベースシステムが提案されている。
この並列データベースシステムでは、密結合あるいは疎結合に複数のプロセッサを接続し、それら複数のプロセッサに対して、データベース処理を配分している。
【０００３】
【発明が解決しようとする課題】
従来の並列データベースシステムのシステム構成はユーザに任されており、且つ、固定的であった。
このため、システム構成が初めから負荷に不適合であったり、途中から不適合になる場合があり、期待する並列度が得られなかったり、高速な問い合せが実現できない問題点があった。
そこで、本発明の目的は、期待する並列度を得ることが出来ると共に、高速な問い合せを実現することが出来るデータベース分割管理方法および並列データベースシステムを提供することにある。
【０００４】
【課題を解決するための手段】
本発明の計算機を用いた記憶装置管理方法であって、前記計算機は、前記記憶装置のディレクトリ情報を有し、前記記憶装置に関するアクセスの分離又はアクセスの統合の指示に基づいて、前記ディレクトリ情報を他の計算機へ移動し、前記計算機と前記記憶装置との対応関係を変更するための処理を行うことを特徴とする。
また、本発明ではシステム構成に応じた記憶装置の管理を行うことを特徴とする。
第一の観点では、本発明は、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つＢＥＳノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能をもつＩＯＳノードとをネットワークで接続してなる並列データベースシステムにおいて、データベース処理の負荷パターンに応じて、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＩＯＳノードに割当てるプロセッサ数と、ＩＯＳノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【０００５】
また、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つＢＥＳノードとをネットワークで接続してなる並列データベースシステムにおいて、データベース処理の負荷パターンに応じて、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＢＥＳノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【０００６】
上記第１の観点によるデータベース分割管理方法では、データベース処理の負荷パターン（一件検索処理，一件更新処理，データ取り出し処理など）に応じて、各ノードに割当てるプロセッサ数とディスク数とディスクの分割数とを決定する。そこで、システム構成が負荷に適合したものとなり、期待する並列度が得られると共に、高速な問い合せを実現できるようになる。
【０００７】
第２の観点では、本発明は、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つＢＥＳノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つＩＯＳノードとをネットワークで接続してなる並列データベースシステムにおいて、データベースのスキャンに必要な時間を一定とする並列アクセス可能なページ数の上限を決め、そのページ数の上限に応じて、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＩＯＳノードに割当てるプロセッサ数と、ＩＯＳノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【０００８】
また、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つＢＥＳノードとをネットワークで接続してなる並列データベースシステムにおいて、データベースのスキャンに必要な時間を一定とする並列アクセス可能なページ数の上限を決め、そのページ数の上限に応じて、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＢＥＳノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【０００９】
上記第２の観点によるデータベース分割管理方法では、データベースのスキャンに必要な時間を一定とする並列アクセス可能なページ数の上限に応じて、各ノードに割当てるプロセッサ数とディスク数とディスクの分割数とを決定する。そこで、高速な問い合せを実現できるようになる。
【００１０】
第３の観点では、本発明は、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つＢＥＳノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つＩＯＳノードとをネットワークで接続してなる並列データベースシステムにおいて、負荷パターンにより期待並列度ｐを算出し、その期待並列度ｐに応じて、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＩＯＳノードに割当てるプロセッサ数と、ＩＯＳノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【００１１】
また、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つＢＥＳノードとをネットワークで接続してなる並列データベースシステムにおいて、負荷パターンにより期待並列度ｐを算出し、その期待並列度ｐに応じて、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＢＥＳノードのディスク数と、ディスクの分割数とを決定することを特徴とするデータベース分割管理方法を提供する。
【００１２】
上記第３の観点によるデータベース分割管理方法では、負荷パターンにより算出した期待並列度ｐに応じて、各ノードに割当てるプロセッサ数とディスク数とディスクの分割数とを決定する。そこで、期待する並列度が得られるようになる。
【００１３】
第４の観点では、本発明は、上記構成のデータベース分割管理方法において、最適ページアクセス数ｍを算出し、キーレンジ分割がある場合には、サブキーレンジ単位の格納ページ数ｓ（＝ｍ／ｐ）を算出し、ｓページ単位でサブキーレンジ分割し、ディスクへデータ挿入を行うことを特徴とするデータベース分割管理方法を提供する。
上記第４の観点によるデータベース分割管理方法では、期待並列度ｐと最適ページアクセス数ｍとから算出したサブキーレンジ単位の格納ページ数ｓ（＝ｍ／ｐ）でサブキーレンジ分割して、ディスクへデータ挿入を行う。そこで、データを略均等に分割管理できるようになる。
【００１４】
第５の観点では、本発明は、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能を持つＢＥＳノードと、ディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つＩＯＳノードとをネットワークで接続してなる並列データベースシステムにおいて、問合せ実行処理中に取得したアクセスページ数，ヒットロウ数，通信回数などの負荷情報を基にして負荷アンバランスを検出し、負荷アンバランスを解消する方向に、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＩＯＳノードに割当てるプロセッサ数と、ＩＯＳノードのディスク数とを変更することを特徴とするデータベース分割管理方法を提供する。
【００１５】
また、ユーザからの問合せの解析，最適化，処理手順作成を実行する機能を有するＦＥＳノードと、そのＦＥＳノードで作成された処理手順を基にしてデータベースをアクセスする機能およびディスクを備え且つそのディスクにデータベースを格納し管理する機能を持つＢＥＳノードとをネットワークで接続してなる並列データベースシステムにおいて、問合せ実行処理中に取得したアクセスページ数，ヒットロウ数，通信回数などの負荷情報を基にして負荷アンバランスを検出し、負荷アンバランスを解消する方向に、ＦＥＳノードに割当てるプロセッサ数と、ＢＥＳノードに割当てるプロセッサ数と、ＢＥＳノードのディスク数とを変更することを特徴とするデータベース分割管理方法を提供する。
【００１６】
上記第５の観点によるデータベース分割管理方法では、問合せ実行処理中に負荷アンバランスを検出し、その負荷アンバランスを解消する方向に、各ノードのプロセッサ数またはディスク数を変更する。そこで、負荷変動があってもシステム構成が常に負荷に適合したものとなり、期待する並列度が得られると共に、高速な問い合せを実現できるようになる。
【００１７】
第６の観点では、本発明は、上記構成のデータベース分割管理方法において、ＢＥＳノードに割当てるプロセッサ数またはＩＯＳノードに割当てるプロセッサ数またはディスク数を追加する場合、オンライン中であれば、追加対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、新たにプロセッサあるいはディスクを割り当て、ロック情報，ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
また、上記構成のデータベース分割管理方法において、ＢＥＳノードに割当てるプロセッサ数またはディスク数を追加する場合、オンライン中であれば、追加対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、新たにプロセッサあるいはディスクを割り当て、ロック情報，ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、追加対象となるディスク群から新たなディスク群へデータを移動し、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
【００１８】
上記第６の観点によるデータベース分割管理方法では、プロセッサ数またはディスク数を追加，削除する場合、オンライン中であれば、表のキーレンジ範囲を閉塞した後、引き継ぎ処理を行い、その後、前記閉塞を解除する。そこで、オーバヘッドを最小限にできる。また、ＩＯＳノードがあるシステム構成では、データを移動せずに引き継ぎできるようになる。
【００１９】
第７の観点では、本発明は、上記構成のデータベース分割管理方法において、ＢＥＳノードに割当てるプロセッサ数またはＩＯＳノードに割当てるプロセッサ数またはディスク数を削除する場合、オンライン中であれば、削除対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、削除するプロセッサまたはディスクを決定し、ロック情報，ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
【００２０】
また、上記構成のデータベース分割管理方法において、ＢＥＳノードに割当てるプロセッサ数またはディスク数を削除する場合、オンライン中であれば、削除対象となるプロセッサまたはディスクで管理されるデータベースの表のキーレンジ範囲を閉塞し、削除するプロセッサまたはディスクを決定し、ロック情報，ディレクトリ情報の引き継ぎを行い、ノード振り分け制御に必要なディクショナリ情報の書き換えを行い、削除対象となるディスク群から引継ぐディスク群へデータを移動し、その後、オンライン中であれば、前記閉塞を解除することを特徴とするデータベース分割管理方法を提供する。
【００２１】
上記第７の観点によるデータベース分割管理方法では、プロセッサ数またはディスク数を追加，削除する場合、オンライン中であれば、表のキーレンジ範囲を閉塞した後、引き継ぎ処理を行い、その後、前記閉塞を解除する。そこで、オーバヘッドを最小限にできる。また、ＩＯＳノードがあるシステム構成では、データを移動せずに引き継ぎできるようになる。
【００２２】
第８の観点では、本発明は、上記構成のデータベース分割管理方法により、データベース処理を行うプロセッサ数またはディスク数を動的に変更することを特徴とする並列データベースシステムを提供する。
上記第８の観点による並列データベースシステムでは、上記第５の観点から第７の観点の作用により、スケーラブルな並列データベースシステムとなる。
【００２３】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて詳細に説明する。なお、これにより本発明が限定されるものではない。
図１は、本発明の一実施形態の並列データベースシステム１を示す構成図である。
この並列データベースシステム１は、ＦＥＳ（フロントエンドサーバ）ノード，ＢＥＳ（バックエンドサーバ）ノード，ＩＯＳ（インプットアウトプットサーバ）ノード，ＤＳ（ディクショナリサーバ）ノードおよびＪＳ（ジャーナルサーバ）ノードを、ネットワーク９０により接続した構成である。各ノードは、他のシステムとも接続されている。
ＦＥＳノードは、ディスクを持たない少なくとも１台のプロセッサから構成されたＦＥＳ７５からなるノードであり、ユーザからの問合せの解析，最適化，処理手順作成を実行するフロントエンドサーバの機能を持っている。
ＢＥＳノードは、ディスクを持たない少なくとも１台のプロセッサから構成されたＢＥＳ７３からなるノードであり、前記ＦＥＳ７５で作成された処理手順を基にしてデータベースをアクセスする機能を持っている。
ＩＯＳノードは、少なくとも１台のプロセッサから構成されたＩＯＳ７０および少なくとも１台のディスク８０からなるノードであり、ディスク８０にデータベースを格納し管理する機能を持っている。なお、ＩＯＳノードの機能をＢＥＳノードに持たせれば、ＩＯＳノードを省略できる。この場合、ＢＥＳ７３にディスクを接続すると共に、ＢＥＳ７３がディスク８０にデータベースを格納し管理する機能を持つ。
【００２４】
データベースは、複数の表からなる。表は、２次元のテーブル形式であり、複数のロウ（行）からなる。１つのロウは、１つ以上のカラム（属性）からなる。この表は、所定数のロウからなる固定長のページ単位で物理的に分割されて、ディスク８０上に格納される。各ページのディスク８０上の格納位置は、ディレクトリ情報を用いて知ることが出来る。
ＤＳノードは、少なくとも１台のプロセッサから構成されたＤＳ７１および少なくとも１台のディスク８１からなるノードであり、データベースの定義情報を一括管理する機能を持っている。
ＪＳノードは、少なくとも１台のプロセッサから構成されたＪＳ７２および少なくとも１台のディスク８２からなるノードであり、各ノードで実行されるデータベース更新履歴情報を格納し、管理する機能を持っている。
【００２５】
図２は、上記並列データベースシステム１におけるＦＥＳ７５，ＢＥＳ７３，ＩＯＳ７０のプロセッサ数およびディスク数およびディスクの分割数を決める本発明のデータベース分割管理方法の概念図である。
まず、ユーザが指定するワークロードでデータベース処理の負荷パターンを決める。負荷パターンには、一件検索処理、一件更新処理、データ取り出し処理などがある。その負荷パターンに応じて、ＩＯＳ７０でディスク８０を何分割して管理するか決定する（ＩＯＳノードの機能をＢＥＳが持つ場合は、ＢＥＳ７３でディスクを何分割して管理するか決定する）。
【００２６】
すなわち、スキーマ定義時、表の分割方法（キー値範囲，範囲毎ロウ数（ページ数を換算）など）から、格納に必要なディスク数が判明し、閉塞および再編成の単位が決まれば、ＢＥＳ７３およびＩＯＳ７０の組み合わせ（閉塞あるいは再編成の単位がディスク，ＩＯＳ，ＢＥＳに依存する）が決まる。
これにより、ＢＥＳ７３，ＩＯＳ７０，ディスク８０の構成台数が決まる。即ち、次のようになる。
既分割数．．．全ＢＥＳで管理する並列アクセス可能なデータベース分割単位（動的なＢＥＳ追加，削除は、この分割単位で行う）
各分割毎ディスク数．．．各分割で割り当てられるディスク数
図２は、ディスク数が”８”、既分割数が”４”、各分割毎ディスク数が”２”の場合である。
なお、プロセッサ性能がｎ倍となれば、分割数を変えずに、各分割で利用するボリューム数をｎ倍とする（ただし、ＩＯＳ７０とディスク８０の間の総データ転送レートの制限があるため、ディスク数にも制限がある）。
また、ここでディスクとは、ディスク装置１台に対応させている。本発明では、必ずしも「ディスク」はディスク装置１台と１対１に対応させる必要はない。例えば、１ディスク装置に複数のディスク装置を含む場合（ディスクアレイ装置）、並列アクセス可能な入出力単位の数を「ディスク装置」として適用すればよい。
【００２７】
図２のようにＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：４：１：８であるが、初期データロード時には、ＦＥＳ，ＢＥＳは１台あればよく、ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：１：１：８となっている。そのため、ＢＥＳ７３１には、既分割＃１〜＃４のディスク８１１〜８４２に格納されるデータベースのディレクトリ情報を持つ。
ＢＥＳ７３の負荷が軽くて、ＢＥＳ７３１の１台だけでＩＯＳ７０および８台のディスク８１１〜８４２を処理可能な場合、ＢＥＳ７３１の１台だけで８台のディスク８１１〜８４２に格納されるデータベースをアクセスする。従って、ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：１：１：８のままである。
ＢＥＳ７３１の負荷が増加して利用率１００％の状態が続き負荷アンバランスが検出されると、ＢＥＳ７３２が追加される。既分割数が”４”であるので、２つのＢＥＳ７３１，７３２にそれぞれ２つの分割が対応付けられる。そのため、ＢＥＳ７３１には、既分割＃１〜＃２のディスク８１１〜８２２に格納されるデータベースのディレクトリ情報を持つ。また、ＢＥＳ７３２には、既分割＃３〜＃４のディスク８３１〜８４２に格納されるデータベースのディレクトリ情報を持つ。ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：２：１：８となる。
【００２８】
さらに、ＢＥＳ７３１，７３２の負荷が増加して利用率１００％の状態が続き負荷アンバランスが検出されると、ＢＥＳ７３１，７３２にそれぞれＢＥＳ７３３，７３４が追加される。既分割数が”４”であるので、４つのＢＥＳ７３１，７３２，７３３，７３４にそれぞれ１つの分割が対応付けられる。そのため、ＢＥＳ７３１には、既分割＃１のディスク８１１〜８１２に格納されるデータベースのディレクトリ情報を持つ。また、ＢＥＳ７３２には、既分割＃２のディスク８２１〜８２２に格納されるデータベースのディレクトリ情報を持つ。また、ＢＥＳ７３３には、既分割＃３のディスク８３１〜８３２に格納されるデータベースのディレクトリ情報を持つ。また、ＢＥＳ７３４には、既分割＃４のディスク８４１〜８４２に格納されるデータベースのディレクトリ情報を持つ。ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：４：１：８となる。
【００２９】
負荷が軽くなり、ＢＥＳ７３３，７３４の利用率が例えば５０％未満の状態が続くと、ＢＥＳ７３３，７３４に割り当ててあるノードを他の処理のために利用する方が有効である。そこで、利用率が５０％未満のＢＥＳ７３３，７３４を合わせる。すると、ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：２：１：８に縮退する。
【００３０】
以上のように、負荷に応じてＢＥＳを増減すれば、ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：１：１：８〜１：４：１：８の間でスケーラブルなシステムを実現できる。
ＩＯＳ７０は、ＢＥＳ７３とディスク８０の対応関係に依らず、並列にアクセス可能なディスク数分の並列なタスクが存在すればよい。このため、データの移動を行わず、ディレクトリ情報をＢＥＳ間で移動することで、ＢＥＳ７３とディスク８０の対応関係を変更でき、アクセスの分離および統合が容易に可能となる。
次に、負荷パターンが一件更新処理の場合とデータ取り出し処理の場合について、プロセッサ数，ディスク数，ディスクの分割数を、数値例で説明する。
前提条件は、以下のように仮定する。
0003599055.tif 000002
Ａ．一件更新処理（１ページアクセス）の場合
（１）ＩＯＳノードがあるシステム構成の場合
ＦＥＳ処理の３０［Ｋステップ］でプロセッサ性能１０［Ｍステップ／秒］を割ると、３３３回／秒まで受取処理が可能である。
【００３１】
また、ＦＥＳからの実行要求の受信処理６［Ｋステップ］＋ＢＥＳからのデータ取り出し要求の送信処理６［Ｋステップ］＋ＩＯＳからのデータ取り出し結果の受信処理１０［Ｋステップ］＋一件更新処理６０［Ｋステップ］＋ＦＥＳへの実行要求結果の送信処理６［Ｋステップ］＝８８［Ｋステップ］がＢＥＳでの一件更新処理で必要であるから、これでプロセッサ性能１０［Ｍステップ／秒］を割ると、１１４回／秒まで一件更新処理が可能である。
さらに、ＢＥＳからの入出力要求の受信処理６［Ｋステップ］＋入出力発行処理８［Ｋステップ］＋ＢＥＳへの入出力要求結果の送信処理６［Ｋステップ］＝２０［Ｋステップ］がＩＯＳのディスクへのアクセスに必要であるから、これでプロセッサ性能１０［Ｍステップ／秒］を割ると、５００回／秒までディスクへのアクセスが可能である。
【００３２】
また、１ページのランダム入出力で２０［ｍ秒］を要するので、１台のディスクには５０回／秒までアクセス可能となる。これで前記ＩＯＳでのディスクへのアクセス可能回数５００回／秒を割ると、ＩＯＳには１０台までのディスクを実装可能である。
また、前記ＢＥＳでの一件更新処理可能回数１１４回／秒で前記ＩＯＳでのディスクへのアクセス可能回数５００回／秒を割ると、１台のＩＯＳで４．３台のＢＥＳに対応可能である。
【００３３】
さらに、前記ＢＥＳでの一件更新処理可能回数１１４回／秒で前記ＦＥＳでの受取処理可能３３３回／秒を割ると、１台のＦＥＳで３台のＢＥＳに対応可能である。
以上から、ＦＥＳ：ＢＥＳ＝１：３、ＢＥＳ：ＩＯＳ＝４．３：１、ＩＯＳ：ディスク＝１：１０となる。そこで、総合的には、図３に示すように、ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：４：１：８とすると、ほぼバランスがとれた実装になる（ＦＥＳとディスクに多少のアンバランスが生じる）。
【００３４】
（２）ＩＯＳノードの機能をＢＥＳノードに持たせたシステム構成の場合
ＦＥＳ処理の３０［Ｋステップ］でプロセッサ性能１０［Ｍステップ／秒］を割ると、３３３回／秒まで受取処理が可能である。
また、ＦＥＳからの実行要求の受信処理６［Ｋステップ］＋入出力発行処理８［Ｋステップ］＋一件更新処理６０［Ｋステップ］＋ＦＥＳへの実行要求結果の送信処理６［Ｋステップ］＝８０［Ｋステップ］がＢＥＳでの一件更新処理で必要であるから、これでプロセッサ性能１０［Ｍステップ／秒］を割ると、１２５回／秒まで一件更新処理が可能である。
また、１ページのランダム入出力で２０［ｍ秒］を要するので、１台のディスクには５０回／秒までアクセス可能となる。これで前記ＢＥＳでの一件更新処理可能回数１２５回／秒を割ると、ＢＥＳには２．５台までのディスクを実装可能である。
さらに、前記ＢＥＳでの一件更新処理可能回数１２５回／秒で前記ＦＥＳでの受取処理可能３３３回／秒を割ると、１台のＦＥＳで２．６台のＢＥＳに対応可能である。
【００３５】
以上から、ＦＥＳ：ＢＥＳ＝１：２．６、ＢＥＳ：ディスク＝１：２．５となる。そこで、総合的には、図４に示すように、ＦＥＳ：ＢＥＳ：ディスク＝１：４：８とすると、ほぼバランスがとれた実装になる（ＦＥＳに多少のアンバランスが生じる）。
Ｂ．データ取り出し処理（１０ページアクセス）の場合
（１）ＩＯＳノードがあるシステム構成の場合
ＦＥＳ処理の３０［Ｋステップ］でプロセッサ性能１０［Ｍステップ／秒］を割ると、３３３回／秒まで受取処理が可能である。
また、ＦＥＳからの実行要求の受信処理６［Ｋステップ］＋ＢＥＳからのデータ取り出し要求の送信処理６［Ｋステップ］＋ＩＯＳからのデータ取り出し結果の受信処理４６［Ｋステップ］＋データ取り出し処理２２０［Ｋステップ］＋ＦＥＳへの実行要求結果の送信処理６［Ｋステップ］＝２８４［Ｋステップ］がＢＥＳでのデータ取り出し処理で必要であるから、これでプロセッサ性能１０［Ｍステップ／秒］を割ると、３５回／秒までデータ取り出し処理が可能である。
さらに、ＢＥＳからの入出力要求の受信処理６［Ｋステップ］＋入出力発行処理４４［Ｋステップ］＋ＢＥＳへの入出力要求結果の送信処理６［Ｋステップ］＝５６［Ｋステップ］がＩＯＳのディスクへのアクセスに必要であるから、これでプロセッサ性能１０［Ｍステップ／秒］を割ると、１７９回／秒までディスクへのアクセスが可能である。
【００３６】
また、１０ページの一括入出力で３０［ｍ秒］を要するので、１台のディスクには３３回／秒までアクセス可能である。これで前記ＩＯＳでのディスクへのアクセス可能回数１７９回／秒を割ると、５．４台までのディスクを実装可能である。
また、前記ＢＥＳでのデータ取り出し処理可能回数３５回／秒で前記ＩＯＳでのディスクへのアクセス可能回数１７９回／秒を割ると、１台のＩＯＳで５．１台のＢＥＳに対応可能である。
さらに、前記ＢＥＳでのデータ取り出し処理可能回数３５回／秒で前記ＦＥＳでの受取処理可能３３３回／秒を割ると、１台のＦＥＳで９．５台のＢＥＳに対応可能である。
以上から、ＦＥＳ：ＢＥＳ＝１：９．５、ＢＥＳ：ＩＯＳ＝５．１：１、ＩＯＳ：ディスク＝１：５．４となる。そこで、総合的には、ＦＥＳ：ＢＥＳ：ＩＯＳ：ディスク＝１：１０：２：１０とすると、ほぼバランスがとれた実装になる（ディスクに多少のアンバランスが生じる）。
【００３７】
（２）ＩＯＳノードの機能をＢＥＳノードに持たせたシステム構成の場合
ＦＥＳ処理の３０［Ｋステップ］でプロセッサ性能１０［Ｍステップ／秒］を割ると、３３３回／秒まで受取処理が可能である。
また、ＦＥＳからの実行要求の受信処理６［Ｋステップ］＋入出力発行処理４４［Ｋステップ］＋データ取り出し処理２２０［Ｋステップ］＋ＦＥＳへの実行要求結果の送信処理６［Ｋステップ］＝２７６［Ｋステップ］がＢＥＳでのデータ取り出し処理で必要であるから、これでプロセッサ性能１０［Ｍステップ／秒］を割ると、３６回／秒までデータ取り出し処理が可能である。
また、１０ページの一括入出力で３０［ｍ秒］を要するので、１台のディスクには３３回／秒までアクセス可能である。これで前記ＢＥＳでのデータ取り出し処理可能回数３６回／秒を割ると、１台だけのディスクを実装可能である。
【００３８】
さらに、前記ＢＥＳでのデータ取り出し処理可能回数３６回／秒で前記ＦＥＳでの受取処理可能３３３回／秒を割ると、１台のＦＥＳで９．２台のＢＥＳに対応可能である。
以上から、ＦＥＳ：ＢＥＳ＝１：９．２、ＢＥＳ：ディスク＝１：１となる。そこで、総合的には、ＦＥＳ：ＢＥＳ：ディスク＝１：１０：１０とすると、ほぼバランスがとれた実装になる。
【００３９】
図５は、ＦＥＳ７５の構成図である。
ＦＥＳ７５は、ユーザが作成したアプリケーションプログラム１０〜１１と、問合せ処理やリソース管理などのデータベースシステム全体の管理を行う並列データベース管理システム２０と、データの読み書きなどの計算機システム全体の管理を受け持つオペレーティングシステム３０とを具備している。
【００４０】
上記並列データベース管理システム２０は、システム制御部２１と、論理処理部２２と、物理処理部２３と、処理対象となるデータを一時的に格納するデータベース／ディクショナリ２４とを具備している。また、上記並列データベース管理システム２０は、ネットワーク９０および他のシステムと接続されている。
【００４１】
上記システム制御部２１は、入出力の管理等を行う。また、データロード処理２１０と、動的負荷制御処理２１１とを具備している。
上記論理処理部２２は、問合せの構文解析や意味解析を行う問合せ解析２２０と、適切な処理手順候補を生成する静的最適化処理２２１と、処理手順候補に対応したコードの生成を行なうコード生成２２２とを具備している。また、処理手順候補から最適なものを選択する動的最適化処理２２３と、選択された処理手順候補のコードの解釈実行を行うコード解釈実行２２４とを具備している。
【００４２】
上記物理処理部２３は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理２３０と、データベースレコードの読み書き等を制御するデータベース／ディクショナリバッファ制御２３１と、システムで共用するリソースの排他制御を実現する排他制御２３３とを具備している。
【００４３】
図６は、ＢＥＳ７３の構成図である。
ＢＥＳ７３は、データベースシステム全体の管理を行う並列データベース管理システム２０と、計算機システム全体の管理を受け持つオペレーティングシステム３０とを具備して構成されている。なお、ＩＯＳノードの機能を持つときは、ディスクを有し、そのディスクにデータベース４０を格納し、管理する。
【００４４】
上記並列データベース管理システム２０は、システム制御部２１と、論理処理部２２と、物理処理部２３と、処理対象となるデータを一時的に格納するデータベースバッファ２４とを具備している。また、上記並列データベース管理システム２０は、ネットワーク９０および他のシステムと接続されている。
【００４５】
上記システム制御部２１は、入出力の管理等を行う。また、負荷配分を考慮したデータロードを行うためのデータロード処理２１０を具備している。
上記論理処理部２２は、コードの解釈実行を行うコード解釈実行２２４を具備している。
上記物理処理部２３は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理２３０と、データベースレコードの読み書き等を制御するデータベースバッファ制御２３１と、入出力対象となるデータの格納位置を管理するマッピング処理２３２と、システムで共用するリソースの排他制御を実現する排他制御２３３とを具備している。
【００４６】
図７は、ＩＯＳ７０とディスク８０の構成図である。
ＩＯＳ７０は、データベースシステム全体の管理を行う並列データベース管理システム２０と、計算機システム全体の管理を受け持つオペレーティングシステム３０とを具備して構成されている。
ディスク８０には、データベース４０が格納されている。
上記並列データベース管理システム２０は、システム制御部２１と、物理処理部２３と、処理対象となるデータを一時的に格納する入出力バッファ２４とを具備している。また、上記並列データベース管理システム２０は、ネットワーク９０および他のシステムと接続されている。
【００４７】
上記システム制御部２１は、入出力の管理等を行う。また、負荷配分を考慮したデータロードを行うためのデータロード処理２１０を具備している。
上記物理処理部２３は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理２３０と、データベースレコードの読み書き等を制御する入出力バッファ制御２３１とを具備している。
【００４８】
図８は、ＤＳ７１およびディスク８１の構成図である。
ＤＳ７１は、データベースシステム全体の管理を行う並列データベース管理システム２０と、計算機システム全体の管理を受け持つオペレーティングシステム３０とを具備して構成されている。
ディスク８１には、ディクショナリ５０が格納されている。
上記並列データベース管理システム２０は、システム制御部２１と、論理処理部２２と、物理処理部２３と、ディクショナリバッファ２４とを具備している。また、上記並列データベース管理システム２０は、ネットワーク９０および他のシステムと接続されている。
上記論理処理部２２は、コードの解釈実行を行うコード解釈実行２２４を具備している。
上記物理処理部２３は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理２３０と、ディクショナリレコードの読み書き等を制御するディクショナリバッファ制御２３１と、システムで共用するリソースの排他制御を実現する排他制御２３３とを具備している。
【００４９】
図９は、ＪＳ７２とディスク８２の構成図である。
ＪＳ７２は、データベースシステム全体の管理を行う並列データベース管理システム２０と、計算機システム全体の管理を受け持つオペレーティングシステム３０とを具備して構成されている。
ディスク８２には、ジャーナル６０が格納されている。
上記並列データベース管理システム２０は、システム制御部２１と、物理処理部２３と、ジャーナルバッファ２４とを具備している。また、上記並列データベース管理システム２０は、ネットワーク９０および他のシステムと接続されている。
上記物理処理部２３は、アクセスしたデータの条件判定や編集やレコード追加などを実現するデータアクセス処理２３０と、ジャーナルレコードの読み書き等を制御するジャーナルバッファ制御２３１とを具備している。
【００５０】
図１０は、ＦＥＳ７５におけるデータベース管理システム２０の処理を示すフローチャートである。
システム制御部２１は、問合せ分析処理か否かチェックする（２１２）。問合せ分析処理であれば、問合せ分析処理４００を呼び出し、それを実行した後、終了する。
問合せ分析処理でなければ、問合せ実行処理か否かチェックする（２１３）。問合せ実行処理であれば、問合せ実行処理４１０を呼び出し、それを実行した後、終了する。
問合せ実行処理でなければ、データロード処理か否かチェックする（２１４）。データロード処理であれば、データロード処理２１０を呼び出し、それを実行した後、終了する。
データロード処理でなければ、動的負荷制御処理か否かチェックする（２１４）。動的負荷制御処理であれば、動的負荷制御処理２１０を呼び出し、それを実行した後、終了する。
動的負荷制御処理でなければ、終了する。
【００５１】
なお、ＢＥＳ７３におけるデータベース管理システム２０の処理のフローチャートは、図１０からステップ２１２，２１５，４００，２１１を省いたものとなる。また、ＩＯＳ７０におけるデータベース管理システム２０の処理のフローチャートは、図１０からステップ２１２，２１３，２１５，４００，４１０，２１１を省いたものとなる。
【００５２】
図１１は、問合せ分析処理４００のフローチャートである。
まず、問合せ解析２２０により、入力された問合せ文の構文解析，意味解析を実行する。
次に、静的最適化処理２２１により、問合せで出現する条件式から条件を満足するデータの割合を推定し、予め設定している規則を基に、有効なアクセスパス候補（特にインデクスを選出する）を作成し、処理手順の候補を作成する。
次に、コード生成２２２により、処理手順の候補を実行形式のコードに展開する。そして、処理を終了する。
【００５３】
図１２は、問合せ解析２２０のフローチャートである。
ステップ２２００では、入力された問合せ文の構文解析，意味解析を実行する。そして、処理を終了する。
【００５４】
図１３は、静的最適化処理２２１のフローチャートである。
まず、述語選択率推定２２１０により、問い合せに出現する条件式の述語の選択率を推定する。
次に、アクセスパス剪定２２１２により、インデクス等からなるアクセスパスを剪定する。
次に、処理手順候補生成２２１３により、アクセスパスを組み合わせた処理手順候補を生成する。
そして、処理を終了する。
【００５５】
図１４は、述語選択率推定２２１０のフローチャートである。
ステップ２２１０１では、問合せ条件式に変数が出現するか否かチェックする（２２１０１）。変数が出現しなければステップ２２１０２に進み、変数が出現すればステップ２２１０４に進む。
ステップ２２１０２では、当条件式にカラム値分布情報があるか否かチェックする。カラム値分布情報があればステップ２２１０３に進み、カラム値分布情報がなければステップ２２１０５に進む。
ステップ２２１０３では、カラム値分布情報を用いて選択率を算出し、終了する。
ステップ２２１０４では、当条件式にカラム値分布情報があるか否かチェックする。カラム値分布情報があれば終了し、カラム値分布情報がなければ、ステップ２２１０５に進む。
ステップ２２１０５では、条件式の種別に応じてディフォルト値を設定し（２２１０５）、終了する。
【００５６】
図１５は、アクセスパス剪定２２１２のフローチャートである。
ステップ２２１２０では、問合せ条件式で出現するカラムのインデクスをアクセスパス候補として登録する。
ステップ２２１２１では、問合せでアクセス対象となる表が複数ノードに分割格納されているかチェックする。分割格納されていなければステップ２２１２２に進み、分割格納されていればステップ２２１２３に進む。
ステップ２２１２２では、シーケンシャルスキャンをアクセスパス候補として登録する。
ステップ２２１２３では、パラレルスキャンをアクセスパス候補として登録する。
ステップ２２１２４では、各条件式の選択率が既に設定済みか否かチェックする。設定済みであればステップ２２１２５に進み、設定済みでなければステップ２２１２６に進む。
ステップ２２１２５では、各表に関して選択率が最小となる条件式のインデクスをアクセスパスの最優先度とする。
ステップ２２１２６では、各条件式の選択率の最大値および最小値を取得する。
ステップ２２１２７では、プロセッサ性能，ＩＯ性能等システム特性より各アクセスパスの選択基準を算出する。
ステップ２２１２８では、単一あるいは複数のインデクスを組合せたアクセスパスでの選択率が上記選択基準を下回るものだけアクセスパス候補として登録する。
【００５７】
図１６は、処理手順候補生成２２１３のフローチャートである。
ステップ２２１３０では、問合せでアクセス対象となる表が複数ノードに分割格納されているかチェックする。分割格納されていなければステップ２２１３１へ進み、分割格納されていればステップ２２１３５へ進む。
ステップ２２１３１では、処理手順候補にソート処理が含まれているか否かをチェックする。含まれていなければステップ２２１３２へ進み、含まれていればステップ２２１３５へ進む。
ステップ２２１３２では、問合せでアクセス対象となる表のアクセスパスが唯一であるかチェックする。唯一であればステップ２２１３３へ進み、唯一でなければステップ２２１３４へ進む。
ステップ２２１３３では、単一の処理手順を作成し、終了する。
ステップ２２１３４では、複数の処理手順を作成し、終了する。
ステップ２２１３５では、結合可能な２ウェイ結合へ問合せを分解する。
ステップ２２１３６では、分割格納される表の格納ノード群に対応して、データ読みだし／データ分配処理手順とスロットソート処理手順を候補として登録する。
ステップ２２１３７では、結合処理ノード群に対応して、スロットソート処理手順、Ｎウェイマージ処理手順および突き合わせ処理手順を候補として登録する。なお、スロットソート処理とは、ページ内の各ロウがページ先頭からのオフセットで位置付けされるスロットで管理され、データが格納されるページを対象とするページ内のソート処理を指し、スロット順に読みだせば昇順にロウがアクセス可能とする。また、Ｎウェイマージ処理とは、Ｎウェイのバッファを用いて、各マージ段でＮ本のソート連を入力にしてトーナメント法で最終的に１本のソート連を作成する処理をいう。
ステップ２２１３８では、要求データ出力ノードに要求データ出力処理手順を登録する。
ステップ２２１３９では、分解結果に対して評価がすべて終了したかチェックする。評価がすべて終了していなければ前記ステップ２２１３６に戻り、評価がすべて終了していれば処理を終了する。
【００５８】
図１７は、コード生成２２２のフローチャートである。
ステップ２２２０では、処理手順候補が唯一か否かをチェックする。唯一でなければステップ２２２１へ進み、唯一であればステップ２２２３へ進む。
ステップ２２２１では、カラム値分布情報等からなる最適化情報を処理手順に埋込む。
ステップ２２２２では、問合せ実行時に代入された定数に基づいて処理手順を選択するデータ構造を作成する。
ステップ２２２３では、処理手順を実行形式へ展開する。そして、処理を終了する。
【００５９】
図１８は、問合せ実行処理４１０のフローチャートである。
まず、動的実行時最適化２２３により、代入された定数に基づき、各ノード群で実行する処理手順を決定する。
次に、コード解釈実行２２４により、当処理手順を解釈し、実行する。そして、処理を終了する。
【００６０】
図１９は、動的最適化処理２２３のフローチャートである。
ステップ２２３００では、動的負荷制御処理を実行する（２２３００）。
ステップ２２３０１では、作成されている処理手順が単一か否かをチェックする。単一であれば、処理を終了する。単一でなければ、ステップ２２３０２へ進む。
ステップ２２３０２では、代入された定数を基に選択率を算出する。
ステップ２２３０３では、処理手順候補に並列な処理手順が含まれるか否かチェックする。含まれていればステップ２２３０４に進み、含まれていなければステップ２２３０８に進む。
ステップ２２３０４では、ディクショナリから最適化情報（結合カラムのカラム値分布情報，アクセス対象となる表のロウ数，ページ数等）を入力する。
ステップ２２３０５では、データ取り出し／データ分配のための処理時間を各システム特性を考慮し、算出する。
ステップ２２３０６では、当処理時間から結合処理に割当てるノード数ｐを決定する。
ステップ２２３０７では、データ分配情報を最適化情報を基に作成する。
ステップ２２３０８では、アクセスパスの選択基準に従って処理手順を選択し、終了する。
【００６１】
図２０は、コード解釈実行２２４のフローチャートである。
ステップ２２４００では、データ取り出し／データ分配処理か否かチェックする。データ取り出し／データ分配処理であればステップ２２４０１に進み、データ取り出し／データ分配処理でなければステップ２２４０５に進む。
ステップ２２４０１では、データベースをアクセスし条件式を評価する。
ステップ２２４０２では、データ分配情報を基に、各ノード毎のバッファへデータを設定する。
ステップ２２４０３では、当該ノードのバッファが満杯か否かチェックする。満杯であればステップ２２４０４へ進み、満杯でなければステップ２２４２０へ進む。
ステップ２２４０４では、ページ形式で対応するノードへデータを転送し、ステップ２２４２０へ進む。
ステップ２２４０５では、スロットソート処理か否かチェックする。スロットソート処理であればステップ２２４０６へ進み、スロットソート処理でなければステップ２２４０９へ進む。
ステップ２２４０６では、他ノードからのページ形式データの受け取りを行う。
ステップ２２４０７では、スロットソート処理を実行する。
ステップ２２４０８では、スロットソート処理結果を一時的に保存し、ステップ２２４２０へ進む。
ステップ２２４０９では、Ｎウェイマージ処理か否かチェックする。Ｎウェイマージ処理であればステップ２２４１０へ進み、Ｎウェイマージ処理でなければステップ２２４１２へ進む。
【００６２】
ステップ２２４１０では、Ｎウェイマージ処理を実行する。
ステップ２２４１１では、Ｎウェイマージ処理結果を一時的に保存し、ステップ２２４２０へ進む。
ステップ２２４１２では、突き合わせ処理か否かチェックする。突き合わせ処理であればステップ２２４１３へ進み、突き合わせ処理でなければステップ２２４１６へ進む。
ステップ２２４１３では、両ソートリストを突き合わせ、出力用バッファへデータを設定する。
ステップ２２４１４では、出力用バッファが満杯か否かチェックする。満杯であれば、ステップ２２４１５へ進む。満杯でなければ、ステップ２２４２０へ進む。
ステップ２２４１５では、ページ形式で要求データ出力ノードへデータを転送し、ステップ２２４２０へ進む。
ステップ２２４１６では、要求データ出力処理か否かチェックする。要求データ出力処理であればステップ２２４１７へ進み、要求データ出力処理でなければステップ２２４２０へ進む。
ステップ２２４１７では、他ノードからページ形式データの転送があるか否かチェックする。転送があればステップ２２４１８へ進み、転送がなければステップ２２４１９へ進む。
ステップ２２４１８では、他ノードからページ形式データを受け取る。
ステップ２２４１９では、アプリケーションプログラムへ問合せ処理結果を出力する。
ステップ２２４２０では、ＢＥＳで実行中か否かチェックする。ＢＥＳで実行中ならステップ２２４２１へ進み、ＢＥＳで実行中でないなら終了する。
ステップ２２４２１では、アクセスページ数，ヒットロウ数，通信回数等の処理負荷を推定するための情報をＦＥＳへ通知し、終了する。
【００６３】
図２１は、データロード処理２１０のフローチャートである。
各ステップを説明する前に概念を説明する。
データロード方法には、表全体のスキャンに必要な時間を一定時間内に抑える目標応答時間重視データ配置と、ｍページアクセスに最適化した期待並列度重視データ配置と、ボリューム分割を完全にユーザが指定したユーザ制御によるユーザ指定データ配置とがある。
目標応答時間重視データ配置では、まず、表全体のロウを格納するのに必要なページ数を求める。次に、並列アクセス可能な各分割のディスクに格納するページ数の上限を決める。アクセスには、必要となれば一括入力（例えば、１０ページ）を前提にする。ディスク台数，ＩＯＳ台数，ＢＥＳ台数の組み合わせに応じて負荷配分を決める。キーレンジ分割がある場合、上限ページ数でキーレンジ分割区間を再分割し、各分割のディスクへ各々格納する。このキーレンジ分割については、図２３を参照して後で詳述する。
期待並列度重視データ配置では、ｍのサイズに依存するが、かなり大であることな望ましい。キーレンジ分割がある場合、ｍのサイズと期待並列度ｐから各キーレンジ分割単位のサブキーレンジ格納ページ数ｓ（＝ｍ／ｐ）を決定し、ｓページ単位で各分割のディスクへ各々格納する。
【００６４】
期待並列度ｐの算出方法は、応答時間をノード毎のオーバヘッドで割った比の平方根で算出する。この比が、１０で期待並列度３、１００で期待並列度１０、１０００で期待並列度３２、１００００で期待並列度１００となる。算出された期待並列度ｐが、既分割数を上回る場合、既分割数を採用する（既分割数で処理できる最大ディスク数が決まるため）。逆の場合は、既分割数を上限に期待並列度ｐを分割数として採用する。
具体的に、１００ページアクセスに最適化したデータ配置を試算する。前提として、一括入力は１０ページとする。１回のＩ／Ｏ時間（１０ページアクセス）に３００ｍ秒、１回のＩ／Ｏオーバヘッドに５．６ｍ秒（１０ＭＩＰＳ性能で５６ｋｓが必要）であるので、期待並列度ｐが約７（＝√｛３００／５．６｝）となる。従って、ｓ＝１４（＝１００／７）ページ毎にサブキーレンジ分割を行う。
ユーザ指定データ配置は、従来のデータベース管理システムと同様のデータ配置であり、設定パラメタ通りに管理する。
【００６５】
さて、ステップ２１０００では、目標応答時間重視データ配置か否かをチェックする。目標応答時間重視データ配置でなければステップ２１００１に進み、目標応答時間重視データ配置であればステップ２１００３に進む。
ステップ２１００１では、期待並列度重視データ配置か否かチェックする。期待並列度重視データ配置でなければステップ２１００２に進み、期待並列度重視データ配置であればステップ２１０１０に進む。
ステップ２１００２では、ユーザ指定があるか否かをチェックする。ユーザ指定があればステップ２１０１６に進み、ユーザ指定がなければ終了する。
ステップ２１００３では、表全体のロウを格納するのに必要なページ数を求める。
ステップ２１００４では、表のスキャンに必要な時間を一定とする並列アクセス可能なディスクに格納するページ数の上限を決める。
ステップ２１００５では、上記要件を満たすＢＥＳ，ＩＯＳ，ディスク群を決定する。
ステップ２１００６では、キーレンジ分割があるか否かチェックする。キーレンジ分割があるならステップ２１００７へ進み、キーレンジ分割がないならステップ２１００９へ進む。
ステップ２１００７では、ある上限ページ数でキーレンジ分割区間を再分割しする。
ステップ２１００８では、キーレンジ分割区間に対応してデータ挿入を行い、終了する。
ステップ２１００９では、上限ページ数で区切ってデータ挿入を行い、終了する。
ステップ２１０１０では、推定ワークロードにより最適ページアクセス数ｍを算出する。
ステップ２１０１１では、期待並列度ｐを算出し、その期待並列度ｐに応じて、ＢＥＳ，ＩＯＳ，ディスク群を決定する。
ステップ２１０１２では、キーレンジ分割があるか否かチェックする。キーレンジ分割があるならステップ２１０１３へ進み、キーレンジ分割がないならステップ２１０１５へ進む。
ステップ２１０１３では、サブキーレンジ単位の格納ページ数ｓ（＝ｍ／ｐ）を算出する。
ステップ２１０１４では、ｓページ単位でサブキーレンジ分割し、各ディスクへデータ挿入を行い、終了する。
ステップ２１０１５では、ｓページ数で区切ってデータ挿入を行い、終了する。
ステップ２１０１６では、ユーザ指定のＩＯＳの管理するディスクへデータ挿入を行い、終了する。
【００６６】
図２２は、動的負荷制御処理２１１のフローチャートである。
ステップ２１１００では、負荷アンバランス（アクセス集中化／離散化）の有無を検出する。すなわち、ノード毎単位時間当たりに実行されたＤＢ処理負荷（処理ステップ数（ＤＢ処理分，Ｉ／Ｏ処理分，通信処理分）、プロセッサ性能（処理時間に換算する）、Ｉ／Ｏ回数（入出力時間に換算する））の分布からネックとなる資源（プロセッサ（ＢＥＳ，ＩＯＳ）、ディスク）を検出し、ＤＢ処理をＳＱＬ文に展開し、各資源へのアクセス状況を表単位に分類する。負荷アンバランスが検出されたらステップ２１１０１へ進み、負荷アンバランスが検出されなかったら処理を終了する。
【００６７】
ステップ２１１０１では、アクセス分布情報から、ＢＥＳを追加あるいは削除するか、ＩＯＳ，ディスク対を追加あるいは削除するかを判断する。追加または削除が必要ならステップ２１１０２に進み、必要ないなら終了する。
ステップ２１１０２では、追加か否かをチェックする。追加ならステップ２１１０３へ進み、追加でないならステップ２１１２へ進む。
ステップ２１１０３では、オンライン中かチェックする。オンライン中なら、ステップ２１１０４へ進む。オンライン中でないなら、ステップ２１１０５へ進む。
ステップ２１１０４では、対象となるＢＥＳ群で管理される表のキーレンジ範囲を閉塞する。
ステップ２１１０５では、新たにＢＥＳを割り当る。
ステップ２１１０６では、ロック情報およびディレクトリ情報の引き継ぎを行う。
ステップ２１１０７では、ノード振り分け制御に必要なディクショナリ情報の書き換えをＤＳ７１に指示する。
ステップ２１１０８では、ＩＯＳが存在するか否かをチェックする。存在しなければステップ２１１０９へ進み、存在すればステップ２１１１０へ進む。なお、このステップは、ＩＯＳが存在するシステム構成とＩＯＳが存在しないシステム構成の両方に同じソフトウエアで対応するために挿入されている。
ステップ２１１０９では、対象となるＢＥＳ群から新たなＢＥＳ群へデータを移動する。
ステップ２１１１０では、オンライン中かチェックする。オンライン中なら、ステップ２１１１１へ進む。オンライン中でないなら、処理を終了する。
ステップ２１１１１では、対象となるＢＥＳ群で管理される表のキーレンジ範囲の閉塞を解除し、終了する。
ステップ２１１１２では、オンライン中かチェックする。オンライン中なら、ステップ２１１１３へ進む。オンライン中でないなら、ステップ２１１１４へ進む。
ステップ２１１１３では、対象となるＢＥＳ群で管理される表のキーレンジ範囲を閉塞する。
ステップ２１１１４では、縮退するＢＥＳを決定する。
ステップ２１１１５では、ロック情報およびディレクトリ情報の引き継ぎを行う。
ステップ２１１１６では、ノード振り分け制御に必要なディクショナリ情報の書き換えをＤＳ７１に指示する。
ステップ２１１１７では、ＩＯＳが存在するか否かをチェックする。存在しなければステップ２１１１８へ進み、存在すればステップ２１１１９へ進む。
ステップ２１１１８では、縮退するＢＥＳ群からデータを追い出す。
ステップ２１１１９では、オンライン中かチェックする。オンライン中なら、ステップ２１１２０へ進む。オンライン中でないなら、処理を終了する。
ステップ２１１２０では、対象となるＢＥＳ群で管理される表のキーレンジ範囲の閉塞を解除し、終了する。
【００６８】
図２３は、キーレンジ分割を用いたデータロード処理の概念図である。
既分割数は”４”とする。また、データベースのカラム値ｖ１〜ｖ６は、図１１のような出現頻度を取るものとする。
初期データロード時、必要なＢＥＳは、７３１の１台でよい。格納するべきページ数を各分割８１０〜８４０のディスクにそれぞれページ数の上限まで対応付けると、カラム値ｖ１〜ｖ２は分割８１０のディスクに格納され、カラム値ｖ２〜ｖ３は分割８２０および８３０のディスクに格納され、カラム値ｖ３〜ｖ５は分割８４０のディスクに格納され、カラム値ｖ５〜ｖ６は他のディスク群に格納される。初期データロード時には、各ディスクに格納されたページの管理を行うために、ディスク毎のディレクトリ情報を作成する。
データベースアクセス時には、負荷に応じてＢＥＳ７３２〜７３４を用いる場合、各ＢＥＳに対応するディスク毎のディレクトリ情報を利用し、データベースをアクセスする。
上記各処理の実装に当たって、次の実施形態と組合せてもよい。
【００６９】
ロウのノード間移動を容易にするために、ロウ識別子にＢＥＳ等の位置情報を含めない。ＢＥＳでは、表の分割位置を特定するためのディレクトリ情報とロウ識別子とを組み合わせて、ロウの物理位置を特定する。ロウ移動に関しては、ディレクトリ情報の書き換えで対応する。再編成あるいはロウ移動に対応した構造にしておき、ＢＥＳが動的に追加されても、ディレクトリ情報およびロック情報の引き継ぎで処理の分割を可能とする。
また、データベースをレプリカ管理する場合、２倍の格納領域が必要となる。１次コピーとバックアップコピーが同一ＩＯＳ、ＢＥＳで管理されるか否かにかかわらず、ディスクへのアクセス負荷はほぼ２倍となるため、既分割数で管理する各分割毎ボリューム数を１／２とすればよい。
【００７０】
さらに、ディスク、ＩＯＳ、ＢＥＳ等の障害時、オンライン処理から切り離し、復旧後オンラインと接続する。各ノードに応じて閉塞管理方式が異なる。ディスク障害時、このディスクに格納されるキーレンジ範囲を閉塞する。バックアップコピーが存在すれば（同一ＩＯＳ（ミラーディスク）、別ＩＯＳ（データレプリカ）の管理下でバックアップコピーを取得する必要あり）、処理を振り分ける。ＩＯＳ障害時、このＩＯＳに格納されるキーレンジ範囲を閉塞する。バックアップコピーが存在すれば（別ＩＯＳ（データレプリカ）の管理下でバックアップコピーを取得する必要あり）、処理を振り分ける。ＢＥＳ障害時、このＢＥＳで管理されるキーレンジ範囲を閉塞する。ＩＯＳが存在すれば、新たにＢＥＳを割り当て、ロック情報引き継ぎ、ノード振り分け制御に必要なディクショナリ情報の書き換え後、処理を続行する。
【００７１】
本発明は、統計情報を用いた規則とコスト評価との併用に限らず、適当なデータベース参照特性情報を与える処理手順が得られるものであれば、例えばコスト評価のみ、規則利用のみ、コスト評価と規則利用の併用等の最適化処理を行うデータベース管理システムにも適用できる。
本発明は、密結合／疎結合マルチプロセッサシステム大型計算機のソフトウエアシステムを介して実現することも、また各処理部のために専用プロセッサが用意された密結合／疎結合複合プロセッサシステムを介して実現することも可能である。また、単一プロセッサシステムでも、各処理手順のために並列なプロセスを割当てていれば、適用可能である。
また、複数プロセッサが各々複数のディスクを互いに共用する構成にも適用可能である。
本発明のデータベース分割管理方法によれば、システム構成が負荷に適合したものとなり、期待する並列度が得られると共に、高速な問合せを実現できるようになる。
本発明の並列データベースシステムによれば、負荷変動があってもシステム構成を常に負荷に適合したものに変更するスケーラブルな並列データベースシステムが得られる。
【００７２】
【発明の効果】
本発明によれば、システム構成の変更に対応した記憶装置の管理が可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態の並列データベースシステムを示す構成図である。
【図２】本発明のデータベース分割管理方法を示す概念図である。
【図３】本発明のデータベース分割管理方法による最適ノード配分（ＩＯＳがある場合）の概念図である。
【図４】本発明のデータベース分割管理方法による最適ノード配分（ＩＯＳがない場合）の概念図である。
【図５】ＦＥＳの構成図である。
【図６】ＢＥＳの構成図である。
【図７】ＩＯＳの構成図である。
【図８】ＤＳの構成図である。
【図９】ＪＳの構成図である。
【図１０】システム制御部の処理のフローチャートである。
【図１１】問合せ分析処理のフローチャートである。
【図１２】問合せ解析の処理のフローチャートである。
【図１３】静的最適化処理のフローチャートである。
【図１４】述語選択率推定の処理のフローチャートである。
【図１５】アクセスパス剪定の処理のフローチャートである。
【図１６】処理手順候補生成の処理のフローチャートである。
【図１７】コード生成の処理のフローチャートである。
【図１８】問合せ実行処理のフローチャートである。
【図１９】動的最適化の処理のフローチャートである。
【図２０】コード解釈実行の処理のフローチャートである。
【図２１】データロード処理のフローチャートである。
【図２２】動的負荷制御処理のフローチャートである。
【図２３】動的負荷制御の概念図である。
【符号の説明】
１．．．並列データベースシステム
１０、１１．．．アプリケーションプログラム、
２０．．．データベース管理システム
２１．．．システム制御部、
２１０．．．データロード処理、  ２１０．．．動的負荷制御処理
２２．．．論理処理部、
２２０．．．問合せ解析、２２１．．．静的最適化処理、２２２．．．コード生成、
２２３．．．動的最適化処理、２２４．．．コード解釈実行
３０．．．オペレーティングシステム、  ４０．．．データベース
７０．．．ＩＯＳ、      ７１．．．ＪＳ
７２．．．ＤＳ          ７３．．．ＢＥＳ
７５．．．ＦＥＳ、      ８０、８１、８２．．．ディスク
９０．．．相互結合ネットワーク
【図１】
0003599055.tif 000003
【図２】
0003599055.tif 000004
【図３】
0003599055.tif 000005
【図４】
0003599055.tif 000006
【図５】
0003599055.tif 000007
【図６】
0003599055.tif 000008
【図７】
0003599055.tif 000009
【図８】
0003599055.tif 000010
【図９】
0003599055.tif 000011
【図１０】
0003599055.tif 000012
【図１１】
0003599055.tif 000013
【図１２】
0003599055.tif 000014
【図１３】
0003599055.tif 000015
【図１４】
0003599055.tif 000016
【図１５】
0003599055.tif 000017
【図１６】
0003599055.tif 000018
【図１７】
0003599055.tif 000019
【図１８】
0003599055.tif 000020
【図１９】
0003599055.tif 000021
【図２０】
0003599055.tif 000022
【図２１】
0003599055.tif 000023
【図２２】
0003599055.tif 000024
【図２３】
0003599055.tif 000025