(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2017-520866(P2017-520866A)
(43)【公表日】2017年7月27日
(54)【発明の名称】情報指向ネットワーキング(ICN)ルータ
(51)【国際特許分類】
G06F 12/08 20160101AFI20170630BHJP
G06F 12/0802 20160101ALI20170630BHJP
G06F 13/38 20060101ALI20170630BHJP
G11B 27/10 20060101ALI20170630BHJP
【FI】
G06F12/08 509B
G06F12/08 503F
G06F12/08 505B
G06F13/38 310C
G11B27/10 C
【審査請求】未請求
【予備審査請求】未請求
【全頁数】17
(21)【出願番号】特願2017-508759(P2017-508759)
(86)(22)【出願日】2015年4月29日
(85)【翻訳文提出日】2016年12月9日
(86)【国際出願番号】EP2015059396
(87)【国際公開番号】WO2015165995
(87)【国際公開日】20151105
(31)【優先権主張番号】14305639.8
(32)【優先日】2014年4月29日
(33)【優先権主張国】EP
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
(71)【出願人】
【識別番号】516324939
【氏名又は名称】インスティテュート マインズ‐テレコム
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ロッシ,ダリオ
(72)【発明者】
【氏名】ロッシーニ,ジュゼッペ
(72)【発明者】
【氏名】レオナルディ,エミリオ
(72)【発明者】
【氏名】ガレット,ミケーレ
【テーマコード(参考)】
5B005
5B077
5D077
【Fターム(参考)】
5B005LL15
5B005MM01
5B005MM22
5B005NN22
5B005UU25
5B005UU31
5B077DD21
5D077AA22
5D077DC22
5D077EA08
(57)【要約】
本発明は、第一キャッシュレイヤL1と、第二キャッシュレイヤL2とを含むICNルータに関連し、第一キャッシュレイヤL1は、第一コンテンツメモリ11を有し、第二キャッシュレイヤL2は、第二コンテンツメモリ21を有し、第二コンテンツメモリ21は、第一コンテンツメモリ11よりも大きい容量を有するが、アクセス速度が低く、ICNルータがデータを出力するように要求されたときに、第一キャッシュレイヤL1が第二キャッシュレイヤL2からそのデータをフェッチするように適合されているようにICNルータは構成されており、第一コンテンツメモリ11は、第一ブロックサイズを呈し、第二コンテンツメモリ21は、第二ブロックサイズを呈し、第二ブロックサイズは、第一ブロックサイズよりも大きく、第一コンテンツメモリ11は、スワップ領域110を有し、第一コンテンツメモリ11がそこを通じて第二コンテンツメモリ21に接続されており、スワップ領域110は、第二コンテンツメモリ21からフェッチされた第二ブロックサイズのブロックの一部として、第一ブロックサイズのブロックを個別に供給するように適合されている、ICNルータ。
【特許請求の範囲】
【請求項1】
第一キャッシュレイヤと、
第二キャッシュレイヤと、を含む、ICNルータであって、
前記第一キャッシュレイヤは、第一コンテンツメモリを含み、
前記第二キャッシュレイヤは、第二コンテンツメモリを含み、
前記第二コンテンツメモリは、前記第一コンテンツメモリよりも大きい容量を有するが、アクセス速度が低く、
当該ICNルータがデータを出力するように要求されたときに、前記第一キャッシュレイヤが前記第二キャッシュレイヤから該データをフェッチするように適合されているように、当該ICNルータは構成されており、
前記第一コンテンツメモリは、第一ブロックサイズを呈し、
前記第二コンテンツメモリは、第二ブロックサイズを呈し、
前記第二ブロックサイズは、前記第一ブロックサイズよりも大きく、
前記第一コンテンツメモリは、スワップ領域を有し、前記第一コンテンツメモリがそこを通じて前記第二コンテンツメモリに接続されており、
前記スワップ領域は、前記第二コンテンツメモリからフェッチされた前記第二ブロックサイズのブロックの一部として、前記第一ブロックサイズのブロックを個別に供給するように適合されている、ICNルータ。
【請求項2】
前記第一キャッシュレイヤは、さらに、前記第一コンテンツメモリのブロックにインデックスを付する第一インデックスメモリを含み、
前記第二キャッシュレイヤは、さらに、前記第二コンテンツメモリのブロックにインデックスを付する第二インデックスメモリを含む、請求項1に記載のICNルータ。
【請求項3】
前記第一コンテンツメモリは、前記第一インデックスメモリよりも大きい容量を有するが、アクセス速度が低く、
前記第二コンテンツメモリは、前記第二インデックスメモリよりも大きい容量を有するが、アクセス速度が低い、請求項2に記載のICNルータ。
【請求項4】
さらに、前記第二コンテンツメモリよりも大きい容量を有するが、アクセス速度が低い大容量メモリを含む第三キャッシュレイヤを含み、
当該ICNルータがデータを出力するように要求されたときに、前記第二キャッシュレイヤが前記第三キャッシュレイヤから該データをフェッチするように適合されているように当該ICNルータは構成されている、請求項1から3のいずれか一項に記載のICNルータ。
【請求項5】
前記第一コンテンツメモリは、さらに、前記第二コンテンツメモリに記憶されている複数のコンテンツのうちの少なくとも第一ブロックが記憶されている動画開始領域を含む、請求項1から4のいずれか一項に記載のICNルータ。
【請求項6】
前記動画開始領域に少なくとも前記第一ブロックが記憶されている前記複数のコンテンツは、最も要求されやすい、第二コンテンツメモリの複数のコンテンツである、請求項5に記載のICNルータ。
【請求項7】
ICNルータでのコンテンツアクセス方法であって、
前記ICNルータで、前記ICNルータの第二キャッシュレイヤの第二コンテンツメモリに少なくとも部分的に記憶さているコンテンツへの要求を受信する工程であって、該第二コンテンツメモリは第二ブロックサイズを呈する、工程aと、
前記ICNルータの第一キャッシュレイヤの第一コンテンツメモリのスワップ領域で、要求された前記コンテンツのデータの第二ブロックサイズのブロックを、前記第二コンテンツメモリからフェッチする工程であって、該第一コンテンツメモリは第一ブロックサイズを呈する、工程bと、
前記第二ブロックサイズでフェッチされた各ブロックに対して、前記要求に応じて、前記第二ブロックサイズでフェッチされたブロックの一部として、前記第一ブロックサイズのブロックを順次供給する工程cと、
を含む方法。
【請求項8】
前記工程aは、さらに、前記第一コンテンツメモリの動画開始領域にある、要求された前記コンテンツの第一ブロックを検索する工程を含む、請求項7に記載の方法。
【請求項9】
要求されたコンテンツの少なくとも第一ブロックが前記動画開始領域に記憶され、
前記工程bは、前記要求に応じて、動画開始領域に記憶されている要求されたコンテンツのブロックを順次供給する工程を同時的に含む、請求項8に記載の方法。
【請求項10】
要求された前記コンテンツは再生される動画であり、
さらに、前記動画の供給を一時停止する要求を前記ICNルータで受信するときは、前記第一ブロックサイズで少なくとも一つのブロックを順次供給し、前記動画の供給を再開する要求を前記ICNルータで受信するときは、最後に供給されたブロックから、工程b及び工程cを再度行う、工程dを含む、請求項7から9のいずれか一項に記載の方法。
【請求項11】
請求項7から9のいずれか一項に記載の、ICNルータでのコンテンツアクセス方法を実行させるコンピュータプログラム。
【請求項12】
請求項7から9のいずれか一項に記載の、ICNルータでのコンテンツアクセス方法を実行させるコンピュータプログラムが記憶されているコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の分野は、情報指向ネットワーキング(ICN)のものである。より詳細には、本発明は、ICNルータに関連する。
【背景技術】
【0002】
情報指向ネットワーキング(ICN)は、コンピュータネットワークアーキテクチャの別アプローチである。その根本的な原理は、通信ネットワークにより、ユーザはデータが取り出される特定の物理的位置を参照することを要することなく、必要なデータに集中することができるべきであるということある。これは、現在のインターネット利用量の大部分(90%)が一つのソースから多数のユーザにばらまかれたデータであるという事実に由来する。
【0003】
ICNは、ホストアドレスよりも名前付きデータ(named-data)が中心とされた通信である、新たなネットワーキングモデルを導入している。全くもって、ICNにおいては、全てのデータパケットが、物理的位置の代わりに固有の名前によって識別され、アドレスされ、取り出されるのである。
【0004】
近年、複数のICNアーキテクチャが提案されているが、最も知られた例としては、名前付きデータネットワーキング(NDN)としても知られる、コンテンツ指向ネットワーキング(CCN)が代表される。ICNアーキテクチャは、概して、異なる多数の選択肢がある(例えば、フラットvs階層的名前付けストラテジー、ルーティング及び転送ストラテジー、最小アドレス可能エンティティのグラニュラリティ(granularity)等)が、それらは、概して、アーキテクチャでの基本的なものとしてのキャッシング機能を特徴とすること等の、共通のポイントを有している。提案されている全てのICNを包含する共通した専門用語が現在のところ見当たらないため、本文では、明確性のため、CCNの専門用語を適用するが、本アプローチはより広い範囲に適用可能であるとする。
【0005】
ゆえに、ICNにおいて、全てのノード(ルータ)は、潜在的にコンテンツ(これは、「チャンク」に分割される。つまり、所与のサイズを備えたデータの基本的なフラグメント、言い換えれば、「ブロック」)を記憶し、同じコンテンツに対する将来的な要求を進んで供給する。このため、キャッシュ/バッファメモリ等の記憶能力を改善したネットワークノードを配備することができる。全くもって、記憶リソースは、数分から数時間又は数日にわたる期間、ネットワークを通じて拡散した一時的なコンテンツの複製を維持するのに用いられることができるのである。異なる複製の可用性は、コンテンツの人気度、キャッシュ置換ポリシー等の複数のファクタに依存し、要求転送ポリシーによって影響を受ける。文言「要求転送ポリシー(request forwarding policy)」とは、ここでは広く、非限定的に、ノードを含むネットワーク内でコンテンツ要求の転送を管理するやり方/決まりを示す。現に、要求転送ポリシーは、より良好なエンドユーザーパフォーマンス(例えば、データ搬送時間)を提供し、ネットワークで送信されるデータ量を低減する、つまり、ネットワーク負荷を軽くするのに重要な役割を果たす。
【0006】
実際のところ、ICNアーキテクチャの成功は、回線速度でデータトラフィックを処理することが可能な、大容量のキャッシュを提供できる能力にかかっている。これらの二つの要件は、トレードオフの関係にあり、現在のところ利用可能なメモリ技術の技術的制約により、最先端のものでも、10Gbpsを超える速度を維持(sustain)ことができる最も大きいもので約10GBのサイズである。
【0007】
とりわけ、ICNキャッシュについては、主に二つのパフォーマンスの側面を考慮する必要がある。第一に、(i)インタレスト(interest)がキャッシュされているコンテンツによりローカルで満たされることができるのか否か、又はそれが転送される(forward)ことが必要であるのか否かを決定するため、コンテンツ名をルックアップ(lookup)する。合致した場合は、(ii) ルックアップは、応答パケットをアセンブルするのに送信される必要のある、コンテンツそのものを記憶するメモリ領域へのポインタを返す。
【0008】
動作(i)は、少量のデータを移動させることを必要とし、ゆえに、主な性能インジケータは、メモリアクセス待ち時間である。回線速度での動作を維持するためには、メモリインデックスは、最悪の場合でも、最大耐用(sustainable)可能データ速度のスループットと合致する頻度でアクセスされなくてはならない。言い換えると、総ルーターデータ速度(aggregate router data rate)がRで、データチャンクがSc(概して、2〜3kB)を有するとすれば、時間単位当たりに転送されることのできるチャンクの最大数は、R/Scであり、アクセス≦1R/Scとなるように、インデックスへのアクセス数の上限も決める。
【0009】
一方、動作(ii)は、チャンクサイズに依存し、(小さいチャンクの場合)アクセス待ち時間、又は(大きいチャンクの場合)外部データ速度、つまり、ランダムメモリブロックを読み込むときの耐用可能なスループット、のいずれかで駆動されることができる。
【0010】
D. Perino及びM. Varvello著「A reality check for content centric networking」(ACM SIGCOMM ICN workshop、2011)では、H=40bits長のコンテント名のハッシュを採用し、100MBのSRAM(スタティックランダムアクセスメモリ)チップでインデックスが付され、順次アクセス及びLRU置換ポリシーを実装する10GBのDRAM(ダイナミックランダムアクセスメモリ)に記憶された、Sc=1500Bのチャンクを供給する8×40Gbpsインタフェースをサポートするように設計されている。
【0011】
しかし、そのようなメモリサイズでは、世界的に消費されるデジタルデータに対してはとるに足らないように思われ、ICNの成功は、大きいコンテンツ記憶の実現可能性に条件づけされる。従って、SSD(ソリッドステートドライブ)(又は、HDD(ハードディスクドライブ)までも)がキャッシュサイズを数TBにまで大きくすることが望ましいだろう。たとえ、「A reality check for content centric networking」が10GBのDRAMによってインデックスが付される1TBのSSDキャッシュという最先端のルータ設計を提案するとしても、そのような設計はコアICNルータには利用可能ではない。これは、SSDの高いメモリアクセス待ち時間(少なくとも30μs)がメモリ上で動作(i)及び(ii)のボトルネックとなるためであり、0.5Gbpsの最高(であり、不十分な)速度が報告されている。
【0012】
このため、数Gbps回線速度での動作を維持しながら、数テラバイトサイズにまでICNキャッシュを大きくした、シンプルで、さらに安価で、効率的なアーキテクチャの必要性がある。
【発明の概要】
【0013】
これらの目的のため、本発明は、第一キャッシュレイヤと、第二キャッシュレイヤとを含むICNルータを提供し、第一キャッシュレイヤは、第一コンテンツメモリを含み、第二キャッシュレイヤは、第二コンテンツメモリを含み、第二コンテンツメモリは、第一コンテンツメモリよりも大きい容量を有するが、アクセス速度が低く、ICNルータがデータを出力するように要求されたときに、第一キャッシュレイヤが第二キャッシュレイヤからデータをフェッチするように適合されているようにICNルータは構成されており、第一コンテンツメモリは、第一ブロックサイズを呈し、第二コンテンツメモリは、第二ブロックサイズを呈し、第二ブロックサイズは、第一ブロックサイズよりも大きく、第一コンテンツメモリは、スワップ領域を有し、第一コンテンツメモリがそこを通じて第二コンテンツメモリに接続されており、スワップ領域は、第二コンテンツメモリからフェッチされた第二ブロックサイズのブロックの一部として、第一ブロックサイズのブロックを個別に供給するように適合されている。
【0014】
チャンク間の相関関係を利用することにより、本ICNルータは、ICNデータプレーンで到着した要求を、後続するチャンクの要求の予測の判断材料として用いる。そして、多数のチャンクが、大容量ではあるがアクセス速度が低い第二コンテンツメモリ(例えば、SSD)から、高速ではあるが小容量の第一コンテンツメモリ(例えば、DRAM)のスワップ領域に移動させられる。追加的に、複数のチャンクについてメモリ転送動作を一括して行うことにより、SSDがメモリアクセス時間により支配されている動作ポイントから、SSD外部データ速度がボトルネックである動作ポイントへの移行が起きて、耐用可能データ速度の観点から一桁分の利得をえる。最終的に、システムは、(スワップ領域とやり取りする)高速な第一コンテンツメモリにカタログの大部分の第一チャンクを直接的に記憶することによって、(例えば、動画ストリーミングについて)短い起動時の待ち時間を得るようにさらに最適化されることができる。
【0015】
本発明の好ましいが非限定的な特徴は次のようである。
・ 第一キャッシュレイヤは、さらに、第一コンテンツメモリのブロックにインデックスを付する第一インデックスメモリを含み、前記第二キャッシュレイヤは、さらに、前記第二コンテンツメモリのブロックにインデックスを付する第二インデックスメモリを含む。
・ 第一コンテンツメモリは、第一インデックスメモリよりも大きい容量を有するが、アクセス速度が低く、第二コンテンツメモリは、第二インデックスメモリよりも大きい容量を有するが、アクセス速度が低い。
・ ICNルータは、さらに、第二コンテンツメモリよりも大きい容量を有するが、アクセス速度が低い大容量メモリを含む第三キャッシュレイヤを含み、ICNルータがデータを出力するように要求されたときに、第二キャッシュレイヤが第三キャッシュレイヤからデータをフェッチするように適合されているようにICNルータは構成されている。
・ 第一コンテンツメモリは、さらに、第二コンテンツメモリに記憶されている複数のコンテンツのうちの少なくとも第一ブロックが記憶されている動画開始領域を含む。
・ 動画開始領域に少なくとも第一ブロックが記憶されている複数のコンテンツは、最も要求されやすい、第二コンテンツメモリの複数のコンテンツである。
【0016】
第二観点において、本発明は、ICNルータでのコンテンツアクセス方法であって、
(a) ICNルータで、ICNルータの第二キャッシュレイヤの第二コンテンツメモリに少なくとも部分的に記憶さているコンテンツへの要求を受信する工程であって、第二コンテンツメモリは第二ブロックサイズを呈する、工程aと、
(b) ICNルータの第一キャッシュレイヤの第一コンテンツメモリのスワップ領域で、要求されたコンテンツのデータの第二ブロックサイズのブロックを、第二コンテンツメモリからフェッチする工程であって、第一コンテンツメモリは第一ブロックサイズを呈する、工程bと、
(c) 第二ブロックサイズでフェッチされた各ブロックに対して、要求に応じて、第二ブロックサイズでフェッチされたブロックの一部として、第一ブロックサイズのブロックを順次供給する工程cと、
を含む方法。
【0017】
本発明の好ましいが非限定的な特徴は次のようである。
・ 工程aは、さらに、第一コンテンツメモリの動画開始領域にある、要求されたコンテンツの第一ブロックを検索する工程を含む。
・ 要求されたコンテンツの少なくとも第一ブロックが動画開始領域に記憶され、工程bは、要求に応じて、動画開始領域に記憶されている要求されたコンテンツのブロックを順次供給する工程を同時的に含む。
・ 要求されたコンテンツは再生される動画であり、方法は、さらに、動画の供給を一時停止する要求をルータで受信するときは、第一ブロックサイズで少なくとも一つのブロックを順次供給し、動画の供給を再開する要求をルータで受信するときは、最後に供給されたブロックから、工程b及び工程cを再度行う、工程dを含む。
【0018】
第三及び第四観点によれば、本発明は、本発明の第二観点に従う、ICNルータでのコンテンツアクセス方法を実行するコード命令を含むコンピュータプログラム製品及び、本発明の第二観点に従う、ICNルータでのコンテンツアクセス方法を実行するコード命令を含むコンピュータプログラム製品が記憶されているコンピュータ読み取り可能媒体を提供する。
【図面の簡単な説明】
【0019】
本発明の上記及び他の目的、特徴並びに効果は、添付の図面に関連して理解される、本発明の例示的な実施形態の次の詳細な説明から明らかとなっている。
【0020】
【
図1】
図1は、既知のメモリ技術の性質を表すテーブルである。
【
図2】
図2は、本発明に従う、ICNルータの実施形態を表す。
【
図3】
図3は、本発明に従う、ICNルータの実施形態を表す。
【発明を実施するための形態】
【0021】
<ICNキャッシュ>
図1を参照すると、既知のメモリ技術の性質が示されている。各技術項目について、長所及び短所がそれぞれ緑色及び赤色でハイライトされている。
【0022】
図1からは、比較的大きいメモリ読み取りサイズ(64KB−128KB)で、高いSSDメモリスループット(20Gbps−24Gbps)を達成することができることが分かる。一方、HDD技術は、達成可能なデータ速度(1.4Gbps)及びSATA相互接続(6Gbps)の最大データ速度の両方での制限により、それほど好ましくはない。
【0023】
ゆえに、SSDボトルネックをメモリアクセス時間から外部転送速度に移動するシステム設計であれば、維持可能な速度(40x〜48xまで)の観点から一桁を超える利得を得られる可能性がある。付加的に、大きなSSDサイズを与えると、キャッシングに関して好ましいパフォーマンスも期待できる。
【0024】
<ルータアーキテクチャ>
図2を参照すると、本発明は、異種メモリ技術の本質的な差異を活用するマルチレイヤ階層キャッシングシステムを導入するICNルータ1を処理する。
【0025】
ルータ1は、第一キャッシュレイヤL1及び第二キャッシュレイヤL2を含む。第一キャッシュレイヤL1は、第一コンテンツメモリ11を含む。第二キャッシュレイヤL2は、第二コンテンツメモリ21を含む。第二コンテンツメモリ21は、第一コンテンツメモリより大きい容量を有するが、アクセス速度が低い。
【0026】
ルータ1がデータを出力するように要求されたときに、第一キャッシュレイヤL1が第二キャッシュレイヤL2からデータをフェッチするように適合されているようにルータ1は構成されている。言い換えると、システムは、キャッシュの階層として組織化されている。つまり、(数テラバイト)L2キャッシュは、(数Gbps)回線速度で動作する小さいL1キャッシュの後ろに隠されている。L1は、データプレーンにおいて高速サービスについての進行中のビデオのチャンクを含むべきであるという考えである。一方、L2は大きいが遅いので、カタログの重要な部分を記憶することができるが、L1への適切なプリフェッチを必要とする。
【0027】
このような目的のため、第一コンテンツメモリ11は、第一ブロックサイズを呈し、第二コンテンツメモリ21は、第二ブロックサイズを呈し、第二ブロックサイズは、第一ブロックサイズよりも大きい(特には、第一ブロックサイズの複数倍)。最適なブロックサイズについては後に述べる。
【0028】
第一コンテンツメモリ11は、スワップ領域110を有し、第一コンテンツメモリ11がそこを通じて第二コンテンツメモリ21に接続されている。スワップ領域110は、第二コンテンツメモリ21からフェッチされた第二ブロックサイズのブロックの一部として、第一ブロックサイズでブロックを個別に供給するように適合されている。ゆえに、第二ブロックサイズのブロックは、スワップ領域110によって、第一ブロックサイズの複数のブロックのまとまり(batch)として取り扱われる。
【0029】
言い換えると、スワップ領域110は、第二ブロックサイズで第二コンテンツメモリ21からフェッチされたデータを第一ブロックサイズで出力するように適合されている。例えば、第一ブロックサイズが4kBであり、第二ブロックサイズが64kBである場合、スワップ領域110は、第二コンテンツメモリ21からの64kBのブロックを、16個の第一コンテンツメモリ11の4kBのブロックに変換する。ICNでは、オブジェクトは複数の名前付きチャンクに分割され、名前付きチャンクは、同一のオブジェクトに属する後続する他のチャンクの要求の予測の判断材料として用いられることができる。これは、プレフェッチ動作を積極的にトリガすることを示唆し、チャンクのまとまりにわたって動作することで、L2での高転送スループットを維持する。より詳細には、第一ブロックサイズは、チャンクサイズとして選択されることができ、第二ブロックサイズのブロックは、連続したチャンクのまとまりである。
【0030】
ゆえに、(小さいが速い)第一キャッシュL1は、小さいブロックを個別に供給する一方で、複数の小さいブロックが(大きいが遅い)第二キャッシュL2から、第一コンテンツメモリ11のスワップ領域110に移動される。これは、第二キャッシュL2にある小さいブロックにアクセスする際の待ち時間の問題を回避しており、より多くのブロックにアクセスすることで(複数の小さいブロックのまとまりを記憶することで)、ブロック単位での待ち時間のペナルティを回避するのと同時に、早いメモリ転送速度を達成している。
【0031】
まとめると、チャンクのまとまりをL1に提供することによって、L1は、これらのチャンクを一つずつ最高速度で供給することができ、さらに、L2でのチャンクのまとまりで動作することによって、チャンクが個別に扱われるときに、L2のパフォーマンス制限を回避する。
【0032】
好ましい実施形態においては、
図1の現在のストレージ技術を用いると、第一コンテンツメモリ11は、ダイナミックランダムアクセスメモリ(DRAM)であり、第二コンテンツメモリ21は、ソリッドステートドライブ(SSD)である。現在、利用可能な既存の技術では、2GBと20GB(好ましくは、約10GB)との間の容量を備えた第一コンテンツメモリ11と、2TBと20TB(好ましくは、訳10TB)との間の容量を備えた第二コンテンツメモリ21と、が許容される。DRAMメモリだけが、唯一、回線速度でデータ要求を維持し、満足させることができるものであることに留意されたい。SSDからDRAMのスワップ領域110への積極的なメモリ転送により、おそらくデータプレーンでの要求の到着の関連で、キャッシュ階層全体では、回線速度でのデータ要求を維持し、満足させることができることが確保されている。
【0033】
説明したように、チャンクサイズ(つまり、第一ブロックサイズ)は、最小データオブジェクトのグラニュラリティである。小さいチャンクサイズが好ましい(例えば、無数の小さいオブジェクトに対してパディング(padding)ペナルティを受けるのを回避する)。明らかに、チャンクサイズが全てのシステム動作の頻度を決定するため、より大きいチャンクサイズは、システムの複雑性を緩和するので有益でもある。現在進行中の取り組みでは、約4kBであるより大きいチャンクサイズを採用しており、2kBと20kBとの間のチャンクサイズ、好ましくは、10kBのチャンクサイズを合理的な妥協点と見なす。それでも、効率的なメモリ転送は、より大きい読み込み/書き出しサイズを必要とするので、早い外部データ速度を維持することのできるバッチサイズを達成するため、B個のチャンクをまとめる必要がある。
図1から、SSDは、64−128kBのランダム読み出しにおいて、20−24kGbpsを達成するので、第二ブロックサイズは、64kBと128kBとの間であることが安全である。つまり、B個のセットは、8個と32個の間のチャンクを含み、好ましくは、B=10個のチャンクで、言い換えると、100kBの第二ブロックサイズを有するとよい。
【0034】
ゆえに、ルータ1は、L2の外部データ速度がボトルネックとなるように設計される。また、PCIeバスは、64GbpsまでのIOデータ速度をサポートするので、追加的な利得のため複数のパラレルSSDを用いることができることも分かる。
【0035】
<インデックス>
有利には、第一キャッシュレイヤL1は、さらに、第一コンテンツメモリ11のブロックにインデックスを付する第一インデックスメモリ12を含み、第二キャッシュレイヤL2は、さらに、第二コンテンツメモリ21のブロックにインデックスを付する第二インデックスメモリ22を含む。キャッシュインデックスは、データプレーンにおいて、各名前の検索でアクセスされる。インタレストパケット(interest packet)がルータにヒットするときはいつでも、その名前がインデックスに存在する場合、インデックスは、ストレージメモリに対応する名前付きデータのメモリ位置を含んでいる。
【0036】
ゆえに、各レベルにおいて、キャッシュは古典的な(classical)(インデックス、ストレージ)ペアに組織化されている。第一インデックスメモリ12は、第一コンテンツメモリ11よりも高速であり、同様に、第二インデックスメモリ22は、第二コンテンツメモリ21よりも高速であることが望ましい。同時に、メモリインデックスは、オブジェクトが置かれているコンテンツメモリ内の位置へのポインタを記憶することのみをすればよいので、インデックスメモリ12及び22は、それぞれ、コンテンツメモリ11及び21よりもかなり小さいサイズであるということになる。
【0037】
その結果として、本ICNルータの好ましい実施形態においては(
図2に表されているように)、L1ではSRAMチップがDRAMキャッシュにインデックスを付す一方、L2ではDRAMキャッシュがSSDチップにインデックスを付す。
【0038】
現在、利用可能で入手可能な技術では、20MBと200MBとの間にある容量(好ましくは、100MB)を備えた第一インデックスメモリ12、及び2GBと20GBとの間にある容量(好ましくは10GB)を備えた第二インデックスメモリ22が許容される。
【0039】
<第三レイヤ>
図3に表されているように、ルータ1は、さらに、第二コンテンツメモリ21よりも大きい容量を有するが、アクセス速度が低い大容量メモリ31(例えば、HDD)を含む第三キャッシュレイヤL3を含んでもよい。ルータ1がデータを出力するように要求されたときに、第二キャッシュレイヤL2が第三キャッシュレイヤL3からそのデータをフェッチするように適合されているように、ルータ1は構成されている。この大容量メモリ31には、第三インデックスメモリ(例えば、別のDRAM)を設けることができる。
【0040】
このL3は、費用のかからないやり方でL2のサイズを大きくするのに有益である可能性がある。第三ブロックサイズ(第二ブロックサイズを上回る)が、大容量メモリ31に用いられてよい。これは、また、大容量メモリ31の内容を一時的に記憶し、大容量メモリ31からフェッチされた第三ブロックサイズのブロックの一部として、第二ブロックサイズのブロックを個別に供給するように適合されている第二スワップ領域210として、第二コンテンツメモリ21の一部を管理することが必要であろう。
【0041】
ICNアーキテクチャは、要求されたコンテンツが動画であるときに、特に有益である。今日、インターネットストリーミングは、YouTube(登録商標)、Kankan、Hulu(登録商標)等のポータルにより占められている。ネットワーキングの観点では、動画トラフィックは、再生がつっかえるのを回避するため、ネットワークが維持することが必要な(平均)ストリーミング速度によって特定されることができる。
【0042】
ストリーミング速度は、一方では、物理的ディスプレイの技術的制約に依存し、他方では、その解像度で符号化されたコンテンツの可用性に依存する。物理的解像度は着実に上がっている(たとえば、4Kディスプレイが最近登場した)が、そのような非常に高解像度のコンテンツは、消費者市場では容易に利用可能とはいえない。
【0043】
従って、無料で利用可能なインターネントコンテンツの大部分は、一般的には、かなり低い速度でストリーミングされている。例えば、YouTube等のよく知られている無料サービスのデフォルトの動画解像度は、計測値によると、500Kbpsの中速度でH264で符号化された640×360のものである。Netflix(登録商標)等のよく知られている有料サービスでも、HD(1280×720、5Mbps)又はFHD(1920×1080、7Mbps)でのコンテンツはほんのわずかしか提供されていない。結果として、ストリーミング動画の平均サイズは、10MB(低品質)〜100MB(高品質)である。つまり、1000個〜10000個のチャンクである。
【0044】
本ICNルータ1は、さらに、第二コンテンツメモリ21に記憶されている複数のコンテンツの少なくとも第一ブロックが記憶される動画開始(SoV)領域111を、第一コンテンツメモリ内に設けることによって、ICNの特異性を最適化することを提案している。より詳細には、動画開始領域111に少なくとも第一ブロックを記憶してもらっているコンテンツは、最も要求されやすい、つまり、人気のある動画である、第二コンテンツメモリ21のコンテンツである。スワップ領域110、SoV領域111及び第二コンテンツメモリ21の各々は、リーストリーセントリィユーズド(LRU)置換ポリシーに従って、管理されてよい。
【0045】
割り当てられたよく知られた法則(通常は、ジップの法則(Zipf))に従うカタログサイズの500,000,000の動画に対して、サブセットの大体500,000の動画が、要求の65%を構成する。ゆえに、これら500,000の動画の第一チャンクを動画開始領域111に記憶しておくことで、これらの動画の一つの任意の要求は、要求を行っているユーザに第一チャンクを供給することで、即座に取り扱われることができつつ、スワップ領域110を介して、ビデオの残りについてL2からL1への転送を開始する。
【0046】
(i) SoV111は、カタログのプロパティに関連する一方、スワップサイズは、アクティブフローの最大値を反映すること、(ii) スワップ領域110は、プレフェッチされたチャンクのまとまりの視聴時間(watching time)(ストリーミング速度=500Kbpsのときは、1.6s、ストリーミング速度=5Mのときは、160ms)以上に時間が経過する前に退去されないこと保証する程度に十分に大きくなくてはならないこと、を観察する。
【0047】
簡潔性のため、SoV領域111とスワップ領域110とが、第一コンテンツメモリ11の等しい区画とすると、サイズが10GBでは、いずれの領域も5GBのキャッシュ空間相当である。このため、SoV111は(第一ブロックサイズが10kBで)500,000の動画を保持することができる一方、スワップ領域は(第二ブロックサイズが100kBで)50,000の同時フロー(concurrent flow)を許容するので、潜在的には、20−24Gbpsの総ストリーム(aggregate streaming)まで維持する。
【0048】
これらの図は、ユーザによって要求された残りの全てのチャンクがL2キャッシュから取り出され、スワップ領域110に一時的に記憶されている場合を示していることが分かる。これは、全くもって、スワップサイジングの最も悪い場合である。
【0049】
平均的な動画のサイズが10MBとすると、今日のYouTubeのカタログの上位500,000の動画を保持するには、約5TBの第二コンテンツメモリ21が必要となることを強調する。
【0050】
キャッシングパフォーマンスは、主にL2サイズにより駆動されることが期待されるので、ルータが、20−24Gbpsよりも遅いデータ速度で動作するときは、より小さいL1DRAMキャッシュ11を考慮することが道理にかなっている。これにより、完全にはまかなえない場合があるが、付加的なSSDコストを補償することのできるコスト低減(主に、L1SRAM12が収縮するので)となるためである。例えば、1GBのスワップ領域110は、4−4.5Gbpsのデータ速度を維持するのに必要とされる最小サイズに対応する。1GBのSoV領域111は、かわりに、上位10,0000の動画についての開始チャンクを記憶することができ、要求の58%を超えて責任を持つ。
【0051】
<コンテンツの要求>
M個の動画を有するカタログ内にあるオブジェクトmのi番目のチャンクをciで示す。全てのチャンクが等しいサイズScを有し、例えば、10kB(例えば、オブジェクトの一番最後のチャンクに対しては、パディングを用いるかもしれない)である。オブジェクトmの第一チャンクc1の要求は、その前のチャンクの要求とは独立していると考えることができるが、同じオブジェクトのその後に続くチャンクci(i>1)の要求は時間的に非常に関連している。動画の場合、ストリーミング速度に関連した間隔によって分離されたチャンクであると大まかに想定されることができる。
【0052】
第一チャンクc1についてのインタレストがICNルータ1にヒットすると、lookup()が、まず、第一コンテンツメモリ11に対して発行され、SoV領域111内でヒットする場合、(i)c1データを含むフレームが、アセンブルされ、send()を介して、返される。(ii)システムが第二コンテンツメモリ21に信号を送り、B個の連続するチャンクのまとまり(つまり、第二ブロックサイズのブロック)をスワップ領域110にprefetch()する(そして、第一インデックスメモリ12はこれに従って更新される)。
【0053】
このため、動画のチャンクがL2からL1に移動し、対応する要求の前にL1インデックス12を更新して、効率的にキャッシュにヒットする。
【0054】
L1がc1をミスした場合(つまり、第一チャンクがSoV領域111に存在しない)、コンテンツ検索が、引き続き(i)lookdown()を介してICNルータ1内のL2内及び/又は(ii)interest forward()を介してルータ周辺内で行われる。動作(i)〜(ii)は、並列的に行われる(これにより、ユーザへの遅延を最適化する)又は、順次的に行われる(これにより、ネットワークトラフィックを節約する)。順次的動作であれば、L2ミスの場合だけネットワークをトリガするが、L2インデックス内のlookdown()時間に比例した遅延が付加される。並列的動作であれば、この遅延を回避するが、L2ヒットの場合でも不必要なネットワークトラフィックを生成するかもしれない。
【0055】
並列的動作は、よりよいユーザエクスペリエンスにつながり、オーバヘッドはオブジェクトの第一チャンクに制限される(例示の値に従うと、10MBの動画の10KBは、0.1%のオーバヘッドに対応する)。さらに、並列的動作はシステムの実装を簡潔にすることもできる。これは、(別のパスを介した再送信のための)タイマ及び任意のさらなる状態を維持することの必要性を回避するためである。
【0056】
L1及びL2の分断をさらに押し進めると、原理的には、SoV領域111及び第二コンテンツメモリ21が全くばらばらのチャンクセットを記憶するようにすることがより効率的であろう。特に明記しない限り、キャッシングの観点から、L1及びL2の両方に第一チャンクの重複したコピーを記憶することは無駄である。これは、後者は利用されることがないためである。
【0057】
しかし、第二コンテンツメモリ21は第一コンテンツメモリ11よりかなり大きく、特に持続性があるので、このわずかな重複があることによりシステムが、障害から容易に回復し、最も人気のあるオブジェクトの第一チャンクを転送することによってSoV領域111を再始動することができる。
【0058】
第一チャンクを消費した後、ユーザはそれに続くチャンクの要求を開始することになる。プリフェッチにより、チャンクc2…cBが、すぐに第一コンテンツメモリ11で見つかるので、チャンクcB+1の要求が到着したときはいつでも、システムは積極的にcB+1…cB+2についてlookdownすることができる。CCN表現においては、チャンクの名前の最後の部分はチャンクの連続番号を表すので、チャンクckを受信したら、lookdown()決定は、単純な法(modulus)の割り算、k%B=B−1を検査する必要があるだけなので簡単である。
【0059】
<最適化>
ユーザが時間的に飛ばして、順次的な視聴モードを壊さない限り、この行動が継続される。順次的な動作が広く優勢である一方で、ユーザが一時停止したり、巻き戻し又は早送りしたりすることができる、進化したVCR機能等の追加的な価値サービスにユーザはますます依存して、順次的ではないチャンクの要求パターンを生成するかもしれないことは依然として認識される。
【0060】
追加的なシステム最適化は、正確な動作には必要ではないが、ICNネットワークのエッジへの適度な完全性を押し進めることによって利得を提供することができる。
【0061】
− 一時停止:一時停止時間が十分に長い(つまり、最後の要求から、オブジェクトmが第一コンテンツメモリ11から退去するまでの時間である、スワップ領域110の特性時間より大きい)場合は、コンテンツは消失する。ゆえに、ユーザが再開するときは、代表的には、ユーザバッファにはまだない次のチャンクについてのユーザにより送信された第一インタレストパケットは上流に伝搬される。システムの効率性をあげるため、プリフェッチイングによりユーザのキャッシュを拡張するべきである。ユーザが動画を一時停止すると、復号器は、ダウンロードを一時停止にする前に、2、3のエクストラチャンクを自動的に取り出し続ける。そのようなエクストラチャンクは、ユーザのプリアウトバッファにローカルで記憶され、ゆえに、ユーザが一時停止した地点の後ろを視聴したいときに、それらはすでに利用可能なものとなっている。再生が再開したらすぐに、プレーヤーはユーザバッファにまだない次のチャンクについてのインタレストを積極的に送信するべきである。これにより、システムは、プリフェッチ機構を再開することができ、遅いキャッシュからスワップ領域へチャンクを通常のやり方で積極的に転送する。付記として、コンテンツが、L2に記憶されている可能性が高いので、プレーヤーは一時停止後の第一インタレストについては範囲を限定する(例えば、低いTTLを設定する)ことで第一ICNルータを超えて伝搬する不要なlookupを回避することができる(そして、範囲が限定されたインタレストがL2内のコンテンツにヒットしない場合にのみ、タイムアウト後に、ユーザは新たなインタレストパケットを、非制限TTLで送信することになる)。
【0062】
− 早送り:チャンクの再生時間のB倍よりも大きく先にとばす場合、新たなチャンクの要求は、L1キャッシュミスが生じ(言い換えると、要求されたチャンクは、第二コンテンツメモリからの他のブロック内にある)、第一チャンクc1について既に説明したような動作が生じる。けれども、再生は一時停止されていないので、この場合はわずかなバッファ遅延を妨げるものは何もない可能性がある。
【0063】
- 巻き戻し:これは、ユーザのキャッシュによって完全に隠されることができる。前のチャンクが既に再生されているので、それらは、ユーザデバイス内で依然として利用可能であり、何ら特定の行動は必要とされない。
【0064】
方法
第二観点によれば、本発明はICNルータ1でのコンテンツアクセス方法を提案する。
【0065】
その方法は、ルータ1で、ルータ1の第二キャッシュレイヤ+2の第二コンテンツメモリ21に少なくとも部分的に記憶されているコンテンツの要求を受信する工程aで開始する。第二コンテンツメモリ21は、第二ブロックサイズを呈する。この工程aはさらに、コンテンツが人気のある動画である場合に、それを含みやすい第一コンテンツメモリ11の動画開始領域111に、要求されたコンテンツの第一ブロックを検索する工程を含む。
【0066】
二番目の工程bにおいて、第一ブロックがSoV領域に見つかった場合は、それは要求に応じて供給される。同時に、説明したように、要求されたコンテンツのデータの第二ブロックサイズでのブロックが、ルータ1の第一キャッシュレイヤL1の第一コンテンツメモリ11のスワップ領域110で、第二コンテンツメモリ21からフェッチされる。第一コンテンツメモリ11は第一ブロックサイズを呈する。既に説明したように、第一サイズのブロックがチャンクである場合は、第二サイズのブロックは、チャンクのまとまりである。
【0067】
工程cにおいて、第二ブロックサイズでフェッチされたブロックの各々について、このブロックが含むチャンクは、要求に応じて、個別に順次供給される。
【0068】
最後に、第二ブロックサイズでの新たなブロックが第二コンテンツメモリからプリフェッチされ、チャンクのまとまりの最後から二番目のコンテンツの要求を受信したら、第一コンテンツメモリのスワップ領域に複製される(つまり、k%B=B−1を満たすチャンクインデックスk)。
【0069】
コンテンツが動画であるときは、前述した「最適化」が行われ得る。方法は、ゆえに、動画の供給を一時停止する要求をルータ1で受信するとき(つまり、ユーザが動画の再生を一時停止した)に、さらに、順次第一ブロックサイズで少なくとも一つのブロックを供給し(これにより、エクストラチャンクがユーザのプレイアウトバッファにローカルで記憶される)、動画の供給の再開の要求をルータ1で受信するとき、最後に供給したブロックから工程b及びcを行う(つまり、第二コンテンツメモリ21からチャンクの固まりのフェッチングを再開)工程dを含んでよい。ユーザバッファ内に記憶されたチャンクがすでに利用可能であるので、ユーザに与える影響はないだろう。
【国際調査報告】