(57)【要約】【課題】参照時のレスポンスを向上することのできるキャッシュ制御装置を提供する。【解決手段】キャッシュデータと識別子と参照日時とを対応づけて記憶するキャッシュ記憶部２３１と、キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除優先度順に記憶するキャッシュ管理情報記憶部２４１と、キャッシュデータを削除するとき、最古グループ内の最も削除優先度の高いデータを削除候補とし、削除候補のキャッシュデータの参照日時を前記キャッシュ記憶部２３１から取得し、取得した参照日時が最古グループの日時の範囲に含まれない場合に削除候補のキャッシュデータを削除しないと判定する削除判定部２２４と、削除候補のキャッシュデータを削除しないと判定した場合に削除候補の管理情報を、取得した参照日時を含む日時の範囲を有するグループに移動する管理情報移動部２２２とを備えた。【選択図】        図２
2006185169.tif 000002
【特許請求の範囲】
【請求項１】
アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置において、
前記キャッシュデータと前記キャッシュデータに固有の識別子と前記キャッシュデータが参照されたときに更新される前記キャッシュデータの参照日時とを対応づけて記憶するキャッシュ記憶手段と、
前記識別子を含む前記キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順に記憶するキャッシュ管理情報記憶手段と、
前記キャッシュデータを削除するときに、前記キャッシュ管理情報記憶手段から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する前記キャッシュデータの参照日時を前記キャッシュ記憶手段から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定する削除判定手段と、
前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定した場合に前記削除候補識別子に対応する前記管理情報を、前記取得した参照日時を含む日時の範囲を有する前記グループに移動する管理情報移動手段と、
を備えたことを特徴とするキャッシュ制御装置。
【請求項２】
前記キャッシュ管理情報記憶手段は、前記識別子を含む前記管理情報を、予め定められた日時の範囲ごとにグループに分けて、前記キャッシュデータの生成日時または前記管理情報移動手段が前記グループを移動した日時が古い順に高い削除優先度で記憶することを特徴とする請求項１に記載のキャッシュ制御装置。
【請求項３】
前記キャッシュ管理情報記憶手段は、前記グループごとに前記グループに属する前記キャッシュデータのサイズの合計をグループサイズとしてさらに記憶し、
前記削除判定手段は、前記取得した参照日時が前記最古グループの日時の範囲に含まれる場合、または前記取得した参照日時が前記最古グループの日時の範囲に含まれない場合であって、前記最古グループから前記取得した参照日時を含む日時の範囲を有する前記グループまでの全グループの前記グループサイズの合計が、予め算出した削除が必要なデータサイズより小さい場合に前記削除候補識別子に対応する前記キャッシュデータは前記グループの移動を行わずに削除すると判定することを特徴とする請求項１または２に記載のキャッシュ制御装置。
【請求項４】
前記キャッシュ記憶手段と前記キャッシュ管理情報記憶手段とを、単一の記憶媒体に記憶することを特徴とする請求項１〜３のいずれか１つに記載のキャッシュ制御装置。
【請求項５】
前記キャッシュ記憶手段と前記キャッシュ管理情報記憶手段とを、別個の記憶媒体に記憶することを特徴とする請求項１〜３のいずれか１つに記載のキャッシュ制御装置。
【請求項６】
アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御方法において、
前記キャッシュデータを削除するときに、前記キャッシュデータに固有の識別子を含む前記キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順に記憶するキャッシュ管理情報記憶手段から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する、前記キャッシュデータが参照されたときに更新される前記キャッシュデータの参照日時を、前記キャッシュデータと前記識別子と前記参照日時とを対応づけて記憶するキャッシュ記憶手段から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定する削除判定ステップと、
前記削除判定ステップが前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定した場合に前記削除候補識別子に対応する前記管理情報を、前記取得した参照日時を含む日時の範囲を有する前記グループに移動する管理情報移動ステップと、
を含むことを特徴とするキャッシュ制御方法。
【請求項７】
アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御プログラムにおいて、
前記キャッシュデータを削除するときに、前記キャッシュデータに固有の識別子を含む前記キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順に記憶するキャッシュ管理情報記憶手段から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する、前記キャッシュデータが参照されたときに更新される前記キャッシュデータの参照日時を、前記キャッシュデータと前記識別子と前記参照日時とを対応づけて記憶するキャッシュ記憶手段から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定する削除判定手順と、
前記削除判定手順が前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定した場合に前記削除候補識別子に対応する前記管理情報を、前記取得した参照日時を含む日時の範囲を有する前記グループに移動する管理情報移動手順と、
をコンピュータに実行させるキャッシュ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムに関するものである。特に、キャッシュ容量を超えないようにキャッシュデータの削除を制御するキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムに関するものである。
【背景技術】
【０００２】
近年、ネットワークを介して様々なサービスを提供するサーバと、所望のサービスをサーバに対して要求するクライアントとから構成される、クライアント・サーバ型の情報システムが広く普及している。特に、インターネット上でＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルを使って通信するＷｅｂサーバとクライアントからなるＷｏｒｌｄＷｉｄｅＷｅｂシステム（あるいは単にＷｅｂシステムとも呼ばれる）は、大変広く利用されているクライアント・サーバ型の情報システムである。通常、サーバ上ではサーバ・プログラムが動作し、クライアント上ではＷｅｂブラウザなどのクライアント・プログラムが動作する。
【０００３】
インターネット上で提供されるサービスの内容も多岐に渡っている。例えば、ネットワーク経由でホームページ、電子メール、デジタルコンテンツなどの文字、静止画像、動画像、音声等の情報や、プログラムなどを提供、配信あるいは転送などを行うサービス、商品を販売するための電子店舗サービス、座席や部屋などの予約サービス、種々の仲介サービスなど、様々なサービスが既に存在し、また次々と新たな形態のサービスが出現している。
【０００４】
ところで、Ｗｅｂシステムのようなクライアント・サーバ型の情報システムにおいては、提供されるサービスの形態にかかわらず、基本的にはクライアントとサーバとの間でデータ転送が行われることによってサービスが提供される。従って、クライアントとサーバとの間で通信に用いるネットワーク容量（バンド幅）がシステム全体のパフォーマンスのボトルネックになりやすい。そこで、通常、ネットワークの負荷を軽減させるためにキャッシュ技術が用いられる。キャッシュ技術とは、使用頻度の高いデータを高速な記憶装置などに蓄えておくことにより、低速な記憶装置から読み出す無駄を省いて処理を高速化することをいう。
【０００５】
Ｗｅｂシステムによる情報の閲覧においては、Ｗｅｂブラウザが動作するＷｅｂクライアントとＷｅｂサーバの間に設定されたキャッシング・プロキシ・サーバやＷｅｂブラウザ自身のキャッシュ機能を使うことで、閲覧に際しての転送データ量を削減し、リクエストを出してからレスポンスを受け取りＷｅｂブラウザにコンテンツを表示する一連のシーケンスにかかる時間（レスポンスタイム）を高速化する技術が開発されている。
【０００６】
キャッシング・プロキシ・サーバはＷｅｂサーバとＷｅｂクライアントを結ぶネットワーク上に配置される。以前閲覧されキャッシング・プロキシ・サーバにキャッシュされているコンテンツがＷｅｂクライアント上のＷｅｂブラウザからリクエストされた場合は、キャッシング・プロキシ・サーバからレスポンスを返すことにより、Ｗｅｂサーバまでのネットワーク転送を回避し、レスポンスタイムの向上を実現している。
【０００７】
Ｗｅｂブラウザ自身に備えられているキャッシュ機能を用いる場合は、既にＷｅｂブラウザのキャッシュ記憶部に保存されているコンテンツがＷｅｂブラウザからリクエストされたとき、ただちに該当コンテンツをＷｅｂブラウザに表示することにより、ネットワークを流れる転送データ量を削減するとともに、レスポンスタイムを向上している。
【０００８】
ところで、キャッシュデータの保存に使われるデータ保存領域であるキャッシュ記憶部は、キャッシュを行うコンピュータに直接もしくはネットワーク経由で接続されている主記憶装置や補助記憶装置が利用される。これらのキャッシュ記憶部は有限なサイズのデータしか保存することができないため、情報の閲覧にともなって増加するキャッシュデータを保存可能なサイズ以内に収まるようにキャッシュデータを削除する必要がある。また、削除に際してキャッシュ記憶部に残るキャッシュデータができるだけ再利用可能なように削除するキャッシュデータを選択する必要がある。すなわち、キャッシュヒット率が向上するように削除するキャッシュデータを決定し、限られたキャッシュ記憶部を有効に活用するためにキャッシュを制御するアルゴリズムが必要となる。
【０００９】
従来、キャッシュヒット率を向上させるキャッシュ置換アルゴリズムとして、最も参照日時の古いデータから順に削除を行うＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズムや、最も利用頻度の低いデータから順に削除を行うＬＦＵ（Ｌｅａｓｔ  Ｆｒｅｑｕｅｎｔｌｙ  Ｕｓｅｄ）アルゴリズム、またそれらの組み合わせからなる置換アルゴリズム等が一般的に利用されている。特にＬＲＵアルゴリズムはそのヒット率の高さからプロキシやＷｅｂブラウザのキャッシュ、その他のＷｅｂデータをキャッシュする装置で実装されている（例えば、非特許文献１）。
【００１０】
なお、テープ装置や光ディスク装置、その他記憶装置を用いたバックアップ処理やミラーリング処理においては、一定時間経過などの条件に応じて、更新日時等に基づいて必要なデータのバックアップ処理等が行われる点で、キャッシュ容量の不足という条件に応じて、参照日時等に基づいて必要なデータの削除を行うキャッシュ制御処理と共通する。
【００１１】
しかし、バックアップ処理等においては、データの実体が変更されたか否かを判断するために更新日時等を参照するのが本質であり、更新日時の順序を判断する必要はなく、一般に上述のようなアルゴリズムを適用することはない。
【００１２】
また、データベースシステムのトランザクション管理におけるロールバック処理は、障害発生という条件に応じて、それまでのログデータに基づいて必要なデータの回復を行うという点で、キャッシュ制御処理と共通する部分があるが、データの更新内容を保存したログデータを参照するだけであり、更新日時やその順序を判断する必要はなく、一般に上述のようなアルゴリズムを適用することはない。
【００１３】
ところで、上述のＬＲＵアルゴリズムは最も参照日時の古いキャッシュデータを優先的に削除するアルゴリズムであり、その実現方法には様々なものが考えられる。最も単純な方法としては、キャッシュを保存するキャッシュ記憶部に各キャッシュデータとともにそれらの参照日時を記憶し、総キャッシュサイズがキャッシュ記憶部の保存可能サイズなどに基づいて定められた閾値を超えた時や、管理者によって予め設定された一定時間を経過した時に、全キャッシュデータを検査し最も参照日時の古いものから削除する方法が考えられる。
【００１４】
しかし、この方法では削除するデータを決定するために全キャッシュデータを検査する必要があり、実用に耐えうる性能を得ることはできない。そこでキャッシュ記憶部とは別に、キャッシュデータの識別子等から構成されるキャッシュデータの管理情報を各キャッシュデータの参照日時順にソートして保持するキャッシュ管理部を設ける方法が一般的に採用されている。キャッシュを削除する必要性が生じた際にキャッシュ管理部が最も参照日時の古い管理情報から識別子を取得し、キャッシュ記憶部に該当識別子を指定することで即座にデータを削除できる。このようなキャッシュ管理部を用いたキャッシュ制御方法の詳細について以下にその手順を述べる。
【００１５】
新しいデータがキャッシュに生成される場合、データに固有の識別子とデータの実体をキャッシュ記憶部に保存するとともに、その管理情報をキャッシュ管理部のソートされた既存の管理情報群の最後尾に追加する。
【００１６】
キャッシュ済みのデータに対して参照があった場合、該当データの実体をキャッシュ記憶部から取得するとともに、該当データに固有の識別子を指定してキャッシュ管理部の管理情報を検索し、検索された管理情報を管理情報群の最後尾に移動する。
【００１７】
キャッシュ済みのデータを削除する場合、キャッシュ管理部の管理情報群の最前部に存在する管理情報から識別子を取得し、キャッシュ記憶部に該当識別子を指定して識別子とデータの実体を削除するとともにキャッシュ管理部から該当データの管理情報を削除する。
【００１８】
このように、一般的に採用されているキャッシュ制御方法においては、キャッシュデータの参照時にキャッシュ管理部から参照のあったデータに固有の識別子を指定して該当管理情報を検索し、その管理情報を管理情報群の最後尾に移動することで常に管理情報群を参照日時順にソートされた状態を維持し、削除時に即座に最も参照日時の古いデータを検出し削除することができる。
【００１９】
特にパーソナルコンピュータやサーバコンピュータに代表されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）装置を備えるコンピュータ上のＲＡＭにキャッシュ管理部が実装される場合、管理情報群を保持する手段として双方向連結リストが用いられる。この場合、管理情報の移動は双方向連結リストのポインタの付け替えで実現する。また、管理情報を高速に検索するためにｃｈａｉｎ法等などのハッシュを用いた方法が用いられる。このようなハッシュを用いた検索により、参照のあった識別子の管理情報を双方向連結リストのヘッドまたはテイルから順に検索する場合に比較して処理を高速化することができる（例えば、非特許文献１）。
【００２０】
【非特許文献１】Podlipnig et al., A Survey of Ｗｅｂ Cache Replacement Strategies, ACM Computing Surveys, Vol.35, No.4, December 2003.
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、ＬＲＵアルゴリズムに基づき管理情報をソートして保持するキャッシュ管理部を有するキャッシュ制御装置においては、キャッシュデータが参照されるたびに管理情報の検索処理、ソート処理が必要となるため、参照時の処理負荷が高くなるという問題があった。
【００２２】
また、近年のＷｅｂ利用の急速な拡大に伴い、Ｗｅｂデータをキャッシュするキャッシュ制御装置の重要性が高まるとともにキャッシュ制御装置にキャッシュされるＷｅｂオブジェクトの数が急増している。さらに、Ｗｅｂサーバへのリクエストに対してキャッシュ制御装置のキャッシュを用いてレスポンスを返す回数も増加している。その結果、キャッシュ制御装置においてキャッシュヒットに伴う管理情報の検索と管理情報のソート処理の負荷がさらに増加するという問題が生じている。
【００２３】
本発明は、上記に鑑みてなされたものであって、アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置において、キャッシュヒットに伴うキャッシュ制御装置の処理負荷を低減させることで、キャッシュデータの生成・参照・削除というキャッシュ制御装置の総処理量を低減させ、スループットを向上させることができるキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２４】
上述した課題を解決し、目的を達成するために、本発明は、アクセス頻度の高いデータをキャッシュデータとして一時的に格納し前記データへのアクセスを高速化するキャッシュ制御装置において、前記キャッシュデータと前記キャッシュデータに固有の識別子と前記キャッシュデータが参照されたときに更新される前記キャッシュデータの参照日時とを対応づけて記憶するキャッシュ記憶手段と、前記識別子を含む前記キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除の優先順位を表す削除優先度順に記憶するキャッシュ管理情報記憶手段と、前記キャッシュデータを削除するときに、前記キャッシュ管理情報記憶手段から、最も古い日時の範囲を有する前記グループを表す最古グループ内の最も前記削除優先度の高い前記識別子を削除候補識別子として取得し、取得した前記削除候補識別子に対応する前記キャッシュデータの参照日時を前記キャッシュ記憶手段から取得し、取得した参照日時が前記最古グループの日時の範囲に含まれない場合に前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定する削除判定手段と、前記削除判定手段が前記削除候補識別子に対応する前記キャッシュデータを削除しないと判定した場合に前記削除候補識別子に対応する前記管理情報を、前記取得した参照日時を含む日時の範囲を有する前記グループに移動する管理情報移動手段と、を備えたことを特徴とする。
【００２５】
また、本発明は、上記装置を実行することができるキャッシュ制御方法およびキャッシュ制御プログラムである。
【発明の効果】
【００２６】
本発明によれば、キャッシュデータの参照時にはキャッシュ記憶部に保存する参照日時を更新するだけで管理情報の検索およびソート処理は行わず、キャッシュデータの削除時に参照日時を参照して削除するキャッシュデータを決定することができる。このため、参照時の処理負荷を軽減し、キャッシュ制御装置の総処理量を低減させ、スループットを向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２７】
以下に添付図面を参照して、この発明にかかるキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムの最良な実施の形態を詳細に説明する。
【００２８】
（第１の実施の形態）
第１の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除優先度順にキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と別個の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時を参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
【００２９】
図１は、本発明の実施の形態にかかるキャッシュ制御装置が適用されるネットワークシステムの全体構成を示す説明図である。同図に示すように、このネットワークシステムは、インターネット１０２を介して接続されるＷｅｂサーバ１０１ａ〜１０１ｃおよびプロキシサーバ１０３と、当該プロキシサーバ１０３とＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０５を介して接続されるＷｅｂクライアント１０６ａ〜１０６ｃとを備えている。また、プロキシサーバ１０３およびＷｅｂクライアント１０６ａ〜１０６ｃは、キャッシュデータを記憶するためのハードディスクドライブ装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０４、１０７ａ〜１０７ｃを備えている。
【００３０】
Ｗｅｂクライアント１０６ａ〜１０６ｃは、ユーザが指定した情報の閲覧の要求をＨＴＴＰリクエストとしてＬＡＮ１０５を介して接続されたプロキシサーバ１０３に送信するものである。プロキシサーバ１０３は、Ｗｅｂクライアント１０６ａ〜１０６ｃから送信されたＨＴＴＰリクエストを所望のＷｅｂオブジェクトを持つＷｅｂサーバ１０１ａ〜１０１ｃのいずれかにインターネット１０２を介して転送する。
【００３１】
Ｗｅｂサーバ１０１ａ〜１０１ｃは、プロキシサーバ１０３から受信したＨＴＴＰリクエストに対応して、要求されたＷｅｂオブジェクトを含むＨＴＴＰレスポンスを、プロキシサーバ１０３を介してＨＴＴＰリクエストを送信したＷｅｂクライアント１０６ａ〜１０６ｃのいずれかに転送する。
【００３２】
一般に、上記のようなＷｅｂシステムにおいて、ＬＡＮ１０５と比較してインターネット１０２は実効的な通信容量（バンド幅）が低く、そこが性能上のボトルネックになって通信の遅延が発生し、Ｗｅｂクライアント１０６ａ〜１０６ｃのレスポンスタイムが低下する。
【００３３】
そこで本実施の形態では、図１に示すようにインターネット１０２とＬＡＮ１０５の間に、アクセス頻度の高いＷｅｂオブジェクトのデータをキャッシュデータとして記憶するＨＤＤ１０４を備えたプロキシサーバ１０３を設置し、ＨＤＤ１０４に所望のＷｅｂオブジェクトが存在する場合は、そのＷｅｂオブジェクトを取得し、ＨＴＴＰレスポンスを返すことでインターネット１０２を流れるデータ量を削減することでボトルネックを解消する。
【００３４】
また、Ｗｅｂクライアント１０６ａ〜１０６ｃのそれぞれにキャッシュデータを記憶したＨＤＤ１０７ａ〜１０７ｃを設置し、ＨＤＤ１０７ａ〜１０７ｃに所望のＷｅｂオブジェクトが存在する場合は、そのＷｅｂオブジェクトを取得しＨＴＴＰレスポンスを返すことにより、同様にボトルネックの解消を行うように構成してもよい。
【００３５】
また、Ｗｅｂサーバ１０１ａ〜１０１ｃに対する過負荷のためレスポンスタイムが遅延する場合がある。その場合、キャッシュサーバとしてリバース・プロキシ・サーバ（図示せず）をそれぞれＷｅｂサーバ１０１ａ〜１０１ｃとインターネット１０２の間に設置し、リバース・プロキシ・サーバに設置されたキャッシュデータを記憶したＨＤＤ内に所望Ｗｅｂオブジェクトが存在する場合は、Ｗｅｂサーバ１０１ａ〜１０１ｃにＨＴＴＰリクエストを転送せずにリバース・プロキシ・サーバのキャッシュから所望のＷｅｂオブジェクトを取得しＨＴＴＰレスポンスを返すように構成してもよい。
【００３６】
以上に述べたように、本実施の形態にかかるキャッシュ制御装置はプロキシサーバやＷｅｂクライアント、あるいはリバース・プロキシ・サーバ上に実装することができる。なお、プロキシサーバ１０３とＷｅｂサーバ１０１ａ〜１０１ｃを接続する通信回線は、上述のようなインターネット１０２に限られるものではなく、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、公衆回線、ＰＨＳや携帯電話を用いた無線ネットワークなどあらゆる通信回線に適用することができる。
【００３７】
以下においては、キャッシュ制御装置をプロキシサーバ１０３上に構成した場合について説明する。従って、プロキシサーバ１０３をキャッシュ制御装置１０３と呼ぶ。
【００３８】
図２は、第１の実施の形態にかかるキャッシュ制御装置１０３の構成を示すブロック図である。同図に示すように、キャッシュ制御装置１０３は、通信部２０１と、キャッシュ記憶制御部２１０と、キャッシュ管理部２２０とを備えている。また、第１の実施の形態にかかるキャッシュ制御装置１０３は、ＨＤＤ１０４にキャッシュ記憶部２３１を、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２４０にキャッシュ管理情報記憶部２４１と、総キャッシュサイズ記憶部２４２とを備えている。
【００３９】
通信部２０１は、インターネット１０２およびＬＡＮ１０５を介して、それぞれＷｅｂサーバ１０１ａ〜１０１ｃおよびＷｅｂクライアント１０６ａ〜１０６ｃと接続され、ＨＴＴＰプロトコルなどの所定の通信プロトコルに従って通信を行う。また、ローカルループバックや内外部バスを介して、コンピュータに接続されている別の装置やアプリケーション、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などと通信する機能も有する。なお、通信プロトコルはＨＴＴＰプロトコルに限られるものではなく、Ｗｅｂシステムに使用されるものであればあらゆる通信プロトコルに対し本発明を適用することができる。
【００４０】
キャッシュ記憶制御部２１０は、キャッシュ記憶部２３１に対する登録処理、削除処理などを制御するもので、キャッシュ登録部２１１と、キャッシュ削除部２１２と、キャッシュ参照部２１３と、キャッシュ検索部２１４と、参照日時取得部２１５と、参照日時更新部２１６とから構成されている。
【００４１】
キャッシュ管理部２２０は、キャッシュ記憶制御部２１０と連動し、キャッシュ管理情報記憶部２４１に対する登録処理、削除処理などを制御するもので、管理情報登録部２２１と、管理情報移動部２２２と、管理情報削除部２２３と、削除判定部２２４と、グループ検索部２２５と、グループ削除部２２６と、グループ生成部２２７とから構成されている。
【００４２】
キャッシュ記憶部２３１は、キャッシュデータの実体を記憶する記憶部である。図３は、キャッシュ記憶部２３１の構造の一例を示す説明図である。同図に示すように、キャッシュ記憶部２３１は、キャッシュデータを一意に識別するためのキャッシュデータに固有の識別子と、キャッシュデータの実体であるキャッシュデータと、キャッシュデータの最新の参照日時を表す参照日時とを格納している。
【００４３】
キャッシュ登録部２１１は、キャッシュ記憶部２３１に対して、新規キャッシュデータの登録または既存キャッシュデータの更新を行う。キャッシュ削除部２１２は、キャッシュ記憶部２３１に記憶されたキャッシュデータの削除を行う。キャッシュ参照部２１３は、参照要求のあったキャッシュデータをキャッシュ記憶部２３１から取得する。キャッシュ検索部２１４は、上述のキャッシュ登録部２１１、キャッシュ削除部２１２、キャッシュ参照部２１３が処理の対象として指定したキャッシュデータの識別子に対応するキャッシュデータを、キャッシュ記憶部２３１から検索する処理を行う。
【００４４】
参照日時取得部２１５は、削除判定部２２４が指定したキャッシュデータの識別子に対応するキャッシュデータの参照日時を、キャッシュ記憶部２３１から取得する。参照日時更新部は、キャッシュ参照部２１３によりキャッシュデータが参照されるたびに、参照されたキャッシュデータの参照日時を更新する処理を行う。
【００４５】
キャッシュ管理情報記憶部２４１は、キャッシュデータの管理情報を記憶する記憶部である。図４は、キャッシュ管理情報記憶部２４１の構造の一例を示す説明図である。同図に示すように、キャッシュ管理情報記憶部２４１は、予め定められた時間間隔で分割されたグループごとに双方向連結リスト構造によりキャッシュデータの管理情報を格納している。また、グループ内では、生成日時、またはグループを移動したときはその移動日時の古い順にリストのヘッド４０１からリストのテイル４０２に並ぶようにキャッシュデータの管理情報を格納している。すなわち、リストのヘッド４０１側に削除優先度が高いデータがくるように管理情報が格納される。
【００４６】
また、同図に示すように、キャッシュデータの管理情報としては、キャッシュデータの識別子４０３と、キャッシュデータのサイズを表すキャッシュサイズ４０４とが格納されている。
【００４７】
同図においては、グループを分割する時間間隔を１０分とし、参照日時が１２：００から１２：０９である最も古いグループに、識別子Ａのキャッシュデータの管理情報４１０と識別子Ｂのキャッシュデータの管理情報４１１とが、参照日時が１９：３０から１９：３９である最も新しいグループに識別子Ｃキャッシュデータの管理情報４１２が格納されている状態の例が示されている。
【００４８】
管理情報登録部２２１は、キャッシュ登録部２１１と連動し、新規に登録したキャッシュデータの管理情報をキャッシュ管理情報記憶部２４１に登録する処理を実行する。管理情報移動部２２２は、削除候補となったが削除判定部２２４により最終的に削除しないと判定されたキャッシュデータの管理情報を別のグループに移動する処理を行う。削除判定処理と管理情報移動処理の詳細は後述する。
【００４９】
管理情報削除部２２３は、キャッシュ削除部２１２により削除されたキャッシュデータに対応するキャッシュデータの管理情報を、キャッシュ管理情報記憶部２４１から削除する。
【００５０】
削除判定部２２４は、キャッシュ記憶部２３１の空き容量を増加させるためにキャッシュデータの削除が必要となったときに、キャッシュ管理情報記憶部２４１内に格納されたキャッシュデータの管理情報から、削除候補となるキャッシュデータの識別子を選択し、キャッシュ記憶部２３１に格納された参照日時を参照して、当該削除候補となるキャッシュデータを実際に削除するか否かを判定する。削除判定処理の詳細は後述する。
【００５１】
グループ検索部２２５は、上述の管理情報移動部２２２、管理情報削除部２２３、削除判定部２２４が処理の対象として指定したグループを、キャッシュ管理情報記憶部２４１から検索する処理を行う。
【００５２】
グループ削除部２２６は、管理情報削除部２２３によりキャッシュデータの管理情報が削除された結果、グループに属するキャッシュデータが存在しなくなったときに、当該グループをキャッシュ管理情報記憶部２４１から削除する処理を実行する。
【００５３】
グループ生成部２２７は、管理情報登録部２２１によるキャッシュデータの管理情報の新規登録時、または、管理情報移動部２２２によるキャッシュデータの管理情報の移動時に、登録対象または移動対象となるグループが存在しなかった場合に新規にグループを生成する処理を実行する。
【００５４】
総キャッシュサイズ記憶部２４２は、キャッシュ記憶部２３１に格納されているすべてのキャッシュデータのサイズの合計を表す総キャッシュサイズを記憶する記憶部である。キャッシュデータが登録、削除されるごとに、キャッシュ管理情報記憶部２４１に格納されているキャッシュサイズなどを参照して総キャッシュサイズが更新される。
【００５５】
次に、このように構成された第１の実施の形態にかかるキャッシュ制御装置１０３によるキャッシュ制御処理について説明する。図５は、第１の実施の形態にかかるキャッシュ制御装置１０３おいて、キャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。
【００５６】
まず、キャッシュ登録部２１１が、新規に登録するキャッシュデータの識別子と、キャッシュデータの実体と、参照日時として生成日時とを、キャッシュ記憶部２３１に登録する（ステップＳ５０１）。次に、管理情報登録部２２１が、グループ検索部２２５を利用して、日時の範囲が最新である最新グループを、キャッシュ管理情報記憶部２４１から取得する（ステップＳ５０２）。
【００５７】
管理情報登録部２２１は、取得した最新グループの日時の範囲と新規に登録するキャッシュデータの参照日時とを比較し、キャッシュデータの参照日時が取得した最新グループの日時の範囲内であるか否かを判断する（ステップＳ５０３）。範囲内である場合は（ステップＳ５０３：ＹＥＳ）、新規に登録するキャッシュデータの管理情報を、最新グループの最後尾に追加する（ステップＳ５０６）。
【００５８】
新規に登録するキャッシュデータの参照日時が取得した最新グループの日時の範囲内でない場合は（ステップＳ５０３：ＮＯ）、グループ生成部２２７が、当該参照日時を含む範囲を有するグループを新規に生成する（ステップＳ５０４）。その後、管理情報登録部２２１が、新規に生成したグループを最新グループと判断して（ステップＳ５０５）、新規に登録するキャッシュデータの管理情報を、最新グループの最後尾に追加する（ステップＳ５０６）。
【００５９】
次に、管理情報登録部２２１は、総キャッシュサイズ記憶部２４２に格納された総キャッシュサイズに、新規に登録したキャッシュデータのサイズを加算する（ステップＳ５０７）。管理情報登録部２２１は、加算した後の総キャッシュサイズが、予め定められたキャッシュ容量の上限値を超えたか否かを判断し（ステップＳ５０８）、超えている場合は（ステップＳ５０８：ＹＥＳ）、キャッシュデータの削除処理に遷移する（ステップＳ５０９）。キャッシュデータ削除処理の詳細については後述する。
【００６０】
加算した後の総キャッシュサイズがキャッシュ容量の上限値を超えていない場合は（ステップＳ５０８：ＮＯ）、キャッシュデータの新規登録処理が終了する。
【００６１】
次に、第１の実施の形態にかかるキャッシュ制御装置１０３によるキャッシュデータの参照処理について説明する。図６は、第１の実施の形態にかかるキャッシュ制御装置１０３おいて、既に登録されているキャッシュデータを参照する処理の全体の流れを示すフローチャートである。
【００６２】
まず、通信部２０１を介して参照の要求があったキャッシュデータの識別子を指定して、キャッシュ参照部がキャッシュ記憶部２３１から該当するキャッシュデータを取得する（ステップＳ６０１）。さらに、参照日時更新部２１６が、キャッシュ記憶部２３１内に格納されている該当するキャッシュデータの参照日時を更新する（ステップＳ６０２）。
【００６３】
従来のキャッシュ制御装置においては、キャッシュデータが参照されるたびにキャッシュ管理情報記憶部２４１に相当する管理情報記憶部内のキャッシュデータの管理情報を検索し、参照日時順にソートするなどの処理を実行していたが、上述のように、第１の実施の形態にかかるキャッシュ制御装置１０３においては、キャッシュデータの参照時にはキャッシュ記憶部２３１内の参照日時の更新処理のみを実行する。このため、参照時の処理負荷が軽減され、レスポンスを向上させることができる。
【００６４】
次に、第１の実施の形態にかかるキャッシュ制御装置１０３によるキャッシュデータの削除処理について説明する。図７は、第１の実施の形態にかかるキャッシュ制御装置１０３おいて、キャッシュ記憶部２３１の容量を確保するためにキャッシュデータを削除する処理の全体の流れを示すフローチャートである。
【００６５】
まず、キャッシュデータ削除の必要が生じた場合、削除判定部２２４が、キャッシュ管理情報記憶部２４１から、日時の範囲が最も古いグループを表す最古グループを取得する（ステップＳ７０１）。次に、取得した最古グループに格納されたキャッシュデータの管理情報のうち、最も削除優先度が高い管理情報、すなわち、リストの先頭（ヘッド）に存在する管理情報に格納されたキャッシュデータの識別子を取得する（ステップＳ７０２）。
【００６６】
削除判定部２２４は、取得したキャッシュデータの識別子を削除候補のキャッシュデータの識別子とし（ステップＳ７０３）、参照日時取得部２１５を利用して、当該削除候補のキャッシュデータの識別子に対応するキャッシュデータの参照日時を、キャッシュ記憶部２３１から取得する（ステップＳ７０４）。
【００６７】
次に、削除判定部２２４は、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内であるか否かを判断する（ステップＳ７０５）。範囲内である場合は（ステップＳ７０５：ＹＥＳ）、当該削除候補のキャッシュデータを実際に削除するため、以下の処理を実行する。
【００６８】
まず、キャッシュ削除部２１２が、当該削除候補のキャッシュデータの識別子に対応するキャッシュデータをキャッシュ記憶部２３１から削除する（ステップＳ７０６）。さらに、管理情報削除部２２３が、当該削除候補のキャッシュデータの識別子に対応する管理情報を、所属しているグループから削除する（ステップＳ７０７）。
【００６９】
次に、管理情報削除部２２３は、当該削除候補のキャッシュデータが所属していたグループが空か否か、すなわち、管理情報が全く存在しなくなったか否かを判断する（ステップＳ７０８）。当該削除候補のキャッシュデータが所属していたグループが空である場合は（ステップＳ７０８：ＹＥＳ）、グループ削除部２２６が、該当グループを削除する（ステップＳ７０９）。
【００７０】
当該削除候補のキャッシュデータが所属していたグループが空でない場合（ステップＳ７０８：ＮＯ）、または、上述の処理でグループを削除した後、管理情報削除部２２３が、総キャッシュサイズ記憶部２４２に格納された総キャッシュサイズから、削除したキャッシュデータのサイズを減算する（ステップＳ７１０）。
【００７１】
次に、管理情報削除部２２３は、総キャッシュサイズが、予め定められたキャッシュ容量の下限値より小さいか否かを判断し（ステップＳ７１１）、小さくない場合は（ステップＳ７１１：ＮＯ）、キャッシュデータ削除処理の先頭に戻って削除処理を繰り返す。
【００７２】
総キャッシュサイズが、予め定められたキャッシュ容量の下限値より小さい場合は（ステップＳ７１１：ＹＥＳ）、キャッシュデータの削除処理を終了する。
【００７３】
ステップＳ７０５において、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内でないと判断された場合は（ステップＳ７０５：ＮＯ）、当該削除候補のキャッシュデータは削除せず、参照日時に応じた適当なグループに移動するため、以下の処理を実行する。
【００７４】
まず、グループ検索部２２５が、移動すべきグループ、すなわち、取得した参照日時を日時の範囲に含むグループをキャッシュ管理情報記憶部２４１内から検索する（ステップＳ７１２）。検索結果から、管理情報移動部２２２は、移動先のグループが存在するか否かを判断し（ステップＳ７１３）、存在しない場合は（ステップＳ７１３：ＮＯ）、グループ生成部２２７が所得した参照日時を日時の範囲に含むグループを新規に生成し（ステップＳ７１４）、生成した新規グループを移動先のグループとする（ステップＳ７１５）。
【００７５】
移動先のグループが存在する場合（ステップＳ７１３：ＹＥＳ）、または、移動先のグループを新規に生成した後、管理情報移動部２２２は、移動先のグループの最後尾に削除候補とされたキャッシュデータの管理情報を移動する（ステップＳ７１６）。
【００７６】
ステップＳ７１２からステップＳ７１６までの処理では、キャッシュデータの管理情報を移動しただけでキャッシュデータの削除は実行されておらず、キャッシュ記憶部２３１の容量は変わっていない。そのため、さらに次の削除候補を取得し削除処理を実行するために、キャッシュデータ削除処理の先頭に戻り処理を繰り返す。
【００７７】
なお、第１の実施の形態にかかるキャッシュ制御装置１０３においては、総キャッシュサイズが予め定められた上限値を超えた場合にキャッシュデータ削除処理が開始され、総キャッシュサイズが予め定められた下限値を下回るまで削除処理を繰り返すように構成されている。しかし、キャッシュデータ削除処理の開始・終了条件はこれに限られるものではなく、キャッシュ記憶部２３１の容量を確保することのできる削除方法であれば、あらゆる削除方法に対し本発明を適用できる。例えば、新しいキャッシュデータを登録するのに必要な容量が不足する場合にキャッシュデータ削除処理を開始し、必要な容量を確保した時点で削除処理を終了するように構成してもよい。
【００７８】
また、第１の実施の形態にかかるキャッシュ制御装置１０３においては、上述のように、キャッシュデータの管理情報をグループの最後尾に移動する場合があるため、厳密に参照日時が古いものからキャッシュデータが削除されない場合が生じる。しかし、その誤差は予め定められた日時の範囲以下になるため、日時の範囲を適切に指定することで、その誤差がキャッシュヒット率を大幅に低下させるものとはならないようにすることができる。
【００７９】
例えば、キャッシュ記憶部２３１に保存可能なサイズと、閲覧するコンテンツの平均オブジェクトサイズと、平均アクセス頻度とから総キャッシュサイズがキャッシュ可能サイズに到達するのに要する時間を算出し、その時間を基に適当な日時の範囲を決定すればよい。また、実際にキャッシュ制御装置を運用して、キャッシュヒット率とスループットの向上効果を考慮し、日時の範囲を調整することで最適な値を決定することができる。
【００８０】
図８−１、図８―２は、第１の実施の形態にかかるキャッシュ制御装置１０３において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部２４１のキャッシュデータの格納の一例を示した説明図である。
【００８１】
図８−１は、キャッシュ記憶部２３１に記憶されているキャッシュデータの一例を示している。図８−２は、図８−１に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部２４１に記憶されているキャッシュ管理情報の一例を示している。なお、参照日時は時刻だけでなく日付も管理しているが、以下簡単のため、日付は同一とし時刻のみを用いて説明する。
【００８２】
図８−１において、キャッシュ記憶部２３１には、時刻１２：０３：０６に生成された識別子Ａのキャッシュデータ８０１と、時刻１２：０８：０８に生成された識別子Ｂのキャッシュデータ８０２とが記憶されており、その後、キャッシュデータ８０２が時刻１２：１３：３１に参照され、識別子Ｃのキャッシュデータ８０３が時刻１９：３９：４３に生成されたことを示している。
【００８３】
図８−２におけるキャッシュ管理情報記憶部２４１は、グループに分割するための日時の範囲を１０分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が１２：００から１２：０９のグループであり、リストのヘッド８１１と、リストのテイル８１０の間に、識別子Ａのキャッシュデータの管理情報８１２と、識別子Ｂのキャッシュデータの管理情報８１３とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ヘッド８３１とテイル８３０で表される参照日時が１９：３０から１９：３９のグループである。最古グループと最新グループの間には、例えば、ヘッド８２１およびテイル８２０で表されるリストに、参照日時が１２：１０から１２：１９のグループに属するキャッシュデータの管理情報が格納される。
【００８４】
識別子Ｃのキャッシュデータ８０３が生成された場合、キャッシュ登録部２１１が、キャッシュ記憶部２３１に識別子Ｃと、識別子Ｃに対応するキャッシュデータの実体と、参照日時１９：３９：４３とを保存する。さらに、管理情報登録部２２１が、最新グループのテイル側に、識別子Ｃのキャッシュデータの管理情報８３２を登録する。
【００８５】
識別子Ｂのキャッシュデータ８０２が時刻１２：１３：３１に参照された場合、参照日時更新部２１６が、キャッシュ記憶部２３１に格納されたキャッシュデータ８０２の参照日時を、１２：１３：３１に更新する。
【００８６】
図９−１、図９―２は、第１の実施の形態にかかるキャッシュ制御装置１０３において、キャッシュデータが削除されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部２４１のキャッシュデータの格納の一例を示した説明図である。
【００８７】
図９−１、図９−２は、図８−１、図８−２において、識別子Ｂのキャッシュデータが参照され、識別子Ｃのキャッシュデータ８０３が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
【００８８】
まず、削除判定部２２４が、ヘッド９１１およびテイル９１０で表される最古グループのリストの先頭に存在する管理情報９１２の識別子Ａを削除候補として取得する。さらに、参照日時取得部２１５が、識別子Ａのキャッシュデータの参照日時１２：０３：０６を、キャッシュ記憶部２３１から取得する。参照日時１２：０３：０６は、最古グループの日時の範囲内であるので、削除判定部２２４は、識別子Ａのキャッシュデータを削除すると判定する。
【００８９】
従って、キャッシュ削除部２１２により、キャッシュ記憶部２３１から識別子Ａのキャッシュデータ９０１が削除され、管理情報削除部２２３により、キャッシュ管理情報記憶部２４１から、識別子Ａのキャッシュデータの管理情報９１２が削除される。また、総キャッシュサイズから、識別子Ａのキャッシュデータのサイズ９８３４が減算される。
【００９０】
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部２２４は、次の削除候補として管理情報９１３の識別子Ｂを取得する。さらに、参照日時取得部２１５が、識別子Ｂのキャッシュデータの参照日時１２：１３：３１を、キャッシュ記憶部２３１から取得する。参照日時１２：１３：３１は、最古グループの日時の範囲内ではないので、削除判定部２２４は、識別子Ｂのキャッシュデータを削除すると判定しない。
【００９１】
そこで、管理情報移動部２２２は、ヘッド９２１およびテイル９２０で表される参照日時が１２：１０から１２：１９のグループを、識別子Ｂのキャッシュデータの移動先として選択し、グループのリストの最後尾、すなわちリストのテイル９２０側に識別子Ｂのキャッシュデータの管理情報９２２を移動する。
【００９２】
このように、第１の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの参照時にはキャッシュ管理情報の検索およびソート処理を実行せず、キャッシュデータの削除時に削除優先度と参照日時を参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除することができる。これにより、参照時のキャッシュ制御装置の処理負荷を軽減させ、スループットを向上させることができる。
【００９３】
（第２の実施の形態）
第２の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報にさらにグループごとのキャッシュデータのサイズの合計を表すグループサイズを加えてキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と別個の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時とグループサイズを参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
【００９４】
図１０は、第２の実施の形態にかかるキャッシュ制御装置１０００の構成を示すブロック図である。同図に示すように、キャッシュ制御装置１０００は、通信部２０１と、キャッシュ記憶制御部２１０と、キャッシュ管理部２２０とを備えている。また、第２の実施の形態にかかるキャッシュ制御装置１０００は、ＨＤＤ１０４にキャッシュ記憶部２３１を、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０１０にキャッシュ管理情報記憶部１０１１と、総キャッシュサイズ記憶部２４２とを備えている。
【００９５】
図１０に示すように、第２の実施の形態においては、キャッシュ管理情報記憶部１０１１に記憶する項目としてグループサイズを追加したことが第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる構成を表すブロック図である図２と同様であるので、同一符号を付し、ここでの説明は省略する。
【００９６】
キャッシュ管理情報記憶部１０１１は、キャッシュデータの管理情報として、キャッシュデータの識別子と、キャッシュデータのサイズを表すキャッシュサイズと、グループごとにグループに属するキャッシュデータのサイズの合計を表すグループサイズとを格納している。
【００９７】
図１１は、キャッシュ管理情報記憶部１０１１の構造の一例を示す説明図である。同図に示すように、キャッシュ管理情報記憶部１０１１は、グループのテイルにグループサイズ１１０１を格納している。
【００９８】
次に、このように構成された第２の実施の形態にかかるキャッシュ制御装置１０００によるキャッシュ制御処理について説明する。図１２は、第２の実施の形態にかかるキャッシュ制御装置１０００おいて、キャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。
【００９９】
ステップＳ１２０１からステップＳ１２０６までの、最新グループ検索処理、グループ生成処理、管理情報登録処理は、第１の実施の形態にかかるキャッシュ制御装置１０３におけるステップＳ５０１からステップＳ５０６までと同様の処理なので、その説明を省略する。
【０１００】
管理情報登録部２２１は、新規に登録するキャッシュデータの管理情報を、最新グループの最後尾に追加した後（ステップＳ１２０６）、追加したキャッシュデータのサイズを、追加したグループのグループサイズに加算する（ステップＳ１２０７）。このように、第２の実施の形態にかかるキャッシュ制御装置１０００においては、キャッシュ管理情報記憶部１０１１にグループサイズを格納するようにしているため、キャッシュデータ登録時にグループサイズの加算処理が必要となる点が、第１の実施の形態にかかるキャッシュ制御装置１０３と異なっている。
【０１０１】
ステップＳ１２０８からステップＳ１２１０までの、総キャッシュサイズ加算処理、キャッシュ容量チェック処理、キャッシュデータ削除処理は、第１の実施の形態にかかるキャッシュ制御装置１０３におけるステップＳ５０７からステップＳ５０９までと同様の処理なので、その説明を省略する。
【０１０２】
図１３は、第２の実施の形態にかかるキャッシュ制御装置１０００おいて、キャッシュ記憶部２３１の容量を確保するためにキャッシュデータを削除する処理の全体の流れを示すフローチャートである。
【０１０３】
ステップＳ１３０１からステップＳ１３０４までの、削除候補取得処理は、第１の実施の形態にかかるキャッシュ制御装置１０３におけるステップＳ７０１からステップＳ７０４までと同様の処理なので、その説明を省略する。
【０１０４】
次に、削除判定部２２４は、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内であるか否かを判断する（ステップＳ１３０５）。範囲内である場合は（ステップＳ１３０５：ＹＥＳ）、当該削除候補のキャッシュデータを実際に削除するため、以下の処理を実行する。
【０１０５】
まず、キャッシュ削除部２１２が、当該削除候補のキャッシュデータの識別子に対応するキャッシュデータをキャッシュ記憶部２３１から削除する（ステップＳ１３０６）。さらに、管理情報削除部２２３が、当該削除候補のキャッシュデータの識別子に対応する管理情報を、所属しているグループから削除する（ステップＳ１３０７）。
【０１０６】
次に、管理情報削除部２２３は、削除したキャッシュデータが所属していたグループが空か否かを判断する（ステップＳ１３０８）。削除したキャッシュデータが所属していたグループが空である場合は（ステップＳ１３０８：ＹＥＳ）、グループ削除部２２６が、該当グループを削除し（ステップＳ１３０９）、ステップＳ１３１１の総キャッシュサイズ減算処理に遷移する。
【０１０７】
削除したキャッシュデータが所属していたグループが空でない場合は（ステップＳ１３０８：ＮＯ）、管理情報削除部２２３は、当該グループのグループサイズから削除したキャッシュデータのサイズを減算し（ステップＳ１３１０）、ステップＳ１３１１の総キャッシュサイズ減算処理に遷移する。
【０１０８】
ステップＳ１３１１からステップＳ１３１２までの、総キャッシュサイズ減算処理、キャッシュ容量チェック処理、は、第１の実施の形態にかかるキャッシュ制御装置１０３におけるステップＳ７１０からステップＳ７１１までと同様の処理なので、その説明を省略する。
【０１０９】
ステップＳ１３０５において、取得した参照日時が、当該削除候補のキャッシュデータが所属しているグループの日時の範囲内でないと判断された場合は（ステップＳ１３０５：ＮＯ）、当該削除候補のキャッシュデータを削除するか、参照日時に応じた適当なグループに移動するかをグループサイズから判断するため、以下の処理を実行する。
【０１１０】
まず、削除判定部２２４は、削除候補が所属するグループから、削除候補のキャッシュデータの参照日時を日時の範囲として含むグループ、すなわち、移動先の候補となるグループまでの全グループのグループサイズを加算する（ステップＳ１３１３）。
【０１１１】
次に、削除判定部２２４は、加算したサイズが、総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下であるか否かを判断する（ステップＳ１３１４）。加算したサイズが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下である場合は（ステップＳ１３１４：ＹＥＳ）、管理情報削除部２２３は、削除候補のキャッシュデータの管理情報を削除する（ステップＳ１３０７）。
【０１１２】
これは、移動先の候補となるグループまでの全てのグループに属するデータを削除したとしても、キャッシュ容量の下限値以下にならない、すなわち、移動先の候補となるグループに属する全管理情報も最終的に削除候補となるため、移動をせずに削除処理を実行するためである。特に、削除候補のキャッシュデータを移動先の候補となるグループに移動したとしても、当該キャッシュデータをさらに移動することはなく、必ず削除対象となることから、削除処理を効率化することができるという利点がある。
【０１１３】
加算したサイズが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下でない場合は（ステップＳ１３１４：ＮＯ）、削除候補のキャッシュデータは削除せず、参照日時に応じた適当なグループに移動するため、以下の処理を実行する。
【０１１４】
ステップＳ１３１５からステップＳ１３１９までの、移動先グループ検索処理、グループ存在チェック・生成処理、管理情報移動処理は、第１の実施の形態にかかるキャッシュ制御装置１０３におけるステップＳ７１２からステップＳ７１６までと同様の処理なので、その説明を省略する。
【０１１５】
管理情報移動部２２２は、削除候補のキャッシュデータの管理情報を移動した後、移動元のグループのグループサイズから当該キャッシュデータのサイズを減算するとともに、移動先のグループのグループサイズに当該キャッシュデータのサイズを加算する（ステップＳ１３２０）。
【０１１６】
ステップＳ１３１５からステップＳ１３２０までの処理では、キャッシュデータの管理情報を移動しただけでキャッシュデータの削除は実行されておらず、キャッシュ記憶部２３１の容量は変わっていない。そのため、さらに次の削除候補を取得し削除処理を実行するために、キャッシュデータ削除処理の先頭に戻り処理を繰り返す。
【０１１７】
図１４−１、図１４―２は、第２の実施の形態にかかるキャッシュ制御装置１０００において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部１０１１のキャッシュデータの格納の一例を示した説明図である。
【０１１８】
図１４−１は、キャッシュ記憶部２３１に記憶されているキャッシュデータの一例を示している。図１４−２は、図１４−１に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部２４１に記憶されているキャッシュ管理情報の一例を示している。
【０１１９】
図１４−１において、キャッシュ記憶部２３１には、時刻１２：０３：０６に生成された識別子Ａのキャッシュデータ１４０１と、時刻１２：０８：０８に生成された識別子Ｂのキャッシュデータ１４０２とが記憶されており、その後、キャッシュデータ１４０２が時刻１２：１３：３１に参照され、識別子Ｃのキャッシュデータ１４０３が時刻１９：３９：４３に生成されたことを示している。
【０１２０】
図１４−２におけるキャッシュ管理情報記憶部１０１１は、グループに分割するための日時の範囲を１０分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が１２：００から１２：０９のグループであり、リストのヘッド１４１１と、リストのテイル１４１０の間に、識別子Ａのキャッシュデータの管理情報１４１２と、識別子Ｂのキャッシュデータの管理情報１４１３とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ヘッド１４３１とテイル１４３０で表される参照日時が１９：３０から１９：３９のグループである。最古グループと最新グループの間には、例えば、ヘッド１４２１およびテイル１４２０で表されるリストに、参照日時が１２：１０から１２：１９のグループに属するキャッシュデータの管理情報が格納される。
【０１２１】
識別子Ｃのキャッシュデータ１４０３が生成された場合、キャッシュ登録部２１１が、キャッシュ記憶部２３１に識別子Ｃと、識別子Ｃに対応するキャッシュデータの実体と、参照日時１９：３９：４３とを保存する。さらに、管理情報登録部２２１が、最新グループのテイル側に、識別子Ｃのキャッシュデータの管理情報１４３２を登録する。
【０１２２】
ここで、第２の実施の形態にかかるキャッシュ制御装置１０００においては、登録したグループのグループサイズ１４４０に、登録したキャッシュデータのサイズを加算する点が、第１の実施の形態にかかるキャッシュ制御装置１０３と異なる。すなわち、登録したグループのグループサイズである９１３２４５に、登録したキャッシュデータのサイズ９４６３２が加算され、グループサイズ１４４０の値が１００７８７７に更新される。
【０１２３】
識別子Ｂのキャッシュデータ１４０２が時刻１２：１３：３１に参照された場合、参照日時更新部２１６が、キャッシュ記憶部２３１に格納されたキャッシュデータ１４０２の参照日時を、１２：１３：３１に更新する。
【０１２４】
図１５−１、図１５―２は、第２の実施の形態にかかるキャッシュ制御装置１０００において、キャッシュデータが削除されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部１０１１のキャッシュデータの格納の一例を示した説明図である。
【０１２５】
図１５−１、図１５−２は、図１４−１、図１４−２において、識別子Ｂのキャッシュデータが参照され、識別子Ｃのキャッシュデータ１４０３が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
【０１２６】
まず、削除判定部２２４が、ヘッド１５１１およびテイル１５１０で表される最古グループの先頭に存在する管理情報１５１２の識別子Ａを削除候補として取得する。さらに、参照日時取得部２１５が、識別子Ａのキャッシュデータの参照日時１２：０３：０６を、キャッシュ記憶部２３１から取得する。参照日時１２：０３：０６は、最古グループの日時の範囲内であるので、削除判定部２２４は、識別子Ａのキャッシュデータを削除すると判定する。
【０１２７】
従って、キャッシュ削除部２１２により、キャッシュ記憶部２３１から識別子Ａのキャッシュデータ１５０１が削除され、管理情報削除部２２３により、キャッシュ管理情報記憶部２４１から、識別子Ａのキャッシュデータの管理情報１５１２が削除される。また、総キャッシュサイズから、識別子Ａのキャッシュデータのサイズ９８３４が減算される。
【０１２８】
ここで、第２の実施の形態にかかるキャッシュ制御装置１０００においては、最古グループのグループサイズ１５４０から、識別子Ａのキャッシュデータのサイズを減算する点が、第１の実施の形態にかかるキャッシュ制御装置１０３と異なる。すなわち、最古グループのグループサイズである１３９７３２から、削除した識別子Ａのキャッシュデータのサイズ９８３４が減算され、グループサイズ１５４０の値が１２９８９８に更新される。
【０１２９】
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部２２４は、次の削除候補として管理情報１５１３の識別子Ｂを取得する。さらに、参照日時取得部２１５が、識別子Ｂのキャッシュデータの参照日時１２：１３：３１を、キャッシュ記憶部２３１から取得する。参照日時１２：１３：３１は、最古グループの日時の範囲内ではないので、削除判定部２２４は、識別子Ｂのキャッシュデータを削除すると判定しない。
【０１３０】
第２の実施の形態にかかるキャッシュ制御装置１０３においては、識別子Ｂのキャッシュデータの管理情報をすぐに移動せず、移動先の候補となるグループのグループサイズ等から、移動せずに当該データを削除するか否か判定する点が、第１の実施の形態にかかるキャッシュ制御装置１０３と異なる。
【０１３１】
すなわち、移動先の候補となるグループまでの全グループのグループサイズ１５４０、１５４１を加算し、これが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下である場合には当該キャッシュデータを移動せずに削除する。例えば、総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値が２５００００であったとすると、グループサイズ１５４０の値１３９７３２と、グループサイズ１５４１の値９６４９２とを加算した値である２３６２２４は当該減算した値以下であるため、識別子Ｂのキャッシュデータ１５０２および識別子Ｂのキャッシュデータの管理情報は移動せずに削除される。
【０１３２】
このように、第２の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの削除時に削除優先度と参照日時に加え、グループサイズを参照して削除するキャッシュデータを決定することができる。これにより、キャッシュデータ削除時の管理情報の移動回数を低減させ、スループットを向上させることができる。
【０１３３】
（第３の実施の形態）
第３の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報を予め定められた日時の範囲ごとにグループに分けて削除優先度順にキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と同一の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時を参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
【０１３４】
図１６は、第３の実施の形態にかかるキャッシュ制御装置１６００の構成を示すブロック図である。同図に示すように、キャッシュ制御装置１６００は、通信部２０１と、キャッシュ記憶制御部２１０と、キャッシュ管理部２２０とを備えている。また、第３の実施の形態にかかるキャッシュ制御装置１６００は、ＨＤＤ１６１０にキャッシュ記憶部２３１と、キャッシュ管理情報記憶部１６１１と、総キャッシュサイズ記憶部１６１２とを備えている。
【０１３５】
図１６に示すように、第３の実施の形態においては、キャッシュ管理情報記憶部１６１１および総キャッシュサイズ記憶部１６１２を、キャッシュ記憶部２３１と同一の記憶装置であるＨＤＤ１６１０内に格納したことが、第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる構成を表すブロック図である図２と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１３６】
図１７は、キャッシュ管理情報記憶部１６１１の構造の一例を示す説明図である。同図に示すように、キャッシュ管理情報記憶部１６１１は、予め定められた時間間隔で分割されたグループごとに、日時をファイル名としたファイル１７０１ａ〜１７０１ｃによりキャッシュデータの管理情報を格納している。また、グループ内では、生成日時、またはグループを移動したときはその移動日時の古い順にファイルの先頭にくるようにキャッシュデータの管理情報を格納している。すなわち、ファイルの先頭側に削除優先度が高いデータがくるように管理情報が格納される。
【０１３７】
また、同図に示すように、キャッシュデータの管理情報としては、キャッシュデータの識別子１７０２と、キャッシュデータのサイズを表すキャッシュサイズ１７０３とが格納されている。このように、第３の実施の形態にかかるキャッシュ制御装置１６００においては、キャッシュデータの管理情報を一般的なファイルシステムを利用して記憶する点が、第１および第２の実施の形態にかかるキャッシュ制御装置と異なっている。
【０１３８】
同図においては、グループを分割する時間間隔を１０分とし、参照日時が１２：００から１２：０９である最も古いグループに、識別子Ａのキャッシュデータの管理情報１７０４と識別子Ｂのキャッシュデータの管理情報１７０５とが、参照日時が１９：３０から１９：３９である最も新しいグループに識別子Ｃキャッシュデータの管理情報１７０６が格納されている状態の例が示されている。
【０１３９】
図１８−１、図１８―２は、第３の実施の形態にかかるキャッシュ制御装置１６００において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部１６１１のキャッシュデータの格納の一例を示した説明図である。
【０１４０】
図１８−１は、キャッシュ記憶部２３１に記憶されているキャッシュデータの一例を示している。図１８−２は、図１８−１に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部１６１１に記憶されているキャッシュ管理情報の一例を示している。
【０１４１】
図１８−１において、キャッシュ記憶部２３１には、時刻１２：０３：０６に生成された識別子Ａのキャッシュデータ１８０１と、時刻１２：０８：０８に生成された識別子Ｂのキャッシュデータ１８０２とが記憶されており、その後、キャッシュデータ１８０２が時刻１２：１３：３１に参照され、識別子Ｃのキャッシュデータ１８０３が時刻１９：３９：４３に生成されたことを示している。
【０１４２】
図１８−２におけるキャッシュ管理情報記憶部２４１は、グループに分割するための日時の範囲を１０分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が１２：００から１２：０９のグループ１８１１であり、ファイル名が“2004/08/28_12:00”で表されている。グループ１８１１の中には、識別子Ａのキャッシュデータの管理情報１８１４と、識別子Ｂのキャッシュデータの管理情報１８１５とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ファイル名が“2004/08/28_19:30”で表される参照日時が１９：３０から１９：３９のグループ１８１３である。最古グループと最新グループの間には、例えば、ファイル名が“2004/08/28_12:10”で表される、参照日時が１２：１０から１２：１９のグループ１８１２に属するキャッシュデータの管理情報が格納される。
【０１４３】
識別子Ｃのキャッシュデータ１８０３が生成された場合、キャッシュ登録部２１１が、キャッシュ記憶部２３１に識別子Ｃと、識別子Ｃに対応するキャッシュデータの実体と、参照日時１９：３９：４３とを保存する。さらに、管理情報登録部２２１が、最新のグループ１８１３のファイルの最後尾に、識別子Ｃのキャッシュデータの管理情報１８１６を登録する。
【０１４４】
識別子Ｂのキャッシュデータ１８０２が時刻１２：１３：３１に参照された場合、参照日時更新部２１６が、キャッシュ記憶部２３１に格納されたキャッシュデータ１８０２の参照日時を、１２：１３：３１に更新する。
【０１４５】
図１９−１、図１９―２は、第３の実施の形態にかかるキャッシュ制御装置１６００において、キャッシュデータが削除されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部１６１１のキャッシュデータの格納の一例を示した説明図である。
【０１４６】
図１９−１、図１９−２は、図１８−１、図１８−２において、識別子Ｂのキャッシュデータが参照され、識別子Ｃのキャッシュデータ１８０３が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
【０１４７】
まず、削除判定部２２４が、ファイル名“2004/08/28_12:00”で表される最古グループ１９１１の先頭に存在する管理情報１９１３の識別子Ａを削除候補として取得する。さらに、参照日時取得部２１５が、識別子Ａのキャッシュデータの参照日時１２：０３：０６を、キャッシュ記憶部２３１から取得する。参照日時１２：０３：０６は、最古グループの日時の範囲内であるので、削除判定部２２４は、識別子Ａのキャッシュデータを削除すると判定する。
【０１４８】
従って、キャッシュ削除部２１２により、キャッシュ記憶部２３１から識別子Ａのキャッシュデータ１９０１が削除され、管理情報削除部２２３により、キャッシュ管理情報記憶部２４１から、識別子Ａのキャッシュデータの管理情報１９１３が削除される。また、総キャッシュサイズから、識別子Ａのキャッシュデータのサイズ９８３４が減算される。
【０１４９】
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部２２４は、次の削除候補として管理情報１９１４の識別子Ｂを取得する。さらに、参照日時取得部２１５が、識別子Ｂのキャッシュデータの参照日時１２：１３：３１を、キャッシュ記憶部２３１から取得する。参照日時１２：１３：３１は、最古グループの日時の範囲内ではないので、削除判定部２２４は、識別子Ｂのキャッシュデータを削除すると判定しない。
【０１５０】
そこで、管理情報移動部２２２は、ファイル名“2004/08/28_12:10”で表される参照日時が１２：１０から１２：１９のグループ１９１２を、識別子Ｂのキャッシュデータの移動先として選択し、グループの最後尾に識別子Ｂのキャッシュデータの管理情報１９１５を移動する。
【０１５１】
このように、第３の実施の形態にかかるキャッシュ制御装置は、容量の問題等によりキャッシュ記憶部とキャッシュ管理情報記憶部を同一の記憶媒体上に保存する場合においても、参照時のキャッシュ制御装置の処理負荷を軽減させ、スループットを向上させることができる。また、一般的なファイルシステムを利用してキャッシュ管理情報を管理しているため、ＲＡＭをファイルシステムとして使用する構成においても本発明を適用することができる。従って、必要に応じてキャッシュ記憶部とキャッシュ管理情報記憶部を別個の記憶媒体上に保存するように容易に構成を変更することができるという利点がある。
【０１５２】
（第４の実施の形態）
第４の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの管理情報にさらにグループごとのキャッシュデータのサイズの合計を表すグループサイズを加えてキャッシュ管理情報記憶部に保存し、キャッシュデータの実体や参照日時を前記キャッシュ管理情報記憶部と同一の記憶媒体上のキャッシュ記憶部に保存し、キャッシュデータの削除時に削除優先度と参照日時とグループサイズを参照して削除するキャッシュデータを決定し、当該キャッシュデータを削除するものである。
【０１５３】
図２０は、第４の実施の形態にかかるキャッシュ制御装置２０００の構成を示すブロック図である。同図に示すように、キャッシュ制御装置２０００は、通信部２０１と、キャッシュ記憶制御部２１０と、キャッシュ管理部２２０とを備えている。また、第４の実施の形態にかかるキャッシュ制御装置１６００は、ＨＤＤ２０１０にキャッシュ記憶部２３１と、キャッシュ管理情報記憶部２０１１と、総キャッシュサイズ記憶部１６１２とを備えている。
【０１５４】
図２０に示すように、第４の実施の形態においては、キャッシュ管理情報記憶部２０１１に記憶する項目としてグループサイズを追加したことが第３の実施の形態と異なっている。その他の構成および機能は、第３の実施の形態にかかる構成を表すブロック図である図１６と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１５５】
また、キャッシュ管理情報記憶部２０１１は、第２の実施の形態におけるキャッシュ管理情報記憶部１０１１と同様に、キャッシュデータの管理情報として、キャッシュデータの識別子と、キャッシュデータのサイズを表すキャッシュサイズと、グループごとにグループに属するキャッシュデータのサイズの合計を表すグループサイズとを格納している。
【０１５６】
図２１−１、図２１―２は、第４の実施の形態にかかるキャッシュ制御装置２０００において、キャッシュデータが新規登録または参照されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部２０１１のキャッシュデータの格納の一例を示した説明図である。
【０１５７】
図２１−１は、キャッシュ記憶部２３１に記憶されているキャッシュデータの一例を示している。図２１−２は、図２１−１に示されたキャッシュデータに対応する、キャッシュ管理情報記憶部２４１に記憶されているキャッシュ管理情報の一例を示している。
【０１５８】
図２１−１において、キャッシュ記憶部２３１には、時刻１２：０３：０６に生成された識別子Ａのキャッシュデータ２１０１と、時刻１２：０８：０８に生成された識別子Ｂのキャッシュデータ２１０２とが記憶されており、その後、キャッシュデータ２１０２が時刻１２：１３：３１に参照され、識別子Ｃのキャッシュデータ２１０３が時刻１９：３９：４３に生成されたことを示している。
【０１５９】
図２１−２におけるキャッシュ管理情報記憶部２０１１は、グループに分割するための日時の範囲を１０分とした場合の格納例を示している。この場合、日時の範囲が最も古いグループを表す最古グループは、参照日時が１２：００から１２：０９のグループ２１１１であり、ファイル名が“2004/08/28_12:00”で表されている。グループ２１１１の中には、識別子Ａのキャッシュデータの管理情報２１１４と、識別子Ｂのキャッシュデータの管理情報２１１５とが格納されている。また、日時の範囲が最も新しいグループを表す最新グループは、ファイル名が“2004/08/28_19:30”で表される参照日時が１９：３０から１９：３９のグループ２１１３である。最古グループと最新グループの間には、例えば、ファイル名が“2004/08/28_12:10”で表される、参照日時が１２：１０から１２：１９のグループ２１１２に属するキャッシュデータの管理情報が格納される。
【０１６０】
識別子Ｃのキャッシュデータ２１０３が生成された場合、キャッシュ登録部２１１が、キャッシュ記憶部２３１に識別子Ｃと、識別子Ｃに対応するキャッシュデータの実体と、参照日時１９：３９：４３とを保存する。さらに、管理情報登録部２２１が、最新グループのテイル側に、識別子Ｃのキャッシュデータの管理情報２１１６を登録する。
【０１６１】
ここで、第４の実施の形態にかかるキャッシュ制御装置２０００においては、登録したグループのグループサイズ２１２０に、登録したキャッシュデータのサイズを加算する点が、第３の実施の形態にかかるキャッシュ制御装置１６００と異なる。すなわち、登録したグループのグループサイズである９１３２４５に、登録したキャッシュデータのサイズ９４６３２が加算され、グループサイズ２１２０の値が１００７８７７に更新される。
【０１６２】
識別子Ｂのキャッシュデータ２１０２が時刻１２：１３：３１に参照された場合、参照日時更新部２１６が、キャッシュ記憶部２３１に格納されたキャッシュデータ２１０２の参照日時を、１２：１３：３１に更新する。
【０１６３】
図２２−１、図２２―２は、第４の実施の形態にかかるキャッシュ制御装置２０００において、キャッシュデータが削除されるときのキャッシュ記憶部２３１とキャッシュ管理情報記憶部２０１１のキャッシュデータの格納の一例を示した説明図である。
【０１６４】
図２２−１、図２２−２は、図２１−１、図２１−２において、識別子Ｂのキャッシュデータが参照され、識別子Ｃのキャッシュデータ２１０３が登録された後、総キャッシュサイズが上限値を超えたため削除処理が実行された場合の例を示している。
【０１６５】
まず、削除判定部２２４が、ファイル名“2004/08/28_12:00”で表される最古グループ２２１１の先頭に存在する管理情報２２１２の識別子Ａを削除候補として取得する。さらに、参照日時取得部２１５が、識別子Ａのキャッシュデータの参照日時１２：０３：０６を、キャッシュ記憶部２３１から取得する。参照日時１２：０３：０６は、最古グループの日時の範囲内であるので、削除判定部２２４は、識別子Ａのキャッシュデータを削除すると判定する。
【０１６６】
従って、キャッシュ削除部２１２により、キャッシュ記憶部２３１から識別子Ａのキャッシュデータ２２０１が削除され、管理情報削除部２２３により、キャッシュ管理情報記憶部２４１から、識別子Ａのキャッシュデータの管理情報２２１２が削除される。また、総キャッシュサイズから、識別子Ａのキャッシュデータのサイズ９８３４が減算される。
【０１６７】
ここで、第４の実施の形態にかかるキャッシュ制御装置２０００においては、最古グループのグループサイズ２２２０から、識別子Ａのキャッシュデータのサイズを減算する点が、第３の実施の形態にかかるキャッシュ制御装置１６００と異なる。すなわち、最古グループのグループサイズである１３９７３２から、削除した識別子Ａのキャッシュデータのサイズ９８３４が減算され、グループサイズ２２２０の値が１２９８９８に更新される。
【０１６８】
減算後の総キャッシュサイズが、予め定められた下限値より大きい場合は、さらに削除が必要であるため、削除判定部２２４は、次の削除候補として管理情報２２１３の識別子Ｂを取得する。さらに、参照日時取得部２１５が、識別子Ｂのキャッシュデータの参照日時１２：１３：３１を、キャッシュ記憶部２３１から取得する。参照日時１２：１３：３１は、最古グループの日時の範囲内ではないので、削除判定部２２４は、識別子Ｂのキャッシュデータを削除すると判定しない。
【０１６９】
第４の実施の形態にかかるキャッシュ制御装置１０３においては、識別子Ｂのキャッシュデータの管理情報をすぐに移動せず、移動先の候補となるグループのグループサイズ等から、移動せずに当該データを削除するか否か判定する点が、第３の実施の形態にかかるキャッシュ制御装置１６００と異なる。
【０１７０】
すなわち、移動先の候補となるグループまでの全グループのグループサイズ２２２０、２２２１を加算し、これが総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値以下である場合には当該キャッシュデータを移動せずに削除する。例えば、総キャッシュサイズから予め定められたキャッシュ容量の下限値を減算した値が２５００００であったとすると、グループサイズ２２２０の値１３９７３２と、グループサイズ２２２１の値９６４９２とを加算した値である２３６２２４は当該減算した値以下であるため、識別子Ｂのキャッシュデータおよび識別子Ｂのキャッシュデータの管理情報は移動せずに削除される。
【０１７１】
このように、第４の実施の形態にかかるキャッシュ制御装置は、キャッシュデータの削除時に削除優先度と参照日時に加え、グループサイズを参照して削除するキャッシュデータを決定することができる。これにより、キャッシュデータ削除時の管理情報の移動回数を低減させ、スループットを向上させることができる。また、容量の問題等によりキャッシュ記憶部とキャッシュ管理情報記憶部を同一の記憶媒体上に保存する場合においても、参照時のキャッシュ制御装置の処理負荷を軽減させ、スループットを向上させることができる。さらに、一般的なファイルシステムを利用してキャッシュ管理情報を管理しているため、ＲＡＭをファイルシステムとして使用する構成においても本発明を適用することができる。従って、必要に応じてキャッシュ記憶部とキャッシュ管理情報記憶部を別個の記憶媒体上に保存するように容易に構成を変更することができるという利点がある。
【０１７２】
第１〜第４の実施の形態にかかるキャッシュ制御装置は、ＣＰＵなどの制御装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭなどの記憶装置と、ＨＤＤ、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【０１７３】
第１〜第４の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１７４】
また、第１〜第４の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、第１〜第４の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
【０１７５】
また、第１〜第４の実施の形態のキャッシュ制御プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１７６】
第１〜第４の実施の形態にかかるキャッシュ制御装置で実行されるキャッシュ制御プログラムは、上述した各部（キャッシュ登録部、キャッシュ削除部、キャッシュ参照部、キャッシュ検索部、参照日時取得部、参照日時更新部、管理情報登録部、管理情報移動部、管理情報削除部、削除判定部、グループ検索部、グループ削除部、グループ生成部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からキャッシュ制御プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、キャッシュ登録部、キャッシュ削除部、キャッシュ参照部、キャッシュ検索部、参照日時取得部、参照日時更新部、管理情報登録部、管理情報移動部、管理情報削除部、削除判定部、グループ検索部、グループ削除部、グループ生成部が主記憶装置上に生成されるようになっている。
【産業上の利用可能性】
【０１７７】
以上のように、本発明にかかるキャッシュ制御装置、キャッシュ制御方法およびキャッシュ制御プログラムは、キャッシュデータの実体とキャッシュデータの管理情報を分けて管理し、参照日時によって削除するキャッシュデータを決定するキャッシュ制御システムに適している。
【図面の簡単な説明】
【０１７８】
【図１】キャッシュ制御装置が適用されるネットワークシステムの全体構成を示す説明図である。
【図２】第１の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。
【図３】キャッシュ記憶部の構造の一例を示す説明図である。
【図４】キャッシュ管理情報記憶部の構造の一例を示す説明図である。
【図５】第１の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。
【図６】第１の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを参照する処理の全体の流れを示すフローチャートである。
【図７】第１の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを削除する処理の全体の流れを示すフローチャートである。
【図８−１】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図８−２】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図９−１】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【図９−２】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【図１０】第２の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。
【図１１】キャッシュ管理情報記憶部の構造の一例を示す説明図である。
【図１２】第２の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを新規に登録する処理の全体の流れを示すフローチャートである。
【図１３】第２の実施の形態にかかるキャッシュ制御装置におけるキャッシュデータを削除する処理の全体の流れを示すフローチャートである。
【図１４−１】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図１４−２】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図１５−１】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【図１５−２】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【図１６】第３の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。
【図１７】キャッシュ管理情報記憶部の構造の一例を示す説明図である。
【図１８−１】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図１８−２】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図１９−１】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【図１９−２】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【図２０】第４の実施の形態にかかるキャッシュ制御装置の構成を示すブロック図である。
【図２１−１】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図２１−２】キャッシュデータが新規登録または参照されるときのキャッシュデータの格納の一例を示した説明図である。
【図２２−１】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【図２２−２】キャッシュデータが削除されるときのキャッシュデータの格納の一例を示した説明図である。
【符号の説明】
【０１７９】
１０１ａ、１０１ｂ、１０１ｃ  Ｗｅｂサーバ
１０２  インターネット
１０３  キャッシュ制御装置（プロキシサーバ）
１０４  ＨＤＤ
１０５  ＬＡＮ
１０６ａ、１０６ｂ、１０６ｃ  Ｗｅｂクライアント
１０７ａ、１０７ｂ、１０７ｃ  ＨＤＤ
２０１  通信部
２１０  キャッシュ記憶制御部
２１１  キャッシュ登録部
２１２  キャッシュ削除部
２１３  キャッシュ参照部
２１４  キャッシュ検索部
２１５  参照日時取得部
２１６  参照日時更新部
２２０  キャッシュ管理部
２２１  管理情報登録部
２２２  管理情報移動部
２２３  管理情報削除部
２２４  削除判定部
２２５  グループ検索部
２２６  グループ削除部
２２７  グループ生成部
２３１  キャッシュ記憶部
２４０  ＲＡＭ
２４１  キャッシュ管理情報記憶部
２４２  総キャッシュサイズ記憶部
４０１  ヘッド
４０２  テイル
４０３  識別子
４０４  キャッシュサイズ
４１０、４１１、４１２  管理情報
８０１、８０２、８０３  キャッシュデータ
８１０、８２０、８３０  テイル
８１１、８２１、８３１  ヘッド
８１２、８１３、８３２  管理情報
９０１  キャッシュデータ
９１０、９２０  テイル
９１１、９２１  ヘッド
９１２、９１３、９２２  管理情報
１０００  キャッシュ制御装置
１０１０  ＲＡＭ
１０１１  キャッシュ管理情報記憶部
１１０１  グループサイズ
１４０１、１４０２、１４０３  キャッシュデータ
１４１０、１４２０、１４３０  テイル
１４１１、１４２１、１４３１  ヘッド
１４１２、１４１３、１４３２  管理情報
１４４０  グループサイズ
１５０１、１５０２  キャッシュデータ
１５１０  テイル
１５１１  ヘッド
１５１２、１５１３  管理情報
１５４０、１５４１  グループサイズ
１６００  キャッシュ制御装置
１６１０  ＨＤＤ
１６１１  キャッシュ管理情報記憶部
１６１２  総キャッシュサイズ記憶部
１７０１ａ、１７０１ｂ、１７０１ｃ  ファイル
１７０２  識別子
１７０３  キャッシュサイズ
１７０４、１７０５、１７０６  管理情報
１８０１、１８０２、１８０３  キャッシュデータ
１８１１、１８１２、１８１３  グループ
１８１４、１８１５、１８１６  管理情報
１９０１  キャッシュデータ
１９１１  最古グループ
１９１２  グループ
１９１３、１９１４、１９１５  管理情報
２０００  キャッシュ制御装置
２０１０  ＨＤＤ
２０１１  キャッシュ管理情報記憶部
２１０１、２１０２、２１０３  キャッシュデータ
２１１１、２１１２、２１１３  グループ
２１１４、２１１５、２１１６  管理情報
２１２０  グループサイズ
２２０１  キャッシュデータ
２２１１  最古グループ
２２１２、２２１３  管理情報
２２２０、２２２１  グループサイズ
【図１】
2006185169.tif 000003
【図２】
2006185169.tif 000004
【図３】
2006185169.tif 000005
【図４】
2006185169.tif 000006
【図５】
2006185169.tif 000007
【図６】
2006185169.tif 000008
【図７】
2006185169.tif 000009
【図８−１】
2006185169.tif 000010
【図８−２】
2006185169.tif 000011
【図９−１】
2006185169.tif 000012
【図９−２】
2006185169.tif 000013
【図１０】
2006185169.tif 000014
【図１１】
2006185169.tif 000015
【図１２】
2006185169.tif 000016
【図１３】
2006185169.tif 000017
【図１４−１】
2006185169.tif 000018
【図１４−２】
2006185169.tif 000019
【図１５−１】
2006185169.tif 000020
【図１５−２】
2006185169.tif 000021
【図１６】
2006185169.tif 000022
【図１７】
2006185169.tif 000023
【図１８−１】
2006185169.tif 000024
【図１８−２】
2006185169.tif 000025
【図１９−１】
2006185169.tif 000026
【図１９−２】
2006185169.tif 000027
【図２０】
2006185169.tif 000028
【図２１−１】
2006185169.tif 000029
【図２１−２】
2006185169.tif 000030
【図２２−１】
2006185169.tif 000031
【図２２−２】
2006185169.tif 000032