(57)【特許請求の範囲】
【請求項１】
複数のキャッシュ・ノードから構成され且つ単一のキャッシュ・イメージを有するキャッシュ・アレイを備え、一以上のクライアントから複数のオブジェクトに対する複数の要求を受け取るのに適合したシステムにおいて、前記複数のオブジェクトのうち要求された１つのオブジェクトを検索する方法であって、
（ａ）一の前記クライアントから一の前記要求を送信するステップと、
（ｂ）前記一のノードから送信された前記要求をネットワーク・ディスパッチャによって受け取るステップと、
（ｃ）前記ネットワーク・ディスパッチャによって受け取られた前記要求を、前記キャッシュ・アレイのうちの前記ネットワーク・ディスパッチャによって選択された第１のキャッシュ・ノードに転送するステップと、
（ｄ）前記第１のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者（ここで、一のキャッシュ・ノードが一のオブジェクトの最初の所有者であるとは、当該キャッシュ・ノードと当該オブジェクトの間に対応関係を形成するように、当該当該オブジェクトが当該キャッシュ・ノードに割り振られていることをいう。以下同じ。）であるか否かを決定するステップと、
（ｅ）前記第１のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者であれば、前記第１のキャッシュ・ノードから、前記要求されたオブジェクトを前記一のクライアントに送り返すステップと、
（ｆ）前記第１のキャッシュ・ノードが前記要求されたオブジェクトの最初の所有者でなければ、前記要求されたオブジェクトの最初の所有者である前記キャッシュ・アレイのうちの第２のキャッシュ・ノードを識別するとともに、前記要求を前記第１のキャッシュ・ノードから前記第２のキャッシュ・ノードに転送するステップと、
（ｇ）前記要求されたオブジェクトのサイズが予定のサイズより小さければ、前記要求されたオブジェクトをその最初の所有者である前記第２のキャッシュ・ノードから前記第１のキャッシュ・ノードに、続いて、前記第１のキャッシュ・ノードから前記一のクライアントに送り返し、他方、前記要求されたオブジェクトのサイズが予定のサイズより大きければ、前記要求されたオブジェクトをその最初の所有者である前記第２のキャッシュ・ノードから前記一のクライアントに送り返すステップとを含む、方法。
【請求項２】
さらに、前記キャッシュ・アレイが前記要求されたオブジェクトのキャッシュされたコピーを有しないことに応じて、前記要求をバックエンド・サーバに送るステップを含む、請求項１記載の方法。
【請求項３】
さらに、前記オブジェクトの所有権を前記複数のキャッシュ・ノード間で区分するステップを含む、請求項１記載の方法。
【請求項４】
前記複数のオブジェクトのうちの任意の１つのオブジェクトが、高々１つの所有者を有する、請求項３記載の方法。
【請求項５】
前記複数のオブジェクトの任意の１つのオブジェクトが、複数の所有者を有する、請求項５記載の方法。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明はキャッシュ・システムに係り、特に、本発明はコンピュータ・ネットワーク内で拡張が容易で高い利用価値があるキャッシュに関する。さらに本発明は、特にワールド・ワイド・ウェブ（ＷＷＷ）のようなクライアント／サーバ環境で使用されるキャッシュ・アレイに関する。
【０００２】
【従来の技術】
キャッシングは、コンピュータ・システムにおける性能を改善するのに用いられる。一旦、オブジェクトがキャッシュに格納されると、引き続いてキャッシュに入れられたオブジェクトの要求がキャッシュによって満足される場合がある。キャッシュからのオブジェクトの要求を満足させることは、遠隔地からオブジェクトを再生したり検索することよりもオーバーヘッドが少なくなりうる。ウェブ・サービスの成長する要求に関しての低い性能は、ウェブ・サーバーを非効率的にし利用しにくいものとする。
【０００３】
【発明が解決しようとする課題】
キャッシングは、ウェブ又はプロキシ・サーバに対してより大きくなっているスループットの要求に対して方法を提供するものである。ワールド・ワイド・ウェブ上のクライアント及びサーバのシステムは、例えば、性能を改善するためにキャッシングを用いることができる。幾つかの例では、キャッシュの利益がないとウェブ・サーバのアプリケーションは遅く非効率的に機能するかもしれない。キャッシング技術の利益なしには、ウェブ・サーバーはシステムの障害になるかもしれない。ウェブ・サーバ上で動く基本的なオペレーティング・システムは、例えば、ウェブ・サーバのスループットを妨げる能力上の問題を有するかもしれない。ウェブ・サーバの能力を改善する一つの技術は、頻繁に要求されたデータを記憶することである。キャッシュからのデータを検索することは、ウェブ・サーバからのデータを検索するよりもオーバーヘッドが少なくて済むであろう。
【０００４】
【課題を解決するための手段】
オブジェクトに対する要求が複数のノードを含むシステム内の一以上のクライアントから受け取られる。要求のうちの一つはクライアントの一つから送られる。要求は前記複数のノードの２番目のノードによって前記複数のノードの第一のノードから受け取られる。要求されたオブジェクトは、複数のプロトコルのうちの一つを用いて複数のノードの第二のノードから送り返される。拡大縮小ができ高い利用性のあるキャッシュ・アレイを応用することができる。キャッシュ・アレイは、性能と、インターネットのようなネットワークに接続されたウェブ・サーバの性能及びスループットを強化することができる。ネットワーク・ディスパッチャーは、キャッシュ・アレイのキャッシュ・ノードに要求を送ることができる。ネットワーク・ディスパッチャーによって選択されたキャッシュ・ノードは、要求に対するサービスを協力して行うために、要求へのサービス、キャッシュ・アレイの他のキャッシュ・ノードに対する要求のハンドオフ、又はキャッシュ・アレイの他のキャッシュ・ノードとともに種々のプロトコルのうちの一つを介しての通信のいずれかを行うことができる。特定のモードで動作しているネットワーク・ディスパッチャーは、内容基準ルータ（content based router）としても機能する。従って、ネットワーク・ディスパッチャーは、システムの性能をさらに改善するために、内容基準ルーティング（content based routing）又は非内容基準ルーティング（non-content based routing）の組み合わせを使用して要求を経路指定することも可能である。
【０００５】
【発明の実施の形態】
用語の解説
辞書の意味はここで用いられる用語の意味を暗示するが、以下の定義もまた助けとなり得る。
【０００６】
クライアント
クライアントとは、典型的には、命令や要求に関連づけられたタスクを実行する一以上のサーバに対して、その命令や要求を発行するクライアント・コンピュータをいう。
【０００７】
サーバ
サーバとは、一以上のクライアントからの要求や命令に関連するタスクを実行するコンピュータをいう。
【０００８】
ワールド・ワイド・ウェブ（ウェブ）
ワールド・ワイド・ウェブとは、サーバ間のハイパーリンクを提供することにより文書をリンクさせるインターネット・サービスをいう。ユーザは、強調された単語や興味あるフレーズ上をクリックすることにより文書間で「ジャンプ」したり（ハイパーテキスト・リンク）、アプレットや画像マップのようなグラフィクス上をクリックしたり、フォームを埋めたり、さらにはＵＲＬを入力することができる。文書がインターネット上のどこに格納されていようとも、ユーザは文書間で「ジャンプ」することができる。インターネット・ウェブ・サーバは、クライアントを支援して情報を提供する。ユーザは、ウェブ・クライアント・プログラムを用いて 「ウェブをブラウズ」する。ウェブは、コンピュータ間で情報を転送するためのＨＴＴＰプロトコルを用いるＵＲＬによってアドレスされた資源を伴うインターネットと考えられている。（他のフォーマットの中にある）ＨＴＭＬは、ＵＲＬに相当する情報を表示したり、他のＵＲＬへのポイント・アンド・クリック・インターフェースを提供するのに用いられる。
【０００９】
ユニバーサル・リソース・ロケータ（ＵＲＬ）
ＵＲＬとは、インターネット上の資源のためのアドレスをいう。ＵＲＬは、インターネットの資源を位置づけるためにウェブ・ブラウザによって用いられる。ＵＲＬは、資源をアクセスするのに用いられるプロトコル（例えば、ワールド・ワイド・ウェブ・ページ用のｈｔｔｐ、又はＦＴＰサイト用のｆｔｐ）、資源が存在するサーバの名称（例えば、//www.whitehouse.gov）、そして任意的に、資源への経路（例えば、ＨＴＭＬ文書又はサーバ上のファイル）を指定する。
【００１０】
ハイパーテキスト・マークアップ・ランゲージ（ＨＴＭＬ）
ＨＴＭＬとは、ワールド・ワイド・ウェブ上の文書のために用いられる言語をいう。ＨＴＭＬは、ＳＧＭＬ（標準汎用マークアップ言語）を基礎として策定されたものであって、文書中のテキスト又はグラフィクスのようなエレメントをマークするタグを用いることにより、ウェブ・ブラウザがこれらのエレメントをユーザに対しどのように表示すべきかを指示するとともに、（キーの押し下げ操作やマウスのクリック操作による）リンクの活動化のようなユーザ・アクションに対しどのように応答すべきかを指示する。ＨＴＭＬは、ウェブ・サーバ上にある内容の装置独立の表現である。ウェブ・サーバは、クライアントが適切なプレゼンテーションを選ぶであろうという想定の下に、（ハイパーリンクを含む）内容をＨＴＭＬ形式でクライアントに配布する。
【００１１】
ハイパーテキスト・トランスファー・プロトコル（ＨＴＴＰ）
ＨＴＴＰとは、ワールド・ワイド・ウェブ上の情報にアクセスするのに用いられるクライアント／サーバプロトコルである。ＨＴＴＰは、ステートレス・プロトコルの１例である。言い換えれば、クライアントからサーバへの全ての要求は、独立に取り扱われる。クライアントはサーバに要求を送り、サーバはこのプロトコルを用いて応答する。
【００１２】
ユーザ・データグラム・プロトコル（ＵＤＰ）
ＩＳＯ／ＯＳＩモデルのトランスポート層に相当するＴＣＰ／ＩＰ内のコネクションレス・プロトコルである。ＵＤＰは、アプリケーションによって発生されたデータ・メッセージをＩＰ経由で送られるべきパケットに変換するが、メッセージが正しく配布されたかを確かめないことがある。従って、ＵＤＰはＴＣＰより能率的である場合があり、よって、ＳＮＭＰ（簡易ネットワーク管理プロトコル）を含む種々の目的に用いられ得る。その信頼性は、メッセージを発生するアプリケーションに依存する。
【００１３】
ルーター
メッセージの配布を処理する通信ネットワーク上の中間装置である。可能な接続のメッシュを介して多数のコンピュータを接続している単一のネットワーク上では、ルータは、送信されたメッセージを受け取り、最も能率的に利用可能な経路を通ってそれらのメッセージを正しい宛先に転送する。他方、同じ通信プロトコルを用いる相互に接続された１セットのローカル・エリア・ネットワーク（ＬＡＮ）上では、ルーターは、ＬＡＮ間のリンクとして動作するという、若干異なる機能をサービスすることにより、メッセージがあるＬＡＮから他のＬＡＮまで送信されることを可能にする。
【００１４】
ウェブ・ブラウザ
ワールド・ワイド・ウェブ、他のネットワーク又はユーザのコンピュータ上のＨＴＭＬ（又は他の）文書をユーザが視聴し、文書上のハイパーリンクを辿り、ファイルを転送することができるようにするクライアントのアプリケーションである。
【００１５】
伝送制御プロトコル（ＴＣＰ）
ＩＰ経由で送るべきパケットへのデータ・メッセージの分解と、ＩＰによって受け取られたパケットからの完全なメッセージの再構成及び検証を制御するＴＣＰ／ＩＰ内のプロトコルである。
【００１６】
インターネット・プロトコル（ＩＰ）
パケットへのデータ・メッセージの分解、送り手から宛先のネットワーク及び端末へのパケットの経路指定、宛先で原データ・メッセージへのパケットの再構成を制御するＴＣＰ／ＩＰ内のプロトコルである。ＩＰは、ＩＳＯ／ＯＳＩモデルのネットワーク層に相当する。
【００１７】
ＴＣＰ／ＩＰ
米国国防総省によって開発されたコンピュータ間の通信のためのプロトコルである。ＵＮＩＸシステム内に構築され、インターネットを含むネットワーク上のデータ転送の業界標準になっている。
【００１８】
プロキシ・サーバ
ＬＡＮの送受の対象であるインターネット・トラフィックを制御する装置であり、他の機能を提供することもできる。例えば文書キャッシング及びアクセス制御である。プロキシ・サーバは、人気のあるウェブ・ページのように、頻繁に要求されたデータを供給することによって性能を改善することができ、所有者が適切でないと考える要求（例えば、所有権を主張できる専有ファイルへの権限のないアクセス要求）をフィルタしたり削除したりすることができる。
【００１９】
キャッシュ
迅速なアクセスのために頻繁に使用されるデータ値が複製される特別なメモリ・サブシステムである。
【００２０】
オブジェクト
オブジェクトとは、キャッシュ、サーバ又はクライアントに格納され得るデータをいう。
【００２１】
図１は、代表的なコンピュータ・ネットワーク・システムであり、クライアント１１０，１２０及び１３０、ネットワーク１５０、ネットワーク・ディスパッチャー１６０、キャッシュ・アレイ１７０並びにサーバ・クラスタ１８０を含む。キャッシュ・アレイ１７０は、キャッシュ・ノード１７２、１７４、１７６及び１７８を含む。サーバ・クラスタ１８０は、サーバ１８２、１８４、１８６及び１８８を含む。クライアント１１０、１２０及び１３０は、例えばウェブ・ページのようなオブジェクトの要求を発行する。
【００２２】
図２は、本発明の代表的な実施例に従って要求されたオブジェクトを検索する方法を示すフローチャートである。ステップ１９０で、例えばクライアント１１０が、サーバ、例えばサーバ１８２に格納される（又は発生される、又は取り出される）であろうオブジェクトを要求する。ステップ１９２で、オブジェクトの要求は、ネットワーク、例えばネットワーク１５０経由でネットワーク・ディスパッチャー、例えばネットワーク・ディスパッチャー１６０によって受け取られる。ステップ１９４で、ネットワーク・ディスパッチャー１６０は、オブジェクトの要求を一つのキャッシュ・ノード、例えばキャッシュ・ノード１７２に経路指定する。ステップ１９６で、ステップ１９４でネットワーク・ディスパッチャー１６０からのオブジェクトの要求を受け取るキャッシュ・ノード１７２が、オブジェクトの最初の所有者であるかどうかの決定がなされる。ステップ１９４でネットワーク・ディスパッチャー１６０からオブジェクトの要求を受け取るキャッシュ・ノード１７２が、最初の所有者である場合には、ステップ１９７で、キャッシュ・ノード１７２がクライアントの要求をサービスすることができる。さもなければ、ステップ１９８で、キャッシュ・ノード１７２が、その要求をサービスし且つ要求されたオブジェクトを検索するためにプロキシとして機能するか、又は、キャッシュ・ノード１７２がその要求を最初の所有者へハンドオフすることができる。ステップ１９７及びステップ１９８で、最初の所有者は、要求されたオブジェクトをキャッシュ・メモリから検索するか、又はサーバ１８２と通信することにより検索する。１以上のキャッシュ・ノードがオブジェクトの最初の所有者であり得るように本発明を改変することは可能である。
【００２３】
クライアント１１０、１２０及び１３０は、インターネットに接続されたワークステーション、パーソナルコンピュータ又は他のコンピュータでもよい。例えば、家庭でパーソナル・コンピュータを使用するユーザは、ウェブ・ブラウザを使用して対応するＵＲＬを入力することにより、ウェブ・ページの検索及び視聴を要求することができる。要求されたウェブ・ページは、ＵＲＬによってアドレスされ、インターネット上のウェブ・サービスを通ってアクセス可能なサーバに属し得る。
【００２４】
キャッシュ・アレイ１７０は、１以上のネットワーク・ノードであってもよい。キャッシュ・アレイ１７０内に含まれる各ノードは、１以上のプロセッサであってもよい。キャッシュ・アレイ１７０の各ノードの各プロセッサは、単一のキャッシュ空間及び単一のキャッシュ・イメージを形成することができる１以上のキャッシュ・メンバー（キャッシュ・ノード）のセットを含んでもよい。言い換えれば、クライアントは、単一のイメージとしてキャッシュ・アレイを見ることができる。例えば、クライアントは、ネットワーク・ディスパッチャー１６０と関連づけられたアドレスを介してキャッシュ・アレイ１７０にアクセスすることができる。しかし、キャッシュ・アレイ１７０の各ノードは、独立のＩＰアドレスを有し得る。内部的には、キャッシュ・アレイ１７０は、個々のキャッシュ・メンバーの資源を組み合わせることができる。例えば、複数のキャッシュ・メンバーのキャッシュ空間は、キャッシングに利用できるメモリの空間を拡大するために組み合わせることができる。更に、複数のキャッシュ・メンバーの個々のスループットも、利用可能なスループットを拡大するために組み合わせることができる。キャッシュ・メンバー１７２、１７４、１７６及び１７８の各々は、キャッシュ・アレイ１７０の内部で、別個のアドレス（例えばＩＰアドレス）によって、アドレス可能である。キャッシュ・ノード（メンバー）１７２、１７４、１７６及び１７８は、例えばルーターによって実現され得る。例えばＩＢＭ社の２２ＸＸファミリーのようなルーターを用いることができる。
【００２５】
ネットワーク・ディスパッチャー１６０は、例えばＴＣＰルータ上に実現することができる。ネットワーク・ディスパッチャー１６０は、例えばクライアント１１０のようなクライアントから要求を受け取り、この要求を「見ること」なしに、これをキャッシュ・アレイ１７０のキャッシュ・ノードへ経路指定することができる。ネットワーク・ディスパッチャー１６０は、例えばウェブ・ページ（又は他のオブジェクト）に対するクライアントの要求をキャッシュ・アレイ１７０に経路指定するのに用いられるルーター・ノードのサービスとすることができる。ネットワーク・ディスパッチャー１６０は、キャッシュ・アレイ１７０のキャッシュ・ノード１７２、１７４、１７６及び１７８についての利用可能性及び負荷情報を得ることができる。また、ネットワーク・ディスパッチャー１６０は、キャッシュ・ノードの利用可能性や負荷情報に基づいて、オブジェクトに対する要求を選択されたキャッシュ・ノードに経路指定し送信することもできる。（例えば、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 を参照）
【００２６】
キャッシュ・ノードと要求されたオブジェクトとの間に、対応関係が形成される。要求されたオブジェクトは、当該オブジェクトの最初の所有者であるキャッシュ・ノードに対応し得るだけでなく、他のキャッシュ・ノードにも対応し得る。例えば、ＵＲＬによって表現されている、インターネット・アドレスがウェブ・キャッシュ・ノード間で区分され得る。各ＵＲＬごとに、一つのウェブ・キャッシュ・ノードを最初の所有者として割り振ることができる。最初の所有者に加えて、一以上のウェブ・キャッシュ・ノードが単一のＵＲＬに対応してもよい。これらのＵＲＬは、例えばハッシュ関数を用いて、ウェブ・キャッシュ・ノード間で区分され得る。言い換えれば、ハッシュ関数は、キャッシュ・ノードと要求されたオブジェクトとの間に対応関係を形成するために用いることができる。
【００２７】
クライアント１１０、１２０又は１３０がオブジェクト（すなわち、ターゲット・オブジェクト）を検索するための要求を発行する場合、この要求は、ネットワーク・ディスパッチャー１６０によって、キャッシュ・アレイ１７０の第一のキャッシュへ経路指定され送信される。ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュは、要求されたオブジェクトに対応する場合もあり、対応しない場合もある。言い換えれば、要求されたオブジェクトが、第一のキャッシュに割り振られている場合もあり、割り振られていない場合もある。ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュが要求されたオブジェクトに対応しており（すなわち、第一のキャッシュが要求されたオブジェクトの最初の所有者である）、しかも、この要求されたオブジェクトが第一のキャッシュに格納されている場合、第一のキャッシュは、この要求をサービスすることができる。他方、ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュが要求されたオブジェクトに対応しているも（すなわち、第一のキャッシュが要求されたオブジェクトの最初の所有者である）、この要求されたオブジェクトが第一のキャッシュに格納されていない場合には、第一のキャッシュは、サーバ・クラスタ１８０のうちの適当なサーバー１８２、１８４、１８６又は１８８から要求されたオブジェクトを検索することができる。
【００２８】
例えば、ユーザが、クライアント上のウェブ・ブラウザを使用して、ウェブ・ページを検索しこれを視聴することを要求する場合を仮定する。要求されたウェブ・ページは、ＵＲＬによってアドレス可能で、ネットワークに接続されたサーバに格納されていてもよい。ネットワーク・ディスパッチャー１６０は、キャッシュ・アレイ１７０の第一のキャッシュ・ノードを選択する。ネットワーク・ディスパッチャー１６０は、ウェブ・ページに対する要求を第一のキャッシュ・ノードに経路指定する。要求されたウェブ・ページが第一のキャッシュ・ノードに格納されている場合、第一のキャッシュ・ノードは、キャッシュ・メモリからウェブ・ページを検索することができ、ウェブ・ページをクライアントに送り返す。第一のキャッシュ・ノードが要求されたウェブページの最初の所有者であるが、ウェブ・ページが第一のキャッシュ・ノードに格納されていない場合には、第一のキャッシュ・ノードは、ＵＲＬによってアドレスされた適切なサーバにアクセスし、そのサーバからウェブ・ページを検索して、これをクライアントに送り返すことができる。
【００２９】
しかし、ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュが、要求されたオブジェクトに対応しない場合（すなわち、第一のキャッシュが要求されたオブジェクトの最初の所有者ではない場合）、第一のキャッシュは、要求されたオブジェクトに対応する第二のキャッシュ（すなわち、第二のキャッシュが要求されたオブジェクトの最初の所有者である）に要求を送信する。第一のキャッシュ及び第二のキャッシュは、この要求をサービスし且つ要求されたオブジェクトを検索するために通信することができる。代替的に、第一のキャッシュは、この要求を第二のキャッシュにハンドオフすることができる。ハンドオフの場合には、この要求は、ＴＣＰ接続に関する情報（例えば、シーケンス番号、ＩＰアドレス及びＴＣＰポート）とともに、第一のキャッシュから第二キャッシュへ送信され得る。
【００３０】
第一のキャッシュと第二のキャッシュが要求をサービスするために通信するかどうかという決定、又は、第一のキャッシュがこの要求を第二のキャッシュへハンドオフするかどうかという決定は、例えば、要求されたオブジェクトのサイズに基づいて行うことができる。
【００３１】
例えば、以下のような手段がある。
１．要求されたオブジェクトのサイズが閾値のサイズより小さい場合、第二のキャッシュは、要求されたオブジェクトを第一のキャッシュに送信する。第二のキャッシュは、キャッシュ・メモリから又は適切なサーバとの通信によって、要求されたオブジェクトを検索する。次に、第一のキャッシュは、要求されたオブジェクトを要求元のクライアントに送信することにより、この要求をサービスすることができる。
２．要求されるオブジェクトのサイズが閾値のサイズよりも大きい場合、第一及び第二のキャッシュは、この要求をハンドオフするように調整を行うことができる。
（ｉ）ＴＣＰ接続情報は、第一のキャッシュから第二のキャッシュまでハンドオフされる。
（ｉｉ）ネットワーク・ディスパッチャー１６０は、この要求が第二のキャッシュによってサービスされることを通知される（さらに、ネットワーク・ディスパッチャー１６０は、あるオブジェクトに対する後続の要求が第二のキャッシュに送信されるべきであることも通知される）。
（ｉｉｉ）第二のキャッシュは、キャッシュ・メモリから又は適切なサーバとの通信によって、要求されたオブジェクトを検索し、これを要求元のクライアントに送信する。
【００３２】
なお、閾値のサイズは、調整可能であるか、又は動的に変更可能である。
【００３３】
この種の代表的な調整のために、第二のキャッシュは、ＴＣＰハンドオフやＨＴＴＰハンドオフを行うのに有用な格納情報フィールドを有することができる。ネットワーク・ディスパッチャー１６０からの要求を最初に受け取っている第一のキャッシュは、（要求されたオブジェクトの最初の所有者である）第二のキャッシュが要求されたオブジェクトを第一のキャッシュに送信するまで待機するか、又は、第二のキャッシュがこの要求をサービスすることを第一のキャッシュに通知するまで待機することができる。従って、前述の代表的な調整のタイプは、要求されたオブジェクトの最初の所有者によってドライブされる。
【００３４】
キャッシュ・メンバ・ヒットが生じるのは、ネットワーク・ディスパッチャー１６０が、接続要求を（要求されたオブジェクトの最初の所有者である）第一のキャッシュに転送する場合である。例えば、ネットワーク・ディスパッチャー１６０がラウンド・ロビン機構を使用する場合、特定のキャッシュ・メンバーが選択される確率は、一様に分散され得る（例えば、ｎ個のキャッシュ・メンバーの場合には、１／ｎの確率である。）さらに、ネットワーク・ディスパッチャー１６０は、実質的なオーバーヘッド・コストと引き替えに、要求されたオブジェクトに関連付けられたアドレス指定情報（すなわち、ＵＲＬ）にアクセスすることができる。従って、ネットワーク・ディスパッチャー１６０は、サーバ・クラスタ１８０と関連づけられたキャッシュ・アレイ１７０を識別するのに十分な情報をアクセスすることにより、キャッシュ・メンバーをランダムに選択することができる。負荷及び利用可能性情報がネットワーク・ディスパッチャー１６０に提供される場合、特定のキャッシュを選択する可能性が重み付けされ得る。言い換えると、あるキャッシュが負荷された場合、このキャッシュが選択される頻度が少なくなり、残りのキャッシュ・メンバーがより頻繁に選択されるようになる。
【００３５】
キャッシュ・アレイ・ヒットが生じるのは、キャッシュ・アレイ１７０がキャッシュ・メンバー１７２、１７４、１７６、１７８の一つのキャッシュ空間からオブジェクトに対する要求をサービスすることができる場合である。従って、キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ミスが同時に生じる可能性がある。そのような例は、ネットワーク・ディスパッチャー１６０が、要求されたオブジェクトの最初の所有者であるキャッシュ・メンバーを選択するも、この要求されたオブジェクトの最初の所有者が、要求されたオブジェクトをキャッシュ・メモリ内に有していない場合である。従って、キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ミスが同時に生じる場合には、最初の所有者は、要求されたオブジェクトをサーバから検索する。
【００３６】
さらに、キャッシュ・メンバー・ミス及びキャッシュ・アレイ・ヒットが同時に生じることもある。そのような例は、ネットワーク・ディスパッチャー１６０が、要求されたオブジェクトの最初の所有者でないキャッシュ・メンバーを選択するも、この要求されたオブジェクトの最初の所有者であるキャッシュ・アレイ１７０の一つのキャッシュ・メンバーが、要求されたオブジェクトをキャッシュ・メモリ内に有している場合である。
【００３７】
従って、以下の状況が生じ得る。
１．キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ヒット
２．キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ミス
３．キャッシュ・メンバー・ミス、キャッシュ・アレイ・ヒット
４．キャッシュ・メンバー・ミス、キャッシュ・アレイ・ミス
【００３８】
さらに、要求されたオブジェクトを検索するのに、異なる通信プロトコルを用いることができる。すなわち、ある要求をサービスするために第一のキャッシュ及び第二のキャッシュが通信するかどうか，又は、第一のキャッシュがある要求を第二のキャッシュにハンドオフするかどうかに依存して、異なるプロトコルを用いることができる。例えば、ＨＴＴＰインターフェース（この場合、第一のキャッシュはＨＴＴＰプロキシとして動作し得る）、ＵＤＰベースの要求、又はハンドオフが用いられ得る。
【００３９】
以下の８つの状況が生じ得る。
１．キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ヒット
２．キャッシュ・メンバー・ヒット、キャッシュ・アレイ・ミス
３．キャッシュ・メンバー・ミス、キャッシュ・アレイ・ヒット
３．１．ＨＴＴＰを用いて検索されたオブジェクト
３．２．ＵＤＰを用いて検索されたオブジェクト、又は
３．３．要求のハンドオフ経由で検索されたオブジェクト
４．キャッシュ・メンバー・ミス、キャッシュ・アレイ・ミス
４．１．ＨＴＴＰを用いて検索されたオブジェクト
４．２．ＵＤＰを用いて検索されたオブジェクト、又は
４．３．要求のハンドオフ経由で検索されたオブジェクト
【００４０】
キャッシュ・メンバー・ヒット
図３及び図４は、本発明の代表的な実施例に基づく、キャッシュ・メンバー・ヒットの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。クライアント１１０は、ネットワーク１５０経由でオブジェクトを検索するための要求を発行する。要求されたオブジェクトは、サーバ・クラスタ１８０のサーバ１８２及び１８４のうちの一つに格納されるか、当該サーバによって発生されるか又は取り出される。クライアント１１０によって発行された要求は、ネットワーク１５０経由でネットワーク・ディスパッチャー１６０に転送される。次に、ネットワーク・ディスパッチャー１６０は、第一のキャッシュ、例えば、キャッシュ・アレイ１７０のキャッシュ・メンバー１７２を選択する。ここで、ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュ・メンバー１７２が、要求されたオブジェクトの最初の所有者であると仮定すると、キャッシュ・メンバー・ヒットが生じる。
【００４１】
図３は、第一のキャッシュ１７２がキャッシュ・メモリ内に要求されたオブジェクトを有する状況を示す（キャッシュ・アレイ・ヒット）。この状況では、第一のキャッシュ１７２は、キャッシュ・メモリから要求されたオブジェクトを検索し、これをネットワーク１５０を経由してクライアント１１０に送信することができる。
【００４２】
図４は、第一のキャッシュ１７２がキャッシュ・メモリ内に要求されたオブジェクトを有しない状況を示す（キャッシュ・アレイ・ヒット）。この状況では、第一のキャッシュ１７２は、要求されたオブジェクトを最初にサーバ１８２から検索した後、これをネットワーク１５０を経由してクライアント１１０に送信することができる。キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ミスの状況におけるシステムの性能（例えば、オーバーヘッド、又はスループット）は、キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ヒットの状況におけるそれと比較すると、低下することがある。
【００４３】
キャッシュ・メンバー・ミス−ＨＴＴＰインターフェース
図５及び図６は、本発明の代表的な実施例に基づいた、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。クライアント１１０は、ネットワーク１５０経由でオブジェクトを検索するための要求を発行する。要求されたオブジェクトは、サーバ・クラスタ１８０のサーバ１８２及び１８４のうちの一つに格納されるか、当該サーバによって発生されるか又は取り出される。クライアント１１０によって発行された要求は、ネットワーク１５０経由でネットワーク・ディスパッチャー１６０に転送される。次に、ネットワーク・ディスパッチャー１６０は、第一のキャッシュ、例えば、キャッシュ・アレイ１７０のキャッシュ・メンバー１７２を選択する。ここで、ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュ・メンバー１７２が、要求されたオブジェクトの最初の所有者ではないと仮定すると、キャッシュ・メンバー・ミスが生じる。ネットワーク・ディスパッチャー１６０は、（ｎ個のキャッシュ・メンバを備えた）キャッシュ・アレイ１７０の第一のメンバーをランダムに（一様に分散して）選択するから、キャッシュ・メンバー・ミスの確率は（ｎ−１）／ｎである。
【００４４】
図５は、第二のキャッシュ、例えば、キャッシュ・メンバー１７６が、要求されたオブジェクトの最初の所有者であり、キャッシュ・メモリ内に要求されたオブジェクトを有する状況を示す（キャッシュ・アレイ・ヒット）。この状況では、第一のキャッシュ１７２は、クライアント１１０との接続を受け入れることができる。次に、第一のキャッシュ１７２は、第二のキャッシュ１７６を識別して、ＨＴＴＰインターフェースを確立することができる。第一のキャッシュ１７２及び第二のキャッシュ１７６は、ＨＴＴＰインターフェース経由で要求されたオブジェクトを検索するために通信することができる。第二のキャッシュ１７６は、キャッシュ・メモリから要求されたオブジェクトを検索した後、これを第一のキャッシュ１７２に送信することができる。次に、第一のキャッシュ１７２は、要求されたオブジェクトをネットワーク１５０経由でクライアント１１０に送信することができる。
【００４５】
図６は、第二のキャッシュが１７６が、キャッシュ・メモリ内に要求されたオブジェクトを有していない状況を示す（キャッシュ・アレイ・ミス）。この状況では、第二のキャッシュ１７６は、最初に、要求されたオブジェクトをサーバー１８４から検索した後、これを第一のキャッシュ１７２に送信することができる。次に、第一のキャッシュ１７２は、要求されたオブジェクトをネットワーク１５０経由でクライアント１１０に送信することができる。
【００４６】
キャッシュ・メンバー・ミス−ＵＤＰインターフェース
図５は、第二のキャッシュ、例えば、キャッシュ・メンバー１７６が、要求されたオブジェクトの最初の所有者であり、キャッシュ・メモリ内に要求されたオブジェクトを有する状況を示す（キャッシュ・アレイ・ヒット）。この状況では、第一のキャッシュ１７２は、クライアント１１０との接続を受け入れることができる。次に、第一のキャッシュ１７２は、第二のキャッシュ１７６を識別して、ＵＤＰインターフェースを確立することができる。第一のキャッシュ１７２及び第二のキャッシュ１７６は、ＵＤＰインターフェース経由で要求されたオブジェクトを検索するために通信することができる。第二のキャッシュ１７６は、キャッシュ・メモリから要求されたオブジェクトを検索した後、これを第一のキャッシュ１７２に送信することができる。次に、第一のキャッシュ１７２は、要求されたオブジェクトをネットワーク１５０経由でクライアント１１０に送信することができる。
【００４７】
図６は、第二のキャッシュ１７６がキャッシュ・メモリ内に要求されたオブジェクトを有していない状況を示す（キャッシュ・アレイ・ミス）。この状況では、第二のキャッシュ１７６は、最初に、要求されたオブジェクトをサーバ１８４から検索した後、これを第一のキャッシュ１７２に送信することができる。次に、第一のキャッシュ１７２は、要求されたオブジェクトをネットワーク１５０経由でクライアント１１０に送信することができる。
【００４８】
ＵＤＰインターフェースは、付随的なオーバーヘッドを有するＴＣＰ接続を避け得るために、ＨＴＴＰインターフェースよりも優れた性能を有することがある。
【００４９】
キャッシュ・メンバー・ミス−ハンドオフ・インターフェース
図７及び図８は、本発明の代表的な実施例に基づいた、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。クライアント１１０は、ネットワーク１５０経由でオブジェクトを検索するための要求を発行する。要求されたオブジェクトは、サーバ・クラスタ１８０のサーバ１８２及び１８４のうちの一つに格納されるか、当該サーバによって発生されるか又は取り出される。クライアント１１０によって発行された要求は、ネットワーク１５０経由でネットワーク・ディスパッチャー１６０に転送される。次に、ネットワーク・ディスパッチャー１６０は、第一のキャッシュ、例えば、キャッシュ・アレイ１７０のキャッシュ・メンバー１７２を選択する。ここで、ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュ・メンバー１７２が、要求されたオブジェクトの最初の所有者ではないと仮定すると、キャッシュ・メンバー・ミスが生じる。
【００５０】
図７は、第二のキャッシュ、例えば、キャッシュ・メンバー１７６が、要求されたオブジェクトの最初の所有者であり、キャッシュ・メモリ内に要求されたオブジェクトを有する状況を示す（キャッシュ・アレイ・ヒット）。この状況では、第一のキャッシュ１７２は、要求を（例えば、ＴＣＰ接続情報とともに）第二のキャッシュ１７６にハンドオフする。次に、第二のキャッシュ１７６は、キャッシュ・メモリから要求されたオブジェクトを検索した後、これをクライアント１１０に送信することができる。
【００５１】
図８は、第二のキャッシュ１７６が、キャッシュ・メモリ内に要求されたオブジェクトを有していない状況を示す（キャッシュ・アレイ・ミス）。この状況では、第一のキャッシュ１７２は、要求を（例えば、ＴＣＰ接続情報とともに）第二のキャッシュ１７６にハンドオフする。第二のキャッシュ１７６は、最初に、要求されたオブジェクトをサーバ１８４から検索した後、これをクライアント１１０に送信することができる。
【００５２】
キャッシュ・アレイ１７０は、ハンドオフを支援する幾つかの機能手段を備えている。
第一に、キャッシュ・アレイ１７０の全てのキャッシュ・メンバーは、一つのクラスタ・アドレス（例えば一つのＩＰアドレス）を使用してアドレスされ得る。その結果、第一のキャッシュ１７２及び第二のキャッシュ１７６は、両方ともクラスタ・アドレスに対応する要求を受け入れて、クライアント１１０に応答することができる。
第二に、例えばＴＣＰカーネル拡張のような機構を設けることにより、（第一のＴＣＰスタックを用いる）第一のキャッシュ１７２から（第二のＴＣＰスタックを用いる）第二のキャッシュ１７６へのハンドオフが可能となる。
このハンドオフの間、第一のキャッシュ１７２と第二のキャッシュ１７６との間のＵＤＰインターフェースを用いることにより、接続情報を転送することができる。ＵＤＰインターフェースをこのように用いると、性能の改善に役に立つ場合がある。
第三に、ＴＣＰインターフェース機能とともに、ＨＴＴＰ要求を第一のキャッシュ１７２から第二のキャッシュ１７６へハンドオフするための追加の機構を実現することができる。
第四に、ネットワーク・ディスパッチャー１６０を用いて、ＴＣＰハンドオフを支援することができる。
ＴＣＰ／ＨＴＴＰ接続が第一のキャッシュ１７２から第二のキャッシュ１７６へハンドオフされる場合、（クライアントからサーバへの）接続の流れが、第二のキャッシュ１７６（接続の新しい所有者）を確実に通過するようにすることが望ましい。後続パケットが第一のキャッシュの代わりに第二のキャッシュ１７６に送られるように、第一のキャッシュ１７２又は第二のキャッシュ１７６は、ネットワーク・ディスパッチャー１６０に対し、その情報を更新するように指示することができる。
【００５３】
ハンドオフ・インターフェースのオーバーヘッドは、ＵＤＰインターフェースのそれより高い場合がある。しかし、ＵＤＰ又はＨＴＴＰインターフェースの性能は、オブジェクト・サイズが増加するのに応じて実質的に減少し得る。ＵＤＰ又はＨＴＴＰインターフェースと異なり、ハンドオフ・インターフェースの性能は、オブジェクト・サイズの増加に対しそれほど敏感ではない。オブジェクト・サイズの増加に対するハンドオフ・インターフェースの性能の敏感度は、キャッシュ・メンバー・ヒットの場合のオブジェクト・サイズの増加に対する性能の敏感度とほぼ同様である。従って、相対的に大きいオブジェクトについては、ハンドオフ・インターフェースを用い、相対的に小さいオブジェクトについては、ＵＤＰインターフェース、ＨＴＴＰインターフェース又は他のインターフェースを用いることにより、性能を改善することができる。
【００５４】
キャッシュ・メンバー・ミス−混合モデル
用いられるインターフェースのタイプ（例えばＵＤＰ又はハンドオフ）は、要求されたオブジェクトのサイズに基づいて選択され得る。サイズの閾値は、当該サイズ閾値より小さいオブジェクトについては、一つのタイプのインターフェース（例えばＵＤＰインターフェース）を用いるとともに、当該サイズ閾値より大きいオブジェクトについては、他のタイプのインターフェース（例えばハンドオフ・インターフェース）を用いることにより、性能が結果的に改善されるようにしてこれを決定することができる。サイズ閾値は、例えば、与えられたコンピュータ・ネットワーク及びシステムのスループットを測定することから、これを決定することができる。
【００５５】
例えば、ＵＤＰインターフェースは、２キロバイトより小さい要求されたオブジェクトについて選択可能であり、ハンドオフ・インターフェースは、２キロバイトより大きな要求されたオブジェクトについて選択可能である。例えば、図１を参照しつつ、クライアント１１０が、サーバ１８６に格納されるか又はサーバ１８６によって発生され若しくは取り出されるオブジェクトを要求するものと仮定する。さらに、キャッシュ・メンバー１７８が、要求されたオブジェクトの最初の所有者であると仮定する。この場合、以下の代表的な手段が適用され得る。
１．ネットワーク・ディスパッチャー１６０によって選択された第一のキャッシュ、すなわちキャッシュ・メンバー１７２が、要求及び例えばＴＣＰ接続情報を、第二のキャッシュ１７８に送信する。
２．第二のキャッシュ１７８は、要求されたオブジェクトのサイズを決定することができる。要求されたオブジェクトのサイズは、キャッシュ・メモリから決定することができ、又はオブジェクトがキャッシュ・メモリ内に存在しない場合には、サーバ１８６と接続することによって決定することができる。
３．要求されたオブジェクトのサイズがサイズ閾値より小さい場合、第二のキャッシュ１７８は、要求されたオブジェクトを第一のキャッシュ１７２に送信し得る。次に、第一のキャッシュ１７２は、要求されたオブジェクトをクライアント１１０に送信することができる。
４．要求されたオブジェクトのサイズがサイズ閾値より大きい場合、第一のキャッシュ１７２と第二のキャッシュ１７８との間のハンドオフ、例えばＴＣＰ／ＨＴＴＰハンドオフを実行することができる。次に、第二のキャッシュ１７８は、要求されたオブジェクトをキャッシュ・メモリ又はサーバ１８７のいずれかから検索した後、これをクライアント１１０に送信することができる。
【００５６】
内容基準ルーティング
この場合、図１のネットワーク・ディスパッチャー１６０は、図９の内容基準ルータ１６５として機能する。特に、特別のモードで処理する図３乃至図８の例えばネットワーク・ディスパッチャー１６０のようなネットワーク・ディスパッチャーは、内容基準ルータ１６５として機能することができる。要求されたオブジェクトのアドレス（例えばＵＲＬ）は、例えば、ハッシュ関数を用いて、キャッシュ・アレイ１７０のキャッシュ・ノード１７２、１７４、１７６及び１７８の間で区分され得る。言い換えれば、ハッシュ関数は、キャッシュ・ノードと要求されたオブジェクトとの間の対応関係を形成するために用いることができる。要求されたオブジェクトのアドレスは、ハッシュされ得る。ハッシュ関数の出力は、要求されたオブジェクトを格納しているか、これを発生するか又は取り出す１以上のサーバと関連づけられたキャッシュ・ノードである。言い換えると、ハッシュ関数の出力は、要求されたオブジェクトの最初の所有者であるキャッシュ・メンバーであり得る。このことは、キャッシュ・ノードとサーバとの間に特別な関係があることを必ずしも意味しない。しかし、他の選択肢として、一つのそのような関係が存在してもよい。
【００５７】
クライアント１１０、１２０及び１３０のようなクライアントがオブジェクトの検索を要求する場合、内容基準ルータ１６５は、選択されたキャッシュ・ノードに対し、この要求を例えばＴＣＰ接続情報とともにハンドオフすることができる。内容基準基準ルータ１６５によって選択されたキャッシュ・ノードは、要求されたオブジェクトの最初の所有者である。次に、選択されたキャッシュ・ノードは、キャッシュ・メモリ又はそれに関連づけられたサーバのいずれかから要求されたオブジェクトを検索した後、これをネットワーク１５０経由で要求元のクライアントに送信し得る。
【００５８】
特別のモードで動作しているネットワーク・ディスパッチャーは、内容基準ルータとして機能し得るので、かかるネットワーク・ディスパッチャーは、内容基準ルーティング及び非内容基準ルーティングの組み合わせを用いて要求を経路指定することが可能である。内容基準ルーティングが用いられる場合、内容基準ルーター１６５として動作しているネットワーク・ディスパッチャー１６０は、クライアントによって送信された要求を検査することにより、どのキャッシュ・ノードが要求されたオブジェクトの最初の所有者であるかを決定することができる。内容基準ルーティングは、キャッシュ・メンバー・ミスを回避するので、内容基準ルーティングは、キャッシュ・アレイによって費やされるプロセッサ・サイクルを低減することができる。しかし、内容基準ルーティングは、内容基準ルーター１６５として動作しているネットワーク・ディスパッチャー１６０によるプロセッサ・サイクルの消費を増加させることがある。というのは、内容基準ルーティング・モードで動作しているネットワーク・ディスパッチャー１６０は、クライアントとの接続を確立することを必要とするからである。
【００５９】
内容基準ルータ１６５の使用は、それがシステムのボトルネックにならないという限りにおいて、有利であり得る。例えば、ＩＢＭ社の２２１６ルータによって実現される内容基準ルータは、毎秒１００００より少ない要求がなされる場合は、ボトルネックにならない。しかし、毎秒１００００を超える要求が静的に又は動的になされる場合には、ＩＢＭ社の２２１６ルータをネットワーク・ディスパッチャーとして動作させる方が有利である。代替的に、統合されたキャッシュを有する内容基準ルータを用いることができる。システムの負荷が相対的に低いか中程度である場合には、内容基準ルータは、統合されたキャッシュを用いて要求をサービスできる。システムの負荷が相対的に高い場合には、ルータは、ネットワーク・ディスパッチャーの機能を回復できる。
【００６０】
例えば、ＩＢＭ社の２２１６ルータは、ネットワーク・ディスパッチャーとして毎秒約１,５０００程度の要求を経路指定することができる。キャッシュ・ノードとして動作するＩＢＭ社の２２１６ルータは、ほぼ１００パーセントのキャッシュ・レートで毎秒約５,０００のオブジェクトをサービスする能力がある。ハンドオフを伴う内容基準ルータとして動作するＩＢＭ社の２２１６ルータは、毎秒で約５,０００／０．５＝１０,０００の要求をサービスすることができる。
【００６１】
例えば図３乃至図８に示した本発明の実施例の変形では、ネットワーク・ディスパッチャ１６０によってキャッシュ・アレイ１７０に経路指定される要求のある割合を、内容基準ルーティング・モードで処理することができる。内容基準ルーティングを用いる場合、キャッシュ・アレイ１７０上のオーバーヘッドは少なくなり得るが、ネットワーク・ディスパッチャー１６０ではより多くのオーバーヘッドが生じ得る。内容基準ルーティングが使用される要求の割合は、ネットワーク・ディスパッチャー及びキャッシュ・アレイ資源の利用度をバランスさせるように選択することができる。さらなる変形として、内容基準ルーティング・モードを使用して経路指定される要求の割合を、ボトルネックになるキャッシュ・アレイ１７０に応じて増加させてもよい。一方、ボトルネックになるネットワーク・ディスパッチャー１６０に応じて、内容基準ルーティングを用いて経路指定される要求の割合を、減少させるようにしてもよい。
【００６２】
他の選択肢として、例えば図１のネットワーク・ディスパッチャー１６０のようなネットワーク・ディスパッチャーの機能が、キャッシュ・ノードの中に統合されるようにしてもよい。
【００６３】
当業者は、前記実施例の応用を考えることができる。例えば、第１のノードは、クライアントの要求を、要求されたオブジェクトが属している区分の最初の所有者に方向付ける必要はない。最初の所有者が過負荷である場合、要求は、第二のノードに送られるようにしてもよい。第二のノードは、要求されたオブジェクトを第一のノードに送り返すようにしてもよい。或いは、第二のノードは、要求されたオブジェクトをクライアントに直接的に送り返すようにしてもよい。要求がサーバー・ノードにハンドオフされるようにするのも、選択肢の一つである。
【図面の簡単な説明】
【図１】本発明の実施例に基づく、コンピュータ・ネットワーク・システムを示すブロック図である。
【図２】本発明の実施例に基づく、要求されたオブジェクトを検索する方法を示すフローチャートである。
【図３】本発明の実施例に基づく、キャッシュ・メンバー・ヒット及びキャッシュ・アレイ・ヒットの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図４】本発明の実施例に基づく、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図５】本発明の実施例に基づく、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図６】本発明の実施例に基づく、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図７】本発明の実施例に基づく、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図８】本発明の実施例に基づく、キャッシュ・メンバー・ミスの状況で、要求されたオブジェクトを検索する方法を示すブロック図である。
【図９】本発明の実施例に基づく、内容基準ルーティングの場合に、要求されたオブジェクトを検索する方法を示すブロック図である。
【符号の説明】
１１０〜１３０  クライアント
１５０          ネットワーク
１６０          ネットワーク・ディスパッチャー
１７０          キャッシュ・アレイ
１７２〜１７８  キャッシュ
１８０          サーバ・クラスタ
１８２〜１８８  サーバ
【図１】
0003595470.tif 000002
【図２】
0003595470.tif 000003
【図３】
0003595470.tif 000004
【図４】
0003595470.tif 000005
【図５】
0003595470.tif 000006
【図６】
0003595470.tif 000007
【図７】
0003595470.tif 000008
【図８】
0003595470.tif 000009
【図９】
0003595470.tif 000010