ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、前記計算機システムは、前記データベースを構成する各計算機における負荷に関する負荷情報を管理する負荷情報管理部と、前記負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替えるアルゴリズム管理部と、切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する再配置処理部と、を有することを特徴とする計算機システム。請求項1に記載の計算機システムであって、前記データベースには、キー及びデータ値から構成される前記データが格納され、前記分散アルゴリズムは、前記キーの範囲を示す管理範囲を決定するためのアルゴリズムであり、前記再配置処理部は、前記分散アルゴリズムが切り替えられた後に、第1計算機が第1データに対するアクセス要求を受信した場合に、前記切り替えられた後の前記分散アルゴリズムに基づいて、第1データが前記第1計算機の前記管理範囲に含まれるか否かを判定し、前記第1データが前記第1計算機の管理範囲に含まれていると判定された場合、前記第1データが前記第1計算機に格納されているか否かを判定し、前記第1データが前記第1計算機に格納されていない場合に、前記第1データを格納する他の前記計算機から前記第1データを取得することを特徴とする計算機システム。請求項1又は請求項2に記載の計算機システムであって、前記アルゴリズム管理部は、前記データベースを構成する計算機の負荷が所定の閾値以上又は前記データベースを構成する計算機の負荷が所定の閾値以下の場合に、前記分散アルゴリズムを切り替えることを特徴とする計算機システム。請求項2又は請求項3に記載の計算機システムであって、前記データベースを構成する計算機の負荷が所定の閾値以上であると判定され、第1分散アルゴリズムから第2分散アルゴリズムに切り替えられた後に、前記データベースを構成する計算機の負荷が所定の閾値以下であると判定された場合に、前記アルゴリズム管理部は、前記第2分散アルゴリズムから前記第1分散アルゴリズムに切り替えることを特徴とする計算機システム。請求項3又は請求項4に記載の計算機システムであって、前記データベースを構成する計算機の負荷は、前記計算機に対するアクセス数又は前記計算機における前記メモリの使用量の少なくともいずれかであることを特徴とする計算機システム。請求項2から請求項4のいずれか一つに記載の計算機システムであって、前記再配置処理部は、前記第1データの複製データを取得し、前記取得された第1データの複製データを前記第1計算機に格納することによって前記データを再配置することを特徴とする計算機システム。請求項2から請求項4のいずれか一つに記載の計算機システムであって、前記再配置処理部は、前記第1データを取得し、前記取得された第1データを前記第1計算機に格納し、前記第1データを格納する他の前記計算機から前記第1データを削除することによって前記データを再配置することを特徴とする計算機システム。請求項2から請求項4のいずれか一つに記載の計算機システムであって、前記管理範囲は、前記計算機が管理するデータの範囲である第1管理範囲と、前記他の計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、前記データベースを構成する計算機は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、前記再配置処理部は、前記第1計算機が前記第1データの前記複製データを保持するか否かを判定し、前記第1計算機が前記第1データの複製データを保持していないと判定された場合に、前記第1データを前記第1計算機に再配置することを特徴とする計算機システム。請求項2から請求項4のいずれか一つに記載の計算機システムであって、前記アルゴリズム管理部は、前記データベースを構成する計算機のうち、負荷が低い計算機を特定し、前記特定された計算機が前記データの配置先となるように前記分散アルゴリズムを選択し、前記選択された分散アルゴリズムに切り替えることを特徴とする計算機システム。請求項2から請求項4のいずれか一つに記載の計算機システムであって、前記再配置処理部は、前記再配置されたデータの識別子、前記再配置前に前記データが格納されていた前記計算機の識別子、前記再配置後に前記データが格納された前記計算機の識別子及び前記データが再配置された時刻を含む履歴表示情報を生成することを特徴とする計算機システム。ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムにおけるデータ管理方法であって、前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、前記方法は、前記計算機が、前記データベースを構成する各計算機における負荷に関する負荷情報を取得する第1のステップと、前記計算機が、前記取得された負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替える第2のステップと、前記計算機が、切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する第3のステップと、を備えることを特徴とするデータ管理方法。請求項11に記載のデータ管理方法であって、前記データベースには、キー及びデータ値から構成される前記データが格納され、前記分散アルゴリズムは、前記キーの範囲を示す管理範囲を決定するためのアルゴリズムであり、前記第3のステップは、前記分散アルゴリズムが切り替えられた後に、第1計算機が第1データに対するアクセス要求を受信した場合に、前記切り替えられた後の前記分散アルゴリズムに基づいて、第1データが前記第1計算機の前記管理範囲に含まれるか否かを判定するステップと、前記第1データが前記第1計算機の管理範囲に含まれていると判定された場合、前記第1データが前記第1計算機に格納されているか否かを判定するステップと、前記第1データが前記第1計算機に格納されていない場合に、前記第1データを格納する他の前記計算機から前記第1データを取得するステップと、を含むことを特徴とするデータ管理方法。請求項11又は請求項12に記載のデータ管理方法であって、前記前記第3のステップでは、前記データベースを構成する計算機の負荷が所定の閾値以上又は前記データベースを構成する計算機の負荷が所定の閾値以下の場合に、前記分散アルゴリズムを切り替えることを特徴とするデータ管理方法。請求項12又は請求項13に記載のデータ管理方法であって、前記方法は、さらに、前記データベースを構成する計算機の負荷が所定の閾値以上であると判定され、第1分散アルゴリズムから第2分散アルゴリズムに切り替えられた後に、前記データベースを構成する計算機の負荷が所定の閾値以下であると判定された場合に、前記計算機が、前記第2分散アルゴリズムから前記第1分散アルゴリズムに切り替えるステップを含むことを特徴とするデータ管理方法。請求項13又は請求項14に記載のデータ管理方法であって、前記データベースを構成する計算機の負荷は、前記計算機に対するアクセス数又は前記計算機における前記メモリの使用量の少なくともいずれかであることを特徴とするデータ管理方法。請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、前記第3のステップは、前記第1データの複製データを取得するステップと、前記取得された第1データの複製データを前記第1計算機に格納するステップと、を含むことを特徴とするデータ管理方法。請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、前記第3のステップは、前記第1データを取得するステップと、前記取得された第1データを前記第1計算機に格納するステップと、前記第1データを格納する他の前記計算機から前記第1データを削除するステップと、を含むことを特徴とするデータ管理方法。請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、前記管理範囲は、前記計算機が管理するデータの範囲である第1管理範囲と、前記他の計算機が管理するデータの複製データの範囲である第2管理範囲とを含み、前記データベースを構成する計算機は、前記第1管理範囲に含まれる前記データと、前記第2管理範囲に含まれる前記複製データとを格納し、前記第3のステップは、前記第1計算機が前記第1データの前記複製データを保持するか否かを判定するステップと、前記第1計算機が前記第1データの複製データを保持していないと判定された場合に、前記第1計算機に再配置するステップと、を含むことを特徴とするデータ管理方法。請求項12から請求項14のいずれか一つに記載のデータ管理方法であって、前記第2のステップは、前記データベースを構成する計算機のうち、負荷が低い計算機を特定するステップと、前記特定された計算機が前記データの配置先となるように前記分散アルゴリズムを選択するステップと、前記選択された分散アルゴリズムに切り替えるステップと、を含むことを特徴とするデータ管理方法。ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムに含まれる前記計算機が実行するプログラムであって、前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、前記プログラムは、前記データベースを構成する各計算機における負荷に関する負荷情報を取得する手順と、前記取得された負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替える手順と、切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する手順と、を前記計算機に実行させることを特徴とするプログラム。しかし、特許文献1及び特許文献2に記載の技術では、一時的にシステムを停止させた後に、分割条件にしたがって再配置させる必要がある。また、特許文献2に記載の方法では、一時的な負荷の変化に柔軟に対応できない。なぜなら、クラスタにサーバを追加するための処理と、当該追加処理の後に管理範囲に含まれるデータの再配置とを行う必要があり、処理コストが高くなることからシステム全体としての性能が低下するためである。また、負荷の減少に伴って、クラスタからサーバを削除する場合も同様に処理コストが高くシステム全体として性能が低下する。本発明は、前述した課題に鑑みてなされた発明である。すなわち、計算機システムの負荷に柔軟に対応し、アクセス性能を低下させることなくデータを管理することを目的の一つとする。本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ネットワークを介して複数の計算機が接続され、前記各計算機が有する記憶領域から構成されたデータベースを用いて業務を実行する計算機システムであって、前記各計算機は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサと接続され、前記ネットワークを介して他の前記計算機と通信するためのネットワークインタフェースとを有し、前記データベースを構成する前記各計算機には、前記各計算機にデータを分散して配置させるための分散アルゴリズムに基づいてデータが配置され、前記計算機システムは、前記データベースを構成する各計算機における負荷に関する負荷情報を管理する負荷情報管理部と、前記負荷情報に基づいて前記計算機システムにおける前記分散アルゴリズムを切り替えるアルゴリズム管理部と、切り替えられた前記分散アルゴリズムに基づいて前記各計算機に格納されるデータを再配置する再配置処理部と、を有することを特徴とする。本発明によれば、データベースを構成するサーバの負荷に応じて、データの分散配置方法を切り替えることができるため、サーバへの負荷を分散することができる。したがって、システム全体の性能を保つことができる。まず、本発明の概要について説明する。図1は、本発明の概要を示す説明図である。KVS等のNoSQLデータベースでは、データを分散配置する方法として、ConsistentHashing法が用いられる。ConsistentHashing法では、まず、所定の関数を用いて複数のサーバ100のハッシュ値を算出し、ハッシュ値に基づいて各サーバ100を円周上に配置する。そして、各データのキーからハッシュ値を算出し、ハッシュ値に基づいてデータを円周上に配置する。このとき、各サーバ100は、円周の右側のデータを管理することとなる。すなわち、ConsistentHashing法では、各サーバ100が円周上に配置されるときにサーバ100の管理範囲400が決定され、管理範囲400毎にデータが分散して配置される。なお、データの分散配置方法は、ConsistentHashing法に限定されず、Range法及びList法等の種々の方法も用いられる。何れの方法でも、サーバ100毎に管理範囲400が設定される。図1に示す例では、サーバ100Aは管理範囲400Aのデータを管理し、サーバ100Bは管理範囲400Bのデータを管理し、サーバ100Cは管理範囲400Cのデータを管理し、サーバ100Dは管理範囲400Dのデータを管理する。ここで、管理範囲400Aはハッシュ値が1~100までの範囲であり、管理範囲400Bはハッシュ値が101~200までの範囲であり、管理範囲400Cハッシュ値が201~300までの範囲であり、管理範囲400Dはハッシュ値が301~400までの範囲である。サーバ100Aへのアクセスが増大した場合、サーバ100Aにおけるアクセス性能が低下し、これに伴ってシステム全体のアクセス性能が低下する。したがって、サーバ100Aへのアクセスを分散させる必要がある。そこで、本発明では、管理範囲400を決定するための分散アルゴリズムを切り替えることによって、サーバ100Aが管理する管理範囲400を変更する。ここで、分散アルゴリズムとは、管理範囲400を決定するためのアルゴリズムである。システムの稼働中に分散アルゴリズムを動的に変更することによって、サーバ100Aが管理していた一部のデータが他のサーバ100に配置されるため、システムを停止することなくサーバ100Aの負荷を分散できる。また、本発明では、必要なデータのみに対して再配置処理を実行することによって、システム全体の処理負荷を抑制する。以下の説明では、データの分散配置方法として、図1に示すようなConsistentHashing法を用いるものとして説明する。[第1の実施形態]図2は、本発明の第1の実施形態における計算機システムの構成を示すブロック図である。計算機システムは、複数のサーバ100、クライアント装置200及びネットワーク300から構成される。各サーバ100間又はサーバ100とクライアント装置200との間は、ネットワーク300を介して互いに接続される。ネットワーク300は、LAN、WAN及びSAN等の有線及び無線の種々の構成が考えられる。本発明は、サーバ100及びクライアント装置200が通信できるものであればどのようなネットワークであってもよい。なお、ネットワーク300には、複数のネットワーク装置図示省略が含まれる。ネットワーク装置は、例えば、スイッチ及びゲートウェイなどが含まれる。本実施形態では、複数のサーバ100からクラスタを構成し、それらサーバ100が備える記憶領域上にNoSQLデータベースが構築される。本実施形態ではNoSQLデータベースとして、KVSを用いるものとする。サーバ100は、プロセッサ110、主記憶装置120及び補助記憶装置130を備え、KVSを構成する計算機である。また、図示しないが、サーバ100は、ネットワーク300と接続するためのネットワークインタフェースを備える。サーバ100は、クライアント装置200からの要求にしたがって各種処理を実行する。なお、各サーバ100の構成は同一であるものとする。サーバ100は、管理範囲400毎にデータが配置されており、所定の管理範囲400に含まれるデータを管理するマスタサーバとして稼動する。また、サーバ100は、他のサーバ100が管理する管理範囲400に含まれるデータの複製データを保持しており、スレーブサーバとして稼動する。以下では、マスタサーバとして管理するデータをマスタデータと記載し、スレーブサーバとして管理するデータをスレーブデータとも記載する。また、本実施形態のクラスタは、計算機システム全体の管理を行う管理サーバとなる唯一のサーバが存在せず、全てのサーバ100が同等のサーバとして扱われる。これによって、1つのサーバに障害が発生しても、他のスレーブサーバが新たなマスタサーバとして処理を継続することができるため、計算機システムを停止することなく処理を継続することができる。ただし、第1の実施形態では、各サーバ100はスレーブデータを保持しないものとして説明する。すなわち、各サーバ100はマスタデータのみを保持するものとして説明する。プロセッサ110は、主記憶装置120に格納されるプログラムを実行する。プロセッサ110がプログラムを実行することによって、サーバ100が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ110によって、プログラムが実行されていることを示すものとする。主記憶装置120は、プロセッサ110が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置120は、例えば、メモリ等が考えられる。本実施形態の主記憶装置120上には、データ管理部141、アクセス要求受信部142、アクセス要求転送部143、アクセス結果送信部144、データ再配置処理部145、構成情報管理部146、負荷情報管理部147及びアルゴリズム管理部148を実現するためのプログラムが格納される。また、主記憶装置120上には、必要な情報として、構成情報161、サーバ負荷情報162、ログ情報163、アルゴリズム切替履歴164、アルゴリズム切替条件情報165及び移動履歴166が格納される。さらに、主記憶装置120上には、KVSを構成するデータベースであるデータストア150が格納される。データストア150には、キーと、バリューとを一組としたデータが格納される。なお、各サーバ100のデータストア150には、管理範囲400に含まれるデータが格納される。補助記憶装置130は、各種情報を格納する。補助記憶装置130は、例えば、HDD又はSSD等が考えられる。なお、補助記憶装置130上にKVSを構築するディスクストア図示省略が構築されてもよい。ここで、主記憶装置120に格納されるプログラム及び情報について説明する。データ管理部141は、サーバ100が管理するデータに対する各種処理を制御する。データ管理部141は、クライアント装置200からの要求を受け付け、その要求に基づいて、データの読み出しや書き込み等の処理を制御する。アクセス要求受信部142は、クライアント装置200からのアクセス要求を受信し、受信したアクセス要求をデータ管理部141に転送する。アクセス要求転送部143は、他のサーバ100へデータの問い合わせをするために、アクセス要求を他のサーバ100に転送する。アクセス結果送信部144は、受信したアクセス要求に対する処理の結果をクライアント装置200に送信する。データ再配置処理部145は、分散アルゴリズムが切り替えられた後に、各管理範囲400に格納されるデータの再配置処理を実行する。構成情報管理部146は、データの格納先を管理する構成情報161を管理する。負荷情報管理部147は、各サーバ100の負荷に関する情報を取得し、取得された情報に基づいてサーバ負荷情報162を更新する。アルゴリズム管理部148は、分散アルゴリズムを管理する。構成情報161は、データの格納先を示す情報を格納する。すなわち、各サーバ100の管理範囲400を示す情報が格納される。なお、構成情報161の詳細については、図4を用いて後述する。サーバ負荷情報162は、各サーバ100の負荷を示す情報を格納する。サーバ負荷情報162の詳細については、図5を用いて後述する。ログ情報163は、サーバ100における各種ログを格納する。ログ情報163の詳細については、図6を用いて後述する。アルゴリズム切替履歴164は、過去に切り替えられた分散アルゴリズムの履歴に関する情報を格納する。アルゴリズム切替履歴164の詳細については、図7を用いて後述する。アルゴリズム切替条件情報165は、分散アルゴリズムを切り替えるか否かを判定するための条件に関する情報を格納する。アルゴリズム切替条件情報165の詳細については、図8を用いて後述する。移動履歴166は、サーバ100間におけるデータの移動履歴を格納する。移動履歴166の詳細については、図9を用いて後述する。次に、クライアント装置200について説明する。クライアント装置200は、プロセッサ210、主記憶装置220及び補助記憶装置230を備え、サーバ100に対して各種処理の要求を送信する。また、図示しないが、クライアント装置200は、ネットワーク300と接続するためのネットワークインタフェースを備える。プロセッサ210は、主記憶装置220に格納されるプログラムを実行する。プロセッサ210がプログラムを実行することによって、クライアント装置200が備える機能を実現することができる。以下、プログラムを主語に処理を説明する場合には、プロセッサ210によって、プログラムが実行されていることを示す。主記憶装置220は、プロセッサ210が実行するプログラム及び当該プログラムの実行に必要な情報を格納する。主記憶装置220は、例えば、メモリ等が考えられる。本実施形態の主記憶装置220上には、アクセス要求部241、アクセス結果受信部242及び構成情報管理部243を実現するためのプログラムが格納される。また、主記憶装置220上には、必要な情報として構成情報251が格納される。補助記憶装置230は、各種情報を格納する。補助記憶装置130は、例えば、HDD又はSSD等が考えられる。ここで、主記憶装置220に格納されるプログラム及び情報について説明する。アクセス要求部241は、サーバ100に対してアクセス要求を送信する。アクセス要求は、データの読み出し処理及び書き込み処理等の実行を要求するためのものである。なお、書き込み処理には、データの書き込みとデータの上書きとが含まれるものとする。アクセス結果受信部242は、サーバ100から送信されるアクセス要求に対する処理の結果を受信する。構成情報管理部243は、データの格納先を管理する構成情報251を管理する。構成情報251は、データの格納先を示す情報を格納する。なお、本実施形態では、サーバ100及びクライアント装置200が備える機能を、ソフトウェアを用いて実現しているが、専用のハードウェアを用いて同一の機能を実現してもよい。また、計算機システムは、サーバ100とは別に、負荷情報管理部147及びアルゴリズム管理部148等を有する管理計算機を備えていてもよい。これによってサーバ100の構成を削減することができる。図3は、本発明の第1の実施形態におけるデータストア150に格納されるデータの形式を示す説明図である。本実施形態では、データストア150は、データ管理情報1500を格納する。データ管理情報1500には、キーとバリューとがペアとなったデータが複数含まれる。以下、キーとバリューとがペアとなったデータをキーバリュー型データとも記載する。データ管理情報1500は、Key1501及びValue1502を含む。Key1501は、データを識別するための識別子キーを格納する。Value1502は、実際のデータバリューを格納する。クライアント装置200を操作するユーザは、Key1501を指定してKVSにデータを保存し、また、Key1501を指定してKVSから所望のデータを取得することができる。各サーバ100は、所定のKey1501の範囲管理範囲400毎にキーバリュー型データを管理する。すなわち、管理範囲400毎にキーバリュー型データが各サーバ100に分散して配置される。サーバ100は、指定された管理範囲400のデータのマスタサーバとして処理を実行することとなる。これによって、大量のデータを並列的かつ高速に処理できる。図4は、本発明の第1の実施形態における構成情報161の一例を示す説明図である。構成情報161は、各サーバ100の管理範囲400に関する情報を格納する。具体的には、構成情報161は、サーバID1611及び管理範囲1612を含む。サーバID1611は、サーバ100を一意に識別するための識別子を格納する。サーバID1611には、サーバ100の識別子、IPアドレス及びMACアドレス等が格納される。管理範囲1612は、管理範囲400を示す値の範囲を格納する。管理範囲1612には、各サーバ100のマスタデータの管理範囲の値が格納される。なお、本実施形態では管理範囲400の値として、ハッシュ値が格納される。図5は、本発明の第1の実施形態におけるサーバ負荷情報162の一例を示す説明図である。サーバ負荷情報162は、各サーバ100における負荷を示す情報を格納する。具体的には、サーバ負荷情報162は、サーバID1621及び負荷情報1622を含む。サーバID1621は、サーバ100を一意に識別するための識別子を格納する。サーバID1621は、サーバID1611と同一のものである。負荷情報1622は、サーバ100の負荷に関する情報を格納する。本実施形態の負荷情報1622には、スループット1625及びメモリ使用量1626が含まれる。なお、負荷情報1622には、プロセッサの稼働率、データストア150の空き容量、ネットワーク帯域の使用率など、他の負荷情報が格納されてもよい。スループット1625は、単位時間当たりのリクエスト数を表すスループット値を格納する。メモリ使用量1626は、メモリの使用率を格納する。図6は、本発明の第1の実施形態におけるログ情報163の一例を示す説明図である。ログ情報163は、サーバ100の各種ログを格納する。図6に示す例では、ログ情報163は、アクセスログ1631及びメモリ使用量ログ1632を含む。アクセスログ1631は、クライアント装置200及び他のサーバ100からのアクセスに関するログを格納する。メモリ使用量ログ1632は、サーバ100が備えるメモリの使用量に関するログを格納する。なお、ログ情報163には、レスポンスタイム、キャッシュヒット率、利用頻度、データの参照数及びデータの更新数などその他のログが格納されてもよい。図7は、本発明の第1の実施形態におけるアルゴリズム切替履歴164の一例を示す説明図である。アルゴリズム切替履歴164は、これまでに切り替えられた分散アルゴリズムの履歴を格納する。具体的には、アルゴリズム切替履歴164は、切替履歴1641及び切替原因1642を含む。切替履歴1641は、各サーバ100の管理範囲400を決定するための分散アルゴリズムに関する情報を格納する。例えば、切替履歴1641には、分散アルゴリズムの識別子、ハッシュ関数などが格納される。切替原因1642は、分散アルゴリズムが切り替えられた理由を格納する。図8は、本発明の第1の実施形態におけるアルゴリズム切替条件情報165の一例を示す説明図である。アルゴリズム切替条件情報165は、分散アルゴリズムを切り替えるための判定基準を格納する。具体的には、アルゴリズム切替条件情報165は、分散アルゴリズム1651、負荷情報1652及び閾値1653を含む。分散アルゴリズム1651は、各サーバ100の管理範囲400を決定するための分散アルゴリズムに関する情報を格納する。負荷情報1652は、切替基準となる負荷情報が格納される。なお、負荷情報1652には、負荷情報702に対応する項目が格納される。閾値1653は、負荷情報1622に格納される負荷情報に対する閾値を格納する。図8に示す例では、分散アルゴリズム1は、サーバ100に負荷がかかっていない場合に使用され、また、負荷が低下した場合に切り替えられる分散アルゴリズムであることを示す。分散アルゴリズム2は、サーバ100のアクセスログ1631に基づいて切り替えられる分散アルゴリズムであり、閾値1653としてスループット値が用いられることを示す。分散アルゴリズム3は、サーバ100のメモリ使用量ログ1632に基づいて切り替えられる分散アルゴリズムであり、閾値1653としてメモリの使用率が用いられることを示す。なお、アルゴリズム切替条件情報165には、スループットログ、レスポンスログ、キャッシュヒット率ログ、データ参照数ログ、データ更新数ログ及びクライアント毎の利用頻度ログなどの負荷情報1652に基づいて判定される分散アルゴリズムが格納されてもよい。図9は、本発明の第1の実施形態における移動履歴166の一例を示す説明図である。移動履歴166は、データのサーバ100間の移動の履歴を格納する。具体的には、移動履歴166は、Key1661、移動履歴1662、タイムスタンプ1663及び切替原因1664を含む。Key1661は、データを識別するための識別子キーを格納する。移動履歴1662は、Key1661に対応するデータが移動したサーバ100の識別情報を格納する。タイムスタンプ1663は、サーバ100間をデータが移動した時刻を格納する。なお、タイムスタンプ1663には、データがサーバ100間を移動する度にタイムスタンプが1つ蓄積される。切替原因1664は、分散アルゴリズムを切り替えた原因を格納する。なお、切替原因1664には、データがサーバ100間を移動する度に切替原因が1つ蓄積される。次に、各種処理について説明する。まず、分散アルゴリズムが切り替えられる場合に実行される処理について説明する。図10は、本発明の第1の実施形態におけるサーバ100が実行する処理の概要を説明するフローチャートである。以下では、サーバ100のうち、処理を統括するサーバ100を統括サーバ100と記載する。統括サーバ100は予め設定してもよいし、KVSの管理者が手動で設定してもよいし、アクセス要求等を最初に受け付けたサーバ100を統括サーバ100として設定してもよい。また、異なる処理毎に統括サーバ100を変更することもできる。なお、統括サーバ100が実行する処理は、どのサーバ100でも実行可能な処理である。統括サーバ100は、各サーバ100における負荷の監視処理を実行するステップS100。具体的には、統括サーバ100は、定期的又は不定期的に、各サーバ100から負荷情報を取得して、サーバ負荷情報162を更新する。次に、統括サーバ100は、サーバ負荷情報162及びアルゴリズム切替条件情報165を参照して、分散アルゴリズムの切替処理を実行するステップS102。なお、統括サーバ100は、図10に示す処理を周期的に実行してもよいし、クライアント装置200からの要求にしたがって処理を実行してもよい。また、負荷監視していた統括サーバ100自身の負荷が高い場合、この統括サーバ100がサーバ負荷情報162を参照して、負荷が低いサーバ100を統括サーバ100に変更するように制御してもよい。この場合、変更後の統括サーバ100が切替処理を実行することとなる。図11は、本発明の第1の実施形態におけるサーバ100が実行する分散アルゴリズムの切替処理の詳細を説明するフローチャートである。分散アルゴリズムの切替処理は、統括サーバ100のアルゴリズム管理部148によって実行される。アルゴリズム管理部148は、サーバ負荷情報162及びアルゴリズム切替条件情報165を参照して分散アルゴリズムの切り替えが必要であるか否かを判定するステップS200。すなわち、特定のサーバ100の負荷が増大又は減少しているか否かが判定される。具体的には、アルゴリズム管理部148は、負荷情報1622における値と、対応する負荷情報の閾値1653とを比較して、切替条件を満たすか否かを判定する。図5に示す例では、スループット1625について判定する場合、サーバ1のスループット1625が92であり、対応する負荷情報の閾値1653が80であるため、サーバ100への負荷の増大によって分散アルゴリズムを切り替える必要があると判定される。なお、複数の切替条件を満たす場合には、上位の切替条件に対応する分散アルゴリズムに切り替えてもよいし、予め切替条件に優先順位を設定しておき、当該優先順に基づいて分散アルゴリズムを切り替えてもよい。分散アルゴリズムの切り替えが必要であると判定された場合、アルゴリズム管理部148は、該当する切替条件に一致する分散アルゴリズムに切り替えるステップS202。具体的には、該当する切替条件に一致する分散アルゴリズム1651に変更される。アルゴリズム管理部148は、構成情報161の更新を指示するステップS204。具体的には、アルゴリズム管理部148は、構成情報管理部146に構成情報161の更新を指示する。指示を受け付けた構成情報管理部146は、切り替えられた分散アルゴリズムに基づいて、構成情報161を更新する。これによって、各サーバ100の管理範囲400が変更されるため、サーバ100の負荷を平準化することができる。アルゴリズム管理部148は、分散アルゴリズムを切り替えた旨を通知するための切替通知を各サーバ100に送信し、処理を終了するステップS206。なお、切替通知には、切り替えられた分散アルゴリズムの情報及び更新された構成情報161が含まれる。図12は、本発明の第1の実施形態におけるサーバ100が実行する切替受付処理を説明するフローチャートである。サーバ100は、以下で説明する切替受付処理を周期的に実行するものとする。また、切替受付処理は、サーバ100のアルゴリズム管理部148によって実行される。アルゴリズム管理部148は、まず、処理が終了するか否かを判定するステップS300。例えば、サーバ100を停止させる場合に処理が終了すると判定される。次に、アルゴリズム管理部148は、統括サーバ100から切替通知を受信したか否かを判定するステップS302。統括サーバ100から切替通知を受信していないと判定された場合、アルゴリズム管理部148は、ステップS300に戻り、切替通知を受信するまで待ち続ける。統括サーバ100から切替通知を受信したと判定された場合、アルゴリズム管理部148は、切替通知に含まれる分散アルゴリズムの情報に基づいて、分散アルゴリズムを切り替えステップS304、さらに、アルゴリズム切替履歴164を更新するステップS306。アルゴリズム管理部148は、構成情報161の更新を指示するステップS308。具体的には、構成情報管理部146に、受信した切替通知に含まれる構成情報161を、現在格納される構成情報161に上書きする。なお、更新方法は、構成情報161への上書きに限定されず、現在格納される構成情報161を破棄し、受信した切替通知に含まれる構成情報161を格納する方法などが考えられる。その後、サーバ100は、ステップS300に戻り同様の処理を実行するステップS300~ステップS308。次に、クライアント装置200からのアクセス要求に対する処理について説明する。図13は、本発明の第1の実施形態におけるサーバ100がアクセス要求を受信した場合に実行する処理の概要を説明するフローチャートである。サーバ100は、クライアント装置200からアクセス要求を受け付けるとステップS400、アクセス処理を実行するステップS402。サーバ100は、アクセス要求の対象データを取得し、アクセス要求の送信元であるクライアント装置に、取得したデータを含むアクセス結果を送信するステップS404。以下では、アクセス要求の対象データを対象データとも記載する。図14は、本発明の第1の実施形態におけるクライアント装置200が実行するアクセス要求の発行処理を説明するフローチャートである。アクセス要求の発行処理は、アクセス要求部241によって実行される。アクセス要求部241は、データ操作APIを発行するステップS500。発行されたデータ操作APIに基づいて対象データが決定される。アクセス要求部241は、構成情報251を参照して、対象データが格納されるサーバ100を特定するステップS502。ここでは、構成情報251は、後述する構成情報の更新処理によって最新の構成情報251に更新されているものとする。なお、構成情報251が最新のものでない場合、アクセス要求を受け付けたサーバ100が、対象データを格納するサーバ100に当該アクセス要求を転送することとなる。アクセス要求部241は、対象データの識別情報キーを含むアクセス要求を特定されたサーバ100に送信し、処理を終了するステップS504。図15は、本発明の第1の実施形態におけるクライアント装置200が実行する構成情報の更新処理を説明するフローチャートである。構成情報の更新処理は、構成情報管理部243によって実行される。本実施形態の構成情報管理部243は、周期的に、以下で説明する処理を実行する。なお、クライアント装置200が、アクセス要求の送信先のサーバ100から新たな構成情報161を含むアクセス結果を受信した場合に処理が実行されてもよい。構成情報管理部243は、まず、処理が終了するか否かを判定するステップS600。例えば、クライアント装置200を停止させる場合に処理が終了すると判定される。次に、構成情報管理部243は、サーバ100から新しい構成情報161を受信したか否かを判定するステップS602。新しい構成情報161を受信していないと判定された場合、構成情報管理部243は、ステップS600に戻り、新しい構成情報161を受信するまで待ち続ける。新しい構成情報161を受信したと判定された場合、構成情報管理部243は、現在格納される構成情報251に、新たな構成情報161を上書きすることによって、構成情報251を更新するステップS604。その後、構成情報管理部243は、ステップS600に戻り、同様の処理を実行する。図16は、本発明の第1の実施形態におけるサーバ100が実行するアクセス処理を説明するフローチャートである。アクセス処理は、データ管理部141によって実行される。データ管理部141は、まず、処理が終了するか否かを判定するステップS700。例えば、サーバ100を停止させる場合に処理が終了すると判定される。次に、データ管理部141は、アクセス要求を受信したか否かを判定するステップS702。なお、アクセス要求は、クライアント装置200又は他のサーバ100から送信されたものである。アクセス要求を受信していないと判定された場合、データ管理部141は、ステップS700に戻り、アクセス要求を受信するまで待ち続ける。アクセス要求を受信したと判定された場合、データ管理部141は、対象データの格納先を特定するステップS704。具体的には、データ管理部141は、構成情報161を参照して、どのサーバ100の管理範囲400に対象データが含まれるかを判定する。なお、第1の実施形態では、管理範囲1612のマスタに記載された管理範囲400のみに着目して判定される。すなわち、対象データのマスタサーバ100が特定される。データ管理部141は、前述した判定の結果に基づいて、対象データの格納先が他のサーバ100であるか否かを判定するステップS706。図4に示す例では、ハッシュ値が350であるデータに対するアクセス要求をサーバAが受信した場合、当該データの格納先はサーバCであるため、対象データの格納先が他のサーバ100であると判定される。対象データの格納先が他のサーバ100でない、すなわち、対象データの格納先が自サーバ100であると判定された場合、データ管理部141は、データの再配置処理の実行をデータ再配置処理部145に指示するステップS708。なお、データの再配置処理については、図17を用いて後述する。データ管理部141は、対象データを取得して、取得された対象データを含むアクセス結果の送信をアクセス結果送信部144に指示するステップS710。当該指示を受けたアクセス結果送信部144は、アクセス要求の送信元のクライアント装置200にアクセス結果を送信する。その後、データ管理部141は、ステップS700に戻り同様の処理を実行する。ステップS706において、対象データの格納先が他のサーバ100であると判定された場合、データ管理部141は、対象データを格納する他のサーバ100にアクセス要求を転送するステップS720。当該アクセス要求を受信した、他のサーバ100では、図16に示す処理が実行されることとなる。その後、データ管理部141は、ステップS700に戻り同様の処理を実行する。図17は、本発明の第1の実施形態におけるサーバ100が実行するデータの再配置処理を説明するフローチャートである。データ再配置処理部145は、データストア150に対象データが格納されているか否かを判定するステップS800。データストア150に対象データが格納されていると判定された場合、データ再配置処理部145は、対象データをデータストア150に再配置する必要がないため処理を終了する。データストア150に対象データが格納されていないと判定された場合、データ再配置処理部145は、アルゴリズム切替履歴164を参照して、対象データの格納先を特定するステップS802。具体的には、以下のような処理が実行される。まず、データ再配置処理部145は、アルゴリズム切替履歴164を参照して、現在使用されている分散アルゴリズムの一つ前の分散アルゴリズムを特定する。データ再配置処理部145は、一つ前の分散アルゴリズムから各サーバ100の管理範囲400を算出し、対象データを管理していたサーバ100を特定する。データ再配置処理部145は、特定されたサーバ100に対して対象データを問い合わせる。当該問い合わせの結果、特定されたサーバ100が対象データを格納していない場合、データ再配置処理部145は、さらに一つ前の分散アルゴリズムを用いて同様の処理を実行する。以上がステップS802の処理である。次に、データ再配置処理部145は、特定されたサーバ100から対象データを取得するステップS804。取得方法としては、特定されたサーバ100に格納される対象データをコピーする方法、又は、特定されたサーバ100に格納される対象データを移動する方法などが考えられる。ここで、データのコピーは、他のサーバ100に格納される対象データの複製データを自サーバ100に格納することを示す。また、データの移動は、自サーバ100に対象データを格納し、他のサーバ100から対象データを削除することを示す。データ再配置処理部145は、移動履歴166の更新処理を実行して、処理を終了するステップS806。なお、移動履歴166の更新処理の詳細は、図18を用いて後述する。以上のように、本実施形態では、分散アルゴリズムが切り替えられても、クライアント装置200からアクセスされたデータについてのみ再配置処理が実行される。これによって、不要なデータの再配置処理が実行されることを回避でき、サーバ100の負荷増大を抑制することができる。図18は、本発明の第1の実施形態におけるサーバ100が実行する移動履歴166の更新処理を説明するフローチャートである。データ再配置処理部145は、対象データの識別情報キーを取得して、移動履歴166に対象データのエントリが存在するか否かを判定するステップS900。なお、対象データの識別情報は、アクセス要求から取得することができる。移動履歴166に対象データのエントリが存在すると判定された場合ステップS904に進む。移動履歴166に対象データのエントリが存在しないと判定された場合、データ再配置処理部145は、移動履歴166にエントリを生成するステップS902。このとき、データ再配置処理部145は、生成されたエントリのKey1661に対象データの識別子キーを格納する。データ再配置処理部145は、ステップS802において特定されたサーバ100の識別子を取得し、さらに、自サーバ100の識別子を取得して、移動履歴1662に格納するステップS904。なお、サーバ100間の移動順が分かるように情報が格納される。図9に示す例では、移動順にサーバ100の識別子が格納される。データ再配置処理部145は、データを移動した時刻を取得して、タイムスタンプ1663に格納するステップS906。データを移動した時刻としては、データ再配置処理部145が、ステップS804においてデータを取得した時刻が考えられる。さらに、データ再配置処理部145は、アルゴリズム切替履歴164の切替原因1642を参照して分散アルゴリズムを切り替えた原因を特定し、切替原因1664を更新して、処理を終了するステップS908。図19A及び図19Bは、本発明の第1の実施形態における処理の流れを示す説明図である。図19Aに示すようにサーバ100Aのアクセス数が増大すると、分散アルゴリズムの切り替えが必要であると判定されるステップS200。ここでは、分散アルゴリズム1から分散アルゴリズム2に切り替えられるものとする。図19Aに示す例では、分散アルゴリズムが切り替えられることによって、管理範囲400A、管理範囲400B及び管理範囲400Dが変更される。すなわち、管理範囲400Aは1~80に、管理範囲400Bは91~200に、管理範囲400Dは71~90及び301~400に変更される。また、データ500Aはハッシュ値が75のデータ、データ500Bはハッシュ値が93のデータとする。分散アルゴリズムが切り替えられた後、クライアント装置200は、データ500Aへアクセスする場合、データ500Aを管理するサーバ100Dに対してアクセス要求を送信するステップS504。サーバ100Dは、クライアント装置200からアクセス要求を受信すると、データ500Aの格納先は自サーバであると判定し、データ再配置処理を実行するステップS706、ステップS708。すなわち、サーバ100Dは、サーバ100Aからデータ500Aを取得し、データストア150にデータ500Aを格納するステップS804。一方、データ500Bは、クライアント装置200からのアクセス要求がないため、サーバ100Bに再配置されない。これによって、必要なデータのみ配置を変更することによって、サーバ100間の不要な通信を抑制することができる。したがって、システム全体の負荷を低減できる。また、分散アルゴリズムの切り替えによって管理範囲400が変更されるため、サーバ100Aへのアクセス数が減少し、サーバ100Aの負荷が低減できる。したがって、システム全体としての負荷が低減できる。サーバ100は、クライアント装置200からの要求に応じて、図20に示すようなデータの移動状態を確認するための情報を生成することができる。図20は、本発明の第1の実施形態におけるデータ移動履歴の表示例を示す説明図である。データ移動履歴の表示画面1000は、移動履歴表示領域1010及びデータ指定領域1020を含む。移動履歴表示領域1010には、データの移動履歴に関する情報が表示される。図20に示す例では、Key1011、移動履歴1012、タイムスタンプ1013及び切替原因1014を含む。Key1011、移動履歴1012、タイムスタンプ1013及び切替原因1014は、それぞれ、Key1661、移動履歴1662、タイムスタンプ1663及び切替原因1664と同一のものであるため説明を省略する。なお、移動履歴表示領域1010に表示される情報は、図20に示すようなものに限定されない。データ指定領域1020は、クライアント装置200を操作する管理者が所望するデータを指定するための情報を入力する領域である。図20に示す例では、所定のキーレンジが入力される。なお、データ指定領域1020には、個々のキーが入力されてもよいし、キー以外の情報、例えば、タイムスタンプ及びサーバの識別子などを入力してもよい。表示画面1000の表示処理としては以下のような処理が考えられる。クライアント装置200は、データ指定領域2020を操作して、表示画面2000の表示要求を送信する。表示要求には、キー情報、タイムスタンプ、サーバ識別子など任意の情報が含まれる。表示要求を受信したサーバ100は表示情報を生成して、クライアント装置200に表示情報を送信する。表示情報の生成方法としては、サーバ100が、移動履歴166を参照して、クライアント装置200が所望する情報を表示するための表示情報を生成する方法が考えられる。なお、他のサーバ100の移動履歴166が必要な場合には、各サーバ100に問い合わせることによって必要な移動履歴166を取得することができる。クライアント装置200は、表示情報を受信すると、移動履歴表示領域1010に移動履歴に関する情報を表示する。第1の実施形態によれば、特定のサーバ100に対する負荷が増大した場合に、分散アルゴリズムを切り替えることによって、各サーバ100に対する負荷を減少させることができる。また、負荷が低下した場合には、元の分散アルゴリズムに戻すことができ、一時的な負荷の変化に柔軟に対応することもできる。さらに、分散アルゴリズムの切り替えに伴うデータの再配置も必要なデータに限定できるため、サーバ100間の不要な通信を抑制できる。[第2の実施形態]図21は、本発明の第2の実施形態における計算機システムの構成を示すブロック図である。第2の実施形態では、クライアント装置200が構成情報管理部243及び構成情報251を含まない点が第1の実施形態と異なる。したがって、第2の実施形態ではアクセス要求の発行処理が第1の実施形態と異なる。具体的には、クライアント装置200は、構成情報251を含まないため、ステップS502の処理が省略される。この場合、クライアント装置200は、ネットワーク300に接続されるいずれかのサーバ100にアクセス要求を送信する。アクセス要求を受信したサーバ100は、図13及び図16に示す処理を実行して、アクセス結果を送信することとなる。なお、その他の構成及び処理は、第1の実施形態と同一であるため説明を省略する。[第3の実施形態]第3の実施形態では、サーバ100が他のサーバ100のスレーブデータを保持する点が異なる。したがって、第3の実施形態では、構成情報161の内容が異なる。また第3の実施形態では、アクセス処理及び再配置処理が異なる。以下、第1の実施形態との差異を中心に第3の実施形態について説明する。計算機システムの構成は、構成情報161を除き、第1の実施形態と同一であるため説明を省略する。図22は、本発明の第3の実施形態における構成情報161の一例を示す説明図である。第3の実施形態における構成情報161は、管理範囲1612に格納される情報が異なる。管理範囲1612には、新たな管理項目として、マスタ1615、スレーブ11616及びスレーブ21617が含まれる。マスタ1615は、マスタサーバ100として管理するマスタデータの管理範囲400の値を格納する。スレーブ11616及びスレーブ21617は、スレーブサーバ100として保持するスレーブデータの管理範囲400の値を格納する。なお、本実施形態では管理範囲400の値として、ハッシュ値の値が格納される。スレーブ11616はスレーブ21617より上位のスレーブサーバ100であることを示す。例えば、サーバID1611がサーバ2であるマスタサーバ100に障害が発生した場合に、サーバID1611がサーバ1及びサーバ4であるスレーブサーバ100のうち、サーバID1611がサーバ1であるスレーブサーバ100がマスタサーバ100として処理を引き継ぐこととなる。なお、本実施形態では、2つのスレーブサーバ100にスレーブデータを格納する構成を採っているが本発明はこれに限定されない。すなわち、1つ又は3つ以上のスレーブサーバ100にスレーブデータを格納する構成でもよい。次に、第3の実施形態における各種処理について説明する。第3の実施形態の統括サーバ100の処理は、第1の実施形態と同一であるため説明を省略する。切替受付処理、アクセス要求受信時の処理は、第1の実施形態と同一であるため説明を省略する。また、アクセス要求の発行処理、構成情報の更新処理及び移動履歴の更新処理は、第1の実施形態と同一であるため説明を省略する。第3の実施形態では、切替処理、アクセス処理及び再配置処理が異なる。以下、それぞれの処理について説明する。分散アルゴリズムの切替処理では、ステップS204における構成情報161の更新内容が異なる。ステップS204では、分散アルゴリズムの切り替えによって、マスタデータの管理範囲400とスレーブデータの管理範囲400とが変更される。ただし、マスタデータの管理範囲400だけを変更してもよい。管理範囲400の変更は、分散アルゴリズムを適宜変更することによって実現できる。ここでは、マスタデータの管理範囲400及びスレーブデータの管理範囲400の両方が変更されるものとする。構成情報161が変更された場合に、データストア150に格納されるデータそのものは変更されない。これは、データに、マスタデータ又はスレーブデータのいずれであるかを示す属性情報などが付与されていないためである。その他の処理は第1の実施形態と同一であるため説明を省略する。図23は、本発明の第3の実施形態におけるサーバ100が実行するアクセス処理を説明するフローチャートである。アクセス処理は、データ管理部141によって実行される。ステップS700及びステップS702の処理は、第1の実施形態と同一であるため説明を省略する。また、ステップS710及びステップS720の処理も、第1の実施形態と同一であるため説明を省略する。ステップS702の判定結果がYesの場合、データ管理部141は、対象データに対応するマスタデータの格納先を特定するステップS1000。具体的には、データ管理部141は、構成情報161のマスタ1615を参照して、どのマスタサーバ100の管理範囲400に対象データが含まれるかを判定する。すなわち、対象データのマスタサーバ100が特定される。データ管理部141は、前述した判定の結果に基づいて、対象データに対応するマスタデータの格納先が他のサーバ100であるか否かを判定するステップS1002。図4に示す例では、ハッシュ値が350であるデータに対するアクセス要求をサーバAが受信した場合、当該データに対応するマスタデータの格納先はサーバCであるため、対象データに対応するマスタデータの格納先が他のサーバ100であると判定される。対象データに対応するマスタデータの格納先が他のサーバ100でない、すなわち、対象データに対応するマスタデータの格納先が自サーバ100であると判定された場合、データ管理部141は、データの再配置処理の実行をデータ再配置処理部145に指示するステップS1004。なお、データの再配置処理については、図24を用いて後述する。図24は、本発明の第3の実施形態におけるサーバ100が実行するデータの再配置処理を説明するフローチャートである。データ再配置処理部145は、データストア150に対象データが格納されているか否かを判定するステップS1100。第3の実施形態では、データストア150に格納されるマスタデータ及びスレーブデータを参照して、対象データが格納されるか否かが判定される点が第1の実施形態と異なる。このように、スレーブデータとして管理していたデータに対象データが含まれる場合には、対象データを取得する必要がなく、サーバ100間の通信を抑制することができる。この場合、サーバ100は、分散アルゴリズムの切り替え前はスレーブデータであった対象データを、マスタデータとして管理することとなる。その他の処理は第1の実施形態と同一であるため説明を省略する。[変形例]図25は、本発明の第3の実施形態におけるサーバ100が実行するデータの再配置処理の変形例を説明する説明図である。図25に示すデータの再配置処理は、アクセス要求を受け付けた後、又は、分散アルゴリズムが切り替えられた後に実行される。データ再配置処理部145は、構成情報161を参照して、各サーバ100の現在の管理範囲400を特定するステップ1200。データ再配置処理部145は、アルゴリズム切替履歴164を参照して、分散アルゴリズムの切り替え前における、各サーバ100の管理範囲400を特定するステップS1202。以下では、分散アルゴリズムが切り替えられる前の管理範囲400を過去の管理範囲400とも記載する。データ再配置処理部145は、現在の管理範囲400と、過去の管理範囲400とを比較して、管理範囲400に差分が生じているか否かを判定するステップ1204。ここで、1~100までの第1の管理範囲を例に、管理範囲400に差分について説明する。例えば、分散アルゴリズムが切り替えられる前の第1の管理範囲を、サーバ100Aがマスタサーバ100として管理し、サーバ100B及びサーバ100Cがスレーブサーバ100として管理していた場合に、分散アルゴリズムが切り替えられた後の第1管理範囲を、サーバ100Bがマスタサーバ100として管理し、サーバ100C及びサーバ100Dがスレーブサーバ100として管理している場合には、管理範囲400に差分が生じていると判定される。なぜなら、サーバ100Dは、分散アルゴリズムが切り替えられる前は、第1の管理範囲のデータを保持していないため他のサーバ100から取得する必要があるためである。一方、サーバ100B及びサーバ100Cは、管理範囲400Aのスレーブデータを保持しており、分散アルゴリズムが切り替えられても必要なデータを保持しているため他のサーバ100から取得する必要がない。このとき、サーバ100Bは、第1の管理範囲のデータをマスタデータとして管理することとなる。また、サーバ100Cは、第1の管理範囲のデータをスレーブデータとして管理する。なお、上記説明では、簡単のため管理範囲400を固定していたが、分散アルゴリズムの切り替え前後で管理範囲400が異なっている場合でも同様の判定方法を適用できる。すなわち、分散アルゴリズムが切り替えられた後に、データを取得する必要なあるサーバ100が存在する場合に、管理範囲400に差分が生じていると判定される。管理範囲400に差分が生じていないと判定された場合、データ再配置処理部145は、処理を終了する。管理範囲400に差分が生じていると判定された場合、データ再配置処理部145は、当該差分を解消するようにデータを取得しステップS1206、処理を終了する。例えば、データ再配置処理部145は、マスタデータがない場合には、マスタデータを他のサーバ100から取得し、スレーブデータがない場合には、レプリケーション処理等を実行して、スレーブデータを他のサーバから取得する。[第4の実施形態]第4の実施形態では、分散アルゴリズムの切り替え方が第1の実施形態と異なる。以下、第1の実施形態との差異を中心に第3の実施形態について説明する。図26は、本発明の第4の実施形態における計算機システムの構成を示すブロック図である。第4の実施形態では、サーバ100のアルゴリズム切替条件情報170は、アルゴリズム切替履歴164と内容が異なる。また、第4の実施形態では、新たに切替候補情報180を含む。その他の構成は第1の実施形態と同一であるため説明を省略する。図27は、本発明の第4の実施形態におけるアルゴリズム切替条件情報170の一例を示す説明図である。アルゴリズム切替条件情報170は、負荷情報1701及び閾値1702を含む。負荷情報1701及び閾値1702は、負荷情報1652及び閾値1653と同一のものである。図27に示すように、第4の実施形態では、切替条件と分散アルゴリズムとが対応づけられていない点が第1の実施形態と異なる。図28は、本発明の第4の実施形態における切替候補情報180の一例を示す説明図である。切替候補情報180は、切り替え可能な分散アルゴリズムの情報を格納する。具体的には、ID1801及び分散アルゴリズム1802を含む。ID1801は、分散アルゴリズムを識別するための識別子を格納する。分散アルゴリズム1802は、分散アルゴリズムに関する情報を格納する。例えば、分散アルゴリズム1802には、ハッシュ関数及びキーレンジなどが格納される。図29は、本発明の第4の実施形態における分散アルゴリズムの切替処理の詳細を説明するフローチャートである。ステップS200において、分散アルゴリズムの切り替えが必要であると判定された場合、アルゴリズム管理部148は、サーバ100の負荷増大が切替原因であるか否かを判定するステップS1300。具体的には、ステップS200の判定処理において、どの切替条件に一致したかを確認することによって判定できる。なお、ステップS200では、アルゴリズム切替条件情報170に基づいて処理が実行される。サーバ100の負荷増大が切替原因でないと判定された場合、アルゴリズム管理部148は、ステップS1304に進む。サーバ100の負荷増大が切替原因であると判定された場合、アルゴリズム管理部148は、サーバ負荷情報162を参照して、負荷の低いサーバ100を特定し、ステップS1304に進むステップS1302。例えば、サーバ100へのアクセス数の増大が切替原因である場合、アルゴリズム管理部148は、サーバ負荷情報162を参照して、アクセス数が最小であるサーバ100を特定する。なお、特定されるサーバ100は1台である必要は無く、複数台であってもよい。アルゴリズム管理部148は、切替候補情報180を参照して分散アルゴリズムを選択し、選択された分散アルゴリズムを切り替えるステップS1304。分散アルゴリズムの選択方法は、切替原因によって異なる。以下、切替原因ごとの選択方法について説明する。切替原因がサーバ100の負荷減少である場合、アルゴリズム管理部148は、切替候補情報180を参照して、各サーバ100の負荷が平準化されるような分散アルゴリズムを選択する。例えば、分散アルゴリズムを切り替えた場合の管理範囲400を算出する方法が考えられる。また、他の方法としては、アルゴリズム管理部148が、アルゴリズム切替履歴164を参照して、サーバ100の負荷が増大する前の分散アルゴリズムを特定してもよい。切替原因がサーバ100の負荷増大である場合、アルゴリズム管理部148は、切替候補情報180を参照して、負荷が増大しているサーバ100の管理範囲400のデータを、負荷が小さいサーバ100に割り当てるための分散アルゴリズムを特定する。例えば、分散アルゴリズムを切り替えた場合の管理範囲400を算出する方法が考えられる。アルゴリズム管理部148は、特定された分散アルゴリズムの中から、最も負荷が平準化される分散アルゴリズムを選択する。以上がステップS1304の処理である。ステップS204及びステップS206の処理は、第1の実施形態と同一であるため説明を省略する。以上説明したように、本発明によれば、特定のサーバ100に対する負荷が増大した場合に、分散アルゴリズムを切り替えることによって、各サーバ100に対する負荷を低減できる。また、分散アルゴリズムの切り替えに伴うデータの再配置も必要なデータに限定できるため、不要なサーバ100間の通信を抑制できる。したがって、処理コストを抑え、かつ、動的な分散アルゴリズムの切り替えを実現することができる。なお、本実施形態で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。さらに、本実施形態では、ソフトウェアによる制御を用いた例について説明したが、その一部をハードウェアによって実現することも可能である。以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。