JP3595470B2 - 要求されたオブジェクトを検索する方法 - Google Patents

要求されたオブジェクトを検索する方法 Download PDF

Info

Publication number
JP3595470B2
JP3595470B2 JP32956799A JP32956799A JP3595470B2 JP 3595470 B2 JP3595470 B2 JP 3595470B2 JP 32956799 A JP32956799 A JP 32956799A JP 32956799 A JP32956799 A JP 32956799A JP 3595470 B2 JP3595470 B2 JP 3595470B2
Authority
JP
Japan
Prior art keywords
cache
requested object
owner
request
client
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.)
Expired - Fee Related
Application number
JP32956799A
Other languages
English (en)
Other versions
JP2000187609A (ja
Inventor
ダニエル・マニュエル・ディアス
アラン・クワンジル・イエンジャー
エリック・ルビイ−アベグノリ
ジュンファ・ソン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2000187609A publication Critical patent/JP2000187609A/ja
Application granted granted Critical
Publication of JP3595470B2 publication Critical patent/JP3595470B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • 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/564Enhancement of application control based on intercepted application data
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1019Random or heuristic server selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明が属する技術分野】
本発明はキャッシュ・システムに係り、特に、本発明はコンピュータネットワーク内で拡張が容易で高い利用価値があるキャッシュに関する。さらに本発明は、特にワールド・ワイド・ウェブ(WWW)のようなクライアント/サーバ環境で使用されるキャッシュ・アレイに関する。
【0002】
【従来の技術】
キャッシングは、コンピュータ・システムにおける性能を改善するのに用いられる。一旦、オブジェクトがキャッシュに格納されると、引き続いてキャッシュに入れられたオブジェクトの要求がキャッシュによって満足される場合がある。キャッシュからのオブジェクトの要求を満足させることは、遠隔地からオブジェクトを再生したり検索することよりもオーバーヘッドが少なくなりうる。ウェブ・サービスの成長する要求に関しての低い性能は、ウェブサーバーを非効率的にし利用しにくいものとする。
【0003】
【発明が解決しようとする課題】
キャッシングは、ウェブ又はプロキシサーバに対してより大きくなっているスループットの要求に対して方法を提供するものである。ワールド・ワイド・ウェブ上のクライアント及びサーバのシステムは、例えば、性能を改善するためにキャッシングを用いることができる。つかの例では、キャッシュの利益がないとウェブ・サーバのアプリケーションは遅く非効率的に機能するかもしれない。キャッシング技術の利益なしには、ウェブ・サーバーはシステムの障害になるかもしれない。ウェブサーバ上で動く基本的なオペレーティングシステムは、例えば、ウェブ・サーバのスループットを妨げる能力上の問題を有するかもしれない。ウェブ・サーバの能力を改善する一つの技術は、頻繁に要求されたデータを記憶することである。キャッシュからのデータを検索することは、ウェブ・サーバからのデータを検索するよりもオーバーヘッドが少なくて済むであろう。
【0004】
【課題を解決するための手段】
オブジェクトに対する要求が複数のノードを含むシステム内の一以上のクライアントから受け取られる。要求のうちの一つはクライアントの一つから送られる。要求は前記複数のノードの2番目のノードによって前記複数のノードの第一のノードから受け取られる。要求されたオブジェクトは、複数のプロトコルのうちの一つを用いて複数のノードの第二のノードから送り返される。拡大縮小ができ高い利用性のあるキャッシュ・アレイを応用することができる。キャッシュ・アレイは、性能と、インターネットのようなネットワークに接続されたウェブ・サーバの性能及びスループットを強化することができる。ネットワーク・ディスパッチャーはキャッシュ・アレイのキャッシュ・ノードに要求を送ることができる。ネットワーク・ディスパッチャーによって選択されたキャッシュ・ノードは、要求に対するサービスを協力して行うために、要求へのサービス、キャッシュ・アレイの他のキャッシュ・ノードに対する要求のハンドオフ、又はキャッシュ・アレイの他のキャッシュ・ノードとともに種々のプロトコルのうちの一つを介しての通信のいずれかを行うことができる。特定のモードで動作しているネットワーク・ディスパッチャーは、内容基準ルータ content based router としても機能する。従って、ネットワーク・ディスパッチャーは、システムの性能をさらに改善するために、内容基準ルーティング( content based routing 又は容基ルーティング( non-content based routing わせを使用して要求を経路指定することも可能である。
【0005】
【発明の実施の形態】
用語の解説
辞書の意味はここで用いられる用語の意味を暗示するが、以下の定義もまた助けとなり得る。
【0006】
クライアント
クライアントとは、典型的には、命令や要求に関連づけられたタスクを実行する一以上のサーバに対して、その命令や要求を発行するクライアント・コンピュータをいう。
【0007】
サーバ
サーバとは、一以上のクライアントからの要求や命令に関連するタスクを実行するコンピュータをいう。
【0008】
ワールド・ワイド・ウェブ(ウェブ)
ワールド・ワイド・ウェブとは、サーバ間のハイパーリンクを提供することにより文書をリンクさせるインターネット・サービスをいう。ユーザは、強調された単語や興味あるフレーズ上をクリックすることにより文書間で「ジャンプ」したり(ハイパーテキスト・リンク)、アプレットや画像マップのようなグラフィクス上をクリックしたり、フォームを埋めたり、さらにはURLを入力することができる。文書がインターネット上のどこに格納されていようとも、ユーザは文書間で「ジャンプ」することができる。インターネット・ウェブ・サーバは、クライアントを支援して情報を提供する。ユーザはウェブ・クライアント・プログラムを用いて 「ウェブをブラウズ」する。ウェブはコンピュータ間で情報を転送するためのHTTPプロトコルを用いるURLによってアドレスされた資源を伴うインターネットと考えられている。(他のフォーマットの中にある)HTMLはURLに相当する情報を表示したり、他のURLへのポイント・アンド・クリック・インターフェースを提供するのに用いられる。
【0009】
ユニバーサル・リソース・ロケータ(URL)
URLとは、インターネット上の資源のためのアドレスをいう。URLは、インターネットの資源を位置づけるためにウェブブラウザによって用いられる。URLは、資源をアクセスするのに用いられるプロトコル(例えば、ワールド・ワイド・ウェブページ用のhttp、又FTPサイト用のftp)資源が存在するサーバの名称(例えば、//www.whitehouse.gov)、そして任意的に、資源への経路(例えば、HTML文書又はサーバ上のファイル)を指定する
【0010】
ハイパーテキスト・マークアップ・ランゲージ(HTML)
HTMLとは、ワールド・ワイド・ウェブ上の文書のために用いられる言語をいう。HTMLは、SGML(標準汎用マークアップ言語)を基礎として策定されたものであって、文書中のテキスト又はグラフィクスのようなエレメントをマークするタグを用いることにより、ウェブ・ブラウザがこれらのエレメントをユーザに対しどのように表示すべきかを指示するとともに、(キ押し下げ操作やマウスクリック操作による)リンクの活動のようなユーザ・アクションに対しどのように応答すべきかを指示する。HTMLは、ウェブ・サーバ上にある内容装置独立の表現である。ウェブ・サーバは、クライアントが適切なプレゼンテーションを選ぶであろうという想定の下に、(ハイパーリンクを含む)内容をHTML形式でクライアントに配布する。
【0011】
ハイパーテキスト・トランスファー・プロトコル(HTTP)
HTTPとは、ワールド・ワイド・ウェブ上の情報にアクセスするのに用いられるクライアント/サーバプロトコルである。HTTPは、ステートレス・プロトコルの1例である。言い換えれば、クライアントからサーバへのての要求、独立に取り扱われる。クライアントはサーバに要求を送り、サーバはこのプロトコルを用いて応答する。
【0012】
ユーザ・データグラム・プロトコル(UDP)
ISO/OSIモデルのトランスポート層に相当するTCP/IPコネクションレス・プロトコルである。UDPは、アプリケーションによって発生されたデータ・メッセージをIP経由で送られるべきパケットに変換するが、メッセージが正しく配布されたかを確かめないことがある。従って、UDPはTCPより能率的である場合があり、よって、SNMP(簡易ネットワーク管理プロトコル)を含む種々の目的に用いられ得る。その信頼性はメッセージを発するアプリケーションに依存する。
【0013】
ルーター
メッセージの配布を処理する通信ネットワーク上の中間装置である。可能な接続のメッシュを介して多数のコンピュータを接続している単一のネットワーク上では、ルータは、送信されたメッセージを受け取り、最も能率的に利用可能な経路を通ってそれらのメッセージを正しい宛先に転送する。他方、同じ通信プロトコルを用いる相互に接続された1セットのローカル・エリア・ネットワーク(LAN)上では、ルーターは、LAN間のリンクとして動作するという、若干異なる機能をサービスすることにより、メッセージあるLANから他のLANまで送信されることを可能にする。
【0014】
ウェブ・ブラウザ
ワールド・ワイド・ウェブ、他のネットワーク又はユーザのコンピュータ上のHTML(又は他の)文書をユーザが視聴し、文書上のハイパーリンクを辿り、ファイルを転送することができるようにするクライアントのアプリケーションである。
【0015】
伝送制御プロトコル(TCP)
IP経由で送るべきパケットへのデータメッセージの分解と、IPによって受け取られたパケットから完全なメッセージの再構成及び検証を制御するTCP/IPのプロトコルである。
【0016】
インターネット・プロトコル(IP)
パケットへのデータメッセージの分解、送り手から宛先のネットワーク及び端末へのパケットの経路指定、宛先で原データメッセージへのパケットの再構成を制御するTCP/IPのプロトコルである。IPはISO/OSIモデルのネットワーク層に相当する。
【0017】
TCP/IP
米国国防総省によって開発されたコンピュータ間の通信のためのプロトコルである。UNIXシステム内に構築され、インターネットを含むネットワーク上のデータ転送の業界標準になっている。
【0018】
プロキシ・サーバ
ANの送受の対象であるインターネット・トラフィックを制御する装置であり、他の機能を提供することもできる。例えば文書キャッシング及びアクセス制御である。プロキシ・サーバは、人気のあるウェブ・ページのように、頻繁に要求されたデータを供給することによって性能を改善することができ、所有者が適切でないと考える要求(例えば、所有権を主張できる専有ファイルへの権限のないアクセス要求)をフィルタしたり削除したりすることができる。
【0019】
キャッシュ
迅速なアクセスのために頻繁に使用されるデータ値が複製される特別なメモリ・サブシステムである。
【0020】
オブジェクト
オブジェクトとは、キャッシュ、サーバ又はクライアントに格納され得るデータをいう。
【0021】
図1は、代表的なコンピュータ・ネットワーク・システムであり、クライアント110,120及び130、ネットワーク150、ネットワーク・ディスパッチャー160、キャッシュ・アレイ170並びにサーバ・クラスタ180を含む。キャッシュ・アレイ170は、キャッシュ・ノード172、174、176及び178を含む。サーバ・クラスタ180は、サーバ182、184、186及び188を含む。クライアント110、120及び130は、例えばウェブ・ページのようなオブジェクトの要求を発する。
【0022】
図2は、本発明の代表的な実施例に従って要求されたオブジェクトを検索する方法を示すフローチャートである。ステップ190、例えばクライアント110が、サーバ、例えばサーバ182に格納される(又は発生される、又は取り出される)であろうオブジェクトを要求する。ステップ192、オブジェクトの要求はネットワーク、例えばネットワーク150経由でネットワーク・ディスパッチャー、例えばネットワークディスパッチャー160によって受け取られる。ステップ194、ネットワーク・ディスパッチャー160はオブジェクトの要求を一つのキャッシュ・ノード、例えばキャッシュ・ノード172に経路指定する。ステップ196、ステップ194でネットワーク・ディスパッチャー160からのオブジェクトの要求を受け取るキャッシュ・ノード172がオブジェクトの最初の所有者であるかどうかの決定がなされる。ステップ194でネットワーク・ディスパッチャー160からオブジェクトの要求を受け取るキャッシュ・ノード172が、最初の所有者である場合には、ステップ197で、キャッシュ・ノード172がクライアントの要求をサービスすることができる。さもなければ、ステップ198で、キャッシュ・ノード172がその要求をサービスし且つ要求されたオブジェクトを検索するためにプロキシとして機能するか、又は、キャッシュ・ノード172がその要求を最初の所有者へンドオフすることができる。ステップ197及びステップ198で、最初の所有者は要求されたオブジェクトをキャッシュ・メモリから検索するか、又はサーバ182と通信することにより検索する。1以上のキャッシュ・ノードがオブジェクトの最初の所有者であり得るように本発明を改変することは可能である。
【0023】
クライアント110、120及び130は、インターネットに接続されたワークステーション、パーソナルコンピュータ又は他のコンピュータでもよい。例えば、家庭でパーソナル・コンピュータを使用するユーザは、ウェブ・ブラウザを使用して対応するURLを入力することにより、ウェブ・ページ検索及び視聴を要求することができる。要求されたウェブ・ページは、URLによってアドレスされ、インターネット上のウェブサービスを通ってアクセス可能なサーバに属し得る。
【0024】
キャッシュ・アレイ170は、1以上のネットワーク・ノードであってもよい。キャッシュ・アレイ170内に含まれるノードは、1以上のプロセッサであってもよい。キャッシュ・アレイ170のノードの各プロセッサは、単一のキャッシュ空間及び単一のキャッシュ・イメージを形成することができる1以上のキャッシュ・メンバー(キャッシュ・ノード)のセットを含んでもよい。言い換えれば、クライアントは、単一のイメージとしてキャッシュ・アレイを見ることができる。例えば、クライアントはネットワーク・ディスパッチャー160と関連づけられたアドレスを介してキャッシュ・アレイ170にアクセスすることができる。しかし、キャッシュ・アレイ170のノードは、独立のIPアドレスを有し得る。内部的には、キャッシュ・アレイ170は、個々のキャッシュ・メンバーの資源を組み合わせることができる。例えば、複数のキャッシュ・メンバーのキャッシュ空間は、キャッシングに利用できるメモリの空間を拡大するために組み合わせることができる。更に、複数のキャッシュメンバーの個々のスループットも、利用可能なスループットを拡大するために組み合わることできる。キャッシュ・メンバー172、174、176及び178の各々キャッシュ・アレイ170の内部で、別個のアドレス(例えばIPアドレス)によって、アドレス可能である。キャッシュ・ノード(メンバー)172、174、176及び178は例えばルーターによって実現される。例えばIBMの22XXファミリーのようなルーターを用いることができる。
【0025】
ネットワーク・ディスパッチャー160は例えばTCPルータ上に実現することができる。ネットワーク・ディスパッチャー160は、例えばクライアント110のようなクライアントから要求を受け取り、この要求を「見ること」なしに、これをキャッシュ・アレイ170のキャッシュ・ノードへ経指定することができる。ネットワーク・ディスパッチャー160は、例えばウェブ・ページ(又は他のオブジェクト)に対するクライアントの要求をキャッシュ・アレイ170に経指定するのに用いられるルーター・ノードのサービスとすることができる。ネットワーク・ディスパッチャー160は、キャッシュ・アレイ170のキャッシュ・ノード172、174、176及び178についての利用可能性及び負荷情報を得ることができる。また、ネットワーク・ディスパッチャー160は、キャッシュ・ノードの利用可能性負荷報に基づいて、オブジェクトに対する要求を選択されたキャッシュ・ノードに経路指定し信することもできる。(例えば、G. Hunt et al., "Network Dispatcher: a connection router for scalable Internet Services," in Proceedings of the 7th International World Wide Web Conference, April 1998 を参照
【0026】
キャッシュ・ノードと要求されたオブジェクトとの間に、対応関係形成される。要求されたオブジェクトは、当該オブジェクトの最初の所有者であるキャッシュ・ノードに対応し得るだけでなく、他のキャッシュ・ノードにも対応し得る。例えば、URLによって表現されている、インターネット・アドレスがウェブ・キャッシュ・ノード間で区分さ得る。各URLごとに、一つのウェブ・キャッシュ・ノード最初の所有者として割り振ることができる。最初の所有者に加えて、一以上のウェブ・キャッシュ・ノードが単一のURLに対応してもよい。これらのURLは例えばハッシュ関数を用いてウェブ・キャッシュ・ノード間で区分され得る。言い換えれば、ハッシュ関数は、キャッシュ・ノードと要求されたオブジェクトとの間対応関係を形成するために用いることができる。
【0027】
クライアント110、120又は130がオブジェクト(すなわち、ターゲット・オブジェクト)を検索するための要求を発する場合、この要求は、ネットワーク・ディスパッチャー160によって、キャッシュ・アレイ170の第一のキャッシュへ経指定され送信される。ネットワーク・ディスパッチャー160によって選択された第一のキャッシュは、要求されたオブジェクトに対応する場合もあり、対応しない場合もある。言い換えれば要求されたオブジェクトが、第一のキャッシュに割り振られている場合もあり、割り振られていない場合もある。ネットワーク・ディスパッチャー160によって選択された第一のキャッシュが要求されたオブジェクトに対応しており(すなわち、第一のキャッシュが要求されたオブジェクトの最初の所有者である)、しかも、この要求されたオブジェクトが第一のキャッシュに格納されている場合、第一のキャッシュは、この要求をサービスすることができる。他方、ネットワーク・ディスパッチャー160によって選択された第一のキャッシュが要求されたオブジェクトに対応しているも(すなわち、第一のキャッシュが要求されたオブジェクトの最初の所有者である)、この要求されたオブジェクトが第一のキャッシュに格納されていない場合には、第一のキャッシュは、サーバ・クラスタ180のうちの適当なサーバー182、184、186又は188から要求されたオブジェクトを検索することができる
【0028】
例えば、ユーザが、クライアント上のウェブ・ブラウザを使用して、ウェブ・ページを検索しこれを視聴することを要求する場合を仮定する。要求されたウェブ・ページはURLによってアドレス可能で、ネットワークに接続されたサーバに格納されていてもよい。ネットワーク・ディスパッチャー160は、キャッシュ・アレイ170の第一のキャッシュ・ノードを選択する。ネットワーク・ディスパッチャー160はウェブ・ページに対する要求を第一のキャッシュ・ノードに経路指定する。要求されたウェブ・ページが第一のキャッシュ・ノードに格納されている場合、第一のキャッシュ・ノードはキャッシュメモリからウェブ・ページを検索することができ、ウェブ・ページをクライアントに送り返す。第一のキャッシュ・ノードが要求されたウェブページの最初の所有者であるが、ウェブ・ページが第一のキャッシュ・ノードに格納されていない場合には、第一のキャッシュ・ノードは、URLによってアドレスされた適切なサーバにアクセスし、そのサーバからウェブ・ページを検索して、これをクライアントに送り返すことができる
【0029】
しかし、ネットワーク・ディスパッチャー160によって選択された第一のキャッシュが、要求されたオブジェクトに対応しない場合(すなわち、第一のキャッシュが要求されたオブジェクトの最初の所有者ではない場合)、第一のキャッシュは、要求されたオブジェクトに対応する第二のキャッシュ(すなわち、第二のキャッシュ要求されたオブジェクトの最初の所有者である)に要求を送信する。第一のキャッシュ及び第二のキャッシュは、この要求をサービスし且つ要求されたオブジェクトを検索するために通信することができる代替的に、第一のキャッシュは、この要求を第二のキャッシュにハンドオフすることができる。ハンドオフの場合には、この要求は、TCP接続に関する情報(例えば、シーケンス番号、IPアドレス及びTCPポート)とともに、第一のキャッシュから第二キャッシュへ送信され得る。
【0030】
第一のキャッシュと第二のキャッシュが要求をサービスするために通信するかどうかという決定、又は、第一のキャッシュがこの要求を第二のキャッシュへハンドオフするかどうかという決定は、例えば、要求されたオブジェクトのサイズに基づいて行うことができる
【0031】
例えば、以下のような手段がある。
1.要求されたオブジェクトのサイズが値のサイズより小さい場合、第二のキャッシュは、要求されたオブジェクトを第一のキャッシュに送信する。第二のキャッシュは、キャッシュメモリから又は適切なサーバとの通信によって、要求されたオブジェクトを検索する。次に、第一のキャッシュは、要求されたオブジェクトを要求元のクライアントに送信することにより、この要求をサービスすることができる
2.要求されるオブジェクトのサイズが値のサイズよりも大きい場合、第一及び第二のキャッシュは、この要求をハンドオフするように調整を行うことができる
(i)TCP接続情報第一のキャッシュから第二のキャッシュまでハンドオフされる。
(ii)ネットワーク・ディスパッチャー160は、この要求が第二のキャッシュによってサービスされることを通知される(さらに、ネットワーク・ディスパッチャー160は、あるオブジェクトに対する後続の要求が第二のキャッシュに送信されるべきであることも通知される)。
(iii)第二のキャッシュは、キャッシュ・メモリから又は適切なサーバとの通信によって、要求されたオブジェクトを検索し、これを要求元のクライアントに送信する。
【0032】
なお、値のサイズは調整可能であるか又は動的に変更可能である
【0033】
この種の代表的な調整のために、第二のキャッシュはTCPハンドオフやHTTPハンドオフを行うのに有用な格納情報フィールドを有することができる。ネットワーク・ディスパッチャー160からの要求を最初に受け取っている第一のキャッシュは、(要求されたオブジェクトの最初の所有者である)第二のキャッシュが要求されたオブジェクトを第一のキャッシュに送信するまで待機するか、又は、第二のキャッシュがこの要求をサービスすることを第一のキャッシュに通知するまで待機することができる。従って、前述の代表的な調整のタイプは、要求されたオブジェクトの最初の所有者によってドライブされる。
【0034】
キャッシュ・メンバ・ヒットが生じるのは、ネットワーク・ディスパッチャー160が、接続要求を要求されたオブジェクトの最初の所有者である第一のキャッシュに転送する場合である。例えば、ネットワーク・ディスパッチャー160がラウンド・ロビン機構を使用する場合、特のキャッシュメンバーが選択される確率は、一様に分散され得る(例えば、n個のキャッシュメンバーの場合には1/nの確率である。)さらに、ネットワーク・ディスパッチャー160は、実質的なオーバーヘッド・コストと引き替えに、要求されたオブジェクトに関連付けられたアドレス指定情報(すなわち、URL)にアクセスすることができる。従って、ネットワーク・ディスパッチャー160はサーバ・クラスタ10と関連づけられたキャッシュ・アレイ170を識別するのに十分な情報をアクセスすることにより、キャッシュ・メンバーをランダムに選択することができる。負荷及び利用可能性情報がネットワーク・ディスパッチャー160に提供され場合、特定のキャッシュ選択する可能性が重み付けされ得る。言い換えると、あるキャッシュが負荷された場合、このキャッシュが選択される頻度が少なくなり、残りのキャッシュ・メンバーより頻繁に選択されるようになる
【0035】
キャッシュ・アレイ・ヒットが生じるのは、キャッシュ・アレイ170がキャッシュメンバー172、174、176、178の一つのキャッシュ空間からオブジェクトに対する要求をサービスすることができる場合である。従って、キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ミスが同時に生じる可能性がある。そのような例は、ネットワーク・ディスパッチャー160が要求されたオブジェクトの最初の所有者であるキャッシュ・メンバーを選択するも、この要求されたオブジェクトの最初の所有者が、要求されたオブジェクトをキャッシュメモリ内に有ていない場合である。従って、キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ミスが同時に生じる場合には、最初の所有者は要求されたオブジェクトをサーバから検索する。
【0036】
さらに、キャッシュメンバーミス及びキャッシュ・アレイヒット同時に生じることもあるそのような例は、ネットワーク・ディスパッチャー160が要求されたオブジェクトの最初の所有者でないキャッシュメンバーを選択するも、この要求されたオブジェクトの最初の所有者であるキャッシュ・アレイ170の一つのキャッシュ・メンバーが、要求されたオブジェクトをキャッシュ・メモリ内に有している場合である。
【0037】
従って、以下の状況が生じる。
1.キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ヒット
2.キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ミス
3.キャッシュ・メンバー・ミス、キャッシュ・アレイ・ヒット
4.キャッシュ・メンバー・ミス、キャッシュ・アレイ・ミス
【0038】
さらに、要求されたオブジェクトを検索するのに、異なる通信プロトコルを用いることができるすなわち、ある要求をサービスするために第一のキャッシュ及び第二のキャッシュが通信するかどうか,又は、第一のキャッシュがある要求を第二のキャッシュにハンドオフするかどうかに依存して、異なるプロトコルを用いることができる。例えば、HTTPインターフェース(この場合、第一のキャッシュはHTTPプロキシとして動作し得る)、UDPベースの要求、又はハンドオフが用いられ得る。
【0039】
以下の8つの状況が生じ得る。
1.キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ヒット
2.キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ミス
3.キャッシュ・メンバー・ミス、キャッシュ・アレイ・ヒット
3.1.HTTPを用いて検索されたオブジェクト
3.2.UDPを用いて検索されたオブジェクト、又は
3.3.要求のハンドオフ経由で検索されたオブジェクト
4.キャッシュ・メンバー・ミス、キャッシュ・アレイ・ミス
4.1.HTTPを用いて検索されたオブジェクト
4.2.UDPを用いて検索されたオブジェクト、又は
4.3.要求のハンドオフ経由で検索されたオブジェクト
【0040】
キャッシュ・メンバー・ヒット
図3及び図4は、本発明の代表的な実施例に基づく、キャッシュ・メンバー・ヒットの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。クライアント110は、ネットワーク150経由でオブジェクトを検索するための要求を発する。要求されたオブジェクトは、サーバ・クラスタ180のサーバ182及び184のうちの一つに格納されるか当該サバによって発生されるか又は取り出される。クライアント110によって発行された要求は、ネットワーク150経由でネットワーク・ディスパッチャー160に転送される。次に、ネットワーク・ディスパッチャー160は、第一のキャッシュ、例えば、キャッシュ・アレイ170のキャッシュ・メンバー172を選択する。ここで、ネットワーク・ディスパッチャー160によって選択された第一のキャッシュ・メンバー172が、要求されたオブジェクトの最初の所有者であると仮定すると、キャッシュ・メンバー・ヒットが生じる。
【0041】
図3は、第一のキャッシュ172がキャッシュ・メモリ内要求されたオブジェクトを有する状況を示す(キャッシュ・アレイ・ヒット)。この状況では、第一のキャッシュ172はキャッシュメモリから要求されたオブジェクトを検索し、これをネットワーク150を経由してクライアント110に送することができる
【0042】
図4は、第一のキャッシュ172がキャッシュメモリ内要求されたオブジェクトを有しない状況を示す(キャッシュ・アレイ・ヒット)。この状況では、第一のキャッシュ172は、要求されたオブジェクトを最初にサーバ182から検索した後、これをネットワーク150を経由してクライアント110に送することができる。キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ミスの状況におけるシステムの性能(例えば、オーバーヘッド、又はスループット)は、キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ヒットの状況におけるそれと比較すると、低下することがある
【0043】
キャッシュ・メンバー・ミス−HTTPインターフェース
図5及び図6は、本発明の代表的な実施例に基づいた、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。クライアント110は、ネットワーク150経由でオブジェクトを検索するための要求を発する。要求されたオブジェクトは、サーバ・クラスタ180のサーバ182及び184のうちの一つに格納されるか当該サバによって発生されるか又は取り出される。クライアント110によって発行された要求は、ネットワーク150経由でネットワーク・ディスパッチャー160に転送される。次に、ネットワーク・ディスパッチャー160は、第一のキャッシュ、例えば、キャッシュアレイ170のキャッシュメンバー172を選択する。ここで、ネットワーク・ディスパッチャー160によって選択された第一のキャッシュ・メンバー172、要求されたオブジェクトの最初の所有者ではないと仮定すると、キャッシュ・メンバー・ミスが生じる。ネットワーク・ディスパッチャー160は、n個のキャッシュ・メンバを備えた)キャッシュ・アレイ170の第一のメンバーをランダムに(一様に分散して)選択するから、キャッシュ・メンバー・ミスの確率は(n−1)/nである。
【0044】
図5は、第二のキャッシュ、例えば、キャッシュ・メンバー176が要求されたオブジェクトの最初の所有者であり、キャッシュ・メモリ内に要求されたオブジェクトを有する状況を示す(キャッシュ・アレイ・ヒット)。この状況では、第一のキャッシュ172はクライアント110との接続を受け入れることができる次に、第一のキャッシュ172は、第二のキャッシュ176を識別して、HTTPインターフェースを確立することができる。第一のキャッシュ172及び第二のキャッシュ176はHTTPインターフェース経由で要求されたオブジェクトを検索するために通信することができる。第二のキャッシュ176はキャッシュメモリから要求されたオブジェクトを検索した後、これを第一のキャッシュ172に送信することができる次に、第一のキャッシュ172は、要求されたオブジェクトをネットワーク150経由でクライアント110に送することができる
【0045】
図6は、第二のキャッシュが176が、キャッシュ・メモリ内に要求されたオブジェクトを有ていない状況を示す(キャッシュ・アレイ・ミス)。この状況では、第二のキャッシュ176は、最初に、要求されたオブジェクトをサーバー184から検索した後、これを第一のキャッシュ172に送信することができる次に、第一のキャッシュ172は、要求されたオブジェクトをネットワーク150経由でクライアント110に送信することができる
【0046】
キャッシュ・メンバー・ミス−UDPインターフェース
図5は、第二のキャッシュ、例えば、キャッシュ・メンバー176が要求されたオブジェクトの最初の所有者であり、キャッシュ・メモリ内に要求されたオブジェクトを有する状況を示す(キャッシュ・アレイ・ヒット)。この状況では、第一のキャッシュ172はクライアント110との接続を受け入れることができる次に、第一のキャッシュ172は、第二のキャッシュ176を識別して、UDPインターフェースを確立することができる。第一のキャッシュ172及び第二のキャッシュ176は、UDPインターフェース経由で要求されたオブジェクトを検索するために通信することができる。第二のキャッシュ176は、キャッシュ・メモリから要求されたオブジェクトを検した後、これを第一のキャッシュ172に送信することができる次に、第一のキャッシュ172は、要求されたオブジェクトをネットワーク150経由でクライアント110に送信することができる
【0047】
図6は、第二のキャッシュ176がキャッシュメモリ内に要求されたオブジェクトをていない状況を示す(キャッシュ・アレイ・ミス)。この状況では、第二のキャッシュ176は、最初に、要求されたオブジェクトをサーバ184から検した後、これを第一のキャッシュ172に送信することができる。次に、第一のキャッシュ172は、要求されたオブジェクトをネットワーク150経由でクライアント110に送信することができる
【0048】
UDPインターフェースは、付随的なオーバーヘッドを有するTCP接続を避け得るために、HTTPインターフェースよりも優れた性能を有することがある
【0049】
キャッシュ・メンバー・ミス−ハンドオフ・インターフェース
図7及び図8は、本発明の代表的な実施例に基づいたキャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。クライアント110は、ネットワーク150経由でオブジェクトを検索するための要求を発する。要求されたオブジェクトは、サーバ・クラスタ180のサーバ182及び184のうちの一つに格納されるか、当該サーバによって発生されるか又は取り出される。クライアント110によって発行された要求は、ネットワーク150経由でネットワーク・ディスパッチャー160に転送される。次に、ネットワーク・ディスパッチャー160は、第一のキャッシュ、例えば、キャッシュアレイ170のキャッシュメンバー172を選択する。ここで、ネットワーク・ディスパッチャー160によって選択された第一のキャッシュ・メンバー172、要求されたオブジェクトの最初の所有者ではないと仮定すると、キャッシュ・メンバー・ミスが生じる。
【0050】
図7は、第二のキャッシュ、例えば、キャッシュ・メンバー176が要求されたオブジェクトの最初の所有者であり、キャッシュメモリ内要求されたオブジェクトを有する状況を示す(キャッシュ・アレイ・ヒット)。この状況では、第一のキャッシュ172は、要求(例えば、TCP接続情報とともに第二のキャッシュ176にハンドオフする次に、第二のキャッシュ176は、キャッシュメモリから要求されたオブジェクトを検索した後、これをクライアント110に送することができる
【0051】
図8は、第二のキャッシュ176が、キャッシュメモリ内に要求されたオブジェクトを有ていない状況を示す(キャッシュ・アレイ・ミス)。この状況では、第一のキャッシュ172は、要求を(例えば、TCP接続情報とともに)第二のキャッシュ176にハンドオフする。第二のキャッシュ176は、最初に、要求されたオブジェクトをサーバ184から検索した後、これをクライアント110に送することができる
【0052】
キャッシュ・アレイ170は、ハンドオフを支援するつかの機能手段を備えている。
第一に、キャッシュ・アレイ170のてのキャッシュ・メンバーは、一つのクラスタ・アドレス(例えば一つのIPアドレス)を使用してアドレスされ得る。その結果第一のキャッシュ172及び第二のキャッシュ176は、両方ともクラスタ・アドレスに対応する要求を受け入れて、クライアント110に応答することができる
第二に例えばTCPカーネル拡張のような機構を設けることにより、(第一のTCPスタックを用い)第一のキャッシュ172から(第二のTCPスタックを用い)第二のキャッシュ176へのハンドオフが可能となる
このハンドオフの間、第一のキャッシュ172と第二のキャッシュ176との間のUDPインターフェースを用いることにより、接続情報を転送することができる。UDPインターフェースをこのように用いると、性能の改善に役に立つ場合がある。
第三に、TCPインターフェース機能とともに、HTTP要求を第一のキャッシュ172から第二のキャッシュ176へハンドオフするための追加の機構を実現することができる
第四に、ネットワーク・ディスパッチャー160を用いて、TCPハンドオフを支援することができる
TCP/HTTP接続が第一のキャッシュ172から第二のキャッシュ176ハンドオフされる場合、(クライアントからサーバへの)接続の流れが、第二のキャッシュ176(接続の新しい所有者)を確実に通過するようにすることが望ましい。後続パケットが第一のキャッシュの代わりに第二のキャッシュ176に送られるように、第一のキャッシュ172又は第二のキャッシュ176は、ネットワーク・ディスパッチャー160に対し、その情報を更新するように指示することができる
【0053】
ハンドオフ・インターフェースのオーバーヘッドは、UDPインターフェースのそれより高い場合がある。しかし、UDP又はHTTPインターフェースの性能はオブジェクト・サイズ加するのに応じて実質的に減少し得る。UDP又はHTTPインターフェース異なり、ハンドオフ・インターフェースの性能は、オブジェクト・サイズの増加に対しそれほど敏感ではない。オブジェクト・サイズの増加に対するハンドオフ・インターフェースの性能の感度は、キャッシュ・メンバー・ヒットの場合のオブジェクト・サイズの増加に対する性能の感度とほぼ同様である。従って相対的に大きオブジェクトについては、ハンドオフ・インターフェースを用い、相対的に小さいオブジェクトについては、UDPインターフェース、HTTPインターフェース又は他のインターフェースを用いることにより、性能を改善することができる
【0054】
キャッシュ・メンバー・ミス−混合モデル
いられるインターフェースのタイプ(例えばUDP又はハンドオフ)は、要求されたオブジェクトのサイズに基づいて選択され得る。サイズの値は、当該サイズ閾り小さいオブジェクトについては、一つのタイプのインターフェース(例えばUDPインターフェース)を用いるとともに、当該サイズ閾値より大きいオブジェクトについては、他のタイプのインターフェース(例えばハンドオフ・インターフェース)を用いることにより、性能が結果的に改善されるようにしてこれを決定することができる。サイズ閾値は、例えば、与えられたコンピュータ・ネットワーク及びシステムのスループットを測定することから、これを決定することができる。
【0055】
例えば、UDPインターフェースは、2キロバイトより小さい要求されたオブジェクトについて選択可能であり、ハンドオフ・インターフェースは2キロバイトより大きな要求されたオブジェクトについて選択可能である。例えば、図1を参照しつつ、クライアント110が、サーバ186に格納されるか又はサーバ186によって発生され若しくは取り出されるオブジェクトを要求するものと仮定する。さらにキャッシュ・メンバー178が要求されたオブジェクトの最初の所有者であると仮定する。この場合、以下の代表的な手段が適用され得る。
1.ネットワーク・ディスパッチャー160によって選択された第一のキャッシュ、すなわちキャッシュ・メンバー172が、要求及び例えばTCP接続情報を、第二のキャッシュ178に送信する。
2.第二のキャッシュ178は、要求されたオブジェクトのサイズを決定することができる。要求されたオブジェクトのサイズは、キャッシュ・メモリから決定することができ、又はオブジェクトがキャッシュ・メモリ内に存在しない場合にはサーバ186と接続することによって決定することができる
3.要求されたオブジェクトのサイズがサイズ閾値より小さい場合、第二のキャッシュ178は、要求されたオブジェクトを第一のキャッシュ172に送信し得る。次に、第一のキャッシュ172は、要求されたオブジェクトをクライアント110に送信することができる。
4.要求されたオブジェクトのサイズがサイズ閾値より大きい場合、第一のキャッシュ172と第二のキャッシュ178との間のハンドオフ、例えばTCP/HTTPハンドオフを実行することができる。次に、第二のキャッシュ178は、要求されたオブジェクトをキャッシュメモリ又はサーバ187のいずれかから検索した後、これをクライアント110に送信することができる。
【0056】
内容基準ルーティング
この場合、図1のネットワーク・ディスパッチャー160は、図9の内容基準ルータ165として機能する。特に、特別モードで処理する図3乃至図8の例えばネットワーク・ディスパッチャー160のようなネットワーク・ディスパッチャーは、内容基準ルータ165として機能することができる。求されたオブジェクトのアドレス(例えばURL)は、例えば、ハッシュ関数を用いてキャッシュ・アレイ170のキャッシュ・ノード172、174、176及び178の間で区分され得る。言い換えれば、ハッシュ関数は、キャッシュ・ノードと要求されたオブジェクトとの間の対応関係を形成するために用いることができる。要求されたオブジェクトのアドレスはハッシュされ得る。ハッシュ関数の出力は、要求されたオブジェクトを格納しているか、これを発生するか又は取り出す1以上のサーバと関連づけられたキャッシュ・ノードである。言い換えると、ハッシュ関数の出力は、要求されたオブジェクトの最初の所有者であるキャッシュ・メンバーであり得る。このことは、キャッシュ・ノードとサーバとの間特別な関係があることを必ずしも意味しない。しかし、他の選択肢として、一つのそのような関係が存在してもよい。
【0057】
クライアント110、120及び130のようなクライアントがオブジェクトの検索を要求する場合、内容基準ルータ165は、選択されたキャッシュ・ノードに対し、この要 求を例えばTCP接続情報とともにハンドオフすることができる。内容基準基準ルータ165によって選択されたキャッシュ・ノードは、要求されたオブジェクトの最初の所有者である。次に、選択されたキャッシュ・ノードは、キャッシュメモリ又はそれに関連づけられたサーバのいずれかから要求されたオブジェクトを検索した後、これをネットワーク150経由で要求元のクライアントに送信し得る。
【0058】
特別のモードで動作しているネットワーク・ディスパッチャーは、内容基準ルータとして機能し得るので、かかるネットワーク・ディスパッチャーは、内容基準ルーティング及び非内容基準ルーティングの組み合わせを用いて要求を経路指定することが可能である。容基準ルーティングが用いられる場合、内容基準ルーター165として動作しているネットワーク・ディスパッチャー160は、クライアントによって送信された要求を検査することにより、どのキャッシュ・ノードが要求されたオブジェクトの最初の所有者であるを決定することができる。内容基準ルーティングはキャッシュ・メンバー・ミスを回避するので、内容基準ルーティングはキャッシュ・アレイによって費やされるプロセッサ・サイクルを低減することができる。しかし、内容基準ルーティングは、内容基準ルーター165として動作しているネットワーク・ディスパッチャー160によるプロセッサ・サイクルの消費を増加させることがあるというのは、内容基準ルーティング・モードで動作しているネットワーク・ディスパッチャー160はクライアントとの接続を確立することを必要とするからである。
【0059】
内容基準ルータ165の使用は、それがシステムのボトルネックにならないという限りにおいて、有利であり得る。例えば、IBM社の2216ルータによって実現される内容基準ルータは、毎秒10000より少ない要求がなされる場合は、ボトルネックにならない。しかし、毎秒10000を超える要求が静的に又は動的になされる場合には、IBM社の2216ルータをネットワーク・ディスパッチャーとして動作させる方が有利である。代替的に、統合されたキャッシュを有する内容基準ルータを用いることができる。システムの負荷が相対的に低いか中程度である場合には、内容基準ルータは統合されたキャッシュを用い要求をサービスできる。システムの負荷が相対的に高い場合には、ルータは、ネットワーク・ディスパッチャーの機能を回復できる。
【0060】
例えば、IBM社の2216ルータはネットワーク・ディスパッチャーとして毎秒約1,5000程度の要求を経路指定することができる。キャッシュ・ノードとして動作するIBM社の2216ルータほぼ100パーセントのキャッシュ・レートで毎秒約5,000のオブジェクトをサービスする能力がある。ハンドオフを伴う内容基準ルータとして動作するIBM社の2216ルータは、毎秒で約5,000/0.5=10,000の要求をサービスすることができる。
【0061】
えば図3乃至図8に示した本発明の実施例の変形では、ネットワーク・ディスパッチャ160によってキャッシュ・アレイ170に経指定され要求のある割合、内容基準ルーティング・モードで処理することができる。内容基準ルーティングを用いる場合、キャッシュ・アレイ170のオーバーヘッドは少なくなり得るがネットワーク・ディスパッチャー160ではより多くのオーバーヘッドが生じ得る。内容基準ルーティングが使用される要求の割合は、ネットワーク・ディスパッチャー及びキャッシュ・アレイ資源の利用度をバランスさせるように選択することができる。さらなる変形として、内容基準ルーティング・モードを使用して経路指定される要求の割合を、ボトルネックになるキャッシュ・アレイ170に応じて増加させてもよい。一方、ボトルネックになるネットワーク・ディスパッチャー160に応じて、内容基準ルーティングを用いて経路指定される要求の割合、減少さるようにしてもよい。
【0062】
他の選択肢として、例えば図1のネットワーク・ディスパッチャー160のようなネットワーク・ディスパッチャーの機能がキャッシュ・ノードの中に統合されるようにしてもよい。
【0063】
当業者は、前記実施例の応用を考えることができる。例えば、第1のノードは、クライアントの要求を、要求されたオブジェクトが属している区分の最初の所有者に方向付ける必要はない。最初の所有者が過負荷である場合、要求は、第二のノードに送られるようにしてもよい。第二のノードは、要求されたオブジェクトを第一のノードに送り返すようにしてもよい。或いは、第二のノードは、要求されたオブジェクトをクライアントに直接的に送り返すようにしてもよい。要求がサーバー・ノードにハンドオフされるようにするのも、選択肢の一つである。
【図面の簡単な説明】
【図1】本発明の実施例に基づくコンピュータ・ネットワーク・システムを示すブロック図である。
【図2】本発明の実施例に基づく要求されたオブジェクトを検索する方法を示すフローチャートである。
【図3】本発明の実施例に基づくキャッシュ・メンバー・ヒット及びキャッシュ・アレ・ヒットの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図4】本発明の実施例に基づくキャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図5】本発明の実施例に基づくキャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図6】本発明の実施例に基づくキャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図7】本発明の実施例に基づくキャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図8】本発明の実施例に基づくキャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図9】本発明の実施例に基づく内容基準ルーティングの場合に、要求されたオブジェクトを検索する方法を示すブロック図である。
【符号の説明】
110〜130 クライアント
150 ネットワーク
160 ネットワーク・ディスパッチャー
170 キャッシュ・アレイ
172〜178 キャッシュ
180 サーバ・クラスタ
182〜188 サーバ

Claims (5)

  1. 複数のキャッシュ・ノードから構成され且つ単一のキャッシュ・イメージを有するキャッシュ・アレイを備え、一以上のクライアントから複数のオブジェクトに対する複数の要求を受け取るのに適合したシステムにおいて、前記複数のオブジェクトのうち要求された1つのオブジェクトを検索する方法であって、
    (a)一の前記クライアントから一の前記要求を送信するステップと、
    (b)前記一のノードから送信された前記要求をネットワーク・ディスパッチャによって受け取るステップと、
    (c)前記ネットワーク・ディスパッチャによって受け取られた前記要求を、前記キャッシュ・アレイのうちの前記ネットワーク・ディスパッチャによって選択された第1のキャッシュ・ノードに転送するステップと、
    (d)前記第1のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者(ここで、一のキャッシュ・ノードが一のオブジェクトの最初の所有者であるとは、当該キャッシュ・ノードと当該オブジェクトの間に対応関係を形成するように、当該当該オブジェクトが当該キャッシュ・ノードに割り振られていることをいう。以下同じ。)であるか否かを決定するステップと、
    (e)前記第1のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者であれば、前記第1のキャッシュ・ノードから、前記要求されたオブジェクトを前記一のクライアントに送り返すステップと、
    )前記第1のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者でなければ、前記要求されたオブジェクトの最初の所有者である前記キャッシュ・アレイのうちの第2のキャッシュ・ノードを識別するとともに、前記要求を前記1のキャッシュ・ノードから前記第2のキャッシュ・ノードに転送するステップと、
    前記要求されたオブジェクトのサイズが予定のサイズより小さければ、前記要求されたオブジェクトをその最初の所有者である前記第2のキャッシュ・ノードから記第1のキャッシュ・ノードに、続いて、前記第1のキャッシュ・ノードから前記一のクライアントに送り返し、他方、前記要求されたオブジェクトのサイズが予定のサイズより大きければ、前記要求されたオブジェクトをその最初の所有者である前記第2のキャッシュ・ノードから前記一のクライアントに送り返すステップとを含む、方法。
  2. さらに、前記キャッシュ・アレイが前記要求されたオブジェクトのキャッシュされたコピーを有しないことに応じて、前記要求をバックエンド・サーバに送るステップを含む、請求項1記載の方法。
  3. さらに、前記オブジェクトの所有権を前記複数のキャッシュ・ノード間で区分するステップを含む、請求項1記載の方法。
  4. 前記複数のオブジェクトのうちの任意の1つのオブジェクトが、高々1つの所有者を有する、請求項記載の方法。
  5. 前記複数のオブジェクトの任意の1つのオブジェクトが、複数の所有者を有する、請求項記載の方法。
JP32956799A 1998-11-20 1999-11-19 要求されたオブジェクトを検索する方法 Expired - Fee Related JP3595470B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/196,944 US6490615B1 (en) 1998-11-20 1998-11-20 Scalable cache
US09/196944 1998-11-20

Publications (2)

Publication Number Publication Date
JP2000187609A JP2000187609A (ja) 2000-07-04
JP3595470B2 true JP3595470B2 (ja) 2004-12-02

Family

ID=22727397

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32956799A Expired - Fee Related JP3595470B2 (ja) 1998-11-20 1999-11-19 要求されたオブジェクトを検索する方法

Country Status (4)

Country Link
US (1) US6490615B1 (ja)
EP (1) EP1003100A3 (ja)
JP (1) JP3595470B2 (ja)
CN (1) CN1151448C (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192408B1 (en) * 1997-09-26 2001-02-20 Emc Corporation Network file server sharing local caches of file access information in data processors assigned to respective file systems
JP3451981B2 (ja) * 1999-04-30 2003-09-29 日本電気株式会社 インターネットのホームページデータ収集方法
US6792463B1 (en) * 1999-10-21 2004-09-14 International Business Machines Corporation System, method and program product for providing invisibility to a proxy-server
JP3463803B2 (ja) * 1999-11-09 2003-11-05 松下電器産業株式会社 クラスタサーバ装置
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US20030237016A1 (en) * 2000-03-03 2003-12-25 Johnson Scott C. System and apparatus for accelerating content delivery throughout networks
US7020719B1 (en) * 2000-03-24 2006-03-28 Netli, Inc. System and method for high-performance delivery of Internet messages by selecting first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
US7162542B2 (en) * 2000-04-13 2007-01-09 Intel Corporation Cascading network apparatus for scalability
WO2001080024A2 (en) * 2000-04-17 2001-10-25 Circadence Corporation Gateway buffer prioritization
US7395348B1 (en) * 2000-06-05 2008-07-01 Cisco Technology, Inc. Network cache-based content routing
US6947977B1 (en) 2000-06-09 2005-09-20 Metadigm Llc Scalable transaction system for a network environment
CA2424568A1 (en) * 2000-10-02 2002-04-11 Learning Tree International Inc. Method and system for hands-on e-learning
US20030046394A1 (en) * 2000-11-03 2003-03-06 Steve Goddard System and method for an application space server cluster
US20020055983A1 (en) * 2000-11-03 2002-05-09 The Board Of Regents Of The University Of Nebraska Computer server having non-client-specific persistent connections
US20020055982A1 (en) * 2000-11-03 2002-05-09 The Board Of Regents Of The University Of Nebraska Controlled server loading using L4 dispatching
US7216154B1 (en) * 2000-11-28 2007-05-08 Intel Corporation Apparatus and method for facilitating access to network resources
JP2003122658A (ja) * 2001-10-11 2003-04-25 Hitachi Ltd データ配送方法
US20030079027A1 (en) 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
CA2410172A1 (en) * 2001-10-29 2003-04-29 Jose Alejandro Rueda Content routing architecture for enhanced internet services
CN101600236B (zh) 2002-05-10 2013-12-04 美商内数位科技公司 允许伺服无线网络控制器控制b节点清除的***
US20030233470A1 (en) * 2002-06-12 2003-12-18 International Business Machines Corporation Network storage data redirection
US6954798B2 (en) * 2002-08-28 2005-10-11 Matsushita Electric Works, Ltd. Content-based routing of data from a provider to a requestor
US8230090B2 (en) * 2002-09-11 2012-07-24 Broadcom Corporation System and method for TCP offloading and uploading
US7765196B2 (en) * 2003-06-23 2010-07-27 Dell Products L.P. Method and apparatus for web cache using database triggers
US7539727B2 (en) * 2003-07-01 2009-05-26 Microsoft Corporation Instant messaging object store
US7363378B2 (en) * 2003-07-01 2008-04-22 Microsoft Corporation Transport system for instant messaging
US7299334B2 (en) * 2003-07-15 2007-11-20 Xiv Ltd. Storage system configurations
US7827353B2 (en) * 2003-07-15 2010-11-02 International Business Machines Corporation Self healing memory
US7293156B2 (en) * 2003-07-15 2007-11-06 Xiv Ltd. Distributed independent cache memory
US20050015546A1 (en) * 2003-07-15 2005-01-20 Ofir Zohar Data storage system
US7614071B2 (en) * 2003-10-10 2009-11-03 Microsoft Corporation Architecture for distributed sending of media data
WO2005050468A1 (en) * 2003-10-22 2005-06-02 International Business Machines Corporation Connection management method, system, and program product
US7447797B2 (en) * 2003-10-29 2008-11-04 International Business Machines Corporation Method and system for processing a service request associated with a particular priority level of service in a network data processing system using parallel proxies
US8171084B2 (en) * 2004-01-20 2012-05-01 Microsoft Corporation Custom emoticons
US8234414B2 (en) 2004-03-31 2012-07-31 Qurio Holdings, Inc. Proxy caching in a photosharing peer-to-peer network to improve guest image viewing performance
US20060064482A1 (en) * 2004-09-21 2006-03-23 Nybo Chad A System and method for caching data and filtering data requests in a client application
US7433700B2 (en) * 2004-11-12 2008-10-07 Microsoft Corporation Strategies for peer-to-peer instant messaging
US7698386B2 (en) * 2004-11-16 2010-04-13 Qurio Holdings, Inc. Serving content from an off-line peer server in a photosharing peer-to-peer network in response to a guest request
CN100458776C (zh) * 2005-01-13 2009-02-04 龙搜(北京)科技有限公司 网络缓存管理的***和方法
EP1842354B1 (en) * 2005-01-24 2014-11-05 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US20060195532A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Client-side presence documentation
US7529255B2 (en) * 2005-04-21 2009-05-05 Microsoft Corporation Peer-to-peer multicasting using multiple transport protocols
US8688801B2 (en) 2005-07-25 2014-04-01 Qurio Holdings, Inc. Syndication feeds for peer computer devices and peer networks
US8447828B2 (en) * 2005-09-21 2013-05-21 Qurio Holdings, Inc. System and method for hosting images embedded in external websites
US8005889B1 (en) 2005-11-16 2011-08-23 Qurio Holdings, Inc. Systems, methods, and computer program products for synchronizing files in a photosharing peer-to-peer network
US20070112938A1 (en) * 2005-11-17 2007-05-17 Nokia Corporation Intermediary, source and methods for sharing content
US8788572B1 (en) 2005-12-27 2014-07-22 Qurio Holdings, Inc. Caching proxy server for a peer-to-peer photosharing system
US9390019B2 (en) * 2006-02-28 2016-07-12 Violin Memory Inc. Method and apparatus for providing high-performance and highly-scalable storage acceleration
US20080091868A1 (en) * 2006-10-17 2008-04-17 Shay Mizrachi Method and System for Delayed Completion Coalescing
US7904470B2 (en) * 2007-06-13 2011-03-08 Sap Ag Discovery service for electronic data environment
US7925782B2 (en) * 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US20110106883A1 (en) * 2008-07-01 2011-05-05 Ajay Gupta Remote computing services
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
US8135840B2 (en) * 2008-11-20 2012-03-13 At&T Intellectual Property I, Lp Systems and methods for directing content requests to servers
KR101139754B1 (ko) * 2009-07-23 2012-04-26 주식회사 아라기술 미러링 기반의 데이터 캐시를 이용하여 분산된 사용자들에게 정보를 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
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
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
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
US20110153953A1 (en) * 2009-12-23 2011-06-23 Prakash Khemani Systems and methods for managing large cache services in a multi-core system
WO2011079467A1 (zh) 2009-12-31 2011-07-07 华为技术有限公司 分布式缓存资源调度的方法、装置及***
KR101211207B1 (ko) * 2010-09-07 2012-12-11 엔에이치엔(주) 캐시 클라우드 구조를 이용한 캐시 시스템 및 캐싱 서비스 제공 방법
US8402112B2 (en) 2011-01-14 2013-03-19 Microsoft Corporation Inter-cache communication using HTTP resource
US8612550B2 (en) 2011-02-07 2013-12-17 Microsoft Corporation Proxy-based cache content distribution and affinity
US20120297009A1 (en) * 2011-05-18 2012-11-22 Oversi Networks Ltd. Method and system for cahing in mobile ran
JP5835015B2 (ja) * 2012-02-29 2015-12-24 富士通株式会社 分散キャッシュについてのシステム、プログラム及び方法
US9031891B2 (en) 2012-09-27 2015-05-12 Amadeus S.A.S. Computing system and method for controlling the execution of a decision process to maintain the data access efficiency upon receipt of an availability information inquiry
AU2013324640B2 (en) * 2012-09-27 2016-01-28 Amadeus S.A.S. System and method for load distribution in a network
US9246998B2 (en) 2012-10-16 2016-01-26 Microsoft Technology Licensing, Llc Load balancer bypass
CA2896123C (en) * 2012-12-28 2018-02-13 Huawei Technologies Co., Ltd. Caching method for distributed storage system, a lock server node, and a lock client node
CN103064979A (zh) * 2013-01-15 2013-04-24 中兴通讯股份有限公司 一种路由器处理网页数据的方法以及路由器
US9652270B2 (en) * 2014-03-21 2017-05-16 Intel Corporation Apparatus and method for virtualized computing
US11470176B2 (en) * 2019-01-29 2022-10-11 Cisco Technology, Inc. Efficient and flexible load-balancing for clusters of caches under latency constraint
CN110046309A (zh) * 2019-04-02 2019-07-23 北京字节跳动网络技术有限公司 文档输入内容的处理方法、装置、电子设备和存储介质
CN112787993A (zh) * 2020-12-25 2021-05-11 北京金万维科技有限公司 一种基于udp协议高并发http请求缓存和内容推送***及方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503501A (en) 1981-11-27 1985-03-05 Storage Technology Corporation Adaptive domain partitioning of cache memory space
JPH05122274A (ja) * 1991-10-24 1993-05-18 Matsushita Electric Ind Co Ltd 統合文書フアイル転送方法
US5511208A (en) * 1993-03-23 1996-04-23 International Business Machines Corporation Locating resources in computer networks having cache server nodes
US5845280A (en) * 1995-09-25 1998-12-01 Microsoft Corporation Method and apparatus for transmitting a file in a network using a single transmit request from a user-mode process to a kernel-mode process
US5987510A (en) * 1995-11-10 1999-11-16 Kabushiki Kaisha Toshiba Method for transferring files according to file list provided in response to file request
JPH09277624A (ja) * 1996-04-09 1997-10-28 Ricoh Co Ltd 画像形成装置
US5842216A (en) 1996-05-03 1998-11-24 Mitsubishi Electric Information Technology Center America, Inc. System for sending small positive data notification messages over a network to indicate that a recipient node should obtain a particular version of a particular data item
JPH1021174A (ja) * 1996-07-01 1998-01-23 Ricoh Co Ltd データ転送システム
JP3481054B2 (ja) * 1996-07-04 2003-12-22 シャープ株式会社 ゲートウェイ装置、クライアント計算機およびそれらを接続した分散ファイルシステム
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5809250A (en) 1996-10-23 1998-09-15 Intel Corporation Methods for creating and sharing replayable modules representive of Web browsing session
US6012126A (en) * 1996-10-29 2000-01-04 International Business Machines Corporation System and method for caching objects of non-uniform size using multiple LRU stacks partitions into a range of sizes
US5915088A (en) * 1996-12-05 1999-06-22 Tandem Computers Incorporated Interprocessor messaging system
US5999979A (en) * 1997-01-30 1999-12-07 Microsoft Corporation Method and apparatus for determining a most advantageous protocol for use in a computer network
SE9700622D0 (sv) * 1997-02-21 1997-02-21 Ericsson Telefon Ab L M Anordning och metod vid datanät
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
JPH1153322A (ja) * 1997-07-31 1999-02-26 Nippon Telegr & Teleph Corp <Ntt> オブジェクト探索取得方法並びに探索サーバ及び記録媒体
US6122666A (en) * 1998-02-23 2000-09-19 International Business Machines Corporation Method for collaborative transformation and caching of web objects in a proxy network
US6341311B1 (en) * 1998-05-29 2002-01-22 Microsoft Corporation Directing data object access requests in a distributed cache
US6377991B1 (en) * 1998-05-29 2002-04-23 Microsoft Corporation Method, computer program product, and system for migrating URLs within a dynamically changing distributed cache of URLs
US6212565B1 (en) * 1998-08-26 2001-04-03 Sun Microsystems, Inc. Apparatus and method for improving performance of proxy server arrays that use persistent connections
US6438652B1 (en) * 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request

Also Published As

Publication number Publication date
CN1151448C (zh) 2004-05-26
JP2000187609A (ja) 2000-07-04
EP1003100A2 (en) 2000-05-24
EP1003100A3 (en) 2006-07-26
US6490615B1 (en) 2002-12-03
CN1259704A (zh) 2000-07-12

Similar Documents

Publication Publication Date Title
JP3595470B2 (ja) 要求されたオブジェクトを検索する方法
US6622157B1 (en) Extending network services using mobile agents
US7908337B2 (en) System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7565450B2 (en) System and method for using a mapping between client addresses and addresses of caches to support content delivery
US7725596B2 (en) System and method for resolving network layer anycast addresses to network layer unicast addresses
US7577754B2 (en) System and method for controlling access to content carried in a caching architecture
US7343422B2 (en) System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
US6598048B2 (en) Distributed system and method for prefetching objects
RU2549135C2 (ru) Система и способ для обеспечения более быстрой и более эффективной передачи данных
US6542964B1 (en) Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US7725598B2 (en) Network cache-based content routing
US20050097185A1 (en) Localization link system
US20020002602A1 (en) System and method for serving a web site from multiple servers
US20080183838A1 (en) Method, system and computer program product for delivering data to a storage buffer assigned to an application
JP2004535631A (ja) 通信ネットワークからユーザへ情報を送る時間を減らすシステムと方法
JP2002288058A (ja) 高性能クライアントサーバ通信システム
JP2002334012A (ja) サービス要求処理方法及びその実施システム並びにその処理プログラムと記録媒体
EP1277327B1 (en) System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
WO2000019682A1 (en) An apparatus and method for improving performance of proxy arrays that use persistent connections
WO2001084802A2 (en) System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
Wei et al. Load balancing on the Internet
WO2001084803A2 (en) System and method for resolving network layer anycast addresses to network layer unicast addresses

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040721

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: 20040831

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040903

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080910

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090910

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100910

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110910

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120910

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees