JP2004264956A - キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ - Google Patents
キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ Download PDFInfo
- Publication number
- JP2004264956A JP2004264956A JP2003052579A JP2003052579A JP2004264956A JP 2004264956 A JP2004264956 A JP 2004264956A JP 2003052579 A JP2003052579 A JP 2003052579A JP 2003052579 A JP2003052579 A JP 2003052579A JP 2004264956 A JP2004264956 A JP 2004264956A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- server
- deleted
- metrics
- cache 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【解決手段】上位キャッシュサーバ20のメトリックス累積部65は、下位キャッシュサーバ22において削除されるオブジェクトの参照回数の通知を受けて、キャッシュバッファ52のメトリックス管理用エントリ55の参照回数を累積加算する。評価部66は、削除されるオブジェクトの累積参照回数にもとづいて、そのオブジェクトをキャッシュするかどうかを判断し、キャッシュ移動制御部62はその判断結果にもとづいて、下位キャッシュサーバ22からそのオブジェクトのデータを受信する。キャッシュ管理部60は、受信されたオブジェクトのデータを新たなキャッシュオブジェクト56としてキャッシュオブジェクト記憶部58に格納し、キャッシュエントリ54を新たに設けて管理する。
【選択図】 図4
Description
【発明の属する技術分野】
この発明はキャッシュ技術、とくにネットワークにおけるキャッシュ管理方法およびその方法を利用可能なキャッシュサーバに関する。
【0002】
【従来の技術】
インターネットでWWW(World Wide Web)によるサービスを提供する際、サーバやルータの処理能力、通信回線の帯域幅などに制限があるため、プロキシキャッシュサーバをネットワーク上に設け、クライアントのWebオブジェクトに対するアクセス要求を代理するとともに、アクセスされたオブジェクトを一時的に保持して、処理性能を確保することが一般的に行われている。クライアントがサーバにアクセスしてオブジェクトを取得したとき、プロキシキャッシュサーバにそのオブジェクトのキャッシュデータが保持される。プロキシキャッシュサーバは、クライアントから再度同じオブジェクトに対する要求があったとき、サーバにアクセス要求を送る代わりに、そのキャッシュデータをクライアントに送信する。これによりサーバやルータにかかる負荷を軽減し、ネットワークトラフィックを削減して、ネットワークリソースの利用効率を向上させるとともに、サービスの応答時間の改善を図ることができる。
【0003】
プロキシキャッシュの利用効率を高めるためには、オブジェクトをキャッシュするために十分な記憶容量をもった大規模記録装置が必要になる。ブロードバンドのネットワークが普及するにつれて、映像や音楽など容量の大きいコンテンツの利用が盛んになるため、プロキシサーバにおいて記録装置を増設するだけでは対応しきれず、プロキシキャッシュの効率的な運用がより一層求められる。
【0004】
プロキシキャッシュの性能は、キャッシュのエントリの置換ポリシーに大きく左右される。新たなオブジェクトをキャッシュするためのメモリスペースを確保するためには、既にキャッシュされているオブジェクトを削除しなければならない。キャッシュオブジェクトのメトリックスを何らかの方法で評価して、どのキャッシュオブジェクトを削除するのが効率的であるかを決めるのが置換ポリシーである。プロキシキャッシュの効率化のために、最終アクセス時刻、アクセス頻度、オブジェクトサイズなどのメトリックスを用いた、さまざまな置換ポリシーが検討されている(たとえば、非特許文献1参照)。
【0005】
【非特許文献1】
G. Barish and K. Obraczka, ”World Wide Web caching: Trends and techniques,” IEEE Commun. Mag., vol.38, no.5, pp.178−184, May 2000.
【0006】
【発明が解決しようとする課題】
これまで提案されているプロキシキャッシュの置換ポリシーは、1つのプロキシキャッシュサーバ内のローカルなプロキシキャッシュに対して作用するものであり、プロキシキャッシュサーバが自分のキャッシュオブジェクトにはもはや利用価値がないと判断した時点で、そのキャッシュオブジェクトは直ちにキャッシュメモリから削除される。しかしながら、キャッシュオブジェクトの利用価値は、本来はネットワーク全体において評価すべきものである。オブジェクトのアクセス時間を短縮し、ネットワークトラフィックを削減するためには、オブジェクトのキャッシュをネットワーク上に適切に分散させる必要があり、個々のプロキシキャッシュサーバ内のローカルな置換ポリシーだけに頼っていては、プロキシキャッシュの性能を十分に引き出すことはできない。
【0007】
本発明はこうした状況に鑑みてなされたものであり、その目的は、キャッシュオブジェクトの利用効率を向上することのできるキャッシュ管理方法、およびその方法を利用可能なキャッシュサーバを提供することにある。
【0008】
【課題を解決するための手段】
本発明のある態様はキャッシュ管理方法に関する。この方法は、階層的に構成されたキャッシュサーバのネットワークにおいて、下位階層の複数のキャッシュサーバにキャッシュされるオブジェクトのメトリックスを上位階層の少なくとも1つのキャッシュサーバにおいて累積評価し、下位階層のキャッシュサーバの1つにおいてキャッシュオブジェクトが削除されるとき、累積評価されたメトリックスに応じて、その削除されるキャッシュオブジェクトを下位階層のキャッシュサーバから上位階層のキャッシュサーバに転送してキャッシュするかどうかを決定する。ここで、サーバからクライアントに提供されるオブジェクトのネットワーク経路上で、クライアント側を下位、サーバ側を上位とし、ネットワーク経路上のキャッシュサーバの相対的な位置関係により、キャッシュサーバの階層の上下関係を定めることができる。
【0009】
下位階層のキャッシュサーバがキャッシュオブジェクトを削除するときに限り、上位階層のキャッシュサーバにおいてそのキャッシュオブジェクトのメトリックスが累積されるようにしてもよい。これにより、下位階層のキャッシュサーバでオブジェクトが削除される前にメトリックスを上位階層のキャッシュサーバで累積することができる。また、メトリックスの累積を下位階層のキャッシュサーバで削除されるキャッシュに限ったことにより、下位階層のキャッシュサーバでキャッシュされている多数のオブジェクトについてメトリックスを累積することを避け、キャッシュサーバ間の通信量を最小限に抑えることができる。また、下位階層のキャッシュサーバでキャッシュオブジェクトが削除されるタイミングに限ってメトリックスを累積するため、メトリックスの累積漏れが起きたり、重複加算が起きるのを防ぐことができる。
【0010】
上位階層のキャッシュサーバにおいては、累積評価されたメトリックスにもとづく置換ポリシーにしたがってキャッシュオブジェクトが管理されてもよい。累積されたメトリックスを用いることにより、上位階層のキャッシュサーバを経由してオブジェクトが提供される複数のクライアント全体で、オブジェクトに対するアクセス状況を考慮し、キャッシュの置換ポリシーを実現することができる。
【0011】
本発明の別の態様はキャッシュサーバに関する。このキャッシュサーバは、階層的に構成されたキャッシュサーバのネットワークにおいて、相対的に見て下位階層にあるキャッシュサーバであり、クライアントへ提供されるオブジェクトをキャッシュして保持するキャッシュ記憶部と、所定のメトリックスにもとづく置換ポリシーにしたがってキャッシュオブジェクトの管理を行うキャッシュ管理部と、前記置換ポリシーにしたがって削除されるキャッシュオブジェクトのメトリックスに限り、上位階層のキャッシュサーバに通知するメトリックス通知部と、前記上位階層のキャッシュサーバから送信要求があった場合に、その削除されるキャッシュオブジェクトを前記上位階層のキャッシュサーバに移動させる移動制御部とを含む。
【0012】
本発明のさらに別の態様もキャッシュサーバに関する。このキャッシュサーバは、階層的に構成されたキャッシュサーバのネットワークにおいて、相対的に見て上位階層にあるキャッシュサーバであり、クライアントへ提供されるオブジェクトをキャッシュして保持するキャッシュ記憶部と、下位階層にある複数のキャッシュサーバから通知されるキャッシュオブジェクトのメトリックスを累積してオブジェクト毎にトータルメトリックスを算出するメトリックス累積部と、前記トータルメトリックスにもとづく置換ポリシーにしたがって前記キャッシュ記憶部に保持されたキャッシュオブジェクトの管理を行うキャッシュ管理部と、下位階層のキャッシュサーバから削除されるキャッシュオブジェクトの通知を受けた場合に、前記トータルメトリックスにもとづいてその削除されるキャッシュオブジェクトを保持するかどうかを決定する評価部と、前記評価部がその削除されるキャッシュオブジェクトを保持すると決定した場合、下位階層にあるキャッシュサーバからその削除されるキャッシュオブジェクトを取得して、そのキャッシュオブジェクトを前記キャッシュ管理部に新たに管理させる移動制御部とを含む。
【0013】
前記メトリックス累積部は、下位階層のキャッシュサーバがそのキャッシュサーバの置換ポリシーにしたがってキャッシュオブジェクトを削除する際に、そのキャッシュオブジェクトのメトリックスの通知を受け、前記トータルメトリックスに累積してもよい。
【0014】
本発明のさらに別の態様はコンピュータプログラムに関する。このプログラムは、下位階層にある複数のキャッシュサーバの各々からキャッシュオブジェクトの削除時に通知される当該キャッシュオブジェクトのメトリックスを累積してオブジェクト毎にトータルメトリックスを算出するステップと、下位階層のキャッシュサーバから削除されるキャッシュオブジェクトの通知を受けて、前記トータルメトリックスにもとづいてその削除されるキャッシュオブジェクトを保持するかどうかを決定するステップと、その削除されるキャッシュオブジェクトを保持すると決定した場合、下位階層にあるキャッシュサーバからその削除されるキャッシュオブジェクトを取得するステップと、取得されたキャッシュオブジェクトを前記トータルメトリックスにもとづく置換ポリシーにしたがって管理するステップとをコンピュータに実行させる。
【0015】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、サーバ、システム、コンピュータプログラム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【0016】
【発明の実施の形態】
図1は、実施の形態に係るキャッシュサーバを含むネットワーク全体の構成図である。クライアント10a〜10c(以下、これらを総称するときはクライアント10と呼ぶ)は、インターネット経由で、サーバ14a、14b(以下、これらを総称するときはサーバ14と呼ぶ)が提供するWebページや画像、オーディオなどのオブジェクトにアクセスする。
【0017】
インターネットに配置された複数のキャッシュサーバ12a〜12eは、クライアント10からサーバ14へのオブジェクトのアクセス要求を代理するプロキシサーバとしての機能をもち、サーバ14から取得したオブジェクトのデータを中継してクライアント10へ提供するとともに、そのオブジェクトのデータを将来の使用に備えて一時的にキャッシュする。
【0018】
これらのキャッシュサーバ12a〜12eは、サーバ14a、14bからクライアント10a〜10cに至るネットワークの経路上で階層構造を成し、クライアント10a〜10cがアクセスしたオブジェクト#1〜#4のデータをキャッシュする。たとえば、クライアント10aがサーバ14aにオブジェクト#2のアクセス要求を送ると、まずクライアント10aに最も近い位置にあるキャッシュサーバ12bがオブジェクト#2のアクセス要求を代理し、そのキャッシュサーバ12bから見て上位にあるキャッシュサーバ12aに対してオブジェクト#2を要求する。すなわち、ここで下位のキャッシュサーバ12bと上位のキャッシュサーバ12aは、クライアントとサーバの関係に立つ。
【0019】
さらに、上位のキャッシュサーバ12aは、オブジェクト#2のキャッシュがあれば、そのキャッシュデータを下位のキャッシュサーバ12bに返信するが、そうでなければ、上位のキャッシュサーバ12aは、自身がクライアントとしてサーバ14aにオブジェクト#2のアクセス要求を送ることになる。上位のキャッシュサーバ12aはサーバ14aからオブジェクト#2のデータを受信し、キャッシュオブジェクト16aとしてキャッシュするとともに、下位のキャッシュサーバ12bにそのデータを返信する。
【0020】
下位のキャッシュサーバ12bは、上位のキャッシュサーバ12aからオブジェクト#2のデータを受信して、キャッシュオブジェクト16bとしてキャッシュするとともに、そのデータをクライアント10aに返信する。
【0021】
その後、別のクライアント10cがサーバ14aに同じオブジェクト#2のアクセス要求を送ると、このクライアント10cに最も近い位置にある第1階層のキャッシュサーバ12eがオブジェクト#2のアクセス要求を代理し、1つ上の階層のキャッシュサーバ12cに対してオブジェクト#2を要求する。この第2階層のキャッシュサーバ12cは、オブジェクト#2のキャッシュがなければ、さらに1つ上の階層のキャッシュサーバ12aに対してオブジェクト#2のアクセス要求を送る。この第3階層のキャッシュサーバ12aには、既にオブジェクト#2のキャッシュオブジェクト16aがあるため、第2階層のキャッシュサーバ12cにそのデータを返信する。第2階層のキャッシュサーバ12cは、オブジェクト#2のデータをキャッシュオブジェクト16cとしてキャッシュするとともに、第1階層のキャッシュサーバ12eにそのデータを返信する。第1階層のキャッシュサーバ12eは、受信したオブジェクト#2のデータをキャッシュオブジェクト16eとしてキャッシュするとともに、そのデータをクライアント10cに返信する。
【0022】
このようにして第1階層のキャッシュサーバ12eにキャッシュされたキャッシュオブジェクト16eは、そのキャッシュサーバ12e内のキャッシュの置換ポリシーにしたがって管理され、他のオブジェクトを新しくキャッシュする際に置き換えられて削除されることがある。キャッシュサーバ12a〜12eはそれぞれ、これから述べるメトリックスにもとづく置換ポリシーにしたがって、キャッシュオブジェクトを管理する。
【0023】
図2は、実施の形態に係るキャッシュサーバによるキャッシュオブジェクトのメトリックスの評価方法を説明する図である。同図の例では、クライアント10a〜10cのサーバ14a、14bに対するオブジェクトのアクセス要求は、それぞれ下位キャッシュサーバ22a〜22cにより代理され、さらに下位キャッシュサーバ22a〜22cから上位キャッシュサーバ20にオブジェクトのアクセス要求がなされる。上位キャッシュサーバ20はサーバ14a、14bからオブジェクトを受信してキャッシュするとともに、下位キャッシュサーバ22a〜22cに対してはサーバとして動作して、オブジェクトを下位キャッシュサーバ22a〜22cへ返信する。同図において、オブジェクト#1〜#4のキャッシュの右肩に付された数字は、各キャッシュオブジェクトのキャッシュサーバ20、22a〜22c内でのローカルな参照回数を示しており、キャッシュサーバ20、22a〜22cはそれぞれ、この参照回数をメトリックスとして用いた置換ポリシーによりキャッシュオブジェクトを管理する。
【0024】
2つの下位キャッシュサーバ22a、22bがそれぞれオブジェクト#2のキャッシュオブジェクト18a、18bを格納しているが、オブジェクト#2のキャッシュオブジェクト18a、18bの参照回数はいずれも4回であり、他のキャッシュオブジェクトの参照回数よりも少ない。しかし、ネットワーク全体で見た場合、オブジェクト#2のキャッシュの参照回数は合計で8回であり、他のキャッシュオブジェクトの参照回数よりも多い。
【0025】
ここで、2つの下位キャッシュサーバ22a、22bはそれぞれ、新たなオブジェクトをキャッシュするスペースを確保するために、参照回数の少ないキャッシュオブジェクト18a、18bを削除すると仮定する。上位キャッシュサーバ20は、2つの下位キャッシュサーバ22a、22bのそれぞれからオブジェクト#2のキャッシュオブジェクト18a、18bの参照回数の通知を受けて参照回数を累積し、合計で8回の参照回数であることをオブジェクト#2のトータルメトリックスとして記憶する。
【0026】
上位キャッシュサーバ20は、オブジェクト#2のキャッシュオブジェクト19をこのトータルメトリックスにもとづいた置換ポリシーにしたがって管理するため、下位キャッシュサーバ22a、22bにおいてオブジェクト#2のキャッシュオブジェクト18a、18bがローカルなメトリックスの評価によって削除されても、上位キャッシュサーバ20において、オブジェクト#2のキャッシュオブジェクト19が保持される。もっとも、上位キャッシュサーバ20において、他に参照回数の多いオブジェクトがあれば、オブジェクト#2のキャッシュオブジェクト19もやがては削除されることがある。このようにして、オブジェクト#2のキャッシュの削除は下位階層から上位階層のキャッシュサーバに向けて徐々に行われることになり、ちょうどオブジェクト#2のキャッシュの生成が上位階層から下位階層のキャッシュサーバに伝搬するのと対照を成す。
【0027】
同様に、別のクライアント10cを代理する下位キャッシュサーバ22cにおいて、オブジェクト#3のキャッシュオブジェクト17cが置換ポリシーにしたがって削除されるときは、このキャッシュオブジェクト17cの参照回数6回と、もう一つのクライアント10aを代理する下位キャッシュサーバ22aに格納されているオブジェクト#3のキャッシュオブジェクト17aの参照回数5回とが、上位キャッシュサーバ20において累積され、トータルメトリックスとして11回の参照回数をもつものとして、上位キャッシュサーバ20において管理される。
【0028】
図3は、下位キャッシュサーバ22の構成図であり、図4は、上位キャッシュサーバ20の構成図である。これらの構成は、ハードウエア的には、任意のコンピュータのCPU、メモリ、その他のLSIで実現でき、ソフトウエア的にはメモリにロードされたキャッシュ管理機能のあるプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
【0029】
図3を参照して、下位キャッシュサーバ22の構成を説明する。下位キャッシュサーバ22には、キャッシュバッファ32が設けられ、キャッシュされるオブジェクトのエントリ34(以下、単にキャッシュエントリ34と呼ぶ)がリスト構造などで格納される。キャッシュエントリ34にはオブジェクトのキャッシュデータ36(以下、単にキャッシュオブジェクト36と呼ぶ)へのポインタが含まれ、キャッシュオブジェクト36そのものは大容量記憶装置であるキャッシュオブジェクト記憶部38に記憶される。
【0030】
キャッシュエントリ34のデータ構造を図5に示す。キャッシュエントリ34には、オブジェクトのサーバ14における格納場所を示すURL70、下位キャッシュサーバ22内での当該キャッシュの参照回数72、キャッシュの最終アクセス時刻74、キャッシュのアクセス頻度76、キャッシュオブジェクトのサイズ78、およびキャッシュオブジェクトへのポインタ80が格納される。
【0031】
図3に戻り、検索部30は、クライアント10から要求のあったオブジェクトについて、キャッシュバッファ32のキャッシュエントリ34のリスト構造を検索して、そのオブジェクトがキャッシュされているかどうかを調べる。オブジェクトの検索キーとして図5のURL70が用いられる。キャッシュにヒットした場合、検索部30はヒットしたキャッシュエントリ34のポインタ80が指すキャッシュオブジェクト36をキャッシュオブジェクト記憶部38から取り出し、クライアント10へ送信する。
【0032】
キャッシュ管理部40は、キャッシュバッファ32に格納されたキャッシュエントリ34毎に付与されたメトリックスを参照して、メトリックスにもとづいた置換ポリシーにしたがって、キャッシュバッファ32に格納されたキャッシュエントリ34の管理を行う。たとえば、メトリックスとして図5の参照回数72を用い、参照回数72の最も少ないキャッシュエントリ34から先に追い出すLFU(Least Frequently Used)方式を置換ポリシーとして利用する。
【0033】
キャッシュ管理部40は、新たなオブジェクトをキャッシュするためのスペースがキャッシュオブジェクト記憶部38に必要になったとき、メトリックスが最も小さいキャッシュエントリ34を選んで、キャッシュオブジェクト記憶部38から削除するキャッシュオブジェクト36を決定する。キャッシュ管理部40は、その削除するキャッシュオブジェクト36のメトリックスをキャッシュバッファ32から読み出して、メトリックス通知部44に与える。
【0034】
メトリックス通知部44は、削除対象のキャッシュオブジェクト36のメトリックスを上位キャッシュサーバ20に通知する。キャッシュ移動制御部42は、上位キャッシュサーバ20から削除対象のキャッシュオブジェクト36の送信要求を受けた場合に限り、キャッシュオブジェクト記憶部38からそのキャッシュオブジェクト36を読み出して、上位キャッシュサーバ20へ転送する。
【0035】
キャッシュ管理部40は、キャッシュ移動制御部42による削除対象のキャッシュオブジェクト36の転送制御が終わったことを受け、キャッシュバッファ32からそのキャッシュオブジェクト36のキャッシュエントリ34を削除するとともに、キャッシュオブジェクト36をキャッシュオブジェクト記憶部38から削除する。
【0036】
図4を参照して、上位キャッシュサーバ20の構成を説明する。検索部50、キャッシュ管理部60、キャッシュオブジェクト記憶部58は、図3の下位キャッシュサーバ22の検索部30、キャッシュ管理部40、キャッシュオブジェクト記憶部38と同じ構成であるが、キャッシュバッファ52に格納されるエントリに違いがある。
【0037】
キャッシュバッファ52には、キャッシュオブジェクト記憶部58のキャッシュオブジェクト56に対応して設けられたキャッシュエントリ54以外に、メトリックス管理用エントリ55がある。メトリックス管理用エントリ55は、下位キャッシュサーバ22がキャッシュするオブジェクトのメトリックスの累積計算のために利用されるものであり、キャッシュオブジェクト記憶部58にはこれに対応するオブジェクトのキャッシュデータは格納されていない。
【0038】
キャッシュエントリ54は、図5で説明した下位キャッシュサーバ22のキャッシュエントリ34と同じデータ構造をもつが、参照回数72には下位キャッシュサーバ22から通知されるキャッシュオブジェクトの参照回数が累積加算され、トータルメトリックスとして利用される点が異なる。
【0039】
メトリックス管理用エントリ55のデータ構造を図6に示す。メトリックス管理用エントリ55には、オブジェクトのURL82、累積参照回数84、オブジェクトサイズ86が格納される。このメトリックス管理用エントリ55のURL82で特定されるオブジェクトが上位キャッシュサーバ20においてもキャッシュされることとなった場合には、メトリックス管理用エントリ55は図5で説明したキャッシュエントリ34に置き換えられ、引き続いてキャッシュバッファ52内でキャッシュエントリ34として置換ポリシーにしたがった管理を受けることになる。
【0040】
したがって、下位キャッシュサーバ22においてキャッシュされているオブジェクトは、上位キャッシュサーバ20のキャッシュバッファ52内で、キャッシュエントリ54として管理されているか、メトリックス管理用エントリ55として管理されているか、あるいは、どちらにも該当しないかのいずれかである。また、キャッシュエントリ54として管理された場合には、キャッシュオブジェクト記憶部58にキャッシュオブジェクト56がキャッシュされるが、メトリックス管理用エントリ55として管理されている間は、キャッシュオブジェクト記憶部58には対応するキャッシュデータが存在しない。
【0041】
再び図4を参照し、検索部50が下位キャッシュサーバ22から要求されるオブジェクトを検索するときは、キャッシュバッファ52内のキャッシュエントリ54のみを検索して、ヒットした場合は、キャッシュオブジェクト記憶部58から対応するキャッシュオブジェクト56を取り出して下位キャッシュサーバ22へ送信する。また、キャッシュ管理部60は、キャッシュバッファ52内のキャッシュエントリ54のみをトータルメトリックスにもとづく置換ポリシーにしたがって管理する。
【0042】
メトリックス累積部65は、削除対象のオブジェクトのメトリックスの通知を下位キャッシュサーバ22から受けると、そのオブジェクトがキャッシュされている場合は、キャッシュエントリ54の参照回数72に通知されたメトリックスを累積加算する。そのオブジェクトがキャッシュされていない場合は、メトリックス管理用エントリ55の累積参照回数84に通知されたメトリックスを累積加算する。
【0043】
評価部66は、下位キャッシュサーバ22から削除対象のオブジェクトの通知を受けて、そのオブジェクトのURLを検索キーにして、キャッシュバッファ52内のキャッシュエントリ54またはメトリックス管理用エントリ55を検索し、そのオブジェクトの累積参照回数を取得する。削除対象のオブジェクトがメトリックス管理用エントリ55として存在する場合は、上位キャッシュサーバ20にはそのオブジェクトのデータがキャッシュされていないため、その削除対象のオブジェクトの累積参照回数にもとづいて、新たなキャッシュエントリ54としてキャッシュするかどうかを判断する。たとえば、他のキャッシュエントリ54の参照回数よりも大きい累積参照回数をもつならば、その削除対象のオブジェクトを受理し、そうでないなら、受理しない。また、キャッシュオブジェクト記憶部58に十分な空き容量がある場合は、累積参照回数を評価することなく、削除対象のオブジェクトを受理する。
【0044】
評価部66は判断結果をキャッシュ移動制御部62に通知し、キャッシュ移動制御部62は削除対象のオブジェクトを受理する場合には、下位キャッシュサーバ22にそのオブジェクトの送信要求を送り、下位キャッシュサーバ22からオブジェクトのデータを受信する。
【0045】
キャッシュ移動制御部62により受信されたオブジェクトのデータは、新たなキャッシュオブジェクト56としてキャッシュオブジェクト記憶部58に格納され、キャッシュ管理部60はこのキャッシュオブジェクト56に対するメトリックス管理用エントリ55をキャッシュエントリ54に置き換えてキャッシュバッファ52内で、置換ポリシーにしたがって管理する。
【0046】
図7から図9は、以上の構成の下位キャッシュサーバ22および上位キャッシュサーバ20によるキャッシュ管理手順を説明するフローチャートである。
【0047】
図7において、下位キャッシュサーバ22のキャッシュ管理部40が、置換ポリシーにもとづいて削除されるキャッシュオブジェクト36を決定する(S10)。キャッシュ管理部40は削除されるキャッシュオブジェクトを一時的にロックする(S12)。メトリックス通知部44は、削除されるキャッシュオブジェクト36に対応するキャッシュエントリ34のURL70とローカルなメトリックスである参照回数72を上位キャッシュサーバ20へ通知する(S14)。この通知には、階層的に構成されたキャッシュサーバ間の通信に利用されるICP(Internet Cache Protocol)を用い、下位キャッシュサーバ22は、標準的なICP_QUERYを拡張したICP_MOVE_QUERYメッセージにURL70と参照回数72の情報を格納して上位キャッシュサーバ20へ送信する(S16)。
【0048】
上位キャッシュサーバ20のメトリックス累積部65は、ICP_MOVE_QUERYメッセージを受信すると、ICP_MOVE_QUERYメッセージに含まれるURL70にもとづいてキャッシュバッファ52内のキャッシュエントリ54またはメトリックス管理用エントリ55を検索し、キャッシュエントリ54の参照回数72またはメトリックス管理用エントリ55の累積参照回数84に下位キャッシュサーバ22から通知されたローカルメトリックスである参照回数72を累積加算する(S18)。キャッシュバッファ52に該当するエントリがない場合は、下位キャッシュサーバ22から通知されたURL70と参照回数72にもとづいて新たにメトリックス管理用エントリ55が作成される。
【0049】
評価部66は、下位キャッシュサーバ22から通知された削除対象のオブジェクトがキャッシュされていない場合、すなわちキャッシュバッファ52内には削除対象のオブジェクトのエントリがメトリックス管理用エントリ55として格納されているだけである場合、そのメトリックス管理用エントリ55の累積参照回数84にもとづいて、削除対象のオブジェクトを受理して新たにキャッシュするかどうかを判断する(S20)。オブジェクトを受理する場合(S20のY)の処理の流れを図8に示し、オブジェクトを受理しない場合(S20のN)の処理の流れを図9に示す。
【0050】
図8を参照して、下位キャッシュサーバ22において削除されるオブジェクトを上位キャッシュサーバ20が受理する場合の処理を説明する。上位キャッシュサーバ20のキャッシュ移動制御部62は、下位キャッシュサーバ22に対して削除対象のオブジェクトの送信要求を行う(S22)。この送信要求は、下位キャッシュサーバ22から通知された削除対象のオブジェクトのURL70を用いたHTTP(Hypertext Transport Protocol)リクエストによって行われる(S24)。下位キャッシュサーバ22のキャッシュ移動制御部42は、削除されるキャッシュオブジェクト36を上位キャッシュサーバ20へ転送する(S26)。この転送は、HTTPリプライによって行われる(S28)。下位キャッシュサーバ22のキャッシュ管理部40は、削除対象のキャッシュオブジェクト36のロックを解除して、キャッシュオブジェクト記憶部38からそのデータを削除し、対応するキャッシュエントリ34をキャッシュバッファ32から削除する(S34)。
【0051】
上位キャッシュサーバ20のキャッシュ移動制御部62は、HTTPリプライにより転送されたオブジェクトのデータを受信する(S30)。キャッシュ移動制御部62は、受信したオブジェクトのデータを新たなキャッシュオブジェクト56としてキャッシュオブジェクト記憶部58に格納し、キャッシュ管理部60は、そのオブジェクトに対応するメトリックス管理用エントリ55を新たなキャッシュエントリ54に変更してキャッシュバッファ52内で管理する(S32)。
【0052】
図9を参照して、下位キャッシュサーバ22において削除されるオブジェクトを上位キャッシュサーバ20が受理しない場合の処理を説明する。上位キャッシュサーバ20のキャッシュ移動制御部62は、下位キャッシュサーバ22へICP_MOVE_NGメッセージを送信して削除対象のオブジェクトを受理できないことを伝える(S36)。下位キャッシュサーバ22のキャッシュ管理部40は、削除対象のキャッシュオブジェクト36のロックを解除して、キャッシュオブジェクト記憶部38からそのデータを削除し、対応するキャッシュエントリ34をキャッシュバッファ32から削除する(S38)。
【0053】
以上述べたように、本発明の実施の形態によれば、下位のプロキシキャッシュがローカルに評価するキャッシュのメトリックスを上位のプロキシキャッシュが統合して再評価するため、ネットワーク全体でキャッシュの利用頻度を考慮したキャッシュの置換ポリシーを実現することができる。それによって、キャッシュのヒット率を高め、またオブジェクトのアクセス時のレスポンス時間を改善することができる。
【0054】
また、実施の形態によれば、比較的限定された地域のクライアントからの利用頻度が高いオブジェクトのキャッシュは、その地域のクライアントに近い下位のプロキシキャッシュにもたせ、ある程度広い地域のクライアントの集合から利用されるオブジェクトのキャッシュについては、上位のプロキシキャッシュに移動してもたせることができるため、キャッシュの適正な分散配置により、ネットワーク負荷を分散することができる。
【0055】
また、下位のプロキシキャッシュが異なる管理ドメインに属していて、それらのプロキシキャッシュ間を連携することが政策的に困難な場合でも、管理ドメインをまたがって上位のプロキシキャッシュを設けることにより、上位階層でメトリックスの統合的な再評価をすることができるようになる。
【0056】
以上、本発明を実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下そのような変形例を説明する。
【0057】
上記の説明では、キャッシュオブジェクトの利用価値を表すメトリックスとして参照回数を用い、LFU方式を置換ポリシーとして採用したが、当然に参照回数以外の他のメトリックスを用いても本発明を実施することができる。また参照回数に他のメトリックスを組み合わせて置換ポリシーを実現してもよい。たとえば、参照回数以外に最終アクセス時刻やアクセス頻度もメトリックスとして評価して、最後に参照されてからの経過時間が最も長いキャッシュエントリを優先的に削除したり、アクセス頻度によりキャッシュの寿命を考慮するようにしてもよい。また、オブジェクトサイズをもとにキャッシュを削除するかどうかを判断してもよい。たとえばオブジェクトサイズの大きいキャッシュについては、アクセス時間がかかるため、できるだけ削除しないようにしたり、逆に記憶スペースを節約するために優先的に削除するようにしてもよい。
【0058】
また、下位のキャッシュサーバにおいては、参照回数を計数するのみで、置換ポリシーとしては、最終アクセス時刻をメトリックスとして用いたLRU(Least Recently Used)方式を採用してもよい。この場合、下位のキャッシュサーバは、LRU方式により置き換えられるキャッシュについて計数された参照回数を上位のキャッシュサーバに通知し、上位のキャッシュサーバは、累積された参照回数にもとづいた置換ポリシーでキャッシュを管理してもよい。このように、置換ポリシーは上位、下位のキャッシュサーバにおいて異なっていてもかまわない。
【0059】
なお、上記の説明では、上位キャッシュサーバと下位キャッシュサーバに分けて構成と動作を説明したが、上位キャッシュサーバに対してさらに上位のキャッシュサーバがある場合は、上位キャッシュサーバはそのさらに上位のキャッシュサーバに対しては下位キャッシュサーバとして動作することになる。したがって、上位キャッシュサーバに下位キャッシュサーバの構成をもたせるようにして、相対的にいずれのキャッシュサーバの機能も実行できるようにしてもよい。
【0060】
また、階層的に構成されたプロキシキャッシュのネットワークにおいて、下位キャッシュサーバは子プロキシキャッシュに、上位キャッシュサーバは親プロキシキャッシュに相当するのが通常の構成である。しかしながら、異なる親プロキシキャッシュに属する子プロキシキャッシュを下位キャッシュサーバとして、それらを統括する上位キャッシュサーバを設けてもかまわない。このように、プロキシキャッシュのネットワークにおける親子関係には限定されずに、上位、下位のキャッシュサーバを構成してもよい。
【0061】
【発明の効果】
本発明によれば、ネットワーク上でキャッシュを効率よく管理することができる。
【図面の簡単な説明】
【図1】実施の形態に係るキャッシュサーバを含むネットワーク全体の構成図である。
【図2】実施の形態に係るキャッシュサーバによるキャッシュオブジェクトのメトリックスの評価方法を説明する図である。
【図3】図2の下位キャッシュサーバの構成図である。
【図4】図2の上位キャッシュサーバの構成図である。
【図5】図3のキャッシュエントリのデータ構造の説明図である。
【図6】図4のメトリックス管理用エントリのデータ構造の説明図である。
【図7】図2の下位キャッシュサーバおよび上位キャッシュサーバによるキャッシュ管理手順を説明するフローチャートである。
【図8】図2の下位キャッシュサーバにおいて削除されるオブジェクトを図2の上位キャッシュサーバが受理する場合の処理を説明するフローチャートである。
【図9】図2の下位キャッシュサーバにおいて削除されるオブジェクトを図2の上位キャッシュサーバが受理しない場合の処理を説明するフローチャートである。
【符号の説明】
10 クライアント、 12 キャッシュサーバ、 14 サーバ、 20 上位キャッシュサーバ、 22 下位キャッシュサーバ、 30、50 検索部、 32、52 キャッシュバッファ、 34、54 キャッシュエントリ、 55 メトリックス管理用エントリ、 36、56 キャッシュオブジェクト、38、58 キャッシュオブジェクト記憶部、 40、60 キャッシュ管理部、 42、62 キャッシュ移動制御部、 44 メトリックス通知部、 65 メトリックス累積部、 66 評価部。
Claims (8)
- 階層的に構成されたキャッシュサーバのネットワークにおいて、下位階層の複数のキャッシュサーバにキャッシュされるオブジェクトのメトリックスを上位階層の少なくとも1つのキャッシュサーバにおいて累積評価し、下位階層のキャッシュサーバの1つにおいてキャッシュオブジェクトが削除されるとき、累積評価されたメトリックスに応じて、その削除されるキャッシュオブジェクトを下位階層のキャッシュサーバから上位階層のキャッシュサーバに転送してキャッシュするかどうかを決定することを特徴とするキャッシュ管理方法。
- 下位階層のキャッシュサーバがキャッシュオブジェクトを削除するときに限り、上位階層のキャッシュサーバにおいてそのキャッシュオブジェクトのメトリックスが累積されることを特徴とする請求項1に記載のキャッシュ管理方法。
- 上位階層のキャッシュサーバにおいては、累積評価されたメトリックスにもとづく置換ポリシーにしたがってキャッシュオブジェクトが管理されることを特徴とする請求項1または2に記載のキャッシュ管理方法。
- クライアントへ提供されるオブジェクトをキャッシュして保持するキャッシュ記憶部と、
所定のメトリックスにもとづく置換ポリシーにしたがってキャッシュオブジェクトの管理を行うキャッシュ管理部と、
前記置換ポリシーにしたがって削除されるキャッシュオブジェクトのメトリックスに限り、上位階層のキャッシュサーバに通知するメトリックス通知部と、
前記上位階層のキャッシュサーバから送信要求があった場合に、その削除されるキャッシュオブジェクトを前記上位階層のキャッシュサーバに移動させる移動制御部とを含むことを特徴とするキャッシュサーバ。 - クライアントへ提供されるオブジェクトをキャッシュして保持するキャッシュ記憶部と、
下位階層にある複数のキャッシュサーバから通知されるキャッシュオブジェクトのメトリックスを累積してオブジェクト毎にトータルメトリックスを算出するメトリックス累積部と、
前記トータルメトリックスにもとづく置換ポリシーにしたがって前記キャッシュ記憶部に保持されたキャッシュオブジェクトの管理を行うキャッシュ管理部と、
下位階層のキャッシュサーバから削除されるキャッシュオブジェクトの通知を受けた場合に、前記トータルメトリックスにもとづいてその削除されるキャッシュオブジェクトを保持するかどうかを決定する評価部と、
前記評価部がその削除されるキャッシュオブジェクトを保持すると決定した場合、下位階層にあるキャッシュサーバからその削除されるキャッシュオブジェクトを取得して、そのキャッシュオブジェクトを前記キャッシュ管理部に新たに管理させる移動制御部とを含むことを特徴とするキャッシュサーバ。 - 前記メトリックス累積部は、下位階層のキャッシュサーバがそのキャッシュサーバの置換ポリシーにしたがってキャッシュオブジェクトを削除する際に、そのキャッシュオブジェクトのメトリックスの通知を受け、前記トータルメトリックスに累積することを特徴とする請求項5に記載のキャッシュサーバ。
- 前記メトリックスは、キャッシュオブジェクトの参照回数であることを特徴とする請求項4または5に記載のキャッシュサーバ。
- 下位階層にある複数のキャッシュサーバの各々からキャッシュオブジェクトの削除時に通知される当該キャッシュオブジェクトのメトリックスを累積してオブジェクト毎にトータルメトリックスを算出するステップと、
下位階層のキャッシュサーバから削除されるキャッシュオブジェクトの通知を受けて、前記トータルメトリックスにもとづいてその削除されるキャッシュオブジェクトを保持するかどうかを決定するステップと、
その削除されるキャッシュオブジェクトを保持すると決定した場合、下位階層にあるキャッシュサーバからその削除されるキャッシュオブジェクトを取得するステップと、
取得されたキャッシュオブジェクトを前記トータルメトリックスにもとづく置換ポリシーにしたがって管理するステップとをコンピュータに実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003052579A JP2004264956A (ja) | 2003-02-28 | 2003-02-28 | キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003052579A JP2004264956A (ja) | 2003-02-28 | 2003-02-28 | キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004264956A true JP2004264956A (ja) | 2004-09-24 |
Family
ID=33117421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003052579A Pending JP2004264956A (ja) | 2003-02-28 | 2003-02-28 | キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004264956A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199920A (ja) * | 2006-01-25 | 2007-08-09 | Hitachi Ltd | ストレージ装置及びその制御方法 |
JP2013520738A (ja) * | 2010-02-26 | 2013-06-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベース・アプリケーションのためのセキュアなキャッシング方法、システム、および、プログラム |
CN103236989A (zh) * | 2013-04-25 | 2013-08-07 | 青岛海信传媒网络技术有限公司 | 一种内容分发网络中的缓存控制方法、设备及*** |
JP2020522078A (ja) * | 2017-06-02 | 2020-07-27 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データアクセス方法および装置 |
CN115442317A (zh) * | 2021-12-17 | 2022-12-06 | 北京罗克维尔斯科技有限公司 | 报文处理方法、装置、***、设备及介质 |
-
2003
- 2003-02-28 JP JP2003052579A patent/JP2004264956A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199920A (ja) * | 2006-01-25 | 2007-08-09 | Hitachi Ltd | ストレージ装置及びその制御方法 |
JP2013520738A (ja) * | 2010-02-26 | 2013-06-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベース・アプリケーションのためのセキュアなキャッシング方法、システム、および、プログラム |
US8886673B2 (en) | 2010-02-26 | 2014-11-11 | International Business Machines Corporation | Optimizing data cache when applying user-based security |
CN103236989A (zh) * | 2013-04-25 | 2013-08-07 | 青岛海信传媒网络技术有限公司 | 一种内容分发网络中的缓存控制方法、设备及*** |
JP2020522078A (ja) * | 2017-06-02 | 2020-07-27 | 華為技術有限公司Huawei Technologies Co.,Ltd. | データアクセス方法および装置 |
CN115442317A (zh) * | 2021-12-17 | 2022-12-06 | 北京罗克维尔斯科技有限公司 | 报文处理方法、装置、***、设备及介质 |
CN115442317B (zh) * | 2021-12-17 | 2023-10-10 | 北京罗克维尔斯科技有限公司 | 报文处理方法、装置、***、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10911530B2 (en) | Content delivery method, virtual server management method, cloud platform, and system | |
KR101228230B1 (ko) | 컨텐츠 전달 네트워크 내의 노드에서 하나 이상의 컨텐츠 아이템을 캐싱하는 방법, 장치 및 제품 | |
US6370620B1 (en) | Web object caching and apparatus for performing the same | |
Dutta et al. | Caching scheme for information‐centric networks with balanced content distribution | |
US20070050491A1 (en) | Cache system | |
US20010034752A1 (en) | Method and system for symmetrically distributed adaptive matching of partners of mutual interest in a computer network | |
KR20140067881A (ko) | 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법 | |
KR20130125844A (ko) | 무리 지능을 사용하는 대규모 분산 시스템에서 정보 라우팅을 위해 프레임워크를 이용하는 시스템 및 방법 | |
JP5998281B2 (ja) | N個のアイテムのリストをキャッシュシステムのc個のアイテムのメモリキャッシュに格納することを管理するための方法 | |
Mokhtarian et al. | Flexible caching algorithms for video content distribution networks | |
Xu et al. | Caching and prefetching for web content distribution | |
Zhang et al. | NCPP-based caching and NUR-based resource allocation for information-centric networking | |
Lal et al. | A popularity based content eviction scheme via betweenness-centrality caching approach for content-centric networking (CCN) | |
JP2004264956A (ja) | キャッシュ管理方法、およびその方法を利用可能なキャッシュサーバ | |
Tiwari et al. | A novel hybrid approach for web caching | |
Jeon et al. | On-path caching in information-centric networking | |
JP7174372B2 (ja) | 分散ストレージネットワークにおけるデータ管理方法、装置、プログラム | |
Mokhtarian | Content management in planet-scale video CDNs | |
Fang et al. | A data-mining-based prefetching approach to caching for network storage systems | |
Mahmood | Dynamic replication of web contents | |
Karlsson | Replica placement and request routing | |
Dutta et al. | Caching Mechanisms for Faster Content Retrieval | |
KR20030053285A (ko) | 웹 캐쉬 대체 구조 및 방법 | |
Wong et al. | Site-based approach in HTTP proxy design | |
Sofi et al. | A proxy load reduction technique to improve web performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041202 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050111 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070427 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070508 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070911 |