JP2001273186A - 共同Webキャッシングのための遅延対応ハッシングの方法及び構成 - Google Patents

共同Webキャッシングのための遅延対応ハッシングの方法及び構成

Info

Publication number
JP2001273186A
JP2001273186A JP2001015963A JP2001015963A JP2001273186A JP 2001273186 A JP2001273186 A JP 2001273186A JP 2001015963 A JP2001015963 A JP 2001015963A JP 2001015963 A JP2001015963 A JP 2001015963A JP 2001273186 A JP2001273186 A JP 2001273186A
Authority
JP
Japan
Prior art keywords
proxy
hash
partition
cache
anchor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001015963A
Other languages
English (en)
Other versions
JP3697162B2 (ja
Inventor
Kun-Lung Wu
クン−ルン・ウ
Shiiran Yu Philip
フィリップ・シ−ラン・ユ
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 JP2001273186A publication Critical patent/JP2001273186A/ja
Application granted granted Critical
Publication of JP3697162B2 publication Critical patent/JP3697162B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 地理的に分散したプロキシ・キャッシュ間の
共同Webキャッシングに、待ち時間に対応したハッシ
ングを提供すること。 【解決手段】 地理的に分散したキャッシュ・サーバ間
で共同Webキャッシングを行う方法、特に地理的に分
散したプロキシ・キャッシュ間で共同Webキャッシン
グを行う、待ち時間対応ハッシングのシステム及び方
法。ハッシング時にネットワーク待ち時間遅延及びプロ
キシ負荷状態が考慮される。その結果、負荷状態が良け
れば、リクエストを地理的に近いプロキシ・キャッシュ
にハッシュすることができる。他の場合リクエストは地
理的に遠いプロキシ・キャッシュにハッシュされ、キャ
ッシュ間の負荷のバランスが取られる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般には、クライ
アント・マシンとコンテンツ・サーバ間に位置するネッ
トワーク・プロキシ・サーバ上のWebオブジェクトの
キャッシングに関する。
【0002】
【従来の技術】近年、インターネット、特にWeb(Wo
rld Wide Web)が急成長している。その結果、Webに
アクセスするときのユーザ側の応答時間がますます問題
になっている。
【0003】Webのパフォーマンスを上げる一般的方
法は、クライアントとコンテンツ・サーバとの間にプロ
キシ・キャッシュ・サーバを配置することである。プロ
キシ・キャッシングでは、クライアント・リクエストの
ほとんどをプロキシ・キャッシュにより処理することが
でき、待ち時間が短縮される。インターネット上のネッ
トワーク・トラフィックも、この方法により大幅に縮小
することができ、ネットワークの混雑も大幅に緩和され
る。実際、IBM、Sun Microsystems、Inktomi、Network
Appliance、Akamai等、Webキャッシングのためのハ
ードウェア、ソフトウェアの製品やソリューションを提
供している企業は少なくない。こうした企業には、地理
的に分散したデータセンターを共同Webキャッシング
に使用している企業もある。すなわち、Webキャッシ
ングを共同で行うため、地理的に分散した多数のプロキ
シを使用するケースが増えている。
【0004】Webキャッシングを共同で行うには、一
般には調整役を務めるプロトコルが必要である。一連の
共同プロキシ・キャッシュを管理調整するため、最近ハ
ッシュ・ルーティングという方法が登場している。ハッ
シュ・ルーティングの例として、キャッシュ・アレイ・
ルーティング・プロトコル(CARP)、コンシステン
ト・ハッシング(consistent hashing)等がある。"Cac
he Array Routing Protocol、v 1.0"(インターネット
・ドラフト、http://www.ircache.net/Cache/ICP/carp.
txt、1998年2月、V.Valloppillil、K.W.Ross)
にCARPのドラフトについての説明がある。"Hash-Ro
uting for Collections Shared Web Caches"(IEEE Net
work Magazine、37−44ページ、1997年11
月、12月、K.W.Ross)では、CARP及び他のプロ
トコルのパフォーマンスが分析されている。"Web Cachi
ng with Consistent Hashing"(Proc.Of 8th Internat
ional World Wide Web Conference、125−135ペ
ージ、1999年、D.Karger等)では、コンシステン
ト・ハッシングのWebキャッシングへの応用が述べら
れている。
【0005】基本的にハッシングは、URLスペース全
体をキャッシュ間でパーティションに分け、1つの論理
キャッシュを作成する。キャッシュはそれぞれ割当てら
れたパーティションに属するリクエストを賄う。リクエ
ストは、対応するURLのハッシュ値をもとに対応する
プロキシ・キャッシュに送られる。ハッシュ値とプロキ
シ・キャッシュIDのマッピングは、ブラウザによって
か、またはドメイン・ネーム・サーバ(DNS)によっ
て行える。
【0006】地理的に分散したプロキシが共同Webキ
ャッシングに使用される機会が増えている。例えば、Ak
amai、及びInktomi等の企業は、地理的に分散したデー
タ・センター上に存在するキャッシュ・サーバをWeb
キャッシングに使用している。その結果、地理的に遠い
プロキシや過負荷状態にあるプロキシにハッシュされる
リクエストについては、応答時間に影響が出る傾向があ
る。遠いプロキシは、ネットワーク待ち時間遅延が長く
なる傾向がある。過負荷状態のプロキシは、たとえブラ
ウザにどれほど近くても大きな遅延の原因にもなる。そ
のためユーザは、遠くのプロキシ・キャッシュや過負荷
のプロキシ・キャッシュにハッシュされるURLリクエ
ストについて、予想外に遅い応答時間を実感することが
ある。
【0007】
【発明が解決しようとする課題】共同Webキャッシン
グに対するハッシング・ベースの従来の方法は、ネット
ワーク待ち時間を考慮していない。地理的に遠いプロキ
シ・キャッシュへのハッシングまたは全プロキシ・キャ
ッシュへのハッシュをネットワーク待ち時間に関わらず
回避している。例えば、"Web Caching with Consistent
Hashing"(Proc.Of 8th International World Wide W
eb Conference、125−135ページ、1999年)
では、ユーザの地域がハッシュ値にエンコードされ、ブ
ラウザによってその地域のDNSに送られる。DNSは
エンコードされたハッシュ値を同じ地域内のプロキシ・
キャッシュIDにマップする。従ってリクエストは、地
理的に近い領域にあるプロキシによってのみ処理され
る。これは、地域内のプロキシ・キャッシュが同じ地域
内から発生したリクエストを全て適切に処理できる場合
は十分効果的であるが、地域間で作業負荷に偏りがある
場合、ある領域のプロキシは過負荷になり、他の領域の
プロキシは負荷不足になることがある。その結果、プロ
キシ間の共同の程度が地理的条件によって制限される。
【0008】一方、リクエストは地理的条件にかかわら
ず、連携する全てのプロキシ・キャッシュに単純にハッ
シュすることができる。その場合、地理的に分散した連
携するキャッシュ全ての間で負荷のバランスを取りやす
くなる。ただし、地理的距離によるネットワーク待ち時
間遅延は考慮されない。また"ホット・スポット"も考慮
されない。"ホット・スポット"は、短時間の間に多大な
需要、またはWebサイトやWebページにアクセスす
るユーザの数に関して短い"スパイク"があるWebサイ
トまたはWebページとして定義される。ホット・スポ
ットが存在するとき、ホット・スポットへの参照は全て
同じプロキシにハッシュされている。そのため、ホット
・スポットを処理するプロキシはたちまち過負荷状態に
なる。
【0009】従って、ハッシング・ベースのWebキャ
ッシングに伴う待ち時間の問題に配慮する必要がある。
具体的には、地理的に分散したプロキシ・キャッシュ間
の共同Webキャッシングに待ち時間に対応したハッシ
ングを提供する必要がある。
【0010】
【課題を解決するための手段】少なくとも1つの本発明
の好適な実施例に従って、共同Webキャッシングに関
するハッシング・ベースの方法に伴う前記の待ち時間の
問題が解決される。ここでは、地理的に分散したプロキ
シ・キャッシュ間で共同Webキャッシングを行うた
め、待ち時間に対応したハッシングのシステム及び方法
を考慮する。
【0011】本発明の実施例では、URLリクエストが
全てのプロキシにハッシュされる。ただし、リクエスト
のターゲット・プロキシを選択する際、待ち時間遅延及
び過負荷の可能性のあるプロキシを考慮する。本発明の
実施例では、リクエストは最初にアンカ・ハッシュ・パ
ーティションにハッシュされる。ハッシュ・パーティシ
ョンはそれぞれ、地理的に分散したプロキシの1つにマ
ップされる。次に、選択アルゴリズムにより、アンカ・
ハッシュ・パーティションに隣接した少数のハッシュ・
パーティションの中からプロキシが選択される。この選
択は、ネットワーク待ち時間を短縮し、過負荷のプロキ
シの作成を避けることを基準にして行われる。
【0012】
【発明の実施の形態】図1は、本発明の実施例に従い、
分散したプロキシ・キャッシュ間のWebキャッシング
をサポートするネットワーク・システムを示す。クライ
アント・マシン101、102とコンテンツ・サーバ1
07、108との間のインターネットにプロキシ・キャ
ッシュ・サーバ105、106が配置される。インター
ネットにはドメイン・ネーム・サーバ(DNS)10
3、104もあり、論理ホスト名を物理IPアドレスに
マップするため使用される。コンテンツ・サーバ10
7、108と同様、プロキシ・キャッシュ105、10
6は通常、メイン・メモリとディスクを含む巨大なスト
レージ・スペースを持つ高性能サーバ・コンピュータ・
システムである。例えばIBMのSP/2、RS/60
00サーバやPCサーバは、プロキシ・キャッシュ・サ
ーバ、コンテンツ・サーバの両方として使用することが
できる。一方クライアント・マシン101、102は通
常はPCまたはワークステーションである。
【0013】プロキシ・キャッシュ・サーバ、プロキシ
・キャッシュ、プロキシ・サーバ、プロキシといった呼
び名は、本発明の開示内容に関しては相互に置き換えら
れる用語として使用している。これらの用語は全てクラ
イアント・マシン101、102とコンテンツ・サーバ
107、108間のインターネット100でWebオブ
ジェクトをキャッシュするコンピュータ・システムを表
す。それらの間でプロキシ・キャッシュ105、106
を地理的に遠い場所に配置することができる。いくつか
はローカル・クラスタ内に配置できる。ただし、あるク
ラスタを他のクラスタから地理的に離れた場所に配置し
てもよい。例えば、プロキシ・キャッシュのクラスタは
カリフォルニア州サンノゼに、プロキシ・キャッシュの
他のクラスタはニューヨークに配置することができる。
【0014】クライアント・マシン101、102のユ
ーザは、インターネット100を通してコンテンツ・サ
ーバ107、108に格納された情報にアクセスする。
プロキシ・キャッシュ105、106が配置されている
とき、クライアント・リクエストは最初に、コンテンツ
・サーバ107、108ではなくプロキシ・キャッシュ
105、106に送られる。要求されたオブジェクトが
プロキシ・キャッシュ105、106で見つかった場
合、オブジェクトはプロキシ・キャッシュ105、10
6から直接クライアント・マシン101、102に返さ
れる。一方、要求されたオブジェクトがプロキシ・キャ
ッシュ105、106で見つからない場合、リクエスト
はコンテンツ・サーバ107、108に転送される。
【0015】通常、ネットスケープ・コミュニケーショ
ンズ社のネットスケープ・ナビゲータやマイクロソフト
社のインターネット・エクスプローラ等のブラウザ・ソ
フトウェアは、クライアント・マシン101、102で
動作する。クライアント・マシンのユーザは通常、htt
p://www.ibm.com等のURLをブラウザのアドレス・フ
ィールドに指定してWebサイトにアクセスする。ハッ
シングをベースにした共同Webキャッシングの場合、
このようなURLは、ハッシュ値を計算するために用い
られ、ハッシュ値はプロキシの1つにマップされる。U
RLのプロキシ・キャッシュ・サーバへのハッシング
は、クライアント・マシンのブラウザ・ソフトウェアに
より行える。その場合、プロキシの論理ホスト名は通常
ブラウザによって用いられる。この論理名は、ネットワ
ークのDNSにより物理IPアドレスにマップする必要
がある。これに代えて、ブラウザ・ソフトウェアがUR
Lをハッシュ値に変換し、ハッシュ値をDNSに送るだ
けでもよい。そこで、ハッシュ値からプロキシの物理I
PアドレスへのマッピングがDNSにより行われる。タ
ーゲット・プロキシのIPアドレスが識別されると、リ
クエストがターゲット・プロキシに送られる。要求され
たオブジェクトがプロキシ・キャッシュでローカルに見
つかった場合、オブジェクトはプロキシから直接クライ
アント・マシンに返される。他の場合、リクエストはプ
ロキシ・キャッシュによりコンテンツ・サーバに転送さ
れる。
【0016】ハッシュ値から共同プロキシ群間のプロキ
シ・キャッシュへのマッピングは、好適にはDNSによ
り行われる。これは、共同プロキシ・キャッシュの変更
をDNSによって管理する方が効率的だからである。D
NSは、ネットワークから削除したりネットワークに追
加したりできる。このような変更をインターネットのク
ライアント・マシンの各々に適用することは困難であ
る。ただし理論上は、クライアント・マシンのブラウザ
・ソフトウェアによりマッピングを行うことができる。
その場合、これは一般に物理IPアドレスではなく論理
ホスト名で行われる。その場合でもブラウザは論理プロ
キシ名を物理IPアドレスにマップするためDNSに送
る。従って、待ち時間対応ハッシングはDNSにより実
行するのが望ましい。ブラウザは、ハッシュ値を計算
し、共同プロキシ・キャッシュの1つのIPアドレスに
マップするためDNSに送るだけである。
【0017】図2は、本発明の実施例に従った待ち時間
対応ハッシングをサポートするDNSシステムを示す。
DNSシステム(図1の103、104)は、CPU2
00、ディスク202、及びダイナミックRAM(DR
AM)メモリ201を含むコンピュータ・システムであ
る。DNSサーバはインターネットに接続される。
【0018】待ち時間対応ハッシング204に関連する
DNSロジックは、ディスク202に格納された実行可
能プログラム・ロジックである。これをメモリ201に
ロードして、ハッシュ値から共同プロキシ・キャッシュ
群のプロキシのIPアドレスへのマッピングを実行する
ことができる。
【0019】正規のDNSロジック203はまた、ディ
スク202に格納された実行可能プログラム・ロジック
であり、メモリ202にロードして他のDNS機能を実
行することもできる。
【0020】待ち時間対応ハッシング・ロジック204
の主な機能モジュールは、候補識別モジュール205
(詳細は図5)、ターゲット選択モジュール206(詳
細は図8)、及びローカル収集モジュール207であ
る。
【0021】図3は、一連のプロキシ・キャッシュ間で
待ち時間対応ハッシングをサポートするDNSによる標
準動作を示すフローチャートである。リクエストが入る
と、システムは最初、リクエストが待ち時間対応ハッシ
ングに関連するかどうかを確認する(301)。関連し
ない場合、システムは正規のDNS機能を実行する(3
03)。関連する場合、システムは最初に一連のプロキ
シ・キャッシュ候補302を識別する。このプロキシ・
キャッシュ候補群から、待ち時間遅延及び負荷状態を考
慮した後にプロキシを選択する(304)。
【0022】図4は、本発明の実施例に従った待ち時間
対応ハッシングの例を示す。ハッシュ値スペースは多数
のハッシュ・パーティション402に分けられる。UR
Lハッシュ値はそれぞれパーティションの1つに分類さ
れる。ハッシュ・パーティションはそれぞれプロキシI
D401にマップされる。例えば、a、d、g、b、
e、h、...はハッシュ・パーティションにマップさ
れたプロキシの識別子である。一例として、URL u
l406及びu2 407が、それぞれプロキシa及び
hに対応するハッシュ・パーティションにハッシュされ
ているとする。待ち時間を考慮しない場合、URL u
lはプロキシaに、URL u2はプロキシhにそれぞ
れハッシュされる。しかし、待ち時間を考慮すると、ハ
ッシュ値スペースで最初にプロキシ候補として付近にあ
る他の2つのプロキシが識別される。次に、405で指
定された待ち時間遅延が調べられ、待ち時間遅延が最小
のプロキシが選択される。その結果、URL ulのタ
ーゲット・プロキシとしてプロキシa、URL u2の
ターゲット・プロキシとしてプロキシcが選択される。
【0023】図5は、本発明の実施例に従って、図2の
候補識別モジュール205のフローチャートを示す。候
補識別モジュール205は、URLから検索されたハッ
シュ値に対して一連のプロキシ・キャッシュ候補を識別
するモジュールである。ハッシュ値は、クライアント・
マシンからアクセスできるので、好適にはクライアント
・マシン(図1の101、102)のブラウザ・ソフト
ウェアにより計算される。501で、クライアント・マ
シンからの所定のハッシュ値は最初、アンカ・ハッシュ
・パーティションにマップされる。これは、可能なハッ
シュ値を所定数のパーティションに分けることによって
簡単に行える。アンカ・パーティションは従って、ハッ
シュ・パーティションの境界に対してハッシュ値を確認
することによって識別することができる。アンカ・ハッ
シュ・パーティションが識別されると、502で、1つ
以上の付近のハッシュ・パーティションをアンカ・ハッ
シュ・パーティションに加えることによって、候補にな
るハッシュ・パーティション群が形成される。付近のハ
ッシュ・パーティションは、アンカ・ハッシュ・パーテ
ィションよりもハッシュ値が大きいか小さい、または一
定数大きいか小さいパーティションである。ハッシュ・
パーティションが循環データ構造として扱われることは
理解されよう。つまり、ハッシュ値が最大のパーティシ
ョンは順番が最後になり、ハッシュ値が最小のパーティ
ションの次になる。最後に503で、ハッシュ・パーテ
ィション候補群がプロキシ候補群にマップされる。これ
らのプロキシ候補は、ターゲット選択モジュール(図2
の206)により調べられ、待ち時間遅延と負荷状態を
もとにターゲット・プロキシが見つけられる。
【0024】各ハッシュ・パーティションに最初、プロ
キシのIPアドレスが割当てられている場合、303で
プロキシ・キャッシュ候補群にハッシュ・パーティショ
ン候補群をマップすることがかなり簡単になることは理
解されよう。例えば簡単なルックアップで十分である。
ハッシュ・パーティションにプロキシ・キャッシュを割
当てる方法は様々である。各パーティションを1乃至P
の整数にハッシュするという単純な方法も考えられる。
ここでPはプロキシ・キャッシュの総数である。数はそ
れぞれプロキシ・キャッシュを表す。ハッシュ・パーテ
ィション総数が十分多いとき、これらのハッシュ・パー
ティションは全てのプロキシ・キャッシュ間に多少とも
均等に分散される。また、最初にプロキシ・キャッシュ
毎に、0乃至1の間でN/Pの乱数を生成することもで
きる。ここでNはハッシュ・パーティション総数、Pは
プロキシ・キャッシュ総数である。N/P乱数はそれぞ
れ、対応する同じプロキシIDに関連付けられる。従っ
て生成される乱数合計はN、うちN/P個が1つのプロ
キシIDに関連付けられる。次に、これらN個の乱数が
ソートされてリストが作成される。そこで、ソートされ
たリストの各乱数に関連付けられたプロキシIDを各ハ
ッシュ・パーティションに割当てることができる。
【0025】Webオブジェクトをキャッシュするため
世界各地に設立されるデータセンターが増えると、分散
した共同プロキシ・キャッシュを地理的に分散したクラ
スタと見ることができることは理解されよう。各クラス
タ内には、1つ以上のサーバを配置することができる。
更にプロキシ・キャッシュ・サーバの数はクラスタ毎に
かなり違っていてもよい。その場合、特別なマッピング
によりターゲット選択モジュール(図2の206)が、
閉じた地域内のURLリクエストに対応するプロキシを
簡単に見つけることができる。
【0026】図6は、その場所が地理的に分散したクラ
スタと見ることのできるプロキシへのハッシュ・パーテ
ィションの間接マッピングを示すフローチャートであ
る。M個のクラスタがあるとする。クラスタのプロキシ
・キャッシュ数はCj、j=1、2、...、Mと表
す。601で最初、2レベル・ラウンドロビン法によ
り、間接マッピングでプロキシIDアレイが作成され
る。すなわち、最初にクラスタが選択され、選択された
クラスタ内からプロキシ・キャッシュが選択されるが、
これは全てラウンドロビン方式である。つまり選択され
たクラスタ毎にプロキシ・キャッシュが一度に1つずつ
選択されていき、キャッシュが尽きるまでこの操作が繰
り返される。このプロキシIDアレイの総数はM*LC
Mcである。LCMcはCj、j=1、2、...、M
の最小公倍数である。次に602で、ハッシュ・パーテ
ィション・セグメントが作成され、各パーティション
に、601で作成されたプロキシIDアレイのインデッ
クスが割当てられる。Pjは、プロキシIDアレイにプ
ロキシIDが出現する回数を表す。プロキシIDはそれ
ぞれ、ハッシュ・パーティション・セグメントのLCM
p個のハッシュ・パーティションにマップされる。LC
MpはPj、j=1、2、...、Mの最小公倍数であ
る。その場合、ハッシュ・パーティション・セグメント
の大きさはLCMp*ΣPj、j=1、2、...、M
である。プロキシIDアレイにプロキシjがPj回出現
し、プロキシjのインデックスでマップされるハッシュ
・パーティションの総数はLCMpなので、インデック
スはそれぞれセグメントのLCMp/Pj個のハッシュ
・パーティションに割当てられる。ハッシュ・パーティ
ション・セグメントが構成された後、603で、ハッシ
ュ・パーティション・セグメントが一定回数複製され、
ハッシュ・パーティション全体が構成される。
【0027】前記の間接マッピング法の理解を助けるた
め、図7に、2つの地域クラスタ内にある5つのプロキ
シ・キャッシュへのハッシュ・パーティションのマッピ
ング例を示す。1つには2つのプロキシ・キャッシュ7
01があり、もう1つには3つのプロキシ・キャッシュ
702がある。プロキシa、bは第1クラスタにあり、
プロキシc、d、eは第2クラスタにある。プロキシI
Dアレイを作成するには、2と3の最小公倍数は6なの
で合計12の要素が必要である。プロキシIDアレイ7
03は次に、ラウンドロビン方式でクラスタ毎にプロキ
シを選択することによって構成される。プロキシIDア
レイのインデックスも示してある。ハッシュ・パーティ
ション・セグメント704は、プロキシIDアレイのイ
ンデックスをハッシュ・パーティションに割当てること
によって構成される。プロキシa、bはプロキシIDア
レイにそれぞれ3回現れ、プロキシc、d、eはそれぞ
れ2回現れるので、ハッシュ・パーティション・セグメ
ントのサイズは6*5=30である(LCMp=6、Σ
Pj=5)。更にプロキシaはプロキシIDアレイに3
回現れ、そのインデックスは0、4及び8である。イン
デックスはそれぞれ2つのハッシュ・パーティションに
割当てられる(6/3=2)。従って最初の2つのパー
ティションにはインデックス0、次の2つにはインデッ
クス4が割当てられ、次の2つにはインデックス8が割
当てられる。同様に、プロキシcはプロキシIDアレイ
に2回現れ、インデックスは1及び7である。従って3
つのハッシュ・パーティションにインデックス1が、別
の3つのパーティションにインデックス7が割当てられ
る。
【0028】間接マッピング法は、各クラスタに処理能
力の異なるプロキシ・キャッシュがある場合について簡
単に一般化できることも理解されよう。Rjは、クラス
タjのプロキシ・キャッシュの相対処理能力を示す。ハ
ッシュ・バケット・セグメントの総サイズはLCMp*
ΣPjRjになる。前記の図7の例では、第1クラスタ
のプロキシ・キャッシュの能力が、第2クラスタの2倍
であるとき、ハッシュ・パーティション・セグメントの
サイズは6*(2*2+3*1)=42である。その場
合、4つのハッシュ・パーティションにインデックス
0、別の4つのハッシュ・パーティションにインデック
ス4が割当てられ、また別の4つにインデックス8が割
当てられる。
【0029】間接マッピングでは、アンカ・プロキシが
識別されると、候補群がプロキシIDアレイ内の付近の
プロキシから選択されることも理解されよう。その場
合、サイズMの候補群は、各クラスタからの少なくとも
1つのプロキシ・キャッシュIDを含む。Mはクラスタ
総数である。その結果、間接マッピングにより、どのよ
うなリクエストについても地理的に近接したプロキシ・
キャッシュが見つかる可能性が大きくなる。
【0030】図8は、本発明の実施例に従ったターゲッ
ト選択モジュール206(図2)のフローチャートであ
る。変数wは、候補識別モジュール205(図2)によ
り識別されたプロキシ・キャッシュ候補群のサイズを示
す。ターゲット・プロキシ・キャッシュは最初、候補群
からの第1プロキシとして設定される(801)。
【0031】選択モジュールは、w個のプロキシ候補が
全て調べられるまで、プロキシ・キャッシュ候補それぞ
れをループする(802)。全てのプロキシ・キャッシ
ュ候補を調べ、リクエストをハッシュする場合は待ち時
間遅延を改良できるかどうかを確認する(804)。改
良できる場合、プロキシ候補が更に調べられ、現在過負
荷の状態かどうかが確認される(805)。過負荷では
ない場合、プロキシ候補は新しいターゲットになる(8
06)。過負荷のとき、選択モジュールは、候補群の残
りから次のプロキシ・キャッシュ候補を調べる(80
7)。全てのプロキシ候補が調べられた後、最後のター
ゲット・プロキシ・キャッシュが返される(803)。
【0032】待ち時間を改良する基準として最小応答時
間を使用できることも理解されよう。また応答時間が所
定時間だけ良好な場合を除いて、アンカ・プロキシ・キ
ャッシュを優先する結果になる割引応答時間(discount
ed response time)をもとにしてもよい。
【0033】図9は、本発明の実施例に従ってプロキシ
・キャッシュ候補が過負荷かどうか(図8の805)を
判定するフローチャートである。負荷収集モジュール2
07(図2)は、プローブ・メッセージを共同プロキシ
・キャッシュそれぞれに定期的に送り、使用状態を確認
するとする。そのようなプロキシ使用状態が維持され、
平均使用率及び使用率が最大のキャッシュの使用率を計
算することができる。U_maxを、共同プロキシの中で使
用率が最大のプロキシ・キャッシュ・サーバの使用率、
U_meanを平均使用率とする。OVERLOADをプロキシ・キャ
ッシュ・サーバに関して過負荷とみなされる所定定数
(例えば80%)とする。プロキシ・キャッシュ・サー
バの使用率が少なくともU_meanであり、U_maxが少なく
ともOVERLOADのとき(901)、プロキシは過負荷であ
るとみなされる(903)。一方、U_maxがOVERLOAD未
満のとき(902)、プロキシは使用率が少なくとも
(1+delta)*U_meanの場合にのみ過負荷とみなされる
(903)。deltaは定数、例えば20%である。数量delt
aは、好適には過負荷の発生とみなされる前に平均使用
率U_meanに許容可能な差異を与えるため用いられる。十
分有用な標準delta値は20%であるが、基本的には0
と1との間の任意の値が許容範囲であり、deltaとして
使用することができる。
【0034】901、902のいずれの条件も真ではな
いとき、プロキシは過負荷とみなされない(904)。
【0035】使用率が最大のプロキシ・キャッシュ・サ
ーバの使用率は、全てのプロキシ・キャッシュ・サーバ
間の負荷の不均衡を示すことがあることも理解されよ
う。システム全体の不均衡が大きいとき、つまりU_max
が大きい場合、新しいリクエストをプロキシ・キャッシ
ュにハッシュすることに慎重になる必要がある。従って
プロキシ・キャッシュ・サーバは、その使用率がU_mean
に達した場合は過負荷とみなされる。一方、システム全
体が比較的均衡が取れている、つまりU_maxが小さいと
き、新しいリクエストをプロキシ・キャッシュにハッシ
ュすることに"積極的"になる必要がある。その場合、プ
ロキシ・キャッシュ・サーバは、その使用率がU_meanよ
りも所定量だけ大きくなるまで過負荷とみなされない。
負荷収集モジュール207(図2)は、全ての共同プロ
キシ・キャッシュの使用状態を定期的に収集する他に、
クライアント・マシン101、102(図1)と共同プ
ロキシ・キャッシュ105、106(図1)間の待ち時
間遅延を維持する。この待ち時間遅延は、ほとんどが地
理上の距離に依存し、また動的ネットワーク・トラフィ
ックにも依存する。待ち時間遅延もまた定期的に更新さ
れる。
【0036】本発明は、少なくとも1つの現在の好適実
施例に従って、所与のURLに関連する情報をもとに、
そのURLのプロキシ・キャッシュ候補群を示す識別
子、及び少なくとも待ち時間をもとに候補群からプロキ
シ・キャッシュを選択するセレクタを含むことは理解さ
れたい。識別子とセレクタは、ともに、適切なソフトウ
ェア・プログラムが実行される汎用コンピュータに実装
することができる。また、IC(Integrated Circuit)
やICの一部に実装することもできる。従って本発明
は、ハードウェア、ソフトウェア、またはその組み合わ
せに実装可能と理解されるべきものである。
【0037】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0038】(1)プロキシ・キャッシュを選択する方
法であって、所与のURLに関連する情報をもとに該U
RLのプロキシ・キャッシュ候補群を識別するステップ
と、少なくとも待ち時間をもとに前記候補群からプロキ
シ・キャッシュを選択するステップと、を含む、方法。 (2)前記選択ステップは、少なくとも待ち時間と負荷
状態をもとに前記候補群からプロキシ・キャッシュを選
択するステップを含む、前記(1)記載の方法。 (3)前記識別ステップは、前記URLをアンカ・ハッ
シュ・パーティションにハッシュするステップと、付近
の1つ以上のパーティションを前記アンカ・ハッシュ・
パーティションに加えることによってハッシュ・パーテ
ィション候補群を形成するステップと、各パーティショ
ンをプロキシ・キャッシュにマップするステップと、を
含む、前記(1)記載の方法。 (4)前記識別ステップは、プロキシIDアレイへのハ
ッシュ・パーティションの間接マッピングを作成するス
テップと、前記URLをアンカ・ハッシュ・パーティシ
ョンにハッシュするステップと、対応するアンカ・プロ
キシ・キャッシュを見つけるステップと、前記プロキシ
IDアレイから付近の1つ以上のプロキシ・キャッシュ
を前記アンカ・プロキシ・キャッシュに加えることによ
ってプロキシ・キャッシュ候補群を形成するステップ
と、を含む、前記(1)記載の方法。 (5)前記選択ステップは、少なくとも最小応答時間を
もとに前記プロキシ候補群からプロキシ・キャッシュを
選択するステップを含む、前記(1)記載の方法。 (6)前記選択ステップは、割引応答時間が所定量だけ
良好な場合を除いて、少なくとも前記アンカ・プロキシ
・キャッシュを優先する結果になる該割引応答時間をも
とにして前記プロキシ候補群からプロキシ・キャッシュ
を選択するステップを含む、前記(1)記載の方法。 (7)前記選択ステップは、少なくともプロキシ・キャ
ッシュ・サーバが過負荷ではない状態をもとにして前記
プロキシ候補群からプロキシ・キャッシュを選択するス
テップを含む、前記(1)記載の方法。 (8)前記付近のパーティションは、ハッシュ値が前記
アンカ・パーティションより大きいパーティションを含
む、前記(3)記載の方法。 (9)前記付近のパーティションは、ハッシュ値が前記
アンカ・パーティションより小さいパーティションを含
む、前記(3)記載の方法。 (10)前記付近のパーティションは、ハッシュ値が前
記アンカ・パーティションより大きいパーティション及
び前記アンカ・パーティションより小さいパーティショ
ンの両方を含む、前記(3)記載の方法。 (11)前記マッピング・ステップは、各ハッシュ・パ
ーティションを1とPとの間の数にハッシュするステッ
プを含み、Pはプロキシ総数を表す、前記(3)記載の
方法。 (12)前記マッピング・ステップは、各プロキシにつ
いて、Nがハッシュ・パーティション総数、Pがプロキ
シ総数を表すとき、0と1との間のN/P個の乱数を生
成するステップと、生成されたN個の対応する乱数をソ
ートすることによってプロキシ・リストを生成するステ
ップと、ソートされた前記プロキシ・リストをもとに各
ハッシュ・パーティションを1つのプロキシに割当てる
ステップと、を含む、前記(3)記載の方法。 (13)プロキシIDアレイへのハッシュ・パーティシ
ョンの間接マッピングを作成する前記ステップは、共同
プロキシ・キャッシュを持つプロキシIDアレイを形成
するステップと、各ハッシュ・パーティションを前記プ
ロキシIDアレイのインデックスにマップするハッシュ
・パーティション・セグメントを作成するステップと、
前記ハッシュ・パーティション・セグメントを所定回数
複製するステップと、を含む、前記(4)記載の方法。 (14)プロキシ・キャッシュを選択するシステムであ
って、所与のURLに関連する情報をもとに該URLの
プロキシ・キャッシュ候補群を識別する識別子と、少な
くとも待ち時間をもとに前記候補群からプロキシ・キャ
ッシュを選択するセレクタと、を含む、システム。 (15)前記セレクタは、少なくとも待ち時間と負荷状
態をもとに前記候補群からプロキシ・キャッシュを選択
するようにされた、前記(14)記載のシステム。 (16)前記識別子は、前記URLをアンカ・ハッシュ
・パーティションにハッシュし、付近のパーティション
を前記アンカ・ハッシュ・パーティションに加えること
によってハッシュ・パーティション候補群を形成し、各
パーティションをプロキシ・キャッシュにマップする、
ようにされた、前記(14)記載のシステム。 (17)前記識別子は、プロキシIDアレイへのハッシ
ュ・パーティションの間接マッピングを作成し、前記U
RLをアンカ・ハッシュ・パーティションにハッシュ
し、対応するアンカ・プロキシ・キャッシュを見つけ、
前記プロキシIDアレイから付近のプロキシ・キャッシ
ュを前記アンカ・プロキシ・キャッシュに加えることに
よってプロキシ・キャッシュ候補群を形成するようにさ
れた、前記(14)記載のシステム。 (18)前記セレクタは、少なくとも最小応答時間をも
とに前記プロキシ候補群からプロキシ・キャッシュを選
択するようにされた、前記(14)記載のシステム。 (19)前記セレクタは、割引応答時間が所定量だけ良
好な場合を除いて、少なくとも前記アンカ・プロキシ・
キャッシュを優先する結果になる該割引応答時間をもと
にして前記プロキシ候補群からプロキシ・キャッシュを
選択するようにされた、前記(14)記載のシステム。 (20)前記セレクタは、少なくともプロキシ・キャッ
シュ・サーバが過負荷ではない状態をもとにして前記プ
ロキシ候補群からプロキシ・キャッシュを選択するよう
にされた、前記(14)記載のシステム。 (21)前記付近のパーティションは、ハッシュ値が前
記アンカ・パーティションより大きいパーティションを
含む、前記(16)記載のシステム。 (22)前記付近のパーティションは、ハッシュ値が前
記アンカ・パーティションより小さいパーティションを
含む、前記(16)記載のシステム。 (23)前記付近のパーティションは、ハッシュ値が前
記アンカ・パーティションより大きいパーティション及
び前記アンカ・パーティションより小さいパーティショ
ンの両方を含む、前記(16)記載のシステム。 (24)前記識別子は、各ハッシュ・パーティションを
1とPとの間の数にハッシュするようにされ、Pはプロ
キシ総数を表す、前記(16)記載のシステム。 (25)前記識別子は、マッピングにおいて、各プロキ
シについて、Nがハッシュ・パーティション総数、Pが
プロキシ総数を表すとき、0と1との間のN/P個の乱
数を生成し、生成されたN個の対応する乱数をソートす
ることによってプロキシ・リストを生成し、ソートされ
た前記プロキシ・リストをもとに各ハッシュ・パーティ
ションを1つのプロキシに割当てる、ようにされた、前
記(16)記載のシステム。 (26)前記識別子は、プロキシIDアレイへのハッシ
ュ・パーティションの間接マッピングを作成する際、共
同プロキシ・キャッシュを持つプロキシIDアレイを形
成し、前記プロキシIDアレイのインデックスに各ハッ
シュ・パーティションをマップするハッシュ・パーティ
ション・セグメントを作成し、前記ハッシュ・パーティ
ション・セグメントを所定回数複製する、ようにされ
た、前記(17)記載のシステム。 (27)マシンで読取り可能であり、プロキシ・キャッ
シュを選択する方法のステップを実行するために該マシ
ンにより実行可能な命令のプログラムを明確に具体化し
たプログラム・ストレージ・デバイスにおいて、該方法
のステップは、所与のURLに関連する情報をもとに該
URLのプロキシ・キャッシュ候補群を識別するステッ
プと、少なくとも待ち時間をもとに前記候補群からプロ
キシ・キャッシュを選択するステップと、を含む、スト
レージ・デバイス。
【図面の簡単な説明】
【図1】Webキャッシングをサポートするネットワー
ク・システムを示す図である。
【図2】待ち時間対応ハッシングをサポートするDNS
システムを示す図である。
【図3】一連のプロキシ・キャッシュ間で待ち時間対応
ハッシングをサポートするDNSによる動作を示す図で
ある。
【図4】待ち時間対応ハッシングを示す図である。
【図5】図2の候補識別モジュールのフローチャートで
ある。
【図6】その場所を地理的に分散したクラスタとみなす
ことのできるプロキシへのハッシュ・パーティションの
間接マッピングを示すフローチャートである。
【図7】地理的に分散した2つのクラスタ内にある5つ
のプロキシ・キャッシュへのハッシュ・パーティション
のマッピングを示す図である。
【図8】図2のターゲット選択モジュールのフローチャ
ートである。
【図9】プロキシ・キャッシュ候補が過負荷かどうかを
(図8に簡単に述べているように)判定するフローチャ
ートである。
【符号の説明】 100 インターネット 101、102 クライアント・マシン 103、104 ドメイン・ネーム・サーバ(DNS) 105、106 プロキシ・キャッシュ・サーバ 107、108 コンテンツ・サーバ 200 CPU 201 DRAMメモリ 202 ディスク 203 DNSロジック 204 待ち時間対応ハッシング 205 候補識別モジュール 206 ターゲット選択モジュール 207 負荷収集モジュール 401 プロキシID 402 ハッシュ・パーティション 406 URL u1 407 URL u2 701、702 プロキシ・キャッシュ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クン−ルン・ウ アメリカ合衆国10598、ニューヨーク州ヨ ークタウンハイツ、コロンビア・コート 357 (72)発明者 フィリップ・シ−ラン・ユ アメリカ合衆国10514、ニューヨーク州チ ャパクワ、ストーノウェイ 18

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】プロキシ・キャッシュを選択する方法であ
    って、 所与のURLに関連する情報をもとに該URLのプロキ
    シ・キャッシュ候補群を識別するステップと、 少なくとも待ち時間をもとに前記候補群からプロキシ・
    キャッシュを選択するステップと、 を含む、方法。
  2. 【請求項2】前記選択ステップは、少なくとも待ち時間
    と負荷状態をもとに前記候補群からプロキシ・キャッシ
    ュを選択するステップを含む、請求項1記載の方法。
  3. 【請求項3】前記識別ステップは、 前記URLをアンカ・ハッシュ・パーティションにハッ
    シュするステップと、 付近の1つ以上のパーティションを前記アンカ・ハッシ
    ュ・パーティションに加えることによってハッシュ・パ
    ーティション候補群を形成するステップと、 各パーティションをプロキシ・キャッシュにマップする
    ステップと、 を含む、請求項1記載の方法。
  4. 【請求項4】前記識別ステップは、 プロキシIDアレイへのハッシュ・パーティションの間
    接マッピングを作成するステップと、 前記URLをアンカ・ハッシュ・パーティションにハッ
    シュするステップと、 対応するアンカ・プロキシ・キャッシュを見つけるステ
    ップと、 前記プロキシIDアレイから付近の1つ以上のプロキシ
    ・キャッシュを前記アンカ・プロキシ・キャッシュに加
    えることによってプロキシ・キャッシュ候補群を形成す
    るステップと、 を含む、請求項1記載の方法。
  5. 【請求項5】前記選択ステップは、少なくとも最小応答
    時間をもとに前記プロキシ候補群からプロキシ・キャッ
    シュを選択するステップを含む、請求項1記載の方法。
  6. 【請求項6】前記選択ステップは、割引応答時間が所定
    量だけ良好な場合を除いて、少なくとも前記アンカ・プ
    ロキシ・キャッシュを優先する結果になる該割引応答時
    間をもとにして前記プロキシ候補群からプロキシ・キャ
    ッシュを選択するステップを含む、請求項1記載の方
    法。
  7. 【請求項7】前記選択ステップは、少なくともプロキシ
    ・キャッシュ・サーバが過負荷ではない状態をもとにし
    て前記プロキシ候補群からプロキシ・キャッシュを選択
    するステップを含む、請求項1記載の方法。
  8. 【請求項8】前記付近のパーティションは、ハッシュ値
    が前記アンカ・パーティションより大きいパーティショ
    ンを含む、請求項3記載の方法。
  9. 【請求項9】前記付近のパーティションは、ハッシュ値
    が前記アンカ・パーティションより小さいパーティショ
    ンを含む、請求項3記載の方法。
  10. 【請求項10】前記付近のパーティションは、ハッシュ
    値が前記アンカ・パーティションより大きいパーティシ
    ョン及び前記アンカ・パーティションより小さいパーテ
    ィションの両方を含む、請求項3記載の方法。
  11. 【請求項11】前記マッピング・ステップは、各ハッシ
    ュ・パーティションを1とPとの間の数にハッシュする
    ステップを含み、Pはプロキシ総数を表す、請求項3記
    載の方法。
  12. 【請求項12】前記マッピング・ステップは、 各プロキシについて、Nがハッシュ・パーティション総
    数、Pがプロキシ総数を表すとき、0と1との間のN/
    P個の乱数を生成するステップと、 生成されたN個の対応する乱数をソートすることによっ
    てプロキシ・リストを生成するステップと、 ソートされた前記プロキシ・リストをもとに各ハッシュ
    ・パーティションを1つのプロキシに割当てるステップ
    と、 を含む、請求項3記載の方法。
  13. 【請求項13】プロキシIDアレイへのハッシュ・パー
    ティションの間接マッピングを作成する前記ステップ
    は、 共同プロキシ・キャッシュを持つプロキシIDアレイを
    形成するステップと、 各ハッシュ・パーティションを前記プロキシIDアレイ
    のインデックスにマップするハッシュ・パーティション
    ・セグメントを作成するステップと、 前記ハッシュ・パーティション・セグメントを所定回数
    複製するステップと、 を含む、請求項4記載の方法。
  14. 【請求項14】プロキシ・キャッシュを選択するシステ
    ムであって、 所与のURLに関連する情報をもとに該URLのプロキ
    シ・キャッシュ候補群を識別する識別子と、 少なくとも待ち時間をもとに前記候補群からプロキシ・
    キャッシュを選択するセレクタと、 を含む、システム。
  15. 【請求項15】前記セレクタは、少なくとも待ち時間と
    負荷状態をもとに前記候補群からプロキシ・キャッシュ
    を選択するようにされた、請求項14記載のシステム。
  16. 【請求項16】前記識別子は、 前記URLをアンカ・ハッシュ・パーティションにハッ
    シュし、 付近のパーティションを前記アンカ・ハッシュ・パーテ
    ィションに加えることによってハッシュ・パーティショ
    ン候補群を形成し、 各パーティションをプロキシ・キャッシュにマップす
    る、 ようにされた、請求項14記載のシステム。
  17. 【請求項17】前記識別子は、 プロキシIDアレイへのハッシュ・パーティションの間
    接マッピングを作成し、 前記URLをアンカ・ハッシュ・パーティションにハッ
    シュし、 対応するアンカ・プロキシ・キャッシュを見つけ、 前記プロキシIDアレイから付近のプロキシ・キャッシ
    ュを前記アンカ・プロキシ・キャッシュに加えることに
    よってプロキシ・キャッシュ候補群を形成するようにさ
    れた、請求項14記載のシステム。
  18. 【請求項18】前記セレクタは、少なくとも最小応答時
    間をもとに前記プロキシ候補群からプロキシ・キャッシ
    ュを選択するようにされた、請求項14記載のシステ
    ム。
  19. 【請求項19】前記セレクタは、割引応答時間が所定量
    だけ良好な場合を除いて、少なくとも前記アンカ・プロ
    キシ・キャッシュを優先する結果になる該割引応答時間
    をもとにして前記プロキシ候補群からプロキシ・キャッ
    シュを選択するようにされた、請求項14記載のシステ
    ム。
  20. 【請求項20】前記セレクタは、少なくともプロキシ・
    キャッシュ・サーバが過負荷ではない状態をもとにして
    前記プロキシ候補群からプロキシ・キャッシュを選択す
    るようにされた、請求項14記載のシステム。
  21. 【請求項21】前記付近のパーティションは、ハッシュ
    値が前記アンカ・パーティションより大きいパーティシ
    ョンを含む、請求項16記載のシステム。
  22. 【請求項22】前記付近のパーティションは、ハッシュ
    値が前記アンカ・パーティションより小さいパーティシ
    ョンを含む、請求項16記載のシステム。
  23. 【請求項23】前記付近のパーティションは、ハッシュ
    値が前記アンカ・パーティションより大きいパーティシ
    ョン及び前記アンカ・パーティションより小さいパーテ
    ィションの両方を含む、請求項16記載のシステム。
  24. 【請求項24】前記識別子は、各ハッシュ・パーティシ
    ョンを1とPとの間の数にハッシュするようにされ、P
    はプロキシ総数を表す、請求項16記載のシステム。
  25. 【請求項25】前記識別子は、マッピングにおいて、 各プロキシについて、Nがハッシュ・パーティション総
    数、Pがプロキシ総数を表すとき、0と1との間のN/
    P個の乱数を生成し、 生成されたN個の対応する乱数をソートすることによっ
    てプロキシ・リストを生成し、 ソートされた前記プロキシ・リストをもとに各ハッシュ
    ・パーティションを1つのプロキシに割当てる、 ようにされた、請求項16記載のシステム。
  26. 【請求項26】前記識別子は、プロキシIDアレイへの
    ハッシュ・パーティションの間接マッピングを作成する
    際、 共同プロキシ・キャッシュを持つプロキシIDアレイを
    形成し、 前記プロキシIDアレイのインデックスに各ハッシュ・
    パーティションをマップするハッシュ・パーティション
    ・セグメントを作成し、 前記ハッシュ・パーティション・セグメントを所定回数
    複製する、 ようにされた、請求項17記載のシステム。
  27. 【請求項27】マシンで読取り可能であり、プロキシ・
    キャッシュを選択する方法のステップを実行するために
    該マシンにより実行可能な命令のプログラムを明確に具
    体化したプログラム・ストレージ・デバイスにおいて、
    該方法のステップは、 所与のURLに関連する情報をもとに該URLのプロキ
    シ・キャッシュ候補群を識別するステップと、 少なくとも待ち時間をもとに前記候補群からプロキシ・
    キャッシュを選択するステップと、 を含む、ストレージ・デバイス。
JP2001015963A 2000-01-28 2001-01-24 共同Webキャッシングのための遅延対応ハッシングの方法及び構成 Expired - Fee Related JP3697162B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/493,904 US6823377B1 (en) 2000-01-28 2000-01-28 Arrangements and methods for latency-sensitive hashing for collaborative web caching
US09/493904 2000-01-28

Publications (2)

Publication Number Publication Date
JP2001273186A true JP2001273186A (ja) 2001-10-05
JP3697162B2 JP3697162B2 (ja) 2005-09-21

Family

ID=23962190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001015963A Expired - Fee Related JP3697162B2 (ja) 2000-01-28 2001-01-24 共同Webキャッシングのための遅延対応ハッシングの方法及び構成

Country Status (4)

Country Link
US (1) US6823377B1 (ja)
JP (1) JP3697162B2 (ja)
AU (1) AU782314B2 (ja)
GB (1) GB2365166B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011039725A (ja) * 2009-08-10 2011-02-24 Hitachi Ltd ゲートウェイシステム及び制御方法
JP2011510367A (ja) * 2007-12-26 2011-03-31 シマンテック コーポレーション 分散リソース管理のためのバランスしたコンシステント・ハッシュ

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020055972A1 (en) * 2000-05-08 2002-05-09 Weinman Joseph Bernard Dynamic content distribution and data continuity architecture
US7225219B2 (en) * 2000-11-29 2007-05-29 Broadspider Networks, Inc. Distributed caching architecture for computer networks
US20030217147A1 (en) * 2002-05-14 2003-11-20 Maynard William P. Directing a client computer to a least network latency server site
US7284030B2 (en) * 2002-09-16 2007-10-16 Network Appliance, Inc. Apparatus and method for processing data in a network
US7552223B1 (en) 2002-09-16 2009-06-23 Netapp, Inc. Apparatus and method for data consistency in a proxy cache
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US7593530B2 (en) 2002-12-11 2009-09-22 Broadcom Corporation Secure legacy media peripheral association with authentication in a media exchange network
US7124249B1 (en) * 2003-06-26 2006-10-17 Emc Corporation Method and apparatus for implementing a software cache
US20050131893A1 (en) * 2003-12-15 2005-06-16 Sap Aktiengesellschaft Database early parallelism method and system
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
EP1738258A4 (en) 2004-03-13 2009-10-28 Cluster Resources Inc SYSTEM AND METHOD IMPLEMENTING OBJECT TRIGGERS
US8583657B2 (en) * 2004-05-06 2013-11-12 Oracle International Corporation Method and apparatus for using a hash-partitioned index to access a table that is not partitioned or partitioned independently of the hash partitioned index
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
CA2827035A1 (en) 2004-11-08 2006-05-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US20070168405A1 (en) * 2006-01-17 2007-07-19 Ori Pomerantz Self-optimizing network attached storage for multiple geographic locations
GB2440759A (en) 2006-08-11 2008-02-13 Cachelogic Ltd Selecting a download cache for digital data
GB2440760A (en) * 2006-08-11 2008-02-13 Cachelogic Ltd Network and method of transferring data over the network by nodes sending messages containing a subset of list of data available at the node
GB2440774B (en) * 2006-08-11 2011-07-27 Cachelogic Ltd Content Delivery System For Digital Object
GB2440761A (en) 2006-08-11 2008-02-13 Cachelogic Ltd Using a proxy server as a cache in a peer to peer network to speed up the multicast distribution of large files.
US7774470B1 (en) * 2007-03-28 2010-08-10 Symantec Corporation Load balancing using a distributed hash
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US20090144404A1 (en) * 2007-12-04 2009-06-04 Microsoft Corporation Load management in a distributed system
US20090150536A1 (en) * 2007-12-05 2009-06-11 Microsoft Corporation Application layer congestion control
US8943271B2 (en) 2008-06-12 2015-01-27 Microsoft Corporation Distributed cache arrangement
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US10430338B2 (en) * 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8577851B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Content aligned block-based deduplication
US9116850B2 (en) 2010-12-14 2015-08-25 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US10592416B2 (en) 2011-09-30 2020-03-17 Oracle International Corporation Write-back storage cache based on fast persistent memory
US9251186B2 (en) 2012-06-13 2016-02-02 Commvault Systems, Inc. Backup using a client-side signature repository in a networked storage system
KR101983034B1 (ko) * 2012-09-05 2019-09-03 삼성전자주식회사 인터넷을 통한 핸드오버 지원 방법 및 장치
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
WO2015115952A1 (en) * 2014-01-31 2015-08-06 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for obtaining content from a media server
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
GB2526818B (en) 2014-06-03 2021-01-13 Arm Ip Ltd Methods of accessing and providing access to a remote resource from a data processing device
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10592357B2 (en) 2015-12-30 2020-03-17 Commvault Systems, Inc. Distributed file system in a distributed deduplication data storage system
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US10375154B2 (en) * 2016-07-29 2019-08-06 Microsoft Technology Licensing, Llc Interchangeable retrieval of content
US10693947B2 (en) 2016-09-09 2020-06-23 Microsoft Technology Licensing, Llc Interchangeable retrieval of sensitive content via private content distribution networks
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10721719B2 (en) * 2017-06-20 2020-07-21 Citrix Systems, Inc. Optimizing caching of data in a network of nodes using a data mapping table by storing data requested at a cache location internal to a server node and updating the mapping table at a shared cache external to the server node
US10791168B1 (en) 2018-05-21 2020-09-29 Rafay Systems, Inc. Traffic aware network workload management system
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11936757B1 (en) 2022-04-29 2024-03-19 Rafay Systems, Inc. Pull-based on-demand application deployment to edge node
US12003600B2 (en) * 2022-06-21 2024-06-04 Oxylabs, Uab Network coordination between proxy servers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222449A (ja) * 1997-01-31 1998-08-21 Nec Corp データサーバアクセス方法及びlan
WO1998053410A2 (en) * 1997-05-22 1998-11-26 Trustees Of Boston University A method and system for distributed caching, prefetching and replication
JPH11224219A (ja) * 1998-02-05 1999-08-17 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ制御方法及び分散制御装置及び分散キャッシュシステム及び分散キャッシュ制御プログラムを格納した記憶媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935207A (en) * 1996-06-03 1999-08-10 Webtv Networks, Inc. Method and apparatus for providing remote site administrators with user hits on mirrored web sites
US5873117A (en) * 1996-07-01 1999-02-16 Sun Microsystems, Inc. Method and apparatus for a directory-less memory access protocol in a distributed shared memory computer system
US6185601B1 (en) * 1996-08-02 2001-02-06 Hewlett-Packard Company Dynamic load balancing of a network of client and server computers
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6070191A (en) * 1997-10-17 2000-05-30 Lucent Technologies Inc. Data distribution techniques for load-balanced fault-tolerant web access
WO1999023571A1 (en) * 1997-11-03 1999-05-14 Inca Technology, Inc. Automatically configuring network-name-services
US6205481B1 (en) * 1998-03-17 2001-03-20 Infolibria, Inc. Protocol for distributing fresh content among networked cache servers
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
US6330561B1 (en) * 1998-06-26 2001-12-11 At&T Corp. Method and apparatus for improving end to end performance of a data network
US6338117B1 (en) * 1998-08-28 2002-01-08 International Business Machines Corporation System and method for coordinated hierarchical caching and cache replacement
US6286084B1 (en) * 1998-09-16 2001-09-04 Cisco Technology, Inc. Methods and apparatus for populating a network cache
US6438652B1 (en) 1998-10-09 2002-08-20 International Business Machines Corporation Load balancing cooperating cache servers by shifting forwarded request
US6330605B1 (en) * 1998-11-19 2001-12-11 Volera, Inc. Proxy cache cluster
US6701415B1 (en) 1999-03-31 2004-03-02 America Online, Inc. Selecting a cache for a request for information
US6502175B1 (en) * 1999-03-31 2002-12-31 Lucent Technologies Inc. Method and apparatus for locating caches in a network to optimize performance
US6408362B1 (en) * 1999-06-24 2002-06-18 International Business Machines Corporation Data processing system, cache, and method that select a castout victim in response to the latencies of memory copies of cached data
US6532492B1 (en) * 1999-09-15 2003-03-11 International Business Machines Corporation Methods, systems and computer program products for cache management using admittance control
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222449A (ja) * 1997-01-31 1998-08-21 Nec Corp データサーバアクセス方法及びlan
WO1998053410A2 (en) * 1997-05-22 1998-11-26 Trustees Of Boston University A method and system for distributed caching, prefetching and replication
JP2001526814A (ja) * 1997-05-22 2001-12-18 トラスティーズ・オブ・ボストン・ユニバーシティ 分散型キャッシュ、プリフェッチ、複写の方法およびそのシステム
JPH11224219A (ja) * 1998-02-05 1999-08-17 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ制御方法及び分散制御装置及び分散キャッシュシステム及び分散キャッシュ制御プログラムを格納した記憶媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011510367A (ja) * 2007-12-26 2011-03-31 シマンテック コーポレーション 分散リソース管理のためのバランスしたコンシステント・ハッシュ
JP2011039725A (ja) * 2009-08-10 2011-02-24 Hitachi Ltd ゲートウェイシステム及び制御方法
US8510372B2 (en) 2009-08-10 2013-08-13 Hitachi, Ltd. Gateway system and control method

Also Published As

Publication number Publication date
GB0029651D0 (en) 2001-01-17
JP3697162B2 (ja) 2005-09-21
GB2365166A (en) 2002-02-13
GB2365166B (en) 2004-08-18
AU7217300A (en) 2001-08-02
AU782314B2 (en) 2005-07-21
US6823377B1 (en) 2004-11-23

Similar Documents

Publication Publication Date Title
JP3697162B2 (ja) 共同Webキャッシングのための遅延対応ハッシングの方法及び構成
US6078943A (en) Method and apparatus for dynamic interval-based load balancing
Ross Hash routing for collections of shared web caches
US7565450B2 (en) System and method for using a mapping between client addresses and addresses of caches to support content delivery
US6119143A (en) Computer system and method for load balancing with selective control
US7321926B1 (en) Method of and system for allocating resources to resource requests
US7584262B1 (en) Method of and system for allocating resources to resource requests based on application of persistence policies
US7908337B2 (en) System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
US7343422B2 (en) System and method for using uniform resource locators to map application layer content names to network layer anycast addresses
US7577754B2 (en) System and method for controlling access to content carried in a caching architecture
US6122666A (en) Method for collaborative transformation and caching of web objects in a proxy network
Baker et al. Distributed cooperative Web servers
WO2008103530A1 (en) Prallel retrieval system
KR19980087398A (ko) 인터넷에서의 동적 경로배정 방법 및 장치
Loukopoulos et al. An overview of data replication on the Internet
Zhu et al. Adaptive load sharing for clustered digital library servers
US20030225859A1 (en) Request mapping for load balancing
EP1277327B1 (en) System and method for using network layer uniform resource locator routing to locate the closest server carrying specific content
JP2000112908A (ja) 負荷分散dnsシステム
Asaka et al. Distributed web caching using hash-based query caching method
Jung et al. Forecasting Load Balancing Method by Prediction Hot Spots in the Shared Web Caching System
Ciciani et al. Analysis of design alternatives for reverse proxy cache providers
Narlikar et al. TaBLA: a client-based scheduling algorithm for Web proxy clusters
Mahmood Object grouping and replication algorithms for word wide web
Bhinder et al. Evaluation of request distribution schemes for Web-server clusters

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040603

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040830

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040902

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050701

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090708

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100708

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110708

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120708

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130708

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees