(57)【要約】  ＫＶＳに格納される一部のデータを特別に扱うことのできる計算機システムを実現する。  ネットワークを介して複数の計算機が接続され、各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、データベースを構成する複数の計算機の各々には、データの識別情報に対して分散アルゴルズムを適用することによって決定された管理範囲毎に当該データが分散して配置され、計算機システムは、データベースを構成する複数の計算機の各々に分散して配置されたデータを管理する管理範囲管理部と、管理範囲に含まれる一部のデータである特定データに対して、データベースを構成する記憶領域以外の記憶領域である特定領域を割り当てる特定データ管理部と、を有する。
2013118270.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して複数の計算機が接続され、前記複数の計算機の各々が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記データベースを構成する前記複数の計算機の各々には、データの識別情報に対して分散アルゴルズムを適用することによって決定された管理範囲毎に当該データが分散して配置され、
前記計算機システムは、
前記データベースを構成する複数の計算機の各々に分散して配置されたデータを管理する管理範囲管理部と、
前記管理範囲に含まれる一部の前記データである特定データに対して、前記データベースを構成する記憶領域以外の記憶領域である特定領域を割り当てる特定データ管理部と、を有することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記特定データ管理部は、
前記特定データの前記識別情報及び前記特定領域の識別情報を含む特定データ管理情報を保持し、
前記特定データ管理情報を参照して、前記特定データの中から、前記特定領域に格納されていない前記特定データを検索し、
前記データベースから前記特定領域に前記検索された特定データを移動することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記特定データ管理部は、
前記特定データを決定するための情報及び前記特定データを格納する条件を含む指定条件を保持し、
前記特定データ管理情報を参照して前記特定領域に格納されていない第１の特定データを検索した後、当該第１の特定データが前記格納条件を満たすか否かを判定し、
前記第１の特定データの前記格納条件を満たす場合、前記データベースから前記特定領域に当該第１の特定データを移動し、
前記特定データ管理情報を参照して前記特定領域に格納される第２の特定データを検索した後、当該第２の特定データが前記格納条件を満たすか否かを判定し、
前記第２の特定データが前記格納条件を満たさない場合、前記特定領域から前記データベースに当該第２の特定データを移動することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記特定データ管理部は、
前記指定条件に基づいて、前記特定データを決定し、
前記決定された特定データに割り当てる前記特定領域を決定し、
前記決定された特定データの識別情報及び前記特定領域の識別情報に基づいて、前記特定データ管理情報を生成することを特徴とする計算機システム。
【請求項５】
請求項４に記載の計算機システムであって、
前記計算機システムは、前記データベースを構築する前記複数の計算機の各々の稼動状態を示す統計情報を管理する統計管理部を有し、
前記特定データ管理部は、
前記統計情報を解析することによって、前記指定条件を決定することを特徴とする計算機システム。
【請求項６】
請求項４又は請求項５に記載の計算機システムであって、
前記計算機システムは、複数の前記特定領域を含み、
前記特定データ管理部は、
複数の前記特定データに割り当てる前記特定領域を決定する場合に、
前記各特定データに割り当てる前記特定領域が全て異なるように決定することを特徴とする計算機システム。
【請求項７】
請求項２から６のいずれか一つに記載の計算機システムであって、
前記特定データ管理情報は、前記特定データが前記特定領域に格納されているか否かを示す状態情報を含み、
前記特定データ管理部は、
前記データベースから前記特定領域に前記特定データを移動した後、前記状態情報を更新し、
前記特定領域に、前記特定データに対するアクセス要求を送信するように通知することを特徴とする計算機システム。
【請求項８】
ネットワークを介して複数の計算機が接続され、前記複数の計算機の各々が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムにおけるデータ管理方法であって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記データベースを構成する前記複数の計算機の各々には、データの識別情報に対して分散アルゴルズムを適用することによって決定された管理範囲毎に当該データが分散して配置され、
前記方法は、
前記計算機が、前記管理範囲に含まれる前記データに対するアクセスを制御するステップと、
前記計算機が、前記データベースに格納される一部の前記データである特定データに対して、前記データベースを構成する記憶領域以外の記憶領域である特定領域を割り当てるステップと、を含むことを特徴とするデータ管理方法。
【請求項９】
請求項８に記載のデータ管理方法であって、
前記複数の計算機の各々は、前記特定データの前記識別情報及び前記特定領域の識別情報を含む特定データ管理情報を保持し、
前記方法は、さらに、
前記計算機が、前記特定データ管理情報を参照して、前記特定データの中から、前記特定領域に格納されていない前記特定データを検索する第１のステップと、
前記計算機が、前記データベースから前記特定領域に前記検索された特定データを移動する第２のステップと、を含むことを特徴とするデータ管理方法。
【請求項１０】
請求項９に記載のデータ管理方法であって、
前記複数の計算機の各々は、前記特定データを決定するための情報及び前記特定データの格納条件を含む指定条件を保持し、
前記第１のステップは、
前記計算機が、前記特定データ管理情報を参照して前記特定領域に格納されていない第１の特定データを検索した後、当該第１の特定データが前記格納条件を満たすか否かを判定するステップと、
前記計算機が、前記第１の特定データの前記格納条件を満たす場合、前記データベースから前記特定領域に当該第１の特定データを移動するステップと、を含み、
前記方法は、さらに、
前記計算機が、前記特定データ管理情報を参照して前記特定領域に格納される第２の特定データを検索した後、当該第２の特定データが前記格納条件を満たすか否かを判定するステップと、
前記計算機が、前記第２の特定データが前記格納条件を満たさない場合、前記特定領域から前記データベースに当該第２の特定データを移動するステップと、を含むことを特徴とするデータ管理方法。
【請求項１１】
請求項１０に記載のデータ管理方法であって、
前記方法は、
前記計算機が、前記指定条件に基づいて、前記特定データを決定する第３のステップと、
前記計算機が、前記決定された特定データに割り当てる前記特定領域を決定する第４のステップと、
前記計算機が、前記決定された特定データの識別情報及び前記特定領域の識別情報に基づいて、前記特定データ管理情報を生成する第５のステップと、を含むことを特徴とするデータ管理方法。
【請求項１２】
請求項１１に記載のデータ管理方法であって、
前記複数の計算機の各々は、前記データベースを構築する前記複数の計算機の各々の稼動状態を示す統計情報を保持し、
前記方法は、前記計算機が、前記統計情報を解析することによって、前記指定条件を決定するステップを含むことを特徴とするデータ管理方法。
【請求項１３】
請求項１１又は請求項１２に記載のデータ管理方法であって、
前記計算機システムは、複数の前記特定領域を含み、
前記第４のステップでは、前記計算機が、前記各特定データに割り当てる前記特定領域が全て異なるように決定することを特徴とするデータ管理方法。
【請求項１４】
請求項９から１３のいずれか一つに記載のデータ管理方法であって、
前記特定データ管理情報は、前記特定データが前記特定領域に格納されているか否かを示す状態情報を含み、
前記第２のステップは、
前記計算機が、前記データベースから前記特定領域に前記特定データを移動した後、前記状態情報を更新するステップと、
前記計算機が、前記特定領域に、前記特定データに対するアクセス要求を送信するように通知するステップと、を含むことを特徴とするデータ管理方法。
【請求項１５】
ネットワークを介して複数の計算機が接続され、前記複数の計算機の各々が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムに含まれる前記計算機が実行するプログラムであって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、
前記データベースを構成する前記複数の計算機の各々には、データの識別情報に対して分散アルゴルズムを適用することによって決定された管理範囲毎に当該データが分散して配置され、
前記プログラムは、
前記管理範囲に含まれる前記データに対するアクセスを制御する手順と、
前記データベースに格納される一部の前記データである特定データに対して、前記データベースを構成する記憶領域以外の記憶領域である特定領域を割り当てる手順と、を前記計算機に実行させることを特徴とするプログラム。
【請求項１６】
請求項１５に記載のプログラムであって、
前記計算機は、前記特定データの前記識別情報及び前記特定領域の識別情報を含む特定データ管理情報を保持し、
前記プログラムは、
前記特定データ管理情報を参照して、前記特定データの中から、前記特定領域に格納されていない前記特定データを検索する第１の手順と、
前記データベースから前記特定領域に前記検索された特定データを移動する第２の手順と、を前記計算機に実行させることを特徴とするプログラム。
【請求項１７】
請求項１６に記載のプログラムであって、
前記計算機は、前記特定データを決定するための情報及び前記特定データの格納条件を含む指定条件を保持し、
前記第１の手順は、
前記特定データ管理情報を参照して前記特定領域に格納されていない第１の特定データを検索した後、当該第１の特定データが前記格納条件を満たすか否かを判定する手順と、
前記第１の特定データの前記格納条件を満たす場合、前記データベースから前記特定領域に当該第１の特定データを移動する手順と、を含み、
前記プログラムは、さらに、
前記特定データ管理情報を参照して前記特定領域に格納される第２の特定データを検索した後、当該第２の特定データが前記格納条件を満たすか否かを判定する手順と、
前記第２の特定データが前記格納条件を満たさない場合、前記特定領域から前記データベースに当該第２の特定データを移動する手順と、を前記計算機に実行させることを特徴とするプログラム。
【請求項１８】
請求項１７に記載のプログラムであって、
前記プログラムは、さらに、
前記指定条件に基づいて前記特定データを決定する手順と、
前記決定された特定データに割り当てる前記特定領域を決定する手順と、
前記決定された特定データの識別情報及び前記特定領域の識別情報に基づいて、前記特定データ管理情報を生成する手順と、を前記計算機に実行させることを特徴とするプログラム。
【請求項１９】
請求項１８に記載のプログラムであって、
前記計算機は、前記データベースを構築する前記複数の計算機の各々の稼動状態を示す統計情報を保持し、
前記プログラムは、前記統計情報を解析して、前記指定条件を決定する手順を前記計算機に実行させることを特徴とするプログラム。
【請求項２０】
請求項１６から１９のいずれか一つに記載のプログラムであって、
前記特定データ管理情報は、前記特定データが前記特定領域に格納されているか否かを示す状態情報を含み、
前記第２の手順は、
前記データベースから前記特定領域に前記特定データを移動した後、前記状態情報を更新する手順と、
前記特定領域に、前記特定データに対するアクセス要求を送信するように通知する手順と、を前記計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機から構成される分散データベースに関する。特に、分散データベースにおけるデータの管理技術に関する。
【背景技術】
【０００２】
近年、Ｗｅｂを用いたアプリケーションを実行する計算システムにおいてデータ量が爆発的に増大しており、ＫＶＳ（Ｋｅｙ  Ｖａｌｕｅ  Ｓｔｏｒｅ）等のＮｏＳＱＬ（Ｎｏｔ  ｏｎｌｙ  ＳＱＬ）データベースを有する計算機システムが普及している。現在、このようなシステムは様々なエンタープライズシステムに導入されており、今後のさらなる活用が見込まれている。【０００３】
ＫＶＳでは、データに高速にアクセス可能な揮発性の記憶媒体、例えば、メモリにデータが格納される構成や、データ格納の永続性に優れる不揮発性の記録媒体、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）やＨＤＤ等にデータを格納する構成や、これらを併用する構成等の種々の構成が採られている。併用する構成では、高速アクセス性重視や永続性重視等の種々の運用方針によって、複数台の計算機のメモリを仮想的に統合して構成されるメモリストア及び１台以上の計算機の不揮発性記憶媒体から構成されるディスクストアのバランスを種々変更可能となっている。【０００４】
メモリストア及びディスクストアには、データ（バリュー）と、データの識別子（キー）とをペアとしたデータが格納される。【０００５】
また、ＫＶＳでは、複数のサーバからクラスタを構成して、そのクラスタに含まれるサーバにデータを分散して配置することによって並列処理を実現している。具体的には、キーの管理範囲（キーレンジ）毎に、各サーバにデータが格納される。各サーバは、担当するキーレンジに含まれるデータのマスタとして処理を実行する。すなわち、所定のキーを含む読み出し要求に対して、そのキーが含まれるキーレンジのデータを担当するサーバが、キーに対応するデータを読み出すこととなる。【０００６】
したがって、ＫＶＳでは、スケールアウトによって並列処理の性能を向上させることができる。【０００７】
なお、クラスタはサーバをリング状に接続した構成となっており、各サーバには一意な識別番号が割り当てられる。また、各サーバに対するデータの分散方法は、Ｃｏｎｓｉｓｔｅｎｔ  Ｈａｓｈｉｎｇ法、Ｒａｎｇｅ法及びＬｉｓｔ法等の種々の分散アルゴリズムが用いられる。【０００８】
Ｃｏｎｓｉｓｔｅｎｔ  Ｈａｓｈｉｎｇ法では、まず、キーに対するハッシュ値を算出し、算出したハッシュ値をサーバの台数で除算した余りを算出する。その余りがサーバの識別番号に一致するサーバにデータが配置されるようになっている。【０００９】
従来、ＫＶＳでは、サーバの負荷を分散するためにサーバの追加処理又はリバランス処理等を用いて対応してきた。【００１０】
例えば、特許文献１にはスケールイン及びスケールアウト等のサーバの追加処理について記載され、非特許文献１参照にはリバランス処理について記載されている。ここで、リバランス処理とは、各サーバの負荷の変動に応じてハッシュ値（キー）のレンジを変更し、対応するレンジのデータを他のサーバに移動させる処理である。【００１１】
また、特許文献２には、過去の負荷変動の履歴に基づいて、管理対象の計算機の負荷の変化を予測し、当該予測結果に基づいてスケールイン又はスケールアウトを実行することが記載されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−１２３２３８号公報
【特許文献２】特開２０１１−１１８５２５号公報
【非特許文献】
【００１３】
【非特許文献１】株式会社日立製作所、ＨｉＲＤＢ  Ｖｅｒｓｉｏｎ  ９  システム運用ガイド（３０２０−６−４５４−２０）、平成２３年７月、Ｐ４９０−４９１
【発明の概要】
【発明が解決しようとする課題】
【００１４】
一時的な負荷に対応する場合に、サーバの追加処理を実行すると処理コストがかかり、また、不必要なリソースを追加するため設備コストも増大する。従来のリバランス処理では、負荷が均等になるように所定のキーレンジのデータを移動させることは可能であるが、時々刻々と変化する負荷に対応したものではない。【００１５】
また、サーバの追加処理及びリバランス処理は、負荷の平準化を目的とするものであって、特定のキーのみを特別に扱うような処理ではない。サーバの追加処理及びリバランス処理では、特定のキーに対するアクセス性能を向上させ、又はセキュリティ上の観点からＫＶＳとは別の記憶領域において管理することができない。【００１６】
本発明は前述したような課題を鑑みてなされたものである。すなわち、特定のキーのみを特別に管理することのできる計算機システム及び管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して複数の計算機が接続され、前記複数の計算機の各々が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記データベースを構成する前記複数の計算機の各々には、データの識別情報に対して分散アルゴルズムを適用することによって決定された管理範囲毎に当該データが分散して配置され、前記計算機システムは、前記データベースを構成する複数の計算機の各々に分散して配置されたデータを管理する管理範囲管理部と、前記管理範囲に含まれる一部の前記データである特定データに対して、前記データベースを構成する記憶領域以外の記憶領域である特定領域を割り当てる特定データ管理部と、を有することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、データベースを構成する記憶領域以外の記憶領域上で、管理範囲に含まれる一部のデータを特別に管理することができる。例えば、当該一部のデータがアクセス頻度の高いデータである場合には、データベースを構成する計算機のアクセス性能を低下させることなく、かつ、当該一部のデータの処理を高速化することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態における計算機システムの構成を示すブロック図である。
【図２】本発明の第１の実施形態におけるメモリストア及びディスクストアに格納されるデータの形式を示す説明図である。
【図３】本発明の第１の実施形態における構成情報の一例を示す説明図である。
【図４】本発明の第１の実施形態におけるキーとハッシュ値との対応関係の一例を示す説明図である。
【図５】本発明の第１の実施形態における特定キー管理情報の一例を示す説明図である。
【図６】本発明の第１の実施形態における統計情報の一例を示す説明図である。
【図７】本発明の第１の実施形態におけるクライアント装置が実行する処理を説明するフローチャートである。
【図８】本発明の第１の実施形態における特定キー管理部が実行する処理を説明するフローチャートである。
【図９】本発明の第１の実施形態における特定キー条件の入力画面の一例を示す説明図である。
【図１０】本発明の第１の実施形態における特定データの割当処理を説明するフローチャートである。
【図１１】本発明の第１の実施形態における負荷分散確認画面の一例を示す説明図である。
【図１２】本発明の第２の実施形態における特定キー条件の生成処理を説明するフローチャートである。
【発明を実施するための形態】
【００２０】
［第１の実施形態］
【００２１】
図１は、本発明の第１の実施形態における計算機システムの構成を示すブロック図である。
【００２２】
計算機システムは、複数のサーバ１００、共有サーバ１１０、複数のクライアント装置１２０、及びネットワーク１３０から構成される。サーバ１００間、サーバ１００と共有サーバ１１０との間及びサーバ１００とクライアント装置１２０との間は、ネットワーク１３０を介して互いに接続される。
【００２３】
ネットワーク１３０は、ＬＡＮ、ＷＡＮ及びＳＡＮ等の有線及び無線の種々の構成が考えられる。本発明は、サーバ１００、共有サーバ１１０及びクライアント装置１２０が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク１３０には、複数のネットワーク装置（図示省略）が含まれる。ネットワーク装置は、例えば、スイッチ及びゲートウェイなどが含まれる。
【００２４】
本実施形態では、複数のサーバ１００からクラスタを構成し、サーバ１００が備える記憶領域上にＮｏＳＱＬデータベースが構築される。本実施形態ではＮｏＳＱＬデータベースとして、ＫＶＳを用いるものとする。
【００２５】
共有サーバ１１０は、ＫＶＳとは異なる記憶領域を提供する。共有サーバ１１０が提供する記憶領域に特定の条件を満たすデータを格納する。これによって、特定のデータをＫＶＳに分散して格納されるデータとは別に扱うことができる。本実施形態では、負荷が集中するデータが共有サーバ１１０に格納される。
【００２６】
サーバ１００は、プロセッサ２１０、主記憶装置２２０、補助記憶装置２３０及びネットワークインタフェース２４０を備え、ＫＶＳを構成する計算機である。サーバ１００は、クライアント装置１２０からの要求にしたがって各種処理を実行する。なお、各サーバ１００の構成は同一であるものとする。
【００２７】
共有サーバ１１０は、サーバ１００と同一の構成の計算機であって、特定の条件を満たすキーに対応するデータのみ管理する。本実施形態は、一時的にアクセスが集中するデータを予め共有サーバ１１０に格納する。共有サーバ１１０は、一時的に格納されたデータを管理する。
【００２８】
これによって、特定のサーバ１００のアクセス性能の低下を抑制し、また、特定のデータの処理を高速に実行することができる。そのため、システム全体のアクセス性能を保つことができる。
【００２９】
なお、共有サーバ１１０に格納する条件は、前述したもの限定されず、他のデータとは別々に管理する必要性があればどのような条件でもよい。例えば、他のデータより優先して処理を実行する必要性がある場合、セキュリティ上の理由から別々に管理する必要性がある場合などが考えられる。
【００３０】
サーバ１００は、所定のキーレンジ毎にデータが格納されており、所定のキーレンジに含まれるデータを管理するマスタサーバとして稼動する。また、サーバ１００は、他のサーバ１００が管理するキーレンジに含まれるデータの複製データを保持しており、スレーブサーバとして稼動する。以下では、マスタサーバとして管理するデータをマスタデータと記載し、スレーブサーバとして管理するデータをスレーブデータとも記載する。
【００３１】
共有サーバ１１０は、特定のキーのみを格納し、当該キーのマスタサーバとして稼動する。なお、共有サーバ１１０に他のサーバ１００の複製データが格納されもよい。
【００３２】
また、本実施形態のクラスタは、計算機システム全体の管理を行う管理サーバとなる唯一のサーバが存在せず、全てのサーバ１００が同等のサーバとして扱われる。これによって、１つのサーバ１００に障害が発生しても、他のスレーブサーバが新たなマスタサーバとして処理を継続することができるため、計算機システムを停止することなく処理を継続することができる。
【００３３】
プロセッサ２１０は、主記憶装置２２０に格納されるプログラムを実行する。プロセッサ２１０がプログラムを実行することによって、サーバ１００が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ２１０によって、プログラムが実行されていることを示すものとする。
【００３４】
主記憶装置２２０は、プロセッサ２１０が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置２２０は、例えば、メモリ等が考えられる。
【００３５】
本実施形態の主記憶装置２２０上には、データ管理部３１０、統計情報管理部３２０、複製制御部３３０及び特定キー管理部３４０を実現するためのプログラムが格納される。また、主記憶装置２２０上には、必要な情報として、構成情報３５０及び統計情報３６０が格納される。
【００３６】
さらに、主記憶装置２２０上には、ＫＶＳを構成するデータベースであるメモリストア３７０が格納される。メモリストア３７０には、キーとバリューとを一組としたデータが格納される。なお、各サーバ１００のメモリストア３７０には、所定のキーレンジに含まれるデータが格納される。
【００３７】
補助記憶装置２３０は、各種情報を格納する。補助記憶装置２３０は、例えば、ＨＤＤ又はＳＳＤ等が考えられる。また、補助記憶装置２３０には、ＫＶＳを構成するデータベースであるディスクストア３８０が格納される。各サーバ１００のディスクストア３８０には、キーとバリューとを一組としたデータが格納される。
【００３８】
ここで、主記憶装置２２０に格納されるプログラム及び情報について説明する。
【００３９】
データ管理部３１０は、サーバ１００が管理するデータに対する各種処理を制御する。データ管理部３１０は、クライアント装置１２０からのアクセス要求を受信し、当該アクセス要求に基づいて、データの読み出しや書き込み等の処理を制御する。
【００４０】
具体的には、データ管理部３１０は、構成情報３５０を参照して、受信したアクセス要求の対象となるデータを検索し、検索結果を当該アクセス要求の送信先のクライアント装置１２０に送信する。
【００４１】
統計情報管理部３２０は、各サーバ１００におけるアクセス数等の統計情報を取得し、統計情報３６０を更新する。
【００４２】
複製制御部３３０は、スレーブサーバへのデータ送信を制御する。複製制御部３３０は、データ送信部３３１及び送信確認部３３２を含む。データ送信部３３１は、スレーブサーバにデータを送信する。なお、スレーブサーバの決定方法は公知の技術であるため説明を省略する。送信確認部３３２は、スレーブサーバにデータが送信されたか否かを確認する。
【００４３】
特定キー管理部３４０は、特定の条件を満たすデータの識別情報である特定キーを管理する。特定キー管理部３４０は、特定キーを管理するための特定キー管理情報３９０を含む。特定キー管理情報３９０の詳細については、図５を用いて後述する。
【００４４】
構成情報３５０は、データの格納先を示す情報を格納する。すなわち、各サーバ１００のキーレンジを示す情報が格納される。なお、構成情報３５０の詳細については、図３を用いて後述する。統計情報３６０は、サーバ１００が管理するキーレンジに含まれる各キーに対するアクセス数等の統計情報を格納する。統計情報３６０の詳細については、図６を用いて後述する。
【００４５】
共有サーバ１１０のハードウェア構成及びソフトウェア構成は、サーバ１００と同一であるため説明を省略する。
【００４６】
次に、クライアント装置１２０について説明する。クライアント装置１２０は、プロセッサ４１０、主記憶装置４２０、補助記憶装置４３０及びネットワークインタフェース４４０を備え、サーバ１００又は共有サーバ１１０に対して各種処理の要求を送信する。
【００４７】
プロセッサ４１０は、主記憶装置４２０に格納されるプログラムを実行する。プロセッサ４１０がプログラムを実行することによって、クライアント装置１２０が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ４１０によって、プログラムが実行されていることを示す。
【００４８】
主記憶装置４２０は、プロセッサ４１０が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置４２０は、例えば、メモリ等が考えられる。
【００４９】
本実施形態の主記憶装置４２０上には、ＵＡＰ５１０及びデータ送受信部５２０を実現するためのプログラムが格納される。また、主記憶装置４２０上には、必要な情報として、構成情報５３０及び特定キー管理情報５４０が格納される。
【００５０】
補助記憶装置４３０は、各種情報を格納する。補助記憶装置４３０は、例えば、ＨＤＤ又はＳＳＤ等が考えられる。
【００５１】
ここで、主記憶装置４２０に格納されるプログラム及び情報について説明する。
【００５２】
ＵＡＰ５１０は、ユーザからの指示にしたがってアクセス要求を出力する。アクセス要求は、データの読出処理及び書込処理等の実行を要求するためのものである。なお、書込処理には、データの書き込みとデータの上書きとが含まれるものとする。
【００５３】
データ送受信部５２０は、ＵＡＰ５１０から出力されたアクセス要求をサーバ１００又は共有サーバ１１０に送信し、また、サーバ１００又は共有サーバ１１０から送信されるアクセス要求に対する処理の結果を受信する。データ送受信部５２０は、アクセス要求を送信する場合に、構成情報５３０及び特定キー管理情報５４０を参照してアクセス要求の送信先となるサーバ１００及び共有サーバ１１０を特定する。
【００５４】
構成情報５３０は、構成情報３５０と同一のものであり、また、特定キー管理情報５４０は、特定キー管理情報３９０と同一のものであるため説明を省略する。
【００５５】
なお、本実施形態では、サーバ１００、共有サーバ１１０及びクライアント装置１２０が備える機能を、ソフトウェアを用いて実現しているが、専用のハードウェアを用いて同一の機能を実現してもよい。また、本実施形態では、共有サーバ１１０は１台であるが、２台以上であってもよい。
【００５６】
図２は、本発明の第１の実施形態におけるメモリストア３７０及びディスクストア３８０に格納されるデータの形式を示す説明図である。図２では、メモリストア３７０を例に説明する。
【００５７】
本実施形態では、メモリストア３７０は、データ管理情報６００を格納する。データ管理情報６００には、キーとバリューとがペアとなったデータが複数含まれる。以下、キーとバリューとがペアとなったデータをキーバリュー型データとも記載する。
【００５８】
データ管理情報６００は、キー６０１及びバリュー６０２を含む。キー６０１は、データを識別するための識別子（キー）を格納する。バリュー６０２は、実際のデータ（バリュー）を格納する。
【００５９】
クライアント装置１２０を操作するユーザは、キー６０１を指定してＫＶＳにデータを保存し、また、キー６０１を指定してＫＶＳから所望のデータを取得することができる。
【００６０】
各サーバ１００は、所定のキー６０１の範囲（キーレンジ）毎にキーバリュー型データを管理する。すなわち、キーレンジ毎にキーバリュー型データが各サーバ１００に分散して配置される。サーバ１００は、指定されたキーレンジのデータのマスタサーバとして処理を実行することとなる。これによって、大量のデータを並列的かつ高速に処理できる。
【００６１】
また、各サーバ１００は、所定のキーレンジ毎に他のサーバ１００がマスタとして管理するキーバリュー型データのコピーデータを保持する。
【００６２】
さらに、本実施形態では、共有サーバ１１０は、特定のキーのマスタサーバとして処理を実行する。
【００６３】
なお、メモリストア３７０及びディスクストア３８０に格納されるデータの形式は、図２に示すものに限定されず、例えば、キーのハッシュ値とバリューとを対応づけた形式であってもよい。
【００６４】
本実施形態では、ハッシュ値とバリューとを対応づけた形式のデータ管理情報６００が格納される。
【００６５】
図３は、本発明の第１の実施形態における構成情報３５０の一例を示す説明図である。
【００６６】
構成情報３５０は、各サーバ１００のキーレンジに関する情報を格納する。具体的には、構成情報３５０は、サーバＩＤ３５１及びキーレンジ３５２を含む。
【００６７】
サーバＩＤ３５１は、サーバ１００を一意に識別するための識別子を格納する。サーバＩＤ３５１には、サーバ１００の識別子、ＩＰアドレス及びＭＡＣアドレス等が格納される。
【００６８】
キーレンジ３５２は、キーレンジを示す情報を格納する。具体的には、キーレンジ３５２は、マスタ３５３及びスレーブ３５４を含む。
【００６９】
マスタ３５３は、マスタサーバとして管理するキーレンジの情報を格納する。スレーブ３５４は、スレーブサーバとして管理するキーレンジの情報を格納する。
【００７０】
マスタ３５３及びスレーブ３５４には、それぞれ、キーレンジの最小値及び最大値を表す値が格納される。なお、マスタ３５３及びスレーブ３５４に格納される値は、ハッシュ値が格納される。
【００７１】
図３に示す例では、サーバＩＤ３５１が「サーバ１」であるサーバ１００は、ハッシュ値が「−３００」から「−１０１」までの範囲のデータを管理することを示す。
【００７２】
ここで、図４を用いてキーとハッシュ値との関係について説明する。
【００７３】
本実施形態では、所定のアルゴリズムに基づいて、キーからハッシュ値が算出される。データは、ハッシュ値に基づいて各サーバ１００に分散して配置される。図４に示すテーブル７００では、キー７０１とした日付が格納され、ハッシュ値７０２には、日付から算出されたハッシュ値が格納される。
【００７４】
なお、キー７０１は、日付だけに限定されず、例えば、ユーザＩＤと日付とを組み合わせて一つのキーとしてもよい。また、本発明は、ハッシュ値を算出するためのアルゴリズムに限定されない。
【００７５】
図５は、本発明の第１の実施形態における特定キー管理情報３９０の一例を示す説明図である。
【００７６】
特定キー管理情報３９０は、ＫＶＳとは異なる記憶領域で管理するキーバリュー型データに関する情報を格納する。具体的には、特定キー管理情報３９０は、特定キー３９１及び割当情報３９２を含む。
【００７７】
特定キー３９１は、ＫＶＳとは異なる記憶領域で管理するキーバリュー型データの識別情報である特定キーの情報を格納する。本実施形態では、キーバリュー型データに対応するキーのハッシュ値が格納される。以下、特定キーに対応するキーバリュー型データを特定データとも記載する。
【００７８】
割当情報３９２は、特定データを格納する共有サーバ１１０に関する情報を格納する。具体的には、割当情報３９２は、割当先３９２１及び格納状態３９２２を含む。
【００７９】
割当先３９２１は、特定データを格納する共有サーバ１１０の識別情報を格納する。すなわち、特定データを特別に管理するために割り当てられる記憶領域の識別情報が格納される。
【００８０】
格納状態３９２２は、共有サーバ１１０に特定データが格納されているか否かを示す情報を格納する。本実施形態では、特定データが共有サーバ１１０に格納されている場合、格納状態３９２２には「格納済み」が格納され、特定データが共有サーバ１１０に配置されていない場合、格納状態３９２２には「未格納」が格納される。
【００８１】
なお、割当情報３９２は、二つのカラムを含むように記載したが、一つのカラムの中に、割当先と格納状態とを含むような形式でもよい。
【００８２】
図６は、本発明の第１の実施形態における統計情報３６０の一例を示す説明図である。
【００８３】
統計情報３６０は、キー３６１と取得日３６２とから構成されるマトリクス形式の情報である。キー３６１は、キーバリュー型データのキーを示す。取得日３６２は、キー３６１に対応するキーバリュー型データのアクセス数を取得した日時を示す。
【００８４】
図６に示す例では、日時をキーとしてキーバリュー型データのアクセス数が格納される。なお、アクセス数は、単位秒当たりのアクセス数である。
【００８５】
図６に示す例では、１日毎にアクセス数を格納する形式となっているが一例であって、本発明はこれに限定されない。例えば、１時間毎、１週間毎など任意の周期で統計情報を取得してもよい。また、ユーザからの指示に基づいて、統計情報を取得してもよい。
【００８６】
次に、各種処理について説明する。
【００８７】
図７は、本発明の第１の実施形態におけるクライアント装置１２０が実行する処理を説明するフローチャートである。
【００８８】
クライアント装置１２０は、ユーザから指定されたキーを含む処理の実行命令を入力されると処理を開始する。
【００８９】
まず、クライアント装置１２０は、実行命令を受け付けたＵＡＰ５１０から出力されたアクセス要求からアクセス対象のデータのキーを抽出する（ステップＳ８００）。具体的には、データ送受信部５２０が、ＵＡＰ５１０からアクセス要求を受け付け、当該アクセス要求からアクセス対象のデータのキーを抽出する。
【００９０】
クライアント装置１２０は、サーバ１００から構成情報３５０及び特定キー管理情報３９０を取得する（ステップＳ８０２、ステップＳ８０４）。具体的には、データ送受信部５２０が、サーバ１００から構成情報３５０及び特定キー管理情報３９０を取得する。
【００９１】
なお、データ送受信部５２０は、ネットワーク１３０を介して接続されるサーバ１００であれば、どのサーバ１００から構成情報３５０及び特定キー管理情報３９０を取得してもよい。
【００９２】
クライアント装置１２０は、まず、特定キー管理情報３９０を参照して、アクセス対象のデータが共有サーバ１１０に格納されているか否かを判定する（ステップＳ８０６）。具体的には、以下のような処理を実行する。
【００９３】
まず、クライアント装置１２０は、サーバ１００が用いるアルゴリズムと同一のアルゴリズムを用いて、アクセス対象のデータのキーからハッシュ値を算出する。次に、クライアント装置１２０は、特定キー管理情報３９０を参照して、算出されたハッシュ値と特定キー３９１に格納されたハッシュ値とが一致するエントリを検索する。
【００９４】
ハッシュ値が一致するエントリがない場合、クライアント装置１２０は、共有サーバ１１０にアクセス対象のデータが格納されていないと判定する。
【００９５】
一方、ハッシュ値が一致するエントリがある場合、クライアント装置１２０は、当該エントリの割当情報３９２を参照して、格納状態３９２２が「格納済み」であるか否かを判定する。
【００９６】
格納状態３９２２が「未格納」である場合、クライアント装置１２０は、共有サーバ１１０にアクセス対象のデータが格納されていないと判定する。
【００９７】
格納状態３９２２が「格納済み」である場合、クライアント装置１２０は、共有サーバ１１０にアクセス対象のデータが格納されていると判定する。
【００９８】
以上が、ステップＳ８０６の処理である。
【００９９】
アクセス対象のデータが共有サーバ１１０に格納されていると判定された場合、クライアント装置１２０は、特定キー管理情報３９０に基づいてアクセス先の共有サーバ１１０を決定する（ステップＳ８０８）。
【０１００】
アクセス対象のデータが共有サーバ１１０に格納されていないと判定された場合、クライアント装置１２０は、構成情報３５０に基づいてアクセス先のサーバ１００を決定する（ステップＳ８１０）。なお、構成情報３５０に基づいたアクセス先のサーバ１００の決定方法は、周知の方法であるため説明を省略する。
【０１０１】
クライアント装置１２０は、決定されたサーバ１００又は共有サーバ１１０にアクセスし、処理を終了する（ステップＳ８１２）。具体的には、データ送受信部５２０が、決定されたサーバ１００又は共有サーバ１１０にアクセス要求を送信する。
【０１０２】
図８は、本発明の第１の実施形態における特定キー管理部３４０が実行する処理を説明するフローチャートである。特定キー管理部３４０は、周期的に、又は、ユーザから指示を受け付けると以下で説明する処理を開始する。
【０１０３】
特定キー管理部３４０は、特定キー条件を取得する（ステップＳ９００）。なお、取得された特定キー条件は、主記憶装置２２０上に格納される。
【０１０４】
特定キー条件を取得する方法としては以下のようなものが考えられる。例えば、予め、サーバ１００に特定キー条件の定義ファイルを格納しておき、処理の開始時に、特定キー管理部３４０が定義ファイルを読み出す。また、コマンド入力又はＧＵＩなどを用いて特定キー条件を入力してもよい。この場合、特定キー管理部３４０は、入力された特定キー条件を取得する。
【０１０５】
特定キー条件には、少なくとも、特定データの識別情報である特定キーを指定する情報と、特定データを格納する条件とが含まれる。本実施形態では、特定データを格納する条件として、日付が入力される。ここで、本実施形態における特定キー条件を入力するＧＵＩの一例について説明する。
【０１０６】
図９は、本発明の第１の実施形態における特定キー条件の入力画面の一例を示す説明図である。本実施形態では、日時を特定キー条件として入力するものとする。
【０１０７】
入力画面１０００は、特定キー条件として日時を入力する。入力画面１０００は、日付指定領域１０１０、日付指定領域１０１５、キー形式指定領域１０２０、完了ボタン１０３０及びキャンセルボタン１０４０を含む。
【０１０８】
日付指定領域１０１０及び日付指定領域１０１５は、特定キーを指定するための情報を入力する領域である。日付指定領域１０１５は、チェック欄と日付の入力欄とを含む。
【０１０９】
日付指定領域１０１０が操作された場合、特定キーを指定する情報として「処理実行時当日」が設定される。この場合、処理実行時の日付に一致するキーと対応づけられたデータが特定データとなることを示す。例えば、特定キー管理部３４０が「２０１２年１月２０日」に処理を実行している場合、「２０１２年１月２０日」をキーとするデータが特定データとなる。
【０１１０】
日付指定領域１０１５が操作された場合、特定キーを指定する情報として「処理実行時からＸ日前の日付」が設定される。この場合、処理実行時の日付から指定された日数だけ遡った日付に一致するキーと対応づけられたデータが特定データとなることを示す。図９に示す例では、特定キー管理部３４０が「２０１２年１月２０日」に処理を実行している場合、「２０１２年１月１７日」をキーとするデータが特定データとなる。
【０１１１】
キー形式指定領域１０２０は、キーの形式を入力する領域である。これによって、日付指定領域１０１０において入力された日付が所定のキー形式で指定されることとなる。図９に示す例では、日付をキーとする場合、「ＹＹＹＹ」が年を表し、「ＭＭ」が月を表し、「ＤＤ」が日を表す。また、キー形式指定領域１０２０において指定されたキーの形式に基づいて、ハッシュ値が算出される。
【０１１２】
完了ボタン１０３０は、各入力領域に入力された情報を有効化するための操作ボタンである。キャンセルボタン１０４０は、各入力領域に入力された情報を無効化するための操作ボタンである。
【０１１３】
なお、図９に示す入力画面１０００を用いてデータを入力した場合、データが入力された日時が特定データを格納する条件として設定される。
【０１１４】
図８の説明に戻る。
【０１１５】
特定キー管理部３９０は、取得した特定キー条件に基づいて、特定データの割当処理を実行する（ステップＳ９０２）。当該処理によって、特定キー管理情報３９０が更新される。なお、特定データの割当処理の詳細は、図１０を用いて後述する。
【０１１６】
特定キー管理部３４０は、特定キー管理情報３９０を参照して、共有サーバ１１０に格納された特定データが特定キー条件を満たすか否かを判定する（ステップＳ９０４）。具体的には、以下のような処理が実行される。
【０１１７】
特定キー管理部３４０は、特定キー管理情報３９０を参照して、格納状態３９２２が「格納済み」であるエントリを検索する。すなわち、特定キー管理部３４０は、共有サーバ１１０に格納された特定データを検索する。
【０１１８】
次に、特定キー管理部３４０は、検索されたエントリに対応づけられた特定キー条件に基づいて、ハッシュ値を算出する。
【０１１９】
特定キーを指定する情報として「処理実行時の当日」が設定され、特定データを格納する条件として「処理実行時の当日」が設定されている場合には以下のような処理が実行される。特定キー管理部３４０は、処理実行時の日付を取得し、当該日付を所定のキー形式に変換した後、ハッシュ値を算出する。
【０１２０】
特定キーを指定する情報として「処理実行時からＸ日前の日付」が設定され、特定データを格納する条件としてとして「処理実行時の当日」が設定されている場合には以下のような処理が実行される。特定キー管理部３４０は、処理実行時の日付を取得し、取得された日付の３日前の日付を所定のキー形式に変換した後、ハッシュ値を算出する。
【０１２１】
次に、特定キー管理部３４０は、算出されたハッシュ値と、検索されたエントリの特定キー３９１に格納されたハッシュ値とが一致するか否かを判定する。
【０１２２】
算出されたハッシュ値と、検索されたエントリの特定キー３９１に格納されたハッシュ値とが一致しない場合、特定キー管理部３４０は、特定キー条件を満たさないと判定する。一方、算出されたハッシュ値と、検索されたエントリの特定キー３９１に格納されたハッシュ値とが一致する場合、特定キー管理部３４０は、特定キー条件を満たすと判定する。
【０１２３】
なお、特定キーを指定する情報及び特定データを格納する条件に具体的な日付が設定されている場合には以下のような処理が実行される。特定キー管理部３４０は、処理実行時の日付を取得し、取得された日付が特定データを格納する条件によって設定された日付と一致するか否かを判定する。取得された日付と設定された日付とが一致する場合、特定キー管理部３４０は、特定キー条件を満たすと判定する。この場合、ハッシュ値を算出する必要は無い。
【０１２４】
以上がステップＳ９０４の処理である。
【０１２５】
共有サーバ１１０に格納された特定データが特定キー条件を満たすと判定された場合、特定キー管理部３４０は、ステップＳ９０８に進む。
【０１２６】
共有サーバ１１０に格納された特定データが特定キー条件を満たさないと判定された場合、特定キー管理部３４０は、共有サーバ１１０から元のサーバ１００に当該特定データを移動し（ステップＳ９０６）、ステップＳ９０８に進む。このとき、特定キー管理部３４０は、特定キー管理情報３９０の対応するエントリを削除してもよい。
【０１２７】
次に、特定キー管理部３４０は、共有サーバ１１０に格納されていない特定データのうち、特定キー条件を満たす特定データが存在するか否かを判定する（ステップＳ９０８）。具体的には、以下のような処理が実行される。
【０１２８】
特定キー管理部３４０は、特定キー管理情報３９０を参照して、格納状態３９２２が「未格納」であるエントリを検索する。すなわち、特定キー管理部３４０は、共有サーバ１１０に格納されていない特定データを特定する。
【０１２９】
次に、特定キー管理部３４０は、検索されたエントリに対応づけられた特定キー条件に基づいて、特定データを格納する条件を満たすか否かをと判定する。
【０１３０】
例えば、特定データを格納する条件として「処理実行時の当日」が指定されている場合、特定キー管理部３４０は、特定データを格納する条件を満たすと判定する。また、特定データを格納する条件として具体的な日付が指定されている場合、特定キー管理部３４０は、処理実行時の日時が指定された日時と一致するか否かを判定する。処理実行時の日時が指定された日時と一致する場合、特定キー管理部３４０は、特定データを格納する条件を満たすと判定する。
【０１３１】
以上がステップＳ９０８の処理である。
【０１３２】
共有サーバ１１０に格納されていない特定データのうち、特定キー条件を満たす特定データが存在しないと判定された場合、特定キー管理部３４０は、ステップＳ９１２に進む。
【０１３３】
共有サーバ１１０に格納されていない特定データのうち、特定キー条件を満たす特定データが存在すると判定された場合、特定キー管理部３４０は、サーバ１００から共有サーバ１１０に当該特定データを移動し（ステップＳ９１０）、ステップＳ９１２に進む。このとき、特定キー管理部３４０は、特定キー管理情報３９０の対応するエントリの格納状態３９２２を「格納済み」に更新する。
【０１３４】
特定キー管理部３４０は、更新後の特定キー管理情報３９０を他のサーバ１００及びクライアント装置１２０に送信し（ステップＳ９１２）、処理を終了する。これによって、特定データに対するアクセス要求が、共有サーバ１１０に送信される。
【０１３５】
図１０は、本発明の第１の実施形態における特定データの割当処理を説明するフローチャートである。
【０１３６】
特定キー管理部３４０は、取得した特定キー条件に基づいて、特定キーを算出する（ステップＳ１1００）。本実施形態では、ハッシュ値が算出される。
【０１３７】
例えば、特定データを格納する条件として「処理実行時の当日」が設定されている場合には以下のような処理が実行される。特定キー管理部３４０は、処理実行時の当日の日付を取得し、当該日付を所定のキー形式に変換した後、ハッシュ値を算出する。また、特定データを格納する条件として「処理実行時の日付から３日前」が設定されている場合には以下のような処理が実行される。特定キー管理部３４０は、処理実行時の当日の日付を取得し、取得された日付の３日前の日付を所定のキー形式に変換した後、ハッシュ値を算出する。また、特定キー条件として具体的な日付が設定されている場合、特定キー管理部３４０は、当該日付からハッシュ値を算出する。
【０１３８】
特定キー管理部３４０は、特定キー管理情報３９０を参照して、算出された特定キー（ハッシュ値）に一致するエントリが存在するか否かを判定する（ステップＳ１1０２）。
【０１３９】
具体的には、特定キー３９１に格納された値と、算出された特定キーとが一致するエントリが存在するか否かが判定される。
【０１４０】
算出された特定キーに一致するエントリが存在すると判定された場合、特定キー管理部３４０は、処理を終了する。
【０１４１】
算出された特定キーに一致するエントリが存在しないと判定された場合、特定キー管理部３４０は、特定キー管理情報３９０に新たなエントリを追加する（ステップＳ１1０４）。具体的には、特定キー管理部３４０は、追加されたエントリの特定キー３９１に、算出された特定キーを格納する。
【０１４２】
ステップＳ１1００からステップＳ１1０４までの処理によって特定データが決定される。
【０１４３】
次に、特定キー管理部３４０は、特定データに割当先となる記憶領域、すなわち、共有サーバ１１０を決定し（ステップＳ１1０６）、処理を終了する。本実施形態では、共有サーバ１１０は１台であるため当該処理を省略してもよい。共有サーバ１１０が複数ある場合には、例えば、以下のような処理が考えられる。
【０１４４】
特定キー管理部３４０は、各共有サーバ１１０から統計情報３６０を取得し、負荷が最も低い共有サーバ１１０を割当先の共有サーバ１１０に決定する。また、別の方法としては、特定キー管理部３４０は、共有サーバ１１０に割り当てられた特定データの数を算出し、割り当てられた特定データの数が最小の共有サーバ１１０を割当先の共有サーバ１１０に決定する。また、特定キー管理部３４０は、各特定データが異なる共有サーバ１１０に割り当てられるように決定してもよい。
【０１４５】
特定キー管理部３４０は、共有サーバ１１０を決定すると、追加されたエントリの割当先３９２１に、決定された共有サーバ１１０の識別情報を格納し、また、格納状態３９２２に「未格納」を格納する。
【０１４６】
本実施形態における特定キー管理部３４０は、各サーバ１００の負荷が平準化されているか否かを確認するための情報を提示することができる。例えば、特定キー管理部３４０は、構成情報３５０、統計情報３６０及び特定キー管理情報３９０を用いることによって、画面表示に必要な情報を生成することができる。
【０１４７】
図１１は、本発明の第１の実施形態における負荷分散確認画面１２００の一例を示す説明図である。
【０１４８】
負荷分散確認画面１２００は、サーバ状態表示領域１２１０及び共有サーバ状態表示領域１２２０を含む。サーバ状態表示領域１２１０は、各サーバ１００の負荷状態を表示する領域である。共有サーバ状態表示領域１２２０は、共有サーバ１１０の負荷状態を表示する領域である。
【０１４９】
サーバ状態表示領域１２１０は、さらに、サーバＩＤ１２１１、格納キー数１２１２及びアクセス数１２１３を含む。サーバＩＤ１２１１は、サーバ１００を一意に識別するための識別子である。格納キー数１２１２は、サーバ１００に実際に格納されるデータ数である。アクセス数１２１３は、サーバ１００に対して単位秒当たりのアクセス回数である。
【０１５０】
共有サーバ状態表示領域１２２０は、さらに、サーバＩＤ１２２１、格納キー１２２２及びアクセス数１２２３を含む。サーバＩＤ１２２１は、共有サーバ１１０を一意に識別するための識別子である。格納キー１２２２は、共有サーバ１１０に実際に格納される特定データのキーである。アクセス数１２２３は、格納キー１２２２に対応する特定データへの単位秒当たりのアクセス回数である。
【０１５１】
ユーザは、負荷分散確認画面１２００を確認してから、入力画面１０００に入力する条件を決定してもよい。
【０１５２】
第１の実施形態によれば、予め、特定データを指定する特定キー条件を設定することによって、特定キー条件を満たす場合には、自動的にサーバ１００から共有サーバ１１０に特定データが移動される。これによって、ＫＶＳを構成する記憶領域とは異なる記憶領域（共有サーバ１１０）において、特定データを管理することができる。
【０１５３】
例えば、アクセスが集中するデータを共有サーバ１１０に格納することによって、一時的にアクセスが集中するデータに対する処理を共有サーバ１１０が実行できる。これによって、ＫＶＳを構成する計算機システム全体のアクセス性能を低下させることなく、かつ、高速な処理を実現することができる。
【０１５４】
また、特定キー条件に一致しない特定データは、自動的に共有サーバ１１０からサーバ１００に移動される。これによって、共有サーバ１１０の負荷が過大になることを防止することができる。
【０１５５】
［変形例］
【０１５６】
第１の実施形態では、負荷分散のために特定データを共有サーバ１１０に格納していたが、本発明はこれに限定されない。
【０１５７】
例えば、セキュリティ上の理由から別々に管理する必要性がある場合には、セキュリティレベル等を示す値をキーとして用いればよい。また、他のデータより優先して処理を実行する必要性がある場合には、処理の優先度等を示す値をキーとして用いればよい。
【０１５８】
ＫＶＳではアクセスの平準化を目的としてデータが配置されるため、所定のキーに対応するデータを特別に扱うことができない。しかし、本発明を用いることによって、ＫＶＳとは異なる記憶領域において特定データを管理できるため、当該特定データを特別に扱うことができる。
【０１５９】
［第２の実施形態］
【０１６０】
第２の実施形態では、アクセス履歴に基づいて特定キー条件を決定する点が第１の実施形態と異なる。以下、第１の実施形態との差異を中心に説明する。
【０１６１】
第２の実施形態の計算システム及び各装置の構成は、第１の実施形態と同一であるため説明を省略する。
【０１６２】
第２の実施形態のクライアント装置１２０処理は、第１の実施形態と同一であるため説明を省略する。第２の実施形態の特定キー管理部３４０は、ステップＳ９００において、統計情報を用いて特定キー条件を生成する点が異なる。その他の処理は、第１の実施形態と同一であるため説明を省略する。
【０１６３】
ここで、統計情報を用いて特定キー条件を生成する処理について説明する。
【０１６４】
図１２は、本発明の第２の実施形態における特定キー条件の生成処理を説明するフローチャートである。
【０１６５】
特定キー管理部３４０は、各サーバ１００から統計情報３６０を取得する（ステップＳ１３００）。例えば、処理を実行するサーバ１００が、他のサーバ１００に対して、統計情報３６０の取得要求を送信することが考えられる。取得要求を受信したサーバ１００は、統計情報３６０及び自身の識別子を要求先のサーバ１００に送信する。
【０１６６】
特定キー管理部３４０は、取得された統計情報３６０を参照して、所定の閾値以上のアクセス数であるデータを特定する（ステップＳ１３０２）。
【０１６７】
特定キー管理部３４０は、特定されたデータのキー３６１と統計値が取得された取得日３６２とを参照して、日付の差分を算出する（ステップＳ１３０４）。本実施形態では、特定キー管理部３４０は、取得日３６２からキー３６１を減算することによって、日付の差分を算出する。
【０１６８】
特定キー管理部３４０は、算出された日付の差分に基づいて、一定の規則性があるか否かを判定する（ステップＳ１３０６）。
【０１６９】
例えば、算出された日付の差分が０の場合に必ずアクセスが所定の閾値以上となる規則性がある場合、特定キー管理部３４０は、当日に移動すべき特定データであると判定できる。また、算出された日付の差分が３の場合に必ずアクセスが所定の閾値以上となる規則性がある場合、特定キー管理部３４０は、処理実行時の日時から３日前に移動すべき特定データであると判定できる。なお、前述した規則性は一例であって、本発明はこれに限定されない。
【０１７０】
一定の規則性がないと判定された場合、特定キー管理部３４０は、処理を終了する。
【０１７１】
一定の規則性があると判定された場合、特定キー管理部３４０は、当該規則性に基づいて特定キー条件を生成し（ステップＳ１３０８）、処理を終了する。
【０１７２】
本実施形態では、統計情報３６０のキー３６１から特定キーを指定する情報が決定され、また、規則性から特定データを格納する条件が決定される。特定キー管理部３４０は、決定された各種情報を含む特定キー条件を主記憶装置２２０上に保持する。
【０１７３】
第２の実施形態によれば、予め、ユーザが特定キー条件を設定していなくとも、自動的に特定キー条件を生成することができる。これによって、自動的に負荷分散を実現することができる。
【０１７４】
なお、本実施形態で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
【０１７５】
さらに、本実施形態では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。
【０１７６】
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
【図１】
2013118270.tif 000003
【図２】
2013118270.tif 000004
【図３】
2013118270.tif 000005
【図４】
2013118270.tif 000006
【図５】
2013118270.tif 000007
【図６】
2013118270.tif 000008
【図７】
2013118270.tif 000009
【図８】
2013118270.tif 000010
【図９】
2013118270.tif 000011
【図１０】
2013118270.tif 000012
【図１１】
2013118270.tif 000013
【図１２】
2013118270.tif 000014
【国際調査報告】
2013118270.tif 000015
2013118270.tif 000016