JP4042359B2 - キャッシュ制御方法及びキャッシュ装置 - Google Patents

キャッシュ制御方法及びキャッシュ装置 Download PDF

Info

Publication number
JP4042359B2
JP4042359B2 JP2001209153A JP2001209153A JP4042359B2 JP 4042359 B2 JP4042359 B2 JP 4042359B2 JP 2001209153 A JP2001209153 A JP 2001209153A JP 2001209153 A JP2001209153 A JP 2001209153A JP 4042359 B2 JP4042359 B2 JP 4042359B2
Authority
JP
Japan
Prior art keywords
data
cache
group
lowest priority
storage unit
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.)
Expired - Fee Related
Application number
JP2001209153A
Other languages
English (en)
Other versions
JP2003022211A (ja
Inventor
盛朗 佐々木
淳裕 田中
江介 立川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2001209153A priority Critical patent/JP4042359B2/ja
Priority to US10/190,815 priority patent/US6834329B2/en
Publication of JP2003022211A publication Critical patent/JP2003022211A/ja
Application granted granted Critical
Publication of JP4042359B2 publication Critical patent/JP4042359B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、キャッシュ制御技術に関し、特に、キャッシュヒット率が向上するようにパージするデータを選択する技術に関する。
【0002】
【従来の技術】
記憶装置の階層化が進むにつれて、キャッシュ技術は、ますます多くの場所で使われるようになっている。また、近年の情報通信機器の高速化によって、全処理時間に対する、ミスヒット時の処理時間が占める割合が大きくなってきており、キャッシュ技術は、性能に大きな影響を及ぼすようになってきている。
【0003】
その顕著な例は、インターネット等のネットワークを介して転送されるコンテンツをキャッシュするプロキシキャッシュ装置である。プロキシキャッシュ装置等のネットワーク中に設置されたキャッシュ装置におけるキャッシュヒットは、データ転送経路を短縮することでデータ転送速度を向上させるので、データ転送のレスポンスタイムを短縮する。
【0004】
図1は、プロキシキャッシュ装置4が、インターネット等のネットワーク3を介して、一台以上のサーバ1−1〜1−m及び一台以上のクライアント2−1〜2−nの通信を仲介するネットワークシステムの一例を示すブロック図である。プロキシキャッシュ装置4は、サーバ1−i(1≦i≦m)に代わってクライアント2−j(1≦j≦n)のリクエストを受け付け、クライアント2−jに代わってサーバ1−iにリクエストを発行する。そして、サーバ1−iからデータを受けとると、これをクライアント2−jに転送する。プロキシキャッシュ装置4は、サーバ1−iからデータを受けとった際、このデータをキャッシュする。そして、次に同じデータへのリクエストがクライアント2−k(1≦k≦n)によってなされた時には、プロキシキャッシュ装置4に記憶されたデータが、プロキシキャッシュ装置4からクライアント2−kに転送される。
【0005】
プロキシキャッシュ装置4等のキャッシュ装置で適用されるキャッシュ方式として、LRU等を初めとする多くのキャッシュ方式が従来から提案されている。詳しくは、Hewlett−packard社のテクニカルレポート、Ludmila Cherkasova:「Improving WWW Proxies Performance with Greedy−Dual−Size−Frequency Caching Policy」,HPL−98−69R1,981120.(http://www.hpl.hp.com/techreports/98/HPL−98−69R1.htmlから入手可能である)(以下、文献1と称する)で述べられている。
【0006】
理論的に最適なキャッシュ方法は、最も遠い将来にアクセスされるデータに最低の優先度を割り当てる方法であるが、これは将来のデータアクセスが全て分かっていないと実現不可能である。LRU等のキャッシングアルゴリズムは最適キャッシュ方法の近似にすぎない。
【0007】
LRU以外にも、様々なキャッシュ方法が提案されている。例えば、E.O‘Neil,P.O’Neil,G.Weikum:「The LRU−K page replacement algorithm for database disk buffering」,Proc.ACM SIGMOD International Conference on Management of Data,pp.297−306,1993.(以下、文献2と称する)がある。
【0008】
文献2に記載されているLRU−Kというキャッシュ方式は、データ毎に、K個前までのアクセスが行なわれた時刻を記録する。ただし、Kは自然数であり、LRU−Kでは、K個前のアクセス時刻が最も早いデータからパージする。例えば、K=2としたLRU−2では、データは二回以上アクセスされたか否かで異なる優先度が割り当てられ、二回以上アクセスされたデータの中で最低の優先度を持つデータは、二回目にアクセスされた時刻が最も早いものである。過去一回しかアクセスされたことのないデータは、二回以上アクセスされたデータよりも低い優先度が割り当てられる。LRUが用いる情報は前回のアクセス時刻のみであるが、LRU−Kは過去K回のアクセス時刻を情報として持ち、より多くの情報に基づいてキャッシュ方法を決定している。
【0009】
D.Lee,J.Choi,J.H. Kim,S.H.Noh,S.L.Min, Y.Cho,and C.S.Kim:「On the Existence of a Spectrum of Policies that Subsumes the Least Recently Used(LRU) and Least Frequently Used(LFU) Policies」,In Proceedings of the 1999 ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems,pp.134−143,1999.(以下、文献3と称する)に示されているキャッシュ方式LRFUでは、データの優先度を、CRF(Combined Recency and Frequency)値で与える。時刻tにおけるCRF値C(t)は、重みづけ関数F(x)によって計算される。例えば、現在時刻が8で、時刻1、2、5、8にアクセスがあったとする。この時、C(t)=F(8−1)+F(8−2)+F(8−5)+F(8−8)=F(7)+F(6)+F(3)+F(0)となる。データに対するアクセス回数が多い場合、この優先度の計算は重い処理になってしまい、保持すべき情報も多くなるが、F(x+y)=F(x)F(y)となるようなFであれば、C(t)=F(8−1)+F(8−2)+F(8−5)+F(8−8)=F(3+5−1)+F(3+5−2)+F(3+5−5)+F(3+5−8)=F(0)+F(3)C(5)となるので、前回のアクセス時刻のCRF値を元に、容易に計算できる。文献3では、LRFUがLRU−2よりも高いヒット率を達成できることが示されている。
【0010】
Y.Smaragdakis,S.Kaplan,and P.Wilson: 「EELRU:Simple and Effective AdaptivePage Replacement」,In Proceedingsof the 1999 ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems,pp.122−133,1999.(以下、文献4と記載)では、Early Eviction LRU(EELRU)というキャッシュ方式が提案されている。このキャッシングアルゴリズムが使用する情報は、前回のアクセス時刻である。EELRUは、多くの最近アクセスされたデータがキャッシュから削除されるまでは、LRUと同様に、キャッシュ中のデータで最も遠い過去にアクセスされたデータからパージする。逆に、多くの最近アクセスされたデータがキャッシュから削除された場合、キャッシュ中のデータの中でe番目に近い過去にアクセスされたデータからパージする。ただし、eはヒット率を上げるように動的に調整される。
【0011】
LRU−K、LRFU、EELRUは、いずれもLRU等の一般的なキャッシュ方式に比べて、高いヒット率を達成できるが、プロキシ装置でのキャッシングには不向きである。なぜなら、プロキシキャッシュ装置で用いられるキャッシュ方式では、多くの場合、データのキャッシュ、パージは、クライアントからのリクエストによって要求されたデータを単位として行なう。そのため、クライアントが大きなデータをリクエストし、このデータがキャッシュされる場合、他の多くのデータがこの大きなデータを記憶するための空き領域を作るために消去されてしまう。つまり、データの有用性はデータのアクセスパターン以外に、データサイズにも依存する。データサイズを考慮したキャッシュ方式の一つは、文献1に示されるGDSF(Greedy−Dual−Size−FrequencyCaching Policy)である。GDSFは、大きなデータに低い優先度を割り当てることでオブジェクトのヒット率を向上させる。このため、連続メディアデータのように大きなデータを扱う場合、連続メディアデータには低い優先度が割り当てられてしまうので、GDSFは連続メディアデータを扱うには不向きである。
【0012】
キャッシュ記憶部は、速度、容量の異なる複数の記憶媒体から構成されることが多い。一般的なキャッシュ記憶部は、高速小容量の主記憶装置と低速大容量の二次記憶装置からなる。このようなキャッシュ記憶部を有するプロキシキャッシュ装置で、連続メディアデータ等の巨大なデータを扱う場合、データサイズが主記憶装置の記憶容量に対して大きいため、ほとんどの場合、二次記憶装置に格納されてしまう。これは、連続メディアデータにアクセスが集中した場合、低速な二次記憶装置からのデータ読みだし速度がボトルネックになってしまうことを意味する。さらに、巨大な連続メディアデータが低速記憶部からのデータ転送を独占してしまうため、多くのデータが記憶されている低速記憶部からの他のデータの転送ができないという問題がある。これは、二次記憶装置中のデータの主記憶装置へのキャッシングだけでなく、遠隔地のホストのデータがローカルな二次記憶装置へキャッシングされるケースでも、同様の問題が生じる。
【0013】
連続メディアデータのキャッシュ方法の一つは、Asit Dan,Dinkar Sitaram:「A Generalized Interval Caching Policy for Mixed Interactiveand Long Video Workloads」,MultimediaComputing and Networking,pp.344−351,1996.(以下、文献5と称する)に記載されている。
【0014】
文献5の方法は、連続メディアデータへのアクセスはシーケンシャルであることを利用している。つまり、連続メディアデータは巨大であるが、一度に全てのデータが要求されるのではなく、ある速度でデータの先頭から順次要求される。そこで、ある連続メディアデータを分割して考えると、分割された先頭のデータが要求されれば、時間が経つにつれ後続の分割データも要求される。従って、先頭のデータが到着した時点で、後続のデータのアクセス時刻を予想することができる。予想アクセス時刻が近いものに高い優先度を与えるのが、文献5に記載されたキャッシュ方式である。
【0015】
連続メディアデータと非連続メディアデータのように、全く異なるアクセスパターンを持つデータを効率よくキャッシュするのは、一般に困難である。例えば、連続メディアデータと非連続メディアにそれぞれ別々のプロキシキャッシュ装置を用意して、レイヤ7スイッチ等でデータが連続メディアかどうか判定するとしても、連続、非連続メディアデータ用のそれぞれのプロキシキャッシュ装置の間で相互に計算資源を融通することができないからである。例えば、連続メディアデータにアクセスが集中した場合、非連続メディアデータ用のプロキシキャッシュ装置の計算資源には余裕があるのに、連続メディアデータ用のプロキシキャッシュ装置は過負荷になってしまう。また、複数のプロキシキャッシュ装置とレイヤ7スイッチを用いるのは、コスト的に高価である。従って、一台のプロキシキャッシュ装置で、連続、非連続メディアデータをともにキャッシュできるのが望ましい。
【0016】
プロキシキャッシュ装置で用いられるキャッシュ方式は、装置に一つである必要はない。複数のキャッシュ方式を使用する方法は特開平11−65927号公報に示されており、文献5に示されるキャッシュ方式と、従来のLRU、LFU等のキャッシュ方式を同時に使う方法が考えられる。特開平11−65927公報では、複数のキャッシュ方式を用いてデータに優先度を割り当てることができるが、各キャッシュ方式が使用できる記憶領域は固定されている。従って、全体として、あるデータを記憶するのに十分な空き記憶領域があっても、データに適用されるキャッシュ方式が使用できる記憶領域に十分な空き領域がない場合、データをキャッシュすることはできない。従って、特開平11−65927号公報に示される方法を適用した場合、計算資源の分割の自由度、コストにおいて、レイヤ7スイッチと複数のプロキシキャッシュ装置を使った場合よりも優れているが、依然として計算資源は共有されておらず、動的に変化するリクエストに対応するのは困難である。
【0017】
【発明が解決しようとする課題】
上述した文献1〜文献5に記載されている従来の技術では、単一の優先度を用いてデータを管理しているため、アクセスパターンが異なる複数のデータ系列、例えば、連続メディアデータと非連続メディアデータ、を効率良くキャッシュすることが困難であるという問題点がある。この問題点は、特開平11−65927号公報に記載されている技術を利用することによりある程度は解決することができる。つまり、連続メディアデータには予想アクセス時刻に基づく優先度を割り当て、非連続メディアデータにはアクセス頻度(LFU)に基づく優先度を割り当てることにより、各データ系列のデータをそれぞれ効率的にキャッシュすることが可能になる。
【0018】
しかしながら、特開平11−65927号公報に記載されている技術は、各データ系列に、それぞれ固定的な別々の記憶領域を割り当てるようにしているため、あるデータ系列に対してアクセスが集中すると、他のデータ系列に割り当てられている記憶領域に空きがある場合であっても、上記或るデータ系列に割り当てられている記憶領域の空き不足によりミスヒットが頻繁に発生し、データのパージが頻繁に行われてしまうという問題がある。
【0019】
そこで、本発明の目的は、特定のデータ系列にアクセスが集中した場合にも、記憶領域を有効利用することにより、高いキャッシュヒット率を得られるようにすることにある。
【0020】
【課題を解決するための手段】
本発明は上記目的を達成するため、次のようにしている。キャッシュ記憶部にキャッシュするデータを、アクセスパターンが異なるデータ系列毎のグループにグループ分けし、各グループ毎に、独自のキャッシングアルゴリズムで自グループに属するデータに優先度を割り当てる。そして、データをキャッシュ記憶部からパージすることが必要になった場合は、予め定められている評価規則によって決まる最低優先度のグループ中の、そのグループのキャッシングアルゴリズムによって最低優先度が割り当てられているデータをパージする。この構成によれば、各グループ毎に独自のキャッシングアルゴリズムでデータを管理しているにも関わらず、キャッシュされている全グループの全データの内の、最も優先度の低いデータをパージすることができるので、各グループ毎に固定的に記憶領域を割り当てる必要がなくなる。この結果、或るグループにアクセスが集中し、他のグループにアクセスが余りなかった場合、上記或るグループのデータをキャッシュするために多くの記憶領域を使用することが可能になるので、キャッシュヒット率を高いものにすることが可能になる。
【0021】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0022】
【構成の説明】
図2は本発明の第一の実施の形態に係るキャッシュ装置10の構成例を示すブロック図である。本実施の形態のキャッシュ装置10は、外部からのリクエストを受け付けるリクエスト処理部11と、キャッシュされたデータを記憶するキャッシュ記憶部14と、リクエストされたデータがキャッシュされているかどうかを判定し、キャッシュされていれば、そのデータをキャッシュ記憶部14から読み出すキャッシュ検索部12と、データをキャッシュするかどうかを判定し、キャッシュする場合はそのデータをキャッシュ記憶部14に書き込み、キャッシュ記憶部14の空き記憶領域が足りなくなった時には、いずれかのデータを選択してパージするキャッシュ判定部13とを備えている。
【0023】
図3は、図2に示したキャッシュ判定部13及びキャッシュ記憶部14の構成例を示すブロック図である。キャッシュ判定部13は、複数の部分キャッシュ管理部21−1〜21−nと、データグループ決定手段22と、最低優先度決定手段23とを含む。
【0024】
データグループ決定手段22は、予め定められているグループ分け規則に従って、キャッシュ記憶部14にキャッシュされる各データ25−1〜25−mを、複数の部分キャッシュ管理部21−1〜21−nの内の、どの部分キャッシュ管理部に管理させるかを決定する。以降、一つの部分キャッシュ管理部で管理されるデータの集合をデータグループと呼ぶ。キャッシュされるデータ25−1〜25−mは、いずれか一つのデータグループに属し、各データ25−1〜25−mは、同一のサイズを有する。
【0025】
各部分キャッシュ管理部21−1〜21−nは、それぞれ独自のキャッシングアルゴリズムで自管理部に割り当てられているデータを管理するものであり、優先度割り当て手段31と、部分最低優先度決定手段32と、データ操作手段33とを備えている。優先度割り当て手段31は、それを含んでいる部分キャッシュ管理部21−i(1≦i≦n)が管理するデータグループ中の各データに、部分キャッシュ管理部21−i独自のキャッシングアルゴリズムに従った優先度を割り当てる。部分最低優先度決定手段32は、それを含んでいる部分キャッシュ管理部21−iで管理されているデータグループ中の最も低い優先度を持つ部分最低優先度データを特定する。データ操作手段33は、データのキャッシュ、パージを行う。
【0026】
最低優先度決定手段23は、各部分キャッシュ管理部21−1〜21−nが管理しているデータグループの中から最低優先度のデータグループを特定する。キャッシュ記憶部14中の空き記憶領域24が不足した場合には、最低優先度のデータグループを管理している部分キャッシュ管理部内のデータ操作手段33が、上記データグループ中の最低優先度を持つデータをパージする。
【0027】
【動作の説明】
図2、図3、図4を参照しつつ、本実施の形態の動作を説明する。
【0028】
リクエスト処理部11が外部からのリクエストを受け取った場合の処理例を図4の流れ図に示す。
【0029】
まず、リクエスト処理部11がリクエストを受けとり(図4、ステップA1)、キャッシュ検索部12で、リクエストされたデータがキャッシュ記憶部14にキャッシュされているかどうかを調べる(ステップA2)。
【0030】
データがキャッシュされていれば、キャッシュ検索部12は、リクエストされたデータをキャッシュ記憶部14から読み出す(ステップA3)。また、上記データを管理している部分キャッシュ管理部21−i内の優先度割り当て手段31は、上記部分キャッシュ管理部21−iが管理しているデータグループ中のデータの優先度を更新する(ステップA4)。この優先度の更新は、上記部分キャッシュ管理部21−iのキャッシングアルゴリズムに従って行うものであり、例えば、部分キャッシュ管理部21−iのキャッシングアルゴリズムがLFUであれば、上記データの参照回数を+1する。これに対して、リクエストされたデータがキャッシュされていなければ、キャッシュ検索部12は、キャッシュ元からオリジナルなデータDを取得する(ステップA5)。
【0031】
次に、キャッシュ判定部13内のデータグループ決定手段22によって、データDが属するデータグループが決定され(ステップB1)、そのデータグループを管理する部分キャッシュ管理部21−jの優先度割り当て手段31によって、データDに優先度が割り当てられる(ステップB2)。そして、空き記憶領域24がデータDを記憶するのに十分な大きさを持つかどうかの判定を行ない(ステップB3)、十分な大きさを持てばステップB6へ、十分な大きさを持たなければ、最低優先度決定手段23が予め定められている評価規則に従って、全データグループの中からデータをパージするデータグループ(最低優先度のデータグループ)を決定する(ステップB4)。ステップB4で最低優先度のデータグループが決定されると、そのデータグループを管理する部分キャッシュ管理部21−k(1≦k≦n)内のデータ操作手段33が、部分最低優先度決定手段32によって特定されている最低優先度を持つデータが使用していた記憶領域を空き記憶領域24に含め、データDをキャッシュするのに十分な空き記憶領域を確保し(ステップB5)、確保した空き領域にデータをキャッシュする(ステップB6)。尚、本実施の形態では、各データ25−1〜25−nのサイズを同一としたが、各データのサイズが異なっていても良いことは勿論である。但し、各データのサイズが一定でない場合は、データDを格納するのに十分な空き記憶領域24が確保されるまで、ステップB4,B5の処理を繰り返し行うことが必要になる。
【0032】
【発明の他の実施の形態】
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。本実施の形態に係るキャッシュ装置は、図3に示したキャッシュ判定部13の代わりに、図5に示したキャッシュ判定部13aを使用することにより実現される。キャッシュ判定部13aは、部分キャッシュ管理部21−1〜21−nの代わりに部分キャッシュ管理部26−1〜26−nを備えている点が、第一の実施の形態と異なっている。部分キャッシュ管理部26−1〜26−nは、図3に示された第一の実施の形態における部分キャッシュ管理部21−1〜21−nの構成に加え、サイズ測定手段34と、ヒット率測定手段35とを有する点で異なる。サイズ測定手段34は、それが含まれている部分キャッシュ管理部26−i(1≦i≦n)が管理しているデータグループに割り当てられている記憶領域のサイズを測定し、ヒット率測定手段35は、それが含まれている部分キャッシュ管理部26−iが管理しているデータグループのキャッシュヒット率を測定する。
【0033】
次に、本実施の形態の動作を、図6の流れ図を参照して詳細に説明する。尚、図6のステップA1〜A5、B1〜B6の処理は、第一の実施の形態と同様であるため、説明は省略する。
【0034】
第一の実施の形態では、ステップB4でどのようなパラメータを用いて、パージするデータグループを決定するのか、具体的に指定していなかった。本実施の形態では、各部分キャッシュ管理部26−1〜26−n内のサイズ測定手段34及びヒット率測定手段35で、各データグループに割り当てられている記憶領域のサイズ及びキャッシュヒット率を測定し(ステップC1)、それらを用いてパージするデータグループを決定する(ステップB4)。より具体的には、各データグループに於ける、キャッシュヒット率と割り当てられている記憶領域のサイズとの比(キャッシュヒット率/サイズ)を求め、その値が最も小さいデータグループをパージするデータグループとする。
【0035】
次に、本実施の形態の効果について説明する。本実施の形態では、データグループの有用性を判断する際(パージするデータグループを決定する際)、データグループの使用記憶領域の大きさとキャッシュヒット率を考慮する事で、データグループ全体の特徴を考慮しない場合よりも、パージすべきデータをより的確に判断できる。従って、キャッシュヒット率を向上させることが可能である。
【0036】
【実施例】
次に、第一の実施の形態に対する第一の実施例について説明する。本実施例は、図2に示すキャッシュ装置10をWWWデータのキャッシングに用いられるプロキシキャッシュ装置として使用した場合についてのものである。
【0037】
本実施例では、クライアントからキャッシュ装置10へ送られてくるリクエストは、データを先頭からシーケンシャルに転送することを要求するものとなる。そこで、データを先頭から所定サイズ(例えば4096バイト)ずつに分割し、この分割データをキャッシュ/パージの単位とする。この時、データの先頭を含む分割データ(第1番目の分割データ)がまた要求されるかどうかは不確定であるが、第1番目の分割データへのリクエストが到着すれば、後続の分割データ(第2番目以降の分割データ)へのリクエストがなされることは確定する。データの先頭からA1バイト目まで、データのA1バイト目からA2バイト目まで、……、のようにデータを不定長に分割した場合にも本実施例を利用できることは明らかである。
【0038】
本実施例の動作を説明する。リクエスト処理部11がクライアントからのリクエスト(或るデータαを先頭からシーケンシャルに転送することを要求するリクエスト)を受け取ると(図4のステップA1)、キャッシュ検索部12が、上記データαの先頭を含む第1番目の分割データがキャッシュ記憶部14にキャッシュされているかどうかを調べる(ステップA2)。
【0039】
今、第1番目の分割データがキャッシュされていないとすると、キャッシュ検索部12は、サーバからオリジナルな第1番目の分割データを取得する(ステップA5)。その後、キャッシュ判定部13内のデータグループ決定手段22によって、上記第1番目の分割データが属するデータグループが決定される(ステップB1)。
【0040】
尚、本実施例では、データグループ決定手段22は、アクセス時刻を予想できないデータを、データグループXに分類し、アクセス時刻を予想できるデータをデータグループYに分類するものとする。より具体的には、データグループ決定手段22は、第1番目の分割データは、データグループXに分類する。第2番目以降の分割データは、リクエスト処理部11が受け付けている後続のリクエストの中に、現在グループ分けの対象にしている分割データを含むデータと同じデータに対するリクエストがある場合には、データグループYに分類し、そうでない場合には、データグループXに分類する。また、本実施例では、部分キャッシュ管理部21−1がデータグループXに属する分割データを管理し、部分キャッシュ管理部21−2がデータグループYに属する分割データを管理するものとする。
【0041】
ステップB1に於いて、第1番目の分割データがデータグループXに分類されると、部分キャッシュ管理部21−1内の優先度割り当て手段31が第1番目の分割データに優先度を割り当てる(ステップB2)。ここで、データグループXを管理する部分キャッシュ管理部21−1内の優先度割り当て手段31は、LFUに従って優先度を割り当てる(参照回数を優先度として割り当てる)。この例では、第1番目の分割データがデータグループXに属するので、部分キャッシュ管理部21−1内の優先度割り当て手段31によって優先度の割り当てがおこなわれるが、ステップB1に於いて、分割データがデータグループYに分類された場合には、データグループYに属するデータを管理する部分キャッシュ管理部21−2によって優先度が割り当てられる。データグループYを管理する部分キャッシュ管理部21−2内の優先度割り当て手段31は、予想アクセス時刻を優先度として割り当てる。予想アクセス時刻は、クライアントからプロキシキャッシュ装置への予想転送速度と、分割されたデータの大きさとから予想される。アクセスされた分割データと到着時刻を予想している分割データとの間にいくつの分割データがあるかも考慮する。例えば、予想転送速度が一定で、一秒間当たり1メガビットで、分割データの大きさが全て256キロバイトであるとすると、1つの分割データの転送に2秒かかる。予想アクセス時刻は、「予想アクセス時刻=現在時刻+分割データサイズ×R/データの転送速度」で予想する。ただしRは、アクセスされた分割データと到着時刻を予想している分割データとの間にいくつの分割データがあるかを表す。
【0042】
その後、ステップB3に於いて、空き記憶領域24が第1番目の分割データを記憶するのに十分な大きさを持つか否かが調べられる。そして、十分な大きさを持てば、第1番目の分割データは、部分キャッシュ管理部21−1内のデータ操作手段33によってキャッシュ記憶部14にキャッシュされる(ステップB6)。これに対して、空き記憶領域24の大きさが十分でない場合には、最低優先度決定手段23によってデータグループXとデータグループYとの優先度が比較され、パージの対象にするデータグループが決定される(ステップB4)。
【0043】
このステップB4の処理を詳しく説明すると、次のようになる。データグループX,Yの優先度の比較は、部分キャッシュ管理部21−1内の最低優先度決定手段23によってデータグループXの部分最低優先度データに対する予想アクセス時刻を推定し、この値とデータグループYの部分最低優先度データに割り当てられている優先度(予測アクセス時刻)と比較することで行なう。データグループXの部分最低優先度データに対する予想アクセス時刻は、現在時刻とデータの通算参照回数を元に推定する。データグループXのキャッシングアルゴリズムとしてLFU以外を用いた場合は、そのキャッシュ方式が利用する情報をパラメータとする関数によって、優先度変換を行なう。参照回数で与えられる優先度を予想アクセス時刻に変換する関数は、予想アクセス時刻=C+k/(f+1)とする。ただし、Cは現在時刻、fはパージ候補の単位データの参照回数、kは定数である。また、部分最低優先度決定手段32には、ヒープを用いる。
【0044】
ステップB4に於いて、パージ対象にするデータグループが決定されると、そのデータグループを管理している部分キャッシュ管理部内のデータ操作手段33が、部分最低優先度決定手段32によって特定される最低優先度データが使用していた領域を空き記憶領域に含め、そこに第1番目の分割データをキャッシュする(ステップB5,B6)。
【0045】
以上は、データαの第1番目の分割データがキャッシュされていない場合の動作であるが、キャッシュされている場合は、次のような動作が行われる。
【0046】
ステップA2に於いて、第1番目の分割データがキャッシュされていると判断した場合、キャッシュ検索部12は、第1番目の分割データをキャッシュ記憶部14から読み出す(ステップA3)。その後、データαの第2番目以降のデータの優先度を更新する(ステップA4)。
【0047】
このステップA4の処理を詳細に説明すると、次のようになる。データグループ決定手段22が、データグループXの分割データを管理している部分キャッシュ管理部21−1に対して、データαの第2番目以降の分割データを管理対象から除外し、データグループYの分割データを管理している部分キャッシュ管理部21−2に対して、データαの第2番目以降の分割データを管理対象にすることを指示する。これにより、部分キャッシュ管理部21−1は、データαの第2番目以降の分割データを管理対象にしていれば、それを管理対象から除外する。また、部分キャッシュ管理部21−2は、データαの第2番目以降の分割データを管理対象にしていなければ、それを管理対象にする。その後、部分キャッシュ管理部21−2内の優先度割り当て手段31が、データαの第2番目以降の分割データの優先度(予想アクセス時刻)を更新する。この優先度の更新は、前述した式「予想アクセス時刻=現在時刻+分割データサイズ×R/データの転送速度」に基づいて、データαの第2番目以降の各分割データの予想アクセス時刻を求め、求めた予想アクセス時刻を対応する分割データに割り当てることにより行う。また、データグループXを管理している部分キャッシュ管理部21−1内の優先度割り当て手段31は、データαの第1番目の分割データの優先度(参照回数)を更新する。
【0048】
データαの第1番目の分割データに対する処理が終了すると、第2番目以降の分割データに対して前述した動作と同様の動作が行われる。そして、データαの最後の分割データに対する処理が終了すると、データグループ決定手段22は、リクエスト処理部11が受け付けている後続のリクエストの中に、データαに対するリクエストが存在するか否かを調べる。そして、存在しない場合には、データグループXの分割データを管理している部分キャッシュ管理部21−1に対して、データαの第2番目以降のデータを管理対象にすることを指示し、データグループYのデータを管理している部分キャッシュ管理部21−2に対して、データαの第2番目以降のデータを管理対象から除外することを指示する。これにより、部分キャッシュ管理部21−1は、データαの第2番目以降の分割データを管理対象にし、部分キャッシュ管理部21−2は、データαの第2番目以降の分割データを管理対象から除外する。更に、部分キャッシュ管理部21−1内の優先度割り当て手段31は、データαの第2番目以降の分割データに、データαの第1番目の分割データと同じ優先度(参照回数)を割り当てる。
【0049】
本実施例の変形として、主記憶装置に二次記憶装置中のデータをキャッシュするディスクキャッシュ装置に第一の実施の形態を適用した場合を示す。
【0050】
本発明を、図7に示す、演算装置101と、キャッシュ記憶部104を有する主記憶装置102と、二次記憶装置103とから構成されるシステムに適用した場合について考える。尚、主記憶装置102上には、図2に示したキャッシュ装置10の構成要素である、リクエスト処理部11,キャッシュ検索部12,キャッシュ判定部13を実現するためのキャッシュ装置用プログラム10Pが登録されている。このキャッシュ装置用プログラム10Pは、演算装置101によって読み取られ、その動作を制御することで、演算装置101上にリクエスト処理部11,キャッシュ検索部12,キャッシュ判定部13を実現する。また、主記憶装置102上のキャッシュ記憶部104は、図2のキャッシュ記憶部14に相当するものである。
【0051】
二次記憶装置103に連続メディアデータ等の巨大なサイズを持つデータが記憶されているとする。これらのデータへのアクセスは、二次記憶装置103からの読み出しに用いられる帯域を長時間にわたって占有する。従って、多くの連続メディアデータ等の巨大なデータがリクエストされた場合、低速な二次記憶装置からの読み出し速度がボトルネックになり、転送速度が大幅に低下してしまう。そこで、連続メディアデータ等の巨大なデータの性質を利用して、なるべく高速な一次記憶からデータが読み出されるように、パージする分割データを選択する。
【0052】
データは、二次記憶装置103の入出力の単位に分割され、この分割データがキャッシュ/パージの単位とされる。例えば、二次記憶装置103が4096バイトずつ読み出し、書き込みを行なうとすると、データは先頭から4096バイトずつに分割され、この分割データがキャッシュ/パージの単位とされる。
【0053】
本実施例の動作を説明する。キャッシュ装置用プログラム10Pによって実現されるリクエスト処理部11が、演算装置101からリクエスト(或るデータαを先頭からシーケンシャルに転送することを要求するリクエスト)を受け取ると(図4のステップA1)、データαの第1番目の分割データから順番に、第一の実施例で説明した処理と同様の処理が行われる。今、例えば、データαの第n番目の分割データが処理対象になったとすると、キャッシュ装置用プログラム10Pによって実現されるキャッシュ検索部12が、上記データαの第n番目の分割データがキャッシュ記憶部104にキャッシュされているかどうかを調べる(ステップA2)。
【0054】
今、第n番目の分割データがキャッシュされていないとすると、キャッシュ検索部12は、二次記憶装置103からオリジナルの第n番目の分割データを取得する(ステップA5)。その後、キャッシュ装置用プログラム10Pによって実現されるキャッシュ判定部13内のデータグループ決定手段22によって、上記第n番目の分割データが属するデータグループが決定される(ステップB1)。このステップB1の具体的な処理は、第一の実施例のステップB1の処理と全く同じであり、第n番目の分類データは、アクセス時刻を予想不可能なデータグループX或いはアクセス時刻を予測可能なデータグループYに分類される。
【0055】
その後、ステップB2に於いて、第n番目の分割データに優先度が割り当てられる。ここで、第n番目の分割データが、データグループXに属するものであるときは、参照回数が優先度として割り当てられ、データグループYに属するものであるときは、予測アクセス時刻が優先度として割り当てられる。予想アクセス時刻は、式「予想アクセス時刻=現在時刻+分割データサイズ×R/演算装置101と主記憶装置102との間のデータ転送速度」を使用して予想する。但しRは、アクセスされた分割データと到着時刻を予想している分割データとの間にいくつの分割データがあるかを表す。
【0056】
その後、ステップB3に於いて、キャッシュ記憶部104の空き記憶領域が第n番目の分割データを記憶するのに十分な大きさを持つか否かが調べられる。そして、十分な大きさを持てば、第n番目の分割データは、部分キャッシュ管理部21−1或いは部分キャッシュ管理部21−2内のデータ操作手段33によってキャッシュ記憶部104にキャッシュされる(ステップB6)。これに対して、空き記憶領域の大きさが十分でない場合には、最低優先度決定手段23によってデータグループXとデータグループYとの優先度が比較され、パージの対象にするデータグループが決定される(ステップB4)。このステップB4の具体的な動作は、第一の実施例と全く同じである。
【0057】
ステップB4に於いて、パージ対象にするデータグループが決定されると、そのデータグループを管理している部分キャッシュ管理部内のデータ操作手段33が、部分最低優先度決定手段32によって特定される最低優先度データが使用していた領域をパージし、そこに第n番目の分割データをキャッシュする(ステップB5,B6)。
【0058】
以上は、データαの第n番目の分割データがキャッシュされていない場合の動作であるが、キャッシュされている場合は、次のような動作が行われる。
【0059】
ステップA2に於いて、第n番目の分割データがキャッシュされていると判断した場合、キャッシュ検索部12は、第n番目の分割データをキャッシュ記憶部104から読み出す(ステップA3)。その後、データαの第(n+1)番目以降のデータの優先度を更新する(ステップA4)。このステップA4の具体的な動作は、第1の実施例と全く同様である。
【0060】
以上の動作をデータαの最後の分割データまで行うと、データグループ決定手段22は、リクエスト処理部11が受け付けている後続のリクエストの中に、データαに対するリクエストが存在するか否かを調べる。そして、存在しない場合には、データグループXの分割データを管理している部分キャッシュ管理部21−1に対して、データαの第2番目以降のデータを管理対象にすることを指示し、データグループYのデータを管理している部分キャッシュ管理部21−2に対して、データαの第2番目以降のデータを管理対象から除外することを指示する。これにより、部分キャッシュ管理部21−1は、データαの第2番目以降の分割データを管理対象にし、部分キャッシュ管理部21−2は、データαの第2番目以降の分割データを管理対象から除外する。更に、部分キャッシュ管理部21−1内の優先度割り当て手段31は、データαの第2番目以降の分割データに、データαの第1番目の分割データと同じ優先度(参照回数)を割り当てる。尚、上述した第一の実施例及びその変形は、第二の実施の形態にも適用できる。
【0061】
次に、第一の実施の形態に対する第二の実施例を示す。本実施例は、第一の実施の形態に係るキャッシュ装置を、二次記憶装置中にディレクトリデータとファイルデータの二種類の情報が格納されているシステムにおけるディスクキャッシュ装置とした場合についてのものである。
【0062】
本実施例では、ディレクトリデータと、ファイルデータのそれぞれをLFUでキャッシュし、各データには優先度として参照回数を割り当てる。更に、本実施例では、最低優先度のデータグループを決定するために、各データに最終アクセス時刻も割り当てる。そして、二つのデータグループの部分最低優先度データ(参照回数が最も少ないデータ)のうち、最終アクセス時刻が早い方が最低優先度データとする。
【0063】
図8は本実施例のブロック図であり、キャッシュ装置200と、主記憶装置210と、二次記憶装置220とから構成されている。
【0064】
主記憶装置210には、キャッシュ記憶部211が設けられている。二次記憶装置220には、複数のディレクトリデータA〜Fと、複数のファイルデータ1〜6が格納されている。
【0065】
キャッシュ装置200は、リクエスト処理部201と、キャッシュ検索部202と、キャッシュ判定部203とを備えている。リクエスト処理部201,キャッシュ検索部202は、図2に示したリクエスト処理部11,キャッシュ検索部12と同様の機能を有する。キャッシュ判定部203は、ディレクトリデータを管理する部分キャッシュ管理部204−1と、ファイルデータを管理する部分キャッシュ管理部204−2と、最低優先度決定手段208と、データグループ決定手段209とを備えている。
【0066】
外部からのリクエストをリクエスト処理部201が受け付けると(図4,ステップA1)、キャッシュ検索部202は、リクエストされたデータがキャッシュ記憶部211にキャッシュされているか否かを調べる(ステップA2)。
【0067】
そして、キャッシュされている場合には、キャッシュ検索部202は、リクエストされたデータをキャッシュ記憶部211から読み出す(ステップA3)。その後、上記リクエストされているデータを管理している部分キャッシュ管理部204−i(i=1または2)内の優先度割り当て手段205−iが、上記リクエストされたデータの参照回数(優先度)および最終アクセス時刻を更新する(ステップA4)。これに対して、リクエストされたデータがキャッシュされていない場合は、キャッシュ検索手段202は、二次記憶装置220からリクエストされたデータを取り出す(ステップA5)。
【0068】
その後、キャッシュ判定部203内のデータグループ決定手段209が、上記データを所属させるデータグループを決定する(ステップB1)。本実施例では、上記データがディレクトリデータである場合には、所属先を部分キャッシュ管理部204−1で管理されるデータグループG1にし、ファイルデータである場合には、所属先を部分キャッシュ管理部204−2で管理されるデータグループG2とする。
【0069】
その後、所属先とされた部分キャッシュ管理部204−i内の優先度割り当て手段205−iが、上記データに参照回数(優先度)および最終アクセス時刻を割り当てる(ステップB2)。そして、キャッシュ記憶部211の空き領域が、データを記憶するのに十分な大きさを持つかどうかの判定を行ない(ステップB3)、十分な大きさを持てば、キャッシュ記憶部211にデータを格納する(ステップB6)。これに対して、空き領域が十分な大きさを持たない場合は、最低優先度決定手段208が、部分最低優先度決定手段206−1,206−2によって求められた、データグループG1,G2中の部分最低優先度データ(参照回数が最も少ないデータ)の最終アクセス時刻を比較し、最終アクセス時刻が新しい方のデータグループをパージ対象のデータグループとする(ステップB4)。
【0070】
その後、パージ対象にされたデータグループを管理している部分キャッシュ管理部204−i内のデータ操作手段207−iが、部分最低優先度決定手段206−iによって特定されている最低優先度を持つデータが使用していた記憶領域を空き記憶領域に含め、データをキャッシュするのに十分な空き記憶領域を確保し(ステップB5)、確保した領域にデータをキャッシュする(ステップB6)。
【0071】
次に、図9に示す関係を持つディレクトリデータA〜F、ファイル1〜6が二次記憶装置220に格納されている場合を例にとって、本実施例の効果について説明する。ファイルデータ、ディレクトリデータともに、複数のユーザによって共有されている等の理由で頻繁に参照されるものと、ほとんど参照されないものがあるため、頻繁にアクセスされるファイルを主記憶装置210中のキャッシュ記憶部211にキャッシュすると、アクセスコストが軽減される。ディレクトリデータBが4人のユーザに共有されていて、ディレクトリBに各ユーザがファイルを持っていたとすると、ディレクトリBは多数のアクセスを受けることになる。
【0072】
最初に、ディレクトリデータとファイルデータの二つのデータを既存のキャッシングアルゴリズムにより統一的に管理する場合の問題点について説明する。二次記憶装置220上にあるディレクトリデータを主記憶装置210上のキャッシュ記憶部211にキャッシュするとファイルデータへのアクセス速度が増加するため、ディレクトリデータをキャッシュすることは良いが、ファイルデータもキャッシュする必要があるため、ディレクトリデータのキャッシュに割り当てる記憶領域と、ファイルデータのキャッシュに割り当てる記憶領域のバランスを取る必要がある。ところが上に述べた通り、ディレクトリデータは、ファイルデータに比べて多数のアクセスを受ける傾向がある。そのため頻繁にアクセスされるファイルデータ、ディレクトリデータが時間とともに変化した場合には、ディレクトリデータの参照回数とファイルデータの参照回数を直接比較すると、現時点で頻繁にアクセスされているファイルデータよりも、過去に頻繁にアクセスされていたディレクトリデータの方が優先順位が高くなってしまう。この結果、キャッシュ記憶部211に格納されているデータをパージすることが必要になった場合、過去に頻繁にアクセスされていたディレクトリデータがパージされずに、現在頻繁にアクセスされているファイルデータがパージされてしまうという問題が生じる。
【0073】
本実施例では、参照回数に関して、ファイルデータはファイルデータ同士、ディレクトリデータはディレクトリデータ同士の比較になり、ファイルデータをキャッシュするための記憶領域とディレクトリデータをキャッシュするための記憶領域の大きさのバランスは、互いのデータグループで最も不要なデータの最終アクセス時刻の比較によって取られる。頻繁にアクセスされるファイルデータ、ディレクトリデータが移り代わると、ファイルデータ、ディレクトリデータそれぞれの中で高い優先度を持っていた(参照回数が多かった)データが低い優先度を持つようになり、いずれ部分最低優先度データとなる。この時、最も低い優先度を持つディレクトリデータ、ファイルデータのどちらを捨てるかは、参照回数ではなく、最終アクセス時刻によって決定されるため、多くなりがちなディレクトリデータの参照回数とファイルデータの参照回数が比較されることはなく、ファイルデータとディレクトリデータが使用する記憶領域のバランスが取られるので、適切なキャッシングを行なうことができ、ディレクトリデータ、ファイルデータへのキャッシュヒットが増加し、ファイル検索、ファイルI/Oの速度が増す。
【0074】
本実施例の変形として、二次記憶装置220中にDNSデータとファイルデータとを格納し、キャッシュ装置200をプロキシキャッシュ装置として使用する場合について説明する。
【0075】
URLは、データを保持するホストと、ホストで解決されるファイルの識別子からなり、ホストとIPアドレスの関連づけはDNSデータに基づいて行なわれる。従って、プロキシキャッシュ装置の高速化のためには、ファイルデータだけでなくDNSデータもキャッシュした方が良い。図8に示した部分キャッシュ管理部204−1,204−2をそれぞれDNSデータ用,ファイルデータ用に使用すれば、ファイルデータとDNSデータが使用するキャッシュ記憶部211の領域のバランスが取られるので、適切なキャッシングを行なうことができ、ファイルデータ、DNSデータへのキャッシュヒットが増加し、クライアントのリクエストに対するレスポンスタイムが短縮される。ファイルデータとDNSデータを共にキャッシュする場合、上記のファイルデータとディレクトリデータの関係と同様、人気のあるファイルを保持するホストのDNSデータは、そのホストが保持するデータに比べて多数のアクセスを受けるため、ファイルデータとDNSデータの参照回数を直接比較すると、ファイルのためのキャッシュ領域とDNSデータのためのキャッシュ領域のバランスがとれない。
【0076】
上記実施例ではファイルとディレクトリ(DNSデータ)の優先度を最終アクセス時刻を用いて比較するが、これ以外にもデータグループYに属するデータに対して、初めてアクセスされた時刻Bを付加し、次回のアクセス予想時刻を予想時刻=C+(C−B)/Fとする方式も考えられる。ただし、Cは現在時刻、Fは参照回数である。そして、各データグループの部分最低優先度データの内、予想アクセス時刻が最も遠い時刻を示しているものをパージする。尚、上述した第二の実施例は及びその変形は、第二の実施の形態にも適用できる。
【0077】
次に、第一の実施の形態に対する第三の実施例について説明する。本実施例は、第1の実施の形態に係るキャッシュ装置を、WWWデータのキャッシングに用いられるプロキシキャッシュ装置に適用した場合についてのものである。
【0078】
図10は本実施例に係るキャッシュ装置300の構成例を示すブロック図であり、リクエスト処理部301と、キャッシュ検索部302と、キャッシュ判定部303と、キャッシュ記憶部314とから構成されている。
【0079】
キャッシュ判定部303は、部分キャッシュ管理部304−1,304−2と、データグループ決定手段308と、最低優先度決定手段309と、ヒット率推定手段310とを備えている。
【0080】
部分キャッシュ管理部304−1,304−2は、優先度割り当て手段305−1,305−2と、部分最低優先度決定手段306−1,306−2と、データ操作手段307−1,307−2とを備えている。また、ヒット率推定手段310は、サイズ管理手段311と、個数管理手段312と、演算手段313とを備えている。
【0081】
本実施例においては、キャッシュ記憶部314にキャッシュされているデータを、キャッシュされた後一度もアクセスされていないデータグループLと、キャッシュされた後一度以上アクセスされたデータグループHとに分けて管理する。従って、キャッシュ記憶部314中のデータグループLのデータがアクセスされた場合、そのデータはデータグループLから取り除かれて、データグループHに移される。データグループH,Lに属するデータは、それぞれ部分キャッシュ管理部304−1,304−2によって管理される。各部分キャッシュ管理部304−1,304−2内の優先度割り当て手段305−1,305−2は、どちらもLRUに従った優先度を、管理しているデータに割り当てる。
【0082】
ヒット率推定手段310内のサイズ管理手段311は、データグループL,Hが占める記憶領域のサイズ|L|,|H|を管理する。個数管理手段312は、データグループLからデータグループHに移った後、一度以上アクセスされたことのあるデータの数Tと、データグループLからデータグループHに移った後、一度もアクセスされたことのないデータの数Sとを管理している。演算手段313は、サイズ管理手段311,個数管理手段312で管理されているデータに基づいて、データグループL,Hそれぞれのヒット率の推定値を求める。
【0083】
次に、本実施例の動作を説明する。
【0084】
リクエスト処理部301が、外部からのデータDに対するリクエストを受け付けると(図4のステップA1)、キャッシュ検索部302が、キャッシュ記憶部314にデータDがキャッシュされているか否かを調べる(ステップA2)。
【0085】
キャッシュされている場合(ステップA2がy)は、キャッシュ検索部302によって、キャッシュ記憶部314からリクエストされたデータDが読み出され(ステップA3)、更に、上記データDを管理している部分キャッシュ管理部304−i(i=1または2)内の優先度割り当て手段305−iによってデータDに対する優先度(LRUに従った優先度)が更新される(ステップA4)。また、ステップA4の処理が終了した後、データグループ決定手段308は、上記データDがデータグループLに属するものであれば、部分キャッシュ管理部304−1,304−2に指示を出し、データDをデータグループLからデータグループHへ移す。
【0086】
これに対して、データDがキャッシュされていない場合(ステップA2がn)は、キャッシュ検索部302が、キャッシュ元からオリジナルなデータDを取得する(ステップA5)。その後、データグループ決定手段308が、上記データDをデータグループLにグループ分けし(ステップB1)、データグループLを管理している部分キャッシュ管理部304−2内の優先度割り当て手段305−2が、データDに優先度(LRUに従った優先度)を割り当てる。
【0087】
その後、ステップB3に於いて、データDを格納するのに十分な空き領域がキャッシュ記憶部314上に存在するか否かが調べられる。そして、十分な空き領域が存在する場合には、部分キャッシュ管理部304−2内のデータ操作手段307−2によって、データDがキャッシュ記憶部314にキャッシュされる(ステップB6)。
【0088】
これに対して、データDを格納するのに、十分な空き領域が存在しない場合(ステップB3がy)は、最低優先度決定手段309が、ヒット率推定手段310の推定結果に基づいて、パージするデータグループを決定する(ステップB4)。
【0089】
このステップB4の処理を詳細に説明すると、次のようになる。ヒット率推定手段310内の演算手段313は、サイズ管理手段311,個数管理手段312で管理されているデータ|L|,|H|,S,Tを使用して、データグループL,Hのヒット率の推定値SL,SHを次式(1),(2)により求めている。
【0090】
SL=|L|/(S+a) … (1)
SH=|H|/(T+a) … (2)
ここで、aは定数である。
【0091】
最低優先度決定手段309は、データグループL,Hのヒット率の推定値SL,SHを比較し、SL≧SHであれば、データグループHの優先度の方が高いと判断し、データをパージするデータグループをデータグループLに決定する。SL<SHであれば、データグループLの方が優先度が高いと判断し、データをパージするデータグループをデータグループHに決定する。以上がステップB4で行う処理の詳細である。
【0092】
ステップB4に於いて、パージするデータグループがデータグループHに決定された場合には、部分キャッシュ管理部304−1内のデータ操作手段307−1がデータグループH中の最低優先度データをキャッシュ記憶部314からパージし、その後、データDをキャッシュ記憶部314にキャッシュする(ステップB5,B6)。また、ステップB4に於いて、パージするデータグループがデータグループLに決定された場合には、部分キャッシュ管理部304−2内のデータ操作手段307−2が、データグループL中の最低優先度データをキャッシュ記憶部314からパージし、その後、データDをキャッシュ記憶部314にキャッシュする(ステップB5,B6)。
【0093】
尚、サイズ管理手段311では、例えば、次のようにして、データグループL,Hが占める記憶領域のサイズ|L|,|H|を管理する。ステップB5に於いて、データグループHを管理している部分キャッシュ管理部304−1内のデータ操作手段307−1がデータをパージした場合、上記データのサイズ分だけデータグループHのサイズ|H|を減少させ、ステップB6に於いてデータ操作手段307−1がデータをキャッシュした場合、上記データのサイズ分だけデータグループHのサイズ|H|を増加させる。また、ステップB5に於いて、データグループLを管理している部分キャッシュ管理部304−2内のデータ操作手段307−2がデータをパージした場合には、上記データのサイズ分だけデータグループLのサイズ|L|を減少させ、ステップB6に於いてデータ操作手段307−2がデータをキャッシュした場合には、上記データのサイズ分だけデータグループLのサイズ|L|を増加させる。
【0094】
また、個数管理手段312は、例えば次のようにして、個数S,Tを管理する。ステップA3において、キャッシュ記憶部314から或るデータαが読み出された場合、そのデータαの識別子とアクセス回数との対が、自手段312内に設けられているリスト(図示せず)に繋がれているか否かを調べる。もし、繋がれていない場合は、データαの識別子とアクセス回数(0回)との対を、リストに追加し、更に、個数Sを+1する。これに対して、データαの識別子がリストに繋がれている場合は、それと対になっているアクセス回数を+1し、更新後のアクセス回数が「1回」であるか否かを調べる。そして、アクセス回数が「1回」である場合には、個数Tを+1し、「1回」でない場合には、個数Tに対する更新は行わない。また、ステップB5に於いて、データ操作手段307−1によって、データグループH中の最低優先度データβがパージされた場合、リストに繋がれているデータβの識別子とアクセス回数との対に注目し、アクセス回数が「0回」であるか否かを調べる。そして、アクセス回数が「0回」であれば、個数Sを−1し、更に、上記注目した対をリストから削除する。これに対して、アクセス回数が「0回」でなければ、個数Tを−1し、更に上記注目した対をリストから削除する。
【0095】
本実施例は、二つのデータグループを組み合わせることで既存のLRU,LFUを単独で使った方式の問題点を克服している。
【0096】
LRUを使った場合は、ミラーリングを行うためにあるサイト上のWWWデータを大量にコピーするようなアクセスが発生した場合に、一度しかアクセスされないデータも含めて大量のデータに対するアクセスが発生するため、結果として頻繁に利用されるデータがキャッシュから追い出されてキャッシュの効率が低下する問題点がある。
【0097】
LFUを使った場合は、ユーザのアクセスパターンが変化して頻繁にアクセスされるデータが時間とともに変化した場合でも、以前アクセスされていたデータに対するアクセス数が大きかった場合は、なかなかキャッシュから追い出されずにキャッシュの効率を低下する問題点がある。本実施例では、WWWデータを大量にコピーするようなアクセスが発生した場合でも、一度しかアクセスされないデータはデータグループLに入れられ、結果としてデータグループLのヒット率が低下するため、データグループHに入っている頻繁にアクセスされるデータがパージされることがない。この結果、キャッシュを効率的に利用することができる。
【0098】
また、ユーザのアクセスパターンが変化して頻繁にアクセスされるデータが時間とともに変化した場合は、アクセスされなくなったデータは、以前に頻繁にアクセスされていたデータであってもデータグループHから急速に追い出されるためキャッシュの効率が低下する問題点が解決される。
【0099】
また本実施例は、LRUと同様にデータ構造としてキューを使ってキャッシュされたデータを管理することができるため、一回のキャッシュ操作に要する計算量はO(1)しか必要としない。これに対してLFU等のようにデータ構造としてヒープを用いた他のキャッシングアルゴリズムでは、キャッシュ中のデータ数がnの時の一回のキャッシュ操作に要する計算量がO(logn) のキャッシングアルゴリズムと比較して短い計算時間しか必要とせずに実現できるという特長も持つ。
【0100】
なお、本実施例の適用範囲はWWWデータのキャッシングに用いられるプロキシキャッシュ装置以外にも、ディスク中のデータを主記憶装置中にキャッシュする目的や、DNSデータを主記憶装置中にキャッシュする目的にも適用可能であることは明らかである。
【0101】
本実施例の変形として、WWWデータのキャッシングだけでなく、データのプリフェッチも行なうプロキシキャッシュ装置に、第一の実施の形態を適用した場合について説明する。
【0102】
本実施例を示した図10において、データグループHを管理する部分キャッシュ管理部304−1をキャッシュされたデータの管理に、データグループLを管理する部分キャッシュ管理部304−2をプリフェッチされたデータの管理に用いる。データグループ決定手段308は、プリフェッチされたデータに対してはデータグループLを割り当て、データグループL中にキャッシュされているデータがアクセスされた場合、そのデータをデータグループLからデータグループHに移す。また、何れのデータグループの優先度割り当て手段305−1,305−2も、LRUに従って優先度を割り当てる。
【0103】
ヒット率推定手段310は、第三の実施例と同様に、データグループLのヒット率の推定値SL=|L|/(S+a)と、データグループHのヒット率の推定値SH=|H|/(T+a)とを求める。最低優先度決定手段309は、図4のステップB4に於いて、ヒット率推定手段310が算出したヒット率の推定値SL,SHを比較する。そして、SL≧SHであれば、データグループHの優先度の方が高いと判断し、データをパージするデータグループをデータグループLに決定する。SL<SHであれば、データグループLの方が優先度が高いと判断し、データをパージするデータグループをデータグループHに決定する。
【0104】
本実施例のキャッシュ方式と、プリフェッチされたデータを扱う本実施例の変形例は、容易に組み合わせることが可能である。まず、プリフェッチされたデータからなるデータグループPと、キャッシュされた後一度もアクセスされていないデータグループL、キャッシュされた後一度以上アクセスされたデータグループHを作り、各データグループをLRUでキャッシュする。また、Pに属するデータがアクセスされると、そのデータはLに、Lに属するデータがアクセスされると、そのデータはHに移される。データグループHに属するデータで、Hに移ってから一度以上アクセスされたデータの数Tと、データグループLからデータグループHへと移ってからアクセスされたことがないデータの数S、データグループLに属するデータで、データグループPから移されたデータの数V、データグループLにキャッシュされたデータの数Xを管理する。最低優先度決定手段309は、上記T、S、V、Xを用いて、|P|/V、|L|/S、|H|/Tのうち、|P|/Vが最大値であればPの、|L|/Sが最大値であればLの、|H|/Tが最大値であればHの中で最低の優先度を持つデータをパージする。
【0105】
さらに、異なるヒット率の推定方法について述べる。t回目のリクエストを受け付けた時のデータグループiに対してh(t,i)を、cを0より大きく1未満の定数として、h(t,i)=ch(t-1,i)+(1-c)Δ(t) と定義する。ただし、iはデータグループであり、Δ(t) は、t 回目のリクエストがデータグループiに属するデータに対するものであれば1、そうでなければ0を取る。そして、t回目のリクエストを受けた時のデータグループiのデータサイズをs(t,i)とし、h(t,i)/s(t,i) をヒット率とする。ヒット率が最小であるデータグループの部分最低優先度データが最低優先度データとみなされ、パージされる。
【0106】
また、第一の実施例で述べたデータグループX、Yに対して上記同様、ヒット率をh(t,i)/s(t,i) と推定し、最小のh(t,i)/s(t,i) を持つデータグループの部分最低優先度データをパージする方法が、容易に類推できる。
【0107】
次に、第一の実施の形態の第四の実施例を述べる。
【0108】
本実施例は、HTML(Hyper Text Markup Language)で記述されたWeb ページ(HTML 文書) 、およびそれらのページに埋め込まれている画像、音声、音楽、動画、映像、あるいはJavaなどのプログラミング言語で記述されたプログラムなどのWeb オブジェクトを管理するキャッシュ装置に、第一の実施の形態を適用したものである。
【0109】
HTML文書においては、他のHTML文書、もしくはWeb オブジェクトとの論理的な関連をつけるために「リンク」が用いられている。例えば、「<a href = URL>アンカー </a> 」という記述を用いることで、あるHTML文書中の「アンカー」という部分と、URL という識別子で示される Webオブジェクトとを関連づけることができる。
【0110】
一つのHTML文書中にたくさんのリンクを持つ Webページというものは、例えばディレクトリ型検索システムのように、多くの Webページを主題別に分類し、また分類をおおまかな大分類から詳細な小分類へと階層的に行なうことで利用者への便宜をはかるようなシステムで良く見られることがある。あるいは、ニュースを提供するシステムのように、ニュース記事そのものを含むのではなく、個別ニュースへのリンクをジャンルごとにまとめあげ、一つの Webページ内にニュース記事の見出しを見やすく配置するような場合にも、一つの HTML 文書中に多くのリンクを含むこととなる。すなわち、多くの情報を分類・整理することによって、そのWeb ページ自体の価値が重要視されるようなWeb ページは、一般に他のWeb ページへのリンクを多く含むこととなっている。以下、このような Webページのことを「インデックスページ」と呼ぶ。
【0111】
逆に、事件・事故などを詳細に解説したニュースそのもののWeb ページや、なんらかの技術に関する解説記事、あるいはエッセイ・日記などのように、他の Webページへのリンクをほとんど含まない HTML 文書というものも存在する。このような Webページを以下では「アーティクルページ」と呼ぶ。
【0112】
そこで、データグループ決定手段22では、HTML文書のこのような構造を利用し、HTML文書中に含まれているリンクの数を用いてデータグループを決定する(図4,ステップB1)。すなわち、HTML文書中に含まれる「<a href=...>・・・ </a> 」というリンク部分を検出し、その数が定められた数以上であればインデックスページに、そうでなければアーティクルページに、その文書をグループ分けする。一般に、ユーザが Webページを参照する時には、最初にインデックスページを参照し、そのページ内のリンクを用いて、続いてアーティクルページを参照し、場合によってはそのアーティクルページからもう一度先ほどのインデックスページを参照し、別のアーティクルページを参照するというような動作を行なうことが多い。すなわち、ユーザはインデックスページを基準とし、そこからリンクされている幾つかのアーティクルページを参照するという行為を繰り返している。この結果として、インデックスページの参照回数が、アーティクルページの参照回数に比べて多くなっている。図11に、インデックスページ400−1から、インデックスページ400−2、アーティクルページ400−3、アーティクルページ400−4…と参照し、Web ページ400−kまで参照する例を示した。
【0113】
これまでに提案されている従来のキャッシュ管理手法においては、上記で述べたようなインデックスページやアーティクルページが持つ意味合いをまったく考慮しておらず、キャッシュを有効に活用することができていなかった。
【0114】
本実施例においては、データグループ決定手段22において、Web ページ中のリンク数を検出することで、そのページがインデックスページであるかアーティクルページであるかを判断する。キャッシュ判定部13には、インデックスページ用とアーティクルページ用の部分キャッシュ管理部21−1,21−2が用意されており、インデックスページもしくはアーティクルページは、それぞれ対応する部分キャッシュ管理部において、それぞれ個別のキャッシングアルゴリズムを用いて管理される。キャッシングアルゴリズムとしては、参照回数や最終参照時刻を用いた優先順位に基づく管理方式を採用する。例えば、一般に知られているLFU(Least Frequently Used) アルゴリズムでは、参照回数を優先度として採用しており、参照回数の最も小さなものが置換え対象となる。またLRU(Least Recently Used) アルゴリズムでは、「1/(現在時刻−最終参照時刻)」が優先度に相当し、最終参照時刻が最も古いもの、すなわち「1/(現在時刻−最終参照時刻)」の値が最も小さなものが置換え対象となる。また、LRUとLFUの中間の性質を持つキャッシングアルゴリズムとしては、0<p<1なる定数pを用いてp*参照回数+(1−p)*1/(現在時刻−最終参照時刻)という式から算出される値を、優先順位とする方式も考えられる。
【0115】
各部分キャッシュ管理部21−1,21−2内の部分最低優先度決定手段32においては、上記のキャッシングアルゴリズムを用いてWeb ページを管理し、最低の優先度を持つWeb ページを置換えの候補とする。
【0116】
最低優先度決定手段23は、ステップB4に於いて、インデックスページとアーティクルページとの内の、どちらを置換え対象とするかを評価式に基づき決定する。
【0117】
例えば、評価値をV=1/(現在時刻−最終アクセス時刻) と定義し、インデックスページの評価値Viとアーティクルページの評価値Vaのうち、小さな方を真の置換え対象と決定することができる。
【0118】
あるいは正の定数αを用いて、 Vi とα * Va との値の比較を行ない、小さな方を真の置換え対象と決定する方式も考えられる。α≧1の場合には、アーティクルページの方をインデックスページよりも長期間キャッシュに保存することができ、逆にα<1の場合にはインデックスページの方をアーティクルページよりも長期間キャッシュに保存することができる。
【0119】
置き換えの対象とされたページを管理している部分キャッシュ管理部21−i内のデータ操作手段33は、ステップB5に於いて、自管理部21−i内の部分最低優先度決定手段32によって置き換え候補とされた最低優先度を持つデータをパージする。
【0120】
データグループ決定手段22における分類方法として、上記実施例においてはリンク数に基づく分類方法のみを説明したが、これ以外にも埋め込みオブジェクトの数を考慮した分類を行なうこともできる。例えば、HTML文書では「<IMG SRC=...> 」という記述を用いて、画像、音声、音楽、動画などを文書中に埋め込むことができるので、文書中にある<IMG SRC=...> というタグを解析し、埋め込みオブジェクトの数を算出することができる。そこで、ある HTML 文書中のリンク数と埋め込みオブジェクトの数とを用いて、HTMLページをインデックスページとアーティクルページとに分類することができる。
【0121】
あるいは、埋め込みオブジェクト自体には HTML 文書とは別の参照特性があると考えて、インデックスページ、アーティクルページ、そして埋め込みオブジェクトのように分類を3種類にすることもできる。いずれの場合においても、データグループ決定手段22を除く本発明の構成要素は、上記実施例で述べた方法が素直に適用できることは明らかである。
【0122】
本実施例においては、Web ページ中の HTML タグを用いながら、Web ページをインデックスページとアーティクルページ、あるいは埋め込みオブジェクトというように、その論理的な意味にもとづく分類を行ない、かつそれぞれのページを独立なキャッシングアルゴリズムで管理し、更に最終的な置換え対象を決定する際には、現在時刻と最終参照時刻とを用いて、最も参照されていない Webページを置換え対象としている。すなわち、Web ページの論理構造を重視した上で、今までに知られている優先順位に基づくキャッシングアルゴリズムが矛盾なく統一的に動作する構成となっている。
【0123】
尚、本発明の適用範囲は、HTMLで記述された Webページ(HTML 文書) および画像、音声、音楽、動画などの Webオブジェクトに限られるものではない。ハイパーリンク構造を持つ文書や、画像、音声、音楽、動画、映像を含むマルチメディアデータ、あるいはプログラムを対象とするキャッシュ一般にも適用可能であることもまた明らかである。また、第四の実施例は、第二の実施の形態にも適用できる。
【0124】
【発明の効果】
第一の効果は、キャッシュヒット率の向上である。その理由は、データ毎に異なるキャッシングアルゴリズムを適用できるので、データ毎のアクセス特性を反映したキャッシングができるためである。また、データグループ毎にデータ記憶領域を固定的に割り当てる必要がないため、各データグループ毎に独自のキャッシングアルゴリズムを用いているにも関わらず、データ記憶領域を有効に活用でき、このこともキャッシュヒット率向上に寄与している。
【0125】
第二の効果は、軽いキャッシュ処理のコストである。その理由は、第三の実施例で述べた通り、本発明ではO(1)で高いキャッシュヒット率を達成できるためである。
【0126】
第三の効果は、Web ページの論理構造を重視した上で、今までに知られている優先順位に基づくキャッシングアルゴリズムを矛盾なく統一的に動作させられる点である。その理由は、第四の実施例で述べた通り、本発明ではハイパーリンク構造をキャッシュ処理時に考慮できるからである。
【図面の簡単な説明】
【図1】プロキシキャッシュ装置を使用したネットワークシステムの一例を示す図である。
【図2】本発明の第一の実施の形態に係るキャッシュ装置10の構成例を示すブロック図である。
【図3】キャッシュ装置10内のキャッシュ判定部及びキャッシュ記憶部の構成例を示すブロック図である。
【図4】第一の実施の形態の処理例を示す流れ図である。
【図5】本発明の第二の実施の形態に係るキャッシュ判定部13a及びキャッシュ記憶部の構成例を示すブロック図である。
【図6】第二の実施の形態の処理例を示す流れ図である。
【図7】第一の実施の形態の第一の実施例を説明するためのブロック図である。
【図8】第一の実施の形態の第二の実施例を説明するためのブロック図である。
【図9】図8に示した第二の実施例を説明するための図である。
【図10】第一の実施の形態の第三の実施例を説明するためのブロック図である。
【図11】第一の実施の形態の第四の実施例を説明するための図である。
【符号の説明】
1−1〜1−m…サーバ
2−1〜2−n…クライアント
3…ネットワーク
4…プロキシキャッシュ装置
10…キャッシュ装置
11…リクエスト処理部
12…キャッシュ検索部
13…キャッシュ判定部
14…キャッシュ記憶部
21−1〜21−n…部分キャッシュ管理部
22…データグループ決定手段
23…最低優先度決定手段
24…空き記憶領域
25−1〜25−m…データ
31…優先度割り当て手段
32…部分最低優先度決定手段
33…データ操作手段
13a…キャッシュ判定部
26−1〜26−n…部分キャッシュ管理部
34…サイズ測定手段
35…ヒット率測定手段
101…演算装置
102…主記憶装置
103…二次記憶装置
104…キャッシュ記憶部
10P…キャッシュ装置用プログラム
200…キャッシュ装置
201…リクエスト処理部
202…キャッシュ検索部
203…キャッシュ判定部
204−1,204−2…部分キャッシュ管理部
205−1,205−2…優先度割り当て手段
206−1,206−2…部分最低優先度決定手段
207−1,207−2…データ操作手段
208…最低優先度決定手段
209…データグループ決定手段
210…主記憶装置
211…キャッシュ記憶部
220…二次記憶装置
300…キャッシュ装置
301…リクエスト処理部
302…キャッシュ検索部
303…キャッシュ判定部
304−1,304−2…部分キャッシュ管理部
305−1,305−2…優先度割り当て手段
306−1,306−2…部分最低優先度決定手段
307−1,307−2…データ操作手段
308…データグループ決定手段
309…最低優先度決定手段
310…ヒット率推定手段
311…サイズ管理手段
312…個数管理手段
313…演算手段
314…キャッシュ記憶部
400−1〜400−k…Web ページ

Claims (6)

  1. キャッシュ記憶部にデータをキャッシュする際、予め定められているグループ分け規則に基づいて、予め定められている複数のグループの内の1つのグループに前記データをグループ分けするデータグループ決定ステップと、
    前記キャッシュ記憶部からデータをパージすることが必要になった場合、各グループに割り当てられている前記キャッシュ記憶部上の記憶領域のサイズと、各グループのキャッシュヒット率とに基づいて、最低優先度を持つグループを動的に決定する最低優先度決定ステップと、
    該最低優先度決定ステップで決定された最低優先度を持つグループ中のデータの内の、そのグループのキャッシュアルゴリズムによって最低優先度が割り当てられているデータをパージする部分キャッシュ管理ステップとを含むことを特徴とするキャッシュ制御方法。
  2. データを分割することにより得られる分割データをキャッシュ記憶部にキャッシュする際、先頭の分割データを第1のグループに、それ以外の分割データを第2のグループにグループ分けするデータグループ決定ステップと、
    前記キャッシュ記憶部からデータをパージすることが必要になった場合、前記第1のグループに属する各分割データの予想アクセス時刻と、前記第2のグループに属する各分割データの予想アクセス時刻とに基づいて、最低優先度を持つグループを動的に決定する最低優先度決定ステップと、
    該最低優先度決定ステップで決定された最低優先度を持つグループ中のデータの内の、そのグループのキャッシュアルゴリズムによって最低優先度が割り当てられている分割データをパージする部分キャッシュ管理ステップとを含む特徴とするキャッシュ制御方法。
  3. キャッシュ記憶部にデータをキャッシュする際、予め定められているグループ分け規則に基づいて、予め定められている複数のグループの内の1つのグループに前記データをグループ分けするデータグループ決定ステップと、
    前記キャッシュ記憶部からデータをパージすることが必要になった場合、各グループ内で参照回数が最も少ないデータの最終アクセス時刻に基づいて、最低優先度を持つグループを動的に決定する最低優先度決定ステップと、
    該最低優先度決定ステップで決定された最低優先度を持つグループ中のデータの内の、参照回数が最も少ないデータをパージする部分キャッシュ管理ステップとを含むことを特徴とするキャッシュ制御方法。
  4. キャッシュ記憶部と、
    該キャッシュ記憶部にデータをキャッシュする際、予め定められているグループ分け規則に基づいて、予め定められている複数のグループの内の1つのグループに前記データをグループ分けするデータグループ決定手段と、
    前記キャッシュ記憶部からデータをパージすることが必要になった場合、各グループに割り当てられている前記キャッシュ記憶部上の記憶領域のサイズと、各グループのキャッシュヒット率とに基づいて、最低優先度を持つグループを動的に決定する最低優先度決定手段と、
    該最低優先度決定手段で決定された最低優先度を持つグループ中のデータの内の、そのグループのキャッシュアルゴリズムによって最低優先度が割り当てられているデータをパージする部分キャッシュ管理部とを備えたことを特徴とするキャッシュ制御装置。
  5. キャッシュ記憶部と、
    データを分割することにより得られる分割データを前記キャッシュ記憶部にキャッシュする際、先頭の分割データを第1のグループに、それ以外の分割データを第2のグループにグループ分けするデータグループ決定手段と、
    前記キャッシュ記憶部からデータをパージすることが必要になった場合、前記第1のグループに属する各分割データの予想アクセス時刻と、前記第2のグループに属する各分割データの予想アクセス時刻とに基づいて、最低優先度を持つグループを動的に決定する最低優先度決定手段と、
    該最低優先度決定手段で決定された最低優先度を持つグループ中のデータの内の、そのグループのキャッシュアルゴリズムによって最低優先度が割り当てられている分割データをパージする部分キャッシュ管理部とを備えたことを特徴とするキャッシュ制御装置。
  6. キャッシュ記憶部と、
    該キャッシュ記憶部にデータをキャッシュする際、予め定められているグループ分け規則に基づいて、予め定められている複数のグループの内の1つのグループに前記データをグループ分けするデータグループ決定手段と、
    前記キャッシュ記憶部からデータをパージすることが必要になった場合、各グループ内で参照回数が最も少ないデータの最終アクセス時刻に基づいて、最低優先度を持つグループを動的に決定する最低優先度決定手段と、
    該最低優先度決定手段で決定された最低優先度を持つグループ中のデータの内の、参照回数が最も少ないデータをパージする部分キャッシュ管理部とを備えたことを特徴とするキャッシュ制御装置。
JP2001209153A 2001-07-10 2001-07-10 キャッシュ制御方法及びキャッシュ装置 Expired - Fee Related JP4042359B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001209153A JP4042359B2 (ja) 2001-07-10 2001-07-10 キャッシュ制御方法及びキャッシュ装置
US10/190,815 US6834329B2 (en) 2001-07-10 2002-07-09 Cache control method and cache apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001209153A JP4042359B2 (ja) 2001-07-10 2001-07-10 キャッシュ制御方法及びキャッシュ装置

Publications (2)

Publication Number Publication Date
JP2003022211A JP2003022211A (ja) 2003-01-24
JP4042359B2 true JP4042359B2 (ja) 2008-02-06

Family

ID=19044848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001209153A Expired - Fee Related JP4042359B2 (ja) 2001-07-10 2001-07-10 キャッシュ制御方法及びキャッシュ装置

Country Status (2)

Country Link
US (1) US6834329B2 (ja)
JP (1) JP4042359B2 (ja)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7383579B1 (en) * 2002-08-21 2008-06-03 At&T Delaware Intellectual Property, Inc. Systems and methods for determining anti-virus protection status
JP4258332B2 (ja) * 2003-09-30 2009-04-30 ティアック株式会社 光ディスク装置
US7315866B2 (en) * 2003-10-02 2008-01-01 Agency For Science, Technology And Research Method for incremental authentication of documents
US8799324B2 (en) * 2004-01-16 2014-08-05 Verizon Patent And Licensing Inc. Method and system for mobile telemetry device prioritized messaging
US20050188158A1 (en) * 2004-02-25 2005-08-25 Schubert Richard P. Cache memory with improved replacement policy
JP2005301801A (ja) * 2004-04-14 2005-10-27 Nec Corp 情報処理装置、メモリ管理装置、およびプログラム
US7177984B1 (en) * 2004-04-16 2007-02-13 Apple Computer, Inc. Cache management using historical access information
KR20050122950A (ko) * 2004-06-26 2005-12-29 삼성전자주식회사 파일 및 폴더를 사용 빈도에 따라 정렬하여디스플레이하는 방법 및 장치
US20060069746A1 (en) * 2004-09-08 2006-03-30 Davis Franklin A System and method for smart persistent cache
US7571188B1 (en) * 2004-09-23 2009-08-04 Sun Microsystems, Inc. Cache abstraction for modeling database performance
JP4513509B2 (ja) * 2004-11-05 2010-07-28 ブラザー工業株式会社 ファイル取得システムおよび端末装置
US7778495B2 (en) 2004-11-05 2010-08-17 Brother Kogyo Kabushiki Kaisha System and device for image processing
US20060114820A1 (en) * 2004-11-26 2006-06-01 Agfa Inc. System and method for caching and fetching data
US7487320B2 (en) * 2004-12-15 2009-02-03 International Business Machines Corporation Apparatus and system for dynamically allocating main memory among a plurality of applications
US7360042B2 (en) * 2004-12-20 2008-04-15 Microsoft Corporation Determining when to evict unused items from storage
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP3860192B2 (ja) * 2005-02-10 2006-12-20 株式会社ネクストマジック 通信装置
US7519776B2 (en) * 2005-07-26 2009-04-14 Invensys Systems, Inc. Method and system for time-weighted cache management
US7660800B2 (en) 2005-11-28 2010-02-09 Commvault Systems, Inc. Systems and methods for classifying and transferring information in a storage network
US8930496B2 (en) 2005-12-19 2015-01-06 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
US20200257596A1 (en) 2005-12-19 2020-08-13 Commvault Systems, Inc. Systems and methods of unified reconstruction in storage systems
EP1870813B1 (en) * 2006-06-19 2013-01-30 Texas Instruments France Page processing circuits, devices, methods and systems for secure demand paging and other operations
WO2007146970A2 (en) * 2006-06-16 2007-12-21 Texas Instruments Incorporated Page processing circuits, devices, methods and systems for secure demand paging and other operations
US8990396B2 (en) 2006-07-07 2015-03-24 Avaya Communication Israel Ltd. Cache memory storage
US8571061B2 (en) * 2006-07-07 2013-10-29 Avaya Communications Israel Ltd. Inter-network translation
JP4846482B2 (ja) * 2006-08-03 2011-12-28 パナソニック株式会社 バスアービトレーション装置
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
US7882077B2 (en) 2006-10-17 2011-02-01 Commvault Systems, Inc. Method and system for offline indexing of content and classifying stored data
US8370442B2 (en) 2008-08-29 2013-02-05 Commvault Systems, Inc. Method and system for leveraging identified changes to a mail server
US20080228771A1 (en) 2006-12-22 2008-09-18 Commvault Systems, Inc. Method and system for searching stored data
US20080162821A1 (en) * 2006-12-27 2008-07-03 Duran Louis A Hard disk caching with automated discovery of cacheable files
US20080201522A1 (en) * 2007-02-16 2008-08-21 Mediatek Inc. Buffer management method and optical disc drive
DE102007015535A1 (de) * 2007-03-30 2008-10-02 Siemens Ag Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz
US8051145B2 (en) * 2007-03-30 2011-11-01 Hong Kong Applied Science and Technology Research Institute Company Limited Method of simultaneously providing data to two or more devices on the same network
US7921260B2 (en) * 2007-10-24 2011-04-05 International Business Machines Corporation Preferred write-mostly data cache replacement policies
US7543109B1 (en) * 2008-05-16 2009-06-02 International Business Machines Corporation System and method for caching data in a blade server complex
US20090327577A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Hybrid storage
US8060697B1 (en) 2008-09-18 2011-11-15 Sprint Communications Company L.P. Dynamically allocated secondary browser cache
JP2010109907A (ja) * 2008-10-31 2010-05-13 Fujitsu Ltd 中継装置、アクセス解析装置、中継装置の制御方法及び制御プログラム
US8185650B2 (en) * 2009-01-13 2012-05-22 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems, methods, and computer program products for transmitting and/or receiving media streams
JP5250482B2 (ja) * 2009-05-21 2013-07-31 株式会社日立製作所 省電力制御装置及び方法
US8868853B2 (en) * 2009-08-12 2014-10-21 Nec Corporation Data processing device, data recording method and data recording program
US8566531B2 (en) 2009-08-21 2013-10-22 Google Inc. System and method of selectively caching information based on the interarrival time of requests for the same information
WO2011082113A1 (en) 2009-12-31 2011-07-07 Commvault Systems, Inc. Asynchronous methods of data classification using change journals and other data structures
CA2738281C (en) * 2010-04-30 2019-09-17 Desire2Learn Incorporated Systems and methods for managing information objects in dynamic data storage devices
US9253548B2 (en) * 2010-05-27 2016-02-02 Adobe Systems Incorporated Optimizing caches for media streaming
JP5641300B2 (ja) * 2010-07-14 2014-12-17 日本電気株式会社 ストレージシステム及びストレージシステムのメモリキャッシュ領域制御方法
CN102137139A (zh) * 2010-09-26 2011-07-27 华为技术有限公司 缓存替换策略的选择方法、装置、代理服务器和***
US8719264B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Creating secondary copies of data based on searches for content
US8572130B2 (en) * 2011-06-27 2013-10-29 Sap Ag Replacement policy for resource container
JP2013045273A (ja) * 2011-08-24 2013-03-04 Nec Corp キャッシュサーバ、キャッシュ対象決定方法、コンテンツ配信システム及びキャッシュ対象決定プログラム
US10613982B1 (en) * 2012-01-06 2020-04-07 Seagate Technology Llc File-aware caching driver
US9542324B1 (en) 2012-04-05 2017-01-10 Seagate Technology Llc File associated pinning
US9268692B1 (en) 2012-04-05 2016-02-23 Seagate Technology Llc User selectable caching
US8892523B2 (en) 2012-06-08 2014-11-18 Commvault Systems, Inc. Auto summarization of content
EP2680152B1 (en) * 2012-06-27 2017-05-03 Alcatel Lucent Process for managing the storage of a list of N items in a memory cache of C items of a cache system
US9128944B2 (en) 2013-02-13 2015-09-08 Edgecast Networks, Inc. File system enabling fast purges and file access
US9626126B2 (en) * 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9665658B2 (en) 2013-07-19 2017-05-30 Samsung Electronics Co., Ltd. Non-blocking queue-based clock replacement algorithm
US9413842B2 (en) * 2013-09-25 2016-08-09 Verizon Digital Media Services Inc. Instantaneous non-blocking content purging in a distributed platform
WO2015088410A1 (en) * 2013-12-12 2015-06-18 Telefonaktiebolaget L M Ericsson (Publ) A method and network node for caching web content
JP6269048B2 (ja) * 2013-12-26 2018-01-31 富士通株式会社 データ配置制御プログラム、データ配置制御方法およびデータ配置制御装置
US10503766B2 (en) 2014-09-29 2019-12-10 Hewlett Packard Enterprise Development Lp Retain data above threshold
KR20160148952A (ko) * 2015-06-17 2016-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10540516B2 (en) 2016-10-13 2020-01-21 Commvault Systems, Inc. Data protection within an unsecured storage environment
JP6712744B2 (ja) * 2016-11-17 2020-06-24 国立大学法人電気通信大学 ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム
US10984041B2 (en) 2017-05-11 2021-04-20 Commvault Systems, Inc. Natural language processing integrated with database and data storage management
US20180336131A1 (en) * 2017-05-22 2018-11-22 Dell Products L.P. Optimizing Memory/Caching Relative to Application Profile
KR102411290B1 (ko) 2017-10-24 2022-06-22 삼성전자주식회사 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템
US10642886B2 (en) 2018-02-14 2020-05-05 Commvault Systems, Inc. Targeted search of backup data using facial recognition
US20190251204A1 (en) 2018-02-14 2019-08-15 Commvault Systems, Inc. Targeted search of backup data using calendar event data
US11159469B2 (en) 2018-09-12 2021-10-26 Commvault Systems, Inc. Using machine learning to modify presentation of mailbox objects
US11494417B2 (en) 2020-08-07 2022-11-08 Commvault Systems, Inc. Automated email classification in an information management system
CN112507199B (zh) * 2020-12-22 2022-02-25 北京百度网讯科技有限公司 用于对搜索***进行优化的方法和装置
US11470154B1 (en) * 2021-07-29 2022-10-11 At&T Intellectual Property I, L.P. Apparatuses and methods for reducing latency in a conveyance of data in networks
CN115793994B (zh) * 2023-02-10 2023-04-14 北京徐工汉云技术有限公司 分布式环境下本地缓存的分组数据处理方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012126A (en) * 1996-10-29 2000-01-04 International Business Machines Corporation System and method for caching objects of non-uniform size using multiple LRU stacks partitions into a range of sizes
US5873100A (en) * 1996-12-20 1999-02-16 Intel Corporation Internet browser that includes an enhanced cache for user-controlled document retention
JPH1165927A (ja) 1997-08-25 1999-03-09 Hitachi Ltd キャッシュ制御方式
US6272598B1 (en) * 1999-03-22 2001-08-07 Hewlett-Packard Company Web cache performance by applying different replacement policies to the web cache
US6631446B1 (en) * 2000-10-26 2003-10-07 International Business Machines Corporation Self-tuning buffer management
US6721850B2 (en) * 2001-02-27 2004-04-13 Lucent Technologies Inc. Method of cache replacement for streaming media

Also Published As

Publication number Publication date
US6834329B2 (en) 2004-12-21
JP2003022211A (ja) 2003-01-24
US20030014603A1 (en) 2003-01-16

Similar Documents

Publication Publication Date Title
JP4042359B2 (ja) キャッシュ制御方法及びキャッシュ装置
US7107403B2 (en) System and method for dynamically allocating cache space among different workload classes that can have different quality of service (QoS) requirements where the system and method may maintain a history of recently evicted pages for each class and may determine a future cache size for the class based on the history and the QoS requirements
US6901484B2 (en) Storage-assisted quality of service (QoS)
US6463508B1 (en) Method and apparatus for caching a media stream
US6370620B1 (en) Web object caching and apparatus for performing the same
US8935478B2 (en) Variable cache line size management
EP3089039B1 (en) Cache management method and device
US6237060B1 (en) Cache management techniques
KR101228230B1 (ko) 컨텐츠 전달 네트워크 내의 노드에서 하나 이상의 컨텐츠 아이템을 캐싱하는 방법, 장치 및 제품
US6154813A (en) Cache management system for continuous media system
US20020056025A1 (en) Systems and methods for management of memory
US20020186899A1 (en) Method and computer system for prefetching of images
US10649903B2 (en) Modifying provisioned throughput capacity for data stores according to cache performance
JP2004511840A (ja) 他のノードのキャッシュに基づくあるノードのキャッシュ内のデータの置換管理
JP2007510224A (ja) プロキシキャッシュにおいてマルチメディアコンテンツのセグメントの優先順位を決める方法
EP1188111A2 (en) Improved actual and perceived response time, user interface, and security via usage patterns
Chockler et al. Data caching as a cloud service
WO2018049563A1 (en) Systems and methods for caching
CN108984103A (zh) 用于去重的方法和设备
JP2001101061A (ja) キャッシュサーバ
Chen Pre-fetching and Re-fetching in Web Caching systems: Algorithms and Simulation
US6915386B2 (en) Processing service level agreement (SLA) terms in a caching component of a storage system
Meint et al. From FIFO to predictive cache replacement
KR100236983B1 (ko) 신경망을 이용한 예측 기법 기반 버퍼 교체 방법
Wang et al. Smart Cache Insertion and Promotion Policy for Content Delivery Networks

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070612

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070810

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071105

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121122

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121122

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131122

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees