(57)【特許請求の範囲】
【請求項１】
プロセッサ、メモリならびに第１および第２のファイル・システム記憶機構を有し、前記第１のファイル・システム記憶機構が取り外し可能に接続されたコンピュータ・システムにおいて、前記第１のファイル・システム記憶機構からの選択したデータを、前記コンピュータ・システムが前記第１のファイル・システム記憶機構から切断されたときに使用するため、前記第２のファイル・システム記憶機構内のファイル・システム・キャッシュに記憶するファイル管理システムであって、
第１の記憶容量を必要とする追加データを前記ファイル・システム・キャッシュ内に記憶することを求める要求を受け取る手段と、
前記ファイル・システム・キャッシュが前記追加データを記憶するための不使用の記憶容量を有するかどうかを判定するテストを行う手段と、
前記ファイル・システム・キャッシュに十分な不使用記憶容量がない場合に、除去可能なキャッシュ・データを削除して、少なくとも前記第１の記憶容量分のスペースを開放する手段と、
前記ファイル・システム・キャッシュに十分な不使用記憶容量がある場合に、前記追加データを記憶させる手段とを含み、
前記スペースを開放する手段が、
各キャッシュ・データ項目をテストして、データがキャッシュされて以降に変更されたかどうかを判定する手段と、
各キャッシュ・データ項目によって使用されるスペースの量を決定する手段と、
変更されていない各キャッシュ項目によって使用されるスペースの量の合計値を求める手段と、
前記合計値を前記第１の記憶容量と比較する手段と、
少なくとも前記第１の記憶容量分のスペースが開放されるまで、変更されていないキャッシュ・データ項目を削除する手段と
をさらに含むことを特徴とするシステム。
【請求項２】
前記合計値が前記第１の記憶容量よりも少ない場合に、システム・ユーザに通知する手段と、
キャッシュ容量を増加するために前記ファイル・システム・キャッシュに割り振る追加のファイル・システム記憶機構のユーザ指定を受け取る手段と
をさらに含む請求項１に記載のシステム。
【請求項３】
前記追加のファイル・システム記憶機構が、前記第２のファイル・システム記憶機構とは別の論理装置上にあることを特徴とする請求項２に記載のシステム。
【請求項４】
前記追加のファイル・システム記憶機構が、前記第２のファイル・システム記憶機構とは別の物理記憶装置上にあることを特徴とする請求項２に記載のシステム。
【請求項５】
前記追加データを記憶することを求める要求と、十分な容量がないという判定とに応答して、前記ファイル・システム・キャッシュの容量を増加させる手段をさらに含む請求項１に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイル・システムの管理に関する。より詳細には、本発明は、サーバ・ファイル・システムから日常的に切断されるモバイル・ユーザ用ファイル・システムにおけるキャッシュ管理に関する。
【０００２】
【従来の技術】
コンピュータ・システムは、業務上の問題および個人的問題を管理するために会社および個人によって利用される。コンピュータ・ユーザが操作するデータは、ユーザのコンピュータまたはネットワーク・サーバ上にあるファイル・システムに記憶される。ネットワーク・サーバにデータを記憶すると、会社で他の人がデータを利用できるようになり、個人のワークステーションではディスクの記憶域要件を減少させる利点を有する。ディスク記憶容量が限られている携帯型コンピュータは、ネットワーク・サーバ記憶機構から特に恩恵を受ける。
【０００３】
携帯型コンピュータは、出張しなければならない人、オフィスから家に頻繁に仕事を持ち帰る人、または都合上、携帯型コンピューティング・ソリューションを必要とする人にコンピューティング・ソリューションを提供する。このような作業者は、しばしば「モバイル・コンピュータ・ユーザ」または単に「モバイル・ユーザ」と呼ばれる。
【０００４】
モバイル・ユーザがネットワーク・サーバに接続し、切断する際に共用ファイルを作業結果で更新することを可能にするシステムおよび方法によって、モバイル・コンピューティングが大幅に容易になった。初期の再同期方法は、作業者が、作業した各ファイルまたは変更した可能性のある各ファイルを手動でコピーし比較しなければならなかった。同様に、ネットワーク・ファイルが変更された場合は、作業者がそれらのファイルを確認し携帯型コンピュータにコピーしなければならなかった。最近の方法は、ネットワークおよびモバイル・コンピュータを自動的に比較し再同期するソフトウェア・プログラムを含む。特別に設計されたＩＢＭモバイル・ファイル・システムは、分散ファイル・システム機能の一部としてファイルの追跡と再同期をさらに提供するステップを行う。
【０００５】
モバイル・ファイル・システムは、常時接続されたサーバからのクライアントの切断をサポートしなければならない。このサポートは、ユーザがファイルにアクセスするときにファイルをサーバからクライアント・マシンにキャッシュすることによって提供される。暗示的キャッシングは、ユーザが現在アクセスしているファイルをモバイル装置に一時的に記憶するプロセスである。その後、モバイル・ユーザは、サーバから切り離されたときでも、引き続きファイルにアクセスすることができる。ユーザは、これらのキャッシュされたファイルを更新したり、新しいファイルを作成したりすることができる。キャッシュ・ファイルに加えられた変更は、ファイル・システムによってログが取られ、これらのファイルは「ダーティ」としてフラグが立てられる。これら「ダーティ」ファイルは、ユーザがサーバに再接続しその変更をサーバに戻すまで、キャッシュ内に留まる必要がある。モバイル・ファイル・システムのトランザクションのロギングは、１９９５年１２月１５日に出願された「Process and Article of Manufacture for Constructing and Optimizing Transaction Logs for Mobile File Systems」と題する米国特許出願第０８／５７２９２３号に記載されている。
【０００６】
ユーザがあるファイルを後で使用または更新するためにモバイル・マシンにコピーするように指定すると、明示的キャッシングが生じる。ユーザは、キャッシュするファイルのプロファイルを作成することにより、ファイルを明示的にキャッシュすることを選択することができる。明示的キャッシングは、ユーザがネットワーク・サーバからの切断を予想して開始する。
【０００７】
携帯型コンピュータのキャッシングに利用できるディスク・スペースは限られている。サーバに接続されているときに、ユーザが大量のファイルを明示的または暗示的にキャッシュする場合、この限界に容易に達することがある。ユーザが、長期間サーバから切断されている場合、キャッシュが満杯になって、そのユーザが、新しいファイルを作成したり既存のファイルを更新したりすることができなくなることがある。ユーザが作業を完了したファイルが存在する場合、キャッシュ内の「ダーティ」ファイルを置換するために、ユーザは、サーバへの変更をまず再生し同期させなければならない。キャッシュが満杯のとき、モバイル・ユーザは、この選択肢をもたないことがある。モバイル・ユーザのためのキャッシング方法は、モバイル・ユーザが切断されているときでもファイル・システムを長期間引き続き使用できるように、キャッシュ管理の技術的問題を解決しなければならない。ＬＲＵのような標準のキャッシュ置換方針の適用は、ファイルをサーバと再同期する必要性を考慮していないため、モバイル・ユーザの要件を自ずと満たさない。さらに、キャッシュ機構は、キャッシュ専用の固定サイズの区画を留保しないコンピュータ・システム環境で動作する必要がある。固定サイズのキャッシュがない場合は、キャッシングに利用できるスペースがさらに制限され、また制限のある携帯型ディスク・スペースが無関係なユーザやシステム活動に使用されるために、キャッシュ管理が複雑になる。
【０００８】
モバイル・ユーザをサポートするＣｏｄａなどのファイル・システムは、ネットワークからの切断をサポートするためにファイルをキャッシュする。Ｃｏｄａは、キャッシュ内の各エントリに優先順位を割り当てる。この優先順位は、ユーザが指定した明示的な優先順位と、暗示的な参照優先順位の関数である。オブジェクトの参照優先順位は、前回参照したときから行われた参照の総数に基づく。Ｃｏｄａでは、ユーザはキャッシュしたデータを明示的に追い出すことができない。また、Ｃｏｄａは、キャッシュ用に固定サイズの区画が予約されることを想定している。この区画のサイズは、動的に変更することはできない。サチャナラヤナン（Satyanarayanan）他による「Coda:A Highly Available File System for a Distributed Workstaion Environment」、IEEE Transactions on Computers、Vol.39、No.4、1990年4月、キスラー（Kistler）とサチャナラヤナンによる「Disconnected Operation in the Coda File System」、ACM Transactions on Computer Systems、1992年2月、キスラーによる「Disconnected Operations in a Distributed File Systems」博士論文、Department of Computer Science、Carnegie Mellon University、1993年5月を参照されたい。
【０００９】
【発明が解決しようとする課題】
したがって、本発明の目的は、サーバと再同期する必要のある更新を有するファイルを保存する置換方針を実施するキャッシュ管理システムを提供することである。
【００１０】
本発明の他の目的は、キャッシュ制限の検出に応答して対話式キャッシュ管理を可能にする選択肢をシステム・ユーザに提示する、キャッシュ管理のためのシステムおよび方法を提供することである。
【００１１】
本発明の他の目的は、スペースが利用可能になったときに追加ファイルをキャッシュできるようにキャッシュ・スペースの使用可能度の動的評価を可能にすることである。
【００１２】
本発明の以上その他の目的、特徴および利点は、添付図面に示した本発明の好ましい実施形態についての以下の詳細な説明から明らかになるであろう。図では、同じ参照番号は本発明の同じ部品を表す。
【００１３】
【課題を解決するための手段】
本発明は、特定のモバイル・ファイル・システムのキャッシュ管理機能を提供することによって、既存のモバイル・ファイル・システムの制限を克服する。本発明は、二次記憶域内のキャッシュ・データを間違って追い出す既存の問題、すなわち、新しいデータを収容するためにデータを追い出したが追い出した後でも新しいデータに使用できるスペースが十分でないことがわかっただけであったという問題を解決する。本発明はまた、ファイル・システムのキャッシュ・スペースがキャッシング用に排他的に予約されていないというモバイル・ファイル・システムの制約を取り扱う。キャッシュ・サイズの動的拡大および縮小のためのサポート、およびシステム上の複数のドライブにわたるキャッシュのサポートを提供することによってそれを実施する。本発明は、ユーザにキャッシュの内容全体に対するより大きな制御を提供し、ユーザが、キャッシュからデータを明示的に追い出すことができるようにする。最後に、ファイル・システムは、エディタやワード・プロセッサなどのアプリケーションによって作成される一時ファイル用に別個のキャッシュを維持し、ユーザにとって重要なデータ用にメイン・キャッシュを予約する。
【００１４】
本発明は、モバイル・キャッシュ・スペースの制限に対処するモバイル・ファイル・システムのキャッシュ管理方法を提供する。本発明では、キャッシングに割り振られるスペースの量のユーザ指定を受け取る。本発明のキャッシュ管理方法では、ファイルが暗示的または明示的にキャッシュされるとき、使用可能なスペースを確認する。次の要求されたファイルをキャッシュするのに残りのスペースが不十分な場合は、キャッシュ・マネージャが、いくつかのアクションのうちの１つをとる。キャッシュ・マネージャは、まず「ダーティ」でないキャッシュ・ファイルを除去しようと試みる。キャッシュ・マネージャは、このアクションによって回復されるスペースの量を分析し、要求されたファイルを記憶するのに十分なスペースが開放されたと判定した後だけ除去を開始する。ファイルの除去が失敗した場合は、システムがユーザに通知し、ユーザがキャッシュ・サイズを増大して他の物理ドライブまたは論理ドライブにキャッシュを拡張するのを許す。また、ユーザは、キャッシュ・コミットメントを減少させることもできる。ユーザは、キャッシュ・ファイルを追い出す選択肢を提示され、ユーザは、不要なファイルを除去することができる。最終的に、本発明では、キャッシュ要求を追跡し、キャッシュ・スペースが使用可能になった後でファイルのキャッシングを可能にする。
【００１５】
本発明は、プロセッサ、メモリならびに第１および第２のファイル・システム記憶機構を有するコンピュータ・システムにおけるファイル・システム・キャッシュを管理するシステムを対象とし、このコンピュータ・システムは、第１のファイル・システム記憶機構に取り外し可能に接続され、第１のファイル・システム記憶機構からの選択したデータが、コンピュータ・システムが第１のファイル・システムから切断されたときに使用するため、第２のファイル・システム記憶機構内のファイル・システム・キャッシュに記憶され、このシステムは、第１の記憶容量を必要とする追加データをファイル・システム・キャッシュに記憶することを求める要求を受け取る手段と、ファイル・システム・キャッシュに追加データを記憶できる容量があるかどうかを判定するテストを行う手段と、ファイル・システム・キャッシュに十分な容量がある場合に追加データを記憶する手段と、削除するキャッシュ・データがサーバ・データへの保留状態の修正を含まず、かつ削除によって第１のデータ量を記憶するのに十分なスペースが開放される場合だけ、キャッシュ・データを削除してスペースを使用可能にする手段とを含む。
【００１６】
【発明の実施の形態】
図１に、本発明によるデータ処理システムを示す。クラスタ化または分散されたシステム全体１００は、ネットワーク１１８によって相互接続されたいくつかのクライアントおよびサーバを含む。ネットワーク１１８は、ローカル・エリア・ネットワーク（ＬＡＮ）でもよく、あるいは地理的に分散されたサイトを相互接続する広域ネットワークを含むこともできる。また、ネットワーク１１８は、専用ネットワーク、たとえば高速光ファイバ接続や一群のマシンを接続する交換機でもよい。本発明は、これらのすべてのケースに適用される。
【００１７】
クラスタ化システムまたは分散システム１００は、サーバ１０２、１０４、１０６を含み、各サーバは、不揮発性記憶機構１０３、１０５、１０７を有する。不揮発性記憶機構は、磁気ハード・ディスク、光ディスクまたは同様の技術でよい。サーバはそれぞれ、これらの各タイプの記憶装置をいくつか備えることもできる。サーバ・システムは、通常、１ギガバイトを超える容量を有する大容量の不揮発性記憶機構を含む。
【００１８】
クライアント・ワークステーション１０８、１１２、１１４、１１６は、ネットワーク１１８に接続され、１つまたは複数のサーバ１０２、１０４、１０６のサービスを利用することができる。クライアントは、それ自体の不揮発性記憶機構（たとえば１１０）を備えることもでき、あるいは不揮発性記憶をサーバに完全に依存してもよい。特定のクライアント、たとえば１０８は、ネットワークから切断し、ネットワークから独立して動作できる携帯用コンピュータやその他のモバイル・クライアントでよい。
【００１９】
システム１００の構成は、いくつかのクライアントとサーバの構成を含むが、例として示したものにすぎず、本発明の範囲をいかなる形でも制限するものではない。
【００２０】
本発明は、クライアント・ファイル・システム内で実施される。図２に、本発明で使用されるクライアントの例を、全体的に２００で示す。クライアントは、ＩＢＭ  Ｔｈｉｎｋｐａｄ  Ｍｏｄｅｌ５６０や携帯型ＩＢＭ  ＲＩＳＣ  Ｓｙｓｔｅｍ／６０００など任意のコンピュータ・システムでよい（ＩＢＭ、Ｔｈｉｎｋｐａｄ、ＲＩＳＣ  Ｓｙｓｔｅｍ／６０００は、ＩＢＭコーポレーションの商標）。クライアント２００は、プロセッサ要素２０２を構成する１つまたは複数のプロセッサまたはＣＰＵを有する。プロセッサ要素２０２は、揮発性メモリ２０４にアクセスできる。また、プロセッサは、ハード・ディスク２０８などの不揮発性記憶機構、表示装置２１０、キーボード２１２、指示装置２１４などの入出力装置へのアクセスを制御する入出力ユニット２０６を制御する。入出力ユニット２０６へは、ディスケット・ドライブ、ＣＤ−ＲＯＭドライブ、マルチメディア装置などの他の入出力装置を接続することもできる。ネットワーク通信は、ネットワーク制御装置２１６によって処理される。ネットワーク制御装置２１６は、ネットワーク上のサーバを含むネットワークへのアクセスを制御するのに必要なサービスを行う。物理ネットワークは、トークン・リング、イーサネットその他のネットワークでよい。ネットワーク・プロトコルは、ネットワークを介してリソースへのアクセスとメッセージの伝送を可能にするＴＣＰ／ＩＰ、ＮＥＴＢＩＯＳ、ＮｅｔＷａｒｅその他のプロトコルでよい。
【００２１】
本発明の実施形態は、クライアントまたはサーバのオペレーティング・システム、クライアント／サーバ・プロトコル、ネットワーク・プロトコルまたは物理ファイル・システムに依存しない。したがって、本発明は、ＩＢＭ  ＡＩＸ、ＩＢＭ  ＯＳ／２、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ  ＮＴ、その他のオペレーティング・システムを含む、様々な環境および混合環境で実施することができる。
【００２２】
図３に、本発明によるモバイル・ファイル・システム（以下、ＭＦＳという）を示す。ＭＦＳは、クライアントとサーバのオペレーティング・システム内で実施される。好ましい実施形態のＭＦＳは、導入可能ファイル・システム（ＩＦＳ）として実施される。導入可能ファイル・システム要求ルータ３０２は、ファイル・システム要求を、ユーザ・アプリケーション３０６から適切なファイル・システムに送る。導入されたファイル・システムは、１つまたは複数のローカル・ファイル・システム３１２でも、ＩＢＭ  ＬＡＮ  ＲｅｑｕｅｓｔｅｒやＮｏｖｅｌｌ  ＮｅｔＷａｒｅなどのネットワーク・オペレーティング・システムを介して接続されたネットワーク・ファイル・システム３１４でもよい。その他の導入可能ファイル・システムの例は、ＯＳ／２オペレーティング・システムと共に使用できるＩＢＭ  ＨＰＦＳファイル・システムである。
【００２３】
ＭＦＳドライバ３０４は、導入可能ファイル・システム要求ルータ３０２からファイル・システム呼出しを受け取る。これらの要求は、ファイル・システム要求を処理するユーザ・レベルのＭＦＳルータ３０８に送られ、そこからキャッシュ・マネージャ３１０に送られる。キャッシュ・マネージャ３１０は、導入可能ファイル・システム要求ルータ３０２からのファイル・システム呼出しを利用し、ローカル・ファイル・システム３１２内のローカル・キャッシュ・ファイルに、あるいはネットワーク・ファイル・システム３１４を介してサーバ・バージョンのファイルにアクセスする。ＭＦＳが切断されているときは、ローカル・データだけが使用可能である。
【００２４】
本発明は、ローカル・ファイル・システム３１２上のローカル・キャッシュを管理するためにキャッシュ・マネージャ３１０内で実施される。本発明によれば単一のキャッシュ・マネージャで、同じまたは異なるファイル・システム・プロトコルを有する複数のローカル・ファイル・システム・ボリュームにわたって分散した単一のローカル・キャッシュを管理することができる。
【００２５】
ＭＦＳのキャッシュ・マネージャ３１０は、キャッシュされたファイルおよびディレクトリの名前のリストを維持する。各ファイルまたはディレクトリは、ファイル・システム・オブジェクトとして参照される。エントリ状況情報が、ファイルまたはディレクトリの名前と共に維持される。状況情報は、最後に変更した日付と時間、最後にアクセスした日付と時間、ファイルのサイズ、およびファイルに関連する任意のファイル属性を含む。ファイルの状況をキャッシュする他に、ファイルの内容すなわちデータを、特定のファイル・システム呼出しによってキャッシュすることもできる。好ましい実施形態において、ファイル・システムは、キャッシュできるファイルの数およびキャッシュによって使用できるディスク記憶容量（バイト）の限度を設定する。これらの限度は、使用可能なシステム・リソースおよびキャッシングの予想量に応じてユーザが設定可能なパラメータである。たとえば、これらのパラメータは、ＯＳ／２のＣＯＮＦＩＧ．ＳＹＳファイル中で指定される。ユーザがファイル・システム・オブジェクトの最大限度に達した場合は、追加のファイル・システム・オブジェクトをキャッシュするために、１つまたは複数のキャッシュ・エントリを置換しなければならない。
【００２６】
ファイル・システム要求のタイプにより、ファイル・システム・オブジェクトの名前および状況情報だけのキャッシング、または名前、状況およびデータのキャッシングが行われる。たとえば、カレント・ディレクトリのすべてのエントリを表示するＯＳ／２の「ｄｉｒ」コマンドは、ファイル・システム・オブジェクトの状況のキャッシングを要求するが、データのキャッシングは要求しない。一方、ワープロ文書を開くと、名前および状況情報のみならず文書データのキャッシングも行われることになる。
【００２７】
データがキャッシュされないときに新しいエントリを収容するために、キャッシュされているファイル・システム・オブジェクトを選択して除去するのにＬＲＵ置換方針が使用される。データのキャッシングを必要とするさらに複雑なケースでは、好ましい実施形態では、まず、キャッシュから選択したエントリを置換した場合に新しいオブジェクトに十分な記憶容量がもたらされるかどうかを検査する。キャッシュからエントリを除去した後でも十分な記憶域が利用可能にならない場合は、キャッシュ・データは除去されず、エラーがユーザに戻され、利用可能なキャッシュ・スペースが不十分であることをユーザに知らせる。この方法の利点は、ファイル・システムがキャッシュしようとしている新しいデータを収容する十分なスペースがある場合だけ、ディスク上のキャッシュ・データが除去されることである。
【００２８】
本発明の好ましい実施形態は、エラー・メッセージを戻す他に、ユーザがキャッシュのサイズを動的に拡大または縮小することを可能にする。このキャッシュ・サイズの動的変更は、使用駆動方式でもユーザ駆動方式でもよい。追加のキャッシュ・スペースを必要とする場合に、ユーザに尋ねることなくキャッシュのサイズを自動的に大きくするようにファイル・システムを構成することができる。この使用駆動方式によるキャッシュ・サイズの動的拡大は、ユーザに対して透過であり、キャッシュ内の空きスペースが総キャッシュ・サイズのうちの事前に割り当てられた比率よりも低くなったときにトリガされる。ユーザ駆動方式によるキャッシュの拡大では、ユーザが、現キャッシュ・サイズを超える可能性のある大量のデータをキャッシングするのを見越して、キャッシュのサイズを大きくすることができる。このファイル・システムでは、ユーザは、必要な追加スペースとキャッシュがあるドライブとを指定することができる。指定されたドライブは、システム上の任意のハード・ドライブでよく、本来のキャッシュに使用されているドライブである必要はない。キャッシュされたファイルごとに、そのデータがキャッシュされているドライブに関する情報が維持され、複数のドライブにわたるキャッシングがサポートされる。
【００２９】
このファイル・システムでは、また、ユーザが要求された追加スペースを放棄することもできる。ファイル・システムは、ユーザが除去するファイルを選択する助けとして、各ドライブ上の置換候補となるファイルをリストする。ファイルは、そのファイルが現在使用のために開かれていない場合に置換の候補となる。この定義には、「クリーン」ファイルおよび「ダーティ」ファイルの両方が含まれる。各ドライブにキャッシュされたファイルのリスト内で、ファイルは、ＬＲＵ順にソートされる。ユーザがダーティ・ファイルを選択した場合、ファイル・システムによって警告メッセージが表示されて、ユーザにその選択の確認を要求する。ユーザがそれでもダーティ・ファイルを追い出すと決定した場合は、ダーティ・ファイルの対応する記憶エントリが、トランザクション・ログから除去される。クリーン・ファイルだけでなくダーティ・ファイルも追い出す能力がユーザに与えられると、ユーザは、キャッシュ内容に対するより大きな制御を得ることになる。たとえば、ユーザは、ワード・プロセッサを使用するために必要なすべての実行可能ファイルをサーバからキャッシュすることができる。切断モードでは、ユーザは、文書を編集するためにこれらの実行可能ファイルを呼び出し、この切断セッション中にワード・プロセッサにはもう用がないと感じることがある。ユーザは、これらの実行可能ファイルをキャッシュからすぐに追い出すことができることを知っているが、標準のキャッシュ置換アルゴリズムでは、これが可能なアクションであることを知るすべはない。
【００３０】
キャッシュからのクリーン・キャッシュ・ファイルの明示的ユーザ追い出しはログされない。このため、ユーザがサーバに再接続するときにそのファイルがサーバから削除されることはなく、切断中にユーザが行ったファイルへのすべての変更がサーバに再生される。一方、キャッシュから「ダーティ」ファイルを追い出すことによって、トランザクション・ログ内のそのファイルに関するログ・エントリが削除される。必要がないとユーザにわかっているキャッシュ・データをユーザが追い出すことができることは、貴重なキャッシュ・スペースを回収するための強力な機能である。
【００３１】
好ましい実施形態では、一時ファイルをキャッシュするために別のキャッシュを使用する。一時ファイルは、ワード・プロセッサやテキスト・エディタなど多くのアプリケーションによって作成され、通常は、アプリケーションが終了すると削除される。主キャッシュまたは一次キャッシュを利用する代わりに、一時ファイル用の独立したキャッシュが、これらのファイルを記憶するために使用される。この特徴の利点は、サーバからの切断中に使用するためにユーザによってキャッシュされた重要なデータが、キャッシュ内のスペースを一時ファイルと争う必要がなく、一時ファイルによって置換される危険がないことである。
【００３２】
通常のキャッシング・システムでは、ファイル・システムのキャッシング機能が独占的に使用するスペースがディスク上に予約されないとき、さらに複雑な問題が生じる。専用のキャッシュ・スペースがないと、ファイル・システムは、キャッシュ・スペースの限度に達していないが、他のシステム活動によりキャッシングに利用できるスペースがないことを知ることがある。
【００３３】
ディスク・スペースが後で開放された場合は、ファイル・システムは、前にキャッシュできなかったデータをキャッシュするよう試みることができる。好ましい実施形態では、ディスク上で利用できる空きスペースを定期的に計算するデーモンをバックグラウンドで実行する。定期的な空きスペースの判定は、ファイル・システムがファイルのスタッシングをサポートしている場合、特に有効である。スタッシングとは、ユーザによるファイルの明示的キャッシングである。スタッシングにより、サーバからの切断を見越してユーザがファイルをキャッシュすることが可能になる。
【００３４】
スタッシュするファイルのリストは、ユーザがプロファイル中で指定する。ファイル・システムは、追加のスペースが使用可能になったことを検出すると、以前にスタッシュできなかったデータをスタッシュする。スタッシュされるファイルは、キャッシング前に圧縮される。ファイル・システム・オブジェクト・レコード内に、ファイルが圧縮されたことを示す「ファイル圧縮済み」フラグが維持される。ファイルがキャッシュからユーザに提供されるとき、「ファイル圧縮済み」フラグが検査され、必要に応じてファイルが圧縮解除される。ファイルが圧縮解除されるとき、キャッシュ・スペースが必要に応じて自動的に拡大される。ファイルが圧縮解除された後は、圧縮済みコピーが削除される。
【００３５】
図４ないし図６に、本発明の好ましい実施形態のキャッシュ管理プロセスを示す。プロセスは、４０２で始まりすぐに４０４に進み、そこで、導入可能ファイル・システム（ＩＦＳ）ルータが、ファイル・システム（ＦＳ）要求を受け取る。４０６で、この要求がテストされ、導入されたＭＦＳに対するものかどうか判定される。そうでない場合は、４０８で、要求が適切なファイル・システム・ドライバに送られ、結果がユーザに戻される。要求がＭＦＳ向けのものである場合は、プロセスは、４１０で、ファイル・システム要求を処理するためのスレッドをデスパッチする。４１２で、要求がテストされ、ファイル・データのキャッシングをもたらすかどうかが判定される。前述のように、新しいファイルを開くなどある種の動作では、データのキャッシングが行われる。新しいディレクトリをリストするなど他の動作では、データではなくファイル・システム情報だけがキャッシュされる。
【００３６】
ファイル・データがキャッシュされない場合は、４１４で、キャッシュ・マネージャが、ファイル・システム・オブジェクトの名前および状況をキャッシュしようと試みる。４１６で、キャッシュ・マネージャは、オブジェクトの名前および状況がすでにキャッシュにあるかどうかをテストする。ある場合は、４１８で、キャッシュ・マネージャは、クライアントがサーバに接続されているかどうかをテストする。接続されている場合は、４１９で、ＭＦＳクライアントは、サーバからの最新の状況情報をフェッチし、キャッシュを更新する。サーバに接続されていない場合または状況を更新した後、４２０で、ユーザに結果が戻される。
【００３７】
名前および状況があらかじめキャッシュされていない場合は、４２２で、キャッシュ・マネージャがテストを行って、空きリスト・エントリが新しいオブジェクトに使用できるかどうかを判定する。使用できない場合は、４２４で、ＬＲＵ方針を用いて、リストから名前および状況のエントリを追い出し、空きエントリを作成する。４２６で、新しい名前・状況エントリが空きリスト・エントリに追加され、４２８で、結果がユーザに戻される。
【００３８】
ファイル・データがキャッシュされる場合は、図５の４３０に進んで、キャッシュ・マネージャがキャッシュ内にこのファイル・システム・オブジェクトのファイル・データがすでにあるかどうかを調べる。ある場合は、４３１で、キャッシュおよびサーバのコピーが比較される。コピーが同じ場合は、図６の４５４で、キャッシュ優先順位が再計算され、４５６で、結果がユーザに戻される。
【００３９】
ファイル・データがまだキャッシュ内にないか、またはキャッシュのバージョンがサーバのバージョンと異なる場合は、４３２で、キャッシュ・マネージャが、キャッシュ内にファイル用のスペースが十分にあるかどうかをテストする。スペースが十分にある場合は、４５２で、ファイルをキャッシュに入れ、４５４で、キャッシュの優先順位を計算し直す。使用できるスペースが不十分な場合は、４３４で、キャッシュ・マネージャがキャッシュ内のファイルをテストし、そのうちどのファイルを置換するかを決定する。４３６で、置換可能ファイルのファイル・サイズが合計され、キャッシュに入れるファイルのサイズと比較される。合計のサイズの方が大きい場合は、４３８で、必要なスペースを作るのに十分な数のファイルが除去され、問題のファイルがキャッシュに入れられる。４４０で、残りの使用可能なスペースが、全キャッシュのうちの予め設定された比率と比較される。使用可能なスペースが、その比率よりも少なくない場合は、キャッシュ・マネージャが、４５４で、キャッシュの優先順位を再計算し、４５６で、結果をユーザに戻す。
【００４０】
置換可能なファイルが十分なスペースを提供しないか、または残りの使用可能なスペースが指定の比率よりも少ない場合は、４４２で、キャッシュ・マネージャが、キャッシュ・サイズを所定の比率だけ増やす。追加のキャッシュ・スペースは、割振り可能スペースを見つけるためにユーザが指定した順序で使用可能なディスク・ドライブを探索することにより、割り振られる。このスペース割振りは、使用可能なスペースを有する最初のドライブから行われる。
【００４１】
４４４で、キャッシュ拡大が成功した場合は、４５０で、キャッシュ・マネージャが、未処理のファイル・キャッシュ要求があるかどうか検査する。あるキャッシュ要求が未処理の場合は、４５２で、そのファイルがキャッシュに入れられ、４５４で、キャッシュの優先順位が再計算される。
【００４２】
キャッシュの拡大が成功しなかった場合は、４４６で、キャッシュ・マネージャが、要求された拡大前にファイルが首尾よくキャッシュされたかどうか検査する。キャッシュされていない場合は、４４８で、エラーがユーザに戻される。ファイルがキャッシュされている場合は、４５４で、優先順位が再計算され、４５６で、成功メッセージがユーザに戻される。
【００４３】
図７は、本発明によるキャッシュ・マネージャによって維持されるシステム・テーブルの図である。ボリューム・レコード５０２は、ファイルをキャッシュした元のサーバの情報、ファイル・システム・オブジェクト・リスト、通常ファイル・ディスク・キャッシュ・リスト、および一時ファイル・ディスク・キャッシュ・リストを含む。ファイル・システム・オブジェクト・リストは、各ファイル・システム・オブジェクトごとのファイル・システム・オブジェクト・レコード５０４を含む。このレコード５０４は、ボリューム・レコード５０２へのポインタ、ファイル／ディレクトリ名、状況レコード、データ・ポインタ、置換優先順位、次のファイル・システム・オブジェクト・エントリへのポインタを含む。データ・ポインタは、キャッシュ・ロケーション、ファイル・ハンドル、キャッシュ内のファイルの名前、およびクリーン／ダーティ・フラグを含むキャッシュ・ファイル・レコード５０６を指す。通常ファイル・ディスク・キャッシュ・リストは、通常ファイル・キャッシングに使用される各キャッシュ・ロケーションごとに割り振られ使用された総バイト数をリストするディスク・キャッシュ・テーブル５０８を指す。一時ファイル・ディスク・キャッシュ・テーブル５１０は、一時ファイル情報を記憶するために使用されるキャッシュ・ロケーションごとの同様の情報を含む。
【００４４】
好ましい実施形態では、モバイル・ユーザの以下のキャッシュ機能を可能にするキャッシュ管理のためのシステムおよび方法を実施する。１）除去によって開放されるスペースがキャッシュする新しいファイルを収容できる場合だけ、キャッシュからクリーン・ファイルを除去するよう置換方針が強化される。２）使用またはユーザの選択に基づきキャッシュ・スペースが拡大される。３）固定区画がないディスク・キャッシュがサポートされ、システム上の複数ドライブにわたるキャッシュがサポートされる。４）ファイルが使用中でないという条件でキャッシュからユーザ指定ファイルを追い出すことによりキャッシュ・サイズが縮小される。５）サーバから切断されるときに、追い出しのロギングなしでキャッシュからクリーン・ファイルがユーザ指定で追い出される。６）サーバから切断されるときにキャッシュからダーティ・ファイルがユーザ指定で追い出されるとともに、トランザクション・ログ内の対応する記憶エントリが除去される。７）一時ファイルをキャッシングするための別のキャッシュが割り振られる。８）前にスタッシュできなかったファイルをスタッシュするために、新たに開放されたディスク・スペースが検出され使用される。９）スタッシュされるファイルが圧縮され、ユーザがファイルを開こうとするとき、そのファイルが圧縮解除される。
【００４５】
以上の説明から、本発明の好ましい実施形態において、真の精神から逸脱することなく様々な修正および変更を加えることができることが理解されよう。本明細書の説明は、例示のためのものにすぎず、制限の意味で解釈されるべきではない。本発明の範囲は、併記の特許請求の範囲の文言によってのみ制限されるものである。
【００４６】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４７】
（１）プロセッサ、メモリならびに第１および第２のファイル・システム記憶機構を有し、前記第１のファイル・システム記憶機構が取り外し可能に接続されたコンピュータ・システムにおいて、前記第１のファイル・システム記憶機構からの選択したデータを、前記コンピュータ・システムが前記第１のファイル・システム記憶機構から切断されたときに使用するため、前記第２のファイル・システム記憶機構内のファイル・システム・キャッシュに記憶するファイル管理システムであって、
第１の記憶容量を必要とする追加データを前記ファイル・システム・キャッシュ内に記憶することを求める要求を受け取る手段と、
前記ファイル・システム・キャッシュが前記追加データを記憶するための不使用の記憶容量を有するかどうかを判定するテストを行う手段と、
前記ファイル・システム・キャッシュに十分な不使用記憶容量がない場合に、除去可能なキャッシュ・データを削除して、少なくとも前記第１の記憶容量分のスペースを開放する手段と、
前記ファイル・システム・キャッシュに十分な不使用記憶容量がある場合に、前記追加データを記憶する手段と
を含むシステム。
（２）前記スペースを開放する手段が、
各キャッシュ・データ項目をテストして、データがキャッシュされて以降に変更されたかどうかを判定する手段と、
各キャッシュ・データ項目によって使用されるスペースの量を決定する手段と、
変更されていない各キャッシュ項目によって使用されるスペースの量の合計値を求める手段と、
前記合計値を前記第１の記憶容量と比較する手段と、
少なくとも前記第１の記憶容量分のスペースが開放されるまで、変更されていないキャッシュ・データ項目を削除する手段と
をさらに含むことを特徴とする上記（１）に記載のシステム。
（３）前記合計値が前記第１の記憶容量よりも少ない場合に、システム・ユーザに通知する手段と、
キャッシュ容量を増加するために前記ファイル・システム・キャッシュに割り振る追加のファイル・システム記憶機構のユーザ指定を受け取る手段と
をさらに含む上記（２）に記載のシステム。
（４）前記追加のファイル・システム記憶機構が、前記第２のファイル・システム記憶機構と異なる論理装置上にあることを特徴とする上記（３）に記載のシステム。
（５）前記追加のファイル・システム記憶機構が、前記第２のファイル・システム記憶機構と異なる物理記憶装置上にあることを特徴とする上記（３）に記載のシステム。
（６）前記追加データを記憶することを求める要求と、十分な容量がないという判定とに応答して、前記ファイル・システム・キャッシュの容量を自動的に増加する手段をさらに含む上記（１）に記載のシステム。
（７）プロセッサ、メモリおよび記憶手段を有するコンピュータ・システムにおいて、前記記憶手段の一部分を占有するファイル・システム・キャッシュを管理する方法であって、
前記記憶手段内で前記キャッシュの第１のサイズを設定するステップと、
前記キャッシュにファイル・システム・オブジェクトを記憶することを求める要求に応答して、前記キャッシュ内の空きスペースの量をテストするステップと、
前記テストで空きスペースが第１の量よりも少ないと判定された場合に、前記キャッシュのサイズを自動的に拡大するステップと、
を含む方法。
（８）キャッシュされた一時ファイルを記憶するために、第２のキャッシュ領域を割り振る段階をさらに含む上記（７）に記載の方法。
（９）前記キャッシュの記憶容量を増加するためのユーザ入力を受け取るステップと、
前記ユーザ入力に応答して前記キャッシュのサイズを拡大するステップと
をさらに含む上記（７）に記載の方法。
（１０）プロセッサ、記憶機構およびユーザ対話手段を有するコンピュータ・システムにおいてファイル・システム・キャッシュを管理するシステムであって、
前記ファイル・システム・キャッシュに割り振られる前記記憶機構の量を変更することを求める要求を前記ユーザ対話手段から受け取る手段と、
前記ユーザ対話手段から前記ファイル・システム・キャッシュの記憶域の指示を受け取る手段と、
前記要求および前記指示に応じて、前記ファイル・システム・キャッシュのサイズを変更する手段と
を含むシステム。
（１１）前記指示が、前記ファイル・システム・キャッシュの論理記憶装置と異なる論理記憶装置を示すことを特徴とする上記（１０）に記載のシステム。
（１２）前記指示が、前記ファイル・システム・キャッシュの物理記憶装置と異なる物理記憶装置を示すことを特徴とする上記（１０）に記載のシステム。
（１３）プロセッサ、および記憶機構を備えたコンピュータ・システムにおいて、前記記憶機構内にファイル・システム・トランザクション・ログを含むファイル・システム・キャッシュを管理する方法であって、
前記ファイル・システム・キャッシュからエントリを削除することを求める要求を受け取るステップと、
前記エントリが、サーバに伝播されなかった更新を含むかどうか判定するステップと、
保留中の更新がない場合に、前記キャシュから前記エントリを追い出し、前記トランザクション・ログに削除をログすることなく前記エントリを削除するステップと、
保留中の更新がある場合に、追い出し確認要求を生成するステップと、
前記確認要求が肯定された場合に前記キャッシュから前記エントリを追い出し、前記キャッシュから前記エントリを削除し、前記トランザクション・ログにおける対応する記憶エントリを削除するステップと、
を含むプロセス。
（１４）プロセッサ、ユーザ対話手段および記憶機構を有するコンピュータ・システムにおいてファイル・システム・キャッシュを管理するシステムであって、
前記ユーザ対話手段から、ファイルのリストをキャッシュする明示的キャッシュ要求を受け取る手段と、
キャッシング前に前記ファイルのそれぞれを圧縮する手段と、
記憶容量が不十分なためにキャッシュすることができないファイルを追跡する手段と、
キャッシュ管理によって開放されたディスク・スペースを追跡し、前にキャッシュすることができなかったファイルを記憶する手段と
を含むシステム。
（１５）前記キャッシュ内のファイルを使用することを求める要求を受け取る手段と、
前記ファイルが圧縮されているかどうかを判定するために前記キャッシュをテストする手段と、
前記ファイルが圧縮されている場合に前記ファイルを圧縮解除する手段と
をさらに含む上記（１４）に記載のシステム。
（１６）圧縮されたファイルを圧縮解除後に削除する手段をさらに含む上記（１５）に記載のシステム。
（１７）プロセッサ、第１および第２のファイル・システム記憶機構を備えたコンピュータ・システムにおいて前記第２のファイル・システム記憶機構内にあるファイル・システム・キャッシュを管理するコンピュータ可読手段を有するコンピュータ・プルグラム・プロダクトであって、
前記コンピュータ・システムに、第１の記憶容量を必要とする追加データを前記ファイル・システム・キャッシュ内に記憶させる手段と、
前記コンピュータ・システムに、前記ファイル・システム・キャッシュが前記追加データを記憶するための不使用の記憶容量を有するかどうかを判定させる手段と、
前記ファイル・システム・キャッシュに十分な不使用記憶容量がなく、削除によって少なくとも前記第１の記憶容量分のスペースが開放される場合に、前記コンピュータ・システムに、除去可能なキャッシュ・データを削除させる手段と、
前記コンピュータ・システムに、前記ファイル・システム・キャッシュに十分な不使用記憶容量がある場合に前記追加データを記憶させる手段と、
を含むコンピュータ・プログラム・プロダクト。
（１８）前記除去可能なキャッシュ・データを削除させる手段が、
前記コンピュータ・システムに、各キャッシュ・データ項目をテストして、そのデータがキャッシュされて以降に変更されたかどうかを判定させる手段と、
前記コンピュータ・システムに、各キャッシュ・データ項目によって使用されるスペースの量を決定させる手段と、
前記コンピュータ・システムに、変更されなかった各キャッシュ項目によって使用されるスペースの量を合計させる手段と、
前記コンピュータ・システムに、前記合計した量を前記第１の記憶容量と比較させる手段と、
前記コンピュータ・システムに、少なくとも前記第１の記憶容量分のスペースが開放されるまで、変更されなかったキャッシュ・データ項目を削除させる手段と
を含むことを特徴とする上記（１７）に記載のコンピュータ・プログラム・プロダクト。
【図面の簡単な説明】
【図１】本発明によるデータ処理システムを示すブロック図である。
【図２】本発明によるデータ処理システムの代表的なサーバ構成要素のブロック図である。
【図３】ＭＦＳを含む導入可能ファイル・システムを備えたシステムのブロック図である。
【図４】好ましい実施形態のプロセスを示すフローチャートである。
【図５】好ましい実施形態のプロセスを示すフローチャートである。
【図６】好ましい実施形態のプロセスを示すフローチャートである。
【図７】本発明のシステム・テーブルを示すブロック図である。
【符号の説明】
１００  クラスタ化システムまたは分散システム
１０２  サーバ
１０３  不揮発性記憶機構
１０４  サーバ
１０５  不揮発性記憶機構
１０６  サーバ
１０７  不揮発性記憶機構
１０８  クライアント・ワークステーション
１１０  不揮発性記憶機構
１１２  クライアント・ワークステーション
１１４  クライアント・ワークステーション
１１６  クライアント・ワークステーション
１１８  ネットワーク
２００  クライアント
２０２  プロセッサ要素
２０４  揮発性メモリ
２０６  入出力ユニット
２０８  ハード・ディスク
２１０  表示装置
２１２  キーボード
２１４  指示装置
２１６  ネットワーク制御装置
３０２  導入可能ファイル・システム要求ルータ
３０６  ユーザ・アプリケーション
３０８  ＭＦＳルータ
３１０  キャッシュ・マネージャ
３１２  ローカル・ファイル・システム
３１４  ネットワーク・ファイル・システム
【図１】
0004006066.tif 000002
【図２】
0004006066.tif 000003
【図３】
0004006066.tif 000004
【図４】
0004006066.tif 000005
【図５】
0004006066.tif 000006
【図６】
0004006066.tif 000007
【図７】
0004006066.tif 000008