(57)【特許請求の範囲】
【請求項１】
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置において、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超えるか又は相対的にアクセス頻度の高い第１のメモリを検出する第１検出部と、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出する第２検出部と、
前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部と、
前記対応情報において、前記第１のメモリにアクセスする情報処理装置の割り当てを、前記第１のメモリを割り当てた第１の情報処理装置から前記第２のメモリを割り当てた第２の情報処理装置に変更する変更部と、
前記対応情報を前記管理装置に通知し、また、前記アクセス要求に基づいて前記第１のメモリから読み出したデータを、前記対応情報にしたがって前記第２の情報処理装置を介して前記管理装置に出力する出力部と
を備えていることを特徴とする制御装置。
【請求項２】
前記変更部はさらに、
前記対応情報において、前記第２のメモリにアクセスする情報処理装置の割り当てを、前記第２の情報処理装置から前記第１の情報処理装置に変更し、
前記出力部はさらに、
前記アクセス要求に基づいて前記第２のメモリから読み出したデータを、前記対応情報にしたがって前記第１の情報処理装置を介して前記管理装置に出力すること
を特徴とする請求項１に記載の制御装置。
【請求項３】
前記制御装置はさらに、
前記複数のメモリ各々に対する前記複数の情報処理装置からのアクセス回数を計数する計数部を備え、
前記第１検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も多いメモリを前記第１のメモリとして検出し、
前記第２検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も少ないメモリを前記第２のメモリとして検出すること
を特徴とする請求項１または請求項２に記載の制御装置。
【請求項４】
前記制御装置はさらに、
前記第１検出部が前記第１のメモリを検出し、前記第２検出部が前記第２のメモリを検出した後、前記変更部が前記対応情報を変更する前に、前記管理装置にアクセス要求の発行を禁止させ、
前記管理装置から前記アクセス要求の発行を禁止する旨の通知を受けた後、前記変更部が変更した対応情報を前記出力部から前記管理装置に通知すること
を特徴とする請求項１ないし請求項３のいずれか１項に記載の制御装置。
【請求項５】
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置において、
それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第１のメモリへの第１の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度以下の第２のメモリを割り当てた第２の情報処理装置を介して出力する旨の変更情報を前記制御装置から受ける受信部と、
前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて記憶する記憶部と、
前記受信部が受信した変更情報に基づいて、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、前記記憶部に格納する格納部と、
前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、所定のアルゴリズムを用いて前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
を備えていることを特徴とする管理装置。
【請求項６】
前記格納部はさらに、
前記キー情報毎のアクセス頻度を示す頻度情報を前記記憶部に格納し、
前記記憶部に空きがない場合、格納した前記頻度情報に基づき、前記記憶部に格納されたキー情報と対応する識別情報を消去すること
を特徴とする請求項５に記載の管理装置。
【請求項７】
複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御する制御装置とを含む情報処理システムにおいて、
前記制御装置は、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出する第１検出部と、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出する第２検出部と、
前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第１記憶部と、
前記対応情報において、前記第１のメモリにアクセスする情報処理装置の割り当てを、前記第１のメモリを割り当てた第１の情報処理装置から前記第２のメモリを割り当てた第２の情報処理装置に変更する変更部と、
前記対応情報を前記管理装置に通知し、また、前記アクセス要求に基づいて前記第１のメモリから読み出したデータを、前記対応情報にしたがって前記第２の情報処理装置を介して前記管理装置に出力する出力部と
を備え、
前記管理装置は、
前記変更部が変更した対応情報を前記制御装置から受ける受信部と、
前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて記憶する第２記憶部と、
前記受信部が受信した対応情報に基づいて、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、前記第２記憶部に格納する格納部と、
前記アクセス要求とともに受けたキー情報が、前記第２記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第２記憶部に格納された識別情報に対応づけられていない場合、所定のアルゴリズムを用いて前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
を備えていることを特徴とする情報処理システム。
【請求項８】
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御方法において、
前記制御装置が有する第１検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出し、
前記制御装置が有する第２検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出し、
前記制御装置が有する変更部が、前記対応情報において、前記第１のメモリにアクセスする情報処理装置の割り当てを、前記第１のメモリを割り当てた第１の情報処理装置から前記第２のメモリを割り当てた第２の情報処理装置に変更し、
前記制御装置が有する出力部が、前記対応情報を前記管理装置に通知し、また、前記アクセス要求に基づいて前記第１のメモリから読み出したデータを、前記対応情報にしたがって前記第２の情報処理装置を介して前記管理装置に出力することを特徴とする制御装置の制御方法。
【請求項９】
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御方法において、
前記管理装置の受信部が、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第１のメモリへの第１の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度以下の第２のメモリを割り当てた第２の情報処理装置を介して出力する旨の変更情報を前記制御装置から受け、
前記管理装置の格納部が、前記受信部が受信した変更情報に基づいて、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、記憶部に格納し、
前記管理装置の出力部が、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、所定のアルゴリズムを用いて前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする管理装置の制御方法。
【請求項１０】
複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第１記憶部を有する制御装置とを含む情報処理システムの制御方法において、
前記制御装置が有する第１の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出し、
前記制御装置が有する第２の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出し、
前記制御装置が有する変更部が、前記対応情報において、前記第１のメモリにアクセスする情報処理装置の割り当てを、前記第１のメモリを割り当てた第１の情報処理装置から前記第２のメモリを割り当てた第２の情報処理装置に変更し、
前記制御装置が有する出力部が、前記対応情報を前記管理装置に通知し、また、前記アクセス要求に基づいて前記第１のメモリから読み出したデータを、前記対応情報にしたがって前記第２の情報処理装置を介して前記管理装置に出力し、
前記管理装置が有する受信部が、前記変更部が変更した対応情報を前記制御装置から受信し、
前記管理装置が有する格納部が、前記受信部が受信した対応情報に基づいて、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、第２記憶部に格納し、
前記管理装置が有する出力部が、前記アクセス要求とともに受けたキー情報が、前記第２記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第２記憶部に格納された識別情報に対応づけられていない場合、所定のアルゴリズムを用いて前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする情報処理システムの制御方法。
【請求項１１】
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御プログラムにおいて、
前記制御装置が有する第１検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出させ、
前記制御装置が有する第２検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出させ、
前記制御装置が有する変更部に、前記対応情報において、前記第１のメモリにアクセスする情報処理装置の割り当てを、前記第１のメモリを割り当てた第１の情報処理装置から前記第２のメモリを割り当てた第２の情報処理装置に変更させ、
前記制御装置が有する出力部に、前記対応情報を前記管理装置に通知し、また、前記アクセス要求に基づいて前記第１のメモリから読み出したデータを、前記対応情報にしたがって前記第２の情報処理装置を介して前記管理装置に出力させることを特徴とする制御装置の制御プログラム。
【請求項１２】
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御プログラムにおいて、
前記管理装置の受信部に、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第１のメモリへの第１の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度以下の第２のメモリを割り当てた第２の情報処理装置を介して出力する旨の変更情報を前記制御装置から受信させ、
前記管理装置の格納部に、前記受信部が受信した変更情報に基づいて、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、記憶部に格納させ、
前記管理装置の出力部に、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、所定のアルゴリズムを用いて前記キー情報から求めた情報処理装置に前記アクセス要求を出力させることを特徴とする管理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、管理装置、情報処理システム、制御装置の動作方法、管理装置の動作方法、情報処理システムの動作方法およびプログラムに関する。
【背景技術】
【０００２】
ファイルや画像などのデータを記憶するデータベース等の情報処理システムは、サーバ等の複数の情報処理装置を並列に設けることで、アクセスによる負荷を分散できる。しかし、特定の情報処理装置へのアクセスが集中する場合、アクセスが集中した情報処理装置がボトルネックになり、情報処理システム全体の性能は低下する。
【０００３】
例えば、情報処理装置の負荷を分散させるために、複数の情報処理装置にそれぞれ対応して設けられるデータ領域のうち参照頻度の高いデータ領域が、他の情報処理装置からアクセス可能な共有データ領域に設定される（例えば、特許文献１参照。）。
【０００４】
また、構造型データベースにおいて、レコードを参照するための情報を含むインデックスに、検索条件に合致するレコードの数を示す領域を追加することで、不要なレコードの読み込みは防止され、検索速度は高くなる（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３３９２３６号公報
【特許文献２】特開平６−１０３３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
情報処理装置にアクセス要求を出力する管理装置は、情報処理装置の負荷を分散させるために、アクセス要求をどのように分散させるかを決める処理を実施する必要があり、管理装置の負荷は増える。これにより、情報処理システムの性能の向上は抑制される。
【０００７】
１つの側面では、本発明は、管理装置の負荷に配慮した、アクセスが集中している情報処理装置の負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一形態では、制御装置は、複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置において、それぞれのアクセス頻度に基づき、複数のメモリから所定のアクセス頻度を超えるか又は相対的にアクセス頻度の高い第１のメモリを検出する第１検出部と、それぞれのアクセス頻度に基づき、複数のメモリから所定のアクセス頻度以下の第２のメモリを検出する第２検出部と、複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部と、第１のメモリに第１の情報処理装置を割り当てた旨を、第２のメモリを割り当てた第２の情報処理装置を割り当てるように、対応情報を変更する変更部と、変更部が変更した対応情報を管理装置に通知するとともに、第１のメモリから読み出したデータを、第２の情報処理装置を介して管理装置に出力する出力部とを有している。
【発明の効果】
【０００９】
アクセスが集中している情報処理装置の負荷を軽減でき、情報処理システムの性能を向上できる。
【図面の簡単な説明】
【００１０】
【図１】一実施形態における情報処理システムの例を示している。
【図２】別の実施形態における情報処理システムの例を示している。
【図３】図２に示した管理テーブルの例を示している。
【図４】図２に示した負荷分散テーブルの例を示している。
【図５】図２に示した情報処理システムの動作の例を示している。
【図６】図２に示した情報処理システムにおいて、記憶装置のメモリをサーバのいずれかに割り当てる動作の例を示している。
【図７】図２に示した情報処理システムにデータを書き込むときの管理装置の動作の例を示している。
【図８】図２に示した情報処理システムからデータを読み出すときの管理装置の動作の例を示している。
【図９】図７に示した書き込み要求および図８に示した読み出し要求を受けた制御装置の動作の例を示している。
【図１０】図２に示した情報処理システムの負荷分散動作における制御装置の動作の例を示している。
【図１１】図１０に示した負荷分散動作後の管理テーブルの例を示している。
【図１２】図２に示した情報処理システムの負荷分散動作における割り当ての変更動作の例を示している。
【図１３】図１２に示したステップＳ１５０の動作の例を示している。
【図１４】別の実施形態の情報処理システムの負荷分散動作における制御装置の動作の例を示している。
【図１５】図１４に示した負荷分散動作後の管理テーブルの例を示している。
【図１６】図１４に示したステップＳ３５０Ａに伴う管理装置およびサーバによる割り当ての変更動作の例を示している。
【図１７】図１５に示した負荷分散動作後の負荷分散テーブルの例を示している。
【図１８】別の実施形態におけるサーバによる書き込み動作の例を示している。
【図１９】図１８に示した書き込み動作を実施するサーバによる読み出し動作の例を示している。
【図２０】別の実施形態の制御装置の動作の例を示している。
【図２１】別の実施形態の情報処理システムにおける負荷分散動作の例を示している。
【図２２】図２１に示した負荷分散動作における割り当ての変更時のアクセス禁止処理の例を示している。
【図２３】図２１に示した負荷分散動作における割り当ての変更動作の例を示している。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。信号が伝達される信号線には、信号名と同様の符号を使用する。
【００１２】
図１は、一実施形態における情報処理システムＩＰＳの例を示している。情報処理システムＩＰＳは、管理装置１０、複数の情報処理装置２０（２０Ａ、２０Ｂ）、制御装置３０および記憶装置４０を有している。
【００１３】
管理装置１０は、情報処理装置２０Ａ、２０Ｂのいずれかにアクセス要求を出力する。各情報処理装置２０Ａ、２０Ｂは、管理装置１０からのアクセス要求を制御装置３０に出力する。制御装置３０は、情報処理装置２０Ａ、２０Ｂのいずれかを介して管理装置１０から供給されるアクセス要求を受け、記憶装置４０のアクセスを制御する制御装置である。記憶装置４０は、情報処理装置２０Ａに割り当てられたメモリＡ（１Ａ、２Ａ）と、情報処理装置２０Ｂに割り当てられたメモリＢ（１Ｂ、２Ｂ）とを有している。
【００１４】
制御装置３０は、他のメモリよりもアクセス頻度が高いメモリの少なくとも１つ（例えば、１Ａ）を高頻度メモリとして求める。また、制御装置３０は、高頻度メモリ１Ａを割り当てている情報処理装置２０Ａを除く情報処理装置２０Ｂに割り当てられているメモリＢの中で、他のメモリよりもアクセス頻度が低いメモリの少なくとも１つ（例えば、１Ｂ）を低頻度メモリとして求める。
ここで、例えば、記憶装置４０が有するメモリの平均アクセス頻度よりも高いメモリのいずれかを高頻度メモリとしてもよく、記憶装置４０が有するメモリの平均アクセス頻度よりも低いメモリのいずれかを低頻度メモリとしてもよい。
また、制御装置３０は、メモリ１Ａ、２Ａ、１Ｂ、２Ｂ毎のアクセス回数を所定間隔で計数する計数部を有してもよい。そして、検出部３２は、アクセス回数が所定のしきい値より多いメモリの中から、アクセス回数が最も多いメモリを高頻度メモリとして求めてもよい。検出部３４は、アクセス回数が所定のしきい値より少ないメモリの中から、アクセス回数が最も少ないメモリを低頻度メモリとして求めてもよい。
【００１５】
制御装置３０は、メモリＡ、Ｂを割り当てている情報処理装置２０を示す対応情報が格納される装置情報領域において、高頻度メモリ１Ａに対応して格納されている情報を、低頻度メモリ１Ｂを割り当てている情報処理装置２０Ｂを示す情報に変更し、変更した情報を管理装置１０に通知する。通知を受けた管理装置１０は、高頻度メモリ１Ａへのアクセス要求を、情報処理装置２０Ａを介してではなく、低頻度メモリ１Ｂを割り当てている情報処理装置２０Ｂを介して制御装置３０に出力する。制御装置３０は、アクセス要求に応答して高頻度メモリ１Ａから読み出したデータを、装置情報領域において変更した情報により示される低頻度メモリ１Ｂを割り当てている情報処理装置２０Ｂを介して管理装置１０に出力する。例えば、装置情報領域は、メモリ等の記憶部に割り当てられる。なお、装置情報領域は、制御装置２０内のメモリに割り当てられてもよい。
【００１６】
この実施形態では、管理装置１０は、制御装置３０からの通知にしたがって、メモリ等の記憶部に割り当てられるアクセス変更領域を更新し、高頻度メモリ１Ａへのアクセス要求の経路を変更すればよい。このため、アクセスの集中を考慮してどの情報処理装置２０にアクセス要求を出力すればよいかを判断する必要なない。なお、アクセス変更領域は、管理装置１０内のメモリに割り当てられてもよい。
【００１７】
例えば、管理装置１０が論理回路等のハードウエアである場合、管理装置１０は、受信部１２、格納部１４および出力部１６を有している。受信部１２は、制御装置３０から高頻度メモリ１Ａおよび情報処理装置２０Ｂを示す情報を受けた場合、高頻度メモリ１Ａへのアクセス要求を、低頻度メモリ１Ｂを割り当てている情報処理装置２０Ｂに出力する旨を認識する。
【００１８】
格納部１４は、高頻度メモリ１Ａに格納されているデータに対応するキーＫ（Ｋ１、Ｋ２、Ｋ３、...）を示すキー情報とともに、情報処理装置２０Ｂを示す識別情報をアクセス変更領域に格納する。ここで、データに対応するキーは、アクセス要求（書き込み要求）とともにデータを情報処理装置２０に出力するときに、管理装置１０により予め保持される。
【００１９】
出力部１６は、管理装置１０にアクセス要求を出力するコンピュータ装置等の上位のシステムからアクセス要求とともに受けるキーが、アクセス変更領域に格納されているときに、アクセス変更領域に格納されている情報処理装置にアクセス要求を出力する。また、出力部１６は、上位のシステムから受けるキーが、アクセス変更領域に格納されていないときに、例えば、ハッシュ関数等のアルゴリズムを用いて、キーから得られるバリューが示す情報処理装置２０にアクセス要求を出力する。
【００２０】
なお、管理装置１０が、ＣＰＵ（Central Processing Unit）等のプロセッサを含み、管理装置１０の機能が、ＣＰＵが実行するプログラムにより実現される場合、受信部１２、格納部１４および出力部１６の機能は、プログラムにより実現される。
【００２１】
例えば、制御装置３０が論理回路等のハードウエアロジックにより設計される場合、制御装置３０は、検出部３２、３４、変更部３６および出力部３８を有している。検出部３２は、少なくとも１つの高頻度メモリを求め、検出部３４は、少なくとも１つの低頻度メモリを求める。変更部３６は、高頻度メモリに対応して装置情報領域に格納されている情報処理装置２０（この例では、２０Ａ）を示す情報を、低頻度メモリを割り当てている情報処理装置２０（この例では、２０Ｂ）を示す情報に変更する。
【００２２】
出力部３８は、変更した装置情報領域の内容を管理装置１０に通知する。また、出力部３８は、高頻度メモリから読み出したデータを、装置情報領域の内容に基づいて、低頻度メモリを割り当てている情報処理装置２０を介して管理装置１０に出力する。
【００２３】
また、制御装置３０が、ＣＰＵ（Central Processing Unit）等のプログラムを実行するプロセッサを含む場合、制御装置３０の検出部３２、３４、変更部３６および出力部３８の機能が、プログラムにより実現されてもよい。
【００２４】
以上、この実施形態では、管理装置１０にアクセス要求を出力する情報処理装置２０を決める等の処理を行うことなく、負荷分散テーブルＴＢＬ１を参照することで高頻度メモリ１Ａの割り当てを、情報処理装置２０Ａから情報処理装置２０Ｂに変更できる。この結果、管理装置１０の負荷を増やすことなく、アクセスが集中している情報処理装置２０Ａの負荷を軽減でき、情報処理システムＩＰＳの性能を向上できる。
【００２５】
図２は、別の実施形態における情報処理システムＩＰＳの例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【００２６】
情報処理システムＩＰＳは、負荷分散テーブルＴＢＬ１を有する管理装置ＬＢ、データベースＤＢ、複数のサーバＳＶ（ＳＶ０、ＳＶ１、ＳＶ２）、スイッチＳＷ、制御装置ＣＴＲＬ、管理テーブルＴＢＬ２および記憶装置ＭＤを有している。サーバＳＶ０−ＳＶ２は、情報処理装置の一例であり、３台に限定されない。管理テーブルＴＢＬ２は、記憶部の一例であり、制御装置ＣＴＲＬの内部メモリやレジスタの一部に含まれてもよい。制御装置ＣＴＲＬおよび管理テーブルＴＢＬ２は、記憶装置ＭＤ内に設けられてもよい。図６に示した太い破線は、ＰＣＩ Ｅｘｐｒｅｓｓ規格の信号を伝達するケーブルまたは信号線を示している。なお、太い破線は、他の規格の信号を伝達するケーブルまたは信号線が使用されてもよい。
【００２７】
情報処理システムＩＰＳは、例えばＨＴＴＰ（Hyper Text Transfer Protocol）を用いて通信を行うＷｅｂサーバであり、インターネット等のコンピュータネットワークＮＥＴに接続されたクライアントであるコンピュータＰＣ（Personal Computer）等からアクセスされる。情報処理システムＩＰＳは、アクセス要求に応じて、管理装置ＬＢおよび記憶装置ＭＤに新たなデータを格納し、あるいは、管理装置ＬＢおよび記憶装置ＭＤに格納されているデータを更新する。また、情報処理システムＩＰＳは、アクセス要求に応じて、管理装置ＬＢまたは記憶装置ＭＤに蓄積しているデータを読み出し、読み出したデータをコンピュータネットワークＮＥＴに出力する。
【００２８】
管理装置ＬＢは、プロセッサＣＰＵａ、メモリＭＥＭａ、ネットワークインタフェースカードＮＩＣおよびＰＣＩ ＥｘｐｒｅｓｓインタフェースカードＰＣＩｅＩ／Ｆを有している。管理装置ＬＢは、ネットワークインタフェースカードＮＩＣおよび光回線終端装置ＯＮＵ（Optical Network Unit）等を介してコンピュータネットワークＮＥＴに接続されている。また、管理装置ＬＢは、ネットワークインタフェースカードＮＩＣを介してデータベースＤＢおよびサーバＳＶ０−ＳＶ２のネットワークインタフェースカードＮＩＣに接続されている。
【００２９】
例えば、管理装置ＬＢ、データベースＤＢおよびサーバＳＶ０−ＳＶ２は、イーサネット（登録商標）規格のケーブルＥｔｈで相互に接続されている。なお、管理装置ＬＢ、データベースＤＢおよびサーバＳＶ０−ＳＶ２は、他の規格のケーブルで相互に接続されていてもよい。管理装置ＬＢの負荷分散テーブルＴＢＬ１は、記憶部の一例であり、メモリＭＥＭａの一部に含まれ、あるいは、プロセッサＣＰＵの内部メモリやレジスタの一部に含まれる。負荷分散テーブルＴＢＬ１については、図４で説明する。
【００３０】
なお、管理装置ＬＢは、ＡＳＩＣ（Application Specific Integrated Circuit）等のロジックＬＳＩにより設計されてもよい。管理装置ＬＢによる処理は、管理装置ＬＢがロジックＬＳＩであるとき、ハードウエアロジックを用いて実行され、管理装置ＬＢがプロセッサやマイクロコントローラであるとき、プログラムにより実行される。
【００３１】
プロセッサＣＰＵａは、メモリＭＥＭａに格納されているプログラムを実行することで動作する。プロセッサＣＰＵａは、ネットワークＮＥＴから供給されるデータを、データベースＤＢおよび記憶装置ＭＤに書き込み、データベースＤＢまたは記憶装置ＭＤから読み出されるデータをネットワークＮＥＴに出力する機能を有している。この際、管理装置ＬＢは、ハッシュ関数等の所定のアルゴリズムを用いて、クエリ等のキー毎に、アクセスするサーバＳＶを決定する。ここで、キー（クエリ）は、情報処理システムＩＰＳに対する処理要求を示す情報であり、例えば、”コンピュータ”または”サーバ”などの文字列である。
【００３２】
例えば、メモリＭＥＭａは、複数のＤＲＡＭ（Dynamic Random Access Memory）チップが搭載されたＤＩＭＭ（Dual Inline Memory Module）等のメモリモジュールである。管理装置ＬＢは、サーバＳＶ０−ＳＶ２へのアクセス要求を分散するための負荷分散装置（ロードバランサ）として機能する。但し、管理装置ＬＢは、どのサーバＳＶにアクセスするかを決める処理は行わない。このため、管理装置ＬＢの負荷を軽減できる。
【００３３】
データベースＤＢは、例えば、リレーショナルデータベースであり、プロセッサＣＰＵｃ、ネットワークインタフェースカードＮＩＣおよび少なくとも１つのハードディスクドライブ装置ＨＤを有している。
【００３４】
サーバＳＶ０−ＳＶ２は、互いに同様の構成であるため、ここでは、サーバＳＶ０について説明する。なお、管理装置ＬＢに接続されるサーバＳＶ０−ＳＶ２の数は、２以上であればよい。サーバＳＶ０は、プロセッサＣＰＵｂ、メモリＭＥＭｂ、ネットワークインタフェースカードＮＩＣおよびＰＣＩ ＥｘｐｒｅｓｓインタフェースカードＰＣＩｅＩ／Ｆを有している。プロセッサＣＰＵｂは、メモリＭＥＭｂに格納されているプログラムを実行することで動作する。プロセッサＣＰＵｂは、管理装置ＬＢから供給されるデータを、記憶装置ＭＤに書き込み、記憶装置ＭＤから読み出されるデータを管理装置ＬＢに出力する。例えば、メモリＭＥＭｂは、メモリＭＥＭａと同様に、複数のＤＲＡＭチップが搭載されたメモリモジュールである。
【００３５】
スイッチＳＷは、サーバＳＶ０−ＳＶ２を、ＰＣＩ Ｅｘｐｒｅｓｓ規格のケーブルまたは信号線を介して記憶装置ＭＤに接続するために、サーバＳＶ０−ＳＶ２に共通に設けられている。例えば、サーバＳＶ０−ＳＶ２と記憶装置ＭＤとは、ＭＲ−ＩＯＶ（Multi Root I/O Virtualization）技術を用いて、スイッチＳＷを介して接続されている。そして、各サーバＳＶ０−ＳＶ２から出力されるデータが記憶装置ＭＤに伝達され、記憶装置ＭＤから出力されるデータがサーバＳＶ０−ＳＶ２のいずれかに伝達される。
【００３６】
記憶装置ＭＤは、複数のメモリＭＥＭ（ＭＥＭ０−ＭＥＭ９）を有している。例えば、各メモリＭＥＭは、メモリＭＥＭａ、ＭＥＭｂと同様に、複数のＤＲＡＭチップが搭載されたメモリモジュールである。なお、メモリＭＥＭは、サーバＳＶの数より多く設けられればよく、１０個に限定されない。メモリＭＥＭ０−ＭＥＭ９は、管理テーブルＴＢＬ２に設定される情報に応じて、サーバＳＶ０−ＳＶ２のいずれかに割り当てられ、あるいは、予備として割り当てられる。
【００３７】
例えば、制御装置ＣＴＲＬは、ＡＳＩＣ等のロジックＬＳＩにより設計されている。管理テーブルＴＢＬ２は、ＲＡＭ（Random Access Memory）等のメモリチップ内に設けられてもよく、制御装置ＣＴＲＬの内部のレジスタやメモリ内に設けられてもよい。管理テーブルＴＢＬ２については、図３で説明する。なお、制御装置ＣＴＲＬは、ＲＯＭ（Read Only Memory）およびＲＡＭを内蔵するマイクロコントローラやプロセッサＣＰＵであってもよい。
【００３８】
制御装置ＣＴＲＬは、書き込み要求とともにサーバＳＶ０−ＳＶ２から出力されるデータ（クエリに対応するバリュー）を、クエリに関連づけてメモリＭＥＭ０−ＭＥＭ９のいずれかに書き込む。制御装置ＣＴＲＬは、各サーバＳＶ０−ＳＶ２からの読み出し要求に応じて、メモリＭＥＭ０−ＭＥＭ９のいずれかからクエリに対応するデータを読み出し、読み出したデータを、サーバＳＶ０−ＳＶ２に出力する。
【００３９】
制御装置ＣＴＲＬおよび管理テーブルＴＢＬ２は、メモリＭＥＭ０−ＭＥＭ９とともに記憶装置ＭＤ内に設けられてもよい。サーバＳＶ０−ＳＶ２、制御装置ＣＴＲＬおよび記憶装置ＭＤは、データベースＤＢに格納されるデータにアクセスするための分散キャッシュサーバとして機能する。
【００４０】
なお、図２に示した情報処理システムＩＰＳは、Ｗｅｂサーバに限定されず、データサーバ、メールサーバ、ファイルサーバ等、ＨＴＴＰプロトコル以外のプロトコルを用いて通信を行うサーバに適用されてもよい。また、情報処理システムＩＰＳは、オフィスコンピュータ、ワークステーションやメインフレームの分散キャッシュサーバに適用されてもよい。
【００４１】
図３は、図２に示した管理テーブルＴＢＬ２の例を示している。管理テーブルＴＢＬ２は、制御装置ＣＴＲＬにより読み書き可能なメモリやレジスタ内に割り当てられる。管理テーブルＴＢＬ２は、メモリＭＥＭ０−ＭＥＭ９毎に、メモリＭＥＭ０−ＭＥＭ９を割り当てているサーバ名ＳＶＩＤ、クエリ名、アクセス回数およびしきい値を格納する装置情報領域を有している。サーバ名ＳＶＩＤは、各メモリＭＥＭ０−ＭＥＭ９にアクセスするサーバＳＶ０−ＳＶ２を示すための情報が格納される。サーバ名ＳＶＩＤは、図６に示す情報処理システムＩＰＳの割り当て動作時に、管理装置ＬＢからの通知に基づいて制御装置ＣＴＲＬにより管理テーブルＴＢＬ２に格納される。
【００４２】
クエリが格納されるクエリ名の領域は、各メモリＭＥＭのアドレス空間に対応して区画されている。クエリに対応するデータのメモリＭＥＭ内の格納先は、クエリ名の領域内のクエリの格納位置により検出される。図３に示す例では、クエリＡ、Ｂ、Ｃは、メモリＭＥＭ０の先頭の３ブロックにそれぞれ格納され、クエリＤ、Ｅ、Ｆは、メモリＭＥＭ１の２番目、４番目、７番目にそれぞれ格納されていることを示している。クエリ名の空白の領域は、データが書き込まれていないとき、データが消去されているとき、またはタイムアウトによりデータが無効になったことを示している。
【００４３】
制御装置ＣＴＲＬは、サーバＳＶからクエリとともにデータの書き込み要求を受けたとき、サーバ名ＳＶＩＤに対応する複数のメモリＭＥＭの１つを選択し、対応するクエリ名の領域にクエリを書き込む。例えば、制御装置ＣＴＲＬは、クエリ名の領域を参照することで、空き領域の多いメモリＭＥＭを求め、求めたメモリＭＥＭに対応するクエリ名の領域にクエリを書き込む。あるいは、制御装置ＣＴＲＬは、ラウンドロビン等の手法を用いて、サーバ名ＳＶＩＤに対応する複数のメモリＭＥＭのクエリ名の領域に、順次クエリを書き込む。そして、制御装置ＣＴＲＬは、クエリに対応するデータ（バリュー）を、クエリを格納したクエリ名の領域に対応するメモリＭＥＭの領域に書き込む。
【００４４】
一方、制御装置ＣＴＲＬは、サーバＳＶからデータの読み出し要求を受けたとき、読み出し要求とともに受けたクエリを用いて、クエリ名の領域を検索し、クエリに対応するデータが格納されているメモリＭＥＭのブロック領域を求める。そして、制御装置ＣＴＲＬは、求めたメモリＭＥＭのブロック領域からクエリに対応するデータを読み出し、読み出したデータを、読み出し要求を受けたサーバＳＶに出力する。
【００４５】
アクセス回数は、メモリＭＥＭ毎のアクセス回数を示している。例えば、読み出し要求によるメモリＭＥＭへのアクセスが、書き込み要求によるメモリＭＥＭへのアクセスより十分に多い情報処理システムＩＰＳでは、読み出し要求の数がアクセス回数として登録されてもよい。このとき、制御装置ＣＴＲＬは、アクセス回数を読み出し要求毎にインクリメントする。読み出し要求の数と書き込み要求の数に大きな差がない情報処理システムＩＰＳでは、読み出し要求と書き込み要求の数の合計がアクセス回数として登録されてもよい。このとき、制御装置ＣＴＲＬは、アクセス回数を読み出し要求毎および書き込み要求毎にインクリメントする。
【００４６】
制御装置ＣＴＲＬは、所定の期間が経過したときにアクセス回数をリセットし、図９に示す負荷分散動作時にアクセス回数をリセットする。これにより、アクセス回数により、各メモリＭＥＭのアクセス頻度を示すことができる。アクセス回数が他のメモリＭＥＭより多いメモリＭＥＭはアクセス頻度が高いと判断され、アクセス回数が他のメモリＭＥＭより少ないメモリＭＥＭはアクセス頻度が低いと判断される。制御装置ＣＴＲＬが、アクセス回数をインクリメントし、所定の期間毎にリセットすることで、メモリＭＥＭ毎のアクセス回数を所定間隔で計数する動作は、制御装置ＣＴＲＬの計数部により実施される。
【００４７】
しきい値は、各メモリＭＥＭのアクセス頻度の高低を判定するために使用される値であり、図６に示す情報処理システムＩＰＳの割り当て動作時に設定される。アクセス頻度は、アクセス回数がしきい値より大きいときに高いと判定され、アクセス回数がしきい値より低いときに低いと判定される。
【００４８】
この例では、メモリＭＥＭ０−ＭＥＭ９のしきい値は、全て同様の値に設定されているが、しきい値は、メモリＭＥＭ０−ＭＥＭ９毎に相違させてもよい。例えば、プロセッサＣＰＵｂの性能がサーバＳＶ毎に異なる場合、他のＣＰＵｂよりも性能の高いＣＰＵｂを含むサーバＳＶによりアクセスされるメモリＭＥＭは、管理テーブルＴＢＬ２のしきい値を高く設定してもよい。また、全てのメモリＭＥＭ０−ＭＥＭ９でしきい値が同様である場合、管理テーブルＴＢＬ２におけるメモリＭＥＭ０−ＭＥＭ９に共通な領域にしきい値を設定してもよい。
【００４９】
図４は、図２に示した負荷分散テーブルＴＢＬ１の例を示している。負荷分散テーブルＴＢＬ１は、クエリ名、アクセスするサーバ名ＳＶＩＤ、時間カウンタ値およびアクセス回数を格納する複数のアクセス変更領域を有している。
【００５０】
クエリ名の領域は、アクセス頻度が他のサーバＳＶより高いサーバＳＶに割り当てられているクエリに対応するデータを、アクセス頻度が他のサーバＳＶより低いサーバＳＶを経由してアクセスするために設けられる。管理装置ＬＢは、負荷分散テーブルＴＢＬ１に登録されているクエリに対応するデータをアクセスするときに、ハッシュ関数等のアルゴリズムを使用して求めたサーバＳＶではなく、サーバ名ＳＶＩＤの欄に格納されているサーバＳＶにアクセス要求を発行する。これにより、後述するように、ハッシュ関数等のアルゴリズムを変更することなく、アクセスが集中しているサーバＳＶの負荷を分散できる。負荷分散テーブルＴＢＬ１よるサーバＳＶの負荷の分散方法は、図１０から図１３で説明する。
【００５１】
時間カウンタ値およびアクセス回数は、負荷分散テーブルＴＢＬ１に空き領域がない状態で、クエリの割り当てを、アクセスが集中しているサーバＳＶから別のサーバＳＶに変更するときに、負荷分散テーブルＴＢＬ１に空き領域を作るために使用される。空き領域の作り方は、図１３で説明する。
【００５２】
なお、負荷分散テーブルＴＢＬ１に空き領域を作るために、格納されているクエリ名を所定間隔でランダムに消去し、または順番に消去する場合、時間カウンタ値およびアクセス回数の領域は設けられなくてもよい。あるいは、負荷分散テーブルＴＢＬ１のサイズが大きく、全てのクエリ名を負荷分散テーブルＴＢＬ１に登録可能なとき、時間カウンタ値およびアクセス回数の領域は設けられなくてもよい。
【００５３】
図５は、図２に示した情報処理システムＩＰＳの動作の例を示している。図５に示す動作は、管理装置ＬＢ、サーバＳＶおよび制御装置ＣＴＲＬが協業して動作することにより実施される。
【００５４】
まず、ステップＳ１０では、情報処理システムＩＰＳは、メモリＭＥＭ０−ＭＥＭ９のサーバＳＶ０−ＳＶ２への割り当てを実施する。例えば、ステップＳ１０は、情報処理システムＩＰＳのパワーオン時またはリセット時に実施される。ステップＳ１０の動作の例は、図６に記載する。
【００５５】
次に、ステップＳ２０では、情報処理システムＩＰＳは、コンピュータネットワークＮＥＴに接続されたコンピュータＰＣ等からのアクセス要求（読み出し要求または書き込み要求）に対する処理を実施する。管理装置ＬＢは、クエリとともに読み出し要求を受けたときに、サーバＳＶ０−ＳＶ２のいずれかを介して記憶装置ＭＤからクエリに対応するデータを読み出し、またはデータベースＤＢからクエリに対応するデータを読み出す。管理装置ＬＢは、読み出したデータをコンピュータＰＣ等に送信する。管理装置ＬＢは、クエリおよびデータとともに書き込み要求を受けたときに、サーバＳＶ０−ＳＶ２のいずれかを介して記憶装置ＭＤにデータを書き込み、データベースＤＢにデータを書き込む。ステップＳ２０の動作の例は、図７から図９に記載する。
【００５６】
ステップＳ３０では、情報処理システムＩＰＳは、所定時間が経過したか否かを判定する。所定時間が経過したとき、ステップＳ４０の負荷分散動作が実施される。すなわち、負荷分散動作は、所定の間隔で実施される。所定時間が経過するまで、情報処理システムＩＰＳは、ステップＳ２０を繰り返し実施する。
【００５７】
ステップＳ４０の負荷分散動作では、各サーバＳＶ０−ＳＶ２へのアクセスの集中度に応じて、クエリ（すなわちメモリＭＥＭ）のサーバＳＶ１−ＳＶ２への割り当てが変更される。ステップＳ４０の動作の例は、図１０から図１３に記載する。
【００５８】
図６は、図２に示した情報処理システムＩＰＳにおいて、記憶装置ＭＤのメモリＭＥＭをサーバＳＶのいずれかに割り当てる動作の例を示している。図６に示す管理装置ＬＢの処理は、図２に示したプロセッサＣＰＵａがプログラムを実行することで実施される。図６に示すサーバＳＶの処理は、図２に示したプロセッサＣＰＵｂがプログラムをそれぞれ実行することで実施される。なお、管理装置ＬＢの処理およびサーバＳＶの処理は、ハードウエアロジックを用いた処理により実施されてもよい。図６に示す制御装置ＣＴＲＬによる処理は、制御装置ＣＴＲＬがＡＳＩＣ等のロジックＬＳＩであるとき、ハードウエアロジックを用いて実行され、制御装置ＣＴＲＬがプロセッサやマイクロコントローラであるとき、プログラムにより実行される。
【００５９】
先ず、ステップＳ１００において、管理装置ＬＢは、記憶装置ＭＤに搭載されているメモリＭＥＭの総数を問い合わせるパケットを、サーバＳＶ０−ＳＶ２のいずれかに出力する。例えば、問い合わせを受けるサーバＳＶは、サーバ名ＳＶＩＤの番号が最も小さいサーバＳＶ０でもよい。ステップＳ２００において、問い合わせを受けたサーバＳＶは、記憶装置ＭＤの制御装置ＣＴＲＬに、記憶装置ＭＤに搭載されているメモリＭＥＭの総数を問い合わせるパケットを出力する。
【００６０】
ステップＳ３００において、制御装置ＣＴＲＬは、問い合わせを発行したサーバＳＶにメモリＭＥＭの総数を通知する。例えば、制御装置ＣＴＲＬは、メモリＭＥＭの総数を格納しているレジスタを有している。メモリＭＥＭが増設可能なメモリモジュールのとき、制御装置ＣＴＲＬは、メモリスロットに装着されたメモリモジュールを検出することで、メモリＭＥＭの総数を判断してもよい。
【００６１】
ステップＳ２０２において、問い合わせを発行したサーバＳＶは、制御装置ＣＴＲＬから受けたメモリＭＥＭの総数を、管理装置ＬＢに通知する。ステップＳ１０２において、管理装置ＬＢは、メモリＭＥＭの総数をサーバＳＶの数で除し、例えば、小数点以下を切り下げて整数値を求め、各サーバＳＶに割り当てるメモリＭＥＭの数とする。例えば、メモリＭＥＭの総数が１０個で、サーバＳＶの数が３個のとき、３個のメモリＭＥＭが各サーバＳＶに割り当てられ、余った１個のメモリＭＥＭが予備として確保される。
【００６２】
ステップＳ１０４において、管理装置ＬＢは、各サーバＳＶに割り当てるメモリＭＥＭのＩＤ（Identification）を決める。メモリＭＥＭのＩＤは、図２に示したメモリＭＥＭの末尾の番号である。例えば、管理装置ＬＢは、図３に示したように、メモリＭＥＭ０−ＭＥＭ８を、番号が小さい順から３つずつサーバＳＶ０−ＳＶ２にそれぞれ割り当てることを決定し、メモリＭＥＭ９を予備として確保することを決定する。次に、ステップＳ１０６において、管理装置ＬＢは、各サーバＳＶ０−ＳＶ２に割り当てるメモリＭＥＭのＩＤを各サーバＳＶ０−ＳＶ２に通知する。
【００６３】
ステップＳ２０４において、各サーバＳＶ０−ＳＶ２は、通知されたメモリＭＥＭのＩＤを制御装置ＣＴＲＬに通知する。ステップＳ３０２において、制御装置ＣＴＲＬは、メモリＭＥＭにアクセスするサーバＳＶのＩＤを、メモリＭＥＭ毎に管理テーブルＴＢＬ２のサーバ名ＳＶＩＤの領域に登録する。次に、ステップＳ３０４において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２に所定のしきい値を登録する。図６の処理の実施により、管理テーブルＴＢＬ２は、初期状態になる。初期状態では、図３に示したクエリ名およびアクセス回数の領域は空である。
【００６４】
図７は、図２に示した情報処理システムＩＰＳにデータを書き込むときの管理装置ＬＢの動作の例を示している。例えば、図７に示す処理は、図２に示したプロセッサＣＰＵａがプログラムを実行することで実施される。
【００６５】
ステップＳ１１０において、管理装置ＬＢは、クエリおよびデータとともに書き込み要求を受けたとき、負荷分散テーブルＴＢＬ１にクエリが登録されているか否かを判定する。負荷分散テーブルＴＢＬ１にクエリが登録されているとき、処理はステップＳ１１６に移行する。負荷分散テーブルＴＢＬ１にクエリが登録されていないとき、処理はステップＳ１１２に移行する。
【００６６】
ステップＳ１１２において、管理装置ＬＢは、クエリをハッシュ関数に与え、ハッシュ値を求める。ステップＳ１１４において、例えば、管理装置ＬＢは、ハッシュ値をサーバＳＶに割り当てられたサーバＳＶの数（この例では”３”）で除して余りを求め、余りと同じ値のＩＤを有するサーバＳＶを、アクセスするサーバＳＶとする。
【００６７】
例えば、ハッシュ値が１６進数で”Ｆ１２Ｄ”（１０進数で６１７４１）のとき、余りは”１”であり、サーバＳＶ１がアクセスされる。なお、クエリをハッシュ関数以外のアルゴリズムに与え、アクセスするサーバＳＶのＩＤを示す値を求めてもよい。あるいは、アクセスするサーバＳＶのＩＤを直接求めるためのハッシュ関数を用いてもよい。
【００６８】
一方、ステップＳ１１６において、管理装置ＬＢは、クエリが負荷分散テーブルＴＢＬ１に登録されているとき、クエリに対応するサーバ名ＳＶＩＤの領域に登録されているサーバＳＶを、アクセスするサーバＳＶとする。なお、管理装置ＬＢは、クエリに対応するデータが書き込まれるメモリＭＥＭを把握できない。このため、クエリに対応するデータが書き込まれるメモリＭＥＭは、サーバＳＶまたは制御装置ＣＴＲＬにより決定される。
【００６９】
管理装置ＬＢは、負荷分散テーブルＴＢＬ１を参照することで、書き込み要求を発行するサーバＳＶを認識できる。このため、管理装置ＬＢは、サーバＳＶの負荷を分散させるために、アクセス要求を出力するサーバＳＶを決める処理を行う必要はない。したがって、管理装置ＬＢの負荷を増やすことなく、情報処理システムＩＰＳの性能を向上できる。
【００７０】
ステップＳ１１８において、管理装置ＬＢは、クエリに対応するデータをメモリＭＥＭに書き込むために、ステップＳ１１４またはＳ１１６で求めたサーバＳＶに、クエリ、データとともに書き込み要求を発行する。書き込み要求を受けたサーバＳＶは、クエリ、データとともに書き込み要求を制御装置ＣＴＲＬに出力する。制御装置ＣＴＲＬによるデータの書き込み動作については、図９で説明する。
【００７１】
ステップＳ１２０において、管理装置ＬＢは、サーバＳＶ（すなわちメモリＭＥＭ）とデータベースＤＢとに格納されているデータの整合性を保つために、メモリＭＥＭに書き込んだデータと同様のデータを、クエリとともにデータベースＤＢに書き込む。なお、データベースＤＢへのデータの書き込み時期は、メモリＭＥＭへのデータの書き込みと同期していなくてもよい。例えば、クエリに対応するフラグを管理装置ＬＢに設け、管理装置ＬＢは、メモリＭＥＭに書き込んだデータをデータベースＤＢに書き込むまでの期間、メモリＭＥＭのデータとデータベースＤＢのデータとが一致しない旨のダーティフラグをセットする。このダーティフラグにより、サーバＳＶとデータベースＤＢとの整合性が取れていない場合にも、ダーティフラグがセットされている場合にはデータベースＤＢからのデータの読み出しを抑止することにより、誤ったデータがデータベースＤＢから読み出されることを防止できる。例えば、管理装置ＬＢは、サーバＳＶとデータベースＤＢの整合性を保つために、ダーティフラグがセットされているクエリに対応するデータの消去命令を受けたとき、メモリＭＥＭ内のデータを消去する処理とともに、データベースＤＢ内のデータを消去する処理を実施する。
【００７２】
なお、管理装置ＬＢによる処理がハードウエアロジックにより実施される場合、ステップＳ１１０、Ｓ１１２、Ｓ１１４、Ｓ１１６に基づいて、ステップＳ１１８でサーバＳＶに書き込み要求を発行する動作は、管理装置ＬＢの出力部により実施される。
【００７３】
図８は、図２に示した情報処理システムＩＰＳからデータを読み出すときの管理装置ＬＢの動作の例を示している。例えば、図８に示す処理は、図２に示したプロセッサＣＰＵａがプログラムを実行することで実施される。ステップＳ１３０、Ｓ１３２、Ｓ１３４、Ｓ１３６は、図７に示したステップＳ１１０、Ｓ１１２、Ｓ１１４、Ｓ１１６と同様の処理であるため、説明は省略する。
【００７４】
ステップＳ１３８において、管理装置ＬＢは、クエリに対応するデータをメモリＭＥＭから読み出すために、ステップＳ１３４またはＳ１３６で求めたサーバＳＶに、クエリとともに読み出し要求を発行する。読み出し要求を受けたサーバＳＶは、クエリとともに読み出し要求を制御装置ＣＴＲＬに出力する。制御装置ＣＴＲＬによるデータの読み出し動作については、図９で説明する。
【００７５】
ステップＳ１４０において、管理装置ＬＢは、クエリに対応するデータをサーバＳＶから受信したとき、処理をステップＳ１４４に移行する。管理装置ＬＢは、クエリに対応するデータがサーバＳＶ（すなわちメモリＭＥＭ）に格納されておらず、データを受信できないとき、処理をステップＳ１４２に移行する。クエリに対応するデータがサーバＳＶに格納されていないことを示す情報は、読み出し要求の応答（例えば、読み出しエラー）としてサーバＳＶから管理装置ＬＢに通知される。
【００７６】
ステップＳ１４２において、管理装置ＬＢは、データベースＤＢにクエリとともに読み出し要求を発行し、クエリに対応するデータをデータベースＤＢから読み出す。次に、ステップＳ１４４において、管理装置ＬＢは、読み出したデータをコンピュータネットワークＮＥＴに接続されたコンピュータＰＣ等に送信する。
【００７７】
なお、管理装置ＬＢによる処理がハードウエアロジックにより実施される場合、ステップＳ１３０、Ｓ１３２、Ｓ１３４、Ｓ１３６に基づいて、ステップＳ１３８でサーバＳＶに読み出し要求を発行する動作は、管理装置ＬＢの出力部により実施される。
【００７８】
図９は、図７に示した書き込み要求および図８に示した読み出し要求を受けた制御装置ＣＴＲＬの動作の例を示している。図９に示す処理は、制御装置ＣＴＲＬがＡＳＩＣ等のロジックＬＳＩであるとき、ハードウエアロジックを用いて実行され、制御装置ＣＴＲＬがプログラムを実行するプロセッサやマイクロコントローラであるとき、プログラムにより実行される。
【００７９】
ステップＳ３１０において、制御装置ＣＴＲＬは、サーバＳＶから読み出し要求を受けたときに、処理をステップＳ３３０に移行する。ステップＳ３１２において、制御装置ＣＴＲＬは、サーバＳＶから書き込み要求を受けたときに、処理をステップＳ３１４に移行する。制御装置ＣＴＲＬは、サーバＳＶから読み出し要求および書き込み要求のいずれも受けていないとき、処理を終了する。
【００８０】
ステップＳ３１４において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２を参照して、書き込み要求を発行したサーバＳＶに対応するメモリＭＥＭの空きをチェックする。例えば、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２のクエリ名の領域に空きがあるとき、メモリＭＥＭに空きがあると判定する。また、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２のクエリ名の全ての領域にクエリが登録されているとき、メモリＭＥＭに空きがないと判定する。ステップＳ３１６において、制御装置ＣＴＲＬは、メモリＭＥＭに空きがあるとき、処理をステップＳ３１８に移行し、メモリＭＥＭに空きがないとき、処理をステップＳ３２２に移行する。
【００８１】
ステップＳ３１８において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２を参照し、サーバＳＶに対応する複数のメモリＭＥＭの中で、アクセス回数が最も少ないメモリを選択する。次に、ステップＳ３２０において、制御装置ＣＴＲＬは、選択したメモリＭＥＭにデータを書き込む。この際、制御装置ＣＴＲＬは、例えば、ラウンドロビン手法を用いて、データを書き込むメモリＭＥＭを順次選択する。
【００８２】
アクセス回数が最も少ないメモリＭＥＭにデータを書き込むことで、サーバＳＶによりアクセスされる複数のメモリＭＥＭのアクセス頻度を平均化できる。一般に、メモリＭＥＭは、読み出し要求を受けてからデータを出力するまでのクロックサイクル数（レイテンシ）が決められている。ランダムアクセスによる読み出し動作が連続して実行されるとき、１つのメモリＭＥＭに読み出し要求を発行してからデータが出力されるまでに、別のメモリＭＥＭに読み出し要求を発行することで、データ転送レートは従来よりも高くなる。このため、読み出し効率を向上するために、メモリＭＥＭに格納されるデータの数は、均等であることが望ましい。
【００８３】
なお、記憶装置ＭＤの消費電力を抑える要望がある場合、ステップＳ３１８において、アクセス回数が最も多いメモリＭＥＭを選択し、あるいは、１つのメモリＭＥＭを選択して、データを所定のメモリＭＥＭに集中的に書き込んでもよい。これにより、データが格納されないメモリＭＥＭを低消費電力モードに設定でき、記憶装置ＭＤの消費電力を抑えることができる。低消費電力モードでは、メモリＭＥＭの内部電圧生成回路等の動作が停止し、あるいは、ＤＲＡＭではリフレッシュ動作が禁止されることにより消費電力を低減できる。
【００８４】
一方、メモリＭＥＭに空きがないとき、ステップＳ３２２において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２を参照し、サーバＳＶに対応する複数のメモリＭＥＭの中で、アクセス回数の最も少ないメモリＭＥＭを選択する。次に、ステップＳ３２４において、制御装置ＣＴＲＬは、例えば、ＬＲＵ（Least Recently Used）手法を用いて、選択したメモリＭＥＭに格納されている最も古いデータを消去する。ここで、最も古いデータは、最も長い期間アクセスされていないデータである。ＬＲＵ手法を用いるために、クエリに対応するデータ毎に、最後にアクセスされた時刻を示す情報が、メモリＭＥＭに格納されている。
【００８５】
ステップＳ３２６において、制御装置ＣＴＲＬは、データを消去した領域に、クエリに対応する新たなデータを書き込む。ステップＳ３２８において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２において、データを書き込んだメモリＭＥＭの領域に対応するクエリ名の領域に、クエリを書き込む。
【００８６】
一方、ステップＳ３３０において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２のクエリ名の領域を参照し、読み出し要求とともに受けたクエリに対応するデータが格納されているメモリＭＥＭのＩＤと、メモリＭＥＭ内の格納場所を求める。管理テーブルＴＢＬ２のクエリ名の領域に、サーバＳＶから送られたクエリがないとき、クエリに対応するデータが格納されていないことを示すミス情報を保持する。ステップＳ３３２において、制御装置ＣＴＲＬは、求めた格納場所からデータを読み出す。但し、制御装置ＣＴＲＬは、ミス情報を保持しているとき、データの読み出し処理を実施しない。
【００８７】
ステップＳ３３４において、制御装置ＣＴＲＬは、読み出したデータをサーバＳＶに送信する。なお、ステップＳ３３０において、ミス情報が保持されたとき、制御装置ＣＴＲＬは、クエリに対応するデータが格納されていないことを示す情報をサーバＳＶに送信する。
【００８８】
図１０は、図２に示した情報処理システムＩＰＳの負荷分散動作における制御装置ＣＴＲＬの動作の例を示している。図１０に示す処理は、図９と同様に、制御装置ＣＴＲＬのハードウエアロジックの動作、または制御装置ＣＴＲＬが実行するプログラムにより実施される。図１０に示す処理は、所定間隔（例えば、３０分間隔）で実施される。
【００８９】
先ず、ステップＳ３４０において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２を参照し、アクセス回数がしきい値より多いメモリＭＥＭを選択する。図３に示した管理テーブルＴＢＬ２の例では、メモリＭＥＭ０、ＭＥＭ２が選択される。ステップＳ３４２において、制御装置ＣＴＲＬは、選択されたメモリＭＥＭがあるとき、処理をステップＳ３４４に移行し、選択されたメモリＭＥＭがないとき、処理をステップＳ３５２に移行する。
【００９０】
ステップＳ３４４において、制御装置ＣＴＲＬは、選択したメモリＭＥＭのうち、アクセス回数が最も多いメモリＭＥＭを、サーバＳＶの割り当てを変更するメモリＭＥＭｍａｘ（変更対象）として選択する。メモリＭＥＭｍａｘは、アクセス頻度が他のメモリＭＥＭより高い高頻度メモリとして認識される。図３に示した管理テーブルＴＢＬ２の例では、メモリＭＥＭ０が選択される。アクセス回数が最も多いメモリＭＥＭが複数存在するとき、例えば、制御装置ＣＴＲＬは、ＩＤが最も小さいメモリＭＥＭをメモリＭＥＭｍａｘとして選択する。なお、制御装置ＣＴＲＬは、アクセス回数が最も多い２つのメモリＭＥＭをメモリＭＥＭｍａｘとして選択してもよい。
【００９１】
ステップＳ３４６において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２を参照し、メモリＭＥＭｍａｘを割り当てているサーバＳＶを除くサーバＳＶの中で、アクセス回数がしきい値より少ないメモリＭＥＭを選択する。さらに、制御装置ＣＴＲＬは、アクセス回数がしきい値より少ないメモリＭＥＭの中から、アクセス回数が最も少ないメモリＭＥＭをメモリＭＥＭｍｉｎとして選択する。メモリＭＥＭｍｉｎは、アクセス頻度が他のメモリＭＥＭより低い低頻度メモリとして認識される。
【００９２】
メモリＭＥＭｍａｘを割り当てているサーバＳＶを除くサーバＳＶの中で、アクセス回数がしきい値より少ないメモリＭＥＭがないとき、図１０には示していないが、ステップＳ３４８、Ｓ３５０の処理を省略して、ステップＳ３５２の処理に移行する。なお、制御装置ＣＴＲＬは、アクセス回数が最も少ない２つのメモリＭＥＭをメモリＭＥＭｍｉｎとして選択してもよい。
【００９３】
図３に示した管理テーブルＴＢＬ２の例では、メモリＭＥＭ０を割り当てているサーバＳＶ０を除くサーバＳＶ１、ＳＶ３に割り当てられているメモリＭＥＭの中から、アクセス回数が最も少ないメモリＭＥＭ３がメモリＭＥＭｍｉｎとして選択される。アクセス回数が最も少ないメモリＭＥＭが複数存在するとき、例えば、制御装置ＣＴＲＬは、ＩＤが最も小さいメモリＭＥＭをメモリＭＥＭｍｉｎとして選択する。
【００９４】
ステップＳ３４８において、制御装置ＣＴＲＬは、メモリＭＥＭｍａｘを割り当てているサーバＳＶを、メモリＭＥＭｍｉｎを割り当てているサーバＳＶに変更するために、管理テーブルＴＢＬ２を書き換える。例えば、制御装置ＣＴＲＬは、メモリＭＥＭｍａｘに対応するサーバ名ＳＶＩＤの領域に格納されているサーバＳＶのＩＤを、メモリＭＥＭｍｉｎに割り当てているサーバＳＶのＩＤに書き換える。管理テーブルＴＢＬ２の書き換えの例は、図１１に示す。
【００９５】
ステップＳ３５０において、制御装置ＣＴＲＬは、メモリＭＥＭｍａｘの割り当ての変更を、アクセス回数が最も少ないメモリＭＥＭを割り当てているサーバＳＶを介して管理装置ＬＢに通知する。例えば、制御装置ＣＴＲＬは、メモリＭＥＭｍａｘに対応して管理テーブルＴＢＬ２に格納されている全てのクエリ名をサーバＳＶに通知する。ステップＳ３５２において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２の全てのアクセス回数をリセットする。
【００９６】
アクセス頻度の高いメモリＭＥＭを、アクセス頻度の低いメモリＭＥＭに対応する別のサーバＳＶに割り当てることで、上述した実施形態と同様に、どのサーバＳＶにアクセスするかを決める処理を管理装置ＬＢにより行うことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。この結果、管理装置ＬＢの負荷を増やすことなく、情報処理システムＩＰＳの性能を向上できる。
【００９７】
なお、制御装置ＣＴＲＬによる処理がハードウエアロジックにより実施される場合、ステップＳ３４０、Ｓ３４４による高頻度メモリＭＥＭｍａｘを選択する動作は、制御装置ＣＴＲＬの第１検出部により実施される。ステップＳ３４６による低頻度メモリＭＥＭｍｉｎを選択する動作は、制御装置ＣＴＲＬの第２検出部により実施される。ステップＳ３４８による管理テーブルＴＢＬ２に格納されているサーバ名ＳＶＩＤを変更する動作は、制御装置ＣＴＲＬの変更部により実施される。ステップＳ３５０による管理テーブルＴＢＬ２の情報をサーバＳＶを介して管理装置ＬＢに通知する動作は、制御装置ＣＴＲＬの出力部により実施される。制御装置ＣＴＲＬの出力部は、アクセス要求に応答してメモリＭＥＭ０−ＭＥＭ９のいずれかから読み出したデータを、サーバＳＶを介して管理装置ＬＢに出力する機能も有する。
【００９８】
ステップＳ３４０で、アクセス回数がしきい値より多いメモリＭＥＭがないとき、またはステップＳ３４６で、アクセス回数がしきい値より少ないメモリＭＥＭがないとき、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２を変更しない。これは、メモリＭＥＭ毎のアクセス回数に顕著な差がないとき、メモリＭＥＭを割り当てているサーバＳＶが変更されても、サーバＳＶの負荷の削減効果は小さいためである。
【００９９】
これに対して、メモリＭＥＭの割り当てを変更するとき、制御装置ＣＴＲＬ、サーバＳＶ、管理装置ＬＢは、図１２に示すメモリＭＥＭの割り当てを変更するための処理をする。このため、制御装置ＣＴＲＬ、サーバＳＶ、管理装置ＬＢのアクセス要求に対する処理能力は、一時的に低下する。メモリＭＥＭの割り当ての変更の要否をしきい値により判断することで、サーバＳＶの負荷の削減効果が小さいときにメモリＭＥＭの割り当ての変更を禁止することにより、アクセス要求に対する処理能力が低下することを防止できる。
【０１００】
なお、メモリＭＥＭの割り当てを変更する処理に要する制御装置ＣＴＲＬ、サーバＳＶ、管理装置ＬＢの負荷が、アクセス要求に対する処理をするための負荷より十分に小さいとき、しきい値を用いなくてもよい。この場合、アクセス回数が最も多いメモリＭＥＭの割り当てが、メモリＭＥＭのアクセス回数が最も少ないメモリＭＥＭを割り当てている別のサーバＳＶに変更される。
【０１０１】
図１１は、図１０に示した負荷分散動作後の管理テーブルＴＢＬ２の例を示している。例えば、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２において、アクセス回数が最も多いメモリＭＥＭｍａｘ（＝ＭＥＭ０）に対応するサーバ名ＳＶＩＤをＳＶ０からＳＶ１に変更する。この後、図１０に示したステップＳ３５２において、制御装置ＣＴＲＬは、管理テーブルＴＢＬ２の全てのアクセス回数をゼロにリセットする。なお、図１０では、説明を分かりやすくするために、メモリＭＥＭ０に対応するサーバ名ＳＶＩＤの欄に、ＳＶ０がＳＶ１に変更されることを矢印で示し、アクセス回数の欄に、アクセス回数がゼロにリセットされることを矢印で示している。
【０１０２】
図１２は、図２に示した情報処理システムＩＰＳの負荷分散動作における割り当ての変更動作の例を示している。図６と同様に、管理装置ＬＢの処理は、プロセッサＣＰＵａがプログラムを実行することで実施され、サーバＳＶの処理は、プロセッサＣＰＵｂがプログラムを実行することで実施される。なお、管理装置ＬＢの処理およびサーバＳＶの処理は、ハードウエア処理により実施されてもよい。制御装置ＣＴＲＬの処理は、ハードウエアロジックの動作、または制御装置ＣＴＲＬが実行するプログラムにより実施される。
【０１０３】
制御装置ＣＴＲＬが実施するステップＳ３５０の処理は、図１０に示したステップＳ３５０と同様である。ステップＳ２１０において、メモリＭＥＭｍｉｎを割り当てているサーバＳＶは、制御装置ＣＴＲＬからの割り当ての変更通知として、メモリＭＥＭｍａｘに対応して管理テーブルＴＢＬ２に格納されている全てのクエリ名を受ける。ステップＳ２１２において、メモリＭＥＭｍｉｎを割り当てているサーバＳＶは、制御装置ＣＴＲＬから受けたクエリ名を管理装置ＬＢに通知する。
【０１０４】
メモリＭＥＭｍｉｎを割り当てているサーバＳＶは、メモリＭＥＭｍａｘを割り当てているサーバＳＶよりもアクセス頻度が低い可能性が高い。割り当ての変更動作を、メモリＭＥＭｍｉｎを割り当てているサーバＳＶを用いて実施することで、アクセスが集中しているサーバＳＶに余分な負荷が掛かることを防止でき、サーバＳＶの処理効率が低下することを防止できる。
【０１０５】
ステップＳ１５０において、管理装置ＬＢは、メモリＭＥＭｍｉｎを割り当てているサーバＳＶからクエリ名の通知を受ける。管理装置ＬＢは、受けたクエリ名を負荷分散テーブルＴＢＬ１に格納し、クエリ名を受けたサーバＳＶのＩＤをクエリ名毎にサーバ名ＳＶＩＤの領域に格納する。これにより、メモリＭＥＭｍａｘに対するアクセスは、サーバ名ＳＶＩＤに書き込まれたメモリＭＥＭｍｉｎにアクセスするサーバＳＶを経由して実施される。
【０１０６】
なお、管理装置ＬＢによる処理がハードウエアロジックにより実施される場合、ステップＳ１５０でサーバＳＶからの情報を受ける動作は、管理装置ＬＢの受信部により実施される。また、ステップＳ１５０でサーバＳＶから受けた情報に基づいて負荷分散テーブルＴＢＬ１を更新する動作は、管理装置ＬＢの格納部により実施される。
【０１０７】
図１３は、図１２に示したステップＳ１５０の動作の例を示している。図１３に示す処理は、図２に示したプロセッサＣＰＵａがプログラムを実行することで実施される。なお、図１３に示す処理は、管理装置ＬＢのハードウエア処理により実施されてもよい。
【０１０８】
ステップＳ１６４において、管理装置ＬＢは、サーバＳＶからの通知を受け、負荷分散テーブルＴＢＬ１を参照する。ステップＳ１６６において、管理装置ＬＢは、負荷分散テーブルＴＢＬ１の空きが、サーバＳＶから受けたクエリの数以上あるとき、処理をステップＳ１７４に移行する。管理装置ＬＢは、負荷分散テーブルＴＢＬ１の空きが、サーバＳＶから受けたクエリの数より少ないとき、処理をステップＳ１６８に移行する。
【０１０９】
ステップＳ１６８において、管理装置ＬＢは、負荷分散テーブルＴＢＬ１を参照し、クエリ名毎に、アクセス回数を時間カウンタ値で除して、アクセス頻度を算出する。ステップＳ１７０において、管理装置ＬＢは、アクセス頻度の低い順にクエリを削除する対象に決定する。この際、削除する対象のクエリの数は、サーバＳＶから受けたクエリの数またはそれ以上に設定される。
【０１１０】
ステップＳ１７２において、管理装置ＬＢは、負荷分散テーブルＴＢＬ１から削除対象のクエリと、その関連情報、すなわち、サーバ名ＳＶＩＤ、時間カウンタ値、アクセス回数を削除する。ステップＳ１７４において、管理装置ＬＢは、負荷分散テーブルＴＢＬ１の空き領域に、サーバＳＶから受けたクエリ名を格納し、クエリ名毎に、通知を受けたサーバＳＶのＩＤをサーバ名ＳＶＩＤとして登録する。ステップＳ１７６において、管理装置ＬＢは、新たに格納したクエリ名の時間カウンタ値およびアクセス回数のインクリメントを開始する。
【０１１１】
以上、この実施形態においても、上述した実施形態と同様に、管理装置ＬＢにアクセス要求を出力するサーバＳＶを決める等の処理を行うことなく、負荷分散テーブルＴＢＬ１を参照することで高頻度メモリＭＥＭｍａｘの割り当てを、あるサーバＳＶから別のサーバＳＶに変更できる。この結果、管理装置ＬＢの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減でき、情報処理システムＩＰＳの性能を向上できる。
【０１１２】
さらに、メモリＭＥＭの割り当ての変更の要否をしきい値により判断することで、サーバＳＶの負荷の削減効果が小さいときに、メモリＭＥＭの割り当ての変更を禁止できる。これにより、管理装置ＬＢおよびサーバＳＶのアクセス要求に対する処理能力が、メモリＭＥＭの割り当てを変更することにより低下することを防止できる。
【０１１３】
管理装置ＬＢは、負荷分散テーブルＴＢＬ１に空きがないときに、アクセス頻度の低いクエリと、そのクエリに対応する情報を負荷分散テーブルＴＢＬ１から削除する。これにより、管理装置ＬＢは、サーバＳＶの最新のアクセス頻度に基づいて、メモリＭＥＭの割り当てを変更するサーバ名ＳＶＩＤを負荷分散テーブルＴＢＬ１に登録できる。この結果、現在のアクセスの集中度に応じてメモリＭＥＭの割り当てを変更でき、情報処理システムＩＰＳの性能を向上できる。
【０１１４】
図１４は、別の実施形態の情報処理システムＩＰＳの負荷分散動作における制御装置ＣＴＲＬの動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１１５】
この実施形態では、アクセス回数が最も多いメモリＭＥＭｍａｘにアクセスするサーバＳＶと、アクセス回数が最も少ないメモリＭＥＭｍｉｎにアクセスするサーバＳＶとの割り当てが入れ替えられる。このため、図２に示した管理装置ＬＢ、サーバＳＶ０−ＳＶ２および制御装置ＣＴＲＬが実施する負荷分散動作における割り当ての変更動作が図１０および図１２と相違している。負荷分散動作における割り当ての変更動作を除く処理については、上述した実施形態と同様である。すなわち、情報処理システムＩＰＳの構成は、図２と同様である。
【０１１６】
ステップＳ３４０、Ｓ３４２、Ｓ３４４、Ｓ３４６、Ｓ３５２は、図１０に示した処理と同様であるため、説明は省略する。ステップＳ３４８Ａでは、制御装置ＣＴＲＬは、メモリＭＥＭｍａｘを割り当てているサーバＳＶと、メモリＭＥＭｍｉｎを割り当てているサーバＳＶとを入れ替えるために、管理テーブルＴＢＬ２のサーバ名ＳＶＩＤを書き換える。管理テーブルＴＢＬ２の書き換えの例は、図１５に示す。
【０１１７】
次にステップＳ３５０Ａにおいて、制御装置ＣＴＲＬは、メモリＭＥＭｍｉｎとメモリＭＥＭｍａｘとのサーバＳＶの割り当てを入れ替えることを、メモリＭＥＭｍｉｎを割り当てているサーバＳＶを介して管理装置ＬＢに通知する。すなわち、メモリＭＥＭｍａｘを割り当てているサーバＳＶによりメモリＭＥＮｍｉｎをアクセスすることが、メモリＭＥＭｍｉｎを割り当てているサーバＳＶに通知される。例えば、割り当てが入れ替えられたサーバ名ＳＶＩＤと、各サーバ名ＳＶＩＤに対応して管理テーブルＴＢＬ２に格納されているクエリ名とが、メモリＭＥＭｍｉｎを割り当てているサーバＳＶに通知される。
【０１１８】
なお、制御装置ＣＴＲＬによる処理がハードウエアロジックにより実施される場合、ステップＳ３４８Ａによる管理テーブルＴＢＬ２のサーバ名ＳＶＩＤを書き換える動作は、制御装置ＣＴＲＬの変更部により実施される。ステップＳ３５０Ａによる管理テーブルＴＢＬ２の情報を、サーバＳＶを介して管理装置ＬＢに通知する動作は、制御装置ＣＴＲＬの出力部により実施される。
【０１１９】
図１５は、図１４に示した負荷分散動作後の管理テーブルＴＢＬ２の例を示している。この実施形態では、図１１と同様に、メモリＭＥＭ０の割り当てがサーバＳＶ０からサーバＳＶ１に変更され、さらに、メモリＭＥＭ３の割り当てがサーバＳＶ１からサーバＳＶ０に変更される。管理テーブルＴＢＬ２に格納されているその他の情報は、図１１と同様である。アクセス回数のゼロへのリセットは、図１４に示したステップＳ３５２により実施される。
【０１２０】
図１６は、図１４に示したステップＳ３５０Ａに伴う管理装置ＬＢおよびサーバＳＶによる割り当ての変更動作の例を示している。図６および図１２と同様に、管理装置ＬＢの処理は、プロセッサＣＰＵａがプログラムを実行することで実施し、サーバＳＶの処理は、プロセッサＣＰＵｂがプログラムを実行することで実施される。なお、管理装置ＬＢの処理およびサーバＳＶの処理は、ハードウエア処理により実施されてもよい。制御装置ＣＴＲＬの処理は、ハードウエアロジックの動作、または制御装置ＣＴＲＬが実行するプログラムにより実施される。
【０１２１】
ステップＳ３５０Ａは、図１４に示したステップＳ３５０Ａと同様の処理であり、図１２に示したＳ３５０に対応する処理である。ステップＳ２１０Ａ、Ｓ２１２Ａは、図１２に示したステップＳ２１０、Ｓ２１２に対応する処理である。ステップＳ１５０Ａは、図１２に示したＳ１５０に対応する処理である。
【０１２２】
ステップＳ２１０Ａにおいて、メモリＭＥＭｍｉｎを割り当てているサーバＳＶは、制御装置ＣＴＲＬから、割り当てを入れ替えるメモリＭＥＭｍｉｎ、ＭＥＭｍａｘに新たに割り当てられるサーバ名ＳＶＩＤと、各サーバ名ＳＶＩＤに対応するクエリ名とを受ける。ステップＳ２１２Ａにおいて、ＭＥＭｍｉｎを割り当てているサーバＳＶは、新たに割り当てられるサーバ名ＳＶＩＤと、各サーバ名ＳＶＩＤに対応するクエリ名とを管理装置ＬＢに通知する。
【０１２３】
ステップＳ１５０Ａにおいて、管理装置ＬＢは、図１２に示したステップＳ１５０と同様に、メモリＭＥＭｍｉｎを割り当てているサーバＳＶからの通知を受け、クエリ名およびサーバ名ＳＶＩＤを負荷分散テーブルＴＢＬ１にそれぞれ格納する。管理装置ＬＢによる処理がハードウエアロジックにより実施される場合、ステップＳ１５０の動作は、管理装置ＬＢの受信部および格納部により実施される。
【０１２４】
図１７は、図１６に示した負荷分散動作後の負荷分散テーブルＴＢＬ１の例を示している。この例では、図１５に示した管理テーブルＴＢＬ２の変更に対応して、変更された負荷分散テーブルＴＢＬ１(時間カウンタ値が３０経過した後）を示している。すなわち、管理装置ＬＢは、図１６に示したステップＳ１５０Ａにより、メモリＭＥＭｍａｘ（例えば、ＭＥＭ０のクエリＡ、Ｂ、Ｃ）をサーバＳＶ１によりアクセスすることを示す情報を、負荷分散テーブルＴＢＬ１に設定する。同様に、管理装置ＬＢは、図１６に示したステップＳ１５０Ａにより、メモリＭＥＭｍｉｎ（例えば、ＭＥＭ３のクエリＪ、Ｋ、Ｌ）をサーバＳＶ０によりアクセスすることを示す情報を、負荷分散テーブルＴＢＬ１に設定する。
【０１２５】
管理装置ＬＢは、クエリＡに対するアクセス要求を受けたときに、負荷分散テーブルＴＢＬ１を参照し、負荷が相対的に小さいサーバＳＶ１を介して、制御装置ＣＴＲＬにアクセス要求を発行する。また、管理装置ＬＢは、クエリＪに対するアクセス要求を受けたときに、負荷分散テーブルＴＢＬ１を参照し、負荷が相対的に大きいサーバＳＶ０を介して、制御装置ＣＴＲＬにアクセス要求を発行する。
【０１２６】
負荷が相対的に大きいサーバＳＶ０は、アクセス頻度の高いクエリＡ、Ｂ、Ｃに対するアクセスの代わりに、アクセス頻度の低いクエリＪ、Ｋ、Ｌに対するアクセスを処理する。負荷が相対的に小さいサーバＳＶ１は、アクセス頻度の低いクエリＪ、Ｋ、Ｌに対するアクセスの代わりに、アクセス頻度の高いクエリＡ、Ｂ、Ｃに対するアクセスを処理する。サーバＳＶ０に割り当てられているメモリは、ＭＥＭ１、ＭＥＭ２、ＭＥＭ３に変更されている。サーバＳＶ１に割り当てられているメモリは、ＭＥＭ０、ＭＥＭ４、ＭＥＭ５に変更されている。したがって、サーバＳＶ０の負荷の一部を、サーバＳＶ１に移行でき、サーバＳＶ０−ＳＶ２間の負荷のばらつきを抑制できる。
【０１２７】
以上、この実施形態においても、上述した実施形態と同様に、高頻度メモリＭＥＭｍａｘの割り当てを、あるサーバＳＶから別のサーバＳＶに変更でき、管理装置ＬＢの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。メモリＭＥＭの割り当ての変更の要否をしきい値により判断することで、サーバＳＶの負荷の削減効果が小さいときに、メモリＭＥＭの割り当ての変更を禁止でき、管理装置ＬＢおよびサーバＳＶのアクセス要求に対する処理能力が、メモリＭＥＭの割り当てを変更することにより低下することを防止できる。また、負荷分散テーブルＴＢＬ１に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルＴＢＬ１から削除することで、現在のアクセスの集中度に応じてメモリＭＥＭの割り当てを変更でき、情報処理システムＩＰＳの性能を向上できる。
【０１２８】
さらに、メモリＭＥＭのサーバＳＶへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバＳＶ０−ＳＶ２間の負荷のばらつきを抑制でき、情報処理システムＩＰＳの性能を向上できる。
【０１２９】
図１８は、別の実施形態におけるサーバＳＶ０−ＳＶ２による書き込み動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１３０】
この実施形態では、図２に示した記憶装置ＭＤのメモリＭＥＭ０−ＭＥＭ９だけでなく、各サーバＳＶ０−ＳＶ２のメモリＭＥＭｂにもデータが記憶される。このため、図２に示したサーバＳＶ０−ＳＶ２の動作が、上述した実施形態と相違する。各サーバＳＶ０−ＳＶ２によるメモリＭＥＭｂのアクセスを除く処理については、上述した実施形態と同様である。すなわち、情報処理システムＩＰＳの構成は、図２と同様である。
【０１３１】
なお、上述した実施形態では、各サーバＳＶ０−ＳＶ２は、管理装置ＬＢからの書き込み要求および読み出し要求を制御装置ＣＴＲＬに送信し、制御装置ＣＴＲＬからのデータを管理装置ＬＢに送信する。すなわち、上述した実施形態では、各サーバＳＶ０−ＳＶ２は、自身のメモリＭＥＭｂに対するデータの書き込みおよびデータの読み出しは実施していない。
【０１３２】
図１８は、図７に示したステップＳ１１８による書き込み要求に応答する各サーバＳＶ０−ＳＶ２の動作のフローチャートを示している。例えば、図１８に示すサーバＳＶの処理は、図２に示したプロセッサＣＰＵｂがプログラムをそれぞれ実行することで実施される。なお、サーバＳＶの動作は、ハードウエア処理により実施されてもよい。
【０１３３】
まず、ステップＳ２３０において、サーバＳＶは、自身のメモリＭＥＭｂに空きがあるか否かを判定する。サーバＳＶは、メモリＭＥＭｂに空きがないときに処理をステップＳ２３２に移行し、制御装置ＣＴＲＬに書き込み要求を発行し、処理を終了する。サーバＳＶから書き込み要求を受けたときの制御装置ＣＴＲＬの動作は、図９に示している。
【０１３４】
一方、サーバＳＶは、自身のメモリＭＥＭｂに空きがあるときに、ステップＳ２３４において、書き込み要求とともに受けたクエリに対応するデータがメモリＭＥＭｂに格納されているか否かをチェックする。ここで、サーバＳＶは、メモリＭＥＭｂ内のデータを格納するブロック領域をクエリに基づいて求めるためのクエリテーブルを有している。例えば、クエリテーブルは、図３に示したクエリ名の領域と同様に、メモリＭＥＭｂの各ブロック領域に対応してクエリ名を格納する領域を有している。
【０１３５】
ステップＳ２３６において、サーバＳＶは、クエリに対応するデータがメモリＭＥＭｂにあるときに、処理をステップＳ２３８に移行し、クエリに対応するデータがメモリＭＥＭｂにないときに、処理をステップＳ２４０に移行する。ステップＳ２３８において、サーバＳＶは、クエリに対応してメモリＭＥＭｂに格納されているデータを消去する。なお、サーバＳＶは、対応するデータを消去せずに、無効にしてもよい。ステップＳ２４０において、サーバＳＶは、クエリとともに管理装置ＬＢから受けたデータをメモリＭＥＭｂの所定のブロック領域に書き込む。
【０１３６】
図１９は、図１８に示した書き込み動作を実施するサーバＳＶ０−ＳＶ２による読み出し動作の例を示している。図１９は、図８に示したステップＳ１３８による読み出し要求に応答する各サーバＳＶ０−ＳＶ２の動作を示している。例えば、図１９に示すサーバＳＶの処理は、図２に示したプロセッサＣＰＵｂがプログラムをそれぞれ実行することで実施される。なお、サーバＳＶの動作は、ハードウエア処理により実施されてもよい。
【０１３７】
まず、ステップＳ２５０において、サーバＳＶは、読み出し要求とともに受けたクエリに対応するデータがメモリＭＥＭｂに格納されているか否かをチェックする。ステップＳ２５２において、サーバＳＶは、クエリに対応するデータがメモリＭＥＭｂにあるときに、処理をステップＳ２５６に移行し、クエリに対応するデータがメモリＭＥＭｂにないときに、処理をステップＳ２５４に移行する。
【０１３８】
ステップＳ２５４において、サーバＳＶは、制御装置ＣＴＲＬに読み出し要求を発行し、処理を終了する。サーバＳＶから読み出し要求を受けたときに制御装置ＣＴＲＬの動作は、図９に示している。ステップＳ２５６において、サーバＳＶは、自身のメモリＭＥＭｂからクエリに対応するデータを読み出す。ステップＳ３２８において、サーバＳＶは、メモリＭＥＭｂから読み出したデータまたは記憶装置ＭＤのメモリＭＥＭから読み出されたデータを管理装置ＬＢに送信する。
【０１３９】
なお、図１４から図１７に示した実施形態のサーバＳＶ０−ＳＶ２に、図１８および図１９に示した処理を実施させてもよい。このとき、各サーバＳＶ０−ＳＶ２は、メモリＭＥＭｂおよびメモリＭＥＭ０−ＭＥＭ９のいずれかにクエリに対応するデータを格納し、メモリＭＥＢｂおよびメモリＭＥＭ０−ＭＥＭ９のいずれかからデータを読み出す。
【０１４０】
以上、この実施形態においても、上述した実施形態と同様に、高頻度メモリＭＥＭｍａｘの割り当てを、あるサーバＳＶから別のサーバＳＶに変更でき、管理装置ＬＢの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。メモリＭＥＭの割り当ての変更の要否をしきい値により判断することで、サーバＳＶの負荷の削減効果が小さいときに、メモリＭＥＭの割り当ての変更を禁止でき、管理装置ＬＢおよびサーバＳＶのアクセス要求に対する処理能力が、メモリＭＥＭの割り当てを変更することにより低下することを防止できる。
【０１４１】
また、負荷分散テーブルＴＢＬ１に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルＴＢＬ１から削除することで、現在のアクセスの集中度に応じてメモリＭＥＭの割り当てを変更でき、情報処理システムＩＰＳの性能を向上できる。メモリＭＥＭのサーバＳＶへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバＳＶ０−ＳＶ２間の負荷のばらつきを抑制できる。
【０１４２】
さらに、記憶装置ＭＤのメモリＭＥＭおよびサーバＳＶのメモリＭＥＭｂにデータを格納する情報処理システムＩＰＳにおいて、管理装置ＬＢおよびサーバＳＶの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。
【０１４３】
図２０は、別の実施形態における制御装置ＣＴＲＬの動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１４４】
この実施形態では、図２に示した制御装置ＣＴＲＬは、ｍｅｍｃａｃｈｅｄのプログラム（ライブラリ）を利用して、メモリＭＥＭ０−ＭＥＭ９にアクセスする。このため、制御装置ＣＴＲＬによるデータの書き込み動作および読み出し動作が、図９と相違している。ここで、ｍｅｍｃａｃｈｅｄとは、データベース等に対するアクセス結果を保持しておくことにより，データベースへのアクセス回数を減らし、Ｗｅｂアクセスの高速化を実現することができる分散メモリキャッシュサーバのプログラムをいう。
【０１４５】
管理装置ＬＢおよびサーバＳＶの動作と、制御装置ＣＴＲＬによる負荷分散動作は、図２から図１３に示した実施形態と同様である。すなわち、情報処理システムＩＰＳの構成は、図２と同様である。例えば、制御装置ＣＴＲＬは、ＲＯＭおよびＲＡＭを内蔵するマイクロコントローラやプロセッサＣＰＵである。ＲＯＭまたはＲＡＭには、ｍｅｍｃａｃｈｅｄのプログラムと、ｍｅｍｃａｃｈｅｄのプログラムを起動する制御プログラムとが格納されている。図２０は、制御プログラムにより実施される処理を示している。
【０１４６】
ｍｅｍｃａｃｈｅｄのプログラムの実行により、メモリＭＥＭ０−ＭＥＭ９は、データベースＤＢのキャッシュサーバとして機能する。以降の説明では、ｍｅｍｃａｃｈｅｄをプログラムとしてだけではなく、キャッシュサーバの名称、すなわち、キャッシュサーバとして動作するｍｅｍｃａｃｈｅｄシステムの名称としても使用する。
【０１４７】
例えば、ｍｅｍｃａｃｈｅｄは、各サーバＳＶ０−ＳＶ２から読み出し要求および書き込み要求とともに供給されるクエリを用いてハッシュ値を求める。ｍｅｍｃａｃｈｅｄは、各サーバＳＶ０−ＳＶ２毎に、求めたハッシュ値をメモリＭＥＭの数で除し、剰余からアクセスするメモリＭＥＭを求める。例えば、サーバＳＶ０から読み出し要求を受けたとき、ｍｅｍｃａｃｈｅｄは、ハッシュ値を”３”で除して得られる剰余が示すＩＤのメモリＭＥＭ（ＭＥＭ０−ＭＥＭ２のいずれか）にアクセスする。サーバＳＶ１から読み出し要求を受けたとき、ｍｅｍｃａｃｈｅｄは、ハッシュ値を”３”で除して得られる剰余に”３”を加えたＩＤのメモリＭＥＭ（ＭＥＭ３−ＭＥＭ５のいずれか）にアクセスする。
【０１４８】
図２０において、ステップＳ３１０、Ｓ３１２、Ｓ３２８、Ｓ３３４の処理は、図９のステップＳ３１０、Ｓ３１２、Ｓ３２８、Ｓ３３４と同様の処理である。図２０では、ｍｅｍｃａｃｈｅｄにより実施される処理は、記載を省略している。例えば、図９に示したステップＳ３１４、Ｓ３１６、Ｓ３１８、Ｓ３２０、Ｓ３２２、Ｓ３２４、Ｓ３２６は、ｍｅｍｃａｃｈｅｄにより実施される。このため、制御装置ＣＴＲＬの制御プログラムは、図９に示したステップＳ３１４、Ｓ３１６、Ｓ３１８、Ｓ３２０、Ｓ３２２、Ｓ３２４、Ｓ３２６の代わりに、ステップＳ３２０Ｃで、ｍｅｍｃａｃｈｅｄに”書き込み命令（ｓｅｔ命令）”を発行すればよい。
【０１４９】
なお、ｓｅｔ命令のパラメータに”ｅｘｐｉｒｅｓ（期限；タイムスタンプや秒数）”を入れることで、期限が経過したデータは、ｍｅｍｃａｃｈｅｄにより無効なデータとして扱われる。この機能を利用することにより、データが頻繁に書き込まれるときにも、メモリＭＥＭが満杯になる頻度を下げることができ、メモリＭＥＭの満杯時にｍｅｍｃａｃｈｅｄが実施するＬＲＵ手法による消去動作の頻度を下げることができる。
【０１５０】
図９に示したステップＳ３３０は、通常、ｍｅｍｃａｃｈｅｄにより実施されるため、制御装置ＣＴＲＬの制御プログラムは、図９に示したステップＳ３３０の代わりに、ステップＳ３３２Ｃで、ｍｅｍｃａｃｈｅｄに”読み出し命令（ｇｅｔ命令）”を発行すればよい。
【０１５１】
以上、この実施形態においても、上述した実施形態と同様に高頻度メモリＭＥＭｍａｘの割り当てを、あるサーバＳＶから別のサーバＳＶに変更でき、管理装置ＬＢの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。メモリＭＥＭの割り当ての変更の要否をしきい値により判断することで、サーバＳＶの負荷の削減効果が小さいときに、メモリＭＥＭの割り当ての変更を禁止でき、管理装置ＬＢおよびサーバＳＶのアクセス要求に対する処理能力が、メモリＭＥＭの割り当てを変更することにより低下することを防止できる。
【０１５２】
また、負荷分散テーブルＴＢＬ１に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルＴＢＬ１から削除することで、現在のアクセスの集中度に応じてメモリＭＥＭの割り当てを変更でき、情報処理システムＩＰＳの性能を向上できる。メモリＭＥＭのサーバＳＶへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバＳＶ０−ＳＶ２間の負荷のばらつきを抑制できる。記憶装置ＭＤのメモリＭＥＭおよびサーバＳＶのメモリＭＥＭｂにデータを格納する情報処理システムＩＰＳにおいて、管理装置ＬＢおよびサーバＳＶの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。
【０１５３】
さらに、ｍｅｍｃａｃｈｅｄのプログラムにより、メモリＭＥＭ０−ＭＥＭ９にアクセスする情報処理システムＩＰＳにおいて、管理装置ＬＢおよびサーバＳＶの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。
【０１５４】
なお、図１４から図１７に示した実施形態の制御装置ＣＴＲＬにｍｅｍｃａｃｈｅｄのプログラムを実行させて、図２０に示した処理を実施させてもよい。
【０１５５】
さらに、図１８および図１９に示したように、各サーバＳＶ０−ＳＶ２が、メモリＭＥＭｂにクエリに対応するデータを格納するように設計されるとき、各サーバＳＶ０−ＳＶ２にｍｅｍｃａｃｈｅｄを搭載してもよい。このとき、各サーバＳＶ０−ＳＶ２のプロセッサＣＰＵｂは、メモリＭＥＭｂにアクセスするためのｍｅｍｃａｃｈｅｄのプログラムと、ｍｅｍｃａｃｈｅｄおよびメモリＭＥＭのアクセスを制御する制御プログラムとを実行する。
【０１５６】
制御プログラムは、図１８および図１９に示した処理と同様の処理を実施する。但し、図１８に示したステップＳ２３０、Ｓ２３４、Ｓ２４０および図１９に示したステップＳ２５０、Ｓ２５６は、ｍｅｍｃａｃｈｅｄに命令を発行することで実施される。図１８に示したステップＳ２３６、Ｓ２３８は、ｍｅｍｃａｃｈｅｄに実装されている機能により実現される。
【０１５７】
図２１、図２２、図２３は、別の実施形態の情報処理システムＩＰＳにおける負荷分散動作の例を示している。上述した実施形態で説明した要素と同様の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１５８】
この実施形態では、負荷分散動作による管理テーブルＴＢＬ２の変更から負荷分散テーブルＴＢＬ１の更新までの間、メモリＭＥＭのアクセスが禁止される。このため、図２に示した管理装置ＬＢ、サーバＳＶ０−ＳＶ２および制御装置ＣＴＲＬが実施する負荷分散動作における割り当ての変更動作が図１０および図１２と相違している。負荷分散動作における割り当ての変更動作を除く処理については、上述した実施形態と同様である。すなわち、情報処理システムＩＰＳの構成は、図２と同様である。
【０１５９】
図２１は、負荷分散動作における制御装置ＣＴＲＬの動作の例を示している。制御装置ＣＴＲＬの処理は、ハードウエアロジックの動作、または制御装置ＣＴＲＬが実行するプログラムにより実施される。
【０１６０】
この例では、ステップＳ３４６、Ｓ３４８の間に、ステップＳ３５４Ｄ、Ｓ３５６Ｄが挿入される。ステップＳ３４０、Ｓ３４２、Ｓ３４４、Ｓ３４６、Ｓ３４８、Ｓ３５０、Ｓ３５２は、図１０と同様の処理である。
【０１６１】
ステップＳ３５４Ｄにおいて、制御装置ＣＴＲＬは、メモリＭＥＭｍａｘ、ＭＥＭｍｉｎに対応するサーバＳＶに記憶装置ＭＤへのアクセスの禁止を通知する。次に、ステップＳ３５６Ｄにおいて、制御装置ＣＴＲＬは、サーバＳＶを介して管理装置ＬＢからアクセス禁止が開始されたことを示す通知を待つ。制御装置ＣＴＲＬは、管理装置ＬＢからアクセス禁止が開始されたことを示す通知を受けたとき、処理をステップＳ３４８に移行する。これにより、管理装置ＬＢがアクセス禁止を開始するまで、制御装置ＣＴＲＬは管理テーブルＴＢＬ２を変更しないため、負荷分散テーブルＴＢＬ１と管理テーブルＴＢＬ２との不一致期間を無くすことができる。
【０１６２】
図２２は、図２１に示した負荷分散動作における割り当ての変更時のアクセス禁止処理の例を示している。管理装置ＬＢの処理は、プロセッサＣＰＵａがプログラムを実行することで実施され、サーバＳＶの処理は、プロセッサＣＰＵｂがプログラムを実行することで実施される。なお、管理装置ＬＢの処理およびサーバＳＶの処理は、ハードウエア処理により実施されてもよい。
【０１６３】
制御装置ＣＴＲＬが実施するステップＳ３５４Ｄ、Ｓ３５６Ｄの処理は、図２１に示したステップＳ３５４Ｄ、Ｓ３５６Ｄの処理と同様である。ステップＳ２１８Ｄにおいて、メモリＭＥＭｍａｘ、ＭＥＭｍｉｎを割り当てているサーバＳＶの各々は、制御装置ＣＴＲＬからのアクセス禁止の通知を、管理装置ＬＢに通知する。
【０１６４】
ステップＳ１５４Ｄにおいて、管理装置ＬＢは、各サーバＳＶからの通知を受け、通知を受けたサーバＳＶにアクセスする代わりに、データベースＤＢにアクセスする。すなわち、メモリＭＥＭｍａｘ、ＭＥＭｍｉｎに対するアクセス禁止処理が実施される。なお、管理装置ＬＢは、メモリＭＥＭｍａｘ、ＭＥＭｍｉｎを割り当てているサーバＳＶへのアクセス要求を保留することで、アクセス禁止処理を実施してもよい。ステップＳ１５６Ｄにおいて、管理装置ＬＢは、アクセス禁止処理を開始したことを、メモリＭＥＭｍａｘ、ＭＥＭｍｉｎを割り当てているサーバＳＶに通知する。
【０１６５】
ステップＳ２２０Ｄにおいて、メモリＭＥＭｍａｘ、ＭＥＭｍｉｎを割り当てているサーバＳＶの各々は、制御装置ＣＴＲＬからのアクセス禁止処理の開始の通知を、制御装置ＣＴＲＬに通知する。そして、ステップＳ３５６Ｄにおいて、制御装置ＣＴＲＬは、サーバＳＶを介して管理装置ＬＢからアクセス禁止処理の開始の通知を受ける。
【０１６６】
図２３は、図２１に示した負荷分散動作における割り当ての変更動作の例を示している。管理装置ＬＢの処理は、プロセッサＣＰＵａがプログラムを実行することで実施され、サーバＳＶの処理は、プロセッサＣＰＵｂがプログラムを実行することで実施される。なお、管理装置ＬＢの処理およびサーバＳＶの処理は、ハードウエア処理により実施されてもよい。
【０１６７】
この例では、図１２に示した管理装置ＬＢが実施するステップＳ１５０の処理の後に、ステップＳ１５８Ｄが追加される。ステップＳ３５０、Ｓ２１０、Ｓ２１２、Ｓ１５０の処理は、図１２に示したステップＳ３５０、Ｓ２１０、Ｓ２１２、Ｓ１５０の処理と同様である。
【０１６８】
ステップＳ１５８Ｄにおいて、管理装置ＬＢは、負荷分散テーブルＴＢＬ１を更新した後、アクセス禁止処理の禁止を解除する。これにより、メモリＭＥＭｍａｘ、ＭＥＭｍｉｎを割り当てているサーバＳＶへのアクセス要求が再開される。メモリＭＥＭｍａｘ、ＭＥＭｍｉｎを割り当てているサーバＳＶへのアクセス要求が、アクセス禁止処理により保留される場合、管理装置ＬＢは、ステップＳ１５８Ｄの後、保留しているアクセス要求を順にサーバＳＶに発行する。以上の処理により、負荷分散テーブルＴＢＬ１および管理テーブルＴＢＬ２に登録されたサーバ名ＳＶＩＤが不一致の状態で、アクセス要求がサーバＳＶに発行されることを防止でき、制御装置ＣＴＲＬによるデータの読み出しエラーが発生することを防止できる。
【０１６９】
これに対して、例えば、情報処理システムＩＰＳが、図１２に示すステップＳ３５０の処理とステップＳ１５０の処理との間に、メモリＭＥＭｍａｘ（例えば、ＭＥＭ０）に対するアクセス要求を受けるとする。このとき、負荷分散テーブルＴＢＬ１は、更新されていないため、管理装置ＬＢは、メモリＭＥＭｍａｘを割り当てているサーバＳＶ（例えば、ＳＶ０）を介して制御装置ＣＴＲＬにアクセス要求を発行する。
【０１７０】
しかし、図１１に示した管理テーブルＴＢＬ２では、メモリＭＥＭ０の割り当ては、サーバＳＶ０ではなく、サーバＳＶ１に変更されている。このため、アクセス要求を発行するサーバＳＶと、管理テーブルＴＢＬ２のサーバ名ＳＶＩＤとが一致せず、制御装置ＣＴＲＬは、データの読み出しを実施できない。正しいデータが読み出せないため、制御装置ＣＴＲＬは、サーバＳＶを介して管理装置ＬＢに読み出しエラー（キャッシュミスに相当）を通知する。管理装置ＬＢは、制御装置ＣＴＲＬからの読み出しエラーを受けて、データベースＤＢにアクセスする。
【０１７１】
なお、図２１のステップＳ３４８、Ｓ３５０の代わりに、図１４のステップＳ３４８Ａ、Ｓ３５０Ａを実施し、図２３のステップＳ２１０、Ｓ２１２、Ｓ１５０の代わりに、図１６のステップＳ２１０Ａ、Ｓ２１２Ａ、Ｓ１５０Ａを実施してもよい。これにより、２つのメモリＭＥＭを割り当てている２つのサーバＳＶを、負荷分散動作により互いに入れ替える情報処理システムＩＰＳにおいて、負荷分散動作中のサーバＳＶへのアクセスを禁止できる。
【０１７２】
さらに、図２０から図２３に示した実施形態の負荷分散動作を、図２０および図２１に示したｍｅｍｃａｃｈｅｄの機能を搭載する実施形態に適用してもよい。
【０１７３】
以上、この実施形態においても、上述した実施形態と同様に、高頻度メモリＭＥＭｍａｘの割り当てを、あるサーバＳＶから別のサーバＳＶに変更でき、管理装置ＬＢの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。メモリＭＥＭの割り当ての変更の要否をしきい値により判断することで、サーバＳＶの負荷の削減効果が小さいときに、メモリＭＥＭの割り当ての変更を禁止でき、管理装置ＬＢおよびサーバＳＶのアクセス要求に対する処理能力が、メモリＭＥＭの割り当てを変更することにより低下することを防止できる。
【０１７４】
また、負荷分散テーブルＴＢＬ１に空きがないときに、アクセス頻度の低いクエリを負荷分散テーブルＴＢＬ１から削除することで、現在のアクセスの集中度に応じてメモリＭＥＭの割り当てを変更でき、情報処理システムＩＰＳの性能を向上できる。メモリＭＥＭのサーバＳＶへの割り当てを、アクセス頻度に応じて入れ換えることで、サーバＳＶ０−ＳＶ２間の負荷のばらつきを抑制できる。記憶装置ＭＤのメモリＭＥＭおよびサーバＳＶのメモリＭＥＭｂにデータを格納する情報処理システムＩＰＳにおいて、管理装置ＬＢおよびサーバＳＶの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。ｍｅｍｃａｃｈｅｄのプログラムにより、メモリＭＥＭ０−ＭＥＭ９にアクセスする情報処理システムＩＰＳにおいて、管理装置ＬＢおよびサーバＳＶの負荷を増やすことなく、アクセスが集中しているサーバＳＶの負荷を軽減できる。
【０１７５】
さらに、この実施形態では、管理装置ＬＢがアクセス禁止を開始した後に管理テーブルＴＢＬ２を変更し、負荷分散テーブルＴＢＬ１が更新された後に、アクセス禁止が解除される。これにより、負荷分散テーブルＴＢＬ１と管理テーブルＴＢＬ２とが一致していない期間に、アクセス要求がサーバＳＶに発行されることを防止でき、制御装置ＣＴＲＬによるデータの読み出しエラーが発生することを防止できる。
【０１７６】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置において、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超えるか又は相対的にアクセス頻度の高い第１のメモリを検出する第１検出部と、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出する第２検出部と、
前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部と、
前記第１のメモリに第１の情報処理装置を割り当てた旨を、前記第２のメモリを割り当てた第２の情報処理装置を割り当てるように、前記対応情報を変更する変更部と、
前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第１のメモリから読み出したデータを、前記第２の情報処理装置を介して前記管理装置に出力する出力部と
を備えていることを特徴とする制御装置。
（付記２）
前記変更部はさらに、
前記第２のメモリに前記第２の情報処理装置を割り当てた旨を、前記第１の情報処理装置を割り当てるように、前記対応情報を変更し、
前記出力部はさらに、
前記第２のメモリから読み出したデータを、前記第１の情報処理装置を介して前記管理装置に出力すること
を特徴とする付記１に記載の制御装置。
（付記３）
前記制御装置はさらに、
前記複数のメモリ各々に対する前記複数の情報処理装置からのアクセス回数を計数する計数部を備え、
前記第１検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も多いメモリを前記第１のメモリとして検出し、
前記第２検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も少ないメモリを前記第２のメモリとして検出すること
を特徴とする付記１または付記２に記載の制御装置。
（付記４）
前記制御装置はさらに、
前記第１検出部が前記第１のメモリを検出し、前記第２検出部が前記第２のメモリを検出した後、前記変更部が前記対応情報を変更する前に、前記管理装置にアクセス要求の発行を禁止させ、
前記管理装置から前記アクセス要求の発行を禁止する旨の通知を受けた後、前記変更部が変更した対応情報を前記出力部から前記管理装置に通知すること
を特徴とする付記１ないし付記３のいずれか１項に記載の制御装置。
（付記５）
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置において、
それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第１のメモリへの第１の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第２のメモリを割り当てた第２の情報処理装置を介して出力する旨の変更情報を前記制御装置から受ける受信部と、
前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて記憶する記憶部と、
前記キー情報を前記識別情報に対応付けて、前記記憶部に格納する格納部と、
前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
を備えていることを特徴とする管理装置。
（付記６）
前記格納部はさらに、
前記キー情報毎のアクセス頻度を示す頻度情報を前記記憶部に格納し、
前記記憶部に空きがない場合、格納した前記頻度情報に基づき、前記記憶部に格納されたキー情報と対応する識別情報を消去すること
を特徴とする付記５に記載の管理装置。
（付記７）
複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御する制御装置とを含む情報処理システムにおいて、
前記制御装置は、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出する第１検出部と、
それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出する第２検出部と、
前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第１記憶部と、
前記第１のメモリに第１の情報処理装置を割り当てた旨を、前記第２のメモリを割り当てた第２の情報処理装置を割り当てるように、前記対応情報を変更する変更部と、
前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第１のメモリから読み出したデータを、前記第２の情報処理装置を介して前記管理装置に出力する出力部と
を備え、
前記管理装置は、
前記変更部が変更した対応情報を前記制御装置から受ける受信部と、
前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて記憶する第２記憶部と、
前記キー情報を前記識別情報に対応付けて、前記第２記憶部に格納する格納部と、
前記アクセス要求とともに受けたキー情報が、前記第２記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第２記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力する出力部と
を備えていることを特徴とする情報処理システム。
（付記８）
前記管理装置によりアクセスされるデータベースを備え、
前記情報処理装置、前記制御装置および前記記憶装置は、前記データベースの分散キャッシュサーバとして動作すること
を特徴とする付記７に記載の情報処理システム。
（付記９）
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御方法において、
前記制御装置が有する第１検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出し、
前記制御装置が有する第２検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出し、
前記制御装置が有する変更部が、前記第１のメモリに第１の情報処理装置を割り当てた旨を、前記第２のメモリを割り当てた第２の情報処理装置を割り当てるように、前記対応情報を変更し、
前記制御装置が有する出力部が、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第１のメモリから読み出したデータを、前記第２の情報処理装置を介して前記管理装置に出力することを特徴とする制御装置の制御方法。
（付記１０）
前記制御装置は、
前記第２のメモリに前記第２の情報処理装置を割り当てた旨を、前記第１の情報処理装置を割り当てるように、前記対応情報を変更し、
前記出力部はさらに、
前記第２のメモリから読み出したデータを、前記第１の情報処理装置を介して前記管理装置に出力すること
を特徴とする付記９に記載の制御装置の動作方法。
（付記１１）
前記制御装置はさらに、
前記複数のメモリ各々に対する前記複数の情報処理装置からのアクセス回数を計数し、
前記第１検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も多いメモリを前記第１のメモリとして検出し、
前記第２検出部は、
前記複数のメモリからそれぞれの計数部が計数したアクセス回数が最も少ないメモリを前記第２のメモリとして検出すること
を特徴とする付記９または付記１０に記載の制御装置の動作方法。
（付記１２）
前記制御装置はさらに、
前記第１検出部が前記第１のメモリを検出し、前記第２検出部が前記第２のメモリを検出した後、前記変更部が前記対応情報を変更する前に、前記管理装置にアクセス要求の発行を禁止させ、
前記管理装置から前記アクセス要求の発行を禁止する旨の通知を受けた後、前記変更部が変更した対応情報を前記出力部から前記管理装置に通知すること
を特徴とする付記９ないし付記１１のいずれか１項に記載の制御装置の動作方法。
（付記１３）
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御方法において、
前記管理装置の受信部が、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第１のメモリへの第１の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第２のメモリを割り当てた第２の情報処理装置を介して出力する旨の変更情報を前記制御装置から受け、
前記管理装置の格納部が、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、記憶部に格納し、
前記管理装置の出力部が、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする管理装置の制御方法。
（付記１４）
前記格納部はさらに、
前記キー情報毎のアクセス頻度を示す頻度情報を前記記憶部に格納し、
前記記憶部に空きがない場合、格納した前記頻度情報に基づき、前記記憶部に格納されたキー情報と対応する識別情報を消去すること
を特徴とする付記１３に記載の管理装置の動作方法。
（付記１５）
複数の情報処理装置と、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置と、前記複数の情報処理装置のいずれかにアクセス要求を出力する管理装置と、前記複数の情報処理装置のいずれかを介して前記管理装置が発行する前記アクセス要求を受け、前記記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する第１記憶部を有する制御装置とを含む情報処理システムの制御方法において、
前記制御装置が有する第１の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出し、
前記制御装置が有する第２の検出部が、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出し、
前記制御装置が有する変更部が、前記第１のメモリに第１の情報処理装置を割り当てた旨を、前記第２のメモリを割り当てた第２の情報処理装置を割り当てるように、前記対応情報を変更し、
前記制御装置が有する出力部が、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第１のメモリから読み出したデータを、前記第２の情報処理装置を介して前記管理装置に出力し、
前記管理装置が有する受信部が、前記変更部が変更した対応情報を前記制御装置から受信し、
前記管理装置が有する格納部が、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、第２記憶部に格納し、
前記管理装置が有する出力部が、前記アクセス要求とともに受けたキー情報が、前記第２記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記第２記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力することを特徴とする情報処理システムの制御方法。
（付記１６）
複数の情報処理装置のいずれかを介して管理装置から発行されるアクセス要求を受け、前記複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御するとともに、前記複数のメモリの各々にアクセスする情報処理装置の割り当てを示す対応情報を記憶する記憶部を有する制御装置の制御プログラムにおいて、
前記制御装置が有する第１検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度を超える第１のメモリを検出させ、
前記制御装置が有する第２検出部に、それぞれのアクセス頻度に基づき、前記複数のメモリから所定のアクセス頻度以下の第２のメモリを検出させ、
前記制御装置が有する変更部に、前記第１のメモリに第１の情報処理装置を割り当てた旨を、前記第２のメモリを割り当てた第２の情報処理装置を割り当てるように、前記対応情報を変更させ、
前記制御装置が有する出力部に、前記変更部が変更した対応情報を前記管理装置に通知するとともに、前記第１のメモリから読み出したデータを、前記第２の情報処理装置を介して前記管理装置に出力させることを特徴とする制御装置の制御プログラム。
（付記１７）
複数の情報処理装置の各々に割り当てられた複数のメモリを含む記憶装置のアクセスを制御する制御装置に、前記複数の情報処理装置のいずれかを介してアクセス要求を発行する管理装置の制御プログラムにおいて、
前記管理装置の受信部に、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第１のメモリへの第１の情報処理装置を介したアクセス要求を、それぞれのアクセス頻度に基づき、前記複数のメモリから前記制御装置が検出した所定のアクセス頻度を超える第２のメモリを割り当てた第２の情報処理装置を介して出力する旨の変更情報を前記制御装置から受信させ、
前記管理装置の格納部に、前記第１のメモリに格納されているデータに対応するキー情報を、前記第２のメモリを割り当てた前記第２の情報処理装置を示す識別情報に対応付けて、前記記憶部に格納させ、
前記管理装置の出力部に、前記アクセス要求とともに受けたキー情報が、前記記憶部に格納された識別情報に対応付けられている場合、対応付けられた前記識別情報が示す情報処理装置に前記アクセス要求を出力するとともに、前記キー情報が、前記記憶部に格納された識別情報に対応づけられていない場合、前記キー情報から求めた情報処理装置に前記アクセス要求を出力させることを特徴とする管理装置の制御プログラム。
【０１７７】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１７８】
１Ａ、２Ａ、１Ｂ、２Ｂ‥メモリ；１０‥管理装置；１２‥受信部；１４‥格納部；１６‥出力部；２０Ａ、２０Ｂ‥情報処理装置；３０‥制御装置；３２、３４‥検出部；３６‥変更部；３８‥出力部；４０‥記憶装置；ＣＰＵａ、ＣＰＵｂ‥プロセッサ；ＣＴＲＬ‥制御装置；ＤＢ‥データベース；ＩＰＳ‥情報処理システム；Ｋ１、Ｋ２、Ｋ３‥キー；ＬＢ‥管理装置；ＭＤ‥記憶装置；ＭＥＭ０−ＭＤＭ９、ＭＥＭａ、ＭＥＭｂ‥メモリ；ＳＶ０−ＳＶ２‥サーバ；ＳＷ‥スイッチ；ＴＢＬ１‥負荷分散テーブル；ＴＢＬ２‥管理テーブル
【図１】
0005831319.tif 000002
【図２】
0005831319.tif 000003
【図３】
0005831319.tif 000004
【図４】
0005831319.tif 000005
【図５】
0005831319.tif 000006
【図６】
0005831319.tif 000007
【図７】
0005831319.tif 000008
【図８】
0005831319.tif 000009
【図９】
0005831319.tif 000010
【図１０】
0005831319.tif 000011
【図１１】
0005831319.tif 000012
【図１２】
0005831319.tif 000013
【図１３】
0005831319.tif 000014
【図１４】
0005831319.tif 000015
【図１５】
0005831319.tif 000016
【図１６】
0005831319.tif 000017
【図１７】
0005831319.tif 000018
【図１８】
0005831319.tif 000019
【図１９】
0005831319.tif 000020
【図２０】
0005831319.tif 000021
【図２１】
0005831319.tif 000022
【図２２】
0005831319.tif 000023
【図２３】
0005831319.tif 000024