JP2003022211A - キャッシュ制御方法及びキャッシュ装置 - Google Patents
キャッシュ制御方法及びキャッシュ装置Info
- Publication number
- JP2003022211A JP2003022211A JP2001209153A JP2001209153A JP2003022211A JP 2003022211 A JP2003022211 A JP 2003022211A JP 2001209153 A JP2001209153 A JP 2001209153A JP 2001209153 A JP2001209153 A JP 2001209153A JP 2003022211 A JP2003022211 A JP 2003022211A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- group
- priority
- lowest priority
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing 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)
Abstract
を同時に効率良くキャッシュできるようにする。 【解決手段】 キャッシュ記憶部にキャッシュされてい
る複数のデータを、アクセスパターンが異なるデータ系
列毎のグループにグループ分けする(ステップB1)。
各グループは、独自のキャッシングアルゴリズムで、自
グループに属するデータに優先度を割り当てる。キャッ
シュ記憶部に十分な空き領域がなく、データをパージす
ることが必要になった場合、最低優先度決定手段により
最も優先度の低いグループを求め(ステップB4)、デ
ータ操作手段が、そのグループ内で最低優先度を割り当
てられているデータをパージする(ステップB5)。
Description
術に関し、特に、キャッシュヒット率が向上するように
パージするデータを選択する技術に関する。
ッシュ技術は、ますます多くの場所で使われるようにな
っている。また、近年の情報通信機器の高速化によっ
て、全処理時間に対する、ミスヒット時の処理時間が占
める割合が大きくなってきており、キャッシュ技術は、
性能に大きな影響を及ぼすようになってきている。
トワークを介して転送されるコンテンツをキャッシュす
るプロキシキャッシュ装置である。プロキシキャッシュ
装置等のネットワーク中に設置されたキャッシュ装置に
おけるキャッシュヒットは、データ転送経路を短縮する
ことでデータ転送速度を向上させるので、データ転送の
レスポンスタイムを短縮する。
ンターネット等のネットワーク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に転送される。
装置で適用されるキャッシュ方式として、LRU等を初
めとする多くのキャッシュ方式が従来から提案されてい
る。詳しくは、Hewlett−packard社のテ
クニカルレポート、Ludmila Cherkaso
va:「Improving WWW Proxies
Performance with Greedy−
Dual−Size−Frequency Cachi
ng Policy」,HPL−98−69R1,98
1120.(http://www.hpl.hp.c
om/techreports/98/HPL−98−
69R1.htmlから入手可能である)(以下、文献
1と称する)で述べられている。
い将来にアクセスされるデータに最低の優先度を割り当
てる方法であるが、これは将来のデータアクセスが全て
分かっていないと実現不可能である。LRU等のキャッ
シングアルゴリズムは最適キャッシュ方法の近似にすぎ
ない。
提案されている。例えば、E.O‘Neil,P.O’
Neil,G.Weikum:「The LRU−K p
age replacement algorithm
for database disk bufferin
g」,Proc.ACM SIGMOD Interna
tional Conference on Manag
ement of Data,pp.297−306,1
993.(以下、文献2と称する)がある。
キャッシュ方式は、データ毎に、K個前までのアクセス
が行なわれた時刻を記録する。ただし、Kは自然数であ
り、LRU−Kでは、K個前のアクセス時刻が最も早い
データからパージする。例えば、K=2としたLRU−
2では、データは二回以上アクセスされたか否かで異な
る優先度が割り当てられ、二回以上アクセスされたデー
タの中で最低の優先度を持つデータは、二回目にアクセ
スされた時刻が最も早いものである。過去一回しかアク
セスされたことのないデータは、二回以上アクセスされ
たデータよりも低い優先度が割り当てられる。LRUが
用いる情報は前回のアクセス時刻のみであるが、LRU
−Kは過去K回のアクセス時刻を情報として持ち、より
多くの情報に基づいてキャッシュ方法を決定している。
im,S.H.Noh,S.L.Min, Y.Ch
o,and C.S.Kim:「On the Exis
tence of a Spectrum of Poli
cies that Subsumes the Leas
t Recently Used(LRU) and Le
ast Frequently Used(LFU) P
olicies」,In Proceedings of
the 1999 ACM SIGMETRICS Co
nference on Measurement an
d Modelingof Computer Syst
ems,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よりも
高いヒット率を達成できることが示されている。
lan,and P.Wilson: 「EELRU:S
imple and Effective Adapti
vePage Replacement」,In Pr
oceedingsof the 1999 ACM
SIGMETRICS Conference on
Measurement and Modeling
of Computer Systems,pp.12
2−133,1999.(以下、文献4と記載)では、
Early Eviction LRU(EELRU)
というキャッシュ方式が提案されている。このキャッシ
ングアルゴリズムが使用する情報は、前回のアクセス時
刻である。EELRUは、多くの最近アクセスされたデ
ータがキャッシュから削除されるまでは、LRUと同様
に、キャッシュ中のデータで最も遠い過去にアクセスさ
れたデータからパージする。逆に、多くの最近アクセス
されたデータがキャッシュから削除された場合、キャッ
シュ中のデータの中でe番目に近い過去にアクセスされ
たデータからパージする。ただし、eはヒット率を上げ
るように動的に調整される。
ずれもLRU等の一般的なキャッシュ方式に比べて、高
いヒット率を達成できるが、プロキシ装置でのキャッシ
ングには不向きである。なぜなら、プロキシキャッシュ
装置で用いられるキャッシュ方式では、多くの場合、デ
ータのキャッシュ、パージは、クライアントからのリク
エストによって要求されたデータを単位として行なう。
そのため、クライアントが大きなデータをリクエスト
し、このデータがキャッシュされる場合、他の多くのデ
ータがこの大きなデータを記憶するための空き領域を作
るために消去されてしまう。つまり、データの有用性は
データのアクセスパターン以外に、データサイズにも依
存する。データサイズを考慮したキャッシュ方式の一つ
は、文献1に示されるGDSF(Greedy−Dua
l−Size−FrequencyCaching P
olicy)である。GDSFは、大きなデータに低い
優先度を割り当てることでオブジェクトのヒット率を向
上させる。このため、連続メディアデータのように大き
なデータを扱う場合、連続メディアデータには低い優先
度が割り当てられてしまうので、GDSFは連続メディ
アデータを扱うには不向きである。
複数の記憶媒体から構成されることが多い。一般的なキ
ャッシュ記憶部は、高速小容量の主記憶装置と低速大容
量の二次記憶装置からなる。このようなキャッシュ記憶
部を有するプロキシキャッシュ装置で、連続メディアデ
ータ等の巨大なデータを扱う場合、データサイズが主記
憶装置の記憶容量に対して大きいため、ほとんどの場
合、二次記憶装置に格納されてしまう。これは、連続メ
ディアデータにアクセスが集中した場合、低速な二次記
憶装置からのデータ読みだし速度がボトルネックになっ
てしまうことを意味する。さらに、巨大な連続メディア
データが低速記憶部からのデータ転送を独占してしまう
ため、多くのデータが記憶されている低速記憶部からの
他のデータの転送ができないという問題がある。これ
は、二次記憶装置中のデータの主記憶装置へのキャッシ
ングだけでなく、遠隔地のホストのデータがローカルな
二次記憶装置へキャッシングされるケースでも、同様の
問題が生じる。
つは、Asit Dan,Dinkar Sitara
m:「A Generalized Interval
Caching Policy for Mixed
Interactiveand Long Vide
o Workloads」,MultimediaCo
mputing and Networking,p
p.344−351,1996.(以下、文献5と称す
る)に記載されている。
アクセスはシーケンシャルであることを利用している。
つまり、連続メディアデータは巨大であるが、一度に全
てのデータが要求されるのではなく、ある速度でデータ
の先頭から順次要求される。そこで、ある連続メディア
データを分割して考えると、分割された先頭のデータが
要求されれば、時間が経つにつれ後続の分割データも要
求される。従って、先頭のデータが到着した時点で、後
続のデータのアクセス時刻を予想することができる。予
想アクセス時刻が近いものに高い優先度を与えるのが、
文献5に記載されたキャッシュ方式である。
タのように、全く異なるアクセスパターンを持つデータ
を効率よくキャッシュするのは、一般に困難である。例
えば、連続メディアデータと非連続メディアにそれぞれ
別々のプロキシキャッシュ装置を用意して、レイヤ7ス
イッチ等でデータが連続メディアかどうか判定するとし
ても、連続、非連続メディアデータ用のそれぞれのプロ
キシキャッシュ装置の間で相互に計算資源を融通するこ
とができないからである。例えば、連続メディアデータ
にアクセスが集中した場合、非連続メディアデータ用の
プロキシキャッシュ装置の計算資源には余裕があるの
に、連続メディアデータ用のプロキシキャッシュ装置は
過負荷になってしまう。また、複数のプロキシキャッシ
ュ装置とレイヤ7スイッチを用いるのは、コスト的に高
価である。従って、一台のプロキシキャッシュ装置で、
連続、非連続メディアデータをともにキャッシュできる
のが望ましい。
ッシュ方式は、装置に一つである必要はない。複数のキ
ャッシュ方式を使用する方法は特開平11−65927
号公報に示されており、文献5に示されるキャッシュ方
式と、従来のLRU、LFU等のキャッシュ方式を同時
に使う方法が考えられる。特開平11−65927公報
では、複数のキャッシュ方式を用いてデータに優先度を
割り当てることができるが、各キャッシュ方式が使用で
きる記憶領域は固定されている。従って、全体として、
あるデータを記憶するのに十分な空き記憶領域があって
も、データに適用されるキャッシュ方式が使用できる記
憶領域に十分な空き領域がない場合、データをキャッシ
ュすることはできない。従って、特開平11−6592
7号公報に示される方法を適用した場合、計算資源の分
割の自由度、コストにおいて、レイヤ7スイッチと複数
のプロキシキャッシュ装置を使った場合よりも優れてい
るが、依然として計算資源は共有されておらず、動的に
変化するリクエストに対応するのは困難である。
5に記載されている従来の技術では、単一の優先度を用
いてデータを管理しているため、アクセスパターンが異
なる複数のデータ系列、例えば、連続メディアデータと
非連続メディアデータ、を効率良くキャッシュすること
が困難であるという問題点がある。この問題点は、特開
平11−65927号公報に記載されている技術を利用
することによりある程度は解決することができる。つま
り、連続メディアデータには予想アクセス時刻に基づく
優先度を割り当て、非連続メディアデータにはアクセス
頻度(LFU)に基づく優先度を割り当てることによ
り、各データ系列のデータをそれぞれ効率的にキャッシ
ュすることが可能になる。
公報に記載されている技術は、各データ系列に、それぞ
れ固定的な別々の記憶領域を割り当てるようにしている
ため、あるデータ系列に対してアクセスが集中すると、
他のデータ系列に割り当てられている記憶領域に空きが
ある場合であっても、上記或るデータ系列に割り当てら
れている記憶領域の空き不足によりミスヒットが頻繁に
発生し、データのパージが頻繁に行われてしまうという
問題がある。
列にアクセスが集中した場合にも、記憶領域を有効利用
することにより、高いキャッシュヒット率を得られるよ
うにすることにある。
するため、次のようにしている。キャッシュ記憶部にキ
ャッシュするデータを、アクセスパターンが異なるデー
タ系列毎のグループにグループ分けし、各グループ毎
に、独自のキャッシングアルゴリズムで自グループに属
するデータに優先度を割り当てる。そして、データをキ
ャッシュ記憶部からパージすることが必要になった場合
は、予め定められている評価規則によって決まる最低優
先度のグループ中の、そのグループのキャッシングアル
ゴリズムによって最低優先度が割り当てられているデー
タをパージする。この構成によれば、各グループ毎に独
自のキャッシングアルゴリズムでデータを管理している
にも関わらず、キャッシュされている全グループの全デ
ータの内の、最も優先度の低いデータをパージすること
ができるので、各グループ毎に固定的に記憶領域を割り
当てる必要がなくなる。この結果、或るグループにアク
セスが集中し、他のグループにアクセスが余りなかった
場合、上記或るグループのデータをキャッシュするため
に多くの記憶領域を使用することが可能になるので、キ
ャッシュヒット率を高いものにすることが可能になる。
図面を参照して詳細に説明する。
キャッシュ装置10の構成例を示すブロック図である。
本実施の形態のキャッシュ装置10は、外部からのリク
エストを受け付けるリクエスト処理部11と、キャッシ
ュされたデータを記憶するキャッシュ記憶部14と、リ
クエストされたデータがキャッシュされているかどうか
を判定し、キャッシュされていれば、そのデータをキャ
ッシュ記憶部14から読み出すキャッシュ検索部12
と、データをキャッシュするかどうかを判定し、キャッ
シュする場合はそのデータをキャッシュ記憶部14に書
き込み、キャッシュ記憶部14の空き記憶領域が足りな
くなった時には、いずれかのデータを選択してパージす
るキャッシュ判定部13とを備えている。
3及びキャッシュ記憶部14の構成例を示すブロック図
である。キャッシュ判定部13は、複数の部分キャッシ
ュ管理部21−1〜21−nと、データグループ決定手
段22と、最低優先度決定手段23とを含む。
られているグループ分け規則に従って、キャッシュ記憶
部14にキャッシュされる各データ25−1〜25−m
を、複数の部分キャッシュ管理部21−1〜21−nの
内の、どの部分キャッシュ管理部に管理させるかを決定
する。以降、一つの部分キャッシュ管理部で管理される
データの集合をデータグループと呼ぶ。キャッシュされ
るデータ25−1〜25−mは、いずれか一つのデータ
グループに属し、各データ25−1〜25−mは、同一
のサイズを有する。
nは、それぞれ独自のキャッシングアルゴリズムで自管
理部に割り当てられているデータを管理するものであ
り、優先度割り当て手段31と、部分最低優先度決定手
段32と、データ操作手段33とを備えている。優先度
割り当て手段31は、それを含んでいる部分キャッシュ
管理部21−i(1≦i≦n)が管理するデータグルー
プ中の各データに、部分キャッシュ管理部21−i独自
のキャッシングアルゴリズムに従った優先度を割り当て
る。部分最低優先度決定手段32は、それを含んでいる
部分キャッシュ管理部21−iで管理されているデータ
グループ中の最も低い優先度を持つ部分最低優先度デー
タを特定する。データ操作手段33は、データのキャッ
シュ、パージを行う。
シュ管理部21−1〜21−nが管理しているデータグ
ループの中から最低優先度のデータグループを特定す
る。キャッシュ記憶部14中の空き記憶領域24が不足
した場合には、最低優先度のデータグループを管理して
いる部分キャッシュ管理部内のデータ操作手段33が、
上記データグループ中の最低優先度を持つデータをパー
ジする。
の形態の動作を説明する。
ストを受け取った場合の処理例を図4の流れ図に示す。
を受けとり(図4、ステップA1)、キャッシュ検索部
12で、リクエストされたデータがキャッシュ記憶部1
4にキャッシュされているかどうかを調べる(ステップ
A2)。
シュ検索部12は、リクエストされたデータをキャッシ
ュ記憶部14から読み出す(ステップA3)。また、上
記データを管理している部分キャッシュ管理部21−i
内の優先度割り当て手段31は、上記部分キャッシュ管
理部21−iが管理しているデータグループ中のデータ
の優先度を更新する(ステップA4)。この優先度の更
新は、上記部分キャッシュ管理部21−iのキャッシン
グアルゴリズムに従って行うものであり、例えば、部分
キャッシュ管理部21−iのキャッシングアルゴリズム
がLFUであれば、上記データの参照回数を+1する。
これに対して、リクエストされたデータがキャッシュさ
れていなければ、キャッシュ検索部12は、キャッシュ
元からオリジナルなデータDを取得する(ステップA
5)。
ループ決定手段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の処理を繰り返し行うことが必
要になる。
形態について図面を参照して詳細に説明する。本実施の
形態に係るキャッシュ装置は、図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が管理しているデータグルー
プのキャッシュヒット率を測定する。
図を参照して詳細に説明する。尚、図6のステップA1
〜A5、B1〜B6の処理は、第一の実施の形態と同様
であるため、説明は省略する。
のようなパラメータを用いて、パージするデータグルー
プを決定するのか、具体的に指定していなかった。本実
施の形態では、各部分キャッシュ管理部26−1〜26
−n内のサイズ測定手段34及びヒット率測定手段35
で、各データグループに割り当てられている記憶領域の
サイズ及びキャッシュヒット率を測定し(ステップC
1)、それらを用いてパージするデータグループを決定
する(ステップB4)。より具体的には、各データグル
ープに於ける、キャッシュヒット率と割り当てられてい
る記憶領域のサイズとの比(キャッシュヒット率/サイ
ズ)を求め、その値が最も小さいデータグループをパー
ジするデータグループとする。
る。本実施の形態では、データグループの有用性を判断
する際(パージするデータグループを決定する際)、デ
ータグループの使用記憶領域の大きさとキャッシュヒッ
ト率を考慮する事で、データグループ全体の特徴を考慮
しない場合よりも、パージすべきデータをより的確に判
断できる。従って、キャッシュヒット率を向上させるこ
とが可能である。
例について説明する。本実施例は、図2に示すキャッシ
ュ装置10をWWWデータのキャッシングに用いられる
プロキシキャッシュ装置として使用した場合についての
ものである。
ュ装置10へ送られてくるリクエストは、データを先頭
からシーケンシャルに転送することを要求するものとな
る。そこで、データを先頭から所定サイズ(例えば40
96バイト)ずつに分割し、この分割データをキャッシ
ュ/パージの単位とする。この時、データの先頭を含む
分割データ(第1番目の分割データ)がまた要求される
かどうかは不確定であるが、第1番目の分割データへの
リクエストが到着すれば、後続の分割データ(第2番目
以降の分割データ)へのリクエストがなされることは確
定する。データの先頭からA1バイト目まで、データの
A1バイト目からA2バイト目まで、……、のようにデ
ータを不定長に分割した場合にも本実施例を利用できる
ことは明らかである。
理部11がクライアントからのリクエスト(或るデータ
αを先頭からシーケンシャルに転送することを要求する
リクエスト)を受け取ると(図4のステップA1)、キ
ャッシュ検索部12が、上記データαの先頭を含む第1
番目の分割データがキャッシュ記憶部14にキャッシュ
されているかどうかを調べる(ステップA2)。
れていないとすると、キャッシュ検索部12は、サーバ
からオリジナルな第1番目の分割データを取得する(ス
テップA5)。その後、キャッシュ判定部13内のデー
タグループ決定手段22によって、上記第1番目の分割
データが属するデータグループが決定される(ステップ
B1)。
段22は、アクセス時刻を予想できないデータを、デー
タグループXに分類し、アクセス時刻を予想できるデー
タをデータグループYに分類するものとする。より具体
的には、データグループ決定手段22は、第1番目の分
割データは、データグループXに分類する。第2番目以
降の分割データは、リクエスト処理部11が受け付けて
いる後続のリクエストの中に、現在グループ分けの対象
にしている分割データを含むデータと同じデータに対す
るリクエストがある場合には、データグループYに分類
し、そうでない場合には、データグループXに分類す
る。また、本実施例では、部分キャッシュ管理部21−
1がデータグループXに属する分割データを管理し、部
分キャッシュ管理部21−2がデータグループYに属す
る分割データを管理するものとする。
ータがデータグループXに分類されると、部分キャッシ
ュ管理部21−1内の優先度割り当て手段31が第1番
目の分割データに優先度を割り当てる(ステップB
2)。ここで、データグループXを管理する部分キャッ
シュ管理部21−1内の優先度割り当て手段31は、L
FUに従って優先度を割り当てる(参照回数を優先度と
して割り当てる)。この例では、第1番目の分割データ
がデータグループXに属するので、部分キャッシュ管理
部21−1内の優先度割り当て手段31によって優先度
の割り当てがおこなわれるが、ステップB1に於いて、
分割データがデータグループYに分類された場合には、
データグループYに属するデータを管理する部分キャッ
シュ管理部21−2によって優先度が割り当てられる。
データグループYを管理する部分キャッシュ管理部21
−2内の優先度割り当て手段31は、予想アクセス時刻
を優先度として割り当てる。予想アクセス時刻は、クラ
イアントからプロキシキャッシュ装置への予想転送速度
と、分割されたデータの大きさとから予想される。アク
セスされた分割データと到着時刻を予想している分割デ
ータとの間にいくつの分割データがあるかも考慮する。
例えば、予想転送速度が一定で、一秒間当たり1メガビ
ットで、分割データの大きさが全て256キロバイトで
あるとすると、1つの分割データの転送に2秒かかる。
予想アクセス時刻は、「予想アクセス時刻=現在時刻+
分割データサイズ×R/データの転送速度」で予想す
る。ただしRは、アクセスされた分割データと到着時刻
を予想している分割データとの間にいくつの分割データ
があるかを表す。
領域24が第1番目の分割データを記憶するのに十分な
大きさを持つか否かが調べられる。そして、十分な大き
さを持てば、第1番目の分割データは、部分キャッシュ
管理部21−1内のデータ操作手段33によってキャッ
シュ記憶部14にキャッシュされる(ステップB6)。
これに対して、空き記憶領域24の大きさが十分でない
場合には、最低優先度決定手段23によってデータグル
ープXとデータグループYとの優先度が比較され、パー
ジの対象にするデータグループが決定される(ステップ
B4)。
と、次のようになる。データグループX,Yの優先度の
比較は、部分キャッシュ管理部21−1内の最低優先度
決定手段23によってデータグループXの部分最低優先
度データに対する予想アクセス時刻を推定し、この値と
データグループYの部分最低優先度データに割り当てら
れている優先度(予測アクセス時刻)と比較することで
行なう。データグループXの部分最低優先度データに対
する予想アクセス時刻は、現在時刻とデータの通算参照
回数を元に推定する。データグループXのキャッシング
アルゴリズムとしてLFU以外を用いた場合は、そのキ
ャッシュ方式が利用する情報をパラメータとする関数に
よって、優先度変換を行なう。参照回数で与えられる優
先度を予想アクセス時刻に変換する関数は、予想アクセ
ス時刻=C+k/(f+1)とする。ただし、Cは現在
時刻、fはパージ候補の単位データの参照回数、kは定
数である。また、部分最低優先度決定手段32には、ヒ
ープを用いる。
データグループが決定されると、そのデータグループを
管理している部分キャッシュ管理部内のデータ操作手段
33が、部分最低優先度決定手段32によって特定され
る最低優先度データが使用していた領域を空き記憶領域
に含め、そこに第1番目の分割データをキャッシュする
(ステップB5,B6)。
がキャッシュされていない場合の動作であるが、キャッ
シュされている場合は、次のような動作が行われる。
ータがキャッシュされていると判断した場合、キャッシ
ュ検索部12は、第1番目の分割データをキャッシュ記
憶部14から読み出す(ステップA3)。その後、デー
タαの第2番目以降のデータの優先度を更新する(ステ
ップA4)。
と、次のようになる。データグループ決定手段22が、
データグループXの分割データを管理している部分キャ
ッシュ管理部21−1に対して、データαの第2番目以
降の分割データを管理対象から除外し、データグループ
Yの分割データを管理している部分キャッシュ管理部2
1−2に対して、データαの第2番目以降の分割データ
を管理対象にすることを指示する。これにより、部分キ
ャッシュ管理部21−1は、データαの第2番目以降の
分割データを管理対象にしていれば、それを管理対象か
ら除外する。また、部分キャッシュ管理部21−2は、
データαの第2番目以降の分割データを管理対象にして
いなければ、それを管理対象にする。その後、部分キャ
ッシュ管理部21−2内の優先度割り当て手段31が、
データαの第2番目以降の分割データの優先度(予想ア
クセス時刻)を更新する。この優先度の更新は、前述し
た式「予想アクセス時刻=現在時刻+分割データサイズ
×R/データの転送速度」に基づいて、データαの第2
番目以降の各分割データの予想アクセス時刻を求め、求
めた予想アクセス時刻を対応する分割データに割り当て
ることにより行う。また、データグループXを管理して
いる部分キャッシュ管理部21−1内の優先度割り当て
手段31は、データαの第1番目の分割データの優先度
(参照回数)を更新する。
処理が終了すると、第2番目以降の分割データに対して
前述した動作と同様の動作が行われる。そして、データ
αの最後の分割データに対する処理が終了すると、デー
タグループ決定手段22は、リクエスト処理部11が受
け付けている後続のリクエストの中に、データαに対す
るリクエストが存在するか否かを調べる。そして、存在
しない場合には、データグループXの分割データを管理
している部分キャッシュ管理部21−1に対して、デー
タαの第2番目以降のデータを管理対象にすることを指
示し、データグループYのデータを管理している部分キ
ャッシュ管理部21−2に対して、データαの第2番目
以降のデータを管理対象から除外することを指示する。
これにより、部分キャッシュ管理部21−1は、データ
αの第2番目以降の分割データを管理対象にし、部分キ
ャッシュ管理部21−2は、データαの第2番目以降の
分割データを管理対象から除外する。更に、部分キャッ
シュ管理部21−1内の優先度割り当て手段31は、デ
ータαの第2番目以降の分割データに、データαの第1
番目の分割データと同じ優先度(参照回数)を割り当て
る。
記憶装置中のデータをキャッシュするディスクキャッシ
ュ装置に第一の実施の形態を適用した場合を示す。
と、キャッシュ記憶部104を有する主記憶装置102
と、二次記憶装置103とから構成されるシステムに適
用した場合について考える。尚、主記憶装置102上に
は、図2に示したキャッシュ装置10の構成要素であ
る、リクエスト処理部11,キャッシュ検索部12,キ
ャッシュ判定部13を実現するためのキャッシュ装置用
プログラム10Pが登録されている。このキャッシュ装
置用プログラム10Pは、演算装置101によって読み
取られ、その動作を制御することで、演算装置101上
にリクエスト処理部11,キャッシュ検索部12,キャ
ッシュ判定部13を実現する。また、主記憶装置102
上のキャッシュ記憶部104は、図2のキャッシュ記憶
部14に相当するものである。
等の巨大なサイズを持つデータが記憶されているとす
る。これらのデータへのアクセスは、二次記憶装置10
3からの読み出しに用いられる帯域を長時間にわたって
占有する。従って、多くの連続メディアデータ等の巨大
なデータがリクエストされた場合、低速な二次記憶装置
からの読み出し速度がボトルネックになり、転送速度が
大幅に低下してしまう。そこで、連続メディアデータ等
の巨大なデータの性質を利用して、なるべく高速な一次
記憶からデータが読み出されるように、パージする分割
データを選択する。
単位に分割され、この分割データがキャッシュ/パージ
の単位とされる。例えば、二次記憶装置103が409
6バイトずつ読み出し、書き込みを行なうとすると、デ
ータは先頭から4096バイトずつに分割され、この分
割データがキャッシュ/パージの単位とされる。
置用プログラム10Pによって実現されるリクエスト処
理部11が、演算装置101からリクエスト(或るデー
タαを先頭からシーケンシャルに転送することを要求す
るリクエスト)を受け取ると(図4のステップA1)、
データαの第1番目の分割データから順番に、第一の実
施例で説明した処理と同様の処理が行われる。今、例え
ば、データαの第n番目の分割データが処理対象になっ
たとすると、キャッシュ装置用プログラム10Pによっ
て実現されるキャッシュ検索部12が、上記データαの
第n番目の分割データがキャッシュ記憶部104にキャ
ッシュされているかどうかを調べる(ステップA2)。
れていないとすると、キャッシュ検索部12は、二次記
憶装置103からオリジナルの第n番目の分割データを
取得する(ステップA5)。その後、キャッシュ装置用
プログラム10Pによって実現されるキャッシュ判定部
13内のデータグループ決定手段22によって、上記第
n番目の分割データが属するデータグループが決定され
る(ステップB1)。このステップB1の具体的な処理
は、第一の実施例のステップB1の処理と全く同じであ
り、第n番目の分類データは、アクセス時刻を予想不可
能なデータグループX或いはアクセス時刻を予測可能な
データグループYに分類される。
の分割データに優先度が割り当てられる。ここで、第n
番目の分割データが、データグループXに属するもので
あるときは、参照回数が優先度として割り当てられ、デ
ータグループYに属するものであるときは、予測アクセ
ス時刻が優先度として割り当てられる。予想アクセス時
刻は、式「予想アクセス時刻=現在時刻+分割データサ
イズ×R/演算装置101と主記憶装置102との間の
データ転送速度」を使用して予想する。但しRは、アク
セスされた分割データと到着時刻を予想している分割デ
ータとの間にいくつの分割データがあるかを表す。
ュ記憶部104の空き記憶領域が第n番目の分割データ
を記憶するのに十分な大きさを持つか否かが調べられ
る。そして、十分な大きさを持てば、第n番目の分割デ
ータは、部分キャッシュ管理部21−1或いは部分キャ
ッシュ管理部21−2内のデータ操作手段33によって
キャッシュ記憶部104にキャッシュされる(ステップ
B6)。これに対して、空き記憶領域の大きさが十分で
ない場合には、最低優先度決定手段23によってデータ
グループXとデータグループYとの優先度が比較され、
パージの対象にするデータグループが決定される(ステ
ップB4)。このステップB4の具体的な動作は、第一
の実施例と全く同じである。
データグループが決定されると、そのデータグループを
管理している部分キャッシュ管理部内のデータ操作手段
33が、部分最低優先度決定手段32によって特定され
る最低優先度データが使用していた領域をパージし、そ
こに第n番目の分割データをキャッシュする(ステップ
B5,B6)。
がキャッシュされていない場合の動作であるが、キャッ
シュされている場合は、次のような動作が行われる。
ータがキャッシュされていると判断した場合、キャッシ
ュ検索部12は、第n番目の分割データをキャッシュ記
憶部104から読み出す(ステップA3)。その後、デ
ータαの第(n+1)番目以降のデータの優先度を更新
する(ステップA4)。このステップA4の具体的な動
作は、第1の実施例と全く同様である。
まで行うと、データグループ決定手段22は、リクエス
ト処理部11が受け付けている後続のリクエストの中
に、データαに対するリクエストが存在するか否かを調
べる。そして、存在しない場合には、データグループX
の分割データを管理している部分キャッシュ管理部21
−1に対して、データαの第2番目以降のデータを管理
対象にすることを指示し、データグループYのデータを
管理している部分キャッシュ管理部21−2に対して、
データαの第2番目以降のデータを管理対象から除外す
ることを指示する。これにより、部分キャッシュ管理部
21−1は、データαの第2番目以降の分割データを管
理対象にし、部分キャッシュ管理部21−2は、データ
αの第2番目以降の分割データを管理対象から除外す
る。更に、部分キャッシュ管理部21−1内の優先度割
り当て手段31は、データαの第2番目以降の分割デー
タに、データαの第1番目の分割データと同じ優先度
(参照回数)を割り当てる。尚、上述した第一の実施例
及びその変形は、第二の実施の形態にも適用できる。
施例を示す。本実施例は、第一の実施の形態に係るキャ
ッシュ装置を、二次記憶装置中にディレクトリデータと
ファイルデータの二種類の情報が格納されているシステ
ムにおけるディスクキャッシュ装置とした場合について
のものである。
ァイルデータのそれぞれをLFUでキャッシュし、各デ
ータには優先度として参照回数を割り当てる。更に、本
実施例では、最低優先度のデータグループを決定するた
めに、各データに最終アクセス時刻も割り当てる。そし
て、二つのデータグループの部分最低優先度データ(参
照回数が最も少ないデータ)のうち、最終アクセス時刻
が早い方が最低優先度データとする。
ッシュ装置200と、主記憶装置210と、二次記憶装
置220とから構成されている。
211が設けられている。二次記憶装置220には、複
数のディレクトリデータA〜Fと、複数のファイルデー
タ1〜6が格納されている。
部201と、キャッシュ検索部202と、キャッシュ判
定部203とを備えている。リクエスト処理部201,
キャッシュ検索部202は、図2に示したリクエスト処
理部11,キャッシュ検索部12と同様の機能を有す
る。キャッシュ判定部203は、ディレクトリデータを
管理する部分キャッシュ管理部204−1と、ファイル
データを管理する部分キャッシュ管理部204−2と、
最低優先度決定手段208と、データグループ決定手段
209とを備えている。
201が受け付けると(図4,ステップA1)、キャッ
シュ検索部202は、リクエストされたデータがキャッ
シュ記憶部211にキャッシュされているか否かを調べ
る(ステップA2)。
キャッシュ検索部202は、リクエストされたデータを
キャッシュ記憶部211から読み出す(ステップA
3)。その後、上記リクエストされているデータを管理
している部分キャッシュ管理部204−i(i=1また
は2)内の優先度割り当て手段205−iが、上記リク
エストされたデータの参照回数(優先度)および最終ア
クセス時刻を更新する(ステップA4)。これに対し
て、リクエストされたデータがキャッシュされていない
場合は、キャッシュ検索手段202は、二次記憶装置2
20からリクエストされたデータを取り出す(ステップ
A5)。
タグループ決定手段209が、上記データを所属させる
データグループを決定する(ステップB1)。本実施例
では、上記データがディレクトリデータである場合に
は、所属先を部分キャッシュ管理部204−1で管理さ
れるデータグループG1にし、ファイルデータである場
合には、所属先を部分キャッシュ管理部204−2で管
理されるデータグループG2とする。
理部204−i内の優先度割り当て手段205−iが、
上記データに参照回数(優先度)および最終アクセス時
刻を割り当てる(ステップB2)。そして、キャッシュ
記憶部211の空き領域が、データを記憶するのに十分
な大きさを持つかどうかの判定を行ない(ステップB
3)、十分な大きさを持てば、キャッシュ記憶部211
にデータを格納する(ステップB6)。これに対して、
空き領域が十分な大きさを持たない場合は、最低優先度
決定手段208が、部分最低優先度決定手段206−
1,206−2によって求められた、データグループG
1,G2中の部分最低優先度データ(参照回数が最も少
ないデータ)の最終アクセス時刻を比較し、最終アクセ
ス時刻が新しい方のデータグループをパージ対象のデー
タグループとする(ステップB4)。
プを管理している部分キャッシュ管理部204−i内の
データ操作手段207−iが、部分最低優先度決定手段
206−iによって特定されている最低優先度を持つデ
ータが使用していた記憶領域を空き記憶領域に含め、デ
ータをキャッシュするのに十分な空き記憶領域を確保し
(ステップB5)、確保した領域にデータをキャッシュ
する(ステップB6)。
データA〜F、ファイル1〜6が二次記憶装置220に
格納されている場合を例にとって、本実施例の効果につ
いて説明する。ファイルデータ、ディレクトリデータと
もに、複数のユーザによって共有されている等の理由で
頻繁に参照されるものと、ほとんど参照されないものが
あるため、頻繁にアクセスされるファイルを主記憶装置
210中のキャッシュ記憶部211にキャッシュする
と、アクセスコストが軽減される。ディレクトリデータ
Bが4人のユーザに共有されていて、ディレクトリBに
各ユーザがファイルを持っていたとすると、ディレクト
リBは多数のアクセスを受けることになる。
ータの二つのデータを既存のキャッシングアルゴリズム
により統一的に管理する場合の問題点について説明す
る。二次記憶装置220上にあるディレクトリデータを
主記憶装置210上のキャッシュ記憶部211にキャッ
シュするとファイルデータへのアクセス速度が増加する
ため、ディレクトリデータをキャッシュすることは良い
が、ファイルデータもキャッシュする必要があるため、
ディレクトリデータのキャッシュに割り当てる記憶領域
と、ファイルデータのキャッシュに割り当てる記憶領域
のバランスを取る必要がある。ところが上に述べた通
り、ディレクトリデータは、ファイルデータに比べて多
数のアクセスを受ける傾向がある。そのため頻繁にアク
セスされるファイルデータ、ディレクトリデータが時間
とともに変化した場合には、ディレクトリデータの参照
回数とファイルデータの参照回数を直接比較すると、現
時点で頻繁にアクセスされているファイルデータより
も、過去に頻繁にアクセスされていたディレクトリデー
タの方が優先順位が高くなってしまう。この結果、キャ
ッシュ記憶部211に格納されているデータをパージす
ることが必要になった場合、過去に頻繁にアクセスされ
ていたディレクトリデータがパージされずに、現在頻繁
にアクセスされているファイルデータがパージされてし
まうという問題が生じる。
ルデータはファイルデータ同士、ディレクトリデータは
ディレクトリデータ同士の比較になり、ファイルデータ
をキャッシュするための記憶領域とディレクトリデータ
をキャッシュするための記憶領域の大きさのバランス
は、互いのデータグループで最も不要なデータの最終ア
クセス時刻の比較によって取られる。頻繁にアクセスさ
れるファイルデータ、ディレクトリデータが移り代わる
と、ファイルデータ、ディレクトリデータそれぞれの中
で高い優先度を持っていた(参照回数が多かった)デー
タが低い優先度を持つようになり、いずれ部分最低優先
度データとなる。この時、最も低い優先度を持つディレ
クトリデータ、ファイルデータのどちらを捨てるかは、
参照回数ではなく、最終アクセス時刻によって決定され
るため、多くなりがちなディレクトリデータの参照回数
とファイルデータの参照回数が比較されることはなく、
ファイルデータとディレクトリデータが使用する記憶領
域のバランスが取られるので、適切なキャッシングを行
なうことができ、ディレクトリデータ、ファイルデータ
へのキャッシュヒットが増加し、ファイル検索、ファイ
ルI/Oの速度が増す。
0中にDNSデータとファイルデータとを格納し、キャ
ッシュ装置200をプロキシキャッシュ装置として使用
する場合について説明する。
ストで解決されるファイルの識別子からなり、ホストと
IPアドレスの関連づけはDNSデータに基づいて行な
われる。従って、プロキシキャッシュ装置の高速化のた
めには、ファイルデータだけでなくDNSデータもキャ
ッシュした方が良い。図8に示した部分キャッシュ管理
部204−1,204−2をそれぞれDNSデータ用,
ファイルデータ用に使用すれば、ファイルデータとDN
Sデータが使用するキャッシュ記憶部211の領域のバ
ランスが取られるので、適切なキャッシングを行なうこ
とができ、ファイルデータ、DNSデータへのキャッシ
ュヒットが増加し、クライアントのリクエストに対する
レスポンスタイムが短縮される。ファイルデータとDN
Sデータを共にキャッシュする場合、上記のファイルデ
ータとディレクトリデータの関係と同様、人気のあるフ
ァイルを保持するホストのDNSデータは、そのホスト
が保持するデータに比べて多数のアクセスを受けるた
め、ファイルデータとDNSデータの参照回数を直接比
較すると、ファイルのためのキャッシュ領域とDNSデ
ータのためのキャッシュ領域のバランスがとれない。
(DNSデータ)の優先度を最終アクセス時刻を用いて
比較するが、これ以外にもデータグループYに属するデ
ータに対して、初めてアクセスされた時刻Bを付加し、
次回のアクセス予想時刻を予想時刻=C+(C−B)/
Fとする方式も考えられる。ただし、Cは現在時刻、F
は参照回数である。そして、各データグループの部分最
低優先度データの内、予想アクセス時刻が最も遠い時刻
を示しているものをパージする。尚、上述した第二の実
施例は及びその変形は、第二の実施の形態にも適用でき
る。
施例について説明する。本実施例は、第1の実施の形態
に係るキャッシュ装置を、WWWデータのキャッシング
に用いられるプロキシキャッシュ装置に適用した場合に
ついてのものである。
00の構成例を示すブロック図であり、リクエスト処理
部301と、キャッシュ検索部302と、キャッシュ判
定部303と、キャッシュ記憶部314とから構成され
ている。
ュ管理部304−1,304−2と、データグループ決
定手段308と、最低優先度決定手段309と、ヒット
率推定手段310とを備えている。
−2は、優先度割り当て手段305−1,305−2
と、部分最低優先度決定手段306−1,306−2
と、データ操作手段307−1,307−2とを備えて
いる。また、ヒット率推定手段310は、サイズ管理手
段311と、個数管理手段312と、演算手段313と
を備えている。
14にキャッシュされているデータを、キャッシュされ
た後一度もアクセスされていないデータグループLと、
キャッシュされた後一度以上アクセスされたデータグル
ープHとに分けて管理する。従って、キャッシュ記憶部
314中のデータグループLのデータがアクセスされた
場合、そのデータはデータグループLから取り除かれ
て、データグループHに移される。データグループH,
Lに属するデータは、それぞれ部分キャッシュ管理部3
04−1,304−2によって管理される。各部分キャ
ッシュ管理部304−1,304−2内の優先度割り当
て手段305−1,305−2は、どちらもLRUに従
った優先度を、管理しているデータに割り当てる。
段311は、データグループL,Hが占める記憶領域の
サイズ|L|,|H|を管理する。個数管理手段312
は、データグループLからデータグループHに移った
後、一度以上アクセスされたことのあるデータの数T
と、データグループLからデータグループHに移った
後、一度もアクセスされたことのないデータの数Sとを
管理している。演算手段313は、サイズ管理手段31
1,個数管理手段312で管理されているデータに基づ
いて、データグループL,Hそれぞれのヒット率の推定
値を求める。
ータDに対するリクエストを受け付けると(図4のステ
ップA1)、キャッシュ検索部302が、キャッシュ記
憶部314にデータDがキャッシュされているか否かを
調べる(ステップ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へ移
す。
ていない場合(ステップA2がn)は、キャッシュ検索
部302が、キャッシュ元からオリジナルなデータDを
取得する(ステップA5)。その後、データグループ決
定手段308が、上記データDをデータグループLにグ
ループ分けし(ステップB1)、データグループLを管
理している部分キャッシュ管理部304−2内の優先度
割り当て手段305−2が、データDに優先度(LRU
に従った優先度)を割り当てる。
を格納するのに十分な空き領域がキャッシュ記憶部31
4上に存在するか否かが調べられる。そして、十分な空
き領域が存在する場合には、部分キャッシュ管理部30
4−2内のデータ操作手段307−2によって、データ
Dがキャッシュ記憶部314にキャッシュされる(ステ
ップB6)。
十分な空き領域が存在しない場合(ステップB3がy)
は、最低優先度決定手段309が、ヒット率推定手段3
10の推定結果に基づいて、パージするデータグループ
を決定する(ステップB4)。
と、次のようになる。ヒット率推定手段310内の演算
手段313は、サイズ管理手段311,個数管理手段3
12で管理されているデータ|L|,|H|,S,Tを
使用して、データグループL,Hのヒット率の推定値S
L,SHを次式(1),(2)により求めている。
ープL,Hのヒット率の推定値SL,SHを比較し、S
L≧SHであれば、データグループHの優先度の方が高
いと判断し、データをパージするデータグループをデー
タグループLに決定する。SL<SHであれば、データ
グループLの方が優先度が高いと判断し、データをパー
ジするデータグループをデータグループHに決定する。
以上がステップB4で行う処理の詳細である。
グループがデータグループHに決定された場合には、部
分キャッシュ管理部304−1内のデータ操作手段30
7−1がデータグループH中の最低優先度データをキャ
ッシュ記憶部314からパージし、その後、データDを
キャッシュ記憶部314にキャッシュする(ステップB
5,B6)。また、ステップB4に於いて、パージする
データグループがデータグループLに決定された場合に
は、部分キャッシュ管理部304−2内のデータ操作手
段307−2が、データグループL中の最低優先度デー
タをキャッシュ記憶部314からパージし、その後、デ
ータDをキャッシュ記憶部314にキャッシュする(ス
テップB5,B6)。
次のようにして、データグループ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|を増加させる。
ようにして、個数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し、更に上記注目した対をリストから
削除する。
合わせることで既存のLRU,LFUを単独で使った方
式の問題点を克服している。
うためにあるサイト上のWWWデータを大量にコピーす
るようなアクセスが発生した場合に、一度しかアクセス
されないデータも含めて大量のデータに対するアクセス
が発生するため、結果として頻繁に利用されるデータが
キャッシュから追い出されてキャッシュの効率が低下す
る問題点がある。
パターンが変化して頻繁にアクセスされるデータが時間
とともに変化した場合でも、以前アクセスされていたデ
ータに対するアクセス数が大きかった場合は、なかなか
キャッシュから追い出されずにキャッシュの効率を低下
する問題点がある。本実施例では、WWWデータを大量
にコピーするようなアクセスが発生した場合でも、一度
しかアクセスされないデータはデータグループLに入れ
られ、結果としてデータグループLのヒット率が低下す
るため、データグループHに入っている頻繁にアクセス
されるデータがパージされることがない。この結果、キ
ャッシュを効率的に利用することができる。
て頻繁にアクセスされるデータが時間とともに変化した
場合は、アクセスされなくなったデータは、以前に頻繁
にアクセスされていたデータであってもデータグループ
Hから急速に追い出されるためキャッシュの効率が低下
する問題点が解決される。
造としてキューを使ってキャッシュされたデータを管理
することができるため、一回のキャッシュ操作に要する
計算量はO(1)しか必要としない。これに対してLF
U等のようにデータ構造としてヒープを用いた他のキャ
ッシングアルゴリズムでは、キャッシュ中のデータ数が
nの時の一回のキャッシュ操作に要する計算量がO(log
n) のキャッシングアルゴリズムと比較して短い計算時
間しか必要とせずに実現できるという特長も持つ。
のキャッシングに用いられるプロキシキャッシュ装置以
外にも、ディスク中のデータを主記憶装置中にキャッシ
ュする目的や、DNSデータを主記憶装置中にキャッシ
ュする目的にも適用可能であることは明らかである。
ャッシングだけでなく、データのプリフェッチも行なう
プロキシキャッシュ装置に、第一の実施の形態を適用し
た場合について説明する。
グループHを管理する部分キャッシュ管理部304−1
をキャッシュされたデータの管理に、データグループL
を管理する部分キャッシュ管理部304−2をプリフェ
ッチされたデータの管理に用いる。データグループ決定
手段308は、プリフェッチされたデータに対してはデ
ータグループLを割り当て、データグループL中にキャ
ッシュされているデータがアクセスされた場合、そのデ
ータをデータグループLからデータグループHに移す。
また、何れのデータグループの優先度割り当て手段30
5−1,305−2も、LRUに従って優先度を割り当
てる。
と同様に、データグループLのヒット率の推定値SL=
|L|/(S+a)と、データグループHのヒット率の
推定値SH=|H|/(T+a)とを求める。最低優先
度決定手段309は、図4のステップB4に於いて、ヒ
ット率推定手段310が算出したヒット率の推定値S
L,SHを比較する。そして、SL≧SHであれば、デ
ータグループHの優先度の方が高いと判断し、データを
パージするデータグループをデータグループLに決定す
る。SL<SHであれば、データグループLの方が優先
度が高いと判断し、データをパージするデータグループ
をデータグループHに決定する。
チされたデータを扱う本実施例の変形例は、容易に組み
合わせることが可能である。まず、プリフェッチされた
データからなるデータグループ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の中で最低の優先度を持つ
データをパージする。
て述べる。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)をヒット
率とする。ヒット率が最小であるデータグループの部分
最低優先度データが最低優先度データとみなされ、パー
ジされる。
プX、Yに対して上記同様、ヒット率をh(t,i)/s(t,i)
と推定し、最小のh(t,i)/s(t,i) を持つデータグループ
の部分最低優先度データをパージする方法が、容易に類
推できる。
述べる。
guage)で記述されたWeb ページ(HTML 文書) 、およびそ
れらのページに埋め込まれている画像、音声、音楽、動
画、映像、あるいはJavaなどのプログラミング言語で記
述されたプログラムなどのWeb オブジェクトを管理する
キャッシュ装置に、第一の実施の形態を適用したもので
ある。
くはWeb オブジェクトとの論理的な関連をつけるために
「リンク」が用いられている。例えば、「<a href = UR
L>アンカー </a> 」という記述を用いることで、あるHT
ML文書中の「アンカー」という部分と、URL という識別
子で示される Webオブジェクトとを関連づけることがで
きる。
つ Webページというものは、例えばディレクトリ型検索
システムのように、多くの Webページを主題別に分類
し、また分類をおおまかな大分類から詳細な小分類へと
階層的に行なうことで利用者への便宜をはかるようなシ
ステムで良く見られることがある。あるいは、ニュース
を提供するシステムのように、ニュース記事そのものを
含むのではなく、個別ニュースへのリンクをジャンルご
とにまとめあげ、一つの Webページ内にニュース記事の
見出しを見やすく配置するような場合にも、一つの HTM
L 文書中に多くのリンクを含むこととなる。すなわち、
多くの情報を分類・整理することによって、そのWeb ペ
ージ自体の価値が重要視されるようなWeb ページは、一
般に他のWeb ページへのリンクを多く含むこととなって
いる。以下、このような Webページのことを「インデッ
クスページ」と呼ぶ。
ュースそのもののWeb ページや、なんらかの技術に関す
る解説記事、あるいはエッセイ・日記などのように、他
の Webページへのリンクをほとんど含まない HTML 文書
というものも存在する。このような Webページを以下で
は「アーティクルページ」と呼ぶ。
は、HTML文書のこのような構造を利用し、HTML文書中に
含まれているリンクの数を用いてデータグループを決定
する(図4,ステップB1)。すなわち、HTML文書中に
含まれる「<a href=...>・・・</a> 」というリンク部
分を検出し、その数が定められた数以上であればインデ
ックスページに、そうでなければアーティクルページ
に、その文書をグループ分けする。一般に、ユーザが W
ebページを参照する時には、最初にインデックスページ
を参照し、そのページ内のリンクを用いて、続いてアー
ティクルページを参照し、場合によってはそのアーティ
クルページからもう一度先ほどのインデックスページを
参照し、別のアーティクルページを参照するというよう
な動作を行なうことが多い。すなわち、ユーザはインデ
ックスページを基準とし、そこからリンクされている幾
つかのアーティクルページを参照するという行為を繰り
返している。この結果として、インデックスページの参
照回数が、アーティクルページの参照回数に比べて多く
なっている。図11に、インデックスページ400−1
から、インデックスページ400−2、アーティクルペ
ージ400−3、アーティクルページ400−4…と参
照し、Web ページ400−kまで参照する例を示した。
ュ管理手法においては、上記で述べたようなインデック
スページやアーティクルページが持つ意味合いをまった
く考慮しておらず、キャッシュを有効に活用することが
できていなかった。
手段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/(現在時刻−最終参照時刻)という式から算
出される値を、優先順位とする方式も考えられる。
2内の部分最低優先度決定手段32においては、上記の
キャッシングアルゴリズムを用いてWeb ページを管理
し、最低の優先度を持つWeb ページを置換えの候補とす
る。
に於いて、インデックスページとアーティクルページと
の内の、どちらを置換え対象とするかを評価式に基づき
決定する。
終アクセス時刻) と定義し、インデックスページの評価
値Viとアーティクルページの評価値Vaのうち、小さ
な方を真の置換え対象と決定することができる。
Va との値の比較を行ない、小さな方を真の置換え対象
と決定する方式も考えられる。α≧1の場合には、アー
ティクルページの方をインデックスページよりも長期間
キャッシュに保存することができ、逆にα<1の場合に
はインデックスページの方をアーティクルページよりも
長期間キャッシュに保存することができる。
いる部分キャッシュ管理部21−i内のデータ操作手段
33は、ステップB5に於いて、自管理部21−i内の
部分最低優先度決定手段32によって置き換え候補とさ
れた最低優先度を持つデータをパージする。
方法として、上記実施例においてはリンク数に基づく分
類方法のみを説明したが、これ以外にも埋め込みオブジ
ェクトの数を考慮した分類を行なうこともできる。例え
ば、HTML文書では「<IMG SRC=...> 」という記述を用い
て、画像、音声、音楽、動画などを文書中に埋め込むこ
とができるので、文書中にある<IMG SRC=...> というタ
グを解析し、埋め込みオブジェクトの数を算出すること
ができる。そこで、ある HTML 文書中のリンク数と埋め
込みオブジェクトの数とを用いて、HTMLページをインデ
ックスページとアーティクルページとに分類することが
できる。
HTML 文書とは別の参照特性があると考えて、インデッ
クスページ、アーティクルページ、そして埋め込みオブ
ジェクトのように分類を3種類にすることもできる。い
ずれの場合においても、データグループ決定手段22を
除く本発明の構成要素は、上記実施例で述べた方法が素
直に適用できることは明らかである。
L タグを用いながら、Web ページをインデックスページ
とアーティクルページ、あるいは埋め込みオブジェクト
というように、その論理的な意味にもとづく分類を行な
い、かつそれぞれのページを独立なキャッシングアルゴ
リズムで管理し、更に最終的な置換え対象を決定する際
には、現在時刻と最終参照時刻とを用いて、最も参照さ
れていない Webページを置換え対象としている。すなわ
ち、Web ページの論理構造を重視した上で、今までに知
られている優先順位に基づくキャッシングアルゴリズム
が矛盾なく統一的に動作する構成となっている。
た Webページ(HTML 文書) および画像、音声、音楽、動
画などの Webオブジェクトに限られるものではない。ハ
イパーリンク構造を持つ文書や、画像、音声、音楽、動
画、映像を含むマルチメディアデータ、あるいはプログ
ラムを対象とするキャッシュ一般にも適用可能であるこ
ともまた明らかである。また、第四の実施例は、第二の
実施の形態にも適用できる。
上である。その理由は、データ毎に異なるキャッシング
アルゴリズムを適用できるので、データ毎のアクセス特
性を反映したキャッシングができるためである。また、
データグループ毎にデータ記憶領域を固定的に割り当て
る必要がないため、各データグループ毎に独自のキャッ
シングアルゴリズムを用いているにも関わらず、データ
記憶領域を有効に活用でき、このこともキャッシュヒッ
ト率向上に寄与している。
トである。その理由は、第三の実施例で述べた通り、本
発明ではO(1)で高いキャッシュヒット率を達成でき
るためである。
視した上で、今までに知られている優先順位に基づくキ
ャッシングアルゴリズムを矛盾なく統一的に動作させら
れる点である。その理由は、第四の実施例で述べた通
り、本発明ではハイパーリンク構造をキャッシュ処理時
に考慮できるからである。
クシステムの一例を示す図である。
置10の構成例を示すブロック図である。
キャッシュ記憶部の構成例を示すブロック図である。
る。
定部13a及びキャッシュ記憶部の構成例を示すブロッ
ク図である。
る。
めのブロック図である。
めのブロック図である。
である。
ためのブロック図である。
ための図である。
Claims (17)
- 【請求項1】 キャッシュ記憶部にキャッシュされてい
る複数のデータを、アクセスパターンが異なるデータ系
列毎のグループにグループ分けすると共に、各グループ
毎にそれぞれ独立したキャッシングアルゴリズムで自グ
ループに属するデータに優先度を割り当て、 前記キャッシュ記憶部からデータをパージすることが必
要になった場合、予め定められている評価規則によって
決まる最低優先度のグループ中の、そのグループのキャ
ッシングアルゴリズムによって最低優先度が割り当てら
れているデータをパージすることを特徴とするキャッシ
ュ制御方法。 - 【請求項2】 リクエストされたデータを分割してでき
る分割データをキャッシュ管理の単位として扱い、 前記複数の分割データを、アクセス時刻を予想すること
ができるグループと、アクセス時刻を予想することがで
きないグループとにグループ分けすると共に、各グルー
プ毎にそれぞれ独立したキャッシングアルゴリズムで自
グループに属する分割データに優先度を割り当て、 前記キャッシュ記憶部から分割データをパージすること
が必要になった場合、予め定められている評価規則によ
って決まる最低優先度のグループ中の、そのグループの
キャッシングアルゴリズムによって最低優先度が割り当
てられている分割データをパージすることを特徴とする
キャッシュ制御方法。 - 【請求項3】 請求項1記載のキャッシュ制御方法に於
いて、 アクセス回数の差が大きい複数のデータ系列を扱い、前
記キャッシュ記憶部にキャッシュされているデータをデ
ータ系列毎にグループ化し、各グループで最低優先度を
持つデータ同士をLRUで比較することにより最低優先
度のグループを決定することを特徴とするキャッシュ制
御方法。 - 【請求項4】 請求項3記載のキャッシュ制御方法に於
いて、 前記複数のデータ系列が、ディレクトリデータとファイ
ルデータであることを特徴とするキャッシュ制御方法。 - 【請求項5】 請求項1記載のキャッシュ制御方法に於
いて、 前記各グループのキャッシュヒット率を推定し、 各グループのキャッシュヒット率の推定値に基づいて、
最低優先度を持つグループを決定することを特徴とする
キャッシュ制御方法。 - 【請求項6】 請求項5記載のキャッシュ制御方法に於
いて、 前記各グループのヒット率を、そのグループが占める記
憶領域のサイズと、そのグループに於いて1回以上アク
セスされたことのあるデータの数とに基づいて推定する
ことを特徴とするキャッシュ制御方法。 - 【請求項7】 請求項1記載のキャッシュ制御方法に於
いて、 データをグループ分けする際、データのハイパーリンク
構造に基づいてグループ分けすることを特徴とするキャ
ッシュ制御方法。 - 【請求項8】 キャッシュ記憶部にキャッシュされてい
る複数のデータを、アクセスパターンが異なるデータ系
列毎のグループにグループ分けすると共に、各グループ
毎にそれぞれ独立したキャッシングアルゴリズムで自グ
ループに属するデータに優先度を割り当て、 前記キャッシュ記憶部からデータをパージすることが必
要になった場合、予め定められている評価規則によって
決まる最低優先度のグループ中の、そのグループのキャ
ッシングアルゴリズムによって最低優先度が割り当てら
れているデータをパージする構成を有することを特徴と
するキャッシュ装置。 - 【請求項9】 リクエストされたデータを分割してでき
る分割データをキャッシュ管理の単位として扱い、 前記複数の分割データを、アクセス時刻を予想すること
ができるグループと、アクセス時刻を予想することがで
きないグループとにグループ分けすると共に、各グルー
プ毎にそれぞれ独立したキャッシングアルゴリズムで自
グループに属する分割データに優先度を割り当て、 前記キャッシュ記憶部から分割データをパージすること
が必要になった場合、予め定められている評価規則によ
って決まる最低優先度のグループ中の、そのグループの
キャッシングアルゴリズムによって最低優先度が割り当
てられている分割データをパージする構成を有すること
を特徴とするキャッシュ装置。 - 【請求項10】 請求項8記載のキャッシュ装置に於い
て、 前記キャッシュ記憶部にキャッシュされているデータ
を、アクセスパターンが異なるデータ系列毎のグループ
にグループ分けするデータグループ決定手段と、 前記各グループ毎に設けられ、それぞれが独自のキャッ
シングアルゴリズムで対応するグループに属するデータ
に優先度を割り当てる優先度割り当て手段と、 前記キャッシュ記憶部からデータをパージすることが必
要になった場合、予め定められている評価規則に従っ
て、最低優先度のグループを決定する最低優先度決定手
段と、 該最低優先度決定手段で決定された最低優先度のグルー
プ中の、最低優先度のデータをパージするデータ操作手
段とを備えたことを特徴とするキャッシュ装置。 - 【請求項11】 請求項10記載のキャッシュ装置に於
いて、 前記データグループ決定手段が、前記キャッシュ記憶部
にキャッシュされているデータを、アクセス回数の差が
大きい複数のデータ系列毎にグループ分けする構成を有
し、 前記各優先度割り当て手段が、自手段で管理している各
データにLRUに従った優先度を割り当てる構成を有
し、 前記最低優先度決定手段が、前記各グループで最低優先
度を持つデータの優先度に基づいて、最低優先度のグル
ープを決定する構成を有することを特徴とするキャッシ
ュ装置。 - 【請求項12】 請求項11のキャッシュ装置に於い
て、 前記データグループ決定手段が、前記キャッシュ記憶部
にキャッシュされているデータを、ディレクトリデータ
とファイルデータとにグループ分けする構成を有するこ
とを特徴とするキャッシュ装置。 - 【請求項13】 請求項10記載のキャッシュ装置に於
いて、 前記各グループのヒット率を推定するヒット率推定手段
を備え、且つ、 前記最低優先度決定手段が、前記ヒット率推定手段が推
定した各グループのヒット率に基づいて、最低優先度の
グループを決定する構成を有することを特徴とするキャ
ッシュ装置。 - 【請求項14】 請求項13記載のキャッシュ装置に於
いて、 前記ヒット率推定手段が、前記各グループのヒット率
を、そのグループが占める記憶領域のサイズと、そのグ
ループに於いて1回以上アクセスされたことのあるデー
タの数とに基づいて推定する構成を有することを特徴と
するキャッシュ装置。 - 【請求項15】 請求項10記載のキャッシュ装置に於
いて、 前記データグループ決定手段が、データのハイパーリン
ク構造に基づいてグループ分けする構成を有することを
特徴とするキャッシュ装置。 - 【請求項16】 Webデータをキャッシュするプロキ
シキャッシュ装置として機能することを特徴とする請求
項8乃至15記載の何れか1つのキャッシュ装置。 - 【請求項17】 ディスクデータをキャッシュするディ
スクキャッシュ装置として機能することを特徴とする請
求項8乃至15記載の何れか1つのキャッシュ装置。
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 true JP2003022211A (ja) | 2003-01-24 |
JP4042359B2 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006134112A (ja) * | 2004-11-05 | 2006-05-25 | Brother Ind Ltd | ファイル取得システムおよび端末装置 |
US7778495B2 (en) | 2004-11-05 | 2010-08-17 | Brother Kogyo Kabushiki Kaisha | System and device for image processing |
JP2010271901A (ja) * | 2009-05-21 | 2010-12-02 | Hitachi Ltd | 省電力制御装置及び方法 |
JP2012022532A (ja) * | 2010-07-14 | 2012-02-02 | Nec Corp | ストレージシステム及びストレージシステムのメモリキャッシュ領域制御方法 |
JP2013502641A (ja) * | 2009-08-21 | 2013-01-24 | グーグル インコーポレイテッド | キャッシング情報のシステム及び方法 |
JP2013045273A (ja) * | 2011-08-24 | 2013-03-04 | Nec Corp | キャッシュサーバ、キャッシュ対象決定方法、コンテンツ配信システム及びキャッシュ対象決定プログラム |
JP2015525913A (ja) * | 2012-06-27 | 2015-09-07 | アルカテル−ルーセント | N個のアイテムのリストをキャッシュシステムのc個のアイテムのメモリキャッシュに格納することを管理するための方法 |
WO2018092679A1 (ja) * | 2016-11-17 | 2018-05-24 | 国立大学法人電気通信大学 | ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム |
JP2021152968A (ja) * | 2020-12-22 | 2021-09-30 | 北京百度網訊科技有限公司 | 検索システムを最適化する方法、装置、電子機器、記憶媒体及びプログラム |
Families Citing this family (68)
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 |
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 |
CA2837984C (en) | 2005-11-28 | 2021-11-16 | 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 | パナソニック株式会社 | バスアービトレーション装置 |
US20080091871A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Non-volatile memory with worst-case control data management |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for 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 |
TWI360113B (en) * | 2007-02-16 | 2012-03-11 | Mediatek Inc | Buffer management method and optical disc drive |
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 |
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 |
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 |
US8868853B2 (en) * | 2009-08-12 | 2014-10-21 | Nec Corporation | Data processing device, data recording method and data recording program |
US8442983B2 (en) | 2009-12-31 | 2013-05-14 | 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 |
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 |
US9189172B1 (en) | 2012-01-06 | 2015-11-17 | Seagate Technology Llc | High priority read and write |
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 |
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 |
US10911561B2 (en) * | 2013-12-12 | 2021-02-02 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and network node for caching web content |
JP6269048B2 (ja) * | 2013-12-26 | 2018-01-31 | 富士通株式会社 | データ配置制御プログラム、データ配置制御方法およびデータ配置制御装置 |
WO2016053231A1 (en) | 2014-09-29 | 2016-04-07 | 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 |
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 |
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 |
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)
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 |
-
2001
- 2001-07-10 JP JP2001209153A patent/JP4042359B2/ja not_active Expired - Fee Related
-
2002
- 2002-07-09 US US10/190,815 patent/US6834329B2/en not_active Expired - Lifetime
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006134112A (ja) * | 2004-11-05 | 2006-05-25 | Brother Ind Ltd | ファイル取得システムおよび端末装置 |
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 |
JP2010271901A (ja) * | 2009-05-21 | 2010-12-02 | Hitachi Ltd | 省電力制御装置及び方法 |
US9104605B1 (en) | 2009-08-21 | 2015-08-11 | Google Inc. | System and method of selectively caching information based on the interarrival time of requests for the same information |
US8904116B2 (en) | 2009-08-21 | 2014-12-02 | Google Inc. | System and method of selectively caching information based on the interarrival time of requests for the same information |
JP2013502641A (ja) * | 2009-08-21 | 2013-01-24 | グーグル インコーポレイテッド | キャッシング情報のシステム及び方法 |
US8812791B2 (en) | 2009-08-21 | 2014-08-19 | Google Inc. | System and method of selectively caching information based on the interarrival time of requests for the same information |
US8825961B2 (en) | 2009-08-21 | 2014-09-02 | Google Inc. | System and method of selectively caching information based on the interarrival time of requests for the same information |
US8825960B2 (en) | 2009-08-21 | 2014-09-02 | Google Inc. | System and method of selectively caching information based on the interarrival time of requests for the same information |
JP2014211909A (ja) * | 2009-08-21 | 2014-11-13 | グーグル インコーポレイテッド | キャッシング情報のシステム及び方法 |
JP2012022532A (ja) * | 2010-07-14 | 2012-02-02 | Nec Corp | ストレージシステム及びストレージシステムのメモリキャッシュ領域制御方法 |
JP2013045273A (ja) * | 2011-08-24 | 2013-03-04 | Nec Corp | キャッシュサーバ、キャッシュ対象決定方法、コンテンツ配信システム及びキャッシュ対象決定プログラム |
JP2015525913A (ja) * | 2012-06-27 | 2015-09-07 | アルカテル−ルーセント | N個のアイテムのリストをキャッシュシステムのc個のアイテムのメモリキャッシュに格納することを管理するための方法 |
WO2018092679A1 (ja) * | 2016-11-17 | 2018-05-24 | 国立大学法人電気通信大学 | ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム |
JPWO2018092679A1 (ja) * | 2016-11-17 | 2019-10-17 | 国立大学法人電気通信大学 | ネットワークシステム、キャッシュ方法、キャッシュプログラム、管理装置、管理方法及び管理プログラム |
JP2021152968A (ja) * | 2020-12-22 | 2021-09-30 | 北京百度網訊科技有限公司 | 検索システムを最適化する方法、装置、電子機器、記憶媒体及びプログラム |
JP7200299B2 (ja) | 2020-12-22 | 2023-01-06 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 検索システムを最適化する方法、装置、電子機器、記憶媒体及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US6834329B2 (en) | 2004-12-21 |
JP4042359B2 (ja) | 2008-02-06 |
US20030014603A1 (en) | 2003-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003022211A (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) | |
CN105282215B (zh) | 用于通过内容中心网络转发并响应兴趣的基于声誉的策略 | |
US10057367B2 (en) | Systems and methods for data caching in a communications network | |
US6370620B1 (en) | Web object caching and apparatus for performing the same | |
US8145614B1 (en) | Selection of a data path based on the likelihood that requested information is in a cache | |
US6154813A (en) | Cache management system for continuous media system | |
EP2359536B1 (en) | Adaptive network content delivery system | |
US7076544B2 (en) | Caching techniques for streaming media | |
US8856454B2 (en) | Anticipatory response pre-caching | |
US7251649B2 (en) | Method for prioritizing content | |
KR101228230B1 (ko) | 컨텐츠 전달 네트워크 내의 노드에서 하나 이상의 컨텐츠 아이템을 캐싱하는 방법, 장치 및 제품 | |
US6182111B1 (en) | Method and system for managing distributed data | |
JP4294494B2 (ja) | 複数のキャッシュサーバによる共有ストレージの使用を管理するデバイスおよび方法 | |
EP3089039B1 (en) | Cache management method and device | |
US20020056025A1 (en) | Systems and methods for management of memory | |
CN109656956B (zh) | 一种实现业务系统数据集中式缓存的方法及装置 | |
WO2018049563A1 (en) | Systems and methods for caching | |
JP2001101061A (ja) | キャッシュサーバ | |
Nanopoulos et al. | Exploiting web log mining for web cache enhancement | |
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 | |
JP5192506B2 (ja) | ファイルキャッシュの管理方法、装置、及び、プログラム | |
Meint et al. | From FIFO to predictive cache replacement |
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 |