(57)【要約】【課題】リソースの利用効率を向上できるデータ管理方法等を提供する。【解決手段】データ管理システムは、データを蓄積する複数の第１のノードと、各第１のノードを管理する第２のノードとを有する。第１のノードは、全エリアのＩＤの範囲と第１のＩＤの導出可能範囲とを第２のノードから受信する。第１のノードは、更新リクエストを検出した場合に、全エリアのＩＤの範囲と導出可能範囲とに基づいて、更新リクエストのデータから第１のＩＤを算出する。第１のノードは、ノード情報を参照して、算出された第１のＩＤに対応する、更新リクエストのデータを記憶する第１のノードを決定する。第１のノードは、決定された第１のノードが他のエリアに所属する第１のノードである場合には、決定された第１のノードに更新リクエストを転送する。【選択図】図１
2014238678.tif 000002
【特許請求の範囲】
【請求項１】
データを蓄積する複数の第１のノードと、各第１のノードを管理する第２のノードとを有するデータ管理システムが実行するデータ管理方法であって、
前記第１のノードが、
全エリアのＩＤの範囲と、前記データを更新する更新リクエストのデータから算出する第１のＩＤの導出可能範囲とを、前記第２のノードから受信し、
前記更新リクエストを検出した場合に、前記全エリアのＩＤの範囲と前記導出可能範囲とに基づいて、前記更新リクエストのデータから前記第１のＩＤを算出し、
第１のＩＤと第１のノードとを対応付けるノード情報を参照して、前記算出された第１のＩＤに対応する、前記更新リクエストのデータを記憶する第１のノードを決定し、
前記決定された第１のノードが他の前記エリアに所属する第１のノードである場合には、前記決定された第１のノードに前記更新リクエストを転送する
処理を実行することを特徴とするデータ管理方法。
【請求項２】
前記第２のノードが、前記全エリアの各第１のノードから負荷量を収集し、当該収集された負荷量が所定負荷量を超えた第１のノードを検出した場合に、当該所定負荷量を超えた第１のノードを含むエリアに対応した第２のＩＤの範囲に、当該エリアに隣接するエリアの前記第２のＩＤの範囲を追加することで前記導出可能範囲を生成して前記第１のノードに送信し、
前記決定する処理は、前記第１のＩＤに対応する第２のＩＤと前記全エリアの各第１のノードとを対応付ける情報を前記ノード情報として参照して、前記算出された第１のＩＤに対応する、前記更新リクエストのデータを記憶する第１のノードを決定し、
前記受信処理は、前記導出可能範囲を受信することを特徴とする請求項１に記載のデータ管理方法。
【請求項３】
前記第２のノードが、エリアごとに、当該エリアごとに割り当てられる、前記第１のＩＤに対応する第２のＩＤの範囲と、該第２のＩＤの範囲に割り当てられる第１のノードとを対応付けて前記ノード情報を生成して、予め前記第１のノードに送信することを特徴とする請求項２に記載のデータ管理方法。
【請求項４】
前記第１のノードが、さらに、
前記データを参照する参照リクエストを検出した場合に、前記参照リクエストのデータの一部を示す文字列と前記ノード情報とに基づいて前記第２のＩＤを算出し、
前記ノード情報を参照して、前記算出された第２のＩＤに対応する、前記参照リクエストのデータを参照する第１のノードを決定し、
前記決定された第１のノードが他の前記エリアに所属する第１のノードである場合には、前記決定された第１のノードに前記参照リクエストを転送する
処理を有することを特徴とする請求項２又は３に記載のデータ管理方法。
【請求項５】
前記第１のノードを決定する処理は、
前記更新又は参照リクエストのデータの一部を示す文字列に基づいて、ハッシュ関数により前記更新又は参照リクエストのデータの一次ＩＤを算出し、
前記一次ＩＤと、前記ノード情報の第２のＩＤの範囲とに基づいて、前記更新又は参照リクエストのデータの第２のＩＤを算出し、
自ノードの前記データを記憶するデータ記憶部から、前記更新又は参照リクエストのデータの第２のＩＤ及び前記文字列に対応するデータを検索し、
当該データが前記データ記憶部に記憶されている場合は、前記更新又は参照リクエストのデータを記憶又は参照する第１のノードを自ノードに決定し、
前記記憶又は参照処理は、
前記データ記憶部の前記データを更新又は参照することを特徴とする請求項４に記載のデータ管理方法。
【請求項６】
前記第１のノードを決定する処理は、
前記データが前記データ記憶部に記憶されていない場合に、転送先の第１のノードを記憶する位置記憶部から、前記更新又は参照リクエストのデータの第２のＩＤ及び前記文字列に対応する第１のノードを検索し、
当該第１のノードが前記位置記憶部に記憶されている場合は、前記更新又は参照リクエストのデータを記憶又は参照する第１のノードを、他の前記エリアに所属する第１のノードに決定し、
前記転送処理は、
前記更新又は参照リクエストを決定された第１のノードに転送することを特徴とする請求項５に記載のデータ管理方法。
【請求項７】
前記第１のノードを決定する処理は、
前記第１のノードが前記位置記憶部に記憶されていない場合に、前記一次ＩＤと前記導出可能範囲とに基づいて、前記更新リクエストのデータの第１のＩＤを算出し、
前記ノード情報を参照して、当該算出された前記更新リクエストのデータの第１のＩＤに対応する第２のＩＤが割り当てられた第１のノードを、前記更新リクエストのデータを記憶する第１のノードに決定し、
決定された第１のノードを前記位置記憶部に記憶し、
前記転送処理は、
前記決定された第１のノードに対して、前記更新リクエストを転送することを特徴とする請求項６に記載のデータ管理方法。
【請求項８】
データを蓄積する複数の第１のノードと、各第１のノードを管理する第２のノードとを有するデータ管理システムの前記第１のノードであるコンピュータに実行させるデータ管理プログラムであって、
前記コンピュータに、
全エリアのＩＤの範囲と、前記データを更新する更新リクエストのデータから算出する第１のＩＤの導出可能範囲とを、前記第２のノードから受信し、
前記更新リクエストを検出した場合に、前記全エリアのＩＤの範囲と前記導出可能範囲とに基づいて、前記更新リクエストのデータから前記第１のＩＤを算出し、
第１のＩＤと第１のノードとを対応付けるノード情報を参照して、前記算出された第１のＩＤに対応する、前記更新リクエストのデータを記憶する第１のノードを決定し、
前記決定された第１のノードが他の前記エリアに所属する第１のノードである場合には、前記決定された第１のノードに前記更新リクエストを転送する
処理を実行させることを特徴とするデータ管理プログラム。
【請求項９】
データを蓄積する複数の第１のノードと、各第１のノードを管理する第２のノードとを有するデータ管理システムであって、
前記第２のノードは、
全エリアのＩＤの範囲を記憶する記憶部と、
前記データを更新する更新リクエストのデータから算出する第１のＩＤの導出可能範囲を生成する生成部と、
前記全エリアのＩＤの範囲と前記導出可能範囲とを前記第１のノードに送信する送信部と、を有し、
前記第１のノードは、
前記全エリアのＩＤの範囲と前記導出可能範囲とを受信する受信部と、
前記更新リクエストを検出する検出部と、
前記更新リクエストを検出した場合に、前記全エリアのＩＤの範囲と前記導出可能範囲とに基づいて、前記更新リクエストのデータから前記第１のＩＤを算出する算出部と、
第１のＩＤと第１のノードとを対応付けるノード情報を参照して、前記算出された第１のＩＤに対応する、前記更新リクエストのデータを記憶する第１のノードを決定する決定部と、
前記決定された第１のノードが他の前記エリアに所属する第１のノードである場合には、前記決定された第１のノードに前記更新リクエストを転送する転送部と
を有することを特徴とするデータ管理システム。
【請求項１０】
全エリアのＩＤの範囲と、蓄積したデータを更新する更新リクエストのデータから算出する第１のＩＤの導出可能範囲とを受信する受信部と、
前記更新リクエストを検出する検出部と、
前記更新リクエストを検出した場合に、前記全エリアのＩＤの範囲と前記導出可能範囲とに基づいて、前記更新リクエストのデータから前記第１のＩＤを算出する算出部と、
第１のＩＤとノードとを対応付けるノード情報を参照して、前記算出された第１のＩＤに対応する、前記更新リクエストのデータを記憶するノードを決定する決定部と、
前記決定されたノードが他の前記エリアに所属するノードである場合には、前記決定されたノードに前記更新リクエストを転送する転送部と
を有することを特徴とするデータ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置に関する。
【背景技術】
【０００２】
大量のデータを収集するデータ収集システムは、１箇所のデータセンタでデータを収集すると、データセンタ側のネットワークがボトルネックとなる。また、データを蓄積するデータベースが単一ノードで構成される場合、データベースの容量または処理性能にスケーラビリティがないという問題がある。このため、本発明のデータ収集システムでは、データを収集して蓄積するデータベースを分散化した分散データベース（以下、分散ＤＢという）を採用したうえで、エリアごとに分散ＤＢノード群を構成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２１６４７４号公報
【特許文献２】特開２００９−２３０６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、分散ＤＢは、あるエリアの分散ＤＢノード群に負荷が集中したとしても、他のエリアの分散ＤＢノード群にその負荷を分散することができず、分散ＤＢ全体のリソースの利用効率が悪くなる。なお、分散ＤＢは、システム全体として１つの分散ＤＢノード群を有し、１つの管理サーバを設けることもできるが、管理サーバのネットワーク帯域の使用量が増大する。
【０００５】
一つの側面では、リソースの利用効率を向上できるデータ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置を提供することにある。
【課題を解決するための手段】
【０００６】
１つの実施態様では、データ管理システムは、データを蓄積する複数の第１のノードと、各第１のノードを管理する第２のノードとを有する。第１のノードは、全エリアのＩＤの範囲と、前記データを更新する更新リクエストのデータから算出する第１のＩＤの導出可能範囲とを、前記第２のノードから受信する。第１のノードは、前記更新リクエストを検出した場合に、前記全エリアのＩＤの範囲と前記導出可能範囲とに基づいて、前記更新リクエストのデータから前記第１のＩＤを算出する。第１のノードは、第１のＩＤと第１のノードとを対応付けるノード情報を参照して、前記算出された第１のＩＤに対応する、前記更新リクエストのデータを記憶する第１のノードを決定する。第１のノードは、前記決定された第１のノードが他の前記エリアに所属する第１のノードである場合には、前記決定された第１のノードに前記更新リクエストを転送する。
【発明の効果】
【０００７】
リソースの利用効率を向上できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施例のデータ管理システムの構成の一例を示す説明図である。
【図２】図２は、実施例の管理ノードの一例を示すブロック図である。
【図３】図３は、静的エリア情報記憶部の一例を示す説明図である。
【図４】図４は、ノード情報記憶部の一例を示す説明図である。
【図５】図５は、ＩＤノード情報記憶部の一例を示す説明図である。
【図６】図６は、動的エリア情報記憶部の一例を示す説明図である。
【図７】図７は、実施例のノードの一例を示すブロック図である。
【図８】図８は、データ記憶部の一例を示す説明図である。
【図９】図９は、位置記憶部の一例を示す説明図である。
【図１０】図１０は、再配置記憶部の一例を示す説明図である。
【図１１】図１１は、実施例の蓄積クライアントの一例を示すブロック図である。
【図１２】図１２は、実施例の解析サーバの一例を示すブロック図である。
【図１３】図１３は、実施例のノードのハードウエア構成の一例を示すブロック図である。
【図１４】図１４は、静的ＩＤとエリア及びノードとの関係の一例を示す説明図である。
【図１５】図１５は、動的ＩＤとエリア及びノードとの関係の一例を示す説明図である。
【図１６】図１６は、実施例の初期設定の動作の一例を示すシーケンス図である。
【図１７】図１７は、実施例の更新リクエスト及び参照リクエストの動作の一例を示すシーケンス図である。
【図１８】図１８は、実施例のノードの更新リクエスト受信時における動作の一例を示すフローチャートである。
【図１９】図１９は、実施例のノードの参照リクエスト受信時における動作の一例を示すフローチャートである。
【図２０】図２０は、データ管理プログラムを実行するデータ管理機器の一例を示す説明図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて、本願の開示するデータ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例１】
【００１０】
図１は、実施例のデータ管理システムの構成の一例を示す説明図である。図１に示すデータ管理システム１０は、データセンタ２０と、分散ＤＢノード群を表すエリア１〜エリア４とを有する。データセンタ２０は、管理ノード１００と、解析サーバ４００とを有する。エリア１〜４は、それぞれノード２００と、蓄積クライアント３００とを有する。管理ノード１００と、エリア１〜４の各蓄積クライアント３００と、解析サーバ４００とは、ネットワークＮを介して、有線により通信可能に接続される。エリア１〜４の各ノード２００は、所属するエリアの蓄積クライアント３００に接続される。なお、例えば、管理ノード１００は、第２のノードであり、例えば、ノード２００は、第１のノードである。
【００１１】
［１．管理ノードの構成］
管理ノード１００の構成の一例について説明する。図２は、実施例の管理ノードの一例を示すブロック図である。管理ノード１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。管理ノード１００は、データを識別するＩＤとエリアを識別する情報とを用いて、リクエストに対応するノードを分散する情報を生成する。尚、管理ノード１００は、管理ノード１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００１２】
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１１０は、ネットワークＮと有線で接続され、ネットワークＮを介して、ノード２００、蓄積クライアント３００や解析サーバ４００との間で情報の通信を司る通信インタフェースである。
【００１３】
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１２０は、静的エリア情報記憶部１２１と、ノード情報記憶部１２２と、ＩＤノード情報記憶部１２３と、動的エリア情報記憶部１２４とを有する。
【００１４】
静的エリア情報記憶部１２１には、各エリアの位置関係をＩＤ空間に割り当てた情報である静的エリア情報が記憶されている。ここで、図３は、静的エリア情報記憶部の一例を示す説明図である。図３に示すように、静的エリア情報記憶部１２１は、エリア１２１Ａ、ＩＤ範囲の始点１２１Ｂ及びＩＤ範囲の終点１２１Ｃ等の項目を対応付けて管理している。
【００１５】
エリア１２１Ａは、地域ごとの分散ＤＢノード群を示す。例えば、図３では、エリア１２１Ａは、エリア１〜エリア４の４つとなる。ＩＤ範囲の始点１２１Ｂは、ＩＤ空間に割り当てられた各エリアの始点の静的ＩＤを示す。ＩＤ範囲の終点１２１Ｃは、ＩＤ空間に割り当てられた各エリアの終点の静的ＩＤを示す。なお、静的ＩＤは、第２のＩＤである。例えば、図３では、ＩＤ空間全体を「１〜１０００（０で表す）」とし、エリア１にＩＤ「１〜２５０」を、エリア２にＩＤ「２５１〜５００」を、エリア３にＩＤ「５０１〜７５０」を、エリア４にＩＤ「７５１〜０」を割り当てている。
【００１６】
ノード情報記憶部１２２には、各ノードと、各ノードのホスト名と、各ノードの所属エリアとを対応付けたノード情報が記憶されている。ここで、図４は、ノード情報記憶部の一例を示す説明図である。図４に示すように、ノード情報記憶部１２２は、ノード１２２Ａ、ホスト名１２２Ｂ及び所属エリア１２２Ｃ等の項目を対応付けて管理している。
【００１７】
ノード１２２Ａは、各ノードを識別するための識別情報を示す。ホスト名１２２Ｂは、各ノードをネットワーク上で特定するための情報を示す。所属エリア１２２Ｃは、各ノードが所属するエリアを示す。図４の所属エリア１２２Ｃのエリア１には、例えば、“Ａ１”、“Ａ２”及び“Ａ３”のノード２００が所属し、エリア２には、例えば、“Ｂ１”、“Ｂ２”及び“Ｂ３”のノード２００が所属している。
【００１８】
ＩＤノード情報記憶部１２３には、ＩＤ空間の静的ＩＤ範囲と各ノードとを対応付けたＩＤノード情報が記憶されている。なお、ＩＤノード情報は、全エリアのＩＤの範囲の情報を有し、静的ＩＤと全エリアの各ノード２００とを対応付ける。ここで、図５は、ＩＤノード情報記憶部の一例を示す説明図である。図５に示すように、ＩＤノード情報記憶部１２３は、ＩＤ範囲の始点１２３Ａ、ＩＤ範囲の終点１２３Ｂ及びノード１２３Ｃ等の項目を対応付けて管理している。
【００１９】
ＩＤ範囲の始点１２３Ａは、ＩＤ空間に割り当てられた各ノードの始点の静的ＩＤを示す。ＩＤ範囲の終点１２３Ｂは、ＩＤ空間に割り当てられた各ノードの終点の静的ＩＤを示す。ノード１２３Ｃは、ＩＤ範囲に対応するノードを示す。例えば、図５では、ＩＤ「１〜８０」が“Ａ１”のノード２００に、ＩＤ「８１〜１６０」が“Ａ２”のノード２００に、ＩＤ「１６１〜２５０」が“Ａ３”のノード２００に対応する。また、ＩＤ「２５１〜３３０」が“Ｂ１”のノード２００に、ＩＤ「３３１〜４１０」が“Ｂ２”のノード２００に、ＩＤ「４１１〜５００」が“Ｂ３”のノード２００に対応する。
【００２０】
動的エリア情報記憶部１２４には、エリアごとにＩＤ空間に動的ＩＤを対応付けて管理する動的エリア情報が記憶されている。なお、動的ＩＤは、第１のＩＤであり、動的エリア情報は、動的ＩＤの導出可能範囲を表す。ここで、図６は、動的エリア情報記憶部の一例を示す説明図である。図６に示すように、動的エリア情報記憶部１２４は、エリア１２４Ａ、ＩＤ範囲の始点１２４Ｂ及びＩＤ範囲の終点１２４Ｃ等の項目を対応付けて管理している。
【００２１】
エリア１２４Ａは、地域ごとの分散ＤＢノード群を示す。例えば、図６では、エリア１２４Ａは、エリア１〜エリア４の４つとなる。ＩＤ範囲の始点１２４Ｂは、ＩＤ空間に割り当てられた各エリアの始点の動的ＩＤを示す。ＩＤ範囲の終点１２４Ｃは、ＩＤ空間に割り当てられた各エリアの終点の動的ＩＤを示す。例えば、図６では、ＩＤ空間全体を「１〜１０００（０で表す）」とし、エリア１にＩＤ「１〜５００」を、エリア２にＩＤ「２５１〜５００」を、エリア３にＩＤ「５０１〜７５０」を、エリア４にＩＤ「７５１〜０」を割り当てている。つまり、ＩＤ「２５１〜５００」は、エリア２だけでなく、エリア１の動的ＩＤとしても使用できる。
【００２２】
図２の説明に戻って、制御部１３０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現されるようにしても良い。
【００２３】
制御部１３０は、図２に示すように、ＩＤノード情報生成部１３１と、収集部１３２と、動的エリア情報生成部１３３とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。尚、制御部１３０の内部構成は、図２に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００２４】
ＩＤノード情報生成部１３１は、静的エリア情報記憶部１２１に記憶された静的エリア情報と、ノード情報記憶部１２２に記憶されたノード情報とに基づいて、ＩＤノード情報を生成する。ＩＤノード情報は、例えば、各ノードについて、ノード名からハッシュ関数を用いて一次ＩＤを算出して、以下の式（１）によりノードＩＤを算出する。次に、全ノードをノードＩＤ順に並べて、対象ノードの範囲を前ノードのノードＩＤより大きく、自ノードのノードＩＤ以下の範囲として、ＩＤノード情報を生成する。
【００２５】
ノードＩＤ＝一次ＩＤ×ノードの所属エリアの静的ＩＤ範囲／全体ＩＤ範囲
＋ノードの所属エリアの始点の静的ＩＤ                    …（１）
【００２６】
例えば、図３の静的エリア情報と、図４のノード情報とから、ノードＩＤを算出する場合を説明する。例えば、“Ａ２”のノード２００の一次ＩＤが「６３６」であった場合のノードＩＤを算出する。“Ａ２”のノード２００は、ノード情報よりエリア１に所属する。“Ａ２”のノード２００の所属するエリア１の静的ＩＤ範囲は、静的エリア情報より「１〜２５０」となる。また、エリア１の始点の静的ＩＤは「１」である。全体ＩＤ範囲は、静的エリア情報より「１０００」である。これらのパラメータを式（１）に代入すると、ノードＩＤ＝６３６×２５０／１０００＋１となり、ノードＩＤは、「１６０」となる。また、“Ａ１”のノード２００のノードＩＤが「８０」であるとすると、“Ａ２”のノード２００に対応する静的ＩＤ範囲は、「８１〜１６０」となる。
【００２７】
ＩＤノード情報生成部１３１は、生成したＩＤノード情報をＩＤノード情報記憶部１２３に記憶する。また、ＩＤノード情報生成部１３１は、静的エリア情報とＩＤノード情報とを通信部１１０を介して、各ノード２００、各蓄積クライアント３００及び解析サーバ４００に送信する。
【００２８】
収集部１３２は、各ノード２００から送信される負荷情報を、通信部１１０を介して受信して収集する。負荷情報は、各ノード２００の負荷量を表す情報であり、例えば、各ノード２００のＣＰＵ使用率やディスク使用量等のリソース使用状況を含むものである。収集部１３２は、収集した負荷情報を動的エリア情報生成部１３３に出力する。
【００２９】
動的エリア情報生成部１３３は、例えば、収集部１３２から負荷情報が入力されると、負荷量が所定負荷量を超えたノード２００があるか否かを判定する。動的エリア情報生成部１３３は、負荷量が所定負荷量を超えたノード２００を検出した場合、当該ノード２００が所属するエリアの動的ＩＤ範囲を生成する。当該エリアの動的ＩＤ範囲は、所定負荷量を超えたノード２００を含むエリアに対応した静的ＩＤ範囲に、当該エリアに隣接するエリアの静的ＩＤ範囲を追加して割り当てることで生成する。例えば、図６では、エリア１に所属するノード２００の負荷量が所定負荷量を超えた場合に、エリア１の静的ＩＤ範囲であるＩＤ「１〜２５０」に、隣接エリア（エリア２）の静的ＩＤ範囲であるＩＤ「２５１〜５００」をエリア１に追加して割り当てる。つまり、エリア１は、動的ＩＤとしてＩＤ「１〜５００」が割り当てられる。動的エリア情報生成部１３３は、エリアごとに動的ＩＤを対応付けて動的エリア情報を生成する。尚、負荷量が所定負荷量を超えたノード２００を検出しない場合には、静的エリア情報と同様のＩＤ範囲を割り当てる。動的エリア情報生成部１３３は、生成した動的エリア情報を動的エリア情報記憶部１２４に記憶するとともに、通信部１１０を介して各ノード２００に送信する。
【００３０】
［２．ノードの構成］
ノード２００の構成の一例について説明する。図７は、実施例のノードの一例を示すブロック図である。ノード２００は、通信部２１０と、記憶部２２０と、制御部２３０とを有する。ノード２００は、当該ノード２００自体が所属するエリアを管轄する蓄積クライアント３００又は他のノード２００からデータを受信して蓄積する。尚、ノード２００は、ノード２００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００３１】
通信部２１０は、例えば、ＮＩＣ等によって実現される。通信部２１０は、所属するエリアを管轄する蓄積クライアント３００と有線で接続され、蓄積クライアント３００、及び、蓄積クライアント３００を介して他のノード２００との間で情報の通信を司る通信インタフェースである。尚、通信部２１０は、直接ネットワークＮと有線で接続され、ネットワークＮを介して、蓄積クライアント３００や他のノード２００との間で情報の通信を司る通信インタフェースでとすることができる。
【００３２】
記憶部２２０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部２２０は、静的エリア情報記憶部２２１と、ＩＤノード情報記憶部２２２と、動的エリア情報記憶部２２３と、データ記憶部２２４と、位置記憶部２２５と、再配置記憶部２２６とを有する。
【００３３】
静的エリア情報記憶部２２１には、静的エリア情報が記憶されている。静的エリア情報は、管理ノード１００から通信部２１０を経由して受信した、例えば、エリア１２１Ａ、ＩＤ範囲の始点１２１Ｂ及びＩＤ範囲の終点１２１Ｃ等の項目を対応付けて管理している情報である。尚、静的エリア情報は、管理ノード１００の静的エリア情報記憶部１２１に記憶された静的エリア情報の内容と同一である。
【００３４】
ＩＤノード情報記憶部２２２には、ＩＤノード情報が記憶されている。ＩＤノード情報は、管理ノード１００から通信部２１０を経由して受信した、例えば、ＩＤ範囲の始点１２３Ａ、ＩＤ範囲の終点１２３Ｂ及びノード１２３Ｃ等の項目を対応付けて管理している情報である。尚、ＩＤノード情報は、管理ノード１００のＩＤノード情報記憶部１２３に記憶されたＩＤノード情報の内容と同一である。
【００３５】
動的エリア情報記憶部２２３には、動的エリア情報が記憶されている。動的エリア情報は、管理ノード１００から通信部２１０を経由して受信した、例えば、エリア１２４Ａ、ＩＤ範囲の始点１２４Ｂ及びＩＤ範囲の終点１２４Ｃ等の項目を対応付けて管理している情報である。尚、動的エリア情報は、管理ノード１００の動的エリア情報記憶部１２４に記憶された動的エリア情報の内容と同一である。
【００３６】
データ記憶部２２４には、所属するエリアの蓄積クライアント３００から通信部２１０を介して受信したデータが記憶されている。ここで、図８は、データ記憶部の一例を示す説明図である。図８に示すように、データ記憶部２２４は、静的ＩＤ２２４Ａ及びデータ２２４Ｂ等を対応付けて管理している。また、データ２２４Ｂは、ｋｅｙ２２４Ｃ及びｖａｌｕｅ２２４Ｄを有する。なお、静的ＩＤ２２４Ａは、第２のＩＤである。
【００３７】
静的ＩＤ２２４Ａは、ノード２００に記憶するデータ、つまり、蓄積するデータを識別するための識別情報である。静的ＩＤ２２４Ａは、管理ノード１００から通信部２１０を介して受信した静的エリア情報のＩＤ範囲のうちの任意の静的ＩＤである。また、１つの静的ＩＤ２２４Ａには、複数のデータが対応付けて記憶される。データ２２４Ｂは、蓄積するデータを示す。ｋｅｙ２２４Ｃ（以下、キーとも表す）は、蓄積するデータの一部を示す文字列であり、静的ＩＤ２２４Ａと併せて各データを識別する。つまり、静的ＩＤ２２４Ａとｋｅｙ２２４Ｃとを用いることで、一意のデータを識別できる。ｖａｌｕｅ２２４Ｄは、蓄積するデータそのものである。ｖａｌｕｅ２２４Ｄは、例えば、電話回線の通話データである。
【００３８】
位置記憶部２２５には、ノード２００にデータを蓄積するリクエストのうち、リクエストを他のノード２００に転送した場合の転送先のノード２００が記憶されている。ここで、図９は、位置記憶部の一例を示す説明図である。図９に示すように、位置記憶部２２５は、静的ＩＤ２２５Ａ及びデータ２２５Ｂを対応付けて管理している。また、データ２２５Ｂは、ｋｅｙ２２５Ｃ及び転送先ノード２２５Ｄを有する。
【００３９】
静的ＩＤ２２５Ａは、他のノード２００に転送したリクエストに対応するデータを識別するための識別情報である。静的ＩＤ２２５Ａは、管理ノード１００から通信部２１０を介して受信した静的エリア情報のＩＤ範囲のうちの任意の静的ＩＤである。また、１つの静的ＩＤ２２５Ａには、複数のデータが対応付けて記憶される。データ２２５Ｂは、リクエストの転送先を示す。ｋｅｙ２２５Ｃは、蓄積するデータの一部を示す文字列であり、データ記憶部２２４と同様に、静的ＩＤ２２５Ａと併せて各データを識別する。転送先ノード２２５Ｄは、リクエストを転送した先のノード２００を示す。転送先ノード２２５Ｄは、例えば、“Ｂ２”等のノード名を用いることができる。
【００４０】
再配置記憶部２２６には、他のノード２００から転送されたリクエストに対応するデータが記憶されている。ここで、図１０は、再配置記憶部の一例を示す説明図である。図１０に示すように、再配置記憶部２２６は、静的ＩＤ２２６Ａ及びデータ２２６Ｂを対応付けて管理している。また、データ２２６Ｂは、ｋｅｙ２２６Ｃ及びｖａｌｕｅ２２６Ｄを有する。
【００４１】
静的ＩＤ２２６Ａは、他のノード２００から転送されたリクエストに対応するデータを識別するための識別情報である。静的ＩＤ２２６Ａは、管理ノード１００から通信部２１０を介して受信した静的エリア情報のＩＤ範囲のうちの任意の静的ＩＤである。また、１つの静的ＩＤ２２６Ａには、複数のデータが対応付けて記憶される。データ２２６Ｂは、蓄積するデータを示す。ｋｅｙ２２６Ｃは、蓄積するデータの一部を示す文字列であり、データ記憶部２２４と同様に、静的ＩＤ２２６Ａと併せて各データを識別する。ｖａｌｕｅ２２６Ｄは、蓄積するデータそのものである。ｖａｌｕｅ２２６Ｄは、例えば、電話回線の通話データである。
【００４２】
図７の説明に戻って、制御部２３０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部２３０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしても良い。
【００４３】
制御部２３０は、図７に示すように、ＩＤ算出部２３１と、ＩＤ変換部２３２と、決定部２３３と、再配置部２３４と、負荷情報送信部２３５とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。尚、制御部２３０の内部構成は、図７に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００４４】
ＩＤ算出部２３１は、蓄積クライアント３００からデータの更新を行うリクエスト、又は、解析サーバ４００からデータの参照を行うリクエストを、通信部２１０を介して受信すると、当該データの静的ＩＤを算出する。つまり、ＩＤ算出部２３１は、例えば、検出部である。ＩＤ算出部２３１は、リクエストに含まれる当該データのキーと、静的エリア情報記憶部２２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部２３１は、例えば、データのキーからハッシュ関数を用いて一次ＩＤを算出して、以下の式（２）によりデータの静的ＩＤを算出する。なお、データの静的ＩＤは、データの第２のＩＤである。
【００４５】
データの静的ＩＤ＝一次ＩＤ×ノードの所属エリアの静的ＩＤ範囲／全体ＩＤ範囲
＋ノードの所属エリアの始点の静的ＩＤ                  …（２）
【００４６】
例えば、エリア１に配置されるノード２００において、図３に示す静的エリア情報と、一次ＩＤとして算出された「８００」とに基づいて、データの静的ＩＤを算出する場合を説明する。当該ノード２００の所属するエリアの静的ＩＤ範囲は、静的エリア情報より「２５０」となる。また、エリア１の始点の静的ＩＤは「１」である。全体ＩＤ範囲は、静的エリア情報より「１０００」である。これらのパラメータを式（２）に代入すると、データの静的ＩＤ＝８００×２５０／１０００＋１となり、データの静的ＩＤは、「２０１」となる。ＩＤ算出部２３１は、生成したデータの静的ＩＤを、ＩＤ変換部２３２及び決定部２３３に出力する。
【００４７】
ＩＤ変換部２３２は、決定部２３３から後述する動的ＩＤ生成情報が入力されると、該当するデータの静的ＩＤを動的ＩＤに変換する。ＩＤ変換部２３２は、データの静的ＩＤを算出した一次ＩＤと、動的エリア情報記憶部２２３に記憶されている動的エリア情報とに基づいて、当該データの動的ＩＤを算出する。つまり、ＩＤ変換部２３２は、例えば、算出部である。ＩＤ変換部２３２は、以下の式（３）によりデータの動的ＩＤを算出する。なお、データの動的ＩＤは、データの第１のＩＤである。
【００４８】
データの動的ＩＤ＝一次ＩＤ×ノードの所属エリアの動的ＩＤ範囲／全体ＩＤ範囲
＋ノードの所属エリアの始点の動的ＩＤ                  …（３）
【００４９】
例えば、エリア１に配置されるノード２００において、図６に示す動的エリア情報と、一次ＩＤとして算出された「８００」とに基づいて、データの動的ＩＤを算出する場合を説明する。ノード２００の所属エリアの動的ＩＤ範囲は、動的エリア情報より「５００」となる。また、エリア１の始点の動的ＩＤは「１」である。全体ＩＤ範囲は、動的エリア情報より「１０００」である。これらのパラメータを式（３）に代入すると、データの動的ＩＤ＝８００×５００／１０００＋１となり、データの動的ＩＤは、「４０１」となる。ＩＤ変換部２３２は、生成したデータの動的ＩＤを決定部２３３に出力する。
【００５０】
決定部２３３は、蓄積クライアント３００からデータの更新を行うリクエスト、又は、解析サーバ４００からデータの参照を行うリクエストを、通信部２１０を介して受信する。また、決定部２３３は、ＩＤ算出部２３１からデータの静的ＩＤが入力される。決定部２３３は、リクエストに対応するデータがデータ記憶部２２４に記憶されているか否かを、リクエストのデータの静的ＩＤ及びキーに基づいて検索する。決定部２３３は、リクエストに対応するデータがデータ記憶部２２４に記憶されている場合は、データを参照又は更新する。決定部２３３は、データの参照が完了すると、解析サーバ４００に参照レスポンスを送信する。また、決定部２３３は、データの更新が完了すると、蓄積クライアント３００に更新レスポンスを送信する。
【００５１】
決定部２３３は、リクエストに対応するデータがデータ記憶部２２４に記憶されていない場合は、位置記憶部２２５に転送先のノード２００が記憶されているか否かを、リクエストのデータの静的ＩＤ及びキーに基づいて検索する。決定部２３３は、リクエストに対応する転送先のノード２００が位置記憶部２２５に記憶されている場合は、リクエストを検索にヒットした転送先のノード２００に通信部２１０を介して転送する。決定部２３３は、参照レスポンスを転送先のノード２００から受信すると、解析サーバ４００に参照レスポンスを転送する。また、決定部２３３は、更新レスポンスを転送先のノード２００から受信すると、蓄積クライアント３００に更新レスポンスを転送する。
【００５２】
決定部２３３は、リクエストに対応する転送先のノード２００が位置記憶部２２５に記憶されていない場合は、ＩＤ変換部２３２に対して動的ＩＤ生成情報を出力する。決定部２３３は、ＩＤ変換部２３２からデータの動的ＩＤが入力されると、ＩＤノード情報記憶部２２２に記憶されているＩＤノード情報を参照（検索）する。決定部２３３は、ＩＤノード情報の検索の結果に基づいて、データの動的ＩＤに対応する静的ＩＤが割り当てられたノード２００を、転送先のノード２００として決定する。決定部２３３は、決定したノード２００を転送先ノード２００として、位置記憶部２２５に記憶する。また、決定部２３３は、リクエストを決定した転送先のノード２００に通信部２１０を介して転送する。さらに、決定部２３３は、転送先のノード２００から更新レスポンスを受信すると、更新レスポンスを蓄積クライアント３００に転送する。つまり、決定部２３３は、例えば、検出部、決定部及び転送部である。
【００５３】
再配置部２３４は、他のノード２００から通信部２１０を介して転送されたリクエストを受信する。再配置部２３４は、転送された更新リクエストを受信すると、リクエストの送信元の蓄積クライアント３００に対してデータの送信を許可し、当該データを受信して再配置記憶部２２６に記憶する。再配置部２３４は、データの再配置記憶部２２６への記憶が完了すると、更新レスポンスを転送元のノード２００に通信部２１０を介して送信する。また、再配置部２３４は、転送された参照リクエストを受信すると、リクエストの送信元の解析サーバ４００に対してデータを送信する。再配置部２３４は、データの送信が完了すると、参照レスポンスを転送元のノード２００に通信部２１０を介して送信する。
【００５４】
負荷情報送信部２３５は、自らのノード２００の負荷情報を収集し、通信部２１０を介して管理ノード１００に送信する。負荷情報は、例えば、ノード２００のＣＰＵ使用率やディスク使用量等のリソース使用状況である。ＣＰＵ使用率及びディスク使用量は、例えば、百分率で表すことができる。他にも、ディスク使用量としては、残り容量を負荷情報として採用してもよい。
【００５５】
［３．蓄積クライアントの構成］
蓄積クライアント３００の構成の一例について説明する。図１１は、実施例の蓄積クライアントの一例を示すブロック図である。蓄積クライアント３００は、通信部３１０と、記憶部３２０と、制御部３３０とを有する。蓄積クライアント３００は、所属するエリアのデータを取得すると、取得されたデータの更新リクエストを対応するノード２００に送信する。尚、蓄積クライアント３００は、蓄積クライアント３００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００５６】
通信部３１０は、例えば、ＮＩＣ等によって実現される。通信部３１０は、ネットワークＮと有線で接続され、ネットワークＮを介して、管理ノード１００、他のエリア内の蓄積クライアント３００や解析サーバ４００との間で情報の通信を司る通信インタフェースである。また、通信部３１０は、同じエリア内のノード２００と通信接続し、各ノード２００との間で情報の通信を司る通信インタフェースである。
【００５７】
記憶部３２０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部３２０は、静的エリア情報記憶部３２１と、ＩＤノード情報記憶部３２２とを有する。
【００５８】
静的エリア情報記憶部３２１には、静的エリア情報が記憶されている。静的エリア情報は、管理ノード１００から通信部３１０を経由して受信した、例えば、エリア１２１Ａ、ＩＤ範囲の始点１２１Ｂ及びＩＤ範囲の終点１２１Ｃ等の項目を対応付けて管理している情報である。尚、静的エリア情報は、管理ノード１００の静的エリア情報記憶部１２１に記憶された静的エリア情報の内容と同一である。
【００５９】
ＩＤノード情報記憶部３２２には、ＩＤノード情報が記憶されている。ＩＤノード情報は、管理ノード１００から通信部３１０を経由して受信した、例えば、ＩＤ範囲の始点１２３Ａ、ＩＤ範囲の終点１２３Ｂ及びノード１２３Ｃ等の項目を対応付けて管理している情報である。尚、ＩＤノード情報は、管理ノード１００のＩＤノード情報記憶部１２３に記憶されたＩＤノード情報の内容と同一である。
【００６０】
制御部３３０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部３３０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしても良い。
【００６１】
制御部３３０は、図１１に示すように、ＩＤ算出部３３１と、ノード決定部３３２とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。尚、制御部３３０の内部構成は、図１１に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００６２】
ＩＤ算出部３３１は、データの更新を行う場合に、当該データの静的ＩＤを算出する。ＩＤ算出部３３１は、データのキーと、静的エリア情報記憶部３２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部３３１は、ノード２００のＩＤ算出部２３１と同様に、データの静的ＩＤを算出する。ＩＤ算出部３３１は、算出したデータの静的ＩＤをノード決定部３３２に出力する。
【００６３】
ノード決定部３３２は、ＩＤ算出部３３１からデータの静的ＩＤが入力されると、データの更新を行う更新リクエストの宛先を決定する。ノード決定部３３２は、データの静的ＩＤと、ＩＤノード情報記憶部３２２に記憶されているＩＤノード情報とに基づいて、更新リクエストの宛先となるノード２００を決定する。ノード決定部３３２は、決定されたノード２００に対して、通信部３１０を介して更新リクエストを送信する。ここで、更新リクエストには、データの一部を示す文字列であるキーも含まれる。また、ノード決定部３３２は、更新リクエストを送信したノード２００から更新レスポンスを受信すると、データの蓄積処理が完了したことを検出する。
【００６４】
［４．解析サーバの構成］
解析サーバ４００の構成の一例について説明する。図１２は、実施例の解析サーバの一例を示すブロック図である。解析サーバ４００は、通信部４１０と、記憶部４２０と、制御部４３０とを有する。解析サーバ４００は、各ノード２００に蓄積されたデータを参照して解析を行う。尚、解析サーバ４００は、解析サーバ４００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００６５】
通信部４１０は、例えば、ＮＩＣ等によって実現される。通信部４１０は、ネットワークＮと有線で接続され、ネットワークＮを介して、各エリア内の蓄積クライアント３００や蓄積クライアント３００に接続されている各ノード２００との間で情報の通信を司る通信インタフェースである。また、通信部４１０は、同じデータセンタ２０内の管理ノード１００と通信接続し、管理ノード１００との間で情報の通信を司る通信インタフェースである。
【００６６】
記憶部４２０は、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部４２０は、静的エリア情報記憶部４２１と、ＩＤノード情報記憶部４２２とを有する。
【００６７】
静的エリア情報記憶部４２１には、静的エリア情報が記憶されている。静的エリア情報は、管理ノード１００から通信部４１０を経由して受信した、例えば、エリア１２１Ａ、ＩＤ範囲の始点１２１Ｂ及びＩＤ範囲の終点１２１Ｃ等の項目を対応付けて管理している情報である。尚、静的エリア情報は、管理ノード１００の静的エリア情報記憶部１２１に記憶された静的エリア情報の内容と同一である。
【００６８】
ＩＤノード情報記憶部４２２には、ＩＤノード情報が記憶されている。ＩＤノード情報は、管理ノード１００から通信部４１０を経由して受信した、例えば、ＩＤ範囲の始点１２３Ａ、ＩＤ範囲の終点１２３Ｂ及びノード１２３Ｃ等の項目を対応付けて管理している情報である。尚、ＩＤノード情報は、管理ノード１００のＩＤノード情報記憶部１２３に記憶されたＩＤノード情報の内容と同一である。
【００６９】
制御部４３０は、例えば、ＣＰＵやＭＰＵ等によって、内部の記憶装置に記憶されているプログラムがＲＡＭを作業領域として実行されることにより実現される。また、制御部４３０は、例えば、ＡＳＩＣやＦＰＧＡ等の集積回路により実現されるようにしても良い。
【００７０】
制御部４３０は、図１２に示すように、ＩＤ算出部４３１と、ノード決定部４３２とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。尚、制御部４３０の内部構成は、図１２に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００７１】
ＩＤ算出部４３１は、データの参照を行う場合に、当該データの静的ＩＤを算出する。ＩＤ算出部４３１は、データのキーと、静的エリア情報記憶部４２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部４３１は、ノード２００のＩＤ算出部２３１と同様に、データの静的ＩＤを算出する。ＩＤ算出部４３１は、算出したデータの静的ＩＤをノード決定部４３２に出力する。
【００７２】
ノード決定部４３２は、ＩＤ算出部４３１からデータの静的ＩＤが入力されると、データの参照を行う参照リクエストの宛先を決定する。ノード決定部４３２は、データの静的ＩＤと、ＩＤノード情報記憶部４２２に記憶されているＩＤノード情報に基づいて、参照リクエストの宛先となるノード２００を決定し、決定したノード２００に対して参照リクエストを送信する。
【００７３】
［５．ノード等のハードウエアの構成］
続いて、ノード２００のハードウエア構成の一例について説明する。図１３は、実施例のノードのハードウエア構成の一例を示すブロック図である。
【００７４】
ノード２００は、通信インタフェース２０１と、ＨＤＤ（Hard  Disk  Drive）２０２と、ドライブ装置２０３と、ＣＰＵ２０４と、メモリ２０５と、入出力装置２０６とを有し、それぞれバス２０７に接続されている。通信インタフェース２０１は、通信部２１０である。ＨＤＤ２０２は、記憶部２２０であり、例えば、ＲＡＩＤ（Redundant  Arrays  of  Inexpensive  Disks）を構築することによって、信頼性及び速度等を向上させることができる。
【００７５】
ドライブ装置２０３は、記憶部２２０であり、例えば、光ディスク等を用いることができる。ＣＰＵ２０４は、制御部２３０である。メモリ２０５は、記憶部２２０であり、例えば、ＲＡＭ、フラッシュメモリ等の半導体メモリ素子を用いることができる。入出力装置２０６は、例えば、入力部（例えば、キーボードやマウス等）や、表示部（液晶ディスプレイ等）である。バス２０７は、通信インタフェース２０１と、ＨＤＤ２０２と、ドライブ装置２０３と、ＣＰＵ２０４と、メモリ２０５と、入出力装置２０６との間で情報の送受信を行うためのものである。尚、説明の便宜上、図１３では、ノード２００のハードウエア構成について説明したが、例えば、管理ノード１００、蓄積クライアント３００及び解析サーバ４００のハードウエア構成についても同一の構成であるため、その構成及び動作の説明については省略する。
【００７６】
［６．静的ＩＤとエリア及びノードとの関係］
続いて、静的ＩＤとエリア及びノードとの関係の一例を説明する。図１４は、静的ＩＤとエリア及びノードとの関係の一例を示す説明図である。エリア１〜エリア４は、例えば、地理的に円環状に位置するものとする。エリア１は、エリア２とエリア４とに隣接する。また、エリア２は、エリア３とエリア１とに隣接する。さらに、エリア３は、エリア４とエリア２とに隣接する。また、エリア４は、エリア１とエリア３とに隣接する。
【００７７】
エリア１は、ノード２００として、“Ａ１”と、“Ａ２”と、“Ａ３”とを有する。エリア２は、ノード２００として、“Ｂ１”と、“Ｂ２”と、“Ｂ３”とを有する。エリア３は、ノード２００として、“Ｃ１”と、“Ｃ２”と、“Ｃ３”とを有する。エリア４は、ノード２００として、“Ｄ１”と、“Ｄ２”と、“Ｄ３”とを有する。このとき、静的ＩＤ範囲は、ＩＤ空間全体を「１〜１０００（０で表す）」とし、エリア１にＩＤ「１〜２５０」を、エリア２にＩＤ「２５１〜５００」を、エリア３にＩＤ「５０１〜７５０」を、エリア４にＩＤ「７５１〜０」を割り当てる。さらに、各エリアの静的ＩＤ範囲は、各エリア内で各ノード２００に割り当てる。エリア１を例にとると、ＩＤ「１〜８０」を“Ａ１”に、ＩＤ「８１〜１６０」を“Ａ２”に、ＩＤ「１６１〜２５０」を“Ａ３”に割り当てる。
【００７８】
［７．動的ＩＤとエリア及びノードとの関係］
次に、動的ＩＤとエリア及びノードとの関係の一例を説明する。図１５は、動的ＩＤとエリア及びノードとの関係の一例を示す説明図である。エリア１〜エリア４は、例えば、静的ＩＤの場合と同様に、地理的に円環状に位置するものとする。また、各エリアに所属するノード２００も静的ＩＤの場合と同様であるとする。このとき、動的ＩＤ範囲は、ＩＤ空間全体を「１〜１０００（０で表す）」とし、エリア１にＩＤ「１〜５００」を、エリア２にＩＤ「２５１〜５００」を、エリア３にＩＤ「５０１〜７５０」を、エリア４にＩＤ「７５１〜０」を割り当てる。つまり、エリア１には、隣接エリアであるエリア２の静的ＩＤ範囲であるＩＤ「２５１〜５００」を追加して割り当てる。これにより、エリア１の蓄積クライアント３００は、エリア２のノード２００も使用できる。
【００７９】
［８．データ管理システムの動作］
次に、実施例のデータ管理システム１０の動作について説明する。図１６は、実施例の初期設定の動作の一例を示すシーケンス図である。まず、管理ノード１００は、管理者から静的エリア情報を入力し（ステップＳ１）、入力された静的エリア情報を静的エリア情報記憶部１２１に記憶する。続いて、管理ノード１００は、管理者からノード情報を入力し（ステップＳ２）、入力されたノード情報をノード情報記憶部１２２に記憶する。
【００８０】
管理ノード１００のＩＤノード情報生成部１３１は、静的エリア情報とノード情報とに基づいて、ＩＤノード情報を生成する。ＩＤノード情報生成部１３１は、静的エリア情報とＩＤノード情報とを通信部１１０を介して、各ノード２００、各蓄積クライアント３００及び解析サーバ４００に送信する（ステップＳ３）。各ノード２００、各蓄積クライアント３００及び解析サーバ４００は、受信した静的エリア情報とノード情報とを、それぞれ静的エリア情報記憶部２２１，３２１，４２１、及び、ノード情報記憶部２２２，３２２，４２２に記憶する。
【００８１】
管理ノード１００の動的エリア情報生成部１３３は、負荷量が所定負荷量を超えたノード２００を検出した場合、当該ノード２００が所属するエリアの動的ＩＤを生成する。動的エリア情報生成部１３３は、負荷量が所定負荷量を超えたノード２００を検出しない場合は、各エリアに静的エリア情報と同様のＩＤ範囲を割り当てて、各エリアの動的ＩＤ範囲を生成する。動的エリア情報生成部１３３は、生成した動的エリア情報を動的エリア情報記憶部１２４に記憶するとともに、通信部１１０を介して各ノード２００に送信する（ステップＳ４）。各ノード２００は、受信した動的エリア情報を動的エリア情報記憶部２２３に記憶する。尚、動的エリア情報は、動的エリア情報生成部１３３が、負荷量が所定負荷量を超えたノード２００を検出した場合に、負荷量を反映して再生成され、各ノード２００に送信される。
【００８２】
続いて、更新リクエスト及び参照リクエスト時のデータ管理システム１０の動作について説明する。図１７は、実施例の更新リクエスト及び参照リクエストの動作の一例を示すシーケンス図である。ここでは、更新リクエストに対応するデータは、“Ａ３”のノード２００及び“Ｂ２”のノード２００のどちらにも記憶されておらず、更新リクエストが、“Ａ３”のノード２００から“Ｂ２”のノード２００に転送される場合のシーケンスについて説明する。また、参照リクエストに対応するデータは、“Ｂ２”のノード２００に記憶されており、参照リクエストが、“Ａ３”のノード２００から“Ｂ２”のノード２００に転送される場合のシーケンスについて説明する。
【００８３】
まず、更新リクエスト時の動作の一例について説明する。蓄積クライアント３００のＩＤ算出部３３１は、更新するデータが発生すると、当該データのキーと、静的エリア情報記憶部３２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部３３１は、算出したデータの静的ＩＤをノード決定部３３２に出力する。
【００８４】
ノード決定部３３２は、ＩＤ算出部３３１からデータの静的ＩＤが入力されると、データの静的ＩＤと、ＩＤノード情報記憶部３２２に記憶されているＩＤノード情報に基づいて、更新リクエストの宛先となる“Ａ３”のノード２００を決定する。ノード決定部３３２は、決定した“Ａ３”のノード２００に対して更新リクエストを送信する（ステップＳ１０）。
【００８５】
“Ａ３”のノード２００のＩＤ算出部２３１は、蓄積クライアント３００からデータの更新リクエストを受信すると、データの静的ＩＤを算出する。ＩＤ算出部２３１は、リクエストに含まれる当該データのキーと、静的エリア情報記憶部２２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部２３１は、生成したデータの静的ＩＤを、ＩＤ変換部２３２及び決定部２３３に出力する。
【００８６】
“Ａ３”のノード２００の決定部２３３は、蓄積クライアント３００からデータの更新リクエストを受信する。また、決定部２３３は、ＩＤ算出部２３１からデータの静的ＩＤが入力される。決定部２３３は、データ記憶部２２４を参照して更新リクエストのデータの静的ＩＤ及びキーを検索し、その検索結果に基づき、更新リクエストに対応するデータがデータ記憶部２２４に記憶されているか否かを判定する。決定部２３３は、更新リクエストに対応するデータがデータ記憶部２２４に記憶されていないため、位置記憶部２２５を参照して更新リクエストのデータの静的ＩＤ及びキーに基づいて検索する。決定部２３３は、その検索結果に基づき、転送先のノード２００が位置記憶部２２５に記憶されているか否かを判定する。
【００８７】
決定部２３３は、更新リクエストに対応する転送先のノード２００が位置記憶部２２５に記憶されていないため、ＩＤ変換部２３２に対して動的ＩＤ生成情報を出力する。ＩＤ変換部２３２は、決定部２３３から動的ＩＤ生成情報が入力されると、該当するデータの静的ＩＤを動的ＩＤに変換する。ＩＤ変換部２３２は、データの静的ＩＤを算出した一次ＩＤと、動的エリア情報記憶部２２３に記憶されている動的エリア情報とに基づいて、データの動的ＩＤを算出する。ＩＤ変換部２３２は、算出したデータの動的ＩＤを決定部２３３に出力する。
【００８８】
決定部２３３は、ＩＤ変換部２３２からデータの動的ＩＤが入力されると、ＩＤノード情報記憶部２２２に記憶されているＩＤノード情報を参照して、データの動的ＩＤに対応する静的ＩＤが割り当てられた“Ｂ２”のノード２００を決定する。決定部２３３は、決定した“Ｂ２”のノード２００を転送先ノード“Ｂ２”として、位置記憶部２２５に記憶する。また、決定部２３３は、更新リクエストを決定した転送先の“Ｂ２”のノード２００に転送する（ステップＳ１１）。
【００８９】
“Ｂ２”のノード２００の再配置部２３４は、“Ａ３”のノード２００から転送された更新リクエストを受信すると、更新リクエストの送信元の蓄積クライアント３００に対してデータの送信を許可し、データを受信して再配置記憶部２２６に記憶する。再配置部２３４は、データの再配置記憶部２２６への記憶が完了すると、更新レスポンスを転送元の“Ａ３”のノード２００に送信する（ステップＳ１２）。
【００９０】
“Ａ３”のノード２００の決定部２３３は、転送先の“Ｂ２”のノード２００から更新レスポンスを受信すると、更新レスポンスを蓄積クライアント３００に転送する（ステップＳ１３）。蓄積クライアント３００は、更新レスポンスを受信すると、データの蓄積処理が完了したことを検出する。
【００９１】
次に、参照リクエスト時の動作の一例について説明する。解析サーバ４００のＩＤ算出部４３１は、データの参照要求が発生すると、当該データのキーと、静的エリア情報記憶部４２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部４３１は、算出したデータの静的ＩＤをノード決定部４３２に出力する。
【００９２】
ノード決定部４３２は、ＩＤ算出部４３１からデータの静的ＩＤが入力されると、データの静的ＩＤと、ＩＤノード情報記憶部４２２に記憶されているＩＤノード情報とに基づいて、参照リクエストの宛先となる“Ａ３”のノード２００を決定する。ノード決定部４３２は、決定された“Ａ３”のノード２００に対して参照リクエストを送信する（ステップＳ１４）。
【００９３】
“Ａ３”のノード２００のＩＤ算出部２３１は、解析サーバ４００からデータの参照リクエストを受信すると、データの静的ＩＤを算出する。ＩＤ算出部２３１は、参照リクエストに含まれる当該データのキーと、静的エリア情報記憶部２２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部２３１は、算出されたデータの静的ＩＤをＩＤ変換部２３２及び決定部２３３に出力する。
【００９４】
“Ａ３”のノード２００の決定部２３３は、解析サーバ４００からデータの参照リクエストを受信する。また、決定部２３３は、ＩＤ算出部２３１からデータの静的ＩＤを入力する。決定部２３３は、データ記憶部２２４を参照して参照リクエストのデータの静的ＩＤ及びキーを検索し、その検索結果に基づき、参照リクエストに対応するデータがデータ記憶部２２４に記憶されているか否かを判定する。決定部２３３は、参照リクエストに対応するデータがデータ記憶部２２４に記憶されていないため、位置記憶部２２５を参照して参照リクエストのデータの静的ＩＤ及びキーに基づいて検索する。決定部２３３は、その検索結果に基づき、転送先のノード２００が位置記憶部２２５に記憶されているか否かを判定する。
【００９５】
決定部２３３は、参照リクエストに対応する転送先の“Ｂ２”のノード２００が位置記憶部２２５に記憶されている場合、参照リクエストを転送先の“Ｂ２”のノード２００に転送する（ステップＳ１５）。
【００９６】
“Ｂ２”のノード２００の再配置部２３４は、“Ａ３”のノード２００から転送された参照リクエストを受信すると、参照リクエストに対応するデータを再配置記憶部２２６から読み出して、解析サーバ４００に送信する。再配置部２３４は、データの解析サーバ４００への送信が完了すると、参照レスポンスを転送元の“Ａ３”のノード２００に送信する（ステップＳ１６）。
【００９７】
“Ａ３”のノード２００の決定部２３３は、転送先の“Ｂ２”のノード２００から参照レスポンスを受信すると、参照レスポンスを解析サーバ４００に転送する（ステップＳ１７）。解析サーバ４００は、参照レスポンスを受信すると、データの読み出し処理が完了したことを検出する。
【００９８】
続いて、更新リクエスト受信時のノード２００の動作の詳細について説明する。図１８は、実施例のノードの更新リクエスト受信時における動作の一例を示すフローチャートである。
【００９９】
ノード２００のＩＤ算出部２３１は、蓄積クライアント３００からデータの更新を行うリクエストを受信する（ステップＳ１０１）。ＩＤ算出部２３１は、リクエストに含まれる当該データのキーと、静的エリア情報記憶部２２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部２３１は、算出したデータの静的ＩＤを、ＩＤ変換部２３２及び決定部２３３に出力する。
【０１００】
決定部２３３は、蓄積クライアント３００からデータの更新を行うリクエストを受信する。また、決定部２３３は、ＩＤ算出部２３１からデータの静的ＩＤが入力される。決定部２３３は、データ記憶部２２４を参照して更新リクエストのデータの静的ＩＤ及びキーを検索する（ステップＳ１０２）。決定部２３３は、その検索結果に基づき、更新リクエストに対応するデータがヒットしたか否かを判定する（ステップＳ１０３）。決定部２３３は、更新リクエストに対応するデータがヒットした場合には（ステップＳ１０３：肯定）、データ記憶部２２４に記憶されているデータを更新する（ステップＳ１０４）。決定部２３３は、データの更新が完了すると、蓄積クライアント３００に更新レスポンスを送信する（ステップＳ１１６）。
【０１０１】
決定部２３３は、更新リクエストに対応するデータがヒットしない場合には（ステップＳ１０３：否定）、位置記憶部２２５を参照して参照リクエストのデータの静的ＩＤ及びキーに基づいて検索する（ステップＳ１０５）。決定部２３３は、位置記憶部２２５の検索の結果に基づいて、更新リクエストに対応する転送先のノード２００がヒットしたか否かを判定する（ステップＳ１０６）。決定部２３３は、更新リクエストに対応する転送先のノード２００がヒットした場合には（ステップＳ１０６：肯定）、更新リクエストを転送先のノード２００に転送する（ステップＳ１０７）。決定部２３３は、更新レスポンスを転送先のノード２００から受信すると（ステップＳ１０８）、蓄積クライアント３００に更新レスポンスを転送すべく、ステップＳ１１６に移行する。
【０１０２】
決定部２３３は、更新リクエストに対応する転送先のノード２００がヒットしない場合には（ステップＳ１０６：否定）、ＩＤ変換部２３２に対して動的ＩＤ生成情報を出力する。ＩＤ変換部２３２は、決定部２３３から動的ＩＤ生成情報が入力されると、データの静的ＩＤを算出した一次ＩＤと、動的エリア情報記憶部２２３に記憶されている動的エリア情報とに基づいて、データの動的ＩＤを算出する（ステップＳ１０９）。ＩＤ変換部２３２は、算出したデータの動的ＩＤを決定部２３３に出力する。
【０１０３】
決定部２３３は、ＩＤ変換部２３２からデータの動的ＩＤが入力されると、ＩＤノード情報記憶部２２２内のＩＤノード情報を検索する（ステップＳ１１０）。決定部２３３は、ＩＤノード情報の検索の結果に基づいて、データの動的ＩＤに対応する静的ＩＤがヒットしたか否かを判定する（ステップＳ１１１）。決定部２３３は、データの動的ＩＤに対応する静的ＩＤがヒットした場合には（ステップＳ１１１：肯定）、データの動的ＩＤに対応する静的ＩＤが割り当てられたノード２００を、転送先のノード２００として決定する。また、決定部２３３は、決定したノード２００を転送先ノード２００として、位置記憶部２２５にエントリを追加して記憶する（ステップＳ１１２）。さらに、決定部２３３は、更新リクエストを転送先のノード２００に転送する（ステップＳ１１３）。決定部２３３は、更新レスポンスを転送先のノード２００から受信すると（ステップＳ１１４）、蓄積クライアント３００に更新レスポンスを転送すべく、ステップＳ１１６に移行する。
【０１０４】
決定部２３３は、データの動的ＩＤに対応する静的ＩＤがヒットしない場合には（ステップＳ１１１：否定）、エラー処理を実行する（ステップＳ１１５）。決定部２３３は、蓄積クライアント３００に対して、エラー処理の結果を更新レスポンスとして送信すべく、ステップＳ１１６に移行する。
【０１０５】
ノード２００は、データ記憶部２２４を参照して更新リクエストに対応するデータがヒットした場合には、当該データ記憶部２２４に記憶されているデータを更新する。その結果、エリアを跨ぐリクエストの転送トラヒックの発生を防止することができる。
【０１０６】
また、ノード２００は、位置記憶部２２５を参照して更新リクエストに対応する転送先のノード２００がヒットした場合には、更新リクエストを転送先のノード２００に転送する。その結果、蓄積クライアント３００は、更新リクエストの転送の有無に関わらず、転送元のノード２００にリクエストを送信することで、転送先のノード２００のデータを更新することができる。
【０１０７】
また、ノード２００は、ＩＤノード情報記憶部２２２を参照してデータの動的ＩＤに対応する静的ＩＤがヒットした場合には、データの動的ＩＤに対応する静的ＩＤが割り当てられたノード２００を、転送先のノード２００として決定する。その結果、各エリアで使用するノード２００を、動的エリア情報を用いてエリアごとの動的ＩＤの範囲で管理するので、分散ＤＢノード群の管理コストを低減することができる。
【０１０８】
次に、参照リクエスト受信時のノード２００の動作の詳細について説明する。図１９は、実施例のノードの参照リクエスト受信時における動作の一例を示すフローチャートである。
【０１０９】
ノード２００のＩＤ算出部２３１は、解析サーバ４００からデータの参照を行うリクエストを受信する（ステップＳ２０１）。ＩＤ算出部２３１は、参照リクエストに含まれる当該データのキーと、静的エリア情報記憶部２２１に記憶されている静的エリア情報とに基づいて、データの静的ＩＤを算出する。ＩＤ算出部２３１は、算出したデータの静的ＩＤを、ＩＤ変換部２３２及び決定部２３３に出力する。
【０１１０】
決定部２３３は、解析サーバ４００からデータの参照を行うリクエストを受信する。また、決定部２３３は、ＩＤ算出部２３１からデータの静的ＩＤが入力される。決定部２３３は、データ記憶部２２４を参照して参照リクエストのデータの静的ＩＤ及びキーを検索する（ステップＳ２０２）。決定部２３３は、その検索結果に基づき、参照リクエストに対応するデータがヒットしたか否かを判定する（ステップＳ２０３）。決定部２３３は、参照リクエストに対応するデータがヒットした場合には（ステップＳ２０３：肯定）、データ記憶部２２４に記憶されているデータを読み出して、解析サーバ４００に送信する（ステップＳ２０４）。決定部２３３は、データの送信が完了すると、解析サーバ４００に更新レスポンスを送信する（ステップＳ２１０）。
【０１１１】
決定部２３３は、参照リクエストに対応するデータがヒットしない場合には（ステップＳ２０３：否定）、位置記憶部２２５を参照して参照リクエストのデータの静的ＩＤ及びキーに基づいて検索する（ステップＳ２０５）。決定部２３３は、その検索結果に基づき、転送先のノード２００がヒットしたか否かを判定する（ステップＳ２０６）。決定部２３３は、参照リクエストに対応する転送先のノード２００がヒットした場合には（ステップＳ２０６：肯定）、参照リクエストを転送先のノード２００に転送する（ステップＳ２０７）。決定部２３３は、参照レスポンスを転送先のノード２００から受信すると（ステップＳ２０８）、解析サーバ４００に参照レスポンスを転送すべく、ステップＳ２１０に移行する。
【０１１２】
決定部２３３は、参照リクエストに対応する転送先のノード２００がヒットしない場合には（ステップＳ２０６：否定）、エラー処理を実行する（ステップＳ２０９）。決定部２３３は、解析サーバ４００に対して、エラー処理の結果を参照レスポンスとして送信すべく、ステップＳ２１０に移行する。
【０１１３】
ノード２００は、データ記憶部２２４を参照して参照リクエストに対応するデータがヒットした場合には、当該データ記憶部２２４に記憶されているデータを参照する。その結果、エリアを跨ぐリクエストの転送トラヒックの発生を防止することができる。
【０１１４】
また、ノード２００は、位置記憶部２２５を参照して参照リクエストに対応する転送先のノード２００がヒットした場合には、参照リクエストを転送先のノード２００に転送する。その結果、解析サーバ４００は、参照リクエストの転送の有無に関わらず、転送元のノード２００にリクエストを送信することで、転送先のノード２００のデータを更新することができる。
【０１１５】
［９．効果及びその他］
このように、データ管理システム１０は、ノード２００が、ＩＤノード情報と動的エリア情報とを管理ノード１００から受信する。ノード２００は、更新リクエストを検出した場合に、ＩＤノード情報と動的エリア情報とに基づいて、更新リクエストのデータから動的ＩＤを算出する。ノード２００は、ＩＤノード情報を参照して、算出された動的ＩＤに対応する、更新リクエストのデータを記憶するノード２００を決定する。ノード２００は、決定されたノード２００が他のエリアに所属するノード２００である場合には、決定されたノード２００に更新リクエストを転送する。その結果、データ管理システム１０は、リソースの利用効率を向上できる。
【０１１６】
また、管理ノード１００が、全エリアの各ノード２００から負荷量を収集し、当該収集された負荷量が所定負荷量を超えたノード２００を検出した場合に、当該所定負荷量を超えたノード２００を含むエリアに対応した静的ＩＤの範囲に、当該エリアに隣接するエリアの静的ＩＤの範囲を追加することで動的エリア情報を生成する。その結果、データ管理システム１０は、隣接するエリアのリソースを利用できる。
【０１１７】
また、管理ノード１００が、エリアごとに、当該エリアごとに割り当てられる、動的ＩＤに対応する静的ＩＤの範囲と、該静的ＩＤの範囲に割り当てられるノード２００とを対応付けてＩＤノード情報を生成する。その結果、データ管理システム１０は、静的ＩＤの範囲に応じてエリアと所属するノード２００が決定できる。
【０１１８】
また、ノード２００は、データを参照する参照リクエストを検出した場合に、参照リクエストのデータの一部を示す文字列とＩＤノード情報とに基づいて静的ＩＤを算出する。ノード２００は、ＩＤノード情報を参照して、算出された静的ＩＤに対応する、参照リクエストのデータを参照するノード２００を決定する。ノード２００は、更新リクエストを検出した場合と同様に、決定されたノード２００に参照リクエストを転送する。その結果、データ管理システム１０は、リソースの利用効率を向上できる。
【０１１９】
また、ノード２００は、更新又は参照リクエストのデータの一部を示す文字列に基づいて、ハッシュ関数により更新又は参照リクエストのデータの一次ＩＤを算出する。ノード２００は、一次ＩＤとＩＤノード情報の静的ＩＤの範囲とに基づいて、更新又は参照リクエストのデータの静的ＩＤを算出する。ノード２００は、データ記憶部２２４から、更新又は参照リクエストのデータの静的ＩＤ及び文字列に対応するデータを検索する。ノード２００は、当該データがデータ記憶部２２４に記憶されている場合は、更新又は参照リクエストのデータを記憶又は参照するノード２００を自ノードに決定する。ノード２００は、データ記憶部２２４のデータを更新又は参照する。その結果、データ管理システム１０は、全てのエリアの分散ＤＢノード群の負荷が低い場合に、各エリア内のノード２００のみでデータを蓄積することができる。このため、データ管理システム１０は、エリアを跨ぐリクエストの転送トラヒックの発生を防止することができる。
【０１２０】
また、ノード２００は、更新又は参照リクエストのデータがデータ記憶部２２４に記憶されていない場合に、転送先のノード２００を記憶する位置記憶部２２５から、更新又は参照リクエストのデータの静的ＩＤ及び文字列に対応するノード２００を検索する。ノード２００は、検索したノード２００が位置記憶部２２５に記憶されている場合は、更新又は参照リクエストのデータを記憶又は参照するノード２００を、他のエリアに所属するノード２００に決定する。ノード２００は、更新又は参照リクエストを決定されたノード２００に転送する。その結果、データ管理システム１０は、負荷に応じて他のエリアのノード２００に転送したデータを、転送元のノード２００に更新又は参照リクエストを送信することで更新又は参照することができる。
【０１２１】
また、ノード２００は、転送先のノード２００が位置記憶部２２５に記憶されていない場合に、一次ＩＤと動的エリア情報とに基づいて、更新リクエストのデータの動的ＩＤを算出する。ノード２００は、ＩＤノード情報を参照して、当該算出された更新リクエストのデータの動的ＩＤに対応する静的ＩＤが割り当てられたノード２００を、更新リクエストのデータを記憶するノード２００に決定する。ノード２００は、決定されたノード２００を位置記憶部２２５に記憶すると共に、決定されたノード２００に対して、更新リクエストを転送する。その結果、データ管理システム１０は、転送元のノード２００が転送したデータを管理できるので、データの位置管理をスケーラブルとすることができる。また、データ管理システム１０は、各エリアで使用するノード２００を、動的エリア情報を用いてエリアごとの動的ＩＤの範囲で管理するので、分散ＤＢノード群の管理コストを低減することができる。
【０１２２】
また、上記実施例では、エリアの数を４個、各エリアに所属するノード２００の数を３個としたが、これに限定されない。エリア及び各エリアのノード２００の数は、例えば、蓄積するデータの量に応じて適宜増減することができる。
【０１２３】
また、上記実施例では、静的ＩＤ及び動的ＩＤの範囲を「１〜１０００」としたが、これに限定されない。静的ＩＤ及び動的ＩＤの範囲は、例えば、各エリアのノード２００の個数に応じて、適宜増減することができる。
【０１２４】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【０１２５】
更に、各部で行われる各種処理機能は、ＣＰＵ（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、又はワイヤードロジックによるハードウエア上で、その全部又は任意の一部を実行するようにしてもよいことは言うまでもない。
【０１２６】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをデータ管理機器で実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するデータ管理機器の一例を説明する。図２０は、データ管理プログラムを実行するデータ管理機器の一例を示す説明図である。
【０１２７】
図２０に示すデータ管理プログラムを実行するデータ管理機器５００は、インタフェース部５１１と、ＲＡＭ５１２と、ＲＯＭ（Read  Only  Memory）５１３と、プロセッサ５１４とを有する。インタフェース部５１１は、管理機器、蓄積機器、解析機器及び他のデータ管理機器と通信する。プロセッサ５１４は、データ管理機器５００全体を制御する。
【０１２８】
そして、ＲＯＭ５１３には、上記実施例と同様の機能を発揮するデータ管理プログラムが予め記憶されている。尚、ＲＯＭ５１３ではなく、図示せぬドライブで読取可能な記録媒体にデータ管理プログラムが記録されていてもよい。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でもよい。データ管理プログラムとしては、図２０に示すように、検出プログラム５１３Ａ、算出プログラム５１３Ｂ、決定プログラム５１３Ｃ及び転送プログラム５１３Ｄである。尚、プログラム５１３Ａ〜５１３Ｄについては、適宜統合又は分散してもよい。また、ＲＡＭ５１２には、静的エリア情報、ＩＤノード情報、動的エリア情報、蓄積データ、転送した蓄積データの位置及び転送された蓄積データ等を格納するデータベースが記憶してある。
【０１２９】
そして、プロセッサ５１４が、これらのプログラム５１３Ａ〜５１３ＤをＲＯＭ５１３から読み出し、これらの読み出された各プログラムを実行する。そして、プロセッサ５１４は、図２０に示すように、各プログラム５１３Ａ〜５１３Ｄを、検出プロセス５１４Ａ、算出プロセス５１４Ｂ、決定プロセス５１４Ｃ及び転送プロセス５１４Ｄとして機能することになる。
【０１３０】
データ管理機器５００は、全エリアのＩＤの範囲と、蓄積したデータを更新する更新リクエストのデータから算出する第１のＩＤの導出可能範囲とを受信する。プロセッサ５１４は、更新リクエストを検出する。プロセッサ５１４は、更新リクエストを検出した場合に、全エリアのＩＤの範囲と導出可能範囲とに基づいて、更新リクエストのデータから第１のＩＤを算出する。プロセッサ５１４は、第１のＩＤと第１のノードとを対応付けるノード情報を参照して、算出された第１のＩＤに対応する、更新リクエストのデータを記憶する第１のノードを決定する。プロセッサ５１４は、決定されたノードが他のエリアに所属するノードである場合には、決定されたノードに更新リクエストを転送する。その結果、リソースの利用効率を向上できる。
【符号の説明】
【０１３１】
１０  データ管理システム
２０  データセンタ
１００  管理ノード
１１０，２１０，３１０，４１０  通信部
１２０，２２０，３２０，４２０  記憶部
１２１，２２１，３２１，４２１  静的エリア情報記憶部
１２２  ノード情報記憶部
１２３，２２２，３２２，４２２  ＩＤノード情報記憶部
１２４，２２３  動的エリア情報記憶部
１３０，２３０，３３０，４３０  制御部
１３１  ＩＤノード情報生成部
１３２  収集部
１３３  動的エリア情報生成部
２００  ノード
２０１  通信インタフェース
２０２  ＨＤＤ
２０３  ドライブ装置
２０４  ＣＰＵ
２０５  メモリ
２０６  入出力装置
２０７  バス
２２４  データ記憶部
２２５  位置記憶部
２２６  再配置記憶部
２３１，３３１，４３１  ＩＤ算出部
２３２  ＩＤ変換部
２３３  決定部
２３４  再配置部
２３５  負荷情報送信部
３００  蓄積クライアント
３３２，４３２  ノード決定部
４００  解析サーバ
【図１】
2014238678.tif 000003
【図２】
2014238678.tif 000004
【図３】
2014238678.tif 000005
【図４】
2014238678.tif 000006
【図５】
2014238678.tif 000007
【図６】
2014238678.tif 000008
【図７】
2014238678.tif 000009
【図８】
2014238678.tif 000010
【図９】
2014238678.tif 000011
【図１０】
2014238678.tif 000012
【図１１】
2014238678.tif 000013
【図１２】
2014238678.tif 000014
【図１３】
2014238678.tif 000015
【図１４】
2014238678.tif 000016
【図１５】
2014238678.tif 000017
【図１６】
2014238678.tif 000018
【図１７】
2014238678.tif 000019
【図１８】
2014238678.tif 000020
【図１９】
2014238678.tif 000021
【図２０】
2014238678.tif 000022