JP2007233700A - キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。 - Google Patents

キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。 Download PDF

Info

Publication number
JP2007233700A
JP2007233700A JP2006054787A JP2006054787A JP2007233700A JP 2007233700 A JP2007233700 A JP 2007233700A JP 2006054787 A JP2006054787 A JP 2006054787A JP 2006054787 A JP2006054787 A JP 2006054787A JP 2007233700 A JP2007233700 A JP 2007233700A
Authority
JP
Japan
Prior art keywords
cache
server
content
load
management server
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.)
Pending
Application number
JP2006054787A
Other languages
English (en)
Inventor
Toshiaki Suzuki
敏明 鈴木
Mikio Kataoka
幹雄 片岡
Hideki Okita
英樹 沖田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006054787A priority Critical patent/JP2007233700A/ja
Publication of JP2007233700A publication Critical patent/JP2007233700A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

【課題】大規模な網に適用可能なキャッシュシステムを提供する。
【解決手段】キャッシュ管理サーバは、前記キャッシュシステム内に蓄積されているコンテンツの情報を分担して管理し、前記ルータから転送されたコンテンツの要求を受信すると、前記要求されたコンテンツを蓄積している前記キャッシュサーバのうち処理負荷が最も低い第2のキャッシュサーバを選択する。前記第2のキャッシュサーバは、転送指示を受信すると、前記要求されたコンテンツを第1のキャッシュサーバへ転送する。前記第1のキャッシュサーバは、前記転送されたコンテンツを受信すると、前記受信したコンテンツを蓄積し、前記蓄積されたコンテンツの識別子及び前記第1のキャッシュサーバの識別子を、前記蓄積されたコンテンツの情報を管理するキャッシュ管理サーバへ通知する。
【選択図】図1

Description

