JP7467569B2 - コンテンツ配信ネットワークでのプログレッシブオブジェクトのリフレッシュ - Google Patents

コンテンツ配信ネットワークでのプログレッシブオブジェクトのリフレッシュ Download PDF

Info

Publication number
JP7467569B2
JP7467569B2 JP2022176023A JP2022176023A JP7467569B2 JP 7467569 B2 JP7467569 B2 JP 7467569B2 JP 2022176023 A JP2022176023 A JP 2022176023A JP 2022176023 A JP2022176023 A JP 2022176023A JP 7467569 B2 JP7467569 B2 JP 7467569B2
Authority
JP
Japan
Prior art keywords
tags
batch
edge server
tag
objects
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.)
Active
Application number
JP2022176023A
Other languages
English (en)
Other versions
JP2023070133A (ja
Inventor
シー フレデリック エリック
エー クルス ルイス
ジェラルド コラントゥオーニ ロバート
エドウィン グラッブ ジェフリー
Original Assignee
ディズニー エンタープライゼス インコーポレイテッド
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 ディズニー エンタープライゼス インコーポレイテッド filed Critical ディズニー エンタープライゼス インコーポレイテッド
Publication of JP2023070133A publication Critical patent/JP2023070133A/ja
Application granted granted Critical
Publication of JP7467569B2 publication Critical patent/JP7467569B2/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/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/765Media network packet handling intermediate
    • 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/80Responding to QoS
    • 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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

関連出願の相互参照
本出願は、2021年11月4日に出願された米国特許出願第17/518764号の利益及び優先権を主張する。上記関連特許出願は、引用により、全体的に本明細書に一体化される。
背景
コンテンツ配信ネットワーク、又はコンテンツディストリビューションネットワーク(CDN)は、エッジサーバとそのオリジンデータセンタの地理的に分散されたネットワークである。その目標は、エンドユーザに対して空間的にサービスを分配することにより、高有用性とパフォーマンスを提供することである。CDNは、インターネットが個人や企業にとってミッションクリティカルなメディアになるにつれ、パフォーマンスのボトルネックを軽減するために登場した。それ以来、CDNは、今日、インターネットコンテンツの大部分を提供するまでに成長しており、これには、Webオブジェクト(テキスト、グラフィック、スクリプト)、ダウンロード可能なオブジェクト(メディアファイル、ソフトウェア、ドキュメント)、アプリケーション(eコマース、ポータル)、ライブストリーミングメディア、オンデマンドストリーミングメディア、及びソーシャルメディアサイトが含まれる。
上記の態様が達成され、詳細に理解できるように、添付図面を参照することにより、上記で簡単に要約した、本明細書に記載の実施形態のより具体的な説明を行うことができる。
しかし、添付図面は典型的な実施形態を示しており、従って限定と解釈されるべきではないことに留意すべきである。他の同等に有効な実施形態が考えられる。
一実施形態による、再検証(リバリデーション)を使用して強制リフレッシュを実行するCDNのブロック図である。 一実施形態による、リバリデーション中に強制リフレッシュを実行することを示す図である。 一実施形態による、バッチで強制リフレッシュを実行するためのフローチャートである。 一実施形態による、オブジェクトタグを使用してコンテンツをバッチに分割することを示す。 一実施形態による、バッチで強制リフレッシュを実行するためのフローチャートである。
詳細な説明
本明細書の実施形態は、リバリデーションを使用して、エッジサーバにそのキャッシュされたオブジェクトを強制的にリフレッシュさせる(即ち、オリジンデータセンタからオブジェクトの新しいコピーをダウンロードさせる)CDNについて説明する。エッジサーバ(プロキシサーバとも呼ばれる)は、オリジンデータセンタからオブジェクトを取得し、オブジェクトをキャッシュすることによって、データ(一般に、「オブジェクト」と呼ばれる)のためのユーザリクエストに応答する。その後、エッジサーバは、オリジンデータセンタからオブジェクトを再ダウンロードすることなく、そのオブジェクトのための更なるユーザリクエストに応答することができる。オブジェクトに対するユーザの需要がなくなると、エッジサーバはオブジェクトをキャッシュしなくなる(即ち、エッジサーバはオブジェクトを削除する)が、オブジェクトはオリジンデータセンタに保存されたままになる。ユーザの要求が高いままである場合、エッジサーバは引き続きオブジェクトをキャッシュする。しかし、オリジンデータセンタはオブジェクトをアップデートすることがあるので、エッジサーバにキャッシュされたオブジェクトが古くなる可能性がある。そのため、エッジサーバはリバリデーションプロセスと呼ばれるものを定期的に実行して、オブジェクトのコピーがオリジンに格納されているオブジェクトの最新バージョンと一致することを確認することができる。そうでない場合、エッジサーバはオブジェクトのアップデートされたバージョンをダウンロードし、キャッシュすることができる。
上述のように、エッジサーバはリバリデーションを使用して、現在エッジサーバにキャッシュされているオブジェクトがオリジンデータセンタでアップデート又は変更されているかを判断することができる。例えば、キャッシュされたニュース記事が流動的な状況の変化に応じてアップデートされる場合や、記事のエラーが修正される場合がある。アップデートされた記事はオリジンデータセンタに保存される。エッジサーバはリバリデーションを使用して、キャッシュされた新しい記事のコピーがオリジンに保存されている記事と一致するかどうかを確認し、一致しない場合は記事の新しいコピーをダウンロードする(即ち、オブジェクトをリフレッシュする)。
本明細書の実施形態は、リバリデーションを利用して強制リフレッシュを実行し、それらのキャッシュされたオブジェクトがオリジンデータセンタに格納されたオブジェクトと一致するかどうかに関係なく、エッジサーバにそれらのキャッシュされたオブジェクトを強制的にリフレッシュさせる。強制リフレッシュは、キャッシュされたオブジェクトの破損の原因となった可能性のあるネットワーク接続がある場合に使用できる。例えば、エッジサーバが最初にオリジンからオブジェクトを取得するときに、ネットワーク接続の問題により、キャッシュされたオブジェクトのデータが失われたり、データがオリジンに保存されているオブジェクトのコピーに対して再配置されていたりする場合がある。エッジサーバが数十万又は数百万の異なるオブジェクトをキャッシュできることを考えると、キャッシュされたオブジェクトのどれが破損しているかを判断することは、不可能ではないにしても、多くの場合困難である。更に、オリジンデータセンタを制御する主要な企業は、エッジサーバの運用を第三者に依頼する場合がある。従って、主要な企業はエッジサーバにアクセスできない可能性があるため、どのオブジェクトが破損しているかどうかを判断できないことがある。
キャッシュされたオブジェクトの破損を回復するために、本明細書の実施形態は、オブジェクトに対応するタグを修正することによってリフレッシュを強制する。オブジェクトがオリジンデータセンタに格納されると、このオブジェクトを独占的に識別するタグ(例えば、基になるデータのタイムスタンプ又はハッシュ)が割り当てられる。オブジェクトがオリジンでアップデートされると、そのタグも変更される。従って、エッジサーバがオブジェクトの古いタグを使用してリバリデーション要求を送信すると、オリジンデータセンタはタグが一致しないことをエッジサーバに通知し、それに応じて、エッジサーバはオブジェクトのリフレッシュされたコピーをアップデートされたタグと共にダウンロードする。リフレッシュを強制するために、オリジンデータセンタは、オブジェクトが更新されていない場合でも、オブジェクトのタグを自発的に変更することができる。エッジサーバがリバリデーションを実行すると、どのタグも一致しないため、エッジサーバがオブジェクトを(再度)ダウンロードして、破損している可能性があるキャッシュオブジェクトと交換する。
このプロセスは、エッジサーバにキャッシュされた多くのオブジェクト(又は全てのキャッシュオブジェクト)をリフレッシュするために使用できるため、オリジンデータセンタとエッジサーバを接続するネットワークに大きな負荷がかかる可能性がある。この負荷を制御又は制限するために、オリジンデータセンタは、一度にタグの一部のみを変更することにより、バッチで強制リフレッシュを実行する場合がある。例えば、オリジンデータセンタでは、毎週タグの4分の1だけを変更することで、エッジサーバにキャッシュされた全てのオブジェクトを4週間にわたって強制的にリフレッシュすることができる。有利なことに、本明細書の実施形態を使用して、CDNは、ネットワークを圧倒しない制御された方法で強制リフレッシュを実行することによって、小規模又は大規模なデータ破損事故から回復できる。
図1は、一実施形態による、リバリデーションを使用して強制リフレッシュを実行するCDN100のブロック図である。一般に、CDN100は、様々な地理的位置に分散されたエッジサーバ130でキャッシュされるメディアアセット115(即ち、より一般的には、オブジェクト)のマスターコピーを格納するオリジンデータセンタ105を含む。エッジサーバ130は、ユーザ150によるメディアアセット115の要求にサービスを提供する。例えば、エッジサーバ130Aは、ある地理的領域においてユーザ150Aによって開始された要求にサービスを提供し、エッジサーバ130Bは、異なる地理的領域においてユーザ150Bによって開始された要求にサービスを提供することができる。2つのエッジサーバ130が示されているが、CDN100は任意の数のエッジサーバ130を含むことができる。更に、CDN100は複数のオリジンデータセンタ105を有することができる。例えば、エッジサーバ130の1つのグループ(例えば、第1国のエッジサーバ)は1つのオリジンデータセンタ105を使用し、エッジサーバ130の異なるグループ(例えば、第2国のサーバ)は異なるオリジンデータセンタ105を使用することができる。
本明細書の実施形態は、ユーザ150がメディアアセット115(例えば、映画、テレビ番組、ビデオクリップ、ニュース記事等)を要求するストリーミングメディア環境との関連で説明されるが、任意の種類のオブジェクト(例えば、アプリケーション、Webオブジェクト、ライブストリーム等)を提供するCDNに適用することができる。一般に、ユーザリクエストを受信すると、エッジサーバ130は要求されたメディアアセット115が自身のキャッシュ135内にあるかを確認し、存在する場合、アセット115をユーザ150に提供する。しかし、存在しない場合、エッジサーバ130はオリジンデータセンタ105からのメディアアセットのコピーを要求する。その後、次にエッジサーバ130は一定期間メディアアセット115をキャッシュし、次にユーザ150がアセット115を要求したときに、アセット115をオリジンデータセンタ105から再度ダウンロードすることなく、エッジサーバ130がメディアアセット115を提供することができる。
この例では、オリジンデータセンタ105はメディアアセット115を格納するライブラリ110を含む。オリジンデータセンタ105(オリジン105とも呼ばれる)は、ライブラリを格納する1つ以上のコンピューティングシステム(例えば、サーバ)を含むことができる。一実施形態では、ライブラリ110は全てのメディアアセット115をCDN100に格納する。例えば、オリジン105がメディア会社によって所有されている場合、オリジン105は、例えば、サブスクリプションベースの(又は無料の)ストリーミングサービスの一部として、ユーザ150に利用可能にされている全てのメディアアセット115を格納することができる。対照的に、エッジサーバ130は、ユーザ150が利用可能なメディアアセットの一部のみを格納することができる。更に、エッジサーバ130は、対応する地理的位置のユーザ150によってなされた要求に応じ、メディアアセット115の異なる部分を格納することができる。即ち、エッジサーバ130Aは、エッジサーバ130Bがキャッシュ135Bに格納するのとは異なるメディアアセット115のサブセットをキャッシュ135Aに格納することができる。
この実施形態では、各々のメディアアセット115は、ライブラリ110に最初に格納されるときに、タグ120を割り当てられる。タグ120(Eタグとも呼ばれる)は、メディアアセット115が格納された(又はアップデートされた)時を示すタイムスタンプ、又はメディアアセット115内に存在するデータから送信されたハッシュであってもよい。いずれの場合でも、タグ120は、CDN100内のメディアアセット115の他の全てのタグ120から独立した唯一のものであることができる。
タグ120は、エッジサーバ130でキャッシュされたメディアアセット115をリバリデーションするために使用することができる。メディアアセット115をキャッシュすると、エッジサーバ130は、各々のメディアアセット115に対する存続時間(TTL)140を格納する。TTL140は、エッジサーバ130がメディアアセット115のリバリデーションプロセスを実行して、メディアアセットが古く、リフレッシュされるべきかを判断する時間(又はカウンタ)を決定する。例えば、TTL140が失効すると、サーバ130のリバリデータ(再確認システム)145(例えば、ソフトウェアアプリケーション)がタグ120をオリジン105に送信し、オリジン105は、これに応じて、そのタグ120がライブラリ110に格納されているメディアアセットのコピーのタグ120と一致するかどうかをチェックする。一致する場合、オリジン105はエッジサーバ130にタグ120が一致することを通知し、これに応答して、エッジサーバ130はメディアアセット115のためにTTL140をリセットすることができる。サーバ130のタグ120がオリジン105のタグ120と一致しない場合、エッジサーバ130は、その新しいタグ120と共にオリジン105からメディアアセット115をダウンロード又は受信することによって、アセット115をリフレッシュする。
上述のように、リバリデーションプロセスを利用して、エッジサーバ130にキャッシュされたメディアアセット115の一部又は全てに対して強制リフレッシュを実行することができる。これを実行する場合、オリジンはライブラリ内のメディアアセット115の一部又は全部のタグ120を変更する回復モジュール(ソフトウェアアプリケーション又はコード)を含む。基礎となるメディアアセット115が変更又はアップデートされた場合にのみタグ120が変更されるリバリデーションの他の実装とは異なり、回復モジュール125は、それらのアセット115が変更されていない場合でも、メディアアセット115の少なくとも一部のタグ120を変更する。有利なことに、これにより、CDN100は、エッジサーバ130内のキャッシュされたメディアアセット115をアップデートすることができ、これらのコピーを評価して、例えばネットワークエラーによりどれが破損しているかを判断する必要がない。
例えば、キャッシュされたメディアアセット115が破損した場合、エッジサーバ130又はオリジン105は、それを知ることができない場合がある。リバリデーションはタグ120を比較することによって実行されるため、エッジサーバ130内の基礎となるメディアアセット115は破損しており、タグ120は破損していない場合がある。従って、通常のリバリデーションプロセスを実行しても、エラーは検出されない。更に、メディアアセット115の手動の検査は、最新のCDN100に通常キャッシュされているデータの量を考えると、時間がかかりすぎ、困難な場合がある。その代わりに、回復モジュールはリバリデーションプロセスを変更し、エッジサーバ130が、オリジンの対応するタグ120を変更することによって、それらのキャッシュされたメディアアセット115の全て(又は、一部)をアップデートすることを強制することができる。従って、TTL140が失効し、リバリデータ145がリバリデーションを実行すると、ローカルに保存されたタグ120はオリジン105内の変更されたタグ120と一致しない。これに応答して、エッジサーバ130はキャッシュされたメディアアセット115をリフレッシュし、それによって破損したメディアアセット115と交換する。
エッジサーバ130という用語が使用されているが、各々のエッジサーバ130は、特定の場所にあるサーバの集合であってもよい。例えば、CDN100のサイズに応じて、各々のエッジサーバ130は、それ自体が複数のコンピューティングシステムを含むデータセンタであってもよい。
更に、本明細書では詳細に説明しないが、エッジサーバ130又はオリジン105は、エッジサーバ130がそのキャッシュ135からメディアアセット115を追い出す(又は、削除する)ときのための追い出しルールを確立することができる。これらのルールは、ユーザリクエストの数、ユーザリクエストのレート、時間閾値等に基づくことができる。リバリデーションプロセスは、削除プロセスとは別の場合がある。メディアアセット115が追い出された/削除された後、エッジサーバ130がアセット115に対する別のユーザリクエストを受信した場合、エッジサーバ130はオリジン105からアセット115を再度ダウンロードする。
図示されていないが、オリジンデータセンタ105及びエッジサーバ130は、ソフトウェアアプリケーション(例えば、リバリデータ145及び回復モジュール125等)を格納し及び実行するための少なくとも1つのプロセッサ及びメモリを含むことができる。更に、他の実施形態では、リバリデータ145及び回復モジュール125は、エッジサーバ130及びオリジンデータセンタ105とは別個のコンピューティングシステムに格納することができる。
図2は、一実施形態による、リバリデーション中の強制リフレッシュの実行を示す図である。図2は、図1のCDN100の一部、即ち、エッジサーバのキャッシュ135、オリジンデータセンタの回復モジュール125、及びオリジンデータセンタのライブラリ110を示す。
自動的に又はシステム管理者に応答して、回復モジュール125は、タグ変更205を実行することによって強制リフレッシュを開始する。図示されているように、回復モジュール125は変更されたタグ210を生成し、ライブラリ110に格納されているオリジナルタグ140Bの変更に用いる。この例では、回復モジュール125は、プレフィックス(接頭後)「G1」をオリジナルタグ「123456」に追加し、これにより、そのメディアアセット115の修正されたタグ210が「G1-123456」になる。更に、基礎となるメディアアセット115が変更されていない、又はアップデートされていない可能性がある場合でも、回復モジュール125はタグ140Bを修正する。他の例では、回復モジュール125は、オリジナルタグのサフィックス(接尾語)を追加又は変更して、変更されたタグ210を形成する。
しばらくして、エッジサーバのリバリデータは、例えば、メディアアセット115のTTLが満了したときに、キャッシュ135に格納されたメディアアセット115のリバリデーションプロセスを実行することを決定する。キャッシュ135に格納されたタグ140Aを含むエッジサーバからリバリデーション要求215が送信される。図示のように、タグ140Aの値(即ち、「123456」)は、ライブラリ110に格納された元のタグ140Bと一致する。このタグ140Bは、タグ変更205中に回復モジュール125によって変更されたタグ210に変更されていた。従って、オリジンは、タグ140Aが現在ライブラリ110に格納されている変更されたタグ210と一致しないことをエッジサーバに通知する。これに応答して、エッジサーバは強制リフレッシュ220を実行し、エッジサーバはメディアアセット115をライブラリ110からダウンロードしてキャッシュ135に格納し、以前にキャッシュ135に格納されたメディアアセット115のコピーと交換する。キャッシュされたメディアアセット115が破損している場合、強制リフレッシュ220により、破損したコピーが破損していないコピーに交換される。キャッシュされたメディアアセット115が破損していない場合、強制リフレッシュ220は、単にメディアアセット115を同じコピーで単に交換する。
一実施形態では、リバリデーション要求215は、オリジンへの条件付き要求を示す「If-None-Match:<etag>」HTTP要求ヘッダを含む。If-None-MatchヘッダーのEタグの値がライブラリ110のタグの現在の値と一致する場合、オリジンはコンテンツが最新であることを示す「304Not Modified」で肯定的に応答する。それ以外の場合、タグが一致しないと、オリジンは「200OK」で応答し、オブジェクトの新しいコピーを送信する。このHTTPプロセスは、通常のリバリデーション要求と強制リフレッシュ220の両方で使用することができる。
更に、強制リフレッシュ220の一部として、変更されたタグ210がキャッシュ135に格納される。従って、エッジサーバがアセットのたのリバリデーションプロセスを実行しないと、エッジサーバ内のタグはオリジン内のタグと一致する。なぜなら、両方とも変更されたタグ210、即ち、「G1-123456」を保存しているからである。勿論、これはメディアアセット115がオリジンで更新されておらず、ライブラリ110に格納されているタグが変更されていないことを前提とする。タグが一致しないと、エッジサーバは強制リフレッシュではなく、「通常の」リフレッシュを実行する。なぜなら、それは、エッジサーバに格納されたメディアアセット115のエラーを修正するためのデータ回復プロセスの一部ではなく、オリジンに格納された基礎となるメディアアセット115の変更に応答するためである。
図3は、一実施形態による、バッチで強制リフレッシュを実行するための方法300のフローチャートである。ブロック305で、回復モジュール(例えば、図1及び2の回復モジュール125)は、CDNのエッジサーバでキャッシュされたオブジェクトの潜在的な破損を識別する。一実施形態では、破損したオブジェクトは、取り出されたオブジェクトにエラーがある(例えば、メディアアセットの品質が悪い、シーンが欠落している、又はダウンロードしたソフトウェアアプリケーションがインストールされない)というユーザの苦情に基づいて検出される場合がある。他の実施形態では、自動品質管理アプリケーションは、エッジサーバでキャッシュされたオブジェクトをランダムに取り出して検査し、それらにエラーがあるか判断することができる。
他の実施形態では、ネットワーク監視アプリケーションが、オブジェクトをオリジンデータセンタからエッジサーバに送信するために使用されるネットワークの状態を監視することができる。ネットワーク監視アプリケーションがネットワーク内のエラー(パケットのドロップ、接続の喪失等)を検出し、ネットワーク経由で転送されるときにオブジェクトを破損する可能性がある場合、アプリケーションは回復モジュールに通知することができる。この例では、回復モジュールは、人やアプリケーションがオブジェクトを検査する必要なく、オブジェクトが破損した状況を特定できる。即ち、回復モジュールは、ネットワークエラーが原因でオブジェクトが破損したと想定し、強制リフレッシュを実行することができる。
他の実施形態では、回復モジュールは、所定の期間に応答して強制リフレッシュを開始することができる。例えば、キャッシュされたオブジェクトで破損の可能性が特定されているかに関係なく、強制的な更新を年に1回実行することができる。他の実施形態では、コンテンツの全て又はサブセットに対して強制リフレッシュを手動でトリガーすることもできる。
ブロック310で、回復モジュールは、キャッシュされたオブジェクトに対応するタグを複数のバッチに細分化する。一実施形態では、回復モジュールは、CDN内の全てのオブジェクトに強制リフレッシュを実行することを決定する。この場合、回復モジュールは、これらのオブジェクトのタグを複数のバッチに細分化し、各々のバッチに対して異なるタイミングで強制リフレッシュを実行する。しかし、他の実施形態では、回復モジュールは、CDN内のオブジェクトの一部のみに対して強制リフレッシュを実行する。例えば、回復モジュールがオブジェクトの一部を除外する場合があるが、これについては後で図5で説明する。他の例では、回復モジュールはオブジェクトの一部のみが破損したことを認識することができ(例えば、特定の種類のオブジェクトのみが破損した場合)、これらのオブジェクトに対してのみ強制リフレッシュを実行することができる。いずれの場合も、回復モジュールはこれらのオブジェクトに対応するタグを識別し、タグを使用してオブジェクトをバッチに分割する。
図4は、一実施形態による、オブジェクトタグを使用してコンテンツをバッチに分割することを示す。即ち、図400は、オブジェクトを異なるバッチに分割するために使用できるタグに関するデータを示す。列405A~Dは、オブジェクトのタグ(例えば、Etag Regex)における最後の値の異なる範囲を定義する。この例では、タグは一連の16進数であり、各々の値には0~9又はA~Fの値が含まれる(例えば、「1F05027D9245」)。この例では、最後の値(例えば、最下位ビットの値等)を使用してタグを細分化し、オブジェクトを異なるバッチに細分化する。この例では最下位ビットについて説明しているが、他の実施形態では、代わりに最上位ビットを使用することができる。
列405Aの第1行は値0で終わる全てのタグを表し、列405Aの第2行は値0又は1で終わる全てのタグを表し、列405Aの第3行は値0、1、2で終わる全てのタグを表し、列405Aの第4行は値0、1、2、3で終わる全てのタグを表す。同様に、列405Bの第1行は、値0、1、2、3、4で終わる全てのタグを表し、列405Bの第2行は、値0、1、2、3、4、又は5で終わる全てのタグを表し、以下同様に、値0、1、2、3、4、5、6、7、8、9、A、B、C、D、E又はF(即ち、全てのタグ)で終わる全てタグを表す列405Dに到達するまで続く。
列410A~Dは、それらのタグを有するCDN内のコンテンツの割合(即ち、オブジェクトの割合)を示す。例えば、列410Aの第1行によると、CDN内のオブジェクトの6.25%が値0で終わるタグを有する。列410Aの第2行によると、CDN内のオブジェクトの12.5%が0又は1で終わるタグを有する等である。従って、図400は、タグの最後の値がCDN内のオブジェクト又はコンテンツを均等に分配するCDNを表す。
図400を使用して、回復モジュールがオブジェクトを4つのバッチに分割したい場合、0、1、2、又は3で終わる値を有する全てのタグを最初のバッチに選択し、4、5、6、又は7で終わる値を有する全てのタグを第2のバッチに選択し、8、9、A、又はBで終わる値を有する全てのタグを3番目のバッチに選択し、C、D、E又はFのいずれかで終わる値を有する全てのタグを4番目のバッチに選択する。図400によると、これら4つのバッチは、各々、CDNのコンテンツの25%を含む。従って、第1のバッチのみを強制的に更新するために、回復モジュールは、0、1、2、又は3で終わる全てのタグを別の値に変更し(例えば、図2に示されるように、「G1」等のプレフィックスをこれらのタグに追加する)、他の値(即ち、4~9又はA~F)で終わるタグは変更しないでおくことができる。その結果、エッジサーバが0、1、2、又は3で終わるタグを有するオブジェクトのリバリデーション要求を送信すると、タグが一致せず、エッジサーバは対応するオブジェクトの新しいコピーをダウンロードする。しかし、エッジサーバが他の値で終わるタグを有するオブジェクトのリバリデーション要求を送信すると(オブジェクトが変更されていない場合)、タグは一致し、エッジサーバはオブジェクトをリフレッシュしない。このように、リバリデーションを使用して強制的にリフレッシュされるオブジェクトの量は、それらをバッチに分割することによって制御することができる。システム管理者がネットワークの過負荷を懸念する場合、バッチを小さくすることができる(例えば、タグの最後の桁の潜在的な値ごとに異なるバッチにする)。
タグの最後の値を使用してオブジェクトを異なるバッチに細分化することは、単なる一例である。より細分性が必要な場合は、タグの最後の2つの値を使用することができる。または、タグの最初の値を使用できる。一実施形態では、回復モジュールは、タグの均等な分布を提供する任意の値を使用することができる。例えば、タグを評価することによって、回復モジュール又はシステム管理者は、タグの最後の値が、図400に示されているものとは対照的に、コンテンツを均等に分散していないと判断することができる。例えば、コンテンツの11.7%が最後の値が0のタグを有し、他の残りの最後の値が残りのタグを均等に分配する(即ち、コンテンツの5.9%には最後の値が1のタグを有し、コンテンツの5.9%は最後の値が2のタグを有する等)。17個の等しいバッチを取得するために、回復モジュールは、最後から2番目の値が0~7で、最後の値が0のタグを1つのバッチ(最後のタグ値0のコンテンツは均等に分散されることを前提とすると、11.2/2=5.9%)に、最後から2番麺の値が8~Fで、最後の値が0のタグを第2のバッチ(コンテンツの更に5.9%になる)を第2のバッチに割り当てる。他の15のバッチは、残りの潜在的なタグの最後の値(即ち、値1~F)を使用して形成することができる。従って、回復モジュールは、タグ内の任意の数の値(及び任意の組み合わせ)を使用して、バッチを形成することができる。
更に、回復モジュールは、各々のバッチがCDN内のコンテンツと同じ量をカバーすることを保証する必要はない。例えば、3つのバッチには各々コンテンツの20%が含まれ、4つ目のバッチにはコンテンツの40%が含まれる場合がある。回復モジュールは、オリジンとエッジサーバの間のネットワークトラフィックが少ない時間帯に4番目のバッチで強制リフレッシュを実行し、他の3つのバッチはピーク時又は通常の時間帯に実行することができる。
方法300に戻ると、ブロック315で、回復モジュールは、選択されたバッチ内のタグを修正して、リバリデーション中にキャッシュされたオブジェクトのリフレッシュを強制する。上述のように、回復モジュールはそのバッチのみのタグを修正することができるが、他のバッチのオブジェクトのタグは修正しない。例えば、回復モジュールは、タグに追加のプレフィックスを追加し、タグに追加のサフィックスを追加し、又はタグを修正し、これらがエッジサーバにキャッシュされたオブジェクトのタグと一致しないようにすることができる。本明細書の実施形態はプレフィックスに限定されず、回復モジュールはタグを修正し、後続のバッチを実行するときにオブジェクトが不注意にリフレッシュされないようにすることができる。例えば、回復モジュールがタグの最後の値(サフィックス等)を変更し、最後の値がタグをバッチに分割するために使用される場合、後続のバッチを実行するときにこれらのオブジェクトが不必要にリフレッシュされる可能性がある。例えば、「0」の値で終わるタグを有するオブジェクトに対して強制リフレッシュを実行する場合、回復モジュールがこれらのタグを「1」の最後の値を持つように変更すると、最後の値が「1」のタグを有するオブジェクトの次のバッチを実行する場合、これらのオブジェクトは再度強制的にリフレッシュされる。最後の値(サフィックス等)を変更するのではなく、プレフィックスに値を追加することはこの問題を回避し、タグが引き続き唯一のものであることを確認する簡単な方法である。更に、新しいプレフィックスは、どのオブジェクトが更新され、どのオブジェクトが更新されていないか(即ち、短いタグを有するオブジェクト)を識別する簡単な方法である。
ブロック320で、回復モジュールは、選択されたバッチがいつ完了するか、即ち、そのバッチ内のオブジェクトが強制的にリフレッシュされたかを判断する。一実施形態では、回復モジュールは、オブジェクトのTTLが経過するまで待機する。例えば、TTLが1週間の場合、回復モジュールはブロック315を実行してから1週間が経過するまで待機する。これにより、エッジサーバがキャッシュされた全てのオブジェクトのリバリデーションプロセスを少なくとも1回実行し、一致しないタグを有するキャッシュされたオブジェクトがリフレッシュされたことを保証する。
他の実施形態では、回復モジュールは、リバリデーション要求に関連するネットワークトラフィックの量を監視することができ、そのトラフィックが通常の履歴平均に戻ると、全ての強制リフレッシュが実行されたと想定し、次のバッチに移動する。
他の実施形態では、回復モジュールは、リバリデーション要求で送信されるタグの値を評価することができる。リバリデーション要求のタグの予想される一部にリフレッシュを強制するためにタグに追加されるプレフィックス(例えば、「G1」等)が含まれていると、回復モジュールはバッチが終了したことを認識する。例えば、これが最初のバッチで、各々のバッチがCDNのコンテンツの6.25%を有していると仮定すると、リバリデーション要求のタグの6.25%がプレフィックスを持っている場合、回復モジュールはバッチが完了したことを認識する。第2のバッチの場合、リバリデーション要求のタグの約12.5%がプレフィックスを有していると、回復モジュールはバッチが完了したことを認識し、これが継続する。
更に、強制リフレッシュは、通常のリバリデーションプロセスと並行して実行できる。例えば、オリジンデータセンタのオブジェクトの1つがアップデートされ、タグが変更されると、アップデートされたオブジェクトがバッチの一部であるかどうかに関係なく、エッジサーバはタグが変更されたと識別し、更新されたオブジェクトをダウンロードすることができる。
現在のバッチが完了したと仮定すると、方法300はブロック325に進み、回復モジュールは、全てのバッチが完了したかを判断する。そうでない場合、方法はブロック330に進み、回復モジュールは別のバッチを選択し、今回新しいバッチのためにタグを修正することを除き、ブロック315を繰り返す。従って、エッジサーバはこのバッチのオブジェクトを強制的にリフレッシュするが、前のバッチのオブジェクトはリフレッシュされない(オリジンでアップデートされていないと仮定する)。
全てのバッチが強制的にリフレッシュされると、ブロック335で、回復モジュールは、キャッシュされたオブジェクトを強制的にリフレッシュすることなく、リバリデーションを実行し続けることができる。即ち、リバリデーションにより、オリジンでアップデートされた全てのオブジェクトを引き続きリフレッシュすることができる。特に、上述のように、この「通常の」リバリデーションプロセスは、強制リフレッシュと並行して行われる場合がある。
一実施形態では、回復モジュールは方法300を繰り返し、修正されたタグを元の値に戻すことができる。これにはバッチで別の強制的なリフレッシュを実行する必要があるが、CDNを元のタグを有する以前の状態に戻し、データが破損することがない。これは、システム管理者が、変更されたタグ(例えば、プレフィックスの追加)によって後で問題が発生する可能性があることを懸念している場合に適している。しかし、システム管理者は代わりに、変更されたタグを残して、時間の経過とともにオブジェクトがオリジンでアップデートされるときに、通常のリバリデーションプロセス中にこれらのタグを削除することを望む場合がある。
図5は、一実施形態による、バッチで強制リフレッシュを実行するための方法500のフローチャートである。図示されるように、方法500は図3のブロック310の後に開始し、回復モジュールがタグを複数のバッチに細分化する。ブロック505で、回復モジュールは、強制リフレッシュから除外されるべき、選択されたバッチ内の任意のオブジェクトを識別する。例えば、CDNがメディアストリーミングサービスの一部である場合、回復モジュールは、需要の高いメディアアセット(人気のあるショーやニューリリース等)のタグを修正しないで、CDNのサービス機能を妨げないで、これらのアセットに対するユーザのリクエストにサービスすることができる。他の例では、回復モジュールは、強制リフレッシュをトリガーしたイベントが発生した後にCDNに追加されたオブジェクトを除外することができる。例えば、回復モジュールが、1週間前のネットワーク停止によって一部のオブジェクトが破損したと判断した場合、回復モジュールは、その時点以降にCDNに追加されたオブジェクトに対して強制リフレッシュを実行しない場合がある。従って、回復モジュールは、CDN内のどのオブジェクトを強制的にリフレッシュするか、又はしないかを選択することができる。
一実施形態では、回復モジュールは、オブジェクトのパス又は名前を使用して、どのオブジェクトを強制リフレッシュから除外すべきかを選択することができる。例えば、特定の映画やテレビショーに対応するオブジェクトは、全て同じパス又は名前を共有することができる。オブジェクトのタグを修正する前に、回復モジュールは、そのパス又は名前がブロック505で識別されたものと一致するかを確認し、一致する場合はそのタグを修正しないことができる。
ブロック510で、回復モジュールは、除外されたオブジェクトに対応するタグを除いて、選択されたバッチ内の全てのタグを修正する。タグは、上述した手法のいずれかを使用して変更することができる。除外されたオブジェクトのタグは強制的に変更されないため、オブジェクトがオリジンで変更され、アップデートされたタグが与えられた場合にのみ、エッジサーバはリバリデーション中にそれらのオブジェクトの新しいコピーをダウンロードする。
ブロック515で、オブジェクトの選択されたバッチに対して強制リフレッシュを実行するとき、回復モジュールは強制リフレッシュを停止すべきかを決定することができる。例えば、回復モジュールは、オリジンデータセンタとエッジサーバ間のネットワークトラフィックを監視し、オリジンデータセンタのコンピューティング使用率を監視して、強制リフレッシュがネットワークリソースやオリジンデータセンタのローカルリソースを圧迫しているかを判断することができる。他の例では、システム管理者は回復モジュールを使用して、強制リフレッシュを停止することができる。
強制リフレッシュを停止する必要がある場合、ブロック520で、回復モジュールは、リバリデーション要求で送信された任意のタグを尊重する。即ち、回復モジュールは、オリジンデータセンタに対して、エッジサーバからの全てのリバリデーション要求に対して、タグが一致しない場合でも一致することを示すことで応答するように指示することができる。これによって、エッジサーバとオリジンは、更新されたコンテンツの通常のリバリデーションだけでなく、追加の強制リフレッシュも停止される。
ブロック525で、回復モジュール(又は、システム管理者)は、強制リフレッシュを再開するかを決定する。例えば、回復モジュールは、ネットワークの需要が減少した時間帯(早朝や深夜等)や、オリジンデータセンタで追加のコンピューティングリソースが起動された後に、強制リフレッシュを再開する場合ことができる。
他の例では、回復モジュールは選択されたバッチのサイズを縮小することができる。例えば、回復モジュールは、幾つかのオブジェクトのタグをそれらの元の値に戻し、即ち、ブロック510での変更をロールバックして、バッチのサイズを効果的に縮小することができる。しかし、エッジサーバは元のタグではなく変更されたタグを保存しているため、強制的に更新されたオブジェクトが再度更新される可能性がある。それにもかかわらず、回復モジュールがバッチの開始直後に強制リフレッシュを停止した場合、この戦略はバッチのサイズを縮小し、ネットワーク又はオリジンのリソースへの負担を軽減するために機能する可能性がある。
強制リフレッシュを再開した後、ブロック320で、回復モジュールは図3で説明した手法のいずれかを使用してバッチが完了したかを判断する。このバッチはブロック510で選択された元のバッチであってもよく、強制リフレッシュが停止された後に実行された縮小されたバッチであってよい。バッチが完了した場合、方法500は図3のブロック325に進み、全てのバッチが完了したかを判断し、完了していない場合、新しいバッチを選択する。現在のバッチが完了していない場合、方法500はブロック515に戻り、現在のバッチの強制リフレッシュを継続的に監視して、それを停止する必要があるかどうかを確認する。
要約すると、方法500は、特定のオブジェクトが強制的にリフレッシュされるのを除外し、ネットワーク又はコンピューティングの問題に応答して、現在のバッチを停止する技術を説明する。
本開示では、様々な実施形態が参照される。しかし、本開示は、記載された特定の実施形態に限定されないと理解すべきである。代わりに、異なる実施形態に関連するかどうかにかかわらず、以下のフィーチャ及び要素の任意の組み合わせが、本明細書で提供される開示を実装及び実践することが企図される。更に、実施形態の要素が「A及びBのうちの少なくとも1つ」の形式で記載される場合、要素Aのみを含む実施形態、要素Bのみを含む実施形態、及び要素A及びBを含む実施形態が各々企図されると理解される。更に、幾つかの実施形態は、他の可能な解決策又は従来技術に対して利点を達成することができるが、所与の実施形態によって特定の利点が達成されるかどうかは、本開示を限定するものではない。従って、本明細書に開示される態様、フィーチャ、実施形態、及び利点は単なる例示であり、特許請求の範囲に明示的に記載されている場合を除き、特許請求の範囲の要素又は制限とは解釈されない。同様に、「発明」への言及は、本明細書に開示された発明の主題の一般化として解釈されるべきではなく、特許請求の範囲に明示的に記載されている場合を除き、添付の特許請求の範囲の要素又は限定と解釈されない。
当業者には理解されるように、本明細書に記載の実施形態は、システム、方法、又はコンピュータプログラム製品として具現化することができる。従って、実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアとハードウェアの側面を組み合わせた実施形態の形態をとることがすることができ、これらは本明細書では「回路」、「モジュール」又は「システム」と称される。更に、本明細書に記載の実施形態は、コンピュータ可読プログラムコードが組み込まれた1つ以上のコンピュータ可読媒体に組み込まれたコンピュータプログラム製品の形態をとることができる。
コンピュータ可読媒体に具現化されたプログラムコードは、無線、有線、光ファイバケーブル、RF等、又はこれらの任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体を使用して送信することができる。
本開示の実施形態のオペレーションを実行するためのコンピュータプログラムコードは、1つ以上のプログラミング言語の任意の組み合わせにより記述することができ、これにはJava、Smalltalk、C++等のオブジェクト指向プログラミング言語と、「C」プログラミング言語又は類似のプログラミング言語のような従来の手続プログラミング言語が含まれる。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド―アロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ又はサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、これにはローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)が含まれ、接続は外部コンピュータ(例えば、インターネットサービスプロバイダを使用したインターネット経由)に対して行うことができる。
本開示の態様は、本開示の実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート又はブロック図を参照して、本明細書で説明される。フローチャート又はブロック図の各々のブロック、及びフローチャート又はブロック図のブロックの組み合わせは、コンピュータプログラム命令によって実装することができると理解される。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、又はマシンを製造する他のプログラム可能なデータ処理装置のプロセッサに提供され、これによって、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための手段を形成する。
また、これらのコンピュータプログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイスを特定の方法で機能させることができるコンピュータ可読媒体に格納することができ、これによって、コンピュータ可読媒体に格納された命令が製品を生成し、これはフローチャート又はブロック図のブロックで指定された機能/動作を実装する命令を含む。
また、コンピュータプログラム命令は、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイスにロードされ、一連の動作ステップがコンピュータ、他のプログラム可能な装置、又は他のデバイス上で実行され、コンピュータによって実行されるプロセスを形成する。これによって、コンピュータ、他のプログラム可能なデータ処理装置、又は他のデバイス上で実行される命令は、フローチャート又はブロックのブロックで指定された機能/動作を実装するためのプロセスを提供する。
図面中のフローチーチャート及びブロック図は、本開示の様々な実施形態によるシステム、方法、及びコンピュータプログラム製品の可能な実装のアーキテクチャ、機能、及び動作を示す。この点に関して、フローチャート又はブロック図の各々のブロックは、、モジュール、セグメント、又はコードの一部を表すことがすることができ、これは指定された論理機能を実装するための1つ以上の実行可能な命令を含む。幾つかの代替実施形態では、ブロックに記載された機能が、図に記載された順序とは異なる場合があることに留意すべきである。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行される場合がある。また、関連する機能に応じて、ブロックが逆の順序又は順不同で実行される場合もある。ブロック図又はフローチャートの各々のブロック、及びブロック図又はフローチャートのブロックの組み合わせは、指定された機能又は行為を実行する専用ハードウェアベースのシステム、又は専用ハードウェアとコンピュータインストラクションの組み合わせによって実装することができることに留意すべである。
上記は本開示の実施形態を対象としているが、本開示の他の及び更なる実施形態は、その基本的範囲から逸脱することなく創作することができ、その範囲は、以下の特許請求の範囲に基づいて定められる。

Claims (20)

  1. コンテンツデリバリネットワーク(CDN)内のオブジェクトに対応するタグを細分化して、複数のバッチを形成する工程と、
    複数のバッチの第1のバッチのタグを修正する工程であって、修正されたタグはCDNのオリジンデータセンタに格納される行程と、
    CDNのエッジサーバに関連するリバリデーションプロセスの一部として、第1のバッチ内のオブジェクトの強制リフレッシュを実行する工程と、
    最初のバッチが完了したと判断すると、複数のバッチの第2のバッチのタグを選択及び修正して、第2のバッチ内のオブジェクトの強制リフレッシュを実行する工程を含む方法。
  2. 第2のバッチのタグが変更された後、CDNのエッジサーバによって開始されたリバリデーションプロセスを使用して、第2のバッチの強制リフレッシュを実行する、請求項1に記載の方法。
  3. オブジェクトのコピーがオリジンデータセンタとエッジサーバの両方に格納される、請求項1に記載の方法。
  4. タグを細分化する前に、エッジサーバに格納されているオブジェクトのコピーが、オリジンデータセンタに格納されているオブジェクトの対応するコピーと一致しなくなる原因となる潜在的な破損を特定する工程を有する、請求項3に記載の方法。
  5. リバリデーションプロセスは、
    オリジンデータセンタでエッジサーバからの要求を受信し、エッジサーバに格納されているオブジェクトのコピーのタグが、オリジンデータセンタに格納されているオブジェクトのコピーの対応するタグと一致するかを判断する工程と、
    エッジサーバのタグがオリジンデータセンタのタグと一致しないと判断すると、エッジサーバに格納されているオブジェクトのコピーをオリジンデータセンタに格納されているオブジェクトのコピーでリフレッシュする工程を有する、請求項3に記載の方法。
  6. タグを細分化することは、
    異なる最下位ビット値又は異なる最上位ビット値の1つを有するタグを、複数のバッチの異なる1つに割り当てる工程を有する、請求項1に記載の方法。
  7. タグを修正する工程が、
    第1のバッチの各々のタグに新しいプレフィックス又はサフィックスを追加する工程を有し、エッジサーバに格納されている対応するタグは新しいプレフィックス又はサフィックスを有しない、請求項1に記載の方法。
  8. オブジェクトに対応するパス又は名前に基づいて、第1のバッチ内の少なくとも1つのオブジェクトを識別し、強制リフレッシュから除外する工程を有し、少なくとも1つのオブジェクトのタグは変更されない、請求項1に記載の方法。
  9. 第1のバッチが完了する前に強制リフレッシュを停止することを決定する工程と、
    オリジンデータセンタで受信したリバリデーション要求のタグを尊重し、強制的なリフレッシュを停止する工程を有する、請求項1に記載の方法。
  10. 1つ以上のコンピュータプロセッサのオペレーションによって実行されると、オペレーションを操作を実行するコンピュータプログラムコードを含む非一時的なコンピュータ可読媒体であって、オペレーションは、
    コンテンツデリバリネットワーク(CDN)内のオブジェクトに対応するタグを細分化して、複数のバッチを形成する工程と、
    複数のバッチの第1のバッチのタグを修正する工程であって、修正されたタグはCDNのオリジンデータセンタに格納される行程と、
    CDNのエッジサーバにより開始されたリバリデーションプロセスの一部として、第1のバッチ内のオブジェクトの強制リフレッシュを実行する工程と、
    最初のバッチが完了したと判断すると、複数のバッチの第2のバッチのタグを選択及び修正して、第2のバッチ内のオブジェクトの強制リフレッシュを実行する工程を含む、コンピュータ可読媒体。
  11. オペレーションは、第2のバッチのタグが修正された後、CDNのエッジサーバによって開始されたリバリデーションプロセスを使用して、第2のバッチの強制リフレッシュを実行する工程を含む、請求項10に記載の非一時的なコンピュータ可読媒体。
  12. オブジェクトのコピーがオリジンデータセンタとエッジサーバの両方に格納される、請求項10に記載の非一時的なコンピュータ可読媒体。
  13. オペレーションは、タグを細分化する前に、エッジサーバに格納されているオブジェクトのコピーが、オリジンデータセンタに格納されているオブジェクトの対応するコピーと一致しなくなる原因となる潜在的な破損を特定する工程を有する、請求項12に記載の非一時的なコンピュータ可読媒体。
  14. タグを細分化することは、
    異なる最下位ビット値又は異なる最上位ビット値の1つを有するタグを、複数のバッチの異なる1つに割り当てる工程を有する、請求項10に記載の非一時的なコンピュータ可読媒体。
  15. タグを修正する工程は、
    第1のバッチの各々のタグに新しいプレフィックス又はサフィックスを追加する工程を有し、エッジサーバに格納されている対応するタグは新しいプレフィックス又はサフィックスを有しない、請求項10に記載の非一時的なコンピュータ可読媒体。
  16. システムであって、
    プロセッサと、
    1つ以上のコンピュータプロセッサのオペレーションによって実行されると、以下を含むオペレーションを実行するコンピュータプログラムコードを含むメモリであって、オペレーショは、
    コンテンツデリバリネットワーク(CDN)内のオブジェクトに対応するタグを細分化して、複数のバッチを形成する工程と、
    複数のバッチの第1のバッチのタグを修正する工程であって、修正されたタグはCDNのオリジンデータセンタに格納される行程と、
    CDNのエッジサーバにより開始されたリバリデーションプロセスの一部として、第1のバッチ内のオブジェクトの強制リフレッシュを実行する工程と、
    最初のバッチが完了したと判断すると、複数のバッチの第2のバッチのタグを選択及び修正して、第2のバッチのオブジェクトの強制リフレッシュを実行する工程を含む、システム。
  17. 第2のバッチのタグが変更された後、CDNのエッジサーバによって開始されたリバリデーションプロセスを使用して、第2のバッチの強制リフレッシュを実行する、請求項16に記載のシステム。
  18. オブジェクトのコピーがオリジンデータセンタとエッジサーバの両方に格納され、
    オペレーションは、タグを細分化する前に、エッジサーバに格納されているオブジェクトのコピーが、オリジンデータセンタに格納されているオブジェクトの対応するコピーと一致しなくなる原因となる潜在的な破損を特定する工程を有する、請求項17に記載のシステム。
  19. タグを細分化する工程は、
    異なる最下位ビット値又は異なる最上位ビット値の1つを有するタグを、複数のバッチの異なる1つに割り当てる工程を有する、請求項16に記載のシステム。
  20. タグを修正する工程は、
    第1のバッチの各々のタグに新しいプレフィックス又はサフィックスを追加する工程を有し、エッジサーバに格納されている対応するタグは新しいプレフィックス又はサフィックスを有しない、請求項16に記載のシステム。
JP2022176023A 2021-11-04 2022-11-02 コンテンツ配信ネットワークでのプログレッシブオブジェクトのリフレッシュ Active JP7467569B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/518,764 2021-11-04
US17/518,764 US11438433B1 (en) 2021-11-04 2021-11-04 Progressive object refreshes in content delivery networks

Publications (2)

Publication Number Publication Date
JP2023070133A JP2023070133A (ja) 2023-05-18
JP7467569B2 true JP7467569B2 (ja) 2024-04-15

Family

ID=83150002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022176023A Active JP7467569B2 (ja) 2021-11-04 2022-11-02 コンテンツ配信ネットワークでのプログレッシブオブジェクトのリフレッシュ

Country Status (4)

Country Link
US (2) US11438433B1 (ja)
EP (1) EP4178180A1 (ja)
JP (1) JP7467569B2 (ja)
CN (1) CN116074382A (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015201178A (ja) 2014-04-07 2015-11-12 パロ アルト リサーチ センター インコーポレイテッド 等価一致ネットワークネームを使ったコレクション同期化
CN113407876A (zh) 2021-06-18 2021-09-17 杭州安恒信息技术股份有限公司 一种网页刷新方法、网页刷新系统及相关装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725602B2 (en) * 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
US9208104B2 (en) 2008-08-28 2015-12-08 Citrix Systems, Inc. Content replacement and refresh policy implementation for a content distribution network
JP5471090B2 (ja) * 2008-09-03 2014-04-16 セイコーエプソン株式会社 集積回路装置及び電子機器
US8510807B1 (en) * 2011-08-16 2013-08-13 Edgecast Networks, Inc. Real-time granular statistical reporting for distributed platforms
US10268991B1 (en) 2011-09-26 2019-04-23 Amazon Technologies, Inc. Dynamic selection across cache
US9779124B2 (en) * 2012-08-27 2017-10-03 Lg Electronics Inc. Mobile terminal and control method thereof
US9509764B1 (en) * 2014-11-21 2016-11-29 Instart Logic, Inc. Updating cached web content
US11074275B2 (en) * 2019-04-09 2021-07-27 International Business Machines Corporation Automatically propagating tagging of content items in a content management system environment
US11086960B2 (en) * 2019-07-17 2021-08-10 Netflix, Inc. Extension for targeted invalidation of cached assets
CN112448979B (zh) 2019-08-30 2022-09-13 贵州白山云科技股份有限公司 一种缓存信息的更新方法、装置及介质
CA3208658A1 (en) * 2021-01-19 2022-07-28 Level 3 Communications, Llc Tiered updating of configuration data in a content delivery network
US11218561B1 (en) * 2021-03-09 2022-01-04 Wipro Limited Method and system for managing cache data in a network through edge nodes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015201178A (ja) 2014-04-07 2015-11-12 パロ アルト リサーチ センター インコーポレイテッド 等価一致ネットワークネームを使ったコレクション同期化
CN113407876A (zh) 2021-06-18 2021-09-17 杭州安恒信息技术股份有限公司 一种网页刷新方法、网页刷新系统及相关装置

Also Published As

Publication number Publication date
JP2023070133A (ja) 2023-05-18
US20230137435A1 (en) 2023-05-04
US11438433B1 (en) 2022-09-06
US11882197B2 (en) 2024-01-23
CN116074382A (zh) 2023-05-05
EP4178180A1 (en) 2023-05-10

Similar Documents

Publication Publication Date Title
US10956279B2 (en) Managing big data on document based NoSQL databases
US8930320B2 (en) Distributed computing backup and recovery system
US10803015B2 (en) Caching system and method
US9436556B2 (en) Customizable storage system for virtual databases
US9471585B1 (en) Decentralized de-duplication techniques for largescale data streams
US8127174B1 (en) Method and apparatus for performing transparent in-memory checkpointing
US10831741B2 (en) Log-shipping data replication with early log record fetching
US9935655B2 (en) Reading of distributed erasure-coded data from an enterprise object storage system
US20140181035A1 (en) Data management method and information processing apparatus
US9262323B1 (en) Replication in distributed caching cluster
US9703853B2 (en) System and method for supporting partition level journaling for synchronizing data in a distributed data grid
US20100174863A1 (en) System for providing scalable in-memory caching for a distributed database
US20140164329A1 (en) Dynamically Varying the Number of Database Replicas
JP2010508581A (ja) ウェブベースアプリケーションのオフライン実行
CN113168404B (zh) 用于在分布式数据库系统中复制数据的系统和方法
CN111046310B (zh) 页面处理方法、装置、服务器及计算机可读存储介质
US9356793B1 (en) System and method for managing load on a downstream server in a distributed storage system
US10298680B1 (en) Dynamic throughput ingestion of backup sources
JP7467569B2 (ja) コンテンツ配信ネットワークでのプログレッシブオブジェクトのリフレッシュ
US8359601B2 (en) Data processing method, cluster system, and data processing program
US11093290B1 (en) Backup server resource-aware discovery of client application resources
JP4563412B2 (ja) ソフトウェア複製
US20150088826A1 (en) Enhanced Performance for Data Duplication
US20150212898A1 (en) Data migration method and systems
CN111753233B (zh) 第三方h5页面加载的方法、装置及计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240403

R150 Certificate of patent or registration of utility model

Ref document number: 7467569

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150