JP2005539315A - プロキシ・キャッシュに関する装置および方法 - Google Patents

プロキシ・キャッシュに関する装置および方法 Download PDF

Info

Publication number
JP2005539315A
JP2005539315A JP2004536622A JP2004536622A JP2005539315A JP 2005539315 A JP2005539315 A JP 2005539315A JP 2004536622 A JP2004536622 A JP 2004536622A JP 2004536622 A JP2004536622 A JP 2004536622A JP 2005539315 A JP2005539315 A JP 2005539315A
Authority
JP
Japan
Prior art keywords
file
data
client
server
cache
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.)
Granted
Application number
JP2004536622A
Other languages
English (en)
Other versions
JP4547264B2 (ja
Inventor
アカウィー,エマニュエル
プラカシュ,アシシュ
アムダー,マシュー
アイヤー,カーティク
Original Assignee
ネットワーク・アプライアンス・インコーポレイテッド
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 ネットワーク・アプライアンス・インコーポレイテッド filed Critical ネットワーク・アプライアンス・インコーポレイテッド
Publication of JP2005539315A publication Critical patent/JP2005539315A/ja
Application granted granted Critical
Publication of JP4547264B2 publication Critical patent/JP4547264B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Abstract

一実施形態において本発明は、データをネットワーク内にキャッシュする装置を提供する。この装置は、クライアント(105)からオブジェクトの要求を受信し、サーバ(110)からデータブロックをフェッチするように構成されたプロキシ・キャッシュ(115)を含む。プロキシ・キャッシュは、データブロックをオブジェクト内に階層関係でキャッシュするように構成される。オブジェクトには、例えばデータファイルやディレクトリがある。プロキシ・キャッシュにキャッシュされたデータブロックは、クライアントからの要求に基づくアクティブデータセットを規定する。

Description

本発明の実施形態は概してコンピュータ・ネットワークに関する。詳しくは、本発明の実施形態は概してファイルシステムおよび記憶装置に関する。
大きな組織は地理的に分散配置されている。それらは、高速のローカル・エリア・ネットワーク(LAN)を備えた少数の大型中央サイトを有し、ローカルデータを中央エリアまたは中央システムにまとめて整理して置くことができる。しかしながら、大きな組織は、小さな遠方の事務所、支社、および/または、他の末端位置をさらに有する場合があり、それらから中央集中化されたデータ保管場所までの接続の帯域幅は比較的狭く、遅延も比較的大きい。末端位置には、例えばサーバのバックアップや故障したハードウェアおよび/またはソフトウェアの交換といったローカルデータのニーズに携わるIT(情報技術)スタッフが居ない場合がある。遠方の事務所に居るユーザは、中央サイトに居る相手方に比べて、企業ITインフラストラクチャの能力、信頼性、および、サービスが非常に低いことを知っている。
大型サイト間におけるデータの共有は厄介でもある。大型サイトは通常、専用の広帯域リンクによって相互接続される。しかしながら、サイト間の地理的距離は、多くの用途にとって許容されない遅延を発生させる。
現在の解決策は、各末端位置にファイルサーバ(ネットワーク・アプライアンス・インコーポレイテッドから市販されている「ファイラ」など)を設置し、サーバをワイド・エリア・ネットワーク(WAN)を介して中央位置に自動的にバックアップすることである。サイト間で共有される読出し専用データは、同期ミラーリングによって複製される。ハイパーテキスト・トランスファ・プロトコル(HTTP)およびストリーミング・トラフィックが、例えばネットワーク・アプライアンス・インコーポレイテッドから市販されている「NetCache」のようなネットキャッシュを用いてキャッシュされる。
末端位置におけるファイルサーバの管理は、コストおよび/またはリソースの点で高くつく可能性がある。WANを介したデータのバックアップ作業は、慎重な計画と管理を必要とする。WANを介して読出し専用ボリュームを複製することは、やり過ぎであることが多い。多くの場合、実際に日常的に使用されるのは、ボリュームのうちの小さな割合の部分(/usr/local/binなど)だけである。一般に、動的データセット(ユーザのホームディレクトリなど)を複製することはなく、動的データセットは各位置で個別に管理しなければならない。
従って、上記の製品および方法は、特定の能力および機能に制限され、数々の制約を受ける。
本発明は一実施形態において、データをネットワーク内にキャッシュする装置を提供する。この装置は、クライアントからオブジェクトの要求を受信し、サーバからデータブロックをフェッチするように構成されたプロキシ・キャッシュを含む。プロキシ・キャッシュは、データブロックをオブジェクト内に階層関係でキャッシュするように構成される。オブジェクトには、例えばデータファイル、ディレクトリ、データブロックのようなデータファイルの一部などがある。プロキシ・キャッシュにキャッシュされたデータブロックは、クライアントからの要求に基づいてアクティブデータセットを定義する。
それらの対策、並びに、説明の進行につれて当業者には明らかとなるであろう付随的な対策および特徴は、添付の図面に例として符号付きで示される装置、アセンブリ、本発明の実施形態の方法、およびそれらの好ましい実施形態によって達成される。
図面を参照し、本発明の種々の実施形態について説明する。特に断わりがない限り、全部図面を通じて、同じ符号は同じ部品を意味している。
本発明の実施形態を完全に理解してもらうために、本明細書には、構成要素および/または方法の例など、多数の具体的詳細を記載している。しかしながら、本発明が、それらの具体的詳細のうちの1以上が無くても実施できるものであり、他の装置、システム、方法、構成要素、材料、部品などを用いて実施することも可能であることは、当業者には明らかであろう。本発明の実施形態が不明確になることを避けるために、他の例では、周知の構造、材料、処理については図示も説明も詳しくしていない。
図1Aは、クライアント装置105(1)〜105(n)、サーバ110(1)〜110(m)およびプロキシ・キャッシュ(すなわちプロキシ・アプライアンス)115を含むネットワーク100を示すブロック図である。これらの構成要素は、本発明の一実施形態に従ってフォワード・プロキシ構成を形成している。以下で説明するように、本発明の他の実施形態は、リバース・プロキシ構成の少なくとも1つのプロキシ・キャッシュを含むネットワークを有する。本発明の実施形態は、下記の機能のうちの少なくとも一部を有する。すなわち、提供する。
(1)位置に非依存、および、名前空間の統合
(2)オン・デマンドでまばらな整合のとれたデータの複製
(3)ロード・バランシング
(4)遠隔切断アクセスおよびデータ変更
(5)プロトコル変換
これらの仮想化を適用することにより、従来の方法に関連する法外なコストを伴なうことなく、分散型ストレージの基盤を構築することが可能になる。
上記の変数nおよびmは任意の適当な整数値である。従って、クライアント装置(本明細書では通常、クライアント105と呼ぶ)の数と、サーバ(本明細書では通常、サーバ110と呼ぶ)の数は、変更してもよい。例えば、ネットワーク100は、たった1つのクライアント装置105、および/または、たった1つのサーバ110を用いて実施することもできる。クライアント装置105は、ローカル・エリア・ネットワーク(LAN)120を介してプロキシ・キャッシュ115に接続され、サーバ110は、ワイド・エリア・ネットワーク(WAN)125を介してプロキシ・キャッシュ115に接続される。
図1Aに示すフォワード・プロキシ構成によれば、データをプロキシ・キャッシュ115にオン・デマンドでキャッシュすることができる。つまり、プロキシ・キャッシュ115によるオン・デマンドでまばらな整合のとれたデータの複製が可能となる。このオン・デマンド・キャッシュ処理は、従来の複製方法に比べて効率が高く、従来の複製方法で使用されているような特殊なソフトウェアを必要としないという利点がある。
一実施形態において、プロキシ・キャッシュ115とクライアント装置105は、ネットワーク・ファイル・システム(NFS)プロトコルのようなオープン・スタンダード・プロトコル130を用い、LAN120を介して互いに通信することができる。以下で説明するように、オープン・スタンダード・プロトコル130は、コモン・インターネット・ファイル・システム(CIFS)プロトコルのような他の適当なオープン・スタンダード・プロトコルであってもよい。プロキシ・キャッシュ115とサーバ110は、NFSのようなオープン・スタンダード・プロトコル135を用い、ワイド・エリア・ネットワーク(WAN)125を介して互いに通信することができる。本発明の一実施形態は、WAN125およびLAN120にオープン・スタンダード・プロトコルを使用しているので、従来の方法で必要とされる特殊なソフトウェアが不要であるという利点を有する。特に、NFSのようなオープン・スタンダード・プロトコルを使用することにより、クライアント105として異種のクライアントを使用することが可能となる。言い換えれば、「異種のクライアント」という用語は、異なる製造業者またはベンダーで製造された種々のクライアントを都合よく使用出来ることを意味している。クライアントは、サーバ110と通信するための特殊なソフトウェアを必要としない。
さらに、オープン・スタンダード・プロトコルを使用すると、プロキシ・キャッシュ115をネットワーク100内に設置するときに通常ならば必要となるクライアント装置105の設定変更も不要になる。従って、プロキシ・キャッシュ115を使用すると、ネットワーク管理に関するオーバヘッドおよびコストを低減することができる。なお、プロキシ・キャッシュ115は、ネットワーク100内のサーバ110やクライアント105から離れた場所から管理したり、それらから離れた場所に設置してもよい。
通常、プロキシ・キャッシュ115は、プロキシ・キャッシュ115に接続されたサーバ110およびクライアント105を識別するとともに、サーバ110に格納された特定のデータファイルを識別することができる。
例えば、クライアント105がデータを要求したときに、そのデータがプロキシ・キャッシュ115になければ、「キャッシュ・ミス」が発生する。一方、要求されたデータがプロキシ・キャッシュ115にあれば、「キャッシュ・ヒット」が発生する。これらの処理については、図1Bおよび図1Cを参照して後で詳しく説明する。
キャッシュ・ヒットが発生すると、プロキシ・キャッシュ115は、要求されたデータを要求元クライアント105に送信する。キャッシュ・ミスが発生すると、プロキシ・キャッシュ115は、データをサーバ110に要求し、次いでそのデータを要求元クライアント105に渡す。サーバ110から得られたデータは、アクティブデータセット140としてプロキシ・キャッシュ115内にキャッシュされ、他のクライアント105から直ぐに利用できるようにされる。アクティブデータセットは、クライアントおよびクライアントのアプリケーションの属性であり、所与の時間(すなわち時間窓)内に参照され、キャッシュされたデータである。従って、アクティブデータセットは、所与の時間に応じて異なる場合がある(例えば、所与の時間を2分としたときのアクティブデータセットは、所与の時間を1日または1週間としたときのアクティブデータセットとは異なる場合がある)。
プロキシ・キャッシュ115は、キャッシュした複製データを複数のクライアント105間で相互共有させることができる。この相互共有状態は、クライアント105からサーバ110に要求された特定のデータが、少なくとも1つの他のクライアント105によってさらに要求される可能性が高いことを前提としている。
一実施形態において、プロキシ・キャッシュ115はアクティブデータセット140をキャッシュする。アクティブデータセット140とは、最近要求されたデータセットまたは要求頻度の高いデータセットであって、プロキシ・キャッシュ115からまだ消去されていないデータセットである。アクティブデータセット140は、サーバ(複数の場合もあり)110に格納されているデータのサブセットである。クライアント105がサーバ110からデータファイルの特定のコピー150を読み出すために読出し要求145を送ると、その読出し要求145はプロキシ・キャッシュ115に受信され、そこでそのファイルまたはフォルダの特定部分(例えば、データブロックなど)が、プロキシ・キャッシュ115内にローカルにキャッシュされているか否かがチェックされる。要求された特定のデータファイルがアクティブデータセット140内にあった場合、キャッシュ・ヒット状態が発生し、プロキシ・キャッシュ115は、要求されたデータをLAN120を介して要求元クライアント105に送信する。
一方、要求されたデータファイル中の或るデータブロックがアクティブデータセットの一部として格納されていなかった場合、キャッシュ・ミス状態が発生する。すると、プロキシ・キャッシュ115は、要求155をサーバ110に送り、要求されたデータファイル中の欠けているデータブロックのコピーを得る。
一実施形態において、キャッシュされたファイルは、アクティブデータセット140内でそのファイルが適当な置換方法(例えば、データの先入れ先出し管理や、最長時間未使用(LRU)アルゴリズムなど)によって置換されるまで、アクティブデータセット140の一部として保持される。当然ながら、以下で説明するように、一実施形態において、アクティブデータセット140の管理に関しては、他のデータ置換方法を使用してもよい。例えば、あるファイルを永久記憶用として指定し、クライアント105のユーザがアクティブデータセット140からそのファイルを抹消(消去)するコマンドを発行するまで、そのファイルを保持するようにしてもよい。
図1Bは、本発明の一実施形態によるプロキシ・キャッシュ115を示すブロック図である。プロキシ・キャッシュ115は、IPを利用したネットワーク・トラフィック(または、ファイバ・チャネルやストレージ・エリア・ネットワークなどに関する他のタイプのトラフィック)を構文解析するための、ネットワーク・インタフェース161、ネーミング仮想化層162、NFSサービス163、および/または、CIFSサービス164、ローカル・アクセス層165、NFSフィルエンジン166、および/または、CIFSフィルエンジン167、および/または、他の適当なタイプのフィルエンジン、リモート・フィル層168、ファイルシステム層169(例えば、Write-Anywhere-File-Layout、すなわちWAFLなど)、ストレージデバイス・マネージャ170(Redundant Array Of Independent(or Inexpensive)Disks層、すなわちRAID層など)、および、ストレージ・ディスク(複数の場合もあり)171を含む。
ネットワーク・インタフェース161は、クライアント105からストレージ関係のサービス要求を受信するためのコンポーネントを含む。
一般にファイルシステムは、情報をディレクトリとファイルの階層構造としてストレージデバイス(例えば、ディスクなど)上に論理編成することができる。(ディスク上の)各ファイルは、テキストなどの情報を格納するように構成されたディスクブロックの集合として実施されるのに対し、ディレクトリは、他のファイルやディレクトリに関する情報が格納された特殊形式のファイルとして実施される。
ストレージデバイス・マネージャ170は、ストレージシステム内のストレージデバイス171を管理する。ストレージデバイス・マネージャ170は、ファイルシステム169から読出しコマンドおよび書込みコマンドを受信し、それらのコマンドを処理することによって、ストレージシステムにアクセスする。ストレージデバイス・マネージャ170は、ファイルシステム169からブロックの論理アドレスを得て、その論理アドレスをストレージシステム内の1以上のストレージデバイス171における物理アドレスに変換する。一実施形態において、ストレージデバイス・マネージャ170は、ストレージデバイスをRAID(Redundant Array of Independent, or Inexpensive, Disks)に従って管理する。
一般に、ディスク・ストレージは大抵、記憶空間の全体的論理構成を定義している物理ストレージディスクによって形成された1以上のストレージ「ボリューム」として実施される。各ボリュームは通常、そのボリューム独自のファイルシステムに関連しているので、「ボリューム」という用語と「ファイルシステム」という用語は、同じ意味で使用される。ボリューム内のディスクは通常、1以上のRAIDグループとして編成される。
図1Bに示す他のモジュールの機能については、図1Cを参照して説明する。
キャッシュ・ヒット
次に、図1Bおよび図1Cのブロック図を参照し、本発明の一実施形態によるプロキシ・キャッシュ115の動作について説明する。ファイルハンドルは、ファイルシステム内のファイル等のオブジェクトに名前を付けるのに使用される。ファイルハンドルについては、図4を参照して後で詳しく説明する。
プロキシ・キャッシュ115(図1B)が、クライアント105から、例えばFH=「FILE1 ON CACHE」の値を有するファイルハンドル180を含む読出し要求を受信したものと仮定する。すると、ネットワーク・インタフェース161はその要求をネーミング仮想化層162に転送し、仮想化層が「FILE1」を、例えばIP(インターネット・プロトコル)アドレス10.56.20.34を有するサーバ110上のサーバ・ファイルハンドルFH=「FILE1 ON SERVER1」にマッピングする。ローカル・アクセス層165は、ファイルサーバID(FSid)値181およびサーバIPアドレス10.56.20.34に基づいて重複しない(一意の)名前182を計算する。一実施形態において、重複しない名前を計算するアルゴリズムはMD5ハッシュアルゴリズムである。MD5ハッシュアルゴリズムはメッセージを受け取ると、それをメッセージ・ダイジェストと呼ばれる固定桁数の文字列に変換する。また、要求172がNFS要求であるかCIFS要求であるかに応じて、NFSサービス層163またはCIFSサービス層164が、その要求172を構文解析する機能を提供する。
ファイルシステム層169は、重複しない名前182に基づいて検索機能を実施し、ローカル・キャッシュファイルID185を得る。一実施形態において、この検索機能は、ファイルシステム内のモジュール184によって実施される。一致するローカル・キャッシュファイルIDが無ければ、キャッシュ・ミスが発生する。キャッシュ・ミスについては、後で詳しく説明する。
ローカル・キャッシュファイルID183は、適当なinodeレコード186を指し示す、inodeファイル185への索引である。inodeファイル105のinodeレコードは、所与のファイルシステムに関連するinodeファイルを表わす情報を有する。一般に、inodeレコードは、ファイルに関するメタデータ(属性)などの情報の格納に使用されるデータ構造であり、ファイル・データブロックは、そのファイルの実際のデータの格納に使用される構造である。inodeレコードに格納される情報には、例えば、ファイルの所有者、ファイルのアクセス・パーミッション、ファイルのサイズ、ファイルタイプ、ファイルのデータブロックのディスク上の位置に対する基準などがある。inodeファイル185のinodeレコード186は、まとめて符号188で示すような、ファイルシステム・データブロック(例えば、WAFLデータブロックなど)へのポインタを有している。ファイル・データブロックは、ファイルシステムによって処理されるデータの最小アドレス指定可能量として定義される。ファイル・データブロックは、例えば4キロバイト(KB)のデータを格納する容量を有する。inodeレコード186は間接ブロックを指し示すことがあり、間接ブロックは他のファイル・データブロックまたは他の間接ブロックをさらに指し示すことがある。例えば、間接ブロック188dはブロック189a、189b、189cを指し示す場合があり、それらのブロックはそれぞれ、ファイル・データブロックまたは間接ブロックである。
具体的には、inodeレコード186内のinode番号187は、ファイル・データブロックまたは間接ブロックを指し示す。また、inodeレコード186は、プロキシ・キャッシュ115にローカルに格納されたファイルの属性190をさらに含む。さらに、一実施形態において、ローカル・キャッシュファイルID183は、ファイルのサーバ側属性を含む適当なinodeレコード193を指し示す、第2のinodeファイル192への索引でもある。サーバ側属性には、例えば、ファイルシステムID、ファイルID、ブロックサイズ、ハードリンクの数、ファイルシステム上の空き空間などがある。当然ながら、第2のinodeファイル192は、inodeファイル185に結合させてもよい。第2のinodeファイル192を作成する利点は、図1Cを参照して説明した機能の一部を実施するための第1のinodeファイル185の変更が、不要になることである。
また、inodeレコードは、ファイルシステム内のディスク上のファイルの表現に使用されるデータ構造であるファイルバッファ・ツリーを含む。図1Cでは、ブロック番号187およびブロック188,189により、ファイルバッファ・ツリー191が形成されている。
次に、IOベクトル194を形成する。IOベクトルは、ファイルバッファ・ツリー191のブロック番号187のリストである。ブロック番号187は、特定ファイルについてファイル・データブロックの有無を示す。一実施形態において、モジュール195はIOベクトル194を形成することができ、ファイル・データブロックの有無を判定する。一実施形態において、ブロック番号187は、ブロック番号187aに示すような特殊な値X(Xは例えば−1または−3をとりうる)を有する。この特殊な値Xは、プロキシ・キャッシュ115に格納されたローカルキャッシュファイルが、要求されたデータブロックを有していないことを示す値である。
キャッシュ・ヒット状態になると、ブロック番号は特殊な値Xではなくなり、IOベクトルがストレージデバイス・マネージャ170(例えば、RAID層など)に送信される。ストレージデバイス・マネージャ170は、適当なストレージ・デバイス(複数の場合もあり)へのポインタを生成し、要求されたデータブロックをファイルシステムに送信するとともに、NFSサービス(NFS要求の場合)に送信する。そしてNFSサービスは、NFS応答173を要求元クライアント105に対して生成する。従って、要求元クライアント105は、要求したファイルを受信することができる。上記の方法は、ディレクトリ要求の処理に使用することもできる。
ブロック番号リスト中に特殊な値Xを使用すると、要求されたファイルの欠けているデータブロックを有するプロキシ・キャッシュ(のストレージデバイス)におけるバッファの追跡が可能になり、従って散在するデータの追跡が可能になる。データブロックまたはキャッシュファイルはプロキシ・キャッシュ115から消去される場合があるので、(重複しない名前182を計算することによる)間接レベルによれば、特定の時刻に応じてファイルハンドルをinodeファイル内の異なるスロットを指し示すものにすることができる。
キャッシュ・ミス
IOベクトル194を作成した場合、ファイルバッファ・ツリー191のブロック番号が、要求されたファイル・データブロックが(ストレージデバイス171内の)バッファ内に無いことを意味する特殊な値Xであれば、キャッシュ・ミス状態が発生する。あるいは、重複しない名前182を計算した後、ファイルシステム169がテーブル検索機能を実施したときに一致するファイルID183が見付からなければ、キャッシュ・ミス状態が発生する。
NFS要求196のためのNFSフィルエンジン166(またはCIFS要求のためのCIFSフィルエンジン)は、不在のファイル・データブロックをそのデータブロックを有するサーバ110に要求する。図1Cの例では、不在のファイル・データブロックが破線ボックス118cとして図示されている。上記の例では、サーバ・ファイルハンドル「FILE1 ON SERVER1」を用いてその要求が送信される。
NFSフィルエンジン166がサーバ110からファイル・データブロックをフェッチ(197)すると、そのデータブロックは、リモート・フィル層168、ファイルシステム169およびストレージデバイス・マネージャ170によってストレージ・ディスク171に入れられる。そしてバッファ・ツリー191のブロック番号が更新され、ファイル・データブロックが割り当てられる。次に、それらのファイル・データブロックが要求元クライアント105に送信され、要求されたファイルがそのクライアントに与えられる。上記の方法は、ディレクトリ要求の処理にも使用することができる。
また、図1Cに示す実施形態によれば、バッファ・ツリー内のファイル・データブロックを1つのファイル内にまばらにキャッシュすることができる。この方法は、ファイルの途中における丸め処理や書込み処理のような、部分的なファイル処理を実施することが可能になるという有利がある。
通常、クライアント105がNFSプロトコルで要求を送信する場合、各データブロックについて個別の要求が作成される。また、CIFSプロトコルの場合にも、各データブロックについて個別の要求が作成される。例えば、第1のクライアント105(例えば、図1のクライアント105(1))がデータブロック188aおよび188bを求めるデータ要求を送信するものと仮定する場合、それらのデータブロックは両方とも図1Cの例におけるプロキシ・キャッシュ115にキャッシュされている。クライアントからのデータ要求の数は変更することもできる点に注意して欲しい。データブロック188aおよび188bがプロキシ・キャッシュ115にキャッシュされているので、プロキシ・キャッシュ115がクライアント要求を受信するとキャッシュ・ヒット状態が発生し、要求されたデータブロック188aおよび188bが、プロキシ・キャッシュ115から要求元クライアント105(1)に送信される。
キャッシュ・ミス状態の例として、第2のクライアント105(例えば、図1のクライアント105(2)など)が、データブロック188a、188bおよび188cのデータを求める要求を送信する場合を仮定する。図1Cの例では、プロキシ・キャッシュ115がクライアント要求を受信したとき、データブロック188aおよび188bはプロキシ・キャッシュ115にキャッシュされているが、データブロック188cはプロキシ・キャッシュ115内に存在しない。プロキシ・キャッシュ115はこのキャッシュ・ミス状態に応答して、上記と同様にサーバ110からデータブロック118cをフェッチする。フェッチされたデータブロック188cは、プロキシ・キャッシュ115に割り当てられた後、プロキシ・キャッシュ115から要求元クライアント105(2)に送信される。
さらに他の例として、他のクライアント105(例えば、図1のクライアント105(n))がデータブロック188bおよび188cを求めるデータ要求を送信する場合を仮定する。データブロック188cはサーバ110からプロキシ・キャッシュ115に前もってフェッチされ、プロキシ・キャッシュ115に割り当てられているので、プロキシ・キャッシュ115がクライアント要求を受信したときに、プロキシ・キャッシュ115はデータブロック188bおよび188cを有している。従って、キャッシュ・ヒット状態が発生し、要求されたデータブロック188bおよび188cが、プロキシ・キャッシュ115から要求元クライアント105(1)に送信される。クライアント105がプロキシ・キャッシュ115内に存在しないデータブロック188を要求した場合、プロキシ・キャッシュ115は、その存在しないデータブロック188をサーバ110からフェッチし、キャッシュしてから、そのフェッチしたデータ188を要求元クライアント105に送信する。
このように、プロキシ・キャッシュ115は、クライアント要求に応答して部分オブジェクトの複製を行なう。部分オブジェクトは、ファイルの1以上のデータブロックとして定義される。上記の例では、クライアント要求に応答してデータブロック188cをプロキシ・キャッシュ115に複製した後、それを他の要求元クライアント150から使用できるようにしていた。以下で説明するように、適当なデータ置換ポリシーを用いて、(プロキシ・キャッシュ115から)データブロック188、または複数のデータブロック188によって定義されるファイルを消去することができる。これに対し、従来の複製技術は、全てのファイルを複製している(例えば、種々のミラーリング技術は、全てのボリュームまたは全てのファイルセットを複製している)。
置換ポリシー
プロキシ・キャッシュ114においてアクティブデータセット140内のデータファイルを更新、維持、または消去するための置換ポリシーには、様々なものがある。図2は、アクティブデータセット140内にキャッシュされたデータの重要度を、そのキャッシュされたデータに対するクライアント(複数の場合もあり)からのアクセスすなわち要求の回数に基づいて増加させる方法を示すグラフ200である。従ってプロキシ・キャッシュ115は、アクティブデータセット140内にキャッシュされたデータに対し、そのキャッシュされたデータに対するクライアント105からのアクセスまたは要求の回数に基づいて「重要度」値を動的に割り当て、調節するように構成される。プロキシ・キャッシュ115は、アクセス数すなわち要求回数が増えるのに従って、キャッシュされたデータの重要度を増加させる。例えば、プロキシ・キャッシュ115は、アクティブデータセット140内にキャッシュされたデータが重要度値Y(図2のグラフに点205で示す)に達した場合、プロキシ・キャッシュ115のストレージユニットから、そのキャッシュ・データが消去されないようにする。
図3は、本発明の一実施形態による、アクティブデータセット140を管理する他の方法300を示すブロック図である。上記のように、アクティブデータセット140は、先入れ先出し(FIFO)法305などの適当な方法により、置換、またはプロキシ・キャッシュ115から消去することができる。FIFO法305では、プロキシ・キャッシュ115のストレージユニットから消去する際に、アクティブデータセット140を循環させる。最長時間未使用(LRU)法などの他の適当な置換ポリシーを使用することもできる。LRUによる置換方法は、一般にデータベース管理システムで使用される方法で、最も長時間使用されなかったブロックを最初に置換すべきブロックとする方法である。
代替または追加として、アクティブデータセット150内のファイルは、ユーザがクライアント105からプロキシ・キャッシュ115へロックコマンドを送信することにより、ロック(310)することもできる。ロックコマンドは、プロキシ・キャッシュからそのファイルが消去されないようにするためのものである。ユーザは、例えば、サーバ110までのリンク接続が壊れているかもしれないとか、サーバ110が故障しているかも知れないといったことが心配である場合に、ロックコマンドを送信する場合がある。代替として、オブジェクト(例えば、ファイルや、ファイルのデータブロックなど)の属性(メタデータ)は、そのオブジェクトがプロキシ・キャッシュ内にどのくらいの期間キャッシュされているのかを示すことができる。
代替または追加として、ユーザは、ヒントまたはインジケータをプロキシ・キャッシュ115に与え(315)、特定のキャッシュ・ファイルを重要なものとして指定することもできる。その結果、プロキシ・キャッシュ115のストレージユニット(複数の場合もあり)から指定された重要ファイルが消去されることが、インジケータによって防止される。
プロキシ・キャッシュ115を使用すると、データを様々な遠くの場所に分散および複製することができ、データ複製のための従来のミラーリング技術の使用を回避できるという利点がある。従来のミラーリング技術を使用するためには、所定の時刻または所定の時間間隔(例えば毎晩)で全てのデータセットをミラーリングしなければならず、全てのデータセットを入れるディスク空間が必要となる。これに対し、プロキシ・キャッシュ115は、アクティブデータセット140内のデータをオン・デマンドで複製する。アクティブデータセット140は、従来のデータ複製方法に関する大きなディスクの必要性を無くすことができるという利点を有する。さらに、アクティブデータセット140はキャッシュ・ミスに応答して自動的に更新または消去されるので、従来のデータ複製方法に関する特殊なソフトウェアの必要性も無くすことができる。
マウントポイントの統合とファイルハンドルの書換え/変形の方法
NFSネットワーク・ファイルシステム・プロトコルによって処理を実行するために、クライアントは、NFS要求を下記の(1)〜(3)とともにNFSサーバに送信する。
(1)処理対象を指定するためのNFSファイルハンドル
(2)処理(検索、読出し、書込み、パーミッション変更など)
(3)要求を送信する代表となるユーザ
NFSクライアントがリモートのファイルシステムに最初にアクセスしようとする場合、クライアントはまず、ボリューム(上で述べたように、「ボリューム」という用語と「ファイルシステム」という用語は、同じ意味で使用される)のエントリ・ポイントのファイルハンドルであるルート・ファイルハンドルを入手しなければならない。その目的のために、クライアントホストは、マウント要求をサーバのマウントデーモンに送信する。ここで、マウント要求とは、ルート・ファイルハンドルにアクセスするためのプロトコルの一部であり、デーモンとは、コンピュータシステムが受信する可能性のある定期的なサービス要求を処理するために、絶え間なく動作し続け、存在するプログラムである。デーモンプログラムは、必要に応じてその要求を他のプログラム(またはプロセス)に転送する。サーバのマウントデーモンは、要求されたファイルシステムにアクセスするためのパーミッションをクライアントが有していることを確認する。マウントデーモンは、アクセスを許可する場合、ファイル(ディレクトリ)ハンドルをそのNFSクライアントに返送する。通常、各ファイルハンドルは、32バイトの不可視の識別データである。ファイル名が変更されても、そのファイルハンドルは、リネーム後のファイルのファイルハンドルとしてそのまま維持される。従って、上記のマウント処理は、ルート・ファイルハンドルにアクセスするためのプロトコルである。
2つの異なるサーバが同じファイルハンドルを使用することもありうるので、NFSのファイルハンドルは、世界的に/いかなる場合にも、重複しないものではない。従来は、この条件が問題となることはなかった。その理由は、各サーバにどのファイルハンドルが関連しているのかを、クライアントが常に管理しているからである。プロキシ・キャッシュ115を使用して複数のマウントポイントを統合する場合、プロキシ・キャッシュ115は、多数の異なるサーバから得たボリュームをエクスポートする場合がある。それらのファイルハンドルは必ずしも重複していないとは限らないので、プロキシ・キャッシュ115は、どのファイルハンドルがどのサーバから得られたものであるのかを判断できない場合があり、第1のサーバにおける第1のファイルと第2のサーバにおける第2のファイルが同じファイルハンドルを有することもあり、その状態は衝突問題を引き起こす可能性がある。この問題を悪化させる原因は、ファイルハンドルが不可視なものとして定義されていることにある。ここで、不可視とは、ファイルハンドルの内容を知ることができず、ファイルハンドルの名前だけしか得られないことを意味している。
本発明の一実施形態では、ファイルハンドルをクライアント105に送信する前に、ファイルハンドルを変形することにより、プロキシ・キャッシュ115がファイルハンドルを解釈してファイルハンドルの宛先サーバ105を判断できるようにする。従ってクライアント105は、データの入手元であるサーバを明確に知らなくても、プロキシ・キャッシュ115を介してデータを得ることができる。
図4に示すように、ファイルハンドル400は、FSid(ファイルシステム識別子)フィールド405、ファイル識別子(ID)フィールド410、生成番号フィールド415、および、その他データ用フィールド420などの種々のフィールドを有する。通常、FSidフィールド405は約4〜8バイトである。
本発明の一実施形態によれば、サーバ側ファイルハンドルの仮想化が可能になる。クライアント105とサーバ110との間にプロキシ・キャッシュ115を導入すると、ファイルハンドルを変形(変換)し、世界的に重複しない名前空間を構成することが可能になる。クライアントに返送されるファイルハンドルは、それらが種々の入手元サーバまたは種々のエクスポートオプションセットにマッピングされること、すなわち、複数のマウントポイントを交差させるものであることを示すものに変更される。クライアントに送信されるファイルハンドルと、入手元サーバ上のオブジェクトのアクセスに使用されるファイルハンドルとの間に間接層を追加することにより、クライアント105に何も影響を与えることなく、入手元サーバ110に対する変更を行なうことができる。
図5および図6は、本発明の一実施形態による、マウントポイントを統合する方法およびファイルハンドルを書換え、すなわち変換する方法を示す図である。図5に示すように、各サーバ110は通常、ファイルシステムに相当するボリューム(例えば、ボリューム/Vol1、ボリューム/Vol2、ボリューム/Vol3など)を含む。つまり、サーバ110(1)はボリューム505〜515を含み、サーバ110(2)はボリューム520〜530を含む場合がある。
本発明の一実施形態では、図6に示すように、特定のサーバ110の各ボリュームについてFSid値のマッピング600を作成し、そのマッピング600をプロキシ・キャッシュ115に格納する。あらゆるFSid値を変換することで、キャッシュ・ミスが発生したときに、あるファイルがどのサーバに格納されているかを判定することが可能になるという利点がある。
変換テーブル605は、ハッシュ値N(例えば、N1、N2、N3、・・・など)を有し、FSidテーブル610は、サーバ110の各ボリュームについてFSid値を有する。ファイルハンドル中に特定のFSid値を有するサーバ110(例えば、図6の例の場合、FSid=値1を有するサーバ110(1)のボリューム505など)からトラフィック615が受信されると、そのFSid=値1は、プロキシ・キャッシュ115のテーブル605のFSid値N1に変換される。サーバ110から受信された他のファイルハンドル中の他のFSid値は、テーブル610に格納され、テーブル605内の様々な値に変換、すなわち変形される。従って、プロキシ・キャッシュ115は、クライアント105からファイルハンドル620を受信したとき(クライアントのデータ要求の際)にキャッシュ・ミスが発生すると、テーブル610にNの値およびFSidの値を有するマッピング600を用いて、そのファイルハンドル620を送信すべき特定のサーバ110およびファイル/ボリュームを判定する。プロキシ・キャッシュ115は、ファイルハンドル620を宛先サーバ110に送信する前に、ファイルハンドル620の変換後のFSid値Nをテーブル610中の適当なFSid値に変換する。
テーブル600における値Nは、ボリュームおよび/または他の識別子を有するサーバ110のアドレスから何らかのハッシュを利用して計算される。各値Nに関するハッシュは重複しないので、上記のような名前衝突問題は起こらない。値Nは通常、8バイトの数値であり、サーバ名、ボリューム名およびファイル名(例えば、ファイラ1/ボリューム0/ファイル0など)によって決まる設定値を有する。
あるいは、値Nは、上で述べたように、サーバのインターネット・プロトコル(IP)アドレスおよびサーバのファイルハンドル値からMD5アルゴリズムを用いて計算することもできる。ファイルハンドル値は種々のサーバ間で重複しない値であるとは限らないので、サーバIPアドレスを用いて作成すれば、ファイルに関する各Nの値をサーバ間で異なる値にすることができる。
図7に示すように、マッピング600は様々なプロキシ・キャッシュ(例えば、プロキシ・キャッシュ115と705)に複製することができる。そのため、あるプロキシ・キャッシュが故障した場合でも、他のプロキシ・キャッシュを利用することができる。例えば、装置故障によりクライアント105がプロキシ・キャッシュ115にアクセスできなくなった場合、プロキシ・キャッシュ705へのフェイルオーバー710を実施することができ、その結果、クライアント105はファイルハンドル400の書換え用のマッピング600を用いてプロキシ・キャッシュ705にアクセスできるようになる。
マッピング600は複数のプロキシ・キャッシュに複製することができるので、代替または追加として、クライアント105がボリュームをアンマウント・リマウントしたり、他の変更をクライアント105に施したりしなくても、プロキシ・キャッシュ(例えば、プロキシ・キャッシュ115など)は、新たなプロキシ・キャッシュまたは他のプロキシ・キャッシュ(例えば、プロキシ・キャッシュ705など)に交換することができる。
世界的に重複しない仮想名前空間を作成して使用する方法
本発明の一実施形態によれば、上記のようなマウントポイント間の統合が可能になるだけでなく、世界的に重複しない名前空間の作成も可能になる。従来は、NFSのマウントポイントをネストさせること(すなわち、クライアントがNFSボリュームをマウントするときに、そのボリュームに他のマウントポイントを含めること)が出来なかった。この制約は、ネットワークのユニフォーム・ビューの作成を非常に難しいものにしていた。
本発明の一実施形態によるファイルハンドルの仮想化を使用すると、管理者は、NFSによってエクスポートされたボリューム内の任意のディレクトリをマウントポイント(ファイルシステムに対するアクセスポイント)として設定することが可能になる。これは、クライアント105が1つのボリュームをマウントするだけで、誰かがそのボリュームにアクセスしたときに、そのクライアント要求がプロキシ・キャッシュによって特定の適当なボリュームに適当に宛先変更されることを意味する。従って、プロキシ・キャッシュ115は、単一のマウントポイントを用いて、各サーバ110(または新たに追加されたサーバ)についてあらゆるクライアント105に通知することができる。オブジェクトをリネームすることにより、ファイルの仮想グローバル・ビュー(すなわち、仮想グローバル名前空間)が作成される。その結果、各クライアント105は、ファイルの仮想グローバル・ビューを用いて、各サーバ110に関する情報および各サーバ110の各ファイルに関する情報を得ることができる。仮想グローバル名前空間を使用すると、クライアント105の管理が簡単になる。
図8Aに示すように、(プロキシ・キャッシュ内の)ボリューム名805は、複数のクライアント105からアクセスすることができる。ボリューム名の例は、例えば「/global」である。ボリューム名805は、本発明の一実施形態による仮想名前空間を可能にする。クライアント105は、ボリューム名805、並びにサーバ110(1)、110(2)、110(m)にそれぞれ関連するビュー・フォルダ810、815、820mをマウントすることができる。各フォルダ810、815、820mには、特定サーバに割り当てられたボリューム名805が格納される。従ってボリューム名805は、サーバ110(1)の/vol505、サーバ110(1)の/vol510、サーバ110(1)の/vol515、サーバ110(2)の/vol520、サーバ110(2)の/vol525、サーバ110(2)の/vol530、およびサーバ110の他の既知のボリュームを指し示す。従って、フォルダ805〜820mは、ボリューム名805によってマウントポイントに仮想的にマッピングされる。クライアントは、1つのマウントポイント(例えば、/globalなど)を知っているだけで、適当なサーバ110にアクセスすることができる。マッピング600(図6を参照)を用いると、NFSプロトコルにおけるファイルハンドルの書換えにより、ファイルハンドル400をサーバ100のボリューム内の仮想アクセスポイントとして使用することが可能になる。上記のように、マウント処理は、サーバと通信し、ファイルシステムのルート・ファイルハンドルを得ることを含む。このルート・ファイルハンドルは、後に検索リモート・プロシージャ・コール(RPC)に渡され、リモートファイルシステムのディレクトリ階層中の他のファイルハンドルを見付けるのに使用される。
単一マウントポイントによって得られる利点は、クライアント105があらゆる単一マウントポイントを知っている必要はない点にある。従来の方法では、各クライアントが通常、フォルダ内の既知のリモートファイルシステムが全てリストされたFStabファイル(ファイルシステム・テーブルファイル)を有している(すなわち、FStabは、クライアントがドライバ、サーバ名およびボリューム名にアクセスできる場合の、クライアントにおけるローカル・ディレクトリまたはローカル・フォルダのリストである)。サーバ110に変化が生じ、その変化が名前空間に影響を与えた場合、各クライアント105を再構成し、クライアントがサーバにアクセスできるようにしなければならない。そのため、従来の方法におけるマウントポイント管理作業は、複雑で時間を要するものとなっている。
本発明の一実施形態の場合、各クライアントはディレクトリ805をマウントするだけでよく、この1つに統合されたマウントポイントによって、マウントポイントの管理を単純化している。特に、このマウントポイントは、プロキシ・キャッシュ115に対してアンマウントおよびマウントされる。そのため、ボリューム805をクライアント105に対してアンマウントおよびリマウントする必要はない。従って、ディレクトリ805はファイルシステムテーブルファイルの機能を提供し、クライアントがドライバおよびサーバにアクセスできるようにする。ディレクトリ805は、リモート・ファイルシステムへのアクセスポイント、および、リモートサーバ(複数の場合もあり)110に格納されているような属性のリストを提供する。
複数のマウントポイントを作成し、属性集合をマウントポイントに関連付ける方法
同一オブジェクトについて、ファイルハンドルは様々な方法で書き換えることができる。一実施形態において、ファイルハンドルは、プロキシ・キャッシュ上の関連ローカルマウントポイントの属性を利用して様々な方法で書き換えることができる。
次に、図8Bを参照する。マウントポイントは、ローカルボリューム名として定義される。例えば、ローカルボリューム名「user/read−only/employee1」(ブロック850を参照)とローカルボリューム名「user/employee1」(ブロック855を参照)はそれぞれ、2つの異なるファイルハンドルを生成する。その理由は、各ローカルボリューム名についてマウントポイントが異なるからである。具体的には、「user/read−only/employee1」850のマウントポイントは「user/read−only」である一方、「user/employee1」855のマウントポイントは「user」である。
ローカルボリューム名は、関連する属性またはメタデータを有することができる。例えば、アクセス制限、格納するための資格、またはキャッシュ機能、セキュリティ属性、認証、プロキシ・キャッシュ装置の認証レベル、サーバの読出し専用属性または書込み専用属性などである。データを共有する他のボリュームに関連するマウントポイントにアクセスすることにより、そのデータに関連する属性を変更することができる。つまり、個々の属性は特定のマウントポイントまたはアクセスポイントに関連付けることができ、それをハッシュすると、重複しない識別子が形成される。一実施形態において、この重複しない識別子は、ローカルボリューム名、ファイルシステムIDおよびサーバIPアドレスをMD5のような適当なハッシュアルゴリズムを用いてハッシュしたものである。図8Bの例では、属性(複数の場合もあり)856がマウントポイント850に関連付けられ、属性(複数の場合もあり)857がマウントポイント855に関連付けられている。
なお、プロキシ・キャッシュ115のディスク上の同じ物理オブジェクトを異なるマウントポイントからアクセスすることも可能である。
キャッシュ・データの整合性をとる方法
最初に、プロキシ・キャッシュがNFSクライアントに対して保証するデータ整合性モデルを定義する。このモデルは、NFSサーバによって保証されるものと同じである。次に、サーバおよびプロキシ・キャッシュがどのようにしてこのNFSデータ整合性モデルを保証するのかについて説明する。次に、入手元サーバにアクセスし、キャッシュとディレクトリの両方を通してデータを変更しているクライアント群に対し、このデータ整合性モデルがどのように作用するかについて説明する。最後に、キャッシュ最大寿命(すなわち、入手元サーバを用いて新しさが確認される前にヒットが満たされる際の最大量の時間)を使用する方法について説明し、キャッシュ最大寿命がデータの新しさおよび整合性にどのように影響を与えるかについて説明する。以下に記載する例はNFSプロトコルに関するものになっているが、キャッシュ・データの整合性をとるためのこの方法は、他のプロトコルでも使用することができる。
NFSクライアントデータ整合性
クライアントの視点から見ると、NFS整合性モデルは、番号順のファイル・トランザクションを保証するものである。あるトランザクションが完了し、特定バージョンのファイルが返された後、そのファイルに対して開始されるトランザクションはいずれも、少なくとも新しいバージョン、すなわちもっと新しいバージョンを返すことが保証される。我々はこれを連続整合性と呼んでいる。NFSにおける整合性の理解が難しい理由は、例えば、種々の時間にわたるトランザクションがパイプライン化され、信頼性のないトランスポートに依存することがあるからである。従って、下記のように少数のクライアントの定義から始めることが有用である。
トランザクションの開始
NFSトランザクションの開始は、クライアントが最初の要求RPC(リモート・プロシージャ・コール)を送信した時刻として定義される。以後のDUP要求(複製要求)がトランザクションの開始をリセットすることはない。DUP要求は、NFSプロトコルによって以前に行なわれた要求の複製である。ファイルサーバ上のDUPキャッシュは、クライアントからの要求に対する応答だけでなく、トランザクション識別子(XID)も格納している。各NFS要求は、重複しないXIDを有する(要求が重複しないXIDを有するのに対し、応答は要求に対応するXIDを有する)。複製要求は、もとの要求と同じXIDを有する。
トランザクションの終了
NFSトランザクションの終了は、クライアントが、発生しうる複数のDUP応答のうちの最初のものを受信したときに発生する。
連続トランザクション
一方のトランザクションが完了する前に他方のトランザクションが開始された場合、それら2つのトランザクションは連続であるものと定義される。
ファイル
NFSサーバ上では、ファイルは、そのファイルのアクセスに使用されるプロトコル・バージョンやエクスポートパスに応じて、種々のファイルハンドルによって参照される。プロキシ・キャッシュの一実施形態において、ファイルはファイルハンドルによって一意に識別される。これは、異なるエクスポートパスまたは異なるプロトコル・バージョンを用いて複数のマウントポイントにインポートされた実際には同一のファイルが、複数の別個のファイルとみなされることを意味している。
整合性
サーバの視点から見ると、サーバは通常、クライアント側でトランザクションが何時開始され、何時終了するのかを正確には知らない。サーバは応答を送信した後、それがクライアントに直ぐに受信されることを想定している。サーバが要求を受信した場合、サーバは、以前に送信した応答がすべてクライアントに受信された後で、その要求をクライアントが開始したものと想定する。サーバの視点から見れば、トランザクションは最初の要求を受信した時に開始され、最初の応答を返送した時に終了する。
サーバ上で実行しなければならない変更処理は、一度だけであることが望ましい。例えば、REMOVE処理について考えてみる。REMOVE処理が最初にサーバに受信されたときは、ファイルシステムから適当なファイルが消去され、その記録がDUPキャッシュに作成される。以後の複製要求に対する応答はすべて、このDUPキャッシュを用いて行なわれる。これによって、以前の応答の中にクライアントに届くまでの間に失われたものがあっても、複製要求の失敗を防止することができる。
NFSプロキシ・キャッシュにおける整合性
プロキシ・キャッシュがクライアントに応答を送信した場合、プロキシ・キャッシュは、それ以降に受信した全ての要求に対する応答が、整合性のとれた返答になることを保証しなければならない。これは、特定バージョンのファイルをクライアントに教えた後、そのファイルに関する以後のトランザクションは全て、少なくともその特定バージョンと同程度に新しいバージョンを返さなければならないことを意味している。
プロキシ・キャッシュの視点からすれば、これは次の2つを保証することを意味する。
(1)プロキシ・キャッシュは、応答をクライアントに送信するときに、以後のキャッシュ・ヒットに対して整合性のとれた応答を返すように準備することが望ましい。これは、従来は、キャッシュ・ミス時に応答をクライアントに送信する前に、データが満杯であることを確認することによって行なわれている。
(2)プロキシ・キャッシュにデータを入れる場合、プロキシ・キャッシュは、クライアントに既に返送されたそれよりも新しいバージョンのファイルが無いことが確認できた場合にのみ、そのデータを以後のキャッシュ・ヒット時に使用することができる。我々は、これを整合性充填と呼んでいる。整合性充填については以下の実施形態で説明する。
キャッシュ・リブートの扱い
プロキシ・キャッシュが起動すると、プロキシ・キャッシュはメモリ内オブジェクトキャッシュを再構築しながらプロキシ専用モードで動作する。一実施形態において、充填はロギングされず、不適切なシャットダウンは、キャッシュを不整合状態にすることがある。そのため、プロキシ・キャッシュは起動時に、全てのキャッシュ・オブジェクトを、キャッシュ・ヒット時に返送する前に確認が必要なものとしてマークする。プロキシ・キャッシュは、クライアント要求に応答してオブジェクトをクライアントに渡す前に、そのオブジェクトの属性をチェックすることにより、そのオブジェクトが最新のバージョンであることをサーバを用いて確認する。
リブート時には、プロキシ・キャッシュは全てのトランザクションを中止し、トランザクションがクライアントによって再起動される。サーバから配送中のキャッシュ充填要求はプロキシ・キャッシュによって捨てられる(破棄される)。なぜなら、それらのキャッシュ充填要求のXID(トランザクション識別子)は通常、解釈できないものになるからである(リブートの際には通常、後続の要求のXIDについて新たなXIDマッピングがプロキシ・キャッシュ内に作成されるので、新たなXIDマッピングはリブート発生前のXIDを解釈することができない)。リブートの後、到来するクライアント要求はすべて、新たなトランザクションの最初の要求として扱われる。起動時に全てのトランザクションを再起動させれば、プロキシ・キャッシュは、すべてのアクティブ・トランザクションについて開始時刻を記録することができる。これによって、整合性充填に関する本発明の一実施形態が可能になる。
整合性キャッシュ充填
キャッシュ充填には次の2つがある。
(1)読出し専用処理によって返送されたデータの格納
(2)キャッシュ・データに対する変更処理の再現
変更処理は通常、プロキシ・キャッシュで常に見られるものではないので、あるいは、それらを再現することは非常に難しいので、プロキシ・キャッシュからファイルを投げなければならない場合がしばしばある。「投げる」とは、特定タイプの充填を簡略化したものである。また、性能上の理由から、データの充填が有用な場合もあり、そのデータは新しい場合もあれば、キャッシュファイルを不整合状態にする場合もある(NFS応答によっては、参照される全てのファイルについてファイル属性を持たないものもある)。本発明の一実施形態では、データを充填することによってこの状態を処理する。ただし、ファイルは、後続のヒット時にキャッシュから返送される前に確認が必要なものとしてマークされる。
整合性のとれたデータがクライアントに常に送信されることを保証するためには、全てのファイルを次の2つのうちの一方に分類しなければならない。
(1)整合性があるもの
(2)不整合の可能性があるもの
不整合の可能性がある充填は、以前にクライアントに送信されたデータに比べて、新しいデータを有する場合がある。NFSバージョン2では、応答が新しいデータを有しているか否かを常に知ることができるとは限らない。この種の応答は、不整合な充填の候補となる。応答に関連するファイル(複数の場合もあり)に変更があった時にサーバから再要求された応答も、候補となる。プロキシ・キャッシュのアプローチは通常、堅実なものでなければならないので、確実なことが言えない場合は「新しい」と推測する。不整合な充填があると、プロキシ・キャッシュは、後続のヒット時に問題のファイルを提供する前に、その新しさを入手元サーバを用いて確認しなければならない。これは、直後に簡単なキャッシュ・ヒットが続く可能性がある整合性のある充填とは対照的である。
一実施形態では、全てのトランザクションが起動時に再起動され、キャッシュされた内容はすべて、確認が必要なものとしてマークされる。これによって、全てのキャッシュデータが、整合性のあるものとして開始されることが保証される。ファイルFに対する不整合な充填は、Fに対する最後に記録された変更よりも前にキャッシュによって開始されたトランザクションの結果得られるものとして定義される。最後に記録された変更は、変更の可能性を示すサーバ応答がプロキシ・キャッシュによって受信された時刻として定義される。これは、その変更がプロキシ・キャッシュのクライアントから見れるようになった時である。
ファイルに対する最後に記録された変更を追跡する場合、プロキシ・キャッシュは非常に堅実なものであることが望ましい。プロキシ・キャッシュは、サーバからの応答を処理するときに、例えば下記の事項のうちのいずかが真であれば、トランザクションに関連するファイルに対する最後に記録された変更を更新する。
・応答が、ファイルに対する変更があったことを知っている処理に関するものである。
・応答が、ファイルの処理後属性を含まない(処理後属性とは、ファイルに対して処理を実施した後のファイルの属性である)。
・応答が、ファイルの処理後属性を含み、それらの属性が、現在キャッシュされているものとは異なる。
・ファイルの属性が何もキャッシュされていない。
・キャッシュが再構築段階にある。
各ファイルについて最後に記録された変更を追跡する本方法は、ハッシュテーブル(下記の説明を参照)を用いて重複しないファイル名(例えば、MD5アルゴリズムによって得られるものなど)を定めることによる。ファイルは通常、LRUに返還要求される。トランザクションがこのLRUにおける最も古い要素よりも古い場合、そのトランザクションに関する最後に記録された変更は返還要求された可能性があるものと仮定され、最後に記録された変更は不整合な充填として扱われる。
分散NFS整合性
ファイルシステムを求める全てのクライアントが特定のプロキシ・キャッシュを通過するとすれば、それらのクライアントは、データの最新のコピーを得ることが保証される。その理由は、変更処理はすべて、プロキシ・キャッシュで実施されるか、または、新たなキャッシュデータが投げられるかのいずれかとなるからである。具体的には、全ての変更処理がプロキシ・キャッシュを通過するとすれば、たとえ読出し専用処理をルーティングしたとしても、このことが言える。
クライアントが様々な経路を通じてファイルシステムにアクセスする場合(一部がプロキシ・キャッシュを通り、一部が入手元サーバに直接アクセスする場合など)、複雑さが生じる。プロキシ・キャッシュは、変更処理を入手元サーバに直接渡した後、新しいデータをクライアントに提供することができる。プロキシ・キャッシュのクライアントが新しいデータを得ることができ、且つ、整合性のとれたデータを常に受け取れることは重要である。クライアントによって様々な新しさの許容範囲が認められるためには、プロキシ・キャッシュは、様々なデータセットについて最大寿命を指定することが出来なければならない。この最大寿命は、入手元サーバを用いて新しさが確認される前にヒットが満たされる際の最大量の時間である。
図8Cは、プロキシ・キャッシュがサーバに対して前回、要求R0を行い、その要求R0が時刻A0でサーバに受信された場合の図である。プロキシ・キャッシュが次の要求R1をサーバに対して行うと、その要求は時刻A1でサーバに受信される。ただし、要求R0に応答するデータD0は、要求R1に応答するデータD1をプロキシ・キャッシュが受信した後で、プロキシ・キャッシュに受信される。従って、後続の受信データD0は、ファイルDの最新バージョンではないかもしれない。
図8Dは、プロキシ・キャッシュがサーバに対して前回、要求R0を行い、その要求R0が時刻A0でサーバに受信された場合の図である。プロキシ・キャッシュが次の要求R1をサーバに対して行なうと、その要求は時刻A1でサーバに受信される。要求R0に応答するデータD0は、要求R1に応答するデータD1をプロキシ・キャッシュが受信する前に、プロキシ・キャッシュに受信される。
図8Eに示すように、本発明の一実施形態では、ハッシュテーブル870をプロキシ・キャッシュに格納する。ハッシュテーブル870はエントリ872を有する。各エントリは、オブジェクト873(例えば、ファイルやデータブロックなど)および最後に記録された変更値874を含む。例えば、返却データD0は、その最後に記録された変更を示す属性LRC0を有する場合がある(そのオブジェクトが最後に変更されたものである場合)。同様に、返却データD1は、その最後に記録された変更を示す属性LRC1を有する場合がある。本発明の一実施形態において、データD0のLRC0値が、所定の時間(例えば、30秒など)内に要求R1が成された時間よりも大きい場合、プロキシ・キャッシュはD1の属性を確かめるための要求を作成し、D1がデータDの最新バージョンであるか否かを確認する。一実施形態において、プロキシ・キャッシュ115のフィルエンジン166は、例えば「GETATTR」コマンドをサーバに送信し、データDの属性を得る。この方法によれば、プロキシ・キャッシュに格納されたデータのデータ整合性を達成することが可能になる。
プリフェッチによる属性の事前確認
HTTPプロトコルの場合、サーバは通常、クライアントがサーバにおけるファイル更新をチェックしなければならない時を示すインジケータをクライアントに与える。これに対し、NFSプロトコルでは、サーバは、サーバファイルの更新をクライアントに通知することができない。以下で説明する種々の事前確認方法は、プロキシ・キャッシュがサーバに格納されたデータの属性を確認できるようにするためのものである。
プロキシ・キャッシュ115を用いると、サーバ110とクライアント105が離れている場合に(例えば、サーバ110とクライアント105が異なる都市にある場合に)、WAN125を介してデータを統合することができる。プロキシ・キャッシュ115は、クライアント105がサーバ110に格納されているデータを要求する際の遅延を減らすことができるので、サーバ110はクライアント105にとってローカルであるかのようになる。遅延を減らすために、本発明の実施形態は、NFSのようなオープン・プロトコルをWAN125を介して確実に伝送できるようにする解決策を提供する。NFSを使用するクライアントは通常、フォルダ内の各ファイルに関する情報を順番に要求する。以下で説明するような本発明の一実施形態によるプリフェッチ方法は、WANを介したNFSの遅延を減らすことができるという利点がある。図9に示すように、クライアント105がデータの要求905を送信し、キャッシュ・ミスが発生した場合、プロキシ・キャッシュ115は、サーバ910内のデータの属性をプリフェッチ910し、サーバはその属性を返す915。そのため、プロキシ・キャッシュ115は、データのいかなる変化も判定することができる。その後、プロキシ・キャッシュ115は、要求されたデータをクライアントに送信することができる。
本発明の一実施形態では、サーバ(複数の場合もあり)110内のフォルダ、サブフォルダ、および/または、ファイルの属性をチェックすることにより、プロキシ・キャッシュ115に格納されているデータに関する更新や変更を事前に確認することができる。オブジェクト(ディレクトリやファイルなど)の属性をNFSで得るためには、「GETATTR」コマンドが使用される(もちろん、他の適当な処理を用いてもよい)。各オブジェクトについて「GETATTR」コマンドを使用し、オブジェクトに変更があったか否かを示す属性をチェックする。一実施形態において、NFSトラフィックはメタデータの事前確認を行い、トラフィックを加速することができる。
事前確認アクセスパターンには、例えば、シーケンシャル・アクセス、ランダム・アクセス、履歴を利用した隣接オブジェクトのリンクのアクセスなど、様々なパターンが使用される。シーケンシャル・アクセスによる確認とは、複数のオブジェクトの属性を順番に確認することを意味する。クライアント事前確認は、履歴によるリンクを作成し、クライアントは、構築された履歴によるリンクから利点を得る。履歴を利用した隣接オブジェクトのリンクについては、後で説明する。クライアントによっては、作成されたリンクに重みを加えてもよい。また、リンクを破壊する選択枝を追加することもできる。
図10は、本発明の一実施形態による、事前確認アクセスを実施するためのプロキシ・キャッシュ115の構成要素を示すブロック図である。オブジェクトE0は不可視のファイルハンドルを有する場合があるので、オブジェクトE0の親ディレクトリを見つける方法は無い場合がある。プロキシ・キャッシュ115のメモリに格納される要素ハッシュテーブル1005およびディレクトリ・ハッシュテーブル1010は、ディレクトリDに関する情報を有する。最初の4つの要素(例えば、E0〜E3)は、要素ハッシュテーブル1010にロードされる。この方法は、ディレクトリDへのリンクを作成することができ、シーケンスE0〜E3のキャプチャを短時間で行なうことができる。最初の4つのオブジェクトE0〜E3は、オブジェクトE0ファイルのファイルハンドルに基づいてテーブル1010内にハッシュされ、所定の隣接オブジェクトE1〜E3およびE0は、要素ハッシュテーブル1005内のディレクトリDを指すことになる(1015)。クライアント105はオブジェクトE0の代わりにオブジェクトE1またはE2を要求する場合があるので、オブジェクトE0〜E4がロードされる。オブジェクトE0エントリは、ハッシュテーブル1005にある親ディレクトリDに関する十分な情報を有する。オブジェクトE0がロードされると、次のポインタがマークされ、次のオブジェクトがE1になる。このポインタは、アクセスパターンに関するシーケンシャル・リンクを作成する。図1のリンク方法を使用すると、ディレクトリ・クッキー順位の判定が不要になる。従って、このリンク方法は、クライアント105ごとに処理順序を管理することができる。テーブル1010にロードされるファイルは、「隠し」ファイルではない方が望ましい。隠しファイルとは、それを見るために特殊な方法を知っていなければならないファイルである。
図11は、本発明の一実施形態による、確認後のオブジェクトを履歴的にリンクする方法を示すブロック図である。オブジェクトは、隣接オブジェクトのクライアントによる確認が済んでいれば、隣接オブジェクトの集合と対にされる(リンクされる)。例えば、クライアント105からの確認要求「GETATTR D」が、オブジェクトDを確認する。オブジェクトE0およびE1は隣接オブジェクトであり、オブジェクトE0およびE1は事前に確認されているので、オブジェクトDにリンクされる。
オブジェクトの事前確認が特に有用である理由は、NFSプロトコルにおける「GETATTR」トラフィックが通常、ネットワークのボトルネックとなるからである。オブジェクトを事前確認することにより、WANを介したNFSトラフィックを最適化することができる。これに対し、従来の方法でWANを介したNFSトラフィックを最適化するためには、NFSトラフィックを適当なプロトコルに変換しなければならない。
図12は、オブジェクトの属性の変化によってリンクが破壊されたところを示すブロック図である。例えば、クライアント105が「GETATTR E0」コマンドを送信した後、オブジェクトE0が事前確認され、オブジェクトE0の属性の変化が検出された場合、プロキシ・キャッシュ115は、サーバ110からオブジェクトE0を読出し、オブジェクトE0をキャッシュすることにより処理を進める。
プロトコル変換(変換要求)
図13は、クライアント105からのCIFSトラフィックに応答するキャッシュ・ヒット状態を説明するための、クライアント105、プロキシ・キャッシュ115、および、サーバ110を含むネットワークシステムを示す図である。クライアント105とプロキシ・キャッシュ115の間で使用されるプロトコルはCIFSプロトコルのようなオープン・プロトコルであり、プロキシ・キャッシュ115とサーバ110の間で使用されるプロトコルはNFSプロトコルであるものと仮定する。
一実施形態においてプロキシ・キャッシュ115は、プロトコルレベルの変換を実施することなく、ファイルシステムレベルで、クライアント105からのCIFSトラフィックをサーバ110に対するNFSトラフィックに変換することができる(さらに、サーバ110からのNFSトラフィックをクライアント105に対するCIFSトラフィックに変換することもできる)。従って、プロキシ・キャッシュ115を用いると、CIFSクライアントは、キャッシュ・ミスがあっても、NFSサーバのデータにアクセスすることができる。一般に、CIFSプロトコルは、逐次処理であり、CIFSプロトコルに比べて処理回数が多いので、WANを介して使用することは実際的でない。さらに、CIFSプロトコルはあまり十分に定義されていないので、CIFSプロトコルをWANを介して使用するように最適化することは、プロトコル違反となる場合もある。これに対し、プロキシ・キャッシュ115は、クライアント105からのCIFSトラフィックをNFSトラフィックに変換することができるので、キャッシュ・ミスがあっても、サーバ110に対するアクセスが可能になる。
図13は、クライアント105からのCIFS要求1305に関するキャッシュ・ヒット状態を示す図である。スタック1310は、要求105に応答してファイルシステム1315(例えば、Write−Anywhereファイルレイアウト、すなわちWAFLなど)に質問を送り、要求されたファイルをファイルシステム1315が有しているか否かを確認する。すると、ファイルシステム1315は、要求されたデータ1320をスタック1310に渡す。次に、スタック1310は、要求されたデータ1320を要求元クライアント105に送信する。同様の処理は、プロキシ・キャッシュ115がクライアントからNFS要求を受信し、キャッシュ・ヒット状態が発生した場合にも行なわれる。
図14は、プロキシ・キャッシュ115においてキャッシュ・ミス状態を引き起こすCIFS要求の処理を示すブロック図である。スタック1310は、要求に応じて、要求されたデータに関する質問をファイルシステム1315に送る。ファイルシステム1315は、要求されたデータがファイルシステム1315内に存在しないので、NFSクライアントモジュール1325(このモジュールは通常、プログラムとして実施され、クライアント上で実行される)に質問を送る。すると、NFSクライアントモジュール1325はNFS要求1330をWANを介してサーバ110に送信する。サーバ110は、プロキシ・キャッシュ115からのNFS要求1330に応答して、要求されたデータをNFSプロトコルによりWANを介してNFSクライアントモジュール1325に送信する(1335)。次に、NFSクライアントモジュール1325は要求されたデータをファイルシステム1315に送信し、ファイルシステム1315はその要求されたデータをスタック1310に渡す。次にスタック1310は、要求されたデータ1340を要求元クライアント105に送信する。
図15は、プロキシ・キャッシュ115にキャッシュ・ミス状態を引き起こすNFS要求1500の処理を示すブロック図である。スタック1510は、要求されたデータがファイルシステム1515内にあるか否かをチェックする。プロキシ・キャッシュ115は、キャッシュ・ミスに応答して、NFS要求1530をネットワーク・インタフェース1505からサーバ110に送信する。フィルエンジン1520は、サーバ応答1535を構文解析し、クライアント105とサーバ110の間の通信を可能にするデータ構造、および、不可視の特徴をもつファイルハンドルを使用する。要求されたデータ1525は、プロキシ・キャッシュ115に割り当てられた後、プロキシ・キャッシュ115からクライアント105に送信される。
遅延書込み
図16は、遅延書込み処理を説明するための、本発明の一実施形態によるネットワークを示すブロック図である。プロキシ・キャッシュ115は、クライアント105からの書込み処理1605に応答し、遅延スパース書込み処理1610をサーバ110に対して実施するように構成される。例えば、クライアント105がプロキシ・キャッシュ115に対して書込み処理1605を実施する場合、プロキシ・キャッシュ115は、そのデータをサーバ110に書込み、サーバ110内のファイルを変更することができる。書込み処理1610は、プロキシ・キャッシュ115のバックグラウンド処理として実施してもよいし、後で実施してもよい。従って、書込みデータは最初にプロキシ・キャッシュ内のローカルディスクに送信され、リモートサーバに対する書込み処理は遅れる場合がある。
プロキシ・キャッシュ115は、書込み処理1610を実施する前の準備領域としての働きを持ち、書込みデータをバッファリングしておくことができる。書込み処理1610は、書込み処理1605の速度よりも遅い速度で実施することができる。代替または追加として、書込み処理1610は、書込み処理1605よりも遅い時間に、すなわち書込み処理1605よりも後の時刻に実施してもよい。従って、プロキシ・キャッシュ115とサーバ110とを接続しているWANが故障した場合や、プロキシ・キャッシュ115とサーバ110との間に計画的切断が発生した場合、プロキシ・キャッシュ115は、WANが復旧した時点でサーバ110に対する書込み処理1610を実施することができる。この遅延書込み機能によれば、クライアント105の動作を低下させたり、クライアント105の動作に悪影響を及ぼすことなく、最終的には書込みデータをサーバ110に確実に格納することができる。従って、本発明の一実施形態によれば、サーバ110に対する書込み処理1610は通常自動的に実施されるので、データをコピーするための従来のソフトウェアは不要になる。
書込み処理1605は、プロキシ・キャッシュ115に格納された読出し専用以外のデータを無効することができる。さらに、プロキシ・キャッシュ115にキャッシュされた書込みデータは、消去処理を必要としない。なぜなら、書込みデータはその後、例えば上記のようなFIFO処理を用いて、プロキシ・キャッシュ115から消去されるからである。
プロキシ・キャッシュ115からサーバ110への遅延書込み処理は、次のように実施される。(1)即座に、(2)スケジュールに従って、(3)ネットワークのアイドル時間に、および/または、(4)帯域幅制限に応じて(例えば、書込み処理は、最大ネットワーク帯域幅が得られる時間に実施される)。プロキシ・キャッシュ115に対するトラフィックの帯域幅を制限するために、予約速度制御を行なってもよい。具体的には、帯域幅は、様々な要素に基づいて優先順位付けをすることによって制限または管理することができる。そうした要素には、例えば、(1)クライアントIP情報(レイヤ4 TCP/IP層情報)、(2)NFS情報(レイヤ7)(例えば、ユーザID、読出し/書込み等の処理タイプなど)、(3)特定ファイル(例えば、特定のディレクトリの優先順位を他のディレクトリの優先順位よりも高くする場合がある)などがある。従って、帯域幅は、要求を送信しているクライアントのタイプや、上記のようなその他の要素に基づいて優先順位を付けることができる。
Delegation(委譲)を用いた方法(Delegationは、サーバ内のオブジェクトを変更するパーミッションすなわち権利だけをプロキシ・キャッシュに与える)については、後で図18のところで説明する。Delegation技術は、CIFSおよびNFSバージョン4でサポートされている。
図17は、サーバ110内のファイルシステム1705のうちの下位部分1703を含むアクティブデータセットをキャッシュするように構成されたプロキシ・キャッシュ115の一実施形態を示す。下位部分は、例えば「ルート」1707および「ユーザ1」の下にあるサブツリーである。サブツリー1703は、プロキシ・キャッシュ115とサーバ110の間の計画的切断に先立って、サーバ110からプロキシ・キャッシュ115にフェッチされる。従って、クライアント105は、プロキシ・キャッシュ115にアクセスすることにより、必須データまたは特定データを常に利用することができる。例えば、プロキシ・キャッシュ115は、計画的切断処理に先立って、サーバ110のサブツリー1706をフェッチするように構成される。従って、プロキシ・キャッシュは、従来の方法のミラーリング技術を使用せずにデータを複製する方法を提供することができるという利点を有する。
プロキシ・キャッシュ115内にもともとキャッシュされていたデータのコピーは、サーバ110から全てのデータを取得するまで、サーバ110からの新たな更新データで置換されることはない。プロキシ・キャッシュ115におけるデータの置換は、ディレクトリレベルで実施してもよいし、ファイルレベルで実施してもよい。
上で述べた名前空間の仮想化によれば、サーバ110内のオブジェクトの事前確認が可能になる。
Delegation
図18は、本発明の一実施形態によるDelegationを使用するシステムを示すブロック図である。サーバ110(1)は、ディレクトリまたはファイル(複数の場合もあり)のコピー1810を有し、プロキシ・キャッシュ115は、論理コピー1810におけるデータのキャッシュされたコピー1805を有するものと仮定する。この例においてキャッシュされたコピー1805は、プロキシ・キャッシュ115内のアクティブデータセットに含まれることが好ましい。サーバ105は、論理コピー1810をプロキシ・キャッシュ115に「ロック」することができ、それによってプロキシ・キャッシュ115は、キャッシュ・ヒット時に、サーバ115の論理コピー1810にファイルの更新があったか否かをチェックすることなく、役目を果たすことができるようになる。サーバ110(1)は、サーバ110(1)の論理コピー1810に関するファイル更新をいずれも、ファイル更新ロックの所有者に通知する。プロキシ・キャッシュ115がサーバ内のファイルに対するロックを有している場合、そのファイルに対する書込み要求は通常いずれもプロキシ・キャッシュ115を通過し、その後プロキシ・キャッシュにより、そのファイルに対する遅延書込み処理が実施される。その後、プロキシ・キャッシュ115が所有するロックは、サーバによって無効にされる。
クラスタリング
図19は、本発明の一実施形態によるクラスタ構成の複数のプロキシ・キャッシュ115a〜115cを含むブロック図である。プロキシ・キャッシュの数は、図19のものとは違っていてもよい。プロキシ・キャッシュのクラスタを用いると、一次プロキシ・キャッシュが故障したときに、クライアント要求トラフィックおよびデータトラフィックに関する代替経路の方法が可能になる。これらのプロキシ・キャッシュ115は、例えば、世界または地域の様々な部分に配置することができる。例えば、プロキシ・キャッシュ115aは一次キャッシュであり、その後これが故障した場合、他のプロキシ・キャッシュを一次プロキシ・キャッシュとして選択することにより、ネットワーク・トラフィックの代替経路を形成することができる。例えば、プロキシ・キャッシュ115bおよび115cが、一次プロキシ・キャッシュとして選択される。新たなプロキシ・キャッシュを選択する際の基準には例えば、サイズ(大きなサイズのプロキシ・キャッシュはキャッシュ・ヒット率を向上させる)、低減されるトラフィック待ち時間、位置(例えば、1つの「ピア」プロキシ・キャッシュにするか、近接する複数のプロキシ・キャッシュにするかなど)、および/または、要求されているデータなどがある。クライアント105は、グローバル名前空間機能およびファイルハンドル変換機能により、他のプロキシ・キャッシュの代わりに、1つのプロキシ・キャッシュにアクセスすることができる。種々のプロキシ・キャッシュはお互いを知らないので、ファイルハンドルの書換えを利用する。クライアントは、ファイルハンドルの書換えにより、自分の要求を特定のプロキシ・キャッシュに適切に宛先変更することができる。そして種々のプロキシ・キャッシュがそのメッセージを解釈する。これに対し、HTTPプロトコルでは、オブジェクトの名前がサーバの名前に既に埋め込まれている。
図20は、本発明の一実施形態による、リバース・プロキシ構成に構成されたクライアント装置105(1)〜105(n)、プロキシ・キャッシュ2205(1)〜2205(p)およびサーバ2210を含むネットワーク200を示すブロック図である。プロキシ・キャッシュ(図22では、まとめて2205と呼ぶ)を用いると、サーバ2210に対する双方向トラフィックのスケーリングまたは分散が可能になる。プロキシ・キャッシュ2205は、LAN2215を介してサーバ2210にローカル接続される。変数pは任意の適当な整数値である。つまり、プロキシ・キャッシュ装置(図22では、まとめて2205と呼ぶ)の数は変更してもよい。例えば、サーバ2210のトラフィック処理速度が遅い場合、ネットワーク2200は、プロキシ・キャッシュ2205だけで実施することもできる。クライアント装置105は、WAN125を介してロードバランス調節スイッチのようなロード・バランサ2220に接続される。ロードバランス調節スイッチは、トラフィックをクライアント105とプロキシ・キャッシュ2205に分散させる。
図22のリバース・プロキシ構成によれば、データをプロキシ・キャッシュ2205にオン・デマンドでキャッシュすることが可能になる。このオン・デマンドのキャッシュ処理は、標準的な複製技術に比べて効率が高く、標準複製技術の場合のように特殊なソフトウェアを必要としない。複数のプロキシ・キャッシュ2205を使用することで、サーバ2210に宛てられた要求を分散させることが可能になる。複数のプロキシ・キャッシュ2205を用いると、クライアント105のうちの1つからの要求に応答するキャッシュ・ヒットの可能性も全体的に上げることができる。なぜなら、各プロキシ・キャッシュ2205のアクティブデータセットが、要求されたデータを含む場合があるからである。従って、複数のプロキシ・キャッシュ2250を用いると、クライアント105からサーバ2210に送信される要求の量を減らすことができる。
利点として、サーバ2210の処理速度が遅い場合は、複数のプロキシ・キャッシュ2205を使用することで、キャッシュ・ヒットの可能性を向上させることができ、クライアント105に対してオン・デマンドのデータキャッシュ機能を提供することができる。従って、サーバ2210の処理速度が遅いことが、クライアント要求のためのボトルネックにはならなくなる。図22のリバース・プロキシ構成は、読出しトラフィックに(例えば、動画のグラフィック・レンダリングなどの用途に)関して非常に有用である。また、リバース・プロキシ構成の場合、ファイルハンドルの変形は一般に必要とされない。さらに、プロキシ・キャッシュの使用はファイルサーバの使用に比べて安価であり、また、プロキシ・キャッシュにおけるデータの複製は特殊なソフトウェアを必要とせずに自動的に実施することができる。
ロード・バランサ2220は、キャッシュ・ヒットからの要求およびデータを分散させる。キャッシュ・ミスがあった場合(すなわち、要求されたデータをアクティブデータセット内に有しているプロキシ・キャッシュ205が無い場合)、プロキシ・キャッシュ205のうちの1つは、要求されたデータを求める要求をサーバ210に送り、そのデータのキャッシュされたコピーを要求元サーバに返送する。
図21は、単一のプロキシ・キャッシュ2205(1)がサーバ2210にリバース・プロキシ構成で接続されたネットワーク2300を示すブロック図である。この例では、サーバ2210の処理速度が十分に遅いものになっている点に注意して欲しい。従って、ネットワーク2300で実施される単一のプロキシ・キャッシュ2205は、クライアント要求を受信し、キャッシュ・ヒットがあった場合はデータを要求元クライアント105に返送し、キャッシュ・ミスがあった場合はサーバ2210にアクセスする。
図22は、本発明の他の実施形態によるネットワーク2400を示すブロック図である。プロキシ・キャッシュ2205(1)〜2205(p)は、例えばネットワーク・スイッチ2405を介して、複数のサーバ2210(1)〜2210(m)と通信することができる。変数mは、任意の適当な整数値である。通常、ネットワーク・スイッチ2405はLAN2215内で実施される。従って、プロキシ・キャッシュ2205は、複数のサーバ2210に対する双方向のトラフィックをスケーリングまたは分散させることができ、サーバ2210に対する双方向のトラフィックを加速させることができる。図22のリバース・プロキシ構成は、特にサーバの処理能力が低い場合に、サーバ2210がクライアント・トラフィックに対するボトルネックとして作用することを防止する。
図23は、本発明のさらに他の実施形態によるネットワーク2450を示すブロック図である。プロキシ・キャッシュ2505は、プロキシ・キャッシュ2205(1)〜2250(p)と一緒にクラスタ化され、クラスタ化プロキシ・キャッシュについて上に記載した種々の機能を実施することができる。
本発明の実施形態は、全ての要求についてクライアントがサーバにアクセスしなければならない従来の方法とは違い、クライアントの待ち時間を低減することができるという利点を有する。本発明の実施形態は、クライアントに特殊なソフトウェアを必要とせず、遠くの場所からサーバを簡単に管理することができるので、クライアントおよび/またはサーバの管理の容易さを向上させるという利点を有する。本発明の実施形態は、従来の方法のミラーリングステップを不要にすることにより、データ複製の容易さを向上させることができるという利点を有する。具体的には、本発明の実施形態は、所与の時間間隔でデータのミラーリングを行なうことが可能な管理者を必要としない。本発明の実施形態は、アクティブデータセット全体のサイズがサーバ内のデータセット全体のサイズよりも小さいので、必要とされるディスク要件も少なくて済むという利点を有する。ディスク要件が少ないことから、コストも少なくて済み、故障問題も少なくなる。本発明の実施形態は、多数のクライアントがリバース・プロキシ構成のネットワークを飽和させることなく、多数のデータ要求を行なえるという利点を有する。
また、本明細書に記載する種々のエンジンまたはモジュールは、例えば、ソフトウェア、コマンド、データファイル、プログラム、コード、モジュール、命令などであってもよく、適当なメカニズムをさらに含むものであってもよい。
本明細書全体を通じて「1つの実施形態」、「一実施形態」または「特定の実施形態」と呼ばれるものは、本発明の少なくとも1つの実施形態に含まれる実施形態に関連して説明された特定の特徴、構造または特性を意味している。従って、本明細書全体を通じて種々の場所に記載されている「1つの実施形態において」「一実施形態において」または「特定の実施形態において」のような語句は、すべて同じ実施形態を指しているとは必ずしも限らない。さらに、特定の特徴、構造または特性は、任意の適当な方法で1以上の実施形態と組み合わせることもできる。
上に記載された教示を参照すれば、上記の実施形態および方法に対する変形および変更は他にも可能である。また、本発明の一実施形態に関する少なくとも一部の構成要素は、相互接続された構成要素および回路のネットワークを用いて、特定用途向け集積回路、プログラマブル・ロジック・デバイスまたはフィールド・プログラマブル・ゲート・アレイを用いて、プログラムされた汎用デジタルコンピュータを用いて実施される。接続は、有線でも、無線でも、モデムによるものなどであってもよい。
また、図面/図に描かれた要素のうちの1以上は、特定の用途にとって有用となるように、さらに離した態様で実施することも、さらに一体化した態様で実施することもでき、場合によっては、除去したり、動作しないようにすることもできる。
さらに、機械読取可能媒体に格納可能なプログラムまたはコードを実施し、上記の方法のうちのいずれかをコンピュータで実施することも、本発明の範囲内である。
さらに、図/図面中の信号矢印は、例として解釈すべきものであり、特にことわりがない限り、限定の意味で解釈してはならない。さらに、本明細書の開示に使用される「または」という用語は通常、特にことわりがない限り、「および/または」の意味で使用している。また、構成要素またはステップの組み合わせも考えられる。その場合、分離または結合する能力の解釈が不明瞭であるので、専門用語は予測される。
本明細書の説明および特許請求の範囲の記載に使用されている「a」、「an」および「the」は、文脈から明らかにそうでないと言えない限り、複数の場合も含む。また、本明細書の説明および特許請求の範囲の記載に使用されている「in」は、文脈から巻きらかにそうでないと言えない限り、「in」の意味と「on」の意味とを含む。
さらに 本発明の態様は、ハードウェア、ソフトウェア、ファームウェア、および/または、それらの組み合わせで実施することができる。
要約書に記載したものを含む本発明の例示的な実施形態に関する上記の説明は、本発明を網羅的に記載しようとするものでもなければ、本発明を開示した形態に厳密に制限しようとするものでもない。本明細書には、例示の目的で本発明の具体的実施形態や例が記載されているが、本発明の範囲内で種々の均等な変更が可能であることは、当業者にとって明らかであろう。
上記の詳細な説明を参照すれば、本発明に対してそれらの変更を行なうことができる。特許請求の範囲に使用されている用語は、本発明を明細書および特許請求の範囲に開示されている特定の実施形態に制限するものとして解釈してはならない。そうではなく、本発明の範囲は特許請求の範囲によって完全に決定され、特許請求の範囲は、特許請求の範囲に関する確立された解釈の原則に従って解釈しなければならない。
本発明の一実施形態による装置を示すブロック図である。 本発明の一実施形態によるプロキシ・キャッシュを示すブロック図である。 キャッシュ・ヒット処理およびキャッシュ・ミス処理を示すブロック図である。 本発明の一実施形態による加齢方式または重要度方式を用いてアクティブデータセットを管理する方法を示すブロック図である。 本発明の実施形態によりアクティブデータセットを管理する他の方法を示すブロック図である。 ファイルハンドルを示すブロック図である。 各サーバ内のボリュームの例を示すブロック図である。 本発明の一実施形態による、特定サーバにおける各ボリュームのFSid値のマッピングを示すブロック図である。 本発明の一実施形態による、同一にマッピングされたファイルハンドルを有する複数のプロキシ・キャッシュを備えたネットワークシステムを示すブロック図である。 本発明の一実施形態による、仮想名前空間を可能にするためのローカルディレクトリを示すブロック図である。 1つのマウントポイントに一連の属性が関連付けられた複数のマウントポイントを作成する方法を示すブロック図である。 キャッシュデータの整合性をとる方法を示すブロック図である。 キャッシュデータの整合性をとる方法を示すブロック図である。 キャッシュデータの整合性をとる方法を示すブロック図である。 本発明の一実施形態による、サーバ内のデータの属性のプリフェッチまたは事前確認を示すブロック図である。 本発明の一実施形態による事前確認アクセスを実施するための、プロキシ・キャッシュ内の構成要素を示すブロック図である。 本発明の一実施形態による、確認されたオブジェクトを履歴によりリンクさせる方法を示すブロック図である。 本発明の一実施形態による、オブジェクトの属性の変化に応じてリンクが破壊されたところを示すブロック図である。 本発明の一実施形態による、クライアントからのCIFSトラフィックに応答するキャッシュヒット状態を説明するための、クライアント、プロキシ・キャッシュおよびサーバを含むネットワークシステムを示す図である。 本発明の一実施形態による、プロキシ・キャッシュにキャッシュ・ミス状態を引き起こすCIFS要求の処理を示すブロック図である。 本発明の一実施形態による、プロキシ・キャッシュにキャッシュ・ミス状態を引き起こすNFS要求の処理を示すブロック図である。 遅延書込みを説明するための、本発明の一実施形態によるネットワークを示すブロック図である。 サーバの所定の記憶領域にあるデータの特定の論理コピーのキャッシュされたコピーを含むアクティブデータセットをキャッシュするように構成されたプロキシ・キャッシュの一実施形態を示す図である。 本発明の一実施形態によるデータコヒーレンシを提供するシステムのブロック図である。 本発明の一実施形態による、クラスタ構成の複数のプロキシ・キャッシュを含むブロック図である。 本発明の一実施形態による、リバース・プロキシ構成のクライアント、プロキシ・キャッシュおよびサーバを含むネットワークを示すブロック図である。 単一のプロキシキャッシュ205(1)がサーバ210にリバース・プロキシ構成で接続されたネットワーク300を示すブロック図である。 本発明の他の実施形態によるネットワーク2400を示すブロック図である。 本発明の他の実施形態によるネットワーク2500を示すブロック図である。

Claims (63)

  1. データをネットワーク内にキャッシュする装置であって、
    クライアントからオブジェクトの要求を受信し、サーバからデータブロックをフェッチするように構成されたプロキシ・キャッシュを含み、
    前記プロキシ・キャッシュは、階層関係の前記データブロックをアクティブデータセットとしてオブジェクト内にキャッシュするように構成される、装置。
  2. 前記データブロックがバッファ・ツリーに入れられ、ファイル内に前記階層関係が可能である、請求項1に記載の装置。
  3. クライアントからの要求に応答して、データブロックが前記アクティブデータセットに配置される、請求項1に記載の装置。
  4. 前記アクティブデータセットは、少なくともサーバに格納されたデータの一部を含む、請求項1に記載の装置。
  5. 前記アクティブデータセットは、特定の時間によって定義される、請求項1に記載の装置。
  6. 前記プロキシ・キャッシュは、サーバによって要求されたファイルがデータブロックを欠いていた場合、クライアントからの要求に応答してサーバから前記データブロックをフェッチするように構成される、請求項1に記載の装置。
  7. 前記プロキシ・キャッシュは、サーバによって要求されたファイルがプロキシ・キャッシュ内に存在しなかった場合、クライアントからの要求に応答してサーバから前記データブロックをフェッチするように構成される、請求項1に記載の装置。
  8. 前記プロキシ・キャッシュと前記クライアントが、オープン・スタンダード・プロトコルを用いて通信する、請求項1に記載の装置。
  9. 前記プロトコルは、インターネット・プロトコルを含む、請求項8に記載の装置。
  10. 前記プロトコルは、ネットワーク・ファイル・システム(NFS)プロトコルを含む、請求項8に記載の装置。
  11. 前記プロトコルは、コモン・インターネット・ファイル・システム(CIFS)プロトコルを含む、請求項8に記載の装置。
  12. 前記プロキシ・キャッシュは、クライアントによって要求されたデータファイルにおけるデータブロックの有無を判定するための計算の一部として重複しない名前を計算する、請求項1に記載の装置。
  13. 置換ポリシーに基づいて、前記プロキシ・キャッシュから前記アクティブデータセットの一部を消去することができる、請求項1に記載の装置。
  14. 前記オブジェクトはデータファイルを含む、請求項1に記載の装置。
  15. オブジェクトはファイルの一部を含む、請求項1に記載の装置。
  16. データをネットワーク内にキャッシュする方法であって、
    クライアントからオブジェクトの要求を受信するステップと、
    要求された前記オブジェクト中の各データブロックがキャッシュ内にあれば、要求されたオブジェクトをクライアントに送信するステップと、
    要求された前記オブジェクト中のデータブロックが欠けていた場合、該データブロックをサーバからフェッチし、該データブロックをアクティブデータセットの一部として階層関係に埋め込み、要求された前記オブジェクトをクライアントに送信するステップと、
    からなる方法。
  17. サーバによって要求されたファイルが存在しなかった場合に、クライアントからサーバへの要求に応答して、サーバからデータブロックをフェッチするステップをさらに含む、請求項16に記載の方法。
  18. 前記データブロックがバッファ・ツリーに入れられ、ファイル内に階層関係が可能である、請求項16に記載の方法。
  19. 前記アクティブデータセットは、少なくともサーバに格納されたデータの一部を含む、請求項16に記載の方法。
  20. 前記アクティブデータセットは、特定の時間によって定義される、請求項16に記載の方法。
  21. 前記オブジェクトの要求は、オープン・スタンダード・プロトコルを用いて送信される、請求項16に記載の方法。
  22. 前記プロトコルは、インターネット・プロトコルを含む、請求項21に記載の方法。
  23. 前記プロトコルは、ネットワーク・ファイル・システム(NFS)プロトコルを含む、請求項21に記載の方法。
  24. 前記プロトコルは、コモン・インターネット・ファイル・システム(CIFS)プロトコルを含む、請求項21に記載の方法。
  25. クライアントによって要求されたデータファイル中のデータブロックの有無を判定する計算の一部として重複しない名前を計算するステップをさらに含む、請求項16に記載の方法。
  26. 置換ポリシーに基づいて前記アクティブデータセットの一部を消去するステップをさらに含む、請求項16に記載の方法。
  27. クライアントからオブジェクトの要求を受信する命令と、
    要求された前記オブジェクトの各データブロックがキャッシュ内に存在する場合、要求された前記オブジェクトを前記クライアントに送信する命令と、
    要求された前記オブジェクト中のデータブロックが欠けていた場合、該データブロックをサーバからフェッチし、該データブロックをアクティブデータセットとして階層関係に埋め込み、要求された前記オブジェクトをクライアントに送信する命令と、
    が記録された機械読取可能媒体を含む製品。
  28. データをネットワーク内にキャッシュする装置であって、
    クライアントからオブジェクトの要求を受信するための受信手段と、
    前記受信手段に接続され、要求された前記オブジェクトの各データブロックがキャッシュ内に存在する場合、要求された前記オブジェクトを前記クライアントに送信する手段と、
    前記受信手段に接続され、要求された前記オブジェクト中のデータブロックが欠けていた場合、該データブロックをサーバからフェッチし、該データブロックをアクティブデータセットの一部として階層関係に埋め込み、要求された前記オブジェクトを前記クライアントに送信する手段と、
    からなる装置。
  29. データをネットワーク内にキャッシュする装置であって、
    クライアントからオブジェクトの要求を受信し、サーバからデータブロックをフェッチするように構成されたプロキシ・キャッシュを含み、
    前記プロキシ・キャッシュは、階層関係の前記前記データブロックをアクティブデータセットとしてオブジェクト内にキャッシュするように構成され、該アクティブデータセットが、前記クライアントからの要求に基づいて定義される、装置。
  30. 前記アクティブデータセットはデータ置換法を用いて変更される、請求項29に記載の装置。
  31. 前記データ置換法は、先入れ先出し法、最長時間未使用法、データ重要度法、および、ユーザ入力を利用したデータ置換法のうちのいずれか1つである、請求項29に記載の装置。
  32. 前記プロキシ・キャッシュに接続された全てのクライアントが前記アクティブデータセットを相互共有できるようにするために、前記アクティブデータセットは、前記プロキシ・キャッシュに接続された少なくとももう1つのクライアントから利用することができる、請求項29に記載の装置。
  33. 前記プロキシ・キャッシュは、ファイルハンドルを変換するように構成され、該ファイルハンドルが特定のサーバにマッピングされていることを示すようにする、請求項29に記載の装置。
  34. 前記ファイルハンドルは、ファイルシステム識別子およびサーバ・インターネット・プロトコル・アドレスを利用してハッシュアルゴリズムを用いて変換される、請求項29に記載の装置。
  35. データをネットワーク内にキャッシュする方法であって、
    クライアントからオブジェクトの要求を受信するステップと、
    要求された前記オブジェクト中の少なくとも1つのデータブロックがキャッシュ内
    に存在するか否かを判定するステップと、
    要求された前記オブジェクト中のデータブロックが欠けていた場合、該データブロックをサーバからフェッチし、該データブロックをキャッシュに割り当て、要求された前記オブジェクトを前記クライアントに送信するステップと、
    からなる方法。
  36. 各データブロックが、オブジェクト内の階層関係に入れられる、請求項35に記載の方法。
  37. 前記アクティブデータセットは、少なくとも前記サーバに格納されたデータの一部を含む、請求項35に記載の方法。
  38. 前記アクティブデータセットは、特定の時間によって定義される、請求項35に記載の方法。
  39. 前記オブジェクトの要求は、オープン・スタンダード・プロトコルを用いて送信される、請求項35に記載の方法。
  40. 前記プロトコルは、インターネット・プロトコルを含む、請求項39に記載の方法。
  41. 前記プロトコルは、ネットワーク・ファイル・システム(NFS)プロトコルを含む、請求項40に記載の方法。
  42. 前記プロトコルは、コモン・インターネット・ファイル・システム(CIFS)プロトコルを含む、請求項40に記載の方法。
  43. クライアントによって要求されたデータファイル中のデータブロックの有無を判定する計算の一部として重複しない名前を計算するステップをさらに含む、請求項35に記載の方法。
  44. 置換ポリシーに基づいて前記アクティブデータセットの一部を消去するステップをさらに含む、請求項35に記載の方法。
  45. 前記データ置換法は、先入れ先出し法、最長時間未使用法、データ重要度法、および、ユーザ入力を利用したデータ置換法のうちのいずれか1つである、請求項44に記載の方法。
  46. 前記プロキシ・キャッシュに接続された全てのクライアントが前記アクティブデータセットを相互共有できるようにするために、前記アクティブデータセットは、前記プロキシ・キャッシュに接続された少なくとももう1つのクライアントから利用することができる、請求項35に記載の方法。
  47. 前記プロキシ・キャッシュは、ファイルハンドルを変換するように構成され、該ファイルハンドルが特定のサーバにマッピングされていることを示すようにする、請求項35に記載の方法。
  48. 前記ファイルハンドルは、ファイルシステム識別子およびサーバ・インターネット・プロトコル・アドレスを利用してハッシュアルゴリズムを用いて変換される、請求項47に記載の方法。
  49. 前記プロキシ・キャッシュは、クライアントからの要求に応答して重複しないファイル名を計算し、該重複しないファイル名に基づいて、要求された前記オブジェクトの各データブロックが前記プロキシ・キャッシュに格納されているか否かを判定する一致キャッシュファイル識別子を得る、請求項1に記載の装置。
  50. 前記一致ローカルキャッシュファイル識別子は、適当なinodeレコードを指し示すinodeファイルへの索引となる、請求項49に記載の装置。
  51. 前記inodeレコードは、要求された前記オブジェクトのデータブロックが前記プロキシ・キャッシュに格納されているか否かを示すinode番号を含む、請求項50に記載の装置。
  52. 要求された前記オブジェクト中の関連データブロックが前記プロキシ・キャッシュ内に格納されていない場合、inode番号は特別な値Xをとり、該特別な値Xは、−1、−3、または、その他の値などの値のうちの1つである、請求項51に記載の装置。
  53. 要求された前記オブジェクト中の関連データブロックが前記プロキシ・キャッシュ内に格納されている場合、inode番号は特別な値Xにならない、請求項51に記載の装置。
  54. 前記inodeファイルは、オブジェクトに関するサーバ側属性を含む第2のinodeレコードをさらに指し示す、請求項49に記載の装置。
  55. 前記重複しないファイル名に基づく一致キャッシュファイル識別子が前記プロキシ・キャッシュ内にない場合、要求された前記オブジェクトのデータブロックは、前記プロキシ・キャッシュ内に格納されていない、請求項49に記載の装置。
  56. 前記クライアントからの要求に応答して重複しないファイル名を計算するステップと、
    前記重複しないファイル名に基づいて、要求された前記オブジェクトの各データブロックがプロキシ・キャッシュに格納されているか否かを判定する一致キャッシュファイル識別子を得るステップと、
    をさらに含む、請求項16に記載の方法。
  57. 前記一致ローカルキャッシュファイル識別子は、適当なinodeレコードを指し示すinodeファイルへの索引となる、請求項56に記載の方法。
  58. 前記inodeレコードは、要求された前記オブジェクトのデータブロックが前記プロキシ・キャッシュに格納されているか否かを示すinode番号を含む、請求項57に記載の方法。
  59. 要求された前記オブジェクト中の関連データブロックが前記プロキシ・キャッシュ内に格納されていない場合、inode番号は特別な値Xをとり、該特別な値Xは、−1、−3、または、その他の値などの値のうちの1つである、請求項58に記載の方法。
  60. 要求された前記オブジェクト中の関連データブロックが前記プロキシ・キャッシュ内に格納されている場合、inode番号は特別な値Xにならない、請求項58に記載の方法。
  61. 前記inodeファイルは、オブジェクトに関するサーバ側属性を含む第2のinodeレコードをさらに指し示す、請求項56に記載の方法。
  62. 前記重複しないファイル名に基づく一致キャッシュファイル識別子が前記プロキシ・キャッシュ内にない場合、要求された前記オブジェクトのデータブロックは、前記プロキシ・キャッシュ内に格納されていない、請求項56に記載の方法。
  63. 前記オブジェクトはディレクトリを含む、請求項1に記載の装置。

JP2004536622A 2002-09-16 2003-09-16 プロキシ・キャッシュに関する装置および方法 Expired - Fee Related JP4547264B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/245,828 US7171469B2 (en) 2002-09-16 2002-09-16 Apparatus and method for storing data in a proxy cache in a network
PCT/US2003/029398 WO2004025429A2 (en) 2002-09-16 2003-09-16 Apparatus and method for proxy cache

Publications (2)

Publication Number Publication Date
JP2005539315A true JP2005539315A (ja) 2005-12-22
JP4547264B2 JP4547264B2 (ja) 2010-09-22

Family

ID=31992195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004536622A Expired - Fee Related JP4547264B2 (ja) 2002-09-16 2003-09-16 プロキシ・キャッシュに関する装置および方法

Country Status (5)

Country Link
US (3) US7171469B2 (ja)
EP (1) EP1540498B1 (ja)
JP (1) JP4547264B2 (ja)
AU (1) AU2003270764A1 (ja)
WO (1) WO2004025429A2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010502097A (ja) * 2006-08-21 2010-01-21 テレフオンアクチーボラゲット エル エム エリクソン(パブル) エンドユーザにトリプルプレイサービスを提供するための分散型サーバネットワーク
JP2010129088A (ja) * 2008-11-25 2010-06-10 Internatl Business Mach Corp <Ibm> 分散データ・レプリカを利用する情報サービスのデータ保全性及びデータ精度を管理するための方法、装置及びコンピュータ・プログラム
JP2011039899A (ja) * 2009-08-17 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> Web情報取得方法および装置
JP2013541086A (ja) * 2010-09-13 2013-11-07 マーベル ワールド トレード リミテッド 分散型メタデータキャッシュ
JP2014510333A (ja) * 2011-02-08 2014-04-24 トムソン ライセンシング ホーム・ネットワークにおいてデータを共有する方法及び該方法を実施する装置
KR101490516B1 (ko) * 2013-08-19 2015-02-05 주식회사 솔박스 객체 및 속성 정보를 이용한 컨텐츠 제공 방법 및 이를 이용한 http 프록시 서버
JP2017514416A (ja) * 2014-03-20 2017-06-01 トムソン ライセンシングThomson Licensing クライアント端末と少なくとも1つのサーバーの間の伝送経路に沿って配置されたキャッシュを動作させる方法、および対応するキャッシュ
WO2018230379A1 (ja) * 2017-06-15 2018-12-20 富士通クライアントコンピューティング株式会社 代理装置、提供装置、情報処理方法および情報処理プログラム
JP2020528614A (ja) * 2017-07-26 2020-09-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 分散ストレージ環境のための認知ファイルおよびオブジェクト管理のための方法、コンピュータ・プログラムおよびシステム

Families Citing this family (289)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543018B2 (en) * 1996-04-11 2009-06-02 Aol Llc, A Delaware Limited Liability Company Caching signatures
US8195760B2 (en) * 2001-01-11 2012-06-05 F5 Networks, Inc. File aggregation in a switched file system
US7788335B2 (en) * 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
WO2002056181A2 (en) 2001-01-11 2002-07-18 Force Communications Inc Z File switch and switched file system
US8239354B2 (en) 2005-03-03 2012-08-07 F5 Networks, Inc. System and method for managing small-size files in an aggregated file system
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
US7512673B2 (en) 2001-01-11 2009-03-31 Attune Systems, Inc. Rule based aggregation of files and transactions in a switched file system
JP4020676B2 (ja) * 2002-03-26 2007-12-12 株式会社東芝 Webシステム及びWebシステムの制御方法
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
EP1533944B8 (en) * 2002-09-20 2009-01-14 Panasonic Corporation Control of access by intermediate network element for connecting data communication networks
WO2004027607A2 (en) * 2002-09-20 2004-04-01 Mks Inc. Version control system for software development
US7877511B1 (en) 2003-01-13 2011-01-25 F5 Networks, Inc. Method and apparatus for adaptive services networking
US8015266B1 (en) * 2003-02-07 2011-09-06 Netapp, Inc. System and method for providing persistent node names
US7809693B2 (en) * 2003-02-10 2010-10-05 Netapp, Inc. System and method for restoring data on demand for instant volume restoration
US7574423B2 (en) * 2003-03-20 2009-08-11 International Business Machines Corporation Partial data model exposure through client side caching
JP2005018100A (ja) * 2003-06-23 2005-01-20 Fujitsu Ltd ネットワークファイルサーバ、情報処理装置並びにプログラム
DE10356724B3 (de) * 2003-12-02 2005-06-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Verringern des Transportvolumens von Daten in Datennetzen
US8010670B2 (en) * 2003-12-23 2011-08-30 Slipstream Data Inc. Meta-data based method for local cache utilization
US20050198401A1 (en) * 2004-01-29 2005-09-08 Chron Edward G. Efficiently virtualizing multiple network attached stores
US7584382B2 (en) * 2004-02-19 2009-09-01 Microsoft Corporation Method and system for troubleshooting a misconfiguration of a computer system based on configurations of other computer systems
US7392295B2 (en) 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US7739301B2 (en) * 2004-03-17 2010-06-15 Netapp, Inc. Method and apparatus for improving file system proxy performance and security by distributing information to clients via file handles
US7577640B1 (en) * 2004-03-31 2009-08-18 Avaya Inc. Highly available, highly scalable multi-source logical database with low latency
US7409494B2 (en) * 2004-04-30 2008-08-05 Network Appliance, Inc. Extension of write anywhere file system layout
US7430571B2 (en) 2004-04-30 2008-09-30 Network Appliance, Inc. Extension of write anywhere file layout write allocation
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US20080059601A1 (en) * 2004-06-24 2008-03-06 Nec Corporation Information Service System, Information Server, Portable Terminal, Information Service Control Program And Portable Terminal Control Program
US7640328B1 (en) * 2004-06-30 2009-12-29 Symantec Operating Corporation Method and apparatus for prioritizing provisioning data in a provisioning server
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US7664983B2 (en) * 2004-08-30 2010-02-16 Symantec Corporation Systems and methods for event driven recovery management
US20060047714A1 (en) * 2004-08-30 2006-03-02 Mendocino Software, Inc. Systems and methods for rapid presentation of historical views of stored data
US8171479B2 (en) 2004-09-30 2012-05-01 Citrix Systems, Inc. Method and apparatus for providing an aggregate view of enumerated system resources from various isolation layers
US8095940B2 (en) 2005-09-19 2012-01-10 Citrix Systems, Inc. Method and system for locating and accessing resources
JP4437432B2 (ja) * 2004-09-30 2010-03-24 株式会社日立製作所 計算機システム
US7680758B2 (en) 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US8788674B2 (en) * 2005-01-12 2014-07-22 Blue Coat Systems, Inc. Buffering proxy for telnet access
US7885970B2 (en) 2005-01-20 2011-02-08 F5 Networks, Inc. Scalable system for partitioning and accessing metadata over multiple servers
US7958347B1 (en) 2005-02-04 2011-06-07 F5 Networks, Inc. Methods and apparatus for implementing authentication
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US7277899B1 (en) * 2005-03-15 2007-10-02 Adaptec, Inc. Method and computer program for reducing storage space requirements in a file system comprising linkable files
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
EP1866767B1 (en) 2005-03-16 2018-04-18 III Holdings 12, LLC Automatic workload transfer to an on-demand center
US20110258320A1 (en) * 2005-04-07 2011-10-20 Adaptive Computing Enterprises, Inc. Elastic management of compute resources between a web server and an on-demand compute environment
EP3203374B1 (en) 2005-04-07 2021-11-24 III Holdings 12, LLC On-demand access to compute resources
US20060248547A1 (en) * 2005-04-14 2006-11-02 International Business Machines Corporation Multi-level cache apparatus and method for enhanced remote invocation performance
JP4824085B2 (ja) * 2005-04-25 2011-11-24 ネットアップ,インコーポレイテッド ネットワークファイルシステムをキャッシュするシステム、及び方法
US7689609B2 (en) * 2005-04-25 2010-03-30 Netapp, Inc. Architecture for supporting sparse volumes
BRPI0520273A2 (pt) * 2005-06-02 2009-04-28 Thomson Licensing mÉtodo e sistema de sincronizaÇço de conteédo
US7613743B1 (en) * 2005-06-10 2009-11-03 Apple Inc. Methods and apparatuses for data protection
US7739318B2 (en) * 2005-06-20 2010-06-15 Netapp, Inc. System and method for maintaining mappings from data containers to their parent directories
US8266327B2 (en) * 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
US8131825B2 (en) * 2005-10-07 2012-03-06 Citrix Systems, Inc. Method and a system for responding locally to requests for file metadata associated with files stored remotely
US20070083620A1 (en) * 2005-10-07 2007-04-12 Pedersen Bradley J Methods for selecting between a predetermined number of execution methods for an application program
US7945816B1 (en) * 2005-11-30 2011-05-17 At&T Intellectual Property Ii, L.P. Comprehensive end-to-end storage area network (SAN) application transport service
JP4795787B2 (ja) 2005-12-09 2011-10-19 株式会社日立製作所 ストレージシステム、nasサーバ、及びスナップショット方法
US7743123B2 (en) * 2005-12-19 2010-06-22 Microsoft Corporation Aggregating information from a cluster of peers
US7640356B2 (en) * 2006-03-10 2009-12-29 Cisco Technology, Inc. Method and system for reducing cache warm-up time to suppress transmission of redundant data
US8832247B2 (en) * 2006-03-24 2014-09-09 Blue Coat Systems, Inc. Methods and systems for caching content at multiple levels
US7562078B1 (en) * 2006-04-01 2009-07-14 Network Appliance, Inc. Retention of active data stored in memory
US8417746B1 (en) 2006-04-03 2013-04-09 F5 Networks, Inc. File system management with enhanced searchability
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
US9071506B2 (en) * 2006-07-31 2015-06-30 Hewlett-Packard Development Company, L.P. Accessing web services using network management information
US8046422B2 (en) * 2006-08-21 2011-10-25 Netapp, Inc. Automatic load spreading in a clustered network storage system
WO2008070688A1 (en) 2006-12-04 2008-06-12 Commvault Systems, Inc. Systems and methods for creating copies of data, such as archive copies
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US7996421B2 (en) * 2007-01-03 2011-08-09 International Business Machines Corporation Method, computer program product, and system for coordinating access to locally and remotely exported file systems
US7844710B2 (en) * 2007-02-27 2010-11-30 Novell, Inc. Proxy caching for directory services
US7809818B2 (en) 2007-03-12 2010-10-05 Citrix Systems, Inc. Systems and method of using HTTP head command for prefetching
US7783757B2 (en) 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US7720936B2 (en) 2007-03-12 2010-05-18 Citrix Systems, Inc. Systems and methods of freshening and prefreshening a DNS cache
US20080228864A1 (en) * 2007-03-12 2008-09-18 Robert Plamondon Systems and methods for prefetching non-cacheable content for compression history
US7584294B2 (en) * 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US8103783B2 (en) 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US8504775B2 (en) 2007-03-12 2013-08-06 Citrix Systems, Inc Systems and methods of prefreshening cached objects based on user's current web page
US8037126B2 (en) 2007-03-12 2011-10-11 Citrix Systems, Inc. Systems and methods of dynamically checking freshness of cached objects based on link status
US8701010B2 (en) 2007-03-12 2014-04-15 Citrix Systems, Inc. Systems and methods of using the refresh button to determine freshness policy
US8234327B2 (en) * 2007-03-30 2012-07-31 Netapp, Inc. System and method for bandwidth optimization in a network storage environment
US20090077097A1 (en) * 2007-04-16 2009-03-19 Attune Systems, Inc. File Aggregation in a Switched File System
WO2008147973A2 (en) * 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US7908375B2 (en) * 2007-07-11 2011-03-15 Microsoft Corporation Transparently externalizing plug-in computation to cluster
US7958200B2 (en) * 2007-08-14 2011-06-07 International Business Machines Corporation Methods, computer program products, and apparatuses for providing remote client access to exported file systems
US20090138480A1 (en) 2007-08-29 2009-05-28 Chatley Scott P Filing system and method for data files stored in a distributed communications network
JP2009059201A (ja) * 2007-08-31 2009-03-19 Hitachi Ltd ファイルレベルの仮想化と移行を行う中間装置
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
WO2009052465A2 (en) 2007-10-20 2009-04-23 Citrix Systems, Inc. Systems and methods for folder redirection
US8171483B2 (en) 2007-10-20 2012-05-01 Citrix Systems, Inc. Method and system for communicating between isolation environments
US20090204705A1 (en) * 2007-11-12 2009-08-13 Attune Systems, Inc. On Demand File Virtualization for Server Configuration Management with Limited Interruption
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US8117244B2 (en) 2007-11-12 2012-02-14 F5 Networks, Inc. Non-disruptive file migration
US8180747B2 (en) 2007-11-12 2012-05-15 F5 Networks, Inc. Load sharing cluster file systems
US20090204650A1 (en) * 2007-11-15 2009-08-13 Attune Systems, Inc. File Deduplication using Copy-on-Write Storage Tiers
US20090271523A1 (en) * 2007-11-30 2009-10-29 Darrell Gentry System, Method and Software for Using One Computer Network to Bypass a Portion of Another Computer Network
US8352785B1 (en) 2007-12-13 2013-01-08 F5 Networks, Inc. Methods for generating a unified virtual snapshot and systems thereof
US8239345B2 (en) * 2007-12-27 2012-08-07 Microsoft Corporation Asynchronous replication
CN101217449B (zh) * 2008-01-09 2011-01-12 金蝶软件(中国)有限公司 远程调用管理方法
US8805949B2 (en) 2008-01-16 2014-08-12 Netapp, Inc. System and method for populating a cache using behavioral adaptive policies
CN101984778B (zh) 2008-01-26 2014-08-13 思杰系统有限公司 用于细粒度策略驱动的cookie代理的系统和方法
US8560732B2 (en) * 2008-02-19 2013-10-15 Red Hat, Inc. Peer-to-peer object distribution
US8015262B2 (en) * 2008-02-27 2011-09-06 Sap, Ag Stateless core service transaction patterns
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8219524B2 (en) * 2008-06-24 2012-07-10 Commvault Systems, Inc. Application-aware and remote single instance data management
US9098495B2 (en) * 2008-06-24 2015-08-04 Commvault Systems, Inc. Application-aware and remote single instance data management
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8166263B2 (en) * 2008-07-03 2012-04-24 Commvault Systems, Inc. Continuous data protection over intermittent connections, such as continuous data backup for laptops or wireless devices
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
US20100049717A1 (en) * 2008-08-20 2010-02-25 Ryan Michael F Method and systems for sychronization of process control servers
AU2009296695B2 (en) 2008-09-26 2013-08-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8417895B1 (en) 2008-09-30 2013-04-09 Violin Memory Inc. System for maintaining coherency during offline changes to storage media
US8442059B1 (en) 2008-09-30 2013-05-14 Gridiron Systems, Inc. Storage proxy with virtual ports configuration
US8838850B2 (en) * 2008-11-17 2014-09-16 Violin Memory, Inc. Cluster control protocol
US8788758B1 (en) 2008-11-04 2014-07-22 Violin Memory Inc Least profitability used caching scheme
US8443150B1 (en) 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US8412677B2 (en) 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
US8868675B2 (en) * 2008-12-04 2014-10-21 Cisco Technology, Inc. Network optimization using distributed virtual resources
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8650362B2 (en) 2009-04-17 2014-02-11 Violin Memory Inc. System for increasing utilization of storage media
US8667366B1 (en) 2009-04-17 2014-03-04 Violin Memory, Inc. Efficient use of physical address space for data overflow and validation
US20120042130A1 (en) * 2009-04-24 2012-02-16 Aaron Antony Peapell Data Storage System
US8090797B2 (en) 2009-05-02 2012-01-03 Citrix Systems, Inc. Methods and systems for launching applications into existing isolation environments
US8713252B1 (en) 2009-05-06 2014-04-29 Violin Memory, Inc. Transactional consistency scheme
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US9069676B2 (en) 2009-06-03 2015-06-30 Violin Memory, Inc. Mapping engine for a storage device
US8402198B1 (en) 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
EP2467786B1 (en) * 2009-08-17 2019-07-31 Akamai Technologies, Inc. Method and system for http-based stream delivery
US8402246B1 (en) * 2009-08-28 2013-03-19 Violin Memory, Inc. Alignment adjustment in a tiered storage system
US8171064B2 (en) * 2009-09-01 2012-05-01 Netapp, Inc. Methods and systems for concurrently reading direct and indirect data blocks
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8180813B1 (en) 2009-12-08 2012-05-15 Netapp, Inc. Content repository implemented in a network storage server system
US9507799B1 (en) 2009-12-08 2016-11-29 Netapp, Inc. Distributed object store for network-based content repository
US20110137966A1 (en) * 2009-12-08 2011-06-09 Netapp, Inc. Methods and systems for providing a unified namespace for multiple network protocols
US8484259B1 (en) 2009-12-08 2013-07-09 Netapp, Inc. Metadata subsystem for a distributed object store in a network storage system
US8458239B2 (en) 2009-12-16 2013-06-04 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
US8495250B2 (en) 2009-12-16 2013-07-23 International Business Machines Corporation Asynchronous file operations in a scalable multi-node file system cache for a remote cluster file system
US9158788B2 (en) 2009-12-16 2015-10-13 International Business Machines Corporation Scalable caching of remote file data in a cluster file system
US8473582B2 (en) * 2009-12-16 2013-06-25 International Business Machines Corporation Disconnected file operations in a scalable multi-node file system cache for a remote cluster file system
US9098560B2 (en) * 2009-12-22 2015-08-04 International Business Machines Corporation Client message distribution in a distributed directory based on language and character sets
US9495338B1 (en) * 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8204860B1 (en) 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8724487B1 (en) * 2010-02-15 2014-05-13 Cisco Technology, Inc. System and method for synchronized reporting in a network environment
US20110258708A1 (en) * 2010-04-14 2011-10-20 Nokia Corporation Method, apparatus and computer program product for caching of content from server
US20110276963A1 (en) * 2010-05-04 2011-11-10 Riverbed Technology, Inc. Virtual Data Storage Devices and Applications Over Wide Area Networks
US8347100B1 (en) 2010-07-14 2013-01-01 F5 Networks, Inc. Methods for DNSSEC proxying and deployment amelioration and systems thereof
US8959288B1 (en) 2010-07-29 2015-02-17 Violin Memory, Inc. Identifying invalid cache data
US8832384B1 (en) 2010-07-29 2014-09-09 Violin Memory, Inc. Reassembling abstracted memory accesses for prefetching
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US8577851B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Content aligned block-based deduplication
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US20120089700A1 (en) * 2010-10-10 2012-04-12 Contendo, Inc. Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US20120102134A1 (en) * 2010-10-21 2012-04-26 International Business Machines Corporation Cache sharing among branch proxy servers via a master proxy server at a data center
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US20120150818A1 (en) 2010-12-14 2012-06-14 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8972689B1 (en) 2011-02-02 2015-03-03 Violin Memory, Inc. Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media
US8635416B1 (en) 2011-03-02 2014-01-21 Violin Memory Inc. Apparatus, method and system for using shadow drives for alternative drive commands
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US8601220B1 (en) 2011-04-29 2013-12-03 Netapp, Inc. Transparent data migration in a storage system environment
CN102222086B (zh) * 2011-05-18 2014-11-26 广州市动景计算机科技有限公司 基于移动终端的网页阅读方法、网页阅读装置及移动终端
US8396836B1 (en) 2011-06-30 2013-03-12 F5 Networks, Inc. System for mitigating file virtualization storage import latency
US9355119B2 (en) * 2011-09-22 2016-05-31 Netapp, Inc. Allocation of absent data within filesystems
US8805956B1 (en) * 2011-09-27 2014-08-12 Trend Micro, Inc. Data leakage prevention in cloud-endpoint model
US8661068B1 (en) * 2011-09-29 2014-02-25 Emc Corporation Managing global metadata caches in data storage systems
US9813491B2 (en) 2011-10-20 2017-11-07 Oracle International Corporation Highly available network filer with automatic load balancing and performance adjustment
US8463850B1 (en) 2011-10-26 2013-06-11 F5 Networks, Inc. System and method of algorithmically generating a server side transaction identifier
US8977704B2 (en) * 2011-12-29 2015-03-10 Nokia Corporation Method and apparatus for flexible caching of delivered media
US9401968B2 (en) 2012-01-20 2016-07-26 Nokia Techologies Oy Method and apparatus for enabling pre-fetching of media
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US9049246B2 (en) * 2012-02-28 2015-06-02 Red Hat, Inc. Reducing web page loading time
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9218375B2 (en) * 2012-06-13 2015-12-22 Commvault Systems, Inc. Dedicated client-side signature generator in a networked storage system
US9172744B2 (en) * 2012-06-14 2015-10-27 Microsoft Technology Licensing, Llc Scalable storage with programmable networks
US20140006543A1 (en) * 2012-06-29 2014-01-02 William M Pitts Distributed filesystem atomic flush transactions
US8850002B1 (en) * 2012-07-02 2014-09-30 Amazon Technologies, Inc. One-to many stateless load balancing
US9661097B2 (en) * 2012-09-21 2017-05-23 Evan Geffner System and method for caching content at an end user'S customer premises equipment
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US9325711B2 (en) 2012-12-11 2016-04-26 Servmax, Inc. Apparatus and data processing systems for accessing an object
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US9448941B1 (en) * 2012-12-31 2016-09-20 Emc Corporation System and method for cache management
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9645950B2 (en) * 2013-01-31 2017-05-09 Vmware, Inc. Low-cost backup and edge caching using unused disk blocks
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US9934230B1 (en) 2013-02-28 2018-04-03 Netapp, Inc. Delegations for non-regular files
US9948602B2 (en) 2013-03-15 2018-04-17 Netflix, Inc. Generation of paths through graph-based data representation
US9596297B2 (en) 2013-05-16 2017-03-14 Toshiba Global Commerce Solutions Holdings Corporation Managing communications in a multi-client, multi-server environment
US9875120B2 (en) * 2013-06-24 2018-01-23 Microsoft Technology Licensing, Llc Virtualized components in computing systems
US9424027B2 (en) * 2013-07-29 2016-08-23 Ralph Moore Message management system for information transfer within a multitasking system
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US9646091B2 (en) * 2014-02-24 2017-05-09 Futurewei Technologies, Inc. File joining on back end device
JP2015164018A (ja) * 2014-02-28 2015-09-10 株式会社東芝 コンテンツ提供装置、コンテンツ提供方法及びプログラム
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
WO2015172107A1 (en) 2014-05-09 2015-11-12 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10154068B2 (en) * 2014-12-30 2018-12-11 Akamai Technologies, Inc. Self-adjusting tiered caching system to optimize traffic performance and origin offload
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9679006B2 (en) 2015-05-14 2017-06-13 Walleye Software, LLC Dynamic join processing using real time merged notification listener
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10320905B2 (en) 2015-10-02 2019-06-11 Oracle International Corporation Highly available network filer super cluster
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10061663B2 (en) 2015-12-30 2018-08-28 Commvault Systems, Inc. Rebuilding deduplication data in a distributed deduplication data storage system
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10797888B1 (en) 2016-01-20 2020-10-06 F5 Networks, Inc. Methods for secured SCEP enrollment for client devices and devices thereof
US10540164B2 (en) 2016-02-12 2020-01-21 Nutanix, Inc. Virtualized file server upgrade
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10237350B2 (en) * 2016-04-06 2019-03-19 Reniac, Inc. System and method for a database proxy
US11349922B2 (en) 2016-04-06 2022-05-31 Marvell Asia Pte Ltd. System and method for a database proxy
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
AU2017290043A1 (en) * 2016-06-28 2019-01-24 Solano Labs, Inc. Systems and methods for efficient distribution of stored data objects
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10985967B1 (en) * 2017-03-10 2021-04-20 Loop Commerce, Inc. Cross-network differential determination
US11082519B2 (en) * 2017-05-08 2021-08-03 Salesforce.Com, Inc. System and method of providing web content using a proxy cache
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10866943B1 (en) 2017-08-24 2020-12-15 Deephaven Data Labs Llc Keyed row selection
US11163447B2 (en) * 2017-09-03 2021-11-02 Ashish Govind Khurange Dedupe file system for bulk data migration to cloud platform
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10659531B2 (en) * 2017-10-06 2020-05-19 International Business Machines Corporation Initiator aware data migration
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
EP3756315A1 (en) * 2018-03-01 2020-12-30 Huawei Technologies Co., Ltd. Packet-programmable statelets
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
CN110389859B (zh) * 2018-04-20 2023-07-07 伊姆西Ip控股有限责任公司 用于复制数据块的方法、设备和计算机程序产品
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11144251B2 (en) 2018-10-17 2021-10-12 International Business Machines Corporation Providing a global unique identifier for a storage volume
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US11537575B1 (en) * 2019-02-04 2022-12-27 Amazon Technologies, Inc. Real-time database performance tuning
US10880159B1 (en) * 2019-03-18 2020-12-29 Amazon Technologies, Inc. Centralized access of configuration data for computing resources
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
CN112839071B (zh) * 2019-11-25 2024-01-05 商汤集团有限公司 训练系统、训练数据访问方法及装置、电子设备、介质
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11429595B2 (en) 2020-04-01 2022-08-30 Marvell Asia Pte Ltd. Persistence of write requests in a database proxy
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11650957B2 (en) * 2021-06-01 2023-05-16 International Business Machines Corporation Receiving at a cache node notification of changes to files in a source file system served from a cache file system at the cache node
US11645238B2 (en) 2021-06-01 2023-05-09 International Business Machines Corporation Notifying a cache file system of changes to files in a source file system served from the cache file system
US11687417B2 (en) * 2021-10-19 2023-06-27 Spectra Logic Corporation Secondary storage protection
CN113961602B (zh) * 2021-10-28 2022-08-19 中国西安卫星测控中心 一种分布式航天测控数据处理系统配置方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112793A (ja) * 1998-10-02 2000-04-21 Toshiba Corp データベース拡張方法、データベース検索システムおよび記録媒体
JP2002511170A (ja) * 1997-06-09 2002-04-09 キャッシュフロー・インコーポレイテッド ネットワークオブジェクトキャッシュエンジン

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619771A (ja) 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
US6026452A (en) 1997-02-26 2000-02-15 Pitts; William Michael Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6085234A (en) 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5713017A (en) * 1995-06-07 1998-01-27 International Business Machines Corporation Dual counter consistency control for fault tolerant network file servers
US5864852A (en) * 1996-04-26 1999-01-26 Netscape Communications Corporation Proxy server caching mechanism that provides a file directory structure and a mapping mechanism within the file directory structure
US6282580B1 (en) 1996-07-02 2001-08-28 Sun Microsystems, Inc. Bridge providing communication between different implementations of object request brokers
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US5946690A (en) 1996-12-17 1999-08-31 Inca Technology, Inc. NDC consistency reconnect mechanism
US5924116A (en) * 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US5907678A (en) 1997-05-07 1999-05-25 International Business Machines Corporation Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request
US6065058A (en) * 1997-05-09 2000-05-16 International Business Machines Corp. Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy
JP4134357B2 (ja) * 1997-05-15 2008-08-20 株式会社日立製作所 分散データ管理方法
US6578113B2 (en) * 1997-06-02 2003-06-10 At&T Corp. Method for cache validation for proxy caches
US7103794B2 (en) * 1998-06-08 2006-09-05 Cacheflow, Inc. Network object cache engine
CA2210755C (en) * 1997-07-17 2003-12-23 Ibm Canada Limited - Ibm Canada Limitee Creating proxies for distribution of beans and event objects
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
US5991810A (en) 1997-08-01 1999-11-23 Novell, Inc. User name authentication for gateway clients accessing a proxy cache server
US5950205A (en) * 1997-09-25 1999-09-07 Cisco Technology, Inc. Data transmission over the internet using a cache memory file system
US6085193A (en) * 1997-09-29 2000-07-04 International Business Machines Corporation Method and system for dynamically prefetching information via a server hierarchy
US6393526B1 (en) 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6167446A (en) 1997-11-03 2000-12-26 Inca Technology, Inc. Automatically configuring network-name-services
US6292835B1 (en) 1997-11-26 2001-09-18 International Business Machines Corporation Network bandwidth and object obsolescence sensitive scheduling method and apparatus for objects distributed broadcasting
US6493816B1 (en) * 1998-03-30 2002-12-10 International Business Machines Corporation Method and apparatus for encapsulating address translation for shared persistent virtual storage
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
US6311216B1 (en) 1998-05-29 2001-10-30 Microsoft Corporation Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6330561B1 (en) * 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
US6338117B1 (en) * 1998-08-28 2002-01-08 International Business Machines Corporation System and method for coordinated hierarchical caching and cache replacement
US6438652B1 (en) 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
US20020108025A1 (en) * 1998-10-21 2002-08-08 Nicholas Shaylor Memory management unit for java environment computers
US6178461B1 (en) 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US6370620B1 (en) * 1998-12-10 2002-04-09 International Business Machines Corporation Web object caching and apparatus for performing the same
US6381602B1 (en) * 1999-01-26 2002-04-30 Microsoft Corporation Enforcing access control on resources at a location other than the source location
US6237060B1 (en) * 1999-04-23 2001-05-22 Sun Microsystems, Inc. Cache management techniques
US6553411B1 (en) 1999-05-18 2003-04-22 International Business Machines Corporation System and method for cache acceleration
US6542964B1 (en) * 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US6658463B1 (en) 1999-06-10 2003-12-02 Hughes Electronics Corporation Satellite multicast performance enhancing multicast HTTP proxy system and method
US6463508B1 (en) * 1999-07-19 2002-10-08 International Business Machines Corporation Method and apparatus for caching a media stream
US6658462B1 (en) * 1999-08-26 2003-12-02 International Business Machines Corporation System, method, and program for balancing cache space requirements with retrieval access time for large documents on the internet
US6801927B1 (en) * 1999-09-24 2004-10-05 Akamba Corporation Network adaptor card with reverse proxy and cache and method implemented therewith
US6665705B1 (en) 1999-10-19 2003-12-16 International Business Machines Corporation Method and apparatus for proxy replication
US6823377B1 (en) 2000-01-28 2004-11-23 International Business Machines Corporation Arrangements and methods for latency-sensitive hashing for collaborative web caching
US7577754B2 (en) 2000-04-28 2009-08-18 Adara Networks, Inc. System and method for controlling access to content carried in a caching architecture
US7908337B2 (en) * 2000-04-28 2011-03-15 Adara Networks, Inc. System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US6854115B1 (en) * 2000-06-02 2005-02-08 Sun Microsystems, Inc. Process persistence in a virtual machine
US6760815B1 (en) * 2000-06-02 2004-07-06 Sun Microsystems, Inc. Caching mechanism for a virtual heap
US6643672B1 (en) * 2000-07-31 2003-11-04 Hewlett-Packard Development Company, Lp. Method and apparatus for asynchronous file writes in a distributed file system
US20020046266A1 (en) * 2000-08-09 2002-04-18 Muralidhar Kurudi H. Computer-implemented method and apparatus for the cloning of input/output devices
GB2366965A (en) * 2000-09-01 2002-03-20 Ncr Int Inc Downloading data to a requesting client form the local cache of another client
EP1368948A2 (en) 2000-10-26 2003-12-10 Prismedia Networks, Inc. Method and apparatus for large payload distribution in a network
AU2002241497A1 (en) * 2000-11-22 2002-06-03 Azoth Technologies, Inc. Method and architecture for serving and caching web objects on the modern internet
US6741970B2 (en) * 2001-02-26 2004-05-25 International Business Machines Corporation Method and apparatus for enhanced, high speed updating and storing of E-commerce orders in a server
JP4191902B2 (ja) * 2001-02-28 2008-12-03 株式会社日立製作所 コンテンツ配信装置
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US20030004998A1 (en) * 2001-06-29 2003-01-02 Chutney Technologies, Inc. Proxy-based acceleration of dynamically generated content
US6901410B2 (en) * 2001-09-10 2005-05-31 Marron Pedro Jose LDAP-based distributed cache technology for XML
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
US6886077B2 (en) * 2001-12-21 2005-04-26 International Business Machines Corporation Context-sensitive caching
US6907501B2 (en) * 2002-01-25 2005-06-14 Ntt Docomo Inc. System for management of cacheable streaming content in a packet based communication network with mobile hosts
US20030145112A1 (en) * 2002-01-31 2003-07-31 Keller S. Brandon Assisted entering of addresses
US20030163731A1 (en) 2002-02-28 2003-08-28 David Wigley Method, system and software product for restricting access to network accessible digital information
US9087319B2 (en) * 2002-03-11 2015-07-21 Oracle America, Inc. System and method for designing, developing and implementing internet service provider architectures
US7133905B2 (en) * 2002-04-09 2006-11-07 Akamai Technologies, Inc. Method and system for tiered distribution in a content delivery network
US20030149581A1 (en) * 2002-08-28 2003-08-07 Imran Chaudhri Method and system for providing intelligent network content delivery
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US7284030B2 (en) * 2002-09-16 2007-10-16 Network Appliance, Inc. Apparatus and method for processing data in a network
US7093359B2 (en) * 2002-09-17 2006-08-22 Siemens Westinghouse Power Corporation Composite structure formed by CMC-on-insulation process
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002511170A (ja) * 1997-06-09 2002-04-09 キャッシュフロー・インコーポレイテッド ネットワークオブジェクトキャッシュエンジン
JP2000112793A (ja) * 1998-10-02 2000-04-21 Toshiba Corp データベース拡張方法、データベース検索システムおよび記録媒体

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010502097A (ja) * 2006-08-21 2010-01-21 テレフオンアクチーボラゲット エル エム エリクソン(パブル) エンドユーザにトリプルプレイサービスを提供するための分散型サーバネットワーク
JP2010129088A (ja) * 2008-11-25 2010-06-10 Internatl Business Mach Corp <Ibm> 分散データ・レプリカを利用する情報サービスのデータ保全性及びデータ精度を管理するための方法、装置及びコンピュータ・プログラム
JP2011039899A (ja) * 2009-08-17 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> Web情報取得方法および装置
JP2013541086A (ja) * 2010-09-13 2013-11-07 マーベル ワールド トレード リミテッド 分散型メタデータキャッシュ
JP2014510333A (ja) * 2011-02-08 2014-04-24 トムソン ライセンシング ホーム・ネットワークにおいてデータを共有する方法及び該方法を実施する装置
KR101490516B1 (ko) * 2013-08-19 2015-02-05 주식회사 솔박스 객체 및 속성 정보를 이용한 컨텐츠 제공 방법 및 이를 이용한 http 프록시 서버
JP2017514416A (ja) * 2014-03-20 2017-06-01 トムソン ライセンシングThomson Licensing クライアント端末と少なくとも1つのサーバーの間の伝送経路に沿って配置されたキャッシュを動作させる方法、および対応するキャッシュ
US10856015B2 (en) 2014-03-20 2020-12-01 Interdigital Ce Patent Holdings Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache
WO2018230379A1 (ja) * 2017-06-15 2018-12-20 富士通クライアントコンピューティング株式会社 代理装置、提供装置、情報処理方法および情報処理プログラム
JP2020528614A (ja) * 2017-07-26 2020-09-24 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 分散ストレージ環境のための認知ファイルおよびオブジェクト管理のための方法、コンピュータ・プログラムおよびシステム
JP7062750B2 (ja) 2017-07-26 2022-05-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散ストレージ環境のための認知ファイルおよびオブジェクト管理のための方法、コンピュータ・プログラムおよびシステム

Also Published As

Publication number Publication date
US7631078B2 (en) 2009-12-08
US20040054777A1 (en) 2004-03-18
AU2003270764A8 (en) 2004-04-30
WO2004025429A2 (en) 2004-03-25
AU2003270764A1 (en) 2004-04-30
US7171469B2 (en) 2007-01-30
EP1540498B1 (en) 2016-03-30
JP4547264B2 (ja) 2010-09-22
EP1540498A4 (en) 2005-12-07
US7191290B1 (en) 2007-03-13
WO2004025429A3 (en) 2004-07-01
US20070192444A1 (en) 2007-08-16
EP1540498A2 (en) 2005-06-15

Similar Documents

Publication Publication Date Title
JP4547263B2 (ja) データをネットワーク中で処理する装置および方法
JP4547264B2 (ja) プロキシ・キャッシュに関する装置および方法
US20070055703A1 (en) Namespace server using referral protocols
US7552223B1 (en) Apparatus and method for data consistency in a proxy cache
US20070088702A1 (en) Intelligent network client for multi-protocol namespace redirection
US20070038697A1 (en) Multi-protocol namespace server
US10467188B2 (en) In-line policy management with multi-level object handle
JP4154893B2 (ja) ネットワークストレージ仮想化方法
US8055702B2 (en) System and method for caching network file systems
US9348842B2 (en) Virtualized data storage system optimizations
US8682916B2 (en) Remote file virtualization in a switched file system
KR101544717B1 (ko) 소프트웨어 정의 네트워크 연결 저장 시스템 및 방법
US7546432B2 (en) Pass-through write policies of files in distributed storage management
CA2734675C (en) Shared namespace for storage clusters
US6530036B1 (en) Self-healing computer system storage
US8832154B1 (en) Object location service for network-based content repository
US20070162462A1 (en) Wide Area Networked File System
US8762434B1 (en) Aliasing of exported paths in a storage system
US10628391B1 (en) Method and system for reducing metadata overhead in a two-tier storage architecture
US20240119005A1 (en) Mechanism to maintain data compliance within a distributed file system

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20051129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091006

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091006

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091021

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100128

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100128

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100629

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100705

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

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees