JP3595470B2 - 要求されたオブジェクトを検索する方法 - Google Patents
要求されたオブジェクトを検索する方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1019—Random or heuristic server selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol 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
【発明が属する技術分野】
本発明はキャッシュ・システムに係り、特に、本発明はコンピュータ・ネットワーク内で拡張が容易で高い利用価値があるキャッシュに関する。さらに本発明は、特にワールド・ワイド・ウェブ(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】
プロキシ・サーバ
LANの送受の対象であるインターネット・トラフィックを制御する装置であり、他の機能を提供することもできる。例えば文書キャッシング及びアクセス制御である。プロキシ・サーバは、人気のあるウェブ・ページのように、頻繁に要求されたデータを供給することによって性能を改善することができ、所有者が適切でないと考える要求(例えば、所有権を主張できる専有ファイルへの権限のないアクセス要求)をフィルタしたり削除したりすることができる。
【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は、サーバ・クラスタ180と関連づけられたキャッシュ・アレイ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つのオブジェクトを検索する方法であって、
(a)一の前記クライアントから一の前記要求を送信するステップと、
(b)前記一のノードから送信された前記要求をネットワーク・ディスパッチャによって受け取るステップと、
(c)前記ネットワーク・ディスパッチャによって受け取られた前記要求を、前記キャッシュ・アレイのうちの前記ネットワーク・ディスパッチャによって選択された第1のキャッシュ・ノードに転送するステップと、
(d)前記第1のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者(ここで、一のキャッシュ・ノードが一のオブジェクトの最初の所有者であるとは、当該キャッシュ・ノードと当該オブジェクトの間に対応関係を形成するように、当該当該オブジェクトが当該キャッシュ・ノードに割り振られていることをいう。以下同じ。)であるか否かを決定するステップと、
(e)前記第1のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者であれば、前記第1のキャッシュ・ノードから、前記要求されたオブジェクトを前記一のクライアントに送り返すステップと、
(f)前記第1のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者でなければ、前記要求されたオブジェクトの最初の所有者である前記キャッシュ・アレイのうちの第2のキャッシュ・ノードを識別するとともに、前記要求を前記第1のキャッシュ・ノードから前記第2のキャッシュ・ノードに転送するステップと、
(g)前記要求されたオブジェクトのサイズが予定のサイズより小さければ、前記要求されたオブジェクトをその最初の所有者である前記第2のキャッシュ・ノードから前記第1のキャッシュ・ノードに、続いて、前記第1のキャッシュ・ノードから前記一のクライアントに送り返し、他方、前記要求されたオブジェクトのサイズが予定のサイズより大きければ、前記要求されたオブジェクトをその最初の所有者である前記第2のキャッシュ・ノードから前記一のクライアントに送り返すステップとを含む、方法。 - さらに、前記キャッシュ・アレイが前記要求されたオブジェクトのキャッシュされたコピーを有しないことに応じて、前記要求をバックエンド・サーバに送るステップを含む、請求項1記載の方法。
- さらに、前記オブジェクトの所有権を前記複数のキャッシュ・ノード間で区分するステップを含む、請求項1記載の方法。
- 前記複数のオブジェクトのうちの任意の1つのオブジェクトが、高々1つの所有者を有する、請求項3記載の方法。
- 前記複数のオブジェクトの任意の1つのオブジェクトが、複数の所有者を有する、請求項5記載の方法。
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)
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)
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 |
-
1998
- 1998-11-20 US US09/196,944 patent/US6490615B1/en not_active Expired - Fee Related
-
1999
- 1999-10-27 CN CNB991231724A patent/CN1151448C/zh not_active Expired - Fee Related
- 1999-11-09 EP EP99308937A patent/EP1003100A3/en not_active Withdrawn
- 1999-11-19 JP JP32956799A patent/JP3595470B2/ja not_active Expired - Fee Related
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 |