(57)【要約】【課題】ハードディスクにキャッシュデータを保存するキャッシュ装置において大量のキャッシュデータを効率的に容量制限できるディスクキャッシュ装置を提供する。【解決手段】キャッシュ書き込み装置６が新たなキャッシュデータを書き込む際には、新たなキャッシュデータをキャッシュデータ保存ディスク８にファイルとして書き込むと共にキャッシュ履歴保存ディスク１０の履歴ファイルに保存したキャッシュデータのファイル名を追加する。ディスク容量監視装置１２がキャッシュデータ保存ディスク８のディスク残容量を定期的に監視し、所定の残容量を下回った場合、キャッシュ削除装置１４を作動させる。キャッシュ削除装置１４は、キャッシュ履歴保存ディスク１０内のキャッシュ履歴ファイルを読み込んでキャッシュ履歴ファイルに記載されている所定数のファイル名を読み込み、キャッシュデータ保存ディスク８内の、当該読み込んだ所定数のファイル名に該当するファイルを削除すると共にキャッシュ履歴ファイルの読み込んだ所定数のファイル名をキャッシュ履歴ファイルから削除する。【選択図】  図１
2004220479.tif 000002
【特許請求の範囲】
【請求項１】
ディスクキャッシュ装置であって、
書き込まれたキャッシュデータをファイルとして保存するキャッシュデータ保存ディスクと、
書き込まれたキャッシュデータの履歴を履歴ファイルとして保存するキャッシュ履歴保存ディスクと、
新たなキャッシュデータを前記キャッシュデータ保存ディスクにファイルとして書き込むと共に前記キャッシュ履歴保存ディスクの履歴ファイルに前記保存したキャッシュデータのファイル名を追加するキャッシュ書き込み装置と、
前記キャッシュデータ保存ディスクからキャッシュデータを読み込むキャッシュ読み込み装置と、
前記キャッシュ履歴保存ディスク内のキャッシュ履歴ファイルを読み込んで前記キャッシュ履歴ファイルに記載されている所定数のファイル名を読み込み、前記キャッシュデータ保存ディスク内の、当該読み込んだ所定数のファイル名に該当するファイルを削除すると共に前記キャッシュ履歴ファイルの前記読み込んだ所定数のファイル名を前記キャッシュ履歴ファイルから削除するキャッシュ削除装置と、
前記キャッシュデータ保存ディスクのディスク残容量を定期的に監視し、所定の残容量を下回った場合、前記キャッシュ削除装置を作動させるディスク容量監視装置と、
からなるディスクキャッシュ装置。
【請求項２】
前記履歴ファイルは複数のファイルに分割されており、分割された１つのファイルには所定数までのファイル名が書き込み可能となっていて当該ファイルに前記所定数のファイル名が書き込み終わったら次の新たなファイルにファイル名が書き込まれるようになっており、前記キャッシュ削除装置では前記キャッシュ履歴ファイルから個々のファイル単位でファイル名を削除するようになっている請求項１のディスクキャッシュ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディスクキャッシュ装置に関し、特にハードディスクにキャッシュデータを保存するディスクキャッシュ装置に関する。
【０００２】
【従来の技術】
近年、コンピュータシステムにおいては、その２次記憶装置として用いられている磁気ディスク装置のアクセス速度の高速化のために、ディスクキャッシュ装置が用いられている。ディスクキャッシュ装置は、ホストＣＰＵとハードディスク装置間で入出力されるデータを一時的に保持するためのメモリであり、ハードディスク装置上のデータの写しの一部が格納され、再読み込み時に利用することによりディスクアクセスの速度を向上させている。
【０００３】
また、Ｐｒｏｘｙサーバ等では、元データがネットワーク越しに存在するので元データを得るためにはネットワーク越しのアクセスを要するため、元データの読み出しコストが高くなる。この場合、メモリにキャッシュするのみならず、メモリよりは遅いが、ネットワークよりは速いハードディスクなどの２次記憶装置を用いてキャッシュを実装する必要がある。
【０００４】
しかし、ハードディスクにキャッシュする場合、膨大な量のデータをキャッシュすることができる反面、ディスクが一杯になった際に古いキャッシュデータ又はヒット率の低いキャッシュデータを削除して、キャッシュできるディスク領域を回復させる必要がある。
【０００５】
従来、この回復作業は手作業で行っていたため、システムの運転の自動化は困難であった。また、自動的にこれらの大量のディスクキャッシュでＬＲＵ（ＬｅａｓｔＲｅｃｅｎｔｌｙ  Ｕｓｅｄ）  もしくはＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  ｏｕｔ）を実現するにはデータベースを用いなければならず、この場合、逆にデータベース装置のメンテナンスが必要になるため、メンテナンスなしでの自動運転を実現することができない。
【０００６】
下記特許文献１は、ディスクキャッシュを利用するか否かの判断と利用方法の設定をディスクキャッシュ対象データ設定手段が自動的に行うようにした技術を開示しているが、ディスクにキャッシュされたデータが一杯になったときの自動整理手段については開示がない。
【０００７】
【特許文献１】
特開平４−１１３４１４号公報
【０００８】
【発明が解決しようとする課題】
本発明は、上記の事情を考慮し、ハードディスクにキャッシュデータを保存するキャッシュ装置において大量のキャッシュデータを効率的に容量制限できるディスクキャッシュ装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
請求項１の本発明は、ディスクキャッシュ装置であって、
書き込まれたキャッシュデータをファイルとして保存するキャッシュデータ保存ディスクと、
書き込まれたキャッシュデータの履歴を履歴ファイルとして保存するキャッシュ履歴保存ディスクと、
新たなキャッシュデータを前記キャッシュデータ保存ディスクにファイルとして書き込むと共に前記キャッシュ履歴保存ディスクの履歴ファイルに前記保存したキャッシュデータのファイル名を追加するキャッシュ書き込み装置と、
前記キャッシュデータ保存ディスクからキャッシュデータを読み込むキャッシュ読み込み装置と、
前記キャッシュ履歴保存ディスク内のキャッシュ履歴ファイルを読み込んで前記キャッシュ履歴ファイルに記載されている所定数のファイル名を読み込み、前記キャッシュデータ保存ディスク内の、当該読み込んだ所定数のファイル名に該当するファイルを削除すると共に前記キャッシュ履歴ファイルの前記読み込んだ所定数のファイル名を前記キャッシュ履歴ファイルから削除するキャッシュ削除装置と、
前記キャッシュデータ保存ディスクのディスク残容量を定期的に監視し、所定の残容量を下回った場合、前記キャッシュ削除装置を作動させるディスク容量監視装置と、
からなるディスクキャッシュ装置、からなる。
【００１０】
請求項１の本発明によれば、キャッシュ書き込み装置が新たなキャッシュデータを書き込む際には、新たなキャッシュデータを前記キャッシュデータ保存ディスクにファイルとして書き込むと共に前記キャッシュ履歴保存ディスクの履歴ファイルに前記保存したキャッシュデータのファイル名を追加する。
【００１１】
ディスク容量監視装置がキャッシュデータ保存ディスクのディスク残容量を定期的に監視し、所定の残容量を下回った場合、前記キャッシュ削除装置を作動させる。すなわち、前記キャッシュ削除装置は、前記キャッシュ履歴保存ディスク内のキャッシュ履歴ファイルを読み込んで前記キャッシュ履歴ファイルに記載されている所定数のファイル名を読み込み、前記キャッシュデータ保存ディスク内の、当該読み込んだ所定数のファイル名に該当するファイルを削除すると共に前記キャッシュ履歴ファイルの前記読み込んだ所定数のファイル名を前記キャッシュ履歴ファイルから削除する。
【００１２】
請求項２の本発明は、前記履歴ファイルは複数のファイルに分割されており、分割された１つのファイルには所定数までのファイル名が書き込み可能となっていて当該ファイルに前記所定数のファイル名が書き込み終わったら次の新たなファイルにファイル名が書き込まれるようになっており、前記キャッシュ削除装置では前記キャッシュ履歴ファイルから個々のファイル単位でファイル名を削除するようになっている請求項１のディスクキャッシュ装置、からなる。
【００１３】
請求項２の本発明によれば、キャッシュ履歴ファイルは複数のファイルに分割されており、分割された１つのファイルにはファイル名が所定数書き込み可能になっていて、所定数を超えるファイル名が書き込まれる必要がでてきたら、次の新しいファイルにファイル名を書き込むようになっている。このため、前記キャッシュ削除装置でキャッシュ履歴ファイルからファイル名を削除する際は、個々のファイル単位でファイルを削除することができ、ファイル名を削除する際に、例えば、先頭の所定数のファイル名を削除した後に同一ファイル中の残りのファイル名を前に詰める作業をしなくて済むので、作業がスピーディになりかつそのためのアルゴリズム等が必要なくなる。
【００１４】
【発明の実施の形態】
以下、添付図面に従って本発明の第１の実施の形態を詳説する。
【００１５】
図１は、第１の実施形態に係るディスクキャッシュ装置２の全体構成を示した図である。
【００１６】
ディスクキャッシュ装置２は、キャッシュ読み込み装置４、キャッシュ書き込み装置６、キャッシュデータ保存ディスク８、キャッシュ履歴保存ディスク１０、ディスク容量監視装置１２、キャッシュ削除装置１４、からなる。
【００１７】
キャッシュデータ保存ディスク８は、書き込まれたキャッシュデータを各々ファイルとして保存する。
【００１８】
キャッシュ履歴保存ディスク１０は、キャッシュデータ保存ディスク８に書き込まれたキャッシュデータの履歴を履歴ファイルとして保存する。履歴ファイルには、先に保存されたファイル名から順にファイル名が羅列されている。
【００１９】
キャッシュ書き込み装置６は、新たなキャッシュデータをキャッシュデータ保存ディスク８にファイルとして書き込み、キャッシュ履歴保存ディスク１０の履歴ファイルの末尾に、キャッシュデータ保存ディスク８に書き込んだキャッシュデータのファイル名を追加する。すなわち、新たなキャッシュファイルがキャッシュデータ保存ディスク８に書き込まれる毎に履歴ファイルの末尾にキャッシュファイルのファイル名が追加される。
【００２０】
キャッシュ読み込み装置４は、図示しないＣＰＵなどから読み込み指令を受けてキャッシュデータ保存ディスク８からデータを読み込む。
【００２１】
ディスク容量監視装置１２は、キャッシュデータ保存ディスク８のディスク残容量を定期的に監視し、所定の残容量を下回った場合、キャッシュ削除装置１４を作動させる。
【００２２】
キャッシュ削除装置１４は、ディスク容量監視装置１２においてキャッシュデータ保存ディスク８のディスク残容量が所定の残容量を下回った場合、キャッシュ履歴保存ディスク１０内のキャッシュ履歴ファイルを読み込み、履歴ファイルに記載されている複数のファイル名を先頭から所定の個数を読み込む。そしてキャッシュデータ保存ディスク８内の該当するファイルを削除する。すなわち、先に格納されていったファイルから削除される。キャッシュ履歴保存ディスク１０内のキャッシュ履歴ファイルにおいて、読み込んだ所定の個数のファイル名も削除される。
【００２３】
上述の通り、本形態のディスクキャッシュ装置２では、キャッシュが次々に追加されていってもＦＩＦＯ方式によりキャッシュデータ保存ディスク８のデータが溢れることがなく、このような管理を自動化できる。なお、キャッシュ履歴保存ディスク１０内の履歴ファイルの最大長は予め算出できるので、履歴ファイルのデータが溢れる心配はない。
【００２４】
上記第１の実施の形態では、キャッシュデータ保存ディスク８とキャッシュ履歴保存ディスク１０とを別々のディスクとしたが、これらは同一のディスク装置とすることもできる。この場合、ディスク容量監視装置１２により、キャッシュデータと履歴ファイルデータとの合計残容量を管理できるので、両データが保存ディスクから溢れる心配を確実に回避することができる。
【００２５】
第１の実施の形態の作用を図２を用いて説明する。
【００２６】
図２は、第１の実施の形態におけるキャッシュデータの削除手順を示したフローチャートである。
【００２７】
まず、キャッシュ書き込み装置６において、図示しないＣＰＵの指令によりキャッシュデータがキャッシュデータ保存ディスク８に保存される（ステップ２０）。すなわち、キャッシュデータ保存ディスク８には当該キャッシュデータがファイルとして格納される。
【００２８】
すると、保存したファイル名がキャッシュ履歴保存ディスク１０の履歴ファイルの末尾に追加される（ステップ２２）。
【００２９】
一方、ディスク容量監視装置１２では、キャッシュデータ保存ディスク８のディスク残容量をチェックしている（ステップ２４）。残容量が所定値以上の場合は、ステップ２４に戻る。残容量が所定値より少ない場合は、キャッシュ削除装置１４が作動し、キャッシュ履歴保存ディスク１０の履歴ファイルを読み込んで、履歴ファイルに記載されている複数のファイル名を先頭から所定の個数を読み込む（ステップ２６）。
【００３０】
キャッシュデータ保存ディスク８内の該当する所定数のファイルが削除される（ステップ２８）。ここでは、先に格納されていったファイルから削除される。
【００３１】
そして、キャッシュ履歴保存ディスク１０内のキャッシュ履歴ファイルにおいても読み込んだ所定の個数のファイル名が削除される（ステップ３０）。すなわち、古く付与されたファイル名が削除される。
【００３２】
この後、ステップ２４に戻る。
【００３３】
第２の実施の形態を説明する。
【００３４】
第２の実施の形態では、第１の実施の形態で用いたものと同じ部材には同一の番号を付してその説明を省略する。
【００３５】
第１の実施の形態において、キャッシュデータ保存ディスク８の容量が十分大きいにもかかわらず個々のファイルのキャッシュデータが少ないときには、キャッシュ履歴保存ディスク１０の履歴ファイルに書き込まれるファイル名のリストが数千万個を超える大量のリストとなる場合がある。このとき、キャッシュ履歴保存ディスク１０の履歴ファイル中、先頭の所定数のファイル名を読み込んでから、キャッシュデータ保存ディスク８内の該当するファイルを削除し、キャッシュ履歴保存ディスク１０の履歴ファイルの先頭部分の所定数のファイル名を削除する作業が困難になる場合がある。同一ファイルにおいて先頭部分の所定数のファイル名を削除した場合、同一ファイル中のあとに続くファイル名が前に詰められることを要するからであり、この前に詰める作業がキャッシュ履歴保存ディスク１０及びファイルシステムに大きな負荷を与えてしまうからである。なお、キャッシュデータ保存ディスク８内のキャッシュデータは、個々のデータが個々のファイルとして保存されているため、このような前に詰める際の負荷に係る問題は生じない。
【００３６】
この状況を回避するために、本形態では、キャッシュ履歴保存ディスク１０の履歴ファイルを複数のファイルに分割した。１つの履歴ファイルには所定の個数（例えば、１万個）までのファイル名しか書き込めないようにする。所定の個数より多くのファイル名を書き込む際には（例えば、１０００１個以上）、新たな履歴ファイルを作成してこの履歴ファイルの先頭から１０００１個目以降のファイル名を書き込む。履歴ファイルは、当該ファイルの作成時刻又は連番等を利用してキャッシュデータファイル作成時刻順にファイル名を並べることができる。この際に、ファイルシステムのタイムスタンプを利用してもよい。
【００３７】
キャッシュ削除装置１４で履歴ファイルからファイル名を削除する際は、最も古い履歴ファイルを開き、その中に記録されているファイル名の全てのキャッシュデータファイルをキャッシュデータ保存ディスク８から削除し、同時に履歴ファイルを削除する。履歴ファイルは個々のファイル単位で削除することができる。例えば、１万個のファイル名が格納されている履歴ファイルを削除する際は、ファイルごと削除するので、１万個のファイル名が一度に削除されることになる。ゆえに、ファイル名を削除する際には、先頭の所定数のファイル名を削除した後に同一ファイル中の残りのファイル名を前に詰める作業をしなくて済むので、作業がスピーディになりかつそのためのアルゴリズム等が必要なくなる。
【００３８】
第２の実施の形態の作用を図３を用いて説明する。
【００３９】
図３は、第２の実施の形態におけるキャッシュデータの削除手順を示したフローチャートである。
【００４０】
まず、キャッシュ書き込み装置６において、図示しないＣＰＵの指令によりキャッシュデータがキャッシュデータ保存ディスク８に保存される（ステップ３２）。すなわち、キャッシュデータ保存ディスク８には当該キャッシュデータがファイルとして格納される。
【００４１】
キャッシュ履歴保存ディスク１０の最後の履歴ファイルに記録されているファイル名の数が所定数以上かどうかチェックする（ステップ３４）。所定数以上の場合は、既存の最後の履歴ファイルに記録されているファイル名の数が一杯になったとして、別の新たな履歴ファイルを作成する（ステップ３６）。キャッシュデータ保存ディスク８に保存したファイルのファイル名を新たに作成した履歴ファイルに追加する（ステップ３８）。ステップ３４で、キャッシュ履歴保存ディスク１０の最後の履歴ファイルに記録されているファイル名の数が所定数より少ない場合は、キャッシュデータ保存ディスク８に保存したファイルのファイル名を現存する最後の履歴ファイルの末尾に追加する（ステップ３８）。
【００４２】
一方、ディスク容量監視装置１２では、キャッシュデータ保存ディスク８のディスク残容量をチェックしている（ステップ４０）。残容量が所定値以上の場合は、ステップ４０に戻る。残容量が所定値より少ない場合は、キャッシュ削除装置１４が作動し、キャッシュ履歴保存ディスク１０の最も古い履歴ファイルを読み込んで、当該履歴ファイルに記載されている複数のファイル名を読み込む（ステップ４２）。
【００４３】
キャッシュデータ保存ディスク８内の、前記読み込んだ複数のファイル名のファイルが削除される（ステップ４４）。キャッシュ履歴保存ディスク１０内のキャッシュ履歴ファイルにおいては当該最も古い履歴ファイルが削除される（ステップ４６）。
【００４４】
この後、ステップ４０に戻る。
【００４５】
上述の通り、本形態のディスクキャッシュ装置２では、キャッシュが次々に追加されていってもＦＩＦＯ方式によりキャッシュデータ保存ディスク８のデータが溢れることがなく、このような管理を自動化できる上、履歴ファイルにおけるファイル名を削除する際には、履歴ファイルごと削除するので、先頭の所定数のファイル名を削除した後に同一ファイル中の残りのファイル名を前に詰める作業をしなくて済み、作業がスピーディになりかつそのためのアルゴリズム等が必要なくなる。なお、キャッシュ履歴保存ディスク１０内の履歴ファイルの最大長は予め算出できるので、履歴ファイルのデータが溢れる心配はない。
【００４６】
上述の第１の実施の形態及び第２の実施の形態では、ＦＩＦＯ方式によりキャッシュデータ保存ディスク８のデータ及びキャッシュ履歴保存ディスク１０の所定数履歴ファイル名（又は履歴ファイル）を削除したが、ＦＩＦＯ形式でなく、ＬＲＵ方式によりキャッシュデータ保存ディスク８のデータ及びキャッシュ履歴保存ディスク１０の所定数履歴ファイル名を削除するようにしてもよい。
【００４７】
また、上記第１の実施の形態及び第２の実施の形態では、ネットワークリソースのキャッシュについて述べたが、ディスク装置よりも遅い全てのデータリソースのキャッシュに対しても有効である。
【００４８】
【発明の効果】
請求項１の本発明によれば、キャッシュデータ保存ディスクに保存されているキャッシュデータが多くなってきてキャッシュデータ保存ディスクのディスク残容量が所定の残容量を下回った場合、キャッシュデータディスク内の所定数のファイルを削除するので、キャッシュできるディスク領域が自動的に確保され、キャッシュデータ保存ディスクの容量の管理が自動化できる。
【００４９】
請求項２の本発明によれば、キャッシュ削除装置でキャッシュ履歴ファイルからファイル名を削除する際は、個々のファイル単位でファイルを削除することができ、ファイル名を削除する際に、例えば、先頭の所定数のファイル名を削除した後に同一ファイル中の残りのファイル名を前に詰める作業をしなくて済むので、削除する際の作動がスピーディになると共にそのためのアルゴリズム等を設ける必要がない。
【図面の簡単な説明】
【図１】ディスクキャッシュ装置の全体構成を示した図。
【図２】第１の実施の形態におけるキャッシュデータの削除手順を示したフローチャート。
【図３】第２の実施の形態におけるキャッシュデータの削除手順を示したフローチャート。
【符号の説明】
２…ディスクキャッシュ装置、４…キャッシュ読み込み装置、６…キャッシュ書き込み装置、８…キャッシュデータ保存ディスク、１０…キャッシュ履歴保存ディスク、１２…ディスク容量監視装置、１４…キャッシュ削除装置
【図１】
2004220479.tif 000003
【図２】
2004220479.tif 000004
【図３】
2004220479.tif 000005