JPWO2013047207A1 - キャッシュシステム、キャッシュ方法、及びキャッシュサーバ - Google Patents

キャッシュシステム、キャッシュ方法、及びキャッシュサーバ Download PDF

Info

Publication number
JPWO2013047207A1
JPWO2013047207A1 JP2013536154A JP2013536154A JPWO2013047207A1 JP WO2013047207 A1 JPWO2013047207 A1 JP WO2013047207A1 JP 2013536154 A JP2013536154 A JP 2013536154A JP 2013536154 A JP2013536154 A JP 2013536154A JP WO2013047207 A1 JPWO2013047207 A1 JP WO2013047207A1
Authority
JP
Japan
Prior art keywords
content
cache
cache server
server
requested
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
JP2013536154A
Other languages
English (en)
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2013536154A priority Critical patent/JPWO2013047207A1/ja
Publication of JPWO2013047207A1 publication Critical patent/JPWO2013047207A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Abstract

オリジンサーバと、端末から要求されたコンテンツを、オリジンサーバの代わりに配信する複数のキャッシュサーバとを備え、キャッシュサーバは、端末から要求されたコンテンツを保持していない場合に、そのコンテンツを保持する他のキャッシュサーバから取得して端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御行う。

Description

本発明は、キャッシュシステム、キャッシュ方法、及びキャッシュサーバに関する。特に本発明は、端末から要求されたコンテンツを、オリジンサーバの代わりにキャッシュサーバから端末に配信するキャッシュシステム、キャッシュ方法、並びにキャッシュサーバに関する。
図14は、キャッシュシステムの一例を示す。この例のキャッシュシステムは、ネットワーク1、ネットワーク2、端末100、オリジンサーバ200、及びキャッシュサーバ300を備える。
キャッシュサーバ300は、ネットワーク1を介して、オリジンサーバ200と通信接続される。また、キャッシュサーバ300は、ネットワーク2を介して、端末100と通信接続される。
オリジンサーバ200は、端末100から要求されたコンテンツを、端末100に配信する。キャッシュサーバ300は、オリジンサーバ200から端末100へのコンテンツの配信を仲介する。より具体的に説明すると、キャッシュサーバ300は、コンテンツをキャッシュすることによって、端末100から同じコンテンツを要求された場合には、オリジンサーバ200の代わりに要求されたコンテンツを配信する。これによりオリジンサーバ200や、ネットワーク1の負荷を下げることができる。これによって、一般にキャッシュサーバ300は、オリジンサーバ200よりも端末100に近い場所に配置されるので、コンテンツ配信の遅延も短縮することができる。
また、キャッシュサーバ300は、オリジンサーバ200の所有者、又はオリジンサーバ200に保持されたコンテンツの所有者とのビジネス的な同意に従い、事前に配信対象とするコンテンツを保持することもある。
図15にコンテンツ配信システムのシーケンス図を示す。まずステップS100で、端末100は、オリジンサーバ200に対してコンテンツの要求を行う。ここで、コンテンツ要求を行うためのプロトコルは様々なプロトコルが考えられるが、例えばHTTPの場合は、コンテンツ要求は、HTTP GETに相当する。
端末100が、オリジンサーバ200に対して行うコンテンツ要求を、キャッシュサーバ300に仲介させるための方法がいくつか存在する。ひとつは、端末100に、WEB Proxyサーバとしてキャッシュサーバ300の情報を設定し、端末100の動作によりキャッシュサーバ300にアクセスする方法である。
次に、DNS(Domain Name System)サーバを使う方法である。DNSサーバを使う方法は、端末100が、DNSサーバを使ってオリジンサーバ200のアドレスを取得する際に、DNSサーバは、オリジンサーバ200の代わりにキャッシュサーバ300のアドレスを応答する方法である。他にも、HTTPリダイレクトによる方法や、端末100がオリジンサーバ200と通信する際に通過する経路上にキャッシュサーバ300を配置する方法等があるが、本発明には直接関係ないので詳細は省略する。
キャッシュサーバ300は、コンテンツ要求を受信すると、コンテンツ要求に含まれるURL(Uniform Resource Locator)等の情報に基づいて、要求対象のコンテンツを特定する。そして、キャッシュサーバ300は、要求されたコンテンツを保持しているか否かを確認し、保持していない場合はオリジンサーバ200に要求対象のコンテンツ要求を転送する(このステップでは対象のコンテンツを保持していないものとする)。ここで、端末100からのコンテンツ要求を変更すること無くコンテンツ要求を転送する場合もあれば、アドレス等に変更を加えた後で転送する場合もある。
オリジンサーバ200は、キャッシュサーバ300から転送されたコンテンツ要求を受信すると、要求されたコンテンツをキャッシュサーバ300へと配信する処理を開始する(S101)。
キャッシュサーバ300は、オリジンサーバ200から配信が開始されたコンテンツを受信すると、ステップS102で、これを端末100に配信すると共に、そのコンテンツのキャッシュを保存する(以後、キャッシュするともいう)。
その後、端末100は、キャッシュサーバ300介して配信されたコンテンツを受信する。
次に端末100が同じコンテンツを要求した場合を考える。ここでの端末100は、一度目にコンテンツを要求した端末100と同じ端末である必要はない。この場合、キャッシュサーバ300は、端末100からコンテンツ要求を受信すると、そのコンテンツのキャッシュを保持している。そのため、コンテンツ要求をオリジンサーバ200に転送することなく、キャッシュサーバ300から要求されたコンテンツを端末100へ配信する(S103)。
次に、図14に示すキャッシュサーバを、複数台分散配備した例を図16に示す。すなわち、図16は、キャッシュがキャッシュサーバ間でキャッシュの交換をしない非連携キャッシュシステムの例である。
図16のキャッシュサーバ300a、300b、300c、端末100a、100b、100c、ネットワーク2a、2b、2cはそれぞれ、図14で説明したキャッシュサーバ300、端末100、ネットワーク2が複数ある状況を示している。ネットワーク2a、2b、2cは、異なるISP、又はネットワークオペレータのネットワークの場合もあれば、同じISP、ネットワークオペレータのネットワークの場合もある。
図16では、端末100aがコンテンツ要求した場合、キャッシュサーバ300aにキャッシュが保持される。そして、端末100b、端末100cについては、それぞれキャッシュサーバ300b、キャッシュサーバ300cにキャッシュが保持される。このとき、キャッシュされる際の動作は、図15と同じである。
この例のキャッシュシステムは、端末100aから要求されたコンテンツをキャッシュサーバ300aがキャッシュしていなかった場合、他のキャッシュサーバにキャッシュがあったとしても、オリジンサーバ200から取得する。
これを改善するため、各キャッシュサーバ間で連携可能なキャッシュシステムとすることが考えられる。具体的には、あるキャッシュサーバで端末から要求されたコンテンツをキャッシュしていなかった場合、すぐオリジンサーバからコンテンツを取得するのではなく、他のキャッシュサーバが要求されたコンテンツを保持していないかを否かを確認する。その結果、コンテンツを保持しているキャッシュサーバがあった場合、当該キャッシュサーバからキャッシュを取得し、端末に配信するというものである。以降ではこの連携のことを、キャッシュサーバ間連携と呼称する。
キャッシュサーバ間連携可能なキャッシュシステムを図17に示す。図17の、キャッシュサーバ300’a、300’b、300’cはそれぞれ連携機能を持ったキャッシュサーバである。管理サーバ400は、各キャッシュサーバ300’に対して他のキャッシュサーバが保持するコンテンツの情報を提供したり、各キャッシュサーバが保持すべきコンテンツを制御する。
図18にキャッシュサーバ間連携の効果を示すグラフを示す。図18は、端末100のコンテンツ要求の傾向がZipf分布に従うと想定したときに、単独のキャッシュサーバのヒット率と、キャッシュサーバ間連携を適用した場合のヒット率の違いを示したものである。Zipf分布とは、人気度の高いコンテンツにアクセスが集中する分布を示し、k番目に人気のコンテンツへのアクセス確率は以下の式(1)で表すことができる。
Figure 2013047207
ここで、Σ{N,n=1} (1/n^s)は、nを1からNまで変化させた時の、(1/n^s)の和を示す。また、sは、人気の高いコンテンツへのアクセス集中度を決めるパラメタであり、動画配信サービスにおいてはs=0.55程度となるとの研究報告があるため、ここでは、s=0.55とした。
図18のグラフでは、連携可能なキャッシュサーバの数を横軸、システム全体でのヒット率、すなわち連携の結果得られるヒット率を縦軸としている。連携可能なキャッシュサーバの数が0の場合は連携なしのキャッシュサーバを適用した場合のヒット率を示す。
各ラインでは、異なるキャッシュサーバのサイズを想定している。キャッシュサーバのサイズは、オリジンサーバに対する割合として表現している。
図18より、キャッシュサーバのサイズに関わらず、キャッシュサーバ間連携によりキャッシュヒット率を向上できることがわかる。しかし、図18の場合では、各キャッシュサーバへのコンテンツ配置については連携を意識した制御は行わず、要求されたコンテンツを各キャッシュサーバの判断でキャッシュするのみである。
各キャッシュサーバへのコンテンツ配置についても、キャッシュサーバ間連携を意図した配置とすることで、連携によるキャッシュヒット率の改善効果は図18に示されている値以上となる。例えば、ある程度人気にあるコンテンツを、一部のキャッシュサーバがキャッシュしていた場合は、他のキャッシュサーバは、同じコンテンツをキャッシュしないようにする制御が考えられる。一方で、人気が非常に高いコンテンツについては、負荷分散の意味で、複数のキャッシュサーバに配置した方がよい場合がある。
また、非特許文献1には、複数のキャッシュサーバが連携するCRISP(Caching and Replication for Internet Service Performance)に関する技術が記載されている。
Syam Gadde、Michael Rabinovich、Jeff Chase、「Reduce, Reuse, Recycle: An Approach to Building Large Internet Caches」、Operating Systems, 1997., The Sixth Workshop on Hot Topics in、1997年5月、p.93−98
図17に示すキャッシュサーバ300’同士を効率よく連携させることができるようなコンテンツ配置を実現しようとする場合、管理サーバ400は、各キャッシュサーバ300’が保持するコンテンツの情報や、各コンテンツへのアクセス情報を、各キャッシュサーバ300’から収集して、最適な配置となるように、各キャッシュサーバ300’を制御しなければならない。
しかしながら、管理サーバ400がコンテンツの配置を一元的に制御する方法の場合には、コンテンツの種類や、キャッシュサーバの数が多くなると、キャッシュサーバと交換すべき情報量や、最適な配置を計算するための計算量が大きくなる。そのため、管理サーバ400では処理しきれなくなる問題がある。このような状態となったとき、各キャッシュサーバが、管理サーバ400に依存した処理が多いほど、正常動作を継続できずシステムとして破綻する懸念がある。
本発明の目的は、上述した課題を解決するキャッシュシステム、キャッシュ方法、及びキャッシュサーバを提供することにある。
上記課題を解決するために、本発明の第1の態様に係わるキャッシュシステムによると、オリジンサーバと、端末から要求されたコンテンツを、オリジンサーバの代わりに配信する複数のキャッシュサーバとを備え、キャッシュサーバは、端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御行う。
本発明の第2の態様に係わるキャッシュ方法によると、オリジンサーバと、端末から要求されたコンテンツを、オリジンサーバの代わりに配信する複数のキャッシュサーバとを備えるキャッシュシステムにおけるキャッシュ方法であって、キャッシュサーバは、端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御行う。
本発明の第3の態様に係わるキャッシュサーバよると、端末から要求されたコンテンツを、オリジンサーバの代わりに配信するキャッシュサーバであって、端末から要求されたコンテンツを保持していない場合に、当該コンテンツを保持する他のキャッシュサーバから取得して端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御行う。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となり得る。
以上の説明から明らかなように、この発明に係わるキャッシュシステムによれば、良好なキャッシュヒット率が得られる分散キャッシュシステムを提供することができる。
本発明の第1実施形態に係る分散キャッシュシステムの一例を示す図である。 本発明の第1実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。 本発明の第1実施形態に係るキャッシュサーバが複製決定及び複製指示する処理の流れを示すフローチャートである。 本発明の第1実施形態に係るキャッシュサーバが端末からのコンテンツ要求を受信した際の処理の流れを示すフローチャートである。 本発明の第1実施形態に係る端末、及びキャッシュサーバの動作シーケンスの一例を示す図である。 本発明の第2実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。 本発明の第2実施形態に係る端末、及びキャッシュサーバの動作シーケンスの一例を示す図である。 キャッシュサーバのブロック構成の一例を示す図である。 本発明の第3実施形態に係わるキャッシュサーバが端末からのコンテンツ要求を受信した際の処理の流れを示すフローチャートである。 本発明の第3実施形態に係わる端末、及びキャッシュサーバの動作シーケンスの一例を示す図である。 本発明の第4実施形態に係る分散キャッシュシステムの一例を示す図である。 本発明の第4実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。 本発明の第5実施形態に係るキャッシュサーバのブロック構成の一例を示す図である。 キャッシュシステムの一例を示す図である。 端末、キャッシュサーバ、及びオリジンサーバの動作シーケンスの一例を示す図である。 キャッシュサーバ間連携しない分散キャッシュシステムの一例を示す図である。 キャッシュサーバ間連携可能な分散キャッシュシステムの一例を示す図である。 キャッシュサーバ間連携による効果を示すグラフである。
以下、発明の実施形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
<第1実施形態>
図1は、第1実施形態に係る分散キャッシュシステムの一例を示す。第1実施形態の分散キャッシュシステムは、ネットワーク1、複数のネットワーク2a、b、c、・・・(以下、ネットワーク2と総称する。)、複数の端末100a、b、c、・・・(以下、端末100と総称する。)、オリジンサーバ200、及び複数のキャッシュサーバ301a、b、c、・・・(以下、キャッシュサーバ301と総称する。)を備える。
キャッシュサーバ301は、ネットワーク1を介して、オリジンサーバ200、及び他のキャッシュサーバ301と通信接続される。また、キャッシュサーバ301は、ネットワーク2を介して、端末100と通信接続される。
図2は、キャッシュサーバ301のブロック構成の一例を示す。キャッシュサーバ301は、配信部310、連携部311、複製決定部312、及び記憶装置320を備える。
以下、各構成要素の機能及び動作を説明する。
配信部310は、端末100からコンテンツ要求を受信すると、要求されたコンテンツが記憶装置320にキャッシュとして記録されているか否かを確認する。そして、要求されたコンテンツが記憶装置320に記録されている場合、配信部310は、そのコンテンツを、端末100に配信する。一方、要求されたコンテンツが記憶装置320に記録されていなかった場合、連携部311に、キャッシュサーバ間連携により、他のキャッシュサーバ301からコンテンツを取得することを要求する。その結果、他のキャッシュサーバ301からの対象のコンテンツが得られた場合は、これを端末100に配信する。他のキャッシュサーバ301から対象のコンテンツが得られなかった場合は、オリジンサーバ200に対し対象のコンテンツを要求し、応答されたコンテンツを端末100に配信する。
配信部310はさらに、オリジンサーバ200に対して同一のコンテンツを所定の回数要求したこと等を条件にオリジンサーバから得られたコンテンツを記憶装置320にキャッシュとして保持する。
配信部310はまた、端末100からコンテンツへのアクセス数等の情報を含んだコンテンツ情報を、記憶装置320に記録する。コンテンツ情報には、他にもコンテンツの識別子(URL、又はシステムが割り当てた識別子)が含まれ、コンテンツ識別子をキー情報としてコンテンツの情報が参照できる。コンテンツ情報には、他にも、サイズや、メディアのタイプ等、他の情報を含むこととしてもよい。
連携部311は、配信部310の要求に応じて、他のキャッシュサーバが、端末100から要求されたコンテンツを保持するキャッシュサーバ301を探す。
ここで、端末100から要求されたコンテンツを保持するキャッシュサーバ301を探すにあたり、連携候補とするキャッシュサーバ301群のIPアドレス等、アクセスする際に必要な情報が事前に設定されていることを想定する。
キャッシュサーバ301は、連携候補とするキャッシュサーバ群の中から、近い順に、又はランダムに、対象のコンテンツを要求する。その結果、対象のコンテンツを保持するキャッシュサーバ301があった場合は、前記キャッシュサーバ301から対象のコンテンツを取得し、これを配信部310を介して端末100に配信する。
上記の説明では、連携候補のキャッシュサーバに順次問い合わせるものとしたが、他の方法を採用することもできる。例えば、同一局舎内に連携候補のキャッシュサーバが配備されているケースが考えられる。その場合、ブロードキャストやマルチキャスト等の複数のキャッシュサーバに同報可能な手段により、対象のコンテンツを問い合わせ、対象のコンテンツを保持している旨を示す応答を返したキャッシュサーバから対象のコンテンツを取得するようにしてもよい。なお、連携候補のキャッシュサーバの数が多い場合、順次問合せ方法では、対象のコンテンツを発見するまでに長い時間を要してしまう。よって、連携候補とするキャッシュサーバを、システム中の一部のキャッシュサーバに限定することとしてもよい。
連携部311は、他のキャッシュサーバ301から任意のコンテンツを要求された場合で、要求対象のコンテンツを記憶装置320に保持していた場合は、対象のコンテンツを要求元のキャッシュサーバ301に応答する。この際、連携部311は、他のキャッシュサーバからアクセス数をコンテンツ情報の一つとして記憶装置320に記録する。
また、連携部311は、コンテンツの複製をコンテンツの識別子と共に複製決定部312から通知され、その後、他のキャッシュサーバからコンテンツに対するコンテンツ要求があった場合、コンテンツの応答にコンテンツの複製を指示する情報を格納する。このようにして、コンテンツ要求元のキャッシュサーバに対してコンテンツの複製を指示する。ここでは、コンテンツ応答に、コンテンツの複製を指示する情報を格納するとしたが、他の信号でコンテンツの複製を指示するようにしても構わない。
連携部311はまた、コンテンツ応答に、コンテンツの複製を指示する情報が格納されていた場合は、受信したコンテンツをキャッシュとして記憶装置320に保存する。コンテンツ応答とは他の信号でコンテンツの複製を指示された場合も、複製対象のコンテンツを受信した際に、そのコンテンツをキャッシュとして記憶装置320に保存する。
連携部311は、他のキャッシュサーバにコンテンツを要求する際に、キャッシュサーバ301の記憶装置320の空き容量や、負荷を示す情報とを、要求に格納してもよい。ここで、負荷を示す情報とは、例えば、CPU使用率、通信インタフェースの使用率、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数等の情報である。また、コンテンツの複製を指示する側のキャッシュサーバ301の連携部311は、コンテンツ要求側のキャッシュサーバの記憶装置320の空き容量や負荷を示す情報に基づいて、コンテンツの複製の指示対象とするキャッシュサーバを選択するようにしてもよい。
複製決定部312は、キャッシュサーバの通信インタフェースに関する情報を監視している。そして、キャッシュサーバ間連携により同時に送受信しているコンテンツの数、キャッシュサーバ間連携による合計帯域のいずれかが、閾値を超えた場合、キャッシュサーバ間連携を使用しすぎているとみなす。そして、記憶装置320に記録されたコンテンツ情報を参照し、キャッシュサーバ間連携の負荷に寄与している1又は複数のコンテンツを決定する。
閾値は、キャッシュサーバのCPUの性能や、通信インタフェースの性能に依存する値で、事前に設定しておくことができる。さらに、キャッシュサーバ全体の同時コンテンツ送受信数や、配信帯域の合計、CPU負荷率等のように動的に変わる情報に基づき、閾値を補正することとしてもよい。
また、キャッシュサーバ間連携の負荷に寄与していることを判定する際の指標としては、他のキャッシュサーバからのアクセス数が使用できる。また、コンテンツのサイズを、アクセス数に掛けた値を指標とする等、コンテンツのサイズを考慮した指標としてもよい。さらに、他の要素を考慮して、キャッシュサーバ間連携の負荷に寄与していることを判定する指標としてもよい。
複製決定部312は、キャッシュサーバ間連携の負荷に寄与しているコンテンツを決定すると、該当する1又は複数のコンテンツ識別子と共に、他のキャッシュサーバに対して複製を実施させることを決定したことを意味する情報を、連携部311に通知する。
記憶装置320には、キャッシュされたコンテンツ、及びコンテンツ情報が記録される。
コンテンツ情報には、コンテンツの識別子、端末からのアクセス数、他のキャッシュサーバからのアクセス数が含まれる。その他にも、コンテンツのサイズや、メディアタイプといったコンテンツに係る情報を含むものとしても構わない。
以上説明した、配信部310、連携部311、複製決定部312は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。一方、記憶装置320は、半導体メモリ、ハードディスクドライブ等、情報を記録・読み出し可能な装置により構成できる。
次に、図3のフローチャートを用いて第1実施形態のキャッシュサーバ301が、キャッシュされたコンテンツの複製を決定し、他のキャッシュサーバにコンテンツの複製を指示する手順を説明する。
まず、ステップS200で、定期的な契機、又は連携部311が、他キャッシュサーバからのコンテンツ要求を受信した契機で、複製決定部312における複製判定処理を開始する。
次に、ステップS201で、複製決定部312の機能について前に述べたとおり、キャッシュサーバ間連携により同時に送受信しているコンテンツの数や、キャッシュサーバ間連携による帯域等を参照して、コンテンツの複製をすべきか否かを決定する。
次に、ステップS202で、複製判定結果が評価され、複製する場合はステップS203が処理される(S202のY)、複製しない場合は処理を終了する(S202のN)。
ステップS203で、複製決定部312は、他のキャッシュサーバからのアクセス数等を評価指標として、複製対象とする1又は複数のコンテンツを決定する。
最後に、複製決定部312は、連携部311に対して、複製対象のコンテンツの識別子と共に、複製の実施を通知する(S204)。連携部311は、ここで通知されたコンテンツを他のキャッシュサーバから要求された際に、当該コンテンツの応答にコンテンツの複製を指示する情報を格納する等して、コンテンツの応答先となるキャッシュサーバにコンテンツの複製を指示し、処理を終了する。
次に、図4のフローチャートを用いて第1実施形態のキャッシュサーバ301が、端末100からのコンテンツ要求を受信した際の処理の流れを説明する。
まず、配信部310は、端末100からのコンテンツ要求を受信すると、記憶装置320を検索し、要求されたコンテンツを既にキャッシュとして保持しているか否か判定される(S301)。
ここで、キャッシュがあった場合は(S301のY)、配信部310は、記憶装置320から対象のコンテンツを読み出し、これを端末100に配信し(S310)、処理を終了する。
一方、キャッシュがなかった場合(S301のN)、連携部311の機能により、対象のコンテンツを保持している他のキャッシュサーバを発見する処理を実施する。この方法については既に説明した通りである。
そして、対象のコンテンツを保持するキャッシュサーバがあった場合(S303のY)、連携部311は、そのコンテンツを保持するキャッシュサーバ301にコンテンツを要求し、応答されたコンテンツを配信部310を介して端末100に配信する(S304)。このとき、コンテンツ応答に、コンテンツの複製を指示する情報が格納されていた場合は、ステップS305のYに進み、ステップS306で、コンテンツは記憶装置320にキャッシュとして保持される。その後ステップS307で、記憶装置320のコンテンツ情報中のアクセス数等の情報が更新され、処理を終了する。
一方、コンテンツの複製指示がなかった場合(S305のN)、コンテンツは保持せず、ステップS307でコンテンツ情報の更新が行われ、処理が終了する。
ここで、ステップS303に戻り、対象のコンテンツを保持するキャッシュサーバがなかった場合(S303のN)を説明する。この場合、ステップS308で、配信部310はオリジンサーバに対し対象のコンテンツを要求し、オリジンサーバから応答されたコンテンツを端末100に配信する。この際、当該コンテンツに対するアクセス数等の情報に基づき、記憶装置320に当該コンテンツをキャッシュとして保持するか否か判定される。キャッシュとして保持する場合(S309のY)、既に説明したステップS306以降の処理が処理される。一方、キャッシュとして保持しない場合(S309のN)、ステップS307のコンテンツ情報更新が実施され、処理が終了する。
図5は、端末100a、及びキャッシュサーバ301a〜cの動作シーケンスの一例を示す。次に、キャッシュサーバ301cが、キャッシュサーバ301aに対してコンテンツの複製を指示し、キャッシュサーバ301aが、指示に従い、コンテンツをキャッシュとして保持するまでの処理の流れを、より具体的な例を用いて説明する。
ここでの説明にあたり、端末100aは、キャッシュサーバ301a配下に収容された端末であり、当該端末がコンテンツを要求するものとする。そして、要求されたコンテンツは、キャッシュサーバ301cで保持されているものと想定する。
はじめにステップS400で、端末100aのコンテンツ要求をキャッシュサーバ301aが受信する。キャッシュサーバ301aは、要求されたコンテンツをキャッシュとして保持していなので、連携候補のキャッシュサーバのうち、キャッシュサーバ301bに対してコンテンツを要求する。しかし、キャッシュサーバ301bは、要求されたコンテンツを保持していないので、”コンテンツ無し”をキャッシュサーバ301aに応答する(S401)。
キャッシュサーバ301aは、次の候補であるキャッシュサーバ301cに対して、コンテンツを再度要求する(S402)。
このとき、キャッシュサーバ301cでは、複製決定部312の機能により、コンテンツを複製する決定がなされていたものとする。この状態で、ステップS402で、キャッシュサーバ301cがコンテンツを要求されると、キャッシュサーバ301cの連携部311は、要求されたコンテンツを応答する際に、その応答にコンテンツの複製を指示する情報を格納する(S404)。
キャッシュサーバ301aは、コンテンツ複製を指示する情報が格納されたコンテンツを受信すると、これを端末100aに配信すると共に(S405)、記憶装置320にキャッシュとして保持する(S406)。
以上説明したとおり、第1実施形態では、各キャッシュサーバが内部的に得られる情報を使って、キャッシュサーバ間連携による負荷が過剰になったことを判定する。また、キャッシュサーバ間連携による負荷が過剰となっている主たる要因のコンテンツを特定し、当該コンテンツの複製を増やすよう動作する。このように、第1実施形態の分散キャッシュシステムは、管理サーバがない場合でも、キャッシュサーバ間連携を過不足なく使用することができる。また、適切なコンテンツ配置を算出するための通信負荷、及び処理負荷なく、キャッシュサーバ間連携による良好なキャッシュヒット率が得られる。
<第2実施形態>
次に、第2実施形態について図面を参照して詳細に説明する。第2実施形態では、キャッシュサーバ302以外の構成は第1実施形態と同じとなるため、ここでは、キャッシュシステム全体の図は省略する。
第2実施形態のキャッシュサーバ302は、図6に示すように、第1実施形態のキャッシュサーバ301とほぼ同じだが、連携部313、複製決定部314の機能が、第1実施形態の連携部311、複製決定部312と異なる。よってここでは、連携部313、複製決定部314の機能に着目した説明を行う。
複製決定部314は、第1実施形態の複製決定部312とほぼ同じ機能を備えるが、コンテンツの複製を決定した際に、複製対象となるコンテンツを決定すると共に、複製数も決定する。より具体的に説明すると、連携部313対しコンテンツの複製を指示するよう通知する際に、コンテンツ識別子に加え、複製数の情報も含める。
複製決定部314は、複製数を決定する上で、キャッシュサーバ間連携によるアクセス数や同時接続数を参照する。これらの値が閾値を大きく超えた場合等、早急にシステム中のコンテンツの複製を増やす必要が生じた場合、緊急の度合いに応じて複製数を大きな値とすることができる。
連携部313は、第1実施形態の連携部311とほぼ同じ機能を備える。また、連携部313は、複製決定部314から通知された複製数、又は他のキャッシュサーバからのコンテンツ応答としてコンテンツ複製の指示を示す情報と共に格納された複製数のいずれかを受け取る。そして、受け取った複製数に基づき、他のキャッシュサーバが、複製対象となるコンテンツを要求してきた場合には、そのコンテンツの複製を指示する。また、必要に応じて複製数情報も格納することで、さらに他のキャッシュサーバ302にもコンテンツの複製の指示を依頼する。
以上説明した、連携部313、複製決定部314は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。
第2実施形態のキャッシュサーバ302の処理の流れは、図3、図4で示した第1実施形態のキャッシュサーバ301の処理の流れとほぼ同じである。ただし、キャッシュサーバ302は、複製指示を決定する際に、複製数も同時に決定する点が図3に示す処理と異なる。また、キャッシュサーバ302は、通知された複製数に応じて、他のキャッシュサーバから要求されたコンテンツが複製対象だった場合、コンテンツを応答すると共にコンテンツの複製を指示する情報と共に、複製数情報を必要に応じて格納する点も異なる。
また、キャッシュサーバ302の処理は、キャッシュサーバ間連携により他のキャッシュサーバから応答されたコンテンツに複製を指示する情報が含まれているか否か判定する際に、複製数情報の存在も確認する点が図4に示す処理と異なる。そして、複製数情報が格納されていた場合は、これを取得し、これをコンテンツ識別子と共に記録しておく。ここで記録された複製数情報は、上記したように、複製数情報に基づいて他のキャッシュサーバにコンテンツの複製を指示する際に参照される。
第2実施形態の処理の流れをより明確にするため、図7のシーケンス図を用いて第2実施形態の分散キャッシュシステムの処理の流れを説明する。
まず、ステップS500でキャッシュサーバ間連携による通信量が過剰気味となっている状況を想定する。過剰か否かの判定は、先に説明したとおり、例えば、キャッシュサーバ間連携によるコンテンツの同時配信数や通信帯域が、予め決めたおいた閾値を大きく超える場合が考えられる。ただし、同時配信数や、帯域の増加の早さ等、他の指標により過剰であること、又は過剰になりそうなことを判定してもよい。
この状態で、端末100は、キャッシュサーバ302aにコンテンツ要求を実施する(S501)。
キャッシュサーバ302aは、要求されたコンテンツを保持していない場合、そのコンテンツを保持するキャッシュサーバ(ここでは、キャッシュサーバ302bとする。コンテンツを保持するキャッシュサーバを順次的に探す手順はここでは関係ないので省略する。)に対してコンテンツの要求を実施し、要求先のキャッシュサーバ302bは、要求されたコンテンツをキャッシュサーバ302aに応答する。このとき、キャッシュサーバ302bは、キャッシュサーバ間連携が過剰に使用されていることから、コンテンツの複製の指示と共に、複製指示を他のキャッシュサーバに依頼するために、複製数をコンテンツ応答に格納する。そして、これをキャッシュサーバ302aに通知する(S502)。なお、ここでは算出された複製数が8の場合で、かつ、キャッシュサーバ302aに、8つの内の4つ分の複製指示を依頼することを想定している。4つ分のコンテンツ複製を依頼した後、キャッシュサーバ302bが当該コンテンツの複製指示をすべき数は、キャッシュサーバ302aに1つ複製が作られることも考慮し、3(=8−4−1)つとなる。
キャッシュサーバ302aが、コンテンツ応答を受信すると、これを端末100に配信する(S503)。それと共に、複製指示に従い、キャッシュサーバ302aは、受信したコンテンツをキャッシュとして保持する(S504)。
キャッシュサーバ302aはまた、キャッシュの複製数(=4)として複製の指示を依頼されたことで、他のキャッシュサーバにさらに4つ分のコンテンツの複製を指示するための契機を待つ。すなわち、他のキャッシュサーバから、複製対象のコンテンツを要求される契機を待つ。
ここで、ステップS505のように、キャッシュサーバ302cから複製対象のコンテンツが要求された場合には、複製指示を示す情報と、複製数を格納したコンテンツ応答をキャッシュサーバ302cに送信する。ステップS505の例では、キャッシュサーバ302aは、複製数に2を設定したものと想定する。この場合、キャッシュサーバ302aが複製対象のコンテンツに関して、複製指示すべき残り数は1となる(=4−複製を依頼した数2 −キャッシュサーバ302cへの複製1)。
以上説明したとおり、第2実施形態では、複製の実施の決定に加え、複製数を決定し、決定された複製数に応じて、他のキャッシュサーバにも複製指示を依頼するよう構成した。
このようにして、キャッシュサーバ間連携を過剰に使用している場合や、過剰な使用が予測される場合にも、高速にコンテンツの複製数を増やすことができ、システムが破綻する懸念を軽減できる。
<第3実施形態>
次に、第3実施形態について図面を参照して詳細に説明する。第3実施形態では、キャッシュサーバ303以外の構成は第1実施形態と同じとなるため、ここでは、キャッシュシステム全体の図は省略する。
第3実施形態のキャッシュサーバ303は、図8に示すように、第1実施形態のキャッシュサーバ301とほぼ同じだが、連携部315の機能が、第1実施形態の連携部311と異なる。よってここでは、連携部315の機能に着目した説明を行う。
連携部315は、キャッシュサーバ間連携により、他のキャッシュサーバにコンテンツを要求する。そして、これが応答された際に、複製決定部312の機能により、コンテンツの複製が必要で、かつ、応答されたコンテンツが複製対象であった場合には、そのコンテンツをキャッシュとして記憶装置320に保持する点が第1実施形態の連携部311と異なる。それ以外は第1実施形態の連携部311と同様の機能を備える。
即ち、第1実施形態の連携部311は、複製が必要なコンテンツを要求された場合、コンテンツを要求された側のキャッシュサーバが、要求した側のキャッシュサーバに対してコンテンツの複製を指示する。これに対し、第3実施形態の連携部315は、コンテンツ要求元側で、コンテンツの複製の実施の必要性と、複製対象とするコンテンツを決定する点が異なっている。
以上説明した、連携部315は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。
次に、図9のフローチャートを用いて第3実施形態のキャッシュサーバ303が、キャッシュサーバ間連携により、他のキャッシュサーバから配信されるコンテンツを受信した場合に、必要に応じてそのコンテンツをキャッシュする手順を説明する。
まず、ステップS600で、連携部315が他のキャッシュサーバからコンテンツを受信した契機に、複製決定部312における複製判定処理を開始する。
次に、ステップS601で、複製決定部312の機能の説明の箇所に記述したとおり、キャッシュサーバ間連携により同時に送受信しているコンテンツの数や、キャッシュサーバ間連携による帯域等を参照して、コンテンツの複製をすべきか否かを決定する。
次に、ステップS602で、複製判定結果が評価され、複製する場合はステップS603が処理される(S602のY)、複製しない場合は処理を終了する(S602のN)。
ステップS603で、複製決定部312は、他のキャッシュサーバからのアクセス数等を評価指標として、複製対象とする1又は複数のコンテンツを決定する。
次に、連携部315は、他のキャッシュサーバから受信したコンテンツが、ステップS603で決定した複製対象のコンテンツに含まれているか否か判定する(S604)。そして、含まれている場合はYに進みステップS605で当該コンテンツは、記憶装置320にキャッシュとして保持される。一方、ステップS604の判定で、受信したコンテンツが複製対象のコンテンツに含まれていないと判定された場合は、Nに進みキャッシュとして保持せず処理を終了する。
キャッシュサーバ303が端末100からコンテンツ要求を受信した際の処理の流れは、図4に示すステップS305からステップS306までの処理を、図9に示すステップS600からステップS605までの処理で置き換えたものとなる。
次に、図10のシーケンス図を用いて、キャッシュサーバ303aが、端末100から要求されたコンテンツをキャッシュサーバ303cから取得し、そのコンテンツを複製判定結果に基づきキャッシュとして保持するまでの処理の流れを説明する。
ここでの説明にあたり、端末100aは、キャッシュサーバ303a配下に収容された端末であり、当該端末がコンテンツを要求するものとする。そして、要求されたコンテンツは、キャッシュサーバ303aで保持されておらず、キャッシュサーバ301cで保持されている状況を想定する。
はじめにステップS700で、端末100aのコンテンツ要求をキャッシュサーバ303aが受信する。キャッシュサーバ303aは、要求されたコンテンツをキャッシュとして保持していなので、連携候補のキャッシュサーバから選ばれたキャッシュサーバ303bに対してコンテンツを要求する。しかし、キャッシュサーバ303bは、要求されたコンテンツを保持していないので、”コンテンツ無し”をキャッシュサーバ303aに応答する(S701)。
そこでキャッシュサーバ303aは、次の候補であるキャッシュサーバ303cに対して、コンテンツを要求する(S702)。
キャッシュサーバ303cは、ステップS702でコンテンツ要求を受信すると、要求されたコンテンツを保持しているため、当該コンテンツをキャッシュサーバ303aに応答する(S703)。
キャッシュサーバ303aは、コンテンツ応答を受信すると、これを端末100aへと応答すると共に(S704)、図9に示すフローチャートに従い、受信したコンテンツをキャッシュすべきか否かの判定を行う。そして、キャッシュすべきと判断された場合は、当該コンテンツをキャッシュとして保持する(S704)。
以上説明したとおり、第3実施形態では、キャッシュサーバがキャッシュサーバ間連携によりコンテンツを他のキャッシュサーバから受信した際に、コンテンツを受信したキャッシュサーバ側がキャッシュすべきか否かの判定を行う構成とした。このようにして、コンテンツ応答する側のキャッシュサーバは、コンテンツ応答に複製を指示する情報を格納する必要がなくなる。このため、キャッシュサーバ間でコンテンツをやり取りするプロトコルとして、HTTP等、既存のプロトコルを再利用する場合において、既存のプロトコルへの変更が不要となるため、本発明に係わるキャッシュシステムの適用が容易となる。
<第4実施形態>
次に、第4実施形態について図面を参照して詳細に説明する。第4実施形態の分散キャッシュシステムの全体図を図11に示す。ここで名称や、番号が同じ装置やネットワークは、第1実施形態の分散キャッシュシステムの全体図(図1)と同じなので、ここでは説明を省略する。
本発明の第1実施形態に係わる分散キャッシュシステムと異なるのは、キャッシュサーバ304と、管理サーバ401である。
第4実施形態のキャッシュサーバ304は、図12に示すように、第1実施形態のキャッシュサーバ301に加え、さらに情報交換部316を備える。また、連携部317の機能が第1実施形態の連携部311と少し異なる。その他の機能ブロックは第1実施形態のキャッシュサーバ301の構成と同じなので説明を省略する。
情報交換部316は、記憶装置320に保持されたコンテンツのリストを管理サーバ401に通知する機能を有すると共に、管理サーバ401から他のキャッシュサーバ304が保持するコンテンツのリストを取得し、これを記憶装置320に記録する。この際、記憶装置320には、キャッシュサーバ304の識別子と、当該キャッシュサーバが保持するコンテンツのリストが対応付けられて記録される。
情報交換部316が、コンテンツリストを管理サーバに通知するタイミングや、他のキャッシュサーバのコンテンツリストを取得する契機については、例えば、定期的にコンテンツリストの一部又は全てを通知、及び取得するようにしても構わない。また、記憶装置320にコンテンツがキャッシュとして保持されたタイミング、又は記憶装置320の容量が残り少なくなったこと等を理由として、キャッシュが削除されたタイミングで保持するようにしてもよい。または、削除されたコンテンツの情報を管理サーバ401に通知することとしてもよい。さらに、端末100からコンテンツを要求された契機に、要求されたコンテンツの他のキャッシュサーバの保持状況を、管理サーバ401から取得することとしてもよい。
連携部317は、本発明の第1実施形態に係わる連携部311とほぼ同じ機能を有する。また、連携部317は、コンテンツの要求先のキャッシュサーバを決定する際、記憶装置320に記録された他のキャッシュサーバのコンテンツリストを参照する。そして、要求対象のコンテンツを保持するキャッシュサーバを特定した上で、特定されたキャッシュサーバのうちのいずれかをコンテンツ要求先として決定する。これにより、順次的な方法で要求対象のコンテンツを保持するキャッシュサーバを発見する必要はなくなるため、より効率的なキャッシュサーバ間連携が可能となる。
管理サーバ401は、キャッシュサーバ304から通知されたコンテンツリストを保持する。また、キャッシュサーバ304からの要求に応じて、キャッシュシステム中のキャッシュサーバ304のコンテンツリストを応答する。情報交換量を削減するため、応答するコンテンツリストを、コンテンツリストを要求してきたキャッシュサーバ304の周辺のキャッシュサーバについてのコンテンツリストに限定する等、応答する情報を一部に限定することとしてもよい。
本発明の第4実施形態に係わるキャッシュシステムは、管理サーバ401を介して、コンテンツリストを共有することで、より円滑なキャッシュサーバ間連携が可能となるが、一方で、管理サーバ401が必要となり、管理サーバ401とキャッシュサーバ304との間での通信が発生する。しかしこの場合でも、背景技術の問題として挙げた管理サーバの計算負荷、及び通信負荷は、ここでは大きな問題とならない。その理由は、第4実施形態の管理サーバ401の備える機能が、限定的な情報を仲介する機能に絞られているためである。より具体的には、情報交換すべき情報は、コンテンツリストに限定されており、また、管理サーバ401では、各キャッシュサーバへのコンテンツ配置の計算と、計算されたコンテンツ配置にするためにキャッシュサーバを制御する必要がないためである。
以上説明した、情報交換部316、連携部317は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。
管理サーバ401は、上述した機能をソフトウェアで実装し、CPUや、記憶装置を搭載したサーバ上で実施できる
本発明の第4実施形態に係わるキャッシュサーバ304の動作の流れは、図4で既に示した、第1実施形態のキャッシュサーバ301が、端末100からコンテンツ要求を受信した際の処理とほぼ同じとなる。異なるのは、ステップS302でコンテンツの要求先とするキャッシュサーバを発見に際して、管理サーバ401から取得したコンテンツリストを参照する点だけである。
第4実施形態に係わる分散キャッシュシステムでは、第1実施形態の分散キャッシュシステムに対して、管理サーバ401をさらに備える。キャッシュサーバ304は、管理サーバ401とコンテンツリストを交換するための情報交換部316を備える。連携部317は、情報交換部316により管理サーバ401から得た他のキャッシュサーバのコンテンツリストを利用して、コンテンツ要求先とするキャッシュサーバを決定する。この第1実施形態と第4実施形態の差分となる要素は、同じように、第2実施形態、第3実施形態の構成に対しても、第1実施形態と同様に適用できる。
以上説明したとおり、第4実施形態では、キャッシュサーバは、他のキャッシュサーバからコンテンツを取得する際に、管理サーバにより得られたコンテンツリストを使って、コンテンツの要求先を決定することで、より効率的なキャッシュサーバ間連携を実現できる。
<第5実施形態>
次に、第5実施形態について図面を参照して詳細に説明する。第5実施形態では、第4実施形態の管理サーバ401の機能を、各キャッシュサーバ305が分担する構成となる。よって、第5実施形態の分散キャッシュシステムでは管理サーバ401が不要となる。このため、第5実施形態の分散キャッシュシステムの構成は、第1実施形態と同様となるので、図は省略する。
第5実施形態のキャッシュサーバ305は、図13に示すように、第4実施形態のキャッシュサーバ304に加え、さらに管理サーバ機能318を備える。
管理サーバ機能318は、第4実施形態における管理サーバ401が備える機能と同様に、他のキャッシュサーバ305の情報交換部316とコンテンツリストの情報を交換する。ただし、全てのコンテンツについてのリストを管理するのではなく一部のコンテンツを管理する点が、第4実施形態における管理サーバ401と異なっている。各キャッシュサーバ305の管理サーバ機能318が管理対象とするコンテンツを決定する方法は後述する。
情報交換部316’は、基本的に第4実施形態の情報交換部316と同じ機能を備える。そして、情報交換部316’は、コンテンツリストの通知先、及び取得先とするのが管理サーバ401ではなく、他のキャッシュサーバ305の管理サーバ機能318である点が異なる。また、コンテンツ毎にコンテンツ通知先・取得先とするキャッシュサーバを決定する点が異なる。
情報交換部316’が、コンテンツ毎にコンテンツリストの通知先・取得先とするキャッシュサーバを決定する方法の一例を以下に示す。
ここで、各キャッシュサーバには0から連続した値となるキャッシュサーバインデックス(CacheServerIndex)が割当てられている。そして、キャッシュサーバインデックスと分散キャッシュシステム中のキャッシュサーバの数(NumOfCacheServer)が、各キャッシュサーバで共有されているものとする。
このとき、情報交換部316’は、コンテンツの識別子がContentIDであるコンテンツをキャッシュとして保持した契機、削除した契機、又は定期的な契機で、そのコンテンツの保持状態を通知するキャッシュサーバを決定する。その際、式(2)に示す計算によりキャッシュサーバインデックスを求める。そして、得られたキャッシュサーバインデックスが割り当てられたキャッシュサーバをコンテンツのコンテンツリスト通知先として決定する。
Figure 2013047207
ここで、Hash(x)は、MD5や、SHA1等のハッシュ関数によりxのハッシュ値を算出する処理を示す。また、x%yは、xをyで割った際の剰余を意味する。
あるコンテンツを保持しているキャッシュサーバの情報を取得するため、コンテンツのコンテンツリストを管理するキャッシュサーバを決定する場合にも、式2を使用する。即ち、式2により得られたキャッシュサーバインデックスが割り当てられたキャッシュサーバをコンテンツリスト取得先とする。
上に示した、キャッシュリストの分担方法は、あくまで一例であり、他の方法でコンテンツリストを分担管理こととしても構わない。
以上説明した、情報交換部316’、管理サーバ機能318は、その全てをソフトウェアで実装し、CPU上で動作させることで実施できる。または、その一部又は全てをハードウェアで構成することも可能である。
以上説明したとおり、第5実施形態では、管理サーバの機能を、各キャッシュサーバで分担管理することで、管理サーバがない場合でも、効率的なキャッシュサーバ間連携を実現できる。
第1実施形態に係わるキャッシュシステムは、各キャッシュサーバが内部的に得られる情報を使って、キャッシュサーバ間連携による負荷が過剰になったことを判定し、キャッシュサーバ間連携による負荷が過剰となっている主たる要因のコンテンツを特定し、そのコンテンツの複製を増やす。これにより、管理サーバがない場合でも、キャッシュサーバ間連携を過不足なく使用することができる。そして、適切なコンテンツ配置を算出するための通信負荷、及び処理負荷なく、キャッシュサーバ間連携による良好なキャッシュヒット率が得られる分散キャッシュシステムを提供することができる。
第2実施形態に係わるキャッシュシステムによれば、複製の実施の決定に加え、複製数を決定し、決定された複製数に応じて、他のキャッシュサーバにも複製指示を依頼するよう構成した。このようにして、キャッシュサーバ間連携を過剰に使用している場合や、過剰な使用が予測される場合にも、高速にコンテンツの複製数を増やすことができ、システムが破綻する懸念を軽減できる。
第3実施形態係わるキャッシュシステムによれば、キャッシュサーバがキャッシュサーバ間連携によりコンテンツを他のキャッシュサーバから受信した際に、コンテンツを受信したキャッシュサーバ側がキャッシュすべきか否かの判定を行う構成とした。このようにして、コンテンツ応答する側のキャッシュサーバは、コンテンツ応答に複製を指示する情報を格納する必要がなくなる。
このため、キャッシュサーバ間でコンテンツをやり取りするプロトコルとして、HTTP等、既存のプロトコルを再利用する場合において、既存のプロトコルへの変更が不要となるため、本発明の適用が容易となる。
第4実施形態に係わるキャッシュシステムによれば、キャッシュサーバは、他のキャッシュサーバからコンテンツを取得する際に、管理サーバにより得られたコンテンツリストを使って、コンテンツの要求先を決定することで、より効率的なキャッシュサーバ間連携を実現できる。
第5実施形態に係わるキャッシュシステムによれば、管理サーバの機能を、各キャッシュサーバで分担管理することで、管理サーバがない場合でも、効率的なキャッシュサーバ間連携を実現できる。
本発明に係わる分散キャッシュシステムを、固定ISPのネットワーク、又はモバイルネットワークに適用することで、分散キャッシュシステムにおけるキャッシュサーバ間連携を活用した高いキャッシュヒット率を得ることができる。これにより、相互接続点(POI:Point Of Interface)上のトラヒックを効果的に削減でき、ネットワークのオペレータはOPEX(OPeration EXpense)を削減できる。さらに、コンテンツの複製等の制御を分散処理できるようにしたことで、高いスケーラビリティと、高可用性が実現できる。
以上、本発明に係わるキャッシュシステムについて実施形態を用いて説明したが、本発明の技術的範囲は、上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
本願は、2011年9月30日に、日本に出願された特願2011−215850号に基づき優先権を主張し、その内容をここに援用する。
本発明に係わるキャッシュシステムによれば、管理サーバを必須とせず、個々のキャッシュサーバが持ちうる情報に基づき効果的なキャッシュサーバ間連携を実現し得るキャッシュシステム、キャッシュ方法、及びキャッシュサーバを提供することができる。
1 ネットワーク
2 ネットワーク
100 端末
200 オリジンサーバ
301 キャッシュサーバ
302 キャッシュサーバ
303 キャッシュサーバ
304 キャッシュサーバ
305 キャッシュサーバ
310 配信部
311 連携部
312 複製決定部
313 連携部
314 複製決定部
315 連携部
316 情報交換部
316’ 情報交換部
317 連携部
318 管理サーバ機能
320 記憶装置
401 管理サーバ

Claims (30)

  1. オリジンサーバと、
    端末から要求されたコンテンツを、前記オリジンサーバの代わりに配信する複数のキャッシュサーバと
    を備え、
    前記キャッシュサーバは、
    前記端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して前記端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御を行うキャッシュシステム。
  2. 前記指標は、キャッシュサーバ間でのコンテンツ送受信に関わるトラヒック量、キャッシュサーバ間の同時セッション数、キャッシュサーバの通信インタフェース使用量、CPU使用率の少なくともいずれかにより得られた指標である請求項1に記載のキャッシュシステム。
  3. 前記キャッシュサーバは、コンテンツの複製を決定する際に、少なくとも、前記キャッシュサーバが保持するコンテンツへのアクセス数、コンテンツのサイズのいずれかに基づいて、複製対象とする1又は複数のコンテンツを決定する請求項1又は2に記載のキャッシュシステム。
  4. 前記キャッシュサーバはコンテンツの複製の実施を決定し、複製対象とする1又は複数のコンテンツを決定した後で、前記キャッシュシステムを構成する他のキャッシュサーバから前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する請求項3に記載のキャッシュシステム。
  5. 前記キャッシュサーバは、コンテンツの複製の実施を決定した際に、複製対象とする1又は複数のコンテンツを決定すると共に、コンテンツの複製数を決定し、
    前記キャッシュシステムを構成する他のキャッシュサーバから、前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する情報に加え、前記決定したコンテンツ複製数のうち、前記要求元のキャッシュサーバに複製の指示を依頼する数に設定した複製数を通知し、
    前記コンテンツの要求元のキャッシュサーバは、前記複製数を受信すると、複製数分の複製の指示を依頼されたものとして、複製数の分だけ、他のキャッシュサーバにコンテンツの複製を指示するか、又は他のキャッシュサーバに複製数を通知することで、コンテンツの複製の指示を依頼する請求項4に記載のキャッシュシステム。
  6. 前記キャッシュサーバは、他のキャッシュサーバにコンテンツを要求する際に、前記要求に、前記キャッシュサーバの記憶容量の空き情報、CPU使用状況、通信インタフェース使用量、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数、の少なくともいずれかをキャッシュサーバ負荷情報として格納し、
    前記キャッシュサーバのコンテンツ要求を受信したキャッシュサーバは、前記コンテンツ要求から取得した前記キャッシュサーバ負荷情報に基づき、コンテンツ複製指示の対象とするキャッシュサーバを決定する請求項4に記載のキャッシュシステム。
  7. 前記キャッシュサーバは、他のキャッシュサーバからコンテンツを取得した際に、取得したコンテンツが複製対象として決定したコンテンツに含まれていた場合は、前記コンテンツをキャッシュとして保持する請求項3に記載のキャッシュシステム。
  8. 前記キャッシュサーバは、端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、順次的な方法、又は同報的な方法により、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項1又は2に記載のキャッシュシステム。
  9. 前記キャッシュサーバは、自キャッシュサーバが保持するコンテンツ情報を管理サーバに通知し、
    前記キャッシュサーバが端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、前記管理サーバから得られた情報に基づき、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項1又は2に記載のキャッシュシステム。
  10. 前記管理サーバに相当する機能を、各キャッシュサーバが分担し、各キャッシュサーバは、コンテンツの識別子に基づいて、コンテンツ毎にコンテンツの保有情報を管理を担当するキャッシュサーバを決定する請求項9に記載のキャッシュシステム。
  11. オリジンサーバと、端末から要求されたコンテンツを、前記オリジンサーバの代わりに配信する複数のキャッシュサーバとを備えるキャッシュシステムにおけるキャッシュ方法であって、
    前記キャッシュサーバは、
    前記端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して前記端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御を行う。
  12. 前記指標は、キャッシュサーバ間でのコンテンツ送受信に関わるトラヒック量、キャッシュサーバ間の同時セッション数、キャッシュサーバの通信インタフェース使用量、CPU使用率の少なくともいずれかにより得られた指標である請求項11に記載のキャッシュ方法。
  13. 前記キャッシュサーバは、コンテンツの複製を決定する際に、少なくとも、前記キャッシュサーバが保持するコンテンツへのアクセス数、コンテンツのサイズのいずれかに基づいて、複製対象とする1又は複数のコンテンツを決定する請求項11又は12に記載のキャッシュ方法。
  14. 前記キャッシュサーバはコンテンツの複製の実施を決定し、複製対象とする1又は複数のコンテンツを決定した後で、前記キャッシュ方法を構成する他のキャッシュサーバから前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する請求項13に記載のキャッシュ方法。
  15. 前記キャッシュサーバは、コンテンツの複製の実施を決定した際に、複製対象とする1又は複数のコンテンツを決定すると共に、コンテンツの複製数を決定し、
    前記キャッシュ方法を構成する他のキャッシュサーバから、前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する情報に加え、前記決定したコンテンツ複製数のうち、前記要求元のキャッシュサーバに複製の指示を依頼する数に設定した複製数を通知し、
    前記コンテンツの要求元のキャッシュサーバは、前記複製数を受信すると、複製数分の複製の指示を依頼されたものとして、複製数の分だけ、他のキャッシュサーバにコンテンツの複製を指示するか、又は他のキャッシュサーバに複製数を通知することで、コンテンツの複製の指示を依頼する請求項14に記載のキャッシュ方法。
  16. 前記キャッシュサーバは、他のキャッシュサーバにコンテンツを要求する際に、前記要求に、前記キャッシュサーバの記憶容量の空き情報、CPU使用状況、通信インタフェース使用量、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数、の少なくともいずれかをキャッシュサーバ負荷情報として格納し、
    前記キャッシュサーバのコンテンツ要求を受信したキャッシュサーバは、前記コンテンツ要求から取得した前記キャッシュサーバ負荷情報に基づき、コンテンツ複製指示の対象とするキャッシュサーバを決定する請求項14に記載のキャッシュ方法。
  17. 前記キャッシュサーバは、他のキャッシュサーバからコンテンツを取得した際に、取得したコンテンツが複製対象として決定したコンテンツに含まれていた場合は、前記コンテンツをキャッシュとして保持する請求項13に記載のキャッシュ方法。
  18. 前記キャッシュサーバは、端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、順次的な方法、又は同報的な方法により、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項11又は12に記載のキャッシュ方法。
  19. 前記キャッシュサーバは、自キャッシュサーバが保持するコンテンツ情報を管理サーバに通知し、
    前記キャッシュサーバが端末からコンテンツを要求された場合で、自キャッシュサーバが前記コンテンツを保持していなかった場合は、前記管理サーバから得られた情報に基づき、前記要求されたコンテンツを保持しているキャッシュサーバを発見する請求項11又は12に記載のキャッシュ方法。
  20. 前記管理サーバに相当する機能を、各キャッシュサーバが分担し、各キャッシュサーバは、コンテンツの識別子に基づいて、コンテンツ毎にコンテンツの保有情報を管理を担当するキャッシュサーバを決定する請求項19に記載のキャッシュ方法。
  21. 端末から要求されたコンテンツを、オリジンサーバの代わりに配信するキャッシュサーバであって、
    前記端末から要求されたコンテンツを保持していない場合に、前記コンテンツを保持する他のキャッシュサーバから取得して前記端末に配信するにあたり、他のキャッシュサーバとコンテンツを送受信することによる負荷を示す指標に基づいて、コンテンツの複製の制御を行うキャッシュサーバ。
  22. 前記指標は、キャッシュサーバ間でのコンテンツ送受信に関わるトラヒック量、キャッシュサーバ間の同時セッション数、キャッシュサーバの通信インタフェース使用量、CPU使用率の少なくともいずれかにより得られた指標である請求項21に記載のキャッシュサーバ。
  23. コンテンツの複製を決定する際に、少なくとも、前記キャッシュサーバが保持するコンテンツへのアクセス数、コンテンツのサイズのいずれかに基づいて、複製対象とする1又は複数のコンテンツを決定する請求項21又は22に記載のキャッシュサーバ。
  24. コンテンツの複製の実施を決定し、複製対象とする1又は複数のコンテンツを決定した後で、前記キャッシュサーバを構成する他のキャッシュサーバから前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する請求項23に記載のキャッシュサーバ。
  25. 前記コンテンツの応答を受信すると、複製指示に従って、コンテンツ応答により得られたコンテンツ端末に配信すると共に、キャッッシュとして保持する請求項24に記載のキャッシュサーバ。
  26. コンテンツの複製の実施を決定した際に、複製対象とする1又は複数のコンテンツを決定すると共に、コンテンツの複製数を決定し、
    前記キャッシュサーバを構成する他のキャッシュサーバから、前記キャッシュサーバに対して、前記決定されたコンテンツのうちのいずれかのコンテンツが要求された場合、コンテンツの要求元となるキャッシュサーバに対し、前記コンテンツを応答すると共に、前記コンテンツをキャッシュとして保持するよう指示する情報に加え、前記決定したコンテンツ複製数のうち、前記要求元のキャッシュサーバに複製の指示を依頼する数に設定した複製数を通知する請求項24に記載のキャッシュサーバ。
  27. 前記コンテンツの要求を受信すると、複製数分の複製の指示を依頼されたものとして、複製数の分だけ、他のキャッシュサーバにコンテンツの複製を指示するか、又は他のキャッシュサーバに複製数を通知することで、コンテンツの複製の指示を依頼する請求項26に記載のキャッシュサーバ。
  28. 他のキャッシュサーバにコンテンツを要求する際に、前記要求に、前記キャッシュサーバの記憶容量の空き情報、CPU使用状況、通信インタフェース使用量、他のキャッシュサーバとのコンテンツ送受信に関わるトラヒック量、同時接続数、の少なくともいずれかをキャッシュサーバ負荷情報として格納する請求項24に記載のキャッシュサーバ。
  29. 前記コンテンツの要求を受信した場合、前記コンテンツの要求から取得した前記負荷を示す指標に基づき、コンテンツ複製指示の対象とするキャッシュサーバを決定する請求項24に記載のキャッシュサーバ。
  30. 他のキャッシュサーバからコンテンツを取得した際に、取得したコンテンツが複製対象として決定したコンテンツに含まれていた場合は、前記コンテンツをキャッシュとして保持する請求項23に記載のキャッシュサーバ。
JP2013536154A 2011-09-30 2012-09-12 キャッシュシステム、キャッシュ方法、及びキャッシュサーバ Pending JPWO2013047207A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013536154A JPWO2013047207A1 (ja) 2011-09-30 2012-09-12 キャッシュシステム、キャッシュ方法、及びキャッシュサーバ

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011215850 2011-09-30
JP2011215850 2011-09-30
JP2013536154A JPWO2013047207A1 (ja) 2011-09-30 2012-09-12 キャッシュシステム、キャッシュ方法、及びキャッシュサーバ

Publications (1)

Publication Number Publication Date
JPWO2013047207A1 true JPWO2013047207A1 (ja) 2015-03-26

Family

ID=47995241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013536154A Pending JPWO2013047207A1 (ja) 2011-09-30 2012-09-12 キャッシュシステム、キャッシュ方法、及びキャッシュサーバ

Country Status (2)

Country Link
JP (1) JPWO2013047207A1 (ja)
WO (1) WO2013047207A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6984097B2 (ja) 2014-02-19 2021-12-17 レベル スリー コミュニケーションズ,エルエルシー エッジプロキシを持つコンテンツデリバリネットワークアーキテクチャ
US9906590B2 (en) * 2015-08-20 2018-02-27 Verizon Digital Media Services Inc. Intelligent predictive stream caching
JP6861181B2 (ja) * 2018-03-28 2021-04-21 日本電信電話株式会社 性能影響評価装置及び性能影響評価方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155712A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ配送方法及び分散キャッシュ配送プログラムを記憶した媒体
JP2005312064A (ja) * 2005-04-28 2005-11-04 Nec Corp ネットワークシステム、キャッシュサーバ、キャッシュサーバ制御方法及び記録媒体
JP2006235736A (ja) * 2005-02-22 2006-09-07 Ricoh Co Ltd クラスタシステムのキャッシュ同期制御方法
JP2006244121A (ja) * 2005-03-03 2006-09-14 Hitachi Ltd キャッシュシステム及びキャッシュサーバ
JP2010009448A (ja) * 2008-06-30 2010-01-14 Nec Corp 分散情報配置システム
JP2010113402A (ja) * 2008-11-04 2010-05-20 Nippon Telegr & Teleph Corp <Ntt> キャッシュサーバへのコンテンツ配信方法とシステムおよびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155712A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ配送方法及び分散キャッシュ配送プログラムを記憶した媒体
JP2006235736A (ja) * 2005-02-22 2006-09-07 Ricoh Co Ltd クラスタシステムのキャッシュ同期制御方法
JP2006244121A (ja) * 2005-03-03 2006-09-14 Hitachi Ltd キャッシュシステム及びキャッシュサーバ
JP2005312064A (ja) * 2005-04-28 2005-11-04 Nec Corp ネットワークシステム、キャッシュサーバ、キャッシュサーバ制御方法及び記録媒体
JP2010009448A (ja) * 2008-06-30 2010-01-14 Nec Corp 分散情報配置システム
JP2010113402A (ja) * 2008-11-04 2010-05-20 Nippon Telegr & Teleph Corp <Ntt> キャッシュサーバへのコンテンツ配信方法とシステムおよびプログラム

Also Published As

Publication number Publication date
WO2013047207A1 (ja) 2013-04-04

Similar Documents

Publication Publication Date Title
CN102523256B (zh) 内容的管理方法的方法、装置和系统
US8924460B2 (en) Method and system of administrating a peer-to-peer file sharing network
CN100588172C (zh) 一种实现网络预订存储的系统和方法
JP4938074B2 (ja) リソースの位置情報の要求方法、当該方法のためのユーザノードおよびサーバ
JP2004246632A (ja) データ分配サーバ、プログラム及びネットワークシステム
JP2010504668A (ja) リソース配信の方法、システム、およびエッジサーバ
KR20130088774A (ko) 분할 콘텐트 전달 시스템 및 방법
JP2010522386A (ja) P2pコンテンツ共有のための方法、システム、及びノード
WO2011157150A2 (zh) 数据处理方法、缓存节点、协作控制器及系统
JP2007066161A (ja) キャッシュシステム
JP5847185B2 (ja) コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置
WO2009152754A1 (zh) 一种基于对等存储网络提供内容的方法、系统和设备
JP2012504282A (ja) 選択的データ転送ストレージ
KR20090097034A (ko) 피어 투 피어 통신에서의 피어 선정 방법 및 그 시스템
JP5259835B2 (ja) データノード装置、ピア情報取得方法およびシステム
WO2012075970A1 (zh) 一种获取媒体内容的方法、设备及系统
US9781033B2 (en) Providing requested content in an overlay information centric networking (O-ICN) architecture
JP2018536356A (ja) 情報指向ネットワークにおいてコンテキスト認識型コンテンツ要求をサポートするためのシステムおよび方法
WO2013047207A1 (ja) キャッシュシステム、キャッシュ方法、及びキャッシュサーバ
CN109873855A (zh) 一种基于区块链网络的资源获取方法和系统
JP2011118593A (ja) データ転送サーバ、データ転送システム、データ転送方法およびプログラム
JP5399276B2 (ja) コンテンツ配信システムと方法およびプログラム
KR20130033252A (ko) 서비스 오버레이 네트워크에서 종단간 QoS 보장형 콘텐츠 전달 방법 및 그 시스템
WO2013083085A1 (zh) 数据获取方法及装置
CN109644160B (zh) 通过分类在icn中进行名称解析和制作者选择的混合方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170307