JP7137072B2 - 情報処理システム、負荷分散処理装置および負荷分散処理プログラム - Google Patents

情報処理システム、負荷分散処理装置および負荷分散処理プログラム Download PDF

Info

Publication number
JP7137072B2
JP7137072B2 JP2018231037A JP2018231037A JP7137072B2 JP 7137072 B2 JP7137072 B2 JP 7137072B2 JP 2018231037 A JP2018231037 A JP 2018231037A JP 2018231037 A JP2018231037 A JP 2018231037A JP 7137072 B2 JP7137072 B2 JP 7137072B2
Authority
JP
Japan
Prior art keywords
file
server
cache
data
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018231037A
Other languages
English (en)
Other versions
JP2020095340A (ja
Inventor
英憲 松下
央永 中村
雄一 属増
智幸 上門
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018231037A priority Critical patent/JP7137072B2/ja
Publication of JP2020095340A publication Critical patent/JP2020095340A/ja
Application granted granted Critical
Publication of JP7137072B2 publication Critical patent/JP7137072B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は情報処理システム、負荷分散処理装置および負荷分散処理プログラムに関する。
クライアント装置からデータに対する要求メッセージを受信し、受信した要求メッセージに応じたデータ処理を行って応答メッセージを返信するサーバ装置がある。例えば、クライアント装置からHTML(HyperText Markup Language)ファイルを指定したHTTP(Hypertext Transfer Protocol)リクエストを受信し、指定されたHTMLファイルを含むHTTPレスポンスを返信するWebサーバがある。
単位時間当たりに受信する要求メッセージが増加すると、サーバ装置の負荷が高くなって応答時間が長くなるおそれがある。そこで、負荷が高くなる場合はデータをコピーしてサーバ装置の台数を増やし、複数のサーバ装置に要求メッセージを振り分ける負荷分散が行われることがある。例えば、イベントや災害などによりWebサイトの需要が一時的に高くなる場合に、HTMLファイルなどのファイルをコピーしてWebサーバの台数を増やし、複数のWebサーバにHTTPリクエストを振り分けることがある。要求メッセージの振り分けは、ロードバランサなどの負荷分散装置により行われることがある。
なお、各データのクライアントからの需要を予測し、需要の増大が予測されるデータを予め複数のキャッシュサーバにコピーする制御サーバが提案されている。また、複数の制御サーバが分散してキャッシュ管理情報を保持し、クライアントからデータ要求を受信すると要求されたデータに関するキャッシュ管理情報をもつ制御サーバにデータ要求を転送するキャッシュシステムが提案されている。また、クライアントから要求されたデータのキャッシュが存在しない場合、オリジナルデータを保持するマスタサーバよりも他のキャッシュサーバから優先的にデータをコピーするキャッシュサーバが提案されている。キャッシュサーバ間のデータのコピーは負荷を考慮して制御される。
特開2005-10970号公報 特開2007-66161号公報 国際公開第2013/047207号
複数のサーバ装置に要求メッセージを振り分ける負荷分散が行われているときに、それら複数のサーバ装置が保持するデータを更新したいことがある。1つの方法としては、管理者が手動で、各サーバ装置にログインしてデータを書き換える方法が考えられる。しかし、管理者による手動の作業は負担が大きく、更新ミスが発生するリスクも高くなる。
他の1つの方法としては、一部のサーバ装置をマスタサーバとして動作させ、他のサーバ装置をキャッシュサーバとして動作させる方法が考えられる。キャッシュサーバは、マスタサーバからデータを取得し、取得したデータを所定の有効期間だけキャッシュとして保持する。キャッシュサーバは、有効なキャッシュが存在している間は、受信した要求メッセージに対してキャッシュを用いてデータ処理を行う。キャッシュの有効期間が切れた後にキャッシュサーバがマスタサーバからデータを再取得することで、マスタサーバに対して行われたデータ更新がキャッシュサーバに自動的に反映されることになる。
しかし、単純にキャッシュサーバの仕組みを利用するだけでは、キャッシュの有効期間を適切に設定することが難しいという問題がある。有効期間が長い場合、マスタサーバのデータ更新がキャッシュサーバに反映されるまでの遅延が大きくなってしまう。一方、有効期間が短い場合、マスタサーバとキャッシュサーバの間でデータ通信が頻繁に発生し、負荷分散の効果が十分に得られなくなってしまうおそれがある。
1つの側面では、本発明は、サーバ装置のデータの同期を効率化する情報処理システム、負荷分散処理装置および負荷分散処理プログラムを提供することを目的とする。
1つの態様では、データに対する処理要求を示す複数の要求メッセージを受信し、複数の要求メッセージを複数のサーバ装置に振り分ける負荷分散処理装置と、複数のサーバ装置の1つであって、特定のストレージ装置に記憶されたデータに対応するキャッシュを保持し、キャッシュを用いて、負荷分散処理装置から転送された要求メッセージを処理する第1のサーバ装置と、を有する情報処理システムが提供される。負荷分散処理装置は、ストレージ装置に記憶されたデータの更新を検出した場合、データに対する要求メッセージを第1のサーバ装置に転送する際に、キャッシュの更新を指示する更新指示情報を転送する要求メッセージに挿入する。
また、1つの態様では、通信部と処理部とを有する負荷分散処理装置が提供される。また、1つの態様では、コンピュータに実行させる負荷分散処理プログラムが提供される。
1つの側面では、サーバ装置のデータの同期を効率化できる。
第1の実施の形態の情報処理システムの例を説明する図である。 第2の実施の形態の情報処理システムの例を示す図である。 負荷分散装置のハードウェア例を示すブロック図である。 キャッシュ更新の例を示すシーケンス図である。 HTTPメッセージの例を示す図である。 負荷分散装置とサーバ装置の機能例を示すブロック図である。 ファイル管理テーブルの例を示す図である。 ファイル管理テーブルの更新例を示す図である。 負荷分散装置の手順例を示すフローチャートである。 負荷分散装置の手順例を示すフローチャート(続き)である。 サーバ装置の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理システムの例を説明する図である。
第1の実施の形態の情報処理システムは、複数の要求メッセージを受信し、受信した複数の要求メッセージを複数のサーバ装置に振り分けて分散処理するものである。第1の実施の形態の情報処理システムは、負荷分散処理装置10および複数のサーバ装置を含む。
負荷分散処理装置10は、データに対する処理要求を示す複数の要求メッセージを受信し、受信した複数の要求メッセージを複数のサーバ装置に振り分ける。負荷分散処理装置10は、情報処理装置やコンピュータや通信装置などと言うこともでき、ロードバランサやリバースプロキシサーバなどと呼ばれるものであってもよい。負荷分散処理装置10は、要求メッセージを処理するサーバ装置の1つ(振り分け先の1つ)を兼ねてもよい。負荷分散処理装置10が受信する複数の要求メッセージにはそれぞれ、要求対象のファイルのファイル名など、要求対象のデータを識別する識別情報が含まれていてもよい。
複数のサーバ装置には、サーバ装置21(第2のサーバ装置)とサーバ装置22(第1のサーバ装置)が含まれる。サーバ装置22は、情報処理システムが備える特定のストレージ装置23に記憶されたデータ24に対応するキャッシュ25を保持する。サーバ装置22は、情報処理装置やコンピュータなどと言うこともでき、キャッシュサーバなどと呼ばれてもよい。ストレージ装置23は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性ストレージである。ストレージ装置23は、サーバ装置22の外部に存在し、サーバ装置21が備えるものでもよいし負荷分散処理装置10が備えるものであってもよい。データ24はオリジナルデータであり、キャッシュ25はデータ24のコピーである。サーバ装置22は、保持しているキャッシュ25を用いて、負荷分散処理装置10から転送された要求メッセージを処理する。
負荷分散処理装置10は、通信部11および処理部12を有する。通信部11は、ネットワークに接続された通信インタフェースである。通信部11は、有線通信インタフェースでもよいし無線通信インタフェースでもよい。通信部11は、クライアント装置などから要求メッセージを受信し、受信した要求メッセージを何れかのサーバ装置に転送する。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。処理部12は、ストレージ装置23に記憶されたデータ24が更新された際に、サーバ装置22が保持するキャッシュ25が同期されるよう制御する。
具体的には、処理部12は、ストレージ装置23に記憶されたデータ24が更新されたことを検出する。データ24の更新は、情報処理システムの管理者によって行われることがある。データ24の更新は、サーバ装置21から負荷分散処理装置10に返信される応答メッセージを監視することによって検出してもよい。例えば、負荷分散処理装置10は、応答メッセージのヘッダに記載されたデータ更新時刻を監視し、データ更新時刻が新しくなった場合にデータ24が更新されたと判断する。
ストレージ装置23に記憶されたデータ24の更新を検出した場合、処理部12は、データ24に対する要求メッセージ13がサーバ装置22に転送される際に、キャッシュ25の更新を指示する更新指示情報14を要求メッセージ13に挿入する。通信部11は、更新指示情報14が挿入された要求メッセージ13をサーバ装置22に転送する。更新指示情報14が挿入される要求メッセージ13は、例えば、データ24を要求対象に指定した要求メッセージであって、データ24の更新が検出されてから最初にサーバ装置22に転送されることになった要求メッセージである。更新指示情報14として、例えば、HTTPヘッダの「Cache-Control: no-cache」など、キャッシュ不使用を示すキャッシュ制御情報を要求メッセージ13のヘッダに挿入してもよい。
更新指示情報14を含む要求メッセージ13を受信したサーバ装置22は、ストレージ装置23に記憶されたデータ24のコピーを再取得してキャッシュ25を更新する。例えば、サーバ装置22は、サーバ装置21からデータ24のコピーを受信する。そして、サーバ装置22は、更新したキャッシュ25を用いて要求メッセージ13を処理する。これにより、データ24の更新がキャッシュ25に反映される。
第1の実施の形態の情報処理システムによれば、要求メッセージを複数のサーバ装置に振り分ける負荷分散処理装置10において、ストレージ装置23に記憶されたデータ24の更新が検出される。すると、データ24に対する要求メッセージ13がサーバ装置22に転送される際に、更新指示情報14が要求メッセージ13に挿入される。これにより、サーバ装置22のキャッシュ25がストレージ装置23のデータ24と同期する。よって、データ24とキャッシュ25の同期を効率的に実現できる。
例えば、データ24を更新する際にサーバ装置22のキャッシュ25を、管理者が手動で更新する方法も考えられる。しかし、その方法では管理者の作業負担が大きく、キャッシュ25の更新ミスが発生するリスクもある。また、例えば、サーバ装置22が定期的にキャッシュ25を無効化してストレージ装置23のデータ24を再取得する方法も考えられる。しかし、その方法ではデータ24の更新の有無に関係なくデータ24を再取得するデータ通信が発生し、負荷分散を阻害するおそれがある。また、キャッシュ25の有効期間を長く設定すると、データ24の更新がキャッシュ25に反映されるまでの遅延が大きくなってしまう。これに対して、第1の実施の形態では同期を効率化できる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、HTTPリクエストを受けてHTMLファイルなどのファイルを提供するWebサーバを、負荷の増大時に迅速に増設できるようにするものである。第2の実施の形態の情報処理システムは、クライアント装置31などの1以上のクライアント装置、自社システム41およびクラウドシステム42を含む。
クライアント装置31、自社システム41およびクラウドシステム42は、ネットワーク43に接続されている。ネットワーク43は、例えば、インターネットなどの広域データ通信ネットワークである。クライアント装置31は、ユーザが使用する端末装置である。クライアント装置31を情報処理装置やコンピュータと言うことがある。クライアント装置31はWebブラウザを実行する。Webブラウザは、ユーザの操作に応じてネットワーク43を介して自社システム41にHTTPリクエストを送信し、自社システム41からHTTPレスポンスを受信する。Webブラウザは、HTTPレスポンスに基づいてクライアント装置31のディスプレイにWebページを表示する。
自社システム41は、Webサイトの運営主体が所有するオンプレミス型の情報処理システムである。ただし、自社システム41は、プライベートクラウドシステムなど他の名称で呼ばれる情報処理システムであってもよい。例えば、自社システム41は、Webサイトの運営主体が所有していないものの独占的に使用できるホスティング型のプライベートクラウドシステムであってもよい。クラウドシステム42は、データセンタに設置された情報処理システムであり、パブリッククラウドシステムである。Webサイトの運営主体は、契約により有料でクラウドシステム42の計算リソースを利用できる。利用するクラウドシステム42の計算リソースを適宜増減することもできる。
自社システム41は、管理装置32、負荷分散装置100およびサーバ装置210,220などの2以上のサーバ装置を含む。自社システム41内の装置はネットワーク44に接続されている。ネットワーク44は、例えば、LAN(Local Area Network)などのローカルデータ通信ネットワークである。管理装置32は、Webサイトの管理者が使用する端末装置である。管理装置32を情報処理装置やコンピュータと言うことがある。管理装置32は、管理者の操作に応じて、Webサイトを実装したHTMLファイルなどのファイルを更新することがある。また、管理装置32は、管理者の操作に応じて、Webサイトの提供に用いるサーバ装置の追加や削除を行うことがある。
負荷分散装置100は、クライアント装置31などのクライアント装置からHTTPリクエストを受信し、HTTPリクエストを複数のサーバ装置に振り分けて負荷分散を行う。負荷分散装置100を、ロードバランサやリバースプロキシサーバと言うことがあり、情報処理装置やコンピュータや通信装置と言うこともある。負荷分散装置100は、HTTPリクエストの振り分け先のサーバ装置からHTTPレスポンスを受信し、受信したHTTPレスポンスをHTTPリクエストの送信元のクライアント装置に転送する。負荷分散装置100は、複数のサーバ装置へのHTTPリクエストの振り分けをラウンドロビン方式で行ってもよい。また、未応答のHTTPリクエストが多い負荷の高いサーバ装置や、一定時間以上応答のないダウンしたサーバ装置を振り分け先から除外してもよい。
サーバ装置210,220は、Webサイトを実装したファイルをローカルのストレージ装置に記憶し、HTTPリクエストを受信してHTTPレスポンスを返信するWebサーバである。サーバ装置210,220を情報処理装置やコンピュータと言うことがある。サーバ装置210,220は、HTTPリクエストが静的ファイルを指定している場合、指定されたファイルを含むHTTPレスポンスを返信する。
サーバ装置210は、オリジナルのファイルを記憶するマスタサーバとして動作する。サーバ装置210は、負荷分散装置100から振り分けられたHTTPリクエストを受信し、受信したHTTPリクエストとサーバ装置210がもつファイルに基づいてHTTPレスポンスを生成し、負荷分散装置100にHTTPレスポンスを返信する。サーバ装置210のファイルは、管理装置32によって更新されることがある。
サーバ装置220は、サーバ装置210がもつファイルのコピーを記憶するキャッシュサーバとして動作する。サーバ装置220は、負荷分散装置100から振り分けられたHTTPリクエストを受信し、受信したHTTPリクエストとサーバ装置220がキャッシュとしてもつファイルに基づいてHTTPレスポンスを生成し、負荷分散装置100にHTTPレスポンスを返信する。このとき、HTTPレスポンスの生成に用いられるファイルをサーバ装置220が保持していない場合、サーバ装置220はサーバ装置210からファイルのコピーを取得する。また、サーバ装置220にはキャッシュの有効期間が設定される。サーバ装置220は、取得してから有効期間が経過したファイルを無効化し、サーバ装置210から再度取得するようにする。
クラウドシステム42は、サーバ装置230,240などの2以上のサーバ装置を含む。クラウドシステム42内の装置はネットワーク45に接続されている。ネットワーク45は、例えば、LANなどのローカルデータ通信ネットワークである。クラウドシステム42は、管理装置32からの要求に応じて、Webサイトの運営主体にサーバ装置230,240を割り当てる。サーバ装置230,240をキャッシュサーバとして動作させ、負荷分散装置100がHTTPリクエストを振り分ける振り分け先にサーバ装置230,240を追加することで、サーバ装置210,220の負荷を下げることができる。
例えば、災害発生時や電子商取引のイベント期間などHTTPリクエストが増加する期間だけ、クラウドシステム42にキャッシュサーバを増設してHTTPリクエストの振り分け先を増やすことが考えられる。これにより、自社システム41の設備投資を抑えつつ、一時的なWebサイトの需要増大に対応することができる。
サーバ装置230,240は、サーバ装置210がもつファイルのコピーを記憶するキャッシュサーバとして動作し得る。サーバ装置230,240は、負荷分散装置100から振り分けられたHTTPリクエストをネットワーク43を介して受信する。サーバ装置230,240は、受信したHTTPリクエストとキャッシュとしてもつファイルに基づいてHTTPレスポンスを生成し、負荷分散装置100にHTTPレスポンスをネットワーク43を介して返信する。このとき、HTTPレスポンスの生成に用いられるファイルを保持していない場合、サーバ装置230,240はサーバ装置210からファイルのコピーを取得する。また、サーバ装置230,240にはキャッシュの有効期間が設定される。サーバ装置230,240は、取得してから有効期間が経過したファイルを無効化し、サーバ装置210から再度取得するようにする。
なお、第2の実施の形態ではマスタサーバを自社システム41に設置したが、マスタサーバをクラウドシステム42に設置することも可能である。例えば、サーバ装置230をマスタサーバとして動作させ、管理装置32がサーバ装置230のファイルを更新し、サーバ装置210,220,240はサーバ装置230からファイルのコピーを取得するようにしてもよい。また、第2の実施の形態では負荷分散装置100を自社システム41に設置したが、負荷分散装置100をクラウドシステム42に設置することも可能である。例えば、クラウドシステム42に設置された負荷分散装置100がクライアント装置31からHTTPリクエストを受信し、受信したHTTPリクエストを自社システム41のサーバ装置210,220などに振り分けるようにしてもよい。
なお、負荷分散装置100は、第1の実施の形態の負荷分散処理装置10に対応する。サーバ装置210は、第1の実施の形態のサーバ装置21に対応する。サーバ装置220,230,240は、第1の実施の形態のサーバ装置22に対応する。
図3は、負荷分散装置のハードウェア例を示すブロック図である。
負荷分散装置100は、バスに接続されたCPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。通信インタフェース107は、第1の実施の形態の通信部11に対応する。クライアント装置31、管理装置32およびサーバ装置210,220,230,240も、負荷分散装置100と同様のハードウェアを用いて実装できる。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、負荷分散装置100は複数のプロセッサを備えてもよい。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に使用するデータを一時的に記憶する揮発性の半導体メモリである。なお、負荷分散装置100は、RAM以外の種類のメモリを備えてもよく、複数のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性ストレージである。なお、負荷分散装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類のストレージを備えてもよく、複数のストレージを備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、負荷分散装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを使用することができる。
入力信号処理部105は、負荷分散装置100に接続された入力デバイス112から入力信号を受信する。入力デバイス112として、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを使用できる。また、負荷分散装置100に複数の種類の入力デバイスが接続されてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク44に接続され、ネットワーク44を介して他の情報処理装置と通信を行う。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースである。ただし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースであってもよい。
ここで、サーバ装置220,230,240がもつキャッシュの管理について考える。負荷分散装置100がサーバ装置210,220,230,240にHTTPリクエストを振り分けている場合に、Webサイトを実装したファイルを更新したいことがある。1つの方法としては、管理装置32が、管理者の操作に応じてサーバ装置210,220,230,240にそれぞれログインしてファイルを上書きする方法が考えられる。しかし、管理者による手動の操作では、使用するサーバ装置の台数が多いほど管理者の負担が大きくなり、更新ミスも発生しやすいという問題がある。
また、他の1つの方法としては、キャッシュサーバであるサーバ装置220,230,240がマスタサーバであるサーバ装置210から自動的にファイルのコピーを取得するという既存のキャッシュの仕組みを利用する方法が考えられる。この場合、管理装置32はマスタサーバであるサーバ装置210のファイルのみを更新すればよい。
しかし、既存のキャッシュの仕組みのみでは、キャッシュの有効期間を適切に設定することが難しいという問題がある。有効期間が長いと、管理装置32がサーバ装置210のファイルを更新してから、ファイルの更新がサーバ装置220,230,240に反映されるまでの遅延が大きくなり、クライアント装置31に古いファイルが送信されるリスクが高くなる。一方、有効期間が短いと、ファイルの更新の有無に関係なく、サーバ装置210とサーバ装置220,230,240の間で頻繁にファイルが転送される。このため、サーバ装置210,220,230,240やネットワーク44の負荷が高くなり負荷分散の効果が低下する。また、クラウドシステム42の使用料金が通信量にも依存する場合、Webサイトの運営コストが増加してしまう。
また、自社システム41のサーバ装置210,220の負荷が増大した際、クラウドシステム42に迅速にキャッシュサーバを追加できることが好ましい。このとき、マスタサーバであるサーバ装置210から追加のキャッシュサーバに全てのファイルをコピーしてから追加のキャッシュサーバへのHTTPリクエストの振り分けを開始すると、急激な負荷増大に迅速に対応することが難しいという問題がある。
以上から、第2の実施の形態では、サーバ装置230,240がファイルのコピーを保持していない状態からサーバ装置230,240をキャッシュサーバとして動作させる。サーバ装置230,240は、負荷分散装置100から受信するHTTPリクエストに応じてサーバ装置210から適宜ファイルのコピーを取得してキャッシュを増やしていく。
また、負荷分散装置100は、サーバ装置210からのHTTPレスポンスのヘッダを監視し、あるファイルがサーバ装置210で更新されたことを検出する。すると、負荷分散装置100は、当該ファイルを指定したHTTPリクエストをサーバ装置210以外のサーバ装置に転送する際に、キャッシュを使用しないことを指示するヘッダをHTTPリクエストに挿入する。このHTTPリクエストを受信したサーバ装置は、ヘッダの指示に従ってサーバ装置210からファイルを再取得する。
これにより、サーバ装置210のファイルが更新された後、サーバ装置210のファイルとサーバ装置220,230,240のファイルが迅速に同期される。なお、負荷分散装置100からの指示によって同期が実行されるため、サーバ装置220,230,240のキャッシュの有効期間は十分に長く設定しておいてよい。また、キャッシュの有効期限を無期限にする機能をサーバ装置220,230,240が有している場合、キャッシュの有効期限を無期限に設定してもよい。また、負荷分散装置100は、サーバ装置210,220,230,240にHTTPリクエストを振り分ける際、未同期のファイルが存在するサーバ装置に優先的にHTTPリクエストを転送して同期を促してもよい。
図4は、キャッシュ更新の例を示すシーケンス図である。
管理装置32は、更新されたファイルをサーバ装置210に送信し、サーバ装置210が記憶するオリジナルのファイルを上書きする(S10)。サーバ装置210のファイルが更新された後、負荷分散装置100は、何れかのクライアント装置から当該ファイルのファイル名を含むHTTPリクエストを受信する(S11)。ここでは、負荷分散装置100は、転送先としてサーバ装置210を選択したとする。すると、負荷分散装置100は、受信したHTTPリクエストをサーバ装置210に転送する(S12)。
サーバ装置210は、受信したHTTPリクエストに含まれるファイル名に従って、ステップS10で更新されたファイルを含むHTTPレスポンスを生成して負荷分散装置100に送信する(S13)。このHTTPレスポンスには、当該ファイルの最終更新時刻を示すヘッダが含まれている。負荷分散装置100は、サーバ装置210から受信したHTTPレスポンスを要求元のクライアント装置に転送する(S14)。ここで、負荷分散装置100は、サーバ装置とファイル名の組毎に最終更新時刻を記録しておく。負荷分散装置100は、サーバ装置210から受信したHTTPレスポンスの最終更新時刻が新しくなったことにより、当該ファイルがサーバ装置210で更新されたことを検知する。
ファイルの更新を検知した後、負荷分散装置100は、何れかのクライアント装置から当該ファイルのファイル名を含むHTTPリクエストを受信する(S15)。ステップS11のHTTPリクエストの送信元とステップS15のHTTPリクエストの送信元とは、同一でもよいし異なってもよい。ここでは、負荷分散装置100は、ラウンドロビン方式により転送先としてサーバ装置220を選択したとする。すると、負荷分散装置100は、受信したHTTPリクエストをサーバ装置220に転送する(S16)。このとき、負荷分散装置100は、転送するHTTPリクエストが更新されたファイルのファイル名を含んでいることを検知する。すると、負荷分散装置100は、キャッシュの不使用を示すヘッダを当該HTTPリクエストに挿入して転送する。
サーバ装置220は、受信したHTTPリクエストがキャッシュの不使用を示すヘッダを含んでいることから、キャッシュの有効期間に関係なくオリジナルのファイルを再取得するようにする。すなわち、サーバ装置220は、当該ファイルを指定したHTTPリクエストをサーバ装置210に送信する(S17)。サーバ装置210は、ステップS10で更新されたファイルを含むHTTPレスポンスを生成してサーバ装置220に送信する(S18)。サーバ装置220は、サーバ装置210から取得したファイルをキャッシュとして記憶し、当該ファイルを含むHTTPレスポンスを生成して負荷分散装置100に送信する(S19)。負荷分散装置100は、サーバ装置220から受信したHTTPレスポンスを要求元のクライアント装置に転送する(S20)。
更に、負荷分散装置100は、何れかのクライアント装置から当該ファイルのファイル名を含むHTTPリクエストを受信する(S21)。ここでは、負荷分散装置100は、ラウンドロビン方式により転送先としてサーバ装置230を選択したとする。すると、負荷分散装置100は、受信したHTTPリクエストをサーバ装置230に転送する(S22)。このとき、負荷分散装置100は、転送するHTTPリクエストが更新されたファイルのファイル名を含んでいることを検知する。すると、負荷分散装置100は、キャッシュの不使用を示すヘッダを当該HTTPリクエストに挿入して転送する。
サーバ装置230は、受信したHTTPリクエストがキャッシュの不使用を示すヘッダを含んでいることから、キャッシュの有効期間に関係なくオリジナルのファイルを再取得するようにする。すなわち、サーバ装置230は、当該ファイルを指定したHTTPリクエストをサーバ装置210に送信する(S23)。サーバ装置210は、ステップS10で更新されたファイルを含むHTTPレスポンスを生成してサーバ装置230に送信する(S24)。サーバ装置230は、サーバ装置210から取得したファイルをキャッシュとして記憶し、当該ファイルを含むHTTPレスポンスを生成して負荷分散装置100に送信する(S25)。負荷分散装置100は、サーバ装置230から受信したHTTPレスポンスを要求元のクライアント装置に転送する(S26)。
図5は、HTTPメッセージの例を示す図である。
HTTPリクエスト51は、上記のステップS16で負荷分散装置100がサーバ装置220に送信するHTTPリクエストの例である。HTTPリクエスト51は、要求対象のファイル(例えば、HTMLファイル)のファイル名を含む。ファイル名は、ディレクトリ名を含むファイルパスであってもよい。また、HTTPリクエスト51は、完全修飾ドメイン名(FQDN:Fully Qualified Domain Name)などで表現されたWebサイトのホスト名を含む。また、HTTPリクエスト51は、値を「no-cache」に指定したCache-Controlヘッダを含む。このCache-Controlヘッダは、現在のキャッシュを使用しないでHTTPレスポンスを生成するよう指示する制御情報である。
このCache-Controlヘッダは、所定条件を満たす場合に負荷分散装置100によりHTTPリクエストに挿入されるものである。よって、クライアント装置31が送信するHTTPリクエストにはこのCache-Controlヘッダは含まれない。また、負荷分散装置100からサーバ装置210,220,230,240に転送されるHTTPリクエストであっても、所定条件を満たさない場合にはこのCache-Controlヘッダは含まれない。
HTTPレスポンス52は、上記のステップS19でサーバ装置220が負荷分散装置100に送信するHTTPレスポンスの例である。HTTPレスポンス52は、応答の意味を示す3桁の数字であるステータスコードを含む。200番のステータスコードは、要求された正しい情報がHTTPレスポンス52に含まれていることを示す。また、HTTPレスポンス52は、送信時刻を示すヘッダを含む。
また、HTTPレスポンス52は、HTTPレスポンス52に含まれるファイルの最終更新時刻を示すLast-Modifiedヘッダを含む。各ファイルの最終更新時刻はサーバ装置220で管理されている。サーバ装置220はキャッシュサーバであるため、サーバ装置220が記憶する静的ファイルの最終更新時刻は、サーバ装置210が記憶するオリジナルのファイルの最終更新時刻と同じである。また、HTTPレスポンス52は、データ長やデータ型などを示すヘッダを含む。また、HTTPレスポンス52は、これらのヘッダに続けて、HTMLテキストなどのファイルの内容を含む。
なお、第2の実施の形態では、キャッシュの更新を負荷分散装置100からサーバ装置220,230,240に指示するために、HTTPリクエストのCache-Controlヘッダを利用している。ただし、他の方法でキャッシュの更新を指示するようにしてもよい。例えば、HTTPリクエストに独自ヘッダを定義し、サーバ装置220,230,240が独自ヘッダを検知してキャッシュを更新するようにしてもよい。
次に、負荷分散装置100、マスタサーバおよびキャッシュサーバの機能を説明する。
図6は、負荷分散装置とサーバ装置の機能例を示すブロック図である。
負荷分散装置100は、ファイル管理データベース121、リクエスト振り分け部122およびレスポンス監視部123を有する。ファイル管理データベース121は、例えば、RAM102またはHDD103の記憶領域を用いて実装できる。リクエスト振り分け部122およびレスポンス監視部123は、例えば、プログラムを用いて実装できる。
ファイル管理データベース121は、ファイルの同期の要否を管理するためのファイル管理情報を記憶する。ファイル管理情報は、サーバ装置を示すサーバ名とファイルを示すファイル名の組毎に、当該サーバ装置が記憶する当該ファイルの最終更新日時と、当該サーバ装置が記憶する当該ファイルの更新要否を示す要更新フラグとを含む。
リクエスト振り分け部122は、クライアント装置31などのクライアント装置からHTTPリクエストを受信し、受信したHTTPリクエストをサーバ装置210,220,230,240に振り分ける。例えば、リクエスト振り分け部122は、ラウンドロビン方式により転送先としてサーバ装置210,220,230,240を順に選択する。ここで、転送すべきHTTPリクエストに含まれるファイル名と転送先のサーバ装置のサーバ名が決定すると、リクエスト振り分け部122は、ファイル管理データベース121から当該サーバ名と当該ファイル名の組に対応する要更新フラグを確認する。要更新フラグがキャッシュの更新要を示している場合、リクエスト振り分け部122は、値を「no-cache」に指定したCache-ControlヘッダをHTTPリクエストに挿入する。
レスポンス監視部123は、サーバ装置210,220,230,240からHTTPレスポンスを受信し、受信したHTTPレスポンスを要求元のクライアント装置に転送する。このとき、レスポンス監視部123は、HTTPレスポンスからLast-Modifiedヘッダを抽出する。また、レスポンス監視部123は、送信元のサーバ装置のサーバ名と要求されたファイルのファイル名の組に対応する最終更新時刻をファイル管理データベース121から読み出す。レスポンス監視部123は、Last-Modifiedヘッダとファイル管理データベース121の最終更新時刻とを比較して、ファイル更新の有無を判定する。前者の時刻が後者の時刻より新しい場合、ファイルが更新されたと判定される。
ファイルの更新を検出すると、レスポンス監視部123は、ファイル管理情報において、送信元のサーバ装置のサーバ名と要求されたファイルのファイル名の組に対応する最終更新時刻をLast-Modifiedヘッダの値に書き換える。また、レスポンス監視部123は、ファイル名が同じでサーバ名が異なり、最終更新時刻がLast-Modifiedヘッダの値よりも古いレコードをファイル管理情報から検索する。レスポンス監視部123は、検索したレコードの要更新フラグがキャッシュの更新要を示すように書き換える。ただし、レスポンス監視部123は、ステータスコードが200番以外のHTTPレスポンスなど、エラーを示すHTTPレスポンスを無視するようにしてもよい。
マスタサーバであるサーバ装置210は、ファイルストレージ211およびファイル送信部212を有する。ファイルストレージ211は、例えば、サーバ装置210が有するRAMまたはHDDの記憶領域を用いて実装される。ファイル送信部212は、例えば、サーバ装置210が実行するプログラムを用いて実装される。
ファイルストレージ211は、Webサイトに用いられるHTMLファイルなどのファイルを記憶する。ファイルストレージ211が記憶するファイルは、キャッシュではないオリジナルのファイルである。ファイル送信部212は、HTTPリクエストを受信する。HTTPリクエストは、負荷分散装置100から受信されることもあるし、サーバ装置220,230,240から受信されることもある。ファイル送信部212は、受信したHTTPリクエストに含まれるファイル名が示すファイルをファイルストレージ211から読み出し、読み出したファイルを含むHTTPレスポンスを返信する。
キャッシュサーバであるサーバ装置220は、キャッシュストレージ221、ファイル送信部222およびキャッシュ更新部223を有する。キャッシュストレージ221は、例えば、サーバ装置220が有するRAMまたはHDDの記憶領域を用いて実装される。ファイル送信部222およびキャッシュ更新部223は、例えば、サーバ装置220が実行するプログラムを用いて実装される。キャッシュサーバであるサーバ装置230,240も、サーバ装置220と同様の構成によって実現できる。
キャッシュストレージ221は、Webサイトに用いられるHTMLファイルなどのファイルを記憶する。キャッシュストレージ221が記憶するファイルは、サーバ装置210からコピーしてキャッシュとして保存したファイルである。
ファイル送信部222は、負荷分散装置100からHTTPリクエストを受信する。ファイル送信部222は、受信したHTTPリクエストに含まれるファイル名が示すファイルをキャッシュストレージ221から検索する。該当するファイルが存在しない場合、ファイル送信部222は、キャッシュ更新部223にファイル取得を要求する。また、該当するファイルが存在する場合であっても、ファイルの取得から所定の有効期間が経過している場合、ファイル送信部222は、キャッシュ更新部223にファイル取得を要求する。
また、ファイル送信部222は、値を「no-cache」に指定したCache-ControlヘッダがHTTPリクエストに含まれるか判断する。該当するCache-ControlヘッダがHTTPリクエストに含まれている場合、ファイル送信部222は、キャッシュ更新部223にファイル取得を要求する。ファイル送信部222は、該当するファイルをキャッシュストレージ221から読み出し、読み出したファイルを含むHTTPレスポンスを返信する。
キャッシュ更新部223は、ファイル送信部222からファイル取得の要求を受け付けると、サーバ装置210にHTTPリクエストを送信する。キャッシュ更新部223は、サーバ装置210からHTTPレスポンスを受信し、受信したHTTPレスポンスに含まれるファイルをキャッシュとしてキャッシュストレージ221に格納する。
図7は、ファイル管理テーブルの例を示す図である。
ファイル管理テーブル124は、負荷分散装置100のファイル管理データベース121に記憶される。ファイル管理テーブル124は、サーバ名、ファイル名、最終更新時刻および要更新フラグの項目を含む。サーバ名は、サーバ装置210,220,230,240を識別する名称である。ファイル名は、ファイルを識別する名称である。ファイル名は、ディレクトリ名を含むファイルパスであってもよい。サーバ装置210が記憶するオリジナルのファイルと、サーバ装置220,230,240が記憶する当該ファイルに対応するキャッシュには、同じファイル名が付与されている。
最終更新時刻は、ファイルが最後に更新された時刻であり、HTTPレスポンスに含まれるLast-Modifiedタグによって特定できる。サーバ装置220,230,240がサーバ装置210からファイルをコピーし、サーバ装置210のファイルが更新されていない場合、サーバ装置210,220,230,240の当該ファイルの最終更新時刻は同一になる。サーバ装置210のファイルが更新され、サーバ装置220,230,240がまだファイルを同期していない場合、サーバ装置210の当該ファイルの最終更新時刻はサーバ装置220,230,240よりも新しくなる。サーバ装置220,230,240の何れかがファイルを同期した場合、サーバ装置220,230,240のうち同期したサーバ装置の最終更新時刻がサーバ装置210の最終更新時刻と同じになり、まだ同期していないサーバ装置の最終更新時刻は古いままとなる。
要更新フラグは、特定のサーバ装置が有する特定のファイルの更新要否を示す。要更新フラグが「YES」であることは、キャッシュの更新を要することを示す。要更新フラグが「NO」であることは、キャッシュの更新が不要であることを示す。要更新フラグは負荷分散装置100により書き換えられる。要更新フラグの初期値は「NO」である。
図8は、ファイル管理テーブルの更新例を示す図である。
ここでは、サーバ装置210がファイル/xxx/aaa.htmlを記憶しており、そのファイルの最終更新時刻が2018/07/13 12:00であるとする。また、サーバ装置220,230,240がそのファイルのコピーをキャッシュとして記憶しているとする。
負荷分散装置100は、ファイル名が/xxx/aaa.htmlのファイルを含みLast-Modifiedヘッダが2018/07/20 09:00であるHTTPレスポンスをサーバ装置210から受信したとする。Last-Modifiedヘッダが示す時刻2018/07/20 09:00は、ファイル管理テーブル124に登録された最終更新時刻2018/07/13 12:00よりも新しい。そこで、負荷分散装置100は、ファイル管理テーブル124において、サーバ装置210のサーバ名とファイル名/xxx/aaa.htmlとに対応する最終更新時刻を2018/07/20 09:00に書き換える。
また、負荷分散装置100は、ファイル名が/xxx/aaa.htmlであり最終更新時刻が2018/07/20 09:00よりも古いレコードをファイル管理テーブル124から検索する。ここでは、サーバ装置220,230,240に対応する3つのレコードが検索される。すると、負荷分散装置100は、3つのレコードの要更新フラグを「YES」に書き換える。
次に、負荷分散装置100は、ファイル名/xxx/aaa.htmlを含むHTTPリクエストをサーバ装置230に転送することを決定したとする。すると、負荷分散装置100は、ファイル管理テーブル124を参照して、サーバ装置230のサーバ名とファイル名/xxx/aaa.htmlとに対応する要更新フラグを確認し、要更新フラグが「YES」であると判断する。そこで、負荷分散装置100は、転送するHTTPリクエストに値が「no-cache」のCache-Controlヘッダを挿入する。これにより、サーバ装置230は、ファイル名が/xxx/aaa.htmlのファイルをサーバ装置210から再取得する。
次に、負荷分散装置100は、ファイル名が/xxx/aaa.htmlのファイルを含みLast-Modifiedヘッダが2018/07/20 09:00であるHTTPレスポンスをサーバ装置230から受信する。Last-Modifiedヘッダが示す時刻2018/07/20 09:00は、ファイル管理テーブル124に登録された最終更新時刻2018/07/13 12:00よりも新しい。そこで、負荷分散装置100は、ファイル管理テーブル124において、サーバ装置230のサーバ名とファイル名/xxx/aaa.htmlとに対応する最終更新時刻を2018/07/20 09:00に書き換え、それに対応する要更新フラグを「NO」に書き換える。
次に、負荷分散装置100とサーバ装置220の処理手順を説明する。
図9は、負荷分散装置の手順例を示すフローチャートである。
(S30)リクエスト振り分け部122は、HTTPリクエストを受信する。
(S31)リクエスト振り分け部122は、ステップS30で受信したHTTPリクエストの転送先のサーバ装置を決定する。例えば、リクエスト振り分け部122は、ラウンドロビン方式によりサーバ装置210,220,230,240を順に選択している。
(S32)リクエスト振り分け部122は、ステップS30で受信したHTTPリクエストから、要求対象のファイルのファイル名を抽出する。
(S33)リクエスト振り分け部122は、ステップS31で決定したサーバ装置のサーバ名とステップS32で抽出したファイル名との組を、ファイル管理データベース121に記憶されたファイル管理テーブル124から検索する。リクエスト振り分け部122は、該当する組がファイル管理テーブル124に登録されているか判断する。登録されている場合はステップS34に進み、未登録の場合はステップS36に進む。
(S34)リクエスト振り分け部122は、ステップS33の組に対応付けてファイル管理テーブル124に登録された要更新フラグを確認し、要更新フラグが「YES」であるか判断する。要更新フラグが「YES」である場合はステップS35に進み、要更新フラグが「NO」である場合はステップS36に進む。
(S35)リクエスト振り分け部122は、ステップS30で受信したHTTPリクエストに、値が「no-cache」であるCache-Controlヘッダを挿入する。
(S36)リクエスト振り分け部122は、ステップS31で決定したサーバ装置に対してHTTPリクエストを転送する。転送するHTTPリクエストは、ステップS30で受信したものと同じか、または、それにCache-Controlヘッダを挿入したものである。なお、負荷分散装置100は、転送したHTTPリクエストに対応するHTTPレスポンスの処理のため、ステップS32で抽出したファイル名を保持しておく。
図10は、負荷分散装置の手順例を示すフローチャート(続き)である。
(S37)レスポンス監視部123は、ステップS31で決定したサーバ装置から、ステップS36のHTTPリクエストに対応するHTTPレスポンスを受信する。
(S38)レスポンス監視部123は、ステップS37で受信したHTTPレスポンスから、ファイルの最終更新時刻を示すLast-Modifiedヘッダを抽出する。
(S39)レスポンス監視部123は、HTTPレスポンスの送信元のサーバ装置のサーバ名とHTTPリクエストの転送時に抽出したファイル名との組を、ファイル管理データベース121に記憶されたファイル管理テーブル124から検索する。レスポンス監視部123は、該当する組がファイル管理テーブル124に登録されているか判断する。登録されている場合はステップS41に進み、未登録の場合はステップS40に進む。
(S40)レスポンス監視部123は、ステップS39のサーバ名とファイル名の組に対応付けて、ステップS38で抽出したLast-Modifiedヘッダが示す最終更新時刻をファイル管理テーブル124に登録する。また、この組に対応する要更新フラグを「NO」に設定する。そして、ステップS46に進む。
(S41)レスポンス監視部123は、ステップS39のサーバ名とファイル名の組に対応する最終更新時刻をファイル管理テーブル124から検索する。そして、レスポンス監視部123は、ステップS38で抽出したLast-Modifiedヘッダの最終更新時刻とファイル管理テーブル124に登録された最終更新時刻とを比較し、前者が後者よりも新しいか判断する。前者の時刻の方が新しい場合はステップS42に進み、それ以外の場合(前者の時刻と後者の時刻が同じ場合)はステップS46に進む。
(S42)レスポンス監視部123は、ファイル管理テーブル124において、ステップS39のサーバ名とファイル名の組に対応する最終更新時刻を、ステップS38で抽出したLast-Modifiedヘッダが示す最終更新時刻に書き換える。
(S43)レスポンス監視部123は、ファイル管理テーブル124から、HTTPリクエストの転送時に抽出したファイル名を含み、最終更新時刻がステップS38のLast-Modifiedヘッダよりも古いレコードを検索する。ここでは、該当するレコードが1つもない場合もあれば、該当するレコードが2以上ある場合もある。
(S44)レスポンス監視部123は、ステップS43で検索されたレコードに含まれる要更新フラグを「YES」に書き換える。
(S45)レスポンス監視部123は、ステップS42で最終更新時刻を書き換えたレコードの要更新フラグ、すなわち、ステップS39のサーバ名とファイル名の組に対応する要更新フラグを「NO」に書き換える。
(S46)レスポンス監視部123は、ステップS37で受信したHTTPレスポンスを、HTTPリクエストの送信元のクライアント装置に転送する。
図11は、サーバ装置の手順例を示すフローチャートである。
(S50)ファイル送信部222は、HTTPリクエストを受信する。
(S51)ファイル送信部222は、ステップS50で受信したHTTPリクエストからファイル名を抽出する。ファイル送信部222は、抽出したファイル名をもつファイルのキャッシュがキャッシュストレージ221に存在するか判断する。キャッシュが存在する場合はステップS52に進み、存在しない場合はステップS53に進む。
(S52)ファイル送信部222は、ステップS50で受信したHTTPリクエストに値が「no-cache」のCache-Controlヘッダが含まれているか判断する。該当ヘッダが含まれている場合はステップS53に進み、含まれていない場合はステップS56に進む。
(S53)キャッシュ更新部223は、ステップS51で抽出されたファイル名を含むHTTPリクエストを生成し、マスタサーバであるサーバ装置210に送信する。
(S54)キャッシュ更新部223は、ステップS53で送信したHTTPリクエストに対応するHTTPレスポンスを、マスタサーバであるサーバ装置210から受信する。
(S55)キャッシュ更新部223は、ステップS54で受信したHTTPレスポンスからファイルを抽出し、キャッシュとしてキャッシュストレージ221に保存する。
(S56)ファイル送信部222は、ステップS51のファイル名をもつファイルをキャッシュストレージ221から読み出し、読み出したファイルを含むHTTPレスポンスを生成する。ファイル送信部222は、生成したHTTPレスポンスを、ステップS50で受信したHTTPリクエストに対する応答として負荷分散装置100に送信する。
第2の実施の形態の情報処理システムによれば、自社システム41のサーバ装置210,220の負荷が高くなった場合、クラウドシステム42のサーバ装置230,240を利用して負荷分散が図られる。よって、Webサイトの応答時間を短縮できる。また、過剰な台数のサーバ装置を自社システム41がもたなくてよく、自社システム41の運用コストを低減できる。また、サーバ装置210からサーバ装置230,240に全てのファイルをコピーする前に、サーバ装置230,240の運用が開始され、運用開始後に要求に応じてファイルが順次コピーされる。よって、サーバ装置210,220の負荷の急激な増大に対して、迅速にサーバ装置の台数を増やすことができる。
また、管理装置32がサーバ装置210のファイルを更新すると、サーバ装置210から負荷分散装置100へのHTTPレスポンスに含まれるLast-Modifiedヘッダに基づいてファイルの更新が検知される。すると、検知後に負荷分散装置100からサーバ装置220,230,240に転送されるHTTPリクエストにCache-Controlヘッダが挿入され、サーバ装置220,230,240にファイルの同期が促される。
これにより、管理装置32がサーバ装置210,220,230,240に個々にログインしてファイルを書き換えなくてもよく、ファイル更新の負担が軽減される。また、ファイル更新のミスが低減される。また、サーバ装置210のファイルが更新されたときのみ、サーバ装置220,230,240にファイルの同期が促される。よって、ファイル更新の有無に関係なくサーバ装置210とサーバ装置220,230,240とが頻繁に通信することを抑制でき、サーバ装置210,220,230,240やネットワーク44,45の負荷を低減することができる。また、クラウドシステム42の使用料金が通信量に依存する場合、支払う使用料金を低減できる。
10 負荷分散処理装置
11 通信部
12 処理部
13 要求メッセージ
14 更新指示情報
21,22 サーバ装置
23 ストレージ装置
24 データ
25 キャッシュ

Claims (7)

  1. データに対する処理要求を示す複数の要求メッセージを受信し、前記複数の要求メッセージを複数のサーバ装置に振り分ける負荷分散処理装置と、
    前記複数のサーバ装置の1つであって、特定のストレージ装置に記憶された前記データに対応するキャッシュを保持し、前記キャッシュを用いて、前記負荷分散処理装置から転送された要求メッセージを処理する第1のサーバ装置と、
    を有し、
    前記負荷分散処理装置は、前記ストレージ装置に記憶された前記データの更新を検出した場合、前記データに対する要求メッセージを前記第1のサーバ装置に転送する際に、前記キャッシュの更新を指示する更新指示情報を前記転送する要求メッセージに挿入する、
    情報処理システム。
  2. 前記負荷分散処理装置は、前記複数のサーバ装置のうち、前記ストレージ装置に記憶された前記データを用いる第2のサーバ装置からの応答メッセージを監視し、前記応答メッセージに基づいて、前記ストレージ装置に記憶された前記データの更新を検出する、
    請求項1記載の情報処理システム。
  3. 前記負荷分散処理装置は、前記応答メッセージのヘッダに記載されたデータ更新時刻に基づいて、前記ストレージ装置に記憶された前記データの更新を検出する、
    請求項2記載の情報処理システム。
  4. 前記負荷分散処理装置は、前記更新指示情報として、キャッシュ不使用を示すキャッシュ制御情報を、前記転送する要求メッセージのヘッダに挿入する、
    請求項1記載の情報処理システム。
  5. 前記複数の要求メッセージはそれぞれ、要求対象のファイルのファイル名を含み、
    前記負荷分散処理装置は、前記データの更新の有無をファイル単位で管理し、あるファイルの更新が検出された後、前記更新されたファイルのファイル名を含む要求メッセージを前記第1のサーバ装置に最初に転送する際に、前記更新指示情報を挿入する、
    請求項1記載の情報処理システム。
  6. データに対する処理要求を示す複数の要求メッセージを受信し、特定のストレージ装置に記憶された前記データに対応するキャッシュを保持している第1のサーバ装置を含む複数のサーバ装置に、前記複数の要求メッセージを振り分けて転送する通信部と、
    前記ストレージ装置に記憶された前記データの更新を検出した場合、前記データに対する要求メッセージを前記第1のサーバ装置に転送する際に、前記キャッシュの更新を指示する更新指示情報を前記転送する要求メッセージに挿入する処理部と、
    を有する負荷分散処理装置。
  7. コンピュータに、
    データに対する処理要求を示す複数の要求メッセージを取得し、
    特定のストレージ装置に記憶された前記データに対応するキャッシュを保持している第1のサーバ装置を含む複数のサーバ装置に、前記複数の要求メッセージを振り分け、
    前記ストレージ装置に記憶された前記データの更新を検出し、
    前記データの更新が検出された場合、前記データに対する要求メッセージが前記第1のサーバ装置に転送される際に、前記キャッシュの更新を指示する更新指示情報を前記転送される要求メッセージに挿入する、
    処理を実行させる負荷分散処理プログラム。
JP2018231037A 2018-12-10 2018-12-10 情報処理システム、負荷分散処理装置および負荷分散処理プログラム Active JP7137072B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018231037A JP7137072B2 (ja) 2018-12-10 2018-12-10 情報処理システム、負荷分散処理装置および負荷分散処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018231037A JP7137072B2 (ja) 2018-12-10 2018-12-10 情報処理システム、負荷分散処理装置および負荷分散処理プログラム

Publications (2)

Publication Number Publication Date
JP2020095340A JP2020095340A (ja) 2020-06-18
JP7137072B2 true JP7137072B2 (ja) 2022-09-14

Family

ID=71086197

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018231037A Active JP7137072B2 (ja) 2018-12-10 2018-12-10 情報処理システム、負荷分散処理装置および負荷分散処理プログラム

Country Status (1)

Country Link
JP (1) JP7137072B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11765618B2 (en) * 2020-03-20 2023-09-19 Nokia Technologies Oy Wireless communication system
JP7391826B2 (ja) * 2020-12-24 2023-12-05 株式会社日立製作所 ストレージシステムおよびデータ管理方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265643A (ja) 2000-03-23 2001-09-28 Victor Co Of Japan Ltd ネットワーク資源監視システム
JP2002149466A (ja) 2000-11-14 2002-05-24 Hitachi Ltd ファイル共有システム
JP2004038439A (ja) 2002-07-02 2004-02-05 Hitachi Ltd Webアクセス中継装置
JP2009230404A (ja) 2008-03-21 2009-10-08 Nomura Research Institute Ltd データベースシステム及びデータベースシステムにおけるレプリカデータの更新方法
JP2009237637A (ja) 2008-03-26 2009-10-15 Fujitsu Ltd サーバおよび接続先サーバ切替制御方法
WO2013141308A1 (ja) 2012-03-22 2013-09-26 日本電気株式会社 分散ストレージシステム、ストレージ制御方法およびプログラム
WO2014192213A1 (ja) 2013-05-31 2014-12-04 日本電気株式会社 分散処理システム
JP2017085294A (ja) 2015-10-26 2017-05-18 富士通株式会社 通信制御装置及びネットワークシステム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001265643A (ja) 2000-03-23 2001-09-28 Victor Co Of Japan Ltd ネットワーク資源監視システム
JP2002149466A (ja) 2000-11-14 2002-05-24 Hitachi Ltd ファイル共有システム
JP2004038439A (ja) 2002-07-02 2004-02-05 Hitachi Ltd Webアクセス中継装置
JP2009230404A (ja) 2008-03-21 2009-10-08 Nomura Research Institute Ltd データベースシステム及びデータベースシステムにおけるレプリカデータの更新方法
JP2009237637A (ja) 2008-03-26 2009-10-15 Fujitsu Ltd サーバおよび接続先サーバ切替制御方法
WO2013141308A1 (ja) 2012-03-22 2013-09-26 日本電気株式会社 分散ストレージシステム、ストレージ制御方法およびプログラム
WO2014192213A1 (ja) 2013-05-31 2014-12-04 日本電気株式会社 分散処理システム
JP2017085294A (ja) 2015-10-26 2017-05-18 富士通株式会社 通信制御装置及びネットワークシステム

Also Published As

Publication number Publication date
JP2020095340A (ja) 2020-06-18

Similar Documents

Publication Publication Date Title
US11016749B1 (en) Architecture for incremental deployment
US20190140922A1 (en) Forward-based resource delivery network management techniques
US9332083B2 (en) High performance, distributed, shared, data grid for distributed Java virtual machine runtime artifacts
US20060123121A1 (en) System and method for service session management
US20180246903A1 (en) Caching system and method
JP5509313B2 (ja) ライブレプリケーションのための方法及び装置
WO2019245764A1 (en) Hierarchical namespace with strong consistency and horizontal scalability
JP2004246632A (ja) データ分配サーバ、プログラム及びネットワークシステム
JP2003131924A (ja) リモートアクセスプログラム、リモートアクセス要求処理プログラム、およびクライアントコンピュータ
JP2014526086A (ja) ストレージゲートウェイ起動プロセス
US10942867B2 (en) Client-side caching for deduplication data protection and storage systems
US9229740B1 (en) Cache-assisted upload proxy
US9703705B2 (en) Performing efficient cache invalidation
US9087065B2 (en) Managing an alias host and domain names on a DNS server
US10050832B2 (en) Server clustering in mobile computing environment
US10999371B2 (en) Request multiplexing
US20040148279A1 (en) Scalable distributed hierarchical cache
JP7137072B2 (ja) 情報処理システム、負荷分散処理装置および負荷分散処理プログラム
US20150106468A1 (en) Storage system and data access method
JP3290801B2 (ja) 資源所在位置検出方式
US11184431B2 (en) System and control method
US11481378B1 (en) Method and system for servicing query requests using document-based metadata
JP6568232B2 (ja) 計算機システム、及び、装置の管理方法
JPH11175539A (ja) 代理情報取得方法及びシステム及び代理情報取得プログラムを格納した記憶媒体
JP6643706B2 (ja) 配布履歴管理プログラム、配布履歴管理装置および配布履歴管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210909

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210914

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210914

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220629

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R150 Certificate of patent or registration of utility model

Ref document number: 7137072

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150