本発明は、ネットワーク内に複数のキャッシュサーバを備えたキャッシュシステムに関し、特に、複数のキャッシュサーバが連携して要求されたコンテンツを配信する技術に関する。
あるユーザが一度要求したコンテンツを蓄積(キャッシュ)し、同一のコンテンツの要求があった場合、前記キャッシュしたコンテンツを配信することによって、少ない遅延時間でユーザが要求したコンテンツを配信可能なキャッシュシステムが知られている。
また、大規模網向けのキャッシュシステムとして、非特許文献1に記載されたキャッシュ連携ルータを用いた分散キャッシュシステムが知られている。この公知のキャッシュシステムは、複数のキャッシュサーバの他、システム内に要求されたコンテンツが存在するか否かのキャッシュヒット判定を行うキャッシュ連携ルータと、コンテンツが実際にキャッシュされているキャッシュサーバを管理するキャッシュ制御サーバとを備える。このキャッシュシステムでは、ユーザから要求されたコンテンツがシステム内にキャッシュされている場合、キャッシュサーバ間でコンテンツを転送し、少ない遅延時間でユーザへコンテンツを配信する。
片岡他,"大規模網向け分散キャッシュシステム",電子情報通信学会 2005年ソサイエティ大会、B−6−103,2005年9月
前述した従来のシステムにおいて、キャッシュ連携ルータは、URL(Uniform Resource Locator)の固定長のハッシュ値に基づいて、コンテンツがキャッシュされているか否かを判定している。一方、キャッシュ制御サーバでは、可変長のURLに基づいて実際にコンテンツをキャッシュしているキャッシュサーバを判定している。そのため、コンテンツ要求数が増加すると、可変長のURLデータを処理しているキャッシュ制御サーバが、キャッシュ連携ルータより先に律速する。よって、従来技術の構成では、さらなる大規模化への対応が困難である。
一方、従来のキャッシュシステムでは、キャッシュ連携ルータよりキャッシュ制御サーバが先に律速するため、一台のキャッシュ連携ルータに対して、キャッシュを管理する複数のキャッシュ管理サーバを接続することによって、大規模なシステムを実現することが考えられる。しかし、特定のキャッシュ管理サーバに負荷が集中し、そのキャッシュ管理サーバの処理能力によってシステム全体の処理能力が決定される場合がある。
そこで本発明では、キャッシュを管理する複数のキャッシュ管理サーバを導入でき、前述した従来のキャッシュシステムより、さらに大規模な網に適用可能なキャッシュシステムを提供することを目的とする。
また本発明の他の目的は、導入された複数のキャッシュ管理サーバのうち、特定のキャッシュ管理サーバに負荷が集中しないようにリソースを制御することを目的とする。
本発明の代表的な一形態によると、キャッシュシステムは、少なくとも第1のキャッシュサーバと第2のキャッシュサーバとを含み、コンテンツを蓄積する複数のキャッシュサーバ、前記キャッシュサーバに蓄積されるコンテンツの情報を管理する複数のキャッシュ管理サーバ、前記複数のキャッシュサーバ及び前記複数のキャッシュ管理サーバの負荷情報を管理する負荷監視サーバ、及び、ユーザから要求されるコンテンツが前記キャッシュサーバに蓄積されているか否かを判断するルータを備える。前記負荷監視サーバは、前記複数のキャッシュサーバの負荷情報を取得し、前記取得した負荷情報を前記各キャッシュ管理サーバへ通知する。また、前記負荷監視サーバは、前記複数のキャッシュ管理サーバの負荷情報を取得し、前記取得した負荷情報を前記各キャッシュサーバへ通知する。前記第1のキャッシュサーバは、前記ユーザから送信されたコンテンツをキャッシュしていない場合、そのコンテンツ要求を前記ルータに転送する。前記ルータは、前記キャッシュ管理サーバによって管理されるコンテンツの情報を保持し、前記転送されたコンテンツの要求を受信すると、前記保持されたコンテンツの情報を参照して、要求されたコンテンツの情報を管理するキャッシュ管理サーバが存在するか否かを判定し、前記要求されたコンテンツの情報を管理するキャッシュ管理サーバが存在すると、前記受信したコンテンツの要求を当該コンテンツの情報を管理するキャッシュ管理サーバへ転送する。前記各キャッシュ管理サーバは、前記キャッシュシステム内に蓄積されているコンテンツの情報を分担して管理し、前記ルータから転送されたコンテンツの要求を受信すると、前記要求されたコンテンツを蓄積している前記キャッシュサーバのうち処理負荷が最も低い第2のキャッシュサーバを選択し、前記第1のキャッシュサーバへ前記要求されたコンテンツを転送する指示を前記選択された第2のキャッシュサーバに送信する。前記第2のキャッシュサーバは、前記転送指示を受信すると、前記要求されたコンテンツを前記第1のキャッシュサーバへ転送する。前記第1のキャッシュサーバは、前記転送されたコンテンツを受信すると、前記受信したコンテンツを蓄積し、前記蓄積されたコンテンツの識別子と前記第1のキャッシュサーバの識別子を、前記蓄積されたコンテンツの情報を管理するキャッシュ管理サーバのうち、負荷が最小のキャッシュ管理サーバへ通知する。
本発明の一形態によれば、新しくコンテンツをキャッシュしたキャッシュサーバは、負荷が最小のキャッシュ管理サーバにコンテンツをキャッシュしたことを登録することにより、キャッシュ管理サーバの負荷を平滑化することができ、キャッシュシステムのリソースを最大限に利用可能な分散キャッシュシステムを提供することができる。
次に、本発明の実施の形態を、図面を参照して説明する。
(第1の実施の形態)
第1の実施の形態の分散キャッシュシステムでは、新たにコンテンツをキャッシュしたキャッシュサーバは、負荷が最小のキャッシュ管理サーバにコンテンツをキャッシュしたことを登録する。
図1は、第1の実施の形態の分散キャッシュシステムの構成の一例を示すブロック図である。
第1の実施の形態の分散キャッシュシステムは、オリジンサーバ1、コア網2、アクセス網10及び複数のユーザ端末15−1〜15−4を備える。
オリジンサーバ1は、その詳細な構成の図示は省略するが、CPU部、プログラム蓄積部(ROM)、メインメモリ(RAM)、ディスクメモリ(ハードディスクドライブ)及び入出力部(インターフェース)を備えるコンピュータであり、ディスクメモリに格納されているオリジナルコンテンツを、ユーザ端末からの要求に従って提供する。また、オリジンサーバ1は、コア網2に接続される。一方、ユーザ端末15−1等は、アクセス網10に接続される。
アクセス網10は、負荷監視サーバ12、ルータ13−1〜13−2、キャッシュサーバ14−1〜14−2、CDN(Contents Delivery Network)連携ルータ16及びキャッシュ管理サーバ17−1〜17−2を備える。
キャッシュサーバ14−1及び14−2は、図3に示すように、CPU部141、プログラム蓄積部142、メインメモリ143、ディスクメモリ144、入力部145、出力部146及びバス147を備えるコンピュータである。キャッシュサーバ(A)14−1は、オリジンサーバ1からコンテンツを受信してユーザ端末に配信する際、受信したコンテンツをディスクメモリ144に蓄積(キャッシュ)する。
負荷監視サーバ12は、キャッシュサーバ(A)14−1(図3)と同じ構成を備えるコンピュータである。
ルータ13−1〜13−2は、その詳細な構成の図示は省略するが、入出力部およびパケット処理部を備えるデータ転送装置である。
CDN連携ルータ16は、図6に示すように、CPU部161、プログラム蓄積部162、メインメモリ163、ディスクメモリ164、入力部5−1〜5−6、出力部6−1〜6−6、バス167及びスイッチ168を備えるデータ転送装置である。
キャッシュ管理サーバ17−1及び17−2は、キャッシュサーバ(A)14−1(図3)と同じ構成を備えるコンピュータである。
ユーザ端末15−1〜15−4は、その詳細な構成の図示は省略するが、CPU部、プログラム蓄積部、メインメモリ、ディスクメモリ及び入出力部を備えるコンピュータである。ユーザは、ユーザ端末15−1等を使用してコンテンツを要求する。
次に、図2を参照して、第1の実施形態の分散キャッシュシステムの動作を説明する。
例として、ユーザ端末(A)15−1が、URL(Uniform Resource Locator)がhttp://www.123.co.jp/content.htmlであるコンテンツを取得し、その後、別のユーザ端末(C)15−3が同一URLのコンテンツを取得する場合のキャッシュシステムの動作を説明する。
なお、上記URLで特定されるコンテンツは、ユーザ端末(A)15−1が要求する以前には、何れのキャッシュサーバにもキャッシュされていない。また、キャッシュシステムの動作開始時は、各サーバの負荷情報は、所定の初期値(例えば、CPU負荷=”0”)で初期化されている。
始めに、負荷監視サーバ12は、キャッシュ管理サーバ(A)17−1に負荷状態を通知するように要求する。このとき、負荷監視サーバ12は、システム内の全てのキャッシュサーバの負荷状態を、キャッシュ管理サーバ(A)17−1に通知する(901)。送受信される負荷状態は、例えば、各サーバのCPUの負荷状態を用いることができる。
次に、キャッシュ管理サーバ(A)17−1は、負荷監視サーバ12から伝達されたキャッシュサーバの負荷情報を用いて、保持しているキャッシュサーバの負荷情報を更新する。そして、キャッシュ管理サーバ(A)17−1は、自身の負荷情報を負荷監視サーバ12に返信する(902)。
負荷監視サーバ12は、キャッシュ管理サーバ(A)17−1から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(903)。
同様に、負荷監視サーバ12は、キャッシュ管理サーバ(B)17−2に負荷状態を通知するように要求し、システム内の全てのキャッシュサーバの負荷状態を通知する(904)。キャッシュ管理サーバ(B)17−2は、負荷監視サーバ12から伝達されたキャッシュサーバの負荷情報を用いて、保持されているキャッシュサーバの負荷情報を更新し、自身の負荷情報を負荷監視サーバ12に返信する(905)。
負荷監視サーバ12は、キャッシュ管理サーバ(B)17−2から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(906)。
また、負荷監視サーバ12は、キャッシュサーバ(A)14−1に負荷状態を通知するように要求し、システム内の全てのキャッシュ管理サーバの負荷状態を通知する(907)。キャッシュサーバ(A)14−1は、負荷監視サーバ12から伝達されたキャッシュ管理サーバの負荷情報を用いて、保持されているキャッシュ管理サーバの負荷情報を更新し、自身の負荷情報を負荷監視サーバ12に返信する(908)。
負荷監視サーバ12は、キャッシュサーバ(A)14−1から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(909)。
同様に、負荷監視サーバ12は、キャッシュサーバ(B)14−2に負荷状態を通知するように要求し、システム内の全てのキャッシュ管理サーバの負荷状態を通知する(910)。キャッシュサーバ(B)14−2は、負荷監視サーバ12から伝達されたキャッシュ管理サーバの負荷情報を用いて、保持されているキャッシュ管理サーバの負荷情報を更新し、自身の負荷情報を負荷監視サーバ12に返信する(911)。
負荷監視サーバ12は、キャッシュサーバ(B)14−2から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(912)。
前述した901〜912の処理は、定期的(例えば、1分毎)に実行される。
続いて、ユーザ端末(A)15−1が、キャッシュサーバ(A)14−1へ前述した同じURLのコンテンツ(http://www.123.co.jp/content.html)要求を送信する(920)。
キャッシュサーバ(A)14−1は、ユーザ端末(A)15−1から要求されたコンテンツを自分でキャッシュしているか否かを判定する。この時点において、キャッシュサーバ(A)14−1は、ユーザ端末(A)15−1から要求されたコンテンツをキャッシュしていないため、オリジンサーバ1へ当該コンテンツ要求を送信する(921)。
CDN連携ルータ16は、キャッシュサーバ(B)14−2からオリジンサーバ1へ送信されたコンテンツ要求を中継する際に、要求されたコンテンツがキャッシュシステム内にキャッシュされているか否かを判定する(922)。この判定時には、要求されたコンテンツがシステム内にキャッシュされていないので、CDN連携ルータ16は、ミスヒットと判定して、キャッシュサーバ(A)14−1からオリジンサーバ1へ送信されたコンテンツ要求を送信する(923)。なお、キャッシュヒットの場合の動作については、後述する(952)。
オリジンサーバ1は、コンテンツ要求を受信すると、要求されたコンテンツを、CDN連携ルータ16を経由してキャッシュサーバ(A)14−1へ送信する。CDN連携ルータ16は、要求されたコンテンツをオリジンサーバ1から受信すると、キャッシュサーバ(A)14−1へ転送する(924、925)。
キャッシュサーバ(A)14−1は、オリジンサーバ1から送信されたコンテンツのデータを受信する。オリジンサーバ1から送信されたコンテンツのデータは、キャッシュサーバ(A)14−1にキャッシュされていないので、キャッシュサーバ(A)14−1は、受信したコンテンツのデータをキャッシュする(926)。そして、キャッシュサーバ(A)14−1は、受信したコンテンツのデータを、当該コンテンツを要求したユーザ端末(A)15−1へ送信する(927)。
さらに、キャッシュサーバ(A)14−1は、ユーザ端末(A)15−1が要求したコンテンツをキャッシュしたことを登録するため、キャシュサーバ(A)14−1に設けられたディスクメモリ144に保持されたキャッシュ管理サーバの負荷情報テーブルから、負荷が最小であるキャッシュ管理サーバを検索する(930)。
本実施の形態では、キャッシュ管理サーバ(A)17−1の負荷が最小であるとする。それ故、キャッシュサーバ(A)14−1は、キャッシュしたコンテンツの識別子(例えば、本実施の形態ではURL)と、当該コンテンツをキャッシュしたキャッシュサーバの識別子(例えば、本実施の形態ではIPアドレス)を、負荷が最小であるキャッシュ管理サーバ(A)17−1へ送信して、キャッシュサーバ(A)14−1が当該コンテンツをキャッシュしたことを通知する。さらに、当該コンテンツをキャッシュしたキャッシュサーバの識別子を、キャッシュ管理サーバ(A)17−1が管理していることを保持する(931)。
キャッシュ管理サーバ(A)17−1は、キャッシュサーバ(A)14−1から送信された、キャッシュコンテンツの識別子と当該コンテンツをキャッシュしたキャッシュサーバの識別子を受信すると、受信した識別子で特定されるコンテンツが新たなキャッシュ情報か否かを判定する(932)。ここで、受信した識別子は新たなコンテンツに関する情報であるため、キャッシュ管理サーバ(A)17−1は、新たに蓄積されたコンテンツの識別子と当該コンテンツをキャッシュしたキャッシュサーバの識別子とのペアをキャッシュコンテンツ管理テーブル400(図9参照)に保持する(933)。
また、キャッシュ管理サーバ(A)17−1は、キャッシュされたコンテンツの識別子のハッシュ値と、当該コンテンツをキャッシュしたキャッシュサーバを管理するキャッシュ管理サーバの識別子を、CDN連携ルータ16に送信する(934)。
CDN連携ルータ16は、キャッシュ管理サーバ(A)17−1から送信された、キャッシュコンテンツ識別子のハッシュ値と、当該コンテンツをキャッシュしたキャッシュサーバを管理するキャッシュ管理サーバの識別子とのペアを、キャッシュ有無判定テーブル300(図7参照)に保持する(935)。
次に、前述した処理の完了後に、ユーザ端末(C)15−3が、前述したコンテンツと同一のコンテンツ、すなわち、http://www.123.co.jp/content.htmlで示されるコンテンツを要求した場合の動作シーケンスを説明する。
まず、ユーザ端末(C)15−3が、キャッシュサーバ(B)14−2へ当該URLのコンテンツ(http://www.123.co.jp/content.html)要求を送信する(950)。
キャッシュサーバ(B)14−2は、ユーザ端末(C)15−3から要求されたコンテンツをキャッシュしているか否かを判定する。このとき、キャッシュサーバ(B)14−2は、ユーザ端末(C)15−3から要求されたコンテンツをキャッシュしていないため、オリジンサーバ1へ当該コンテンツ要求を送信する(951)。
CDN連携ルータ16は、キャッシュサーバ(B)14−2からオリジンサーバ1へ送信されたコンテンツ要求を中継する際に、要求されたコンテンツがキャッシュシステム内にキャッシュされているか否かを判定する(952)。この判定時に、当該コンテンツがシステム内(キャッシュサーバ(A)14−1)にキャッシュされているので、CDN連携ルータ16は、キャッシュヒットと判定し、キャッシュサーバ(B)14−2からオリジンサーバ1へ送信されたコンテンツ要求を転送しない。
続いて、CDN連携ルータ16は、キャッシュヒットと判定したので、前記キャッシュ有無判定テーブル300より、当該コンテンツをキャッシュしているキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバを検索する。そして、検索結果に基づいて特定されたキャッシュ管理サーバ(A)17−1へ、前記受信したコンテンツ要求を送信する(953)。
キャッシュ管理サーバ(A)17−1は、CDN連携ルータ16から送信されたコンテンツ要求を受信すると、キャッシュコンテンツ管理テーブル400から受信したコンテンツをキャッシュしているキャッシュサーバを検索する。受信したコンテンツを複数のキャッシュサーバがキャッシュしている場合は、処理負荷が最小のキャッシュサーバが選択される。ここでは、キャッシュサーバ(A)14−1が選択される(954)。
そして、キャッシュ管理サーバ(A)17−1は、キャッシュサーバ(A)14−1に対して、当該コンテンツをキャッシュサーバ(B)14−2に送信するように指示する(955)。
キャッシュサーバ(A)14−1は、キャッシュ管理サーバ(A)17−1からの当該コンテンツ転送指示を受信すると、受信したコンテンツ転送指示によって特定されるコンテンツをキャッシュサーバ(B)14−2に送信する。また、この時、受信したコンテンツ転送指示によって特定されるコンテンツをキャッシュしているキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバが、キャッシュ管理サーバ(A)17−1であることを示す識別子も合わせてキャッシュサーバ(B)14−2に送信する(956)。
本実施例では、キャッシュサーバ(A)14−1は、キャッシュ管理サーバ(A)17−1からの当該コンテンツ転送指示データを伝送したIPパケットに含まれる送信元アドレスに基づいて、前記当該コンテンツをキャッシュしているキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバが、キャッシュ管理サーバ(A)17−1であることを特定する。また別の方法として、キャッシュ管理サーバ(A)17−1が、当該コンテンツ転送指示データを送信する際、当該コンテンツをキャッシュしているキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバを示す情報をあわせて送信することにより、キャッシュ管理サーバ(A)17−1を特定してもよい。
キャッシュサーバ(B)14−2は、キャッシュサーバ(A)14−1から受信したコンテンツをキャッシュする(957)。その後、キャッシュサーバ(B)14−2は、受信したコンテンツを要求元のユーザ端末(C)15−3に送信する(958)。
さらに、キャッシュサーバ(B)14−2は、当該コンテンツの識別子とキャッシュサーバ(B)14−2の識別子を、キャッシュ管理サーバ(A)17−1へ送信して、当該コンテンツをキャッシュしたキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバ(A)へ、キャッシュサーバ(B)14−2も当該コンテンツをキャッシュしたことを通知する。また、キャッシュサーバ(B)14−2は、当該コンテンツをキャッシュしたキャッシュサーバの識別子を、キャッシュ管理サーバ(A)17−1が管理していることを保持する(959)。
キャッシュ管理サーバ(A)17−1は、キャッシュサーバ(B)14−2から当該コンテンツの識別子とキャッシュサーバ(B)14−2の識別子を受信すると、キャッシュコンテンツ管理テーブル400を参照して、当該コンテンツが既にキャッシュされているか否かを判定する(960)。
この時点において、既に当該コンテンツはキャッシュサーバ(A)14−1にてキャッシュされていることが登録されているので、当該コンテンツをキャッシュサーバ(B)14−2もキャッシュしたことを、キャッシュコンテンツ管理テーブル400に登録する(961)。なお、当該コンテンツがキャッシュシステム内にキャッシュされていることは既にCDN連携ルータ16に登録されているので、あらたな登録処理は実行されない。
次に、キャッシュサーバ14−1〜14−2の構成及び動作を説明する。
図3は、第1の実施の形態のキャッシュサーバ(A)14−1の構成を示すブロック図である。
キャッシュサーバ(A)14−1は、前述したように、CPU部141、プログラム蓄積部142、メインメモリ143、ディスクメモリ144、入力部145、出力部146及びバス147を備える。
CPU部141は、キャッシュサーバの動作に必要な演算処理をするプロセッサ、及びプロセッサによって実行される演算処理に必要なプログラムとデータを一時的に保持するRAMを含む。プログラム蓄積部142は、ROMを含み、CPU部141で実行されるキャッシュサーバプログラムを蓄積する。メインメモリ143は、RAMを含み、CPU部141で実行される演算処理に必要なデータを一時的に保持する。
ディスクメモリ144は、ハードディスクドライブを含み、ユーザ端末に配信されるコンテンツを格納する。具体的には、ディスクメモリ144は、キャッシュされたコンテンツ及びキャッシュ管理サーバの負荷情報テーブル(図4参照)を保持する。
入力部145及び出力部146は、アクセス網10に接続されるネットワークインターフェースであり、IPパケットを送受信する。バス147は、データバス及びアドレスバスを含み、CPU部141、プログラム蓄積部142、メインメモリ143、ディスクメモリ144、入力部145及び出力部146を接続して、相互にデータを転送する。
図3には、キャッシュサーバ(A)14−1の構成を図示したが、キャッシュサーバ(B)14−2もキャッシュサーバ(A)14−1と同じ構成を備え、同様に動作する。
図4は、第1の実施の形態のキャッシュ管理サーバ負荷情報テーブル200の構成図である。
キャッシュ管理サーバ負荷情報テーブル200は、キャッシュサーバに設けられたディスクメモリ144に保持される。負荷情報テーブル200には、キャッシュ管理サーバの識別子202とCPUの負荷情報203とをペアにした複数のエントリ201が含まれる。キャッシュ管理サーバの識別子202は、キャッシュ管理サーバに付された一意の識別子であり、本実施の形態では、IPアドレスの他、キャッシュ管理サーバ名が含まれている。CPUの負荷情報203は、キャッシュ管理サーバ識別子202で特定されるキャッシュ管理サーバに備わるCPUの負荷状態を100分率で表したもので、100%が最も負荷が高いことを意味する。
例えば、キャッシュ管理サーバ付加情報テーブル200には、エントリ204に示されるように、IPアドレスが192.168.3.30であるキャッシュ管理サーバ(A)17−1のCPU負荷が30%であることが記憶されている。
次に、キャッシュサーバ(A)14−1の動作を図5を参照して説明する。なお、キャッシュサーバ(A)14−1の動作を説明するが、キャッシュサーバ(B)14−2もキャッシュサーバ(A)14−1と同じ動作をする。
図5は、第1の実施の形態のキャッシュサーバプログラムの動作を示すフローチャートである。
始めに、キャッシュサーバ(A)14−1は、プログラム蓄積部142に保持された処理プログラムをCPU部141にロードし、キャッシュサーバとして動作するための処理を開始する(ステップ210)。すなわち、CPU部141がキャッシュサーバプログラムを実行することによって、以下に説明する処理が行われる。
キャッシュサーバ(A)14−1がキャッシュサーバとして動作を開始すると、IPパケットデータを受信したか否かを判断する(ステップ211)。
ステップ211において、IPパケットを受信していないと判断すると、引き続きステップ211の処理を繰り返す。一方、ステップ211において、IPパケットデータを受信したと判断すると、受信データが負荷監視サーバ12から送信されたデータか否かを判断する(ステップ212)。
ステップ212において、受信データが負荷監視サーバ12から送信されたデータであると判断すると、受信データはキャッシュ管理サーバの負荷情報又はキャッシュサーバの負荷を要求するコマンドなので、受信したキャッシュ管理サーバの負荷情報を、ディスクメモリ143に保持されるキャッシュ管理サーバ負荷情報テーブル200に登録する(ステップ213)。その後、自キャッシュサーバのCPUの負荷を測定し、負荷監視サーバ12へ送信する(ステップ214)。その後、ステップ211に戻り、引き続き処理を実行する。
一方、ステップ212において、受信データが負荷監視サーバ12から送信されたデータではないと判断すると、ユーザ端末から送信されたデータであるか否かを判断する(ステップ215)。
ステップ215において、受信データがユーザ端末から送信されたデータであると判断すると、受信データはコンテンツ要求なので、ユーザ端末から要求されたコンテンツをキャッシュしているか否かを判断する(ステップ216)。ステップ216において、当該コンテンツをキャッシュしていると判断すると、キャッシュした当該コンテンツをユーザ端末へ送信する(ステップ217)。その後、ステップ211に戻り、引き続き処理を実行する。
一方、ステップ216において、当該コンテンツをキャッシュしていないと判断すると、オリジンサーバ1に当該コンテンツの要求を送信する(ステップ218)。その後、ステップ211に戻り、引き続き処理を実行する。
また、ステップ215において、受信データがユーザ端末から送信されたデータではないと判断すると、受信データがオリジンサーバ1から送信されたデータであるか否かを判断する(ステップ219)。
ステップ219において、受信データがオリジンサーバ1から送信されたデータであると判断すると、受信データはユーザ端末から要求されたコンテンツのデータなので、受信したコンテンツのデータをキャッシュし(ステップ220)、受信したコンテンツのデータをユーザ端末へ送信する(ステップ221)。さらに、キャッシュ管理サーバ負荷情報テーブル200から負荷が最小であるキャッシュ管理サーバを検索し(ステップ222)、キャッシュしたコンテンツ識別子及び自キャッシュサーバの識別子を、前記検索の結果得られたキャッシュ管理サーバへ送信する(ステップ223)。その後、ステップ211に戻り、引き続き処理を実行する。
一方、ステップ219において、オリジンサーバ1から送信されたデータではないと判断すると、受信データが他のキャッシュサーバから送信されたデータであるか否かを判断する(ステップ224)。
ステップ224において、受信データが他のキャッシュサーバから送信されたデータであると判断すると、受信データはユーザ端末から要求されたコンテンツのデータなので、受信したコンテンツをキャッシュし(ステップ225)、受信したコンテンツをユーザ端末へ送信する(ステップ226)。さらに、キャッシュしたコンテンツの識別子と自キャッシュサーバの識別子を、当該コンテンツをキャッシュしているキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバへ送信する(ステップ227)。その後、ステップ211に戻り、引き続き処理を実行する。
一方、ステップ224において、受信データが他のキャッシュサーバから送信されたデータではないと判断すると、受信データがキャッシュ管理サーバから送信されたデータであるか否かを判断する(ステップ228)。
ステップ228において、受信データがキャッシュ管理サーバから送信されたデータであると判断すると、受信データはコンテンツの転送要求なので、キャッシュ管理サーバから送信されたデータに含まれる識別子で特定されるコンテンツをユーザ端末へ送信する(ステップ229)。その後、ステップ211に戻り、引き続き処理を実行する。
一方、ステップ228において、受信データがキャッシュ管理サーバから送信されたデータではないと判断すると、受信データはキャッシュサーバでは処理できないデータなので、受信データを破棄し、ステップ211に戻り、引き続き処理を実行する。
次に、CDN連携ルータ16の構成及び動作を説明する。
図6は、第1の実施の形態のCDN連携ルータ16の構成を示すブロック図である。
CDN連携ルータ16は、CPU部161、プログラム蓄積部162、メインメモリ163、ディスクメモリ164、入力部5−1〜5−6、出力部6−1〜6−6、バス167及びスイッチ168を備える。
CPU部161は、CDN連携ルータ16の動作に必要なデータ処理をするプロセッサ、及びプロセッサによって実行される演算処理に必要なプログラムとデータを一時的に保持するRAMを含む。プログラム蓄積部162は、ROMを含み、CPU部161で実行されるプログラム(特に、CDN連携ルータプログラム)を蓄積する。
メインメモリ163は、RAMを含み、CPU部161で実行されるデータ処理に必要なデータを一時的に保持する。ディスクメモリ164は、ハードディスクドライブを含み、コンテンツの転送に必要な情報(例えば、キャッシュコンテンツのリスト、キャッシュ有無判定テーブル(図7参照))を格納する。
入力部5−1〜5−6及び出力部6−1〜6−6は、スイッチ168に接続されており、アクセス網10に接続されるネットワークインターフェースである。バス167は、データバス及びアドレスバスを含み、CPU部161、プログラム蓄積部162、メインメモリ163及びディスクメモリ164を接続して、相互にデータを転送する。
スイッチ168は、入力部5−1〜5−6から入力されたパケットの宛先に対応する出力部6−1〜6−6に出力する。
図7は、第1の実施の形態のキャッシュ有無判定テーブル300の構成図である。
このキャッシュ有無判定テーブル300は、CDN連携ルータ16に設けられたディスクメモリ164に保持される。
キャッシュ有無判定テーブル300は、キャッシュサーバに設けられたディスクメモリ164に保持される。キャッシュ有無判定テーブル300には、コンテンツ識別子のハッシュ値302と、キャッシュ管理サーバの識別子303とをペアにした複数のエントリ301が含まれる。コンテンツ識別子のハッシュ値302は、システム内にキャッシュしたコンテンツ識別子のハッシュ値である。コンテンツの識別子としてコンテンツの所在を示すURLが用いられる。キャッシュ管理サーバの識別子303は、キャッシュ管理サーバに付された一意の識別子であり、本実施の形態では、IPアドレスの他、キャッシュ管理サーバ名が含まれている。
例えば、キャッシュ有無判定テーブル300には、エントリ304に示されるように、ハッシュ値が0xA1B1C1D1で識別されるコンテンツを実際にキャッシュしているサーバを検索する場合、キャッシュ管理サーバ(A)17−1に問い合わせる必要があることが記憶されている。すなわち、当該コンテンツの要求はキャッシュ管理サーバ(A)17−1に転送する必要がある。
なお、本実施の形態では、コンテンツ識別子(URL)のハッシュ値302とキャッシュ管理サーバの識別子303(アドレス)とのペアを管理したが、コンテンツ識別子(URL)そのものとキャッシュ管理サーバの識別子303(アドレス)とのペアを管理してもよい。その場合、コンテンツ識別子(URL)によって、要求されるコンテンツがシステム内にキャッシュされているか否かが判断される。
図8は、第1の実施の形態のCDN連携ルータ16のCPU部161にて実行されるCDN連携ルータプログラムの動作を示すフローチャートである。
始めに、CDN連携ルータ16は、プログラム蓄積部162に保持された処理プログラムをCPU部161にロードし、CDN連携ルータ16として動作するための処理を開始する(ステップ310)。すなわち、CPU部161がCDN連携ルータプログラムを実行することによって、以下に説明する処理が行われる。
CDN連携ルータ16が動作を開始すると、オリジンサーバ1宛のIPパケットをCPU部161に転送するよう全ての入力部を設定する(ステップ320)。
その後、IPパケットデータを受信したか否かを判断する(ステップ311)。
ステップ311において、IPパケットデータを受信していないと判断すると、引き続きステップ311の処理を繰り返す。一方、ステップ311において、IPパケットデータを受信したと判断すると、受信データがキャッシュサーバから送信されたデータか否かを判断する(ステップ312)。
ステップ312において、受信データがキャッシュサーバから送信されたデータであると判断すると、受信データはコンテンツの要求なので、キャッシュ有無判定テーブル300を参照し、要求されたコンテンツがシステム内にキャッシュされているか否かを判断する(ステップ313)。
ステップ313において、要求されたコンテンツがキャッシュシステム内にキャッシュされていると判断すると、当該コンテンツを実際にキャッシュしているキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバへ、当該コンテンツ要求を送信する(ステップ314)。その後、ステップ311に戻り、引き続き処理を実行する。
一方、ステップ313において、要求されたコンテンツがキャッシュシステム内にキャッシュされていないと判断すると、当該コンテンツ要求をオリジンサーバ1に送信する(ステップ315)。その後、ステップ311に戻り、引き続き処理を実行する。
また、ステップ312において、受信データがキャッシュサーバから送信されたデータではないと判断すると、受信データがオリジンサーバ1から送信されたデータあるか否かを判断する(ステップ316)。ステップ316において、受信データがオリジンサーバ1から送信されたデータであると判断すると、受信データはユーザ端末から要求されたコンテンツのデータなので、受信したコンテンツのデータを要求元のキャッシュサーバへ送信する(ステップ317)。その後、ステップ311に戻り、引き続き処理を実行する。
一方、ステップ316において、受信データがオリジンサーバ1から送信されたデータではないと判断すると、キャッシュ管理サーバから送信されたデータであるか否かを判断する(ステップ318)。
ステップ318において、受信データがキャッシュ管理サーバから送信されたデータであると判断すると、受信データはキャッシュ管理サーバの登録要求なので、受信データからキャッシュされたコンテンツのハッシュ値と当該コンテンツを実際にキャッシュしているキャッシュサーバの識別子とを抽出する。そして、抽出されたコンテンツのハッシュ値とキャッシュ管理サーバの識別子を、キャッシュ有無判定テーブル300に登録する(ステップ319)。
一方、ステップ318において、受信データがキャッシュ管理サーバから送信されたデータではないと判断すると、ステップ311に戻り、引き続き処理を実行する。
次に、キャッシュ管理サーバ17−1〜17−2の構成及び動作を説明する。
キャッシュ管理サーバ17−1及び17−2は、前述したように、キャッシュサーバ(A)14−1(図3)と同じ構成を備える。具体的には、各キャッシュ管理サーバ17−1及び17−2は、CPU部、プログラム蓄積部(ROM)、メインメモリ(RAM)、ディスクメモリ(HDD)、入力部及び出力部を備え、これらがバスによって接続されているコンピュータである。
キャッシュ管理サーバ17−1及び17−2は、キャッシュされたコンテンツの識別子と、そのコンテンツをキャッシュしているキャッシュサーバの識別子のリストを管理する。
CPU部は、キャッシュサーバの動作に必要な演算処理をするプロセッサ、及びプロセッサによって実行される演算処理に必要なプログラムとデータを一時的に保持するRAMを含む。プログラム蓄積部は、ROMを含み、CPU部で実行されるキャッシュサーバプログラムを蓄積する。メインメモリは、RAMを含み、CPU部で実行される演算処理に必要なデータを一時的に保持する。
ディスクメモリは、ハードディスクドライブを含み、ユーザ端末に配信されるコンテンツを格納する。具体的には、ディスクメモリは、キャッシュされたコンテンツ及びキャッシュコンテンツ管理テーブル(図9参照)を保持する。
入力部及び出力部は、アクセス網10に接続されるネットワークインターフェースであり、IPパケットを送受信する。
図9は、第1の実施の形態のキャッシュコンテンツ管理テーブル400の構成図である。
キャッシュコンテンツ管理テーブル400は、キャッシュ管理サーバに設けられたディスクメモリに保持される。キャッシュコンテンツ管理テーブル400には、キャッシュコンテンツの識別子402と、キャッシュサーバリスト403とをペアにした複数のエントリ401が含まれる。
キャッシュコンテンツの識別子402は、コンテンツの所在を示すURLである。キャッシュサーバリスト403は、当該コンテンツをキャッシュしているキャッシュサーバの識別子及びそのキャッシュサーバのCPUの負荷情報を含む。キャッシュサーバの識別子は、キャッシュサーバに付された一意の識別子であり、本実施の形態では、IPアドレスの他、キャッシュサーバ名が含まれている。キャッシュサーバのCPUの負荷情報は、キャッシュサーバ識別子で特定されるキャッシュサーバに備わるCPUの負荷状態を100分率で表したもので、100%が最も負荷が高いことを意味する。
例えば、キャッシュコンテンツ管理テーブル400には、エントリ404に示されるように、http://www.123.co.jp/content.htmlで識別されるコンテンツを、キャッシュサーバ(A)14−1及びキャッシュサーバ(B)14−2がキャッシュしていることを示す。また、キャッシュサーバ(A)14−1のCPUの負荷が25%であり、キャッシュサーバ(B)14−2のCPUの負荷が35%であることが記憶されている。
なお、第1の実施の形態では、コンテンツのURL、キャッシュサーバの識別子及びCPUの負荷情報を一つのテーブルに含めたが、コンテンツのURL及びキャッシュサーバの識別子を一つのテーブルにし、キャッシュサーバの識別子及びCPUの負荷情報を別のテーブルにしてもよい。
図10は、第1の実施の形態のキャッシュ管理サーバプログラムのフローチャートである。
始めに、各キャッシュ管理サーバ17−1〜17−2は、プログラム蓄積部172に保持された処理プログラムをCPU部にロードし、キャッシュ管理サーバとして動作するための処理を開始する(ステップ410)。すなわち、キャッシュ管理サーバのCPU部がキャッシュ管理サーバプログラムを実行することによって、以下に説明する処理が行われる。
キャッシュ管理サーバが動作を開始すると、IPパケットデータを受信したか否かを判断する(ステップ411)。
ステップ411において、IPパケットデータを受信していないと判断すると、引き続きステップ411の処理を繰り返す。一方、ステップ411において、IPパケットデータを受信したと判断すると、受信データが負荷監視サーバ12から送信されたデータか否かを判断する(ステップ412)。
ステップ412において、受信データが負荷監視サーバ12から送信されたデータであると判断すると、受信データはキャッシュサーバの負荷情報なので、受信したキャッシュサーバの負荷情報を、ディスクメモリ173に保持されたキャッシュコンテンツ管理テーブル400に登録する(ステップ413)。その後、自キャッシュ管理サーバのCPUの負荷を測定し、負荷監視サーバ12へ送信する(ステップ414)。その後、ステップ411に戻り、引き続き処理を実行する。
ステップ412において、受信データが負荷監視サーバ12から送信されたデータではないと判断すると、受信データがキャッシュサーバから送信されたデータであるか否かを判断する(ステップ415)。
ステップ415において、受信データがキャッシュサーバから送信されたデータであると判断すると、新たにコンテンツがキャッシュされたか否かを判断する(ステップ416)。
ステップ416において、新たにコンテンツがキャッシュされたと判断すると、新たにキャッシュされたコンテンツの識別子402と当該コンテンツをキャッシュしたキャッシュサーバの識別子403とを、キャッシュコンテンツ管理テーブル400に登録する(ステップ417)。その後、新たにキャッシュされたコンテンツの識別子と、実際に当該コンテンツをキャッシュしているキャッシュサーバの識別子のリストを管理するキャッシュ管理サーバの識別子とがペアとなった情報を、CDN連携ルータ16に送信する(ステップ418)。
一方、ステップ416において、新たにコンテンツがキャッシュされたのではないと判断すると、キャッシュコンテンツ管理テーブル400において、当該コンテンツをキャッシュしているキャッシュサーバの追加する登録をする(ステップ419)。その後、ステップ411に戻り、引き続き処理を実行する。
また、ステップ415において、キャッシュサーバから送信されたデータではないと判断すると、受信データがCDN連携ルータ16から送信されたデータか否かを判断する(ステップ420)。
ステップ420において、受信データがCDN連携ルータ16から送信されたデータであると判断すると、キャッシュコンテンツ管理テーブル400を参照し、要求されたコンテンツをキャッシュしているキャッシュサーバのうち負荷が最小のキャッシュサーバを選択する(ステップ421)。そして、ステップ421において選択されたキャッシュサーバに対して、要求されたコンテンツを要求元のキャッシュサーバへ転送するよう指示する(ステップ422)。その後、ステップ411に戻り、引き続き処理を実行する。
また、ステップ420において、CDN連携ルータ16から送信されたデータではないと判断すると、受信データはキャッシュ管理サーバでは処理できないデータなので、受信データを破棄し、ステップ411に戻り、引き続き処理を実行する。
次に、負荷監視サーバ12の構成及び動作を説明する。
負荷監視サーバ12は、前述したように、キャッシュサーバ(A)14−1(図3)と同じ構成を備える。具体的には、負荷監視サーバ12は、CPU部、プログラム蓄積部(ROM)、メインメモリ(RAM)、ディスクメモリ(HDD)、入力部、出力部及びバスを備えるコンピュータであり、キャッシュ管理サーバ17−1〜17−2及びキャッシュサーバ14−1〜14−2から負荷の情報を取得し、これらのサーバの負荷状態を監視する。
CPU部は、負荷監視サーバ12の動作に必要な演算処理をするプロセッサ、及びプロセッサによって実行される演算処理に必要なプログラムとデータを一時的に保持するRAMを含む。プログラム蓄積部は、ROMを含み、CPU部で実行される負荷監視サーバプログラムを蓄積する。メインメモリは、RAMを含み、CPU部で実行される演算処理に必要なデータを一時的に保持する。キャッシュサーバ負荷情報テーブル(図11参照)及びキャッシュ管理サーバ負荷情報テーブル550を保持する。
入力部及び出力部は、アクセス網10に接続されるネットワークインターフェースであり、IPパケットを送受信する。
図11は、第1の実施の形態のキャッシュサーバ負荷情報テーブル500の構成図である。
キャッシュサーバ負荷情報テーブル500は、負荷監視サーバ12に設けられたディスクメモリに保持される。キャッシュサーバ負荷情報テーブル500には、キャッシュサーバの識別子502とCPUの負荷情報503とをペアにした複数のエントリ501が含まれる。キャッシュサーバの識別子502は、キャッシュサーバに付された一意の識別子であり、本実施の形態では、IPアドレスの他、キャッシュサーバ名が含まれている。CPUの負荷情報503は、キャッシュサーバ識別子502で特定されるキャッシュサーバに備わるCPUの負荷状態を100分率で表したもので、100%が最も負荷が高いことを意味する。
例えば、キャッシュ管理サーバ付加情報テーブル500には、エントリ504に示されるように、IPアドレスが192.168.1.10であるキャッシュサーバ(A)17−1のCPU負荷が25%であることが記憶されている。
前述したように、負荷監視サーバ12に設けられたディスクメモリにはキャッシュ管理サーバの負荷情報テーブル550も保持されている。負荷監視サーバ12に保持されるキャッシュ管理サーバの負荷情報テーブル550は、キャッシュサーバの負荷情報テーブル200(図4)と同じ構成である。
キャッシュ管理サーバ負荷情報テーブル550には、キャッシュ管理サーバの識別子とCPUの負荷情報とをペアにした複数のエントリが含まれる。キャッシュ管理サーバの識別子は、キャッシュ管理サーバに付された一意の識別子である。CPUの負荷情報は、キャッシュ管理サーバ識別子で特定されるキャッシュ管理サーバに備わるCPUの負荷状態を100分率で表した情報である。
図12は、第1の実施の形態の負荷監視サーバプログラムのフローチャートである。
始めに、負荷監視サーバ12は、プログラム蓄積部に保持した処理プログラムをCPU部121にダウンロードし、負荷監視サーバ12の動作処理を開始する(ステップ610)。すなわち、負荷監視サーバ12のCPU部が負荷監視サーバプログラムを実行することによって、以下に説明する処理が行われる。
負荷監視サーバ12が動作を開始すると、全てのキャッシュサーバの負荷情報を、全てのキャッシュ管理サーバに通知したか否かを判断する(ステップ611)。
ステップ611において、全てのキャッシュサーバの負荷情報の、全てのキャッシュ管理サーバに対する通知が完了していないと判断すると、キャッシュサーバの負荷情報を通知していないキャッシュ管理サーバを選択し、選択されたキャッシュ管理サーバへ、全てのキャッシュサーバのCPUの負荷情報を送信する。また、キャッシュサーバの負荷情報を送信する際に、宛先となるキャッシュ管理サーバのCPUの負荷情報を返信する指示をあわせて送信する(ステップ612)。具体的には、キャッシュサーバの負荷情報を送信するデータ内にキャッシュ管理サーバのCPUの負荷情報の返信指示を組み込む。
その後、データを受信したか否かを判断する(ステップ613)。ステップ613において、データを受信していないと判断すると、引き続きステップ613の処理を繰り返す。
一方、ステップ613において、データを受信したと判断すると、受信データがCPUの負荷情報を要求したキャッシュ管理サーバから送信されたデータか否かを判断する(ステップ614)。
ステップ614において、受信データがCPUの負荷情報を要求したキャッシュ管理サーバから送信されたデータであると判断すると、受信データはキャッシュ管理サーバのCPUの負荷情報なので、受信した負荷情報をキャッシュ管理サーバ負荷情報テーブル550に登録する(ステップ615)。その後、ステップ611に戻り、引き続き処理を実行する。
また、ステップ611において、全てのキャッシュサーバの負荷情報の、全てのキャッシュ管理サーバに対する通知が完了したと判断すると、全てのキャッシュ管理サーバの負荷情報を、全てのキャッシュサーバに通知したか否かを判断する(ステップ616)。
ステップ616において、全てのキャッシュ管理サーバの負荷情報の、全てのキャッシュサーバに対する通知が完了していないと判断すると、キャッシュ管理サーバの負荷情報を通知していないキャッシュサーバを選択し、選択されたキャッシュサーバへ、全てのキャッシュ管理サーバのCPUの負荷情報を送信する。また、キャッシュ管理サーバの負荷情報を送信する際に、宛先となるキャッシュサーバのCPUの負荷情報を返信する指示をあわせて送信する(ステップ617)。具体的には、キャッシュ管理サーバの負荷情報を送信するデータ内にキャッシュサーバのCPUの負荷情報の返信指示を組み込む。
その後、データを受信したかを判断する(ステップ618)。ステップ618において、データを受信していないと判断すると、引き続きステップ618の処理を繰り返す。
一方、ステップ618において、データを受信したと判断すると、受信データがCPUの負荷情報を要求したキャッシュサーバから送信されたデータか否かを判断する(ステップ619)。
ステップ619において、受信データがCPUの負荷情報を要求したキャッシュサーバから送信されたデータであると判断すると、受信データはキャッシュサーバのCPUの負荷情報なので、受信した負荷情報をキャッシュサーバ負荷情報テーブル500に登録する(ステップ620)。
また、ステップ616において、全てのキャッシュ管理サーバの負荷情報を、全てのキャッシュサーバに通知し終えたと判断すると、所定の時間だけ待機する(ステップ621)。その後、ステップ611に戻り、引き続き処理を実行する。
このようにして、全てのキャッシュサーバの負荷情報の全てのキャッシュ管理サーバに対する通知、及び全てのキャッシュ管理サーバの負荷情報の全てのキャッシュサーバに対する通知が、周期的に実行される。
前述した第1の実施の形態では、キャッシュ管理サーバは、負荷監視サーバ12からの要求に基づいて、自身のCPUの負荷情報を送信しているが、負荷監視サーバ12からの要求に基づかずに、独自のタイミングで自身のCPUの負荷情報を送信してもよい。また、同様に、キャッシュサーバも、負荷監視サーバ12からの要求に基づかずに、独自のタイミングで自身のCPUの負荷情報を送信してもよい。
すなわち、第1の実施の形態で説明したシーケンス(図2)では、負荷監視サーバ12から負荷情報が送信されるタイミングと、キャッシュ管理サーバ及びキャッシュサーバから負荷情報が送信されるタイミングが整合している。しかし、このようにすると、負荷監視サーバ12から負荷情報が送信されるタイミングと、キャッシュ管理サーバ及びキャッシュサーバから負荷情報が送信されるタイミングが整合しなくなる。
以上説明したように、第1の実施の形態によれば、キャッシュサーバが新たにコンテンツをキャッシュしたとき、負荷が最小のキャッシュ管理サーバを選択して、当該コンテンツをキャッシュしたことを通知することによって、キャッシュ管理サーバにかかる負荷を分散することができる。よって、本実施の形態を適用することによって、大規模な網においてもキャッシュシステムを構築することが可能となる。
また、負荷が最小のキャッシュ管理サーバを動的に選択して、新たにキャッシュしたコンテンツの情報を登録するため、システムを停止することなく新たなキャッシュ管理サーバを追加できる。
(第2の実施の形態)
前述した第1の実施の形態では、負荷監視サーバ12が、キャッシュ管理サーバの負荷情報を送信する際に、キャッシュサーバのCPUの負荷情報を返信する指示をあわせて送信し、キャッシュサーバの負荷情報を送信すると共に、宛先となるキャッシュ管理サーバのCPUの負荷情報を返信する指示を送信している。これに対し、第2の実施の形態では、マルチキャスト配信にて、キャッシュ管理サーバの負荷情報を全てのキャッシュサーバに通知し、また、マルチキャスト配信によって、キャッシュサーバの負荷情報を全てのキャッシュ管理サーバに通知する点において、第1の実施の形態と異なる。
図13は、第2の実施の形態の分散キャッシュシステムの動作を示すシーケンス図である。
第2の実施の形態の処理701〜706は、第1の実施の形態の(図2)の処理901〜906に相当する。また、第2の実施の形態の処理710〜715は、第1の実施の形態の(図2)の処理907〜912に相当する。それ故、これらの第2の実施の形態の処理は、第1の実施の形態の対応する処理と同一である。
始めに、負荷監視サーバ12は、キャッシュ管理サーバ(A)17−1に負荷状態(例えば、CPUの負荷状態)を通知するように要求する(701)。次に、キャッシュ管理サーバ(A)17−1は、自身の負荷情報を負荷監視サーバ12に返信する(702)。負荷監視サーバ12は、キャッシュ管理サーバ(A)17−1から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(703)。
同様に、負荷監視サーバ12は、キャッシュ管理サーバ(B)17−2に負荷状態を通知するように要求する(704)。次に、キャッシュ管理サーバ(B)17−2は、自身の負荷情報を負荷監視サーバ12に返信する(705)。負荷監視サーバ12は、キャッシュ管理サーバ(B)17−2から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(706)。
その後、負荷監視サーバ12は、収集した全てのキャッシュ管理サーバの負荷情報をマルチキャストにて配信する(707)。
CDN連携ルータ16は、キャッシュ管理サーバの負荷情報を受信すると、受信した負荷情報がマルチキャストで送信されているので、受信した負荷情報を、マルチキャストによって、さらにキャッシュサーバ(A)14−1及びキャッシュサーバ(B)14−2に配信する(708、709)。
また、 負荷監視サーバ12は、キャッシュサーバ(A)14−1に負荷状態を通知するように要求する(710)。キャッシュサーバ(A)14−1は、自身の負荷情報を負荷監視サーバ12に返信する(711)。負荷監視サーバ12は、キャッシュサーバ(A)14−1から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(712)。
同様に、負荷監視サーバ12は、キャッシュサーバ(B)14−2に負荷状態を通知するように要求する(713)。キャッシュサーバ(B)14−2は、自身の負荷情報を負荷監視サーバ12に返信する(714)。負荷監視サーバ12は、キャッシュサーバ(B)14−2から負荷情報を受信すると、受信した負荷情報を用いて、保持されている負荷情報を更新する(715)。
その後、負荷監視サーバ12は、収集した全てのキャッシュサーバの負荷情報をマルチキャストにて配信する(716)。
CDN連携ルータ16は、キャッシュサーバの負荷情報を受信すると、受信した負荷情報がマルチキャストで送信されているので、受信した負荷情報を、マルチキャストによって、さらにキャッシュ管理サーバ(A)17−1及びキャッシュ管理サーバ(B)17−2に配信する(717、718)。
これ以後は、図2示す第1の実施の形態の処理920以降と同一の処理が実行され、ユーザ端末から要求されたコンテンツのデータがキャッシュされる。
以上説明したように、第2の実施の形態によれば、キャッシュサーバの負荷をマルチキャストにてキャッシュ管理サーバに通知し、また、キャッシュ管理サーバの負荷をマルチキャストにてキャッシュサーバに通知するので、負荷を管理する負荷監視サーバ12の負荷を軽減することができる。
なお、第2の実施の形態で説明したシーケンス(図13)では、キャッシュ管理サーバは、負荷監視サーバ12からの要求に基づいて、自身のCPUの負荷情報を送信しているが、負荷監視サーバ12からの要求に基づかずに、独自のタイミングで自身のCPUの負荷情報を送信してもよい。また、同様に、キャッシュサーバは、負荷監視サーバ12からの要求に基づいて、自身のCPUの負荷情報を送信しているが、負荷監視サーバ12からの要求に基づかずに、独自のタイミングで自身のCPUの負荷情報を送信してもよい。このようにすると、負荷監視サーバ12から要求を送信する必要がなくなり、負荷監視サーバ12の負荷を軽減することができる。
(第3の実施の形態)
前述した第1及び第2の実施の形態では、負荷監視サーバ12がキャッシュ管理サーバの負荷情報をキャッシュサーバに送信し、キャッシュサーバがキャッシュ管理サーバの負荷情報を保持している。また、負荷監視サーバ12がキャッシュサーバの負荷情報をキャッシュ管理サーバに送信し、キャッシュ管理サーバがキャッシュサーバの負荷情報を保持している。
これに対し、第3の実施の形態では、キャッシュサーバが新たにコンテンツをキャッシュしたことをキャッシュ管理サーバに通知する際、その都度、負荷監視サーバ12に、負荷が最小のキャッシュ管理サーバを問い合わせる。そして、負荷が最小のキャッシュ管理サーバに当該コンテンツをキャッシュしたことを通知する。また、キャッシュ管理サーバは、ユーザから要求されたコンテンツをキャッシュサーバから配信させる際、その都度、負荷監視サーバ12に、当該コンテンツをキャッシュしているキャッシュサーバのうち負荷が最小のキャッシュサーバを問い合わせる。そして、負荷が最小のキャッシュサーバより、当該コンテンツの配信を行うよう指示する。これらの点において、第3の実施の形態は前述した第1及び第2の実施の形態と異なる。
図14は、第3の実施の形態の分散キャッシュシステムの動作を示すシーケンス図である。
なお、第3の実施の形態(図14)において、第1の実施の形態(図2)又は第2の実施の形態(図13)と同じ処理には同じ符号を付し、その説明は省略する。
第3の実施の形態の処理701〜706及び710〜715は、第2の実施の形態の(図13)の同じ番号の処理と同一である。これらの処理によって、負荷監視サーバ12は、キャッシュサーバ14−1及び14−2及びキャッシュ管理サーバ17−1及び17−2から負荷情報を収集する。
これに続く処理920〜927は、第1の実施の形態の(図2)の同じ番号の処理と同一である。これらの処理によって、ユーザ端末15−1から要求されたコンテンツが、キャッシュサーバ(A)14−1にキャッシュされる。
その後、キャッシュサーバ(A)14−1は、新たにコンテンツをキャッシュしたことをキャッシュ管理サーバに通知するため、負荷が最小のキャッシュ管理サーバを、負荷監視サーバ12に問い合わせる(751)。負荷監視サーバ12は、保持されている負荷情報を参照して、キャッシュサーバ(A)14−1に、負荷が最小であるキャッシュ管理サーバの識別子を返信する(752)。
本実施の形態では、負荷監視サーバ12が負荷が最小であるキャッシュ管理サーバを特定したが、負荷監視サーバ12がキャッシュサーバ(A)14−1にキャッシュ監視サーバの負荷情報を送信し、キャッシュサーバ(A)14−1が、受信した負荷情報を参照して、負荷が最小であるキャッシュ管理サーバを特定してもよい。
これに続く処理931〜935は、第1の実施の形態の(図2)の同じ番号の処理と同一である。これらの処理によって、コンテンツをキャッシュしたキャッシュサーバが登録され、当該キャッシュサーバを管理するキャッシュ管理サーバが登録される。
これに続く処理950〜953は、第1の実施の形態の(図2)の同じ番号の処理と同一である。これらの処理によって、ユーザ端末(C)15−3からのコンテンツ要求が、キャッシュ管理サーバ(A)17−1に転送される。
キャッシュ管理サーバ(A)17−1は、CDN連携ルータ16より転送された、コンテンツ要求を受信すると、当該コンテンツをキャッシュしているキャッシュサーバのうち、どのキャッシュサーバの負荷が最も小さいかを、負荷監視サーバ12に問い合わせる(761)。負荷監視サーバ12は、保持されている負荷情報を参照して、キャッシュ管理サーバ(A)17−1に、負荷が最小であるキャッシュサーバの識別子を返信する(762)。
なお、前述したように、負荷が最小であるサーバは負荷監視サーバ12が特定してもよいが、要求元のキャッシュ監視サーバが、キャッシュサーバの負荷情報を取得し、取得した負荷情報に基づいて、負荷が最小であるサーバは負荷監視サーバ12が特定してもよい。
これに続く処理955〜961は、第1の実施の形態の(図2)の同じ番号の処理と同一である。これらの処理によって、キャッシュされたコンテンツがユーザ端末(C)17−3に配信され、キャッシュサーバ(B)14−2にコンテンツがキャッシュされたことが登録される。
以上説明したように、第3の実施の形態によれば、キャッシュサーバが新たにコンテンツをキャッシュした際、その都度、負荷監視サーバ12にキャッシュ管理サーバの負荷状態を確認する。すなわち、キャッシュ管理サーバの現在の負荷情報を必要とするキャッシュサーバのみに、キャッシュ管理サーバの負荷情報を通知するので、ネットワークのトラフィックを軽減することができる。
同様に、キャッシュ管理サーバは、要求されたコンテンツをキャッシュしているキャッシュサーバから配信させる際、その都度、負荷監視サーバ12にキャッシュサーバの負荷状態を確認する。すなわち、キャッシュサーバの現在の負荷情報を必要とするキャッシュ管理サーバのみに、キャッシュサーバの負荷情報を通知するので、ネットワークのトラフィックを軽減することができる。
(第4の実施の形態)
次に、第4の実施の形態として、キャッシュサーバにキャッシュしているコンテンツを削除する動作について説明する。
図15は、第4の実施の形態の分散キャッシュシステムの動作を示すシーケンス図である。図15は、キャッシュしたコンテンツの削除と、新たなコンテンツのキャッシュとの両方の処理を含む。
始めに、キャッシュサーバ(A)14−1は、新たなコンテンツをキャッシュするディスク領域を確保するため、既にキャッシュしているコンテンツを削除する(800)。そして、確保されたディスク領域に、新規コンテンツをキャッシュする(801)。
その後、キャッシュ管理サーバの負荷情報を参照して、負荷が最小のキャッシュ管理サーバを特定する(802)。また、特定されたキャッシュ管理サーバ(A)17−1に、新たにコンテンツをキャッシュしたこと(キャッシュされたコンテンツの識別子及びキャッシュサーバ(A)の識別子)を通知する(803)。
さらに、処理800で削除したコンテンツに関する自キャッシュサーバのキャッシュ登録の削除をキャッシュ管理サーバ(A)17−1に要求する(804)。この削除要求には、キャッシュサーバ(A)14−1の識別子(IPアドレス)と削除したコンテンツの識別子(URL)とが含まれ、当該コンテンツの情報を管理するキャッシュ管理サーバ(A)17−1へ削除要求が送信される。
なお、新たなコンテンツのキャッシュ登録(803)と、削除コンテンツに関するキャッシュ登録削除(804)とを、同一のキャッシュ管理サーバへ通知する場合は、個々に通知せず、両者をあわせて通知してもよい。
キャッシュ管理サーバ(A)17−1は、新たなコンテンツのキャッシュ登録要求を受信すると、新たにキャッシュされたコンテンツが、キャッシュサーバ(A)14−1にキャッシュされたことを、キャッシュコンテンツ管理テーブル400に登録する(805)。また、キャッシュ管理サーバ(A)17−1は、コンテンツのキャッシュ登録削除要求を受信すると、削除されたコンテンツに関するキャッシュサーバ(A)14−1のキャッシュ登録を、キャッシュコンテンツ管理テーブル400より削除する(806)。
さらに、キャッシュ管理サーバ(A)17−1は、新規にコンテンツがキャッシュされたことを登録するため、キャッシュされたコンテンツの識別子のハッシュ値と当該コンテンツの情報を管理するキャッシュ管理サーバの識別子(IPアドレス)を、CDN連携ルータ16に通知して、キャッシュ有無判定テーブル300への登録を要求する(807)。
CDN連携ルータ16は、登録要求を受信すると、前記通知されたコンテンツ識別子のハッシュ値と当該コンテンツの情報を管理するキャッシュ管理サーバの識別子を、キャッシュ有無判定テーブル300に登録する(808)。
前述した処理が実行され、引き続きキャッシュサーバ(B)14−2は、新規のコンテンツをキャッシュするためのディスク領域を確保するため、既にキャッシュしているコンテンツを削除し(809)、確保されたディスク領域に、新規コンテンツをキャッシュする(810)。
その後、キャッシュ管理サーバの負荷情報を参照して、負荷が最小のキャッシュ管理サーバを特定する(811)。また、特定されたキャッシュ管理サーバ(A)17−1に、新たにコンテンツをキャッシュしたこと(キャッシュされたコンテンツの識別子及びキャッシュサーバ(B)の識別子)を通知する(812)。
さらに、前記削除したコンテンツに対する自キャッシュサーバのキャッシュ登録を削除するよう、当該コンテンツの情報を管理するキャッシュ管理サーバ(A)17−1へ、キャッシュサーバ(B)14−2の識別子を通知する(813)。なお、新たなコンテンツのキャッシュ登録(812)と、削除コンテンツに関するキャッシュ登録削除(813)とを、同一のキャッシュ管理サーバへ通知する場合は、個々に通知せず、両者をあわせて通知してもよい。
キャッシュ管理サーバ(A)17−1は、新たなコンテンツのキャッシュ登録要求を受信すると、新たにキャッシュされたコンテンツが、キャッシュサーバ(B)にキャッシュされたことを、キャッシュコンテンツ管理テーブル400に登録する(814)。また、キャッシュ管理サーバ(A)17−1は、コンテンツキャッシュ登録削除要求を受信すると、削除されたコンテンツに関するキャッシュサーバ(B)14−2のキャッシュ登録を、キャッシュコンテンツ管理テーブル400より削除する(815)。
さらに、キャッシュ管理サーバ(A)17−1は、新規にコンテンツがキャッシュされたことを登録するため、キャッシュされたコンテンツの識別子のハッシュ値と当該コンテンツの情報を管理するキャッシュ管理サーバの識別子(IPアドレス)を、CDN連携ルータ16に通知して、キャッシュ有無判定テーブル300への登録を要求する(816)。
また、前記削除(815)を実行した際、登録サーバを削除したコンテンツが、いずれのキャッシュサーバにもキャッシュされていなれば、当該コンテンツに対するキャッシュが存在しなくなったことを示すため、CDN連携ルータ16に対して、削除されたコンテンツの識別子を通知して、キャッシュ有無判定テーブル300からの削除を要求する(817)。なお、新規コンテンツの登録処理(816)と削除されたコンテンツに対する登録削除処理依頼(817)は、通知先であるCDNルータが同じであるため、個々に通知せず、両者をあわせて通知してもよい。
CDN連携ルータ16は、新たにキャッシュされたコンテンツの識別子のハッシュ値と当該コンテンツの情報を管理するキャッシュ管理サーバの識別子を、キャッシュ有無判定テーブル300に登録する(818)。また、前記削除されたコンテンツの識別子に関する情報を、キャッシュ有無判定テーブル300から削除する(819)。
以上説明したように、第4の実施の形態によれば、キャッシュサーバが新たにキャッシュしたコンテンツ情報をキャッシュ管理サーバに通知する処理と、削除したコンテンツ情報をキャッシュ管理サーバに通知する処理とを、一回で送受信することができ、キャッシュサーバとキャッシュ管理サーバ間でのデータ送受信回数を削減して、両サーバの負荷を軽減することができる。
また、キャッシュ管理サーバが、新規にキャッシュされたコンテンツの識別子のハッシュ値と当該コンテンツの情報を管理するキャッシュ管理サーバの情報をCDN連携ルータ16に通知する処理と、削除したコンテンツ情報をCDN連携ルータ16に通知する処理とを、一回で送受信することができ、キャッシュ管理サーバとCDN連携ルータ16間でのデータ送受信回数を削減し、サーバ及びルータの負荷を軽減することができる。
本発明は、複数のユーザが共通のアクセス網を利用し、インターネット上のWebデータ等を受信するネットワークシステムに適用することができ、大規模なユーザに対してキャッシュ機能を提供することができる。
本発明の第1の実施の形態の分散キャッシュシステムのシステム構成図である。 本発明の第1の実施の形態の分散キャッシュシステムの動作を示すシーケンス図である。 本発明の第1の実施の形態のキャッシュサーバの構成図である。 本発明の第1の実施の形態のキャッシュ管理サーバ負荷情報テーブルの構成図である。 本発明の第1の実施の形態のキャッシュサーバの動作を示すフローチャートである。 本発明の第1の実施の形態のCDN連携ルータの構成図である。 本発明の第1の実施の形態のキャッシュ判定テーブルの構成図である。 本発明の第1の実施の形態のCDN連携ルータの動作を示すフローチャートである。 本発明の第1の実施の形態のキャッシュコンテンツ管理テーブルの構成図である。 本発明の第1の実施の形態のキャッシュ管理サーバの動作を示すフローチャートである。 本発明の第1の実施の形態のキャッシュサーバ負荷情報テーブルの構成図である。 本発明の第1の実施の形態の負荷監視サーバの動作を示すフローチャートである。 本発明の第2の実施の形態の分散キャッシュシステムの動作を示すシーケンス図である。 本発明の第3の実施の形態の分散キャッシュシステムの動作を示すシーケンス図である。 本発明の第4の実施の形態の分散キャッシュシステムの動作を示すシーケンス図である。
符号の説明
1 オリジンサーバ
2 コア網
10 アクセス網
12 負荷監視サーバ
13−1、13−2 ルータ
14−1、14−2 キャッシュサーバ
15−1〜14−4 ユーザ端末
16 CDN連携ルータ
17−1、17−2 キャッシュ管理サーバ

Claims (17)

  1. 少なくとも第1のキャッシュサーバと第2のキャッシュサーバとを含み、コンテンツを蓄積する複数のキャッシュサーバ、前記キャッシュサーバに蓄積されるコンテンツの情報を管理する複数のキャッシュ管理サーバ、前記複数のキャッシュサーバ及び前記複数のキャッシュ管理サーバの負荷情報を管理する負荷監視サーバ、及び、ユーザから要求されるコンテンツが前記キャッシュサーバに蓄積されているか否かを判断するルータを備えるキャッシュシステムであって、
    前記負荷監視サーバは、前記複数のキャッシュサーバの負荷情報を取得し、前記取得した負荷情報を前記各キャッシュ管理サーバへ通知し、
    前記ルータは、前記キャッシュ管理サーバによって管理されるコンテンツの情報を保持し、前記ユーザから送信されたコンテンツの要求を受信すると、前記保持されたコンテンツの情報を参照して、要求されたコンテンツの情報を管理するキャッシュ管理サーバが存在するか否かを判定し、前記要求されたコンテンツの情報を管理するキャッシュ管理サーバが存在すると、前記受信したコンテンツの要求を当該コンテンツの情報を管理するキャッシュ管理サーバへ転送し、
    前記各キャッシュ管理サーバは、前記キャッシュシステム内に蓄積されているコンテンツの情報を分担して管理し、前記ルータから転送されたコンテンツの要求を受信すると、前記要求されたコンテンツを蓄積している前記キャッシュサーバのうち処理負荷が最も低い第2のキャッシュサーバを選択し、前記ユーザから送信されたコンテンツの要求を受信した第1のキャッシュサーバへ前記要求されたコンテンツを転送する指示を前記選択された第2のキャッシュサーバに送信し、
    前記第2のキャッシュサーバは、前記転送指示を受信すると、前記要求されたコンテンツを前記第1のキャッシュサーバへ転送し、
    前記第1のキャッシュサーバは、前記転送されたコンテンツを受信すると、前記受信したコンテンツを蓄積し、前記蓄積されたコンテンツの識別子及び前記第1のキャッシュサーバの識別子を、前記蓄積されたコンテンツの情報を管理するキャッシュ管理サーバへ通知することを特徴とするキャッシュシステム。
  2. 前記負荷監視サーバは、前記複数のキャッシュ管理サーバの負荷情報を取得し、前記取得した負荷情報を前記各キャッシュサーバへ通知し、
    前記各キャッシュサーバは、新たにコンテンツを蓄積すると、負荷が最小のキャッシュ管理サーバを特定し、前記蓄積されたコンテンツの識別子及び自キャッシュサーバの識別子を前記特定されたキャッシュ管理サーバへ通知することを特徴とする請求項1に記載のキャッシュシステム。
  3. 前記負荷監視サーバは、
    前記各キャッシュサーバへ、前記キャッシュ管理サーバの負荷情報と共に前記キャッシュサーバの負荷情報の要求を送信し、
    各キャッシュ管理サーバへ、前記キャッシュサーバの負荷情報と共に前記キャッシュ管理サーバの負荷情報の要求を送信することを特徴とする請求項2に記載のキャッシュシステム。
  4. 前記負荷監視サーバは、
    前記収集したキャッシュ管理サーバの負荷情報を、マルチキャストによって、前記複数のキャッシュサーバへ通知し、
    前記収集したキャッシュサーバの負荷情報を、マルチキャストによって、前記複数のキャッシュ管理サーバへ通知することを特徴とする請求項2に記載のキャッシュシステム。
  5. 前記ルータは、
    コンテンツの識別子と、当該コンテンツを蓄積しているキャッシュサーバの識別子を管理するキャッシュ管理サーバの識別子との関係を含むキャッシュ有無判定情報を保持し、
    前記キャッシュ有無判定情報を参照して、前記要求されたコンテンツが前記キャッシュシステム内に蓄積されているか否かを判定し、
    前記判定の結果、前記要求されたコンテンツが前記キャッシュシステム内に蓄積されていれば、前記要求されたコンテンツを蓄積しているキャッシュサーバの情報を管理するキャッシュ管理サーバを特定し、
    前記受信したコンテンツの要求を前記特定されたキャッシュ管理サーバへ転送することを特徴とする請求項1に記載のキャッシュシステム。
  6. 前記ルータは、コンテンツの識別子として、コンテンツの識別子のハッシュ値を保持するすることを特徴とする請求項5に記載のキャッシュシステム。
  7. 前記キャッシュサーバは、新たにコンテンツを蓄積すると、負荷が最小のキャッシュ管理サーバを前記負荷監視サーバに問い合わせ、前記問い合わせの結果に基づいて決定された負荷が最小のキャッシュ管理サーバに、新たにコンテンツをキャッシュしたことを通知し、
    前記キャッシュ管理サーバは、ユーザからコンテンツの要求を受信すると、当該コンテンツをキャッシュしているキャッシュサーバのうち負荷が最小のキャッシュサーバを前記負荷監視サーバに問い合わせ、前記問い合わせの結果に基づいて決定された負荷が最小のキャッシュサーバに、要求されたコンテンツを配信するように指示することを特徴とする請求項1に記載のキャッシュシステム。
  8. 前記キャッシュサーバは、新たに蓄積されたコンテンツの情報の登録要求と、蓄積されたコンテンツの情報の削除要求とを、同一の前記キャッシュ管理サーバへ通知するときは、前記登録要求と共に前記削除要求を通知することを特徴とする請求項1に記載のキャッシュシステム。
  9. 前記キャッシュ管理サーバは、新たに蓄積されたコンテンツの情報の登録要求と、蓄積されたコンテンツの情報の削除要求とを、前記ルータへ通知するときは、前記登録要求と共に前記削除要求を通知することを特徴とする請求項1に記載のキャッシュシステム。
  10. 前記第2のキャッシュサーバは、
    前記受信した転送指示が含まれるパケットのヘッダを参照して、要求されたコンテンツの情報を管理するキャッシュ管理サーバの識別子を取得し、
    前記要求されたコンテンツと共に、前記取得したキャッシュ管理サーバの識別子を、前記第1のキャッシュサーバへ転送することを特徴とする請求項1に記載のキャッシュシステム。
  11. 前記第1のキャッシュサーバは、
    前記転送されたコンテンツと共に、前記キャッシュ管理サーバの識別子を受信すると、
    前記受信したコンテンツを蓄積し、
    前記蓄積されたコンテンツの識別子と前記第1のキャッシュサーバの識別子を、前記受信した識別子で特定されるキャッシュ管理サーバへ通知することを特徴とする請求項10に記載のキャッシュシステム。
  12. 前記キャッシュ管理サーバは、前記要求されたコンテンツの前記第1のキャッシュサーバへの転送指示と共に、前記要求されたコンテンツの情報を管理するキャッシュ管理サーバの識別子を、前記第2のキャッシュサーバへ送信し、
    前記第2のキャッシュサーバは、
    前記受信した転送指示と共に送信された情報を参照して、要求されたコンテンツの情報を管理するキャッシュ管理サーバの識別子を取得し、
    前記要求されたコンテンツと共に、前記取得したキャッシュ管理サーバの識別子を、前記第1のキャッシュサーバへ転送することを特徴とする請求項1に記載のキャッシュシステム。
  13. 前記第1のキャッシュサーバは、
    前記転送されたコンテンツと共に、前記キャッシュ管理サーバの識別子を受信すると、
    前記受信したコンテンツを蓄積し、
    前記蓄積されたコンテンツの識別子と前記第1のキャッシュサーバの識別子を、前記受信した識別子で特定されるキャッシュ管理サーバへ通知することを特徴とする請求項12に記載のキャッシュシステム。
  14. コンテンツを蓄積する複数のキャッシュサーバ、前記キャッシュサーバに蓄積されるコンテンツの情報を管理する複数のキャッシュ管理サーバ、前記複数のキャッシュサーバ及び前記複数のキャッシュ管理サーバの負荷情報を管理する負荷監視サーバ、及び、ユーザから要求されるコンテンツが前記キャッシュサーバに蓄積されているか否かを判断するルータを備えるキャッシュシステムに用いられる負荷監視サーバであって、
    前記複数のキャッシュサーバの負荷情報を取得し、前記取得した負荷情報を前記各キャッシュ管理サーバへ通知し、
    前記複数のキャッシュ管理サーバの負荷情報を取得し、前記取得した負荷情報を前記各キャッシュサーバへ通知することを特徴とする負荷監視サーバ。
  15. 前記各キャッシュサーバへ、前記キャッシュ管理サーバの負荷情報と共に前記キャッシュサーバの負荷情報の要求を送信し、
    各キャッシュ管理サーバへ、前記キャッシュサーバの負荷情報と共に前記キャッシュ管理サーバの負荷情報の要求を送信することを特徴とする請求項14に記載の負荷監視サーバ。
  16. コンテンツを蓄積する複数のキャッシュサーバ、前記キャッシュサーバに蓄積されるコンテンツの情報を管理する複数のキャッシュ管理サーバ、前記複数のキャッシュサーバ及び前記複数のキャッシュ管理サーバの負荷情報を管理する負荷監視サーバ、及び、ユーザから要求されるコンテンツが前記キャッシュサーバに蓄積されているか否かを判断するルータを備えるキャッシュシステムに用いられるキャッシュ管理サーバであって、
    前記キャッシュシステム内に蓄積されているコンテンツの情報を分担して管理し、
    前記ルータから転送されたコンテンツの要求を受信すると、前記負荷監視サーバから取得した情報に基づいて、前記要求されたコンテンツを蓄積している前記キャッシュサーバのうち最も処理負荷が低いキャッシュサーバを選択し、
    前記ユーザから送信されたコンテンツの要求を受信したキャッシュサーバへ前記要求されたコンテンツを転送する指示を前記選択されたキャッシュサーバに送信することを特徴とするキャッシュ管理サーバ。
  17. コンテンツを蓄積する複数のキャッシュサーバ、前記キャッシュサーバに蓄積されるコンテンツの情報を管理する複数のキャッシュ管理サーバ、前記複数のキャッシュサーバ及び前記複数のキャッシュ管理サーバの負荷情報を管理する負荷監視サーバ、及び、ユーザから要求されるコンテンツが前記キャッシュサーバに蓄積されているか否かを判断するルータを備えるキャッシュシステムに用いられるキャッシュサーバであって、
    新たにコンテンツを蓄積すると、前記負荷監視サーバから取得した情報に基づいて、負荷が最小のキャッシュ管理サーバを特定し、
    前記蓄積されたコンテンツの識別子及び自キャッシュサーバの識別子を前記特定されたキャッシュ管理サーバへ通知することを特徴とするキャッシュサーバ。
JP2006054787A 2006-03-01 2006-03-01 キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。 Pending JP2007233700A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006054787A JP2007233700A (ja) 2006-03-01 2006-03-01 キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006054787A JP2007233700A (ja) 2006-03-01 2006-03-01 キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。

Publications (1)

Publication Number Publication Date
JP2007233700A true JP2007233700A (ja) 2007-09-13

Family

ID=38554234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006054787A Pending JP2007233700A (ja) 2006-03-01 2006-03-01 キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。

Country Status (1)

Country Link
JP (1) JP2007233700A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009111890A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd コンテンツ配信システム、キャッシュサーバ及びキャッシュ管理サーバ
JP2010002942A (ja) * 2008-06-18 2010-01-07 Fujitsu Ltd 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
WO2011152377A1 (ja) * 2010-06-01 2011-12-08 日本電気株式会社 配信システム、ゲートウェイ装置及び配信方法
WO2013118365A1 (ja) * 2012-02-09 2013-08-15 日本電気株式会社 通信制御装置、通信制御方法および記録媒体

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009111890A (ja) * 2007-10-31 2009-05-21 Hitachi Ltd コンテンツ配信システム、キャッシュサーバ及びキャッシュ管理サーバ
JP2010002942A (ja) * 2008-06-18 2010-01-07 Fujitsu Ltd 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
WO2011152377A1 (ja) * 2010-06-01 2011-12-08 日本電気株式会社 配信システム、ゲートウェイ装置及び配信方法
JPWO2011152377A1 (ja) * 2010-06-01 2013-08-01 日本電気株式会社 配信システム、ゲートウェイ装置及び配信方法
WO2013118365A1 (ja) * 2012-02-09 2013-08-15 日本電気株式会社 通信制御装置、通信制御方法および記録媒体

Similar Documents

Publication Publication Date Title
US11336614B2 (en) Content node network address selection for content delivery
JP2007066161A (ja) キャッシュシステム
JP2004070860A (ja) ストリームコンテンツ配送システムおよびプロキシサーバ
US20120084359A1 (en) Information processing device, information processing method, and computer readable recording medium
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
CN112087390B (zh) 一种网络路由方法及装置
JP2013090072A (ja) サービス提供システム
CN104506637A (zh) 解决网络拥挤的缓存方法、系统及url转发服务器
WO2012072045A1 (zh) 一种cdn网络中的数据传输方法、网络节点及系统
US20080304411A1 (en) Bandwidth control system and method capable of reducing traffic congestion on content servers
WO2012034414A1 (zh) 一种处理p2p业务的方法及系统
JP2007233700A (ja) キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。
CN103475626A (zh) 一种用于请求资源的方法、设备及系统
JP2011118593A (ja) データ転送サーバ、データ転送システム、データ転送方法およびプログラム
JP2017017678A (ja) 情報セントリックネットワーキングにおけるインテリジェント・ルーティング
CN107404438A (zh) 网络路由方法和网络路由系统
JP6495777B2 (ja) コンテンツ配信ネットワークの転送装置、サーバ装置及びプログラム
JP2011150382A (ja) コンテンツ配信システムと方法およびプログラム
JP6430849B2 (ja) コンテンツ配信ネットワークの転送装置
JP2013179482A (ja) 中継装置および中継方法
JP2010122933A (ja) コンテンツ転送方法および装置
JP2021114707A (ja) コンテンツ配信システムの転送装置及びプログラム
JP2009009592A (ja) 輻輳制御方法
JP3950915B2 (ja) データ配信方法、データ配信システム、データ受信装置、データ中継装置、データ受信装置及びデータ配信用プログラム
JP5592222B2 (ja) リクエスト中継方法、リクエスト中継プログラム、および、中継装置