JP2017191600A - コンテンツ配信ネットワーク(cdn)における無効化 - Google Patents

コンテンツ配信ネットワーク(cdn)における無効化 Download PDF

Info

Publication number
JP2017191600A
JP2017191600A JP2017071261A JP2017071261A JP2017191600A JP 2017191600 A JP2017191600 A JP 2017191600A JP 2017071261 A JP2017071261 A JP 2017071261A JP 2017071261 A JP2017071261 A JP 2017071261A JP 2017191600 A JP2017191600 A JP 2017191600A
Authority
JP
Japan
Prior art keywords
invalidation
list
property
command
combined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017071261A
Other languages
English (en)
Other versions
JP6219547B2 (ja
Inventor
クラウダー、ウィリアム
Crowder William
リップストーン、ロウレンス
Lipstone Laurence
ニュートン、クリストファー
Newton Christopher
ウォン、フィオナ
Wong Fiona
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Level 3 Communications LLC
Original Assignee
Level 3 Communications LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Level 3 Communications LLC filed Critical Level 3 Communications LLC
Publication of JP2017191600A publication Critical patent/JP2017191600A/ja
Application granted granted Critical
Publication of JP6219547B2 publication Critical patent/JP6219547B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

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

Abstract

【課題】無効なコンテンツ、または期限切れのコンテンツ、または古いコンテンツを供給される前にリフレッシュする。【解決手段】CDNにおけるコンテンツ配信(CD)サービスが、それぞれのプロパティに対し、1または複数のグループ無効化コマンドのリストを含むプロパティ無効化情報を、このCDサービスに保持する。結合された無効化コマンドを形成するために、1または複数の無効化コマンドを選択的に結合し、結合された無効化コマンドをこのリストに挿入することによって、新たなグループ無効化コマンドが追加される。結合することは、このリスト中の複数の要素の共通プレフィックスの長さに基づいている。それぞれのプロパティリストにおいて、プロパティ毎の共通プレフィックスリストが、無効化コマンドに対して保持される。【選択図】なし

Description

関連出願の相互参照
本特許出願は、2016年4月11日に出願され、"Invalidation In A Content Delivery Network (CDN)"と題する、米国特許非仮出願第15/095,282号からの優先権を主張し、その全内容が、全ての目的に対し、参照により本明細書に組み込まれる。
著作権の宣言
本特許文献は、著作権保護の対象となる材料を含む。著作権の所有者は、本特許文献または米国特許商標局のファイルにおけるあらゆる関連資料の複製に対して異議を唱えるものではないが、そうでなければ、いかなる理由があろうとも全ての著作権を留保する。
参照による組み込み
以下の米国特許は、これにより、全ての目的に対し、参照により本明細書に完全に組み込まれる。
1.2007年10月31日に出願され、2011年11月15日に発行された、"Resource invalidation in a content delivery network"という発明の名称の米国特許第8,060,613号明細書。
2.2013年3月15日に出願され、2014年9月2日に発行された、"Content Delivery Framework With Dynamic Service Network Topology"という発明の名称の米国特許第8,825,830号明細書。
本発明は、コンテンツ配信およびコンテンツ配信ネットワークに関する。より具体的には、本発明は、コンテンツ配信ネットワークにおける無効化に関する。
本発明のその他の目的、特徴、および特性、並びに、関連する構造の要素の動作および機能に関する方法、製造のパーツおよび経済性の組み合わせは、添付の図面を参照して以下の記載および添付の特許請求項を考慮することによって、より明らかになるだろう。これらの全てが、本明細書の一部分を形成する。
本明細書の例示的な実施形態に従ったコンテンツ配信ネットワーク(CDN)の態様を示す。
本明細書の例示的な実施形態に従った配信サービスの論理構造を示す。
本明細書の例示的な実施形態に従った無効化リストを格納するためのデータ構造例を示す。
特定のコンテンツプロバイダに対するプロパティ例の階層的またはツリー構造を示す。
本明細書の態様のオペレーションのフローチャートである。
本明細書の例示的な実施形態に従った共通プレフィックスリストを格納するためのデータ構造例を示す。
本明細書の例示的な実施形態に従ったコンピューティングの態様を示す。
用語解説
そうでないように使用されない限り、本明細書にて使用されるように、以下の用語または略語は、以下の意味を有する。
CDNは、コンテンツ配信ネットワークを意味する。
HTTPは、ハイパーテキストトランスファープロトコルを意味する。
HTTPSは、HTTPセキュア(HTTP Secure)を意味する。
MOVは、最小オリジンバージョン(minimum origin version)を意味する。
ROVは、リソースオリジンバージョン(resource origin version)を意味する。
URIは、ユニフォームリソース識別子を意味する。
URLは、ユニフォームリソースロケータを意味する。
"メカニズム"とは、あらゆるデバイス、プロセス、ルーチン、サービス、モジュール、またはそれらの組み合わせを指す。あるメカニズムは、ハードウェアで、ソフトウェアで、ファームウェアで、特定用途向けデバイスを使用して、またはそれらの任意の組み合わせによって実施されてよい。あるメカニズムは、単一のデバイスに統合されてよい。または、多数のデバイスにわたって分散されてよい。あるメカニズムの様々な構成要素が、同一の場所に配置されてよい。または分散されてよい。このメカニズムは、その他複数のメカニズムから形成されてよい。従って、本明細書にて使用されるように、一般に、"メカニズム"という用語は、デバイスおよび/またはプロセスおよび/またはサービスという用語に対する簡潔にした表現とみなされてよい。
バックグラウンドおよび概要
コンテンツ配信ネットワーク(CDN)は、1または複数のコンテンツプロバイダの代わりに、好ましくは公衆インターネットを介して、複数のクライアントに効率的にコンテンツ(例えばリソース)を配信する。コンテンツプロバイダは、オリジンソース(オリジンサーバまたはオリジン)を介して、自分達のコンテンツ(例えば、リソース)を提供する。CDNは、反対方向に、つまり、クライアントからオリジンサーバへと、コンテンツを効率的に送るためのオーバー・ザ・トップ搬送メカニズムもまた提供することができる。エンドユーザ(クライアント)およびコンテンツプロバイダの両者が、CDNを使用することから恩恵を受ける。CDNを使用することで、コンテンツプロバイダは、それ自身のサーバ(例えば、自身のオリジンサーバ)から負担を取り除くこと(および、それによって、サーバにかかる負荷を低減すること)が可能である。クライアントは、より短い遅延でコンテンツを取得することが可能なことによって恩恵を受ける。
図1は、1または複数のコンテンツプロバイダ102が、1または複数のオリジンソース104および配信サービス(サーバ)106を介し、1または複数のネットワーク110を介して複数のクライアント108へとコンテンツを提供する、例示的なCDN100の態様を示す。配信サービス(サーバ)106は、複数のクライアントがそこからコンテンツを取得し得る、配信ネットワークを形成してよい。配信サービス106は、論理的に、および/または物理的に階層的に編成されてよく、エッジキャッシュを含んでよい。
例示的なCDNが、米国特許第8,060,613号明細書および第8,825,830号明細書に記載され、全ての目的に対し、その両者の全内容が参照により本明細書に完全に組み込まれている。
特定のコンテンツプロバイダに関連した、または特定のコンテンツプロバイダによって提供されるコンテンツは、プロパティと呼ばれることがある。プロパティは、例えばウェブサイトおよび関連するコンテンツであってよく、通常、多数のリソースを含む。CDNは、1または複数のコンテンツプロバイダに関連した、および/または、1または複数のコンテンツプロバイダの代わりに、1または複数のプロパティを提供し得る。コンテンツプロバイダは、1つよりも多くのプロパティを有してよい。従って、CDNは、特定のコンテンツプロバイダに関連した、および/または、特定のコンテンツプロバイダの代わりに、1または複数のプロパティを供給/提供し得る。
理解されるように、あるCDNの複数の構成要素(例えば、配信サーバ、等)が、他の複数のCDN構成要素に対してコンテンツを配信すべく、このCDNを使用し得る。従って、あるCDN構成要素は、それ自身がこのCDNのクライアントであり得る。例えば、このCDNは、それ自身のインフラストラクチャを使用して、複数のCDN構成要素に対してCDNコンテンツ(例えば、CDN制御および構成情報)を配信し得る。
コンテンツ(例えば、コンテンツプロバイダのプロパティに関連したリソース)が、このCDN内の様々な位置、例えば、このCDNの様々な配信サービスによって形成される配信ネットワークにおける複数のノードにおいてキャッシュされてよい。コンテンツは、例えば、このCDNから供給される場合にキャッシュされてよい。
CDNは、古いコンテンツ、または期限切れのコンテンツ、または無効化された(無効な)コンテンツを供給するべきではない。無効なコンテンツ、または期限切れのコンテンツ、または古いコンテンツは、(そのコンテンツの有効なバージョンが存在するのであれば)供給される前にリフレッシュされるべきである。コンテンツは、非同期的にリフレッシュされてよい。
無効化とは、これによって、サービス中に格納された情報(例えば、将来のリクエストに対する応答を導出するために使用され得る情報)が、応答導出のためにはもはや直接利用可能ではないとマークされる、または指定されるメカニズムである。従って、何らかの形での状態の更新、または、代替的な導出パスが、将来のリクエストに対する応答を導出するために使用されなくてはならないことを示す。無効化を利用するサービスは、無効化マニフェストを使用し、これらのマニフェストに含まれるコマンドをローカルに処理する。
キャッシングまたは配信サービスは、無効化を利用するサービスの典型的な例である。キャッシュは、リソースのリテラルなコピーを格納し、このコピーが古くない限り、格納されたリテラルなコピーを使用して、リソース(または、このリソースに基づく情報)に対する将来のリクエストに応答する。理解されるように、リクエストは、特定のリソース自身に対するもの、または、この特定のリソースに基づいて判断される、または導出される情報(例えば、別のリソース)に対するものであってよい。この場合、古さは、例えば、格納されたオリジナルコピーの経時的な期限切れに基づいたもの、または、このコピーが格納されて以来、このコピーが明確に無効化されたことがあったか否かに基づいたものであり得る。既にキャッシュにあるコマンドを対象として無効化コマンドが受信された場合、そのコマンドを実行するよう、キャッシュされたコピーにマークすれば十分である。そのリソースがキャッシュに無い場合、または、そのコマンドが、多数であり得るリソースの一群を指す場合には、最後に適用できる無効化コマンドの制約を(例えば、いくつかの他のキャッシュから)後で取得されるコピーが満たすことを保証するために、追加のステップが取られなくてはならない。"無効化"という用語は、本明細書において、場合によっては無効化コマンドを指すために使用される。
キャッシュされたコンテンツは、有効期限(TTL)値に関連付けられてよい。この場合、コンテンツは、自身の有効期限が満了となった後では、供給されるべきではない(すなわち、有効とみなされるべきではない)。コンテンツは、自身の無効化を配信サービスに対して(または配信サービスネットワークに対して)シグナリングすることによってもまた無効化され得る。無効化は、例えば、1または複数のリソースを特定する無効化命令を提供することによりシグナリングされ得る。
この説明を目的として、リソースは、コンテンツのアドレス指定可能なアイテムである。または、アドレス指定可能なアイテムに対応する。CDNによって提供され(例えば、供給され)、内部CDNリソースを含む各リソースは、ユニフォームリソースロケータ(URL)であり得るユニフォームリソース識別子(URI)によって識別またはアドレス指定され得る。URIは、例えば、Network Working Group, Request for Comments (RFC) 3986, Berners-Lee、2005年1月、"Uniform Resource Identifier (URI): Generic Syntax"に説明されている。また、URLは、例えば、Network Working Group, Berners-Lee, Request for Comments 1738、1994年12月、"Uniform Resource Locators (URL)"に説明されている。全ての目的に対し、これによって両者の全内容が、参照により本明細書に完全に組み込まれる。
好ましい実施形態において、各リソースはURLによってアドレス指定可能であり、無効化命令は、単一のリソースまたは一群の(ゼロまたはゼロよりも多くの)リソースを特定し得る。単一のリソースを特定する無効化命令は、そのリソースに対するURL(またはURI)を特定し得る。例えば、可能なリソースの組に対する一組の制約によって、リソースグループが特定され得る。従って、一般に、グループ無効化は、そのグループのメンバーを画定する1または複数の制約によって、グループを特定する。
グループ無効化命令は、例えば、ある特定のサブディレクトリにある全てのコンテンツ、または、共通の拡張子を有する全てのリソースがもはや有効ではないことを特定してよい。一群のリソースを特定する無効化命令は、例えば、それらのリソースの特定において、1または複数のワイルドカードを使用し得る。いくつかの実装において、グループ無効化は、ワイルドカード無効化と呼ばれる。
例えば、特定のコンテンツプロバイダ(CP)が、ルート"/CP"によって特定されるプロパティを有してよく、サブディレクトリ"/CP/Images"下に複数の画像を含んでよい。一群の画像(例えば、"/CP/Images/Image_September*2014.jpg")がそうされるように、特定の画像(例えば、"/CP/Images/Image1.jpg")が無効化され得る。ここで、スター符号は、ゼロまたはゼロよりも多くの文字に対応するメタ文字(またはワイルドカード)である。グループ無効化は、ゼロまたはゼロよりも多くのリソースを特定し得ることが理解されるべきである。例えば、制約"/CP/Images/Image_September*2014.jpg"を満たすリソースが1つも存在しないことがあり得る。
本明細書で使用されるように、"リソース"とは、特定のリクエストに対し、(可能性として)キャッシュされた応答を意味する。そのため、理論的には、このリクエストまたはこの応答の任意の属性が、あるグループを画定するものとみなされ得る。リソースグループに基づいた無効化システムの実際的な実装は、複数のグループがどのようにして効率良く画定され得るかに関する追加の制約を課すかもしれないが、そのような制約は、アーキテクチャレベルで課される必要はない。
本明細書のいくつかの好ましい実装においては、いわゆる"グロブ"パターン言語のようなパターン言語によってグループが特定され得る。本明細書にて使用されるように、グロブパターン言語は、任意の文字列に合致させるべく"*"メタ文字が使用される任意のパターン言語である。しかし、その他のメタ文字もまた存在してよい。グロブは、グロブパターン言語で書かれたパターンである。*−グロブ(スターグロブ)パターン言語は、"*"メタ文字およびリテラル文字のみによるグロブパターン言語である。*−グロブ(スターグロブ)(または、*−グロブパターン)は、*−グロブパターン言語で書かれたパターンである。このシステムは、パターンマッチングアルゴリズムまたは本明細書で使用される、または説明される言語によって限定されるものでは決してないことが理解されるべきである。また、このシステムは、本明細書で説明されるパターンまたはパターンマッチング(または関連するオペレーション)を実行するために使用される、特定の言語またはプログラムによって限定されるものでも決してない。特に、URL上で定義される正規表現またはグロブパターンは、グループを定義する多数の可能なやり方のいくつかにすぎないことが理解されるべきである。当業者は、この記載を読めば、グループを記述する異なるやり方、および/またはその他のやり方が使用される得ること、および、本明細書にて考慮されていることに気付き、理解するだろう。
最小オリジンバージョン(MOV)無効化
無効化マニフェストは、オリジンバージョンに基づいて無効化するための手法を実行する。無効化コマンドによってコンテンツが無効化される場合、その無効化されるコンテンツに対する最小オリジンバージョン(mov)がインクリメントされる。最小オリジンバージョン無効化は、各オリジンが単一のリソースネームスペースであること、および、全ての無効化コマンドが、単一のオリジン位置におけるいくつかのオリジン閾値イベントに関連することを仮定する。この手法は、無効化が、最小オリジンバージョンの設定として定義されることを可能にする。この場合、このシステムの各キャッシュは、オリジンからコンテンツが入ってくる際に、最小オリジンバージョンを推定する。MOV無効化は、一般に、多数の位置でコンテンツを発行する場合に、オリジンサーバが一貫したものであることを必要とする。そうすることにより、どのオリジンがコンタクトされたかに関わらず、与えられたURLが一貫したリソースを受信するだろう。
キャッシュ中の各リソースは、それらと関連したリソースオリジンバージョン(ROV)を有する。リソースに対するROVは、キャッシュが、オリジンサーバまたは別のキャッシュから直接にコンテンツを取得する場合に取得/設定される。ROVは、それが再有効化またはリフレッシュされるまで、それがどこへ行こうとも、リソースのそのコピーの実際のオリジンバージョンとして残る。キャッシュが別のキャッシュからコンテンツをリクエストする場合、クライアントキャッシュは、サーバが提供するどんなROVも、それがキャッシュに格納するROVとして使用する。
各無効化コマンド(IC)は、関連するMOV値を有する。キャッシュ中のリソースに対するROV値が少なくともこのMOV値と同じ大きさである場合、このリソースは有効とみなされ、供給されることができる。一方、キャッシュされたリソースに対するMOV値よりもROV値が小さい場合、このリソースの新たなバージョンが、供給される前に取得されなくてはならない。例えば、特定のリソースRを暗示する無効化コマンドがmov=100を有し、リソースRのキャッシュされたバージョンはrov=99を有する場合、このリソースRは古いものとみなされ、供給されることができない。一方、リソースRのキャッシュされたバージョンがrov=100またはそれより大きい場合、リソースRのキャッシュされたバージョンは古くはなく、使用されること(例えば、供給されること)ができる。
MOV無効化は、2013年3月15日に出願され、2014年9月2日に発行された"Content Delivery Framework With Dynamic Service Network Topology"という発明の名称の米国特許第8,825,830号明細書に記載されている。全ての目的に対し、特に、無効化およびMOV無効化の説明に対するものを含め、その全内容が参照により本明細書に完全に組み込まれる。
図2は、本明細書の例示的な実施形態に従った、配信サービス106の論理構造を示す。図2に示されるように、配信サービス106は、入ってくるリクエストに対する応答を処理し、提供するための、ルールエンジン204と相互作用するリクエスト/応答−処理メカニズム202を含む。リクエストされたリソースは、説明されたように、供給する前にあらゆるキャッシュされたリソースの有効性を判断する必要があるものの、配信サービス106と関連したローカルキャッシュ206に既にキャッシュされていてよい。これに関連して、ルールエンジン204は、無効化メカニズム210によって配信サービス106に保持される1または複数の無効化リスト208にアクセスしてよい。
この説明を目的として、無効化メカニズム210の役割は、以下においてより詳細に説明されるように、無効化情報(例えば、無効化リスト208)を、配信サービス106に保持することである。
好ましくは、各配信サービス106が、特定のプロパティまたは複数のプロパティの組を供給することを担当し、好ましくは、ある配信サービス106が担当する各プロパティに対して無効化リストが存在する。図3は、n個の無効化リストであって、1つのリストが、配信サービス106が供給するであろう複数のプロパティP、P、…Pのそれぞれに対するものである、無効化リストを格納するためのデータ構造例を示す(この場合、配信サービスが、n個のプロパティのそれぞれを供給することを担当していることを仮定する)。特定のプロパティに対する例示的な無効化リストが、そのプロパティに対する多数の無効化コマンド(または制約)を含んでよい。例えば、図3に示されるように、プロパティPに対する無効化リストが、そのプロパティに対して、m個までの無効化コマンド(IC、IC、IC、…、IC)を含んでよい。この手法の一態様は、あるキャッシュにおいて受信され、そのキャッシュにおける(または、そのキャッシュから供給され得るプロパティに対する)リソースをヒットしない無効化コマンドは、合致するリソースのあらゆるその後のフィルがコヒーレントなやり方で行われることを保証すべく、保持される必要があり得ることである、ということが理解されるべきである。
無効化コマンド(IC)は、movおよび現在キャッシュにあり得る、またはキャッシュに無い場合もあり得る単一のリソースまたは複数のリソースのグループを識別する、いくつかのリソース記述子または指定子を特定する。(例えば名称によって)正確に1つのリソースを特定するICは、グランドリソース(ground resource)指定子ともまた呼ばれることがある。グランドICは、受信されると処理されてよく、このICが受信された場合に、特定されたリソースを無効とマークする。複数のリクエストが受信された場合に、グループ無効化(複数のグループを特定する無効化コマンド)が評価される。従って、無効化コマンドlは、(i)Rが正確に1つのリソースを特定し、movがそのリソースに対するMOV値である、l(mov,R)の形のグランドコマンドであるか、または、(ii)movがMOV値であり、Gが制約設定を特定する、l(mov,G)の形のグループコマンドであってよい。グランドリソース指定子が1つのリソースを特定するのに対し、いくつかの場合においては、グランド無効化コマンドは、それらの全てが単一のURLによってアクセスされ得る多数のリソース(例えば、多数のコンテンツエンコーディングが入手可能なリソース、または多数の変形を有するリソース)に影響を及ぼし得る。
図4は、特定のコンテンツプロバイダに対するプロパティ例の階層的またはツリー構造を示す。この例のため、プロパティは、スラッシュ"/"文字で始まり、複数のリソースの2つの主たるサブツリー("/XYZ"および"/abc")を有する。"/XYZ"によって特定されるリソースのサブツリーは、リソース"/XYZ/PQR"のサブツリーを含み、これは、リソース("/XYZ/PQR/fa/"、"/XYZ/PQR/fan"、"/XYZ/PQR/fun/"、および"/XYZ/PQR/fx")の4つのサブツリーを含む。このプロパティは、その他のサブツリー(図示されず)を含んでよい。
以下は、最大10個の無効化コマンド(IC)を有するように構成されたプロパティに対する無効化リストの例であって、7個のコマンドが格納されており、さらに3個の無効化コマンドのためのスペースを有する。このリストは、無効化コマンドまたはマニフェストと共に提供されるMOV値に基づいて、または(以下に記載されるような)クランプリング(crumpling)の間に決定されたMOV値に基づいて、MOVが順序付けられていることに留意されたい。
Figure 2017191600
このリストの例において、無効化コマンド/制約は、グロブ−*パターンの形で特定される。従って、例えば、第1パターンが、ストリング"/XYZ/PQR/f"で始まるあらゆるリソースに合致するだろう。これに対し、第2パターンが、ストリング"/XYZ/PQR/fu"で始まるあらゆるリソースに合致するだろう。従って、図4に示されるプロパティの階層を参照すると、第1パターン/制約("/XYZ/PQR/f*")が、リソース "/XYZ/PQR/fa/"、"/XYZ/PQR/fan"、"/XYZ/PQR/fun/"、および"/XYZ/PQR/fx" の4つのサブツリーに合致するのに対し、第2制約("/XYZ/PQR/fu*")は、サブツリー"/XYZ/PQR/fun"のみに合致する。
無効化コマンド/制約は、有効なリソースを関係させてよい。例えば、図4に示される例において、サブツリー"/XYZ/PQR/fun"におけるいくつかのリソースが無効であると仮定するが、その他のサブツリー("/XYZ/PQR/fa/"、"/XYZ/PQR/fan"、および"/XYZ/PQR/fx")における全てのリソースは、依然として有効であると仮定する。無効化コマンド#1("/XYZ/PQR/f*"は、たとえそれらが有効であろうとも、サブツリー("/XYZ/PQR/fa/"、"/XYZ/PQR/fan"、および"/XYZ/PQR/fx")中のリソースの全てを関係させるだろう。一方、無効化コマンド#2は、それらの有効なリソースを関係させないだろう。
無効化制約は、(存在するのであれば)可能な限り少ない有効なリソースを関係させること(従って、無効化すること)が、一般には好ましい。言い換えると、無効化制約は、全ての無効なリソースを依然として無効化しながらも、有効なリソースに対して最小の影響しか及ぼさないことが、一般には好ましい。
無効化メカニズム210は、適切な無効化リスト208に対して無効化コマンドを追加するために使用される、無効化追加メカニズム212を含む。配信サービス106が、(例えば、無効化マニフェストの形の)新たな無効化コマンド214を受信する場合、以下に記載されるように、無効化追加メカニズム212は、適切な無効化リスト208に対して、それらのコマンドの少なくともいくつかを追加しようと試みる。
言及されたように、各プロパティの無効化リストは、最大のサイズ(max)(すなわち、格納し得る最大数の制約)を有する。この最大は、好ましくは管理者によって設定され、好ましくは、ユーザによって(すなわち、CDNの加入者によって)は設定可能ではない。各無効化リストはまた、それらと関連する閾値(T)を有してもよい(ここで、T≦max)。現在の好ましい実装において、プロパティ毎に格納およびサーチするためのパターンの最大グローバルデフォルト数は100である。この初期デフォルトに対する動機は、リクエスト毎の(リクエスト/応答処理の間の)グロブサーチの数を制限することである。異なる加入者は異なる最大リストサイズを有し得ることが理解されるべきである。
図5のフローチャートを参照すると、配信サービス106が新たな無効化コマンド214を受信する場合、無効化追加メカニズム212は、複製するために、適切な無効化リスト208に対して、この新たなコマンド214をチェックする。既存のパターンの正確な複製が削除され、この新たな(最後の)MOV値、並びに強制MOV値(以下において説明される、無効化が強制タイプの場合に追跡されるMOV)により更新される。オペレーションにおいて、無効なリソースは、(例えば、オリジンサーバまたはピアを介して)そのリソースに対するリクエストがそのリソースの再有効化をトリガするまで、通常、キャッシュに残る。再有効化は、それが変更された場合にのみリソースを取得する、条件付きGETの形を取る。いわゆる"強制された"無効化は、オリジンサーバ(または、適切な位置)から、このリソースの無条件の"GET"を実行する。
挿入すると、パターンの数が許容される数(またはそのプロパティに対する閾値)を超える場合、パターンの数が最大の許容される数(または閾値)を下回るまで、クランプリングが開始される。
クランプリング
パターンベースの(非明示的)無効化手法に対し、無効化は、決して安全に有効期限切れになることができない。この手法が性能に及ぼす影響の可能性を試し、低減するべく、クランプリングが最適化される。その目的は、クランプリングの結果が最小の影響を生じるように、2つのエントリをクランプリングすることである。
無効化リストの文脈において、クランプリングは、クランプリングメカニズム216によって実行される。クランプリングは、2またはそれ以上の無効化パターンまたは制約を結合すること、または何とかして組み合わせることの効果である。クランプリングは、入力として2またはそれ以上の無効化コマンド(それらの関連するMOV値を含む)を取り、入力無効化コマンドと少なくとも同じ程度に厳密な無効化コマンド(結合されたコマンド)を返す、クランプリング関数の観点から定義され得る。言い換えると、結合されたコマンドは、少なくとも、入力コマンドが無効化するあらゆるリソースを無効化すべきである。
組み合わされた/結合された制約が無効化リストに挿入され、組み合わされていた/結合されていた制約の全てを置き換える。その結果生じる無効化制約は、少なくとも、組み合わされた全ての制約と同じ程度に厳密であるべきである。
クランプリング関数への入力は、現在の無効化リストのみからのものであり得ること、または、新たに受信された無効化コマンドのうちの1または複数を含み得ることに留意されたい。
クランプリングが最小の実効的な影響を有するためには、2つの基本的な仮定が存在する。
1.ディレクトリ、特に'/'をクランプリングすることは、あるディレクトリ内でクランプリングすることよりも、より多くのリソースに影響を及ぼす。
2.あるディレクトリ内でより多くの文字をクランプリングすることは、より少ない文字をクランプリングすることよりも、より多くのリソースに影響を及ぼす。
好ましい実装において、キャッシュには、リソースのインデックスまたはリストが存在しない。また、一般に、あるサブディレクトリにいくつのリソースが実際に存在するのかを知る方法も無い。当業者は、この記載を読めば、任意のサブディレクトリにいくつのリソースが実際に存在するのかを知る方法が無いので、これらの仮定が常に最適な結果を与え得るものではないことに気付き、理解するだろう。
クランプリングメカニズム216は、サービス106が担当する各プロパティに対して、プレフィックスリスト(または共通プレフィックスアレイ)218を保持する。つまり、クランプリングメカニズム216は、無効化リスト208が存在するそれぞれのプロパティに対し、プロパティ毎に共通プレフィックスアレイを保持する(図2および図6)。新たな無効化パターンが受信された場合、既存のパターンのリストに対して、この新たなパターンがチェックされる。共通プレフィックスが見出された場合、(もし、まだそこにないのであれば)この共通プレフィックスがプレフィックスアレイに追加される。このプレフィックスアレイは、(上記の2つの仮定に基づいて)"最小の影響"から"最大の影響"の順にソートされる。このプレフィックスアレイは、許容されるパターンの最大数より大きくはなり得ない。クランプリングはまた、プレフィックスアレイ内でも起こり得るが、まれに起こるだけである。そして、そのような場合、複数の要素が、最大の影響から最小の影響へという順序で削除される。
クランプリングは、次に、最小の影響のプレフィックスアレイ要素を取ること、および、その共通プレフィックスに対して無効化パターンをマッチングすることおよび組み合わせることを含む。
以下は、最大10個の無効化コマンドを有するように構成されたプロパティに対するMOV順の無効化リストの例であって、10個のコマンドが格納されており、それ以上の無効化コマンド(IC)のためのスペースを有さない。例示的なMOV値がこれらの例に示される。
Figure 2017191600
このプロパティに対し対応するプレフィックスリストは次の通りである。
Figure 2017191600
この例において、新たな無効化コマンド(例えば、"/st/peter/*")が受信された場合、エントリ("/st/p")が、どれをクランプリングするかを判断する前(これと、無効化テーブルに既にある任意のエントリとの間の最も長い共通プレフィックス)のプレフィックスリストに追加されるべきである。これは、ディレクトリ内で6文字クランプリングするので、以下に示されるように、"/elect/201"の直前に挿入されるべきである。
Figure 2017191600
無効化リストに場所を作ることもまた必要である。多数の可能な結合の候補が存在し、例えば、次の通りである。
(i)"/XYZ/PQR/f*"および"/XYZ/PQR/fu*"が"/XYZ/PQR/f*"に結合されてよい。または、
(ii)"/diet/atk*"および"/diet/nocrb*"が"/diet/*"に結合されてよい。または、
(iii)"/XYZ/PQR/f*"および"/XYZ/PQR/fu*"および"/XYZ/PQR/ab*"が"/XYZ/PQR/*"に結合されてよい。または、
(iv)"/abc/def/2*"および"/abc/def/4*"が"/abc/def/*"に結合されてよい。または、
(v)"/XYZ/PQR/f*"および"/XYZ/PQR/fu*"および"/XYZ/PQR/ab*"および"/diet/atk*"および"/diet/nocrb*"が"/di*"に全て結合されてよい。または、
(vi)"/elect/2015*"および"/elect/2012*"が"/elect/201*"に結合されてよい。または、
(viii)"/st/peter/*"および"/st/patrick/*"が"/st/p*"に結合されてよい。または、
(vii)全てのパターン/制約が"/*"に結合されてよい。
明らかに最後のもの(viii)は、このプロパティに対するあらゆるリソースの無効化を効果的に強制するので、ほとんどのリソースを関係させるだろう。
しかしながら、プレフィックスアレイに基づくと、プレフィックス"/XYZ/PQR/f*"へのICの結合は、(有効なリソースに対する)最小の影響を有するはずである。従って、2つのパターン"/XYZ/PQR/f*"および"/XYZ/PQR/fu*"が"/XYZ/PQR/f*"に結合され、この新たなパターンがリストに挿入される。
クランプリングの結果が以下に示される。
Figure 2017191600
言及されたように、無効化リストはMOV順である。クランプリングの間にMOV値が更新される。特に、結合されたパターンのMOV値は、結合されているパターンのうちで最も高いMOV値である。従って、例えば、"/XYZ/PQR/f*"と"/XYZ/PQR/fu*"を組み合わせる場合、結果として生じるエントリは、組み合わされた無効化コマンドのうちで最も高いMOV、この場合は、"/XYZ/PQR/fu*"コマンドからのMOVを有するだろう。"/XYZ/PQR/f*"のMOV値は100であり、"/XYZ/PQR/fu*"のMOV値は110であった。従って、結合されたパターンのMOV値は110=max(100,110)である。一般に、k個の無効化パターン(P1…Pk)がパターンPcに結合されている(またはクランプリングされている)場合、PcのMOVは、max(mov,i=1…k)である。結合されている特定のパターンは、既に、以前の結合の結果であってよく、そうすると、その特定のパターンのMOVは、その結合の間に設定されていたものであってよいことに留意されたい。また、パターンPcは、結合中の、既に存在しているパターン(Pi)のうちの1つであってよいが、しかしながら、それ自身のMOV値は変化してよいことにもまた留意されたい。例えば、この例において、クランプリングの前後のリストにパターン"/XYZ/PQR/f*"があったが、自身のMOV値は(100から110へ)変化したものと仮定する。
上記の例において、"/abc/def/2*"およびそれを超えるものに対する値は、初期テーブルにあったもののままである。
当業者は、この記載を読めば、結合されたリソースのMOV値を更新することは、より多くの誤検出無効化を生じかねないことに気付き、理解するだろう。
本明細書にて与えられる例において、/XYZ/PQR/fABCのリクエストパスを有し、100またはそれより大きなROVを有して格納されていたリソースが、オリジナルの無効化制約リストでは新たなものとみなされてきただろう。しかしながら、クランプリング後には、110またはそれより大きなROVを有するようなリソースのみが有効とみなされよう。
結合および挿入に基づいて、共通プレフィックスリストが次のように更新される。
Figure 2017191600
この例から明らかなように、クランプリングされた無効化コマンドは、新たなコマンドを含む必要がなく、リストに既にあるコマンドが結合されるものであってよい。
どの無効化コマンドをクランプリングまたは結合するかに関する判断は、組み合わされるコマンドのMOV値に基づくものであってよい。いくつかの場合において、無効化コマンドは、組み合わされるコマンドのうち、どれが最も小さなMOV値の変化を有するのかに基づいて結合されてよい。いくつかの場合において、無効化コマンドは、組み合わされるコマンドのうち、どれが最も小さな実際のMOV値を有するのかに基づいて結合されてよい。MOV値は、例えば、複数の結合/クランプリング候補に対して結着を付けるものとして使用されてよい。
例として、4つの無効化コマンドを考える。
IC1:制約1、mov1。
IC2:制約2、mov2。
IC3:制約3、mov3。
IC4:制約4、mov4。
結合の選択は次の通りと仮定する:
IC5=IC1&IC2:mov5=Max(mov1,mov2)。
IC6=IC3&IC4:mov6=Max(mov3,mov4)。
いくつかの場合において、mov5およびmov6の小さい方を有する結合が選択されてよい。いくつかの場合において、(i)mov5とmin(mov1,mov2)との間、および(ii)mov6とmin(mov3,mov4)との間の差を最小限にする結合が選択されてよい。従って、例えば、mov1=100且つmov2=101とすると、mov5=101であり、min(mov1,mov2)との間の差は1である。mov3=90且つmov4=120とすると、mov6=120であり、mov6とmin(mov3,mov4)との間の差は30である。この差を最小限にする結合(すなわち、IC5)が選択されるだろう。
リクエスト−応答処理
好ましい実装において、実際のリソースの無効化は、そのリソースに対するリクエスト時に行われる。これは、このリソースがリクエストされなければ、(無効化情報を格納することの他には)本質的に何も行う必要が無いという点を含めて、多数の理由から有利である。
リソースに対するリクエスト(例えば、HTTPリクエスト)をサービスが取得する場合、それは、無効なリソースの適切なリストに対して(すなわち、そのプロパティに対する無効なリソースのリストに対して)、リクエストされたリソースをチェックする。このリソースがリスト上の制約に対応し、このリソースのROV値がその制約のMOV値より小さい場合、このリソースが供給され得る前に、このリソースの有効な/新たなバージョンが取得されなくてはならない。従って、このリストに対する制約が、リクエストされたリソースが無効であることを示す場合、このサービスは、(例えば、オリジンサーバのようなコンテンツプロバイダのコンテンツソースから、または、CDN中の別の位置(例えば、ピア)から)このリソースを複製する。このリソースの新たなバージョンが取得された場合に、このリソースのROV値が更新される。
例えば、上記のクランプリング前に、リソース"/XYZ/PQR/fa.gif"をユーザがリクエストするものと仮定する。この例において、キャッシュは、rov=101であるバージョンの"/XYZ/PQR/fa.gif"を有するものと仮定する。リクエストされたリソースは、無効化制約"/XYZ/PQR/f*"に合致するが、キャッシュされたリソース(rov=101)のROVは、この制約に関連するMOV値(mov=100)より大きい。このキャッシュされたバージョンが供給され得る。上記のクランプリング後には、制約"/XYZ/PQR/f*"のMOV値は110であり、そのため、rov=101を有するキャッシュされたリソース"/XYZ/PQR/fa.gif"は無効とみなされる。サーバは、例えば、オリジンサーバまたはCDN中の別の位置からリソース"/XYZ/PQR/fa.gif"をリフレッシュする。リフレッシュされたバージョンは、有効とみなされるために、少なくとも110のROVを有さなくてはならない。上記にて説明されたように、このバージョンは既に有効であってよく、クランプリングのために(誤検出として)無効と暗示されていたものであってよい。
CDNにおける無効化の例示的なオペレーションが、米国特許第8,060,613号明細書に記載され、全ての目的に対し、その全内容が参照により本明細書に完全に組み込まれる。
クランプリングは、コンテンツが供給されるデバイスと同一のデバイスで行われる必要はないことが理解されるべきである。例えば、クランプリングは、末端のデバイスで行われてよいし、あるいは、中央で行われることもできる。
コンピューティング
上記にて示され、説明されたサービス、メカニズム、オペレーション、および動作は、少なくとも部分的に、CDN100の1または複数のコンピュータにおいて実行しているソフトウェアによって実施される。
そのような方法を実行するプログラム(並びに、その他のタイプのデータ)が、様々な媒体(例えば、コンピュータ可読媒体)を使用して、多数のやり方で格納され、送信されてよい。ハードワイヤードの回路またはカスタムハードウェアが、様々な実施形態のプロセスを実行することのできるソフトウェア命令のいくつか、または全ての代わりに、あるいはそれらと組み合わせて使用されてよい。従って、ハードウェアおよびソフトウェアの様々な組み合わせが、ソフトウェアのみの代わりに使用されてよい。
当業者は、この記載を読めば、本明細書にて説明される様々なプロセスが、例えば、適切にプログラムされた汎用コンピュータ、特定用途向けコンピュータおよびコンピューティングデバイスによって実施され得ることを、容易に認識および理解するだろう。1または複数のそのようなコンピュータまたはコンピューティングデバイスが、コンピュータシステムと呼ばれ得る。
図7は、本開示の実施形態が実施され、実行され得るコンピュータシステム700の略図である。
本例に従うと、コンピュータシステム700は、バス702(すなわち、相互接続)、1または複数のプロセッサ704、メインメモリ706、リムーバブルストレージ媒体710、リードオンリメモリ708、大容量ストレージ712、および1または複数の通信ポート714を含む。通信ポート714は、1または複数のネットワークに接続されてよく、これを通じて、コンピュータシステム700がデータを受信および/または送信してよい。
本明細書にて使用されるように、"プロセッサ"とは、1または複数のマイクロプロセッサ、中央処理装置(CPU)、コンピューティングデバイス、マイクロコントローラ、デジタル信号プロセッサ、または同様なデバイス、またはそれらの任意の組み合わせを、それらのアーキテクチャに関わらず意味する。プロセスを実行する装置は、例えば、プロセッサと、そのプロセスを実行するのに適切な、入力デバイスおよび出力デバイスのような複数のデバイスを含むことができる。
プロセッサ704は、これに限定されるものではないが、インテル(登録商標)Itanium(登録商標)またはItanium2(登録商法)プロセッサ、AMD(登録商標)Opteron(登録商標)またはAthlon MP(登録商標)プロセッサ、または、モトローラ(登録商標)の一連のプロセッサ、等のような、任意の既知のプロセッサであり得る。通信ポート714は、モデムベースのダイヤルアップ接続と共に使用するためのRS−232ポート、10/100イーサネット(登録商標)ポート、銅またはファイバを使用したギガビットポート、または、USBポート、等のいずれであってもよい。通信ポート714は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、CDN、または、コンピュータシステム700が接続する任意のネットワークのような、ネットワークに応じて選択されてよい。コンピュータシステム700は、周辺機器(例えば、ディスプレイスクリーン716、入出力(I/O)ポート720を介した入力デバイス718)と通信し得る。
メインメモリ706は、当技術分野において一般に知られている、ランダムアクセスメモリ(RAM)、または、任意の他の動的ストレージデバイスであることができる。リードオンリメモリ708は、プロセッサ704に対する命令のような静的情報を格納するための、プログラマブルリードオンリメモリ(PROM)チップのような、任意の静的ストレージデバイスであることができる。大容量ストレージ712は、情報および命令を格納するために使用され得る。例えば、Adaptec(登録商標)の小型コンピュータシリアルインタフェース(SCSI)ドライブのファミリのようなハードディスク、光学ディスク、Adaptec(登録商標)のRAID(Redundant Array of Independent Disks)ドライブのファミリ等のRAIDのような一連のディスク、または、任意の他の大容量ストレージデバイスが使用され得る。
バス702は、プロセッサ704を、その他のメモリ、ストレージ、および通信ブロックに通信可能に連結する。バス702は、使用されるストレージデバイスに応じて、PCI/PCI−X、SCSI、ユニバーサルシリアルバス(USB)ベースのシステムバス(またはその他)、等であり得る。リムーバブルストレージ媒体710は、あらゆる種類の外部ハードドライブ、フロッピー(登録商標)ドライブ、IOMEGA(登録商標)Zipドライブ、コンパクトディスク−リードオンリメモリ(CD−ROM)、コンパクトディスク−リライタブル(CD−RW)、デジタル多用途ディスク−リードオンリメモリ(DVD−ROM)、等であり得る。
本明細書における実施形態は、プロセスを実行するようにコンピュータ(または、その他の電子デバイス)をプログラムするために使用され得る命令がそこに格納された機械可読媒体を含み得る、1または複数のコンピュータプログラムプロダクトとして提供されてよい。本明細書にて使用されるように、"機械可読媒体"という用語は、コンピュータ、プロセッサ、または同様なデバイスによって読み出され得るデータ(例えば、命令、データ構造)を提供することに関与する任意の媒体、その媒体の複数、または、異なる媒体の組み合わせを指す。そのような媒体は、限定されるものではないが、不揮発性媒体、揮発性媒体、および伝送媒体を含めて、多くの形態を取り得る。不揮発性媒体は、例えば、光学ディスクまたは磁気ディスク、およびその他の永続メモリを含む。揮発性媒体は、コンピュータのメインメモリを通常構成する、ダイナミックランダムアクセスメモリを含む。伝送媒体は、プロセッサに連結されるシステムバスを備えるワイヤを含めて、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体は、無線周波数(RF)および赤外(IR)データ通信の間で発生されるもののような、音波、光波、および電磁放射を含み得る、または伝え得る。
機械可読媒体は、限定されるものではないが、フロッピー(登録商標)ディスク、光学ディスク、CD−ROM、光磁気ディスク、ROM、RAM、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、磁気カードまたは光カード、フラッシュメモリ、または、電子命令を格納するのに適したその他のタイプの媒体/機械可読媒体を含んでよい。さらに、本明細書における実施形態はまた、コンピュータプログラムプロダクトしてダウンロードされてもよい。その場合、プログラムは、搬送波またはその他の伝搬媒体で具現化されるデータ信号を通じて、通信リンク(例えば、モデムまたはネットワーク接続)を介して、リモートコンピュータから要求しているコンピュータへと伝送されてよい。
様々な形態のコンピュータ可読媒体が、データ(例えば、一連の命令)をプロセッサへ搬送することに関与し得る。例えば、データは、(i)RAMからプロセッサへ配信され得る。(ii)無線伝送媒体を介して搬送され得る。(iii)多くのフォーマット、規格、またはプロトコルに従ってフォーマットされ得る、および/または送信され得る。および/または、(iv)当技術分野において良く知られている様々なやり方の任意のもので暗号化され得る。
コンピュータ可読媒体は、これらの方法を実行するのに適切な、それらのプログラム要素を(任意の適切なフォーマットで)格納することができる。
示されるように、メインメモリ706は、本明細書にて説明された機能性をサポートするアプリケーション722により符号化される(アプリケーション722は、本明細書にて説明されるCDサービスの機能性のいくつか、または全てを提供するアプリケーションであり得る)。アプリケーション722(および/または、本明細書にて説明されるその他のリソース)は、本明細書にて説明される様々な実施形態に従った処理機能をサポートする、データおよび/または論理命令のようなソフトウェアコード(例えば、メモリまたはディスクのような別のコンピュータ可読媒体に格納されたコード)として具現化され得る。
1つの実施形態のオペレーションの間、アプリケーション722の論理命令を起動するため、動作させるため、実行するため、解釈するため、またはそうでなければ行うために、プロセッサ704がバス702を使用してメインメモリ706にアクセスする。アプリケーション722の実行は、このアプリケーションに関連するサービスの処理機能を生成する。言い換えると、プロセス724は、コンピュータシステム700のプロセッサ704内で、またはプロセッサ704上で実行している、アプリケーション722の1または複数の部分を表す。
本明細書にて説明されたようなオペレーションを実行するプロセス724に加えて、本明細書のその他の実施形態が、アプリケーション722自身(すなわち、実行されない、または、実行しない論理命令および/またはデータ)を含むことに留意すべきである。アプリケーション722は、ディスクのようなコンピュータ可読媒体(例えば、レポジトリ)または光学媒体に格納され得る。その他の実施形態に従うと、アプリケーション722はまた、ファームウェア、リードオンリメモリ(ROM)のようなメモリタイプのシステムに格納されることもできる。または、この例のように、メインメモリ706内(例えば、ランダムアクセスメモリまたはRAM内)の実行可能なコードとして格納されることもできる。例えば、アプリケーション722はまた、リムーバブルストレージ媒体710、リードオンリメモリ708、および/または、大容量ストレージデバイス712に格納されてもよい。
当業者は、コンピュータシステム700が、ハードウェアリソースの割り当ておよび使用を制御するオペレーティングシステムのような、その他のプロセスおよび/またはソフトウェアおよびハードウェアコンポーネントを含み得ることを理解するだろう。
本明細書にて説明されるように、本発明の実施形態は、様々なステップまたはオペレーションを含む。これらの様々なステップは、ハードウェアコンポーネントによって実行されてよい。または、これらの命令によってプログラムされた汎用または特定用途向けプロセッサにこれらのオペレーションを実行させるために使用され得る、機械実行可能な命令中に具現化されてよい。代替的に、これらのステップは、ハードウェア、ソフトウェア、および/またはファームウェアの組み合わせによって実行されてよい。"モジュール"という用語は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせを含むことのできる、自己完結型の機能的構成要素を指す。
当業者は、この記載を読めば、装置の実施形態が、説明されたプロセスの(必ずしも全てでなくてよいが)いくつかを実行するように動作可能なコンピュータ/コンピューティングデバイスを含み得ることを、容易に認識および理解するだろう。
プログラムまたはデータ構造を格納するコンピュータ可読媒体の実施形態は、実行された場合に、説明されたプロセスの(必ずしも全てでなくてよいが)いくつかをプロセッサに実行させることのできるプログラムを格納するコンピュータ可読媒体を含む。
本明細書にてプロセスが説明される場合、当業者は、ユーザの介入無く、このプロセスが動作し得ることを理解するだろう。別の実施形態において、このプロセスは、いくつかの人間の介入を含む(例えば、人間の支援により、または人間の支援を用いてステップが実行される)。
特許請求の範囲を含め、本明細書にて使用されるように、"少なくともいくつか"という表現は、"1または複数"を意味し、1つだけという場合を含む。従って、例えば、"少なくともいくつかのサービス"という表現は、"1または複数のサービス"を意味し、1つのサービスの場合を含む。
特許請求の範囲を含め、本明細書にて使用されるように、"に基づいて"という表現は、"に部分的に基づいて"または"に少なくとも部分的に基づいて"を意味し、排他的なものではない。従って、例えば、"ファクタXに基づいて"という表現は、"ファクタXに部分的に基づいて"または"ファクタに少なくとも部分的に基づいて"を意味する。"のみ"という文言を用いて具体的に述べられていない限り、"Xに基づいて"という表現は、"Xのみに基づいて"を意味するものではない。
特許請求の範囲を含め、本明細書にて使用されるように、"を使用して"という表現は、"を少なくとも使用して"を意味し、排他的なものではない。従って、例えば、"Xを使用して"という表現は、"Xを少なくとも使用して"を意味する。"のみ"という文言を用いて具体的に述べられていない限り、"Xを使用して"という表現は、"Xのみを使用して"を意味するものではない。
一般に、特許請求の範囲を含め、本明細書にて使用されるように、"のみ"という文言が具体的に表現中で使用されていない限り、その表現に読み込まれるべきではない。
特許請求の範囲を含め、本明細書にて使用されるように、"別個の"という表現は、"少なくとも部分的に別個の"を意味する。具体的に述べられていない限り、別個とは、完全に別個であることを意味するものではない。従って、例えば、"XはYとは別個である"という表現は、"Xは少なくとも部分的にYとは別個である"を意味し、"XはYとは完全に別個である"を意味するものではない。従って、特許請求の範囲を含め、本明細書にて使用されるように、"XはYとは別個である"という表現は、少なくともいくつかの点でXがYとは異なることを意味する。
特許請求の範囲を含め、本明細書にて使用されるように、リストはアイテムを1つだけ含んでよく、そうでないと述べられていない限り、多数のアイテムのリストが、任意の特定のやり方で順序付けられる必要はない。リストは、複製のアイテムを含んでよい。例えば、本明細書にて使用されるように、"CDNサービスのリスト"という表現は、1または複数のCDNサービスを含んでよい。
説明および特許請求の範囲における"第1"および"第2"という文言は、区別するため、または識別するために使用されるものであって、連続的または数的限定を示すものではないことが理解されるべきである。同様に、("(a)"、"(b)"等のような)文字または数的符号の使用は、区別および/または識別を助けるために使用されるものであって、何ら、連続的または数的限定、または順序を示すものではない。
具体的に示され、述べられていない限り、いずれのフロー図においても、符号付けされたボックスのいずれによっても、順序は示唆されない。切り離された複数のボックスが図中に示されている場合、それらのボックスに関連付けられた動作は、完全に、または部分的に並列である場合を含め、任意の順序で実行されてよい。
現在のところ最も実際的且つ好ましい実施形態と考えられるものに関連して本発明を説明してきたものの、本発明は、開示される実施形態に限定されるべきではなく、それどころか、添付の特許請求項の主旨および範囲内に含まれる様々な変更および同等な構成を網羅することが意図されているということが、理解されるべきである。

Claims (16)

  1. コンテンツ配信ネットワーク(CDN)中のデバイスにおいて動作可能な、コンピュータによって実施される方法であって、前記CDNは、少なくとも1つのコンテンツプロバイダの代わりにコンテンツを配信し、前記少なくとも1つのコンテンツプロバイダに関連した前記コンテンツは少なくとも1つのプロパティを含み、前記デバイスはコンテンツ配信(CD)サービスを実行し、
    前記方法は、前記デバイスにおける前記サービスにより、
    (A)前記CDサービスにプロパティ無効化情報を保持する段階であって、前記プロパティ無効化情報は、前記CDサービスによって処理されるそれぞれのプロパティに対し、1または複数のグループ無効化コマンドのリストを含む、保持する段階と、
    (B)前記CDサービスが特定のプロパティに対する少なくとも1つの新たなグループ無効化コマンドを受信することに応答して、
    (B)(1)前記特定のプロパティに対する1または複数のグループ無効化コマンドの前記リストのサイズが特定の閾値を超えない場合、前記リストに前記新たなグループ無効化コマンドを挿入することによって、さもなければ、
    (B)(2)前記特定のプロパティに対する1または複数のグループ無効化コマンドの前記リストのサイズが特定の閾値を超える場合、(i)結合された無効化コマンドを形成すべく1または複数の無効化コマンドを結合することであって、前記結合することが、結合される前記無効化コマンドの共通プレフィックスの長さに基づいている、結合すること、(ii)前記結合された無効化コマンドを前記リストに挿入すること、および、(iii)前記リストから前記1または複数の無効化コマンドを除去することによって、
    前記プロパティ無効化情報に対して前記新たなグループ無効化コマンドを追加することを試みる段階と、
    を有する、方法。
  2. (C)前記CDサービスにおいて、それぞれのプロパティリストにおける無効化コマンドに対してプロパティ毎の共通プレフィックスリストを保持する段階であって、前記結合することが、どの無効化コマンドを結合すべきかを判断するために前記共通プレフィックスリストを使用する、保持する段階をさらに有する、請求項1に記載の方法。
  3. 前記プロパティ毎の共通プレフィックスリストは、1または複数の影響の仮定に基づいて、最小の影響から最大の影響の順にソートされる、請求項2に記載の方法。
  4. 新たな無効化パターンが受信された場合、前記新たなパターンは、複数のパターンの既存の前記リストに対してチェックされ、共通プレフィックスが見出された場合、前記共通プレフィックスが選択的に前記共通プレフィックスリストに追加される、請求項2に記載の方法。
  5. グループ無効化コマンドが制約パターンを含む、請求項1から請求項4のいずれか1項に記載の方法。
  6. 前記制約パターンはグロブパターンを含む、請求項5に記載の方法。
  7. (D)前記CDサービスにおいて受信された、特定のリソースに対するリクエストに応答して、前記特定のリソースのコピーが前記CDサービスのキャッシュに存在する場合、
    (D)(1)前記CDサービスにおける前記プロパティ無効化情報を使用して、前記特定のリソースが有効どうかを判断する段階と、
    (D)(2)段階(D)(1)における前記判断することに基づいて、前記特定のリソースが有効ではないと判断された場合、前記特定のリソースの有効なバージョンを取得する段階、および、前記リクエストに対する応答を前記特定のリソースの前記有効なバージョンに基づかせる段階と、
    をさらに有する、請求項1から請求項6のいずれか1項に記載の方法。
  8. 1または複数のグループ無効化コマンドの前記リストは、ソートされた順序でプレフィックスリストを保持するデータ構造を含む、請求項1から請求項7のいずれか1項に記載の方法。
  9. 前記データ構造は、最小の影響から最大の影響の順にソートされた前記プレフィックスリストを保持する、請求項8に記載の方法。
  10. 1または複数のグループ無効化コマンドの前記リストにおけるそれぞれの無効化コマンドは、制約および最小オリジンバージョン(MOV)値を含み、1または複数のグループ無効化コマンドの前記リストは、MOV順のリストである、請求項1から請求項9のいずれか1項に記載の方法。
  11. (B)(2)(i)における1または複数の無効化コマンドの前記結合は、結合される前記1または複数の無効化コマンドのMOV値に基づいて、前記結合された無効化コマンドに対するMOV値を決定することを含む、請求項10に記載の方法。
  12. 前記結合された無効化コマンドに対する前記MOV値は、結合される前記1または複数の無効化コマンドの前記MOV値のうちの最大のものに設定される、請求項11に記載の方法。
  13. 前記結合された無効化コマンドの前記制約は、前記結合することの前に既に前記リストに存在していた、請求項10に記載の方法。
  14. 前記結合された無効化コマンドの前記制約は、(B)(2)(i)において結合される前記1または複数の無効化コマンドのうちの1つの制約であった、請求項13に記載の方法。
  15. コンテンツ配信ネットワーク(CDN)中のコンピュータシステムにおいて動作可能なコンピュータプログラムであって、前記CDNは、少なくとも1つのコンテンツプロバイダの代わりにコンテンツを配信し、前記少なくとも1つのコンテンツプロバイダに関連した前記コンテンツは少なくとも1つのプロパティを含み、前記コンピュータシステムはコンテンツ配信(CD)サービスを実行し、前記コンピュータシステムの1または複数のプロセッサによる前記コンピュータプログラムの実行は、前記1または複数のプロセッサに、
    (A)前記CDサービスにプロパティ無効化情報を保持する動作であって、前記プロパティ無効化情報は、前記CDサービスによって処理されるそれぞれのプロパティに対し、1または複数のグループ無効化コマンドのリストを含む、保持する動作と、
    (B)前記CDサービスが特定のプロパティに対する少なくとも1つの新たなグループ無効化コマンドを受信することに応答して、
    (B)(1)前記特定のプロパティに対する1または複数のグループ無効化コマンドの前記リストのサイズが特定の閾値を超えない場合、前記リストに前記新たなグループ無効化コマンドを挿入することによって、さもなければ、
    (B)(2)前記特定のプロパティに対する1または複数のグループ無効化コマンドの前記リストのサイズが特定の閾値を超える場合、(i)結合された無効化コマンドを形成すべく1または複数の無効化コマンドを結合することであって、前記結合することが、結合される前記無効化コマンドの共通プレフィックスの長さに基づいている、結合すること、(ii)前記結合された無効化コマンドを前記リストに挿入すること、および、(iii)前記リストから前記1または複数の無効化コマンドを除去することによって、
    前記プロパティ無効化情報に対して前記新たなグループ無効化コマンドを追加することを試みる動作と、
    を実行させる、コンピュータプログラム。
  16. コンテンツ配信ネットワーク(CDN)におけるデバイスであって、前記CDNは、少なくとも1つのコンテンツプロバイダの代わりにコンテンツを配信し、前記少なくとも1つのコンテンツプロバイダに関連した前記コンテンツは少なくとも1つのプロパティを含み、前記デバイスはコンテンツ配信(CD)サービスを実行し、前記デバイスは、
    (A)前記CDサービスにプロパティ無効化情報を保持し、前記プロパティ無効化情報は、前記CDサービスによって処理されるそれぞれのプロパティに対し、1または複数のグループ無効化コマンドのリストを含み、
    (B)前記CDサービスが特定のプロパティに対する少なくとも1つの新たなグループ無効化コマンドを受信することに応答して、
    (B)(1)前記特定のプロパティに対する1または複数のグループ無効化コマンドの前記リストのサイズが特定の閾値を超えない場合、前記リストに前記新たなグループ無効化コマンドを挿入することによって、さもなければ、
    (B)(2)前記特定のプロパティに対する1または複数のグループ無効化コマンドの前記リストのサイズが特定の閾値を超える場合、(i)結合された無効化コマンドを形成すべく1または複数の無効化コマンドを結合することであって、前記結合することが、結合される前記無効化コマンドの共通プレフィックスの長さに基づいている、結合すること、(ii)前記結合された無効化コマンドを前記リストに挿入すること、および、(iii)前記リストから前記1または複数の無効化コマンドを除去することによって、
    前記プロパティ無効化情報に対して前記新たなグループ無効化コマンドを追加することを試みる、デバイス。
JP2017071261A 2016-04-11 2017-03-31 コンテンツ配信ネットワーク(cdn)における無効化 Active JP6219547B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/095,282 US9591047B1 (en) 2016-04-11 2016-04-11 Invalidation in a content delivery network (CDN)
US15/095,282 2016-04-11

Publications (2)

Publication Number Publication Date
JP2017191600A true JP2017191600A (ja) 2017-10-19
JP6219547B2 JP6219547B2 (ja) 2017-10-25

Family

ID=58162384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017071261A Active JP6219547B2 (ja) 2016-04-11 2017-03-31 コンテンツ配信ネットワーク(cdn)における無効化

Country Status (9)

Country Link
US (2) US9591047B1 (ja)
EP (1) EP3232647B1 (ja)
JP (1) JP6219547B2 (ja)
CN (1) CN107295060B (ja)
CA (1) CA2963347C (ja)
HK (1) HK1243845B (ja)
SG (1) SG11201808412PA (ja)
TW (1) TWI627845B (ja)
WO (1) WO2017180218A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354748B1 (en) 2014-04-25 2022-06-07 State Farm Mutual Automobile Insurance Company Systems and methods for automatically mitigating risk of water damage
US11201939B1 (en) * 2019-06-28 2021-12-14 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11171720B1 (en) * 2019-06-28 2021-11-09 Amazon Technologies, Inc. Content and compute delivery platform using satellites
US11086960B2 (en) * 2019-07-17 2021-08-10 Netflix, Inc. Extension for targeted invalidation of cached assets

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018787A (ja) * 2003-06-25 2005-01-20 Microsoft Corp キャッシュエントリを無効化するために使用できるデータベーステーブル変更情報の登録および取り出し
JP2010198258A (ja) * 2009-02-25 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュメンテナンス装置、その方法及びそのプログラム
US8060613B2 (en) * 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
US8825830B2 (en) * 2012-12-13 2014-09-02 Level 3 Communications, Llc Content delivery framework with dynamic service network topology

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US6584548B1 (en) * 1999-07-22 2003-06-24 International Business Machines Corporation Method and apparatus for invalidating data in a cache
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US6484143B1 (en) * 1999-11-22 2002-11-19 Speedera Networks, Inc. User device and system for traffic management and content distribution over a world wide area network
KR100353798B1 (ko) * 1999-12-01 2002-09-26 주식회사 코난테크놀로지 영상 객체 모양 정보 추출 방법 및 그를 이용한 내용기반 이미지 검색 시스템 및 그 방법
US6757708B1 (en) 2000-03-03 2004-06-29 International Business Machines Corporation Caching dynamic content
US6571261B1 (en) 2000-07-13 2003-05-27 International Business Machines Corporation Defragmentation utility for a shared disk parallel file system across a storage area network
US6591266B1 (en) * 2000-07-14 2003-07-08 Nec Corporation System and method for intelligent caching and refresh of dynamically generated and static web content
US20020116583A1 (en) 2000-12-18 2002-08-22 Copeland George P. Automatic invalidation dependency capture in a web cache with dynamic content
US7177917B2 (en) 2000-12-27 2007-02-13 Softwired Ag Scaleable message system
US7149797B1 (en) 2001-04-02 2006-12-12 Akamai Technologies, Inc. Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP)
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
US7010598B2 (en) 2002-02-11 2006-03-07 Akamai Technologies, Inc. Method and apparatus for measuring stream availability, quality and performance
US7254634B1 (en) 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7114160B2 (en) 2002-04-17 2006-09-26 Sbc Technology Resources, Inc. Web content customization via adaptation Web services
US6990559B2 (en) * 2002-10-03 2006-01-24 Hewlett-Packard Development Company, L.P. Mechanism for resolving ambiguous invalidates in a computer system
US6912562B1 (en) * 2002-12-04 2005-06-28 At&T Corp. Cache invalidation technique with spurious resource change indications
WO2004051453A1 (en) * 2002-12-04 2004-06-17 Entriq Inc. Multiple content provider user interface
US20040193656A1 (en) * 2003-03-28 2004-09-30 Pizzo Michael J. Systems and methods for caching and invalidating database results and derived objects
US7395346B2 (en) 2003-04-22 2008-07-01 Scientific-Atlanta, Inc. Information frame modifier
US7853699B2 (en) 2005-03-15 2010-12-14 Riverbed Technology, Inc. Rules-based transaction prefetching using connection end-point proxies
US20050086386A1 (en) 2003-10-17 2005-04-21 Bo Shen Shared running-buffer-based caching system
US7395279B2 (en) 2003-11-17 2008-07-01 International Business Machines Corporation System and method for achieving different levels of data consistency
US7076608B2 (en) 2003-12-02 2006-07-11 Oracle International Corp. Invalidating cached data using secondary keys
EP1730918B1 (en) 2004-03-31 2018-05-09 Telecom Italia S.p.A. Method and system for controlling content distribution, related network and computer program product therefor
US20050289388A1 (en) 2004-06-23 2005-12-29 International Business Machines Corporation Dynamic cluster configuration in an on-demand environment
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8255456B2 (en) * 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7921200B2 (en) 2006-02-03 2011-04-05 International Business Machines Corporation Apparatus, system, and method for interaction with multi-attribute system resources as groups
EP1999608A4 (en) 2006-03-29 2010-10-06 Hewlett Packard Development Co SYSTEM, METHOD AND DEVICE FOR VISUAL SCAN, DEEP-TAGGING AND SYNCHRONIZED COMMENTING
US7461206B2 (en) 2006-08-21 2008-12-02 Amazon Technologies, Inc. Probabilistic technique for consistency checking cache entries
KR20090085581A (ko) * 2006-10-24 2009-08-07 톰슨 라이센싱 다중-뷰 비디오 코딩을 위한 화상 관리
US7890549B2 (en) 2007-04-30 2011-02-15 Quantum Leap Research, Inc. Collaboration portal (COPO) a scaleable method, system, and apparatus for providing computer-accessible benefits to communities of users
US20080313267A1 (en) 2007-06-12 2008-12-18 International Business Machines Corporation Optimize web service interactions via a downloadable custom parser
US7996621B2 (en) 2007-07-12 2011-08-09 International Business Machines Corporation Data cache invalidate with data dependent expiration using a step value
US20100042734A1 (en) 2007-08-31 2010-02-18 Atli Olafsson Proxy server access restriction apparatus, systems, and methods
JP5192798B2 (ja) 2007-12-25 2013-05-08 株式会社日立製作所 サービス提供システム、ゲートウェイ、およびサーバ
US20110023079A1 (en) 2008-03-20 2011-01-27 Mark Alan Schultz System and method for processing priority transport stream data in real time in a multi-channel broadcast multimedia system
EP2274684A4 (en) 2008-04-04 2012-12-05 Level 3 Communications Llc HANDLING LONG TAIL CONTENT IN A CONTENT DELIVERY NETWORK (CDN)
AU2010202034B1 (en) 2010-04-07 2010-12-23 Limelight Networks, Inc. Partial object distribution in content delivery network
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8078848B2 (en) 2009-01-09 2011-12-13 Micron Technology, Inc. Memory controller having front end and back end channels for modifying commands
US8874460B2 (en) 2009-01-19 2014-10-28 Appature, Inc. Healthcare marketing data optimization system and method
US20100228962A1 (en) 2009-03-09 2010-09-09 Microsoft Corporation Offloading cryptographic protection processing
US8412823B1 (en) * 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8626876B1 (en) 2012-11-28 2014-01-07 Limelight Networks, Inc. Intermediate content processing for content delivery networks
US10264029B2 (en) 2009-10-30 2019-04-16 Time Warner Cable Enterprises Llc Methods and apparatus for packetized content delivery over a content delivery network
US8275816B1 (en) 2009-11-06 2012-09-25 Adobe Systems Incorporated Indexing messaging events for seeking through data streams
US8452835B2 (en) 2009-12-23 2013-05-28 Citrix Systems, Inc. Systems and methods for object rate limiting in multi-core system
CN102812456A (zh) 2010-02-04 2012-12-05 爱立信(中国)通信有限公司 用于内容叠合的方法
WO2011096865A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget Lm Ericsson (Publ) Method and node entity for enhancing content delivery network
US8577827B1 (en) 2010-03-12 2013-11-05 Amazon Technologies, Inc. Network page latency reduction using gamma distribution
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US20120124372A1 (en) * 2010-10-13 2012-05-17 Akamai Technologies, Inc. Protecting Websites and Website Users By Obscuring URLs
US20120150993A1 (en) 2010-10-29 2012-06-14 Akamai Technologies, Inc. Assisted delivery of content adapted for a requesting client
WO2012097030A1 (en) 2011-01-12 2012-07-19 Level 3 Communications, Llc Customized domain names in a content delivery network (cdn)
US20120221767A1 (en) * 2011-02-28 2012-08-30 Apple Inc. Efficient buffering for a system having non-volatile memory
CN102724219B (zh) 2011-03-29 2015-06-03 国际商业机器公司 网络数据的计算机处理方法及系统
US10455447B2 (en) 2011-06-22 2019-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for content delivery control
US8909736B1 (en) * 2012-07-12 2014-12-09 Juniper Networks, Inc. Content delivery network referral
US9563663B2 (en) 2012-09-28 2017-02-07 Oracle International Corporation Fast path evaluation of Boolean predicates
US9537973B2 (en) 2012-11-01 2017-01-03 Microsoft Technology Licensing, Llc CDN load balancing in the cloud
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
CN105141636B (zh) * 2015-09-24 2018-04-17 网宿科技股份有限公司 适用于cdn增值业务平台的http安全通信方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8060613B2 (en) * 1998-02-10 2011-11-15 Level 3 Communications, Llc Resource invalidation in a content delivery network
JP2005018787A (ja) * 2003-06-25 2005-01-20 Microsoft Corp キャッシュエントリを無効化するために使用できるデータベーステーブル変更情報の登録および取り出し
JP2010198258A (ja) * 2009-02-25 2010-09-09 Nippon Telegr & Teleph Corp <Ntt> キャッシュメンテナンス装置、その方法及びそのプログラム
US8825830B2 (en) * 2012-12-13 2014-09-02 Level 3 Communications, Llc Content delivery framework with dynamic service network topology

