(57)【要約】【課題】他の情報処理装置が送信する処理依頼を処理する情報処理装置の過負荷を、監視負担を軽減しつつ適時に検出する。【解決手段】第１の情報処理装置が、記憶部を備える第２の情報処理装置に対して処理依頼を送信し、第２の情報処理装置で計算された書込み処理後における記憶部のデータ量を含む処理結果を受信し、受信した処理結果に含まれる記憶部のデータ量が、所定量を超えているか否かを判定する、負荷監視方法である。【選択図】図１６
2017162257.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置に、
記憶部を備える第２の情報処理装置に対して処理依頼を送信させ、
前記第２の情報処理装置が計算した前記記憶部のデータ量を含む処理結果を受信させ、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定させる、
ための負荷監視プログラム。
【請求項２】
前記第１の情報処理装置に、
前記記憶部のデータ量が前記所定量を超えている場合に、前記記憶部に格納されたデータの一部を含む領域を第３の情報処理装置に移行することを、前記第２の情報処理装置および前記第３の情報処理装置に指示させる、
ための請求項１に記載の負荷監視プログラム。
【請求項３】
前記第１の情報処理装置に、
前記処理結果により、前記記憶部の空き領域のデータ容量が前記第３の情報処理装置に移行された前記領域のデータ容量より大きい旨の通知を受けた場合に、前記領域を前記第２の情報処理装置に戻すことを、前記第２の情報処理装置および前記第３の情報処理装置に指示させる、
ための請求項２に記載の負荷監視プログラム。
【請求項４】
記憶部を備える第２の情報処理装置に、
第１の情報処理装置が送信する処理依頼を受信させ、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算させ、
前記計算されたデータ量が所定量を超えているか否かを判定させる、
ための負荷監視プログラム。
【請求項５】
前記第２の情報処理装置に、
前記記憶部のデータ量が前記所定量を超えている場合に、前記記憶部に格納されたデータの一部を含む領域を第３の情報処理装置に移行させる、
ための請求項４に記載の負荷監視プログラム。
【請求項６】
前記第２の情報処理装置に、
前記処理依頼に前記記憶部からの削除処理が含まれる場合に、前記削除処理後における前記記憶部の空き領域のデータ容量を計算させ、
前記空き領域のデータ容量が、前記領域のデータ容量より大きい場合に、前記第３の情報処理装置に移行された前記領域を、前記領域を前記第２の情報処理装置に戻させる、
ための請求項５に記載の負荷監視プログラム。
【請求項７】
第１の情報処理装置が、
記憶部を備える第２の情報処理装置に対して処理依頼を送信し、
前記第２の情報処理装置で計算された前記記憶部のデータ量を含む処理結果を受信し、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する、
負荷監視方法。
【請求項８】
記憶部を備える第２の情報処理装置が、
第１の情報処理装置から送信される処理依頼を受信し、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算し、
前記計算したデータ量が所定量を超えているか否かを判定する、
負荷監視方法。
【請求項９】
記憶部を備える第２の情報処理装置が、
第１の情報処理装置から送信される処理依頼を受信し、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算し、
計算した前記記憶部のデータ量を処理結果に設定し、
前記処理結果を前記第１の情報処理装置に送信し、
前記第１の情報処理装置が、
前記第２の情報処理装置から前記処理結果を受信し、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する、
負荷監視方法。
【請求項１０】
記憶部を備える第２の情報処理装置に対して処理依頼を送信する処理依頼送信部と、
前記第２の情報処理装置で計算された前記記憶部のデータ量を含む処理結果を受信する処理結果受信部と、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する判定部と、
を備える情報処理装置。
【請求項１１】
記憶部と、
第１の情報処理装置が送信する処理依頼を受信する処理依頼受信部と、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算する管理部と、
計算した前記記憶部のデータ量が所定量を超えているか否かを判定する判定部と、
を備える情報処理装置。
【請求項１２】
第１の情報処理装置および第２の情報処理装置を含む情報処理システムであって、
前記第２の情報処理装置は、
記憶部と、
前記第１の情報処理装置から送信される処理依頼を受信する処理依頼受信部と、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算する管理部と、
計算した前記記憶部のデータ量を処理結果に設定し、前記処理結果を前記第２の情報処理装置に送信する処理結果送信部と、を備え、
前記第１の情報処理装置は、
前記第２の情報処理装置に対して処理依頼を送信する処理依頼送信部と、
前記第１の情報処理装置から前記処理結果を受信する処理結果受信部と、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する判定部と、を備える、
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、負荷監視プログラム、負荷監視方法、情報処理装置、および情報処理システムに関する。
【背景技術】
【０００２】
近年、情報システムで処理されるデータ量が増え、情報システムの大規模化やクラウドコンピューティングの導入が進んでいる。情報システムで処理されるデータ量の増加に伴い、情報システム設計時の想定を超える処理依頼があった場合、情報システムは、情報システム内でのデータの再配置または情報システムに含まれるサーバの増設等により負荷を分散する。
【０００３】
データを再配置する方法として、アクセス頻度に応じてデータの格納先を変更する技術が知られている（例えば、特許文献１または２）。また、情報システムに含まれるサーバを増設する方法として、スケールアウトが知られている。スケールアウトは、サーバ上の処理を停止することなく、サーバの増設が可能な方法である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−１３９１１９号公報
【特許文献２】特開２００９−２８８９７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報システム内のサーバの負荷は、例えば、管理サーバにより各サーバを監視してサーバの性能情報を定期的に採取することで検出される。予測困難な要因により、突発的に情報システム内のクライアントまたは他のサーバ(以下、他の情報処理装置とも呼ばれる)からの処理依頼が集中すると、サーバは過負荷の状態になる場合がある。サーバの過負荷は、なるべく時間遅れがなくタイムリーに検出されることが望ましい。各サーバの監視頻度を増やすことで、サーバの過負荷はタイムリーに検出される可能性が高まる。しかしながら、監視頻度の増加は、ネットワークに流れるデータ量の増加やＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）使用率の増加を招く。
【０００６】
本発明は、他の情報処理装置が送信する処理依頼を処理する情報処理装置の過負荷を、監視負担を軽減しつつ適時に検出することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面は、第１の情報処理装置が、記憶部を備える第２の情報処理装置に対して処理依頼を送信し、第２の情報処理装置で計算された書込み処理後における記憶部のデータ量を含む処理結果を受信し、受信した処理結果に含まれる記憶部のデータ量が、所定量を超えているか否かを判定する、負荷監視方法である。
【発明の効果】
【０００８】
本発明によれば、他の情報処理装置が送信する処理依頼を処理する情報処理装置の過負荷を、監視負担を軽減しつつ適時に検出することができる。
【図面の簡単な説明】
【０００９】
【図１】管理サーバによる監視の負荷を説明する図である。
【図２】管理サーバによる過負荷検出の遅れを説明する図である。
【図３】情報処理システムの構成例を示す図である。
【図４】情報処理装置のハードウェア構成の一例を示す図である。
【図５】サーバ装置の構成要素の一例を示す図である。
【図６】クライアント装置の構成要素の一例を示す図である。
【図７】パーティション配置リストのデータ構造の一例を示す図である。
【図８】パーティションリストのデータ構造の一例を示す図である。
【図９】移行データの一例を示す図である。
【図１０】サーバ装置の定義ファイルの例を示す図である。
【図１１】パーティション情報リストのデータ構造の一例を示す図である。
【図１２】サーバ宛先リストのデータ構造の一例を示す図である。
【図１３】予備サーバリストのデータ構造の一例を示す図である。
【図１４】処理依頼データの一例を示す図である。
【図１５】処理結果データの一例を示す図である。
【図１６】サーバ装置の過負荷を検出する処理の動作例を示す図である。
【図１７】スケールアウト処理の動作例を示す図である。
【図１８】スケールアウト処理の具体例を示す図である。
【図１９】スケールアウト後に処理依頼を受信したサーバ装置の動作例を示す図である。
【図２０】移行データのデータ容量を移行先での変動に応じて更新する処理の動作例を示す図である。
【図２１】スケールアウト解除処理の動作例を示す図である。
【図２２】スケールアウト解除後に処理依頼を受信したサーバ装置の動作例を示す図である。
【図２３】クライアント装置がサーバ装置の負荷を監視する処理の例を示すフローチャートである。
【図２４】サーバ装置がクライアント装置から処理依頼を受信した場合の処理の例を示すフローチャートである。
【図２５】サーバ装置のスケールアウト処理の例を示すフローチャートである。
【図２６】サーバ装置のスケールアウト解除処理の例を示すフローチャートである。
【図２７】サーバ装置が自身の装置の負荷を監視する処理の例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１１】
〔比較例〕
図１は、管理サーバによる監視の負荷を説明する図である。管理サーバ２ｃは、サーバ２ａ＃００１〜サーバ２ａ＃１００の性能を監視するサーバである。サーバ２ａ＃００１〜サーバ２ａ＃１００は、サーバ（サーバ装置ともいう）２ａと総称される。管理サーバ２ｃは、サーバ２ａから性能情報を収集する。管理サーバ２ｃは、サーバ２ａから収集した性能情報を分析する処理を実行する。
【００１２】
サーバ２ａ＃００１は、クライアント２ｂ＃１〜クライアント２ｂ＃ｎからの処理依頼を受け付ける。サービス００１は、クライアント２ｂ＃１〜クライアント２ｂ＃ｎからの処理依頼に基づいてサーバ２ａ＃００１が実行する処理である。また、サーバ２ａ＃１００は、クライアント２ｂ＃９９ｎ＋１〜クライアント２ｂ＃１００ｎからの処理依頼を受け付ける。サービス１００は、クライアント２ｂ＃９９ｎ＋１〜クライアント２ｂ＃１０
０ｎからの処理依頼に基づいてサーバ２ａ＃１００が実行する処理である。クライアント２ｂ＃１〜クライアント２ｂ＃ｎ、クライアント２ｂ＃９９ｎ＋１〜クライアント２ｂ＃１００ｎは、クライアント（クライアント装置ともいう）２ｂと総称される。
【００１３】
サーバ２ａは、クライアント２ｂからの処理依頼に基づいて、それぞれサービス００１およびサービス１００を実行するが、それぞれ複数のサービスを実行してもよい。サーバ２ａは、複数のサービスを実行し、サービスごとに性能情報を取得して管理サーバ２ｃに送信してもよい。
【００１４】
サーバ２ａは、管理サーバ２ｃからの依頼により、サーバ２ａの性能情報を取得する。性能情報は、クライアント２ｂからの処理依頼に対する応答時間、処理の実行時間、補助記憶装置等に記憶されたデータ量等である。サーバ２ａは、取得した性能情報を管理サーバ２ｃに送信する。
【００１５】
タイムリーにサーバ２ａの過負荷を検出する目的でサーバ２ａの性能を監視すると、管理サーバ２ｃからサーバ２ａに対する性能情報の収集間隔が短くなるため、性能情報の収集頻度は増加する。サーバ２ａに対する性能情報の収集頻度が増加すると、サーバ２ａのＣＰＵ使用率は増加する。ＣＰＵ使用率の増加は、サービス００１、サービス１００等の実行時間に影響する。また、性能情報の送信頻度の増加により、ネットワークの負荷が増大し、サービス００１、サービス１００等の応答時間に影響する。また、管理サーバ２ｃによるサーバ２ａの監視頻度の増加に伴い、サーバ２ａの負荷は増加する。
【００１６】
図２は、管理サーバ２ｃによる過負荷検出の遅れを説明する図である。管理サーバ２ｃは、例えば、サーバ２ａにおいてデータ格納域のデータ量が所定量を超えた場合に、当該サーバ２ａが過負荷であると判定する。管理サーバ２ｃは、サーバ２ａが実行するサービスごとに、データ量を監視して過負荷か否かを判定してもよい。
【００１７】
管理サーバ２ｃは、図１と同様に、サーバ２ａから性能情報を収集する。サーバ２ａは、収集した性能情報を管理サーバ２ｃに送信する。図２の例において、管理サーバ２ｃは、収集した性能情報から、サービス１００が過負荷であることを検出する。管理サーバ２ｃは、サーバ２ａ＃１００に対してスケールアウトを実行し、サービス１００をサーバ２ａ＃２００に移行する。スケールアウトは、サービスを、他のサーバ２ａに移行する処理である。スケールアウトにより、移行元のサーバ２ａ＃１００の負荷は軽減される。
【００１８】
図２の例では、管理サーバ２ｃは、図１と同様に、サーバ２ａから性能情報を収集する。サーバ２ａは、収集した性能情報を管理サーバ２ｃに送信する。管理サーバ２ｃは、サービス１００の過負荷を検出すると、サービス１００をサーバ２ａ＃２００にスケールアウトする。
【００１９】
ここで、各サーバ２ａからの性能情報は、管理サーバ２ｃの監視間隔ごとに、順次、管理サーバ２ｃに送信される。したがって、サーバ２ａ＃１００のサービス１００が過負荷の状態になっても、サーバ２ａ＃１００からの性能情報が、他のサーバ２ａよりも後に管理サーバ２ｃに送信されると、過負荷の検出が遅れる。過負荷の検出の遅れにより、サービス１００は、タイムリーにサーバ２ａ＃２００にスケールアウトされない。このため、サーバ２ａ＃１００は、性能低下により、クライアント２ｂからの処理依頼に失敗する場合が生じる。
【００２０】
〔実施形態〕
実施形態において、サーバ装置２ａは、クライアント装置２ｂからの処理依頼を受信すると、処理依頼に基づく操作を実行する。サーバ装置２ａは、操作実行後のデータ格納域
のデータ量を計算する。サーバ装置２ａは、実行した操作の処理結果に、計算したデータ量を含むデータ格納情報を設定し、クライアント装置２ｂに送信する。データ格納情報は、例えば、データ格納域のデータ容量、データ量、データ容量の閾値等である。データ容量は、データ格納域に格納できるデータの量である。データ量は、データ格納域に格納されているデータの量である。データ格納域は、以下、単に領域、またはパーティションとも呼ばれる。
【００２１】
クライアント装置２ｂは、サーバ装置２ａから受信した処理結果に含まれるデータ格納域のデータ量が所定量を超えているか否かを判定することにより、サーバ装置２ａの過負荷を検出する。クライアント２ｂは、サーバ２ａの過負荷を検出すると、サーバ装置２ａに対してスケールアウトを指示する。サーバ装置２ａは、スケールアウトにより、データ格納域に格納されているデータの一部を移行先のサーバ装置２ａに移行する。
【００２２】
＜システムおよび装置構成＞
図３は、情報処理システム１の構成例を示す図である。情報処理システム１は、ネットワーク１４を介して接続される複数の情報処理装置２を含む。情報処理装置２は、サーバ装置２ａまたはクライアント装置２ｂであり、サーバ装置２ａ兼クライアント装置２ｂであってもよい。サーバ装置２ａは、「第２の情報処理装置」および「第３の情報処理装置」の一例である。クライアント装置２ｂは、「第１の情報処理装置」の一例である。
【００２３】
図４は、情報処理装置２のハードウェア構成の一例を示す図である。情報処理装置２は、プロセッサ３、主記憶装置４、補助記憶装置５、画像信号処理部６、入力信号処理部７、可搬記録媒体駆動装置８、通信インタフェース９を備える。また、これらはバス１０により互いに接続される。
【００２４】
プロセッサ３は、補助記憶装置５又は記憶媒体１３に保持されたＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（ＯＳ）や様々なコンピュータプログラムを主記憶装置４にロードして実行することによって、様々な処理を実行する。ただし、コンピュータプログラムによる処理の一部がハードウェア回路により実行されてもよい。プロセッサ３は、ＣＰＵとも呼ばれる。また、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）であってもよい。また、プロセッサ３は、複数のコアを含むマルチコアのプロセッサ、複数のＣＰＵを組み合わせたマルチプロセッサであってもよい。
【００２５】
主記憶装置４は、プロセッサ３に、補助記憶装置５に格納されているプログラムをロードするための記憶領域、及びプログラムを実行するための作業領域を提供する。また、主記憶装置４は、データを保持するためのバッファとして用いられる。主記憶装置４は、例えば、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）等の半導体メモリである。
【００２６】
補助記憶装置５は、様々なプログラムや、各プログラムの実行に際してプロセッサ３が使用するデータを格納する。補助記憶装置５は、例えば、Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ（ＥＰＲＯＭ）、又はハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ、ＨＤＤ）等の不揮発性のメモリである。補助記憶装置５は、例えば、ＯＳ、その他様々なアプリケーションプログラムを保持する。
【００２７】
画像信号処理部６は、プロセッサ３の処理の結果を画像信号に変換し、例えば、ディスプレイ１１に出力する。入力信号処理部７は、入力デバイス１２から入力された入力信号をプロセッサ３に出力する。入力デバイス１２は、例えば、キーボード、マウス等のポインティングデバイスである。
【００２８】
可搬記録媒体駆動装置８は、記憶媒体１３に記録されるプログラムや各種データを読出し、プロセッサ３に出力する。記憶媒体１３は、例えば、ＳＤカード、ｍｉｎｉＳＤカード、ｍｉｃｒｏＳＤカード、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）フラッシュメモリ、Ｃｏｍｐａｃｔ  Ｄｉｓｃ（ＣＤ）、Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ（ＤＶＤ）、フラッシュメモリカード等の記録媒体である。
【００２９】
通信インタフェース９は、ネットワーク１４との情報の入出力を行うインタフェースである。通信インタフェース９は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。通信インタフェース９は、例えば、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ（ＮＩＣ）、無線Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）カード等である。通信インタフェース９で受信されたデータ等は、プロセッサ３に出力される。
【００３０】
例えば、情報処理装置２では、プロセッサ３が、補助記憶装置５に保持される負荷監視プログラムを主記憶装置４にロードして実行する。なお、情報処理装置２の装置構成は一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。負荷監視プログラムは、例えば、記憶媒体１３に記録されていてもよい。
【００３１】
図５は、サーバ装置２ａの構成要素の一例を示す図である。サーバ装置２ａは、サーバ制御部２０ａを含む。サーバ制御部２０ａは、通信制御部３０ａ、記憶部４０ａおよび処理制御部５０ａを含む。
【００３２】
サーバ装置２ａのプロセッサ３は、コンピュータプログラムにより、通信制御部３０ａ、記憶部４０ａ、並びに処理制御部５０ａに含まれる処理依頼受信部５１、管理部５２、判定部５３ａおよび処理結果送信部５４の処理を実行する。ただし、これらの構成要素の処理のいずれか、またはその処理の一部がハードウェア回路により実行されてもよい。
【００３３】
通信制御部３０ａは、ネットワーク１４を介して、情報処理システム１内の他の情報処理装置２との通信を制御する。記憶部４０ａは、処理制御部５０ａの処理に使用されるデータを格納するデータ格納域である。記憶部４０ａに格納されるデータは、補助記憶装置５に記憶することができる。記憶部４０ａは、定義ファイル４１ａを含む。定義ファイル４１ａは、処理制御部５０ａの処理に使用されるサーバ側の定義パラメタの値を記憶する。
【００３４】
処理制御部５０ａは、処理依頼受信部５１、管理部５２、判定部５３ａおよび処理結果送信部５４を含む。処理依頼受信部５１は、クライアント装置２ｂからの処理依頼を受信し、処理依頼に基づく操作を実行する。
【００３５】
管理部５２は、記憶部４０ａのデータ容量、データ量等のデータ格納情報を管理する。管理部５２は、記憶部４０ａを複数のパーティションに分割し、パーティションごとにデータ格納情報を管理してもよい。具体的には、管理部５２は、クライアント装置２ｂからの処理依頼に基づく操作を実行した後、操作対象のデータを含むパーティションのデータ量を計算する。また、管理部５２は、パーティションのデータ量が所定量を超えると、パーティションのデータ容量を拡張する。
【００３６】
判定部５３ａは、管理部５２が計算した記憶部４０ａのデータ量が所定量を超えているか否かを判定する。判定部５３ａは、記憶部４０ａのデータ量が所定量を超えているか否かを、記憶部４０ａのデータ量が記憶部４０ａのデータ容量に対して所定の割合、例えば９０％を超えているか否かにより判定してもよい。また、記憶部４０ａが複数のパーティションを含む場合、操作対象のデータを含むパーティションのデータ量が所定量を超えて
いるか否かを判定すればよい。複数のパーティションのうち、いずれか１つのパーティションにおいてデータ量が所定量を超えている場合についても、判定部５３ａは、サーバ装置２ａが過負荷の状態であると判断する。
【００３７】
処理結果送信部５４は、クライアント装置２ｂからの処理依頼に基づく操作の結果を、処理結果データとして生成する。処理結果送信部５４は、管理部５２が計算した記憶部４０ａのデータ量を含むデータ格納情報を、処理結果データに設定し、クライアント装置２ｂに送信する。
【００３８】
図６は、クライアント装置２ｂの構成要素の一例を示す図である。クライアント装置２ｂは、クライアント制御部２０ｂおよびアプリケーションソフトウェア６０を含む。クライアント制御部２０ｂは、通信制御部３０ｂ、記憶部４０ｂおよび処理制御部５０ｂを含む。
【００３９】
クライアント装置２ｂのプロセッサ３は、コンピュータプログラムにより、通信制御部３０ｂ、記憶部４０ｂ、並びに処理制御部５０ｂに含まれる処理依頼送信部５５、処理結果受信部５６および判定部５３ｂの処理を実行する。ただし、これらの構成要素の処理のいずれか、またはその処理の一部がハードウェア回路により実行されてもよい。
【００４０】
通信制御部３０ｂは、ネットワーク１４を介して、情報処理システム１内の他の情報処理装置２との通信を制御する。記憶部４０ｂは、処理制御部５０ｂの処理に使用されるデータを格納する。記憶部４０ｂに格納されるデータは、補助記憶装置５に記憶することができる。記憶部４０ｂは、定義ファイル４１ｂを含む。定義ファイル４１ｂは、処理制御部５０ｂの処理に使用されるクライアント側の定義パラメタの値を記憶する。
【００４１】
処理制御部５０ｂは、処理依頼送信部５５、処理結果受信部５６および判定部５３ｂを含む。処理依頼送信部５５は、アプリケーションソフトウェア６０からの処理依頼を受信すると、受信した処理依頼に基づき、サーバ装置２ａに対して処理依頼を送信する。
【００４２】
処理結果受信部５６は、サーバ装置２ａから、送信した処理依頼に対する処理結果を受信する。処理結果は、サーバ装置２ａの記憶部４０ａのデータ格納情報を含む。判定部５３ｂは、処理結果に含まれる記憶部４０ａのデータ格納情報に基づき、記憶部４０ａのデータ量が所定量を超えているか否かを判定する。
【００４３】
＜データ構造＞
図７から図１０は、各サーバ装置２ａで使用されるデータの定義およびデータ構造の例を説明する。図１１から図１３は、各クライアント装置２ｂで使用されるデータの定義およびデータ構造の例を説明する。図１４および図１５は、サーバ装置２ａとクライアント装置２ｂとの間で送受信する処理依頼および処理結果のデータ構造の例を説明する。
【００４４】
図７は、パーティション配置リストのデータ構造の一例を示す図である。パーティション配置リストは、パーティションの配置定義のリストである。パーティションは、移行先サーバに移行するデータの管理単位で、所定のデータ容量の領域である。パーティションの配置定義は、パーティションが配置されるサーバ装置２ａを定義する。パーティション配置リストは、例えば、サーバ装置２ａの補助記憶装置５に記憶される。図７において、パーティションの配置定義は、一例としてパーティション名、および配置サーバの項目を含む。
【００４５】
「パーティション名」は、パーティションの名称である。パーティション名には、例えば“Ｐａｒｔｉｔｉｏｎ  Ａ”、“Ｐａｒｔｉｔｉｏｎ  Ｂ”等が設定される。配置サー
バは、パーティションが配置されるサーバ装置２ａである。図７の例では、Ｐａｒｔｉｔｉｏｎ  Ａ〜Ｄの配置サーバとして“ＳＶ１０１”が設定される。即ち、Ｐａｒｔｉｔｉｏｎ  Ａ〜Ｄは、“ＳＶ１０１”に配置される。
【００４６】
図８は、パーティションリストのデータ構造の一例を示す図である。パーティションリストは、サーバ装置２ａが管理するパーティションのリストである。パーティションリストは、パーティションの移行状態および移行先サーバ等の情報を格納する。パーティションリストは、例えば、サーバ装置２ａの補助記憶装置５に記憶される。
【００４７】
パーティションリストは、パーティション名、データ容量、データ量、移行状態および移行先サーバの項目を含む。パーティション名は、サーバ装置２ａが管理するパーティションの名称である。データ容量は、パーティションに格納できるデータの容量である。データ量は、現在パーティションに格納されているデータの量である。移行状態は、パーティションがスケールアウトにより移行先のサーバ装置２ａに移行されているか否かの状態である。移行先サーバは、移行済のパーティションが存在するサーバ装置２ａである。
【００４８】
サーバ装置２ａは、クライアント装置２ｂからの処理依頼に基づいて処理を実行すると、操作対象のパーティションのデータ量を更新する。サーバ装置２ａは、パーティションのデータ量が所定量を超えた場合、パーティションのデータ容量を拡張する。この場合、サーバ装置２ａは、パーティションリストのデータ容量を更新する。
【００４９】
図８において、例えば、“Ｐａｒｔｉｔｉｏｎ  Ａ”について、データ容量は“２ＧＢ”、データ量は“２ＧＢ”、移行状態は“移行未”である。また、“Ｐａｒｔｉｔｉｏｎ
Ｃ”について、データ容量は“４ＧＢ”、データ量は“１ＧＢ”、移行状態は“移行済”であり、移行先サーバは“ＳＶ２０１”である。
【００５０】
図９は、移行データの一例を示す図である。移行データは、過負荷が検出されたサーバ装置２ａから、スケールアウトにより移行先サーバに移行されるデータを定義する。移行先サーバに移行されるデータは、例えば、パーティション単位で移行される。移行データは、パーティション名、パーティションデータ長およびパーティション実データの項目を含む。
【００５１】
パーティション名は、移行対象のパーティションの名称であり、図９の例では、“Ｐａｒｔｉｔｉｏｎ  Ｃ”が設定されている。パーティションデータ長は、移行対象の“Ｐａｒｔｉｔｉｏｎ  Ｃ”のデータ長であり、“１０２４００”が設定されている。パーティション実データは、移行対象の“Ｐａｒｔｉｔｉｏｎ  Ｃ”の実データである。
【００５２】
図１０は、サーバ装置２ａの定義ファイル４１ａの例を示す図である。サーバ装置２ａの定義ファイル４１ａは、例えば、サーバ装置２ａの補助記憶装置５に記憶される。サーバ装置２ａの定義ファイル４１ａは、ＤａｔａＣａｐａｃｉｔｙＴｈｒｅｓｈｏｌｄ、ＭａｘＤａｔａＣａｐａｃｉｔｙおよびＳｅｒｖｅｒＮａｍｅを定義する。
【００５３】
ＤａｔａＣａｐａｃｉｔｙＴｈｒｅｓｈｏｌｄは、サーバ装置２ａのデータ容量に対するデータ量の閾値（以下、データ容量の閾値とも呼ばれる）であり、図１０の例では、“９０％”が設定されている。この場合、サーバ装置２ａの記憶部４０ａに格納されるデータ量が、記憶部４０ａのデータ容量の９０％を超えると、サーバ装置２ａは過負荷と判断され、スケールアウトされる。
【００５４】
なお、サーバ装置２ａは、記憶部４０ａに含まれるパーティションごとに、ＤａｔａＣａｐａｃｉｔｙＴｈｒｅｓｈｏｌｄで定義されるデータ容量の閾値を適用し、過負荷であ
るか否か判定されてもよい。また、データ容量の閾値は、パーティションごとに異なる閾値が定義されてもよい。
【００５５】
ＭａｘＤａｔａＣａｐａｃｉｔｙは、記憶部４０ａのデータ格納容量であり、“１３ＧＢ”が設定されている。ＳｅｒｖｅｒＮａｍｅは、自身のサーバ装置２ａのＩｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌアドレス（ＩＰアドレス）またはマシン名であり、マシン名“ＳＶ１０１”が設定されている。
【００５６】
図１１は、パーティション情報リストのデータ構造の一例を示す図である。パーティション情報リストは、クライアント装置２ｂが操作対象とするデータを保持するパーティションの情報を格納する。パーティション情報は、データが配置されるサーバ装置２ａの情報であり、データ配置情報とも呼ばれる。パーティション情報リストは、例えば、クライアント装置２ｂの補助記憶装置５に記憶される。
【００５７】
パーティション情報リストは、パーティション名、移行状態、移行元サーバ、移行先サーバの項目を含む。パーティション名は、クライアント装置２ｂが操作対象とするデータを保持するパーティションの名称である。移行状態は、パーティションがスケールアウトにより、移行元のサーバ装置２ａから移行先のサーバ装置２ａに移行されているか否かの状態である。移行元サーバの項目は、パーティションが配置された移行元サーバ装置２ａの情報を格納する。移行先サーバの項目は、移行元サーバにおいて過負荷が検出されスケールアウトが実行されると、移行先のサーバ装置２ａの情報を格納する。
【００５８】
移行元サーバおよび移行先サーバの項目は、さらに、サーバ空き容量、データ容量、データ量、拡張データ量、データ容量閾値の項目を含む。サーバ空き容量は、記憶部４０ａの空き領域のデータ容量である。サーバ空き容量は、記憶部４０ａのデータ容量から、各パーティションのデータ容量を除いたデータ容量として算出することができる。データ容量は、パーティションに格納することができるデータの容量である。データ量は、パーティションに格納されているデータの量である。拡張データ量は、パーティションのデータ量が所定量を超えた場合に、拡張されるデータの容量である。データ容量閾値は、パーティションが過負荷の状態であるか否かを判定するためのデータ容量の閾値である。
【００５９】
クライアント装置２ｂは、サーバ装置２ａに送信した処理依頼に対し、処理結果を受信すると、処理結果に含まれるデータ格納情報に基づき、移行元サーバの各項目の値を更新する。また、クライアント装置２ｂは、サーバ装置２ａのスケールアウトにより、パーティションが別のサーバ装置２ａに移行されると、当該パーティションの移行先サーバの各項目の値を更新する。
【００６０】
図１１では、例えば、“Ｐａｒｔｉｔｉｏｎ  Ｃ”は、移行元サーバ“ＳＶ１０１”から移行先サーバ“ＳＶ２０１”に“移行済”の状態である。移行元サーバ“ＳＶ１０１”のデータ空き領域は、“４ＧＢ”である。“Ｐａｒｔｉｔｉｏｎ  Ｃ”のデータ容量、データ量、拡張データ量は、それぞれ“４ＧＢ”、“１ＧＢ”、“１ＧＢ”である。また、“Ｐａｒｔｉｔｉｏｎ  Ｃ”のデータ容量閾値は“９０％”である。
【００６１】
また、移行元サーバ“ＳＶ１０１”は、クライアント装置２からスケールアウトの指示を受け、“Ｐａｒｔｉｔｉｏｎ  Ｃ”を移行先サーバ“ＳＶ２０１”に移行したものとする。移行先サーバ“ＳＶ２０１”のデータ空き領域は、“１３ＧＢ”である。データ空き領域に余裕があるため、“Ｐａｒｔｉｔｉｏｎ  Ｃ”のデータ容量は、１ＧＢ拡張されて“５ＧＢ”となっている。“Ｐａｒｔｉｔｉｏｎ  Ｃ”に対する処理の実行により、“Ｐａｒｔｉｔｉｏｎ  Ｃ”にデータが挿入された場合、データ量は、例えば“３ＧＢ”となる。移行先サーバ“ＳＶ２０１”において、拡張データ量およびデータ容量閾値は変更さ
れていない。
【００６２】
図１２は、サーバ宛先リストのデータ構造の一例を示す図である。サーバ宛先リストは、クライアント装置２ｂから接続するサーバ装置２ａの情報を格納する。サーバ宛先リストは、例えば、クライアント装置２ｂの補助記憶装置５に記憶される。
【００６３】
サーバ宛先リストは、サーバ宛先要素数の項目を含む。サーバ宛先要素数は、クライアント装置２ｂから接続するサーバ装置２ａの数である。サーバ宛先リストは、サーバ宛先要素数に設定された数のサーバ宛先情報を格納する。
【００６４】
サーバ宛先情報は、サーバ名、ポート番号、サービス名、パーティション名の項目を含む。サーバ名は、クライアント装置２ｂから接続するサーバ装置２ａのＩＰアドレスまたはマシン名である。ポート番号は、当該サーバ装置２ａに接続するためのポート番号である。サービス名は、スケールアウトの対象となるサービスを識別するための識別子である。パーティション名は、スケールアウトの対象となるサービスで使用されるパーティションの名称である。スケールアウトの対象となるサービスで使用されるパーティションは複数であってもよい。複数のパーティションが使用される場合、使用される数のパーティション名が格納される。
【００６５】
図１２の例では、サーバ宛先要素数は“２”であり、２つのサーバ宛先情報が格納されている。例えば、サーバ宛先情報１のサーバ名、ポート番号、サービス名として、それぞれ“ＳＶ１０１”、“８０”、“ＧＹＯＭＵ  １”が設定されている。また、パーティション名として、“ＧＹＯＭＵ  １”のサービスが使用する３つのパーティション“Ｐａｒｔｉｔｉｏｎ  Ａ”、“Ｐａｒｔｉｔｉｏｎ  Ｂ”、“Ｐａｒｔｉｔｉｏｎ  Ｄ”の名称が設定されている。
【００６６】
図１３は、予備サーバリストのデータ構造の一例を示す図である。予備サーバは、稼働中のサーバ装置２ａで過負荷が検出された場合に、スケールアウトによるデータの移行先サーバとして使用されるサーバ装置２ａである。予備サーバリストは、例えば、クライアント装置２ｂの補助記憶装置５に記憶される。
【００６７】
なお、情報処理システム１に対して、各サービスの代替実行が可能な災害対策用のバックアップサイトが準備されている場合がある。この場合、過負荷が検出されたサーバ装置２ａは、バックアップサイト内で、当該サーバ装置２ａと同じサービスを代替実行するサーバ装置２ａを予備サーバとして使用してもよい。
【００６８】
予備サーバリストは、予備サーバ要素数の項目を含む。予備サーバ要素数は、予備サーバとして準備されるサーバ装置２ａの数である。予備サーバリストは、予備サーバ要素数に設定された数の予備サーバ情報を記憶する。
【００６９】
予備サーバ情報は、サーバ名、ポート番号、サービス名の項目を含む。サーバ名は、スケールアウトによる移行先のサーバ装置２ａのＩＰアドレスまたはマシン名である。ポート番号は、当該サーバ装置２ａに接続するためのポート番号である。サービス名は、スケールアウトの対象となるサービスを識別するための識別子である。スケールアウトの対象となるサービスは複数であってもよい。すなわち、１の予備サーバは、複数のサービスに対する移行先のサーバ装置２ａとして使用されてもよい。
【００７０】
図１３の例では、予備サーバ要素数は“２”であり、２つの予備サーバ情報が記憶されている。例えば、予備サーバ情報１のサーバ名、ポート番号、サービス名として、それぞれ“ＳＶ２０１”、“８０”、“ＧＹＯＭＵ  １”が設定されている。
【００７１】
クライアント装置２ｂは、予備サーバリストから、移行先のサーバ装置２ａを選択する。この場合、クライアント装置２ｂは、サーバ宛先リストから、移行対象のパーティションを含むサーバ装置２ａに対応するサービス名を取得する。クライアント装置２ｂは、取得したサービス名に対応する予備サーバを、移行先のサーバ装置２ａとして選択する。
【００７２】
例えば、図１２において、クライアント装置２ｂは、“Ｐａｒｔｉｔｉｏｎ  Ｃ”をスケールアウトするものとする。“Ｐａｒｔｉｔｉｏｎ  Ｃ”を含むサーバ“ＳＶ１０２”は、“ＧＹＯＭＵ  ２”のサービスを実行する。図１３の予備サーバリストにおいて、“ＧＹＯＭＵ  ２”のサービスに対応するサーバは“ＳＶ２０２”である。したがって、クライアント装置２ｂは、“Ｐａｒｔｉｔｉｏｎ  Ｃ”をサーバ“ＳＶ２０２”に移行する。
【００７３】
図１４は、処理依頼データの一例を示す図である。処理依頼データは、クライアント装置２ｂからサーバ装置２ａに送信される処理依頼を定義する。図１４の例では、処理依頼データは、サーバ名、クライアント名、処理依頼番号および処理依頼内容の項目を含む。
【００７４】
サーバ名は、処理依頼を受信するサーバ装置２ａのＩＰアドレスまたはマシン名である。クライアント名は、処理依頼を送信するクライアント装置２ｂのＩＰアドレスまたはマシン名である。処理依頼番号は、処理依頼を一意に識別するための識別子である。処理依頼内容は、データの挿入または削除等の処理の内容である。クライアント装置２ｂは、処理依頼内容に、例えば、Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ（ＳＱＬ）の命令文、またはＣｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ（ＣＬＩ）の関数を設定して、処理依頼内容を指定する。また、クライアント装置２ｂは、Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａｂａｓｅ（ＲＤＢ）以外のＮｏＳＱＬのデータベース管理システムに対する処理依頼内容として、ＪＣａｃｈｅ、ｍｅｍｃａｃｈｅｄ等のインタフェースを指定してもよい。
【００７５】
処理依頼データは、図１４に示される項目に限られない。処理依頼データは、サーバ装置２ａおよびクライアント装置２ｂのポート番号、コネクション確立時にサーバから通知されるコネクションＩＤの情報を含んでも良い。また、処理依頼データは、クライアント装置２ｂに処理依頼を指示したアプリケーションソフトウェア６０のプロセスＩＤ、タイムアウトの判定等に使用される処理依頼の送信時刻等の情報を含んでも良い。さらに、処理依頼データは、サーバ装置２ａがスケールアウトを実行するために使用する情報、例えば、移行先のサーバ装置２ａの情報を含んでも良い。処理依頼データは、「処理依頼」の一例である。
【００７６】
図１５は、処理結果データの一例を示す図である。処理結果データは、サーバ装置２ａからクライアント装置２ｂに送信される処理結果を定義する。サーバ装置２ａは、クライアント装置２ｂからの処理依頼に基づいて実行した処理の結果を、処理結果データに設定する。図１５の例では、処理結果データは、クライアント名、依頼元サーバ名、結果送信サーバ名、処理依頼番号、処理結果内容およびデータ格納情報の項目を含む。
【００７７】
クライアント名は、処理依頼を送信したクライアント装置２ｂのＩＰアドレスまたはマシン名である。依頼先サーバ名は、クライアント装置２ｂから処理依頼を受信したサーバ装置２ａのＩＰアドレスまたはマシン名である。
【００７８】
結果送信サーバ名は、クライアント装置２ｂに処理結果を送信するサーバ装置２ａのＩＰアドレスまたはマシン名である。依頼先サーバで過負荷が検出されなかった場合、結果送信サーバは、依頼先サーバと同じサーバ装置２ａとなる。一方、依頼先サーバで過負荷
が検出され、スケールアウトにより操作対象のデータが他のサーバ装置２ａに移行された場合、結果送信サーバは依頼先サーバと異なり、操作対象のデータが移行された先のサーバ装置２ａとなる。結果送信サーバ名が依頼先サーバ名と異なる場合、クライアント装置２ｂは、パーティション情報リスト（図１１）において、移行されたデータに対応するパーティションの移行先サーバの情報を更新する。すなわち、クライアント装置２ｂは、処理結果データに基づいて、操作対象のデータが移行されたことを認識し、データ配置情報を更新する。
【００７９】
処理依頼番号は、処理依頼を一意に識別するための識別子である。処理依頼に基づく操作を実行したサーバ装置２ａは、処理依頼データに設定されている処理依頼番号を、処理結果データの処理依頼番号に設定する。
【００８０】
処理結果内容は、処理依頼データの処理依頼内容に指定された処理の実行結果である。処理を実行したサーバ装置２ａは、処理結果内容に、例えばＳＱＬの命令文の実行結果、またはＣＬＩの出力結果を設定する。
【００８１】
データ格納情報は、操作対象のデータを含むパーティションの容量に関する情報である。データ格納情報は、パーティション名、サーバ空き容量、データ容量、データ量およびデータ容量閾値の項目を含む。
【００８２】
パーティション名は、操作対象のデータを含むパーティションの名称である。サーバ空き容量は、パーティションを含むサーバ装置２ａの記憶部４０ａのデータ空き容量である。データ容量は、パーティションに格納することができるデータの容量である。
【００８３】
データ量は、パーティションに格納されているデータの量である。サーバ装置２ａは、依頼された処理の実行後のパーティションのデータ量を計算し、計算した値をデータ量の項目に設定する。
【００８４】
拡張データ量は、パーティションのデータ量が所定量を超えた場合に、拡張されるデータの容量である。データ容量閾値は、パーティションが過負荷の状態であるか否かを判定するためのデータ容量の閾値である。
【００８５】
処理結果データは、図１５に示される項目に限られない。処理結果データは、クライアント装置２ｂのポート番号、クライアント装置２ｂに処理依頼を指示したアプリケーションソフトウェア６０のプロセスＩＤ、コネクション確立時のコネクションＩＤの情報を含んでも良い。また、処理結果データは、処理依頼および処理結果の送信時刻、処理結果を一意に識別する処理結果番号等の処理結果に関する情報を含んでも良い。処理結果データは、「処理結果」の一例である。
【００８６】
処理結果データを受信したクライアント装置２ｂは、データ格納情報に基づいて、処理を実行したサーバ装置２ａが過負荷であるか否かを判定する。図１５の例では、クライアント装置２ｂは、記憶部４０ａの一部である１つのパーティションのデータ量に基づいて、サーバ装置２ａが過負荷であるか否かを判定するが、記憶部４０ａ全体のデータ量に基づいて判定してもよい。この場合、処理を実行したサーバ装置２ａは、データ格納情報として、記憶部４０ａ全体についてのデータ量、データ容量閾値等を、処理結果に設定すればよい。
【００８７】
クライアント装置２ｂは、処理依頼をＲＤＢのレコード、Ｋｅｙ  Ｖａｌｕｅ  Ｓｔｏｒｅ（ＫＶＳ）構造によって管理することができる。また、クライアント装置２ｂは、ファイル形式のデータベースだけでなくインメモリデータベースにより、処理依頼を管理し
てもよい。クライアント装置２ｂは、管理する処理依頼の件数が閾値を超えるとサーバ装置２ａが過負荷であると判定してもよい。この場合、処理を実行したサーバ装置２ａは、データ格納情報として、処理依頼件数、処理依頼件数の閾値等を、処理結果に設定すればよい。
【００８８】
＜動作例＞
図１６から図２２は、実施形態の動作例を説明するための図である。図１６、１７、１９〜２２において、サーバ＃１０１は、スケールアウトの対象である移行元のサーバ装置２ａである。サーバ＃２０１は、移行先のサーバ装置２ａである。また、クライアント＃ｎ（ｎ＝１、２、…、６）は、クライアント装置２ｂである。さらに、記憶部＃１０１および記憶部＃２０１は、それぞれ、サーバ＃１０１およびサーバ＃２０１の記憶部４０ａである。
【００８９】
なお、図１６、１７、１９〜２２において、サーバ＃１０１内のプロセスＳＶ＃１０１が実行する処理は、各動作例において、サーバ＃１０１を動作主体として説明される。同様に、サーバ＃２０１内のプロセスＳＶ＃２０１が実行する処理は、各動作例において、サーバ＃２０１を動作主体として説明される。
【００９０】
《過負荷の検出》
図１６は、サーバ装置２ａの過負荷を検出する処理の動作例を示す図である。クライアント＃１は、アプリケーションソフトウェア６０からデータ挿入を伴う処理依頼を受け付けると、サーバ＃１０１に対して、データ挿入を指示する処理依頼を送信する（Ａ１）。
【００９１】
サーバ＃１０１は、クライアント＃１から受信した処理依頼に基づき、記憶部＃１０１にデータを挿入する（Ａ２）。サーバ＃１０１は、記憶部＃１０１からデータ格納情報を取得する（Ａ３）。データ格納情報は、記憶部＃１０１のデータ量が所定量を超えているか否か、すなわちサーバ＃１０１が過負荷の状態であるか否かを判定するために使用される情報である。データ格納情報は、例えば、記憶部＃１０１が格納できるデータ容量、記憶部＃１０１が格納しているデータ量（以下、格納データ量とも呼ばれる）、サーバ＃１０１が過負荷の状態であるか否かを判定するための閾値を含む。サーバ＃１０１は、データ格納情報を設定した処理結果データを、クライアント＃１に送信する（Ａ４）。
【００９２】
クライアント＃１は、サーバ＃１０１から受信した処理結果に含まれるデータ格納情報に基づいて、サーバ＃１０１が過負荷の状態であるか否かを判定する。サーバ＃１０１が過負荷の状態であるかは、例えば、記憶部＃１０１が格納できるデータ容量に対して、格納データ量の割合が、所定の閾値である９０％を超えているか否かにより判定することができる。クライアント＃１は、サーバ＃１０１の過負荷を検出すると、スケールアウト命令をサーバ＃１０１およびサーバ＃２０１に送信する（Ａ５）。移行元サーバであるサーバ＃１０１および移行先サーバであるサーバ＃２０１は、スケールアウト命令を受信する（Ａ６、Ａ７）。
【００９３】
《スケールアウト処理》
図１７は、スケールアウト処理の動作例を示す図である。サーバ＃１０１は、スケールアウト命令を受信し、クライアント＃２から処理依頼によりデータの書込み処理が発生した場合に、スケールアウト処理を開始する。
【００９４】
サーバ＃１０１は、クライアント＃２からデータ挿入を伴う処理依頼を受信する（Ｂ１）。記憶部＃１０１に空きがないため、処理依頼に基づくデータは、記憶部＃１０１に挿入されない（Ｂ２）。
【００９５】
サーバ＃１０１は、記憶部＃１０１に空き領域を確保するため、記憶部＃１０１のデータの一部をサーバ＃２０１に移行する。サーバ＃１０１は、記憶部＃１０１からサーバ＃２０１に移行するデータを抽出する（Ｂ３）。移行対象のデータは、１つのパーティションであってもよく、複数のパーティションを組み合わせたものであってもよい。
【００９６】
サーバ＃１０１は、移行対象データを、移行先のサーバ＃２０１に送信する（Ｂ４）。サーバ＃２０１は、受信した移行対象データを、記憶部＃２０１に格納する。これにより、スケールアウト処理は完了する。
【００９７】
スケールアウト処理によって記憶部＃１０１に空き領域が確保され、サーバ＃１０１は、処理依頼に基づくデータを記憶部＃１０１に挿入する（Ｂ６）。サーバ＃１０１は、データ挿入の処理結果をクライアント＃２に送信する（Ｂ７）。
【００９８】
図１８は、スケールアウト処理の具体例を示す図である。図１８は、図１７のＢ２、Ｂ３、Ｂ４およびＢ６の処理の詳細を示す。記憶部＃１０１は、パーティションＡ〜Ｄに分割されているものとする。
【００９９】
サーバ＃１０１は、クライアント＃２からパーティションＡに対するデータ挿入の処理依頼を受信する。記憶部＃１０１にパーティションＡの拡張データ量１ＧＢ分の空き領域がないため、処理依頼に基づくデータは記憶部＃１０１に挿入されない（Ｃ１、図１７のＢ２）。なお、拡張データ量は、パーティション情報リスト(図１１)における拡張データ量の項目で定義される。
【０１００】
サーバ＃１０１は、記憶部＃１０１にパーティションＡを拡張するための空き領域を確保するため、記憶部＃１０１の一部のパーティションをサーバ＃２０１に移行する。サーバ＃１０１は、例えば、パーティションＡの拡張データ量よりもデータ容量が大きく、データ量が他のパーティションよりも小さいパーティションを移行対象のパーティションとして抽出する。図１８の例では、サーバ＃１０１は、移行対象のパーティションとしてパーティションＣを抽出し、移行先のサーバ＃２０１に送信する（Ｃ２、図１７のＢ３、Ｂ４）。
【０１０１】
サーバ＃１０１は、記憶部＃１０１に空き領域ができたため、パーティションＡのデータ容量を１ＧＢ拡張し、３ＧＢとする（Ｃ３）。サーバ＃１０１は、拡張されたパーティションＡに、処理依頼に基づくデータを挿入する（Ｃ４）。
【０１０２】
図１８の例では、サーバ＃１０１は、移行対象のパーティションを、操作対象のデータを含むパーティション以外のパーティションから選択するが、これに限られない。サーバ＃１０１は、操作対象のデータを含むパーティション（図１８ではパーティションＡ）を移行先のサーバ＃２０１に移行してもよい。さらに、サーバ＃１０１は、１つのパーティションを移行しても空き領域が不足する場合には、複数のパーティションを移行してもよい。
【０１０３】
《スケールアウト後の処理依頼》
図１９は、スケールアウト後に処理依頼を受信したサーバ装置２ａの動作例を示す図である。各クライアント装置２ｂは、処理依頼の送信先のサーバ装置２ａと異なるサーバ装置２ａから処理結果を受信した場合に、操作対象のデータがスケールアウトにより移行されたことを認識する。したがって、サーバ装置２ａに対してスケールアウト命令を実行したクライアント装置２ｂ以外のクライアント装置２ｂは、操作対象のデータがスケールアウトにより移行されたことを認識するまでの間、移行元のサーバ装置２ａに対して処理依頼を送信する。
【０１０４】
図１９の例では、サーバ＃１０１は、操作対象のデータが移行されたことを認識していないクライアント＃３から、データ更新の処理依頼を受信する（Ｄ１）。操作対象のデータがサーバ＃２０１に移行されているため、操作対象のデータは、記憶部＃１０１に存在しない（Ｄ２）。
【０１０５】
サーバ＃１０１は、パーティションリスト（図８）から、操作対象のデータを含むパーティションの移行先であるサーバ＃２０１の情報を取得する。サーバ＃１０１は、クライアント＃３から受信した処理依頼を、サーバ＃２０１に転送する（Ｄ３）。
【０１０６】
サーバ＃２０１は、サーバ＃１０１から転送された処理依頼に基づき、記憶部＃２０１のデータを更新する（Ｄ４）。サーバ＃２０１は、クライアント＃３に処理結果を送信する（Ｄ５）。クライアント＃３は、サーバ＃２０１から受信した処理結果により、操作対象のデータが、サーバ＃１０１からサーバ＃２０１に移行されたことを認識する。クライアント＃３は、処理結果に含まれるデータ格納情報に基づき、パーティション情報リストにおいて、操作対象のデータを含むパーティションの移行先サーバの情報を更新する。
【０１０７】
図２０は、移行データ（パーティション）のデータ容量を移行先での変動に応じて更新する処理の動作例を示す図である。サーバ装置２ａは、スケールアウト後に、クライアント装置２ｂからの処理依頼に基づくデータ操作により過負荷が解消された場合、移行先のサーバ装置２ａから自身のサーバ装置２ａに移行データを戻す。過負荷が解消されたか否かは、記憶部＃１０１の空き領域のデータ容量が、移行データのデータ容量より大きいか否かにより判定される。移行データのデータ容量は、移行先のサーバ装置２ａにおいて、クライアント装置２ｂからの処理依頼により変動する場合がある。このため、移行元のサーバ装置２ａは、移行データのデータ容量を保持し、移行先での変動に応じて更新する。
【０１０８】
サーバ＃２０１は、サーバ＃１０１から記憶部＃２０１に移行されたデータに対するデータ挿入の処理依頼を、クライアント＃４から受信する（Ｅ１）。サーバ＃２０１は、クライアント＃４から受信した処理依頼に基づき、記憶部＃２０１にデータを挿入する。データが挿入されるパーティションのデータ容量に空きがない場合には、パーティションのデータ容量は拡張される。図２０の例では、データが挿入されるパーティションのデータ容量は、２ＧＢから３ＧＢに拡張される（Ｅ２）。
【０１０９】
サーバ＃２０１は、パーティションのデータ容量が拡張されたことを、移行元のサーバ＃１０１に通知する（Ｅ３）。サーバ＃１０１は、移行先のサーバ＃２０１に移行したパーティションのデータ容量の値を２ＧＢから３ＧＢに更新する（Ｅ４）。更新したデータ容量の値は、例えば、サーバ＃１０１のメモリ（図示せず）上に保持しておいてもよい。
【０１１０】
サーバ＃１０１は、移行したパーティションの最新のデータ容量を保持しておくことで、記憶部＃１０１に移行したパーティションを戻すための空き領域があるか否かを判断することができる。また、サーバ＃１０１は、移行したパーティションの最新のデータ容量を、処理結果に設定してクライアント装置２ｂに通知し、移行したパーティションを戻すための空き領域があるか否かを、クライアント装置２ｂに判断させることもできる。
【０１１１】
サーバ＃２０１は、処理結果に記憶部＃２０１のデータ格納情報を設定し、当該処理結果をクライアント＃４に送信する（Ｅ５）。Ｅ５の処理は、Ｅ２の処理の後に実行されればよく、Ｅ３およびＥ４の処理と順序が前後してもよい。
【０１１２】
《スケールアウト解除処理》
図２１は、スケールアウト解除処理の動作例を示す図である。サーバ＃１０１は、クラ
イアント＃５からデータ削除の処理依頼を受信する（Ｆ１）。サーバ＃１０１は、記憶部＃１０１から、操作対象のデータを削除する（Ｆ２）。
【０１１３】
サーバ＃１０１は、記憶部＃１０１から、データ格納情報を取得する。サーバ＃１０１は、データ格納情報のサーバ空き容量と、サーバ＃２０１に移行したパーティションの最新のデータ容量とを比較する。サーバ空き容量が、サーバ＃２０１に移行したパーティションの最新のデータ容量より大きい場合には、スケールアウトの解除が可能であると判断する（Ｆ３）。処理結果にスケールアウトの解除が可能である旨の情報を付加してクライアント＃５に送信する（Ｆ４）。
【０１１４】
クライアント＃５は、処理結果に付加されたスケールアウトの解除が可能である旨の情報に基づき、スケールアウト解除命令をサーバ＃１０１およびサーバ＃２０１に送信する（Ｆ５）。移行元サーバであるサーバ＃１０１および移行先サーバであるサーバ＃２０１は、スケールアウト解除命令を受信する（Ｆ６、Ｆ７）。
【０１１５】
スケールアウト解除命令を受信したサーバ＃２０１は、記憶部＃２０１に移行されたデータを含むパーティションをサーバ＃１０１に戻す。サーバ＃１０１は、戻されたパーティションを記憶部＃１０１に格納する（Ｆ８）。
【０１１６】
図２２は、スケールアウト解除後に処理依頼を受信したサーバ装置２ａの動作例を示す図である。各クライアント装置２ｂは、スケールアウト先のサーバ装置２ａに対して処理依頼を送信し、スケールアウト先のサーバ装置２ａと異なるサーバ装置２ａから処理結果を受信した場合に、操作対象のデータが元のサーバ装置２ａに戻されたことを認識する。したがって、サーバ装置２ａに対してスケールアウト解除命令を実行したクライアント装置２ｂ以外のクライアント装置２ｂは、操作対象のデータがスケールアウト解除により元のサーバ装置２ａに戻されたことを認識するまでの間、移行先のサーバ装置２ａに対して処理依頼を送信する。
【０１１７】
図２２の例では、サーバ＃２０１は、操作対象のデータがスケールアウト解除により元のサーバ装置２ａに戻されたことを認識していないクライアント＃６から、データ更新の処理依頼を受信する（Ｇ１）。操作対象のデータがサーバ＃１０１に戻されているため、操作対象のデータは、記憶部＃２０１に存在しない（Ｇ２）。
【０１１８】
サーバ＃２０１は、パーティションリスト（図８）から、操作対象のデータを含むパーティションの移行元であるサーバ＃１０１の情報を取得する。サーバ＃２０１は、クライアント＃６から受信した処理依頼を、サーバ＃１０１に転送する（Ｇ３）。
【０１１９】
サーバ＃１０１は、サーバ＃２０１から転送された処理依頼に基づき、記憶部＃１０１のデータを更新する（Ｇ４）。サーバ＃１０１は、クライアント＃６に処理結果を送信する（Ｇ５）。クライアント＃６は、サーバ＃１０１から受信した処理結果により、操作対象のデータが、サーバ＃２０１からサーバ＃１０１に戻されたことを認識する。クライアント＃６は、処理結果に含まれるデータ格納情報に基づき、パーティション情報リスト(
図１１)において、操作対象のデータを含むパーティションの移行先サーバの情報を削除
する。
【０１２０】
＜処理の流れ＞
図２３は、クライアント装置２ｂがサーバ装置２ａの負荷を監視する処理の例を示すフローチャートである。図２３に示される処理は、例えば、クライアント装置２ｂにおいて、アプリケーションソフトウェア６０が実行されることにより開始される。
【０１２１】
ＯＰ１では、クライアント装置２ｂは、アプリケーションソフトウェア６０から処理依頼を受信する。ＯＰ２では、クライアント装置２ｂは、受信した処理依頼を、操作対象のデータを含むパーティション（以下、処理対象のパーティションとも呼ばれる）を格納するサーバ装置２ａに送信する。ＯＰ２の処理は、「記憶部を備える第２の情報処理装置に対して処理依頼を送信」する処理の一例である。
【０１２２】
ＯＰ３では、クライアント装置２ｂは、サーバ装置２ａから、送信した処理依頼に対する処理結果を受信する。ＯＰ３の処理は、「前記第２の情報処理装置が計算した前記記憶部のデータ量を含む処理結果を受信」する処理の一例である。
【０１２３】
ＯＰ４では、クライアント装置２ｂは、受信した処理結果から、処理対象パーティションのデータ格納情報を取得する。ＯＰ５では、クライアント装置２ｂは、処理依頼の送信先サーバと、処理結果の送信元サーバとが異なるか否かを判定する。処理依頼の送信先サーバと処理結果の送信元サーバとが異なる場合には（ＯＰ５：Ｙｅｓ）、処理がＯＰ６に進む。処理依頼の送信先サーバと処理結果の送信元サーバとが同じである場合には（ＯＰ５：Ｎｏ）、処理がＯＰ７に進む。
【０１２４】
ＯＰ６では、クライアント装置２ｂは、サーバ宛先リストを更新する。具体的には、クライアント装置２ｂは、操作対象のデータを含むパーティションを、処理結果の送信元サーバに関連づける。
【０１２５】
ＯＰ７では、クライアント装置２ｂは、処理対象パーティションのデータ量がデータ容量閾値を超えているか否かを判定する。例えば、データ容量閾値が９０％の場合、処理対象パーティションのデータ量が、当該パーティションが格納できるデータ容量の９０％を超えているか否かを判定すればよい。処理対象パーティションのデータ量がデータ容量閾値を超えている場合には、（ＯＰ７：Ｙｅｓ）、処理がＯＰ８に進む。処理対象パーティションのデータ量がデータ容量閾値を超えていない場合には（ＯＰ７：Ｎｏ）、処理がＯＰ９に進む。ＯＰ７の処理は、「受信された前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定」する処理の一例である。
【０１２６】
ＯＰ８では、クライアント装置２ｂは、移行元および移行先のサーバ装置２ａにスケールアウト命令を送信し、図２３に示される処理は終了する。ＯＰ８の処理は、「前記記憶部に格納されたデータの一部を含む領域を第３の情報処理装置に移行することを、前記第２の情報処理装置および前記第３の情報処理装置に指示」する処理の一例である。
【０１２７】
ＯＰ９では、クライアント装置２ｂは、サーバ装置２ａから受信した処理結果に、スケールアウトコマンド解除可との情報が含まれるか否かを判定する。スケールアウトコマンド解除可能か否かは、サーバ装置２ａにおいて、スケールアウトの移行元のサーバ装置２ａの空き容量が、移行先のサーバ装置２ａに移行したパーティションのデータ容量よりも大きいか否かによって判断される。サーバ装置２ａから受信した処理結果に、スケールアウトコマンド解除可との情報が含まれる場合には（ＯＰ９：Ｙｅｓ）、処理がＯＰ１０に進む。サーバ装置２ａから受信した処理結果に、スケールアウトコマンド解除可との情報が含まれない場合には（ＯＰ９：Ｎｏ）、図２３に示される処理は終了する。
【０１２８】
ＯＰ１０では、クライアント装置２ｂは、移行元および移行先のサーバ装置２ａにスケールアウト解除命令を送信し、図２３に示される処理は終了する。ＯＰ１０の処理は、「前記領域を前記第２の情報処理装置に戻すことを、前記第２の情報処理装置および前記第３の情報処理装置に指示」する処理の一例である。
【０１２９】
図２４は、サーバ装置２ａがクライアント装置２ｂから処理依頼を受信した場合の処理
の例を示すフローチャートである。図２４に示される処理は、サーバ装置２ａがクライアント装置２ｂから処理依頼を受信することにより開始される。
【０１３０】
ＯＰ２１では、サーバ装置２ａは、クライアント装置２ｂから処理依頼を受信する。ＯＰ２１の処理は、第２の情報処理装置が、第１の情報処理装置から送信される処理依頼を受信」する処理の一例である。
【０１３１】
ＯＰ２２では、サーバ装置２ａは、処理対象のパーティションが自身のサーバ装置２ａに配置されているか否かを判定する。処理対象のパーティションが自身のサーバ装置２ａに配置されている場合には（ＯＰ２２：Ｙｅｓ）、サーバ装置２ａはスケールアウトされておらず、処理がＯＰ２３に進む。処理対象のパーティションが自身のサーバ装置２ａに配置されていない場合には（ＯＰ２２：Ｎｏ）、サーバ装置２ａはスケールアウトされており、処理がＯＰ２７に進む。
【０１３２】
ＯＰ２３では、サーバ装置２ａは、クライアント装置２ｂからの処理依頼に基づき、処理対象のパーティションに含まれるデータを操作する。ＯＰ２４では、サーバ装置２ａは、データの操作に基づき、処理結果を作成する。
【０１３３】
ＯＰ２５では、サーバ装置２ａは、処理対象のパーティションのデータ量を計算する。計算したデータ量等のデータ格納情報を、処理結果に設定する。ＯＰ２５の処理は、「前記書込み処理後における前記記憶部のデータ量を計算し、計算した前記記憶部のデータ量を処理結果に設定」する処理の一例である。
【０１３４】
ＯＰ２６では、サーバ装置２ａは、処理結果をクライアント装置２ｂに送信し、図２４に示される処理は終了する。ＯＰ２６の処理は、「前記処理結果を前記第１の情報処理装置に送信」する処理の一例である。
【０１３５】
ＯＰ２７では、サーバ装置２ａは、操作対象のデータを含むパーティションが配置された移行先のサーバ装置２ａに処理依頼を転送し、図２４に示される処理は終了する。なお、操作対象のデータを含むパーティションが配置された移行先サーバの情報は、パーティションリストから取得することができる。
【０１３６】
図２５は、サーバ装置のスケールアウト処理の例を示すフローチャートである。スケールアウト処理は、サーバ装置２ａがクライアント装置２ｂからスケールアウト命令を受信することにより開始される。
【０１３７】
ＯＰ３１では、サーバ装置２ａは、クライアント装置２ｂからスケールアウト命令を受信する。ＯＰ３２では、サーバ装置２ａは、自身の装置が移行元サーバであるか否かを判定する。自身の装置が移行元サーバである場合には、（ＯＰ３２：Ｙｅｓ）、処理がＯＰ３３に進む。自身の装置が移行元サーバでない場合には（ＯＰ３２：Ｎｏ）、処理がＯＰ３５に進む。
【０１３８】
ＯＰ３３では、サーバ装置２ａは、スケールアウトにより、移行先のサーバ装置２ａに移行するパーティションを選択する。ＯＰ３４では、サーバ装置２ａは、移行データを作成し、移行先のサーバ装置２ａに送信し、スケールアウト処理は終了する。
【０１３９】
ＯＰ３５では、サーバ装置２ａは移行先のサーバ装置２ａであり、移行先のサーバ装置２ａから、移行データを受信する。ＯＰ３６では、サーバ装置２ａは、移行データを記憶部４０ａに格納し、図２５に示される処理は終了する。
【０１４０】
図２６は、サーバ装置２ａのスケールアウト解除処理の例を示すフローチャートである。スケールアウト解除処理は、サーバ装置２ａがクライアント装置２ｂからスケールアウト解除命令を受信することにより開始される。
【０１４１】
ＯＰ４１では、サーバ装置２ａは、クライアント装置２ｂからスケールアウト解除命令を受信する。ＯＰ４２では、サーバ装置２ａは、自身の装置が移行元サーバであるか否かを判定する。自身の装置が移行元サーバである場合には、（ＯＰ４２：Ｙｅｓ）、処理がＯＰ４３に進む。自身の装置が移行元サーバでない場合には（ＯＰ４２：Ｎｏ）、処理がＯＰ４４に進む。
【０１４２】
ＯＰ４３では、サーバ装置２ａは、移行先のサーバ装置２ａから移行データを受信し、スケールアウト解除処理は終了する。ＯＰ４４では、サーバ装置２ａは、移行データを作成し、移行元のサーバ装置２ａに送信し、スケールアウト解除処理は終了する。
【０１４３】
＜実施形態の作用効果＞
サーバ装置２ａは、クライアント装置２ｂからの処理依頼を受信すると、処理依頼に基づく操作を実行する。サーバ装置２ａは、実行した処理の処理結果に、データ格納情報を設定し、クライアント装置２ｂに送信する。クライアント装置２ｂは、サーバ装置２ａから受信した処理結果に基づき、記憶部４０ａまたは処理対象のパーティションのデータ量が所定量を超えているか否かを判定することにより、サーバ装置２ａの過負荷を検出する。すなわち、クライアント装置２ｂは、サーバ装置２ａとの処理依頼および処理結果の送受信処理において、情報処理装置の過負荷を検出する。このため、監視負担が軽減され、適時にサーバ装置２ａの過負荷を検出することができる。
【０１４４】
クライアント装置２ｂは、サーバ装置２ａの過負荷を検出すると、スケールアウトにより、記憶部４０ａに格納されたデータの一部を含むパーティションを、移行先のサーバ装置２ａに移行する。これにより、サービスを停止することなく、サーバ装置２ａの負荷は分散される。
【０１４５】
クライアント装置２ｂは、サーバ装置２ａから受信した処理結果により、記憶部４０ａの空き領域のデータ容量が、スケールアウトにより移行したパーティションのデータ容量より大きい旨の通知を受け、スケールアウト解除命令を送信する。スケールアウト解除命令は、移行元のサーバ装置２ａおよび移行先のサーバ装置２ａに送信される。スケールアウトの解除により、移行したパーティションは、移行元のサーバ装置２ａに戻される。これにより、サーバ装置２ａは、記憶部４０ａを効率よく使用することができる。
【０１４６】
〔変形例〕
実施形態では、クライアント装置２ｂが、サーバ装置２ａの過負荷を検出し、サーバ装置２ａに対してスケールアウトを指示する。一方、変形例では、サーバ装置２ａが、自身の装置が過負荷であることを検出し、スケールアウトを実行する。さらに、サーバ装置２ａは、過負荷が解消したことを検出すると、スケールアウトを解除する。
【０１４７】
図２７は、サーバ装置２ａが自身の装置の負荷を監視する処理の例を示すフローチャートである。図２７に示される処理は、サーバ装置２ａがクライアント装置２ｂから処理依頼を受信することにより開始される。
【０１４８】
ＯＰ５１では、サーバ装置２ａは、クライアント装置２ｂから処理依頼を受信する。ＯＰ５１の処理は、「第１の情報処理装置が送信する処理依頼を受信」する処理の一例である。
【０１４９】
ＯＰ５２では、サーバ装置２ａは、操作対象のデータを含むパーティションに対し、受信した処理依頼に基づくデータ操作を実行する。データ操作に書込み処理が含まれる場合、処理対象のパーティションのデータ量は増加する。一方、データ操作に削除処理が含まれる場合、対象のパーティションのデータ量は減少する。
【０１５０】
ＯＰ５３では、サーバ装置２ａは、処理対象のパーティションのデータ量を計算する。ＯＰ５３の処理は、「前記書込み処理後における前記記憶部のデータ量を計算」する処理の一例である。
【０１５１】
ＯＰ５４では、サーバ装置２ａは、処理対象パーティションのデータ量がデータ容量閾値を超えているか否かを判定する。データ容量閾値は、クライアント装置２ｂが有するパーティション情報リストで定義される。サーバ装置２ａは、クライアント装置２ｂからの処理依頼とともに、処理対象パーティションのデータ容量閾値を取得すればよい。処理対象パーティションのデータ量がデータ容量閾値を超えている場合には、（ＯＰ５４：Ｙｅｓ）、処理がＯＰ５５に進む。処理対象パーティションのデータ量がデータ容量閾値を超えていない場合には（ＯＰ５４：Ｎｏ）、処理がＯＰ５６に進む。ＯＰ５４の処理は、「前記計算されたデータ量が所定量を超えているか否かを判定」する処理の一例である。
【０１５２】
ＯＰ５５では、サーバ装置２ａは、スケールアウト処理を実行する。すなわち、サーバ装置２ａは、移行対象のパーティションに対する移行データを生成し、移行先のサーバ装置２ａに送信する。移行対象のパーティションは、処理依頼の対象であるパーティションとしてもよい。また、移行対象のパーティションは、クライアント装置２ｂがパーティション情報リストに基づいて選択したパーティションとしてもよい。サーバ装置２ａは、移行対象のパーティションの情報を、クライアント装置２ｂから、処理依頼とともに取得すればよい。
【０１５３】
移行先のサーバ装置２ａは、移行元のサーバ装置２ａが実行するサービスに応じて、予備サーバリストに定義される。サーバ装置２ａは、移行先のサーバ装置２ａの情報についても、クライアント装置２ｂから、処理依頼とともに取得すればよい。ＯＰ５５の処理は、「前記記憶部に格納されたデータの一部を含む領域を第３の情報処理装置に移行」する処理の一例である。
【０１５４】
ＯＰ５６では、サーバ装置２ａは、スケールアウトが実行されており、サーバ装置２ａの空き容量が、移行対象のパーティションのデータ容量より大きくなっているか否かを判定する。サーバ装置２ａの空き容量が、移行対象のパーティションのデータ容量より大きくなっている場合には、（ＯＰ５６：Ｙｅｓ）、処理がＯＰ５７に進む。サーバ装置２ａの空き容量が、移行データのデータ容量以下の場合には（ＯＰ５６：Ｎｏ）、図２７に示される処理は終了する。ＯＰ５６の処理は、「前記削除処理後における前記記憶部の空き領域のデータ容量を計算」する処理の一例である。
【０１５５】
ＯＰ５７では、サーバ装置２ａは、スケールアウト解除処理を実行する。すなわち、移行元のサーバ装置２ａは、移行先のサーバ装置２ａから移行データを受信する。ＯＰ５８では、サーバ装置２ａは、受信した移行データを、記憶部４０ａに格納し、図２７に示される処理は終了する。ＯＰ５７およびＯＰ５８の処理は、「前記第３の情報処理装置に移行された前記領域を、前記領域を前記第２の情報処理装置に戻す」処理の一例である。
【０１５６】
図２７は、サーバ装置２ａが、自身の装置が過負荷または過負荷の解消を検出し、スケールアウトまたはスケールアウトの解除を実行する例を示すが、これに限られない。サーバ装置２ａおよびクライアント装置２ｂを監視する管理サーバ２ｃに、スケールアウトまたはスケールアウト解除の命令を実行させてもよい。管理サーバ２ｃによる監視負担を回
避するため、サーバ装置２ａが、自身の装置が過負荷または過負荷の解消を検出し、過負荷または過負荷の解消を通知すればよい。
【０１５７】
＜変形例の作用効果＞
記憶部４０ａのデータ量は、サーバ装置２ａによるデータ操作によって変動する。サーバ装置２ａは、記憶部４０ａに対するデータ操作の後、データ量が所定量を超えているか否かを判定することで、より迅速に過負荷を検出することができる。
【０１５８】
また、管理サーバ２ｃは、サーバ装置２ａによる過負荷または過負荷の解消の検出に基づいて、スケールアウトまたはスケールアウト解除の命令を実行することで、各サーバ装置２ａの負荷の状況およびスケールアウトの情報を一元管理することができる。
【０１５９】
＜記録媒体＞
コンピュータその他の機械、装置（以下、コンピュータ等）に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
【０１６０】
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやＲＯＭ等がある。さらに、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（ＳＳＤ）はコンピュータ等から取り外し可能な記録媒体としても、コンピュータ等に固定された記録媒体としても利用可能である。
【０１６１】
＜その他＞
上述した実施形態は、以下の付記を開示する。以下の付記は適宜組み合わせることが可能である。
【０１６２】
（付記１）
第１の情報処理装置に、
記憶部を備える第２の情報処理装置に対して処理依頼を送信させ、
前記第２の情報処理装置が計算した前記記憶部のデータ量を含む処理結果を受信させ、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定させる、
ための負荷監視プログラム。
【０１６３】
（付記２）
前記第１の情報処理装置に、
前記記憶部のデータ量が前記所定量を超えている場合に、前記記憶部に格納されたデータの一部を含む領域を第３の情報処理装置に移行することを、前記第２の情報処理装置および前記第３の情報処理装置に指示させる、
ための付記１に記載の負荷監視プログラム。
【０１６４】
（付記３）
前記第１の情報処理装置に、
前記処理結果により、前記記憶部の空き領域のデータ容量が前記第３の情報処理装置に
移行された前記領域のデータ容量より大きい旨の通知を受けた場合に、前記領域を前記第２の情報処理装置に戻すことを、前記第２の情報処理装置および前記第３の情報処理装置に指示させる、
ための付記２に記載の負荷監視プログラム。
【０１６５】
（付記４）
記憶部を備える第２の情報処理装置に、
第１の情報処理装置が送信する処理依頼を受信させ、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算させ、
前記計算されたデータ量が所定量を超えているか否かを判定させる、
ための負荷監視プログラム。
【０１６６】
（付記５）
前記第２の情報処理装置に、
前記記憶部のデータ量が前記所定量を超えている場合に、前記記憶部に格納されたデータの一部を含む領域を第３の情報処理装置に移行させる、
ための付記４に記載の負荷監視プログラム。
【０１６７】
（付記６）
前記第２の情報処理装置に、
前記処理依頼に前記記憶部からの削除処理が含まれる場合に、前記削除処理後における前記記憶部の空き領域のデータ容量を計算させ、
前記空き領域のデータ容量が、前記領域のデータ容量より大きい場合に、前記第３の情報処理装置に移行された前記領域を、前記領域を前記第２の情報処理装置に戻させる、
ための付記５に記載の負荷監視プログラム。
【０１６８】
（付記７）
複数の情報処理装置を監視する管理装置に、
第２の情報処理装置が備える記憶部のデータ量が所定量を超えている旨の通知を受けた場合に、前記記憶部に格納されたデータの一部を含む領域を第３の情報処理装置に移行することを、前記第２の情報処理装置に指示させる、
ための負荷監視プログラム。
【０１６９】
（付記８）
前記管理装置に、
前記記憶部の空き領域のデータ容量が、前記領域のデータ容量より大きい旨の通知を受けた場合に、前記第３の情報処理装置に移行された前記領域を、前記２の情報処理装置に戻すことを、前記第２の情報処理装置および前記第３の情報処理装置に指示させる、
ための付記７に記載の負荷監視プログラム。
【０１７０】
（付記９）
第１の情報処理装置が、
記憶部を備える第２の情報処理装置に対して処理依頼を送信し、
前記第２の情報処理装置で計算された前記記憶部のデータ量を含む処理結果を受信し、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する、
負荷監視方法。
【０１７１】
（付記１０）
記憶部を備える第２の情報処理装置が、
第１の情報処理装置から送信される処理依頼を受信し、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算し、
前記計算したデータ量が所定量を超えているか否かを判定する、
負荷監視方法。
【０１７２】
（付記１１）
記憶部を備える第２の情報処理装置が、
第１の情報処理装置から送信される処理依頼を受信し、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算し、
計算した前記記憶部のデータ量を処理結果に設定し、
前記処理結果を前記第１の情報処理装置に送信し、
前記第１の情報処理装置が、
前記第２の情報処理装置から前記処理結果を受信し、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する、
負荷監視方法。
【０１７３】
（付記１２）
記憶部を備える第２の情報処理装置に対して処理依頼を送信する処理依頼送信部と、
前記第２の情報処理装置で計算された前記記憶部のデータ量を含む処理結果を受信する処理結果受信部と、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する判定部と、
を備える情報処理装置。
【０１７４】
（付記１３）
記憶部と、
第１の情報処理装置が送信する処理依頼を受信する処理依頼受信部と、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算する管理部と、
計算した前記記憶部のデータ量が所定量を超えているか否かを判定する判定部と、
を備える情報処理装置。
【０１７５】
（付記１４）
第１の情報処理装置および第２の情報処理装置を含む情報処理システムであって、
前記第２の情報処理装置は、
記憶部と、
前記第１の情報処理装置から送信される処理依頼を受信する処理依頼受信部と、
受信した前記処理依頼に前記記憶部への書込み処理が含まれる場合に、前記書込み処理後における前記記憶部のデータ量を計算する管理部と、
計算した前記記憶部のデータ量を処理結果に設定し、前記処理結果を前記第２の情報処理装置に送信する処理結果送信部と、を備え、
前記第１の情報処理装置は、
前記第２の情報処理装置に対して処理依頼を送信する処理依頼送信部と、
前記第１の情報処理装置から前記処理結果を受信する処理結果受信部と、
受信した前記処理結果に含まれる前記記憶部のデータ量が、所定量を超えているか否かを判定する判定部と、を備える、
情報処理システム。
【符号の説明】
【０１７６】
１        情報処理システム
２        情報処理装置
２ａ      サーバ装置
２ｂ      クライアント装置
２ｃ      管理サーバ
３        プロセッサ
４        主記憶装置
５        補助記憶装置
６        画像信号処理部
７        入力信号処理部
８        可搬記憶媒体駆動装置
９        通信インタフェース
１０      バス
２０ａ    サーバ制御部
２０ｂ    クライアント制御部
３０ａ、３０ｂ    通信制御部
４０ａ、４０ｂ    記憶部
４１ａ、４１ｂ    定義ファイル
５０ａ、５０ｂ    処理制御部
５１      処理依頼受信部
５２      管理部
５３ａ、５３ｂ    判定部
５４      処理結果送信部
５５      処理依頼送信部
５６      処理結果受信部
６０      アプリケーションソフトウェア
【図１】
2017162257.tif 000003
【図２】
2017162257.tif 000004
【図３】
2017162257.tif 000005
【図４】
2017162257.tif 000006
【図５】
2017162257.tif 000007
【図６】
2017162257.tif 000008
【図７】
2017162257.tif 000009
【図８】
2017162257.tif 000010
【図９】
2017162257.tif 000011
【図１０】
2017162257.tif 000012
【図１１】
2017162257.tif 000013
【図１２】
2017162257.tif 000014
【図１３】
2017162257.tif 000015
【図１４】
2017162257.tif 000016
【図１５】
2017162257.tif 000017
【図１６】
2017162257.tif 000018
【図１７】
2017162257.tif 000019
【図１８】
2017162257.tif 000020
【図１９】
2017162257.tif 000021
【図２０】
2017162257.tif 000022
【図２１】
2017162257.tif 000023
【図２２】
2017162257.tif 000024
【図２３】
2017162257.tif 000025
【図２４】
2017162257.tif 000026
【図２５】
2017162257.tif 000027
【図２６】
2017162257.tif 000028
【図２７】
2017162257.tif 000029