(57)【要約】      （修正有）【課題】メモリを共有する異なるノードのメモリ資源および通信資源の使用効率を高める。【解決手段】ノード＃１１〜＃１Ｎにおけるデータ処理に係る負荷情報および処理時間を取得するデータ採取部１０６と、クライアント端末からのリクエストから処理手順を示す処理構成情報を生成する問合せ最適化器１０３と、この処理構成情報に基づき処理対象データを取得すると共に、この処理対象データをノードにおける処理負荷が平均化されるように前記各ノードに分配するデータ分配決定部１０８を備えたマネージャ装置１００と、処理要求に対する処理を行い、その処理結果を処理構成情報に基づき他のノードに転送することにより処理応答を生成する異なる複数のノードを備える。【選択図】図１
2013025425.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末からのリクエストに対して予め保持するデータベースに格納されたデータを利用した処理を行い当該処理結果であるリクエスト応答を前記クライアント端末に返信するＤＢサーバと、前記ＤＢサーバから転送された処理要求に基づく処理を行う異なる複数のノードとを備えた分散データベース管理システムであって、
前記ＤＢサーバは、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得する処理負荷統計情報取得部と、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す前記処理構成情報を生成するリクエスト解析部と、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配部とを備え、
前記各ノードは、
自己内に保持するデータおよび前記ＤＢサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記ＤＢサーバに前記処理結果を転送する部分処理実行部と、を備えたことを特徴とする分散データベース管理システム。
【請求項２】
請求項１に記載の分散データベース管理システムにおいて、
前記ＤＢサーバに対して前記部分処理要求の処理用に新たに一のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得する統計情報再取得手段と、
前記処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
【請求項３】
請求項１に記載の分散データベース管理システムにおいて、
前記一のノードにおける前記ＤＢサーバに対する接続を解除した場合に、前記ＤＢサーバに対して接続された他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、当該再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
【請求項４】
請求項１に記載の分散データベース管理システムにおいて、
前記ＤＢサーバに対して前記部分処理要求の処理用に新たに他のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得し、前記ＤＢサーバに対する一のノードの接続を解除した場合に、前記ＤＢサーバに対する接続が維持されている他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、
再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段とを備えたことを特徴とする分散データベース管理システム。
【請求項５】
請求項１に記載の分散データベース管理システムにおいて、
前記リクエスト解析部が異なる複数の処理構成情報を生成した場合に、前記部分処理要求生成部は、処理構成情報のうちデータ処理量を算出し、当該データ処理量が最小となる処理構成情報を選出する処理構成情報選出手段を備えたことを特徴とした分散データベース管理システム。
【請求項６】
請求項１、３、または４に記載の分散データベース管理システムにおいて、
前記ノードは他のノードとの通信異常を検知した場合に前記通信異常が検知されたノードを障害ノードとして前記ＤＢサーバに通知する通信障害通知手段を備え
前記ＤＢサーバは、前記障害ノードとして通知されたノードに対して応答要求を行い、当該応答要求に対する正常な応答がない場合に、当該ノードにおける前記ＤＢサーバとの接続を解除する制御を行う接続解除制御手段を備えたことを特徴とする分散データベース管理システム。
【請求項７】
クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いＤＢサーバと、前記ＤＢサーバから転送された処理要求に対する処理をそれぞれが行う複数のノードとを備えた分散ＤＢ処理システムにあって、前記リクエストに対するリクエスト応答を前記クライアント端末に返信するための分散データベース管理方法であって、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得し、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成し、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する、
これら動作工程を前記ＤＢサーバが実行し、
次いで、前記各ノードが自己内に保持するデータおよび前記ＤＢサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記ＤＢサーバに前記処理結果を転送することを特徴とした分散データベース管理方法。
【請求項８】
クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いＤＢサーバと、前記ＤＢサーバから分配された処理要求に対する処理を行うと共にこの処理結果を処理手順情報に基づき他のノードに転送する異なる複数のノードとを備えた分散ＤＢ処理システムにあって、前記クライアント端末に前記リクエストに対するリクエスト応答を返信するための分散ＤＢ処理プログラムであって、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータと取得する処理負荷統計情報取得機能と、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成するリクエスト解析機能と、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配機能と、
を前記ＤＢサーバのコンピュータにより実現することを特徴とした分散ＤＢ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる計算機ノード上のメモリ資源を共有メモリとして利用するデータベースシステムに関し、特に、計算機ノード間のデータ通信量を管理する分散共有メモリ管理システムに関する。
【背景技術】
【０００２】
複数の計算機ノードが相互に接続されたネットワークシステムで、各計算機ノード上のメモリ領域に大規模データを分散して格納し、これらのメモリ領域をひとつの大規模記憶領域として管理する分散データ管理システムが利用されている。こうした大規模データを管理する分散処理環境ではデータベースの役割は重要になる。
【０００３】
例えば、ＳＱＬデータベースシステムが利用状態にあるＳＱＬデータベースノードを上記分散データ管理システムの一ノードとして追加する場合に、ＳＱＬデータベースノードで予め記憶管理しているデータを分散データ管理システムにおける共有可能なデータとして組み込むことが求められる。
【０００４】
しかしながら、既存のデータベース管理システム（ＤＢＭＳ）を有するＳＱＬデータベースノードを他の大規模データベース管理システムに組み込む（追加する）ことや稼働中のＳＱＬデータベースノードを既存のデータベース管理システムから除外する処理は、処理コストが膨大となってしまう不都合があった。
また、例えば、ＳＱＬ構造をベースとした分散対応のデータベースシステムであるＶｏｌｔＤＢでは、問合せ方式がトランザクション方式であることからアプリケーション処理に係る処理負担が高くなる。
【０００５】
このため、ＳＱＬデータベースノードを他の大規模データベース管理システムに追加した場合、または、大規模データベース管理システムから稼働中のＳＱＬデータベースノードを除外した場合には、各ノード上におけるアプリケーション処理に係る処理負荷が更に高まり、各ノード上におけるリクエストに対するデータベース処理速度が著しく低下してしまったり、ノード間における通信トラフィックに輻輳が生じたりする不都合が生じ得る。
【０００６】
これに対する関連技術として、サーバにおける処理負荷を検知し、この処理負荷から優先度の高いパスを選択することにより、トランザクションのスループットの低下を抑制するシステムが開示されている（特許文献１）。
【０００７】
また、この関連技術として、異なる複数の処理手順を示す情報を生成し、これらのコスト評価のための不可を算出して最適な処理手順を決定するシステムが開示されている（特許文献２）。
この関連技術として、ハッシュパーティショニングによるデータ分割を行う技術が開示されている（特許文献３）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−２００２５３号公報
【特許文献２】特開２００６−２２８２５４号公報
【特許文献３】特開２００９−１１０１９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記非特許文献１〜３を組み合わせたシステムにおいても、既存のデータベース管理システムに対して他のデータベース環境を備えたノードを組み込む場合や、稼働中のデータベースノードを既存のデータベース管理システムから除外する場合には、各ノードにおける処理負荷が極端に高まってしまったり、異なるノード間における通信トラフィックが膨大に増えてしまうといった不都合が生じ得る。
【００１０】
［発明の目的］
本発明は、上記関連技術の有する不都合を改善し、メモリ資源を共有する異なる計算機ノード間で行われるデータ通信量を有効に軽減し得る分散データ管理システム、分散データ管理方法、および分散データ管理プログラムを提供することを、その目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明に係る分散データ管理システムは、クライアント端末からのリクエストに対して予め保持するデータベースに格納されたデータを利用した処理を行い当該処理結果であるリクエスト応答を前記クライアント端末に返信するＤＢサーバと、前記ＤＢサーバから転送された処理要求に基づく処理を行う異なる複数のノードとを備えた分散データベース管理システムであって、前記ＤＢサーバは、前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得する処理負荷統計情報取得部と、前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す前記処理構成情報を生成するリクエスト解析部と、前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配部とを備え、前記各ノードは、自己内に保持するデータおよび前記ＤＢサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記ＤＢサーバに前記処理結果を転送する部分処理実行部と、を備えた構成をとっている。
【００１２】
また、本発明にかかる分散共有メモリ管理方法は、クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いＤＢサーバと、前記ＤＢサーバから転送された処理要求に対する処理をそれぞれが行う複数のノードとを備えた分散ＤＢ処理システムにあって、前記リクエストに対するリクエスト応答を前記クライアント端末に返信するための分散データベース管理方法であって、前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得し、前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成し、前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する、これら動作工程を前記ＤＢサーバが実行し、次いで、前記各ノードが自己内に保持するデータおよび前記ＤＢサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記ＤＢサーバに前記処理結果を転送することを特徴としたている。
【００１３】
また、本発明にかかる分散共有メモリ管理プログラムは、クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いＤＢサーバと、前記ＤＢサーバから分配された処理要求に対する処理を行うと共にこの処理結果を処理手順情報に基づき他のノードに転送する異なる複数のノードとを備えた分散ＤＢ処理システムにあって、前記クライアント端末に前記リクエストに対するリクエスト応答を返信するための分散ＤＢ処理プログラムであって、前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータと取得する処理負荷統計情報取得機能と、前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成するリクエスト解析機能と、前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配機能と、を前記ＤＢサーバのコンピュータにより実現することを特徴としている。
【発明の効果】
【００１４】
本発明は、以上のように構成され機能するので、これによると、異なるノード上に設定された共有メモリ内におけるデータの一貫性を保ちつつノード間通信を有効に軽減し得る分散共有メモリ管理システム、分散共有メモリ管理方法、分散共有メモリ管理プログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明による分散共有メモリ管理システムにおける一実施形態を示す概略ブロック図である。
【図２】図１に開示した分散共有メモリ管理システムにおけるクライアント端末の内部構成を示す概略ブロック図である。
【図３】図１に開示した分散データ管理システムにおける分散環境情報データベースの概略ブロック図を示す。
【図４】図１に開示した分散データ管理システムにおけるノードのスケールアウト時の動作処理ステップを示すフローチャートである。
【図５】図１に開示した分散データ管理システムにおける処理対象データの分配先を決定する動作処理ステップを示すフローチャートである。
【図６】図１に開示した分散データ管理システムにおけるノードが分散環境から外れる場合の動作処理ステップを示すフローチャートである。
【図７】図１に開示した分散データ管理システムにおける問合せ解析処理の動作処理ステップを示すフローチャートである。
【図８】図１に開示した分散データ管理システムにおける問合せ実行処理の動作処理ステップを示すフローチャートである。
【図９】図１に開示した分散データ管理システムの問合せ処理の内容を示す動作処理ステップのフローチャートである。
【図１０】図１に開示した分散データ管理システムにおける処理手順候補を生成する動作処理ステップを示すフローチャートである。
【図１１】図１に開示した分散データ管理システムにおけるノード側でトランザクション障害が発生したときの全体的な動作処理ステップを示すフローチャートである。
【図１２】図１に開示した分散データ管理システムにおけるノード側でシステム障害が発生したときの全体的な動作処理ステップを示すフローチャートである。
【図１３】図１に開示した分散データ管理システムにおける分散環境情報ＤＢで管理される統計情報のスキーマの一例を示す説明図である。
【図１４】図１に開示した分散データ管理システムにおけるノード情報の一例を示す説明図である。
【発明を実施するための形態】
【００１６】
［実施形態］
次に、本発明の実施形態について、その基本的構成内容を説明する。
【００１７】
本実施形態である分散データベース管理システム（分散データ管理システム）１は、クライアント端末からのＳＱＬ問合せ要求を受け付け、この問合せ要求に応じてデータベースを利用した実行処理を行い、この処理結果である問合せ応答をクライアント端末（５１〜５ｎ）に返す処理を行うマネージャ装置１００と、マネージャ装置１００に対してネットワークを介して接続し、マネージャ装置１００との情報連携を行い上記問合せ要求に応じたデータベース検索処理を行う異なる複数ノード（＃１１〜＃１N）を備えている。
【００１８】
クライアント端末５１，５２，・・・，５ｎはそれぞれ演算装置３１、メモリ（メインメモリ）３３、データ記憶装置（補助記憶装置）３２を有する通常のコンピュータであり、通信インタフェース３４からマネージャ装置１００に対してＳＱＬ要求を送信し、また、この通信インタフェース３４でマネージャ装置１００から送り込まれたＳＱＬ応答を受信する。
【００１９】
尚、クライアント端末５２，・・・，５ｎはそれぞれ同一の内部構成を有するものとする（図２）。このため、以下の説明においては、クライアント端末５２について説明するが、その他のクライアント端末それぞれにおいても同様の動作機能を備えているため置き換え可能である。
【００２０】
ノード＃１１は、自己が備えたデータベースシステム（ＤＢＭＳ）に格納されたデータを検索し取得するデータ収集部１１１と、ＤＢＭＳ１１４に記憶された統計情報を収集する統計情報収集部１１２と、データ収集部１１１により取得したデータと上記統計情報をマネージャ装置１００に送信すると共に、他のノードにおけるＤＢＭＳとのデータ連携を行う連携部１１３を備えている。
【００２１】
尚、ノードを新規に分散環境に追加する際（スケールアウト）には、ネットワーク越しにマネージャ装置１００のアドレスと認証を受ける必要があるものとする。マネージャ装置１００への
アクセスが認証された場合に（つまり、参加可能であると認証された場合に）、各ノード（＃１１〜＃１Ｎ）は、データと統計情報をマネージャ装置１００に対して定期的に送信するものとする。
【００２２】
マネージャ装置１００は、クライアント端末５１〜５Nそれぞれからの問合せ（ＳＱＬ問合せ）の受け付けと問合せ応答の返却を行うＡＰＩ（Application Program Interface）部と、受け付けた問合せ内容に基づき一連の処理フローを生成する問合せ解析器１０２と、問合せ解析器１０２で作成した異なる複数の処理フローの中で最もデータ転送量が少ない処理フローを選び出す最適化器１０３と、選出された処理フローを、分散環境を構成する各ノードに部分問い合わせ（部分要求）としてとして送信する問合せ配布部１０４を備えている。
【００２３】
また、マネージャ装置１００は、ネットワークを介して各ノード内のＤＢＭＳに格納されたデータ、および統計情報を収集するデータ採取部１０６と、データ採取部１０６で取得したデータを一時的に保持する一時データ保持ＤＢ１０７と、ノードから収集したデータおよび統計情報を記憶すると共に当該データの更新、および読み出しを管理する分散環境情報ＤＢ１０５と、分散環境情報ＤＢ１０５に格納された統計情報に基づき分散環境としての各ノードに分配するデータを決定するデータ分配決定部１０８と、上記決定に応じて各ノードに対しデータの配布を行うデータ配布部１０９を備えている。
【００２４】
データ採取部１０６は、各ノードから取得した統計情報を含むノード情報（統計情報、接続情報、アクセス時間（図１４））を一時データ保管ＤＢと分散環境情報ＤＢ１０５に格納する。
データ分配決定部１０８は、分散環境を構成する各ノードのノード情報に基づいて分散環境のノードそれぞれにおける処理負荷、およびノード間の通信負荷（アクセス時間に基づき算出）が平均化するように、各ノードに対して、分散環境情報ＤＢ１０５に格納されたデータの配布先を決定する（データ分配決定部）。
【００２５】
また、データ採取部１０６は、分散環境を構成するノードが除去されるとき（スケールイン）に、削除対象のノードが有するデータを取得し、テーブル情報として分散環境情報ＤＢ１０５に格納する。
更に、データ採取部１０６は、分散環境に対して新たにノードが組み込まれるときに（スケールアウト）、組み込み対象のノードが有するＤＢＭＳのデータを取得し、テーブル情報として分散環境情報ＤＢ１０５に格納する。
これにより、分散環境情報ＤＢ１０５におけるデータベース４０（図３）が更新される。
【００２６】
データ分配決定部１０８は、データベース内容が更新された分散環境情報ＤＢ１０５における格納データについて、上述のように、分散環境を構成する各ノードのノード情報に基づいて分散環境のノードそれぞれにおける処理負荷、およびノード間の通信負荷（アクセス時間に基づき算出）が平均化するように、各ノードに対して、分散環境情報ＤＢ１０５に格納されたデータの配布先を決定する。
【００２７】
問合わせ配布部１０４は、クライアント端末（５１〜５ｎ）からの問合せを受け取った場合に（ＡＰＩ部１０１）、解析処理と部分問合せ（一部）を分散情報として各ノードに対して配布する。
【００２８】
問合わせ最適化器１０３は、クライアント端末（５１〜５ｎ）それぞれからの問合せ要求の内容をログ（問合せ要求ログ）として分散環境情報ＤＢ１０５に格納する（要求ログ保存機能）。尚、この問合せ要求ログは、分散環境のノードにおいて障害が発生した時に、ノードの動作状態の復旧のために利用される。
【００２９】
また、分散環境の各ノードは、マネージャ装置１００から送り込まれた部分問合せに対する処理を行うと共に、その処理結果を予め設定された処理フローである処理木に基づき他のノードに転送し、処理結果を生成する。また、各ノードは要求に対する最終的な処理結果をマネージャ装置１００に送信する。
【００３０】
マネージャ装置１００のＡＰＩ部１０１は、ノードから処理結果を取得した場合に、これを問合せ応答として対応するクライアント端末（５１〜５ｎ）へ送る。
【００３１】
これにより、本実施形態では、予め形成された分散データベース管理システムの分散環境（既存ＤＢＭＳ）に対して、新たに別のデータベース管理システムを有するノードが組み込まれる場合でも、分散環境の各ノードにおける処理負荷を有効に抑制し、且つＳＱＬ要求に対する分散環境におけるデータベース検索処理を迅速化することを可能とする。
【００３２】
ここで、分散環境情報ＤＢ内で管理される統計情報のスキーマの一例を図１３に示す。図１３のテーブル情報には、ノードの識別情報（ｎｏｄｅＡ）カラム、マネージャ装置１００〜送り込まれた部分問合せ内容を示す問合せカラム、および部分問合せが送り込まれた時刻を示す時刻カラムを含み構成される。
【００３３】
また、図１４は、データ取得部１０６が各ノードから取得したデータ（テーブルデータ）の一例を示す。ここでは、一時データ保持ＤＢ１０７に一時的に格納されたテーブル情報を示す。
一時データ保持ＤＢ１０７には、分散環境の各ノードに係るノードの動作状態を示す統計情報、ノードにおける利用者の情報を示す接続情報、および異なるノード間、およびノードとマネージャ装置間におけるアクセス時間を示すテーブル情報として格納されているものとする。
【００３４】
分散環境情報ＤＢ１０５は、一時データ保持ＤＢ１０７に格納された上記テーブル情報が格納された場合、これらのデータを既存のデータベースのテーブル情報に対して値の加減算、組み合わせや結合する処理を行う。
【００３５】
クライアント端末５１は、図２に示すように、通信インタフェース３４を介してメモリ３３上に予め配置された問合せ要求をマネージャ装置１００に送信する。また、クライアント端末５１は、マネージャ装置１００からの問合せ応答を通信インタフェース３４を介して取得し、データ記憶装置３２に格納する。
【００３６】
分散環境情報ＤＢ１０５は、図３に示すように、異なる複数のアプリケーションプログラム実行部（６１，６２，・・・）と、データ制御・管理を行う管理部４と、データベース処理対象となるデータを格納する分散環境管理用データベース４０を備えている。
【００３７】
また、管理部４は、図３に示すように、入出力処理対象となるデータを分散環境管理用データベース４０に対してノードから取得したデータの書き込みおよび読み出しを行うファイルマネジャ４１と、分散環境情報ＤＢ１０５のデータアクセス処理手段４２は、予め設定された排他制御プログラムに基づき複数トランザクションの同時実行制御機能と、ノードにおける障害回復を実現するためのログ情報（トランザクションログ４６）を保持管理するトランザクションログ記憶機能を有する。
【００３８】
更に、管理部４は、各ノードに分配された部分問合せにかかる解析を行う問合せ解析手段４４と、問合せ最適化器１０３と同等の処理として、データベースの定義情報を管理するディクショナリ４７を備え上記解析結果から最適なデータ処理を決定する問合わせ最適化処理手段４３を備えた構成であってもよい。
【００３９】
また、分散環境ＤＢＭＳ１０５は、当該分散環境ＤＢＭＳ１０５全体の管理・制御に加えて、入出力の管理等を行うシステム制御手段と、分散環境ＤＢＭＳ１０５における処理対象となるデータを格納するデータベースバッファを備えている。
【００４０】
問合せ解析手段４４は、図７に示すように、各ノードから取得した部分問合せの構文解析および意味解析を行う（ステップＳ３１１：解析機能（図９））と共に、適切な処理手順を示す手順情報を生成する（ステップＳ３１２：静的最適化処理機能）。
【００４１】
尚、この静的最適化処理は、図１０に示すように、アプリケーション（６１，６２，・・・）の実行結果として、部分問合せに含まれる述語選択推定を行う（ステップＳ４０１）と共に、抽出された述語から処理手順候補となる処理木を生成する（ステップＳ４０２）。
【００４２】
また、最適化処理手段４３は、図８に示すように、静的最適化処理で生成された処理手順候補から最適なものを選択し（動的最適化処理機能：ステップＳ３１５）、上記処理手順に対応したコードの生成およびコードの解釈実行を行うコード解釈実行機能を有する（コード生成機能：ステップＳ３１６）。
【００４３】
また、最適化処理手段４３は、ディクショナリ４７内でアクセスしたデータの条件判定、編集、レコード追加等を行う（ディクショナリデータ制御機能）。
排他制御手段４５は、データアクセス処理手段４２におけるデータベースレコードの読み書きを制御し、データアクセス処理手段４２とのデータベースバッファ制御を共用するリソースの排他制御を実現する。
【００４４】
これにより、本実施形態では、既存のＳＱＬ型データベースシステム（本実施形態ではマネージャ装置１００およびノード＃１１〜＃１Ｎからなる分散環境）へのノード組み込み、および分散環境における構成ノードの着脱にかかる、各ノードにおける処理負荷を抑制することが可能となる。
【００４５】
尚、本実施形態では、分散データベース管理システム１をリレーショナル型として記載しているが、データベース管理システム１は、ＸＭＬデータベース、オブジェクトデータベース、Ｋｅｙ−Ｖａｌｕｅ型データベースでも、分散環境へと移行する際にそれぞれのノードが同じデータベース型であれば、分散環境への導入・移行が可能であるものとする。
【００４６】
尚、各ノードのデータベース型が異なる場合には、データを統一的に扱うために，エージェント部分にマッパーが必要になる。このマッパーがそれぞれのデータベース型の異なりを吸収し、データ配置を透過的に行えるようにすることが可能となる。
【００４７】
［実施形態の動作説明］
次に、上記実施形態における全体的な動作内容について説明する。
マネージャ装置（ＤＢサーバ）１００は、各ノード（＃１１〜＃１N）におけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報を取得する（処理負荷統計情報取得工程）。
また、問合せ解析器１０２は、クライアント端末５１からのリクエストを解析し、このリクエストに対する処理内容および処理手順を示す情報としての処理木情報を生成する（リクエスト解析工程）。
【００４８】
データ採取部１０６は、各ノードのデータベースから処理負荷統計情報および処理対象データを取得し、処理木情報および処理負荷統計情報に基づいて、各ノードにおける処理負荷が平均化されるように処理対象データを各ノードに分配する（部分要求分配工程）。
【００４９】
ノード（計算ノード）がマネージャ装置１００から送り込まれた部分処理要求の実行処理を行い、その処理結果を処理木情報（処理構成情報）に基づき他のノードに転送する（部分処理結果転送工程）。
ノードから取得した前記部分処理要求の処理結果をクライアント端末のリクエストに対するリクエスト応答として返信する（処理結果返信工程）。
【００５０】
ここで、上記処理負荷統計情報取得工程、リクエスト解析工程、部分要求分配工程、部分処理結果転送工程、および処理結果返信工程については、その実行内容をプログラム化し、コンピュータに実行させるように構成してもよい。
【００５１】
また、本プログラムは、非一時的な記憶媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリなどに記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
【００５２】
次に、本実施形態である分散データベース管理システム１の動作について、フローチャートに基づき具体的に説明する。
【００５３】
ここでは、まず、分散データベース管理システム１のスケールイン時、およびスケールアウト時における動作内容である管理フェーズ（管理面）について説明し、次いで、クライアント端末からの問合せを処理する動作内容である業務フェーズ（業務面）について説明する。
［管理フェーズ：スケールアウト時の動作説明］
【００５４】
はじめに、分散環境としての分散ＤＢ管理システム１にノードを組み込む、つまり、分散環境のノード数を増やす場合を示すスケールアウト時の動作について、図４のフローチャートに基づき説明する。
尚、マネージャ装置１００に分散環境へ導入されるノードに係るノード情報はデータベース管理者により予め登録されているものとする。
【００５５】
まず、分散環境に参加するノード（分散環境参加ノード＃１５とする）が、マネージャ装置１００に対して認証要求を送信する（開始：ステップＳ１００）。
マネージャ装置１００の分散環境情報ＤＢ１０５は、認証要求をデータ採取部１０６を介して認証要求を受け取り、この認証要求に対する認証処理を行う（ステップＳ１０１）。
ここで、認証不可である場合は、スケールアウト処理は終了する（ステップＳ１０７）。
【００５６】
認証可であった場合（イエス：ステップＳ１０２）、マネージャ装置１００のデータ採取部１０６が、管理データ、および統計情報を収集する（ステップＳ１０３）。このとき、認証可能となったノードの連携部１１３は、管理データおよび統計情報をマネージャ装置１００へ送信する。
【００５７】
次いで、データ採取部１０６は、ノード＃１５から収集した管理データおよび統計情報を一時データ保持ＤＢ１０７と分散環境情報ＤＢ１０５とに格納し、格納データを更新する（ステップＳ１０４）。
尚、分散環境情報ＤＢ１０５には、予めアクセス可能に設定されているノードやそのアカウントが登録されているものとする。
【００５８】
次に、データ分配決定部１０８が、分散環境情報ＤＢ１０５に格納された統計情報に基づきデータ配布先を決定し（ステップＳ１０５）、データ配布部１０９が、各ノード＃１１，＃１２，・・・，＃Ｎそれぞれに対して分散データを配布する（ステップＳ１０６）。
これにより、各ノードにおけるＤＢＭＳにおける格納データが更新される（ステップＳ１０７）。
【００５９】
［管理フェーズ：スケールイン時の動作説明］
次に、分散データベース管理システム（分散環境）１の特定のノード（除外対象ノード）が分散環境から除外されるスケールイン（スケールドロップ）時の動作内容について、図６のフローチャートに基づき説明する。
【００６０】
まず、分散環境である分散データベース管理システムから退避する（ここでは、マネージャ装置１００に対する通信接続を解除するものとする）ノード（退避対象ノード）が、マネージャ装置１００に対して退避要求を送信する（ステップＳ３０１）。
【００６１】
次に，この退避要求を受信したＡＰＩ部１０１が、分散環境情報ＤＢ４０中に格納された退避対象ノードのノード情報を削除する（ステップＳ３０２）。
【００６２】
次いで、データ分配決定部１０８が、分散環境情報ＤＢ１０５の分散データベース４０における保存データの更新を検知し（ステップＳ３０３）、更新された分散データベース４０に格納されたデータについて、退避対象のノードを除いた分散環境におけるデータ配布先を新たに決定する（ステップＳ３０４）。
【００６３】
次いで、データ配布部１０９が上記決定されたデータ配布先である各ノードに対してデータ配布を行う。これにより、各ノードにおける記憶容量に格納されたデータが更新される。
【００６４】
［業務フェーズ］
次いで、クライアント端末からの問合せに対して、マネージャ装置１００およびノード＃１１〜”１Ｎからなる分散環境で問合せ応答を生成する処理を行う動作内容としての業務フェーズ（業務面）について説明する。
【００６５】
まず、マネージャ装置１００のＡＰＩ１０１が、クライアント端末（５１〜５ｎ）それぞれからネットワークを介して送り込まれたＳＱＬ問合せを受け付ける。
次いで、問合せ解析器１０２が、受け付けた問合せ内容に基づき一連の処理フローを示すツリー構造の処理木（処理木図）を生成する。
【００６６】
また、問い合わせ解析器は、生成された異なる複数の処理木のうち、各ノードの統計情報に基づき処理負荷、およびデータ転送負荷を算出し、データ転送負荷が最も低い処理木を選択する。
【００６７】
次に、問合せ配布部１０４が、選出された処理木を部分木に分割し、分割した処理木情報としての部分問合せ要求を、該当するノードに配布を行う。
【００６８】
分散環境のノードはそれぞれ連携部（１１３に対応）で部分問合せ要求を受け付け、問合せ処理の実行を行う。
【００６９】
また、各ノードは、処理結果（部分処理結果）を部分木で示される次のノードへと転送する。
ここで、ノードは、最終的な処理結果を部分木の内容に基づきマネージャ装置に送信する。マネージャ装置１００はこの処理結果を要求応答としてクライアント端末（５１に対応）返信する。
【００７０】
［分散データ配布先決定機能］
ここで、分散データベース管理システム１における分散データの配布先を決定する動作内容について、図５のフローチャートに基づき説明する。
【００７１】
まず、マネージャ装置１００のデータ採取部１０６が、ノード（＃１１，＃１２，・・・，＃Ｎ）それぞれのＤＢＭＳ（１１４，１２４，・・・，１Ｎ４）に記憶された統計情報と、
各ノードにおけるデータアクセス状況を示す情報を収集する（ステップＳ２０１）。
このとき、データ採取部１０６は各ノードに対して統計情報を要求するリクエスト情報を送信し、各ノードはこのリクエスト情報に応じて自己が保持する統計情報を返す設定であってもよい。
【００７２】
次いで、データ採取部１０６が、データ分散配置環境である各ノードにおけるレプリケーション機能の有無を確認する（レプリケーション機能有効？：ステップＳ２０２）。
ここで、レプリケーションが有効になっていた場合には（ＹＥＳ：ステップＳ２０２）別ノードにも情報源が複製されているため、データ採取部１０６は、各ノードにおけるＤＢＭＳに格納されたデータと不一致な部分データを分散環境情報ＤＢ１０５から検索抽出し（ステップＳ２０８）、抽出した不一致部分データの複製を各ノードに対して分配送信する（ステップＳ２０９）。
【００７３】
一方、レプリケーションが向こうである場合には（ＮＯ：ステップＳ２０２）、データ採取部１０６は分散環境情報ＤＢ１０５から一定期間における各ノードの処理時間に係る情報を取得する（ステップ２０３）と共に、一時保管ＤＢ１０７から一定時間内における各ノード上での演算数とその演算のデータ処理量の平均の値を取得する（ステップ２０４）。
【００７４】
次いで、データ採取部１０６は、各ノードの処理時間とデータ処理量の比から各ノードに対する情報源（格納データ）の分配先を決定し（ステップＳ２０５）、
【００７５】
次に、上記実施形態における障害復旧時の動作内容について、図１１、１２のフローチャートに基づき説明する。ここで、ノード側における動作障害の内容としては、トランザクション障害とシステム障害が想定される。
【００７６】
まず、トランザクション障害が生じた場合の動作内容について、図１１に基づき説明する。
【００７７】
マネージャ装置１００から分散環境（各ノード）へ配布した問合せ処理の中で，1部のノードでトランザクションが異常終了した場合には、その問合せ処理は異常終了となる。
このとき、各ノードにおける連携部（１１３，１２３，１３３，・・・，１Ｎ３）は、問合せ処理にかかるデータの送受信が異常となったノードをマネージャ装置に通知をする（ステップＳ４１０）。ここで、データの送受信に異常が生じたノードがマネージャ装置１００に対して送受信以上の発生を通知できる場合は、このノードがマネージャ装置１００にデータの送受信における異常を通知する。
【００７８】
マネージャ装置１００のＡＰＩ部１０１が異常状態の通知を受け、異常終了となったノードを特定する（ステップＳ４１１）と共に、配布部１０４が、異常状態になったノードに対して、以上終了した問合せ処理の再実行を要求する（ステップＳ４１２）。
【００７９】
ここで、要求が正常に行われた場合（イエス：ステップＳ４１３）には、問合せ処理は正常に終了したとみなす（完了：ステップＳ４１５）。
一方、要求が異常終了になった（一定時間返ってこない、再び動作異常が通知されるなどした）場合にはシステム障害と判断し、マネージャ装置１００に予め設定されたすステム障害対応処理を実行する（ステップＳ４１４）。
【００８０】
次に、システム障害発生時における、マネージャ装置５０の動作内容について、図１２のフローチャートに基づき説明する。
【００８１】
ＡＰＩ部１０１がノードにおけるシステム障害を検出した場合（ステップＳ４２０）、
ＡＰＩ部１０１が故障ノードを特定し（ステップＳ４２１）、次いで、分散環境情報ＤＢ１０５は、ＤＢ４０における登録内容に基づき分散環境（故障ノードを含む）におけるレプリケーション機能の有無を確認する（ステップＳ４２２）。
【００８２】
ここで、レプリケーションが有効になっていた場合には、別ノードにも情報源が複製されているので、マネージャ装置１００側でシステム障害と判断したノードを除いた環境を想定し、問合せ最適化器１０３が、これに基づき問合せ最適化を再実行し、次いで、算出された問合せプランを問合せ配布部１０４が各ノードに配布する。
【００８３】
一方、レプリケーションが有効になっていない場合には（ＮＯ：ステップＳ４２２）、障害時の遅延は，問合せ最適化器１０３で算出された処理時間となるため、故障ノードに対して故障に係るログ情報を分散環境情報ＤＢ１０５から取得し、ロールバック／ロールフォワードの実行要求としてログを故障ノードへ送る（ステップＳ４２３）。
ここで、故障ノードはログ情報およびロールバック／フォワードの実行要求に応じての障害の復旧処理を実行する（ステップＳ４２４）。
【００８４】
また、データ配布部１０９は、故障ノードにおけるロールバック／フォワードの復旧処理が終了した後に（要求を再送することにより）問合せ処理の再実行を要求する。
【００８５】
以上のように、本実施形態では、分散環境下において各ノードにおける処理負荷を考慮したデータ配置を行うことが可能となる。
これにより、処理負荷の低いノードに対して問合せ処理を分配し、各ノードそれぞれにおける問合せ処理にかかる処理負荷が平均化されるように、処理負荷が高いことに起因する動作異常の発生を有効に抑制することができ、更には、問合せ処理を迅速に行うことができ、これにより、問合せ実行時間が短縮される。
また、本実施形態は、既存ＤＢＭＳにマネージャと連携する機能を有するエージェントを導入することにより実現可能であり、このため、エージェントとマネージャ装置が自律的にやり取りを行うことにより、利用者は煩雑なＤＢＭＳの連携を意識することなく、既存ＤＢＭＳを柔軟に分散環境へと移行することが可能となる。
【００８６】
上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、上記の実施形態の一部又は全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００８７】
（付記１）
クライアント端末からのリクエストに対して予め保持するデータベースに格納されたデータを利用した処理を行い当該処理結果であるリクエスト応答を前記クライアント端末に返信するＤＢサーバと、前記ＤＢサーバから転送された処理要求に基づく処理を行う異なる複数のノードとを備えた分散データベース管理システムであって、
前記ＤＢサーバは、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得する処理負荷統計情報取得部と、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す前記処理構成情報を生成するリクエスト解析部と、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配部とを備え、
前記各ノードは、
自己内に保持するデータおよび前記ＤＢサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記ＤＢサーバに前記処理結果を転送する部分処理実行部と、を備えたことを特徴とする分散データベース管理システム。
【００８８】
（付記２）
付記１に記載の分散データベース管理システムにおいて、
前記ＤＢサーバに対して前記部分処理要求の処理用に新たに一のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得する統計情報再取得手段と、
前記処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
【００８９】
（付記３）
付記１に記載の分散データベース管理システムにおいて、
前記一のノードにおける前記ＤＢサーバに対する接続を解除した場合に、前記ＤＢサーバに対して接続された他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、当該再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段を備えたことを特徴とする分散データベース管理システム。
【００９０】
（付記４）
付記１に記載の分散データベース管理システムにおいて、
前記ＤＢサーバに対して前記部分処理要求の処理用に新たに他のノードが接続された場合に、当該ノードを含む前記各ノードの処理負荷統計情報を再取得し、前記ＤＢサーバに対する一のノードの接続を解除した場合に、前記ＤＢサーバに対する接続が維持されている他のノードそれぞれの処理負荷統計情報を再取得する統計情報再取得手段と、
再取得された処理負荷統計情報に基づき前記部分処理要求を更新して生成する部分処理要求更新生成手段とを備えたことを特徴とする分散データベース管理システム。
【００９１】
（付記５）
付記１に記載の分散データベース管理システムにおいて、
前記リクエスト解析部が異なる複数の処理構成情報を生成した場合に、前記部分処理要求生成部は、処理構成情報のうちデータ処理量を算出し、当該データ処理量が最小となる処理構成情報を選出する処理構成情報選出手段を備えたことを特徴とした分散データベース管理システム。
【００９２】
（付記６）
付記１、３、または４に記載の分散データベース管理システムにおいて、
前記ノードは他のノードとの通信異常を検知した場合に前記通信異常が検知されたノードを障害ノードとして前記ＤＢサーバに通知する通信障害通知手段を備え
前記ＤＢサーバは、前記障害ノードとして通知されたノードに対して応答要求を行い、当該応答要求に対する正常な応答がない場合に、当該ノードにおける前記ＤＢサーバとの接続を解除する制御を行う接続解除制御手段を備えたことを特徴とする分散データベース管理システム。
【００９３】
（付記７）
クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いＤＢサーバと、前記ＤＢサーバから転送された処理要求に対する処理をそれぞれが行う複数のノードとを備えた分散ＤＢ処理システムにあって、前記リクエストに対するリクエスト応答を前記クライアント端末に返信するための分散データベース管理方法であって、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータとを取得し、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成し、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する、
これら動作工程を前記ＤＢサーバが実行し、
次いで、前記各ノードが自己内に保持するデータおよび前記ＤＢサーバから送り込まれた処理対象データを利用して前記処理構成情報に基づく処理を行うと共に、前記処理構成情報に基づき他のノードまたは前記ＤＢサーバに前記処理結果を転送することを特徴とした分散データベース管理方法。
【００９４】
（付記８）
クライアント端末からのリクエストに応じて予め保持するデータベースを利用した問い合わせ処理を行いＤＢサーバと、前記ＤＢサーバから分配された処理要求に対する処理を行うと共にこの処理結果を処理手順情報に基づき他のノードに転送する異なる複数のノードとを備えた分散ＤＢ処理システムにあって、前記クライアント端末に前記リクエストに対するリクエスト応答を返信するための分散ＤＢ処理プログラムであって、
前記各ノードにおけるデータ処理に係る負荷情報および処理時間を示す処理負荷統計情報と前記各ノード内に処理対象データとして予め記憶されたローカルデータと取得する処理負荷統計情報取得機能と、
前記リクエストを解析し当該リクエストに対する処理内容および処理手順を示す情報としての前記処理構成情報を生成するリクエスト解析機能と、
前記処理構成情報に基づき前記ローカルデータから処理対象データを特定し、前記処理負荷統計情報に基づき前記各ノードにおける処理負荷が平均化されるように前記処理対象データを前記各ノードに分配する部分要求分配機能と、
を前記ＤＢサーバのコンピュータにより実現することを特徴とした分散ＤＢ処理プログラム。
【産業上の利用可能性】
【００９５】
本発明は、ネットワーク回線で相互に接続された異なるノードそれぞれが有するメモリ領域を共有メモリとして利用するネットワークデータベースシステムに対して有効に適用することが可能である。
【符号の説明】
【００９６】
１０  ネットワーク計算機システム
＃１１，＃１２，・・・，＃１Ｎ  ノード
３１  演算装置
３２  データ記憶装置
３３  メモリ
３４  通信インタフェース
５１，５２，・・・，５Ｎ  クライアント端末
１００  マネージャ装置
１０１  ＡＰＩ部
１０２  問合わせ解析器
１０３  問合わせ最適化器
１０４  問合わせ配布部
１０５  分散環境情報ＤＢ
１０６  メインメモリ部
１０７  一時データ保持ＤＢ
１０８  データ分配決定部
１０９  データ配布部
【図１】
2013025425.tif 000003
【図２】
2013025425.tif 000004
【図３】
2013025425.tif 000005
【図４】
2013025425.tif 000006
【図５】
2013025425.tif 000007
【図６】
2013025425.tif 000008
【図７】
2013025425.tif 000009
【図８】
2013025425.tif 000010
【図９】
2013025425.tif 000011
【図１０】
2013025425.tif 000012
【図１１】
2013025425.tif 000013
【図１２】
2013025425.tif 000014
【図１３】
2013025425.tif 000015
【図１４】
2013025425.tif 000016