(57)【要約】【課題】キャッシュサーバの記憶領域を効率的に利用し、更に、キャッシュサーバの負荷を軽減する分散キャッシュシステムを提供することを目的とする。【解決手段】本発明は、コンテンツを記憶する複数のキャッシュサーバを含むキャッシュシステムにおいて、前記キャッシュサーバは、要求されたコンテンツを記憶していない場合、前記要求されたコンテンツを記憶する他のキャッシュサーバから当該コンテンツを取得し、前記取得したコンテンツの取得状態に基づいて、前記取得したコンテンツを記憶するか否かを決定することを特徴とする。【選択図】図１
2006244121.tif 000002
【特許請求の範囲】
【請求項１】
クライアントから要求されるコンテンツを記憶する複数のキャッシュサーバを含むキャッシュシステムにおいて、
前記キャッシュサーバは、
要求されたコンテンツを記憶していない場合、前記要求されたコンテンツを記憶する他のキャッシュサーバから当該コンテンツを取得し、
前記取得したコンテンツの取得状態に基づいて、前記取得したコンテンツを記憶するか否かを決定することを特徴とするキャッシュシステム。
【請求項２】
前記キャッシュサーバは、
前記コンテンツの取得状態を格納する取得状態情報を有し、
前記取得状態情報と予め設定された閾値との比較結果に基づいて、前記取得したコンテンツを記憶するか否かを決定することを特徴とする請求項１に記載のキャッシュシステム。
【請求項３】
前記キャッシュサーバは、
前記取得したコンテンツを前記他のキャッシュサーバから取得した回数を計数し、
前記計数した取得回数と予め設定された閾値との比較結果に基づいて、前記取得したコンテンツを記憶するか否かを決定することを特徴とする請求項１に記載のキャッシュシステム。
【請求項４】
前記キャッシュサーバは、
前記計数した取得回数が二回以上であると、前記取得したコンテンツを記憶すると決定することを特徴とする請求項３に記載のキャッシュシステム。
【請求項５】
前記キャッシュサーバは、
前記コンテンツが要求された時間間隔を計測し、
前記計測した要求時間間隔に基づいて、前記取得したコンテンツを記憶するか否かを決定することを特徴とする請求項１に記載のキャッシュシステム。
【請求項６】
前記キャッシュサーバは、
以前に取得したコンテンツと、当該コンテンツを記憶するキャッシュサーバとの対応を示すコンテンツ管理情報を有し、
要求されたコンテンツを記憶していない場合、前記コンテンツ管理情報に基づいて、前記要求されたコンテンツを記憶する他のキャッシュサーバを検索し、
前記検索によって特定された他のキャッシュサーバから当該コンテンツを取得することを特徴とする請求項１に記載のキャッシュシステム。
【請求項７】
クライアントから要求されるコンテンツを記憶する複数のキャッシュサーバを含むキャッシュシステムにおいて、
前記キャッシュサーバは、要求されたコンテンツを記憶していない場合、前記要求されたコンテンツを記憶する他のキャッシュサーバから当該コンテンツを取得し、
前記他のキャッシュサーバは、前記キャッシュサーバに当該コンテンツの記憶を指示することを特徴とするキャッシュシステム。
【請求項８】
前記他のキャッシュサーバは、
リソースの使用量を測定し、
前記測定したリソースの使用量と予め設定された閾値との比較結果に基づいて、前記キャッシュサーバに当該コンテンツを記憶させるか否かを判定し、
記憶させると判定すると、前記キャッシュサーバに当該コンテンツの記憶を指示することを特徴とする請求項７に記載のキャッシュシステム。
【請求項９】
クライアントから要求されるコンテンツを記憶するキャッシュサーバを複数含むキャッシュシステムにおいて、
前記キャッシュシステムの負荷情報を収集する前記網管理サーバを含み、
前記キャッシュサーバは、
要求されたコンテンツを記憶していない場合、前記要求されたコンテンツを記憶する他のキャッシュサーバを検索し、
前記検索によって特定された他のキャッシュサーバが複数存在すると、コンテンツの最適な送信元を網管理サーバに問い合わせることを特徴とするキャッシュシステム。
【請求項１０】
前記網管理サーバが収集するキャッシュシステムの負荷情報は、前記キャッシュサーバの負荷情報及び／又は前記キャッシュシステムのネットワークのトラヒック量であることを特徴とする請求項９に記載のキャッシュシステム。
【請求項１１】
前記網管理サーバは、
前記キャッシュサーバから問い合わせを受けると、前記収集したキャッシュシステムの負荷情報に基づいて、前記キャッシュサーバが検索によって特定した他のキャッシュサーバの中から、コンテンツの最適な送信元を決定し、
前記決定した最適な送信元を前記キャッシュサーバに通知することを特徴とする請求項９に記載のキャッシュシステム。
【請求項１２】
前記キャッシュサーバは、前記通知された最適な送信元から、前記要求されたコンテンツを取得することを特徴とする請求項１１に記載のキャッシュシステム。
【請求項１３】
網管理サーバは、
前記キャッシュサーバから問い合わせを受けると、前記収集したキャッシュシステムの負荷情報を当該キャッシュサーバに送信し、
前記キャッシュサーバは、前記受信したキャッシュシステムの負荷情報に基づいて、検索によって特定した他のキャッシュサーバの中から、コンテンツの最適な送信元を決定することを特徴とする請求項９に記載のキャッシュシステム。
【請求項１４】
クライアントから要求されるコンテンツを記憶するキャッシュサーバにおいて、
他のキャッシュサーバと接続し、
前記接続される他のキャッシュサーバからコンテンツを要求されると、リソースの使用量を測定し、
前記測定したリソースの使用量と予め設定された閾値との比較結果に基づいて、前記接続する他のキャッシュサーバに当該コンテンツを記憶させるか否かを判定し、
記憶させると判定すると、前記キャッシュサーバに当該コンテンツの記憶を指示することを特徴とするキャッシュサーバ。
【請求項１５】
以前に取得したコンテンツと、当該コンテンツを記憶するキャッシュサーバとの対応を示すコンテンツ管理情報を有し、
要求されたコンテンツを記憶していない場合、前記コンテンツ管理情報に基づいて、前記要求されたコンテンツを記憶する他のキャッシュサーバを検索し、
前記検索によって特定された他のキャッシュサーバから当該コンテンツを取得することを特徴とする請求項１４に記載のキャッシュサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上で分散したキャッシュサーバが連携する分散キャッシュシステムに関し、特に、キャッシュサーバの記憶領域の利用効率を向上する技術に関する。
【背景技術】
【０００２】
多数のクライアントが接続するネットワークでは、キャッシュサーバが設けられている。キャッシュサーバは、クライアントからコンテンツを要求されると、外部ネットワークからコンテンツを取得する。そして、キャッシュサーバは、取得したコンテンツをクライアントに送信すると共に、当該コンテンツを記憶する。そして、キャッシュサーバは、クライアントから同一のコンテンツを再度要求されると、記憶したコンテンツをクライアントに送信する。キャッシュサーバを設けることによって、コンテンツを外部ネットワークから取得する回数を低減できる。
【０００３】
大規模なネットワークでは、多数のクライアントが存在する。よって、単一のキャッシュサーバでは、多数のクライアントからのコンテンツ要求に対応できない。そこで、複数のキャッシュサーバをネットワーク上に分散して配置する分散キャッシュシステムが提案されている。分散キャッシュシステムでは、それぞれのキャッシュサーバがクライアントへコンテンツを送信する。
【０００４】
この分散キャッシュシステムを実現するためには、キャッシュサーバを連携させる必要がある。キャッシュサーバの連携は、ＩＦＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）から発行されているＲＦＣ２１８６に規定されてる（非特許文献１参照。）。ＲＦＣ２１８６に記載されているキャッシュサーバは、コンテンツを取得すると、当該コンテンツをすべて記憶する。つまり、キャッシュサーバは、同一の分散キャッシュシステムに属する他のキャッシュサーバからコンテンツを取得した場合でも、当該コンテンツを記憶する。
【０００５】
これによると、同一のコンテンツを取得した複数のキャッシュサーバは、当該コンテンツをそれぞれが記憶する。つまり、分散キャッシュシステムは、コンテンツを重複して記憶することになる。分散キャッシュシステムは、コンテンツを重複して記憶すると、記憶できるコンテンツの数が減少する。すると、分散キャッシュシステムは、要求されたコンテンツを記憶している確率が低下する。更に、分散キャッシュシステムは、大容量の記憶領域が必要となるので、コストが増加する。
【０００６】
そこで、この問題を解決する分散キャッシュシステムが知られている（例えば、特許文献１参照。）。この分散キャッシュシステムでは、キャッシュサーバは、同一の分散キャッシュシステムに属する他のキャッシュサーバからコンテンツを取得すると、当該コンテンツを記憶しない。
【特許文献１】特開２００２−２５１３１３号公報
【非特許文献１】「ＲＦＣ２１８６−Ｉｎｔｅｒｎｅｔ  Ｃａｃｈｅ  Ｐｒｏｔｏｃｏｌ（ＩＣＰ）  ｖｅｒｓｉｏｎ  ２」
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしこの場合、キャッシュサーバは、クライアントからのコンテンツの要求の度に、他のキャッシュサーバからコンテンツを取得する。よって、キャッシュサーバ間のトラヒック量が増加するという問題があった。
【０００８】
また、要求される頻度の高いコンテンツを記憶するキャッシュサーバは、コンテンツを何度も要求されるので、負荷が大きい。よって、従来の分散キャッシュシステムは、要求頻度の高いコンテンツを要求されると、コンテンツの取得時間が長くなり、クライアントへのコンテンツの返信が遅れるという問題があった。
【０００９】
また、従来の分散キャッシュシステムは、クライアントが要求したコンテンツを記憶するキャッシュサーバが複数存在する場合に、最適な送信元を選択できなかった。そのため、特定のキャッシュサーバ及び特定の通信経路に負荷が集中するという問題があった。
【００１０】
そこで、本発明は、これらの問題を解決する分散キャッシュシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、コンテンツを記憶する複数のキャッシュサーバを含むキャッシュシステムにおいて、前記キャッシュサーバは、要求されたコンテンツを記憶していない場合、前記要求されたコンテンツを記憶する他のキャッシュサーバから当該コンテンツを取得し、前記取得したコンテンツの取得状態に基づいて、前記取得したコンテンツを記憶するか否かを決定することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、分散キャッシュシステムは、記憶領域を効率的に利用しつつ、負荷を軽減できる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を参照して説明する。
【００１４】
（第１の実施の形態）
図１は、本発明の第１の実施の形態の分散キャッシュシステム１２のブロック図である。
【００１５】
分散キャッシュシステム１２は、制御サーバ１３及びキャッシュサーバ１４を備える。キャッシュサーバ１４は、二つを図示しているが、二つ以上であってもよい。
【００１６】
キャッシュサーバ１４は、制御サーバ１３及びクライアント１５と接続する。なお、キャッシュサーバ１４は、複数のクライアント１５と接続してもよい。また、キャッシュサーバ１４同士は、相互に接続してもよい。
【００１７】
キャッシュサーバ１４は、図２で後述する構成を備え、クライアント１５のアクセスが多いコンテンツを記憶する。
【００１８】
制御サーバ１３は、コア網１１を介してオリジンサーバ１０に接続されている。ただし、制御サーバ１３に接続されるオリジンサーバ１０は、一つを図示しているが、いくつであってもよい。
【００１９】
コア網１１は、例えば、ＴＣＰ／ＩＰプロトコルによって通信するネットワークである。
【００２０】
制御サーバ１３は、キャッシュサーバ１４と当該キャッシュサーバ１４が記憶するコンテンツとの対応を示す情報を管理する。
【００２１】
オリジンサーバ１０及びクライアント１５は、ＣＰＵ及びメモリ等を備える計算機である。クライアント１５は、キャッシュサーバ１４に対して、コンテンツを要求する。オリジンサーバ１０は、クライアント１５が要求するコンテンツのオリジナルを記憶する。
【００２２】
図２は、本発明の第１の実施の形態のキャッシュサーバ１４のブロック図である。
【００２３】
キャッシュサーバ１４は、ＣＰＵ及びメモリを備える計算機である。ＣＰＵは、メモリに記憶された各種プログラムを実行することによって、各種処理を実行する。
【００２４】
また、キャッシュサーバ１４は、通信部２０、コンテンツ蓄積部２１、コンテンツ管理部２２、コンテンツ情報管理テーブル２３、コンテンツキャッシュ判定部２４及び要求処理部２５を備える。
【００２５】
通信部２０は、クライアント１５、制御サーバ１３及び他のキャッシュサーバ１４と通信するインタフェースである。
【００２６】
要求処理部２５は、クライアント１５から受信したコンテンツ要求を処理する。
【００２７】
コンテンツ蓄積部２１は、コンテンツを記憶する。コンテンツ管理部２２は、コンテンツ蓄積部２１が記憶するコンテンツを管理する。
【００２８】
コンテンツ情報管理テーブル２３は、図３で後述するが、他のキャッシュサーバ１４から以前に取得したコンテンツに関する情報を示す。
【００２９】
コンテンツキャッシュ判定部２４は、通信部２０が取得したコンテンツをコンテンツ蓄積部２１に記憶するか否かを判定する。
【００３０】
図３は、本発明の第１の実施の形態のキャッシュサーバ１４のコンテンツ情報管理テーブル２３の構成図である。
【００３１】
コンテンツ情報管理テーブル２３は、コンテンツＩＤ３１、サーバＩＤ３２及び取得回数３３を含む。
【００３２】
コンテンツＩＤ３１は、コンテンツを一意に識別する識別子である。例えば、コンテンツＩＤ３１は、当該コンテンツのオリジナルの格納先のＵＲＬ（Ｕｎｉｆｉｅｄ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）である。
【００３３】
サーバＩＤ３２は、当該コンテンツを記憶するキャッシュサーバ１４を一意に識別する識別子である。例えば、サーバＩＤ３２は、当該コンテンツを記憶するキャッシュサーバ１４のＩＰアドレスである。
【００３４】
取得回数３３は、当該コンテンツＩＤ３１のコンテンツを当該サーバＩＤ３２のキャッシュサーバ１４から取得した回数である。
【００３５】
なお、コンテンツ情報管理テーブル２３は、更に、前回要求時刻を含んでいてもよい。前回要求時刻は、クライアント１５が当該コンテンツを前回要求した時刻である。この場合、キャッシュサーバ１４は、コンテンツを要求された時刻から、前回要求時刻を減算することによって、コンテンツの要求間隔を算出する。そして、キャッシュサーバ１４は、算出した要求間隔に基づいて、当該コンテンツを記憶（キャッシュ）するか否かを判定する。
【００３６】
以下、図４〜図７を参照して、クライアント（１）１５がキャッシュサーバ（１）１４にコンテンツを要求した場合の分散キャッシュシステム１２の処理を説明する。
【００３７】
図４は、本発明の第１の実施の形態のキャッシュサーバ１４の処理のフローチャートである。
【００３８】
まず、クライアント（１）１５は、ＵＲＬが「ｈｔｔｐ：／／ｗｗｗ．ａａａ．ｃｏｍ／」のコンテンツ（コンテンツＩＤ：「７００」）をキャッシュサーバ（１）１４に要求する。
【００３９】
すると、キャッシュサーバ（１）１４は、コンテンツの要求をクライアント（１）１５から受信する。なお、キャッシュサーバ（１）１４は、クライアント１５からだけでなく、分散キャッシュシステム１２内の他のキャッシュサーバ１４から、コンテンツの要求を受信する。ここで、コンテンツを要求した装置を、要求元とする。
【００４０】
コンテンツの要求を受信すると、要求されたコンテンツのＵＲＬをコンテンツＩＤに変換する。例えば、コンテンツのＵＲＬとコンテンツＩＤとの対応を示すテーブルを参照して、ＵＲＬの「ｈｔｔｐ：／／ｗｗｗ．ａａａ．ｃｏｍ／」をコンテンツＩＤの「７００」に変換する。なお、コンテンツＩＤは、ＵＲＬであってもよい。この場合、要求されたコンテンツのＵＲＬをコンテンツＩＤとする。
【００４１】
次に、変換したコンテンツＩＤのコンテンツをコンテンツ蓄積部２１に記憶（キャッシュ）しているか否かを判定する（１０１）。
【００４２】
コンテンツを記憶していると（キャッシュヒット）、要求元のクライアント（１）１５に当該コンテンツを送信する（１０２）。そして、処理を終了する。
【００４３】
一方、コンテンツを記憶していないと、当該コンテンツをオリジンサーバ１０又は他のキャッシュサーバ１４から取得する必要がある。そこで、当該コンテンツを他のキャッシュサーバ１４から以前に取得したことがあるか否かを判定する（１０３）。
【００４４】
具体的には、変換したコンテンツＩＤとコンテンツ情報管理テーブル２３のコンテンツＩＤ３１とが一致するエントリが、コンテンツ情報管理テーブル２３に存在するか否かを判定する。
【００４５】
一致するエントリが存在すると、当該コンテンツを他のキャッシュサーバ１４から取得できると判定する。そこで、一致したエントリからサーバＩＤ３２を抽出する。次に、抽出したサーバＩＤ３２に対応するキャッシュサーバ１４に、当該コンテンツを要求する（１０４）。
【００４６】
例えば、図３に示すコンテンツ情報管理テーブル２３の場合で説明する。まず、変換したコンテンツＩＤの「７００」とコンテンツ情報管理テーブル２３のコンテンツＩＤ３１とが一致するエントリ３０を、コンテンツ情報管理テーブル２３から検索する。次に、検索したエントリ３０から、サーバＩＤ３２の「ａ．ｂ．ｃ．ｄ」を抽出する。そして、抽出したサーバＩＤ３２の「ａ．ｂ．ｃ．ｄ」に対応するキャッシュサーバ（２）１４に、当該コンテンツを要求する。
【００４７】
すると、コンテンツを要求されたキャッシュサーバ（２）１４は、コンテンツＩＤ「７００」のコンテンツをキャッシュサーバ（１）１４に送信する。
【００４８】
一方、一致するエントリが存在しないと、当該コンテンツを他のキャッシュサーバ１４から以前に取得していないので、制御サーバ１３に当該コンテンツを要求する（１０５）。
【００４９】
すると、制御サーバ１３は、キャッシュサーバ（１）１４からコンテンツの要求を受信する。次に、制御サーバ１３は、キャッシュサーバ１４と当該キャッシュサーバ１４が記憶するコンテンツとの対応を示す情報に基づいて、要求されたコンテンツを記憶するキャッシュサーバ１４を検索する。
【００５０】
そして、制御サーバ１３は、要求されたコンテンツを記憶するキャッシュサーバ１４を見つけると、当該キャッシュサーバ１４に当該コンテンツの送信を指示する。
【００５１】
送信を指示されたキャッシュサーバ１４は、コンテンツを要求したキャッシュサーバ（１）１４に、コンテンツを送信する。
【００５２】
一方、制御サーバ１３は、要求されたコンテンツを記憶するキャッシュサーバ１４が見つからないと、オリジンサーバ１０から当該コンテンツを取得する。そして、制御サーバ１３は、取得したコンテンツをキャッシュサーバ（１）１４に送信する。
【００５３】
キャッシュサーバ（１）１４は、送信元からコンテンツを受信する（１０６）。送信元は、当該コンテンツをキャッシュサーバ（１）１４に送信した制御サーバ１３又は他のキャッシュサーバ１４である。
【００５４】
次に、送信元が分散キャッシュシステム１２内の他のキャッシュサーバ１４であるか否かを判定する。具体的には、送信元のサーバＩＤが、キャッシュサーバ１４のサーバＩＤであるか否かを判定する。
【００５５】
送信元がキャッシュサーバであると、コンテンツ情報管理テーブル２３を更新する（１０７）。
【００５６】
具体的には、受信したコンテンツのコンテンツＩＤとコンテンツ情報管理テーブル２３のコンテンツＩＤ３１とが一致するエントリがコンテンツ情報管理テーブル２３に存在するか否かを判定する。
【００５７】
一致するエントリが存在すると、当該エントリの取得回数３３を増加させる。
【００５８】
一方、一致するエントリが存在しないと、コンテンツ情報管理テーブル２３に、新たなエントリを作成する。そして、新たなエントリのコンテンツＩＤ３１に、受信したコンテンツのコンテンツＩＤを格納する。また、新たなエントリのサーバＩＤ３２に、送信元のキャッシュサーバ１４のサーバＩＤを格納する。更に、新たなエントリの取得回数３３に、「１」を格納する。
【００５９】
例えば、キャッシュサーバ（２）１４からコンテンツＩＤ「７００」のコンテンツを受信すると、コンテンツ情報管理テーブル２３に新たなエントリ３０を作成する。次に、新たなエントリ３０のコンテンツＩＤ３１に、受信したコンテンツのコンテンツＩＤの「７００」を格納する。また、新たなエントリ３０のサーバＩＤ３２に、送信元のキャッシュサーバ（２）１４のサーバＩＤの「ａ．ｂ．ｃ．ｄ」を格納する。また、新たなエントリ３０の取得回数３３に、「１」を格納する。
【００６０】
次に、受信したコンテンツを、コンテンツ蓄積部２１に記憶（キャッシュ）するか否かを判定する（１０８）。なお、このキャッシュ判定処理は、後述する図５で詳細を説明する。
【００６１】
コンテンツをキャッシュすると判定すると、当該コンテンツをコンテンツ蓄積部２１に記憶する。そして、記憶したコンテンツのコンテンツＩＤとコンテンツ情報管理テーブル２３のコンテンツＩＤ３１とが一致するエントリを、コンテンツ情報管理テーブル２３から削除する（１０９）。
【００６２】
一方、コンテンツをキャッシュしないと判定すると、コンテンツ情報管理テーブル２３を更新する必要がないので、そのままステップ１０２に進む。
【００６３】
そして、受信したコンテンツを要求元のクライアント（１）１５に送信し（１０２）、処理を終了する。
【００６４】
図５は、本発明の第１の実施の形態のキャッシュサーバ１４のキャッシュ判定処理のフローチャートである。
【００６５】
まず、キャッシュサーバ（１）１４は、当該コンテンツの送信元が分散キャッシュシステム１２内の他のキャッシュサーバ１４であるか否かを判定する（２０１）。具体的には、送信元のサーバＩＤが、キャッシュサーバ１４のサーバＩＤであるか否かを判定する。
【００６６】
送信元がキャッシュサーバ１４でないと、分散キャッシュシステム１２内のすべてのキャッシュサーバ１４が当該コンテンツを記憶していない。そこで、当該コンテンツをキャッシュすると判定する（２０２）。そして、本処理を終了する。
【００６７】
一方、送信元がキャッシュサーバ１４であると、当該コンテンツを他のキャッシュサーバ１４から取得した回数が閾値以上であるか否かを判定する（２０３）。これによって、当該コンテンツをキャッシュするか否かを決定する。
【００６８】
具体的には、当該コンテンツのコンテンツＩＤとコンテンツ情報管理テーブル２３のコンテンツＩＤ３１とが一致するエントリをコンテンツ情報管理テーブル２３から選択する。次に、選択したエントリから、取得回数３３を抽出する。そして、抽出した取得回数３３が、予め設定された閾値（例えば、「２」）以上であるか否かを判定する。
【００６９】
取得回数３３が閾値以上であると、クライアント１５からの要求回数が多いので、当該コンテンツをキャッシュすると判定し（２０２）、処理を終了する。例えば、図６に示すコンテンツ情報管理テーブル２３のエントリ３５から、取得回数の「２」を抽出したとする。すると、抽出した取得回数３３の「２」が閾値の「２」以上に該当するので、当該コンテンツをキャッシュすると判定する。キャッシュサーバ１４は、閾値を「２」に設定されると、「１」に設定される場合と比べて、キャッシュするコンテンツの数を大幅に減らすことができる。
【００７０】
一方、取得回数３３が閾値より小さいと、クライアント１５からの要求回数が少ないので、当該コンテンツをキャッシュしないと判定し（２０４）、処理を終了する。例えば、図３に示すコンテンツ情報管理テーブル２３のエントリ３０から取得回数３３の「１」を抽出したとする。すると、抽出した取得回数３３の「１」が閾値の「２」より小さいので、当該コンテンツをキャッシュしないと判定する。
【００７１】
以上のように、本発明の第１の実施の形態によれば、キャッシュサーバ１４は、コンテンツの取得回数に応じて、コンテンツをキャッシュするか否かを判定する。つまり、キャッシュサーバ１４は、取得回数の多いコンテンツを記憶する。
【００７２】
よって、本実施の形態の分散キャッシュシステム１２は、コンテンツの問合せ処理の負荷を軽減できる。また、分散キャッシュシステム１２は、キャッシュサーバ１４間のトラヒック量を低減できる。また、分散キャッシュシステム１２は、同一のコンテンツの複製を抑制でき、それぞれのキャッシュサーバ１４のコンテンツ蓄積部２１の利用効率を向上できる。
【００７３】
（第２の実施の形態）
図７は、本発明の第２の実施の形態の分散キャッシュシステム１２のブロック図である。
【００７４】
第２の実施の形態の分散キャッシュシステム１２は、制御サーバ１３を備えない。それ以外の構成は、第１の実施の形態の分散キャッシュシステム（図１）と同一である。なお、同一の構成には同一の番号を付し、説明を省略する。
【００７５】
また、第２の実施の形態の分散キャッシュシステム１２の処理は、キャッシュサーバ１４の処理（図４）のステップ１０５を除いて、第１の実施の形態と同一である。なお、同一の処理は説明を省略する。
【００７６】
図８は、本発明の第２の実施の形態のキャッシュサーバ１４の処理のステップ１０５の詳細のフローチャートである。
【００７７】
ステップ１０５において、キャッシュサーバ（１）１４は、制御サーバ１１３でなく、分散キャッシュシステム１２内の他のすべてのキャッシュサーバ１４に、コンテンツを要求する（１０５１）。
【００７８】
次に、キャッシュサーバ（１）１４は、要求したコンテンツを他のキャッシュサーバ１４から取得できたか否かを判定する（１０５２）。
【００７９】
キャッシュサーバ（１）１４は、コンテンツを取得できると、ステップ１０６に進む。
【００８０】
一方、キャッシュサーバ（１）１４は、コンテンツを取得できないと、オリジンサーバ１０に当該コンテンツを要求する（１０５３）。すると、キャッシュサーバ（１）１４は、オリジンサーバ１０から当該コンテンツを取得する。そして、ステップ１０６に進む。
【００８１】
（第３の実施の形態）
第３の実施の形態は、キャッシュサーバ１４同士で負荷情報を通知する。これによって、分散キャッシュシステム１２は、キャッシュサーバ１４の負荷を分散できる。
【００８２】
第３の実施の形態の分散キャッシュシステム１２の構成は、第１の実施の形態の分散キャッシュシステム（図１）と同一であり、説明を省略する。
【００８３】
また、第３の実施の形態の分散キャッシュシステム１２は、第２の実施の形態の分散キャッシュシステム（図７）に適用することもできる。
【００８４】
図９は、本発明の第３の実施の形態のキャッシュサーバ１４のブロック図である。
【００８５】
キャッシュサーバ１４は、コンテンツキャッシュ通知判定部２６を備える。それ以外の構成は、第１の実施の形態のキャッシュサーバ（図２）と同一である。同一の構成には同一の番号を付し、説明を省略する。
【００８６】
コンテンツキャッシュ通知判定部２６は、他のキャッシュサーバ１４にコンテンツを送信する際に、当該他のキャッシュサーバ１４に当該コンテンツを記憶させるか否かを判定する。
【００８７】
図１０は、本発明の第３の実施の形態のキャッシュサーバ１４の処理のフローチャートである。
【００８８】
まず、キャッシュサーバ（１）１４は、コンテンツの要求を要求元から受信する。要求元は、クライアント１５、制御サーバ１３又は分散キャッシュシステム内の他のキャッシュサーバ１４である。コンテンツの要求を受信すると、受信したコンテンツ要求からコンテンツＩＤを取得する。
【００８９】
次に、取得したコンテンツＩＤのコンテンツをコンテンツ蓄積部２１に記憶（キャッシュ）しているか否かを判定する（１０１）。
【００９０】
コンテンツを記憶していない場合の処理は、第１の実施の形態のキャッシュサーバの処理（図４）と同一である。同一の処理には同一の番号を付し、説明を省略する。
【００９１】
一方、コンテンツを記憶していると（キャッシュヒット）、要求元に当該コンテンツのキャッシュを指示するか否かを判定する（１１０）。なお、このキャッシュ指示判定処理は、後述する図１１で詳細を説明する。
【００９２】
指示しないと判定すると、要求元に当該コンテンツを送信し（１０２）、処理を終了する。
【００９３】
一方、指示すると判定すると、要求元に当該コンテンツのキャッシュを指示する（１１１）。そして、要求元に当該コンテンツを送信し（１０２）、処理を終了する。
【００９４】
図１１は、本発明の第３の実施の形態のキャッシュサーバ１４のキャッシュ指示判定処理のフローチャートである。
【００９５】
まず、キャッシュサーバ（１）１４は、要求元が分散キャッシュシステム１２内の他のキャッシュサーバ１４であるか否かを判定する（３０１）。具体的には、要求元のサーバＩＤが、他のキャッシュサーバ１４のサーバＩＤであるか否かを判定する。
【００９６】
要求元がキャッシュサーバ１４でないと、要求元にコンテンツのキャッシュを指示しないと判定する（３０２）。そして、本処理を終了する。
【００９７】
一方、要求元がキャッシュサーバ１４であると、自身の負荷状態に応じて、コンテンツのキャッシュを指示するか否かを判定する。そこで、自身のＣＰＵ使用率を取得する（３０３）。そして、取得したＣＰＵ使用率が閾値以上であるか否かを判定する（３０４）。
【００９８】
ＣＰＵ使用率が閾値より小さいと、自身の負荷が小さいと判定するので、要求元にコンテンツのキャッシュを指示しないと判定する（３０２）。そして、本処理を終了する。
【００９９】
一方、ＣＰＵ使用率が閾値以上であると、自身の負荷が大きいと判定するので、コンテンツのキャッシュを指示すると判定する（３０５）。そして、本処理を終了する。
【０１００】
なお、キャッシュサーバ（１）１４は、ＣＰＵ使用率でなく、自身の負荷を示す他の値（例えば、メモリの使用率等）を用いて、キャッシュを指示するか否かを判定してもよい。
【０１０１】
図１２は、本発明の第３の実施の形態のキャッシュサーバ１４のキャッシュ判定処理のフローチャートである。
【０１０２】
キャッシュ判定処理は、図１０のステップ１０８で行われる。また、第３の実施の形態のキャッシュ判定処理は、ステップ２０５が追加されたことを除き、第１の実施の形態のキャッシュ判定処理（図５）と同一である。同一の処理には同一の番号を付し、説明を省略する。
【０１０３】
キャッシュサーバ（１）１４は、ステップ２０１において、送信元がキャッシュサーバ１４でないと判定すると、ステップ２０５を行う。
【０１０４】
ステップ２０５では、送信元から、コンテンツのキャッシュを指示されたか否かを判定する。
【０１０５】
キャッシュを指示されていないと、ステップ２０３に進む。
【０１０６】
一方、キャッシュを指示されていると、コンテンツをキャッシュすると判定する（２０２）。そして、処理を終了する。
【０１０７】
以上のように本実施の形態では、送信元のキャッシュサーバ１４は、自身のＣＰＵ使用率が閾値以上となると、要求元のキャッシュサーバ１４にコンテンツのキャッシュを指示する。そして、要求元のキャッシュサーバ１４は、指示に応じて、コンテンツをキャッシュする。
【０１０８】
これによって、負荷の大きいキャッシュサーバ１４は、分散キャッシュシステム１２内の他のキャッシュサーバから同一のコンテンツを複数回要求されなくなる。つまり、本実施の形態の分散キャッシュシステム１２は、キャッシュサーバ１４の負荷を分散できる。
【０１０９】
（第４の実施の形態）
第４の実施の形態例では、分散キャッシュシステム１２は、最適な送信元を決定する網管理サーバ１６を備える。
【０１１０】
図１３は、本発明の第４の実施の形態の分散キャッシュシステム１２のブロック図である。
【０１１１】
本実施の形態の分散キャッシュシステム１２は、網管理サーバ１６を備える。それ以外の構成は、第１の実施の形態の分散キャッシュシステム（図１）と同一である。同一の構成には同一の番号を付し、説明を省略する。
【０１１２】
網管理サーバ１６は、図１４で後述するが、キャッシュサーバ１４の負荷状態及び分散キャッシュシステム１２内のネットワークの負荷状態を監視する。
【０１１３】
なお、網管理サーバ１６は、制御サーバ１３に含まれていてもよい。
【０１１４】
図１４は、本発明の第４の実施の形態の網管理サーバ１６のブロック図である。
【０１１５】
網管理サーバ１６は、ＣＰＵ及びメモリを備える計算機である。ＣＰＵは、メモリに記憶された各種プログラムを実行することによって、各種処理を実行する。
【０１１６】
網管理サーバ１６は、通信部４０、問合せ処理部４１、最適送信元キャッシュサーバ決定部４２、ノード負荷情報収集部４３、ノード負荷情報データベース４４、ネットワーク負荷情報収集部４５及びネットワーク負荷情報データベース４６を備える。
【０１１７】
通信部４０は、制御サーバ１３と通信するインタフェースである。問合せ処理部４１は、制御サーバ１３からの問合せを処理する。
【０１１８】
最適送信元キャッシュサーバ決定部４２は、要求されたコンテンツを記憶するキャッシュサーバ１４の中から、最適な送信元を決定する。
【０１１９】
なお、最適送信元キャッシュサーバ決定部４２は、制御サーバ１３に備えられていてもよい。この場合、網管理サーバ１６は、ノード負荷情報データベース４４及びネットワーク負荷情報データベース４６に格納された情報を、制御サーバ１３に定期的に送信する。すると、制御サーバ１３は、受信した負荷情報を記憶する。そして、制御サーバ１３は、記憶した負荷情報に基づいて、最適な送信元を決定する。
【０１２０】
ノード負荷情報データベース４４は、図１５で後述するが、キャッシュサーバ１４の負荷情報を記憶する。ノード負荷情報収集部４３は、キャッシュサーバ１４の負荷情報を定期的に収集し、収集した負荷情報をノード負荷情報データベース４４に格納する。キャッシュサーバ１４の負荷情報は、例えば、キャッシュサーバ１４のＣＰＵ使用率及び／又はメモリ使用率等である。
【０１２１】
ネットワーク負荷情報データベース４６は、分散キャッシュシステム１２内のネットワークのトラヒック量を記憶する。ネットワーク負荷情報収集部４５は、分散キャッシュシステム１２内のネットワークのトラヒック量を定期的に収集し、収集したトラヒック量をネットワーク負荷情報データベース４４に格納する。
【０１２２】
図１５は、本発明の第４の実施の形態のノード負荷情報データベース４４の構成図である。
【０１２３】
ノード負荷情報データベース４４は、サーバＩＤ５１、ＣＰＵ使用率５２及びメモリ使用率５３を含む。
【０１２４】
サーバＩＤ５１は、キャッシュサーバ１４を一意に識別する識別子である。ＣＰＵ使用率５２は、当該キャッシュサーバ１４のＣＰＵの使用率である。メモリ使用率５２は、当該キャッシュサーバ１４のメモリの使用率である。ＣＰＵ使用率５１及びメモリ使用率５２は、例えば、百分率で表す。
【０１２５】
次に、制御サーバ１３及び網管理サーバ１６の処理を説明する。
【０１２６】
まず、制御サーバ１３は、キャッシュサーバ（１）１４からコンテンツの要求を受信する。次に、制御サーバ１３は、キャッシュサーバ１４と当該キャッシュサーバ１４が記憶するコンテンツとの対応を示す情報に基づいて、要求されたコンテンツを記憶するキャッシュサーバ１４を検索する。
【０１２７】
そして、制御サーバ１３は、一つのキャッシュサーバ１４を見つけると、第１の実施の形態の処理と同様に、見つけたキャッシュサーバ１４に当該コンテンツの送信を指示する。
【０１２８】
一方、制御サーバ１３は、複数のキャッシュサーバ１４を見つけると、見つけたすべてのキャッシュサーバ１４のサーバＩＤを網管理サーバ１６に送信する。
【０１２９】
網管理サーバ１６は、受信したサーバＩＤとノード負荷情報管理テーブル４４のサーバＩＤ５１とが一致するエントリを、ノード負荷情報管理テーブル４４から選択する。次に、選択したエントリから、ＣＰＵ使用率５２及びメモリ使用率５３を抽出する。
【０１３０】
次に、網管理サーバ１６は、受信したサーバＩＤのキャッシュサーバ１４から要求元のキャッシュサーバ（１）１４へのネットワークのトラヒック量を、ネットワーク負荷情報データベース４６から抽出する。
【０１３１】
次に、網管理サーバ１６は、抽出したＣＰＵ使用率５２、メモリ使用率５３及びトラヒック量に基づいて、転送速度を推定する。転送速度は、受信したサーバＩＤのキャッシュサーバ１４から、要求元のキャッシュサーバ（１）１４へコンテンツを転送する速度である。
【０１３２】
そして、網管理サーバ１６は、推定した転送速度が最も速いキャッシュサーバ１４を最適な送信元と決定する。
【０１３３】
他にも、網管理サーバ１６は、抽出したＣＰＵ使用率５２が最も低いキャッシュサーバ１４を最適な送信元と決定してもよい。また、網管理サーバ１６は、抽出したそれぞれの項目ごとにキャッシュサーバ１４に順位付けし、順位の合計が最も低いキャッシュサーバ１４を最適な送信元と決定してもよい。
【０１３４】
そして、網管理サーバ１６は、決定した最適な送信元のサーバＩＤを、制御サーバ１３に送信する。
【０１３５】
制御サーバ１３は、受信したサーバＩＤに対応するキャッシュサーバ１４に当該コンテンツの送信を指示する。
【０１３６】
以上のように第４の実施の形態によれば、キャッシュサーバ及びネットワークの負荷状態に基づいて、コンテンツの送信元を決定する。よって、本実施の形態の分散キャッシュシステムは、キャッシュサーバ及びネットワークの負荷を分散できる。
【０１３７】
（第５の実施の形態）
図１６は、本発明の第５の実施の形態の分散キャッシュシステム１２のブロック図である。
【０１３８】
第５の実施の形態の分散キャッシュシステム１２は、制御サーバ１３の代わりに、ルータ１７を備える。それ以外の構成は、第４の実施の形態の分散キャッシュシステム（図１３）と同一である。同一の構成には同一の番号を付し、説明を省略する。
【０１３９】
ルータ１７は、パケットを受信し、受信したパケットの宛先を判定する。そして、判定した宛先へ当該パケットを転送する。
【０１４０】
網管理サーバ１６は、ルータ１７を介して、すべてのキャッシュサーバ１４と接続される。なお、網管理サーバ１６は、複数台のルータ１７を介して、キャッシュサーバ１４と接続されてもよい。
【０１４１】
網管理サーバ１６の構成及び処理は、第４の実施の形態の網管理サーバ（図１４）と同一である。よって、説明を省略する。
【０１４２】
なお、最適送信元キャッシュサーバ決定部４２は、キャッシュサーバ１４に備えられていてもよい。この場合、網管理サーバ１６は、ノード負荷情報データベース４４及びネットワーク負荷情報データベース４６に格納された情報を、キャッシュサーバ１４に定期的に送信する。すると、キャッシュサーバ１４は、受信した負荷情報を記憶する。そしてキャッシュサーバ１４は、記憶した負荷情報に基づいて、最適な送信元を決定する。
【０１４３】
本実施の形態では、キャッシュサーバ（１）１４は、制御サーバ１１３でなく、分散キャッシュシステム１２内の他のすべてのキャッシュサーバ１４に、当該コンテンツを記憶しているか否かを問い合わせる。
【０１４４】
キャッシュサーバ（１）１４は、分散キャッシュシステム１２内に当該コンテンツを記憶するキャッシュサーバ１４が一つ存在すると、当該キャッシュサーバ１４に当該コンテンツを要求する。
【０１４５】
一方、キャッシュサーバ（１）１４は、分散キャッシュシステム１２内に当該コンテンツを記憶するキャッシュサーバ１４が複数存在すると、当該キャッシュサーバ１４のサーバＩＤを網管理サーバ１６に送信する。
【０１４６】
すると、網管理サーバ１６は、第４の実施の形態と同一の処理によって、最適な送信元を決定する。
【０１４７】
そして、網管理サーバ１６は、決定した最適な送信元のサーバＩＤを、キャッシュサーバ（１）１４に送信する。
【０１４８】
キャッシュサーバ（１）１４は、受信したサーバＩＤに対応するキャッシュサーバ１４から、当該コンテンツを取得する。
【産業上の利用可能性】
【０１４９】
本発明は、大規模ネットワーク用の分散キャッシュシステムに適用することができる。
【図面の簡単な説明】
【０１５０】
【図１】本発明の第１の実施の形態の分散キャッシュシステムのブロック図である。
【図２】本発明の第１の実施の形態のキャッシュサーバのブロック図である。
【図３】本発明の第１の実施の形態のキャッシュサーバのコンテンツ情報管理テーブルの構成図である。
【図４】本発明の第１の実施の形態のキャッシュサーバの処理のフローチャートである。
【図５】本発明の第１の実施の形態のキャッシュサーバのキャッシュ判定処理のフローチャートである。
【図６】本発明の第１の実施の形態のキャッシュサーバのコンテンツ情報管理テーブル２３の構成図である。
【図７】本発明の第２の実施の形態の分散キャッシュシステムのブロック図である。
【図８】本発明の第２の実施の形態のキャッシュサーバの処理のステップ１０５の詳細のフローチャートである。
【図９】本発明の第３の実施の形態のキャッシュサーバのブロック図である。
【図１０】本発明の第３の実施の形態のキャッシュサーバの処理のフローチャートである。
【図１１】本発明の第３の実施の形態のキャッシュサーバのキャッシュ指示判定処理のフローチャートである。
【図１２】本発明の第３の実施の形態のキャッシュサーバのキャッシュ判定処理のフローチャートである。
【図１３】本発明の第４の実施の形態の分散キャッシュシステムのブロック図である。
【図１４】本発明の第４の実施の形態の網管理サーバのブロック図である。
【図１５】本発明の第４の実施の形態のノード負荷情報データベースの構成図である。
【図１６】本発明の第５の実施の形態の分散キャッシュシステムのブロック図である。
【符号の説明】
【０１５１】
１０  オリジンサーバ
１１  コア網
１２  分散キャッシュシステム
１３  制御サーバ
１４  キャッシュサーバ
１５  クライアント
１６  網管理サーバ
１７  ルータ
２０  通信部
２１  コンテンツ蓄積部
２２  コンテンツ管理部
２３  コンテンツ情報管理テーブル
２４  コンテンツキャッシュ判定部
２５  要求処理部
２６  コンテンツキャッシュ通知判定部
４０  通信部
４１  問合せ処理部
４２  最適配信元キャッシュサーバ決定部
４３  ノード負荷情報収集部
４４  ノード負荷情報データベース
４５  ネットワーク負荷情報収集部
４６  ネットワーク負荷情報データベース
【図１】
2006244121.tif 000003
【図２】
2006244121.tif 000004
【図３】
2006244121.tif 000005
【図４】
2006244121.tif 000006
【図５】
2006244121.tif 000007
【図６】
2006244121.tif 000008
【図７】
2006244121.tif 000009
【図８】
2006244121.tif 000010
【図９】
2006244121.tif 000011
【図１０】
2006244121.tif 000012
【図１１】
2006244121.tif 000013
【図１２】
2006244121.tif 000014
【図１３】
2006244121.tif 000015
【図１４】
2006244121.tif 000016
【図１５】
2006244121.tif 000017
【図１６】
2006244121.tif 000018