以下、本発明の実施の形態を、図面を参照して説明する。
(第1の実施の形態)
本発明の第1の実施の形態の並列データベースシステムでは、データベースに格納されたデータを格納する段階(格納フェーズ)及び管理する段階(管理フェーズ)において、各データサーバがアクセスされる領域が切り替えられる。そこで、データサーバに分配されたデータの特性が当該データサーバの管理対象のデータの特性と異なる場合であっても、管理フェーズにおいて各データサーバが管理対象の特性を有するデータを管理することができる。以下、本発明の第1の実施の形態の並列データベースシステムについて、説明する。
図1は、本発明の第1の実施の形態の並列データベースを含むシステムの構成を示す図である。
本システムは、データロード制御サーバ1001、原本管理制御サーバ1002、データ格納媒体1003、及びデータサーバ1005を含む。なお、本発明の第1の実施の形態では、データサーバ1005には、第1データサーバ1005A及び第2データサーバ1005Bが含まれる。本発明の第1の実施の形態では、2台のデータサーバが含まれているが、システム構成に応じて変更してもよい。
データロード制御サーバ1001は、CPU1009、主記憶1010、ネットワークポート1011、表示装置1007及び入力装置1008を含む。CPU1009、主記憶1010、ネットワークポート1011、表示装置1007及び入力装置1008は、バス1012よって接続される。
CPU1009は、主記憶1010に記憶されたプログラムを実行し、所定の処理を実行する。主記憶1010は、CPU1009によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。
主記憶1010は、システム制御プログラム1013及びデータロード制御プログラム1104を記憶する。また、主記憶1010は、作業領域1018を含む。システム制御プログラム1013及びデータロード制御プログラム1104は、磁気ディスク、フラッシュメモリ又はCD−ROMなどの記録媒体に記録され、主記憶1010にロードされてから実行される。
システム制御プログラム1013は、CPU1019に実行されることによって、外部から受信した制御信号又はデータロード制御サーバ1001の状態に基づいて、所定の処理を実行する。
データロード制御プログラム1104は、CPU1009に実行されることによって、複数のデータサーバに分散されたデータを1つの並列データベースとして機能させる。データロード制御プログラム1104は、パス作成プログラム1015、データ分配プログラム1016及び参照切替プログラム1017を含む。
パス作成プログラム1015は、CPU1009に実行されることによって、データ格納媒体1003に格納されたデータサーバ数に応じた小領域とデータサーバとを接続するパス(通信路)情報と、分配時と管理時のデータサーバと小領域の対応関係を設定する。
データ分配プログラム1016は、CPU1009に実行されることによって、分配対象データ5101を分配する分配先データサーバ8101を選択する。
参照切替プログラム1017は、CPU1009に実行されることによって、データサーバと小領域のパスに関する情報に基づいて、格納フェーズと管理フェーズでデータサーバと小領域のパスの参照許可を切り替える。
作業領域1018は、各プログラムの実行時に一時的に必要なデータを格納する。
ネットワークポート1011は、ネットワーク1004を介して他のサーバとデータ及び信号をやり取りする。表示装置1007は、各種処理の結果などを表示する。入力装置1008は、実行する処理の命令及び必要な情報などを入力する。
原本管理制御サーバ1002は、CPU1019、主記憶1020、ネットワークポート1021及びストレージポート1022を含む。CPU1019、主記憶1020、ネットワークポート1021及びストレージポート1022は、バス1023よって接続される。
CPU1019は、主記憶1020に記憶されたプログラムを実行し、所定の処理を実行する。主記憶1020は、CPU1019によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。
主記憶1020は、システム制御プログラム1026及びデータ読み出しプログラム1027を記憶する。また、主記憶1020は、作業領域1018を含む。
システム制御プログラム1026は、CPU1019に実行されることによって、外部から受信した制御信号又は原本管理制御サーバ1002の状態に基づいて、所定の処理を実行する。
データ読み出しプログラム1027は、CPU1019に実行されることによって、原本格納媒体1025に格納された分配対象データ5101を取得し、分配先データサーバ8101に分配データ実体9101を送付する処理部である。分配データ実体9101は、例えば、XML文書などである。XML文書については、一例を図11にて後述する。
作業領域1028は、各プログラムの実行に必要なデータを一時的に格納する。
ネットワークポート1021は、ネットワーク1004を介して他のサーバとデータ及び信号をやり取りする。ストレージポート1022は、原本格納媒体1025の通信路となるファイバーチャネル1024に接続される。
原本格納媒体1025は、分配データ実体9101を実際に格納する記憶媒体である。原本格納媒体1025は、ファイバーチャネル1024を介して、原本管理制御サーバ1002に接続される。
データサーバ1005は、CPU1029、主記憶1030、ネットワークポート1031、ストレージポート1032を備える。CPU1029、主記憶1030、ネットワークポート1031、ストレージポート1032は、バス1033によって接続される。データサーバ1005は、並列データベースシステムに複数含まれるデータサーバの総称であり、本発明の第1の実施の形態では、二台のデータサーバ1005、第1データサーバ1005A及び第2データサーバ1005Bを含む。なお、第1データサーバ1005A及び第2データサーバ1005Bは同じ構成である。
データサーバ1005は、ストレージポート1032とデータ格納媒体1003の通信路となるファイバーチャネル1034によって、データの格納先であるデータ格納媒体1003に接続されている。
主記憶1030は、システム制御プログラム1035及びデータ格納管理プログラム1036を記憶する。主記憶1030は、設定格納領域1037及び作業領域1039を含む。主記憶1030に格納されたプログラムは、CPU1029に実行されることによって、所定の処理が実行される。
システム制御プログラム1035は、CPU1029に実行されることによって、外部から受信した制御信号又はデータサーバ1005の状態に基づいて、所定の処理を実行する。
データ格納管理プログラム1036は、CPU1029に実行されることによって、分配データ実体9101を解析し、解析結果、及び、データサーバと小領域との対応関係に基づいて当該データを管理するデータサーバ1005を決定する。データ格納管理プログラム1036は、管理フェーズにおいて、当該データサーバが管理する小領域に当該データを格納する。
設定格納領域1037は、対応管理リスト1038が格納される。対応管理リスト1038は、データサーバ1005とデータ格納媒体1003に確保された小領域との対応関係を格納する。なお、本発明の第1の実施の形態では、設定格納領域1037が主記憶1030に確保されているが、磁気ディスク又は他の記憶媒体であってもよい。
データ格納媒体1003は、1つ以上の小領域及び設定格納領域1044を含む。本発明の第1の実施の形態では、1つ以上の小領域には、第1小領域1040、第2小領域1041、第3小領域1042、及び第4小領域1043が含まれる。また、データ格納媒体1003は、データサーバ1005と各小領域とのパスと参照許可を制御する参照パスコントローラ1046が接続されている。設定格納領域1044には、パス管理情報1045が格納される。
参照パスコントローラ1046は、ネットワーク1004を介して他のサーバとデータ及び信号をやり取りするためのネットワークポート1047を備える。
次に、本発明の第1の実施の形態の処理について説明する。
図2は、本発明の第1の実施の形態のデータロード処理の手順を示す図である。図2に示す処理の流れは、PAD(Problem Analysis Diagram)によって表記されている。
データロード制御サーバ1001のCPU1009は、データロード制御プログラム1014を処理することによって、データロード処理を実行する。
CPU1009は、入力装置1008からデータロード対象データリスト1048及び格納先データサーバリスト1049の入力を受け付ける(ステップ2001)。入力されたデータロード対象データリスト1048及び格納先データサーバリスト1049は、作業領域1018に格納される。なお、データロード対象データリスト1048と格納先データサーバリスト1049の詳細は、図3及び図4にて後述する。
CPU1009は、パス作成プログラム1015を起動し、パス作成処理によって対応管理リスト1038及びパス管理情報1045を生成する(ステップ2002)。生成された対応管理リスト1038及びパス管理情報1045は、作業領域1018に格納される。なお、パス作成処理の手順については、図5にて説明する。また、対応管理リスト1038及びパス管理情報1045の詳細は、図6及び図7にて後述する。
CPU1009は、データロード対象データリスト1048に格納されたデータロード対象データ3001の数だけデータ分配処理を実行する(ステップ2003)。データ分配処理では、未分配のデータロード対象データのうち一つを分配対象データ5101とし、データ分配プログラム1016を実行することによってデータ分配処理を実行する(ステップ2004)。なお、データ分配処理の手順は図8にて後述する。
CPU1009は、データ分配プログラム1016を処理することによって、データロード対象データリスト1048に記載されたデータの分配の指示が終了すると、データロード対象データリスト1048の分配状況3003がすべて「分配済み」の状態になるまで待機する(ステップ2005)。
CPU1009は、データロード対象データリスト1048の分配状況3003がすべて「分配済み」の状態になると、参照切替プログラム1017を処理し、参照切り替え処理を実行する(ステップ2006)。参照切り替え処理では、データ格納媒体1003の参照パスコントローラ1046にフェーズ変更信号13101を送信し、パス管理情報1045に基づいて、参照可能なパスを格納フェーズから管理フェーズに変更する。さらに、データサーバ1005にフェーズ変更信号13101を送信する。参照切り替え処理の手順については、図9にて後述する。
CPU1009は、データ格納媒体1003の参照パスコントローラ1046及び各データサーバから送信された変更終了信号2101を受信するまで待機する(ステップ2007)。
CPU1009は、すべてのデータサーバからの変更終了信号2101を受信すると、表示装置1007に分配完了の通知を表示する(ステップ2008)。ステップ2008の処理の終了後、データロード処理は終了する。
図3は、本発明の第1の実施の形態のデータロード処理実行時に入力を受け付けるデータロード対象データリスト1048の一例を示す図である。データロード対象データリスト1048は、データロード処理が開始されてから終了するまで、データロード制御サーバ1001の作業領域1018に保持される。
データロード対象データリスト1048は、データロード対象データ3001、分配先3002及び分配状況3003を含む。
データロード対象データ3001は、分配対象データ5101の実体(分配データ実体9101)が格納されている場所である。データロード対象データ3001は、図2のステップ2001の処理において、入力装置1008から入力される。
分配先3002は、分配対象データ5101を送付するデータサーバを表す識別子である。分配先3002は、初期値として「null」が設定され、データ分配処理における分配対象データ5101の解析結果に基づいて分配先のデータサーバ1005が設定される。
分配状況3003は、データ分配処理の過程における分配対象データ5101の状態である。具体的には、分配先3002が初期値の「null」であるとき、データ分配プログラム1016が実行されることによって分配先3002が設定されると、分配状況3003の値は「未分配」に設定される。そして、データ格納管理プログラム1036が実行されることによって、分配対象データ5101が小領域に格納されると「分配済み」に設定される。
ここで、図3に示すデータロード対象データリスト1048を参照すると、レコード3011から3014が格納されている。
レコード3011は、データロード対象データ3001に「¥¥原本管理制御サーバ¥DOC¥DOC0000.xml」が設定され、分配先3002が「第1データサーバ」であって、既に小領域に格納済みの状態である。
また、レコード3012は、データロード対象データ3001に「¥¥原本管理制御サーバ¥DOC¥DOC0001.xml」が設定され、分配先3002が「第2データサーバ」であるが、現時点ではデータロード対象データ3001が小領域に格納されていない。同様に、レコード3013は、「¥¥原本管理制御サーバ¥DOC¥DOC0002.xml」が設定され、分配先3002が「第1データサーバ」であるが、データロード対象データ3001が小領域に格納されていない。
さらに、レコード3014は、「¥¥原本管理制御サーバ¥DOC¥DOC0003.xml」が設定され、分配先3002が未設定であり、分配状況も「null」が設定されている。
図4は、本発明の第1の実施の形態のデータロード処理実行時に入力を受け付ける格納先データサーバリスト1049の一例を示す図である。格納先データサーバリスト1049は、図2のステップ2001で入力装置1008から入力されてからデータロード処理が終了するまで、データロード制御サーバ1001の作業領域1018に保持される。
格納先データサーバリスト1049は、データサーバ4001、アドレス4002及び格納データの条件4003を含む。
データサーバ4001は、データサーバ1005の名称である。アドレス4002は、データサーバのネットワーク1004の位置を特定する情報である。アドレス4002は、例えば、IPアドレスが格納される。格納データの条件4003は、データサーバで管理されるデータを格納する条件である。
ここで、図4に示す格納先データサーバリスト1049を参照すると、第1データサーバ1005A及び第2データサーバ1005Bに関する情報が格納されている。
第1データサーバ1005Aは、アドレス「1.1.1.1」に存在し、「/DOC/DATA/AUTHORの値がA department」であるデータが分配される。そして、第2データサーバ1005Bは、アドレス「1.1.1.2」に存在し、「/DOC/DATA/AUTHORの値がB department」であるデータが分配される。
続いて、パス作成処理について説明する。パス作成処理は、図2のステップ2002の処理において、パス作成プログラム1015がCPU1009によって処理されて実行される。
図5は、本発明の第1の実施の形態のパス作成処理の手順を示すPADである。
CPU1009は、まず、作業領域1018に格納された格納先データサーバリスト1049を参照し、データサーバ数5102を取得する。さらに、データが格納されていない状態の対応管理リスト1038及びパス管理情報1045を作業領域1018に作成する(ステップ5001)。なお、対応管理リスト1038の詳細については、図6にて後述する。また、パス管理情報1045の詳細については、図7にて後述する。
CPU1009は、データ格納媒体1003の参照パスコントローラ1046に対し、データサーバ数5102の2乗個の小領域の作成を指示する。さらに、作成された小領域の名称を対応管理リスト1038に設定する(ステップ5002)。
CPU1009は、分配データサーバ設定カウンタ5103及び管理データサーバ設定カウンタ5104を0に設定する(ステップ5003)。分配データサーバ設定カウンタ5103及び管理データサーバ設定カウンタ5104は、主記憶1010に一時的に記憶される変数である。
CPU1009は、データサーバ数5102の数だけ分配データサーバ決定ループ処理(ステップ5005〜ステップ5014)を実行する(ステップ5004)。
分配データサーバ決定ループ処理では、CPU1009は、まず、格納先データサーバリスト1049の[分配データサーバ設定カウンタ5103]番目のデータサーバを設定分配データサーバ5105に設定する(ステップ5005)。
CPU1009は、さらに、データサーバ数5102の数だけ格納データサーバ決定ループ処理(ステップ5007〜ステップ5013)を実行する(ステップ5006)。
格納データサーバ決定ループ処理では、CPU1009は、まず、格納先データサーバリスト1049の[管理データサーバ設定カウンタ5104]番目のデータサーバを設定管理データサーバ5106に設定する(ステップ5007)。
CPU1009は、さらに、対応管理リスト1038において分配データサーバ6002と管理データサーバ6003が未設定である小領域を設定対象小領域5107に設定する(ステップ5008)。
CPU1009は、設定対象の小領域6001に対応する対応管理リスト1038のレコードを更新する。具体的には、分配データサーバ6002に設定分配データサーバ5105を設定し、管理データサーバ6003に設定管理データサーバ5106を設定する。さらに、格納先データサーバリスト1049を参照して設定管理データサーバ5106に対応する格納データの条件4003を取得し、格納データの条件6004に設定する(ステップ5009)。
CPU1009は、分配パス5109及び管理パス5108の作成と、分配パス5109の参照を許可するように、データ格納媒体1003の参照パスコントローラ1046に指示する(ステップ5010)。分配パス5109は、設定対象小領域5107と分配データサーバ6002とを接続するパスである。また、管理パス5108は、設定対象小領域5107と管理データサーバ6003とを接続するパスである。
CPU1009は、パス管理情報1045の分配パス5109の格納フェーズの参照7002に「true」(許可状態)を設定し、該当するパスの参照を許可する(ステップ5011)。
CPU1009は、パス管理情報1045の管理パス5108の管理フェーズの参照7003に「true」(許可状態)を設定する(ステップ5012)。そして、分配データサーバ設定カウンタ5103を加算し(ステップ5013)、格納データサーバ決定ループ処理を終了する。
CPU1009は、さらに、管理データサーバ設定カウンタ5104を加算し(ステップ5014)、分配データサーバ決定ループ処理を終了する。
CPU1009は、データ格納媒体1003の設定格納領域1044にパス管理情報1045を格納する。さらに、各データサーバの設定格納領域1037に対応管理リスト1038を格納する(ステップ5015)。以上の処理が終了すると、パス作成処理は終了する。
図6は、本発明の第1の実施の形態の対応管理リスト1038の一例を示す図である。図6に示した対応管理リスト1038は、パス作成処理終了時の状態である。対応管理リスト1038は、データを格納する小領域にアクセスするサーバ及びデータの格納条件を保持する。
対応管理リスト1038は、小領域6001、分配データサーバ6002、管理データサーバ6003及び格納データの条件6004を含む。
小領域6001は、各データサーバに作成された小領域の名称である。小領域6001は、図5のステップ5002の処理によって設定される。
分配データサーバ6002は、小領域6001に対して実際にデータを格納するデータサーバの名称である。分配データサーバ6002は、図5のステップ5010の処理によって設定される。
管理データサーバ6003は、小領域に格納されたデータを管理するデータサーバの名称である。小領域6001は、図5のステップ5009の処理によって設定される。
格納データの条件6004は、小領域に格納されるデータの条件である。格納データの条件6004は、格納先データサーバリスト1049の情報に基づいて、分配データサーバ6002で指定されたデータサーバに対応する格納データの条件4003が設定される。
小領域6001に新しい小領域の名称が設定されると、分配データサーバ6002、管理データサーバ6003及び格納データの条件6004には、初期値として「null」が設定される。
図6に示した対応管理リスト1038によると、格納フェーズでは「/DOC/DATA/AUTHORの値がA department」であるデータが第1データサーバ1005Aによって第1小領域1040に格納される。同様に、「/DOC/DATA/AUTHORの値がB department」であるデータが第2小領域1041に格納される。さらに、「/DOC/DATA/AUTHORの値がA department」であるデータが第2データサーバによって第3小領域1042に格納される。同様に、「/DOC/DATA/AUTHORの値がB department」であるデータが第2データサーバによって第4小領域1043に格納される。
また、管理フェーズでは、「/DOC/DATA/AUTHORの値がA department」であるデータが格納された第1小領域及び第3小領域が第1データサーバによって管理される。同様に、「/DOC/DATA/AUTHORの値がB department」であるデータが格納された第2小領域及び第4小領域が第2データサーバによって管理される。
図7は、本発明の第1の実施の形態のパス管理情報1045の一例を示す図である。図7に示したパス管理情報1045は、パス作成処理終了時の状態である。パス管理情報1045は、小領域とデータサーバとの接続関係を保持する。
パス7001は、パスによって接続される1対の小領域とデータサーバである。パス7001は、図5のステップ5011又はステップ5012の処理によって設定される。例えば、「第1小領域−第1データサーバ」は第1小領域と第1データサーバとを接続するパスを表している。
格納フェーズの参照7002は、格納フェーズにおける当該パスの参照の可否である。格納フェーズの参照7002は、図5のステップ5011の処理によって設定される。管理フェーズの参照7003は管理フェーズにおける当該パスの参照の可否である。管理フェーズの参照7003は、図5のステップ5012の処理によって設定される。
格納フェーズの参照7002及び管理フェーズの参照7003の初期値は「null」である。また、格納フェーズの参照7002及び管理フェーズの参照7003に設定された値が「null」である場合には、パスの使用を許可せず、「true」に設定されている場合にはパスの使用を許可する。
図7に示したパス管理情報1045によると、格納フェーズでは、レコード7004からレコード7007に対応するパスが使用可能となっている。具体的には、「第1小領域−第1データサーバ」、「第2小領域−第1データサーバ」、「第3小領域−第2データサーバ」及び「第4小領域−第2データサーバ」の4つのパスが使用可能である。
管理フェーズでは、レコード7004、7007から7009に対応するパスが使用可能となっている。具体的には、「第1小領域−第1データサーバ」、「第2小領域−第2データサーバ」、「第3小領域−第1データサーバ」及び「第4小領域−第2データサーバ」の4つのパスが使用可能である。
続いて、データ分配処理について説明する。データ分配処理は、図2のステップ2004の処理において、データ分配プログラム1016がCPU1009によって処理されて実行される。
図8は、本発明の第1の実施の形態のデータ分配処理の手順を示すPADである。
データロード制御サーバ1001のCPU1009は、まず、格納先データサーバリスト1049からデータロード対象データリスト1048の分配先3002に設定された回数が最小であるデータサーバを1つ分配先データサーバ8101として選択する。そして、選択された分配先データサーバ8101を分配対象データ5101の分配先3002としてデータロード対象データリスト1048に設定する(ステップ8001)。このように、分配先3002に設定された回数が最小のデータサーバを優先してデータを割り当てることによって、各データサーバにデータを均等に分配することができる。また、データロード対象データリスト1048の分配状況3003の値を「未分配」に設定する。
CPU1009は、分配対象データ5101を格納する原本管理制御サーバ1002に、分配対象データ5101及び分配先データサーバ8101をデータ読み出し信号8102と共に送信する(ステップ8002)。
CPU1009は、さらに、分配先データサーバ8101から送信された分配対象データ5101に関するデータ格納完了信号10104を受信するまで待機する(ステップ8003)。
CPU1009は、分配対象データ5101の分配状況3003を「分配済み」としてデータロード対象データリスト1048に設定する(ステップ8004)。ステップ8004の処理が完了すると、データ分配処理は終了する。
続いて、実データ取得処理について説明する。実データ取得処理は、図8のステップ8002の処理において、データロード制御サーバ1001から送信されたデータ読み出し信号8102を原本管理制御サーバ1002が受信したときに、データ読み出しプログラム1027が処理されることによって実行される。
図9は、本発明の第1の実施の形態の実データ取得処理の手順を示すPADである。
原本管理制御サーバ1002のCPU1019は、分配対象データ5101と分配先データサーバ8101を受信し、作業領域1028に格納する(ステップ9001)。
CPU1019は、分配対象データ5101に指定された分配データ実体9101(例えば、XML文書)を原本格納媒体1025から取得し、作業領域1028に格納する(ステップ9002)。
CPU1019は、作業領域1028に格納された分配対象データ5101及び分配データ実体9101を、格納依頼信号9102と共に分配先データサーバ8101に指定されたデータサーバにネットワーク1004を介して送信する(ステップ9003)。ステップ9003の処理が終了すると、実データ取得処理は終了する。
続いて、格納管理処理について説明する。格納管理処理は、図9のステップ9003の処理において、原本管理制御サーバ1002から送信された格納依頼信号9102をデータサーバ1005が受信したときに、データ格納管理プログラム1036が処理されることによって実行される。また、図2のステップ2006の処理において、データロード制御サーバ1001から送信されたフェーズ変更信号13101をデータサーバ1005が受信したときにも格納管理処理は実行される。
図10は、本発明の第1の実施の形態の格納管理処理の手順を示すPADである。
データサーバ1005のCPU1029は、受信した信号に基づいて、処理を分岐させる(ステップ10001)。具体的には、受信した信号が格納依頼信号9102ならばデータ格納処理を実行する。また、受信した信号がフェーズ変更信号13101ならばフェーズ切り替え処理を実行する。
まず、データ格納処理について説明する。データ格納処理は、ステップ10002からステップ10006までの処理である。
CPU1029は、データ格納処理において、まず、受信した分配対象データ5101と分配データ実体9101を作業領域1039に格納する(ステップ10002)。
CPU1029は、作業領域1039の分配データ実体9101を解析し、解析済みデータ10101及び分配キー値10102を取得し、作業領域1039に格納する(ステップ10003)。解析済みデータ10101の詳細については、図12にて後述する。
CPU1029は、解析済みデータ10101に基づいて、分配データサーバ6002が本処理実行中のデータサーバ1005と一致し、取得された分配キー値10102が格納データの条件6004を満たす小領域を格納先小領域10103として設定格納領域1037に格納された対応管理リスト1038から取得し、作業領域1039に格納する(ステップ10004)。
CPU1029は、データ格納媒体1003の格納先小領域10103に分配データ実体9101を格納する(ステップ10005)。
CPU1029は、データロード制御サーバ1001に、分配対象データ5101に関するデータ格納完了信号10104を送信する(ステップ10006)。ステップ10006の処理が終了すると、データ格納処理は終了する。
次に、フェーズ切り替え処理について説明する。フェーズ切り替え処理は、ステップ1007からステップ10009までの処理である。
CPU1029は、まず、設定格納領域1037の対応管理リスト1038において、管理データサーバ6003と本処理が実行されているデータサーバとが一致する小領域6001が、すべて参照可能な状態になるまで待機する(ステップ10007)。
CPU1029は、本処理を実行しているデータサーバから参照可能な小領域に格納されたデータを抽出し、インデクスを生成する(ステップ10008)。
CPU1029は、本処理が実行されているデータサーバの変更終了信号2101をデータロード制御サーバ1001に送信する(ステップ10009)。ステップ10009の処理が終了すると、フェーズ切り替え処理は終了する。
ここで、分配データ実体9101の詳細について説明する。本発明の第1の実施の形態では、分配データ実体9101はXML文書である。
図11は、本発明の第1の実施の形態の分配データ実体9101の一例であるXML文書11001を示す図である。
まず、XML文書について簡単に説明する。XML文書を記述するXMLでは、タグと呼ばれる要素の位置を明示し、属性を収納するために記述される文字列が記述される。図11では、11002の「<AUTHOR>」及び「</AUTHOR>」がタグに該当する。
タグには、開始タグ(タグ11002では「<AUTHOR>」)と終了タグ(タグ11002では「</AUTHOR>」)がある。開始タグと終了タグとは対応する。タグは、要素名が記号で囲まれて表記される。例えば、開始タグ「<AUTHOR>」と終了タグ「</AUTHOR>」とは対応し、要素名は「AUTHOR」となる。
また、XML文書は、タグによって階層的な構造を有することができる。XML文書は、開始タグと終了タグの間に要素と呼ばれるデータを保持する。「<AUTHOR>A department</AUTHOR>」における要素は「A department」となる。このように記述することによって、XML文書は単体でデータ及び当該データの意味を記述することができる。図11では、タグ11002の要素として、要素11003「A department」が記述されている。本発明の第1の実施の形態では、分配キー値10102となる。 さらに、XMLではタグには属性を付加することができる。属性は、属性名と値の組となっている。図11を参照すると、「<AUTHOR DATE_OF_ISSUE=“2007/03/31”>A DEPARTMENT</AUTHOR>」における属性名は「DATE_OF_ISSUE」であって、値は「2007/03/31」である。
なお、開始タグと終了タグの対となっており、かつ、同じ階層に含まれていれば、正しいフォーマットとみなされるため、各タグがXML文書に記述される位置を予め特定することはできない。すなわち、XML文書から要素名「AUTHOR」の要素を取得するためには、当該XML文書を解析するまでタグの出現位置を把握することができず、要素名「AUTHOR」の要素「A department」を取り出すことはできない。XML文書の解析処理は、図10のステップ10003の処理が該当する。
なお、図6の対応管理リスト1038を参照し、格納データの条件6004と比較すると、XML文書11001は、第1データサーバに分配されれば第1小領域に、第2データサーバに分配されれば第3小領域に格納される。また、第1小領域又は第3小領域のいずれかに格納された場合であっても、管理フェーズでは第1データサーバによって管理される。
続いて、解析済みデータ10101の詳細について説明する。
図12は、本発明の第1の実施の形態の分配データ実体9101を解析した結果である解析済みデータ10101の一例を示す図である。図12に示す解析済みデータ10101は、図11に示されたXML文書11001を図10のステップ10003の処理によって解析されて得られた結果である。
解析済みデータ10101は、文書構造のパス12001及び要素12002を含む。文書構造のパス12001は、分配データ実体9101を解析して得られた文書構造のパスである。要素12002は、対応する文書構造のパス12001によって分配データ実体9101から取得した要素の実体である。
このように、解析済みデータ10101を用いることによって、文書構造のパス12001から要素12002を取得することが可能となる。
続いて、参照切り替え処理について説明する。参照切り替え処理は、図2のステップ2006の処理において、参照切替プログラム1017がCPU1009によって処理されて実行される。
図13は、本発明の第1の実施の形態の参照切り替え処理の手順を示すPADである。
データロード制御サーバ1001のCPU1009は、データ格納媒体1003の参照パスコントローラ1046に設定された各パスの参照状態に関する設定を、設定格納領域13102に格納されたパス管理情報1045の管理フェーズの参照7003に変更する(ステップ13001)。
CPU1009は、格納先データサーバリスト1049に設定されたデータサーバ数5102に対応する数だけ変更信号送信処理を繰り返し実行する(ステップ13002)。
CPU1009は、変更信号送信処理において、フェーズ変更信号13101が送信されていないデータサーバ1005にフェーズ変更信号13101を送信する(ステップ13003)。ステップ13003の処理が終了すると、データ変更信号送信処理は終了し、すべてのデータサーバ1005に対してデータ変更信号送信処理が終了すると、参照切り替え処理は終了する。
ここで、参照切替処理の開始前及び終了後の各データサーバと各小領域との関係を、具体例を参照しながら説明する。
図14は、本発明の第1の実施の形態の参照切り替え処理の開始前の状態(格納フェーズ)を説明する図である。
各データサーバ(第1データサーバ1005A、第2データサーバ1005B)と各小領域(第1小領域1040、第2小領域1041、第3小領域1042、第4小領域1043)とは、参照パスコントローラ1046を介して接続されている。
参照パスコントローラ1046は、パス作成処理によって、「第1小領域−第1データサーバ」、「第2小領域−第1データサーバ」、「第3小領域−第2データサーバ」、「第4小領域−第2データサーバ」、「第2小領域−第2データサーバ」、及び「第3小領域−第1データサーバ」の6つのパスを生成する。作成された6つのパスは、対応管理リスト1038のレコード7004からレコード7009に対応している。
参照切り替え処理の開始前の格納フェーズにおいては、第1データサーバ1005Aは、「第1小領域−第1データサーバ」7004、「第2小領域−第1データサーバ」7005の使用が許可されている。また、「/DOC/DATA/AUTHORの値がA department」であるデータが第1小領域1040に格納され、「/DOC/DATA/AUTHORの値がB department」であるデータが第2小領域1041に格納される。
第2データサーバ1005Bは、「第3小領域−第2データサーバ」、「第4小領域−第2データサーバ」のパスの使用が許可されている。また、「/DOC/DATA/AUTHORの値がA department」であるデータが第3小領域1042に格納され、「/DOC/DATA/AUTHORの値がB department」であるデータが第4小領域1043に格納される。
なお、「第2小領域−第2データサーバ」及び「第3小領域−第1データサーバ」の2つのパスは使用を許可されず、各小領域は1つのデータサーバからのみ参照され、競合などは発生しない。
図15は、本発明の第1の実施の形態の参照切り替え処理の終了後の状態(管理フェーズ)を説明する図である。以下、参照切り替え処理の開始前の格納フェーズとの変更点のみを説明する。
管理フェーズにおいては、第1データサーバ1005Aは、「第1小領域−第1データサーバ」及び「第3小領域−第1データサーバ」のパスの使用が許可されている。そして、第1データサーバ1005Aは、第1小領域1040及び第3小領域1042に格納された「/DOC/DATA/AUTHORの値がA department」であるデータを管理する。
第2データサーバ1005Bは、「第2小領域−第2データサーバ」及び「第4小領域−第2データサーバ」のパスの使用が許可されている。そして、第2データサーバ1005Bは、第2小領域1041及び第4小領域1043に格納された「/DOC/DATA/AUTHORの値がB department」であるデータを管理する。
「第2小領域−第1データサーバ」及び「第3小領域−第2データサーバ」の2つのパスは、使用を許可されず、各小領域は1つのデータサーバからのみ参照され、競合などは発生しない。
このように、各小領域が参照されるデータサーバを常に1つにするように構成することによって、競合の発生を防止し、スケーラブルな並列処理を実現することができる。
本発明の第1の実施の形態は、並列データベースによるサービスを停止させ、データロードを短時間で終了させたい場合に特に有用である。
本発明の第1の実施の形態によれば、格納フェーズ及び管理フェーズにおいて、各データサーバ1005によって参照される小領域を切り替えることによって、データロードに要する時間を短縮することができる。
具体的には、格納フェーズ及び管理フェーズにおいて、各データサーバ1005によって参照される小領域を切り替えることによって、各小領域は1つのデータサーバからのみ参照されるため、競合を発生させずに並列実行性能の確保が容易になる。さらに、格納フェーズ及び管理フェーズで格納されたデータを移動させる必要がないため、データ移動コストを必要とせずに、分配時のデータ解析と格納時のデータ解析とを同時に実行することができる。したがって、解析コストを少なくすることが可能となり、分配時のデータ解析を各データサーバで実行可能なため、解析に必要な時間を短縮することができる。
なお、本発明の第1の実施の形態では、データ分配処理における分配先データサーバ8101の決定を各データサーバに均等に配置する方法について説明したが、各データサーバにランダムに配置してもよいし、ファイルの作成時期又はファイル名などに基づいて配置してもよい。
また、本発明の第1の実施の形態では、データベースにデータが格納されていない状態からの初期構築の例を説明したが、既にデータが登録された運用中のデータベースに対しても適用することができる。具体的には、データベースのサービスを停止し、各パスの参照設定を格納フェーズの設定にすることによって、データを追加することができる。
さらに、本発明の第1の実施の形態では、格納フェーズから管理フェーズに切り替えるタイミングで、各データサーバに登録されたデータのインデクスを生成する例を説明したが、インデクスを生成しなくてもよいし、インデクス以外の検索補助情報を生成してもよい。
(第2の実施の形態)
本発明の第1の実施の形態では、データベースのサービスを停止し、格納フェーズ及び管理フェーズにおいて、各データサーバ1005によって参照される小領域を変更する方式を説明したが、本発明の第2の実施の形態ではデータベースのサービスを停止せずにデータを分配する方式について説明する。
第2の実施の形態の計算機システムの構成は、第1の実施の形態の計算機システムと同じである。また、データロード制御サーバ1001に格納されたデータロード制御プログラム1014及びデータサーバ1005に格納されたデータ格納管理プログラムの処理が第1の実施の形態と相違する。なお、同一の構成及び同一の処理については説明を省略する。
図16は、本発明の第2の実施の形態のデータロード処理の手順を示すPADである。
第2の実施の形態のデータロード処理は、図2で説明した第1の実施の形態のデータロード処理と比較すると、ステップ2006からステップ2008までの処理を実行しない点が相違する。第2の実施の形態では、格納フェーズ及び管理フェーズを切り替えないためである。その他の処理については、第1の実施の形態と同じであるため、説明を省略する。
続いて、第2の実施の形態の格納管理処理について説明する。格納管理処理は、第1の実施の形態と同様に、図9のステップ9003の処理において、原本管理制御サーバ1002から送信された格納依頼信号9102をデータサーバ1005が受信したときに、データ格納管理プログラム1036が処理されることによって実行される。
また、本発明の第2の実施の形態では、さらに、管理対象でないデータを受信したデータサーバ1005からデータサーバ間格納依頼信号18101を受信した場合に格納管理処理が実行される。
図17は、本発明の第2の実施の形態の格納管理処理の手順を示すPADである。
データサーバ1005のCPU1029は、受信した信号に基づいて、処理を分岐させる(ステップ18001)。具体的には、受信した信号が格納依頼信号9102ならばデータ格納処理を実行する。また、受信した信号がデータサーバ間格納依頼信号18101ならばデータサーバ間格納依頼処理を実行する。
データ格納処理では、図10にて説明した第1の実施の形態の格納管理処理と同じく、データサーバ1005のCPU1029は、受信した情報を作業領域1039に格納し、受信した分配データ実体9101を解析する(ステップ10002、ステップ10003)。
CPU1029は、解析済みデータ10101に基づいて、分配データサーバ6002と本処理が実行されているデータサーバ1005とが一致し、取得された分配キー値10102が格納データの条件6004を満たす小領域6001を格納先小領域10103として設定格納領域1037に格納された対応管理リスト1038から取得する(ステップ18002)。
CPU1029は、格納先小領域10103の管理データサーバ6003が分配データサーバ6002と同じであるか否かによって処理を分岐させる(ステップ18003)。格納先小領域10103の管理データサーバ6003が分配データサーバ6002と同じ場合には(ステップ18003の結果が「Yes」)、第1の実施の形態の格納管理処理のステップ10005及びステップ10006と同じ処理を実行する。
一方、CPU1029は、格納先小領域10103の管理データサーバ6003が分配データサーバ6002と異なる場合には(ステップ18003の結果が「No」)、管理フェーズで格納先小領域10103に分配対象データ5101を格納することはできない。そこで、格納先小領域10103のデータサーバ間格納依頼信号18101とともに、解析済みデータ10101及び分配対象データ5101を管理データサーバ6003に送信する(ステップ18004)。
データサーバ間格納依頼信号18101を受信したデータサーバ1005のCPU1029は、受信した解析済みデータ10101に基づいて、データ格納媒体1003の格納先小領域10103に受信した分配対象データ5101を格納する(ステップ18005)。
そして、CPU1029は、データロード制御サーバ1001に、分配対象データ5101に関するデータ格納完了信号10104を送信する(ステップ18006)。
本発明の第2の実施の形態では、本発明の第1の実施の形態と比較して、データサーバ間のデータの移動が伴うため、データの移動コストを必要とするが、サービスを継続しながらデータロードを実行することができる。
本発明の第2の実施の形態によれば、各データサーバで並列して解析処理を実行することによってデータロードに必要な時間を短縮することができる。具体的には、各データサーバで並列に解析処理をすることによって、分配時のデータ解析と格納時のデータ解析を、分配時に同時に実行できるため、解析に必要な時間を短縮することができる。
また、システムの初期構築時には、本発明の第1の実施の形態を適用し、システムの運用が開始された後には、本発明の第2の実施の形態を適用してもよい。
(第3の実施の形態)
本発明の第1の実施の形態及び第2の実施の形態においては、データロード処理の主たる制御をデータロード制御サーバ1001にて実行される方式について説明したが、データロード処理の主たる制御は他のサーバによって実行されてもよい。
第3の実施の形態では、データロード処理の主たる制御が原本管理制御サーバ1002によって実行される形態について説明する。
図18は、本発明の第3の実施の形態の並列データベースを含むシステムの構成を示す図である。本発明の第3の実施の形態のシステム構成では、図18に示すようにデータロード制御サーバ1001が含まれない。
原本管理制御サーバ1002は、第1の実施の形態の構成に加えて、表示装置19001及び入力装置19002を備える。
表示装置19001は、本発明の第1の実施の形態における図1の表示装置1007と同じく、各種処理の結果などを表示する。入力装置19002は、本発明の第1の実施の形態における図1の入力装置1008と同じく、実行する処理の命令及び必要な情報などを入力する。
また、原本管理制御サーバ1002の主記憶1020には、データロード制御プログラム19003、パス作成プログラム19004、データ分配・読み出しプログラム19005、及び参照切替プログラム19006が記憶される。
本発明の第3の実施の形態における各プログラムの処理は、対応する第1の実施の形態の処理と同じである。データロード制御サーバ1001で実行されていた情報の入力及び表示、データロード制御が原本管理制御サーバで実行される点が異なる。
続いて、本発明の第3の実施の形態のデータ分配・読み出しプログラム19005を処理することによって実行されるデータ取得分配処理について説明する。
本発明の第1の実施の形態では、データロード制御サーバ1001と原本管理制御サーバ1002とが別のサーバであるため、サーバ間でデータのやり取りが必要となる。第3の実施の形態では、データロード制御サーバ1001で実行された処理が原本管理制御サーバ1002で実行されるため、データロード制御サーバ1001と原本管理制御サーバ1002との間で通信する必要がない。そこで、第1の実施の形態におけるデータ分配処理(図8)と実データ取得処理(図9)とを一連の処理にすることができる。
図19は、本発明の第3の実施の形態のデータ取得分配処理の手順を示すPADである。
原本管理制御サーバ1002のCPU1019は、まず、格納先データサーバリスト1049からデータロード対象データリスト1048の分配先3002に設定された回数が最小であるデータサーバを1つ分配先データサーバ8101として選択する。そして、選択された分配先データサーバ8101を分配対象データ5101の分配先3002としてデータロード対象データリスト1048に設定する(ステップ8001)。また、データロード対象データリスト1048の分配状況3003の値を「未分配」に設定する。
CPU1019は、分配対象データ5101に指定された分配データ実体9101を原本格納媒体1025から取得し、作業領域1028に格納する(ステップ9002)。
CPU1019は、作業領域1028に格納された分配対象データ5101及び分配データ実体9101を、格納依頼信号9102と共に分配先データサーバ8101に指定されたデータサーバにネットワーク1004を介して送信する(ステップ9003)。
CPU1019は、分配対象データ5101の分配状況3003を「分配済み」としてデータロード対象データリスト1048に設定する(ステップ8004)。ステップ8004の処理が完了すると、データ分配取得処理は終了する。
続いて、実データ取得処理について説明する。実データ取得処理は、図8のステップ8002の処理において、データロード制御サーバ1001から送信されたデータ読み出し信号8102を原本管理制御サーバ1002が受信したときに、データ読み出しプログラム1027が処理されることによって実行される。
続いて、格納管理処理が実行される。格納管理処理は、本発明の第1の実施の形態と同じく、原本管理制御サーバ1002から送信された格納依頼信号9102をデータサーバ1005が受信したときに、データ格納管理プログラム1036が処理されることによって実行される。また、データロード制御サーバ1001から送信されたフェーズ変更信号13101をデータサーバ1005が受信したときにも格納管理処理は実行される。
データ格納管理プログラム19007による格納管理処理は、図10のステップ10006及びステップ10009で信号を送信する相手サーバがデータロード制御サーバ1001ではなく、原本管理制御サーバ1002である点が相違する以外は同じ処理である。
また、参照切替プログラム19006による参照切り替え処理は、データロード制御サーバ1001ではなく、原本管理制御サーバ1002で実行される点を除いて、図13にて説明した参照切り替え処理と同じである。
本発明の第3の実施の形態は、並列データベースによるサービスを停止させ、データロード制御サーバ1001を使用せずにデータロードを短時間で終了させたい場合に有用である。
本発明の第3の実施の形態によれば、データロード制御サーバ1001を使用せずに、本発明の第1の実施の形態と同様に、格納フェーズ及び管理フェーズにおいて、各データサーバによって参照される小領域を切り替えることによって、データロードに要する時間を短縮することができる。
さらに、本発明の第3の実施の形態によれば、データロード制御サーバを使用しないことによって、必要なサーバ数を少なくすることができ、設備投資を少なくすることができる。
また、本発明の第3の実施の形態ではデータロード処理の主たる制御が原本管理制御サーバ1002で実行される方式について説明したが、データロード処理の主たる制御がデータサーバの1つで実行される方式であってもよい。
(第4の実施の形態)
本発明の第1から第3の実施の形態では、データ格納媒体の機能を利用して、各データサーバと小領域のパスの許可又は不許可といった状態を管理する方式を説明したが、各データサーバによって小領域への参照を制御する方式であってもよい。
第4の実施の形態の計算機システムの構成は、第1の実施の形態の計算機システムと同じである。データロード制御サーバ1001に格納されたデータロード制御プログラム1014及びデータサーバ1005に格納されたデータ格納管理プログラムの処理が相違する。
図20は、本発明の第4の実施の形態のデータロード処理の手順を示すPADである。
データロード制御サーバ1001のCPU1009は、第1の実施の形態のデータロード処理と同じく、入力装置1008からデータロード対象データリスト1048及び格納先データサーバリスト1049の入力を受け付ける(ステップ2001)。
CPU1009は、第1の実施の形態と同様に、パス作成プログラム1015を起動し、パス作成処理によって対応管理リスト1038及びパス管理情報1045を生成する(ステップ2002)。
CPU1009は、第1の実施の形態と同様に、データロード対象データリスト1048に格納されたデータに対してデータ分配処理を実行する(ステップ2003、ステップ2004)。そして、各データサーバでデータが格納されるまで待機する(ステップ2005)。
CPU1009は、参照切替プログラム1017を起動し、各データサーバにフェーズ変更信号13101を送信する(ステップ22001)。第1の実施の形態では、参照パスコントローラ1046にフェーズ変更信号13101を送信してフェーズを切り替えていたが(図2のステップ2006)、第4の実施の形態では、各データサーバで各小領域への参照を制御するため、各データサーバにフェーズ変更信号13101を送信すればよいためである。
CPU1009は、データサーバ1005から変更終了信号2008を受信するまで待機し(ステップ22002)、表示装置1007に分配完了の通知を表示する(ステップ2008)。
図21は、本発明の第4の実施の形態のパス作成処理の手順を示すPADである。処理の概要は、第1の実施の形態とほぼ同じである。
第4の実施の形態では、各データサーバによって各小領域への参照が制御されるため、参照パスコントローラ1046では、データ格納媒体1003の各小領域へのすべてのパスの使用が許可される。一方、第1の実施の形態では、データサーバ1005の管理対象の小領域に対してのみ参照可能にパス管理情報1045が設定されていたが(図5のステップ5012)、第4の実施の形態では、管理フェーズにおいて、すべての小領域が参照可能となるように設定される(ステップ23001)。
図22は、本発明の第4の実施の形態の格納管理処理の手順を示すPADである。
データサーバ1005のCPU1029は、第1の実施の形態と同様に、受信した信号に基づいて、データ格納処理又はフェーズ切り替え処理を実行する(ステップ10001)。
CPU1029は、データ格納処理又はフェーズ切り替え処理の最初に、本処理が実行されているデータサーバ1005が分配データサーバ6002に設定されている小領域6001について、対応管理リスト1038を参照可能な領域として設定する(ステップ24001、ステップ24002)。なお、ステップ24001又はステップ24002の処理が実行された後の各処理は、第1の実施の形態と同じデータ格納処理又はフェーズ切り替え処理を実行する。
第4の実施の形態では、各データサーバによって各小領域への参照が制御されるため、ステップ24001及びステップ24002の処理が実行される。
図23は、本発明の第4の実施の形態の参照切り替え処理の手順を示すPADである。
第4の実施の形態の参照切り替え処理では、各データサーバによって各小領域への参照が制御されるため、参照パスコントローラ1046にフェーズ変更信号13101を送信する必要がない。したがって、本発明の第4の実施の形態の参照切り替え処理は、図13に示された第1の実施の形態の参照切り替え処理と比較すると、ステップ13001の処理が存在しない点が相違している。
本発明の第4の実施の形態は、データ格納媒体1003の機能に依存せず、データロードを短時間に終了させたい場合に有用である。
本発明の第4の実施の形態では、データ格納先として参照パスコントローラ1046を備えたデータ格納媒体1003を用いて説明しているが、参照パスコントローラ1046を持たないネットワーク接続ストレージ(Network Attached Storage)などのように、複数のサーバから参照が可能な参照パスコントローラ1046を備えないデータ格納媒体を用いてもよい。なお、この場合には、参照パスコントローラ1046に指示することによって実行されていた処理をデータサーバ1005などが実行する必要がある。
本発明の第4の実施の形態によれば、データ格納媒体1003の機能に依存せずに格納フェーズと管理フェーズで各データサーバが参照する小領域を変更し、データロードに要する時間を短縮することができる。
具体的には、各データサーバが各小領域への参照を制御することによって、データ格納媒体1003の機能に依存することなく、格納フェーズ及び管理フェーズで各データサーバによって参照される小領域を切り替えることが可能となり、第1の実施の形態と同じ効果を得ることができる。
(第5の実施の形態)
本発明の第1から第4の実施の形態では、データサーバが物理的に独立したハードウェア上で動作する方式を説明したが、データサーバが仮想化機能によって実現された仮想サーバであってもよい。
図24は、本発明の第5の実施の形態の並列データベースを含むシステムの構成を示す図である。
本システムは、データロード制御サーバ1001、原本管理制御サーバ1002、データ格納媒体1003、及び仮想化サーバ1053を含む。原本管理制御サーバ1002及びデータ格納媒体1003は、第1の実施の形態の計算機システムと同じである。
仮想化サーバ1053は、CPU1〜CPU6(1029A〜1029F)、主記憶1030、ネットワークポート1(1031A)、ネットワークポート2(1031B)及びストレージポート1(1032A)、ストレージポート2(1032B)を含む。
CPU1〜CPU6(1029A〜1029F)、主記憶1030、ネットワークポート1(1031A)、ネットワークポート2(1031B)及びストレージポート1(1032A)、ストレージポート2(1032B)は、バス1033によって接続される。
CPU1〜CPU6(1029A〜1029F)は、主記憶1030に記憶されたプログラムを実行し、所定の処理を実行する。主記憶1030は、CPU1〜CPU6(1029A〜1029F)によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。
主記憶1030は、仮想化機構プログラム1051及び仮想サーバ定義1052を記憶する。
仮想化機構プログラム1051は、CPUに実行されることによって、仮想化サーバ1053の計算機資源を論理的な単位で分割し、一以上の仮想サーバを実現する。仮想化サーバ1053の計算機資源は、具体的には、CPU1〜CPU6(1029A〜1029F)、主記憶1030、ネットワークポート1(1031A)、ネットワークポート2(1031B)、ストレージポート1(1032A)、ストレージポート2(1032B)、及び主記憶1030である。さらに、仮想化機構プログラム1051は、仮想サーバに割り当てる計算機資源の配分を制御する。
仮想サーバ定義1052は、仮想化機構プログラム1051によって実現された仮想サーバと、当該仮想サーバに割り当てられる計算機資源との対応を含む。仮想化機構プログラム1051は、仮想サーバ定義1052に基づいて、仮想サーバを実現する。
仮想化機構プログラム1051によって実現された仮想サーバは、1つの独立したハードウェアとして動作する。図24の仮想化サーバ1053では、仮想サーバとして、第1データサーバ1005A及び第2データサーバ1005Bが実現される。第1データサーバ1005Aは、ネットワークポート1(1031A)、ストレージポート1(1032A)、CPU1〜CPU3(1029A〜1029C)によって構成される。第2データサーバ1005Bは、ネットワークポート2(1031B)、ストレージポート2(1032B)、CPU4〜CPU6(1029D〜1029F)によって構成される。
第1データサーバ1005Aの主記憶には、システム制御プログラム1035A及びデータ格納管理プログラム1036Aが記憶される。第1データサーバ1005Aの主記憶は、設定格納領域1037A及び作業領域1039Aを含む。第1データサーバ1005Aの主記憶に格納されたプログラムは、CPU1〜CPU3(1029A〜1029C)に実行されることによって、所定の処理が実行される。
システム制御プログラム1035Aは、外部から受信した制御信号又は第1データサーバ1005Aの状態に基づいて、所定の処理を実行する。
データ格納管理プログラム1036Aは、分配データ実体9101を解析し、解析結果、及び、データサーバと小領域との対応関係に基づいて、当該データを管理するデータサーバ(仮想サーバ)を決定する。データ格納管理プログラム1036Aは、管理フェーズにおいて、当該データサーバが管理する小領域に当該データを格納する。
設定格納領域1037Aは、対応管理リスト1038Aが格納される。対応管理リスト1038Aは、データサーバとデータ格納媒体1003に確保された小領域との対応関係を格納する。
第2データサーバ1005Bの主記憶には、システム制御プログラム1035B及びデータ格納管理プログラム1036Bが記憶される。第2データサーバ1005Bの主記憶は、設定格納領域1037B及び作業領域1039Bを含む。第2データサーバ1005Bの主記憶に格納されたプログラムは、CPU4〜CPU6(1029D〜1029F)に実行されることによって、所定の処理が実行される。
システム制御プログラム1035Bは、外部から受信した制御信号又は第2データサーバ1005Bの状態に基づいて、所定の処理を実行する。
データ格納管理プログラム1036Bは、分配データ実体9101を解析し、解析結果、及び、データサーバと小領域との対応関係に基づいて、当該データを管理するデータサーバ(仮想サーバ)を決定する。データ格納管理プログラム1036Bは、管理フェーズにおいて、当該データサーバが管理する小領域に当該データを格納する。
設定格納領域1037Bは、対応管理リスト1038Bが格納される。対応管理リスト1038Bは、データサーバとデータ格納媒体1003に確保された小領域との対応関係を格納する。
なお、本発明の第5の実施の形態では、第1データサーバ1005A及び第2データサーバ1005Bの二台のデータサーバを実現されているが、システム構成に応じて変更してもよい。
また、本発明の第5の実施の形態では、仮想サーバにCPUを固定的に割り当てる形式としているが、仮想サーバに固有のCPUを割り当てるのではなく、所定の比率で動的にCPUを割り当てる方式としてもよい。
データロード制御サーバ1001の主記憶1010に格納されたデータロード制御プログラム1104には、さらに、配分変更プログラム1050が含まれる。
配分変更プログラム1050は、CPU1009に実行されることによって、仮想化サーバ1053上で実行される処理又はデータサーバ(仮想サーバ)によって参照されるデータ量に基づいて、各データサーバ(仮想サーバ)の計算機資源の配分を決定し、仮想化サーバ1053に配分の変更を指示する。仮想化サーバ1053は、仮想化機構プログラム1051の処理によって、受け付けた指示にしたがって各仮想サーバの計算機資源の配分を変更する。
次に、本発明の第5の実施の形態の処理について説明する。
図25は、本発明の第5の実施の形態のデータロード処理の手順を示す図である。
データロード制御サーバ1001のCPU1009は、データロード制御プログラム1014を処理することによって、データロード処理を実行する。
ステップ2001〜2005の処理については、図2に示した第1の実施の形態のデータロード処理で説明した内容と同じである。
CPU1009は、データロード対象データリスト1048の分配状況3003がすべて「分配済み」の状態になると、参照切替プログラム1017を処理し、参照切り替え処理を実行する(ステップ2011)。参照切り替え処理では、データ格納媒体1003の参照パスコントローラ1046にフェーズ変更信号13101を送信し、パス管理情報1045に基づいて、参照可能なパスを格納フェーズから管理フェーズに変更する。参照切り替え処理の手順については、図13に示した第1の実施の形態と同じである。
CPU1009は、配分変更プログラム1050を実行し、各データサーバの参照範囲の領域に格納されたデータ量の比率に応じた計算機資源の配分への変更を、仮想化機構プログラム1051に指示する。計算機資源の配分変更処理の手順については、図26にて後述する。
CPU1009は、各データサーバにフェーズ変更信号13101を送信する(ステップ2013)。
CPU1009は、データ格納媒体1003の参照パスコントローラ1046及び各データサーバから送信された変更終了信号2101を受信するまで待機する(ステップ2007)。
CPU1009は、すべてのデータサーバからの変更終了信号2101を受信すると、表示装置1007に分配完了の通知を表示する(ステップ2008)。ステップ2008の処理が終了すると、データロード処理は終了する。
図26は、本発明の第5の実施の形態の仮想化サーバ1053における計算機資源の配分変更処理の手順を示すPADである。
CPU1009は、各データサーバの参照範囲の領域に格納されたデータ量を取得する(ステップ26001、26002)。
CPU1009は、データ分配処理によって各データサーバに分配されたデータ量を取得し、各データサーバの参照範囲であるそれぞれの小領域に格納されたデータ量を取得する。例えば、図15に示す格納フェーズから管理フェーズに切り替えられた後の状態では、第1データサーバ1005Aについては第1小領域及び第3小領域に格納されたデータ量となり、第2データサーバ1005Bについては第2小領域及び第4小領域に格納されたデータ量となる。
CPU1009は、取得されたデータ量を比較し、各データサーバへの計算機資源の配分を計算する(ステップ26003)。
計算機資源を配分する対象は、仮想サーバに割り当てられるCPUの数及び主記憶1030の容量である。これらの値を取得したデータ量に比率により配分を計算する。
例えば、データ量がほぼ同じであるならば、比率を変更せず同じ数のCPUとメモリ容量をそれぞれの仮想サーバに割り当てる。第1データサーバ1005Aのデータ量と第2データサーバ1005Bのデータ量が異なる場合には、データ量の比率に基づいてCPU数及びメモリ容量を変更する。例えば、データ量の比率が4:2であった場合、3個ずつ割り当てられていた6個のCPUの割当を4個と2個に変更する。
CPU1009は、各仮想サーバの計算機資源の配分を、ステップ26003の処理で計算された計算機資源の配分に変更するように仮想化サーバ1053に指示する(ステップ26004)。
仮想化サーバ1053は、データロード制御サーバ1001からの指示を受け付けると、仮想化機構プログラム1051を処理することによって、仮想サーバへの計算機資源の割当を変更する。前述したように、CPUの割当を4個と2個に変更する指示を受け付けた場合、第1データサーバ1005AにCPU1〜CPU4(1029A〜1029D)を割り当て、第2データサーバ1005BにCPU5〜CPU6(1029E〜1029F)を割り当てる。
本発明の第5の実施の形態によれば、仮想化サーバ上にデータサーバ(仮想サーバ)を実現し、フェーズごとに計算機資源の配分を変更することによって、計算機資源の負荷を擬似的に均等化させることができる。具体的には、データ分配処理実行時には各データサーバに計算機資源を均等に近くなるよう割り当て、データ分配処理以降にはデータ格納フェーズで各データサーバに分配されたデータ量に基づいて各データサーバに計算機資源を割り当てることによって、データ格納フェーズで分配されたデータ量が各データサーバで偏りが生じた場合であっても、データ量あたりのシステム全体の計算機資源の負荷を均等化することができる。
なお、本発明の第5の実施の形態では、各データサーバの計算機資源の配分をデータ量の比率に基づいて変更したが、データロードが完了し、データベースのサービスを開始した後に、各データサーバの負荷量に基づいて、各データサーバの計算機資源の配分を変更してもよい。