JP4331101B2 - キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム - Google Patents

キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム Download PDF

Info

Publication number
JP4331101B2
JP4331101B2 JP2004377973A JP2004377973A JP4331101B2 JP 4331101 B2 JP4331101 B2 JP 4331101B2 JP 2004377973 A JP2004377973 A JP 2004377973A JP 2004377973 A JP2004377973 A JP 2004377973A JP 4331101 B2 JP4331101 B2 JP 4331101B2
Authority
JP
Japan
Prior art keywords
cache
management information
time
cache data
deletion
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
JP2004377973A
Other languages
English (en)
Other versions
JP2006185169A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004377973A priority Critical patent/JP4331101B2/ja
Publication of JP2006185169A publication Critical patent/JP2006185169A/ja
Application granted granted Critical
Publication of JP4331101B2 publication Critical patent/JP4331101B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムに関するものである。特に、キャッシュ容量を超えないようにキャッシュデータの削除を制御するキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムに関するものである。
近年、ネットワークを介して様々なサービスを提供するサーバと、所望のサービスをサーバに対して要求するクライアントとから構成される、クライアント・サーバ型の情報システムが広く普及している。特に、インターネット上でHTTP(Hyper Text Transfer Protocol)プロトコルを使って通信するWebサーバとクライアントからなるWorldWideWebシステム(あるいは単にWebシステムとも呼ばれる)は、大変広く利用されているクライアント・サーバ型の情報システムである。通常、サーバ上ではサーバ・プログラムが動作し、クライアント上ではWebブラウザなどのクライアント・プログラムが動作する。
インターネット上で提供されるサービスの内容も多岐に渡っている。例えば、ネットワーク経由でホームページ、電子メール、デジタルコンテンツなどの文字、静止画像、動画像、音声等の情報や、プログラムなどを提供、配信あるいは転送などを行うサービス、商品を販売するための電子店舗サービス、座席や部屋などの予約サービス、種々の仲介サービスなど、様々なサービスが既に存在し、また次々と新たな形態のサービスが出現している。
ところで、Webシステムのようなクライアント・サーバ型の情報システムにおいては、提供されるサービスの形態にかかわらず、基本的にはクライアントとサーバとの間でデータ転送が行われることによってサービスが提供される。従って、クライアントとサーバとの間で通信に用いるネットワーク容量(バンド幅)がシステム全体のパフォーマンスのボトルネックになりやすい。そこで、通常、ネットワークの負荷を軽減させるためにキャッシュ技術が用いられる。キャッシュ技術とは、使用頻度の高いデータを高速な記憶装置などに蓄えておくことにより、低速な記憶装置から読み出す無駄を省いて処理を高速化することをいう。
Webシステムによる情報の閲覧においては、Webブラウザが動作するWebクライアントとWebサーバの間に設定されたキャッシング・プロキシ・サーバやWebブラウザ自身のキャッシュ機能を使うことで、閲覧に際しての転送データ量を削減し、リクエストを出してからレスポンスを受け取りWebブラウザにコンテンツを表示する一連のシーケンスにかかる時間(レスポンスタイム)を高速化する技術が開発されている。
キャッシング・プロキシ・サーバはWebサーバとWebクライアントを結ぶネットワーク上に配置される。以前閲覧されキャッシング・プロキシ・サーバにキャッシュされているコンテンツがWebクライアント上のWebブラウザからリクエストされた場合は、キャッシング・プロキシ・サーバからレスポンスを返すことにより、Webサーバまでのネットワーク転送を回避し、レスポンスタイムの向上を実現している。
Webブラウザ自身に備えられているキャッシュ機能を用いる場合は、既にWebブラウザのキャッシュ記憶部に保存されているコンテンツがWebブラウザからリクエストされたとき、ただちに該当コンテンツをWebブラウザに表示することにより、ネットワークを流れる転送データ量を削減するとともに、レスポンスタイムを向上している。
ところで、キャッシュデータの保存に使われるデータ保存領域であるキャッシュ記憶部は、キャッシュを行うコンピュータに直接もしくはネットワーク経由で接続されている主記憶装置や補助記憶装置が利用される。これらのキャッシュ記憶部は有限なサイズのデータしか保存することができないため、情報の閲覧にともなって増加するキャッシュデータを保存可能なサイズ以内に収まるようにキャッシュデータを削除する必要がある。また、削除に際してキャッシュ記憶部に残るキャッシュデータができるだけ再利用可能なように削除するキャッシュデータを選択する必要がある。すなわち、キャッシュヒット率が向上するように削除するキャッシュデータを決定し、限られたキャッシュ記憶部を有効に活用するためにキャッシュを制御するアルゴリズムが必要となる。
従来、キャッシュヒット率を向上させるキャッシュ置換アルゴリズムとして、最も参照日時の古いデータから順に削除を行うLRU(Least Recently Used)アルゴリズムや、最も利用頻度の低いデータから順に削除を行うLFU(Least Frequently Used)アルゴリズム、またそれらの組み合わせからなる置換アルゴリズム等が一般的に利用されている。特にLRUアルゴリズムはそのヒット率の高さからプロキシやWebブラウザのキャッシュ、その他のWebデータをキャッシュする装置で実装されている(例えば、非特許文献1)。
なお、テープ装置や光ディスク装置、その他記憶装置を用いたバックアップ処理やミラーリング処理においては、一定時間経過などの条件に応じて、更新日時等に基づいて必要なデータのバックアップ処理等が行われる点で、キャッシュ容量の不足という条件に応じて、参照日時等に基づいて必要なデータの削除を行うキャッシュ制御処理と共通する。
しかし、バックアップ処理等においては、データの実体が変更されたか否かを判断するために更新日時等を参照するのが本質であり、更新日時の順序を判断する必要はなく、一般に上述のようなアルゴリズムを適用することはない。
また、データベースシステムのトランザクション管理におけるロールバック処理は、障害発生という条件に応じて、それまでのログデータに基づいて必要なデータの回復を行うという点で、キャッシュ制御処理と共通する部分があるが、データの更新内容を保存したログデータを参照するだけであり、更新日時やその順序を判断する必要はなく、一般に上述のようなアルゴリズムを適用することはない。
ところで、上述のLRUアルゴリズムは最も参照日時の古いキャッシュデータを優先的に削除するアルゴリズムであり、その実現方法には様々なものが考えられる。最も単純な方法としては、キャッシュを保存するキャッシュ記憶部に各キャッシュデータとともにそれらの参照日時を記憶し、総キャッシュサイズがキャッシュ記憶部の保存可能サイズなどに基づいて定められた閾値を超えた時や、管理者によって予め設定された一定時間を経過した時に、全キャッシュデータを検査し最も参照日時の古いものから削除する方法が考えられる。
しかし、この方法では削除するデータを決定するために全キャッシュデータを検査する必要があり、実用に耐えうる性能を得ることはできない。そこでキャッシュ記憶部とは別に、キャッシュデータの識別子等から構成されるキャッシュデータの管理情報を各キャッシュデータの参照日時順にソートして保持するキャッシュ管理部を設ける方法が一般的に採用されている。キャッシュを削除する必要性が生じた際にキャッシュ管理部が最も参照日時の古い管理情報から識別子を取得し、キャッシュ記憶部に該当識別子を指定することで即座にデータを削除できる。このようなキャッシュ管理部を用いたキャッシュ制御方法の詳細について以下にその手順を述べる。
新しいデータがキャッシュに生成される場合、データに固有の識別子とデータの実体をキャッシュ記憶部に保存するとともに、その管理情報をキャッシュ管理部のソートされた既存の管理情報群の最後尾に追加する。
キャッシュ済みのデータに対して参照があった場合、該当データの実体をキャッシュ記憶部から取得するとともに、該当データに固有の識別子を指定してキャッシュ管理部の管理情報を検索し、検索された管理情報を管理情報群の最後尾に移動する。
キャッシュ済みのデータを削除する場合、キャッシュ管理部の管理情報群の最前部に存在する管理情報から識別子を取得し、キャッシュ記憶部に該当識別子を指定して識別子とデータの実体を削除するとともにキャッシュ管理部から該当データの管理情報を削除する。
このように、一般的に採用されているキャッシュ制御方法においては、キャッシュデータの参照時にキャッシュ管理部から参照のあったデータに固有の識別子を指定して該当管理情報を検索し、その管理情報を管理情報群の最後尾に移動することで常に管理情報群を参照日時順にソートされた状態を維持し、削除時に即座に最も参照日時の古いデータを検出し削除することができる。
特にパーソナルコンピュータやサーバコンピュータに代表されるRAM(Random Access Memory)装置を備えるコンピュータ上のRAMにキャッシュ管理部が実装される場合、管理情報群を保持する手段として双方向連結リストが用いられる。この場合、管理情報の移動は双方向連結リストのポインタの付け替えで実現する。また、管理情報を高速に検索するためにchain法等などのハッシュを用いた方法が用いられる。このようなハッシュを用いた検索により、参照のあった識別子の管理情報を双方向連結リストのヘッドまたはテイルから順に検索する場合に比較して処理を高速化することができる(例えば、非特許文献1)。
Podlipnig et al., A Survey of Web Cache Replacement Strategies, ACM Computing Surveys, Vol.35, No.4, December 2003.
しかしながら、LRUアルゴリズムに基づき管理情報をソートして保持するキャッシュ管理部を有するキャッシュ制御装置においては、キャッシュデータが参照されるたびに管理情報の検索処理、ソート処理が必要となるため、参照時の処理負荷が高くなるという問題があった。
また、近年のWeb利用の急速な拡大に伴い、Webデータをキャッシュするキャッシュ制御装置の重要性が高まるとともにキャッシュ制御装置にキャッシュされるWebオブジェクトの数が急増している。さらに、Webサーバへのリクエストに対してキャッシュ制御装置のキャッシュを用いてレスポンスを返す回数も増加している。その結果、キャッシュ制御装置においてキャッシュヒットに伴う管理情報の検索と管理情報のソート処理の負荷がさらに増加するという問題が生じている。
本発明は、上記に鑑みてなされたものであって、アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置において、キャッシュヒットに伴うキャッシュ制御装置の処理負荷を低減させることで、キャッシュデータの生成・参照・削除というキャッシュ制御装置の総処理量を低減させ、スループットを向上させることができるキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置において、前記キャッシュデータを新規に登録するときに前記キャッシュデータの生成日時を参照日時として、前記キャッシュデータと前記キャッシュデータに固有の識別子とに対応づけてキャッシュ記憶部に記憶するキャッシュ登録手段と、前記キャッシュデータが参照されるたびに前記参照日時を更新する参照日時更新手段と、前記識別子を含む前記キャッシュデータの管理情報を前記参照日時に基づいて予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順にキャッシュ管理情報記憶部に記憶する管理情報登録手段と、前記キャッシュ管理情報記憶から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する前記キャッシュデータの参照日時を前記キャッシュ記憶から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定し、取得した参照日時が前記最古グループの日時の範囲に含まれる場合に前記削除候補識別子に対応する前記キャッシュデータを削除すると判定する削除判定手段と、前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記キャッシュデータを前記キャッシュ記憶部から削除するキャッシュ削除手段と、前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記管理情報を前記キャッシュ管理情報記憶部から削除する管理情報削除手段と、を備えたことを特徴とする。
また、本発明は、上記装置を実行することができるキャッシュ制御方法およびキャッシュ制御プログラムである。
本発明によれば、キャッシュデータの参照時にはキャッシュ記憶部に保存する参照日時を更新するだけで管理情報の検索およびソート処理は行わず、キャッシュデータの削除時に参照日時を参照して削除するキャッシュデータを決定することができる。このため、参照時の処理負荷を軽減し、キャッシュ制御装置の総処理量を低減させ、スループットを向上させることができるという効果を奏する。
以下に添付図面を参照して、この発明にかかるキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムの最良な実施の形態を詳細に説明する。
(第1の実施の形態)
第1の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除優先度順にキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と別個の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時を参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
図1は、本発明の実施の形態にかかるキャッシュ制御装置が適用されるネットワークシステムの全体構成を示す説明図である。同図に示すように、このネットワークシステムは、インターネット102を介して接続されるWebサーバ101a〜101cおよびプロキシサーバ103と、当該プロキシサーバ103とLAN(Local Area Network)105を介して接続されるWebクライアント106a〜106cとを備えている。また、プロキシサーバ103およびWebクライアント106a〜106cは、キャッシュデータを記憶するためのハードディスクドライブ装置(HDD:Hard Disk Drive)104、107a〜107cを備えている。
Webクライアント106a〜106cは、ユーザが指定した情報の閲覧の要求をHTTPリクエストとしてLAN105を介して接続されたプロキシサーバ103に送信するものである。プロキシサーバ103は、Webクライアント106a〜106cから送信されたHTTPリクエストを所望のWebオブジェクトを持つWebサーバ101a〜101cのいずれかにインターネット102を介して転送する。
Webサーバ101a〜101cは、プロキシサーバ103から受信したHTTPリクエストに対応して、要求されたWebオブジェクトを含むHTTPレスポンスを、プロキシサーバ103を介してHTTPリクエストを送信したWebクライアント106a〜106cのいずれかに転送する。
一般に、上記のようなWebシステムにおいて、LAN105と比較してインターネット102は実効的な通信容量(バンド幅)が低く、そこが性能上のボトルネックになって通信の遅延が発生し、Webクライアント106a〜106cのレスポンスタイムが低下する。
そこで本実施の形態では、図1に示すようにインターネット102とLAN105の間に、アクセス頻度の高いWebオブジェクトのデータをキャッシュデータとして記憶するHDD104を備えたプロキシサーバ103を設置し、HDD104に所望のWebオブジェクトが存在する場合は、そのWebオブジェクトを取得し、HTTPレスポンスを返すことでインターネット102を流れるデータ量を削減することでボトルネックを解消する。
また、Webクライアント106a〜106cのそれぞれにキャッシュデータを記憶したHDD107a〜107cを設置し、HDD107a〜107cに所望のWebオブジェクトが存在する場合は、そのWebオブジェクトを取得しHTTPレスポンスを返すことにより、同様にボトルネックの解消を行うように構成してもよい。
また、Webサーバ101a〜101cに対する過負荷のためレスポンスタイムが遅延する場合がある。その場合、キャッシュサーバとしてリバース・プロキシ・サーバ(図示せず)をそれぞれWebサーバ101a〜101cとインターネット102の間に設置し、リバース・プロキシ・サーバに設置されたキャッシュデータを記憶したHDD内に所望Webオブジェクトが存在する場合は、Webサーバ101a〜101cにHTTPリクエストを転送せずにリバース・プロキシ・サーバのキャッシュから所望のWebオブジェクトを取得しHTTPレスポンスを返すように構成してもよい。
以上に述べたように、本実施の形態にかかるキャッシュ制御装置はプロキシサーバやWebクライアント、あるいはリバース・プロキシ・サーバ上に実装することができる。なお、プロキシサーバ103とWebサーバ101a〜101cを接続する通信回線は、上述のようなインターネット102に限られるものではなく、WAN(Wide Area Network)、公衆回線、PHSや携帯電話を用いた無線ネットワークなどあらゆる通信回線に適用することができる。
以下においては、キャッシュ制御装置をプロキシサーバ103上に構成した場合について説明する。従って、プロキシサーバ103をキャッシュ制御装置103と呼ぶ。
図2は、第1の実施の形態にかかるキャッシュ制御装置103の構成を示すブロック図である。同図に示すように、キャッシュ制御装置103は、通信部201と、キャッシュ記憶制御部210と、キャッシュ管理部220とを備えている。また、第1の実施の形態にかかるキャッシュ制御装置103は、HDD104にキャッシュ記憶部231を、RAM(Random Access Memory)240にキャッシュ管理情報記憶部241と、総キャッシュサイズ記憶部242とを備えている。
通信部201は、インターネット102およびLAN105を介して、それぞれWebサーバ101a〜101cおよびWebクライアント106a〜106cと接続され、HTTPプロトコルなどの所定の通信プロトコルに従って通信を行う。また、ローカルループバックや内外部バスを介して、コンピュータに接続されている別の装置やアプリケーション、OS(Operating System)などと通信する機能も有する。なお、通信プロトコルはHTTPプロトコルに限られるものではなく、Webシステムに使用されるものであればあらゆる通信プロトコルに対し本発明を適用することができる。
キャッシュ記憶制御部210は、キャッシュ記憶部231に対する登録処理、削除処理などを制御するもので、キャッシュ登録部211と、キャッシュ削除部212と、キャッシュ参照部213と、キャッシュ検索部214と、参照日時取得部215と、参照日時更新部216とから構成されている。
キャッシュ管理部220は、キャッシュ記憶制御部210と連動し、キャッシュ管理情報記憶部241に対する登録処理、削除処理などを制御するもので、管理情報登録部221と、管理情報移動部222と、管理情報削除部223と、削除判定部224と、グループ検索部225と、グループ削除部226と、グループ生成部227とから構成されている。
キャッシュ記憶部231は、キャッシュデータの実体を記憶する記憶部である。図3は、キャッシュ記憶部231の構造の一例を示す説明図である。同図に示すように、キャッシュ記憶部231は、キャッシュデータを一意に識別するためのキャッシュデータに固有の識別子と、キャッシュデータの実体であるキャッシュデータと、キャッシュデータの最新の参照日時を表す参照日時とを格納している。
キャッシュ登録部211は、キャッシュ記憶部231に対して、新規キャッシュデータの登録または既存キャッシュデータの更新を行う。キャッシュ削除部212は、キャッシュ記憶部231に記憶されたキャッシュデータの削除を行う。キャッシュ参照部213は、参照要求のあったキャッシュデータをキャッシュ記憶部231から取得する。キャッシュ検索部214は、上述のキャッシュ登録部211、キャッシュ削除部212、キャッシュ参照部213が処理の対象として指定したキャッシュデータの識別子に対応するキャッシュデータを、キャッシュ記憶部231から検索する処理を行う。
参照日時取得部215は、削除判定部224が指定したキャッシュデータの識別子に対応するキャッシュデータの参照日時を、キャッシュ記憶部231から取得する。参照日時更新部は、キャッシュ参照部213によりキャッシュデータが参照されるたびに、参照されたキャッシュデータの参照日時を更新する処理を行う。
キャッシュ管理情報記憶部241は、キャッシュデータの管理情報を記憶する記憶部である。図4は、キャッシュ管理情報記憶部241の構造の一例を示す説明図である。同図に示すように、キャッシュ管理情報記憶部241は、予め定められた時間間隔で分割されたグループごとに双方向連結リスト構造によりキャッシュデータの管理情報を格納している。また、グループ内では、生成日時、またはグループを移動したときはその移動日時の古い順にリストのヘッド401からリストのテイル402に並ぶようにキャッシュデータの管理情報を格納している。すなわち、リストのヘッド401側に削除優先度が高いデータがくるように管理情報が格納される。
また、同図に示すように、キャッシュデータの管理情報としては、キャッシュデータの識別子403と、キャッシュデータのサイズを表すキャッシュサイズ404とが格納されている。
同図においては、グループを分割する時間間隔を10分とし、参照日時が12:00から12:09である最も古いグループに、識別子Aのキャッシュデータの管理情報410と識別子Bのキャッシュデータの管理情報411とが、参照日時が19:30から19:39である最も新しいグループに識別子Cキャッシュデータの管理情報412が格納されている状態の例が示されている。
管理情報登録部221は、キャッシュ登録部211と連動し、新規に登録したキャッシュデータの管理情報をキャッシュ管理情報記憶部241に登録する処理を実行する。管理情報移動部222は、削除候補となったが削除判定部224により最終的に削除しないと判定されたキャッシュデータの管理情報を別のグループに移動する処理を行う。削除判定処理と管理情報移動処理の詳細は後述する。
管理情報削除部223は、キャッシュ削除部212により削除されたキャッシュデータに対応するキャッシュデータの管理情報を、キャッシュ管理情報記憶部241から削除する。
削除判定部224は、キャッシュ記憶部231の空き容量を増加させるためにキャッシュデータの削除が必要となったときに、キャッシュ管理情報記憶部241内に格納されたキャッシュデータの管理情報から、削除候補となるキャッシュデータの識別子を選択し、キャッシュ記憶部231に格納された参照日時を参照して、当該削除候補となるキャッシュデータを実際に削除するか否かを判定する。削除判定処理の詳細は後述する。
グループ検索部225は、上述の管理情報移動部222、管理情報削除部223、削除判定部224が処理の対象として指定したグループを、キャッシュ管理情報記憶部241から検索する処理を行う。
グループ削除部226は、管理情報削除部223によりキャッシュデータの管理情報が削除された結果、グループに属するキャッシュデータが存在しなくなったときに、当該グループをキャッシュ管理情報記憶部241から削除する処理を実行する。
グループ生成部227は、管理情報登録部221によるキャッシュデータの管理情報の新規登録時、または、管理情報移動部222によるキャッシュデータの管理情報の移動時に、登録対象または移動対象となるグループが存在しなかった場合に新規にグループを生成する処理を実行する。
総キャッシュサイズ記憶部242は、キャッシュ記憶部231に格納されているすべてのキャッシュデータのサイズの合計を表す総キャッシュサイズを記憶する記憶部である。キャッシュデータが登録、削除されるごとに、キャッシュ管理情報記憶部241に格納されているキャッシュサイズなどを参照して総キャッシュサイズが更新される。
次に、このように構成された第1の実施の形態にかかるキャッシュ制御装置103によるキャッシュ制御処理について説明する。図5は、第1の実施の形態にかかるキャッシュ制御装置103おいて、キャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。
まず、キャッシュ登録部211が、新規に登録するキャッシュデータの識別子と、キャッシュデータの実体と、参照日時として生成日時とを、キャッシュ記憶部231に登録する(ステップS501)。次に、管理情報登録部221が、グループ検索部225を利用して、日時の範囲が最新である最新グループを、キャッシュ管理情報記憶部241から取得する(ステップS502)。
管理情報登録部221は、取得した最新グループの日時の範囲と新規に登録するキャッシュデータの参照日時とを比較し、キャッシュデータの参照日時が取得した最新グループの日時の範囲内であるか否かを判断する(ステップS503)。範囲内である場合は(ステップS503:YES)、新規に登録するキャッシュデータの管理情報を、最新グループの最後尾に追加する(ステップS506)。
新規に登録するキャッシュデータの参照日時が取得した最新グループの日時の範囲内でない場合は(ステップS503:NO)、グループ生成部227が、当該参照日時を含む範囲を有するグループを新規に生成する(ステップS504)。その後、管理情報登録部221が、新規に生成したグループを最新グループと判断して(ステップS505)、新規に登録するキャッシュデータの管理情報を、最新グループの最後尾に追加する(ステップS506)。
次に、管理情報登録部221は、総キャッシュサイズ記憶部242に格納された総キャッシュサイズに、新規に登録したキャッシュデータのサイズを加算する(ステップS507)。管理情報登録部221は、加算した後の総キャッシュサイズが、予め定められたキャッシュ容量の上限値を超えたか否かを判断し(ステップS508)、超えている場合は(ステップS508:YES)、キャッシュデータの削除処理に遷移する(ステップS509)。キャッシュデータ削除処理の詳細については後述する。
加算した後の総キャッシュサイズがキャッシュ容量の上限値を超えていない場合は(ステップS508:NO)、キャッシュデータの新規登録処理が終了する。
次に、第1の実施の形態にかかるキャッシュ制御装置103によるキャッシュデータの参照処理について説明する。図6は、第1の実施の形態にかかるキャッシュ制御装置103おいて、既に登録されているキャッシュデータを参照する処理の全体の流れを示すフローチャートである。
まず、通信部201を介して参照の要求があったキャッシュデータの識別子を指定して、キャッシュ参照部がキャッシュ記憶部231から該当するキャッシュデータを取得する(ステップS601)。さらに、参照日時更新部216が、キャッシュ記憶部231内に格納されている該当するキャッシュデータの参照日時を更新する(ステップS602)。
従来のキャッシュ制御装置においては、キャッシュデータが参照されるたびにキャッシュ管理情報記憶部241に相当する管理情報記憶部内のキャッシュデータの管理情報を検索し、参照日時順にソートするなどの処理を実行していたが、上述のように、第1の実施の形態にかかるキャッシュ制御装置103においては、キャッシュデータの参照時にはキャッシュ記憶部231内の参照日時の更新処理のみを実行する。このため、参照時の処理負荷が軽減され、レスポンスを向上させることができる。
次に、第1の実施の形態にかかるキャッシュ制御装置103によるキャッシュデータの削除処理について説明する。図7は、第1の実施の形態にかかるキャッシュ制御装置103おいて、キャッシュ記憶部231の容量を確保するためにキャッシュデータを削除する処理の全体の流れを示すフローチャートである。
まず、キャッシュデータ削除の必要が生じた場合、削除判定部224が、キャッシュ管理情報記憶部241から、日時の範囲が最も古いグループを表す最古グループを取得する(ステップS701)。次に、取得した最古グループに格納されたキャッシュデータの管理情報のうち、最も削除優先度が高い管理情報、すなわち、リストの先頭(ヘッド)に存在する管理情報に格納されたキャッシュデータの識別子を取得する(ステップS702)。
削除判定部224は、取得したキャッシュデータの識別子を削除候補のキャッシュデータの識別子とし(ステップS703)、参照日時取得部215を利用して、当該削除候補のキャッシュデータの識別子に対応するキャッシュデータの参照日時を、キャッシュ記憶部231から取得する(ステップS704)。
次に、削除判定部224は、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内であるか否かを判断する(ステップS705)。範囲内である場合は(ステップS705:YES)、当該削除候補のキャッシュデータを実際に削除するため、以下の処理を実行する。
まず、キャッシュ削除部212が、当該削除候補のキャッシュデータの識別子に対応するキャッシュデータをキャッシュ記憶部231から削除する(ステップS706)。さらに、管理情報削除部223が、当該削除候補のキャッシュデータの識別子に対応する管理情報を、所属しているグループから削除する(ステップS707)。
次に、管理情報削除部223は、当該削除候補のキャッシュデータが所属していたグループが空か否か、すなわち、管理情報が全く存在しなくなったか否かを判断する(ステップS708)。当該削除候補のキャッシュデータが所属していたグループが空である場合は(ステップS708:YES)、グループ削除部226が、該当グループを削除する(ステップS709)。
当該削除候補のキャッシュデータが所属していたグループが空でない場合(ステップS708:NO)、または、上述の処理でグループを削除した後、管理情報削除部223が、総キャッシュサイズ記憶部242に格納された総キャッシュサイズから、削除したキャッシュデータのサイズを減算する(ステップS710)。
次に、管理情報削除部223は、総キャッシュサイズが、予め定められたキャッシュ容量の下限値より小さいか否かを判断し(ステップS711)、小さくない場合は(ステップS711:NO)、キャッシュデータ削除処理の先頭に戻って削除処理を繰り返す。
総キャッシュサイズが、予め定められたキャッシュ容量の下限値より小さい場合は(ステップS711:YES)、キャッシュデータの削除処理を終了する。
ステップS705において、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内でないと判断された場合は(ステップS705:NO)、当該削除候補のキャッシュデータは削除せず、参照日時に応じた適当なグループに移動するため、以下の処理を実行する。
まず、グループ検索部225が、移動すべきグループ、すなわち、取得した参照日時を日時の範囲に含むグループをキャッシュ管理情報記憶部241内から検索する(ステップS712)。検索結果から、管理情報移動部222は、移動先のグループが存在するか否かを判断し(ステップS713)、存在しない場合は(ステップS713:NO)、グループ生成部227が所得した参照日時を日時の範囲に含むグループを新規に生成し(ステップS714)、生成した新規グループを移動先のグループとする(ステップS715)。
移動先のグループが存在する場合(ステップS713:YES)、または、移動先のグループを新規に生成した後、管理情報移動部222は、移動先のグループの最後尾に削除候補とされたキャッシュデータの管理情報を移動する(ステップS716)。
ステップS712からステップS716までの処理では、キャッシュデータの管理情報を移動しただけでキャッシュデータの削除は実行されておらず、キャッシュ記憶部231の容量は変わっていない。そのため、さらに次の削除候補を取得し削除処理を実行するために、キャッシュデータ削除処理の先頭に戻り処理を繰り返す。
なお、第1の実施の形態にかかるキャッシュ制御装置103においては、総キャッシュサイズが予め定められた上限値を超えた場合にキャッシュデータ削除処理が開始され、総キャッシュサイズが予め定められた下限値を下回るまで削除処理を繰り返すように構成されている。しかし、キャッシュデータ削除処理の開始・終了条件はこれに限られるものではなく、キャッシュ記憶部231の容量を確保することのできる削除方法であれば、あらゆる削除方法に対し本発明を適用できる。例えば、新しいキャッシュデータを登録するのに必要な容量が不足する場合にキャッシュデータ削除処理を開始し、必要な容量を確保した時点で削除処理を終了するように構成してもよい。
また、第1の実施の形態にかかるキャッシュ制御装置103においては、上述のように、キャッシュデータの管理情報をグループの最後尾に移動する場合があるため、厳密に参照日時が古いものからキャッシュデータが削除されない場合が生じる。しかし、その誤差は予め定められた日時の範囲以下になるため、日時の範囲を適切に指定することで、その誤差がキャッシュヒット率を大幅に低下させるものとはならないようにすることができる。
例えば、キャッシュ記憶部231に保存可能なサイズと、閲覧するコンテンツの平均オブジェクトサイズと、平均アクセス頻度とから総キャッシュサイズがキャッシュ可能サイズに到達するのに要する時間を算出し、その時間を基に適当な日時の範囲を決定すればよい。また、実際にキャッシュ制御装置を運用して、キャッシュヒット率とスループットの向上効果を考慮し、日時の範囲を調整することで最適な値を決定することができる。
図8−1、図8―2は、第1の実施の形態にかかるキャッシュ制御装置103において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部241のキャッシュデータの格納の一例を示した説明図である。
図8−1は、キャッシュ記憶部231に記憶されているキャッシュデータの一例を示している。図8−2は、図8−1に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部241に記憶されているキャッシュ管理情報の一例を示している。なお、参照日時は時刻だけでなく日付も管理しているが、以下簡単のため、日付は同一とし時刻のみを用いて説明する。
図8−1において、キャッシュ記憶部231には、時刻12:03:06に生成された識別子Aのキャッシュデータ801と、時刻12:08:08に生成された識別子Bのキャッシュデータ802とが記憶されており、その後、キャッシュデータ802が時刻12:13:31に参照され、識別子Cのキャッシュデータ803が時刻19:39:43に生成されたことを示している。
図8−2におけるキャッシュ管理情報記憶部241は、グループに分割するための日時の範囲を10分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が12:00から12:09のグループであり、リストのヘッド811と、リストのテイル810の間に、識別子Aのキャッシュデータの管理情報812と、識別子Bのキャッシュデータの管理情報813とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ヘッド831とテイル830で表される参照日時が19:30から19:39のグループである。最古グループと最新グループの間には、例えば、ヘッド821およびテイル820で表されるリストに、参照日時が12:10から12:19のグループに属するキャッシュデータの管理情報が格納される。
識別子Cのキャッシュデータ803が生成された場合、キャッシュ登録部211が、キャッシュ記憶部231に識別子Cと、識別子Cに対応するキャッシュデータの実体と、参照日時19:39:43とを保存する。さらに、管理情報登録部221が、最新グループのテイル側に、識別子Cのキャッシュデータの管理情報832を登録する。
識別子Bのキャッシュデータ802が時刻12:13:31に参照された場合、参照日時更新部216が、キャッシュ記憶部231に格納されたキャッシュデータ802の参照日時を、12:13:31に更新する。
図9−1、図9―2は、第1の実施の形態にかかるキャッシュ制御装置103において、キャッシュデータが削除されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部241のキャッシュデータの格納の一例を示した説明図である。
図9−1、図9−2は、図8−1、図8−2において、識別子Bのキャッシュデータが参照され、識別子Cのキャッシュデータ803が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
まず、削除判定部224が、ヘッド911およびテイル910で表される最古グループのリストの先頭に存在する管理情報912の識別子Aを削除候補として取得する。さらに、参照日時取得部215が、識別子Aのキャッシュデータの参照日時12:03:06を、キャッシュ記憶部231から取得する。参照日時12:03:06は、最古グループの日時の範囲内であるので、削除判定部224は、識別子Aのキャッシュデータを削除すると判定する。
従って、キャッシュ削除部212により、キャッシュ記憶部231から識別子Aのキャッシュデータ901が削除され、管理情報削除部223により、キャッシュ管理情報記憶部241から、識別子Aのキャッシュデータの管理情報912が削除される。また、総キャッシュサイズから、識別子Aのキャッシュデータのサイズ9834が減算される。
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部224は、次の削除候補として管理情報913の識別子Bを取得する。さらに、参照日時取得部215が、識別子Bのキャッシュデータの参照日時12:13:31を、キャッシュ記憶部231から取得する。参照日時12:13:31は、最古グループの日時の範囲内ではないので、削除判定部224は、識別子Bのキャッシュデータを削除すると判定しない。
そこで、管理情報移動部222は、ヘッド921およびテイル920で表される参照日時が12:10から12:19のグループを、識別子Bのキャッシュデータの移動先として選択し、グループのリストの最後尾、すなわちリストのテイル920側に識別子Bのキャッシュデータの管理情報922を移動する。
このように、第1の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの参照時にはキャッシュ管理情報の検索およびソート処理を実行せず、キャッシュデータの削除時に削除優先度と参照日時を参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除することができる。これにより、参照時のキャッシュ制御装置の処理負荷を軽減させ、スループットを向上させることができる。
(第2の実施の形態)
第2の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報にさらにグループごとのキャッシュデータのサイズの合計を表すグループサイズを加えてキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と別個の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時とグループサイズを参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
図10は、第2の実施の形態にかかるキャッシュ制御装置1000の構成を示すブロック図である。同図に示すように、キャッシュ制御装置1000は、通信部201と、キャッシュ記憶制御部210と、キャッシュ管理部220とを備えている。また、第2の実施の形態にかかるキャッシュ制御装置1000は、HDD104にキャッシュ記憶部231を、RAM(Random Access Memory)1010にキャッシュ管理情報記憶部1011と、総キャッシュサイズ記憶部242とを備えている。
図10に示すように、第2の実施の形態においては、キャッシュ管理情報記憶部1011に記憶する項目としてグループサイズを追加したことが第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
キャッシュ管理情報記憶部1011は、キャッシュデータの管理情報として、キャッシュデータの識別子と、キャッシュデータのサイズを表すキャッシュサイズと、グループごとにグループに属するキャッシュデータのサイズの合計を表すグループサイズとを格納している。
図11は、キャッシュ管理情報記憶部1011の構造の一例を示す説明図である。同図に示すように、キャッシュ管理情報記憶部1011は、グループのテイルにグループサイズ1101を格納している。
次に、このように構成された第2の実施の形態にかかるキャッシュ制御装置1000によるキャッシュ制御処理について説明する。図12は、第2の実施の形態にかかるキャッシュ制御装置1000おいて、キャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。
ステップS1201からステップS1206までの、最新グループ検索処理、グループ生成処理、管理情報登録処理は、第1の実施の形態にかかるキャッシュ制御装置103におけるステップS501からステップS506までと同様の処理なので、その説明を省略する。
管理情報登録部221は、新規に登録するキャッシュデータの管理情報を、最新グループの最後尾に追加した後(ステップS1206)、追加したキャッシュデータのサイズを、追加したグループのグループサイズに加算する(ステップS1207)。このように、第2の実施の形態にかかるキャッシュ制御装置1000においては、キャッシュ管理情報記憶部1011にグループサイズを格納するようにしているため、キャッシュデータ登録時にグループサイズの加算処理が必要となる点が、第1の実施の形態にかかるキャッシュ制御装置103と異なっている。
ステップS1208からステップS1210までの、総キャッシュサイズ加算処理、キャッシュ容量チェック処理、キャッシュデータ削除処理は、第1の実施の形態にかかるキャッシュ制御装置103におけるステップS507からステップS509までと同様の処理なので、その説明を省略する。
図13は、第2の実施の形態にかかるキャッシュ制御装置1000おいて、キャッシュ記憶部231の容量を確保するためにキャッシュデータを削除する処理の全体の流れを示すフローチャートである。
ステップS1301からステップS1304までの、削除候補取得処理は、第1の実施の形態にかかるキャッシュ制御装置103におけるステップS701からステップS704までと同様の処理なので、その説明を省略する。
次に、削除判定部224は、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内であるか否かを判断する(ステップS1305)。範囲内である場合は(ステップS1305:YES)、当該削除候補のキャッシュデータを実際に削除するため、以下の処理を実行する。
まず、キャッシュ削除部212が、当該削除候補のキャッシュデータの識別子に対応するキャッシュデータをキャッシュ記憶部231から削除する(ステップS1306)。さらに、管理情報削除部223が、当該削除候補のキャッシュデータの識別子に対応する管理情報を、所属しているグループから削除する(ステップS1307)。
次に、管理情報削除部223は、削除したキャッシュデータが所属していたグループが空か否かを判断する(ステップS1308)。削除したキャッシュデータが所属していたグループが空である場合は(ステップS1308:YES)、グループ削除部226が、該当グループを削除し(ステップS1309)、ステップS1311の総キャッシュサイズ減算処理に遷移する。
削除したキャッシュデータが所属していたグループが空でない場合は(ステップS1308:NO)、管理情報削除部223は、当該グループのグループサイズから削除したキャッシュデータのサイズを減算し(ステップS1310)、ステップS1311の総キャッシュサイズ減算処理に遷移する。
ステップS1311からステップS1312までの、総キャッシュサイズ減算処理、キャッシュ容量チェック処理、は、第1の実施の形態にかかるキャッシュ制御装置103におけるステップS710からステップS711までと同様の処理なので、その説明を省略する。
ステップS1305において、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内でないと判断された場合は(ステップS1305:NO)、当該削除候補のキャッシュデータを削除するか、参照日時に応じた適当なグループに移動するかをグループサイズから判断するため、以下の処理を実行する。
まず、削除判定部224は、削除候補が所属するグループから、削除候補のキャッシュデータの参照日時を日時の範囲として含むグループ、すなわち、移動先の候補となるグループまでの全グループのグループサイズを加算する(ステップS1313)。
次に、削除判定部224は、加算したサイズが、総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下であるか否かを判断する(ステップS1314)。加算したサイズが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下である場合は(ステップS1314:YES)、管理情報削除部223は、削除候補のキャッシュデータの管理情報を削除する(ステップS1307)。
これは、移動先の候補となるグループまでの全てのグループに属するデータを削除したとしても、キャッシュ容量の下限値以下にならない、すなわち、移動先の候補となるグループに属する全管理情報も最終的に削除候補となるため、移動をせずに削除処理を実行するためである。特に、削除候補のキャッシュデータを移動先の候補となるグループに移動したとしても、当該キャッシュデータをさらに移動することはなく、必ず削除対象となることから、削除処理を効率化することができるという利点がある。
加算したサイズが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下でない場合は(ステップS1314:NO)、削除候補のキャッシュデータは削除せず、参照日時に応じた適当なグループに移動するため、以下の処理を実行する。
ステップS1315からステップS1319までの、移動先グループ検索処理、グループ存在チェック・生成処理、管理情報移動処理は、第1の実施の形態にかかるキャッシュ制御装置103におけるステップS712からステップS716までと同様の処理なので、その説明を省略する。
管理情報移動部222は、削除候補のキャッシュデータの管理情報を移動した後、移動元のグループのグループサイズから当該キャッシュデータのサイズを減算するとともに、移動先のグループのグループサイズに当該キャッシュデータのサイズを加算する(ステップS1320)。
ステップS1315からステップS1320までの処理では、キャッシュデータの管理情報を移動しただけでキャッシュデータの削除は実行されておらず、キャッシュ記憶部231の容量は変わっていない。そのため、さらに次の削除候補を取得し削除処理を実行するために、キャッシュデータ削除処理の先頭に戻り処理を繰り返す。
図14−1、図14―2は、第2の実施の形態にかかるキャッシュ制御装置1000において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部1011のキャッシュデータの格納の一例を示した説明図である。
図14−1は、キャッシュ記憶部231に記憶されているキャッシュデータの一例を示している。図14−2は、図14−1に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部241に記憶されているキャッシュ管理情報の一例を示している。
図14−1において、キャッシュ記憶部231には、時刻12:03:06に生成された識別子Aのキャッシュデータ1401と、時刻12:08:08に生成された識別子Bのキャッシュデータ1402とが記憶されており、その後、キャッシュデータ1402が時刻12:13:31に参照され、識別子Cのキャッシュデータ1403が時刻19:39:43に生成されたことを示している。
図14−2におけるキャッシュ管理情報記憶部1011は、グループに分割するための日時の範囲を10分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が12:00から12:09のグループであり、リストのヘッド1411と、リストのテイル1410の間に、識別子Aのキャッシュデータの管理情報1412と、識別子Bのキャッシュデータの管理情報1413とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ヘッド1431とテイル1430で表される参照日時が19:30から19:39のグループである。最古グループと最新グループの間には、例えば、ヘッド1421およびテイル1420で表されるリストに、参照日時が12:10から12:19のグループに属するキャッシュデータの管理情報が格納される。
識別子Cのキャッシュデータ1403が生成された場合、キャッシュ登録部211が、キャッシュ記憶部231に識別子Cと、識別子Cに対応するキャッシュデータの実体と、参照日時19:39:43とを保存する。さらに、管理情報登録部221が、最新グループのテイル側に、識別子Cのキャッシュデータの管理情報1432を登録する。
ここで、第2の実施の形態にかかるキャッシュ制御装置1000においては、登録したグループのグループサイズ1440に、登録したキャッシュデータのサイズを加算する点が、第1の実施の形態にかかるキャッシュ制御装置103と異なる。すなわち、登録したグループのグループサイズである913245に、登録したキャッシュデータのサイズ94632が加算され、グループサイズ1440の値が1007877に更新される。
識別子Bのキャッシュデータ1402が時刻12:13:31に参照された場合、参照日時更新部216が、キャッシュ記憶部231に格納されたキャッシュデータ1402の参照日時を、12:13:31に更新する。
図15−1、図15―2は、第2の実施の形態にかかるキャッシュ制御装置1000において、キャッシュデータが削除されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部1011のキャッシュデータの格納の一例を示した説明図である。
図15−1、図15−2は、図14−1、図14−2において、識別子Bのキャッシュデータが参照され、識別子Cのキャッシュデータ1403が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
まず、削除判定部224が、ヘッド1511およびテイル1510で表される最古グループの先頭に存在する管理情報1512の識別子Aを削除候補として取得する。さらに、参照日時取得部215が、識別子Aのキャッシュデータの参照日時12:03:06を、キャッシュ記憶部231から取得する。参照日時12:03:06は、最古グループの日時の範囲内であるので、削除判定部224は、識別子Aのキャッシュデータを削除すると判定する。
従って、キャッシュ削除部212により、キャッシュ記憶部231から識別子Aのキャッシュデータ1501が削除され、管理情報削除部223により、キャッシュ管理情報記憶部241から、識別子Aのキャッシュデータの管理情報1512が削除される。また、総キャッシュサイズから、識別子Aのキャッシュデータのサイズ9834が減算される。
ここで、第2の実施の形態にかかるキャッシュ制御装置1000においては、最古グループのグループサイズ1540から、識別子Aのキャッシュデータのサイズを減算する点が、第1の実施の形態にかかるキャッシュ制御装置103と異なる。すなわち、最古グループのグループサイズである139732から、削除した識別子Aのキャッシュデータのサイズ9834が減算され、グループサイズ1540の値が129898に更新される。
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部224は、次の削除候補として管理情報1513の識別子Bを取得する。さらに、参照日時取得部215が、識別子Bのキャッシュデータの参照日時12:13:31を、キャッシュ記憶部231から取得する。参照日時12:13:31は、最古グループの日時の範囲内ではないので、削除判定部224は、識別子Bのキャッシュデータを削除すると判定しない。
第2の実施の形態にかかるキャッシュ制御装置103においては、識別子Bのキャッシュデータの管理情報をすぐに移動せず、移動先の候補となるグループのグループサイズ等から、移動せずに当該データを削除するか否か判定する点が、第1の実施の形態にかかるキャッシュ制御装置103と異なる。
すなわち、移動先の候補となるグループまでの全グループのグループサイズ1540、1541を加算し、これが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下である場合には当該キャッシュデータを移動せずに削除する。例えば、総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値が250000であったとすると、グループサイズ1540の値139732と、グループサイズ1541の値96492とを加算した値である236224は当該減算した値以下であるため、識別子Bのキャッシュデータ1502および識別子Bのキャッシュデータの管理情報は移動せずに削除される。
このように、第2の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの削除時に削除優先度と参照日時に加え、グループサイズを参照して削除するキャッシュデータを決定することができる。これにより、キャッシュデータ削除時の管理情報の移動回数を低減させ、スループットを向上させることができる。
(第3の実施の形態)
第3の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除優先度順にキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と同一の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時を参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
図16は、第3の実施の形態にかかるキャッシュ制御装置1600の構成を示すブロック図である。同図に示すように、キャッシュ制御装置1600は、通信部201と、キャッシュ記憶制御部210と、キャッシュ管理部220とを備えている。また、第3の実施の形態にかかるキャッシュ制御装置1600は、HDD1610にキャッシュ記憶部231と、キャッシュ管理情報記憶部1611と、総キャッシュサイズ記憶部1612とを備えている。
図16に示すように、第3の実施の形態においては、キャッシュ管理情報記憶部1611および総キャッシュサイズ記憶部1612を、キャッシュ記憶部231と同一の記憶装置であるHDD1610内に格納したことが、第1の実施の形態と異なっている。その他の構成および機能は、第1の実施の形態にかかる構成を表すブロック図である図2と同様であるので、同一符号を付し、ここでの説明は省略する。
図17は、キャッシュ管理情報記憶部1611の構造の一例を示す説明図である。同図に示すように、キャッシュ管理情報記憶部1611は、予め定められた時間間隔で分割されたグループごとに、日時をファイル名としたファイル1701a〜1701cによりキャッシュデータの管理情報を格納している。また、グループ内では、生成日時、またはグループを移動したときはその移動日時の古い順にファイルの先頭にくるようにキャッシュデータの管理情報を格納している。すなわち、ファイルの先頭側に削除優先度が高いデータがくるように管理情報が格納される。
また、同図に示すように、キャッシュデータの管理情報としては、キャッシュデータの識別子1702と、キャッシュデータのサイズを表すキャッシュサイズ1703とが格納されている。このように、第3の実施の形態にかかるキャッシュ制御装置1600においては、キャッシュデータの管理情報を一般的なファイルシステムを利用して記憶する点が、第1および第2の実施の形態にかかるキャッシュ制御装置と異なっている。
同図においては、グループを分割する時間間隔を10分とし、参照日時が12:00から12:09である最も古いグループに、識別子Aのキャッシュデータの管理情報1704と識別子Bのキャッシュデータの管理情報1705とが、参照日時が19:30から19:39である最も新しいグループに識別子Cキャッシュデータの管理情報1706が格納されている状態の例が示されている。
図18−1、図18―2は、第3の実施の形態にかかるキャッシュ制御装置1600において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部1611のキャッシュデータの格納の一例を示した説明図である。
図18−1は、キャッシュ記憶部231に記憶されているキャッシュデータの一例を示している。図18−2は、図18−1に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部1611に記憶されているキャッシュ管理情報の一例を示している。
図18−1において、キャッシュ記憶部231には、時刻12:03:06に生成された識別子Aのキャッシュデータ1801と、時刻12:08:08に生成された識別子Bのキャッシュデータ1802とが記憶されており、その後、キャッシュデータ1802が時刻12:13:31に参照され、識別子Cのキャッシュデータ1803が時刻19:39:43に生成されたことを示している。
図18−2におけるキャッシュ管理情報記憶部241は、グループに分割するための日時の範囲を10分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が12:00から12:09のグループ1811であり、ファイル名が“2004/08/28_12:00”で表されている。グループ1811の中には、識別子Aのキャッシュデータの管理情報1814と、識別子Bのキャッシュデータの管理情報1815とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ファイル名が“2004/08/28_19:30”で表される参照日時が19:30から19:39のグループ1813である。最古グループと最新グループの間には、例えば、ファイル名が“2004/08/28_12:10”で表される、参照日時が12:10から12:19のグループ1812に属するキャッシュデータの管理情報が格納される。
識別子Cのキャッシュデータ1803が生成された場合、キャッシュ登録部211が、キャッシュ記憶部231に識別子Cと、識別子Cに対応するキャッシュデータの実体と、参照日時19:39:43とを保存する。さらに、管理情報登録部221が、最新のグループ1813のファイルの最後尾に、識別子Cのキャッシュデータの管理情報1816を登録する。
識別子Bのキャッシュデータ1802が時刻12:13:31に参照された場合、参照日時更新部216が、キャッシュ記憶部231に格納されたキャッシュデータ1802の参照日時を、12:13:31に更新する。
図19−1、図19―2は、第3の実施の形態にかかるキャッシュ制御装置1600において、キャッシュデータが削除されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部1611のキャッシュデータの格納の一例を示した説明図である。
図19−1、図19−2は、図18−1、図18−2において、識別子Bのキャッシュデータが参照され、識別子Cのキャッシュデータ1803が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
まず、削除判定部224が、ファイル名“2004/08/28_12:00”で表される最古グループ1911の先頭に存在する管理情報1913の識別子Aを削除候補として取得する。さらに、参照日時取得部215が、識別子Aのキャッシュデータの参照日時12:03:06を、キャッシュ記憶部231から取得する。参照日時12:03:06は、最古グループの日時の範囲内であるので、削除判定部224は、識別子Aのキャッシュデータを削除すると判定する。
従って、キャッシュ削除部212により、キャッシュ記憶部231から識別子Aのキャッシュデータ1901が削除され、管理情報削除部223により、キャッシュ管理情報記憶部241から、識別子Aのキャッシュデータの管理情報1913が削除される。また、総キャッシュサイズから、識別子Aのキャッシュデータのサイズ9834が減算される。
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部224は、次の削除候補として管理情報1914の識別子Bを取得する。さらに、参照日時取得部215が、識別子Bのキャッシュデータの参照日時12:13:31を、キャッシュ記憶部231から取得する。参照日時12:13:31は、最古グループの日時の範囲内ではないので、削除判定部224は、識別子Bのキャッシュデータを削除すると判定しない。
そこで、管理情報移動部222は、ファイル名“2004/08/28_12:10”で表される参照日時が12:10から12:19のグループ1912を、識別子Bのキャッシュデータの移動先として選択し、グループの最後尾に識別子Bのキャッシュデータの管理情報1915を移動する。
このように、第3の実施の形態にかかるキャッシュ制御装置は、容量の問題等によりキャッシュ記憶部とキャッシュ管理情報記憶部を同一の記憶媒体上に保存する場合においても、参照時のキャッシュ制御装置の処理負荷を軽減させ、スループットを向上させることができる。また、一般的なファイルシステムを利用してキャッシュ管理情報を管理しているため、RAMをファイルシステムとして使用する構成においても本発明を適用することができる。従って、必要に応じてキャッシュ記憶部とキャッシュ管理情報記憶部を別個の記憶媒体上に保存するように容易に構成を変更することができるという利点がある。
(第4の実施の形態)
第4の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報にさらにグループごとのキャッシュデータのサイズの合計を表すグループサイズを加えてキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と同一の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時とグループサイズを参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
図20は、第4の実施の形態にかかるキャッシュ制御装置2000の構成を示すブロック図である。同図に示すように、キャッシュ制御装置2000は、通信部201と、キャッシュ記憶制御部210と、キャッシュ管理部220とを備えている。また、第4の実施の形態にかかるキャッシュ制御装置1600は、HDD2010にキャッシュ記憶部231と、キャッシュ管理情報記憶部2011と、総キャッシュサイズ記憶部1612とを備えている。
図20に示すように、第4の実施の形態においては、キャッシュ管理情報記憶部2011に記憶する項目としてグループサイズを追加したことが第3の実施の形態と異なっている。その他の構成および機能は、第3の実施の形態にかかる構成を表すブロック図である図16と同様であるので、同一符号を付し、ここでの説明は省略する。
また、キャッシュ管理情報記憶部2011は、第2の実施の形態におけるキャッシュ管理情報記憶部1011と同様に、キャッシュデータの管理情報として、キャッシュデータの識別子と、キャッシュデータのサイズを表すキャッシュサイズと、グループごとにグループに属するキャッシュデータのサイズの合計を表すグループサイズとを格納している。
図21−1、図21―2は、第4の実施の形態にかかるキャッシュ制御装置2000において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部2011のキャッシュデータの格納の一例を示した説明図である。
図21−1は、キャッシュ記憶部231に記憶されているキャッシュデータの一例を示している。図21−2は、図21−1に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部241に記憶されているキャッシュ管理情報の一例を示している。
図21−1において、キャッシュ記憶部231には、時刻12:03:06に生成された識別子Aのキャッシュデータ2101と、時刻12:08:08に生成された識別子Bのキャッシュデータ2102とが記憶されており、その後、キャッシュデータ2102が時刻12:13:31に参照され、識別子Cのキャッシュデータ2103が時刻19:39:43に生成されたことを示している。
図21−2におけるキャッシュ管理情報記憶部2011は、グループに分割するための日時の範囲を10分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が12:00から12:09のグループ2111であり、ファイル名が“2004/08/28_12:00”で表されている。グループ2111の中には、識別子Aのキャッシュデータの管理情報2114と、識別子Bのキャッシュデータの管理情報2115とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ファイル名が“2004/08/28_19:30”で表される参照日時が19:30から19:39のグループ2113である。最古グループと最新グループの間には、例えば、ファイル名が“2004/08/28_12:10”で表される、参照日時が12:10から12:19のグループ2112に属するキャッシュデータの管理情報が格納される。
識別子Cのキャッシュデータ2103が生成された場合、キャッシュ登録部211が、キャッシュ記憶部231に識別子Cと、識別子Cに対応するキャッシュデータの実体と、参照日時19:39:43とを保存する。さらに、管理情報登録部221が、最新グループのテイル側に、識別子Cのキャッシュデータの管理情報2116を登録する。
ここで、第4の実施の形態にかかるキャッシュ制御装置2000においては、登録したグループのグループサイズ2120に、登録したキャッシュデータのサイズを加算する点が、第3の実施の形態にかかるキャッシュ制御装置1600と異なる。すなわち、登録したグループのグループサイズである913245に、登録したキャッシュデータのサイズ94632が加算され、グループサイズ2120の値が1007877に更新される。
識別子Bのキャッシュデータ2102が時刻12:13:31に参照された場合、参照日時更新部216が、キャッシュ記憶部231に格納されたキャッシュデータ2102の参照日時を、12:13:31に更新する。
図22−1、図22―2は、第4の実施の形態にかかるキャッシュ制御装置2000において、キャッシュデータが削除されるときのキャッシュ記憶部231とキャッシュ管理情報記憶部2011のキャッシュデータの格納の一例を示した説明図である。
図22−1、図22−2は、図21−1、図21−2において、識別子Bのキャッシュデータが参照され、識別子Cのキャッシュデータ2103が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
まず、削除判定部224が、ファイル名“2004/08/28_12:00”で表される最古グループ2211の先頭に存在する管理情報2212の識別子Aを削除候補として取得する。さらに、参照日時取得部215が、識別子Aのキャッシュデータの参照日時12:03:06を、キャッシュ記憶部231から取得する。参照日時12:03:06は、最古グループの日時の範囲内であるので、削除判定部224は、識別子Aのキャッシュデータを削除すると判定する。
従って、キャッシュ削除部212により、キャッシュ記憶部231から識別子Aのキャッシュデータ2201が削除され、管理情報削除部223により、キャッシュ管理情報記憶部241から、識別子Aのキャッシュデータの管理情報2212が削除される。また、総キャッシュサイズから、識別子Aのキャッシュデータのサイズ9834が減算される。
ここで、第4の実施の形態にかかるキャッシュ制御装置2000においては、最古グループのグループサイズ2220から、識別子Aのキャッシュデータのサイズを減算する点が、第3の実施の形態にかかるキャッシュ制御装置1600と異なる。すなわち、最古グループのグループサイズである139732から、削除した識別子Aのキャッシュデータのサイズ9834が減算され、グループサイズ2220の値が129898に更新される。
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部224は、次の削除候補として管理情報2213の識別子Bを取得する。さらに、参照日時取得部215が、識別子Bのキャッシュデータの参照日時12:13:31を、キャッシュ記憶部231から取得する。参照日時12:13:31は、最古グループの日時の範囲内ではないので、削除判定部224は、識別子Bのキャッシュデータを削除すると判定しない。
第4の実施の形態にかかるキャッシュ制御装置103においては、識別子Bのキャッシュデータの管理情報をすぐに移動せず、移動先の候補となるグループのグループサイズ等から、移動せずに当該データを削除するか否か判定する点が、第3の実施の形態にかかるキャッシュ制御装置1600と異なる。
すなわち、移動先の候補となるグループまでの全グループのグループサイズ2220、2221を加算し、これが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下である場合には当該キャッシュデータを移動せずに削除する。例えば、総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値が250000であったとすると、グループサイズ2220の値139732と、グループサイズ2221の値96492とを加算した値である236224は当該減算した値以下であるため、識別子Bのキャッシュデータおよび識別子Bのキャッシュデータの管理情報は移動せずに削除される。
このように、第4の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの削除時に削除優先度と参照日時に加え、グループサイズを参照して削除するキャッシュデータを決定することができる。これにより、キャッシュデータ削除時の管理情報の移動回数を低減させ、スループットを向上させることができる。また、容量の問題等によりキャッシュ記憶部とキャッシュ管理情報記憶部を同一の記憶媒体上に保存する場合においても、参照時のキャッシュ制御装置の処理負荷を軽減させ、スループットを向上させることができる。さらに、一般的なファイルシステムを利用してキャッシュ管理情報を管理しているため、RAMをファイルシステムとして使用する構成においても本発明を適用することができる。従って、必要に応じてキャッシュ記憶部とキャッシュ管理情報記憶部を別個の記憶媒体上に保存するように容易に構成を変更することができるという利点がある。
第1〜第4の実施の形態にかかるキャッシュ制御装置は、CPUなどの制御装置と、ROM(Read Only Memory)やRAMなどの記憶装置と、HDD、CDドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
第1〜第4の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、第1〜第4の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、第1〜第4の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、第1〜第4の実施の形態のキャッシュ制御プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1〜第4の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムは、上述した各部(キャッシュ登録部、キャッシュ削除部、キャッシュ参照部、キャッシュ検索部、参照日時取得部、参照日時更新部、管理情報登録部、管理情報移動部、管理情報削除部、削除判定部、グループ検索部、グループ削除部、グループ生成部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記憶媒体からキャッシュ制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、キャッシュ登録部、キャッシュ削除部、キャッシュ参照部、キャッシュ検索部、参照日時取得部、参照日時更新部、管理情報登録部、管理情報移動部、管理情報削除部、削除判定部、グループ検索部、グループ削除部、グループ生成部が主記憶装置上に生成されるようになっている。
以上のように、本発明にかかるキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムは、キャッシュデータの実体とキャッシュデータの管理情報を分けて管理し、参照日時によって削除するキャッシュデータを決定するキャッシュ制御システムに適している。
キャッシュ制御装置が適用されるネットワークシステムの全体構成を示す説明図である。 第1の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。 キャッシュ記憶部の構造の一例を示す説明図である。 キャッシュ管理情報記憶部の構造の一例を示す説明図である。 第1の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。 第1の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを参照する処理の全体の流れを示すフローチャートである。 第1の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを削除する処理の全体の流れを示すフローチャートである。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。 第2の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。 キャッシュ管理情報記憶部の構造の一例を示す説明図である。 第2の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。 第2の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを削除する処理の全体の流れを示すフローチャートである。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。 第3の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。 キャッシュ管理情報記憶部の構造の一例を示す説明図である。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。 第4の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。 キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
符号の説明
101a、101b、101c Webサーバ
102 インターネット
103 キャッシュ制御装置(プロキシサーバ)
104 HDD
105 LAN
106a、106b、106c Webクライアント
107a、107b、107c HDD
201 通信部
210 キャッシュ記憶制御部
211 キャッシュ登録部
212 キャッシュ削除部
213 キャッシュ参照部
214 キャッシュ検索部
215 参照日時取得部
216 参照日時更新部
220 キャッシュ管理部
221 管理情報登録部
222 管理情報移動部
223 管理情報削除部
224 削除判定部
225 グループ検索部
226 グループ削除部
227 グループ生成部
231 キャッシュ記憶部
240 RAM
241 キャッシュ管理情報記憶部
242 総キャッシュサイズ記憶部
401 ヘッド
402 テイル
403 識別子
404 キャッシュサイズ
410、411、412 管理情報
801、802、803 キャッシュデータ
810、820、830 テイル
811、821、831 ヘッド
812、813、832 管理情報
901 キャッシュデータ
910、920 テイル
911、921 ヘッド
912、913、922 管理情報
1000 キャッシュ制御装置
1010 RAM
1011 キャッシュ管理情報記憶部
1101 グループサイズ
1401、1402、1403 キャッシュデータ
1410、1420、1430 テイル
1411、1421、1431 ヘッド
1412、1413、1432 管理情報
1440 グループサイズ
1501、1502 キャッシュデータ
1510 テイル
1511 ヘッド
1512、1513 管理情報
1540、1541 グループサイズ
1600 キャッシュ制御装置
1610 HDD
1611 キャッシュ管理情報記憶部
1612 総キャッシュサイズ記憶部
1701a、1701b、1701c ファイル
1702 識別子
1703 キャッシュサイズ
1704、1705、1706 管理情報
1801、1802、1803 キャッシュデータ
1811、1812、1813 グループ
1814、1815、1816 管理情報
1901 キャッシュデータ
1911 最古グループ
1912 グループ
1913、1914、1915 管理情報
2000 キャッシュ制御装置
2010 HDD
2011 キャッシュ管理情報記憶部
2101、2102、2103 キャッシュデータ
2111、2112、2113 グループ
2114、2115、2116 管理情報
2120 グループサイズ
2201 キャッシュデータ
2211 最古グループ
2212、2213 管理情報
2220、2221 グループサイズ

Claims (8)

  1. アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置において、
    前記キャッシュデータを新規に登録するときに前記キャッシュデータの生成日時を参照日時として、前記キャッシュデータと前記キャッシュデータに固有の識別子とに対応づけてキャッシュ記憶部に記憶するキャッシュ登録手段と、
    前記キャッシュデータが参照されるたびに前記参照日時を更新する参照日時更新手段と、
    前記識別子を含む前記キャッシュデータの管理情報を前記参照日時に基づいて予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順にキャッシュ管理情報記憶部に記憶する管理情報登録手段と、
    前記キャッシュ管理情報記憶から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する前記キャッシュデータの参照日時を前記キャッシュ記憶から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定し、取得した参照日時が前記最古グループの日時の範囲に含まれる場合に前記削除候補識別子に対応する前記キャッシュデータを削除すると判定する削除判定手段と、
    前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記キャッシュデータを前記キャッシュ記憶部から削除するキャッシュ削除手段と、
    前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記管理情報を前記キャッシュ管理情報記憶部から削除する管理情報削除手段と、
    を備えたことを特徴とするキャッシュ制御装置。
  2. 前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定した場合に前記削除候補識別子に対応する前記管理情報を、前記取得した参照日時を含む日時の範囲を有する前記グループに移動する管理情報移動手段をさらに備えたこと、
    を特徴とする請求項1に記載のキャッシュ制御装置。
  3. 前記管理情報登録手段は、前記識別子を含む前記管理情報を、予め定められた日時の範囲ごとにグループに分けて、前記キャッシュデータの生成日時または前記管理情報移動手段が前記グループを移動した日時が古い順に高い削除優先度でキャッシュ管理情報記憶部に記憶することを特徴とする請求項に記載のキャッシュ制御装置。
  4. 前記管理情報登録手段は、前記グループごとに前記グループに属する前記キャッシュデータのサイズの合計をグループサイズとしてさらにキャッシュ管理情報記憶部に記憶し、
    前記削除判定手段は、前記取得した参照日時が前記最古グループの日時の範囲に含まれる場合、または前記取得した参照日時が前記最古グループの日時の範囲に含まれない場合であって、前記最古グループから前記取得した参照日時を含む日時の範囲を有する前記グループまでの全グループの前記グループサイズの合計が、予め算出した削除が必要なデータサイズより小さい場合に前記削除候補識別子に対応する前記キャッシュデータは前記グループの移動を行わずに削除すると判定することを特徴とする請求項1〜3のいずれか1つに記載のキャッシュ制御装置。
  5. 前記キャッシュ記憶と前記キャッシュ管理情報記憶とを、単一の記憶媒体に記憶することを特徴とする請求項1〜のいずれか1つに記載のキャッシュ制御装置。
  6. 前記キャッシュ記憶と前記キャッシュ管理情報記憶とを、別個の記憶媒体に記憶することを特徴とする請求項1〜のいずれか1つに記載のキャッシュ制御装置。
  7. アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置で実行されるキャッシュ制御方法において、
    前記データへアクセスするとき、
    前記キャッシュデータを新規に登録するときに前記キャッシュデータの生成日時を参照日時として、前記キャッシュデータと前記キャッシュデータに固有の識別子とに対応づけてキャッシュ記憶部に記憶するキャッシュ登録ステップと、
    前記キャッシュデータが参照されるたびに前記参照日時を更新する参照日時更新ステップと、
    前記識別子を含む前記キャッシュデータの管理情報を前記参照日時に基づいて予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順にキャッシュ管理情報記憶部に記憶する管理情報登録ステップとを有し、
    前記キャッシュデータを削除するとき、
    前記キャッシュ管理情報記憶から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する前記キャッシュデータの参照日時を前記キャッシュ記憶から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定し、取得した参照日時が前記最古グループの日時の範囲に含まれる場合に前記削除候補識別子に対応する前記キャッシュデータを削除すると判定する削除判定ステップと、
    前記削除判定ステップが前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記キャッシュデータを前記キャッシュ記憶部から削除するキャッシュ削除ステップと、
    前記削除判定ステップが前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記管理情報を前記キャッシュ管理情報記憶部から削除する管理情報削除ステップと、
    有することを特徴とするキャッシュ制御方法。
  8. コンピュータを、
    キャッシュデータを新規に登録するときに前記キャッシュデータの生成日時を参照日時として、前記キャッシュデータと前記キャッシュデータに固有の識別子とに対応づけてキャッシュ記憶部に記憶するキャッシュ登録手段と、
    前記キャッシュデータが参照されるたびに前記参照日時を更新する参照日時更新手段と、
    前記識別子を含む前記キャッシュデータの管理情報を前記参照日時に基づいて予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順にキャッシュ管理情報記憶部に記憶する管理情報登録手段と、
    前記キャッシュ管理情報記憶から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する前記キャッシュデータの参照日時を前記キャッシュ記憶から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定し、取得した参照日時が前記最古グループの日時の範囲に含まれる場合に前記削除候補識別子に対応する前記キャッシュデータを削除すると判定する削除判定手段と、
    前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記キャッシュデータを前記キャッシュ記憶部から削除するキャッシュ削除手段と、
    前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除すると判定した場合に前記削除候補識別子に対応する前記管理情報を前記キャッシュ管理情報記憶部から削除する管理情報削除手段と、
    として機能させるためのキャッシュ制御プログラム。
JP2004377973A 2004-12-27 2004-12-27 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム Expired - Fee Related JP4331101B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004377973A JP4331101B2 (ja) 2004-12-27 2004-12-27 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004377973A JP4331101B2 (ja) 2004-12-27 2004-12-27 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Publications (2)

Publication Number Publication Date
JP2006185169A JP2006185169A (ja) 2006-07-13
JP4331101B2 true JP4331101B2 (ja) 2009-09-16

Family

ID=36738241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004377973A Expired - Fee Related JP4331101B2 (ja) 2004-12-27 2004-12-27 キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム

Country Status (1)

Country Link
JP (1) JP4331101B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090013051A1 (en) 2007-07-07 2009-01-08 Qualcomm Incorporated Method for transfer of information related to targeted content messages through a proxy server
US9392074B2 (en) 2007-07-07 2016-07-12 Qualcomm Incorporated User profile generation architecture for mobile content-message targeting
US20090124241A1 (en) 2007-11-14 2009-05-14 Qualcomm Incorporated Method and system for user profile match indication in a mobile environment
US9391789B2 (en) 2007-12-14 2016-07-12 Qualcomm Incorporated Method and system for multi-level distribution information cache management in a mobile environment
KR100960111B1 (ko) * 2008-07-30 2010-05-27 한국전자통신연구원 리버스 캐싱 프록시를 이용한 웹 기반의 역추적 시스템
JP5035194B2 (ja) * 2008-09-25 2012-09-26 カシオ計算機株式会社 サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム
JP5483561B2 (ja) * 2010-02-25 2014-05-07 楽天株式会社 ストレージ装置、サーバ装置、ストレージシステム、データベース装置、データの提供方法、及び、プログラム
US8712984B2 (en) * 2010-03-04 2014-04-29 Microsoft Corporation Buffer pool extension for database server
US9235531B2 (en) 2010-03-04 2016-01-12 Microsoft Technology Licensing, Llc Multi-level buffer pool extensions
JP5482718B2 (ja) 2011-04-15 2014-05-07 株式会社デンソー エンジン適合装置
JP6160710B2 (ja) 2013-12-25 2017-07-12 日本電気株式会社 キャッシュ管理装置、キャッシュ管理方法、プログラム
JP6421676B2 (ja) * 2015-03-30 2018-11-14 富士通株式会社 コンテンツ取得プログラム、装置、及び方法
JP6576878B2 (ja) * 2016-05-20 2019-09-18 株式会社アクセル 遊技機
CN113094392A (zh) * 2020-01-09 2021-07-09 北京沃东天骏信息技术有限公司 数据缓存的方法和装置

Also Published As

Publication number Publication date
JP2006185169A (ja) 2006-07-13

Similar Documents

Publication Publication Date Title
US11675811B2 (en) Storage constrained synchronization of shared content items
JP4331101B2 (ja) キャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラム
US8370315B1 (en) System and method for high performance deduplication indexing
US9600488B2 (en) Heat indices for file systems and block storage
US9442997B2 (en) Idle state triggered constrained synchronization of shared content items
US20070226320A1 (en) Device, System and Method for Storage and Access of Computer Files
US7454405B2 (en) File management program, file management process, and file management apparatus
US10360235B2 (en) Storage constrained synchronization engine
JP5485866B2 (ja) 情報管理方法、及び情報提供用計算機
US20190205056A1 (en) Transparent data movement between a private cloud and storage ecosystem and another storage system
US20100082547A1 (en) Log Structured Content Addressable Deduplicating Storage
US9413824B1 (en) Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
US10846303B2 (en) Storage constrained synchronization engine
US20100115061A1 (en) Server system, server apparatus, program and method
KR102064696B1 (ko) 공유 콘텐츠 항목의 저장소 제약된 동기화
CN109522283A (zh) 一种重复数据删除方法及系统
US11562000B2 (en) Storage constrained synchronization engine
JP2022020650A (ja) ストレージ制約付きの同期エンジン
US20230185860A1 (en) Queue Optimization in Cloud Computing
Tchaye-Kondi et al. Hadoop perfect file: a fast access container for small files with direct in disc metadata access
JPH11175539A (ja) 代理情報取得方法及びシステム及び代理情報取得プログラムを格納した記憶媒体
KR100952599B1 (ko) 로컬디스크를 캐쉬로 이용하는 사용자 컴퓨터, 그를이용하는 방법 및 하이브리드 네트워크 스토리지 시스템
JP2006139588A (ja) ファイル管理システム、ファイル削除方法及びプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090403

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: 20090526

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090617

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

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120626

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130626

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees