JP2000357120A - キャッシュ管理方法 - Google Patents

キャッシュ管理方法

Info

Publication number
JP2000357120A
JP2000357120A JP2000123132A JP2000123132A JP2000357120A JP 2000357120 A JP2000357120 A JP 2000357120A JP 2000123132 A JP2000123132 A JP 2000123132A JP 2000123132 A JP2000123132 A JP 2000123132A JP 2000357120 A JP2000357120 A JP 2000357120A
Authority
JP
Japan
Prior art keywords
document
cache memory
key
documents
stack
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.)
Pending
Application number
JP2000123132A
Other languages
English (en)
Inventor
Matthew F Shilts
エフ. シルツ マシュー
Michael R Allen
アール. アレン マイケル
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000357120A publication Critical patent/JP2000357120A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

(57)【要約】 【課題】 利用可能なキャッシュ・メモリ及びブラウザ
のトラフィックに基づいて、ブラウザ環境のローカル・
キャッシュ・メモリからドキュメントを的確に排除する
ための効率的な方法及び装置を提供する。 【解決手段】 キャッシュ・メモリに保存されるドキュ
メント206〜210で、強い参照を持たないものは、
すべてガーベッジ・コレクションにより回収される。し
かし、直前に要求のあったドキュメント206〜210
は、強い参照と共にキャッシュ・メモリに保存されて、
その強い参照が廃止されるまでは、回収されない。強い
参照が廃止されるのは、キャッシュ・メモリに保存され
るドキュメント206〜210に関連するドキュメント
識別子がドキュメント・スタック202に存在しなくな
ったときである。したがって、ドキュメント・スタック
202の深度に応じて、直前に要求のあったドキュメン
ト206〜210のみが引き続きキャッシュ・メモリに
保存される。

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、メモリ・システム
に関し、特に、キャッシュ・メモリ内で利用可能なメモ
リ空間を管理する方法及び装置に関する。
【0002】
【従来の技術】インターネット・トラフィックの爆発的
な増加により、過度な遅延、輻輳、広範囲でのブラック
アウトを防ぎつつ、増加するユーザ数に対応する方法の
発見が不可欠となっている。過去数年間、インターネッ
ト・トラフィックの大部分はウエブの閲覧により発生し
ており、ウエブの閲覧によるトラフィックのほとんどは
画像で構成されている。ユーザが利用する帯域幅が増加
し、各種メディアに対応したPCが一般的になるにした
がって、多くのサイトがさまざまなメディアを利用する
のに伴い、上記の傾向は今後も続くであろう。そのた
め、ウエブ・キャッシング方法の研究に向け多大な労力
が払われてきた。
【0003】こうしたウエブ・キャッシング方法の一つ
にはプロキシ・ベース・キャッシングがある。プロキシ
・ベース・キャッシングにおいて、クライアントは、要
求(http、ftpなど)のすべて又は一部を代行す
るプロキシとなるホストを指定できる。プロキシは、ク
ライアントが要求したオブジェクトを一時的にローカル
・ディスク又はメモリに保存することでキャッシュの役
割を果たす。インターネットにおいて、オブジェクトと
は、ファイル、テキスト、画像、音声、実行可能なプロ
グラムや、クライアントがダウンロードできる同種のも
のを指す。プロキシを共有するクライアントの一つが要
求を出したとき、プロキシはローカル・ストレージで要
求されたオブジェクトを検索する。オブジェクトがロー
カルで見つかった(ヒットした)場合、このオブジェク
トはクライアントに送られる。それ以外の(ミスした)
場合は、リモート・サーバへ、又はこのプロキシ・キャ
ッシュがキャッシュの階層に属しているときは他のプロ
キシ・サーバへ、この要求が伝達される。この場合、残
念ながら、ヒットに対するミスの数の割合が比較的小さ
かったとしても、要求されたドキュメントを他のプロキ
シ・サーバやリモート・サーバから検索する必要がある
ため、ブラウザのパフォーマンスは大きく低下する。
【0004】パフォーマンス向上のために使用する他の
有名なウエブ・キャッシング方法には、クライアント・
サイド・キャッシングがある。クライアント・サイド・
キャッシングでは、後の検索のためにウエブ・オブジェ
クト(HTMLドキュメントなど)をローカル・キャッ
シュ・メモリに一時的に保存する。クライアント・サイ
ド・キャッシングの利点には、ネットワークを通過する
要求と応答の発生が少ないことによる消費帯域幅の減
少、サーバの扱う要求の発生が少ないことによるサーバ
の負荷の減少、キャッシュされた要求への応答がサービ
スを提供するクライアントの近くで即座に利用できるこ
とによる待ち時間の減少が挙げられる。ほとんどの場
合、クライアント・サイド・キャッシングはクライアン
ト・アプリケーションにより実行可能であり、例えばN
etscape(登録商標)のCommunicato
r、MicrosoftのInternet Expl
orer、各種Javaブラウザをはじめ、その他のほ
とんどのウエブ・ブラウザに組み込まれている。
【0005】ウエブ・ブラウザ(及びこれをサポートす
るコンピュータ)には限られたディスク容量しかないた
め、ある時点で保存したドキュメントの古いコピーを廃
棄して新しい要求のための容量を作る必要が生じる。ほ
とんどのシステムでは、最も以前に要求されたドキュメ
ントを、将来再び要求される可能性が最も少ないものと
する方針を利用している。十分なディスク容量があれ
ば、ドキュメントが廃棄される時期は、常にドキュメン
トがより新しいバージョンと置き換わる時期と同じにな
る。しかし、ディスク容量が十分でなければ、キャッシ
ュは現行のドキュメントを廃棄せざるを得なくなり、そ
のドキュメントが次に要求されたときにソースであるホ
ストとの不必要な接続を行わなくてはならない。必要な
ディスク容量は、サービスを提供するユーザの数と要求
されるドキュメントの数により変化する。理想的なの
は、ドキュメントの存続期間を通じて、キャッシュのユ
ーザが2回以上要求したあらゆるドキュメントを保存す
る容量をキャッシュが持っていることである。こうした
キャッシュでは、変化のないドキュメントを再び取り込
むことがなくなるため、発生するネットワーク・トラフ
ィックは最低限になる。将来どのドキュメントの再読込
が行われるか予想できないため、これを実際に行うに
は、当然、要求されたドキュメントをすべてローカルで
保存する必要がある。
【0006】少なくともドキュメントの存続期間を通じ
て、要求されたドキュメントをすべて保管するのは現実
的ではないため、キャッシュ・メモリから再利用される
(又はガーベッジ・コレクションされる)ドキュメント
の数は、利用可能なキャッシュ・メモリ空間に直接関係
することになる。この分野で知られているように、ガー
ベッジ・コレクションとは、動きのないオブジェクト又
は不必要なオブジェクトを特定、収集、使用中止にする
プロセスである。ガーベッジ・コレクションされるドキ
ュメントが多すぎる場合や、頻繁に要求のあるドキュメ
ントがガーベッジ・コレクションされる場合、ローカル
・キャッシュ・メモリに保存されていないドキュメント
をネットワークから取り込む必要が生じるため、システ
ムのパフォーマンスは低下する。反対に、要求が頻繁で
ないドキュメントを定期的にガーベッジ・コレクション
しなければ、ローカル・キャッシュ・メモリで利用可能
な限られたメモリ空間はすぐに飽和する可能性がある。
こうなった場合、新しいドキュメントを保存することが
できなくなり、同じくローカル・キャッシュ・メモリに
保存されていない要求ドキュメントをネットワークから
取り込む必要があるため、やはりシステムのパフォーマ
ンスは低下する。
【0007】
【発明が解決しようとする課題】かくして、利用可能な
キャッシュ・メモリ及びブラウザのトラフィックに基づ
いて、ブラウザ環境のローカル・キャッシュ・メモリか
らドキュメントを的確に排除するための効率的な方法及
び装置が望まれる。
【0008】
【課題を解決するための手段】広く言えば、本発明は、
キャッシュ・メモリ内で利用可能なメモリ空間を効率的
に管理するための改善された方法、装置、コンピュータ
・システムに関する。本発明は、方法、コンピュータ・
システム、装置等を含め、様々な形で実施することが可
能である。本発明のいくつかの実施形態を以下に述べ
る。
【0009】本発明の一つの態様では、コンピュータに
実装されたキャッシュ・メモリ・マネージャを開示して
いる。このキャッシュ・メモリ・マネージャにはドキュ
メント・キー・スタックが含まれ、このドキュメント・
キー・スタックは、キャッシュ・メモリに保存されるド
キュメントに関連するドキュメント・キーをそれぞれ保
存するように配列されたスタック位置の深度を有し、そ
のドキュメント・キーは関連するドキュメントがそのド
キュメントに関連する強い参照を有することを示す。さ
らに、このマネージャにはマスタ・ドキュメント・ファ
イルが含まれ、このマスタ・ドキュメント・ファイル
は、キャッシュ・メモリに保存される関連ドキュメント
を独自に特定するために用いるドキュメント識別子をそ
れぞれ保存するように配列された複数のファイル位置を
有し、そのドキュメント識別子は関連するドキュメント
がそのドキュメントに関連する弱い参照のみを有するこ
とを示す。ガーベッジ・コレクタも含まれており、これ
はキャッシュ・メモリに保存されているドキュメントの
うち、弱く参照されたドキュメントのみを回収し、強く
参照されたドキュメントは回収しない。この方法によ
り、回収されたドキュメントに見合ったキャッシュ・メ
モリ空間を、新しく要求されたドキュメントの保管に周
期的に利用できるようにする。
【0010】他の実施形態において、スタック位置の数
は、キャッシュ・メモリ内で直前に要求されたファイル
を収容するのに十分なキャッシュ・メモリ空間を提供で
きるように調整される。
【0011】本発明の他の態様では、キャッシュ・メモ
リ内で利用可能なキャッシュ・メモリ空間を管理する方
法を開示している。要求されたドキュメントに関連する
ドキュメント・キーがドキュメント・キー・スタックに
存在する場合、要求されたドキュメントに関連する第一
のドキュメント・キー・スタック位置に移動する。キャ
ッシュ・メモリに保存されているドキュメントで、ドキ
ュメント・キー・スタック内に対応するドキュメント・
キーが存在しないものは、ガーベッジ・コレクタにより
回収するため、回収されたドキュメントに見合ったキャ
ッシュ・メモリ空間を、新しく要求されたドキュメント
の保管に周期的に利用できる。
【0012】本発明の上記を含めた利点は、以下の詳細
な説明を読み、図面の各図を参照することにより明らか
になろう。
【0013】本発明並びにその別の利点については、添
付図面に基づき以下の説明を参照することで最もよく理
解されよう。
【0014】
【発明の実施の形態】以下の説明では、ブラウザ環境の
キャッシュ・メモリ管理の枠組みと方法について記述し
ている。最初に、本発明を、PC環境に常駐するブラウ
ザ・アプリケーションとしての観点から記述する。一般
に、ローカル・キャッシュ・メモリを有するブラウザが
ドキュメントURL(ユニバーサル・リソース・ロケー
タ)の形でドキュメント要求を受け取ったとき、要求さ
れたドキュメントに関連するドキュメント・キーが、調
整可能なドキュメント・キー・スタック内に存在してい
るかどうかの判断がなされる。次に、このドキュメント
・キーをスタックの第一の位置に移動させ、要求された
ドキュメントが直前に要求のあったドキュメントである
ことを示し、そのためガーベッジ・コレクションの際に
回収される可能性が最も低いドキュメントであることを
示す。関連するドキュメント・キーがドキュメント・キ
ー・スタック内に存在しないときは、マスタ・ドキュメ
ント・リストを更新し、要求されたドキュメントURL
をこれに含める。要求されたドキュメントURLに関連
する新しいドキュメント・キーは、その後インスタンス
を生成され、ドキュメント・キー・スタックの第一の位
置に挿入される。
【0015】実施形態の一つにおいて、ローカル・キャ
ッシュ・メモリに保存され、ドキュメント・キー・スタ
ック内に対応するドキュメント・キーが存在しないドキ
ュメントは、ガーベッジ・コレクションの際に回収の対
象となる。そのため、キャッシュ・メモリに保存されて
いる回収可能なドキュメントの数は、ドキュメント・キ
ー・スタックの深度(利用できる位置の数)により変化
する。ドキュメント・キー・スタックの深度は、例え
ば、利用可能なキャッシュ・メモリ空間やブラウザ・ト
ラフィックの量に応じて決定できる。こうして、任意の
時点でローカル・キャッシュ・メモリに常駐するドキュ
メントの数やタイプを上手く管理することで、ブラウザ
のパフォーマンスを改善できる。
【0016】ローカル・キャッシュ・メモリが限られて
いる状況は、インターネット電話などの組込型装置では
よく見られるが、この場合、ドキュメント・キー・スタ
ックの深度を浅く設定することができる。浅い設定と
は、ローカル・キャッシュ・メモリ内に保存されるドキ
ュメントでガーベッジ・コレクションの対象とならない
ものの数を減らし、大きなメモリ空間を周期的に利用可
能にすることを意味する。一方、キャッシュ・メモリ空
間がそれほど厳しく制限されていない状況や、メモリ空
間の可用性よりもシステムのパフォーマンスが重視され
る状況、例えばPCのインターネット・ブラウザ・アプ
リケーションなどにおいては、ドキュメント・キー・ス
タックの深度を増やすことができる。これにより、ロー
カル・キャッシュ・メモリはガーベッジ・コレクション
の対象にならないドキュメントを比較的多く保存し、シ
ステムのパフォーマンスを向上させる。システムのパフ
ォーマンスが向上するのは、最近要求のあったドキュメ
ントを数多くローカルで保存することで、ドキュメント
の取り込みをネットワークやプロキシ・キャッシュ・メ
モリへのアクセスに頼らずに行えるためである。
【0017】普通、最も以前にアクセスしたドキュメン
トは、直前に要求のあったドキュメントを収容するため
に優先的に回収される。しかし、利用するアプリケーシ
ョンにふさわしいと思われる場合、その後、適切なスケ
ジューリング・プロトコルを行える点に注意が必要であ
る。
【0018】ほとんどのウエブ・ブラウザは、図1に示
すような非常に単純なアプローチによりネットワークし
ている。ブラウザ100とホスト名及びホスト上のドキ
ュメントを含むURL(ユニバーサル・リソース・ロケ
ータ)があるとき、ブラウザ100内のパーサ102
は、URLを指名ホスト部104と要求ドキュメント部
106に分解(パース)する。本発明の実施形態の一つ
では、要求ドキュメント106は、当業者に良く知られ
ているHTML(ハイパ・テキスト・マークアップ言
語)ステートメントの形を取る。
【0019】要求ドキュメントがローカル・キャッシュ
・メモリ108に保存されていない場合、パーサ102
は指名ホスト部104とTCP(伝送制御プロトコル)
接続を行い、要求したURLのドキュメント部106に
含まれるコンテンツを取り込む。実施形態の一つでは、
指名ホスト部104から取り込んだURLコンテンツ
に、要求ドキュメント部106に対応するHTMLステ
ートメントが含まれる。パーサ102は、要求ドキュメ
ント部106に対応するHTMLステートメントを使用
して、ドキュメント・オブジェクト・モデル(DOM)
110のインスタンスと呼ばれるものを形成し、これが
フォーマッタ112に送られた後、適切なドキュメント
の表示が行われる。
【0020】要求ドキュメント部106がローカル・キ
ャッシュ108に保存されている場合は、フォーマッタ
112と結合するキャッシュ・メモリ・マネージャ11
4が、適切なドキュメント・タグを使用して、ローカル
・キャッシュ・メモリ108から要求ドキュメントを直
接取り込む。その後、フォーマッタ112が取り込んだ
ドキュメント106を適切に表示する。キャッシュ・メ
モリ・マネージャ114が、利用可能なキャッシュ・メ
モリやブラウザ・トラフィックに応じて、ガーベッジ・
コレクション・サービスを提供し、ローカル・キャッシ
ュ・メモリ108に保存されているドキュメントを排除
する点に注意が必要である。キャッシュ・メモリ・マネ
ージャ114が使用するキャッシュ・メモリ管理スキー
ムの一つでは、直前に要求のあったドキュメントをガー
ベッジ・コレクションの対象から除外する。実施形態の
一つでは、キャッシュ・メモリ・マネージャ114は、
利用可能なキャッシュ・メモリ空間などに基づいて、ガ
ーベッジ・コレクションの対象となるファイルの数やタ
イプを変化させる。
【0021】次に図2では、本発明の実施形態に従った
キャッシュ・メモリ・マネージャ200を示している。
このキャッシュ・メモリ・マネージャ200は、図1に
示したキャッシュ・メモリ・マネージャ114の実施形
態の一つである。このキャッシュ・メモリ・マネージャ
200には、ドキュメント・キー・スタック202が含
まれている。実施形態の一つでは、ドキュメント・キー
・スタック202は、Java仮想コンピュータ(JV
M)環境で見られるような、オブジェクト指向プログラ
ム及びシステムでの使用に適した自己消去式のハッシュ
表として導入されている。ここでの自己消去式とは、ガ
ーベッジ・コレクションの際に回収されたドキュメント
に関連するドキュメント・キーが、ドキュメント・キー
・スタック202から排除(消去)されることを意味す
る。このキャッシュ・メモリ・マネージャ200には、
マスタ・ドキュメント・リスト204も含まれており、
同じく自己消去式のハッシュ表として導入されている。
説明する実施形態において、マスタ・ドキュメント・リ
スト204は、ドキュメント識別子を、通常はドキュメ
ントURLの形で保存するようになっており、これは、
例えばドキュメント206〜210で表すキャッシュ・
メモリで保存されるドキュメントに関連している。各ド
キュメント206〜210は、それぞれURL0、UR
1、URL2というユニバーサル・リソース・ロケータ
の形の関連ドキュメント識別子を持っている。
【0022】本発明の実施形態の一つにおいて、ドキュ
メント・キー・スタック202には、100〜104の
ように、利用可能なドキュメント・キー・スタック位置
が多数あり、これらは、特定のドキュメントや現在ロー
カル・キャッシュ・メモリ108に保存されているドキ
ュメントに対応するドキュメント・キーを保存するのに
使用する。一例では、ドキュメント・キー・スタック位
置100がドキュメント・キー、キー0を含み、これは
ユニバーサル・リソース・ロケータ、URL0を有する
ドキュメント206に対応している。また、ドキュメン
ト・キー・スタック位置102がドキュメント・キー、
キー1を含み、これはユニバーサル・リソース・ロケー
タ、URL1を有するドキュメント208に対応してい
る。これにより、ローカル・キャッシュ・メモリ108
に保存される各ドキュメントを、URL及びドキュメン
ト・キーの組み合わせにより、個別に特定することがで
き、この組み合わせをドキュメント・タグと呼ぶ。一例
では、ドキュメント206は対応するドキュメント・タ
グ(URL0、キー0)を持ち、ドキュメント208は対
応するドキュメント・タグ(URL1、キー1)を有す
る。説明する実施形態では、ドキュメント210(ユニ
バーサル・リソース・ロケータ、URL2を有する)
も、ドキュメント・キー、キー0に関連している点に注
意が必要である。このため、ドキュメント・キー・スタ
ック202のサイズ(位置の数)はローカル・キャッシ
ュ・メモリ108に保存されるドキュメントの総数より
も小さくすることができる。
【0023】説明する実施形態において、マスタ・ドキ
ュメント・リスト104には、ローカル・キャッシュ・
メモリ108に保存されるドキュメント又はブラウザ1
00が要求したドキュメントのすべてに関するドキュメ
ント識別子が、通常はユニバーサル・リソース・ロケー
タ(URL)の形で含まれている。一例では、各ドキュ
メント206〜210は、対応するユニバーサル・リソ
ース・ロケータ(URL)を持っており、これはマスタ
・ドキュメント・リスト204内の利用可能な位置の一
つで保存されている。
【0024】実施形態のように、対応するドキュメント
・キーがドキュメント・キー・スタック202に含まれ
るドキュメントは、強い参照と呼ばれる状態にある。J
ava実行時環境など、ガーベッジ・コレクションを利
用して未使用のメモリを再生するオブジェクト指向オペ
レーティング・システムでは、参照は他のオブジェクト
指向システムにおけるオブジェクトへのポインタに近い
もので、この分野では広く知られている用語である。参
照とポインタの違いは、ガーベッジ・コレクション・シ
ステムとの相互作用の方法にある。ガーベッジ・コレク
タは強く参照されていると思われるオブジェクトを回収
しない。オブジェクトが強く参照されるのは、ルート・
セット(システム全体が終了するまで回収されない最初
の参照セット)から問題のオブジェクトへの参照のパス
が見つかった場合である。ドキュメント・キー・スタッ
ク202にドキュメント・キーがあるドキュメントは、
強く参照されているとみなされる。これは、ルート・セ
ットからドキュメント・キー・スタック202へのルー
ト・セットが常に存在し、ドキュメント・キー・スタッ
ク202がキーを含んでいるドキュメントへの参照を有
することにより、ルート・セットからドキュメントへの
パスが完成するためである。
【0025】オブジェクトが、ルート・セットからの参
照を全く持たない場合、そのオブジェクトは到達不能と
され、未使用のメモリとしてガーベッジ・コレクタによ
り回収できるようになる。
【0026】Java実行時環境など、ガーベッジ・コ
レクトを行うオブジェクト指向システムの一部では、弱
い参照と呼ばれるものが考慮される。弱い参照は、他の
オブジェクト指向システムにおけるオブジェクトへのポ
インタに近い点では強い参照と全く同じである。弱い参
照は、ガーベッジ・コレクタとの相互作用に関して、強
い参照とは異なっている。ルート・セットからオブジェ
クトへのパスが、任意の数の弱い参照と交差するものし
かない場合、そのオブジェクトは弱く参照されているこ
とになる。弱く参照されるオブジェクトは常にガーベッ
ジ・コレクタにより回収される可能性がある。しかし、
弱く参照されるオブジェクトは到達不能ではない。ガー
ベッジ・コレクタが弱く参照されたオブジェクトを回収
していなければ、弱い参照を通じて、強く参照されたオ
ブジェクトと全く同じ形で、そのオブジェクトを使用す
ることができる。しかし、ガーベッジ・コレクタは弱く
参照されたオブジェクトを常に回収することができる。
そのため、弱い参照は、メモリが少なく、システムのパ
フォーマンスにとって必要なときだけ消去されるキャッ
シュを構築する上で有効である。
【0027】したがって、キャッシュ・メモリ・マネー
ジャが少なくとも強い参照を維持している限り、ドキュ
メントはガーベッジ・コレクションの対象にはならな
い。一方、ドキュメントに弱い参照しかない場合、ドキ
ュメントはガーベッジ・コレクタによる回収の対象とな
る。
【0028】ローカル・キャッシュ・メモリ108に現
在保存されているドキュメントがガーベッジ・コレクシ
ョンの対象となる状況として代表的なものは、キャッシ
ュ・メモリ・マネージャ200が実行するスケジューリ
ング・プロトコルの決定において、特定のドキュメント
の要求が最近行われなかった場合である。この場合、ド
キュメントの存続期間(要求の間の予想期間)がすでに
経過している可能性が強く、より新しい他のドキュメン
トをローカル・キャッシュ・メモリ108でローカルに
保存するのが妨げられるため、そのドキュメントをロー
カル・キャッシュ・メモリ108で保存するのはメモリ
空間にとって効率が悪い。最も以前に要求されたドキュ
メントへの強い参照を無効にすることで、そのドキュメ
ントには弱い参照しかなくなり、後のガーベッジ・コレ
クション・サイクルの際にローカル・キャッシュ・メモ
リから回収される対象となる。こうすることで、貴重な
キャッシュ・メモリを使用して、より最近要求のあった
ドキュメントをローカルで保存できるようになる。一
方、十分なメモリが利用可能で、ガーベッジ・コレクシ
ョンの必要がないと思われる場合、ガーベッジ・コレク
ションが実際に行われるまで、弱く参照されたドキュメ
ントはキャッシュにとどまる。
【0029】一例として、図3では、ドキュメント20
8の要求が最近行われず、ドキュメント・キー、キー1
がドキュメント・キー・スタック202から除外された
状況を表している。ドキュメント・キーがドキュメント
・キー・スタック202から除外されるもう一つの状況
は、ドキュメント・キー・スタック202の深度そのも
のが減少したために、そこに含まれていた特定のドキュ
メント・キーが除外される場合である。どちらの場合で
も、対応するドキュメント・キーがドキュメント・キー
・スタック202に含まれていないドキュメントは、対
応する強い参照が廃止され、マスタ・ドキュメント・リ
スト204からドキュメント208への弱い参照のみが
残る。この状況では、その後のガーベッジ・コレクショ
ン・サイクルの際にドキュメント208のみがローカル
・キャッシュ・メモリ108から回収され、ドキュメン
ト206及び210はローカル・キャッシュ・メモリ1
08に保存された状態が継続する。
【0030】そのため、ローカル・キャッシュ・メモリ
空間が限られている状況では、強い参照を有するドキュ
メントに比べ、弱い参照のみを有するドキュメントの数
を多くするのが望ましい。これにより、弱い参照のみを
有するドキュメントはガーベッジ・コレクションの際に
回収され、貴重なキャッシュ・メモリ空間がガーベッジ
・コレクションの際に選択的に解放される。
【0031】しかし、メモリー空間よりシステムのパフ
ォーマンスが重視されるブラウザ・タイプのアプリケー
ションのように、ドキュメントをすぐにローカルで取り
込めるようにしておく状況では、弱い参照のみを有する
ドキュメントに比べ、強い参照を有するドキュメントの
数を多くするのが望ましい。これにより、ガーベッジ・
コレクションの際に強い参照を有するドキュメントは排
除されないため、こうしたドキュメントだけがローカル
・キャッシュ・メモリ108に残ることになる。
【0032】したがって、本発明の実施形態では、キャ
ッシュ・メモリ・マネージャ200は、弱い参照のみを
有するドキュメントの状況に応じて、強い参照を有する
ドキュメントやその数を選択的に決める能力を提供す
る。この能力は図4に示しており、ここではキャッシュ
・メモリ・マネージャ200が、ドキュメント・キーを
保存する位置402を一つだけ有する新しいドキュメン
ト・キー・スタック402を作成している。ドキュメン
ト・キー・スタック400で保存できるドキュメント・
キーの数を減らすと、強い参照を有するドキュメントの
数は同じ度合いで減少する。これにより、ローカル・キ
ャッシュ・メモリ108に保存されているドキュメント
でガーベッジ・コレクションの対象となるものが増え、
貴重なキャッシュ・メモリ空間が周期的に解放される。
この処置は、インターネット電話など、ローカル・メモ
リの制約が厳しいアプリケーションで利用するのにふさ
わしい。
【0033】さらに詳しく述べると、図4に示す状況に
おいて、ドキュメント206及び208は対応するドキ
ュメント・キーがドキュメント・キー・スタック402
で保存されなくなり、後のガーベッジ・コレクション・
サイクルの際にローカル・メモリ108から回収される
対象となる。ただし、マスタ・ドキュメント・リスト4
04への弱い参照は依然として有効である。マスタ・ド
キュメント・リスト404への弱い参照を維持すること
で、例えばドキュメント206が(仮に)再び要求され
たときに、ドキュメント206に関連するドキュメント
・キー・スタック202にドキュメント・キーを再挿入
するのが容易になる。
【0034】このように、強い参照を有するドキュメン
トと弱い参照のみ有するドキュメントの割合は、ドキュ
メント・キー・スタックの深度(利用可能な位置の数)
を増減することで調節できる。この割合を調節すること
で、利用できるキャッシュ・メモリ空間やブラウザのト
ラフィックといった要素に基づいて、ガーベッジ・コレ
クションの際に回収されるドキュメントの数(及び種
類)を調節できる。
【0035】例えば、キャッシュ・メモリ空間が限られ
ている場合は、ドキュメント・キー・スタックの深度を
減らして、強い参照を有するドキュメントの数を比較的
少なくし、弱い参照のみを持ち、ガーベッジ・コレクシ
ョンの対象となるドキュメントの数を増やすことができ
る。反対に、ドキュメント・キー・スタックの深度を増
やせば、強い参照を有するドキュメントの数を比較的多
くして、ガーベッジ・コレクションの対象を少なくし、
ローカルで保存されるドキュメントの数を増やすことが
できる。ここで、ドキュメント・キー・スタックの深度
をローカル・キャッシュ・メモリ108の利用可能なメ
モリ空間に動的にリンクすれば、図5に示す通り、自動
制御式キャッシュ・メモリ・マネージャ500を導入す
ることが考えられる。自動制御式キャッシュ・メモリ・
マネージャ500はローカル・キャッシュ・メモリ10
8の利用可能なメモリ空間の量を定期的に判定し、この
判定をもとに、ドキュメント・キー・スタック502の
深度を変える。例えば、キャッシュ・メモリ108の利
用可能なキャッシュ・メモリ空間が規定の閾値より少な
いと判定された場合、ドキュメント・キー・スタック5
02の位置の数は減らされる。これにより、後のガーベ
ッジ・コレクションの際に回収されるファイルの数は増
え、利用可能なキャッシュ・メモリ空間は増加する。別
の状況において、自動制御式キャッシュ・メモリ・マネ
ージャ500はシステムの全体的なパフォーマンスな
ど、その他の要素に基づいて、ドキュメント・キー・ス
タック502の深度を定期的に変えることができる。
【0036】次に図6は、本発明の実施形態に従ってド
キュメントを取り込むプロセス600を説明するフロー
チャートである。このプロセス600が始まる602で
は、キャッシュ・メモリ・マネージャが要求ドキュメン
トに対応するドキュメント・タグを受領する。上述の実
施形態において、ドキュメント・タグには、要求ドキュ
メントに固有のドキュメント・キーや関連するユニバー
サル・リソース・ロケータ(URL)が含まれる。次に
キャッシュ・メモリ・マネージャは、そのドキュメント
・キーが604の中に存在しているかを判断する。ドキ
ュメント・キーが存在している場合は、606におい
て、そのドキュメント・キーに関連するドキュメント・
キー・ホルダがドキュメント・キー・スタックの先頭に
移動する。このように、直前に要求されたドキュメント
は、最近要求されていないドキュメントよりも優先的に
ローカル・キャッシュ・メモリに保存される。604に
戻って、ドキュメント・キー・ホルダがドキュメント・
キー・スタックに存在しない場合、608において、新
しいドキュメント・キー・ホルダのインスタンスが生成
され、606において、このドキュメント・キー・ホル
ダがドキュメント・キー・スタックの先頭に移動する。
直前に要求されたドキュメント・キーを管理すること
で、キャッシュ・メモリ・マネージャは直前に要求され
たドキュメントをキャッシュ・メモリの中に維持する能
力を有する。これにより、ミスに対するヒットの割合は
大幅に小さくなり、システムのパフォーマンスが向上す
る。
【0037】どちらの場合も、ドキュメント・キー・ホ
ルダがドキュメント・キー・スタックの先頭に追加され
た後、ドキュメント・キー・ホルダやドキュメントUR
Lを含むドキュメント・タグに関連するドキュメントを
610で取り込み、612で返送する。
【0038】図7は、本発明の実施形態に従って、関連
するドキュメント・キーやドキュメントURLを使用し
てドキュメントを取り込むプロセスを説明するフローチ
ャートである。このプロセス610が始まる702で
は、キャッシュ・メモリ・マネージャが、ドキュメント
URLを含む受領ドキュメント・タグがドキュメント・
キー・スタックに存在しているかどうかを判断する。そ
のドキュメント・タグがドキュメント・キー・スタック
に存在するとき、関連するドキュメントはキャッシュ・
メモリに保存されており、強い参照を持っているためガ
ーベッジ・コレクションにより回収されない。そのドキ
ュメント・タグがドキュメント・キー・スタックに存在
するとき、受領したドキュメントURLや対応するドキ
ュメント・キーを含むドキュメント・タグに関連するド
キュメントは704で返送される。一方、ドキュメント
・タグがドキュメント・キー・スタックに存在しない場
合、706において、受領したドキュメントURLがマ
スタ・ドキュメント・リストに存在するかどうかの判断
がなされる。要求ドキュメントに関連するドキュメント
・キーがドキュメント・キー・スタックに存在せず、ド
キュメントURLがマスタ・ファイル・スタックに存在
する状況では、そのドキュメントはキャッシュ・メモリ
に保存されているが、ガーベッジ・コレクションの回収
の対象となっている。したがって、その要求ドキュメン
トは次のガーベッジ・コレクション・サイクルの前に、
関連する強い参照を有する必要がある。マスタ・ドキュ
メント・リストに存在する場合、ドキュメント・キーは
708においてドキュメント・キー・スタックに適切に
挿入される。しかし、受領したドキュメントURLがマ
スタ・ドキュメント・リストに存在しない場合、710
でマスタ・ドキュメント・リストにおけるドキュメント
への弱い参照が作成される。このようにして、ドキュメ
ント・キーをドキュメント・キー・スタックに挿入する
ことで、対応するドキュメントの強い参照を確立し、こ
のドキュメントがガーベッジ・コレクションの際に回収
されるのを防ぐ。
【0039】前述のように、システムのパフォーマンス
が利用可能なキャッシュ・メモリ空間に動的に左右され
る状況において、ドキュメント・キー・スタックを調節
することができる。こうしたドキュメント・キー・スタ
ックの深度を調節するプロセスを図8に示し、本発明の
実施形態に従ったプロセス800を説明している。この
プロセス800の始まりである802では、希望するキ
ー・スタックの深度を持った配列を作成する。キー・ス
タックの深度は、通常、キャッシュ・メモリに保存され
強い参照を有するドキュメントの数と正比例している。
例えば、キャッシュ・メモリ空間が限られている場合に
は、これに応じてキー・スタックの深度を減らし、直前
に取り込んだドキュメントのみを収容できるようにす
る。一方、キャッシュ・メモリ空間が制約要素ではない
ときや、システムのパフォーマンスを重視するときは、
これに応じてキー・スタックの深度を増やす。804で
は、直前に要求のあったドキュメント・キー・ホルダを
古い配列から新しい配列にコピーする。これにより、キ
ー・スタックの深度の変化に基づいて、調節されたキー
・スタック内に関連するドキュメント・キーを有するド
キュメントの数が変化した場合でも、これまでのスケジ
ューリング・プロトコルを維持する。806では、古い
配列へのポインタを新しい配列へのポインタにスワップ
し、古いキー・スタック配列を、調節されたキー・スタ
ックの深度を有する新しいキー・スタック配列に置き換
える。
【0040】当業者には理解できるように、コンピュー
タシステム900、具体的にはCPU902に、仮想コ
ンピュータをサポートさせることができる。この分野で
よく知られているように、ROMはCPU902に対し
てデータや指示を一方向で伝達する働きをし、RAMは
通常、データや指示を双方向で伝達する。一般にCPU
902は任意の数のプロセッサを含む。主記憶装置90
4及び906には共に適切な任意のコンピュータ可読媒
体が含まれる。二次記憶媒体908は、大容量記憶装置
に代表され、CPU902と双方向で結合し、補助デー
タ記憶能力を提供する。大容量記憶装置908は、コン
ピュータ・コード、データなどを含むプログラムを保存
するのに使用可能なコンピュータ可読媒体である。通
常、大容量記憶装置908は、一般に主記憶装置904
及び906よりも速度の遅いハードディスクやテープな
どの記憶媒体である。大容量記憶装置908は、磁気テ
ープ読み取り装置、紙テープ読み取り装置、その他の良
く知られた装置の形態を取ることができる。大容量記憶
装置908が保有する情報は、適当な場合には、標準的
な形式で、RAM906の一部となる仮想メモリとして
組み込むことが可能になると考えられる。CD−ROM
などの特定の主記憶装置904も、CPU902へ一方
向でデータを伝達することができる。
【0041】CPU902は一つ以上の入出力装置91
0とも結合しており、これにはビデオ・モニタ、トラッ
ク・ボール、マウス、キーボード、マイクロフォン、タ
ッチ式ディスプレイ、トランスデューサ・カード読み取
り装置、磁気テープ又は紙テープ読み取り装置、タブレ
ット、スタイラス、音声又は手書き文字認識装置、その
他の良く知られた入力装置が含まれ、当然ながら別のコ
ンピュータもその一つである。最後にCPU902は、
オプションとして、912で全般的に示すネットワーク
接続を利用して、コンピュータ・ネットワークや通信ネ
ットワークと結合することが可能で、これには例えばイ
ンターネット・ネットワークやイントラネット・ネット
ワークがある。こうしたネットワーク接続がある場合、
CPU902は、上述のステップを実施する過程で、ネ
ットワークからの情報の受領やネットワークへの情報の
出力が可能になると考えられる。こうした情報は、CP
U902を使用して実行する一連の指示である場合が多
く、例えば搬送波に組み込んだコンピュータ・データ信
号の形態で、ネットワークからの受領やネットワークへ
の出力が可能である。上述の装置や機器は、コンピュー
タ・ハードウェア及びソフトウェアの当業者にとって周
知のものである。
【0042】本発明の実施形態を幾つか説明してきた
が、本発明は、発明の趣旨や範囲から逸脱することな
く、他の数多くの具体的な形態により実施することが可
能であることは理解されよう。例えば、画像、テキスト
・ファイルなど、キャッシュ・メモリに保存可能な任意
のデジタル情報の形態を利用することができる。
【0043】本発明に従ったキャッシュ・メモリ管理方
法は、特にJavaTMベース環境での実施に適している
が、全般的には該当する任意のオブジェクト・ベース環
境で応用できる。特に、この方法はプラットフォーム独
立オブジェクト・ベース環境での使用に適している。さ
らに、この方法は一部の分散オブジェクト指向システム
での実施も可能だと考えられる。
【0044】関連するウエブ・ブラウザを有するコンピ
ュータ・システムを使用して発明の説明を行ったが、本
発明が一般には、該当する任意のキャッシュ・メモリ付
きオブジェクト指向コンピュータ・システムにおいて実
施され得ることは理解されよう。したがって、この例は
説明的なものであって制限的なものではないと理解され
るべきであり、本発明はここに記載した細部に制限され
ず、前記特許請求の範囲並びにその等価物の範囲全体の
中で変更可能である。
【図面の簡単な説明】
【図1】本発明の実施形態に従ったキャッシュ・メモリ
・マネージャを組み込んだウエブ・ブラウザを示した図
である。
【図2】本発明の実施形態に従ったキャッシュ・メモリ
・マネージャを示した図である。
【図3】ドキュメントの要求が最近行われず、そのドキ
ュメント・キーがドキュメント・キー・スタックから排
除された状況を示した図である。
【図4】本発明の実施形態に従って、キャッシュ・メモ
リ・マネージャが作成した、位置の数が少ない新たなド
キュメント・キー・スタックを示した図である。
【図5】本発明の実施形態に従った自動制御式キャッシ
ュ・メモリ・マネージャを示した図である。
【図6】本発明の実施形態に従って、ドキュメントを取
り込むプロセスを説明するフローチャートである。
【図7】本発明の実施形態に従って、関連するドキュメ
ント・キーやドキュメントURLを使用してドキュメン
トを取り込むプロセスを説明するフローチャートであ
る。
【図8】本発明の実施形態に従って、参照・キー・スタ
ックの深度を設定するプロセスを説明するフローチャー
トである。
【図9】本発明を実施するのに有用な汎用コンピュータ
・システムを示した図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マシュー エフ. シルツ アメリカ合衆国, カリフォルニア州, サン ノゼ, ノースローン ドライヴ 4860 ナンバー10 (72)発明者 マイケル アール. アレン アメリカ合衆国, カリフォルニア州, レッドウッド シティ, ウエスト オー クウッド ブルヴァード 299

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュ・メモリのメモリ空間を管理
    するコンピュータ実現キャッシュ・メモリ・マネージャ
    であって、 前記キャッシュ・メモリに保存されるドキュメントに関
    連するドキュメント・キーをそれぞれ保存するように配
    列されたスタック位置の深度を有するドキュメント・キ
    ー・スタックであって、前記ドキュメント・キー・スタ
    ックにおけるドキュメント・キーの存在は、関連するド
    キュメントがそのドキュメントに関連する強い参照を有
    することを示す、ドキュメント・キー・スタックと、 前記キャッシュ・メモリに保存される関連ドキュメント
    を独自に特定するために用いるドキュメント識別子をそ
    れぞれ保存するように配列された複数のファイル位置を
    有するマスタ・ドキュメント・ファイルであって、前記
    マスタ・ドキュメント・ファイルにおけるドキュメント
    識別子の存在は、関連するドキュメントがそのドキュメ
    ントに関連する弱い参照のみを有することを示す、マス
    タ・ドキュメント・ファイルと、 キャッシュ・メモリに保存されているドキュメントのう
    ち、弱く参照されたドキュメントのみを回収し、強く参
    照されたドキュメントは回収しないことにより、回収さ
    れたドキュメントに見合ったキャッシュ・メモリ空間
    を、新しく要求されたドキュメントの保管に周期的に利
    用できるようにする、ガーベッジ・コレクタと、 を備えることを特徴とする、キャッシュ・メモリ・マネ
    ージャ。
  2. 【請求項2】 前記ドキュメント・キー・スタックの深
    度が、キャッシュ・メモリに保存される強く参照された
    ドキュメントの数に正比例して変化する、 ことを特徴とする、請求項1記載のキャッシュ・メモリ
    ・マネージャ。
  3. 【請求項3】 ドキュメント識別子を有するドキュメン
    トが直前に要求されたものであるとき、前記直前に要求
    されたドキュメントに関連するドキュメント・キーがド
    キュメント・キー・スタックに存在するかどうかの判断
    がなされる、 ことを特徴とする、請求項2記載のキャッシュ・メモリ
    ・マネージャ。
  4. 【請求項4】 前記ドキュメント・キーがドキュメント
    ・キー・スタックに存在する場合、前記ドキュメント・
    キーを第一のドキュメント・キー・スタック位置に移動
    することにより、前記直前に要求されたドキュメントを
    キャッシュ・メモリに存続する可能性の最も大きいドキ
    ュメントにする、 ことを特徴とする、請求項3記載のキャッシュ・メモリ
    ・マネージャ。
  5. 【請求項5】 前記ドキュメント・キーがドキュメント
    ・キー・スタックに存在しない場合、直前に要求された
    ドキュメントに関連するドキュメント識別子がマスタ・
    ドキュメント・ファイルに存在するかどうかの判断がな
    される、 ことを特徴とする、請求項3記載のキャッシュ・メモリ
    ・マネージャ。
  6. 【請求項6】 前記ドキュメント識別子がマスタ・ドキ
    ュメント・ファイルに存在する場合、直前に要求された
    ドキュメントに関連するドキュメント・キーのインスタ
    ンスを生成して第一のドキュメント・キー・スタック位
    置に挿入することにより、直前に要求されたドキュメン
    トをキャッシュ・メモリに存続する可能性の最も大きい
    ドキュメントにする、 ことを特徴とする、請求項5記載のキャッシュ・メモリ
    ・マネージャ。
  7. 【請求項7】 前記直前に要求されたドキュメントに関
    連するドキュメント識別子がマスタ・ドキュメント・フ
    ァイルに存在しない場合、ドキュメント識別子をマスタ
    ・ドキュメント・ファイルに挿入し、直前に要求された
    ドキュメントに関連するドキュメント・キーのインスタ
    ンスを生成して第一のドキュメント・キー・スタック位
    置に挿入することにより、直前に要求されたドキュメン
    トをキャッシュ・メモリに存続する可能性の最も大きい
    ドキュメントにする、 ことを特徴とする、請求項5記載のキャッシュ・メモリ
    ・マネージャ。
  8. 【請求項8】 前記ドキュメント・キー・スタックの深
    度が減少すると、キャッシュ・メモリに保存されてガー
    ベッジ・コレクタにより回収されるドキュメントの量が
    増え、それによって新しく要求されたドキュメントを保
    存するのに適したキャッシュ・メモリ空間が利用可能に
    なる、 ことを特徴とする、請求項2記載のキャッシュ・メモリ
    ・マネージャ。
  9. 【請求項9】 前記ドキュメント・キー・スタックの深
    度が増加すると、キャッシュ・メモリに保存されてガー
    ベッジ・コレクタにより回収されるドキュメントの量が
    減り、それによってキャッシュ・メモリから取り出すこ
    とのできるドキュメントの量が増える、 ことを特徴とする、請求項2記載のキャッシュ・メモリ
    ・マネージャ。
  10. 【請求項10】 前記キャッシュ・メモリがウエブ・ブ
    ラウザに接続される、 ことを特徴とする、請求項1記載のキャッシュ・メモリ
    ・マネージャ。
  11. 【請求項11】 前記ドキュメントがハイパーテキスト
    ・マークアップ・テキスト(HTML)文書である、 ことを特徴とする、請求項10記載のキャッシュ・メモ
    リ・マネージャ。
  12. 【請求項12】 前記ドキュメント識別子が、インター
    ネットにおいて要求されたドキュメントを独自に特定す
    るユニバーサル・リソース・ロケータ(URL)であ
    る、 ことを特徴とする、請求項11記載のキャッシュ・メモ
    リ・マネージャ。
  13. 【請求項13】 前記ドキュメント・キー・スタック及
    びマスタ・ドキュメント・ファイルが自己消去式ハッシ
    ュ表の形態をとる、 ことを特徴とする、請求項1記載のキャッシュ・メモリ
    ・マネージャ。
JP2000123132A 1999-04-23 2000-04-24 キャッシュ管理方法 Pending JP2000357120A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/298628 1999-04-23
US09/298,628 US6237060B1 (en) 1999-04-23 1999-04-23 Cache management techniques

Publications (1)

Publication Number Publication Date
JP2000357120A true JP2000357120A (ja) 2000-12-26

Family

ID=23151330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000123132A Pending JP2000357120A (ja) 1999-04-23 2000-04-24 キャッシュ管理方法

Country Status (3)

Country Link
US (1) US6237060B1 (ja)
EP (1) EP1046997B1 (ja)
JP (1) JP2000357120A (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6557091B2 (en) * 1997-08-22 2003-04-29 Koninklijke Philips Electronics N.V. Data processor with localized memory reclamation
US6415278B1 (en) * 1997-11-14 2002-07-02 Adobe Systems Incorporated Retrieving documents transitively linked to an initial document
US6789080B1 (en) * 1997-11-14 2004-09-07 Adobe Systems Incorporated Retrieving documents transitively linked to an initial document
US6434608B1 (en) * 1999-02-26 2002-08-13 Cisco Technology, Inc. Methods and apparatus for caching network traffic
JP2000293424A (ja) * 1999-04-09 2000-10-20 Hitachi Ltd ネットワークキャッシュ装置およびキャッシュ制御方法
US20010054087A1 (en) * 2000-04-26 2001-12-20 Michael Flom Portable internet services
EP1226698B1 (en) * 2000-06-14 2009-01-28 Sap Ag Communication between client and server computers via http, method, computer program product and system
US6826626B1 (en) * 2000-07-21 2004-11-30 Clear Blue Technologies Management, Inc. Method of and apparatus for rapid retrieval of data in a content distribution network
US7117262B2 (en) * 2000-11-01 2006-10-03 Inktomi Corporation Cooperative management of distributed network caches
US7260600B1 (en) 2000-11-17 2007-08-21 International Business Machines Corporation User specified parallel data fetching for optimized web access
US7203756B2 (en) * 2001-04-27 2007-04-10 International Business Machines Corporation Mechanism to cache references to Java RMI remote objects implementing the unreferenced interface
US6785698B2 (en) * 2001-05-02 2004-08-31 Alcatel Instance-reduction algorithm for garbage-collected language
US7552223B1 (en) 2002-09-16 2009-06-23 Netapp, Inc. Apparatus and method for data consistency in a proxy cache
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US7356768B1 (en) * 2002-11-27 2008-04-08 Adobe Systems Incorporated Using document templates to assemble a collection of documents
US7254542B2 (en) 2003-03-31 2007-08-07 International Business Machines Corporation Portal data passing through non-persistent browser cookies
EP1489518B1 (en) * 2003-06-19 2008-02-06 Texas Instruments Incorporated Embedded garbage collection
US20070113014A1 (en) * 2004-04-30 2007-05-17 Svetoslav Manolov Weak referenced based eviction of persistent data from cache
US7600223B2 (en) * 2004-10-25 2009-10-06 Microsoft Corporation Abstracted managed code execution
US20060101439A1 (en) * 2004-10-25 2006-05-11 Microsoft Corporation Memory management in a managed code execution environment
US7525996B2 (en) * 2005-06-28 2009-04-28 Adobe Systems Incorporated Intelligent access within a document package
US8014542B2 (en) * 2005-11-04 2011-09-06 At&T Intellectual Property I, L.P. System and method of providing audio content
US8504524B1 (en) 2009-02-09 2013-08-06 American Megatrends, Inc. Reclaiming space from a file system
US8161084B2 (en) * 2009-02-20 2012-04-17 Oracle America, Inc. Memory management of soft references
EP2567334A4 (en) 2010-05-07 2014-11-05 Google Inc CACHING ELECTRONIC DOCUMENT RESOURCES IN A CLIENT DEVICE HAVING ELECTRONIC RESOURCE DATA BASED
US20150195340A1 (en) * 2010-09-30 2015-07-09 Google Inc. Determining if an Application is Cached
US9571566B2 (en) * 2011-06-15 2017-02-14 Juniper Networks, Inc. Terminating connections and selecting target source devices for resource requests
US9158670B1 (en) * 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
ES2873373T3 (es) * 2011-10-27 2021-11-03 Ericsson Telefon Ab L M Almacenamiento en memoria caché en redes de comunicación inalámbricas
US8898376B2 (en) 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
GB2511325A (en) * 2013-02-28 2014-09-03 Ibm Cache allocation in a computerized system
RU2629448C2 (ru) 2014-07-09 2017-08-29 Общество С Ограниченной Ответственностью "Яндекс" Система и способ управления и организации кэша веб-браузера
US10083096B1 (en) * 2015-12-15 2018-09-25 Workday, Inc. Managing data with restoring from purging
US10652351B2 (en) * 2018-06-21 2020-05-12 International Business Machines Corporation Lock-free weak-reference hybrid cache
US11748260B1 (en) * 2019-09-23 2023-09-05 Amazon Technologies, Inc. Service performance enhancement using advance notifications of reduced-capacity phases of operations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555399A (en) * 1994-07-07 1996-09-10 International Business Machines Corporation Dynamic idle list size processing in a virtual memory management operating system
US5765174A (en) * 1995-10-06 1998-06-09 Sun Microsystems, Inc. System amd method for distributed object resource management
US5873100A (en) * 1996-12-20 1999-02-16 Intel Corporation Internet browser that includes an enhanced cache for user-controlled document retention
GB9717715D0 (en) * 1997-08-22 1997-10-29 Philips Electronics Nv Data processor with localised memory reclamation

Also Published As

Publication number Publication date
EP1046997A3 (en) 2003-05-21
US6237060B1 (en) 2001-05-22
EP1046997B1 (en) 2009-07-22
EP1046997A2 (en) 2000-10-25

Similar Documents

Publication Publication Date Title
JP2000357120A (ja) キャッシュ管理方法
US6973546B2 (en) Method, system, and program for maintaining data in distributed caches
US7716342B2 (en) Method and system for file-system based caching
US6526479B2 (en) Method of caching web resources
US6105028A (en) Method and apparatus for accessing copies of documents using a web browser request interceptor
KR102097300B1 (ko) 클라우드-기반 파일 시스템 내에서의 파일 핸들링
US8725793B2 (en) Architectural pattern for persistent web application design
US6061686A (en) Updating a copy of a remote document stored in a local computer system
US6925485B1 (en) Proxy cache preloader
US7363291B1 (en) Methods and apparatus for increasing efficiency of electronic document delivery to users
US20040111443A1 (en) Apparatus and methods for caching objects using main memory and persistent memory
US7426544B2 (en) Method and apparatus for local IP address translation
CN1234086C (zh) 用于高速缓存文件信息的系统和方法
US20080301300A1 (en) Predictive asynchronous web pre-fetch
EP1206100A1 (en) Communication system for retrieving web content
US20020165870A1 (en) Method and apparatus for freeing memory from an extensible markup language document object model tree active in an application cache
US20150363369A1 (en) Method and Apparatus of Processing Nested Fragment Caching of a Web Page
US8438336B2 (en) System and method for managing large filesystem-based caches
US8966059B2 (en) Cached data detection
US7661036B1 (en) Cache for collecting events on a monitored computer
TW200407778A (en) N-source in-kernel cache for high performance in computer operating systems
JP3386964B2 (ja) ゲートウェイ装置
US6532492B1 (en) Methods, systems and computer program products for cache management using admittance control
Jiang et al. Prefetching links on the WWW
JP2004280405A (ja) 情報提供システム及び情報提供方法、並びにコンピュータ・プログラム