JPH10301880A - スケーラブルネットワークオブジェクトキャッシュ - Google Patents
スケーラブルネットワークオブジェクトキャッシュInfo
- Publication number
- JPH10301880A JPH10301880A JP10091588A JP9158898A JPH10301880A JP H10301880 A JPH10301880 A JP H10301880A JP 10091588 A JP10091588 A JP 10091588A JP 9158898 A JP9158898 A JP 9158898A JP H10301880 A JPH10301880 A JP H10301880A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- directory
- copy
- network
- request
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
(57)【要約】
【課題】 スケーラビリティに優れたネットワーク用分
散型キャッシュシステムを提供する。 【解決手段】 ネットワーク上にオブジェクトキャッシ
ュ503〜507を配置しておき、そのいくつかにオリ
ジナル情報源からのデータオブジェクトのコピーを記憶
させておく。受信キャッシュ501にクライアント50
2からあるオブジェクトに対するリクエストがあれば、
そのオブジェクトに関するディレクトリリストがどのオ
ブジェクトキャッシュ503〜507に記憶されている
かをディレクトリロケータ関数508を実行することに
より求め、受信キャッシュ501はその求められたキャ
ッシュにデータオブジェクトのコピーが何処に記憶され
ているかを問い合わせる。
散型キャッシュシステムを提供する。 【解決手段】 ネットワーク上にオブジェクトキャッシ
ュ503〜507を配置しておき、そのいくつかにオリ
ジナル情報源からのデータオブジェクトのコピーを記憶
させておく。受信キャッシュ501にクライアント50
2からあるオブジェクトに対するリクエストがあれば、
そのオブジェクトに関するディレクトリリストがどのオ
ブジェクトキャッシュ503〜507に記憶されている
かをディレクトリロケータ関数508を実行することに
より求め、受信キャッシュ501はその求められたキャ
ッシュにデータオブジェクトのコピーが何処に記憶され
ているかを問い合わせる。
Description
【0001】
【発明の属する技術分野】本発明はネットワーク上のオ
ブジェクトのキャッシングに関し、より特定的には、ス
ケールラブルな分散型ディレクトリを用いて、キャッシ
ュされたオブジェクトを管理する方法に関する。
ブジェクトのキャッシングに関し、より特定的には、ス
ケールラブルな分散型ディレクトリを用いて、キャッシ
ュされたオブジェクトを管理する方法に関する。
【0002】
【背景技術】データオブジェクトのキャッシングは、ネ
ットワーク情報サービスのスケーラビリティの向上に利
用される。キャッシングは、大量のデータオブジェクト
がネットワークに加えられる場合に発生しうるネットワ
ーク上のサービスの劣化を抑える助けとなる。キャッシ
ングを用いない場合、ユーザがネットワークを通じてデ
ータオブジェクトをリクエストすると、そのデータオブ
ジェクトの情報源にオブジェクトのコピーの送信が要求
される。遠隔サイトやデータオブジェクトの数が多い大
規模なネットワークでは、この要求を処理するのに長時
間かかるか、またはネットワークの状態、ネットワーク
トラフィック、およびデータオブジェクト情報源の状態
によってまったく処理不能となる場合がある。キャッシ
ングを用いるシステムは、オブジェクト情報源以外の最
低一箇所、多くの場合はリクエスト元の近くの位置に、
データオブジェクトのコピーを記憶する。オブジェクト
の別情報源が最低1つ存在すること、およびその別情報
源とリクエスト元のユーザとの状況がおそらくはより好
都合なために、リクエスト元のユーザにコピーを迅速か
つ正しく配信してサービスの向上を計ることができる。
ットワーク情報サービスのスケーラビリティの向上に利
用される。キャッシングは、大量のデータオブジェクト
がネットワークに加えられる場合に発生しうるネットワ
ーク上のサービスの劣化を抑える助けとなる。キャッシ
ングを用いない場合、ユーザがネットワークを通じてデ
ータオブジェクトをリクエストすると、そのデータオブ
ジェクトの情報源にオブジェクトのコピーの送信が要求
される。遠隔サイトやデータオブジェクトの数が多い大
規模なネットワークでは、この要求を処理するのに長時
間かかるか、またはネットワークの状態、ネットワーク
トラフィック、およびデータオブジェクト情報源の状態
によってまったく処理不能となる場合がある。キャッシ
ングを用いるシステムは、オブジェクト情報源以外の最
低一箇所、多くの場合はリクエスト元の近くの位置に、
データオブジェクトのコピーを記憶する。オブジェクト
の別情報源が最低1つ存在すること、およびその別情報
源とリクエスト元のユーザとの状況がおそらくはより好
都合なために、リクエスト元のユーザにコピーを迅速か
つ正しく配信してサービスの向上を計ることができる。
【0003】オブジェクトキャッシングが使用されるネ
ットワークの一例として、インターネットがある。イン
ターネット上でキャッシングを用いるには、オリジナル
情報源のサーバ以外にインターネットに接続された最低
1つのサーバ上に、(ウェブサイト等からの)ハイパー
テキストファイルのコピーをキャッシュする。例えば、
日本のサーバ上のある人気のあるファイルを米国のクラ
イアントがリクエストする度に、インターネット上でワ
ールドワイドウェブを介してそのファイルを取り寄せる
代わりに、米国内でそのファイルをコピーしてキャッシ
ュサーバに記憶しておくことができる。その後、そのフ
ァイルを米国の他のクライアントがリクエストする場合
は、日本のサーバではなく米国内のキャッシュサーバか
らそのファイルを入手することができる。この利点は、
リクエストおよびコピーのどちらも、リクエスト元と日
本のオリジナル情報源のサーバとの間よりもキャッシュ
サーバとの間のほうが、インターネット中で通過するル
ータおよびノード(中継点)の数が少なくてすむことで
ある。このため、コピー入手までの遅れが少なくなり、
かつリクエスト元のユーザがコピーを正しく受信できる
可能性が高くなる。こうして、米国のクライアントが日
本のファイルを入手する費用および待ち時間(遅れ)を
大幅に低減することができる。
ットワークの一例として、インターネットがある。イン
ターネット上でキャッシングを用いるには、オリジナル
情報源のサーバ以外にインターネットに接続された最低
1つのサーバ上に、(ウェブサイト等からの)ハイパー
テキストファイルのコピーをキャッシュする。例えば、
日本のサーバ上のある人気のあるファイルを米国のクラ
イアントがリクエストする度に、インターネット上でワ
ールドワイドウェブを介してそのファイルを取り寄せる
代わりに、米国内でそのファイルをコピーしてキャッシ
ュサーバに記憶しておくことができる。その後、そのフ
ァイルを米国の他のクライアントがリクエストする場合
は、日本のサーバではなく米国内のキャッシュサーバか
らそのファイルを入手することができる。この利点は、
リクエストおよびコピーのどちらも、リクエスト元と日
本のオリジナル情報源のサーバとの間よりもキャッシュ
サーバとの間のほうが、インターネット中で通過するル
ータおよびノード(中継点)の数が少なくてすむことで
ある。このため、コピー入手までの遅れが少なくなり、
かつリクエスト元のユーザがコピーを正しく受信できる
可能性が高くなる。こうして、米国のクライアントが日
本のファイルを入手する費用および待ち時間(遅れ)を
大幅に低減することができる。
【0004】キャッシングを採用するシステムは、3つ
の機能上の構成要素からなることが理解できる。第1
に、キャッシュは、ユーザによってリクエストされたデ
ータオブジェクトのキャッシュされたコピーの場所を決
定する検索システムを含む。第2に、キャッシングを採
用するシステムは、リクエストされたオブジェクトの1
つ以上のキャッシュされたコピーの場所を検索システム
が突き止めた場合に、どのコピーを取り出すのかを決定
する決定システムを含む。最後に、維持システムは、古
い期限切れのオブジェクトのコピーをキャッシュから取
り除き、キャッシングによって記憶された情報の正確さ
を全体的に維持する助けをする。
の機能上の構成要素からなることが理解できる。第1
に、キャッシュは、ユーザによってリクエストされたデ
ータオブジェクトのキャッシュされたコピーの場所を決
定する検索システムを含む。第2に、キャッシングを採
用するシステムは、リクエストされたオブジェクトの1
つ以上のキャッシュされたコピーの場所を検索システム
が突き止めた場合に、どのコピーを取り出すのかを決定
する決定システムを含む。最後に、維持システムは、古
い期限切れのオブジェクトのコピーをキャッシュから取
り除き、キャッシングによって記憶された情報の正確さ
を全体的に維持する助けをする。
【0005】図1に従来のキャッシングシステムの階層
構造を示す。クライアント101はキャッシュサーバA
102にデータオブジェクトをリクエストする。以下、
「キャッシュ」はキャッシュサーバをさすものとする。
キャッシュA102(クライアントからオブジェクトの
リクエストを受信するキャッシュ)は、一般にはネット
ワーク的にクライアントの「近くに」位置する。つま
り、キャッシュAとクライアントとは、直接またはネッ
トワークを介して迅速かつ信頼性をもって、または少な
くともクライアント101がキャッシュA以外のサーバ
と通信するよりは迅速かつ信頼性をもって、互いに通信
しあえる。ネットワーク的にクライアントの「近くに」
位置するキャッシュサーバは、ネットワーク的に「近く
ない」他のサーバよりも物理的には離れている場合があ
ることを理解されたい。
構造を示す。クライアント101はキャッシュサーバA
102にデータオブジェクトをリクエストする。以下、
「キャッシュ」はキャッシュサーバをさすものとする。
キャッシュA102(クライアントからオブジェクトの
リクエストを受信するキャッシュ)は、一般にはネット
ワーク的にクライアントの「近くに」位置する。つま
り、キャッシュAとクライアントとは、直接またはネッ
トワークを介して迅速かつ信頼性をもって、または少な
くともクライアント101がキャッシュA以外のサーバ
と通信するよりは迅速かつ信頼性をもって、互いに通信
しあえる。ネットワーク的にクライアントの「近くに」
位置するキャッシュサーバは、ネットワーク的に「近く
ない」他のサーバよりも物理的には離れている場合があ
ることを理解されたい。
【0006】クライアントのリクエストは、クライアン
ト101とキャッシュA102とを接続するネットワー
ク(図示せず)を介して送信できる。もしキャッシュA
がオブジェクトのコピーを持っていれば、キャッシュA
はそれをクライアント101に送信する。もしリクエス
トされたデータを持っていなければ、キャッシュA10
2はキャッシュされたコピーを検索しなければならな
い。この場合、キャッシュA102はまず、階層レベル
が同じ近隣キャッシュ群、つまりキャッシュB103、
キャッシュC104、およびキャッシュD105にリク
エストを送信する。キャッシュA102、キャッシュB
103、キャッシュC104、およびキャッシュD10
5は、ネットワーク(図示せず)で接続できる。各キャ
ッシュは、応答中のキャッシュがリクエストされたオブ
ジェクトのコピーを持っているかどうかを知らせるメッ
セージをキャッシュA102に送って、キャッシュA1
02からのリクエストに応じる。同階層レベルのキャッ
シュ群がリクエストされたオブジェクトを持っていなけ
れば、キャッシュA102は次の階層レベルのキャッシ
ュE106にオブジェクトのリクエストを送信する。キ
ャッシュA102は、ネットワーク(図示せず)によっ
てキャッシュE106に接続できる。同様に、もしキャ
ッシュE106がオブジェクトを持っていなければ、キ
ャッシュE106は同じ階層レベルのキャッシュ群、つ
まりキャッシュF107およびキャッシュG108をポ
ーリングする。キャッシュE106、キャッシュF10
7、およびキャッシュG108はネットワーク(図示せ
ず)で接続できる。これらのキャッシュ群のどれもオブ
ジェクトを持っていない場合は、オブジェクトのオリジ
ナルバージョンが存在するサーバ109にメッセージが
送られる。サーバ109に送信されるメッセージは、リ
クエストされたオブジェクトのコピーをクライアント1
01に送信するようサーバ109に要求する。いずれか
1つのキャッシュがオブジェクトのコピーを持っている
というメッセージを送信する場合は、そのキャッシュが
クライアント101にオブジェクトのコピーを送信する
よう要求される。一方、1つ以上のキャッシュ群が、オ
ブジェクトのコピーを持っているというメッセージを送
信する場合は、決定関数を実行して、どのキャッシュが
オブジェクトのコピーをクライアント101に送信する
かを選択しなければならない。
ト101とキャッシュA102とを接続するネットワー
ク(図示せず)を介して送信できる。もしキャッシュA
がオブジェクトのコピーを持っていれば、キャッシュA
はそれをクライアント101に送信する。もしリクエス
トされたデータを持っていなければ、キャッシュA10
2はキャッシュされたコピーを検索しなければならな
い。この場合、キャッシュA102はまず、階層レベル
が同じ近隣キャッシュ群、つまりキャッシュB103、
キャッシュC104、およびキャッシュD105にリク
エストを送信する。キャッシュA102、キャッシュB
103、キャッシュC104、およびキャッシュD10
5は、ネットワーク(図示せず)で接続できる。各キャ
ッシュは、応答中のキャッシュがリクエストされたオブ
ジェクトのコピーを持っているかどうかを知らせるメッ
セージをキャッシュA102に送って、キャッシュA1
02からのリクエストに応じる。同階層レベルのキャッ
シュ群がリクエストされたオブジェクトを持っていなけ
れば、キャッシュA102は次の階層レベルのキャッシ
ュE106にオブジェクトのリクエストを送信する。キ
ャッシュA102は、ネットワーク(図示せず)によっ
てキャッシュE106に接続できる。同様に、もしキャ
ッシュE106がオブジェクトを持っていなければ、キ
ャッシュE106は同じ階層レベルのキャッシュ群、つ
まりキャッシュF107およびキャッシュG108をポ
ーリングする。キャッシュE106、キャッシュF10
7、およびキャッシュG108はネットワーク(図示せ
ず)で接続できる。これらのキャッシュ群のどれもオブ
ジェクトを持っていない場合は、オブジェクトのオリジ
ナルバージョンが存在するサーバ109にメッセージが
送られる。サーバ109に送信されるメッセージは、リ
クエストされたオブジェクトのコピーをクライアント1
01に送信するようサーバ109に要求する。いずれか
1つのキャッシュがオブジェクトのコピーを持っている
というメッセージを送信する場合は、そのキャッシュが
クライアント101にオブジェクトのコピーを送信する
よう要求される。一方、1つ以上のキャッシュ群が、オ
ブジェクトのコピーを持っているというメッセージを送
信する場合は、決定関数を実行して、どのキャッシュが
オブジェクトのコピーをクライアント101に送信する
かを選択しなければならない。
【0007】図2〜図4は公知の決定システムを示す。
クライアント201はキャッシュA202にオブジェク
トのリクエスト(図2では“request(1)”で
示す)を送信する。キャッシュA202はコピーを持っ
ているかどうかを判断する。もし持っていれば、キャッ
シュA202はクライアント201にコピーを送信す
る。もし持っていなければ、キャッシュA202はすべ
ての近隣キャッシュ群203〜207に、“UDP_p
ing_req(2)”で示すUDP pingリクエ
ストと呼ばれるリクエストを送信する。各メッセージの
後の括弧内の数字(“request(1)”、“UD
P_ping_req(2)”等)は、メッセージが送
信される順番を示す。
クライアント201はキャッシュA202にオブジェク
トのリクエスト(図2では“request(1)”で
示す)を送信する。キャッシュA202はコピーを持っ
ているかどうかを判断する。もし持っていれば、キャッ
シュA202はクライアント201にコピーを送信す
る。もし持っていなければ、キャッシュA202はすべ
ての近隣キャッシュ群203〜207に、“UDP_p
ing_req(2)”で示すUDP pingリクエ
ストと呼ばれるリクエストを送信する。各メッセージの
後の括弧内の数字(“request(1)”、“UD
P_ping_req(2)”等)は、メッセージが送
信される順番を示す。
【0008】図3に示すように、各近隣キャッシュは、
もしオブジェクトのコピーを持っていればUDP pi
ngヒットメッセージ(図3では“UDP_ping_
hit”で示す)で応答し、もし持っていなければUD
P_pingミスメッセージ(図3では“UDP_pi
ng_miss”で示す)で応答する。UDP pin
gヒットメッセージがまったく受信されない場合は、リ
クエストされたオブジェクトのコピーの送信はオリジナ
ル情報源のサーバに依頼される。キャッシュA302が
UDP pingヒットメッセージを1つだけ受信する
場合は、キャッシュA302はコピーを持っている唯一
のキャッシュにそのオブジェクトのコピーをクライアン
ト301に送信するよう要求するメッセージを送信す
る。図3に示すように1つ以上のUDP pingヒッ
トメッセージを受信する場合は、キャッシュA302
は、どのキャッシュにオブジェクトコピーをクライアン
ト301へ送信するよう依頼すべきかを決定しなければ
ならない。この先行技術では、図4に示すように、キャ
ッシュA402は、UDP pingヒットメッセージ
を最初に受信したキャッシュ、つまりキャッシュE40
3(図4)に、オブジェクトのコピーを要求するメッセ
ージ(“REQUEST(1)”)を送信する。この決
定関数は、ネットワーク的にキャッシュA302に(従
ってクライアント301に)「最も近い」コピーを入手
するように設計されている。このため、リクエストされ
たオブジェクトのコピーを、最小の遅れと最大の信頼性
で入手することができる。
もしオブジェクトのコピーを持っていればUDP pi
ngヒットメッセージ(図3では“UDP_ping_
hit”で示す)で応答し、もし持っていなければUD
P_pingミスメッセージ(図3では“UDP_pi
ng_miss”で示す)で応答する。UDP pin
gヒットメッセージがまったく受信されない場合は、リ
クエストされたオブジェクトのコピーの送信はオリジナ
ル情報源のサーバに依頼される。キャッシュA302が
UDP pingヒットメッセージを1つだけ受信する
場合は、キャッシュA302はコピーを持っている唯一
のキャッシュにそのオブジェクトのコピーをクライアン
ト301に送信するよう要求するメッセージを送信す
る。図3に示すように1つ以上のUDP pingヒッ
トメッセージを受信する場合は、キャッシュA302
は、どのキャッシュにオブジェクトコピーをクライアン
ト301へ送信するよう依頼すべきかを決定しなければ
ならない。この先行技術では、図4に示すように、キャ
ッシュA402は、UDP pingヒットメッセージ
を最初に受信したキャッシュ、つまりキャッシュE40
3(図4)に、オブジェクトのコピーを要求するメッセ
ージ(“REQUEST(1)”)を送信する。この決
定関数は、ネットワーク的にキャッシュA302に(従
ってクライアント301に)「最も近い」コピーを入手
するように設計されている。このため、リクエストされ
たオブジェクトのコピーを、最小の遅れと最大の信頼性
で入手することができる。
【0009】コピーはキャッシュE403からキャッシ
ュA402へ送られ(COPY(2))、ネットワーク
的にはキャッシュEよりもクライアント401に「より
近い」キャッシュA402にオブジェクトのコピーが記
憶される。この結果、このオブジェクトに対するクライ
アント401からのこれ以降のリクエストでは、キャッ
シュA402以外の検索は不要となる。次に、オブジェ
クトのコピーはキャッシュA402からクライアント4
01へ送信される(COPY(3))。先行技術の他の
実施形態では、リクエストは、キャッシュA402をバ
イパスして、キャッシュE403にオブジェクトのコピ
ーを直接クライアント401に送ることを要求する。
ュA402へ送られ(COPY(2))、ネットワーク
的にはキャッシュEよりもクライアント401に「より
近い」キャッシュA402にオブジェクトのコピーが記
憶される。この結果、このオブジェクトに対するクライ
アント401からのこれ以降のリクエストでは、キャッ
シュA402以外の検索は不要となる。次に、オブジェ
クトのコピーはキャッシュA402からクライアント4
01へ送信される(COPY(3))。先行技術の他の
実施形態では、リクエストは、キャッシュA402をバ
イパスして、キャッシュE403にオブジェクトのコピ
ーを直接クライアント401に送ることを要求する。
【0010】キャッシングを採用したシステムのこの先
行技術の実施形態は、待ち時間(リクエストとオブジェ
クトのコピーの受信との間の遅れ)を短縮し、比較的デ
ータオブジェクトの数が少ない小規模なネットワーク中
では、リクエストされたオブジェクトのコピー入手の信
頼性を向上させる。しかし大規模なネットワークでは、
かかる公知の方法はスケーラビリティ(拡張性)が低
い。例えばオブジェクトに対するクライアントからのリ
クエストを受信するキャッシュ(以後、「受信キャッシ
ュ」と称する)がN個の近隣キャッシュを持つキャッシ
ングのシステムを考える。これらのキャッシュ群は、リ
クエストされたオブジェクトのコピーを保有するメッセ
ージ以外に、各クライアントリクエストごとに2N+1
個のメッセージを作成する。つまり、各近隣キャッシュ
ごとに2つのメッセージ(UDPpingリクエスト
と、UDP pingヒット応答またはUDP pin
gミス応答のいずれか)と、クライアントからのリクエ
ストメッセージと、である。このように大量のメッセー
ジは、データオブジェクト数の多い大規模ネットワーク
では大変な負担となる。1つのキャッシュが追加される
ごとに、キャッシュシステムが作成するメッセージ数が
2つずつ増加する。
行技術の実施形態は、待ち時間(リクエストとオブジェ
クトのコピーの受信との間の遅れ)を短縮し、比較的デ
ータオブジェクトの数が少ない小規模なネットワーク中
では、リクエストされたオブジェクトのコピー入手の信
頼性を向上させる。しかし大規模なネットワークでは、
かかる公知の方法はスケーラビリティ(拡張性)が低
い。例えばオブジェクトに対するクライアントからのリ
クエストを受信するキャッシュ(以後、「受信キャッシ
ュ」と称する)がN個の近隣キャッシュを持つキャッシ
ングのシステムを考える。これらのキャッシュ群は、リ
クエストされたオブジェクトのコピーを保有するメッセ
ージ以外に、各クライアントリクエストごとに2N+1
個のメッセージを作成する。つまり、各近隣キャッシュ
ごとに2つのメッセージ(UDPpingリクエスト
と、UDP pingヒット応答またはUDP pin
gミス応答のいずれか)と、クライアントからのリクエ
ストメッセージと、である。このように大量のメッセー
ジは、データオブジェクト数の多い大規模ネットワーク
では大変な負担となる。1つのキャッシュが追加される
ごとに、キャッシュシステムが作成するメッセージ数が
2つずつ増加する。
【0011】この問題を解決するための公知の方法は、
ディレクトリ(例えば、データオブジェクトを識別する
情報と、そのキャッシュ場所のリスト)を使用して、デ
ータオブジェクトのIDを該オブジェクトが記憶されて
いるキャッシュ場所に対応づけることである。これによ
り全キャッシュをフルに検索する必要がなくなり、キャ
ッシングシステムがネットワークに課すメッセージトラ
フィック量を少なくできる。例えば、メッセージをすべ
ての近隣キャッシュ群へ送信する代わりに、1つのリク
エストをディレクトリをもつ中央キャッシュへ送信し
て、中央キャッシュにリクエスト元に一番近い、リクエ
ストされたコピーの場所を問い合わせる。
ディレクトリ(例えば、データオブジェクトを識別する
情報と、そのキャッシュ場所のリスト)を使用して、デ
ータオブジェクトのIDを該オブジェクトが記憶されて
いるキャッシュ場所に対応づけることである。これによ
り全キャッシュをフルに検索する必要がなくなり、キャ
ッシングシステムがネットワークに課すメッセージトラ
フィック量を少なくできる。例えば、メッセージをすべ
ての近隣キャッシュ群へ送信する代わりに、1つのリク
エストをディレクトリをもつ中央キャッシュへ送信し
て、中央キャッシュにリクエスト元に一番近い、リクエ
ストされたコピーの場所を問い合わせる。
【0012】ディレクトリを使用すると、キャッシュさ
れたオブジェクトのコピーの場所をつきとめて入手する
のに必要なトラフィック量を低減できるが、キャッシュ
コヒーレンスの問題が生じる。つまり、データオブジェ
クトが変更されると、維持システムによってそのデータ
オブジェクトの全コピーを変更し、かつ全ディレクトリ
を更新しなければならない。分散型コヒーレンスプロト
コルを用いてオブジェクトとディレクトリとのコヒーレ
ンスを維持し、ネットワークを介して送信されるメッセ
ージを用いて古いオブジェクトのコピーを無効にし、デ
ィレクトリのエントリを更新する。しかし、このメッセ
ージトラフィックはネットワーク、特に変更頻度の高い
多数のオブジェクトをもつ大規模ネットワークに負担を
かけてしまう。
れたオブジェクトのコピーの場所をつきとめて入手する
のに必要なトラフィック量を低減できるが、キャッシュ
コヒーレンスの問題が生じる。つまり、データオブジェ
クトが変更されると、維持システムによってそのデータ
オブジェクトの全コピーを変更し、かつ全ディレクトリ
を更新しなければならない。分散型コヒーレンスプロト
コルを用いてオブジェクトとディレクトリとのコヒーレ
ンスを維持し、ネットワークを介して送信されるメッセ
ージを用いて古いオブジェクトのコピーを無効にし、デ
ィレクトリのエントリを更新する。しかし、このメッセ
ージトラフィックはネットワーク、特に変更頻度の高い
多数のオブジェクトをもつ大規模ネットワークに負担を
かけてしまう。
【0013】オブジェクトのコピーが古くなる(つまり
オリジナルのデータオブジェクトが変更される)と、無
効コピーは無効化されてキャッシュ群から除去または排
除される。さらに、キャッシュされたコピーをさすディ
レクトリが更新される。これは従来のいくつかのシステ
ムでは、各コピーに生存時間(TTL)パラメータを割
り当てることによって行われる。TTLパラメータは、
記憶されたデータオブジェクトのコピーが期限切れして
削除されるべき日時を特定する。TTLが到来すると、
コピーはキャッシングシステムから排除される(つまり
キャッシュから削除される)。TTLが期限切れする前
に古くなったコピーを排除しようとすれば、従来の大規
模なキャッシングシステム中ではトラフィックの負担が
大きすぎて実現できない。従って、従来のシステムはT
TLパラメータに基づいて弱いコヒーレンスしか維持で
きない。コヒーレンスが弱いのは、キャッシュ化されて
からすぐに変更されたオブジェクトのキャッシュされた
コピーが、TTLが切れるまで、古くなってから長時間
にわたって利用可能なまま残留するためである。この問
題は、オブジェクトのコピーおよびディレクトリ中のそ
のエントリを削除するメッセージをばらまくことによっ
て解決できるが、これによりトラフィックでネットワー
クにさらに負担をかけてしまう。
オリジナルのデータオブジェクトが変更される)と、無
効コピーは無効化されてキャッシュ群から除去または排
除される。さらに、キャッシュされたコピーをさすディ
レクトリが更新される。これは従来のいくつかのシステ
ムでは、各コピーに生存時間(TTL)パラメータを割
り当てることによって行われる。TTLパラメータは、
記憶されたデータオブジェクトのコピーが期限切れして
削除されるべき日時を特定する。TTLが到来すると、
コピーはキャッシングシステムから排除される(つまり
キャッシュから削除される)。TTLが期限切れする前
に古くなったコピーを排除しようとすれば、従来の大規
模なキャッシングシステム中ではトラフィックの負担が
大きすぎて実現できない。従って、従来のシステムはT
TLパラメータに基づいて弱いコヒーレンスしか維持で
きない。コヒーレンスが弱いのは、キャッシュ化されて
からすぐに変更されたオブジェクトのキャッシュされた
コピーが、TTLが切れるまで、古くなってから長時間
にわたって利用可能なまま残留するためである。この問
題は、オブジェクトのコピーおよびディレクトリ中のそ
のエントリを削除するメッセージをばらまくことによっ
て解決できるが、これによりトラフィックでネットワー
クにさらに負担をかけてしまう。
【0014】ロッキングおよび承認も、従来のキャッシ
ングシステムのスケーラビリティを下げる原因である。
従来のシステム中でディレクトリが更新される場合、変
更中はディレクトリがロック(つまりアクセス阻害)さ
れなければならない。このため更新中はディレクトリは
利用不可となる。また、更新の受信を示すために承認メ
ッセージが送信されなければならず、ネットワークの一
層の負担となる。従って、ロッキングまたは承認が不要
なスケーラブルなディレクトリベースのキャッシングシ
ステムであれば、従来のキャッシュシステムよりもネッ
トワークの性能をより効率的かつ効果的に改善すること
ができる。
ングシステムのスケーラビリティを下げる原因である。
従来のシステム中でディレクトリが更新される場合、変
更中はディレクトリがロック(つまりアクセス阻害)さ
れなければならない。このため更新中はディレクトリは
利用不可となる。また、更新の受信を示すために承認メ
ッセージが送信されなければならず、ネットワークの一
層の負担となる。従って、ロッキングまたは承認が不要
なスケーラブルなディレクトリベースのキャッシングシ
ステムであれば、従来のキャッシュシステムよりもネッ
トワークの性能をより効率的かつ効果的に改善すること
ができる。
【0015】
【課題を解決するための手段】本発明は、ネットワーク
上でロッキングおよび承認なしでオブジェクトキャッシ
ングを有利かつ効率的に管理する、スケーラブルな分配
型ディレクトリベースのキャッシュ方式システムを提供
する。このシステムは、キャッシュネットワークトラフ
ィックが少なく、メモリおよび処理電力が従来のキャッ
シュシステムより少なくてすむ。
上でロッキングおよび承認なしでオブジェクトキャッシ
ングを有利かつ効率的に管理する、スケーラブルな分配
型ディレクトリベースのキャッシュ方式システムを提供
する。このシステムは、キャッシュネットワークトラフ
ィックが少なく、メモリおよび処理電力が従来のキャッ
シュシステムより少なくてすむ。
【0016】本発明に従えば、オブジェクトに対するユ
ーザリクエストは受信キャッシュによって受信される。
受信キャッシュは、リクエストされたオブジェクトのネ
ットワークアドレスを入力として用い、出力としてポイ
ンタを与えるロケータ関数を実行する。一実施形態で
は、ポインタは、オブジェクトのディレクトリリストを
記憶するディレクトリキャッシュのネットワークアドレ
スを指す。オブジェクトのディレクトリリストは、オブ
ジェクトのネットワークアドレスと、オブジェクトのコ
ピーを記憶していると称されるオブジェクトキャッシュ
群のネットワークアドレスとを含む。
ーザリクエストは受信キャッシュによって受信される。
受信キャッシュは、リクエストされたオブジェクトのネ
ットワークアドレスを入力として用い、出力としてポイ
ンタを与えるロケータ関数を実行する。一実施形態で
は、ポインタは、オブジェクトのディレクトリリストを
記憶するディレクトリキャッシュのネットワークアドレ
スを指す。オブジェクトのディレクトリリストは、オブ
ジェクトのネットワークアドレスと、オブジェクトのコ
ピーを記憶していると称されるオブジェクトキャッシュ
群のネットワークアドレスとを含む。
【0017】受信キャッシュはディレクトリキャッシュ
にオブジェクトリクエストメッセージを送信し、ディレ
クトリキャッシュはディレクトリリストの掲載されたオ
ブジェクトキャッシュ群をポーリングする。これに応答
して、オブジェクトキャッシュ群は、各オブジェクトキ
ャッシュがオブジェクトのコピーを記憶しているかどう
かを示すメッセージを受信キャッシュに送信する。
にオブジェクトリクエストメッセージを送信し、ディレ
クトリキャッシュはディレクトリリストの掲載されたオ
ブジェクトキャッシュ群をポーリングする。これに応答
して、オブジェクトキャッシュ群は、各オブジェクトキ
ャッシュがオブジェクトのコピーを記憶しているかどう
かを示すメッセージを受信キャッシュに送信する。
【0018】受信キャッシュは、オブジェクトのコピー
を記憶していることを示すメッセージであって、受信キ
ャッシュが受信した最初のものを送信したオブジェクト
キャッシュに、オブジェクトリクエストメッセージを送
信する。これに応答して、送信元のオブジェクトキャッ
シュは、受信キャッシュにオブジェクトのコピーを送信
し、受信キャッシュはコピーを記憶して、ユーザにコピ
ーを転送する。
を記憶していることを示すメッセージであって、受信キ
ャッシュが受信した最初のものを送信したオブジェクト
キャッシュに、オブジェクトリクエストメッセージを送
信する。これに応答して、送信元のオブジェクトキャッ
シュは、受信キャッシュにオブジェクトのコピーを送信
し、受信キャッシュはコピーを記憶して、ユーザにコピ
ーを転送する。
【0019】ディレクトリリストはその後、受信キャッ
シュのネットワークアドレスを追加して更新される。古
くなったキャッシュされたオブジェクトのコピーは、オ
ブジェクトのオリジナル情報源のサーバからキャッシュ
に新しいコピーが送信されるごとに、分散方式で削除さ
れる。キャッシュされたコピーのコヒーレンスは、生存
時間(time−to−live)パラメータを各コピ
ーに関連づけることによってさらに向上できる。生存時
間パラメータはまた、オブジェクトのディレクトリリス
ト上のオブジェクトキャッシュのアドレスに関連づけら
れる。
シュのネットワークアドレスを追加して更新される。古
くなったキャッシュされたオブジェクトのコピーは、オ
ブジェクトのオリジナル情報源のサーバからキャッシュ
に新しいコピーが送信されるごとに、分散方式で削除さ
れる。キャッシュされたコピーのコヒーレンスは、生存
時間(time−to−live)パラメータを各コピ
ーに関連づけることによってさらに向上できる。生存時
間パラメータはまた、オブジェクトのディレクトリリス
ト上のオブジェクトキャッシュのアドレスに関連づけら
れる。
【0020】本発明の分散型機能によって、本発明はス
ケーラブルかつ効率的となり、データオブジェクトのコ
ピーをキャッシュし、キャッシュされたコピーを迅速か
つ経済的にユーザに与えることができる。
ケーラブルかつ効率的となり、データオブジェクトのコ
ピーをキャッシュし、キャッシュされたコピーを迅速か
つ経済的にユーザに与えることができる。
【0021】
【発明の実施の形態】本発明は、ネットワーク上でキャ
ッシュ群を用いて実現されるスケーラブル分散型キャッ
シングシステムを提供する。キャッシュはサーバであ
り、プロセッサとコンピュータにより読み出し可能なメ
モリとネットワークに接続されるポートとの間を接続す
るデータバスを含む。本発明に従うキャッシュは、デー
タオブジェクトのコピーを記憶する。キャッシュはま
た、オブジェクトのコピーを記憶するキャッシュ群のア
ドレスを掲載するオブジェクトのディレクトリリストを
記憶(または該リストのみを記憶)する。キャッシュは
また、オブジェクトのネットワークアドレスに基づい
て、オブジェクトのディレクトリリストを記憶するキャ
ッシュのネットワークアドレスの位置を求める際に有用
なハッシュロケータ関数を実現できる。本明細書におい
て、「オブジェクトのネットワークアドレス」はオリジ
ナルオブジェクトの情報源のネットワークアドレス上の
位置を特定可能なあらゆるものをさす。オブジェクトの
ネットワークアドレスの一例は、オブジェクトのオリジ
ナル情報源におけるユニフォーム・リソース・ロケータ
(URL)である。「ネットワークアドレス」をサーバ
(キャッシュ等)に関して用いる際は、ネットワーク上
でサーバ位置を特定可能なあらゆるものをさす。「ネッ
トワークアドレス」をあるオブジェクトのキャッシュさ
れたコピーに関して用いる際は、ネットワーク上でオブ
ジェクトのキャッシュされたコピーの位置を求めること
が可能なあらゆるものをさす。オブジェクトのキャッシ
ュされたコピーのネットワークアドレスの一例はURL
である。
ッシュ群を用いて実現されるスケーラブル分散型キャッ
シングシステムを提供する。キャッシュはサーバであ
り、プロセッサとコンピュータにより読み出し可能なメ
モリとネットワークに接続されるポートとの間を接続す
るデータバスを含む。本発明に従うキャッシュは、デー
タオブジェクトのコピーを記憶する。キャッシュはま
た、オブジェクトのコピーを記憶するキャッシュ群のア
ドレスを掲載するオブジェクトのディレクトリリストを
記憶(または該リストのみを記憶)する。キャッシュは
また、オブジェクトのネットワークアドレスに基づい
て、オブジェクトのディレクトリリストを記憶するキャ
ッシュのネットワークアドレスの位置を求める際に有用
なハッシュロケータ関数を実現できる。本明細書におい
て、「オブジェクトのネットワークアドレス」はオリジ
ナルオブジェクトの情報源のネットワークアドレス上の
位置を特定可能なあらゆるものをさす。オブジェクトの
ネットワークアドレスの一例は、オブジェクトのオリジ
ナル情報源におけるユニフォーム・リソース・ロケータ
(URL)である。「ネットワークアドレス」をサーバ
(キャッシュ等)に関して用いる際は、ネットワーク上
でサーバ位置を特定可能なあらゆるものをさす。「ネッ
トワークアドレス」をあるオブジェクトのキャッシュさ
れたコピーに関して用いる際は、ネットワーク上でオブ
ジェクトのキャッシュされたコピーの位置を求めること
が可能なあらゆるものをさす。オブジェクトのキャッシ
ュされたコピーのネットワークアドレスの一例はURL
である。
【0022】本発明に従えば、各キャッシュされたデー
タオブジェクトはディレクトリリストを有する。オブジ
ェクトのディレクトリリスト上の各アドレスは、オブジ
ェクトのコピーを記憶するキャッシュ(オブジェクトキ
ャッシュ)のアドレスである。好適な実施形態では、デ
ィレクトリリスト群は複数のキャッシュ(ディレクトリ
キャッシュ)間に分散される。本発明に従うディレクト
リリストのデータ構造の一実施例を以下に示す。
タオブジェクトはディレクトリリストを有する。オブジ
ェクトのディレクトリリスト上の各アドレスは、オブジ
ェクトのコピーを記憶するキャッシュ(オブジェクトキ
ャッシュ)のアドレスである。好適な実施形態では、デ
ィレクトリリスト群は複数のキャッシュ(ディレクトリ
キャッシュ)間に分散される。本発明に従うディレクト
リリストのデータ構造の一実施例を以下に示す。
【0023】
【表1】 クライアントからオブジェクトリクエストを受信する各
キャッシュは、ハッシュロケータ関数を備える。ハッシ
ュロケータ関数の入力はオブジェクトのネットワークア
ドレスであり、出力はリクエストされたオブジェクトの
ディレクトリリストが記憶されているディレクトリキャ
ッシュのアドレス(またはそのポインタ)である。こう
して、受信キャッシュはキャッシュされた任意のオブジ
ェクトについてディレクトリキャッシュの位置を求める
ことができる。リクエストされたオブジェクトにディレ
クトリリストがない(つまりロケータ関数がどのディレ
クトリキャッシュも指さない)場合は、リクエストはオ
リジナル情報源のサーバに送られ、リクエストされたオ
ブジェクトを受信キャッシュに送信させる。受信キャッ
シュはリクエストされたオブジェクトのコピーを記憶
し、そのコピーをクライアントに送信する。その後、受
信キャッシュは、オブジェクトキャッシュとして受信キ
ャッシュアドレスを含むオブジェクトのディレクトリリ
ストを開始させる。一実施形態では、受信キャッシュは
オブジェクトのディレクトリリストも記憶する。この例
からわかるように、キャッシュは、受信キャッシュ(ク
ライアントのリクエストを受信)、ディレクトリキャッ
シュ(オブジェクトのディレクトリリストを記憶)、お
よびオブジェクトキャッシュ(オブジェクトのコピーを
記憶)の機能を同時に行うことができる。
キャッシュは、ハッシュロケータ関数を備える。ハッシ
ュロケータ関数の入力はオブジェクトのネットワークア
ドレスであり、出力はリクエストされたオブジェクトの
ディレクトリリストが記憶されているディレクトリキャ
ッシュのアドレス(またはそのポインタ)である。こう
して、受信キャッシュはキャッシュされた任意のオブジ
ェクトについてディレクトリキャッシュの位置を求める
ことができる。リクエストされたオブジェクトにディレ
クトリリストがない(つまりロケータ関数がどのディレ
クトリキャッシュも指さない)場合は、リクエストはオ
リジナル情報源のサーバに送られ、リクエストされたオ
ブジェクトを受信キャッシュに送信させる。受信キャッ
シュはリクエストされたオブジェクトのコピーを記憶
し、そのコピーをクライアントに送信する。その後、受
信キャッシュは、オブジェクトキャッシュとして受信キ
ャッシュアドレスを含むオブジェクトのディレクトリリ
ストを開始させる。一実施形態では、受信キャッシュは
オブジェクトのディレクトリリストも記憶する。この例
からわかるように、キャッシュは、受信キャッシュ(ク
ライアントのリクエストを受信)、ディレクトリキャッ
シュ(オブジェクトのディレクトリリストを記憶)、お
よびオブジェクトキャッシュ(オブジェクトのコピーを
記憶)の機能を同時に行うことができる。
【0024】図5は、ネットワークアドレスYをもつデ
ータオブジェクトへのリクエスト(図5では“GET_
request(Y)”で示す)をクライアント502
から受信する受信キャッシュであるキャッシュA501
を示す。受信キャッシュA501は、アドレスYを入力
として用いてハッシュロケータ関数Lを実行し、ディレ
クトリキャッシュアドレスCを出力として得る。これは
つまり、キャッシュC503がオブジェクトYのディレ
クトリリストを記憶していることを示す。オブジェクト
Yのディレクトリリストのデータ構造の一実施例を以下
に示す。
ータオブジェクトへのリクエスト(図5では“GET_
request(Y)”で示す)をクライアント502
から受信する受信キャッシュであるキャッシュA501
を示す。受信キャッシュA501は、アドレスYを入力
として用いてハッシュロケータ関数Lを実行し、ディレ
クトリキャッシュアドレスCを出力として得る。これは
つまり、キャッシュC503がオブジェクトYのディレ
クトリリストを記憶していることを示す。オブジェクト
Yのディレクトリリストのデータ構造の一実施例を以下
に示す。
【0025】
【表2】 上記のデータ構造は、データオブジェクトYのコピーが
オブジェクトキャッシュB504,D505,E50
6,およびF507に記憶されていることを示す。受信
キャッシュA601(図6)は、データオブジェクトを
リクエストするメッセージ(図6では“LOOKUP”
で示す)をディレクトリキャッシュC602に送信す
る。図6に示す実施形態では、ディレクトリキャッシュ
C602は受信キャッシュA601に、ディレクトリリ
ストからのオブジェクトキャッシュアドレス群を含むメ
ッセージ(図6では“LIST[B,D,E,F]”で
示す)を送信する。キャッシュA601は、このリスト
を用いてオブジェクトキャッシュ群をポーリングし、そ
の中からオブジェクトYを受信するキャッシュを1つ選
択する。本発明の他の実施形態では、ディレクトリキャ
ッシュC602はオブジェクトキャッシュのアドレス群
を含むメッセージを受信キャッシュA601に送信せ
ず、代わりにディレクトリキャッシュC602自身がオ
ブジェクトキャッシュ群(図6の実施形態ではB−60
3,D−604,E−605,およびF−606で示
す)をポーリングし、各オブジェクトキャッシュにUD
P pingヒットまたはミスメッセージを受信キャッ
シュA601に送信するよう依頼する。その後、受信キ
ャッシュA601は、どのオブジェクトキャッシュから
オブジェクトYのコピーを要求するかを決定し、選択し
たオブジェクトキャッシュにコピーの送信を要求するメ
ッセージを送る。
オブジェクトキャッシュB504,D505,E50
6,およびF507に記憶されていることを示す。受信
キャッシュA601(図6)は、データオブジェクトを
リクエストするメッセージ(図6では“LOOKUP”
で示す)をディレクトリキャッシュC602に送信す
る。図6に示す実施形態では、ディレクトリキャッシュ
C602は受信キャッシュA601に、ディレクトリリ
ストからのオブジェクトキャッシュアドレス群を含むメ
ッセージ(図6では“LIST[B,D,E,F]”で
示す)を送信する。キャッシュA601は、このリスト
を用いてオブジェクトキャッシュ群をポーリングし、そ
の中からオブジェクトYを受信するキャッシュを1つ選
択する。本発明の他の実施形態では、ディレクトリキャ
ッシュC602はオブジェクトキャッシュのアドレス群
を含むメッセージを受信キャッシュA601に送信せ
ず、代わりにディレクトリキャッシュC602自身がオ
ブジェクトキャッシュ群(図6の実施形態ではB−60
3,D−604,E−605,およびF−606で示
す)をポーリングし、各オブジェクトキャッシュにUD
P pingヒットまたはミスメッセージを受信キャッ
シュA601に送信するよう依頼する。その後、受信キ
ャッシュA601は、どのオブジェクトキャッシュから
オブジェクトYのコピーを要求するかを決定し、選択し
たオブジェクトキャッシュにコピーの送信を要求するメ
ッセージを送る。
【0026】本発明は、所与のオブジェクトのキャッシ
ュされたコピーの位置を求めるために非分散型ディレク
トリを使用する従来のディレクトリシステムよりも効率
的である。ある従来のシステムでは、キャッシュされた
オブジェクトに対するリクエストがあるたびに、1つの
サーバに存在する1つの非分散型ディレクトリに問い合
わせが行われる。この単独のディレクトリは、リクエス
トされたオブジェクトが記憶されているキャッシュの最
低1つのアドレスを返送する。この従来のシステムの欠
点は、単独サーバがキャッシュされたオブジェクト群に
対する全リクエストのボトルネックとなり、リクエスト
されたオブジェクトを迅速かつ信頼性をもって返信する
システムの性能の向上というキャッシングの目的を妨げ
ることである。クライアントと単独ディレクトリサーバ
との間のリクエストメッセージおよび応答メッセージの
トラフィックによって、またディレクトリの正確さを維
持するための維持トラフィックによって、ネットワーク
に過度の負担がかけられる。単独ディレクトリサーバに
対する負担が重くなってサーバの実行速度が遅くなり、
サーバを他の(ディレクトリ目的以外の)タスクに使用
できなくなる場合がある。さらに、非分散型サーバは、
サーバ上でかなり大量のメモリリソースをとるためにサ
イズが大きくなり、探索速度が落ちてプロセッサの処理
時間が長くなる場合がある。また単独ディレクトリサー
バは、キャッシングシステムの単独故障点でもある。も
し単独ディレクトリサーバが故障すれば、キャッシング
システム全体が動作不能になり、キャッシュされたコピ
ーをオブジェクトキャッシュ群に記憶するのに使用され
たすべてのメモリ資源が無駄になってしまう。
ュされたコピーの位置を求めるために非分散型ディレク
トリを使用する従来のディレクトリシステムよりも効率
的である。ある従来のシステムでは、キャッシュされた
オブジェクトに対するリクエストがあるたびに、1つの
サーバに存在する1つの非分散型ディレクトリに問い合
わせが行われる。この単独のディレクトリは、リクエス
トされたオブジェクトが記憶されているキャッシュの最
低1つのアドレスを返送する。この従来のシステムの欠
点は、単独サーバがキャッシュされたオブジェクト群に
対する全リクエストのボトルネックとなり、リクエスト
されたオブジェクトを迅速かつ信頼性をもって返信する
システムの性能の向上というキャッシングの目的を妨げ
ることである。クライアントと単独ディレクトリサーバ
との間のリクエストメッセージおよび応答メッセージの
トラフィックによって、またディレクトリの正確さを維
持するための維持トラフィックによって、ネットワーク
に過度の負担がかけられる。単独ディレクトリサーバに
対する負担が重くなってサーバの実行速度が遅くなり、
サーバを他の(ディレクトリ目的以外の)タスクに使用
できなくなる場合がある。さらに、非分散型サーバは、
サーバ上でかなり大量のメモリリソースをとるためにサ
イズが大きくなり、探索速度が落ちてプロセッサの処理
時間が長くなる場合がある。また単独ディレクトリサー
バは、キャッシングシステムの単独故障点でもある。も
し単独ディレクトリサーバが故障すれば、キャッシング
システム全体が動作不能になり、キャッシュされたコピ
ーをオブジェクトキャッシュ群に記憶するのに使用され
たすべてのメモリ資源が無駄になってしまう。
【0027】従来のシステムの問題の一部を解決する明
らかな方法は、ネットワーク上の複数の異なる場所(す
なわちネットワークアドレスの異なる複数の異なるサー
バ上)に、非分散型ディレクトリの複数のコピーを置く
ことである。これにより、クライアントはオブジェクト
キャッシュのアドレスを入手するのに、多数の非分散型
ディレクトリの1つに問い合わせができるから、単独デ
ィレクトリサーバを有することによって生じるボトルネ
ックおよび単独故障点の影響を減じることができる。こ
れはディレクトリ探索活動の負担を分散させる助けとな
る。また、1つのディレクトリサーバが故障しても、別
のサーバに問い合わせを行うことができる。しかし、こ
の解決方法では、ディレクトリ群の正確さを維持する必
要があるため、ネットワーク上のキャッシングシステム
トラフィックによる負担を悪化させてしまう。従って、
キャッシュされたコピーの状態が変更される(キャッシ
ュされたコピーが古くなったり、新たなオブジェクトが
キャッシュ化される等)と、全ディレクトリサーバに更
新メッセージの送信が要求されるため、承認メッセージ
の形式でさらに大量のトラフィックを発生させてしま
う。これにより、かなり大量のメッセージトラフィック
を発生させてネットワークに負担をかけてしまうという
欠点がある。また、単独非分散型ディレクトリの場合と
同じく、従来のシステムにおける1つ以上のディレクト
リをもつ非分散型ディレクトリ群は、更新中はロックさ
れなければならず、その間は使用できない。オブジェク
トの状態が頻繁に変更される大規模なシステムでは、更
新およびロッキングは非常に頻繁に発生するため、探索
ディレクトリの利用可能性を大幅に下げてしまう。ま
た、大規模な非分散型ディレクトリの複数のコピーをも
つことにより、メモリおよびプロセッサ資源を奪ってし
まうという問題が悪化する可能性がある。
らかな方法は、ネットワーク上の複数の異なる場所(す
なわちネットワークアドレスの異なる複数の異なるサー
バ上)に、非分散型ディレクトリの複数のコピーを置く
ことである。これにより、クライアントはオブジェクト
キャッシュのアドレスを入手するのに、多数の非分散型
ディレクトリの1つに問い合わせができるから、単独デ
ィレクトリサーバを有することによって生じるボトルネ
ックおよび単独故障点の影響を減じることができる。こ
れはディレクトリ探索活動の負担を分散させる助けとな
る。また、1つのディレクトリサーバが故障しても、別
のサーバに問い合わせを行うことができる。しかし、こ
の解決方法では、ディレクトリ群の正確さを維持する必
要があるため、ネットワーク上のキャッシングシステム
トラフィックによる負担を悪化させてしまう。従って、
キャッシュされたコピーの状態が変更される(キャッシ
ュされたコピーが古くなったり、新たなオブジェクトが
キャッシュ化される等)と、全ディレクトリサーバに更
新メッセージの送信が要求されるため、承認メッセージ
の形式でさらに大量のトラフィックを発生させてしま
う。これにより、かなり大量のメッセージトラフィック
を発生させてネットワークに負担をかけてしまうという
欠点がある。また、単独非分散型ディレクトリの場合と
同じく、従来のシステムにおける1つ以上のディレクト
リをもつ非分散型ディレクトリ群は、更新中はロックさ
れなければならず、その間は使用できない。オブジェク
トの状態が頻繁に変更される大規模なシステムでは、更
新およびロッキングは非常に頻繁に発生するため、探索
ディレクトリの利用可能性を大幅に下げてしまう。ま
た、大規模な非分散型ディレクトリの複数のコピーをも
つことにより、メモリおよびプロセッサ資源を奪ってし
まうという問題が悪化する可能性がある。
【0028】本発明はこのような問題を解決し、従来の
システムより効率よくかつ経済的に使用および維持可能
な、キャッシングシステム用の分散型ディレクトリを提
供する。本発明に従ってディレクトリをディレクトリリ
スト群に分割して、これらのリストを多数のサーバに分
散させることによって、従来のシステムよりも多数のサ
ーバにディレクトリ参照の負担を分散することができ
る。これによりボトルネックおよび単独故障点の問題が
かなり低減または解消される。非分散型ディレクトリキ
ャッシングシステムのディレクトリサーバと比べて、各
ディレクトリサーバ上のディレクトリの記憶に必要なメ
モリ資源が大幅に少なくなるため、サーバはディレクト
リデータ以外のデータを記憶できる。さらに、このよう
にディレクトリ探索の負担が有利に分散されるため、任
意の1つのサーバが吸収するプロセッサ時間がはるかに
少なく、ディレクトリサーバが探索リクエストに迅速か
つ効率的に応答できる。本発明の他の利点は、ディレク
トリ維持に必要なトラフィックレベルが低く、従来のシ
ステムに比べてネットワーク上の負担が少ないことであ
る。本発明は承認メッセージを使用せず、有利には更新
時にディレクトリデータをロックせず、かつ承認メッセ
ージを使用しない。
システムより効率よくかつ経済的に使用および維持可能
な、キャッシングシステム用の分散型ディレクトリを提
供する。本発明に従ってディレクトリをディレクトリリ
スト群に分割して、これらのリストを多数のサーバに分
散させることによって、従来のシステムよりも多数のサ
ーバにディレクトリ参照の負担を分散することができ
る。これによりボトルネックおよび単独故障点の問題が
かなり低減または解消される。非分散型ディレクトリキ
ャッシングシステムのディレクトリサーバと比べて、各
ディレクトリサーバ上のディレクトリの記憶に必要なメ
モリ資源が大幅に少なくなるため、サーバはディレクト
リデータ以外のデータを記憶できる。さらに、このよう
にディレクトリ探索の負担が有利に分散されるため、任
意の1つのサーバが吸収するプロセッサ時間がはるかに
少なく、ディレクトリサーバが探索リクエストに迅速か
つ効率的に応答できる。本発明の他の利点は、ディレク
トリ維持に必要なトラフィックレベルが低く、従来のシ
ステムに比べてネットワーク上の負担が少ないことであ
る。本発明は承認メッセージを使用せず、有利には更新
時にディレクトリデータをロックせず、かつ承認メッセ
ージを使用しない。
【0029】検索システムは、リクエストされたオブジ
ェクトのコピーが記憶されている場所がもしあれば、そ
の場所を求める。上述したように、本発明に従えば、キ
ャッシュはクライアントからオブジェクトの入手を求め
るリクエスト(“GET request”と称する)
を受信する。図5は、クライアント502が入手リクエ
ストをキャッシュA501に送信するキャッシングシス
テムの一実施形態を示す。リクエストを受信すると、受
信キャッシュであるキャッシュA501はまず、要求さ
れたオブジェクトを自身が記憶しているかどうかを判断
する。キャッシュA501がリクエストされたオブジェ
クトを持っている場合は、該オブジェクトがクライアン
ト502に送信される。持っていない場合は、キャッシ
ュA501はどこか他の場所でオブジェクトの位置を求
めなければならない。
ェクトのコピーが記憶されている場所がもしあれば、そ
の場所を求める。上述したように、本発明に従えば、キ
ャッシュはクライアントからオブジェクトの入手を求め
るリクエスト(“GET request”と称する)
を受信する。図5は、クライアント502が入手リクエ
ストをキャッシュA501に送信するキャッシングシス
テムの一実施形態を示す。リクエストを受信すると、受
信キャッシュであるキャッシュA501はまず、要求さ
れたオブジェクトを自身が記憶しているかどうかを判断
する。キャッシュA501がリクエストされたオブジェ
クトを持っている場合は、該オブジェクトがクライアン
ト502に送信される。持っていない場合は、キャッシ
ュA501はどこか他の場所でオブジェクトの位置を求
めなければならない。
【0030】リクエストされたオブジェクトを持ってい
ない場合、キャッシュA501はディレクトリリストロ
ケータ関数L508を実行する。上述したように、ディ
レクトリリストロケータ関数L508は、リクエストさ
れたデータオブジェクトのネットワークアドレスを入力
として使用して、該オブジェクトのディレクトリリスト
を記憶するキャッシュのアドレス(またはそのポイン
タ)を出力する。このため、キャッシュA501がクラ
イアント502からデータオブジェクトYに対するリク
エストを受信し、キャッシュA501がオブジェクトY
を記憶していないと判断すると、キャッシュAはL50
8を実行して、Yのディレクトリリストの位置を求め
る。図5に示すL(Y)=Cは、キャッシュC503が
オブジェクトYのディレクトリリストを記憶しているこ
とを示す。
ない場合、キャッシュA501はディレクトリリストロ
ケータ関数L508を実行する。上述したように、ディ
レクトリリストロケータ関数L508は、リクエストさ
れたデータオブジェクトのネットワークアドレスを入力
として使用して、該オブジェクトのディレクトリリスト
を記憶するキャッシュのアドレス(またはそのポイン
タ)を出力する。このため、キャッシュA501がクラ
イアント502からデータオブジェクトYに対するリク
エストを受信し、キャッシュA501がオブジェクトY
を記憶していないと判断すると、キャッシュAはL50
8を実行して、Yのディレクトリリストの位置を求め
る。図5に示すL(Y)=Cは、キャッシュC503が
オブジェクトYのディレクトリリストを記憶しているこ
とを示す。
【0031】本発明のある実施形態においては、ロケー
タ関数はネットワークアドレスを示さない。これは、ロ
ケータ関数を実行する受信キャッシュの論理上、到達可
能な範囲内のキャッシュにオブジェクトのコピーがな
い、またはどのキャッシュにもオブジェクトのコピーが
記憶されていないことを意味する。受信キャッシュの論
理範囲内のキャッシュにオブジェクトのコピーが記憶さ
れていない本発明の実施形態では、キャッシュ群は論理
レベルの階層中で論理レベルごとにグループ分けされ
る。第1の論理レベルのキャッシュ群の1つは、同レベ
ルの他のキャッシュに記憶されているオブジェクトのコ
ピーを検索して入手できる。第2レベルのキャッシュに
記憶されているオブジェクトのコピーを入手するには、
第2レベルの受信キャッシュにオブジェクトリクエスト
メッセージが送信され、第2レベルの受信キャッシュは
第2レベルのキャッシュからオブジェクトのコピーの検
索を開始し、該コピーの入手を試みる。コピーを入手す
ると、そのコピーは第1レベルの受信キャッシュへ送ら
れる。本実施形態では、ロケータ関数が、第1レベルの
受信キャッシュが論理上利用可能なキャッシュのどれも
がオブジェクトのディレクトリリストを記憶していない
ことを示すポインタを返送する場合は、第1レベルの受
信キャッシュは第2レベルの受信キャッシュへのオブジ
ェクトリクエストの送信を選択する。
タ関数はネットワークアドレスを示さない。これは、ロ
ケータ関数を実行する受信キャッシュの論理上、到達可
能な範囲内のキャッシュにオブジェクトのコピーがな
い、またはどのキャッシュにもオブジェクトのコピーが
記憶されていないことを意味する。受信キャッシュの論
理範囲内のキャッシュにオブジェクトのコピーが記憶さ
れていない本発明の実施形態では、キャッシュ群は論理
レベルの階層中で論理レベルごとにグループ分けされ
る。第1の論理レベルのキャッシュ群の1つは、同レベ
ルの他のキャッシュに記憶されているオブジェクトのコ
ピーを検索して入手できる。第2レベルのキャッシュに
記憶されているオブジェクトのコピーを入手するには、
第2レベルの受信キャッシュにオブジェクトリクエスト
メッセージが送信され、第2レベルの受信キャッシュは
第2レベルのキャッシュからオブジェクトのコピーの検
索を開始し、該コピーの入手を試みる。コピーを入手す
ると、そのコピーは第1レベルの受信キャッシュへ送ら
れる。本実施形態では、ロケータ関数が、第1レベルの
受信キャッシュが論理上利用可能なキャッシュのどれも
がオブジェクトのディレクトリリストを記憶していない
ことを示すポインタを返送する場合は、第1レベルの受
信キャッシュは第2レベルの受信キャッシュへのオブジ
ェクトリクエストの送信を選択する。
【0032】また、本発明の他の実施形態では、ロケー
タ関数から返送されたポインタが、受信キャッシュが論
理上利用可能なキャッシュのどれもがオブジェクトのデ
ィレクトリリストを記憶していないことを示す場合は、
受信キャッシュはオブジェクトのオリジナルバージョン
を記憶しているサーバにオブジェクトのコピーをリクエ
ストすることを選択する。
タ関数から返送されたポインタが、受信キャッシュが論
理上利用可能なキャッシュのどれもがオブジェクトのデ
ィレクトリリストを記憶していないことを示す場合は、
受信キャッシュはオブジェクトのオリジナルバージョン
を記憶しているサーバにオブジェクトのコピーをリクエ
ストすることを選択する。
【0033】このように、ハッシュ関数L508は、オ
ブジェクトのネットワークアドレスを入力として使用
し、出力としてポインタを与えて、該ポインタが示す情
報が本発明のこれ以降の行動を決定する関数を含む。ポ
インタがオブジェクトのディレクトリリストを記憶して
いるディレクトリキャッシュのネットワークアドレスを
示すと、オブジェクトリクエストは受信キャッシュから
ディレクトリキャッシュへ送られる。一方、ポインタが
ネットワークアドレスをまったく示さない場合、または
論理的に利用可能なキャッシュのネットワークアドレス
(同じ階層レベルのキャッシュのアドレス等)を示さな
い場合は、オブジェクトリクエストメッセージは他の階
層レベルの受信キャッシュに送られるか、またはオブジ
ェクトのオリジナル情報源サーバへ送られる。一実施形
態では、ロケータ関数のポインタをディレクトリキャッ
シュのネットワークアドレス等の情報と相関させるテー
ブルが、システム管理者によって手動で受信キャッシュ
に入力される。他の実施形態では、ポインタテーブルを
更新する受信キャッシュにメッセージが送られる。例え
ば、新たにキャッシュされたオブジェクトXについて新
たなディレクトリリストがディレクトリキャッシュZに
おいて開始されると、オブジェクトXのネットワークア
ドレス、ディレクトリキャッシュZのネットワークアド
レス、およびポインタテーブルが更新されるべきである
ことを示すフラグを含むメッセージが、受信キャッシュ
に送信される。受信キャッシュはこのメッセージを受信
し、オブジェクトのネットワークアドレスに対してハッ
シュ関数を実行し、得られたポインタ値をキャッシュZ
のネットワークアドレスに相関させる。このように、オ
ブジェクトXに対するリクエストを受信すると、受信キ
ャッシュはXに対してハッシュロケータ関数を行い、ポ
インタを入手し、そのポインタをキャッシュZのネット
ワークアドレスに相関させる。その後、受信キャッシュ
は、本発明に従ってキャッシュZに探索リクエストを送
る。
ブジェクトのネットワークアドレスを入力として使用
し、出力としてポインタを与えて、該ポインタが示す情
報が本発明のこれ以降の行動を決定する関数を含む。ポ
インタがオブジェクトのディレクトリリストを記憶して
いるディレクトリキャッシュのネットワークアドレスを
示すと、オブジェクトリクエストは受信キャッシュから
ディレクトリキャッシュへ送られる。一方、ポインタが
ネットワークアドレスをまったく示さない場合、または
論理的に利用可能なキャッシュのネットワークアドレス
(同じ階層レベルのキャッシュのアドレス等)を示さな
い場合は、オブジェクトリクエストメッセージは他の階
層レベルの受信キャッシュに送られるか、またはオブジ
ェクトのオリジナル情報源サーバへ送られる。一実施形
態では、ロケータ関数のポインタをディレクトリキャッ
シュのネットワークアドレス等の情報と相関させるテー
ブルが、システム管理者によって手動で受信キャッシュ
に入力される。他の実施形態では、ポインタテーブルを
更新する受信キャッシュにメッセージが送られる。例え
ば、新たにキャッシュされたオブジェクトXについて新
たなディレクトリリストがディレクトリキャッシュZに
おいて開始されると、オブジェクトXのネットワークア
ドレス、ディレクトリキャッシュZのネットワークアド
レス、およびポインタテーブルが更新されるべきである
ことを示すフラグを含むメッセージが、受信キャッシュ
に送信される。受信キャッシュはこのメッセージを受信
し、オブジェクトのネットワークアドレスに対してハッ
シュ関数を実行し、得られたポインタ値をキャッシュZ
のネットワークアドレスに相関させる。このように、オ
ブジェクトXに対するリクエストを受信すると、受信キ
ャッシュはXに対してハッシュロケータ関数を行い、ポ
インタを入手し、そのポインタをキャッシュZのネット
ワークアドレスに相関させる。その後、受信キャッシュ
は、本発明に従ってキャッシュZに探索リクエストを送
る。
【0034】図5に示す例では、キャッシュA501は
オブジェクトYの入手リクエストを受信している。キャ
ッシュA501は、それ自身はオブジェクトYを記憶し
ていないと判断し、Yのネットワークアドレスに対して
ロケータ関数L508を実行している。本例では、L
(Y)=Cであり、キャッシュC503がオブジェクト
Yのディレクトリリストを記憶していることを示す。
オブジェクトYの入手リクエストを受信している。キャ
ッシュA501は、それ自身はオブジェクトYを記憶し
ていないと判断し、Yのネットワークアドレスに対して
ロケータ関数L508を実行している。本例では、L
(Y)=Cであり、キャッシュC503がオブジェクト
Yのディレクトリリストを記憶していることを示す。
【0035】図6は、図5においてディレクトリリスト
ロケータ関数L508が、キャッシュCがオブジェクト
Yのディレクトリキャッシュを記憶していると特定した
後の様子を示す図である。キャッシュA601はキャッ
シュC602に“探索リクエスト(LOOKUP re
quest)”を送信する。一実施形態では、探索リク
エストは、リクエストされたオブジェクトYのアドレス
と、リクエスト元のキャッシュつまりキャッシュA60
1のアドレスとを含む。キャッシュC602は、リクエ
ストされたオブジェクトYのディレクトリリストキャッ
シュのアドレス群をキャッシュA601に返送する。キ
ャッシュA601は決定システムを実行して、この中か
らオブジェクトのコピーを要求するキャッシュを選択す
る。他の実施形態では、キャッシュC602はキャッシ
ュA601にディレクトリリストを送信せず、この代わ
りにキャッシュC602は、リクエストされたオブジェ
クトのディレクトリリスト上のオブジェクトキャッシュ
群に、キャッシュA601のネットワークアドレスとと
もに、UDP pingリクエストを送信する。オブジ
ェクトキャッシュ群は、キャッシュA601にUDP
pingヒットメッセージまたはミスメッセージで応答
する。
ロケータ関数L508が、キャッシュCがオブジェクト
Yのディレクトリキャッシュを記憶していると特定した
後の様子を示す図である。キャッシュA601はキャッ
シュC602に“探索リクエスト(LOOKUP re
quest)”を送信する。一実施形態では、探索リク
エストは、リクエストされたオブジェクトYのアドレス
と、リクエスト元のキャッシュつまりキャッシュA60
1のアドレスとを含む。キャッシュC602は、リクエ
ストされたオブジェクトYのディレクトリリストキャッ
シュのアドレス群をキャッシュA601に返送する。キ
ャッシュA601は決定システムを実行して、この中か
らオブジェクトのコピーを要求するキャッシュを選択す
る。他の実施形態では、キャッシュC602はキャッシ
ュA601にディレクトリリストを送信せず、この代わ
りにキャッシュC602は、リクエストされたオブジェ
クトのディレクトリリスト上のオブジェクトキャッシュ
群に、キャッシュA601のネットワークアドレスとと
もに、UDP pingリクエストを送信する。オブジ
ェクトキャッシュ群は、キャッシュA601にUDP
pingヒットメッセージまたはミスメッセージで応答
する。
【0036】本発明の主たる利点はそのスケーラビリテ
ィである。ディレクトリがディレクトリリストの形で多
数のサーバ間に分配されるため、十分なスケーラビリテ
ィをもつ検索機能を実現できる。所与のオブジェクトに
対する正しいディレクトリリストは受信キャッシュ中で
実行されるハッシュロケータ機能によって見つけだされ
る。このように、多数のリクエストによる負担を受け、
かつ1つのサーバ上に存在する単独の非分散型ディレク
トリリストを完全に検索する代わりに、ハッシュロケー
タ関数と短いディレクトリリストとを参照することによ
って、ネットワーク上の多数の異なるサーバ上にキャッ
シュされた多数の異なるオブジェクトを簡単かつ効率的
に発見できる。
ィである。ディレクトリがディレクトリリストの形で多
数のサーバ間に分配されるため、十分なスケーラビリテ
ィをもつ検索機能を実現できる。所与のオブジェクトに
対する正しいディレクトリリストは受信キャッシュ中で
実行されるハッシュロケータ機能によって見つけだされ
る。このように、多数のリクエストによる負担を受け、
かつ1つのサーバ上に存在する単独の非分散型ディレク
トリリストを完全に検索する代わりに、ハッシュロケー
タ関数と短いディレクトリリストとを参照することによ
って、ネットワーク上の多数の異なるサーバ上にキャッ
シュされた多数の異なるオブジェクトを簡単かつ効率的
に発見できる。
【0037】リクエストされたオブジェクトのコピーを
もつキャッシュ群のアドレスが判明すると、決定システ
ムが実行されて、リクエストされたオブジェクトのコピ
ーをどのキャッシュから送信するかを決定する。一実施
形態では、リクエストされたオブジェクトのキャッシュ
されたコピーがなければ、受信キャッシュはオブジェク
トに対するリクエストをオブジェクトのオリジナル情報
源のサーバに送信する。他の実施形態では、受信キャッ
シュはオブジェクトに対するリクエストを、キャッシン
グシステムの他の階層レベルの別のキャッシュに送信す
る。
もつキャッシュ群のアドレスが判明すると、決定システ
ムが実行されて、リクエストされたオブジェクトのコピ
ーをどのキャッシュから送信するかを決定する。一実施
形態では、リクエストされたオブジェクトのキャッシュ
されたコピーがなければ、受信キャッシュはオブジェク
トに対するリクエストをオブジェクトのオリジナル情報
源のサーバに送信する。他の実施形態では、受信キャッ
シュはオブジェクトに対するリクエストを、キャッシン
グシステムの他の階層レベルの別のキャッシュに送信す
る。
【0038】上述したように、本発明の一実施形態で
は、受信キャッシュからの探索リクエストに応答して、
ディレクトリキャッシュから受信キャッシュへオブジェ
クトキャッシュのアドレス群が送られ、この場合は受信
キャッシュがオブジェクトキャッシュ群をポーリングす
る。他の実施形態では、オブジェクトキャッシュアドレ
ス群は受信キャッシュへは送られず、この場合はディレ
クトリキャッシュがオブジェクトキャッシュ群をポーリ
ングする。いずれの場合も、オブジェクトキャッシュ群
から受信キャッシュへUDP pingヒットまたはミ
スメッセージが送られ、受信キャッシュはリクエストさ
れたオブジェクトのキャッシュされたコピーの送信をど
のオブジェクトキャッシュに依頼するかを決定する。
は、受信キャッシュからの探索リクエストに応答して、
ディレクトリキャッシュから受信キャッシュへオブジェ
クトキャッシュのアドレス群が送られ、この場合は受信
キャッシュがオブジェクトキャッシュ群をポーリングす
る。他の実施形態では、オブジェクトキャッシュアドレ
ス群は受信キャッシュへは送られず、この場合はディレ
クトリキャッシュがオブジェクトキャッシュ群をポーリ
ングする。いずれの場合も、オブジェクトキャッシュ群
から受信キャッシュへUDP pingヒットまたはミ
スメッセージが送られ、受信キャッシュはリクエストさ
れたオブジェクトのキャッシュされたコピーの送信をど
のオブジェクトキャッシュに依頼するかを決定する。
【0039】図7は、オブジェクトキャッシュアドレス
群が受信キャッシュに送信されない場合の実施形態を示
す。キャッシュA701はクライアントからオブジェク
トYに対するリクエストを受信している。キャッシュA
701はディレクトリ探索関数L(Y)=C(図示せ
ず)を実行し、オブジェクトYのディレクトリリストが
キャッシュC702に記憶されていることを示す。受信
キャッシュA701はディレクトリキャッシュC702
に探索メッセージ(“LOOKUP(1)”)を送信す
る。この例では、キャッシュC702に記憶されている
Yのディレクトリリストは、YのコピーがキャッシュE
703とF704とに記憶されていることを示す。ディ
レクトリキャッシュC702は、オブジェクトキャッシ
ュE703とF704とにUDP pingリクエスト
を送信する。図8に示すように、キャッシュA801は
まず、キャッシュE802からUDP pingヒット
応答(“UDP_ping_hit(1)”)を受信
し、その後、キャッシュF803からUDP ping
ヒット応答(“UDP_ping_hit(2)”)を
受信する。図9に示すように、キャッシュA901が受
信した最初のUDP pingヒット応答はキャッシュ
E902からであったので、キャッシュA901はキャ
ッシュE902にオブジェクトYのコピーのリクエスト
を送信する。この決定規準の有利な点は、キャッシュA
901がオブジェクトキャッシュ群をポーリングしてか
らキャッシュE902からUDP pingヒットメッ
セージを受信するまでの応答時間のほうが、キャッシュ
F803(図8)からUDP pingヒットメッセー
ジを受信するまでの応答時間よりも遅延が少ないことに
基づいて、ネットワーク的に受信キャッシュA901に
「一番近い」キャッシュにオブジェクトがリクエストさ
れることである。キャッシュA901からのリクエスト
に応答して、キャッシュE902はキャッシュA901
にオブジェクトYのコピーを送信し、キャッシュA90
1はそのコピーを記憶してリクエスト元のクライアント
へ転送する。
群が受信キャッシュに送信されない場合の実施形態を示
す。キャッシュA701はクライアントからオブジェク
トYに対するリクエストを受信している。キャッシュA
701はディレクトリ探索関数L(Y)=C(図示せ
ず)を実行し、オブジェクトYのディレクトリリストが
キャッシュC702に記憶されていることを示す。受信
キャッシュA701はディレクトリキャッシュC702
に探索メッセージ(“LOOKUP(1)”)を送信す
る。この例では、キャッシュC702に記憶されている
Yのディレクトリリストは、YのコピーがキャッシュE
703とF704とに記憶されていることを示す。ディ
レクトリキャッシュC702は、オブジェクトキャッシ
ュE703とF704とにUDP pingリクエスト
を送信する。図8に示すように、キャッシュA801は
まず、キャッシュE802からUDP pingヒット
応答(“UDP_ping_hit(1)”)を受信
し、その後、キャッシュF803からUDP ping
ヒット応答(“UDP_ping_hit(2)”)を
受信する。図9に示すように、キャッシュA901が受
信した最初のUDP pingヒット応答はキャッシュ
E902からであったので、キャッシュA901はキャ
ッシュE902にオブジェクトYのコピーのリクエスト
を送信する。この決定規準の有利な点は、キャッシュA
901がオブジェクトキャッシュ群をポーリングしてか
らキャッシュE902からUDP pingヒットメッ
セージを受信するまでの応答時間のほうが、キャッシュ
F803(図8)からUDP pingヒットメッセー
ジを受信するまでの応答時間よりも遅延が少ないことに
基づいて、ネットワーク的に受信キャッシュA901に
「一番近い」キャッシュにオブジェクトがリクエストさ
れることである。キャッシュA901からのリクエスト
に応答して、キャッシュE902はキャッシュA901
にオブジェクトYのコピーを送信し、キャッシュA90
1はそのコピーを記憶してリクエスト元のクライアント
へ転送する。
【0040】この時点で、オブジェクトYのディレクト
リリストはキャッシュA901がオブジェクトYのコピ
ーを持っていることを反映していないため、不正確とな
る。本発明の一実施形態では、キャッシュA901はキ
ャッシュC903にディレクトリリストを更新するよう
メッセージを送る。キャッシュC903はオブジェクト
YのディレクトリリストにキャッシュA901のネット
ワークアドレスを加える。キャッシュA901はこうし
てYのオブジェクトキャッシュとなる。
リリストはキャッシュA901がオブジェクトYのコピ
ーを持っていることを反映していないため、不正確とな
る。本発明の一実施形態では、キャッシュA901はキ
ャッシュC903にディレクトリリストを更新するよう
メッセージを送る。キャッシュC903はオブジェクト
YのディレクトリリストにキャッシュA901のネット
ワークアドレスを加える。キャッシュA901はこうし
てYのオブジェクトキャッシュとなる。
【0041】本発明の他の実施形態では、キャッシュC
702(図7)は、リクエストされたオブジェクトのデ
ィレクトリリストにアドレスが掲載されているすべての
キャッシュにはUDP pingリクエストを送信しな
い。この代わりに、キャッシュC702はリストから一
定数αのアドレス群を選択する。図7に示す例において
オブジェクトYのディレクトリリストはB705,D7
06,E703,およびF704であるとする。キャッ
シュC702はαを2に選択し、キャッシュA801の
アドレスとともにUDP pingリクエストを送信す
るキャッシュとしてディレクトリリストからキャッシュ
E703およびF704を選択する。キャッシュE80
2(図8)のUDP pingヒットメッセージが最初
にキャッシュA801によって受信されるので、キャッ
シュA801はオブジェクトのリクエスト(“requ
est(1)”(図9))をキャッシュEに送る。リク
エストされたオブジェクトのコピー(“COPY
(2)”)はキャッシュE902からキャッシュA90
1(図9)に送られる。オブジェクトのコピーはキャッ
シュA901に記憶され、コピー(“COPY
(3)”)がリクエスト元のクライアント904に送信
される。キャッシュA901は、Yのディレクトリリス
トにキャッシュA901のアドレスを加えて更新するよ
うキャッシュC903にメッセージを送る。
702(図7)は、リクエストされたオブジェクトのデ
ィレクトリリストにアドレスが掲載されているすべての
キャッシュにはUDP pingリクエストを送信しな
い。この代わりに、キャッシュC702はリストから一
定数αのアドレス群を選択する。図7に示す例において
オブジェクトYのディレクトリリストはB705,D7
06,E703,およびF704であるとする。キャッ
シュC702はαを2に選択し、キャッシュA801の
アドレスとともにUDP pingリクエストを送信す
るキャッシュとしてディレクトリリストからキャッシュ
E703およびF704を選択する。キャッシュE80
2(図8)のUDP pingヒットメッセージが最初
にキャッシュA801によって受信されるので、キャッ
シュA801はオブジェクトのリクエスト(“requ
est(1)”(図9))をキャッシュEに送る。リク
エストされたオブジェクトのコピー(“COPY
(2)”)はキャッシュE902からキャッシュA90
1(図9)に送られる。オブジェクトのコピーはキャッ
シュA901に記憶され、コピー(“COPY
(3)”)がリクエスト元のクライアント904に送信
される。キャッシュA901は、Yのディレクトリリス
トにキャッシュA901のアドレスを加えて更新するよ
うキャッシュC903にメッセージを送る。
【0042】αがディレクトリリストに掲載されたアド
レス数より少ないときは常に、キャッシュは、ディレク
トリリストのどのキャッシュにUDP pingリクエ
ストを送信するかを決定しなければならない。一実施形
態では、有利には、キャッシュはラウンドロビン方式
(スケジューリング)を用いて、リストに掲載されたキ
ャッシュ間に負担を分散できる。他の実施形態では、キ
ャッシュはリクエストを送るキャッシュ数αをランダム
に選択する。
レス数より少ないときは常に、キャッシュは、ディレク
トリリストのどのキャッシュにUDP pingリクエ
ストを送信するかを決定しなければならない。一実施形
態では、有利には、キャッシュはラウンドロビン方式
(スケジューリング)を用いて、リストに掲載されたキ
ャッシュ間に負担を分散できる。他の実施形態では、キ
ャッシュはリクエストを送るキャッシュ数αをランダム
に選択する。
【0043】本発明の一実施形態では、ディレクトリキ
ャッシュはUDP pingリクエストを送るキャッシ
ュをディレクトリリストから1つ、つまりα=1に選択
する。例えば、キャッシュC1001(図10)がキャ
ッシュE1002を選択するとする。キャッシュC10
01はキャッシュA1003のアドレスとともにUDP
pingリクエストメッセージをキャッシュE100
2に送り、キャッシュE1002は直接キャッシュA1
003に応答(UDP pingヒットまたはミス)を
送信する。もし応答がUDP pingヒットならば、
キャッシュA1003はオブジェクトのリクエストをキ
ャッシュE1002に送る。もし応答がUDP pin
gミスならば、ディレクトリリストは正しくないから、
キャッシュA1101(図11)はキャッシュC110
2にディレクトリ削除リクエストを送り、キャッシュC
1102はリクエストされたオブジェクトのディレクト
リリストからキャッシュE1103のアドレスを削除す
る。一方、キャッシュEがキャッシュAからのオブジェ
クトリクエストに応答しない場合は、キャッシュE、ま
たはキャッシュEへの接続が作動不能かもしれないの
で、リスト上の別のキャッシュを選択してUDP pi
ngリクエストを送信しなければならない。
ャッシュはUDP pingリクエストを送るキャッシ
ュをディレクトリリストから1つ、つまりα=1に選択
する。例えば、キャッシュC1001(図10)がキャ
ッシュE1002を選択するとする。キャッシュC10
01はキャッシュA1003のアドレスとともにUDP
pingリクエストメッセージをキャッシュE100
2に送り、キャッシュE1002は直接キャッシュA1
003に応答(UDP pingヒットまたはミス)を
送信する。もし応答がUDP pingヒットならば、
キャッシュA1003はオブジェクトのリクエストをキ
ャッシュE1002に送る。もし応答がUDP pin
gミスならば、ディレクトリリストは正しくないから、
キャッシュA1101(図11)はキャッシュC110
2にディレクトリ削除リクエストを送り、キャッシュC
1102はリクエストされたオブジェクトのディレクト
リリストからキャッシュE1103のアドレスを削除す
る。一方、キャッシュEがキャッシュAからのオブジェ
クトリクエストに応答しない場合は、キャッシュE、ま
たはキャッシュEへの接続が作動不能かもしれないの
で、リスト上の別のキャッシュを選択してUDP pi
ngリクエストを送信しなければならない。
【0044】α=1の場合、コピーの検索に必要なメッ
セージの数は、リクエストされたオブジェクトのコピー
をキャッシュC1001からキャッシュA1003に運
ぶメッセージを除き、有利なことに4つに減らされる。
これは、同じ目的のために2N+1個のメッセージが必
要な、図2〜図4に示す従来の決定関数よりはるかに効
率的である。本発明に従ってα=1について決定関数を
実行することにより、接続または装置の故障の確率が非
常に低く、かつキャッシュC1001が全キャッシュ間
に負担を分散する効率的な方法を実行する信頼性のある
ネットワークでは、良好なキャッシュ性能が得られる。
決定システムが実行されるとディレクトリリストが更新
される方式は、信頼性の高いネットワーク(信頼性の高
い装置および接続をもつネットワーク等)について有効
に動作するため、「楽観的アプローチ」と呼ばれる方式
を示す。
セージの数は、リクエストされたオブジェクトのコピー
をキャッシュC1001からキャッシュA1003に運
ぶメッセージを除き、有利なことに4つに減らされる。
これは、同じ目的のために2N+1個のメッセージが必
要な、図2〜図4に示す従来の決定関数よりはるかに効
率的である。本発明に従ってα=1について決定関数を
実行することにより、接続または装置の故障の確率が非
常に低く、かつキャッシュC1001が全キャッシュ間
に負担を分散する効率的な方法を実行する信頼性のある
ネットワークでは、良好なキャッシュ性能が得られる。
決定システムが実行されるとディレクトリリストが更新
される方式は、信頼性の高いネットワーク(信頼性の高
い装置および接続をもつネットワーク等)について有効
に動作するため、「楽観的アプローチ」と呼ばれる方式
を示す。
【0045】ネットワークの中には信頼性が完全ではな
いものがある。かかるネットワークの一例はインターネ
ットであり、所与の装置または接続が動作しているかど
うか、またはある任意の時間に利用不能かどうかの予測
が困難または不可能である。さらに、ディレクトリキャ
ッシュと受信キャッシュとがデータオブジェクトに対す
るリクエストをどこに送るかについてそれぞれ独自に決
定を行うため、負担をキャッシュ間に効率的に分散する
のが困難である。つまり、負担を均等に分配しようとし
ているキャッシュが、負担が他のキャッシュ群に独自に
どのように分配されているかを知り得ない場合があり、
この結果、データオブジェクトのリクエストを1つ以上
のキャッシュに予想外に集中させてしまう。α=1を選
択しても、選択されたキャッシュまたは該キャッシュへ
の接続が一時的に作動不能になっていて、リクエストさ
れたオブジェクトを該キャッシュが送信できない場合が
あるために効率的でない。従って、有利には「悲観的ア
プローチ」と呼ばれる方式が実行され、この方式では、
決定関数の実行中はディレクトリリストは更新されず、
ただしキャッシュが新しいオブジェクトを受けとるとデ
ィレクトリリストに適切なアドレスが加えられ、キャッ
シュがオブジェクトを排出(削除)するとそのアドレス
がディレクトリリストから削除される。
いものがある。かかるネットワークの一例はインターネ
ットであり、所与の装置または接続が動作しているかど
うか、またはある任意の時間に利用不能かどうかの予測
が困難または不可能である。さらに、ディレクトリキャ
ッシュと受信キャッシュとがデータオブジェクトに対す
るリクエストをどこに送るかについてそれぞれ独自に決
定を行うため、負担をキャッシュ間に効率的に分散する
のが困難である。つまり、負担を均等に分配しようとし
ているキャッシュが、負担が他のキャッシュ群に独自に
どのように分配されているかを知り得ない場合があり、
この結果、データオブジェクトのリクエストを1つ以上
のキャッシュに予想外に集中させてしまう。α=1を選
択しても、選択されたキャッシュまたは該キャッシュへ
の接続が一時的に作動不能になっていて、リクエストさ
れたオブジェクトを該キャッシュが送信できない場合が
あるために効率的でない。従って、有利には「悲観的ア
プローチ」と呼ばれる方式が実行され、この方式では、
決定関数の実行中はディレクトリリストは更新されず、
ただしキャッシュが新しいオブジェクトを受けとるとデ
ィレクトリリストに適切なアドレスが加えられ、キャッ
シュがオブジェクトを排出(削除)するとそのアドレス
がディレクトリリストから削除される。
【0046】α=1で、かつオブジェクトリクエストに
対する応答が否定的な場合(UDPpingミス応答が
受信されるか、または応答がない場合等)は、別のキャ
ッシュが選択され、まったく新しいUDP pingメ
ッセージの組がやりとりされて、リクエストされたオブ
ジェクトを可能ならば他のキャッシュに送信させる。α
=1を選択すると、ディレクトリリストが不正確で、選
択された1つのキャッシュが実際はリクエストされたオ
ブジェクトのコピーを持っていないという危険もある。
α>1に選択することで、オブジェクトのコピー入手過
程に冗長性をもたせ、リクエストされたオブジェクトを
1つ以上の可能性のある場所で探索することによって、
信頼性のないネットワーク中での上記の問題を軽減する
ことができる。またこの冗長性により、悲観的アプロー
チでは訂正されないいくつかの不正確なディレクトリエ
ントリをもつ影響を緩和できる。
対する応答が否定的な場合(UDPpingミス応答が
受信されるか、または応答がない場合等)は、別のキャ
ッシュが選択され、まったく新しいUDP pingメ
ッセージの組がやりとりされて、リクエストされたオブ
ジェクトを可能ならば他のキャッシュに送信させる。α
=1を選択すると、ディレクトリリストが不正確で、選
択された1つのキャッシュが実際はリクエストされたオ
ブジェクトのコピーを持っていないという危険もある。
α>1に選択することで、オブジェクトのコピー入手過
程に冗長性をもたせ、リクエストされたオブジェクトを
1つ以上の可能性のある場所で探索することによって、
信頼性のないネットワーク中での上記の問題を軽減する
ことができる。またこの冗長性により、悲観的アプロー
チでは訂正されないいくつかの不正確なディレクトリエ
ントリをもつ影響を緩和できる。
【0047】本発明の一実施形態では、αに定数Kを選
択する。この場合、ディレクトリリスト上のキャッシュ
数NがK以下ならば、UDP pingリクエストはリ
クエストされたオブジェクトのコピーを記憶しているN
個のキャッシュ、および該コピーを記憶していないK−
N個のキャッシュへ送信され、本発明の効率は従来のキ
ャッシングシステムのものに近づく。ディレクトリリス
ト上のキャッシュ数NがK以上ならば、キャッシュはデ
ィレクトリリストからK個のキャッシュを選び出し、各
キャッシュにUDP pingリクエストを送る。この
場合、作成されるメッセージ数は、リクエストされたオ
ブジェクトのコピーを運ぶメッセージを除いて2K+3
以下となる。これは上記でα=1について議論したのと
同じ理由で信頼性のあるネットワーク中で有効となりう
る。しかし信頼性のないネットワークでは、リクエスト
されたオブジェクトのコピーをもっていると称するディ
レクトリリスト上の全キャッシュ群にUDP ping
リクエストを送信することによって得られる冗長性を完
全には利用できない。
択する。この場合、ディレクトリリスト上のキャッシュ
数NがK以下ならば、UDP pingリクエストはリ
クエストされたオブジェクトのコピーを記憶しているN
個のキャッシュ、および該コピーを記憶していないK−
N個のキャッシュへ送信され、本発明の効率は従来のキ
ャッシングシステムのものに近づく。ディレクトリリス
ト上のキャッシュ数NがK以上ならば、キャッシュはデ
ィレクトリリストからK個のキャッシュを選び出し、各
キャッシュにUDP pingリクエストを送る。この
場合、作成されるメッセージ数は、リクエストされたオ
ブジェクトのコピーを運ぶメッセージを除いて2K+3
以下となる。これは上記でα=1について議論したのと
同じ理由で信頼性のあるネットワーク中で有効となりう
る。しかし信頼性のないネットワークでは、リクエスト
されたオブジェクトのコピーをもっていると称するディ
レクトリリスト上の全キャッシュ群にUDP ping
リクエストを送信することによって得られる冗長性を完
全には利用できない。
【0048】本発明に従えば、α値は、有利には本発明
が実現されるネットワークの信頼性に従ってキャッシン
グシステムの性能を最大にするべく選択される。信頼性
の高いネットワークでは、αは1に近く選択される。信
頼性の低いネットワークでは、αは1より大きく選択さ
れ、ネットワークの信頼性が低いほどより大きな値が選
択される。ただし信頼性のないネットワークでのαの値
は、多くてもディレクトリリストのアドレス数と同じに
しなければならない。信頼性のないネットワーク上で実
現される本発明の一実施形態では、各ディレクトリリス
トのサイズはK個のアドレスに固定され、αはKに設定
される。本発明の他の実施形態では、αは全ディレクト
リリスト群の平均アドレス数に設定される。さらに他の
実施形態では、αは全ディレクトリリスト群のメジアン
数に設定される。楽観的アプローチでは、あるキャッシ
ュがオリジナルコピーを受けとった場合、すなわちオブ
ジェクトのオリジナル情報源にオブジェクトのリクエス
トを送信した場合にのみ、キャッシュはオブジェクトの
ディレクトリリストを記憶しているキャッシュにディレ
クトリ追加リクエストを送信する。ディレクトリ追加リ
クエストを受信すると、ディレクトリキャッシュは、所
与のオブジェクトのディレクトリリストに送信元のキャ
ッシュのアドレスを追加する。また楽観的アプローチで
は、所与のオブジェクトのコピーをリクエストするキャ
ッシュがオブジェクトキャッシュからリクエストされた
オブジェクトのコピーが受信できなかった場合は、リク
エスト元のキャッシュはディレクトリキャッシュにディ
レクトリ削除リクエストを送信し、該オブジェクトのデ
ィレクトリリストからそのオブジェクトキャッシュのア
ドレスを削除する。また、オブジェクトキャッシュがオ
ブジェクトを排出するたびに、オブジェクトキャッシュ
から適当なディレクトリキャッシュへディレクトリ削除
リクエストが送信され、これによりオブジェクトキャッ
シュのアドレスがディレクトリリストから削除される。
が実現されるネットワークの信頼性に従ってキャッシン
グシステムの性能を最大にするべく選択される。信頼性
の高いネットワークでは、αは1に近く選択される。信
頼性の低いネットワークでは、αは1より大きく選択さ
れ、ネットワークの信頼性が低いほどより大きな値が選
択される。ただし信頼性のないネットワークでのαの値
は、多くてもディレクトリリストのアドレス数と同じに
しなければならない。信頼性のないネットワーク上で実
現される本発明の一実施形態では、各ディレクトリリス
トのサイズはK個のアドレスに固定され、αはKに設定
される。本発明の他の実施形態では、αは全ディレクト
リリスト群の平均アドレス数に設定される。さらに他の
実施形態では、αは全ディレクトリリスト群のメジアン
数に設定される。楽観的アプローチでは、あるキャッシ
ュがオリジナルコピーを受けとった場合、すなわちオブ
ジェクトのオリジナル情報源にオブジェクトのリクエス
トを送信した場合にのみ、キャッシュはオブジェクトの
ディレクトリリストを記憶しているキャッシュにディレ
クトリ追加リクエストを送信する。ディレクトリ追加リ
クエストを受信すると、ディレクトリキャッシュは、所
与のオブジェクトのディレクトリリストに送信元のキャ
ッシュのアドレスを追加する。また楽観的アプローチで
は、所与のオブジェクトのコピーをリクエストするキャ
ッシュがオブジェクトキャッシュからリクエストされた
オブジェクトのコピーが受信できなかった場合は、リク
エスト元のキャッシュはディレクトリキャッシュにディ
レクトリ削除リクエストを送信し、該オブジェクトのデ
ィレクトリリストからそのオブジェクトキャッシュのア
ドレスを削除する。また、オブジェクトキャッシュがオ
ブジェクトを排出するたびに、オブジェクトキャッシュ
から適当なディレクトリキャッシュへディレクトリ削除
リクエストが送信され、これによりオブジェクトキャッ
シュのアドレスがディレクトリリストから削除される。
【0049】悲観的アプローチでは、キャッシュがどの
情報源からでも所与のオブジェクトの新しいコピーを受
信するたびに、キャッシュはディレクトリキャッシュに
ディレクトリ追加リクエストを送信する。リクエスト元
のキャッシュがリクエストされたコピーが入手できなく
ても、ディレクトリ削除リクエストは送信されない。デ
ィレクトリ削除リクエストは、オブジェクトを記憶して
いるキャッシュがそのオブジェクトを排出するときにの
み適当なディレクトリキャッシュに送信される。このデ
ィレクトリ削除リクエストはオブジェクト排出元のキャ
ッシュから送信される。削除リクエストを受信すると、
オブジェクト排出元キャッシュのアドレスがディレクト
リリストから削除される。
情報源からでも所与のオブジェクトの新しいコピーを受
信するたびに、キャッシュはディレクトリキャッシュに
ディレクトリ追加リクエストを送信する。リクエスト元
のキャッシュがリクエストされたコピーが入手できなく
ても、ディレクトリ削除リクエストは送信されない。デ
ィレクトリ削除リクエストは、オブジェクトを記憶して
いるキャッシュがそのオブジェクトを排出するときにの
み適当なディレクトリキャッシュに送信される。このデ
ィレクトリ削除リクエストはオブジェクト排出元のキャ
ッシュから送信される。削除リクエストを受信すると、
オブジェクト排出元キャッシュのアドレスがディレクト
リリストから削除される。
【0050】図12に示すように、データオブジェクト
は、古くなると、記憶されているキャッシュから排出さ
れなければならない。これは本発明の一形態に従って、
生存時間(TTL)パラメータを記憶されている各オブ
ジェクトに関連づけることによって行われる。TTLパ
ラメータはキャッシュされたオブジェクトの最大寿命を
特定する。一実施形態では、TTLパラメータは、オブ
ジェクトのコピーが受信されキャッシュに記憶された時
からある一定の時間量だけずれた日付スタンプである。
TTLが期限切れすると、オブジェクトは排出される。
TTLパラメータは従来のシステム中で実現されてお
り、古くなったコピーをキャッシュ中に残留させてしま
うという欠点がある。従来のシステムでは、この問題は
所与のオブジェクトが古くなる(オリジナルが変更され
る等)と、該オブジェクトのすべてのキャッシュに排出
メッセージを配信することによって対処される。しか
し、排出メッセージの配信は、ネットワークに不利に負
担をかける大量のトラフィックを生じてしまう。
は、古くなると、記憶されているキャッシュから排出さ
れなければならない。これは本発明の一形態に従って、
生存時間(TTL)パラメータを記憶されている各オブ
ジェクトに関連づけることによって行われる。TTLパ
ラメータはキャッシュされたオブジェクトの最大寿命を
特定する。一実施形態では、TTLパラメータは、オブ
ジェクトのコピーが受信されキャッシュに記憶された時
からある一定の時間量だけずれた日付スタンプである。
TTLが期限切れすると、オブジェクトは排出される。
TTLパラメータは従来のシステム中で実現されてお
り、古くなったコピーをキャッシュ中に残留させてしま
うという欠点がある。従来のシステムでは、この問題は
所与のオブジェクトが古くなる(オリジナルが変更され
る等)と、該オブジェクトのすべてのキャッシュに排出
メッセージを配信することによって対処される。しか
し、排出メッセージの配信は、ネットワークに不利に負
担をかける大量のトラフィックを生じてしまう。
【0051】本発明は、古くなったキャッシュされたコ
ピーを効率的に排出して、費用のかかる配信メッセージ
の使用を避けることによって、この問題を解決する。本
発明に従えば、オリジナルオブジェクトが変更されるた
びにオブジェクトのオリジナル情報源からディレクトリ
キャッシュに排出リクエストを送信することによって、
オブジェクトをそのTTLが期限切れする前に排出でき
る。その後、ディレクトリキャッシュは、オブジェクト
のディレクトリリスト上の全オブジェクトキャッシュに
排出メッセージを送信する。これを受けて、オブジェク
トキャッシュはオブジェクトを排出し、ディレクトリリ
スト自体がディレクトリキャッシュから削除される。
ピーを効率的に排出して、費用のかかる配信メッセージ
の使用を避けることによって、この問題を解決する。本
発明に従えば、オリジナルオブジェクトが変更されるた
びにオブジェクトのオリジナル情報源からディレクトリ
キャッシュに排出リクエストを送信することによって、
オブジェクトをそのTTLが期限切れする前に排出でき
る。その後、ディレクトリキャッシュは、オブジェクト
のディレクトリリスト上の全オブジェクトキャッシュに
排出メッセージを送信する。これを受けて、オブジェク
トキャッシュはオブジェクトを排出し、ディレクトリリ
スト自体がディレクトリキャッシュから削除される。
【0052】この様子を図12に示す。キャッシュA1
201は、オリジナル情報源サーバ1202からオブジ
ェクトYの全コピーの排出リクエストを受信する。キャ
ッシュA1201はディレクトリロケータ関数L(Y)
=C1203を実行し、オブジェクトYのディレクトリ
リストがディレクトリキャッシュC1204に記憶され
ていることを知る。キャッシュA1201はキャッシュ
C1204にディレクトリ排出リクエストを送信する
(dir_eject(1))。キャッシュC1204
上のディレクトリリストYは、Yのキャッシュされたコ
ピーがキャッシュE1205およびF1206に記憶さ
れていることを示す。ディレクトリ排出リクエストを受
信すると(dir_eject(2))、キャッシュC
1204はキャッシュE1205およびF1206に排
出リクエスト(eject(3))を送り、これらのキ
ャッシュはYのコピーを排出する。その後、キャッシュ
C1204はそのYのディレクトリリストを削除する。
他の実施形態では、キャッシュAは、オブジェクトのオ
リジナル情報源サーバからオブジェクトのコピーを受信
するたびに、ディレクトリサーバにディレクトリ排出リ
クエストを送信する。この実施形態はオリジナル情報源
サーバからの排出メッセージを必要としない。本発明
は、従来のいくつかのキャッシングシステムで実行され
た全ディレクトリキャッシュへの排出メッセージの配信
を不要にできる。これにより古くなったオブジェクトの
コピーの排出のために生じるネットワークトラフィック
量を大幅に削減でき、キャッシングシステムの正確さを
より効率的に維持できる。
201は、オリジナル情報源サーバ1202からオブジ
ェクトYの全コピーの排出リクエストを受信する。キャ
ッシュA1201はディレクトリロケータ関数L(Y)
=C1203を実行し、オブジェクトYのディレクトリ
リストがディレクトリキャッシュC1204に記憶され
ていることを知る。キャッシュA1201はキャッシュ
C1204にディレクトリ排出リクエストを送信する
(dir_eject(1))。キャッシュC1204
上のディレクトリリストYは、Yのキャッシュされたコ
ピーがキャッシュE1205およびF1206に記憶さ
れていることを示す。ディレクトリ排出リクエストを受
信すると(dir_eject(2))、キャッシュC
1204はキャッシュE1205およびF1206に排
出リクエスト(eject(3))を送り、これらのキ
ャッシュはYのコピーを排出する。その後、キャッシュ
C1204はそのYのディレクトリリストを削除する。
他の実施形態では、キャッシュAは、オブジェクトのオ
リジナル情報源サーバからオブジェクトのコピーを受信
するたびに、ディレクトリサーバにディレクトリ排出リ
クエストを送信する。この実施形態はオリジナル情報源
サーバからの排出メッセージを必要としない。本発明
は、従来のいくつかのキャッシングシステムで実行され
た全ディレクトリキャッシュへの排出メッセージの配信
を不要にできる。これにより古くなったオブジェクトの
コピーの排出のために生じるネットワークトラフィック
量を大幅に削減でき、キャッシングシステムの正確さを
より効率的に維持できる。
【0053】本発明に従って実現される分散型排出方式
は、当該技術分野で公知である全キャッシュへの排出メ
ッセージの配信を不要にする。分散型排出方式は、古く
なったオブジェクトの排出に必要なネットワークトラフ
ィックだけしか生じないため、配信方式よりも効率的か
つ経済的である。さらに、分散型排出は大規模なシステ
ムにも小規模なシステムと同様に有効に動作するので、
ネットワークのサイズが大きくなるとそれに応じて負担
となる大量のトラフィックを生じる配信方式よりもスケ
ーラブルである。
は、当該技術分野で公知である全キャッシュへの排出メ
ッセージの配信を不要にする。分散型排出方式は、古く
なったオブジェクトの排出に必要なネットワークトラフ
ィックだけしか生じないため、配信方式よりも効率的か
つ経済的である。さらに、分散型排出は大規模なシステ
ムにも小規模なシステムと同様に有効に動作するので、
ネットワークのサイズが大きくなるとそれに応じて負担
となる大量のトラフィックを生じる配信方式よりもスケ
ーラブルである。
【0054】本発明は、従来のキャッシングシステムと
比べて効率が高く、かつスケーラブルなキャッシングシ
ステムを提供する。このシステムは、ディレクトリリス
トの形の分散型ディレクトリを提供し、各ディレクトリ
リストは1つのデータオブジェクトに関連づけられる。
ディレクトリリストは、オブジェクトのコピーが記憶さ
れているオブジェクトキャッシュ群のリストである。オ
ブジェクトのディレクトリリストはネットワークの多数
のサーバ間に分散される。所与のオブジェクトのディレ
クトリリストの位置は、オブジェクトのネットワークア
ドレスをディレクトリリストが記憶されているディレク
トリキャッシュのネットワークアドレスを指すポインタ
に相関させるハッシュロケータ関数によって、簡単かつ
経済的に求められる。ディレクトリリストの多数のオブ
ジェクトキャッシュ群がポーリングされ、その中からキ
ャッシュされたコピーを取り出す1つのキャッシュが選
択される。オブジェクトキャッシュの数は、信頼性の異
なる様々なネットワーク環境中でキャッシングシステム
の性能を最大にするように、本発明に従って有利に選択
できる。ディレクトリリストは、ネットワークの状態に
従って分散式で更新される。古くなったオブジェクトお
よびディレクトリは、効率的な分散方式でキャッシング
システムから排出される。本発明は、従来のキャッシン
グシステムに比べて高い信頼性と低い費用で実現するこ
とができる。さらに、本発明はボトルネックや単一故障
点の影響を受けにくいので、従来のキャシングシステム
に関連した多くの問題を解決でき、ネットワークにかけ
るキャッシングシステムのネットワークトラフィックの
負担を従来のシステムより大幅に削減できる。
比べて効率が高く、かつスケーラブルなキャッシングシ
ステムを提供する。このシステムは、ディレクトリリス
トの形の分散型ディレクトリを提供し、各ディレクトリ
リストは1つのデータオブジェクトに関連づけられる。
ディレクトリリストは、オブジェクトのコピーが記憶さ
れているオブジェクトキャッシュ群のリストである。オ
ブジェクトのディレクトリリストはネットワークの多数
のサーバ間に分散される。所与のオブジェクトのディレ
クトリリストの位置は、オブジェクトのネットワークア
ドレスをディレクトリリストが記憶されているディレク
トリキャッシュのネットワークアドレスを指すポインタ
に相関させるハッシュロケータ関数によって、簡単かつ
経済的に求められる。ディレクトリリストの多数のオブ
ジェクトキャッシュ群がポーリングされ、その中からキ
ャッシュされたコピーを取り出す1つのキャッシュが選
択される。オブジェクトキャッシュの数は、信頼性の異
なる様々なネットワーク環境中でキャッシングシステム
の性能を最大にするように、本発明に従って有利に選択
できる。ディレクトリリストは、ネットワークの状態に
従って分散式で更新される。古くなったオブジェクトお
よびディレクトリは、効率的な分散方式でキャッシング
システムから排出される。本発明は、従来のキャッシン
グシステムに比べて高い信頼性と低い費用で実現するこ
とができる。さらに、本発明はボトルネックや単一故障
点の影響を受けにくいので、従来のキャシングシステム
に関連した多くの問題を解決でき、ネットワークにかけ
るキャッシングシステムのネットワークトラフィックの
負担を従来のシステムより大幅に削減できる。
【0055】以下に、本発明の様々な形態の仮想的なコ
ードの実施例を示す。所与のオブジェクトのコピーの入
手を望むクライアントは、あるキャッシュに入手リクエ
ストメッセージを送信する。図5に示すように、オブジ
ェクトYに対する入手リクエストはクライアント502
からキャッシュA501に送られる。入手リクエストの
仮想的なコードの実施例は図13のようになる。
ードの実施例を示す。所与のオブジェクトのコピーの入
手を望むクライアントは、あるキャッシュに入手リクエ
ストメッセージを送信する。図5に示すように、オブジ
ェクトYに対する入手リクエストはクライアント502
からキャッシュA501に送られる。入手リクエストの
仮想的なコードの実施例は図13のようになる。
【0056】上記の入手リクエストの実施例はディレク
トリ探索リクエストを実行する。探索リクエストの仮想
的なコードは図14のようになる。
トリ探索リクエストを実行する。探索リクエストの仮想
的なコードは図14のようになる。
【0057】ディレクトリリストからα個のアドレスを
選択するディレクトリ探索ルーチンの仮想的なコードの
実施例は図15のようになる。
選択するディレクトリ探索ルーチンの仮想的なコードの
実施例は図15のようになる。
【0058】UDP pingリクエスト/ヒット/ミ
ス・ルーチンの仮想的なコードの実施例は図16のよう
になる。
ス・ルーチンの仮想的なコードの実施例は図16のよう
になる。
【0059】ディレクトリ追加ルーチンの仮想的なコー
ドの実施例は図17のようになる。
ドの実施例は図17のようになる。
【0060】ディレクトリ削除ルーチンの仮想的なコー
ドの実施例は図18のようになる。
ドの実施例は図18のようになる。
【0061】排出ルーチンの仮想的なコードの実施例は
図19のようになる。
図19のようになる。
【0062】オリジナル情報源からオブジェクトのコピ
ーを入手するリフレッシュルーチンの仮想的なコードの
実施例は図20のようになる。
ーを入手するリフレッシュルーチンの仮想的なコードの
実施例は図20のようになる。
【0063】応答が目的地から受信されたかどうかをテ
ストし、適当な維持方式を実行するルーチンの仮想的な
コードの実施例は図21のようになる。
ストし、適当な維持方式を実行するルーチンの仮想的な
コードの実施例は図21のようになる。
【0064】本発明に従う分散型排出方式の仮想的なコ
ードの実施例は図22のようになる。
ードの実施例は図22のようになる。
【0065】排出ルーチンの仮想的なコードの実施例は
図23のようになる。
図23のようになる。
【0066】本発明は、有利には、従来のキャッシング
システムより効率的な、オブジェクトのキャッシングシ
ステムおよび方法をネットワーク上で提供する。本発明
に従う分散型方法は、有利には、キャッシュされたオブ
ジェクトを記憶、発見、入手、および排出を行うスケー
ラブルな方法を提供し、ネットワーク上のデータオブジ
ェクト数が増大しても、ネットワークに課すキャッシン
グシステムトラフィックの負担を低く抑えつつ性能を向
上させることができる、改良されたネットワークを提供
する。本発明はまた、データオブジェクトが頻繁に変化
するネットワークにおいて、従来のキャッシングシステ
ムよりも優れた性能を発揮する。これは、有利には従来
のキャッシングシステムにおいて不都合にネットワーク
に負担をかけていたロッキング、承認、および配信メッ
セージを必要とすることなく達成できる。
システムより効率的な、オブジェクトのキャッシングシ
ステムおよび方法をネットワーク上で提供する。本発明
に従う分散型方法は、有利には、キャッシュされたオブ
ジェクトを記憶、発見、入手、および排出を行うスケー
ラブルな方法を提供し、ネットワーク上のデータオブジ
ェクト数が増大しても、ネットワークに課すキャッシン
グシステムトラフィックの負担を低く抑えつつ性能を向
上させることができる、改良されたネットワークを提供
する。本発明はまた、データオブジェクトが頻繁に変化
するネットワークにおいて、従来のキャッシングシステ
ムよりも優れた性能を発揮する。これは、有利には従来
のキャッシングシステムにおいて不都合にネットワーク
に負担をかけていたロッキング、承認、および配信メッ
セージを必要とすることなく達成できる。
【図1】 先行技術のキャッシングのシステムの実施形
態を示す図である。
態を示す図である。
【図2】 先行技術のキャッシングのシステムにおける
UDP pingリクエストの伝達過程を示す図であ
る。
UDP pingリクエストの伝達過程を示す図であ
る。
【図3】 先行技術のキャッシングのシステムにおける
UDP pingヒットメッセージおよびUDP pi
ngミスメッセージの伝達過程を示す図である。
UDP pingヒットメッセージおよびUDP pi
ngミスメッセージの伝達過程を示す図である。
【図4】 先行技術のキャッシングのシステムにおい
て、オブジェクトのコピーに対するリクエストを伝達
し、リクエストされたオブジェクトのコピーをキャッシ
ュおよびクライアントに伝達する過程を示す図である。
て、オブジェクトのコピーに対するリクエストを伝達
し、リクエストされたオブジェクトのコピーをキャッシ
ュおよびクライアントに伝達する過程を示す図である。
【図5】 本発明に従うキャッシングのシステムの一実
施形態において、クライアントがオブジェクトに対する
リクエストを受信キャッシュに送信し、受信キャッシュ
がリクエストされたオブジェクトに対してディレクトリ
ロケータ関数を実行する様子を示す図である。
施形態において、クライアントがオブジェクトに対する
リクエストを受信キャッシュに送信し、受信キャッシュ
がリクエストされたオブジェクトに対してディレクトリ
ロケータ関数を実行する様子を示す図である。
【図6】 本発明に従うキャッシングのシステムの一実
施形態において、クライアントからのオブジェクトに対
するリクエストに応答して、受信キャッシュがディレク
トリキャッシュに探索リクエストを送信する様子を示す
図である。
施形態において、クライアントからのオブジェクトに対
するリクエストに応答して、受信キャッシュがディレク
トリキャッシュに探索リクエストを送信する様子を示す
図である。
【図7】 本発明に従うキャッシングのシステムの一実
施形態において、ディレクトリキャッシュが、リクエス
トされたオブジェクトのディレクトリリスト上のキャッ
シュ群にUDP pingリクエストを送信する様子を
示す図である。
施形態において、ディレクトリキャッシュが、リクエス
トされたオブジェクトのディレクトリリスト上のキャッ
シュ群にUDP pingリクエストを送信する様子を
示す図である。
【図8】 本発明に従うキャッシングのシステムの一実
施形態において、リクエストされたオブジェクトのディ
レクトリリスト上のキャッシュ群が、ディレクトリキャ
ッシュに対してUDP pingヒットメッセージで応
答する様子を示す図である。
施形態において、リクエストされたオブジェクトのディ
レクトリリスト上のキャッシュ群が、ディレクトリキャ
ッシュに対してUDP pingヒットメッセージで応
答する様子を示す図である。
【図9】 本発明に従うキャッシングのシステムの一実
施形態において、受信キャッシュがオブジェクトリクエ
ストメッセージをディレクトリリスト上のキャッシュに
送信し、このキャッシュがリクエストされたオブジェク
トのコピーを受信キャッシュに送信し、受信キャッシュ
がオブジェクトのコピーをクライアントに送信する様子
を示す図である。
施形態において、受信キャッシュがオブジェクトリクエ
ストメッセージをディレクトリリスト上のキャッシュに
送信し、このキャッシュがリクエストされたオブジェク
トのコピーを受信キャッシュに送信し、受信キャッシュ
がオブジェクトのコピーをクライアントに送信する様子
を示す図である。
【図10】 本発明に従うキャッシングのシステムの一
実施形態において、オブジェクトキャッシュ群の1つの
キャッシュにだけ、オブジェクトリクエストメッセージ
が送信される様子を示す図である。
実施形態において、オブジェクトキャッシュ群の1つの
キャッシュにだけ、オブジェクトリクエストメッセージ
が送信される様子を示す図である。
【図11】 本発明に従うキャッシングのシステムの一
実施形態において、キャッシュがディレクトリキャッシ
ュに削除リクエストメッセージを送信する様子を示す図
である。
実施形態において、キャッシュがディレクトリキャッシ
ュに削除リクエストメッセージを送信する様子を示す図
である。
【図12】 本発明に従うキャッシングのシステムの一
実施形態において、サーバが受信キャッシュに所与のオ
ブジェクトに対するディレクトリ排出メッセージを送信
し、受信キャッシュがこのオブジェクトに対してディレ
クトリロケータ関数を実行し、かつディレクトリキャッ
シュにディレクトリ排出メッセージを送信し、ディレク
トリキャッシュがオブジェクトに対してディレクトリリ
スト上のキャッシュに排出メッセージを送信する様子を
示す図である。
実施形態において、サーバが受信キャッシュに所与のオ
ブジェクトに対するディレクトリ排出メッセージを送信
し、受信キャッシュがこのオブジェクトに対してディレ
クトリロケータ関数を実行し、かつディレクトリキャッ
シュにディレクトリ排出メッセージを送信し、ディレク
トリキャッシュがオブジェクトに対してディレクトリリ
スト上のキャッシュに排出メッセージを送信する様子を
示す図である。
【図13】 入手リクエストの仮想コードを示す図であ
る。
る。
【図14】 探索リクエストの仮想コードを示す図であ
る。
る。
【図15】 ディレクトリ探索ルーチンの仮想コードを
示す図である。
示す図である。
【図16】 pingリクエストの仮想コードを示す図
である。
である。
【図17】 ディレクトリ追加ルーチンの仮想コードを
示す図である。
示す図である。
【図18】 ディレクトリ削除ルーチンの仮想コードを
示す図である。
示す図である。
【図19】 排出ルーチンの仮想コードを示す図であ
る。
る。
【図20】 リフレッシュルーチンの仮想コードを示す
図である。
図である。
【図21】 レスポンス待ちルーチンの仮想コードを示
す図である。
す図である。
【図22】 ディレクトリ排出ルーチンの仮想コードを
示す図である。
示す図である。
【図23】 排出ルーチンの仮想コードを示す図であ
る。
る。
501 受信キャッシュ、502 クライアント、50
3 ディレクトリキャッシュ、504,505,50
6,507 オブジェクトキャッシュ、508ハッシュ
ロケータ関数。
3 ディレクトリキャッシュ、504,505,50
6,507 オブジェクトキャッシュ、508ハッシュ
ロケータ関数。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 パーサ ピー ドゥッタ アメリカ合衆国 カリフォルニア州 サン ノゼ マリブ ドライブ 1164 (72)発明者 トーマス ビー ロンドン アメリカ合衆国 カリフォルニア州 マウ ンテン ビュー ラモス コート 2739 (72)発明者 シニサ サーブルジック クロアチア ヴァリカ ゴリカ 10410 ジョシパ ジェラシオス 91 ヴェーネ ユー1 (72)発明者 ダリボー エフ ヴルサロヴィック アメリカ合衆国 カリフォルニア州 サニ ーヴェイル カムサック コート 932
Claims (20)
- 【請求項1】 ネットワークにおける分散型キャッシュ
システムであって、 プロセッサとコンピュータにより読み出し可能なメモリ
とネットワークに接続するポートとを接続するデータバ
スを含み、ユーザからオブジェクトに対するリクエスト
を受信し、前記リクエストを入力として用いてポインタ
を出力として与えるディレクトリロケータ関数を実行す
る、受信キャッシュと、 プロセッサとコンピュータにより読み出し可能なメモリ
とネットワークに接続するポートとを接続するデータバ
スを含み、前記ポインタがネットワークアドレスを示す
場合に前記ポインタによってそのネットワークアドレス
が示され、前記メモリ中にリクエストされた前記オブジ
ェクトのディレクトリリストを記憶する、ディレクトリ
キャッシュと、を含み、 前記ディレクトリリストは、リクエストされた前記オブ
ジェクトのネットワークアドレスと、ネットワーク上の
オブジェクトキャッシュのネットワークアドレスとを含
み、 前記オブジェクトキャッシュは、プロセッサとコンピュ
ータにより読み出し可能なメモリとネットワークに接続
するポートとを接続するデータバスを含み、前記メモリ
中にリクエストされた前記オブジェクトのコピーを記憶
するシステム。 - 【請求項2】 請求項1に記載のシステムにおいて、前
記受信キャッシュは、前記ポインタがネットワークアド
レスを示さない場合、前記ユーザによってリクエストさ
れたオブジェクトに対するリクエストを前記オブジェク
トのネットワークアドレスに送信するシステム。 - 【請求項3】 請求項1に記載のシステムにおいて、前
記受信キャッシュ、前記ディレクトリキャッシュ、およ
び前記オブジェクトキャッシュは、ネットワーク上の階
層レベルの第1レベルで論理上グループ分けされ、 前記システムはさらに、前記階層レベルの第2レベルで
論理上グループ分けされる第2の受信キャッシュと、第
2のディレクトリキャッシュと、第2のオブジェクトキ
ャッシュとを含み、 前記第1レベルの前記受信キャッシュは、前記ポインタ
がネットワークアドレスを示さない場合、前記ユーザか
らリクエストされたオブジェクトに対するリクエストを
前記第2レベルの前記第2の受信キャッシュに送信する
システム。 - 【請求項4】 ネットワーク上に記憶されたデータオブ
ジェクトに対するユーザからのリクエストを受信する、
ネットワーク上のスケーラブルな分散型キャッシングシ
ステムを実現する方法であって、 データオブジェクトのコピーをネットワーク上のオブジ
ェクトキャッシュに記憶するステップと、 ディレクトリリストをネットワーク上のディレクトリキ
ャッシュに記憶するステップであって、前記ディレクト
リリストは、前記オブジェクトのネットワークアドレス
と、前記オブジェクトのコピーを記憶していると称され
るオブジェクトキャッシュのネットワークアドレスとを
含むステップと、 ユーザからオブジェクトに対するリクエストを受信する
受信キャッシュ上でロケータ関数を実行するステップで
あって、前記リクエストは前記オブジェクトのネットワ
ークアドレスを含み、前記ロケータ関数は前記ユーザリ
クエストを入力として使用してポインタを出力として与
えるステップと、を含む方法。 - 【請求項5】 請求項4に記載の方法において、前記ポ
インタはネットワークアドレスを示さない方法。 - 【請求項6】 請求項5に記載の方法であって、 前記受信キャッシュから前記オブジェクトの前記ネット
ワークアドレスにおけるサーバに、前記オブジェクトの
コピーを要求するメッセージを送信するステップと、 前記オブジェクトの前記ネットワークアドレスにおける
前記サーバから前記受信キャッシュに、前記オブジェク
トのコピーを送信するステップと、をさらに含む方法。 - 【請求項7】 請求項6に記載の方法であって、 前記受信キャッシュに前記オブジェクトのコピーを記憶
するステップと、 前記受信キャッシュから前記ディレクトリキャッシュ
に、前記オブジェクトのディレクトリキャッシュ上の前
記オブジェクトキャッシュのアドレスを削除し、前記受
信キャッシュのアドレスを前記ディレクトリリストに加
えることを要求するメッセージを送信するステップと、 前記オブジェクトの前記ディレクトリキャッシュ上の前
記オブジェクトキャッシュのアドレスを削除し、前記受
信キャッシュのアドレスを前記ディレクトリリストに加
えるステップと、をさらに含む方法。 - 【請求項8】 請求項5に記載の方法において、前記受
信キャッシュは、ネットワーク上のキャッシュの論理レ
ベルの階層中の第1の論理レベルにあり、前記方法は、
前記第1レベルの前記受信キャッシュから第2の階層レ
ベルの受信キャッシュに、前記オブジェクトのコピーを
要求するメッセージを送信するステップをさらに含む方
法。 - 【請求項9】 請求項4に記載の方法において、前記ポ
インタは、前記オブジェクトのディレクトリリストを記
憶しているディレクトリキャッシュのネットワークアド
レスを指す方法。 - 【請求項10】 請求項9に記載の方法であって、前記
受信キャッシュから前記ポインタによって示されたアド
レスをもつ前記ディレクトリキャッシュに、オブジェク
トリクエストメッセージを送信するステップをさらに含
む方法。 - 【請求項11】 請求項10に記載の方法であって、前
記ディレクトリキャッシュから前記受信キャッシュに、
前記オブジェクトの前記ディレクトリリスト上のオブジ
ェクトキャッシュのネットワークアドレスを含むメッセ
ージを送信するステップをさらに含む方法。 - 【請求項12】 請求項10に記載の方法であって、前
記ディレクトリキャッシュから前記オブジェクトの前記
ディレクトリリストに掲載されたアドレスを持つオブジ
ェクトキャッシュに、前記オブジェクトキャッシュが前
記オブジェクトのコピーを記憶しているかどうかを示す
メッセージを受信キャッシュに送信するよう前記オブジ
ェクトキャッシュに要求するメッセージを送信するステ
ップをさらに含む方法。 - 【請求項13】 請求項10に記載の方法において、複
数のディレクトリリストが複数のディレクトリキャッシ
ュ上に記憶されており、各ディレクトリリストは、オブ
ジェクトのネットワークアドレスと、前記オブジェクト
のコピーを記憶していると称される少なくとも1つのオ
ブジェクトキャッシュのネットワークアドレスとを含
み、前記方法は、 前記ディレクトリリストからα個のオブジェクトキャッ
シュのネットワークアドレスを選択するステップと、 前記ディレクトリキャッシュから選択された各オブジェ
クトキャッシュに、オブジェクトキャッシュが前記オブ
ジェクトのコピーを記憶しているかどうかを示すメッセ
ージを前記受信キャッシュに送信するよう要求するメッ
セージを送信するステップと、 前記選択された各オブジェクトキャッシュから前記受信
キャッシュに、前記オブジェクトキャッシュが前記オブ
ジェクトのコピーを記憶しているかどうかを示すメッセ
ージを送信するステップと、 前記オブジェクトのコピーを記憶していることを示す、
前記受信キャッシュが受信した最初のメッセージを送信
したオブジェクトキャッシュを、主要オブジェクトキャ
ッシュとして特定するステップと、 前記受信キャッシュから前記主要オブジェクトキャッシ
ュに、前記オブジェクトのコピーを前記受信キャッシュ
に送信するよう要求するメッセージを送信するステップ
と、をさらに含む方法。 - 【請求項14】 請求項10に記載の方法において、複
数のディレクトリリストが複数のディレクトリキャッシ
ュ上に記憶されており、各ディレクトリリストは、オブ
ジェクトのネットワークアドレスと、前記オブジェクト
のコピーを記憶していると称される少なくとも1つのオ
ブジェクトキャッシュのネットワークアドレスとを含
み、前記方法は、 前記ディレクトリキャッシュから前記受信キャッシュ
に、前記オブジェクトのディレクトリリスト上のオブジ
ェクトキャッシュのアドレスを含むメッセージを送信す
るステップと、 前記ディレクトリリストからα個のオブジェクトキャッ
シュのネットワークアドレスを選択するステップと、 前記受信キャッシュから選択された各オブジェクトキャ
ッシュに、そのオブジェクトキャッシュが前記オブジェ
クトのコピーを記憶しているかどうかを示すメッセージ
を前記受信キャッシュに送信するよう要求するメッセー
ジを送信するステップと、 前記選択された各オブジェクトキャッシュから前記受信
キャッシュに、そのオブジェクトキャッシュが前記オブ
ジェクトのコピーを記憶しているかどうかを示すメッセ
ージを送信するステップと、 前記オブジェクトのコピーを記憶していることを示す、
前記受信キャッシュが受信した最初のメッセージを送信
したオブジェクトキャッシュを、主要オブジェクトキャ
ッシュに特定するステップと、 前記受信キャッシュから前記主要オブジェクトキャッシ
ュに、前記オブジェクトのコピーを前記受信キャッシュ
に送信するよう要求するメッセージを送信するステップ
と、をさらに含む方法。 - 【請求項15】 ネットワーク上のスケーラブルな分散
型キャッシングシステムであって、 データオブジェクトのコピーを記憶する手段と、 前記オブジェクトのコピーが記憶されているネットワー
ク位置を特定するディレクトリリストを記憶する手段
と、 前記オブジェクトの前記ディレクトリリストが記憶され
ているネットワーク位置を求める手段と、 前記オブジェクトのコピーを要求する場所を選択する手
段と、 前記オブジェクトのコピーを入手する手段と、を含むシ
ステム。 - 【請求項16】 請求項15に記載のシステムであっ
て、オブジェクトが記憶される新しいネットワーク位置
を前記オブジェクトの前記ディレクトリリストに加える
手段をさらに含むシステム。 - 【請求項17】 請求項15に記載のシステムであっ
て、あるオブジェクトの前記ディレクトリリストからネ
ットワーク位置を削除する手段をさらに含むシステム。 - 【請求項18】 請求項15に記載のシステムであっ
て、記憶されたオブジェクトのコピーを削除する手段を
さらに含むシステム。 - 【請求項19】 請求項15に記載のシステムであっ
て、あるオブジェクトのディレクトリリストを削除する
手段をさらに含むシステム。 - 【請求項20】 請求項15に記載のシステムであっ
て、前記オブジェクトのオリジナル情報源からオブジェ
クトのコピーを入手する手段をさらに含むシステム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/827,763 | 1997-04-10 | ||
| US08/827,763 US5933849A (en) | 1997-04-10 | 1997-04-10 | Scalable distributed caching system and method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10301880A true JPH10301880A (ja) | 1998-11-13 |
Family
ID=25250095
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10091588A Pending JPH10301880A (ja) | 1997-04-10 | 1998-04-03 | スケーラブルネットワークオブジェクトキャッシュ |
Country Status (4)
| Country | Link |
|---|---|
| US (2) | US5933849A (ja) |
| EP (1) | EP0871127A3 (ja) |
| JP (1) | JPH10301880A (ja) |
| CA (1) | CA2229291C (ja) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000187609A (ja) * | 1998-11-20 | 2000-07-04 | Internatl Business Mach Corp <Ibm> | 要求されたオブジェクトを検索する方法及び記録デバイス |
| JP2002525749A (ja) * | 1998-09-24 | 2002-08-13 | ミラー・イメージ・インターネット・インコーポレイテッド | インターネットキャッシングシステム、方法およびそのシステムの構成 |
| US7210021B2 (en) | 2002-03-15 | 2007-04-24 | Fujitsu Limited | Cache control program |
| JP2007219984A (ja) * | 2006-02-20 | 2007-08-30 | Brother Ind Ltd | コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム |
| JP2008506195A (ja) * | 2004-07-07 | 2008-02-28 | ヨッタヨッタ インコーポレイテッド | 分散キャッシュ・コヒーレンスを提供するシステムおよび方法 |
| JP2009080838A (ja) * | 2001-04-04 | 2009-04-16 | Yahoo Inc | 電子商品をキャッシュするための手法 |
| JP2010108508A (ja) * | 2004-03-22 | 2010-05-13 | Qualcomm Inc | 衛星の予想帯域幅促進 |
| JP2013536530A (ja) * | 2010-08-26 | 2013-09-19 | アリババ・グループ・ホールディング・リミテッド | 分散型キャッシング(caching)オブジェクトを除去する方法、システム、およびサーバ |
Families Citing this family (181)
| 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 |
| US6654933B1 (en) | 1999-09-21 | 2003-11-25 | Kasenna, Inc. | System and method for media stream indexing |
| US7103794B2 (en) | 1998-06-08 | 2006-09-05 | Cacheflow, Inc. | Network object cache engine |
| US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
| US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
| US6014667A (en) * | 1997-10-01 | 2000-01-11 | Novell, Inc. | System and method for caching identification and location information in a computer network |
| US6393526B1 (en) * | 1997-10-28 | 2002-05-21 | Cache Plan, Inc. | Shared cache parsing and pre-fetch |
| US6587931B1 (en) * | 1997-12-31 | 2003-07-01 | Unisys Corporation | Directory-based cache coherency system supporting multiple instruction processor and input/output caches |
| US6353836B1 (en) | 1998-02-13 | 2002-03-05 | Oracle Corporation | Method and apparatus for transferring data from the cache of one node to the cache of another node |
| US7200623B2 (en) * | 1998-11-24 | 2007-04-03 | Oracle International Corp. | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
| US7930278B2 (en) * | 1998-02-13 | 2011-04-19 | Oracle International Corporation | Methods to perform disk writes in a distributed shared disk system needing consistency across failures |
| US6430618B1 (en) * | 1998-03-13 | 2002-08-06 | Massachusetts Institute Of Technology | Method and apparatus for distributing requests among a plurality of resources |
| US6205481B1 (en) * | 1998-03-17 | 2001-03-20 | Infolibria, Inc. | Protocol for distributing fresh content among networked cache servers |
| US6625694B2 (en) * | 1998-05-08 | 2003-09-23 | Fujitsu Ltd. | System and method for allocating a directory entry for use in multiprocessor-node data processing systems |
| US6192404B1 (en) * | 1998-05-14 | 2001-02-20 | Sun Microsystems, Inc. | Determination of distance between nodes in a computer network |
| US6311216B1 (en) | 1998-05-29 | 2001-10-30 | Microsoft Corporation | Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS |
| US6341311B1 (en) | 1998-05-29 | 2002-01-22 | Microsoft Corporation | Directing data object access requests in a distributed cache |
| US6826651B2 (en) | 1998-05-29 | 2004-11-30 | International Business Machines Corporation | State-based allocation and replacement for improved hit ratio in directory caches |
| 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 |
| US6108703A (en) * | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
| US6427187B2 (en) | 1998-07-31 | 2002-07-30 | Cache Flow, Inc. | Multiple cache communication |
| WO2000018041A2 (en) * | 1998-09-18 | 2000-03-30 | Harris Corporation | Distributed trunking mechanism for vhf networking |
| US6535509B2 (en) | 1998-09-28 | 2003-03-18 | Infolibria, Inc. | Tagging for demultiplexing in a network traffic server |
| US6438652B1 (en) * | 1998-10-09 | 2002-08-20 | International Business Machines Corporation | Load balancing cooperating cache servers by shifting forwarded request |
| US6385649B1 (en) * | 1998-11-06 | 2002-05-07 | Microsoft Corporation | Routers and methods for optimal routing table compression |
| US7065540B2 (en) | 1998-11-24 | 2006-06-20 | Oracle International Corporation | Managing checkpoint queues in a multiple node system |
| US6633891B1 (en) * | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
| US6564251B2 (en) | 1998-12-03 | 2003-05-13 | Microsoft Corporation | Scalable computing system for presenting customized aggregation of information |
| US6345292B1 (en) * | 1998-12-03 | 2002-02-05 | Microsoft Corporation | Web page rendering architecture |
| US6526448B1 (en) | 1998-12-22 | 2003-02-25 | At&T Corp. | Pseudo proxy server providing instant overflow capacity to computer networks |
| US6408360B1 (en) * | 1999-01-25 | 2002-06-18 | International Business Machines Corporation | Cache override control in an apparatus for caching dynamic content |
| US6351767B1 (en) * | 1999-01-25 | 2002-02-26 | International Business Machines Corporation | Method and system for automatically caching dynamic content based on a cacheability determination |
| US6434608B1 (en) * | 1999-02-26 | 2002-08-13 | Cisco Technology, Inc. | Methods and apparatus for caching network traffic |
| AU4328000A (en) | 1999-03-31 | 2000-10-16 | Verizon Laboratories Inc. | Techniques for performing a data query in a computer system |
| US8275661B1 (en) | 1999-03-31 | 2012-09-25 | Verizon Corporate Services Group Inc. | Targeted banner advertisements |
| US6701415B1 (en) | 1999-03-31 | 2004-03-02 | America Online, Inc. | Selecting a cache for a request for information |
| US8572069B2 (en) | 1999-03-31 | 2013-10-29 | Apple Inc. | Semi-automatic index term augmentation in document retrieval |
| US6513062B1 (en) * | 1999-05-25 | 2003-01-28 | Grischa Corporation | Method, apparatus, and computer program product for efficient server response generation using intermediate state caching |
| US6718363B1 (en) | 1999-07-30 | 2004-04-06 | Verizon Laboratories, Inc. | Page aggregation for web sites |
| US6941374B1 (en) * | 1999-08-05 | 2005-09-06 | Amazon.Com, Inc. | Hidden agent transfer protocol |
| US6618751B1 (en) * | 1999-08-20 | 2003-09-09 | International Business Machines Corporation | Systems and methods for publishing data with expiration times |
| US6532492B1 (en) * | 1999-09-15 | 2003-03-11 | International Business Machines Corporation | Methods, systems and computer program products for cache management using admittance control |
| US6907463B1 (en) * | 1999-10-19 | 2005-06-14 | Audiogalaxy, Inc. | System and method for enabling file transfers executed in a network environment by a software program |
| US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
| US6904433B2 (en) * | 2000-04-25 | 2005-06-07 | At&T Corp. | Method for using query templates in directory caches |
| US6823377B1 (en) * | 2000-01-28 | 2004-11-23 | International Business Machines Corporation | Arrangements and methods for latency-sensitive hashing for collaborative web caching |
| US8756342B1 (en) | 2000-02-07 | 2014-06-17 | Parallel Networks, Llc | Method and apparatus for content synchronization |
| NZ520663A (en) * | 2000-02-10 | 2004-05-28 | Involve Technology Inc | System for creating and maintaining a database of information utilizing user defined keyword relevance ratings |
| US20030236961A1 (en) * | 2000-11-07 | 2003-12-25 | Qiu Chaoxin C. | Systems and methods for management of memory in information delivery environments |
| US6654766B1 (en) * | 2000-04-04 | 2003-11-25 | International Business Machines Corporation | System and method for caching sets of objects |
| US6912525B1 (en) | 2000-05-08 | 2005-06-28 | Verizon Laboratories, Inc. | Techniques for web site integration |
| US6457047B1 (en) * | 2000-05-08 | 2002-09-24 | Verity, Inc. | Application caching system and method |
| US6839809B1 (en) | 2000-05-31 | 2005-01-04 | Cisco Technology, Inc. | Methods and apparatus for improving content quality in web caching systems |
| US20010049732A1 (en) * | 2000-06-01 | 2001-12-06 | Raciborski Nathan F. | Content exchange apparatus |
| US6704781B1 (en) * | 2000-06-27 | 2004-03-09 | Intel Corporation | System and method for content caching implementing compensation for providing caching services |
| US7379963B1 (en) | 2000-07-14 | 2008-05-27 | Knownow-Delaware | Delivery of any type of information to anyone anytime anywhere |
| US6859863B1 (en) * | 2000-07-20 | 2005-02-22 | Silicon Graphics, Inc. | Method and system for managing data at an input/output interface for a multiprocessor system |
| US7277956B2 (en) * | 2000-07-28 | 2007-10-02 | Kasenna, Inc. | System and method for improved utilization of bandwidth in a computer system serving multiple users |
| US7310678B2 (en) * | 2000-07-28 | 2007-12-18 | Kasenna, Inc. | System, server, and method for variable bit rate multimedia streaming |
| US6801933B1 (en) * | 2000-08-23 | 2004-10-05 | Nokia Internet Communications, Inc. | System and method for proactive caching employing graphical usage description |
| US7197555B1 (en) | 2000-09-13 | 2007-03-27 | Canon Kabushiki Kaisha | Directory server tracking tool |
| US6792507B2 (en) | 2000-12-14 | 2004-09-14 | Maxxan Systems, Inc. | Caching system and method for a network storage system |
| US6611898B1 (en) | 2000-12-22 | 2003-08-26 | Convergys Customer Management Group, Inc. | Object-oriented cache management system and method |
| US7188145B2 (en) | 2001-01-12 | 2007-03-06 | Epicrealm Licensing Llc | Method and system for dynamic distributed data caching |
| US6850938B1 (en) * | 2001-02-08 | 2005-02-01 | Cisco Technology, Inc. | Method and apparatus providing optimistic locking of shared computer resources |
| US6721850B2 (en) | 2001-02-27 | 2004-04-13 | Lucent Technologies Inc. | Method of cache replacement for streaming media |
| WO2002071191A2 (en) * | 2001-03-02 | 2002-09-12 | Kasenna, Inc. | Metadata enabled push-pull model for efficient low-latency video-content distribution over a network |
| US20030018978A1 (en) * | 2001-03-02 | 2003-01-23 | Singal Sanjay S. | Transfer file format and system and method for distributing media content |
| US7065587B2 (en) * | 2001-04-02 | 2006-06-20 | Microsoft Corporation | Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith |
| US20030105811A1 (en) * | 2001-05-02 | 2003-06-05 | Laborde Guy Vachon | Networked data stores for measurement data |
| JP2005501355A (ja) * | 2001-08-27 | 2005-01-13 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | キャッシュ方法 |
| US7493363B2 (en) | 2001-09-19 | 2009-02-17 | Microsoft Corporation | Peer-to-peer group management and method for maintaining peer-to-peer graphs |
| US7769823B2 (en) * | 2001-09-28 | 2010-08-03 | F5 Networks, Inc. | Method and system for distributing requests for content |
| US20030084219A1 (en) * | 2001-10-26 | 2003-05-01 | Maxxan Systems, Inc. | System, apparatus and method for address forwarding for a computer network |
| US7085846B2 (en) * | 2001-12-31 | 2006-08-01 | Maxxan Systems, Incorporated | Buffer to buffer credit flow control for computer network |
| US7145914B2 (en) * | 2001-12-31 | 2006-12-05 | Maxxan Systems, Incorporated | System and method for controlling data paths of a network processor subsystem |
| US8086579B1 (en) | 2002-01-22 | 2011-12-27 | Oracle International Corporation | Semantic response to lock requests to reduce coherence overhead in multi-node systems |
| US8650266B2 (en) * | 2002-03-26 | 2014-02-11 | At&T Intellectual Property Ii, L.P. | Cache validation using smart source selection in a data network |
| US20030188106A1 (en) * | 2002-03-26 | 2003-10-02 | At&T Corp. | Cache validation using rejuvenation in a data network |
| US7379970B1 (en) | 2002-04-05 | 2008-05-27 | Ciphermax, Inc. | Method and system for reduced distributed event handling in a network environment |
| US7307995B1 (en) | 2002-04-05 | 2007-12-11 | Ciphermax, Inc. | System and method for linking a plurality of network switches |
| US7295561B1 (en) | 2002-04-05 | 2007-11-13 | Ciphermax, Inc. | Fibre channel implementation using network processors |
| US7406038B1 (en) | 2002-04-05 | 2008-07-29 | Ciphermax, Incorporated | System and method for expansion of computer network switching system without disruption thereof |
| US20030195956A1 (en) * | 2002-04-15 | 2003-10-16 | Maxxan Systems, Inc. | System and method for allocating unique zone membership |
| US20030200330A1 (en) * | 2002-04-22 | 2003-10-23 | Maxxan Systems, Inc. | System and method for load-sharing computer network switch |
| US6959361B2 (en) * | 2002-04-25 | 2005-10-25 | Sun Microsystems, Inc. | Distributed caching mechanism for pending memory operations within a memory controller |
| US6996584B2 (en) * | 2002-05-14 | 2006-02-07 | Pervasive Software, Inc. | System and method of maintaining functional client side data cache coherence |
| GB2410657B (en) * | 2002-05-29 | 2006-01-11 | Flyingspark Ltd | Methods and system for using caches |
| US7403993B2 (en) * | 2002-07-24 | 2008-07-22 | Kasenna, Inc. | System and method for highly-scalable real-time and time-based data delivery using server clusters |
| US20040029525A1 (en) * | 2002-08-05 | 2004-02-12 | Sun Microsystems, Inc. | Tuning engine and user interface for internet broadcasts on mobile devices |
| US20040030766A1 (en) * | 2002-08-12 | 2004-02-12 | Michael Witkowski | Method and apparatus for switch fabric configuration |
| US6973546B2 (en) * | 2002-09-27 | 2005-12-06 | International Business Machines Corporation | Method, system, and program for maintaining data in distributed caches |
| US20040199650A1 (en) * | 2002-11-14 | 2004-10-07 | Howe John E. | System and methods for accelerating data delivery |
| DE10256148A1 (de) * | 2002-11-29 | 2004-06-17 | Basf Ag | Gegenstand der vorliegenden Erfindung sind Zusammensetzungen enthaltend mindestens ein Copolymer (A) und mindestens ein Copolymer (B) sowie deren Verwendung in kosmetischen Zubereitungen |
| US7613812B2 (en) | 2002-12-04 | 2009-11-03 | Microsoft Corporation | Peer-to-peer identity management interfaces and methods |
| US7058773B1 (en) | 2003-01-16 | 2006-06-06 | Cisco Technology, Inc. | System and method for managing data in a distributed system |
| US7596625B2 (en) | 2003-01-27 | 2009-09-29 | Microsoft Corporation | Peer-to-peer grouping interfaces and methods |
| US7376744B2 (en) | 2003-05-09 | 2008-05-20 | Oracle International Corporation | Using local locks for global synchronization in multi-node systems |
| US7496648B2 (en) | 2003-10-23 | 2009-02-24 | Microsoft Corporation | Managed peer name resolution protocol (PNRP) interfaces for peer to peer networking |
| US7949996B2 (en) | 2003-10-23 | 2011-05-24 | Microsoft Corporation | Peer-to-peer identity management managed interfaces and methods |
| US20050091322A1 (en) * | 2003-10-27 | 2005-04-28 | International Business Machines Corporation | Method, system and program product for communicating over a network |
| US7272609B1 (en) * | 2004-01-12 | 2007-09-18 | Hyperion Solutions Corporation | In a distributed hierarchical cache, using a dependency to determine if a version of the first member stored in a database matches the version of the first member returned |
| US20050172076A1 (en) * | 2004-01-30 | 2005-08-04 | Gateway Inc. | System for managing distributed cache resources on a computing grid |
| CN100485644C (zh) * | 2004-02-10 | 2009-05-06 | 上海新时达电气股份有限公司 | 自动分配串行总线设备地址分配器及其控制方法 |
| US7124253B1 (en) * | 2004-02-18 | 2006-10-17 | Sun Microsystems, Inc. | Supporting directory-based cache coherence in an object-addressed memory hierarchy |
| US8688803B2 (en) * | 2004-03-26 | 2014-04-01 | Microsoft Corporation | Method for efficient content distribution using a peer-to-peer networking infrastructure |
| US20050262245A1 (en) * | 2004-04-19 | 2005-11-24 | Satish Menon | Scalable cluster-based architecture for streaming media |
| ES2318300T3 (es) * | 2004-08-12 | 2009-05-01 | Telecom Italia S.P.A. | Sistema , procedimiento y dispositivo para actualizar un conjunto de datos a traves de una red de comunicaciones. |
| US20060143256A1 (en) | 2004-12-28 | 2006-06-29 | Galin Galchev | Cache region concept |
| US7971001B2 (en) * | 2004-12-28 | 2011-06-28 | Sap Ag | Least recently used eviction implementation |
| US7571228B2 (en) | 2005-04-22 | 2009-08-04 | Microsoft Corporation | Contact management in a serverless peer-to-peer system |
| US7817647B2 (en) * | 2005-04-22 | 2010-10-19 | Microsoft Corporation | Flower-petal resolutions for PNRP |
| US8036140B2 (en) | 2005-04-22 | 2011-10-11 | Microsoft Corporation | Application programming interface for inviting participants in a serverless peer to peer network |
| US7793329B2 (en) * | 2006-02-06 | 2010-09-07 | Kasenna, Inc. | Method and system for reducing switching delays between digital video feeds using multicast slotted transmission technique |
| EP2036307A1 (en) * | 2006-06-30 | 2009-03-18 | International Business Machines Corporation | A method and apparatus for caching broadcasting information |
| US7941560B1 (en) | 2006-07-14 | 2011-05-10 | Intuit Inc. | Client caching of target addresses for network requests |
| US20080109557A1 (en) * | 2006-11-02 | 2008-05-08 | Vinay Joshi | Method and system for reducing switching delays between digital video feeds using personalized unicast transmission techniques |
| US8327454B2 (en) * | 2006-11-14 | 2012-12-04 | Sandisk Technologies Inc. | Method for allowing multiple users to access preview content |
| US8079071B2 (en) * | 2006-11-14 | 2011-12-13 | SanDisk Technologies, Inc. | Methods for accessing content based on a session ticket |
| US20080114880A1 (en) * | 2006-11-14 | 2008-05-15 | Fabrice Jogand-Coulomb | System for connecting to a network location associated with content |
| US8763110B2 (en) | 2006-11-14 | 2014-06-24 | Sandisk Technologies Inc. | Apparatuses for binding content to a separate memory device |
| US9015342B2 (en) * | 2007-01-22 | 2015-04-21 | Xerox Corporation | Two-level structured overlay design for cluster management in a peer-to-peer network |
| US8185355B2 (en) * | 2007-04-03 | 2012-05-22 | Microsoft Corporation | Slot-cache for caching aggregates of data with different expiry times |
| US8274520B2 (en) * | 2007-06-08 | 2012-09-25 | Apple Inc. | Facilitating caching in an image-processing system |
| US20090049249A1 (en) * | 2007-08-16 | 2009-02-19 | International Business Machines Corporation | Transparent cache system and method |
| US7788360B2 (en) * | 2007-09-10 | 2010-08-31 | Routesync, Llc | Configurable distributed information sharing system |
| US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
| CN104123240B (zh) | 2008-01-31 | 2017-07-28 | 甲骨文国际公司 | 用于事务缓存的系统和方法 |
| US8799396B2 (en) * | 2008-02-04 | 2014-08-05 | Cisco Technology, Inc. | Method and system for an efficient distributed cache with a shared cache repository |
| JP5159375B2 (ja) | 2008-03-07 | 2013-03-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | メタバースにおけるオブジェクトの真贋判断システム、方法及びそのコンピュータ・プログラム |
| CN101998173B (zh) * | 2009-08-27 | 2012-11-07 | 华为技术有限公司 | 分布式媒体共享播控器、媒体播控系统及方法 |
| US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
| US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
| US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
| US8510334B2 (en) | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
| US8364903B2 (en) * | 2009-12-22 | 2013-01-29 | Verizon Patent And Licensing Inc. | Field level concurrency and transaction control for out-of-process object caching |
| US8909888B2 (en) * | 2011-04-29 | 2014-12-09 | Seagate Technology Llc | Secure erasure of data from a non-volatile memory |
| JP5637312B2 (ja) * | 2011-06-29 | 2014-12-10 | 富士通株式会社 | キャッシュ制御装置及びパイプライン制御方法 |
| US8671157B2 (en) * | 2011-08-25 | 2014-03-11 | Blue Coat Systems, Inc. | System and method for optimizing name-resolution overhead in a caching network intermediary device |
| US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
| US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
| US9344908B2 (en) | 2012-12-13 | 2016-05-17 | Devicescape Software, Inc. | Systems and methods for quality of experience measurement and wireless network recommendation |
| US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
| US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
| US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
| US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
| US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
| US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
| US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
| US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
| US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
| US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
| US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
| US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
| US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
| US10091282B2 (en) * | 2013-06-12 | 2018-10-02 | Sap Se | Metadata-driven dynamic load balancing in multi-tenant systems |
| KR102161443B1 (ko) * | 2013-12-20 | 2020-10-06 | 삼성전자 주식회사 | 스마트 홈 시스템의 피 제어 장치 검색 및 제어 방법과 장치 |
| US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
| US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
| US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
| US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
| US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
| US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
| 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 |
| US10142386B2 (en) | 2014-10-29 | 2018-11-27 | DLVR, Inc. | Determining manifest file data used in adaptive streaming video delivery |
| US10084838B2 (en) | 2014-10-29 | 2018-09-25 | DLVR, Inc. | Generating and using manifest files including content delivery network authentication data |
| US9858195B2 (en) | 2014-12-10 | 2018-01-02 | International Business Machines Corporation | Near-cache distribution of manifest among peer applications in in-memory data grid (IMDG) non structured query language (NO-SQL) environments |
| US9519433B2 (en) | 2015-05-13 | 2016-12-13 | VSector Security Technologies, LLC | Secure virtual sector erasure method and system |
| US10462055B2 (en) * | 2015-07-20 | 2019-10-29 | Cisco Technology, Inc. | Content distribution system cache management |
| US10698829B2 (en) * | 2015-07-27 | 2020-06-30 | Datrium, Inc. | Direct host-to-host transfer for local cache in virtualized systems wherein hosting history stores previous hosts that serve as currently-designated host for said data object prior to migration of said data object, and said hosting history is checked during said migration |
| US20170126542A1 (en) * | 2015-10-28 | 2017-05-04 | Futurewei Technologies, Inc. | ICN Based Distributed Resource Directory for IoT Resource Discovery and Routing |
| US10365798B1 (en) | 2016-01-08 | 2019-07-30 | Microsoft Technology Licensing, Llc | Feedback manager for integration with an application |
| US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
| US10765948B2 (en) | 2017-12-22 | 2020-09-08 | Activision Publishing, Inc. | Video game content aggregation, normalization, and publication systems and methods |
| US10877668B2 (en) * | 2018-12-05 | 2020-12-29 | Intel Corporation | Storage node offload of residual part of a portion of compressed and distributed data to a second storage node for decompression |
| CN110018969B (zh) * | 2019-03-08 | 2023-06-02 | 平安科技(深圳)有限公司 | 数据缓存方法、装置、计算机设备和存储介质 |
| US10997074B2 (en) | 2019-04-30 | 2021-05-04 | Hewlett Packard Enterprise Development Lp | Management of coherency directory cache entry ejection |
| US11712627B2 (en) | 2019-11-08 | 2023-08-01 | Activision Publishing, Inc. | System and method for providing conditional access to virtual gaming items |
| US11005849B1 (en) | 2020-06-30 | 2021-05-11 | Cyberark Software Ltd. | Distributed directory caching techniques for secure and efficient resource access |
| US12436852B2 (en) | 2023-04-06 | 2025-10-07 | Netapp, Inc. | Methods and systems for negotiating a primary bias state in a distributed storage system |
| US12554432B2 (en) * | 2023-04-06 | 2026-02-17 | Netapp, Inc | Methods and systems for handling race conditions associated with a primary bias state in a distributed storage system |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5493668A (en) * | 1990-12-14 | 1996-02-20 | International Business Machines Corporation | Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation |
| US5317739A (en) * | 1992-03-30 | 1994-05-31 | International Business Machines Corp. | Method and apparatus for coupling data processing systems |
| US5452447A (en) * | 1992-12-21 | 1995-09-19 | Sun Microsystems, Inc. | Method and apparatus for a caching file server |
| GB2294132A (en) * | 1994-10-10 | 1996-04-17 | Marconi Gec Ltd | Data communication network |
| US5787470A (en) * | 1996-10-18 | 1998-07-28 | At&T Corp | Inter-cache protocol for improved WEB performance |
| US5944780A (en) * | 1997-05-05 | 1999-08-31 | At&T Corp | Network with shared caching |
-
1997
- 1997-04-10 US US08/827,763 patent/US5933849A/en not_active Expired - Lifetime
-
1998
- 1998-02-11 CA CA002229291A patent/CA2229291C/en not_active Expired - Fee Related
- 1998-04-03 JP JP10091588A patent/JPH10301880A/ja active Pending
- 1998-04-06 EP EP98106282A patent/EP0871127A3/en not_active Ceased
- 1998-12-04 US US09/204,343 patent/US6154811A/en not_active Expired - Lifetime
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002525749A (ja) * | 1998-09-24 | 2002-08-13 | ミラー・イメージ・インターネット・インコーポレイテッド | インターネットキャッシングシステム、方法およびそのシステムの構成 |
| JP2000187609A (ja) * | 1998-11-20 | 2000-07-04 | Internatl Business Mach Corp <Ibm> | 要求されたオブジェクトを検索する方法及び記録デバイス |
| JP2009080838A (ja) * | 2001-04-04 | 2009-04-16 | Yahoo Inc | 電子商品をキャッシュするための手法 |
| US7210021B2 (en) | 2002-03-15 | 2007-04-24 | Fujitsu Limited | Cache control program |
| JP2010108508A (ja) * | 2004-03-22 | 2010-05-13 | Qualcomm Inc | 衛星の予想帯域幅促進 |
| JP2008506195A (ja) * | 2004-07-07 | 2008-02-28 | ヨッタヨッタ インコーポレイテッド | 分散キャッシュ・コヒーレンスを提供するシステムおよび方法 |
| JP2007219984A (ja) * | 2006-02-20 | 2007-08-30 | Brother Ind Ltd | コンテンツ配信システム、コンテンツデータ管理装置及びその情報処理方法並びにそのプログラム |
| JP2013536530A (ja) * | 2010-08-26 | 2013-09-19 | アリババ・グループ・ホールディング・リミテッド | 分散型キャッシング(caching)オブジェクトを除去する方法、システム、およびサーバ |
| JP2016085767A (ja) * | 2010-08-26 | 2016-05-19 | アリババ・グループ・ホールディング・リミテッドAli | 分散型キャッシング(caching)オブジェクトを除去する方法、システム、およびサーバ |
Also Published As
| Publication number | Publication date |
|---|---|
| CA2229291A1 (en) | 1998-10-10 |
| EP0871127A3 (en) | 2001-03-28 |
| US6154811A (en) | 2000-11-28 |
| US5933849A (en) | 1999-08-03 |
| EP0871127A2 (en) | 1998-10-14 |
| CA2229291C (en) | 2006-06-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH10301880A (ja) | スケーラブルネットワークオブジェクトキャッシュ | |
| US6760756B1 (en) | Distributed virtual web cache implemented entirely in software | |
| US7472143B2 (en) | File migration device | |
| US6963914B1 (en) | Method and apparatus for retrieving a network file using a logical reference | |
| US9438520B2 (en) | Synchronizing state among load balancer components | |
| US8819273B2 (en) | Logical routing system | |
| EP1391096B1 (en) | System and method for discovering information objects and information object repositories in computer networks | |
| US7653722B1 (en) | Server monitoring framework | |
| US20030126199A1 (en) | Peer-to-peer namespace directory and discovery | |
| US6370620B1 (en) | Web object caching and apparatus for performing the same | |
| US7254617B2 (en) | Distributed cache between servers of a network | |
| JP2004070860A (ja) | ストリームコンテンツ配送システムおよびプロキシサーバ | |
| KR20010075542A (ko) | 협동 캐시 서버의 부하 조정 방법 | |
| WO2001045349A2 (en) | Scalable domain name system with persistence and load balancing | |
| Linga et al. | A churn-resistant peer-to-peer web caching system | |
| CN102780773B (zh) | 以内容为中心的网络中保持缓存一致性的方法 | |
| JP2002525749A (ja) | インターネットキャッシングシステム、方法およびそのシステムの構成 | |
| US20140222988A1 (en) | Method for adaptive content discovery for distributed shared caching system | |
| EP1259864A2 (en) | Distributed virtual web cache implemented entirely in software | |
| Clay et al. | Posting protocol for improved keyword search success in peer-to-peer file-sharing systems | |
| CN116866429A (zh) | 一种数据访问方法及相关装置 | |
| JP4291284B2 (ja) | キャッシュシステム及びキャッシュサーバ | |
| KR20040056074A (ko) | 그리드 네트워크에서 그리드 자원에 대한 정보를 제공하는장치 및 방법과 그 프로세스를 기록한 컴퓨터 판독가능한기록매체 | |
| CN101729387A (zh) | 内容节点双向聚类的系统、装置及方法 | |
| Yang et al. | Collaborative web caching based on proxy affinities |