(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】レイテンシ制約下でのキャッシュのクラスタに対する効率的で柔軟な負荷分散
(51)【国際特許分類】
G06F 16/957 20190101AFI20231219BHJP
H04L 67/568 20220101ALI20231219BHJP
G06F 16/172 20190101ALI20231219BHJP
【FI】
G06F16/957
H04L67/568
G06F16/172
(21)【出願番号】P 2021539372
(86)(22)【出願日】2020-01-28
(86)【国際出願番号】 US2020015452
(87)【国際公開番号】W WO2020160017
(87)【国際公開日】2020-08-06
【審査請求日】2022-05-02
(32)【優先日】2019-01-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508041127
【氏名又は名称】シスコ テクノロジー,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100140431
【氏名又は名称】大石 幸雄
(72)【発明者】
【氏名】エンゲハルト,マルセル ポール ソステネ
(72)【発明者】
【氏名】デムソー,ヨアン
(72)【発明者】
【氏名】フィスター,ピエール
(72)【発明者】
【氏名】タウンズリー,ウィリアム マーク
(72)【発明者】
【氏名】ヴィンク,エリック
【審査官】松尾 真人
(56)【参考文献】
【文献】米国特許出願公開第2017/0195447(US,A1)
【文献】米国特許出願公開第2002/0198953(US,A1)
【文献】米国特許出願公開第2018/0131580(US,A1)
【文献】特開2014-160343(JP,A)
【文献】特開2000-187609(JP,A)
【文献】特表2001-526814(JP,A)
【文献】米国特許出願公開第2013/0204961(US,A1)
【文献】特表2017-536606(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
H04L 67/568
(57)【特許請求の範囲】
【請求項1】
要求されたコンテンツのコンテンツ識別子を含むコンテンツ要求を、第1のメタキャッシュを含む第1のルータが受信することと、
前記第1のルータが、前記コンテンツ識別子が前記第1のメタキャッシュに存在しないことを決定すると、オリジンサーバに対して前記コンテンツ要求をリダイレクトすることと、
前記第1のルータが、少なくとも前記コンテンツ識別子が前記第1のメタキャッシュ内の第1の閾値インデックス値よりも上のインデックス位置に存在すると、前記第1のメタキャッシュに関連付けられた第1のコンテンツキャッシュから前記要求されたコンテンツをサービスすることと、
前記第1のルータが、前記コンテンツ識別子が前記第1のメタキャッシュ内の第1の閾値インデックス値よりも下のインデックス位置に存在することを決定すると、第2のメタキャッシュを含む第2のルータに対して前記コンテンツ要求をリダイレクトすることと、
前記第2のルータが、前記リダイレクトされたコンテンツを受信すると、
少なくとも前記コンテンツ識別子が前記第2のメタキャッシュ内の第2の閾値インデックス値よりも上のインデックス位置に存在することに応じて、前記第2のメタキャッシュに関連付けられた第2のコンテンツキャッシュから前記要求されたコンテンツを直接サービスすることと、
前記コンテンツ識別子が前記第2のメタキャッシュ内の第2の閾値インデックス値よりも下のインデックス位置に存在することを決定することに応じて、前記オリジンサーバに対して前記コンテンツ要求をリダイレクトすることと、を含む、方法。
【請求項2】
前記第1のルータが、前記コンテンツ識別子が前記第1の閾値インデックス値よりも上のインデックス位置であることに応じて、前記オリジンサーバに代わって前記第1のコンテンツキャッシュから前記要求されたコンテンツをプロキシサービスすることをさらに含む、請求項1に記載の方法。
【請求項3】
前記第1のルータが、前記コンテンツ識別子が前記第1の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第1のコンテンツキャッシュに存在しないことに応じて、前記第1のコンテンツキャッシュに前記要求されたコンテンツを追加することをさらに含む、請求項
1に記載の方法。
【請求項4】
前記第2のルータが、前記リダイレクトされたコンテンツ要求を受信すると、前記コンテンツ識別子が前記第2の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第2のコンテンツキャッシュに存在しないことに応じて、前記オリジンサーバに代わって前記第2のコンテンツキャッシュから前記要求されたコンテンツをプロキシサービスすることをさらに含む、請求項
1に記載の方法。
【請求項5】
前記第2のルータが、前記リダイレクトされたコンテンツ要求を受信すると、前記コンテンツ識別子が前記第2の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第2のコンテンツキャッシュに存在しないことに応じて、前記第2のコンテンツキャッシュに対して前記要求されたコンテンツを追加することをさらに含む、請求項
1に記載の方法。
【請求項6】
前記第1のルータが、前記コンテンツ識別子が前記第1のコンテンツキャッシュに存在しないことを決定すると、前記第1のメタキャッシュの上部に前記コンテンツ識別子を挿入し、及び/又は、前記第2のルータが、前記コンテンツ識別子が前記第2のコンテンツキャッシュに存在しないことを決定すると、前記第2のメタキャッシュの上部に前記コンテンツ識別子を挿入することをさらに含む、請求項1に記載の方法。
【請求項7】
前記第1のルータが、キャッシュヒット率と1つ以上の他のネットワーク性能メトリックとの間のトレードオフを最適化するために、比例積分(PI)コントローラを使用して、前記第1の閾値
インデックス値を調整することをさらに含む、請求項
1に記載の方法。
【請求項8】
記憶された命令を備える少なくとも1つのコンピュータ可読記憶媒体であって、前記命令が、1つ以上のプロセッサによって実行されたとき、前記1つ以上のプロセッサに、
要求されたコンテンツのコンテンツ識別子を含むコンテンツ要求を、第1のメタキャッシュを含む第1のルータが受信することと、
前記コンテンツ識別子が前記第1のメタキャッシュに存在しないことを決定すると、オリジンサーバに対して前記コンテンツ要求をリダイレクトすることと、
少なくとも前記コンテンツ識別子が前記第1のメタキャッシュ内の第1の閾値インデックス値よりも上のインデックス位置に存在すると、前記第1のメタキャッシュに関連付けられた第1のコンテンツキャッシュから前記要求されたコンテンツをサービスすることと、
前記コンテンツ識別子が前記第1のメタキャッシュ内の第1の閾値インデックス値よりも下のインデックス位置に存在することを決定すると、第2のメタキャッシュを含む第2のルータに対して前記コンテンツ要求をリダイレクトすることと、
前記第2のルータが、前記リダイレクトされたコンテンツを受信すると、
少なくとも前記コンテンツ識別子が前記第2のメタキャッシュ内の第2の閾値インデックス値よりも上のインデックス位置に存在することに応じて、前記第2のメタキャッシュに関連付けられた第2のコンテンツキャッシュから前記要求されたコンテンツを直接サービスすることと、
前記コンテンツ識別子が前記第2のメタキャッシュ内の第2の閾値インデックス値よりも下のインデックス位置に存在することを決定することに応じて、前記オリジンサーバに対して前記コンテンツ要求をリダイレクトすること、を行わせる、コンピュータ可読記憶媒体。
【請求項9】
前記コンテンツ識別子が前記第1の閾値インデックス値よりも上のインデックス位置であることに応じて、前記オリジンサーバに代わって前記第1のコンテンツキャッシュから前記要求されたコンテンツをプロキシサービスすること、をさらに行わせる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項10】
前記コンテンツ識別子が前記第1の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第1のコンテンツキャッシュに存在しないことに応じて、前記第1のコンテンツキャッシュに前記要求されたコンテンツを追加することをさらに行わせる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項11】
前記第2のルータが、前記リダイレクトされたコンテンツ要求を受信すると、前記コンテンツ識別子が前記第2の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第2のコンテンツキャッシュに存在しないことに応じて、前記オリジンサーバに代わって前記第2のコンテンツキャッシュから前記要求されたコンテンツをプロキシサービスすることをさらに行わせる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項12】
前記第2のルータが、前記リダイレクトされたコンテンツ要求を受信すると、前記コンテンツ識別子が前記第2の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第2のコンテンツキャッシュに存在しないことに応じて、前記第2のコンテンツキャッシュに対して前記要求されたコンテンツを追加することをさらに行わせる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項13】
前記第1のルータが、前記コンテンツ識別子が前記第1のコンテンツキャッシュに存在しないことを決定すると、前記第1のメタキャッシュの上部に前記コンテンツ識別子を挿入し、及び/又は、前記第2のルータが、前記コンテンツ識別子が前記第2のコンテンツキャッシュに存在しないことを決定すると、前記第2のメタキャッシュの上部に前記コンテンツ識別子を挿入することをさらに行わせる、請求項8に記載のコンピュータ可読記憶媒体。
【請求項14】
キャッシュヒット率と1つ以上の他のネットワーク性能メトリックとの間のトレードオフを最適化するために、比例積分(PI)コントローラを使用して、前記第1の閾値インデックス値を調整することをさらに行わせる、請求項
8に記載のコンピュータ可読記憶媒体。
【請求項15】
システムであって、
プロセッサと、
前記プロセッサと協働して、
要求されたコンテンツのコンテンツ識別子を含むコンテンツ要求を、第1のメタキャッシュを含む第1のルータが受信することと、
前記第1のルータが、前記コンテンツ識別子が前記第1のメタキャッシュに存在しないことを決定すると、オリジンサーバに対して前記コンテンツ要求をリダイレクトすることと、
前記第1のルータが、少なくとも前記コンテンツ識別子が前記第1のメタキャッシュ内の第1の閾値インデックス値よりも上のインデックス位置に存在すると、前記第1のメタキャッシュに関連付けられた第1のコンテンツキャッシュから前記要求されたコンテンツをサービスすることと、
前記第1のルータが、前記コンテンツ識別子が前記第1のメタキャッシュ内の第1の閾値インデックス値よりも下のインデックス位置に存在することを決定すると、第2のメタキャッシュを含む第2のルータに対して前記コンテンツ要求をリダイレクトすることと、
前記第2のルータが、前記リダイレクトされたコンテンツを受信すると、
少なくとも前記コンテンツ識別子が前記第2のメタキャッシュ内の第2の閾値インデックス値よりも上のインデックス位置に存在することに応じて、前記第2のメタキャッシュに関連付けられた第2のコンテンツキャッシュから前記要求されたコンテンツを直接サービスすることと、
前記コンテンツ識別子が前記第2のメタキャッシュ内の第2の閾値インデックス値よりも下のインデックス位置に存在することを決定することに応じて、前記オリジンサーバに対して前記コンテンツ要求をリダイレクトすることと、を含む動作を前記システムに実行させるためのプログラムされた命令を記憶するメモリと、を備える
、システム。
【請求項16】
前記動作は、前記コンテンツ識別子が前記第1の閾値インデックス値よりも上のインデックス位置であることに応じて、前記オリジンサーバに代わって前記第1のコンテンツキャッシュから前記要求されたコンテンツをプロキシサービスすることをさらに含む、請求項15に記載のシステム。
【請求項17】
前記動作は、前記コンテンツ識別子が前記第1の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第1のコンテンツキャッシュに存在しないことに応じて、前記第1のコンテンツキャッシュに前記要求されたコンテンツを追加することをさらに含む、請求項15に記載のシステム。
【請求項18】
前記動作は、前記第2のルータが、前記リダイレクトされたコンテンツ要求を受信すると、前記コンテンツ識別子が前記第2の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第2のコンテンツキャッシュに存在しないことに応じて、前記オリジンサーバに代わって前記第2のコンテンツキャッシュから前記要求されたコンテンツをプロキシサービスすることをさらに含む、請求項15に記載のシステム。
【請求項19】
前記動作は、前記第2のルータが、前記リダイレクトされたコンテンツ要求を受信すると、前記コンテンツ識別子が前記第2の閾値インデックス値よりも上のインデックス位置であり、かつ、前記要求されたコンテンツが前記第2のコンテンツキャッシュに存在しないことに応じて、前記第2のコンテンツキャッシュに対して前記要求されたコンテンツを追加することをさらに行わせる、請求項15に記載のシステム。
【請求項20】
前記動作は、前記第1のルータが、前記コンテンツ識別子が前記第1のコンテンツキャッシュに存在しないことを決定すると、前記第1のメタキャッシュの上部に前記コンテンツ識別子を挿入し、及び/又は、前記第2のルータが、前記コンテンツ識別子が前記第2のコンテンツキャッシュに存在しないことを決定すると、前記第2のメタキャッシュの上部に前記コンテンツ識別子を挿入することをさらに含む、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2019年1月29日に出願された「EFFICIENT AND FLEXIBLE LOAD-BALANCING FOR CLUSTERS OF CACHES UNDER LATENCY CONSTRAINT」と題する米国非仮特許出願第16/261,462号の利益および優先権を主張し、この内容は、本明細書によって、その全体が参照により明示的に組み込まれる。
【0002】
本技術は、ネットワーク内キャッシングシステムを実装するためのシステムおよび方法に関係する。より具体的には、それは、ネットワーク内キャッシュのクラスタのヒット率を増加させることにより、コンテンツ配信ネットワークのレイテンシおよびネットワーク負荷を低減することに向けられている。
【背景技術】
【0003】
ビデオオンデマンド(VoD)およびリニアビデオストリーミングサービスに関連するインターネットトラフィックは、2021年までにおよそ74TB/sに達すると予測されており、これはインターネットトラフィック全体の82%に相当する。そのため、ネットワークのスケーリングを容易にすると同時に、クライアントにより良いエクスペリエンスの品質を提供するために、コンテンツ配信ネットワーク(CDN)が展開されている。しかしながら、ビデオトラフィックの規模が非常に大きく、エクスペリエンスの品質に関する期待がますます高まっているため、コンテンツ配信ネットワークにとって厳しいエンジニアリング上の課題が生じている。このような状況では、ネットワークのスケーラビリティは、従来のコンテンツ配信ネットワーク(CDN)が需要に対応するのに苦労しているように、ビデオ配信にとって重大な問題になる。これらの課題の中でも重大なものは、関連するリソース(ネットワーク、ストレージ、および計算)を利用する効率を高めることを伴う。ネットワーク負荷の増加に応じた処理ハードウェアの単純なスケールアップでは、多くの場合、コンテンツユーザに必要なエクスペリエンスの品質を満たすには不十分であるため、これは本質的な改善である。
【図面の簡単な説明】
【0004】
本開示の上記および他の利点および特徴を得ることができる様式を説明するために、添付の図面に示されるその特定の実施形態を参照することにより、上記で簡単に説明した原理のより具体的な説明を行う。これらの図面が本開示の例示的な実施形態のみを描写し、したがって、その範囲を限定すると見なされるべきではないことを理解して、本明細書の原理は、以下の添付の図面を使用することにより、追加の特定事項および詳細とともに記載および説明される。
【0005】
【
図1】本技術のいくつかの実施形態による、ネットワークロケータ部分およびコンテンツ識別子部分を含む修正されたIPv6アドレスフォーマットを示す。
【
図2】本技術のいくつかの実施形態による、改善されたキャッシュサーバヒット率を備えたコンテンツ配信システムを示す。
【
図3】本技術のいくつかの実施形態による、改善されたキャッシュサーバヒット率を備えたコンテンツ配信システムを示す。
【
図4】本技術のいくつかの実施形態による、コンテンツ配信ネットワークにおけるコンテンツ要求の人気度ベースのフィルタリングを最適化するために使用されるPIコントローラを示す。
【
図5】本技術のいくつかの実施形態による、Yaksha導出コントローラの受け入れ確率出力の関数として人気度ベースのフィルタリング基準を計算するための流れ図を示す。
【
図6】本技術のいくつかの実施形態による、例示的なネットワークデバイスを示す。
【
図7】本技術のいくつかの実施形態による、コンピューティングデバイスの例示的なアーキテクチャを示す。
【
図8】本技術のいくつかの実施形態による、例示的なコンテンツ要求フィルタリングプロセスのフローチャートを示す。
【発明を実施するための形態】
【0006】
例示的な実施形態の説明
本開示の様々な例示的な実施形態について、以下で詳細に論じられる。特定の実装形態について考察するが、これは例証のみを目的として行われることを理解されたい。関連技術の当業者は、本開示の趣旨および範囲から離れることなく、他の構成要素および構成を使用することができることを認識するであろう。したがって、以下の説明および図面は例示的なものであり、限定的なものとして解釈されるべきではない。本開示の完全な理解を提供するために、多数の特定の詳細が説明される。しかしながら、特定の例において、説明を曖昧にすることを避けるために、周知の内容、つまり従来技術の内容は説明されていない。本開示における一実施形態または実施形態への参照は、同一の施形態または任意の実施形態への参照であり得、このような参照は、実施形態の少なくとも1つを意味する。
【0007】
「一実施形態」または「実施形態」への参照は、実施形態に関連して記載された特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書の様々な場所における「一実施形態において」という語句の出現は、必ずしもすべてが同一の実施形態を指すわけではなく、他の実施形態を相互に排除する別個のまたは代替の実施形態でもない。さらに、いくつかの実施形態によって示され、他の実施形態によって示されない場合もある、様々な特徴が記載されている。
【0008】
本明細書で使用される用語は、一般に、本技術において、本開示の文脈内で、および各用語が使用される特定の文脈において、それらの通常の意味を有する。代替の言語および同義語は、本明細書で論じられる用語のいずれか1つ以上に使用されてもよく、用語が本明細書で詳述または論じられるかどうかに特別な意味を置くべきではない。場合によっては、特定の用語に対する同義語が提供される。1つ以上の同義語の詳述は、他の同義語の使用を排除するものではない。本明細書で論じられる任意の用語の例を含む本明細書の任意の場所での例の使用は、例示的なものにすぎず、本開示または任意の例示的な用語の範囲および意味をさらに限定することを意図するものではない。同様に、本開示は、本明細書に示される様々な実施形態に限定されない。
【0009】
本開示の範囲を限定することを意図することなく、本開示の実施形態による機器、装置、方法、およびそれらに関連する結果の例を以下に示す。タイトルまたはサブタイトルは、読者の便宜のために例で使用される場合があり、開示の範囲を制限するものではないことに留意されたい。別段の定義がない限り、本明細書で使用される技術的および科学的用語は、本開示が関係する当業者によって一般的に理解される意味を有する。矛盾する場合は、定義を含む本明細書が優先される。
【0010】
本開示の追加の特徴および利点は、以下の説明に記載され、一部は説明から明らかであるか、または本明細書に開示された原理の実践によって学ぶことができる。本開示の特徴および利点は、添付の特許請求の範囲で特に指摘されている機器および組み合わせによって実現および取得することができる。本開示のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または本明細書に記載の原理の実践によって学ぶことができる。
【0011】
概要
ネットワーク内キャッシュサーバのクラスタのヒット率性能およびサービスレベル応答時間を最適化するためのシステム、方法、およびコンピュータ可読媒体が開示されている。開示された技術の態様は、コンテンツ要求トラフィックのマルチレベルの人気度評価に基づくフィルタリングスキームに向けられている。本技術のいくつかの実施形態では、コントローラで調整された閾値パラメータが、人気のコンテンツと半人気のコンテンツとを区別するために使用される。
【0012】
本技術の一態様では、方法は、エッジデバイスにおいて、複数の最後に要求されたコンテンツ識別子を含むメタキャッシュを、人気の部分および半人気の部分に分割するための閾値パラメータを指定することと、適切な転送/ルーティングプロトコルを使用して、メタキャッシュの半人気の部分内のコンテンツ識別子に対して生成された第1のキャッシュミス要求を、1つ以上の追加のキャッシュサーバにリダイレクトすることと、適切な転送/ルーティングプロトコルを使用して、メタキャッシュの半人気の部分内のコンテンツ識別子に対して1つ以上の追加のキャッシュサーバによって生成された第2のキャッシュミス要求を、要求されたコンテンツをホストしているオリジンサーバにリダイレクトすることと、を含む。本技術のいくつかの実施形態は、キャッシュヒット率と1つ以上の他のネットワーク性能メトリックとの間のトレードオフを最適化するために、比例積分コントローラを使用して、閾値パラメータの値を調整するステップをさらに含む。
【0013】
したがって、本技術の実施形態は、コンテンツ配信ネットワークにおけるエッジキャッシュサーバのヒット率を高めるためのコンテンツ要求のマルチレベル人気度ベースのフィルタリングを提供する。いくつかの実施形態では、これは、メタキャッシュエントリを人気のカテゴリと半人気のカテゴリに分割するための閾値パラメータとともに、最近最も要求が多かったいくつかのコンテンツに対応するコンテンツ識別子のメタキャッシュを維持することによって達成される。例えば、半人気として識別されたコンテンツは、人気と見なされたコンテンツとは対照的に、かつ不人気と見なされたコンテンツと同様に、異なるキャッシュミス転送ポリシーに関連付けられる。前述の特徴をさらに拡張するために、メタキャッシュの半人気の部分内で識別されたコンテンツに対するキャッシュミス要求の場合、第1の受信キャッシュサーバは、オリジンサーバに要求を直接転送するのではなく、疑似ランダムに選択された可能性のある別のキャッシュサーバに要求をリダイレクトする場合がある。
【0014】
本技術の一態様では、システムは、1つ以上のエッジキャッシュサーバに通信可能に結合された1つ以上のコンテンツ要求フィルタリングユニットを含み、各コンテンツ要求フィルタリングユニットは、閾値インデックス全体にわたって人気の部分および半人気の部分に分割された複数の最近最も要求が多かったコンテンツ識別子のメタキャッシュをさらに備えることができ、半人気の部分内のコンテンツ識別子についての要求は、半人気のコンテンツ要求が全体にわたって順次誘導される複数のキャッシュサーバの各々からのキャッシュミスの場合にのみ、オリジンコンテンツサーバに転送される。本技術のいくつかの実施形態では、システムは、メタキャッシュの閾値パラメータを調整して、それによって、キャッシュヒット率と1つ以上の他の性能属性との間のトレードオフを最適化するように動作する1つ以上のPIコントローラをさらに備えることができる。
【0015】
したがって、最近最も使用されたコンテンツ識別子のメタキャッシュを備えるコンテンツフィルタリング/ルーティングユニットは、前述のコンテンツの人気度レベルに基づいて、コンテンツについての要求に、異なるキャッシュミス転送ポリシーを適用することができる。いくつかの実施形態では、本技術は、最近最も使用されたコンテンツ識別子のメタキャッシュ内の人気のコンテンツと半人気のコンテンツとを区別するための閾値パラメータを含む。閾値パラメータは、いくつかの実施形態によれば、自己調整比例積分コントローラを使用して調整することができる。例えば、メタキャッシュの半人気の部分内で識別されたコンテンツについての要求は、最初のキャッシュサーバからの初期キャッシュミスに遭遇した後、1つ以上の追加のキャッシュサーバにリダイレクトされる場合がある。したがって、本技術の実施形態は、コンテンツ要求をオリジンコンテンツサーバにリダイレクトする前に、要求されたコンテンツに対してより完全なキャッシュ検索を実施することを可能にする。
【0016】
多層ビデオコンテンツ配信ネットワーク(CDN)アーキテクチャは、概して、(i)ビデオチャンクを要求および消費するクライアント、(ii)要求されたコンテンツを提供するオリジンサーバ、ならびに(iii)クライアントのより近くに(すなわち、ISPネットワーク内に)あり、オリジンサーバに対する負荷を低減するために最も人気のあるビデオチャンクを記憶するエッジキャッシュという、3つの主要構成要素からなる。コンテンツ配信ネットワーク(CDN)が満たすべき重要な特性は、インフラストラクチャのコストを最小限に抑えながら、小さいレイテンシでコンテンツをサービスすることである。大きいインフラストラクチャコストをかけずに低レイテンシのコンテンツ配信を実現するための1つのアプローチは、人気のあるコンテンツをユーザの近くにキャッシュし、あまり人気のないコンテンツをより集中化されたサーバ上に保持することに基づく。そのため、各々がクライアントに適度に近く、単一のオリジンサーバによって提供されるものと同じコンテンツをサービスすることができる、キャッシュのネットワークを使用して、可能な限り多くのコンテンツをエッジにおいてキャッシュし、可能な限り多くの不人気のコンテンツがオリジンサーバによってサービスされるようにすることができる。
【0017】
コンテンツが要求され、エッジキャッシュサーバなどの選択されたサーバから正常にサービスされる率は、「ヒット率」と呼ばれ得る。エッジキャッシュ上のヒット率は、チャンクのダウンロード時間など、エクスペリエンスの品質(QoE)に関連する要因に大きい影響を与える。例えば、キャッシュミスにより、サーバのレイテンシが最大1桁増加することが示されており、これは、クライアントの起動時間の増加につながる。このサーバレイテンシの低下の1つの理由は、キャッシュサーバでのキャッシュミスの場合に、オリジンサーバへのハイパーテキスト転送プロトコル(HTTPまたはHTTPS)接続をプロキシするために発生するネットワークコストに関与する。したがって、CDNアーキテクチャのスケーラビリティにとって重要であるのは、コンテンツに対するほとんどの要求が、エッジキャッシュから正常にサービスされることであり、なぜならばこれにより、オリジンサーバに対する負荷が軽減されるからである。
【0018】
しかしながら、エッジキャッシュに対する負荷が増加するにつれて、より強力なサーバを使用するか、またはハードウェアリソースを追加するだけで容量の問題に対処するには、法外にコストがかかることになる可能性がある。したがって、コンテンツをキャッシュすべき場所、要求をリダイレクトすべきかまたはコンテンツをプロキシすべきか、ならびにコンテンツ要求をどこにリダイレクトすべきかを決定するために、エッジにおける人気度ベースのフィルタリングが必要になる場合がある。現在のアーキテクチャには、2つの主要な問題がある。すなわち、キャッシュミスの際に、オリジンからコンテンツをフェッチするためにHTTPプロキシが使用される。これは、レイヤ3において直接的にオリジンに向けて要求を再ルーティングする場合と比較して、無視することができない性能コストがかかる。さらに、既存のアーキテクチャは、キャッシュ間のコラボレーションのためにキャッシュの水平スケーリングを利用していない。代わりに、キャッシュミスが発生したとき、通常、要求は元のオリジンに転送されるが、事前に別のキャッシュを試すことは、半人気のコンテンツには役立つ可能性がある。
【0019】
上記は、(展開ネットワーキング技術における)チャンクレベルのコンテンツアドレス指定および多層コンテンツ人気度評価を利用して、コンテンツ要求およびコンテンツ配信の最適な処理に関してインテリジェントな決定を行う、ビデオコンテンツ配信ネットワーク(CDN)のためのシステム、方法、およびコンピュータ可読媒体に向けられた本技術の実施形態によって対処される。コンテンツ関連のトラフィックの最適な処理は、1つの点では、キャッシュシステムのヒット率を高めることに向けられており、これにより、ビデオなどのコンテンツについての要求をサービスすることに関連付けられたレイテンシおよびネットワーク負荷が低減される。したがって、本発明のいくつかの実施形態は、キャッシュミスに関連付けられた悪影響(すなわち、レイテンシおよびネットワーク負荷)をも低減しながら、ネットワークエッジにおけるキャッシュヒット率を増加させることに向けられている。そのために、開示された技術の実施形態は、ネットワークレイヤのビデオチャンク命名を利用して、要求されたコンテンツについての人気度ベースの多層分類を容易にする。
【0020】
いくつかの実施形態では、名前付きビデオチャンク(要求パケットヘッダのネットワークアドレス内に埋め込まれたコンテンツ識別子)は、現在のIPベースのネットワークにおいて展開可能なシステムおよび/または構成内のフォワーディングプレーン内で使用され得る。したがって、各ビデオセグメントは、例えば、ビデオ識別子を含有するための64ビット符号化、ビデオ内のセグメントの識別子、ならびにセグメント期間および要求されたビデオのビットレート/品質などの潜在的に追加のメタデータを使用して、一意のネットワーク識別子とマッチングされ得る。次に、この名前からIPv6アドレスを構築することができる。
図1を参照すると、修正されたIPv6アドレス100の例は、ビデオ制作者に固有であり得、ネットワークロケータとして機能する、ルーティングプレフィックスおよびサブネット識別子を構成する第1の64ビット部分104を含む。さらに、修正された例示的なIPv6アドレス100は、コンテンツメタデータを構成し、コンテンツ識別子として機能する、第2の64ビット部分106をさらに含む。
【0021】
本技術のいくつかの実施形態によれば、コンテンツ要求パケットヘッダのレイヤ3アドレス部分の一部としてのチャンクレベルのコンテンツアドレス指定を使用して、ネットワークレイヤにおいてコンテンツ認識および追跡を提供することができる。本技術のいくつかの実施形態では、前述のネットワークレベルのコンテンツ認識および追跡を、最後に最近使用された(LRU)フィルタリングポリシーと組み合わせて使用して、コンテンツ要求のマルチレベル人気度ベースのフィルタリングを提供することができる。いくつかの実施形態では、人気度ベースのLRUフィルタリングは、最近最も使用が少なかった置換ポリシーによって駆動される、識別子の「メタキャッシュ」を保持することによって実装され得る。メタキャッシュ内のコンテンツ識別子の存在は、人気度の指標と見なすことができる。しかしながら、「人気」のコンテンツと「不人気」のコンテンツとの間で分類する代わりに、本技術の実施形態は、コンテンツを、「人気」、「半人気」、および「不人気」の間で分類する三層分類アプローチを開示する。したがって、不人気のコンテンツの配信がオリジンサーバにオフロードされ、人気のコンテンツがキャッシュにおいてサービスされる精度および効率が高まる。
【0022】
本技術のいくつかの実施形態によれば、チャンクレベルのコンテンツアドレス指定は、一意でグローバルにルーティング可能なIPv6アドレスを各ビデオチャンクに割り当てることからなる。チャンク識別子およびビデオ識別子をIPv6アドレス空間内に公開すると、要求されたコンテンツに対するネットワークレイヤの可視性が提供される。したがって、クライアントシステムとネットワークキャッシングリソースとの間に配置されたコンテンツルーティング/フィルタリングサービスを使用して、コンテンツ要求パケット内でIPアドレスとして公開されたコンテンツ識別子から、最後に最近使用されたコンテンツ識別子のメタキャッシュを構築するために、1つ以上のエッジキャッシュサーバ宛てのコンテンツ要求パケットを調べることができる。次に、コンテンツルーティング/フィルタリングサービスは、最後に最近使用されたコンテンツ識別子のメタキャッシュ内の対応するコンテンツ識別子のインデックス付けされた位置に基づいて、特定の人気度レーティング(すなわち、人気または半人気レーティング)を異なるクライアント要求コンテンツに割り当てることができる。いくつかの実施形態では、インデックス付けされた位置は、人気度レーティングの目的で、静的または動的に計算された閾値レベルに関連して決定され得る。コンテンツは、対応するコンテンツ識別子が閾値レベルより上または下に配置されているかどうかに応じて、人気または半人気として識別され得るが、メタキャッシュから欠落しているコンテンツ識別子は、不人気のコンテンツに対応すると見なされる。次に、コンテンツルーティング/フィルタリングサービスは、要求されたコンテンツのコンテンツ人気度分類に基づいて、帯域内コンテンツ要求転送決定を行うことができる。
【0023】
本技術のいくつかの実施形態によれば、人気と見なされたコンテンツは、キャッシュサーバにおいてローカルにサービスされ得る。逆に、不人気と見なされたコンテンツについての要求は、オリジンサーバにダイレクトされ、同じオリジンサーバによってサービスされる場合がある。初期キャッシュサーバにおいて利用することができない半人気のコンテンツの場合、別の(エッジ)キャッシュがコンテンツのコピーを有する可能性があり得る。したがって、これらの場合、実施形態は、オリジンに直接戻るのではなく、別の疑似ランダムに選択されたエッジキャッシュを通って迂回することを提供する。いくつかの実施形態によれば、キャッシュミス時の第2のキャッシュサーバおよび/またはオリジンサーバへのリダイレクト/迂回は、HTTPプロキシを使用して処理することができる。しかしながら、本技術のいくつかの実施形態では、リダイレクト/迂回は、性能を改善するために、セグメントルーティング負荷分散(SRLB)アプローチ(例えば、6LB負荷分散プロトコルなど)を使用して実施され得る。例えば、開示された技術のいくつかの実施形態では、IPv6セグメントルーティング(SRv6)を利用して、要求されたコンテンツの決定された人気度レベルに基づいて候補サーバのチェーンを介してクライアント要求を誘導する。SRv6の実装例は
図3に提供されている。
【0024】
図2は、本技術のいくつかの実施形態による、例示的なコンテンツ配信ネットワーク(CDN)200の動作を示す。例示的なCDNネットワーク200のコンテンツルータ202および204は、それぞれ、最後に最近使用された(LRU)フィルタコンポーネント206および208を備える。LRUフィルタ206は、関連付けられた(人気度)閾値パラメータ211を有するサイズC1のメタキャッシュ210を備え、LRUフィルタ208は、関連付けられた閾値パラメータ213を有するサイズC1のメタキャッシュ212を備える。LRUフィルタ206および208は、オリジンサーバ216と、キャッシュサーバ217および218からなるキャッシュサーバクラスタとへのアクセスを制御およびフィルタリングする。いくつかの実施形態では、LRUフィルタ機能は、1つ以上のコンテンツルータに組み込まれ得る。いくつかの実施形態では、LRUフィルタは、独立したデバイス、ソフトウェアサービス、プロトコル、またはソフトウェア/ハードウェアサービスの組み合わせとして実装され得る。LRUフィルタは、ネットワークエッジの近くに配置され、1つ以上の関連付けられたキャッシュサーバおよび/または1つ以上のオリジンコンテンツサーバとの間のコンテンツ要求の制御およびフィルタリングを担当することができる。いくつかの実施形態では、LRUフィルタは、1つ以上のコンテンツルータに通信可能に結合され、かつ異なるコンテンツについての要求をルーティングする方法に関して対応するコンテンツルータに必要な情報を提供するユニットとして実装され得る。
【0025】
図2に戻って参照すると、コンテンツ要求を受信したときの例示的なCDN200の動作が、いくつかの実施形態に従って、フローライン216、218、および220によって示されている。フローライン216は、着信要求パケット内のコンテンツ識別子(217)がLRUフィルタ206のメタキャッシュ210に見出され、その対応するインデックス値が閾値インデックス値よりも小さい(すなわち、その位置が、メタキャッシュ210の人気の部分に対応する閾値インデックス211を上回っている)シナリオに対応する。したがって、LRUフィルタ206は、対応するコンテンツ識別子をメタキャッシュ210の上部に移動し、クエリは、対応するキャッシュサーバによって受け入れられる(すなわち、クエリは、エッジサーバ217によってサービスされる)。217でのキャッシュミスの場合、要求された(人気の)コンテンツは、オリジンサーバ216からプロキシされ、ローカルコピーがキャッシュサーバ217に保存される。
【0026】
LRUキャッシュ内の要素のインデックスを検討する場合、インデックスが小さいほど、要素はキャッシュリスト内により早く現れる。結果として、インデックスが小さいほど、人気度はより高くなる。したがって、本技術のいくつかの実施形態によれば、コンテンツは、そのインデックスが閾値よりも小さいときはいつでも人気と見なされ、そのインデックスが閾値よりも大きいときはいつでも半人気と見なされ得る。ただし、
図2のLRUキャッシュ210および212の図に関して、より最近観察されたコンテンツに対応するLRUヒープの下部は、LRUキャッシュの図の上部に示されていることに留意されたい。したがって、例示的なLRUキャッシュの
図210および212は、インデックス値の配置の昇順に対応する。
【0027】
逆に、フローライン218は、要求されたコンテンツ識別子がLRUフィルタ206のメタキャッシュ210に見出されない(すなわち、不人気のコンテンツ)シナリオに対応する。したがって、LRUフィルタ206は、欠落しているコンテンツ識別子をメタキャッシュ210の上部に追加/挿入し(これにより、メタキャッシュが満杯である場合、メタキャッシュ内の最後のコンテンツ識別子が削除され)、クエリは拒否される(すなわち、要求はオリジンサーバ216に直接転送される。)
【0028】
説明したように、本技術の実施形態は、不人気のレベルと人気のレベルとの間にある人気度の中間レベルのレーティング(半人気)を提供する。
図2の例示的なCDN200では、これは、着信コンテンツ要求パケットのレイヤ3アドレス部分に埋め込まれた、要求されたコンテンツ識別子がコンテンツ識別子(221)に対応するシナリオに対応するフローライン220によって示されており、コンテンツ識別子(221)は、LRU206のメタキャッシュ210内で、閾値インデックス211よりも大きいインデックス値を有する位置において見出される(すなわち、その位置は、メタキャッシュ210の半人気の部分に対応する閾値インデックス211を下回っている)。半人気のコンテンツの場合、初期/第1の受信キャッシュサーバ(キャッシュサーバ217)におけるキャッシュミスにより、LRUフィルタ206またはコンテンツルータ202は、関連付けられたコンテンツルータ204を介して(例えば、セグメントルーティング負荷分散転送プロトコルを使用することによって)、要求を、第2の疑似ランダムに選択されたキャッシュサーバ(218)に再ルーティングすることになる。リダイレクトされたコンテンツ要求を受信すると、LRUフィルタ208は、対応するコンテンツ識別子(221)をメタキャッシュ212の上部に移動する。第2の疑似ランダムに選択されたキャッシュサーバ(218)をサービスする第2のLRUフィルタ(208)も、(コンテンツ識別子221に対応する)要求されたコンテンツを有さない場合、または第2の疑似ランダムに選択されたキャッシュサーバ(218)をサービスする第2のLRUフィルタ(208)が、要求されたコンテンツを有さないが、閾値パラメータ213より上の位置にある(すなわち、メタキャッシュ212の半人気の部分内にある場合、クエリは、オリジンサーバ216に転送される。リダイレクトされたコンテンツが、第2のエッジキャッシュサーバ218のLRUフィルタ212に従って人気と見なされる場合、要求は、第2のエッジキャッシュサーバ218上でローカルに受け入れられ、ローカルで利用することができない場合、コンテンツは、オリジンサーバ216からプロキシされる。
【0029】
いくつかの実施形態では、前述のキャッシュシステムは、リスト内のエントリへのポインタのハッシュマップに結合された、二重にリンクされたリストとして実装され得る。本技術の一実施形態では、メタキャッシュのサイズは、それがアクセスをフィルタリングするキャッシュのサイズの6倍に設定される。これにより、軽い負荷の(したがって、閾値がサイズに等しい)場合に、ほぼ最適なヒット率が提供される。
【0030】
本技術のいくつかの実施形態は、第1の受信キャッシュサーバから別のキャッシュサーバにキャッシュミスをリダイレクトすることを伴う、半人気のコンテンツのためのフィルタリングスキームに向けられている。この特徴は、半人気のコンテンツが別のエッジキャッシュにおいて利用可能になる可能性に基づいているため、(典型的は地理的により離れている)オリジンに戻る前に、別のキャッシュを訪れるために2つのキャッシュ間で三角ルーティングの転送レイテンシを発生させることは、価値があると見なされる。その目的のために、いくつかの実施形態によれば、IPv6セグメントルーティング(SRv6)およびセグメントルーティング負荷分散(SRLB)プロトコルを活用して、要求をオリジンサーバにリダイレクトする前に、複数の疑似ランダムに選択されたキャッシュを訪れることができる。
【0031】
図3は、本技術のいくつかの実施形態による、コンテンツ要求および応答トラフィックの人気度ベースのフィルタリングのためのセグメントルーティング実装300の例を示す。実装例300では、クライアント304の近くに(例えば、クライアントネットワークスタック、またはセットトップボックス内に)位置し得るディスパッチャユニット(302)は、(セグメント識別子リスト306を含む)セグメントルーティングヘッダをコンテンツ要求パケットに挿入して、上流の要求フィルタリングプロセスを容易にするために展開される。例えば、クライアント304が新規接続パケット(例えば、TCP SYN)を発行するとき、ディスパッチャ302は、セグメント識別子(SID)リスト306を、要求パケットのセグメントルーティングヘッダに挿入する。
図3に示される例示的な実施形態では、SIDリスト306は3つのエントリを含み、最初の2つのエントリは、セグメント識別子1および3に対応し、それぞれ、2つの疑似ランダムに選択されたキャッシュサーバ、キャッシュサーバ1、およびキャッシュサーバ3を識別する。SIDリスト306の最後のエントリは、オリジンサーバ308のセグメント識別子に対応する。明確にする目的のために、セグメントルーティングがIPv6フォワーディングプレーンで実装されている場合、SIDリストは、SRv6(IPv6フォワーディングを用いたセグメントルーティング)リストと交換可能に呼ばれることがある。
【0032】
(キャッシュサーバまたはオリジンサーバのいずれかであり得る)受け入れサーバは、クライアント304から新規接続パケットを受け入れると、そのネットワークまたはセグメントアドレスをメタデータとして、クライアントに返す応答パケットに挿入する。次に、ディスパッチャ(302)は、接続の存続期間の残りの間、応答サーバのアドレスを記録する。したがって、クライアントが受け入れサーバにさらなるパケット(例えば、TCP ACK)を発行するとき、ディスパッチャは、1つのセグメント識別子のみを有するセグメントルーティングヘッダを挿入し、セグメント識別子は、SIDリスト306内で識別されたサーバの元の3つ組(すなわち、キャッシュサーバ1、キャッシュサーバ3、およびオリジンサーバ)から受け入れサーバを識別する。
【0033】
したがって、受け入れサーバのアドレスを有するメタデータを含有する応答がディスパッチャによって受信されると、(受け入れサーバへの)確立された接続に関連付けられた後続のすべてのパケットは、コンテンツ要求を受け入れて接続を終了したサーバ/ノードに対応する(初期コンテンツ要求または新規接続パケットに埋め込まれた元のセグメント識別子リスト内で指定された3つから)1つのセグメント識別子のみを含む。その結果、クライアントは、要求されたコンテンツを配信するために、受け入れサーバへの直接データ接続を確立することができる。
【0034】
図3の例を参照すると、LRUフィルタ/コンテンツルータ310、311、および312は、それぞれ、キャッシュサーバ1、2、および3へのアクセスをフィルタリングし、キャッシュミス応答を管理する目的で展開されている。そのため、各LRUフィルタ/コンテンツルータは、それがアクセスをフィルタリングするキャッシュサーバの近くに配置される。
図2および
図3の例示的な実施形態によれば、LRUフィルタ/コンテンツルータのフィルタリング/管理動作は、要求されたコンテンツの、人気、半人気、または不人気としての閾値ベースの人気度分類に依存する。
【0035】
図3に戻って参照すると、キャッシュサーバ1宛ての着信(新規接続)コンテンツ要求313は、対応するLRUフィルタ/コンテンツルータ310において受信される。(コンテンツ要求313から抽出された)要求されたコンテンツ識別子が、LRUフィルタ/コンテンツルータ310内のメタキャッシュの人気の部分に見出された場合、要求されたコンテンツは「人気」と見なされる。したがって、コンテンツ要求は、キャッシュサーバ1(初期受信キャッシュ)において受け入れられ、対応する接続313はそこで終了する。そのため、要求パケットは、さらなるセグメントを訪れることなく、キャッシュサーバ1のローカルスタックに転送される。要求された「人気」のコンテンツがキャッシュサーバ1上でローカルに利用可能でない場合、要求は、オリジンサーバ308にプロキシされ、コンテンツは、キャッシングソフトウェアの挿入ポリシー(すなわち、最近最も使用が少なかった、使用頻度が最も低かった、フィストインフィストアウトなど)に従ってキャッシュサーバ1に挿入される。接続313を終了した後、キャッシュサーバ1は、
図3の参照314によって示されるそのセグメント識別子(1)とともに応答パケットをクライアントに送り返す。
【0036】
しかしながら、(コンテンツ要求パケットから抽出された)要求されたコンテンツ識別子が、LRUフィルタ/ルータ310内のメタキャッシュ(
図2の項目210および212)の半人気の部分に見出された場合、要求されたコンテンツは「半人気」と見なされる。したがって、LRUフィルタ/ルータ310は、
図3の接続316(
図2の接続220)に対応する再試行をトリガし、第2の疑似ランダムに選択されたキャッシュサーバ(キャッシュサーバ3)に対応するSRv6リスト306内の次のセグメント識別子エントリ(すなわち、SID3)に要求を転送する。これには、(キャッシュサーバ1に関連付けられた)LRUフィルタ/ルータ310が、コンテンツ要求を、キャッシュサーバ3に関連付けられた対応するLRUフィルタ/ルータ312にルーティング/転送することが必要となる。要求された「半人気」のコンテンツが、LRUフィルタ312によって人気と見なされた場合、再試行/リダイレクトされたコンテンツ要求は、キャッシュサーバ3(第2の受信キャッシュ)において受け入れられ、対応する接続316はそこで終了する。したがって、要求パケットは、さらなるセグメントを訪れることなく、キャッシュサーバ3のローカルスタックに転送され、要求された「半人気」のコンテンツは、キャッシュサーバ3において直接サービスされる。接続316を終了した後、受け入れサーバ(キャッシュサーバ3)は、クライアントに応答パケットを送り返し、それは、
図3の参照317によって示されるそれ自身のセグメント識別子(3)を応答パケットに挿入する。しかしながら、要求された「半人気」のコンテンツが、キャッシュサーバ3をサービスするLRUフィルタ312によって見出されないか、または人気と見なされない場合、接続要求316は拒否され、要求は、接続318を介して、オリジンサーバ308(SRv6リスト306内で指定された最後のセグメント)にリダイレクトされる。オリジンサーバ308は、要求を受け入れ、対応する接続318を終了する。したがって、要求パケットは、オリジンサーバ308のローカルスタックに転送され、要求された「半人気」のコンテンツは、オリジンサーバ308において直接サービスされる。接続318を終了した後、受け入れサーバ(オリジンサーバ308)は、クライアントに応答パケットを送り返し、それは、
図3の参照319によって示されるそれ自身のセグメント識別子(オリジン)を応答パケットに挿入する。
【0037】
最後に、初期受信キャッシュ(キャッシュサーバ1)宛てのクライアント要求パケットから抽出された、要求されたコンテンツ識別子が、対応するLRUフィルタ/ルータ310の(
図2の項目210および212として示されている)メタキャッシュ内のどこにも見出されない場合、要求されたコンテンツは「不人気」と見なされる。したがって、要求された「不人気」のコンテンツがキャッシュサーバ1上でローカルに利用可能でない場合、欠落しているコンテンツ識別子は、LRUフィルタ/ルータ310に関連付けられたメタキャッシュの上部に挿入され、要求は、接続320を介して、オリジンサーバ308にリダイレクトされる。オリジンサーバ308に向けられたクエリは終了し、ローカルスタックに転送される。接続320を終了した後、受け入れサーバ(オリジンサーバ308)は、クライアントに応答パケットを送り返し、それは、
図3の参照321によって示されるそれ自身のセグメント識別子(オリジン)を応答パケットに挿入する。
【0038】
したがって、不人気のコンテンツはエッジキャッシュによってサービスされるのではなく、(ネットワークレイヤにおいて)オリジンサーバに直接オフロードされる確率が高くなる。オフロードされた接続をエッジにおいてプロキシする必要がなくなるため、不要なHTTP終端が回避され、エッジプロキシのキャッシュが不人気のコンテンツで汚染されないため、結果としてヒット率が増加する。
【0039】
本技術のいくつかの実施形態によれば、比例積分(PI)コントローラを使用して、LRUフィルタのパラメータを調整することができる。例えば、PIコントローラを使用して、最後に最近要求されたコンテンツ識別子のメタキャッシュを人気の部分および半人気の部分に分割する(人気度)閾値パラメータを調整し、このようにして、ネットワークキャッシュサーバのキャッシュヒット率の性能と平均応答時間との間のトレードオフを制御および最適化することができる。例えば、LRUフィルタのメタキャッシュにおける人気度閾値を上げると、対応するキャッシュサーバにおいて受け入れられる要求の数が増加し、したがって、それに応じてキャッシュサーバの応答時間が増加する。いくつかの実施形態では、PIコントローラは、LRUフィルタの(人気のコンテンツの識別のための)人気度閾値パラメータを調整するために、LRUフィルタと組み合わせて使用され得る。PIコントローラは、例えば、(LRUフィルタがアクセスする)関連付けられたキャッシュサーバの現在の応答時間を入力パラメータとして受け取り、それを客観的フロー完了時間と比較して、所望のバランスに達するまで、LRUフィルタの(人気度)閾値パラメータの値に対するしかるべき調整を行うことによってこれを実現する。このようにして、PIコントローラを使用して、ネットワークキャッシュアクセスを最適化することができる。
【0040】
図4は、LRUフィルタ402と組み合わせて動作するコンテンツルータ401が、キャッシュサーバ403へのアクセスをフィルタリングおよび制御するために使用される、実装例400を示す。LRUフィルタ402は、コンテンツ識別子を記憶するためのサイズC1のメタキャッシュ404と、人気/半人気/不人気のコンテンツの識別に関連付けられた閾値パラメータkとをさらに備える。コンテンツ要求の人気/半人気/不人気の分類は、最終的に、どのコンテンツ要求がキャッシュサーバにおいて受け入れられるか、どれが異なるキャッシュサーバを用いて再試行されるか、およびどれが拒否され、オリジンサーバにリダイレクトされるかを決定する。実装例400では、キャッシュサーバ403の応答時間「δt」が測定され、入力としてPIコントローラ406に提供され得る。PIコントローラ406は、入力応答時間に基づいて、LRUフィルタ402のメタキャッシュ404内の閾値パラメータkのレベルを最適に調整する。このようにして、PIコントローラを使用して、LRUフィルタの動作を調整および最適化し、最終的に、ネットワークにおけるエッジキャッシング性能を改善することができる。
【0041】
本発明の一実施形態では、PIコントローラは、受け入れ確率に従って要求をフィルタリングすることによってウェブサーバの応答時間を制御するYakshaなどの自己調整PIを使用して実装することができる。このような自己調整PIコントローラの1つの利点は、それがいずれの統合作業も必要とせずに、キャッシュの前で独立したモジュールとして機能することができることである。さらに、自己タイミング機能により、人間による入力、またはサーバの特性の事前知識が不要になる。
【0042】
いくつかの実施形態によれば、Yakshaベースのフィルタリングは、フィルタリング基準を、受け入れ確率から最後に最近使用された(LRU)人気度閾値に変換することによって、本技術のいくつかの実施形態によって規定される動作に適合させることができる。
【0043】
要求パターンがポアソン到着に従い、人気度分布q(r)が既知である場合、いくつかの実施形態によれば、Cheの近似を利用して、コンテンツについての要求を受け入れる確率を、コンテンツ人気度閾値の関数として計算することができる。コンテンツ人気度閾値は、式(1.1)によって定義されることができ、ここで、kは、コンテンツ人気度閾値を表し、p(k)は、式1.2によって定義されているように、コンテンツ人気度閾値kの関数として、要求を受け入れる確率を表する。式1.1および1.2内のパラメータt
cは、式1.1のベキ根に対応する。
【数1】
【0044】
次に、(1.2)によって定義された確率関数を反転して、Yakshaフィルタ(すなわち、受け入れ確率に従ってサーバ要求をフィルタリングするように構成された自己調整PI)によって出力された受け入れ確率の関数としてkを計算することができる。これは、キャッシュサーバ502の応答時間「δt」がYakshaフィルタ504への入力として使用される
図5に示されている。受け入れ確率pに対応するYakshaフィルタの出力506を、506において反転し、このようにして、pの関数としてコンテンツ人気度閾値パラメータkを計算する。次に、閾値パラメータkを使用して、要求されたコンテンツの多層人気度レーティングを提供することができる。いくつかの実施形態では、反転動作(506)は、効率を目的として、事前に計算された反転テーブルを介して実施され得る。
【0045】
開示された技術の実施形態は、人気度閾値パラメータkに対して直接使用される任意の自己調整PIコントローラを提供することに留意されたい。いくつかの実施形態では、調整は、フロー完了時間の代わりに、CPU使用率またはTCPキュー長などのサーバ側メトリックに対して実施され得る。このようなメトリックは、フロー完了時間よりも正確で瞬時である可能性があるが、受け入れシステムとキャッシュサーバとのより緊密な結合が必要になる場合がある。
【0046】
ここで、本開示は、クライアントコンピュータ、スイッチ、ルータ、コントローラ、サーバなどのようなネットワークデバイスを計算する例示的なアーキテクチャを示す
図6および
図7に向けられる。
【0047】
図6は、バスなどの接続部605を使用して互いに電気的に通信するコンポーネントを含むコンピューティングシステムアーキテクチャ600を示す。システム600は、処理ユニット(CPUまたはプロセッサ)610、ならびに読み取り専用メモリ(ROM)620およびランダムアクセスメモリ(RAM)625などのシステムメモリ615を含む様々なシステムコンポーネントをプロセッサ610に結合するシステム接続部605を含む。システム600は、プロセッサ610に直接接続されているか、近接しているか、またはプロセッサ610の一部分として統合された高速メモリのキャッシュを含むことができる。システム600は、プロセッサ610による高速アクセスのために、メモリ615および/または記憶デバイス630からキャッシュ612にデータをコピーすることができる。このようにして、キャッシュは、データを待機している間のプロセッサ610の遅延を回避するという性能向上を提供することができる。これらおよび他のモジュールは、プロセッサ610を制御するか、または制御するように構成して、様々なアクションを実施することができる。他のシステムメモリ615も同様に利用可能であり得る。メモリ615は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ610は、任意の汎用プロセッサ、プロセッサ610を制御するように構成された記憶デバイス630に記憶されたサービス1 632、サービス2 634、およびサービス3 636のようなハードウェアまたはソフトウェアサービス、ならびにソフトウェア命令が実際のプロセッサ設計に組み込まれている特別目的プロセッサを含むことができる。プロセッサ610は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【0048】
コンピューティングデバイス600とのユーザインタラクションを可能にするために、入力デバイス645は、音声用マイクロフォン、ジェスチャまたはグラフィック入力用のタッチスクリーン、キーボード、マウス、モーション入力、音声などの任意の数の入力メカニズムを表すことができる。出力デバイス635はまた、当業者に知られているいくつかの出力メカニズムのうちの1つ以上とすることができる。場合によっては、マルチモーダルシステムは、ユーザがコンピューティングデバイス600と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース640は、一般に、ユーザ入力およびシステム出力を統御および管理することができる。特定のハードウェア構成での動作に制限はないため、ここでの基本機能は、開発時に改善されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
【0049】
記憶デバイス630は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)625、読み取り専用メモリ(ROM)620、およびそれらのハイブリッドなど、コンピュータがアクセス可能なデータを記憶することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【0050】
記憶デバイス630は、プロセッサ610を制御するためのサービス632、634、636を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図される。記憶デバイス630は、システム接続部605に接続することができる。一態様では、特定の機能を実施するハードウェアモジュールは、その機能を実施するために、プロセッサ610、接続部605、出力デバイス635などのような必要なハードウェアコンポーネントに関連して、コンピュータ可読媒体に記憶されたソフトウェアコンポーネントを含むことができる。
【0051】
図7は、スイッチング、ルーティング、保証、および他のネットワーキング動作を実施するのに好適な例示的なネットワークデバイス700を示す。ネットワークデバイス700は、中央処理装置(CPU)704、インターフェース702、および接続部710(例えば、PCIバス)を含む。適切なソフトウェアまたはファームウェアの制御下で動作する場合、CPU704は、パケット管理、エラー検出、および/またはルーティング機能を実行する責任を負う。CPU704は、好ましくは、オペレーティングシステムおよび任意の適切なアプリケーションソフトウェアを含むソフトウェアの制御下でこれらすべての機能を達成する。CPU704は、マイクロプロセッサのINTEL X106ファミリからのプロセッサなどの1つ以上のプロセッサ708を含み得る。場合によっては、プロセッサ708は、ネットワークデバイス700の動作を制御するために特別に設計されたハードウェアであり得る。場合によっては、メモリ706(例えば、不揮発性RAM、ROM、TCAMなど)はまた、CPU704の一部を形成する。ただし、メモリをシステムに結合することができる多くの異なる方式がある。場合によっては、ネットワークデバイス700は、CPU704とは別に、TCAMなどのメモリおよび/または記憶ハードウェアを含むことができる。そのようなメモリおよび/または記憶ハードウェアは、例えば、接続710を介して、ネットワークデバイス700およびそのコンポーネントと結合することができる。
【0052】
インターフェース702は、典型的に、モジュラーインターフェースカード(「ラインカード」と称されることもある)として提供される。一般に、それらはネットワークを介したデータパケットの送受信を制御し、ネットワークデバイス700で使用される他の周辺機器をサポートする場合がある。提供され得るインターフェースの中には、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェースなどがある。加えて、高速トークンリングインターフェース、ワイヤレスインターフェース、イーサネットインターフェース、ギガビットイーサネットインターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェース、WIFIインターフェース、3G/4G/5Gセルラインターフェース、CAN BUS、LoRAなど、様々な非常に高速なインターフェースが提供される場合がある。一般に、これらのインターフェースには、適切な媒体との通信に適したポートが含まれている場合がある。場合によっては、それらには、独立したプロセッサと、場合によっては揮発性RAMとも含まれる。独立したプロセッサは、パケット交換、媒体制御、信号処理、暗号処理、管理などの通信集約型タスクを制御することができる。通信集約型タスクのために別個のプロセッサを提供することにより、これらのインターフェースは、マスターマイクロプロセッサ704がルーティング計算、ネットワーク診断、セキュリティ機能などを効率的に実施することを可能にする。
【0053】
図7に示されるシステムは、本開示の1つの特定のネットワークデバイスであるが、これは、本明細書における概念が実装されることができる唯一のネットワークデバイスアーキテクチャでは決してない。例えば、通信ならびにルーティング計算などを処理する単一のプロセッサを有するアーキテクチャを使用することができる。さらに、他のタイプのインターフェースおよび媒体もまた、ネットワークデバイス700とともに使用され得る。
【0054】
ネットワークデバイスの構成に関係なく、本明細書で説明するローミング、ルート最適化、およびルーティング機能のための汎用ネットワーク動作およびメカニズムのためのプログラム命令を記憶するように構成された1つ以上のメモリまたはメモリモジュール(メモリ706を含む)を採用し得る。プログラム命令は、例えば、オペレーティングシステムおよび/または1つ以上のアプリケーションの動作を制御することができる。1つのメモリまたは複数のメモリはまた、モビリティバインディング、登録、および関連付けテーブルなどのようなテーブルを記憶するように構成され得る。メモリ706はまた、様々なソフトウェアコンテナおよび仮想化実行環境およびデータを保持することができる。
【0055】
ネットワークデバイス700はまた、ルーティング、スイッチング、および/または他の動作を実施するように構成することができる特定用途向け集積回路(ASIC)を含むことができる。ASICは、接続部710を介してネットワークデバイス700内の他のコンポーネントと通信して、データおよび信号を交換し、例えば、ルーティング、スイッチング、および/またはデータ記憶動作などのネットワークデバイス700による様々なタイプの動作を連携することができる。
【0056】
図8は、最後に最近使用されたコンテンツ識別子のメタキャッシュに人気度閾値パラメータを適用することに基づく人気度ベースのコンテンツ要求フィルタリングプロセスの例示的なプロセスフロー800を示す。要求されたコンテンツチャンクの人気度は、対応するコンテンツ識別子のインデックス位置と、最後に最近使用されたコンテンツ識別子のメタキャッシュ内の閾値インデックスとの比較に基づいて決定される。例えば、閾値インデックスより上のインデックス位置においてメタキャッシュ内に配置されたコンテンツ識別子は、より人気があると見なされる可能性があるが、閾値インデックスより下のインデックス付けされた位置に配置されたコンテンツ識別子は、あまり人気がない(半人気)と見なされる可能性がある。メタキャッシュ内に対応するコンテンツ識別子がないコンテンツは、不人気と見なされる可能性がある。次に、人気度の決定により、LRUフィルタリング/ルーティングサービスがコンテンツ要求を転送する方法が決定され得る。ステップ802の
図8を参照すると、着信コンテンツ要求パケットに埋め込まれたコンテンツ識別子が、最後に最近使用されたコンテンツ識別子のメタキャッシュ内のエントリに関して調べられる。着信コンテンツ識別子がメタキャッシュ内に存在しない場合(804)、要求されたコンテンツは不人気と見なされ、欠落しているコンテンツ識別子がメタキャッシュの上部に挿入され、要求は、ステップ806においてオリジンサーバにリダイレクトされる。しかしながら、着信コンテンツ識別子がメタキャッシュ内に存在する場合(808)、動作はステップ810に移り、メタキャッシュ内のコンテンツ識別子のインデックス付けされた位置が閾値インデックス値と比較される。
【0057】
着信コンテンツ識別子のインデックス付けされた位置が、LRUメタキャッシュ内で閾値インデックスよりも高い(上部により近い)場合(812)、コンテンツは人気と見なされ、動作はステップ814に移り、関連付けられたキャッシュサーバ(キャッシュ1)が、要求されたコンテンツについてチェックされる。コンテンツがキャッシュ1内に存在する場合(816)、それは、ステップ818においてそこから直接サービスされる。コンテンツがキャッシュ1内に存在しない場合(820)、動作はステップ822に移り、要求されたコンテンツは、キャッシュ1によって、オリジンサーバからプロキシされる。次に、コンテンツは、ステップ824においてキャッシュ1に挿入される。
【0058】
しかしながら、着信コンテンツ識別子のインデックス付けされた位置が、メタキャッシュ内で閾値インデックスよりも低い(下部により近い)場合(826)、対応するコンテンツは「半人気」と見なされ、動作はステップ834に移り、ここで、コンテンツ要求は、例えば、第1のキャッシュサーバ(キャッシュ1)をサービスする第1のLRUフィルタリング/ルーティングサービスによって、二次キャッシュサーバ(キャッシュ2)をサービスする第2のLRUフィルタリング/ルーティングサービスにリダイレクトされる。
【0059】
いくつかの実施形態では、転送およびリダイレクション動作は、SRv6ベースのアプローチを使用して実装することができ、第1および第2のキャッシュサーバならびにオリジンサーバの各々のセグメント識別子が、SIDリストとしてクライアントからコンテンツ要求パケットのヘッダに挿入される。
【0060】
図8の例示的なプロセスフロー800に戻って参照すると、二次キャッシュサーバ(キャッシュ2)をサービスする第2の受信LRUフィルタリング/ルーティングサービスは、第1のLRUフィルタリング/ルーティングサービスから、リダイレクトされたコンテンツ要求を受信すると、ローカルメタキャッシュ内の着信コンテンツ識別子の存在を検証する。着信コンテンツ識別子がメタキャッシュ内に存在する場合、動作はステップ836に移り、メタキャッシュ内のコンテンツ識別子のインデックス付けされた位置が閾値インデックス値と比較される。着信コンテンツ識別子のインデックス付けされた位置が、LRUメタキャッシュ内で閾値インデックスよりも高い(上部により近い)場合(838)、コンテンツは人気と見なされ、動作はステップ839に移り、関連付けられたキャッシュサーバ(キャッシュ2)が、要求されたコンテンツについてチェックされる。コンテンツがキャッシュ2内に存在する場合(840)、それは、ステップ841においてそこから直接サービスされる。コンテンツがキャッシュ2内に存在しない場合(842)、動作はステップ843に移り、要求されたコンテンツは、キャッシュ2によって、オリジンサーバからプロキシされる。次に、コンテンツは、ステップ844においてキャッシュ2に挿入される。
【0061】
しかしながら、着信コンテンツ識別子のインデックス付けされた位置が、LRUメタキャッシュ内で閾値インデックスよりも低い(下部により近い)場合(845)、対応するコンテンツは「半人気」と見なされ、動作はステップ846に移り、コンテンツ要求は、例えば、二次キャッシュサーバ(キャッシュ2)をサービスする第2のLRUフィルタリング/ルーティングサービスによって、オリジンサーバにリダイレクトされる(846)。
【0062】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたは無線信号を含むことができる。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【0063】
上記の例による方法は、コンピュータ可読媒体に記憶されているか、または別様にそれから利用可能であるコンピュータ実行可能命令を使用して実装することができる。そのような命令は、例えば、特定の機能または機能のグループを実施するように、汎用コンピュータ、特別目的コンピュータ、もしくは特別目的処理デバイスを引き起こすか、または別様に構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク経由でアクセス可能であり得る。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードなどの中間フォーマット命令であり得る。命令、使用される情報、および/または説明された例による方法中に作成された情報を記憶するために使用され得るコンピュータ可読媒体の例には、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク記憶デバイスなどが含まれる。
【0064】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および/またはソフトウェアを含むことができ、様々なフォームファクタのいずれかを取ることができる。このようなフォームファクタの典型的な例としては、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末などが挙げられる。本明細書に記載される機能はまた、周辺機器またはアドインカードで具体化され得る。このような機能は、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセスの間の回路基板上に実装することもできる。
【0065】
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
【0066】
添付の特許請求の範囲の範疇の態様を説明するために、様々な例および他の情報を使用したが、当業者であれば、多種多様な実装形態を導出するために、これらの例を使用することができるように、かかる例における特定の特徴または構成に基づいて、特許請求の範囲のいかなる制限も示唆されるべきではない。さらに、一部の主題は、構造的特徴および/または方法ステップの例に固有の言語で記載されている場合があるが、添付の特許請求の範囲で定義される主題は、必ずしもこれらの記載された特徴または行為に限定されないことを理解されたい。例えば、かかる機能は、ここで特定されている構成要素以外の構成要素で、異なって配布し、または実施することができる。むしろ、記載された特徴およびステップは、添付の特許請求の範囲の範疇のシステムおよび方法の構成要素の例として開示される。