(57)【要約】      （修正有）【課題】複数のプロセッサからなる分散データベースシステム上に分割して配置されるデータを効率よく再配置する。【解決手段】最終的にホスト情報ＤＢ１１２２が保有すべき情報に対応する新変換ＤＢ１１２１’を旧変換ＤＢ１１２１とともに、ＲＡＭ１１２に記憶させる。各ＰＵ１００は、新変換ＤＢ１１２１’を参照して、自ＰＵがホスト情報ＤＢ１１２２に保持すべきデータを特定する。次に、旧変換ＤＢ１１２１を参照して、特定したデータを現在保有するＰＵ１００を特定する。そして、該ＰＵ１００から、自ＰＵが保持すべきデータを移行する。【選択図】図３
2008233968.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサから構成され、前記複数プロセッサの各々が備えるメモリに分散して情報を記憶し、該分散された情報を再配置可能なデータベースサーバであって、
前記複数のプロセッサの各々は、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、該ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶する情報記憶手段と、
前記全てのプロセッサが備える前記情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値を記憶する前記情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第１のプロセッサ情報記憶手段と、
前記全てのプロセッサが備える前記情報記憶手段に新たに記憶されるべき全ハッシュ値について、各ハッシュ値と、新たに該ハッシュ値を記憶すべき前記情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第２のプロセッサ情報記憶手段と、
前記第２のプロセッサ情報記憶手段を参照し、自プロセッサを特定するプロセッサ識別情報に対応付けて記憶されるハッシュ値を取得し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けて記憶される該プロセッサ識別情報を取得し、該プロセッサ識別情報の特定する前記プロセッサの前記情報記憶手段から、該ハッシュ値を有するレコードを取得し、該レコードを自プロセッサの前記情報記憶手段に記憶させることで、レコードを再配置するよう制御する記憶制御手段と、
を備える、
ことを特徴とする、データベースサーバ。
【請求項２】
外部から、検索条件としてキー情報を受信すると、該キー情報からハッシュ値を算出し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けらプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に、該ハッシュ値が記憶されていれば、該ハッシュ値に対応付けられているデータを取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に該ハッシュ値が記憶されていなければ、前記第２のプロセッサ情報記憶手段から、該ハッシュ値に対応付けられたプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの保有する前記情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得する検索手段を備える、
ことを特徴とする、請求項１に記載のデータベースサーバ。
【請求項３】
前記複数プロセッサの１つは、マスタプロセッサとして機能し、前記各プロセッサに、前記第２のプロセッサ情報記憶手段に記憶するための情報を配布する配布手段を備え、
前記複数のプロセッサの各々の前記第２のプロセッサ情報記憶手段は、前記配布手段から情報が配布されると該配布情報を記憶し、前記記憶制御手段は、前記第２のプロセッサ情報記憶手段が該配布情報の記憶を完了すると、前記第２のプロセッサ情報記憶手段に記憶されたプロセッサ識別情報に基づいて他プロセッサの前記情報記憶手段から自プロセッサへとレコードの再配置を開始する、
ことを特徴とする、請求項１に記載のデータベースサーバ。
【請求項４】
前記複数のプロセッサの各々は、前記記憶制御手段が全てのレコードの再配置を完了した際に、前記マスタプロセッサに再配置完了の旨を知らせる信号を送信する信号送信手段を備え、
前記マスタプロセッサは、全プロセッサの前記信号送信手段から、レコードの再配置完了の信号を受信すると、前記第１のプロセッサ情報記憶手段の記憶している内容を削除し、前記第２のプロセッサ情報記憶手段と前記第１のプロセッサ情報記憶手段とを切り替えるよう制御する、切り替え制御手段を備える、
ことを特徴とする、請求項３に記載のデータベースサーバ。
【請求項５】
前記複数のプロセッサの前記検索手段は、予め設定された順番に基づいて処理を行う、
ことを特徴とする請求項２に記載のデータベースサーバ。
【請求項６】
前記複数のプロセッサの前記検索手段が処理を行う順番は、ラウンドロビン方式に基づく、
ことを特徴とする請求項５に記載のデータベースサーバ。
【請求項７】
前記情報記憶手段、および、プロセッサ情報記憶手段は、前記プロセッサが保有するメモリ上に構成される、
ことを特徴とする請求項１に記載のデータベースサーバ。
【請求項８】
複数のプロセッサから構成されるデータベースサーバにおいて、前記複数プロセッサの各々が備えるメモリに分散して記憶される情報を再配置する方法であって、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとして、前記各プロセッサの情報記憶手段が、該ハッシュ値に基づいて異なるレコードを前記プロセッサ毎に記憶する情報記憶ステップと、
前記各プロセッサの第１のプロセッサ情報記憶手段が、前記複数のプロセッサが備える前記分散情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値を記憶する前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第１のプロセッサ情報記憶ステップと、
前記各プロセッサの第２のプロセッサ情報記憶手段が、前記複数のプロセッサが備える前記分散情報記憶手段に新たに記憶されるべき全ハッシュ値について、各ハッシュ値と、新たに該ハッシュ値を記憶すべき前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第２のプロセッサ情報記憶ステップと、
前記各プロセッサの記憶制御手段が、前記第２のプロセッサ情報記憶手段を参照し、自プロセッサを特定するプロセッサ識別情報に対応付けて記憶されるハッシュ値を取得し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けて記憶される該プロセッサ識別情報を取得し、該プロセッサ識別情報の特定する前記プロセッサの前記情報記憶手段から、該ハッシュ値を有するレコード取得し、該レコードを自プロセッサの前記情報記憶手段に記憶させることで、レコードを再配置するよう制御する記憶制御ステップと、
を備える、
データを再配置する方法。
【請求項９】
前記各プロセッサの検索手段が、外部から検索条件としてキー情報を受信すると、該キー情報からハッシュ値を算出し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けらプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に、該ハッシュ値が記憶されていれば、該ハッシュ値に対応付けられているデータを取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に、該ハッシュ値が記憶されていない場合、前記第２のプロセッサ情報記憶手段から、該ハッシュ値に対応付けられたプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの保有する前記情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得する検索ステップを備える、
ことを特徴とする、請求項８に記載のデータを再配置する方法。
【請求項１０】
マスタプロセッサとして機能する前記複数のプロセッサの１つが備える配布手段が、前記第２のプロセッサ情報記憶手段に記憶するための情報を前記各プロセッサに配布する配布ステップと、
前記配布手段から情報が配布されると、前記第２のプロセッサ情報記憶手段が該配布情報を記憶し、該配布情報の記憶を完了すると、前記記憶制御手段が前記第２のプロセッサ情報記憶手段に記憶されたプロセッサ識別情報に基づいて他プロセッサの前記情報記憶手段から自プロセッサへとレコードの再配置を開始するステップと、
を備えることを特徴とする、請求項８に記載のデータを再配置する方法。
【請求項１１】
前記記憶制御手段が全てのレコードの再配置を完了した際に、前記各プロセッサの信号送信手段が前記マスタプロセッサに再配置完了の旨を知らせる信号を送信する信号送信ステップと、
前記マスタプロセッサの切り替え制御手段が、全プロセッサの前記信号送信手段から、データの再配置完了の信号を受信すると、前記第１のプロセッサ情報記憶手段の記憶している内容を削除し、前記第２のプロセッサ情報記憶手段と前記第１のプロセッサ情報記憶手段とを切り替える、切り替え制御ステップと、
を備える、
ことを特徴とする、請求項１０に記載のデータを再配置する方法。
【請求項１２】
前記情報検索ステップは、予め設定された順番に基づいて、前記複数のプロセッサの前記情報検索手段によって実施される、
ことを特徴とする請求項９に記載のデータを再配置する方法。
【請求項１３】
前記複数のプロセッサの前記検索手段が処理を行う順番は、ラウンドロビン方式に基づいて決定される、
ことを特徴とする請求項１２に記載のデータを再配置する方法。  
【請求項１４】
前記情報記憶ステップ、および、プロセッサ情報記憶ステップは、前記プロセッサが保有するメモリ上に構成される前記情報記憶手段、および、プロセッサ情報記憶手段によって実施される、
ことを特徴とする請求項８に記載のデータを再配置する方法。  
【請求項１５】
複数のプロセッサから構成される、データベースサーバにおいて、前記各プロセッサに、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、該ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶させる情報記憶ステップと、
前記全プロセッサが前記情報記憶ステップにて記憶した全ハッシュ値について、各ハッシュ値と、前記情報記憶ステップで該ハッシュ値を記憶した前記プロセッサを特定するプロセッサ識別情報とを対応付けて記憶させる第１のプロセッサ情報記憶ステップと、
前記全プロセッサが前記情報記憶ステップを実行することで新たに記憶すべきハッシュ値全てについて、各ハッシュ値と、前記情報記憶ステップを実行することで該ハッシュ値を新たに記憶すべきプロセッサを特定するプロセッサ識別情報とを対応付けて記憶させる第２のプロセッサ情報記憶ステップと、
前記第２のプロセッサ情報記憶ステップで記憶した情報の中から、自プロセッサを特定するプロセッサ識別情報に対応付けて記憶されるハッシュ値を取得させ、前記第１のプロセッサ情報記憶ステップで記憶した情報の中から、該ハッシュ値に対応付けて記憶される該プロセッサ識別情報を取得させ、該プロセッサ識別情報の特定する前記プロセッサが前記情報記憶ステップにて記憶した情報の中から、該ハッシュ値を有するレコードを取得させ、自プロセッサに前記情報記憶ステップを実行させて該レコードを記憶させることで、レコードを再配置するよう制御する記憶制御ステップと、
を実行させる、
ことを特徴とする、プログラム。
【請求項１６】
前記各プロセッサに、外部から検索条件としてキー情報を受信すると、該キー情報からハッシュ値を算出させ、前記第１のプロセッサ情報ステップで記憶した情報の中から、該ハッシュ値に対応付けらプロセッサ識別情報を取得させ、該プロセッサ識別情報によって特定されるプロセッサが前記情報記憶ステップで該ハッシュ値を記憶していれば、該ハッシュ値に対応付けられているデータを取得させ、該プロセッサ識別情報によって特定されるプロセッサが前記情報記憶ステップで該ハッシュ値を記憶していなければ、前記第２のプロセッサ情報記憶ステップで記憶した情報の中から、該ハッシュ値に対応付けられたプロセッサ識別情報を取得させ、該プロセッサ識別情報によって特定されるプロセッサが前記情報記憶ステップで記憶した情報の中から、該キー情報とそのハッシュ値とに対応付けられているデータを取得させる検索ステップを実行させる、
ことを特徴とする、請求項１５に記載のプログラム。
【請求項１７】
前記複数プロセッサの１つを、マスタプロセッサとして機能させ、前記第２のプロセッサ情報記憶ステップを実行する際に記憶させる情報を前記各プロセッサに配布させる配布ステップを実行させ、
前記複数プロセッサの各々に、前記配布手段から情報が配布されると前記第２のプロセッサ情報記憶ステップを実行させて該配布情報を記憶させ、該配布情報の記憶を完了すると、前記記憶制御ステップの実行を開始させる、
ことを特徴とする、請求項１５に記載のプログラム。
【請求項１８】
前記記憶制御ステップで全てのデータの再配置を完了した際に、前記複数のプロセッサの各々に、前記マスタプロセッサへ再配置完了の旨を知らせる信号を送信させる信号送信ステップを実行させ、
全プロセッサが前記信号送信ステップを実行し、データの再配置完了の信号を受信すると、前記第１のプロセッサ情報記憶ステップで記憶した内容を削除させ、前記第２のプロセッサ情報記憶ステップで記憶した内容と、前記第１のプロセッサ情報記憶ステップで記憶した内容とを入れ替えさせるよう制御する切り替え制御ステップを前記マスタプロセッサに実行させる、
ことを特徴とする、請求項１７に記載のプログラム。
【請求項１９】
前記情報検索ステップを、予め設定された順番に基づいて、前記複数のプロセッサに実行させる、
ことを特徴とする請求項１６に記載のプログラム。
【請求項２０】
前記情報検索ステップを、ラウンドロビン方式に基づいて決定される順番で、前記複数のプロセッサに実行させる、
ことを特徴とする請求項１９に記載のプログラム。
【請求項２１】
前記情報記憶ステップ、および、プロセッサ情報記憶ステップにおいて記憶される内容が、前記プロセッサが保有するメモリ上に記憶させるように、前記情報記憶ステップ、および、プロセッサ情報記憶ステップを前記各プロセッサに実行させる、
ことを特徴とする請求項１５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
複数プロセッサに分散されたデータを再配置可能なデータベースサーバ等に関する。
【背景技術】
【０００２】
記憶装置を備えた複数のＣＰＵ （Central Processing Unit）から構成される分散データベースシステムにおいて、データ量の増加に伴い新たなＣＰＵを増設するような場合、データの再配置が必要となる。従来よりデータの再配置には、通常システムを停止しなければならない等の運用上大きな負担を生じてきた。
【０００３】
この問題を解決するために、ＣＰＵを増設した際に、再配置を行わずに新たに追加した記憶領域にデータを記憶する技術が、例えば特許文献１に開示されている。しかし、特許文献１に開示される技術は、検索時に全ＣＰＵが自分の保有する記憶装置を検索するため、検索効率が良いとはいえない。検索効率を確保した上で、データの再配置を効率よく行う方法の提案が望まれている。
【０００４】
【特許文献１】特開平９−２９３００６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は上記実状を鑑みてなされたものであり、複数プロセッサ上に分割して配置されるデータを効率よく再配置可能なデータベース装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第一の観点に係るデータベースサーバは、
複数のプロセッサから構成され、前記複数プロセッサの各々が備えるメモリに分散して情報を記憶し、該分散された情報を再配置可能なデータベースサーバであって、
前記複数のプロセッサの各々は、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、該ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶する情報記憶手段と、
前記全てのプロセッサが備える前記情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値を記憶する前記情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第１のプロセッサ情報記憶手段と、
前記全てのプロセッサが備える前記情報記憶手段に新たに記憶されるべき全ハッシュ値について、各ハッシュ値と、新たに該ハッシュ値を記憶すべき前記情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第２のプロセッサ情報記憶手段と、
前記第２のプロセッサ情報記憶手段を参照し、自プロセッサを特定するプロセッサ識別情報に対応付けて記憶されるハッシュ値を取得し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けて記憶される該プロセッサ識別情報を取得し、該プロセッサ識別情報の特定する前記プロセッサの前記情報記憶手段から、該ハッシュ値を有するレコードを取得し、該レコードを自プロセッサの前記情報記憶手段に記憶させることで、レコードを再配置するよう制御する記憶制御手段と、
を備える。
【０００７】
また、前記データベースサーバは、
外部から、検索条件としてキー情報を受信すると、該キー情報からハッシュ値を算出し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けらプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に、該ハッシュ値が記憶されていれば、該ハッシュ値に対応付けられているデータを取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に該ハッシュ値が記憶されていなければ、前記第２のプロセッサ情報記憶手段から、該ハッシュ値に対応付けられたプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの保有する前記情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得する検索手段を備えてもよい。
【０００８】
また、前記データベースサーバにおいて、
前記複数のプロセッサの１つは、マスタプロセッサとして機能し、前記各プロセッサに、前記第２のプロセッサ情報記憶手段に記憶する情報を配布する配布手段を備え、
前記複数のプロセッサの各々の前記第２のプロセッサ情報記憶手段は、前記配布手段から情報が配布されると該配布情報を記憶し、前記記憶制御手段は、前記第２のプロセッサ情報記憶手段が該配布情報の記憶を完了すると、前記第２のプロセッサ情報記憶手段に記憶されたプロセッサ識別情報に基づいて他プロセッサの前記情報記憶手段から自プロセッサへとレコードの再配置を開始する、
ようにしてもよい。
【０００９】
また、前記データベースサーバにおいて、
前記複数のプロセッサの各々は、前記記憶制御手段が全てのレコードの再配置を完了した際に、前記マスタプロセッサに再配置完了の旨を知らせる信号を送信する信号送信手段を備え、
前記マスタプロセッサは、全プロセッサの前記信号送信手段から、レコードの再配置完了の信号を受信すると、前記第１のプロセッサ情報記憶手段の記憶している内容を削除し、前記第２のプロセッサ情報記憶手段と前記第１のプロセッサ情報記憶手段とを切り替えるよう制御する、切り替え制御手段を備える、
ようにしてもよい。
【００１０】
また、前記データベースサーバにおいて、前記複数のプロセッサの前記検索手段は、予め設定された順番に基づいて処理を行う、
ようにしてもよい。
【００１１】
また、前記データベースサーバにおいて、前記複数のプロセッサの前記検索手段が処理を行う順番は、ラウンドロビン方式に基づく、
ようにしてもよい。
【００１２】
また、前記データベースサーバにおいて、前記情報記憶手段、および、プロセッサ情報記憶手段は、前記プロセッサが保有するメモリ上に構成される、
ようにしてもよい。
【００１３】
また、本発明の第２の観点に係る方法は、
複数のプロセッサから構成されるデータベースサーバにおいて、前記複数プロセッサの各々が備えるメモリに分散して記憶される情報を再配置する方法であって、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとして、前記各プロセッサの情報記憶手段が、該ハッシュ値に基づいて異なるレコードを前記プロセッサ毎に記憶する情報記憶ステップと、
前記各プロセッサの第１のプロセッサ情報記憶手段が、前記複数のプロセッサが備える前記分散情報記憶手段に記憶される全ハッシュ値について、各ハッシュ値と、該ハッシュ値を記憶する前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第１のプロセッサ情報記憶ステップと、
前記各プロセッサの第２のプロセッサ情報記憶手段が、前記複数のプロセッサが備える前記分散情報記憶手段に新たに記憶されるべき全ハッシュ値について、各ハッシュ値と、新たに該ハッシュ値を記憶すべき前記分散情報記憶手段を保有するプロセッサを特定するプロセッサ識別情報とを対応付けて記憶する第２のプロセッサ情報記憶ステップと、
前記各プロセッサの記憶制御手段が、前記第２のプロセッサ情報記憶手段を参照し、自プロセッサを特定するプロセッサ識別情報に対応付けて記憶されるハッシュ値を取得し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けて記憶される該プロセッサ識別情報を取得し、該プロセッサ識別情報の特定する前記プロセッサの前記情報記憶手段から、該ハッシュ値を有するレコード取得し、該レコードを自プロセッサの前記情報記憶手段に記憶させることで、レコードを再配置するよう制御する記憶制御ステップと、
を備える。
【００１４】
また、前記方法は、
前記各プロセッサの検索手段が、外部から検索条件としてキー情報を受信すると、該キー情報からハッシュ値を算出し、前記第１のプロセッサ情報記憶手段から、該ハッシュ値に対応付けらプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に、該ハッシュ値が記憶されていれば、該ハッシュ値に対応付けられているデータを取得し、該プロセッサ識別情報によって特定されるプロセッサの前記情報記憶手段に、該ハッシュ値が記憶されていない場合、前記第２のプロセッサ情報記憶手段から、該ハッシュ値に対応付けられたプロセッサ識別情報を取得し、該プロセッサ識別情報によって特定されるプロセッサの保有する前記情報記憶手段から、該キー情報とそのハッシュ値とに対応付けられているデータを取得する検索ステップを備える、
ようにしてもよい。
【００１５】
また、前記方法は、
マスタプロセッサとして機能する前記複数のプロセッサの１つが備える配布手段が、前記第２のプロセッサ情報記憶手段に記憶するための情報を前記各プロセッサに配布する配布ステップと、
前記配布手段から情報が配布されると、前記第２のプロセッサ情報記憶手段が該配布情報を記憶し、該配布情報の記憶を完了すると、前記記憶制御手段が前記第２のプロセッサ情報記憶手段に記憶されたプロセッサ識別情報に基づいて他プロセッサの前記情報記憶手段から自プロセッサへとレコードの再配置を開始するステップと、
を備えるようにしてもよい。
【００１６】
また前記方法は、
前記記憶制御手段が全てのレコードの再配置を完了した際に、前記各プロセッサの信号送信手段が前記マスタプロセッサに再配置完了の旨を知らせる信号を送信する信号送信ステップと、
前記マスタプロセッサの切り替え制御手段が、全プロセッサの前記信号送信手段から、データの再配置完了の信号を受信すると、前記第１のプロセッサ情報記憶手段の記憶している内容を削除し、前記第２のプロセッサ情報記憶手段と前記第１のプロセッサ情報記憶手段とを切り替えるよう制御する切り替え制御ステップと、
を備えるようにしてもよい。
【００１７】
また前記方法において、
前記情報検索ステップは、予め設定された順番に基づいて、前記複数のプロセッサの前記情報検索手段によって実施される、
ようにしてもよい。
【００１８】
また前記方法において、
前記複数のプロセッサの前記検索手段が処理を行う順番は、ラウンドロビン方式に基づいて決定される、
ようにしてもよい。  
また前記方法において、
前記情報記憶ステップ、および、プロセッサ情報記憶ステップは、前記プロセッサが保有するメモリ上に構成される前記情報記憶手段、および、プロセッサ情報記憶手段によって実施される、
ようにしてもよい。  
また、本発明の第２の観点に係るプログラムの発明は、
複数のプロセッサから構成される、データベースサーバにおいて、前記各プロセッサに、
キー情報と、該キー情報のハッシュ値と、データとを対応付けて１レコードとし、該ハッシュ値に基づいて前記プロセッサ毎に異なるレコードを記憶させる情報記憶ステップと、
前記全プロセッサが前記情報記憶ステップにて記憶した全ハッシュ値について、各ハッシュ値と、前記情報記憶ステップで該ハッシュ値を記憶した前記プロセッサを特定するプロセッサ識別情報とを対応付けて記憶させる第１のプロセッサ情報記憶ステップと、
前記全プロセッサが前記情報記憶ステップを実行することで新たに記憶すべきハッシュ値全てについて、各ハッシュ値と、前記情報情報記憶ステップを実行することで該ハッシュ値を新たに記憶すべきプロセッサを特定するプロセッサ識別情報とを対応付けて記憶させる第２のプロセッサ情報記憶ステップと、
前記第２のプロセッサ情報記憶ステップで記憶した情報の中から、自プロセッサを特定するプロセッサ識別情報に対応付けて記憶されるハッシュ値を取得させ、前記第１のプロセッサ情報記憶ステップで記憶した情報の中から、該ハッシュ値に対応付けて記憶される該プロセッサ識別情報を取得させ、該プロセッサ識別情報の特定する前記プロセッサが前記情報記憶ステップにて記憶した情報の中から、該ハッシュ値を有するレコードを取得させ、自プロセッサに前記情報記憶ステップを実行させて該レコードを記憶させることで、レコードを再配置するよう制御する記憶制御ステップと、
を実行させる。
【００１９】
また、前記プログラムは、
前記各プロセッサに、外部から検索条件としてキー情報を受信すると、該キー情報からハッシュ値を算出させ、前記第１のプロセッサ情報ステップで記憶した情報の中から、該ハッシュ値に対応付けらプロセッサ識別情報を取得させ、該プロセッサ識別情報によって特定されるプロセッサが前記情報記憶ステップで該ハッシュ値を記憶していれば、該ハッシュ値に対応付けられているデータを取得させ、該プロセッサ識別情報によって特定されるプロセッサが前記情報記憶ステップで該ハッシュ値を記憶していなければ、前記第２のプロセッサ情報記憶ステップで記憶した情報の中から、該ハッシュ値に対応付けられたプロセッサ識別情報を取得させ、該プロセッサ識別情報によって特定されるプロセッサが前記情報記憶ステップで記憶した情報の中から、該キー情報とそのハッシュ値とに対応付けられているデータを取得させる検索ステップを実行させる、
ようにしてもよい。
【００２０】
また、前記プログラムは、前記複数プロセッサの１つを、マスタプロセッサとして機能させ、前記第２のプロセッサ情報記憶ステップを実行する際に記憶させる情報を前記各プロセッサに配布させる配布ステップを実行させ、
前記複数プロセッサの各々に、前記配布手段から情報が配布されると前記第２のプロセッサ情報記憶ステップを実行させて該配布情報を記憶させ、該配布情報の記憶を完了すると、前記記憶制御ステップの実行を開始させる、
ようにしてもよい。
【００２１】
また、前記プログラムは、前記記憶制御ステップで全てのデータの再配置を完了した際に、前記複数のプロセッサの各々に、前記マスタプロセッサへ再配置完了の旨を知らせる信号を送信させる信号送信ステップを実行させ、
全プロセッサが前記信号送信ステップを実行し、データの再配置完了の信号を受信すると、前記第１のプロセッサ情報記憶ステップで記憶した内容を削除させ、前記第２のプロセッサ情報記憶ステップで記憶した内容と、前記第１のプロセッサ情報記憶ステップで記憶した内容とを入れ替えさせるステップを前記マスタプロセッサに実行させる、
ようにしてもよい。
【００２２】
また、前記プログラムは、前記情報検索ステップを、予め設定された順番に基づいて、前記複数のプロセッサに実行させる、
ようにしてもよい。
【００２３】
また、前記プログラムは、前記情報検索ステップを、ラウンドロビン方式に基づいて決定される順番で、前記複数のプロセッサに実行させる、
ようにしてもよい。
【００２４】
また、前記プログラムは、前記情報記憶ステップ、および、プロセッサ情報記憶ステップにおいて記憶される内容が、前記プロセッサが保有するメモリ上に記憶させるように、前記情報記憶ステップ、および、プロセッサ情報記憶ステップを前記各プロセッサに実行させる、
ようにしてもよい。
【発明の効果】
【００２５】
本発明によれば、複数のプロセッサ上に分割して配置されるデータを効率よく再配置可能なデータベースサーバ等を提供することが可能となる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面を参照して説明する。本発明の実施の形態においては、パケット通信技術に基づいて電話サービスを提供するＩＰ電話システムを例に説明する。まずは、本ＩＰ電話システムの構成について説明した上で、本ＩＰ電話システムにおける呼出処理のフローを説明する。そして次に、そのような呼出フローを行うＩＰ電話システムにおいてデータを再配置するフローを説明する。
【００２７】
図１は、本実施の形態におけるＩＰ電話システムの構成例を示すブロック図である。図１に示すように、ＩＰ電話システムは、内部ネットワーク１０がプロキシサーバ３を介して外部ネットワーク１１に接続された構成を有している。内部ネットワーク１０には、呼制御サーバ２、検索サーバ１、および複数のＤＢホスト５ａ〜ｃが接続されている。モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等のＩＰ電話端末からのＩＰ電話システムを利用しての呼出要求は、外部ネットワーク１１、およびプロキシサーバ３を介して呼制御サーバ２によって受信され、処理される。
【００２８】
なお、図１においては３台のＤＢホストを示しているが、台数は３台に限らず複数台接続されていてもよい。また、呼制御サーバ２およびプロキシサーバ３についても同様に複数台接続されていてもよい。本実施の形態に係るＩＰ電話システムにおいては、複数のプロキシサーバがそれぞれ、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等からの要求を複数の呼制御サーバ２のいずれかへと送信する。
【００２９】
以下本ＩＰ電話システムの各要素について詳述する。
【００３０】
プロキシサーバ３は外部通信ネットワークからの内部ネットワークへの侵入を防ぐために、内部ネットワーク１０と外部ネットワーク１１とのやり取りを一元管理するサーバである。モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等からのＩＰ通話サービスの利用要求は全てこのプロキシサーバ３を介して呼制御サーバ２へと送信される。
【００３１】
呼制御サーバ２は、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２等から指定された呼出先アドレスを呼び出し、呼出元と、呼出先の通話を確立するサーバである。図２に示すように、呼制御サーバ２は、制御部２１０、記憶部２１１、通信部２１３などを備える。
【００３２】
制御部２１０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）（図示せず）、ＲＡＭ（Random Access Memory）（図示せず）等から構成されており、呼制御サーバ２全体の制御を行う。具体的には、ＣＰＵがＲＯＭや後述の記憶部２１１に記憶されているプログラムを実行することによって制御・演算処理を行う。この制御・演算処理の際、制御部２１０はＲＡＭに各種データを一時的に記憶し、作業領域として使用する。
【００３３】
記憶部２１１はハードディスクなどから構成され、制御部２１０が呼出元の加入者の認証処理や、通話を確立するためのプログラムなどが記憶される。
【００３４】
通信部２１３は、通信インタフェース等を備え、内部ネットワーク１０を介して、後述の検索サーバ１や、ＤＢホスト５ａ〜ｃと通信するためのものである。通信部２１３は、モデム装置や赤外線通信装置等を含んでいてもよい。
【００３５】
次に、ＤＢホスト５は、本ＩＰ電話システムの提供する電話サービスの加入者に関する情報を保有するホストコンピュータである。図４に示すようにＤＢホスト５ａ〜５ｃは、それぞれ加入者ＤＢ５００ａ〜５００ｃを備えており、分散して加入者に関する情報を記憶している。
【００３６】
具体的には、各加入者ＤＢ５００ａ〜ｃの各レコードには、加入者ＩＤに対応付けて、端末情報、加入契約情報、などの加入者情報が記憶される。加入者ＩＤは、ＩＰ電話サービスの加入者を特定するための識別情報である。端末情報は、該加入者が利用している端末を特定する識別情報である。加入契約情報は、該加入者が契約している料金プランや、割引プランなどである。
【００３７】
検索サーバ１は、呼制御サーバ２からのホスト検索要求に応じて、呼制御サーバ２が所望する加入者情報を有するホストをＤＢホスト５a〜ｃの内から特定し、そのホストＩＤ（識別情報）を返信するホスト検索処理を行うサーバである。
【００３８】
ＤＢホスト５ａ〜ｃのそれぞれは、加入者に関する情報を分散して記憶している。よって、呼制御サーバ２は、効率よく所望の加入者情報を取得するために、どのＤＢホスト５ａ〜ｃに所望の情報が記憶されているかを知っている必要がある。この情報を提供するのが検索サーバ１である。
【００３９】
呼制御サーバ２が加入者ＩＤを指定してホスト検索要求を検索サーバ１に送信すると、該加入者ＩＤによって特定される加入者に関する情報を保有するＤＢホスト５のホストＩＤを返信する。呼制御サーバ２は、返信されたホストＩＤによって識別されるＤＢホスト５に加入者情報を問い合わせれることで、効率よく、加入者情報を取得することができる。
【００４０】
呼出処理の際に、呼制御サーバ２は必ず検索サーバ１にＤＢホスト５に関する問い合わせ（ホスト検索要求）を行う。よって、この問い合わせが呼出処理のボトルネックとならないように、検索サーバ１は、図３に示すように複数のＰＵ（Processing Unit）１００a〜ｃがバス１５に接続された所謂マルチプロセッサシステムの構成を有している。そして、これら各ＰＵが並行・協調して問い合わせを処理する。なお、図３においては、検索サーバ１は３台のプロセッサ（ＰＵ）を保有するが、台数はこれに限らず１つ以上であればよい。複数のＰＵ１００a〜ｃそれぞれが並行して呼制御サーバ２からのホスト検索要求を処理するため、ホスト検索処理の高速化が可能となる。具体的なホスト検索処理のフローについては、検索サーバ１の動作説明の部分にて詳述する。
【００４１】
次に検索サーバ１が備えるＰＵ１００a〜ｃの構成について説明する。ＰＵ１００a〜ｃのそれぞれは、制御部１１０、記憶部１１１、ＲＡＭ１１２、通信部１１３を備える。
【００４２】
各制御部１１０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）（図示せず）、ＲＡＭ（Random Access Memory）１１２等から構成されており、各ＰＵ１００の制御を行ったり、バス１５を介して情報を交換しながら他のＰＵ１００の制御部１１０と協調して検索サーバ１全体の制御を行う。具体的には、ＣＰＵがＲＯＭや後述の記憶部１１１に記憶されているプログラムを実行することによって制御・演算処理を行う。この制御・演算処理の際、制御部１１０はＲＡＭ１１２に各種データを一時的に記憶し、作業領域として使用する。
【００４３】
ＲＡＭ１１２は、インメモリＤＢとして変換ＤＢ１１２１およびホスト情報ＤＢ１１２２も格納する。
【００４４】
ホスト情報ＤＢ１１２２は、図５（Ｂ）に示すように、ハッシュ値、加入者ＩＤ、そしてホストＩＤを対応付けて記憶する。ハッシュ値は、本ＩＰ電話システムが提供するサービスを利用する加入者を識別する加入者ＩＤにハッシュ関数を適用した結果である。加入者ＩＤは、該加入者を識別する識別情報である。ホストＩＤは、該加入者ＩＤによって特定される加入者に関する加入者情報を記憶するＤＢホスト５の識別情報である。
【００４５】
なお、ハッシュ関数とは、数値をある一定範囲に制限する関数であり、ハッシュ関数を適用することで、いずれの加入者ＩＤも同じハッシュ値を有するいくつかの組に分割される。各ＰＵ１００のホスト情報ＤＢ１１２２には、ハッシュ値に応じて、分散してデータが記憶されている。ハッシュ関数は、通常剰余演算を用いるが、これに限るものではなく、数値を一定範囲に制限する関数であればよい。
【００４６】
一方、変換ＤＢ１１２１は、図５（Ａ）に示すように、各レコードに、ハッシュ値をキーとして、ＰＵＩＤ（Processor Unit ID；ＰＵ識別情報)を対応付けて記憶する。ハッシュ値は、全ＰＵ１００のホスト情報ＤＢ１１２２に記憶される、加入者ＩＤから算出されたハッシュ値である。ＰＵＩＤは、該ハッシュ値の算出元である該加入者ＩＤによって特定される加入者情報を保有するＤＢホスト５を特定するホストＩＤを記憶するＰＵの識別情報である。即ち、ハッシュ値に応じて、各ＰＵ１００のホスト情報ＤＢ１１２２に記憶されるデータが決定され、どのハッシュ値にどのＰＵ１００が対応付けられているのかを記憶するのが、変換ＤＢ１１２１である。
【００４７】
変換ＤＢ１１２１は、加入者ＩＤから算出される全てのハッシュ値をキー情報として記憶している。そして、ＰＵ１００ａ〜ｃは、同じ内容の変換ＤＢ１１２１をそれぞれのＲＡＭ１１２に記憶する。加入者ＩＤから得たハッシュ値をキー情報としているため、このように同じ内容の変換ＤＢ１１２１を全ＰＵ１００ａ〜ｃの保有するＲＡＭ１１２に格納することが可能なる。
【００４８】
ＰＵ１００ａ〜ｃの記憶部１１１はハードディスクなどから構成され、制御部１１０が検索処理を行うためのプログラムなどが記憶される。また、ＲＡＭ１１２内に格納されるインメモリＤＢである変換ＤＢ１１２１やホスト情報ＤＢ１１２２は、電源がオフになると内容が消えてしまうため、記憶部１１１はこれらＤＢのバックアップも記憶する。
【００４９】
ＰＵ１００ａ〜ｃの通信部１１３は、通信インタフェース等を備え、内部ネットワーク１０を介して、呼制御サーバ２と通信するためのものである。通信部１１３は、モデム装置や赤外線通信装置等を含んでいてもよい。
【００５０】
（呼出処理）
次に、上述した各種ＤＢに記憶されている情報に基づいて、呼制御サーバ２が行う呼出処理のフローを図６を参照して説明する。
【００５１】
モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２は、プロキシサーバ３を介して、呼制御サーバ２に、呼出先ＩＤ（本システムの提供するサービスの加入者でなくてもよい）を指定して、呼出要求を送信する。呼出要求送信の際には、端末側に記憶される、呼出元の加入者ＩＤ、認証用のパスワード、端末を特定する情報なども同時に送信される。呼制御サーバ２は、呼出要求を受信すると（ステップＳ１０１）、検索サーバ１に呼出元の加入者ＩＤを送信し、該加入者ＩＤによって特定される加入者の情報を有するＤＢホスト５のホストＩＤについて問い合わせをする（ステップＳ１０２）。
【００５２】
なお、呼制御サーバ２はＳＩＰ( Session Initiation Protocol ) と呼ばれるプロトコルに基づいて呼出処理を行い、呼出元、および呼出先ＩＤとしては、ＳＩＰプロトコルで用いられるＳＩＰアドレスを利用する。ＳＩＰアドレスは、メールアドレス形式に似ており、”ユーザＩＤ＠ＳＩＰドメイン名”の形式を有している。加入者ＩＤには、このＳＩＰアドレスを利用する。なお、ＩＰ電話の呼出処理としては、ＳＩＰプロトコル以外を利用してもよく、この場合、呼出元、呼出先ＩＤも、ＳＩＰアドレスではなく電話番号などを利用してもよい。
【００５３】
次に、検索サーバ１が呼制御サーバ２からのホスト検索要求を処理するフローについて説明する。
【００５４】
検索サーバ１の、各ＰＵ１００ａ〜ｃは各自の記憶部１１１に、負荷を分散するためのプログラムを記憶しており、呼制御サーバ２からの問い合わせ（検索要求）を各ＰＵ１００が順次受け付け、処理するよう制御する。なお、１つのＰＵ１００が検索処理を終了する前に次の検索要求が送信された場合、他のＰＵ１００が並行してホスト検索処理を行う。処理の分散方法は予め設定されており、ラウンドロビン方式や、またそれ以外の方式、例えば、その時点で一番負荷の軽いＰＵ１００が処理を行うような方式を選択可能とする。
【００５５】
負荷分散プログラムによって決定された、今回処理を担当するＰＵ１００の制御部１１０は、まず、呼出元ＩＤ（加入者ＩＤ）および呼出先ＩＤを呼制御サーバ２から受信する（ステップＳ２０１）。次に今回処理を担当する制御部１１０は、受信した加入者ＩＤのハッシュ値を算出し（ステップＳ２０２）、ハッシュ値に対応するＰＵＩＤを変換ＤＢ１１２１を検索して取得する（ステップＳ２０３）。ＰＵＩＤが自ＰＵのＩＤであれば（ステップＳ２０４；Ｙｅｓ）、制御部１１０は、自ＲＡＭ１１２のホスト情報ＤＢ１１２２を参照し、算出したハッシュ値と加入者ＩＤとに対応づけられたホストＩＤ情報を取得する（ステップＳ２０５）。一方、ステップＳ２０３で取得したＰＵＩＤが他ＰＵのＩＤである場合（ステップＳ２０４；Ｎｏ）、該ＩＤを有するＰＵに、該ハッシュ値と加入者ＩＤとに対応づけられたホストＩＤ情報を送信するよう依頼する（ステップＳ２１１）。依頼を受けたＰＵは自制御部１１０内のホスト情報ＤＢ１１２２を参照し、該当するホストＩＤ情報を依頼元へと送信する。ホストＩＤ情報を受信すると（ステップＳ２１２）、制御部１１０は結果を呼制御サーバ２へと返信する（ステップＳ２０６）。
【００５６】
上述のステップＳ１０１〜Ｓ１０２、Ｓ２０２〜Ｓ２１２に示す処理を、具体例を用いて説明する。ａをＰＵＩＤとして有するＰＵ１００ａが、呼制御サーバ２から、加入者ＩＤ”aaa@zzz”についての情報を保有するＤＢホスト５のホストＩＤに関する検索処理要求を受信したとする。このとき、加入者ＩＤのハッシュ値は、図７（Ａ）に示すとおりであり、各ＰＵ１００の保有する変換ＤＢ１１２１およびホスト情報ＤＢ１１２２の内容は図７（Ｂ）に示すとおりであるとする。ＰＵ１００ａはまず加入者ＩＤ”aaa@zzz”のハッシュ値を算出する。図７（Ａ）に示すように、”aaa@zzz”から算出されるハッシュ値は０１０なので、ＰＵ１００ａは変換ＤＢ１１２１を参照して、ハッシュ値０１０に対応するＰＵＩＤを検索する。ハッシュ値０１０に対応付けられるＰＵＩＤはｃである。よって、ＰＵ１００ａは自分がハッシュ値０１０に関するホスト情報を有していないと判断し、ｃをＰＵＩＤとするＰＵ１００ｃへとハッシュ値と加入者ＩＤを送信し、ホスト情報を返信するように依頼する。依頼を受けたＰＵ１００ｃはホスト情報ＤＢ１１２２を参照し、受信したハッシュ値０１０と加入者ＩＤ”aaa@zzz”とに対応付けて記憶されているホストＩＤである、”２”を呼制御サーバ２へと送信する。
【００５７】
検索サーバ１からホストＩＤ情報を受信すると、呼制御サーバ２は、受信したホストＩＤによって識別されるＤＢホスト５に加入者ＩＤを送信し、該加入者ＩＤに対応する加入者情報を送信するよう、問い合わせを行う（ステップＳ１０４）。問い合わせを受けたＤＢホスト５は、加入者情報ＤＢ５００を参照して加入者ＩＤに対応付けられた全ての加入者情報を呼制御サーバ２へと返信する。
【００５８】
例えば、前述の加入者ＩＤ”aaa@zzz”の場合、呼制御サーバ２は、ホストＩＤ”２”で識別されるＤＢホスト５ｂ（図４参照）に問い合わせを行い、ＤＢホスト５ｂは加入者ＤＢ５００ｂを参照して、aaa@zzzに関する加入者情報を呼制御サーバ２へと返信する。
【００５９】
呼制御サーバ２は、受信した加入者情報のうち、パスワードや端末情報を、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２からプロキシサーバ３を介して送信された情報と照らし合わせることで、呼出元の認証を行う（ステップＳ１０５）。パスワードや端末情報が照合すれば（ステップＳ１０６；Ｙｅｓ）、モバイルＰＣ２０、携帯端末２１、固定ＩＰ電話２２から送信された呼出先ＩＤにＳＩＰプロトコルに基づいて呼出要求を送り、通話を確立する（ステップＳ１０７）。認証に失敗すると、呼出処理は終了する（ステップＳ１０６；Ｎｏ）。なお、課金は、ＤＢホスト５から受信した加入契約情報などに基づいて行われる。
【００６０】
以上説明したように、ＤＢホスト５ａ〜ｃには分散して加入者情報が保有される。検索サーバ１は、どのＤＢホスト５に所望の加入者データが記憶されているかについての問い合わせ（ホスト検索要求）を処理する。検索サーバ１は複数のプロセッサを備える構成を有しており、これらが並行して処理を行うため、問い合わせを高速に処理することが可能となる。さらに、変換情報ＤＢ１１２１やホスト情報ＤＢ１１２２をインメモリＤＢとすることで、問い合わせ処理を高速化することが可能となる。ＲＡＭ１１２の容量は限られているため、ホスト情報ＤＢ１１２２は各ＰＵ１００に分散して記憶させ、変換情報ＤＢ１１２１を全ＰＵ１００に記憶させるようにしている。このようにして、呼制御サーバ２は、検索サーバ１へ問い合わせた結果に基づいて、ＤＢホスト５から加入者情報を効率よく取得することができる。
【００６１】
（データの再配置処理）
次に、上述のような構成を有する検索サーバ１において、プロセッサを増設した時などにデータを効率よく移行（再配置）する方法について説明する。本実施の形態に係る方法を利用することによって、データの移行は、検索サーバ１の提供するサービスを停止することなく行えるというメリットが得られる。
【００６２】
本実施の形態では、検索サーバ１に新たにＩＤ、ｘを有するＰＵ１００ｘを追加した場合を例に説明を行う。このとき、最終的にＰＵ１００ｘの保有するホスト情報ＤＢ１１２２が、図９（Ｂ）の下段に示す内容のホスト情報ＤＢ１１２２を記憶するようにデータの移行を行うとする。
【００６３】
本実施の形態においては、最終的にホスト情報ＤＢ１１２２が保有すべき情報に対応する新変換ＤＢ１１２１’（図９（Ａ）の下段を参照）を旧変換ＤＢ１１２１とともに、ＲＡＭ１１２に記憶させる。そして、データ移行中においてＰＵ１００は、新・旧両方の変換ＤＢ１１２１’、１１２１を参照する。
【００６４】
具体的なデータ移行のフローを図８を参照して次に説明する。
【００６５】
先述したように、本実施の形態では、ＰＵ１００ｘが新たに検索サーバ１に増設されているとする。また、ＰＵ１００ｘへのＯＳ（Operating System)のインストールやＤＢテーブルの作成などは完了しているとする。
【００６６】
この状態で、管理者は、内部ネットワーク１０に接続されている端末（図示せず）から、検索サーバ１に接続する。そして、新変換ＤＢ１１２１’に挿入するデータを有するファイルを指定して、検索サーバ１上でデータ移行コマンドを実行する。なお、ＰＵ１００ａ〜ｃ、ｘの内１つは、他のＰＵ１００を制御するマスタＰＵとして機能する。このマスタＰＵの記憶部１１１に記憶されるデータ移行処理プログラムを起動する移行コマンドを管理者が実行することによって、データ移行処理が開始される。新変換ＤＢ１１２１’に挿入する情報を有するファイルは予めマスタＰＵの記憶部１１１に管理者によって記憶されているとする。
【００６７】
なお、マスタＰＵは、他のＰＵを制御する側であると同時に、制御される側として機能してもよい。
【００６８】
データ移行処理プログラムが実行されると、検索サーバ１は図８に示す処理を行う。まずマスタＰＵの制御部１１０は、指定されたファイルの内容を他の全てのＰＵ１００の新変換ＤＢ１１２１’へと挿入する（ステップＳ３０１）。データの挿入を終了すると、マスタＰＵは、各ＰＵ１００に対し、各ＰＵが保持すべきデータを新変換ＤＢ１１２１’に基づいて他のＰＵ１００から取得するようデータ移行処理を指示する信号を送信する（ステップＳ３０２）。
【００６９】
データ移行処理信号を受信すると（ステップＳ４０１）、各ＰＵ１００はデータ移行処理を開始する。まず、各ＰＵ１００は、新変換ＤＢ１１２１’を参照して、自ＰＵがホスト情報ＤＢ１１２２に保持すべきデータを特定する（ステップＳ４０２）。次に、旧変換ＤＢ１１２１を参照して、特定したデータを現在保有するＰＵ１００を特定する（ステップＳ４０３）。そして、該ＰＵ１００から、自ＰＵが保持すべきデータを移行する（ステップＳ４０４）。
【００７０】
例えば、各ＰＵ１００の保有する新変換ＤＢ１１２１’および、旧変換ＤＢ１１２１がそれぞれ、図９（Ａ）下段、および、図９（Ａ）上段に示すデータを有しており、ホスト情報ＤＢ１１２２が図９（Ｂ）上段に示すデータを有していたとする。このとき、ｘをＰＵＩＤとして有するＰＵ１００ｘは、自ＲＡＭ１１２に保有する新変換ＤＢ１１２１’を参照することで、ハッシュ値０１１、および、１１０、に対応付けて記憶されるホスト情報を自分が保持していなくてはならないことを把握する（楕円に囲まれた部分を参照）。よって次に、ＰＵ１００ｘの制御部１１０は、自ＲＡＭ１１２に保有する旧変換テーブル１１２１を参照することにより、実際にハッシュ値０１１、および１１０に対応するホスト情報をどのＰＵ１００が保持しているのかを特定する。この結果、ハッシュ値０１１に対応するホスト情報はａをＰＵＩＤとして有するＰＵ１００ａが、そして、ハッシュ値１１０に対応するホスト情報はｂをＰＵＩＤとして有するＰＵ１００ｂが保持していることが特定される（破線の楕円に囲まれた部分を参照）。よって、ＰＵ１００ｘはＰＵ１００ａおよびＰＵ１００ｂのホスト情報ＤＢ１１２２のそれぞれから、ハッシュ値０１１、および１１０に対応付けられたホスト情報を取得する。ホスト情報を取得すると、ＰＵ１００ｘは自分のホスト情報ＤＢ１１２２上に該情報を記憶する。最終的に、各ＰＵ１００のホスト情報ＤＢ１１２２には、図９（Ｂ）の下段に示されるようにデータが記憶される。
【００７１】
データ移行処理中に、検索サーバ１が呼制御サーバ２からホスト検索要求を受信したとしても、ホスト検索要求を処理することは可能である。呼制御サーバ２から問い合わせを受け付けたＰＵ１００は、まず旧変換ＤＢ１１２１を参照する。そしてホスト検索要求とともに受信した加入者ＩＤのハッシュ値に対応付けられたＰＵＩＤを有するＰＵ１００に、ホスト情報の返信依頼を送信する。依頼を受信したＰＵ１００は、自分の有するホスト情報ＤＢ１１２２ｂに該加入者ＩＤのハッシュ値に対応づけられたホスト情報を記憶していれば、該ホスト情報を依頼元へと返信する。一方、依頼を受信したＰＵ１００が所望のホスト情報を有していなかった場合、すでにデータが移行されてしまっていることを意味する。よって、呼制御サーバ２から問い合わせを受け付けたＰＵ１００は、新変換ＤＢ１１２１’を参照して、加入者ＩＤのハッシュ値に対応付けられたＰＵＩＤを有するＰＵ１００に、ホスト情報の返信依頼を送信する。新変換ＤＢ１１２１’に記憶されるハッシュ値に対応付けられたＰＵＩＤを有するＰＵ１００は所望のホスト情報を有しているはずであるので、呼制御サーバ２から問い合わせを受け付けたＰＵ１００は、ホスト情報取得することが可能となる。このように、新・旧２つの変換ＤＢ１１２１および１１２１’を各ＰＵが保有するため、すでにデータが移行されてしまった後であっても、新変換ＤＢ１１２１’を参照することで、所望のデータを取得することが可能となる。
【００７２】
各ＰＵ１００は、各自のデータの移行を完了すると、完了した旨を伝える信号をマスタＰＵに送信する（ステップＳ４０５）。マスタＰＵは全てのＰＵ１００からデータ移行の完了を知らせる信号を受信すると（ステップＳ３０３；Ｙｅｓ）、テストプログラムを実施し、全てのデータが正しく移行されていることを検証する（ステップＳ３０４）。検証に成功すると、マスタＰＵの制御部１１０は、旧変換ＤＢ１１２１と新変換ＤＢ１１２１’とを切り替えた上で、旧変換ＤＢ１１２１の記憶内容を削除するよう指示する信号を送信する（ステップＳ３０５）。削除信号を受信した各ＰＵ１００は旧変換ＤＢ１１２１と新変換ＤＢ１１２１’を切り替え、旧変換ＤＢ１１２１を削除することで、移行処理が完了する（ステップＳ４０６）。なお、旧変換ＤＢ１１２１と新変換ＤＢ１１２１’を切り替える方法としては、旧変換ＤＢ１１２１および新変換ＤＢ１１２１’へのポインタを入れ替えても、データの内容自体を入れ替えても、或いはその他の方法を用いてもよい。
【００７３】
以上、複数プロセッサに分散してデータを保有する検索サーバ１において、効率よく、データを移行する方法について述べた。本方法を適用することで、検索サーバ１の提供するサービスを停止することなくプロセッサ間でデータを移行することも可能であり、検索サーバ１を利用している、例えば本実施の形態に係る呼制御サーバ２や電話システム全体への影響も最小限に抑えることが可能となる。
【００７４】
なお、本実施の形態においては、増設したプロセッサへのデータの移行について説明したが、同様の手順を踏むことで、プロセッサ増設時に限らず各プロセッサの保有するデータの再配置が可能となる。
【００７５】
以上、本発明の実施の形態を説明したが、本発明を実施するにあたっては、種々の形態による変形及び応用が可能であり、上記実施の形態に限られるものではない。
【００７６】
例えば、本ホストＤＢ５および検索サーバ１を用いて、ＩＰ電話以外の用途のデータベースシステムを構築してもよい。すなわち、ホストＤＢ５には、任意のデータを保有してもよい。そして、その任意のデータが複数のホストＤＢ５のいずれに記憶されているかに関する配置情報を、検索サーバ１が保有するようにしてもよい。
【００７７】
また、検索サーバ１は、配置情報を記憶するのではなく、単独にデータベースサーバとして利用してもよい。
【００７８】
また、上記実施の形態では、検索サーバ１の制御プログラムが記憶部等に予め記憶されているものとして説明した。しかし、検索サーバ１に、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disk Read-Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＭＯ（Magneto-Optical disk）、ＵＳＢメモリ等の記憶媒体を読み取る装置のいずれか適したものを備え、これら記憶媒体に制御プログラムを格納して配布してもよい。そして、そのプログラムをインストールすることにより、上述の処理動作を実行をする装置を構成してもよい。
【００７９】
また、制御プログラムを、内部ネットワーク１０、または外部ネットワーク１１上の所定のサーバ装置が有するディスク装置等に格納しておき、検索サーバ１にダウンロード等するようにしてもよい。さらに、内部ネットワーク１０、または外部ネットワーク１１を介してプログラムを転送しながら起動実行することによっても、上述の処理を達成することができる。
【００８０】
なお、上記実施の形態に係る検索サーバ１の処理を、各制御部がプログラムを実行することによって制御する構成にするのではなく、専用のハードウェアによっても実現することができる。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態に係る電話システムの構成例を示すブロック図である。
【図２】呼制御サーバの構成例を示すブロック図である。
【図３】検索サーバの構成例を示すブロック図である。
【図４】加入者情報ＤＢのデータ構成例を示す図である。
【図５】（Ａ）は変換ＤＢのデータ構成例、（Ｂ）はホスト情報ＤＢのデータ構成例を示す図である。
【図６】検索サーバの処理を示すフロー図である。
【図７】各ＰＵが変換ＤＢと、ホスト情報ＤＢを備える様子を示す図である。
【図８】検索サーバにおいて増設されたＰＵにデータを移行する処理を示すフロー図である。
【図９】（Ａ）は検索サーバにおいて増設されたＰＵにデータを移行する際、新・旧２つの変換テーブルを各ＰＵが保有する様子を示す図であり、（Ｂ）は各ＰＵのホスト情報ＤＢの移行前と移行後のデータ配置を示す図である。
【符号の説明】
【００８２】
１  検索サーバ
１５  バス
１００  ＰＵ
１１０  制御部
１１１  記憶部
１１２  ＲＡＭ
１１２１  変換サーバ
１１２２  ホスト情報ＤＢ
１１３  通信部
２  呼制御サーバ
２１０  制御部
２１１  記憶部
２１３  通信部
３  プロキシサーバ
５  ＤＢホスト
５００  加入者情報ＤＢ
１０  内部ネットワーク
１１  外部ネットワーク
２１  モバイルＰＣ
２１  携帯端末
２２  固定ＩＰ電話
【図１】
2008233968.tif 000003
【図２】
2008233968.tif 000004
【図３】
2008233968.tif 000005
【図４】
2008233968.tif 000006
【図５】
2008233968.tif 000007
【図６】
2008233968.tif 000008
【図７】
2008233968.tif 000009
【図８】
2008233968.tif 000010
【図９】
2008233968.tif 000011