Also Published As

Publication number Publication date
TWI627845B (zh) 2018-06-21
US9749381B1 (en) 2017-08-29
EP3232647A2 (en) 2017-10-18
TW201739217A (zh) 2017-11-01
US9591047B1 (en) 2017-03-07
EP3232647B1 (en) 2019-01-23
JP6219547B2 (ja) 2017-10-25
HK1243845B (zh) 2020-02-07
CN107295060A (zh) 2017-10-24
SG11201808412PA (en) 2018-10-30
CN107295060B (zh) 2020-03-31
EP3232647A3 (en) 2017-11-08
CA2963347C (en) 2018-12-11
CA2963347A1 (en) 2017-10-11
WO2017180218A1 (en) 2017-10-19

Similar Documents

Publication Publication Date Title
US11388251B2 (en) Providing access to managed content
US20210409508A1 (en) Systems and methods for caching of managed content in a distributed environment using a multi-tiered architecture
JP6219547B2 (ja) コンテンツ配信ネットワーク(cdn)における無効化
US9602622B2 (en) Flexible caching of resource oriented web services
US6985936B2 (en) Addressing the name space mismatch between content servers and content caching systems
US10061852B1 (en) Transparent proxy tunnel caching for database access
US9160709B2 (en) System and method for managing page variations in a page delivery cache
US7028089B2 (en) Method and apparatus for caching subscribed and non-subscribed content in a network data processing system
CN111200634A (zh) 缓存资源联动更新方法、系统及服务器
US7249219B1 (en) Method and apparatus to improve buffer cache hit rate
US8639770B1 (en) Separation of mutable and immutable data in a memory cache for improvement of data updates
US9542335B1 (en) Methods and systems for rule-based flexible cache invalidation
US7797277B2 (en) Document management system, program, and computer data signal
RU2316048C2 (ru) Способ запроса/доставки электронного документа, основанный на расширяемой спецификации языка (xml)
JP6323109B2 (ja) 文書管理システム、キーバリューストア装置、文書管理方法、及びプログラム
JP2009116496A (ja) ディレクトリサーバ装置、ディレクトリサーバプログラム、ディレクトリサービスシステム、およびディレクトリサービス管理方法
CN117714541A (zh) 基于请求链路拦截的iOS应用网络数据缓存方法、系统

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170927

R150 Certificate of patent or registration of utility model

Ref document number: 6219547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250