(57)【特許請求の範囲】
【請求項１】
複数のデータサーバによってデータが管理される並列データベースシステムにおいて、前記複数のデータサーバによって管理される記憶装置にデータを分配するデータ分配方法であって、
前記並列データベースシステムは、分配元のデータが格納される第１の記憶装置と、前記複数のデータサーバによってアクセスされ、前記第１の記憶装置から分配されたデータが格納される第２の記憶装置と、前記複数のデータサーバと、前記複数のデータサーバにネットワークを介して接続される管理サーバとを含み、
前記管理サーバは、前記ネットワークに接続される第１のインタフェース、前記第１のインタフェースに接続される第１のプロセッサ、及び前記第１のプロセッサにアクセスされる第１のメモリを備え、
前記データサーバは、前記ネットワークに接続される第２のインタフェース、前記第２のインタフェースに接続される第２のプロセッサ、及び前記第２のプロセッサにアクセスされる第２のメモリを備え、
前記第２のメモリには、前記データの特性と前記データが管理されるデータサーバとの対応情報が記憶され、
前記第２の記憶装置は、前記第１の記憶装置から分配されたデータを格納する記憶領域を前記データサーバごとに提供し、
前記データ分配方法は、
前記第２のプロセッサが、前記記憶領域のそれぞれに、前記データサーバに対応するデータ格納領域を前記データサーバごとに作成し、
前記第１のプロセッサが、前記分配元のデータを前記第１の記憶装置から前記データサーバに送信し、
前記第２のプロセッサが、前記第１の記憶装置から送信されたデータを受信し、
前記第２のプロセッサが、前記受信したデータを解析することによって、前記受信したデータの特性を抽出し、
前記第２のプロセッサが、前記抽出されたデータの特性及び前記対応情報に基づいて、前記受信したデータが管理されるデータサーバを特定し、
前記第２のプロセッサが、前記第１の記憶装置から送信されたデータを受信したデータサーバによってアクセス可能な前記データ格納領域であって、前記特定されたデータサーバに対応する前記データ格納領域に、前記受信したデータを格納し、
前記第１のプロセッサが、前記データサーバに対応する前記データ格納領域を当該データサーバによってアクセス可能となるように、設定し、
前記第１のプロセッサが、前記分配元のデータを前記第１の記憶装置から前記データサーバに送信し、
前記第２のプロセッサが、前記第１の記憶装置から送信されたデータを受信し、
前記第２のプロセッサが、前記受信したデータを解析することによって、前記受信したデータの特性を抽出し、
前記第２のプロセッサが、前記抽出されたデータの特性及び前記対応情報に基づいて、前記受信したデータが管理されるデータサーバを特定し、
前記第２のプロセッサが、前記第１の記憶装置から送信されたデータを受信したデータサーバと、前記特定されたデータサーバとが一致するか否かを判定し、
前記第２のプロセッサが、前記第１の記憶装置から送信されたデータを受信したデータサーバと、前記特定されたデータサーバとが一致する場合には、前記受信したデータを前記データ格納領域に格納し、
前記第２のプロセッサが、前記第１の記憶装置から送信されたデータを受信したデータサーバと、前記特定されたデータサーバとが一致しない場合には、前記特定されたデータサーバに前記受信したデータを送信することを特徴とするデータ分配方法。
【請求項２】
前記データは、要素が定義された構造化言語によって記述された文書であって、
前記データ分配方法は、前記第２のプロセッサが、前記受信したデータを解析することによって、前記対応情報に含まれる前記データの特性に該当する要素を前記受信したデータから抽出することを特徴とする請求項１に記載のデータ分配方法。
【請求項３】
前記データ分配方法は、前記データサーバに対応する前記データ格納領域が当該データサーバによってアクセス可能となるように設定された後、前記第２のプロセッサが、前記データ格納領域に格納されたデータの索引を作成することを特徴とする請求項１に記載のデータ分配方法。
【請求項４】
複数のデータサーバによってデータが管理される並列データベースシステムであって、
分配元のデータが格納される第１の記憶装置と、前記複数のデータサーバによってアクセスされ、前記第１の記憶装置から分配されたデータが格納される第２の記憶装置と、前記複数のデータサーバと、前記複数のデータサーバにネットワークを介して接続される管理サーバとを含み、
前記管理サーバは、前記ネットワークに接続される第１のインタフェース、前記第１のインタフェースに接続される第１のプロセッサ、及び前記第１のプロセッサにアクセスされる第１のメモリを備え、
前記データサーバは、前記ネットワークに接続される第２のインタフェース、前記第２のインタフェースに接続される第２のプロセッサ、及び前記第２のプロセッサにアクセスされる第２のメモリを備え、
前記第２のメモリは、前記データの特性と前記データが管理されるデータサーバとの対応情報が記憶され、
前記第２の記憶装置は、前記第１の記憶装置から分配されたデータを格納する記憶領域を前記データサーバごとに提供し、
前記データサーバは、前記記憶領域のそれぞれに、前記データサーバに対応するデータ格納領域を前記データサーバごとに作成し、
前記管理サーバは、前記分配元のデータを前記第１の記憶装置から前記データサーバに送信し、
前記データサーバは、
前記第１の記憶装置から送信されたデータを受信し、
前記受信したデータを解析することによって、前記受信したデータの特性を抽出し、
前記抽出されたデータの特性及び前記対応情報に基づいて、前記受信したデータが管理されるデータサーバを特定し、
前記第１の記憶装置から送信されたデータを受信したデータサーバによってアクセス可能な前記データ格納領域であって、前記特定されたデータサーバに対応する前記データ格納領域に、前記受信したデータを格納し、
前記管理サーバは、前記データサーバに対応する前記データ格納領域を前記データサーバによってアクセス可能となるように設定し、
前記管理サーバは、前記分配元のデータを前記第１の記憶装置から前記データサーバに送信し、
前記データサーバは、
前記第１の記憶装置から送信されたデータを受信し、
前記受信したデータを解析することによって、前記受信したデータの特性を抽出し、
前記抽出されたデータの特性及び前記対応情報に基づいて、前記受信したデータが管理されるデータサーバを特定し、
前記第１の記憶装置から送信されたデータを受信したデータサーバと、前記特定されたデータサーバとが一致するか否かを判定し、
前記第１の記憶装置から送信されたデータを受信したデータサーバと、前記特定されたデータサーバとが一致する場合には、前記受信したデータを前記データ格納領域に格納し、
前記第１の記憶装置から送信されたデータを受信したデータサーバと、前記特定されたデータサーバとが一致しない場合には、前記特定されたデータサーバに前記受信したデータを送信することを特徴とする並列データベースシステム。
【請求項５】
前記データは、要素が定義された構造化言語によって記述された文書であって、
前記データサーバは、前記第２のプロセッサが、前記受信したデータを解析することによって、前記対応情報に含まれる前記データの特性に該当する要素を前記受信したデータから抽出することを特徴とする請求項４に記載の並列データベースシステム。
【請求項６】
前記データサーバに対応する前記データ格納領域が当該データサーバによってアクセス可能となるように設定された後、前記データサーバは、前記データ格納領域に格納されたデータの索引を作成することを特徴とする請求項４に記載の並列データベースシステム。
【請求項７】
前記第２の記憶装置は、前記データサーバからのアクセスを制御する参照コントローラを備え、
前記参照コントローラは、前記管理サーバからの指示を受け付けて、前記データサーバによってアクセスされるデータ格納領域を設定することを特徴とする請求項４に記載の並列データベースシステム。
【請求項８】
前記データサーバは、前記管理サーバからの指示を受け付けて、前記データサーバによってアクセスされるデータ格納領域を設定することを特徴とする請求項４に記載の並列データベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを分散して管理する並列データベースシステムにおいて、データを分配する技術に関する。
【背景技術】
【０００２】
並列データベースは、大容量のデータを管理する際に、データの格納先（以降、「データサーバ」）を複数に分割することができる。そして、データを各データサーバに分配し、各データサーバで管理されるデータ量を減らすことによって、並列データベース全体としての性能を向上させることができる。
【０００３】
データベース管理者は、データを各データサーバに分配する際、管理対象のデータを所定の条件に基づいて分類し、データサーバごとに格納することによって並列データベースの運用を容易にすることができる。例えば、データサーバＡ、データサーバＢ、データサーバＣ、及びデータサーバＤの４つのデータサーバがある場合に、データサーバＡには部署Ａが作成したデータを、データサーバＢには部署Ｂが作成したデータを、データサーバＣには部署Ｃが作成したデータを、データサーバＤには部署Ｄが作成したデータを格納する。このように構成することによって、部署Ａで作成されたデータをバックアップする場合にはデータサーバＡのみに限定することができる。
【０００４】
一方、各データサーバにランダムにデータを格納した場合には、部署Ａで作成されたデータをバックアップする場合であっても、システム全体の静止化又はレスポンス低下などの影響が生じてしまう。
【０００５】
このように、管理対象のデータが各データサーバに分類されて配置されるシステム形態では、データを確実に保管するためのシステム（原本管理システム）と、保管されたデータを業務で活用するためのシステムに分けることによって、運用性を向上させることができる。
【０００６】
このような運用では、ディザスタリカバリなどの高度なバックアップ処理は原本管理システムに対して実行される。また、災害、大規模停電、又はシステムのリプレースの際など、システムの再構築が必要な場合には、原本管理システムからデータをデータ活用システムに分配してシステムを再構築する。
【０００７】
また、並列データベースにおいてデータサーバごとに管理されるデータを分類する場合には、データを各データサーバに分配する際に対象のデータの特性又は内容を把握する必要がある。そこで、分配前に対象のデータを解析して対象のデータの特性を把握し、把握された特性に基づいて各データサーバに対象のデータを分配する。例えば、分配対象データの先頭５バイト目から４バイトの情報を切り出して４バイトの整数値とし、１ならば部署Ａが作成したデータであるものとしてデータサーバＡに分配し、同様に、２ならばデータサーバＢ、３ならばデータサーバＣ、４ならばデータサーバＤに分配する。
【０００８】
さらに、各データサーバは、それぞれ別のデータ格納領域を持ち、それぞれの領域を占有することによって排他処理などを実行することなく、高速な格納処理を実現することができる。このようなシステム構成において、各データサーバが占有する領域の大きさを決定する方法として、共有ディスク格納領域自動設定方式が開示されている（特許文献１参照）。
【０００９】
従来の並列データベースは、このように予め定められた形式のデータのみを格納する仕様であったため、高速に処理することが可能であった。例えば、登録データの形式は、先頭４バイトがデータの識別子、次の４バイトがアクセスレベルに関する情報、次の２５６バイトがデータ名、次の４バイトがポインタ情報などのように厳密に定義されていた。そして、格納時には、定義されたフォーマットに基づいてデータを解析し、各項目の値を取得する。したがって、分配する前に対象のデータを解析してその特性又は内容を把握することは、分配から格納までの処理において、対象のデータを二回解析する必要がある。
【００１０】
ただし、分配自体にかかる時間に比べ、対象のデータが定型で解析にかかる時間が十分に小さい場合は実用上問題がない。例えば、オーバヘッドとして見込まれた転送速度は１００メガバイト／秒であれば、解析に必要な時間はこれよりも小さく、スループットのネックが転送速度であるとすれば、４テラバイトのデータの分配は、約１１時間（半日）で完了する。
【特許文献１】特開２００６−１１７８６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
一方、分配対象のデータが構造化文書となる場合には、同様に処理することはできない。構造化文書とは、例えば、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述された文書（以下、「ＸＭＬ文書」）などである。
【００１２】
構造化文書では、文書内に分類するための項目の配置が固定されていない場合があり、文書そのものを解析する必要がある。したがって、構造化文書の解析は、定型データからのデータの切り出しと比較して、大きな処理コストを必要とする。例えば、１つのＸＭＬ文書の解析を９ミリ秒とすると、４テラバイト（１０キロバイトのＸＭＬ文書が４億件）のデータを分配するためには、１，０００時間（約４２日）必要とする。
【００１３】
解析に必要な時間は、分配前に分配対象のデータを解析する専用のサーバ（パースサーバ）を複数台用意し、並列に処理することで短縮することが可能である。しかし、パースサーバは一度データベースを構築した後は使用されないため、パースサーバを複数台確保することは、コスト面の問題から現実的ではない。
【００１４】
また、このような問題はデータの解析処理の時間に関する問題であるため、特許文献１に開示された共有ディスク格納領域自動設定方式では解決することはできない。
【００１５】
本発明は、複数の格納先（データサーバ）を有する並列データベースにおいて、解析処理の負荷が大きいデータを特性又は内容に基づいて特定のデータサーバで管理する場合に、解析専用サーバ（パースサーバ）を必要とせずに大容量のデータ量を実用上問題のない時間でデータベースを構築することを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の代表的な一形態では、複数のデータサーバによってデータが管理される並列データベースシステムにおいて、データを分配するデータ分配方法であって、前記並列データベースシステムは、前記データの特性と前記データが管理されるデータサーバとの対応情報、及び、前記データの特性に対応したデータ格納領域を有し、前記データ分配方法は、前記データ格納領域に格納するデータから前記データの特性を抽出し、前記抽出されたデータの特性に基づいて、対応する前記データ格納領域に前記データを格納し、前記各データサーバは、前記対応情報及び前記データ格納領域に格納されたデータの特性に基づいて、該当する各データ格納領域にアクセスする。
【００１７】
以下、課題を解決するための手段を、図面を参照して説明する。
【００１８】
本発明によるデータの分配は、データを格納する段階（格納フェーズ）及び管理する段階（管理フェーズ）に分けられる。
【００１９】
図２７は、本発明が適用される並列データベースシステムの格納フェーズの概念を示す図である。
【００２０】
並列データベースシステムは、データロード制御サーバ２７１５、原本管理サーバ２７１７、格納媒体２７１９、複数のデータサーバ、及び、格納媒体２７２０を有する。
【００２１】
データロード制御サーバ２７１５は、原本となるデータを各データサーバに分配する制御を実行する。データロード制御サーバ２７１５は、データの分配を制御するデータロード制御プログラム２７１６を有する。
【００２２】
原本管理サーバ２７１７は、各データサーバに登録するデータを管理する。原本管理サーバ２７１７は、登録対象のデータを格納媒体２７１９から読み出すデータ読み出しプログラム２７１８を有する。
【００２３】
格納媒体２７１９は、各データサーバに登録するデータを格納する。格納媒体２７２０は、各データサーバが参照するデータ格納領域を制御する参照パスコントローラ２７２１を有する。
【００２４】
複数のデータサーバには、図２７では、データサーバ２７０１、データサーバ２７０２、及び、データサーバ２７０３が含まれている。ここで、データサーバについて、データサーバ２７０１を例として説明する。データサーバ２７０２又はデータサーバ２７０３といった他のデータサーバについても、データサーバ２７０１と同等の構成を有し、同等の処理を実行することが可能である。
【００２５】
データサーバ２７０１は、データ格納管理プログラム２７１３、データの特性と当該データの特性を管理するデータサーバとの対応情報、及び、対応管理リスト２７１４を有する。
【００２６】
データ格納管理プログラム２７１３は、登録対象のデータからデータ特性を抽出する機能を有する。対応管理リスト２７１４は、格納フェーズにおいて各データ格納領域にデータを格納するデータサーバ（格納サーバ）と、管理フェーズにおいて各データ格納領域に格納されたデータを管理するデータサーバ（管理サーバ）との対応関係を含む。
【００２７】
図２７に示す格納媒体２７２０には、データ格納領域２７０４、データ格納領域２７０５、データ格納領域２７０６、データ格納領域２７０７、データ格納領域２７０８、データ格納領域２７０９、データ格納領域２７１０、データ格納領域２７１１、及び、データ格納領域２７１２が含まれている。
【００２８】
以下、格納フェーズで実施される処理の概要を説明する。
【００２９】
データロード制御サーバ２７１５のＣＰＵ（図示せず）は、データロード制御プログラム２７１６を実行することによって、すべてのデータ格納領域について、すべてのデータサーバがもれなく管理サーバとして対応管理リスト２７１４に設定される。さらに、同一のデータサーバを管理サーバとするデータ格納領域の格納サーバに、すべてのデータサーバがもれなく含まれるように、各データ格納領域の格納サーバ及び管理サーバを対応管理リスト２７１４に設定する。データロード制御サーバ２７１５のＣＰＵは、データ格納管理プログラム２７１３を実行することによって、各データサーバが格納サーバとして設定されたデータ格納領域を参照可能となるように、参照パスコントローラ２７２１に指示する。
【００３０】
データサーバ２７０１は、データ格納領域２７０４、データ格納領域２７０７、及び、データ格納領域２７１０の管理サーバである。また、これらの３つのデータ格納領域の格納サーバは、それぞれデータサーバ２７０１、データサーバ２７０２、データサーバ２７０３である。
【００３１】
データサーバ２７０２は、データ格納領域２７０５、データ格納領域２７０８、及び、データ格納領域２７１１の管理サーバである。また、これらの３つのデータ格納領域の格納サーバは、それぞれデータサーバ２７０１、データサーバ２７０２、データサーバ２７０３である。
【００３２】
データサーバ２７０３は、データ格納領域２７０６、データ格納領域２７０９、及び、データ格納領域２７１２の管理サーバである。また、これらの３つのデータ格納領域の格納サーバは、それぞれデータサーバ２７０１、データサーバ２７０２、データサーバ２７０３である。
【００３３】
ここで、格納フェーズにおける全体の処理の流れについて説明すると、まず、データサーバ２７０１のＣＰＵ（図示せず）は、データ格納管理プログラム２７１３を実行することによって、データ格納領域２７０４、データ格納領域２７０５、及び、データ格納領域２７０６を参照するように制御する。
【００３４】
データロード制御サーバ２７１５のＣＰＵは、データロード制御プログラム２７１６を実行することによって、原本管理サーバ２７１７にデータの読み出しを指示する。
【００３５】
原本管理サーバ２７１７のＣＰＵ（図示せず）は、データ読み出しプログラム２７１８を実行することによって、登録する対象となるデータを取得し、任意のデータサーバ２７０１に取得されたデータを送信すると共に、各データサーバにデータの格納を指示する。
【００３６】
データサーバ２７０１のＣＰＵは、データ格納管理プログラム２７１３を実行することによって、原本管理サーバ２７１７から送信されたデータの特性を抽出し、対応管理リスト２７１４を参照し、当該データの特性に応じたデータ格納領域に格納する。
【００３７】
例えば、データサーバ２７０１のＣＰＵは、データサーバ２７０１に送信された、データサーバ２７０３に管理される特性を有するデータを、格納サーバがデータロード２７０１であって、かつ、管理サーバがデータサーバ２７０３であるデータ格納領域２７０６に格納する。
【００３８】
以上のように、登録する対象となるすべてのデータを、データ格納領域に格納すると、並列データベースシステムは管理フェーズに移行する。
【００３９】
図２８は、本発明が適用される並列データベースシステムの管理フェーズの概念を示す図である。
【００４０】
管理フェーズでは、データロード制御サーバ２７１５のＣＰＵがデータロード制御プログラム２７１６を実行することによって、各データサーバに管理サーバとして設定されたデータ格納領域を参照可能となるように指示する。各データサーバは、データ格納管理プログラム２７１３を実行し、参照パスコントローラ２７２１に各データサーバが参照するデータ格納領域の変更を指示する。
【発明の効果】
【００４１】
本発明の一形態によれば、各データサーバにおいて分配されたデータの特性を解析し、当該データの特性に基づいて、当該データサーバの記憶領域にデータを格納することによって、データの分配に必要な時間を短縮することができる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明の実施の形態を、図面を参照して説明する。
【００４３】
（第１の実施の形態）
本発明の第１の実施の形態の並列データベースシステムでは、データベースに格納されたデータを格納する段階（格納フェーズ）及び管理する段階（管理フェーズ）において、各データサーバがアクセスされる領域が切り替えられる。そこで、データサーバに分配されたデータの特性が当該データサーバの管理対象のデータの特性と異なる場合であっても、管理フェーズにおいて各データサーバが管理対象の特性を有するデータを管理することができる。以下、本発明の第１の実施の形態の並列データベースシステムについて、説明する。
【００４４】
図１は、本発明の第１の実施の形態の並列データベースを含むシステムの構成を示す図である。
【００４５】
本システムは、データロード制御サーバ１００１、原本管理制御サーバ１００２、データ格納媒体１００３、及びデータサーバ１００５を含む。なお、本発明の第１の実施の形態では、データサーバ１００５には、第１データサーバ１００５Ａ及び第２データサーバ１００５Ｂが含まれる。本発明の第１の実施の形態では、２台のデータサーバが含まれているが、システム構成に応じて変更してもよい。
【００４６】
データロード制御サーバ１００１は、ＣＰＵ１００９、主記憶１０１０、ネットワークポート１０１１、表示装置１００７及び入力装置１００８を含む。ＣＰＵ１００９、主記憶１０１０、ネットワークポート１０１１、表示装置１００７及び入力装置１００８は、バス１０１２よって接続される。
【００４７】
ＣＰＵ１００９は、主記憶１０１０に記憶されたプログラムを実行し、所定の処理を実行する。主記憶１０１０は、ＣＰＵ１００９によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。
【００４８】
主記憶１０１０は、システム制御プログラム１０１３及びデータロード制御プログラム１１０４を記憶する。また、主記憶１０１０は、作業領域１０１８を含む。システム制御プログラム１０１３及びデータロード制御プログラム１１０４は、磁気ディスク、フラッシュメモリ又はＣＤ−ＲＯＭなどの記録媒体に記録され、主記憶１０１０にロードされてから実行される。
【００４９】
システム制御プログラム１０１３は、ＣＰＵ１０１９に実行されることによって、外部から受信した制御信号又はデータロード制御サーバ１００１の状態に基づいて、所定の処理を実行する。
【００５０】
データロード制御プログラム１１０４は、ＣＰＵ１００９に実行されることによって、複数のデータサーバに分散されたデータを１つの並列データベースとして機能させる。データロード制御プログラム１１０４は、パス作成プログラム１０１５、データ分配プログラム１０１６及び参照切替プログラム１０１７を含む。
【００５１】
パス作成プログラム１０１５は、ＣＰＵ１００９に実行されることによって、データ格納媒体１００３に格納されたデータサーバ数に応じた小領域とデータサーバとを接続するパス（通信路）情報と、分配時と管理時のデータサーバと小領域の対応関係を設定する。
【００５２】
データ分配プログラム１０１６は、ＣＰＵ１００９に実行されることによって、分配対象データ５１０１を分配する分配先データサーバ８１０１を選択する。
【００５３】
参照切替プログラム１０１７は、ＣＰＵ１００９に実行されることによって、データサーバと小領域のパスに関する情報に基づいて、格納フェーズと管理フェーズでデータサーバと小領域のパスの参照許可を切り替える。
【００５４】
作業領域１０１８は、各プログラムの実行時に一時的に必要なデータを格納する。
【００５５】
ネットワークポート１０１１は、ネットワーク１００４を介して他のサーバとデータ及び信号をやり取りする。表示装置１００７は、各種処理の結果などを表示する。入力装置１００８は、実行する処理の命令及び必要な情報などを入力する。
【００５６】
原本管理制御サーバ１００２は、ＣＰＵ１０１９、主記憶１０２０、ネットワークポート１０２１及びストレージポート１０２２を含む。ＣＰＵ１０１９、主記憶１０２０、ネットワークポート１０２１及びストレージポート１０２２は、バス１０２３よって接続される。
【００５７】
ＣＰＵ１０１９は、主記憶１０２０に記憶されたプログラムを実行し、所定の処理を実行する。主記憶１０２０は、ＣＰＵ１０１９によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。
【００５８】
主記憶１０２０は、システム制御プログラム１０２６及びデータ読み出しプログラム１０２７を記憶する。また、主記憶１０２０は、作業領域１０１８を含む。
【００５９】
システム制御プログラム１０２６は、ＣＰＵ１０１９に実行されることによって、外部から受信した制御信号又は原本管理制御サーバ１００２の状態に基づいて、所定の処理を実行する。
【００６０】
データ読み出しプログラム１０２７は、ＣＰＵ１０１９に実行されることによって、原本格納媒体１０２５に格納された分配対象データ５１０１を取得し、分配先データサーバ８１０１に分配データ実体９１０１を送付する処理部である。分配データ実体９１０１は、例えば、ＸＭＬ文書などである。ＸＭＬ文書については、一例を図１１にて後述する。
【００６１】
作業領域１０２８は、各プログラムの実行に必要なデータを一時的に格納する。
【００６２】
ネットワークポート１０２１は、ネットワーク１００４を介して他のサーバとデータ及び信号をやり取りする。ストレージポート１０２２は、原本格納媒体１０２５の通信路となるファイバーチャネル１０２４に接続される。
【００６３】
原本格納媒体１０２５は、分配データ実体９１０１を実際に格納する記憶媒体である。原本格納媒体１０２５は、ファイバーチャネル１０２４を介して、原本管理制御サーバ１００２に接続される。
【００６４】
データサーバ１００５は、ＣＰＵ１０２９、主記憶１０３０、ネットワークポート１０３１、ストレージポート１０３２を備える。ＣＰＵ１０２９、主記憶１０３０、ネットワークポート１０３１、ストレージポート１０３２は、バス１０３３によって接続される。データサーバ１００５は、並列データベースシステムに複数含まれるデータサーバの総称であり、本発明の第１の実施の形態では、二台のデータサーバ１００５、第１データサーバ１００５Ａ及び第２データサーバ１００５Ｂを含む。なお、第１データサーバ１００５Ａ及び第２データサーバ１００５Ｂは同じ構成である。
【００６５】
データサーバ１００５は、ストレージポート１０３２とデータ格納媒体１００３の通信路となるファイバーチャネル１０３４によって、データの格納先であるデータ格納媒体１００３に接続されている。
【００６６】
主記憶１０３０は、システム制御プログラム１０３５及びデータ格納管理プログラム１０３６を記憶する。主記憶１０３０は、設定格納領域１０３７及び作業領域１０３９を含む。主記憶１０３０に格納されたプログラムは、ＣＰＵ１０２９に実行されることによって、所定の処理が実行される。
【００６７】
システム制御プログラム１０３５は、ＣＰＵ１０２９に実行されることによって、外部から受信した制御信号又はデータサーバ１００５の状態に基づいて、所定の処理を実行する。
【００６８】
データ格納管理プログラム１０３６は、ＣＰＵ１０２９に実行されることによって、分配データ実体９１０１を解析し、解析結果、及び、データサーバと小領域との対応関係に基づいて当該データを管理するデータサーバ１００５を決定する。データ格納管理プログラム１０３６は、管理フェーズにおいて、当該データサーバが管理する小領域に当該データを格納する。
【００６９】
設定格納領域１０３７は、対応管理リスト１０３８が格納される。対応管理リスト１０３８は、データサーバ１００５とデータ格納媒体１００３に確保された小領域との対応関係を格納する。なお、本発明の第１の実施の形態では、設定格納領域１０３７が主記憶１０３０に確保されているが、磁気ディスク又は他の記憶媒体であってもよい。
【００７０】
データ格納媒体１００３は、１つ以上の小領域及び設定格納領域１０４４を含む。本発明の第１の実施の形態では、１つ以上の小領域には、第１小領域１０４０、第２小領域１０４１、第３小領域１０４２、及び第４小領域１０４３が含まれる。また、データ格納媒体１００３は、データサーバ１００５と各小領域とのパスと参照許可を制御する参照パスコントローラ１０４６が接続されている。設定格納領域１０４４には、パス管理情報１０４５が格納される。
【００７１】
参照パスコントローラ１０４６は、ネットワーク１００４を介して他のサーバとデータ及び信号をやり取りするためのネットワークポート１０４７を備える。
【００７２】
次に、本発明の第１の実施の形態の処理について説明する。
【００７３】
図２は、本発明の第１の実施の形態のデータロード処理の手順を示す図である。図２に示す処理の流れは、ＰＡＤ（Ｐｒｏｂｌｅｍ  Ａｎａｌｙｓｉｓ  Ｄｉａｇｒａｍ）によって表記されている。
【００７４】
データロード制御サーバ１００１のＣＰＵ１００９は、データロード制御プログラム１０１４を処理することによって、データロード処理を実行する。
【００７５】
ＣＰＵ１００９は、入力装置１００８からデータロード対象データリスト１０４８及び格納先データサーバリスト１０４９の入力を受け付ける（ステップ２００１）。入力されたデータロード対象データリスト１０４８及び格納先データサーバリスト１０４９は、作業領域１０１８に格納される。なお、データロード対象データリスト１０４８と格納先データサーバリスト１０４９の詳細は、図３及び図４にて後述する。
【００７６】
ＣＰＵ１００９は、パス作成プログラム１０１５を起動し、パス作成処理によって対応管理リスト１０３８及びパス管理情報１０４５を生成する（ステップ２００２）。生成された対応管理リスト１０３８及びパス管理情報１０４５は、作業領域１０１８に格納される。なお、パス作成処理の手順については、図５にて説明する。また、対応管理リスト１０３８及びパス管理情報１０４５の詳細は、図６及び図７にて後述する。
【００７７】
ＣＰＵ１００９は、データロード対象データリスト１０４８に格納されたデータロード対象データ３００１の数だけデータ分配処理を実行する（ステップ２００３）。データ分配処理では、未分配のデータロード対象データのうち一つを分配対象データ５１０１とし、データ分配プログラム１０１６を実行することによってデータ分配処理を実行する（ステップ２００４）。なお、データ分配処理の手順は図８にて後述する。
【００７８】
ＣＰＵ１００９は、データ分配プログラム１０１６を処理することによって、データロード対象データリスト１０４８に記載されたデータの分配の指示が終了すると、データロード対象データリスト１０４８の分配状況３００３がすべて「分配済み」の状態になるまで待機する（ステップ２００５）。
【００７９】
ＣＰＵ１００９は、データロード対象データリスト１０４８の分配状況３００３がすべて「分配済み」の状態になると、参照切替プログラム１０１７を処理し、参照切り替え処理を実行する（ステップ２００６）。参照切り替え処理では、データ格納媒体１００３の参照パスコントローラ１０４６にフェーズ変更信号１３１０１を送信し、パス管理情報１０４５に基づいて、参照可能なパスを格納フェーズから管理フェーズに変更する。さらに、データサーバ１００５にフェーズ変更信号１３１０１を送信する。参照切り替え処理の手順については、図９にて後述する。
【００８０】
ＣＰＵ１００９は、データ格納媒体１００３の参照パスコントローラ１０４６及び各データサーバから送信された変更終了信号２１０１を受信するまで待機する（ステップ２００７）。
【００８１】
ＣＰＵ１００９は、すべてのデータサーバからの変更終了信号２１０１を受信すると、表示装置１００７に分配完了の通知を表示する（ステップ２００８）。ステップ２００８の処理の終了後、データロード処理は終了する。
【００８２】
図３は、本発明の第１の実施の形態のデータロード処理実行時に入力を受け付けるデータロード対象データリスト１０４８の一例を示す図である。データロード対象データリスト１０４８は、データロード処理が開始されてから終了するまで、データロード制御サーバ１００１の作業領域１０１８に保持される。
【００８３】
データロード対象データリスト１０４８は、データロード対象データ３００１、分配先３００２及び分配状況３００３を含む。
【００８４】
データロード対象データ３００１は、分配対象データ５１０１の実体（分配データ実体９１０１）が格納されている場所である。データロード対象データ３００１は、図２のステップ２００１の処理において、入力装置１００８から入力される。
【００８５】
分配先３００２は、分配対象データ５１０１を送付するデータサーバを表す識別子である。分配先３００２は、初期値として「ｎｕｌｌ」が設定され、データ分配処理における分配対象データ５１０１の解析結果に基づいて分配先のデータサーバ１００５が設定される。
【００８６】
分配状況３００３は、データ分配処理の過程における分配対象データ５１０１の状態である。具体的には、分配先３００２が初期値の「ｎｕｌｌ」であるとき、データ分配プログラム１０１６が実行されることによって分配先３００２が設定されると、分配状況３００３の値は「未分配」に設定される。そして、データ格納管理プログラム１０３６が実行されることによって、分配対象データ５１０１が小領域に格納されると「分配済み」に設定される。
【００８７】
ここで、図３に示すデータロード対象データリスト１０４８を参照すると、レコード３０１１から３０１４が格納されている。
【００８８】
レコード３０１１は、データロード対象データ３００１に「￥￥原本管理制御サーバ￥ＤＯＣ￥ＤＯＣ００００．ｘｍｌ」が設定され、分配先３００２が「第１データサーバ」であって、既に小領域に格納済みの状態である。
【００８９】
また、レコード３０１２は、データロード対象データ３００１に「￥￥原本管理制御サーバ￥ＤＯＣ￥ＤＯＣ０００１．ｘｍｌ」が設定され、分配先３００２が「第２データサーバ」であるが、現時点ではデータロード対象データ３００１が小領域に格納されていない。同様に、レコード３０１３は、「￥￥原本管理制御サーバ￥ＤＯＣ￥ＤＯＣ０００２．ｘｍｌ」が設定され、分配先３００２が「第１データサーバ」であるが、データロード対象データ３００１が小領域に格納されていない。
【００９０】
さらに、レコード３０１４は、「￥￥原本管理制御サーバ￥ＤＯＣ￥ＤＯＣ０００３．ｘｍｌ」が設定され、分配先３００２が未設定であり、分配状況も「ｎｕｌｌ」が設定されている。
【００９１】
図４は、本発明の第１の実施の形態のデータロード処理実行時に入力を受け付ける格納先データサーバリスト１０４９の一例を示す図である。格納先データサーバリスト１０４９は、図２のステップ２００１で入力装置１００８から入力されてからデータロード処理が終了するまで、データロード制御サーバ１００１の作業領域１０１８に保持される。
【００９２】
格納先データサーバリスト１０４９は、データサーバ４００１、アドレス４００２及び格納データの条件４００３を含む。
【００９３】
データサーバ４００１は、データサーバ１００５の名称である。アドレス４００２は、データサーバのネットワーク１００４の位置を特定する情報である。アドレス４００２は、例えば、ＩＰアドレスが格納される。格納データの条件４００３は、データサーバで管理されるデータを格納する条件である。
【００９４】
ここで、図４に示す格納先データサーバリスト１０４９を参照すると、第１データサーバ１００５Ａ及び第２データサーバ１００５Ｂに関する情報が格納されている。
【００９５】
第１データサーバ１００５Ａは、アドレス「１．１．１．１」に存在し、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＡ  ｄｅｐａｒｔｍｅｎｔ」であるデータが分配される。そして、第２データサーバ１００５Ｂは、アドレス「１．１．１．２」に存在し、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＢ  ｄｅｐａｒｔｍｅｎｔ」であるデータが分配される。
【００９６】
続いて、パス作成処理について説明する。パス作成処理は、図２のステップ２００２の処理において、パス作成プログラム１０１５がＣＰＵ１００９によって処理されて実行される。
【００９７】
図５は、本発明の第１の実施の形態のパス作成処理の手順を示すＰＡＤである。
【００９８】
ＣＰＵ１００９は、まず、作業領域１０１８に格納された格納先データサーバリスト１０４９を参照し、データサーバ数５１０２を取得する。さらに、データが格納されていない状態の対応管理リスト１０３８及びパス管理情報１０４５を作業領域１０１８に作成する（ステップ５００１）。なお、対応管理リスト１０３８の詳細については、図６にて後述する。また、パス管理情報１０４５の詳細については、図７にて後述する。
【００９９】
ＣＰＵ１００９は、データ格納媒体１００３の参照パスコントローラ１０４６に対し、データサーバ数５１０２の２乗個の小領域の作成を指示する。さらに、作成された小領域の名称を対応管理リスト１０３８に設定する（ステップ５００２）。
【０１００】
ＣＰＵ１００９は、分配データサーバ設定カウンタ５１０３及び管理データサーバ設定カウンタ５１０４を０に設定する（ステップ５００３）。分配データサーバ設定カウンタ５１０３及び管理データサーバ設定カウンタ５１０４は、主記憶１０１０に一時的に記憶される変数である。
【０１０１】
ＣＰＵ１００９は、データサーバ数５１０２の数だけ分配データサーバ決定ループ処理（ステップ５００５〜ステップ５０１４）を実行する（ステップ５００４）。
【０１０２】
分配データサーバ決定ループ処理では、ＣＰＵ１００９は、まず、格納先データサーバリスト１０４９の［分配データサーバ設定カウンタ５１０３］番目のデータサーバを設定分配データサーバ５１０５に設定する（ステップ５００５）。
【０１０３】
ＣＰＵ１００９は、さらに、データサーバ数５１０２の数だけ格納データサーバ決定ループ処理（ステップ５００７〜ステップ５０１３）を実行する（ステップ５００６）。
【０１０４】
格納データサーバ決定ループ処理では、ＣＰＵ１００９は、まず、格納先データサーバリスト１０４９の［管理データサーバ設定カウンタ５１０４］番目のデータサーバを設定管理データサーバ５１０６に設定する（ステップ５００７）。
【０１０５】
ＣＰＵ１００９は、さらに、対応管理リスト１０３８において分配データサーバ６００２と管理データサーバ６００３が未設定である小領域を設定対象小領域５１０７に設定する（ステップ５００８）。
【０１０６】
ＣＰＵ１００９は、設定対象の小領域６００１に対応する対応管理リスト１０３８のレコードを更新する。具体的には、分配データサーバ６００２に設定分配データサーバ５１０５を設定し、管理データサーバ６００３に設定管理データサーバ５１０６を設定する。さらに、格納先データサーバリスト１０４９を参照して設定管理データサーバ５１０６に対応する格納データの条件４００３を取得し、格納データの条件６００４に設定する（ステップ５００９）。
【０１０７】
ＣＰＵ１００９は、分配パス５１０９及び管理パス５１０８の作成と、分配パス５１０９の参照を許可するように、データ格納媒体１００３の参照パスコントローラ１０４６に指示する（ステップ５０１０）。分配パス５１０９は、設定対象小領域５１０７と分配データサーバ６００２とを接続するパスである。また、管理パス５１０８は、設定対象小領域５１０７と管理データサーバ６００３とを接続するパスである。
【０１０８】
ＣＰＵ１００９は、パス管理情報１０４５の分配パス５１０９の格納フェーズの参照７００２に「ｔｒｕｅ」（許可状態）を設定し、該当するパスの参照を許可する（ステップ５０１１）。
【０１０９】
ＣＰＵ１００９は、パス管理情報１０４５の管理パス５１０８の管理フェーズの参照７００３に「ｔｒｕｅ」（許可状態）を設定する（ステップ５０１２）。そして、分配データサーバ設定カウンタ５１０３を加算し（ステップ５０１３）、格納データサーバ決定ループ処理を終了する。
【０１１０】
ＣＰＵ１００９は、さらに、管理データサーバ設定カウンタ５１０４を加算し（ステップ５０１４）、分配データサーバ決定ループ処理を終了する。
【０１１１】
ＣＰＵ１００９は、データ格納媒体１００３の設定格納領域１０４４にパス管理情報１０４５を格納する。さらに、各データサーバの設定格納領域１０３７に対応管理リスト１０３８を格納する（ステップ５０１５）。以上の処理が終了すると、パス作成処理は終了する。
【０１１２】
図６は、本発明の第１の実施の形態の対応管理リスト１０３８の一例を示す図である。図６に示した対応管理リスト１０３８は、パス作成処理終了時の状態である。対応管理リスト１０３８は、データを格納する小領域にアクセスするサーバ及びデータの格納条件を保持する。
【０１１３】
対応管理リスト１０３８は、小領域６００１、分配データサーバ６００２、管理データサーバ６００３及び格納データの条件６００４を含む。
【０１１４】
小領域６００１は、各データサーバに作成された小領域の名称である。小領域６００１は、図５のステップ５００２の処理によって設定される。
【０１１５】
分配データサーバ６００２は、小領域６００１に対して実際にデータを格納するデータサーバの名称である。分配データサーバ６００２は、図５のステップ５０１０の処理によって設定される。
【０１１６】
管理データサーバ６００３は、小領域に格納されたデータを管理するデータサーバの名称である。小領域６００１は、図５のステップ５００９の処理によって設定される。
【０１１７】
格納データの条件６００４は、小領域に格納されるデータの条件である。格納データの条件６００４は、格納先データサーバリスト１０４９の情報に基づいて、分配データサーバ６００２で指定されたデータサーバに対応する格納データの条件４００３が設定される。
【０１１８】
小領域６００１に新しい小領域の名称が設定されると、分配データサーバ６００２、管理データサーバ６００３及び格納データの条件６００４には、初期値として「ｎｕｌｌ」が設定される。
【０１１９】
図６に示した対応管理リスト１０３８によると、格納フェーズでは「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＡ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第１データサーバ１００５Ａによって第１小領域１０４０に格納される。同様に、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＢ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第２小領域１０４１に格納される。さらに、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＡ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第２データサーバによって第３小領域１０４２に格納される。同様に、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＢ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第２データサーバによって第４小領域１０４３に格納される。
【０１２０】
また、管理フェーズでは、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＡ  ｄｅｐａｒｔｍｅｎｔ」であるデータが格納された第１小領域及び第３小領域が第１データサーバによって管理される。同様に、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＢ  ｄｅｐａｒｔｍｅｎｔ」であるデータが格納された第２小領域及び第４小領域が第２データサーバによって管理される。
【０１２１】
図７は、本発明の第１の実施の形態のパス管理情報１０４５の一例を示す図である。図７に示したパス管理情報１０４５は、パス作成処理終了時の状態である。パス管理情報１０４５は、小領域とデータサーバとの接続関係を保持する。
【０１２２】
パス７００１は、パスによって接続される１対の小領域とデータサーバである。パス７００１は、図５のステップ５０１１又はステップ５０１２の処理によって設定される。例えば、「第１小領域−第１データサーバ」は第１小領域と第１データサーバとを接続するパスを表している。
【０１２３】
格納フェーズの参照７００２は、格納フェーズにおける当該パスの参照の可否である。格納フェーズの参照７００２は、図５のステップ５０１１の処理によって設定される。管理フェーズの参照７００３は管理フェーズにおける当該パスの参照の可否である。管理フェーズの参照７００３は、図５のステップ５０１２の処理によって設定される。
【０１２４】
格納フェーズの参照７００２及び管理フェーズの参照７００３の初期値は「ｎｕｌｌ」である。また、格納フェーズの参照７００２及び管理フェーズの参照７００３に設定された値が「ｎｕｌｌ」である場合には、パスの使用を許可せず、「ｔｒｕｅ」に設定されている場合にはパスの使用を許可する。
【０１２５】
図７に示したパス管理情報１０４５によると、格納フェーズでは、レコード７００４からレコード７００７に対応するパスが使用可能となっている。具体的には、「第１小領域−第１データサーバ」、「第２小領域−第１データサーバ」、「第３小領域−第２データサーバ」及び「第４小領域−第２データサーバ」の４つのパスが使用可能である。
【０１２６】
管理フェーズでは、レコード７００４、７００７から７００９に対応するパスが使用可能となっている。具体的には、「第１小領域−第１データサーバ」、「第２小領域−第２データサーバ」、「第３小領域−第１データサーバ」及び「第４小領域−第２データサーバ」の４つのパスが使用可能である。
【０１２７】
続いて、データ分配処理について説明する。データ分配処理は、図２のステップ２００４の処理において、データ分配プログラム１０１６がＣＰＵ１００９によって処理されて実行される。
【０１２８】
図８は、本発明の第１の実施の形態のデータ分配処理の手順を示すＰＡＤである。
【０１２９】
データロード制御サーバ１００１のＣＰＵ１００９は、まず、格納先データサーバリスト１０４９からデータロード対象データリスト１０４８の分配先３００２に設定された回数が最小であるデータサーバを１つ分配先データサーバ８１０１として選択する。そして、選択された分配先データサーバ８１０１を分配対象データ５１０１の分配先３００２としてデータロード対象データリスト１０４８に設定する（ステップ８００１）。このように、分配先３００２に設定された回数が最小のデータサーバを優先してデータを割り当てることによって、各データサーバにデータを均等に分配することができる。また、データロード対象データリスト１０４８の分配状況３００３の値を「未分配」に設定する。
【０１３０】
ＣＰＵ１００９は、分配対象データ５１０１を格納する原本管理制御サーバ１００２に、分配対象データ５１０１及び分配先データサーバ８１０１をデータ読み出し信号８１０２と共に送信する（ステップ８００２）。
【０１３１】
ＣＰＵ１００９は、さらに、分配先データサーバ８１０１から送信された分配対象データ５１０１に関するデータ格納完了信号１０１０４を受信するまで待機する（ステップ８００３）。
【０１３２】
ＣＰＵ１００９は、分配対象データ５１０１の分配状況３００３を「分配済み」としてデータロード対象データリスト１０４８に設定する（ステップ８００４）。ステップ８００４の処理が完了すると、データ分配処理は終了する。
【０１３３】
続いて、実データ取得処理について説明する。実データ取得処理は、図８のステップ８００２の処理において、データロード制御サーバ１００１から送信されたデータ読み出し信号８１０２を原本管理制御サーバ１００２が受信したときに、データ読み出しプログラム１０２７が処理されることによって実行される。
【０１３４】
図９は、本発明の第１の実施の形態の実データ取得処理の手順を示すＰＡＤである。
【０１３５】
原本管理制御サーバ１００２のＣＰＵ１０１９は、分配対象データ５１０１と分配先データサーバ８１０１を受信し、作業領域１０２８に格納する（ステップ９００１）。
【０１３６】
ＣＰＵ１０１９は、分配対象データ５１０１に指定された分配データ実体９１０１（例えば、ＸＭＬ文書）を原本格納媒体１０２５から取得し、作業領域１０２８に格納する（ステップ９００２）。
【０１３７】
ＣＰＵ１０１９は、作業領域１０２８に格納された分配対象データ５１０１及び分配データ実体９１０１を、格納依頼信号９１０２と共に分配先データサーバ８１０１に指定されたデータサーバにネットワーク１００４を介して送信する（ステップ９００３）。ステップ９００３の処理が終了すると、実データ取得処理は終了する。
【０１３８】
続いて、格納管理処理について説明する。格納管理処理は、図９のステップ９００３の処理において、原本管理制御サーバ１００２から送信された格納依頼信号９１０２をデータサーバ１００５が受信したときに、データ格納管理プログラム１０３６が処理されることによって実行される。また、図２のステップ２００６の処理において、データロード制御サーバ１００１から送信されたフェーズ変更信号１３１０１をデータサーバ１００５が受信したときにも格納管理処理は実行される。
【０１３９】
図１０は、本発明の第１の実施の形態の格納管理処理の手順を示すＰＡＤである。
【０１４０】
データサーバ１００５のＣＰＵ１０２９は、受信した信号に基づいて、処理を分岐させる（ステップ１０００１）。具体的には、受信した信号が格納依頼信号９１０２ならばデータ格納処理を実行する。また、受信した信号がフェーズ変更信号１３１０１ならばフェーズ切り替え処理を実行する。
【０１４１】
まず、データ格納処理について説明する。データ格納処理は、ステップ１０００２からステップ１０００６までの処理である。
【０１４２】
ＣＰＵ１０２９は、データ格納処理において、まず、受信した分配対象データ５１０１と分配データ実体９１０１を作業領域１０３９に格納する（ステップ１０００２）。
【０１４３】
ＣＰＵ１０２９は、作業領域１０３９の分配データ実体９１０１を解析し、解析済みデータ１０１０１及び分配キー値１０１０２を取得し、作業領域１０３９に格納する（ステップ１０００３）。解析済みデータ１０１０１の詳細については、図１２にて後述する。
【０１４４】
ＣＰＵ１０２９は、解析済みデータ１０１０１に基づいて、分配データサーバ６００２が本処理実行中のデータサーバ１００５と一致し、取得された分配キー値１０１０２が格納データの条件６００４を満たす小領域を格納先小領域１０１０３として設定格納領域１０３７に格納された対応管理リスト１０３８から取得し、作業領域１０３９に格納する（ステップ１０００４）。
【０１４５】
ＣＰＵ１０２９は、データ格納媒体１００３の格納先小領域１０１０３に分配データ実体９１０１を格納する（ステップ１０００５）。
【０１４６】
ＣＰＵ１０２９は、データロード制御サーバ１００１に、分配対象データ５１０１に関するデータ格納完了信号１０１０４を送信する（ステップ１０００６）。ステップ１０００６の処理が終了すると、データ格納処理は終了する。
【０１４７】
次に、フェーズ切り替え処理について説明する。フェーズ切り替え処理は、ステップ１００７からステップ１０００９までの処理である。
【０１４８】
ＣＰＵ１０２９は、まず、設定格納領域１０３７の対応管理リスト１０３８において、管理データサーバ６００３と本処理が実行されているデータサーバとが一致する小領域６００１が、すべて参照可能な状態になるまで待機する（ステップ１０００７）。
【０１４９】
ＣＰＵ１０２９は、本処理を実行しているデータサーバから参照可能な小領域に格納されたデータを抽出し、インデクスを生成する（ステップ１０００８）。
【０１５０】
ＣＰＵ１０２９は、本処理が実行されているデータサーバの変更終了信号２１０１をデータロード制御サーバ１００１に送信する（ステップ１０００９）。ステップ１０００９の処理が終了すると、フェーズ切り替え処理は終了する。
【０１５１】
ここで、分配データ実体９１０１の詳細について説明する。本発明の第１の実施の形態では、分配データ実体９１０１はＸＭＬ文書である。
【０１５２】
図１１は、本発明の第１の実施の形態の分配データ実体９１０１の一例であるＸＭＬ文書１１００１を示す図である。
【０１５３】
まず、ＸＭＬ文書について簡単に説明する。ＸＭＬ文書を記述するＸＭＬでは、タグと呼ばれる要素の位置を明示し、属性を収納するために記述される文字列が記述される。図１１では、１１００２の「＜ＡＵＴＨＯＲ＞」及び「＜／ＡＵＴＨＯＲ＞」がタグに該当する。
【０１５４】
タグには、開始タグ（タグ１１００２では「＜ＡＵＴＨＯＲ＞」）と終了タグ（タグ１１００２では「＜／ＡＵＴＨＯＲ＞」）がある。開始タグと終了タグとは対応する。タグは、要素名が記号で囲まれて表記される。例えば、開始タグ「＜ＡＵＴＨＯＲ＞」と終了タグ「＜／ＡＵＴＨＯＲ＞」とは対応し、要素名は「ＡＵＴＨＯＲ」となる。
【０１５５】
また、ＸＭＬ文書は、タグによって階層的な構造を有することができる。ＸＭＬ文書は、開始タグと終了タグの間に要素と呼ばれるデータを保持する。「＜ＡＵＴＨＯＲ＞Ａ  ｄｅｐａｒｔｍｅｎｔ＜／ＡＵＴＨＯＲ＞」における要素は「Ａ  ｄｅｐａｒｔｍｅｎｔ」となる。このように記述することによって、ＸＭＬ文書は単体でデータ及び当該データの意味を記述することができる。図１１では、タグ１１００２の要素として、要素１１００３「Ａ  ｄｅｐａｒｔｍｅｎｔ」が記述されている。本発明の第１の実施の形態では、分配キー値１０１０２となる。   さらに、ＸＭＬではタグには属性を付加することができる。属性は、属性名と値の組となっている。図１１を参照すると、「＜ＡＵＴＨＯＲ  ＤＡＴＥ＿ＯＦ＿ＩＳＳＵＥ＝“２００７／０３／３１”＞Ａ  ＤＥＰＡＲＴＭＥＮＴ＜／ＡＵＴＨＯＲ＞」における属性名は「ＤＡＴＥ＿ＯＦ＿ＩＳＳＵＥ」であって、値は「２００７／０３／３１」である。
【０１５６】
なお、開始タグと終了タグの対となっており、かつ、同じ階層に含まれていれば、正しいフォーマットとみなされるため、各タグがＸＭＬ文書に記述される位置を予め特定することはできない。すなわち、ＸＭＬ文書から要素名「ＡＵＴＨＯＲ」の要素を取得するためには、当該ＸＭＬ文書を解析するまでタグの出現位置を把握することができず、要素名「ＡＵＴＨＯＲ」の要素「Ａ  ｄｅｐａｒｔｍｅｎｔ」を取り出すことはできない。ＸＭＬ文書の解析処理は、図１０のステップ１０００３の処理が該当する。
【０１５７】
なお、図６の対応管理リスト１０３８を参照し、格納データの条件６００４と比較すると、ＸＭＬ文書１１００１は、第１データサーバに分配されれば第１小領域に、第２データサーバに分配されれば第３小領域に格納される。また、第１小領域又は第３小領域のいずれかに格納された場合であっても、管理フェーズでは第１データサーバによって管理される。
【０１５８】
続いて、解析済みデータ１０１０１の詳細について説明する。
【０１５９】
図１２は、本発明の第１の実施の形態の分配データ実体９１０１を解析した結果である解析済みデータ１０１０１の一例を示す図である。図１２に示す解析済みデータ１０１０１は、図１１に示されたＸＭＬ文書１１００１を図１０のステップ１０００３の処理によって解析されて得られた結果である。
【０１６０】
解析済みデータ１０１０１は、文書構造のパス１２００１及び要素１２００２を含む。文書構造のパス１２００１は、分配データ実体９１０１を解析して得られた文書構造のパスである。要素１２００２は、対応する文書構造のパス１２００１によって分配データ実体９１０１から取得した要素の実体である。
【０１６１】
このように、解析済みデータ１０１０１を用いることによって、文書構造のパス１２００１から要素１２００２を取得することが可能となる。
【０１６２】
続いて、参照切り替え処理について説明する。参照切り替え処理は、図２のステップ２００６の処理において、参照切替プログラム１０１７がＣＰＵ１００９によって処理されて実行される。
【０１６３】
図１３は、本発明の第１の実施の形態の参照切り替え処理の手順を示すＰＡＤである。
【０１６４】
データロード制御サーバ１００１のＣＰＵ１００９は、データ格納媒体１００３の参照パスコントローラ１０４６に設定された各パスの参照状態に関する設定を、設定格納領域１３１０２に格納されたパス管理情報１０４５の管理フェーズの参照７００３に変更する（ステップ１３００１）。
【０１６５】
ＣＰＵ１００９は、格納先データサーバリスト１０４９に設定されたデータサーバ数５１０２に対応する数だけ変更信号送信処理を繰り返し実行する（ステップ１３００２）。
【０１６６】
ＣＰＵ１００９は、変更信号送信処理において、フェーズ変更信号１３１０１が送信されていないデータサーバ１００５にフェーズ変更信号１３１０１を送信する（ステップ１３００３）。ステップ１３００３の処理が終了すると、データ変更信号送信処理は終了し、すべてのデータサーバ１００５に対してデータ変更信号送信処理が終了すると、参照切り替え処理は終了する。
【０１６７】
ここで、参照切替処理の開始前及び終了後の各データサーバと各小領域との関係を、具体例を参照しながら説明する。
【０１６８】
図１４は、本発明の第１の実施の形態の参照切り替え処理の開始前の状態（格納フェーズ）を説明する図である。
【０１６９】
各データサーバ（第１データサーバ１００５Ａ、第２データサーバ１００５Ｂ）と各小領域（第１小領域１０４０、第２小領域１０４１、第３小領域１０４２、第４小領域１０４３）とは、参照パスコントローラ１０４６を介して接続されている。
【０１７０】
参照パスコントローラ１０４６は、パス作成処理によって、「第１小領域−第１データサーバ」、「第２小領域−第１データサーバ」、「第３小領域−第２データサーバ」、「第４小領域−第２データサーバ」、「第２小領域−第２データサーバ」、及び「第３小領域−第１データサーバ」の６つのパスを生成する。作成された６つのパスは、対応管理リスト１０３８のレコード７００４からレコード７００９に対応している。
【０１７１】
参照切り替え処理の開始前の格納フェーズにおいては、第１データサーバ１００５Ａは、「第１小領域−第１データサーバ」７００４、「第２小領域−第１データサーバ」７００５の使用が許可されている。また、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＡ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第１小領域１０４０に格納され、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＢ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第２小領域１０４１に格納される。
【０１７２】
第２データサーバ１００５Ｂは、「第３小領域−第２データサーバ」、「第４小領域−第２データサーバ」のパスの使用が許可されている。また、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＡ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第３小領域１０４２に格納され、「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＢ  ｄｅｐａｒｔｍｅｎｔ」であるデータが第４小領域１０４３に格納される。
【０１７３】
なお、「第２小領域−第２データサーバ」及び「第３小領域−第１データサーバ」の２つのパスは使用を許可されず、各小領域は１つのデータサーバからのみ参照され、競合などは発生しない。
【０１７４】
図１５は、本発明の第１の実施の形態の参照切り替え処理の終了後の状態（管理フェーズ）を説明する図である。以下、参照切り替え処理の開始前の格納フェーズとの変更点のみを説明する。
【０１７５】
管理フェーズにおいては、第１データサーバ１００５Ａは、「第１小領域−第１データサーバ」及び「第３小領域−第１データサーバ」のパスの使用が許可されている。そして、第１データサーバ１００５Ａは、第１小領域１０４０及び第３小領域１０４２に格納された「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＡ  ｄｅｐａｒｔｍｅｎｔ」であるデータを管理する。
【０１７６】
第２データサーバ１００５Ｂは、「第２小領域−第２データサーバ」及び「第４小領域−第２データサーバ」のパスの使用が許可されている。そして、第２データサーバ１００５Ｂは、第２小領域１０４１及び第４小領域１０４３に格納された「／ＤＯＣ／ＤＡＴＡ／ＡＵＴＨＯＲの値がＢ  ｄｅｐａｒｔｍｅｎｔ」であるデータを管理する。
【０１７７】
「第２小領域−第１データサーバ」及び「第３小領域−第２データサーバ」の２つのパスは、使用を許可されず、各小領域は１つのデータサーバからのみ参照され、競合などは発生しない。
【０１７８】
このように、各小領域が参照されるデータサーバを常に１つにするように構成することによって、競合の発生を防止し、スケーラブルな並列処理を実現することができる。
【０１７９】
本発明の第１の実施の形態は、並列データベースによるサービスを停止させ、データロードを短時間で終了させたい場合に特に有用である。
【０１８０】
本発明の第１の実施の形態によれば、格納フェーズ及び管理フェーズにおいて、各データサーバ１００５によって参照される小領域を切り替えることによって、データロードに要する時間を短縮することができる。
【０１８１】
具体的には、格納フェーズ及び管理フェーズにおいて、各データサーバ１００５によって参照される小領域を切り替えることによって、各小領域は１つのデータサーバからのみ参照されるため、競合を発生させずに並列実行性能の確保が容易になる。さらに、格納フェーズ及び管理フェーズで格納されたデータを移動させる必要がないため、データ移動コストを必要とせずに、分配時のデータ解析と格納時のデータ解析とを同時に実行することができる。したがって、解析コストを少なくすることが可能となり、分配時のデータ解析を各データサーバで実行可能なため、解析に必要な時間を短縮することができる。
【０１８２】
なお、本発明の第１の実施の形態では、データ分配処理における分配先データサーバ８１０１の決定を各データサーバに均等に配置する方法について説明したが、各データサーバにランダムに配置してもよいし、ファイルの作成時期又はファイル名などに基づいて配置してもよい。
【０１８３】
また、本発明の第１の実施の形態では、データベースにデータが格納されていない状態からの初期構築の例を説明したが、既にデータが登録された運用中のデータベースに対しても適用することができる。具体的には、データベースのサービスを停止し、各パスの参照設定を格納フェーズの設定にすることによって、データを追加することができる。
【０１８４】
さらに、本発明の第１の実施の形態では、格納フェーズから管理フェーズに切り替えるタイミングで、各データサーバに登録されたデータのインデクスを生成する例を説明したが、インデクスを生成しなくてもよいし、インデクス以外の検索補助情報を生成してもよい。
【０１８５】
（第２の実施の形態）
本発明の第１の実施の形態では、データベースのサービスを停止し、格納フェーズ及び管理フェーズにおいて、各データサーバ１００５によって参照される小領域を変更する方式を説明したが、本発明の第２の実施の形態ではデータベースのサービスを停止せずにデータを分配する方式について説明する。
【０１８６】
第２の実施の形態の計算機システムの構成は、第１の実施の形態の計算機システムと同じである。また、データロード制御サーバ１００１に格納されたデータロード制御プログラム１０１４及びデータサーバ１００５に格納されたデータ格納管理プログラムの処理が第１の実施の形態と相違する。なお、同一の構成及び同一の処理については説明を省略する。
【０１８７】
図１６は、本発明の第２の実施の形態のデータロード処理の手順を示すＰＡＤである。
【０１８８】
第２の実施の形態のデータロード処理は、図２で説明した第１の実施の形態のデータロード処理と比較すると、ステップ２００６からステップ２００８までの処理を実行しない点が相違する。第２の実施の形態では、格納フェーズ及び管理フェーズを切り替えないためである。その他の処理については、第１の実施の形態と同じであるため、説明を省略する。
【０１８９】
続いて、第２の実施の形態の格納管理処理について説明する。格納管理処理は、第１の実施の形態と同様に、図９のステップ９００３の処理において、原本管理制御サーバ１００２から送信された格納依頼信号９１０２をデータサーバ１００５が受信したときに、データ格納管理プログラム１０３６が処理されることによって実行される。
【０１９０】
また、本発明の第２の実施の形態では、さらに、管理対象でないデータを受信したデータサーバ１００５からデータサーバ間格納依頼信号１８１０１を受信した場合に格納管理処理が実行される。
【０１９１】
図１７は、本発明の第２の実施の形態の格納管理処理の手順を示すＰＡＤである。
【０１９２】
データサーバ１００５のＣＰＵ１０２９は、受信した信号に基づいて、処理を分岐させる（ステップ１８００１）。具体的には、受信した信号が格納依頼信号９１０２ならばデータ格納処理を実行する。また、受信した信号がデータサーバ間格納依頼信号１８１０１ならばデータサーバ間格納依頼処理を実行する。
【０１９３】
データ格納処理では、図１０にて説明した第１の実施の形態の格納管理処理と同じく、データサーバ１００５のＣＰＵ１０２９は、受信した情報を作業領域１０３９に格納し、受信した分配データ実体９１０１を解析する（ステップ１０００２、ステップ１０００３）。
【０１９４】
ＣＰＵ１０２９は、解析済みデータ１０１０１に基づいて、分配データサーバ６００２と本処理が実行されているデータサーバ１００５とが一致し、取得された分配キー値１０１０２が格納データの条件６００４を満たす小領域６００１を格納先小領域１０１０３として設定格納領域１０３７に格納された対応管理リスト１０３８から取得する（ステップ１８００２）。
【０１９５】
ＣＰＵ１０２９は、格納先小領域１０１０３の管理データサーバ６００３が分配データサーバ６００２と同じであるか否かによって処理を分岐させる（ステップ１８００３）。格納先小領域１０１０３の管理データサーバ６００３が分配データサーバ６００２と同じ場合には（ステップ１８００３の結果が「Ｙｅｓ」）、第１の実施の形態の格納管理処理のステップ１０００５及びステップ１０００６と同じ処理を実行する。
【０１９６】
一方、ＣＰＵ１０２９は、格納先小領域１０１０３の管理データサーバ６００３が分配データサーバ６００２と異なる場合には（ステップ１８００３の結果が「Ｎｏ」）、管理フェーズで格納先小領域１０１０３に分配対象データ５１０１を格納することはできない。そこで、格納先小領域１０１０３のデータサーバ間格納依頼信号１８１０１とともに、解析済みデータ１０１０１及び分配対象データ５１０１を管理データサーバ６００３に送信する（ステップ１８００４）。
【０１９７】
データサーバ間格納依頼信号１８１０１を受信したデータサーバ１００５のＣＰＵ１０２９は、受信した解析済みデータ１０１０１に基づいて、データ格納媒体１００３の格納先小領域１０１０３に受信した分配対象データ５１０１を格納する（ステップ１８００５）。
【０１９８】
そして、ＣＰＵ１０２９は、データロード制御サーバ１００１に、分配対象データ５１０１に関するデータ格納完了信号１０１０４を送信する（ステップ１８００６）。
【０１９９】
本発明の第２の実施の形態では、本発明の第１の実施の形態と比較して、データサーバ間のデータの移動が伴うため、データの移動コストを必要とするが、サービスを継続しながらデータロードを実行することができる。
【０２００】
本発明の第２の実施の形態によれば、各データサーバで並列して解析処理を実行することによってデータロードに必要な時間を短縮することができる。具体的には、各データサーバで並列に解析処理をすることによって、分配時のデータ解析と格納時のデータ解析を、分配時に同時に実行できるため、解析に必要な時間を短縮することができる。
【０２０１】
また、システムの初期構築時には、本発明の第１の実施の形態を適用し、システムの運用が開始された後には、本発明の第２の実施の形態を適用してもよい。
【０２０２】
（第３の実施の形態）
本発明の第１の実施の形態及び第２の実施の形態においては、データロード処理の主たる制御をデータロード制御サーバ１００１にて実行される方式について説明したが、データロード処理の主たる制御は他のサーバによって実行されてもよい。
【０２０３】
第３の実施の形態では、データロード処理の主たる制御が原本管理制御サーバ１００２によって実行される形態について説明する。
【０２０４】
図１８は、本発明の第３の実施の形態の並列データベースを含むシステムの構成を示す図である。本発明の第３の実施の形態のシステム構成では、図１８に示すようにデータロード制御サーバ１００１が含まれない。
【０２０５】
原本管理制御サーバ１００２は、第１の実施の形態の構成に加えて、表示装置１９００１及び入力装置１９００２を備える。
【０２０６】
表示装置１９００１は、本発明の第１の実施の形態における図１の表示装置１００７と同じく、各種処理の結果などを表示する。入力装置１９００２は、本発明の第１の実施の形態における図１の入力装置１００８と同じく、実行する処理の命令及び必要な情報などを入力する。
【０２０７】
また、原本管理制御サーバ１００２の主記憶１０２０には、データロード制御プログラム１９００３、パス作成プログラム１９００４、データ分配・読み出しプログラム１９００５、及び参照切替プログラム１９００６が記憶される。
【０２０８】
本発明の第３の実施の形態における各プログラムの処理は、対応する第１の実施の形態の処理と同じである。データロード制御サーバ１００１で実行されていた情報の入力及び表示、データロード制御が原本管理制御サーバで実行される点が異なる。
【０２０９】
続いて、本発明の第３の実施の形態のデータ分配・読み出しプログラム１９００５を処理することによって実行されるデータ取得分配処理について説明する。
【０２１０】
本発明の第１の実施の形態では、データロード制御サーバ１００１と原本管理制御サーバ１００２とが別のサーバであるため、サーバ間でデータのやり取りが必要となる。第３の実施の形態では、データロード制御サーバ１００１で実行された処理が原本管理制御サーバ１００２で実行されるため、データロード制御サーバ１００１と原本管理制御サーバ１００２との間で通信する必要がない。そこで、第１の実施の形態におけるデータ分配処理（図８）と実データ取得処理（図９）とを一連の処理にすることができる。
【０２１１】
図１９は、本発明の第３の実施の形態のデータ取得分配処理の手順を示すＰＡＤである。
【０２１２】
原本管理制御サーバ１００２のＣＰＵ１０１９は、まず、格納先データサーバリスト１０４９からデータロード対象データリスト１０４８の分配先３００２に設定された回数が最小であるデータサーバを１つ分配先データサーバ８１０１として選択する。そして、選択された分配先データサーバ８１０１を分配対象データ５１０１の分配先３００２としてデータロード対象データリスト１０４８に設定する（ステップ８００１）。また、データロード対象データリスト１０４８の分配状況３００３の値を「未分配」に設定する。
【０２１３】
ＣＰＵ１０１９は、分配対象データ５１０１に指定された分配データ実体９１０１を原本格納媒体１０２５から取得し、作業領域１０２８に格納する（ステップ９００２）。
【０２１４】
ＣＰＵ１０１９は、作業領域１０２８に格納された分配対象データ５１０１及び分配データ実体９１０１を、格納依頼信号９１０２と共に分配先データサーバ８１０１に指定されたデータサーバにネットワーク１００４を介して送信する（ステップ９００３）。
【０２１５】
ＣＰＵ１０１９は、分配対象データ５１０１の分配状況３００３を「分配済み」としてデータロード対象データリスト１０４８に設定する（ステップ８００４）。ステップ８００４の処理が完了すると、データ分配取得処理は終了する。
【０２１６】
続いて、実データ取得処理について説明する。実データ取得処理は、図８のステップ８００２の処理において、データロード制御サーバ１００１から送信されたデータ読み出し信号８１０２を原本管理制御サーバ１００２が受信したときに、データ読み出しプログラム１０２７が処理されることによって実行される。
【０２１７】
続いて、格納管理処理が実行される。格納管理処理は、本発明の第１の実施の形態と同じく、原本管理制御サーバ１００２から送信された格納依頼信号９１０２をデータサーバ１００５が受信したときに、データ格納管理プログラム１０３６が処理されることによって実行される。また、データロード制御サーバ１００１から送信されたフェーズ変更信号１３１０１をデータサーバ１００５が受信したときにも格納管理処理は実行される。
【０２１８】
データ格納管理プログラム１９００７による格納管理処理は、図１０のステップ１０００６及びステップ１０００９で信号を送信する相手サーバがデータロード制御サーバ１００１ではなく、原本管理制御サーバ１００２である点が相違する以外は同じ処理である。
【０２１９】
また、参照切替プログラム１９００６による参照切り替え処理は、データロード制御サーバ１００１ではなく、原本管理制御サーバ１００２で実行される点を除いて、図１３にて説明した参照切り替え処理と同じである。
【０２２０】
本発明の第３の実施の形態は、並列データベースによるサービスを停止させ、データロード制御サーバ１００１を使用せずにデータロードを短時間で終了させたい場合に有用である。
【０２２１】
本発明の第３の実施の形態によれば、データロード制御サーバ１００１を使用せずに、本発明の第１の実施の形態と同様に、格納フェーズ及び管理フェーズにおいて、各データサーバによって参照される小領域を切り替えることによって、データロードに要する時間を短縮することができる。
【０２２２】
さらに、本発明の第３の実施の形態によれば、データロード制御サーバを使用しないことによって、必要なサーバ数を少なくすることができ、設備投資を少なくすることができる。
【０２２３】
また、本発明の第３の実施の形態ではデータロード処理の主たる制御が原本管理制御サーバ１００２で実行される方式について説明したが、データロード処理の主たる制御がデータサーバの１つで実行される方式であってもよい。
【０２２４】
（第４の実施の形態）
本発明の第１から第３の実施の形態では、データ格納媒体の機能を利用して、各データサーバと小領域のパスの許可又は不許可といった状態を管理する方式を説明したが、各データサーバによって小領域への参照を制御する方式であってもよい。
【０２２５】
第４の実施の形態の計算機システムの構成は、第１の実施の形態の計算機システムと同じである。データロード制御サーバ１００１に格納されたデータロード制御プログラム１０１４及びデータサーバ１００５に格納されたデータ格納管理プログラムの処理が相違する。
【０２２６】
図２０は、本発明の第４の実施の形態のデータロード処理の手順を示すＰＡＤである。
【０２２７】
データロード制御サーバ１００１のＣＰＵ１００９は、第１の実施の形態のデータロード処理と同じく、入力装置１００８からデータロード対象データリスト１０４８及び格納先データサーバリスト１０４９の入力を受け付ける（ステップ２００１）。
【０２２８】
ＣＰＵ１００９は、第１の実施の形態と同様に、パス作成プログラム１０１５を起動し、パス作成処理によって対応管理リスト１０３８及びパス管理情報１０４５を生成する（ステップ２００２）。
【０２２９】
ＣＰＵ１００９は、第１の実施の形態と同様に、データロード対象データリスト１０４８に格納されたデータに対してデータ分配処理を実行する（ステップ２００３、ステップ２００４）。そして、各データサーバでデータが格納されるまで待機する（ステップ２００５）。
【０２３０】
ＣＰＵ１００９は、参照切替プログラム１０１７を起動し、各データサーバにフェーズ変更信号１３１０１を送信する（ステップ２２００１）。第１の実施の形態では、参照パスコントローラ１０４６にフェーズ変更信号１３１０１を送信してフェーズを切り替えていたが（図２のステップ２００６）、第４の実施の形態では、各データサーバで各小領域への参照を制御するため、各データサーバにフェーズ変更信号１３１０１を送信すればよいためである。
【０２３１】
ＣＰＵ１００９は、データサーバ１００５から変更終了信号２００８を受信するまで待機し（ステップ２２００２）、表示装置１００７に分配完了の通知を表示する（ステップ２００８）。
【０２３２】
図２１は、本発明の第４の実施の形態のパス作成処理の手順を示すＰＡＤである。処理の概要は、第１の実施の形態とほぼ同じである。
【０２３３】
第４の実施の形態では、各データサーバによって各小領域への参照が制御されるため、参照パスコントローラ１０４６では、データ格納媒体１００３の各小領域へのすべてのパスの使用が許可される。一方、第１の実施の形態では、データサーバ１００５の管理対象の小領域に対してのみ参照可能にパス管理情報１０４５が設定されていたが（図５のステップ５０１２）、第４の実施の形態では、管理フェーズにおいて、すべての小領域が参照可能となるように設定される（ステップ２３００１）。
【０２３４】
図２２は、本発明の第４の実施の形態の格納管理処理の手順を示すＰＡＤである。
【０２３５】
データサーバ１００５のＣＰＵ１０２９は、第１の実施の形態と同様に、受信した信号に基づいて、データ格納処理又はフェーズ切り替え処理を実行する（ステップ１０００１）。
【０２３６】
ＣＰＵ１０２９は、データ格納処理又はフェーズ切り替え処理の最初に、本処理が実行されているデータサーバ１００５が分配データサーバ６００２に設定されている小領域６００１について、対応管理リスト１０３８を参照可能な領域として設定する（ステップ２４００１、ステップ２４００２）。なお、ステップ２４００１又はステップ２４００２の処理が実行された後の各処理は、第１の実施の形態と同じデータ格納処理又はフェーズ切り替え処理を実行する。
【０２３７】
第４の実施の形態では、各データサーバによって各小領域への参照が制御されるため、ステップ２４００１及びステップ２４００２の処理が実行される。
【０２３８】
図２３は、本発明の第４の実施の形態の参照切り替え処理の手順を示すＰＡＤである。
【０２３９】
第４の実施の形態の参照切り替え処理では、各データサーバによって各小領域への参照が制御されるため、参照パスコントローラ１０４６にフェーズ変更信号１３１０１を送信する必要がない。したがって、本発明の第４の実施の形態の参照切り替え処理は、図１３に示された第１の実施の形態の参照切り替え処理と比較すると、ステップ１３００１の処理が存在しない点が相違している。
【０２４０】
本発明の第４の実施の形態は、データ格納媒体１００３の機能に依存せず、データロードを短時間に終了させたい場合に有用である。
【０２４１】
本発明の第４の実施の形態では、データ格納先として参照パスコントローラ１０４６を備えたデータ格納媒体１００３を用いて説明しているが、参照パスコントローラ１０４６を持たないネットワーク接続ストレージ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）などのように、複数のサーバから参照が可能な参照パスコントローラ１０４６を備えないデータ格納媒体を用いてもよい。なお、この場合には、参照パスコントローラ１０４６に指示することによって実行されていた処理をデータサーバ１００５などが実行する必要がある。
【０２４２】
本発明の第４の実施の形態によれば、データ格納媒体１００３の機能に依存せずに格納フェーズと管理フェーズで各データサーバが参照する小領域を変更し、データロードに要する時間を短縮することができる。
【０２４３】
具体的には、各データサーバが各小領域への参照を制御することによって、データ格納媒体１００３の機能に依存することなく、格納フェーズ及び管理フェーズで各データサーバによって参照される小領域を切り替えることが可能となり、第１の実施の形態と同じ効果を得ることができる。
【０２４４】
（第５の実施の形態）
本発明の第１から第４の実施の形態では、データサーバが物理的に独立したハードウェア上で動作する方式を説明したが、データサーバが仮想化機能によって実現された仮想サーバであってもよい。
【０２４５】
図２４は、本発明の第５の実施の形態の並列データベースを含むシステムの構成を示す図である。
【０２４６】
本システムは、データロード制御サーバ１００１、原本管理制御サーバ１００２、データ格納媒体１００３、及び仮想化サーバ１０５３を含む。原本管理制御サーバ１００２及びデータ格納媒体１００３は、第１の実施の形態の計算機システムと同じである。
【０２４７】
仮想化サーバ１０５３は、ＣＰＵ１〜ＣＰＵ６（１０２９Ａ〜１０２９Ｆ）、主記憶１０３０、ネットワークポート１（１０３１Ａ）、ネットワークポート２（１０３１Ｂ）及びストレージポート１（１０３２Ａ）、ストレージポート２（１０３２Ｂ）を含む。
【０２４８】
ＣＰＵ１〜ＣＰＵ６（１０２９Ａ〜１０２９Ｆ）、主記憶１０３０、ネットワークポート１（１０３１Ａ）、ネットワークポート２（１０３１Ｂ）及びストレージポート１（１０３２Ａ）、ストレージポート２（１０３２Ｂ）は、バス１０３３によって接続される。
【０２４９】
ＣＰＵ１〜ＣＰＵ６（１０２９Ａ〜１０２９Ｆ）は、主記憶１０３０に記憶されたプログラムを実行し、所定の処理を実行する。主記憶１０３０は、ＣＰＵ１〜ＣＰＵ６（１０２９Ａ〜１０２９Ｆ）によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。
【０２５０】
主記憶１０３０は、仮想化機構プログラム１０５１及び仮想サーバ定義１０５２を記憶する。
【０２５１】
仮想化機構プログラム１０５１は、ＣＰＵに実行されることによって、仮想化サーバ１０５３の計算機資源を論理的な単位で分割し、一以上の仮想サーバを実現する。仮想化サーバ１０５３の計算機資源は、具体的には、ＣＰＵ１〜ＣＰＵ６（１０２９Ａ〜１０２９Ｆ）、主記憶１０３０、ネットワークポート１（１０３１Ａ）、ネットワークポート２（１０３１Ｂ）、ストレージポート１（１０３２Ａ）、ストレージポート２（１０３２Ｂ）、及び主記憶１０３０である。さらに、仮想化機構プログラム１０５１は、仮想サーバに割り当てる計算機資源の配分を制御する。
【０２５２】
仮想サーバ定義１０５２は、仮想化機構プログラム１０５１によって実現された仮想サーバと、当該仮想サーバに割り当てられる計算機資源との対応を含む。仮想化機構プログラム１０５１は、仮想サーバ定義１０５２に基づいて、仮想サーバを実現する。
【０２５３】
仮想化機構プログラム１０５１によって実現された仮想サーバは、１つの独立したハードウェアとして動作する。図２４の仮想化サーバ１０５３では、仮想サーバとして、第１データサーバ１００５Ａ及び第２データサーバ１００５Ｂが実現される。第１データサーバ１００５Ａは、ネットワークポート１（１０３１Ａ）、ストレージポート１（１０３２Ａ）、ＣＰＵ１〜ＣＰＵ３（１０２９Ａ〜１０２９Ｃ）によって構成される。第２データサーバ１００５Ｂは、ネットワークポート２（１０３１Ｂ）、ストレージポート２（１０３２Ｂ）、ＣＰＵ４〜ＣＰＵ６（１０２９Ｄ〜１０２９Ｆ）によって構成される。
【０２５４】
第１データサーバ１００５Ａの主記憶には、システム制御プログラム１０３５Ａ及びデータ格納管理プログラム１０３６Ａが記憶される。第１データサーバ１００５Ａの主記憶は、設定格納領域１０３７Ａ及び作業領域１０３９Ａを含む。第１データサーバ１００５Ａの主記憶に格納されたプログラムは、ＣＰＵ１〜ＣＰＵ３（１０２９Ａ〜１０２９Ｃ）に実行されることによって、所定の処理が実行される。
【０２５５】
システム制御プログラム１０３５Ａは、外部から受信した制御信号又は第１データサーバ１００５Ａの状態に基づいて、所定の処理を実行する。
【０２５６】
データ格納管理プログラム１０３６Ａは、分配データ実体９１０１を解析し、解析結果、及び、データサーバと小領域との対応関係に基づいて、当該データを管理するデータサーバ（仮想サーバ）を決定する。データ格納管理プログラム１０３６Ａは、管理フェーズにおいて、当該データサーバが管理する小領域に当該データを格納する。
【０２５７】
設定格納領域１０３７Ａは、対応管理リスト１０３８Ａが格納される。対応管理リスト１０３８Ａは、データサーバとデータ格納媒体１００３に確保された小領域との対応関係を格納する。
【０２５８】
第２データサーバ１００５Ｂの主記憶には、システム制御プログラム１０３５Ｂ及びデータ格納管理プログラム１０３６Ｂが記憶される。第２データサーバ１００５Ｂの主記憶は、設定格納領域１０３７Ｂ及び作業領域１０３９Ｂを含む。第２データサーバ１００５Ｂの主記憶に格納されたプログラムは、ＣＰＵ４〜ＣＰＵ６（１０２９Ｄ〜１０２９Ｆ）に実行されることによって、所定の処理が実行される。
【０２５９】
システム制御プログラム１０３５Ｂは、外部から受信した制御信号又は第２データサーバ１００５Ｂの状態に基づいて、所定の処理を実行する。
【０２６０】
データ格納管理プログラム１０３６Ｂは、分配データ実体９１０１を解析し、解析結果、及び、データサーバと小領域との対応関係に基づいて、当該データを管理するデータサーバ（仮想サーバ）を決定する。データ格納管理プログラム１０３６Ｂは、管理フェーズにおいて、当該データサーバが管理する小領域に当該データを格納する。
【０２６１】
設定格納領域１０３７Ｂは、対応管理リスト１０３８Ｂが格納される。対応管理リスト１０３８Ｂは、データサーバとデータ格納媒体１００３に確保された小領域との対応関係を格納する。
【０２６２】
なお、本発明の第５の実施の形態では、第１データサーバ１００５Ａ及び第２データサーバ１００５Ｂの二台のデータサーバを実現されているが、システム構成に応じて変更してもよい。
【０２６３】
また、本発明の第５の実施の形態では、仮想サーバにＣＰＵを固定的に割り当てる形式としているが、仮想サーバに固有のＣＰＵを割り当てるのではなく、所定の比率で動的にＣＰＵを割り当てる方式としてもよい。
【０２６４】
データロード制御サーバ１００１の主記憶１０１０に格納されたデータロード制御プログラム１１０４には、さらに、配分変更プログラム１０５０が含まれる。
【０２６５】
配分変更プログラム１０５０は、ＣＰＵ１００９に実行されることによって、仮想化サーバ１０５３上で実行される処理又はデータサーバ（仮想サーバ）によって参照されるデータ量に基づいて、各データサーバ（仮想サーバ）の計算機資源の配分を決定し、仮想化サーバ１０５３に配分の変更を指示する。仮想化サーバ１０５３は、仮想化機構プログラム１０５１の処理によって、受け付けた指示にしたがって各仮想サーバの計算機資源の配分を変更する。
【０２６６】
次に、本発明の第５の実施の形態の処理について説明する。
【０２６７】
図２５は、本発明の第５の実施の形態のデータロード処理の手順を示す図である。
【０２６８】
データロード制御サーバ１００１のＣＰＵ１００９は、データロード制御プログラム１０１４を処理することによって、データロード処理を実行する。
【０２６９】
ステップ２００１〜２００５の処理については、図２に示した第１の実施の形態のデータロード処理で説明した内容と同じである。
【０２７０】
ＣＰＵ１００９は、データロード対象データリスト１０４８の分配状況３００３がすべて「分配済み」の状態になると、参照切替プログラム１０１７を処理し、参照切り替え処理を実行する（ステップ２０１１）。参照切り替え処理では、データ格納媒体１００３の参照パスコントローラ１０４６にフェーズ変更信号１３１０１を送信し、パス管理情報１０４５に基づいて、参照可能なパスを格納フェーズから管理フェーズに変更する。参照切り替え処理の手順については、図１３に示した第１の実施の形態と同じである。
【０２７１】
ＣＰＵ１００９は、配分変更プログラム１０５０を実行し、各データサーバの参照範囲の領域に格納されたデータ量の比率に応じた計算機資源の配分への変更を、仮想化機構プログラム１０５１に指示する。計算機資源の配分変更処理の手順については、図２６にて後述する。
【０２７２】
ＣＰＵ１００９は、各データサーバにフェーズ変更信号１３１０１を送信する（ステップ２０１３）。
【０２７３】
ＣＰＵ１００９は、データ格納媒体１００３の参照パスコントローラ１０４６及び各データサーバから送信された変更終了信号２１０１を受信するまで待機する（ステップ２００７）。
【０２７４】
ＣＰＵ１００９は、すべてのデータサーバからの変更終了信号２１０１を受信すると、表示装置１００７に分配完了の通知を表示する（ステップ２００８）。ステップ２００８の処理が終了すると、データロード処理は終了する。
【０２７５】
図２６は、本発明の第５の実施の形態の仮想化サーバ１０５３における計算機資源の配分変更処理の手順を示すＰＡＤである。
【０２７６】
ＣＰＵ１００９は、各データサーバの参照範囲の領域に格納されたデータ量を取得する（ステップ２６００１、２６００２）。
【０２７７】
ＣＰＵ１００９は、データ分配処理によって各データサーバに分配されたデータ量を取得し、各データサーバの参照範囲であるそれぞれの小領域に格納されたデータ量を取得する。例えば、図１５に示す格納フェーズから管理フェーズに切り替えられた後の状態では、第１データサーバ１００５Ａについては第１小領域及び第３小領域に格納されたデータ量となり、第２データサーバ１００５Ｂについては第２小領域及び第４小領域に格納されたデータ量となる。
【０２７８】
ＣＰＵ１００９は、取得されたデータ量を比較し、各データサーバへの計算機資源の配分を計算する（ステップ２６００３）。
【０２７９】
計算機資源を配分する対象は、仮想サーバに割り当てられるＣＰＵの数及び主記憶１０３０の容量である。これらの値を取得したデータ量に比率により配分を計算する。
【０２８０】
例えば、データ量がほぼ同じであるならば、比率を変更せず同じ数のＣＰＵとメモリ容量をそれぞれの仮想サーバに割り当てる。第１データサーバ１００５Ａのデータ量と第２データサーバ１００５Ｂのデータ量が異なる場合には、データ量の比率に基づいてＣＰＵ数及びメモリ容量を変更する。例えば、データ量の比率が４：２であった場合、３個ずつ割り当てられていた６個のＣＰＵの割当を４個と２個に変更する。
【０２８１】
ＣＰＵ１００９は、各仮想サーバの計算機資源の配分を、ステップ２６００３の処理で計算された計算機資源の配分に変更するように仮想化サーバ１０５３に指示する（ステップ２６００４）。
【０２８２】
仮想化サーバ１０５３は、データロード制御サーバ１００１からの指示を受け付けると、仮想化機構プログラム１０５１を処理することによって、仮想サーバへの計算機資源の割当を変更する。前述したように、ＣＰＵの割当を４個と２個に変更する指示を受け付けた場合、第１データサーバ１００５ＡにＣＰＵ１〜ＣＰＵ４（１０２９Ａ〜１０２９Ｄ）を割り当て、第２データサーバ１００５ＢにＣＰＵ５〜ＣＰＵ６（１０２９Ｅ〜１０２９Ｆ）を割り当てる。
【０２８３】
本発明の第５の実施の形態によれば、仮想化サーバ上にデータサーバ（仮想サーバ）を実現し、フェーズごとに計算機資源の配分を変更することによって、計算機資源の負荷を擬似的に均等化させることができる。具体的には、データ分配処理実行時には各データサーバに計算機資源を均等に近くなるよう割り当て、データ分配処理以降にはデータ格納フェーズで各データサーバに分配されたデータ量に基づいて各データサーバに計算機資源を割り当てることによって、データ格納フェーズで分配されたデータ量が各データサーバで偏りが生じた場合であっても、データ量あたりのシステム全体の計算機資源の負荷を均等化することができる。
【０２８４】
なお、本発明の第５の実施の形態では、各データサーバの計算機資源の配分をデータ量の比率に基づいて変更したが、データロードが完了し、データベースのサービスを開始した後に、各データサーバの負荷量に基づいて、各データサーバの計算機資源の配分を変更してもよい。
【図面の簡単な説明】
【０２８５】
【図１】本発明の第１の実施の形態の並列データベースを含むシステムの構成を示す図である。
【図２】本発明の第１の実施の形態のデータロード処理の手順を示す図である。
【図３】本発明の第１の実施の形態のデータロード処理実行時に入力を受け付けるデータロード対象データリストの一例を示す図である。
【図４】本発明の第１の実施の形態のデータロード処理実行時に入力を受け付ける格納先データサーバリストの一例を示す図である。
【図５】本発明の第１の実施の形態のパス作成処理の手順を示す図である。
【図６】本発明の第１の実施の形態の対応管理リストの一例を示す図である。
【図７】本発明の第１の実施の形態のパス管理情報の一例を示す図である。
【図８】本発明の第１の実施の形態のデータ分配処理の手順を示す図である。
【図９】本発明の第１の実施の形態の実データ取得処理の手順を示す図である。
【図１０】本発明の第１の実施の形態の格納管理処理の手順を示す図である。
【図１１】本発明の第１の実施の形態の分配データ実体の一例であるＸＭＬ文書を示す図である。
【図１２】本発明の第１の実施の形態の分配データ実体を解析した結果である解析済みデータの一例を示す図である。
【図１３】本発明の第１の実施の形態の参照切り替え処理の手順を示す図である。
【図１４】本発明の第１の実施の形態の参照切り替え処理の開始前の状態（格納フェーズ）を説明する図である。
【図１５】本発明の第１の実施の形態の参照切り替え処理の終了後の状態（管理フェーズ）を説明する図である。
【図１６】本発明の第２の実施の形態のデータロード処理の手順を示す図である。
【図１７】本発明の第２の実施の形態の格納管理処理の手順を示す図である。
【図１８】本発明の第３の実施の形態の並列データベースを含むシステムの構成を示す図である。
【図１９】本発明の第３の実施の形態のデータ取得分配処理の手順を示す図である。
【図２０】本発明の第４の実施の形態のデータロード処理の手順を示す図である。
【図２１】本発明の第４の実施の形態のパス作成処理の手順を示す図である。
【図２２】本発明の第４の実施の形態の格納管理処理の手順を示す図である。
【図２３】本発明の第４の実施の形態の参照切り替え処理の手順を示す図である。
【図２４】本発明の第５の実施の形態の並列データベースを含むシステムの構成を示す図である。
【図２５】本発明の第５の実施の形態のデータロード処理の手順を示す図である。
【図２６】本発明の第５の実施の形態の配分変更処理の手順を示す図である。
【図２７】本発明の格納フェーズの概要を示す図である。
【図２８】本発明の管理フェーズの概要を示す図である。
【符号の説明】
【０２８６】
１００１    データロード制御サーバ
１００２    原本管理制御サーバ
１００３    データ格納媒体
１００４    ネットワーク
１００５    データサーバ
１００５Ａ    第１データサーバ
１００５Ｂ    第２データサーバ
１００７    表示装置
１００８    入力装置
１００９    ＣＰＵ
１０１０    主記憶
１０１１    ネットワークポート
１０１３    システム制御プログラム
１０１４    データロード制御プログラム
１０１５    パス作成プログラム
１０１６    データ分配プログラム
１０１７    参照切替プログラム
１０１９    ＣＰＵ
１０２０    主記憶
１０２１    ネットワークポート
１０２２    ストレージポート
１０２５    原本格納媒体
１０２６    システム制御プログラム
１０２７    データ読み出しプログラム
１０２９    ＣＰＵ
１０３０    主記憶
１０３１    ネットワークポート
１０３２    ストレージポート
１０３４    ファイバーチャネル
１０３５    システム制御プログラム
１０３６    データ格納管理プログラム
１０３８    対応管理リスト
１０４０    第１小領域
１０４１    第２小領域
１０４２    第３小領域
１０４３    第４小領域
１０４５    パス管理情報
１０４６    参照パスコントローラ
１０４７    ネットワークポート
１０４８    データロード対象データリスト
１０４９    格納先データサーバリスト
１１０４    データロード制御プログラム
１０５０    配分変更プログラム
１０５１    仮想化機構プログラム
１０５２    仮想サーバ定義
１０５３    仮想化サーバ
【図１】
0005031538.tif 000002
【図２】
0005031538.tif 000003
【図３】
0005031538.tif 000004
【図４】
0005031538.tif 000005
【図５】
0005031538.tif 000006
【図６】
0005031538.tif 000007
【図７】
0005031538.tif 000008
【図８】
0005031538.tif 000009
【図９】
0005031538.tif 000010
【図１０】
0005031538.tif 000011
【図１１】
0005031538.tif 000012
【図１２】
0005031538.tif 000013
【図１３】
0005031538.tif 000014
【図１４】
0005031538.tif 000015
【図１５】
0005031538.tif 000016
【図１６】
0005031538.tif 000017
【図１７】
0005031538.tif 000018
【図１８】
0005031538.tif 000019
【図１９】
0005031538.tif 000020
【図２０】
0005031538.tif 000021
【図２１】
0005031538.tif 000022
【図２２】
0005031538.tif 000023
【図２３】
0005031538.tif 000024
【図２４】
0005031538.tif 000025
【図２５】
0005031538.tif 000026
【図２６】
0005031538.tif 000027
【図２７】
0005031538.tif 000028
【図２８】
0005031538.tif 000029