JP2018511131A - オンライン媒体のための階層的なコストベースのキャッシング - Google Patents

オンライン媒体のための階層的なコストベースのキャッシング Download PDF

Info

Publication number
JP2018511131A
JP2018511131A JP2017550199A JP2017550199A JP2018511131A JP 2018511131 A JP2018511131 A JP 2018511131A JP 2017550199 A JP2017550199 A JP 2017550199A JP 2017550199 A JP2017550199 A JP 2017550199A JP 2018511131 A JP2018511131 A JP 2018511131A
Authority
JP
Japan
Prior art keywords
asset
cache
cache device
request
database
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.)
Ceased
Application number
JP2017550199A
Other languages
English (en)
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 JP2018511131A publication Critical patent/JP2018511131A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/16General purpose computing application
    • G06F2212/165Mainframe system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/263Network storage, e.g. SAN or NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • G06F2212/284Plural cache memories being distributed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/464Multimedia object, e.g. image, video

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

第1のキャッシュデバイスを動作させる方法は、第1のキャッシュデバイスにおいて、第1のアセットを第2のデバイスに送ることを求めるリクエストを受信することと、第1のアセットが第1のキャッシュデバイスに格納されているかどうかを決定することと、決定することにより、第1のアセットが第1のキャッシュデバイスに格納されていないと決定したときには、第1のキャッシュデバイスにおいて、第1のアセットを獲得し、第1のキャッシュデバイスにおいて、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均と第1のキャッシュデバイスの特徴的限界値とを比較し、第1のアセットと関連するコストを計算し、比較に基づき、第1のアセットを第1のキャッシュデバイスにおいて選択的に格納し、獲得された第1のアセットと計算されたコストとを第2のデバイスに送ることと、を含み得る。

Description

本出願は、2014年10月16日に出願された米国仮特許出願第62/064,631号、および2014年12月19日に出願された米国特許出願第14/577,039号の優先権を主張するものであり、その両開示は、引用によりその全体が本明細書に組み込まれている。
例示的実施形態は、一般に、キャッシング媒体に関し、詳細には、オンライン媒体のための階層的なキャッシングを提供することに関する。
オンライン動画は現在、インターネットトラフィックの最大の構成要素または最大の構成要素の1つである。そのような動画をキャッシングすることは、従来型のアルゴリズムに対して追加的な要件を加える。多くの従来型のアルゴリズムでは従来、ヒット率が、それらのアルゴリズムを比較するために用いられる主要な性能指標であった。ますます新しくなるキャッシュは、SSDメモリのアクセス速度および信頼性により、記憶のためにSSDメモリを用いている。SSDメモリの寿命は、使用可能な書き込みサイクルの回数が限られていることがある。置換率、すなわちリクエスト当たりの書き込みサイクルの回数が、そのようなメモリでの関心対象となり得る別の主要な性能指標である。一部のオンライン動画使用データによると、オンライン動画のかなりの部分が、当初は極めて人気があるが急速に人気が低下する最近のテレビ番組を再放送するのに用いられる。そのような急速な変化を伴うキャッシングアルゴリズムの性能を測定することは、別の新たな性能指標である。典型的には、オンラインキャッシングは、典型的には2秒から10秒の間である小さなチャンクに動画を格納する。さらに、各動画は、動画当たりのチャンク数をさらに増加させる複数の動画品質レベルへと符号化され得る。全体では、オンライン動画は、キャッシングシステムにおいてエンドユーザによりリクエストされる可能性があるファイルの数を1千倍またはそれ以上に増加させ得る。
過去30年にわたる研究で提案されてきた多くの従来型のキャッシングアルゴリズムは、商用のキャッシュでは実現されていない。たとえば、実現された方式の顕著な例には、最長時間未使用(LRU:least recently used)のような単純な方式、ならびにグリーディデュアルサイズ頻度(GDSF:greedy dual size frequency)、および動的エイジングを伴う最小使用頻度(LFU−DA:least frequently used with dynamic aging)など、他のいくつかのものがある。
さらに、キャッシュのサイズは、有限であり得る。したがって、新たなアセットの格納には、格納されているアセットの削除が必要とされ得る。しかし、格納されているアセットのどちらを削除するかを決定するときに、多くの従来型のキャッシングアルゴリズムは、格納されている各アセットの再獲得に伴うコストを考慮に入れていない。
いくつかの例示的実施形態は、キャッシュデバイスを動作させる方法に関する。
いくつかの例示的実施形態において、この方法は、第1のキャッシュデバイスにおいて、第1のアセットを第2のデバイスに送ることを求めるリクエストを受信することと、第1のアセットが第1のキャッシュデバイスに格納されているかどうかを決定することと、決定することにより、第1のアセットが第1のキャッシュデバイスに格納されていないと決定したときには、第1のキャッシュデバイスにおいて、第1のアセットを獲得し、第1のアセットと関連するコストを計算し、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均と第1のキャッシュデバイスの特徴的限界値とに基づいて、第1のアセットを第1のキャッシュデバイスにおいて選択的に格納することであって、第1のキャッシュデバイスの特徴的限界値は、第1のキャッシュにおいてキャッシュされているアセットに対する最後のリクエストの受信と第1のキャッシュにおいてキャッシュされているアセットの削除との間の、コストに配慮した平均時間期間を表す、格納することと、獲得された第1のアセットと計算されたコストとを第2のデバイスに送ることと、を含む。
いくつかの例示的実施形態では、第1のキャッシュが、複数の階層レベルに分割されたコンテンツ配信ネットワークの複数のキャッシュデバイスのうちの1つであり、この方法は、複数のキャッシュデバイスのそれぞれに対し、リクエストされたアセットに対するリクエストが複数のキャッシュデバイスのうちのそれぞれのキャッシュデバイスによって受信されたときに、リクエストされたアセットの限界値の移動平均を決定することと、キャッシュデバイスがアセットを削除するときに、複数のキャッシュデバイスのうちのそれぞれのキャッシュデバイスと関連する特徴的限界値を決定することと、をさらに含む。
いくつかの例示的実施形態では、獲得することが、第1のアセットと、第1のアセットと関連する獲得されたコストとを複数の階層レベルのうちのより上位のレベルから獲得し、コストを計算することが、選択的に格納することが第1のアセットを格納しない場合には、獲得されたコストに限界コストを加算することを含む。
いくつかの例示的実施形態では、この方法は、第1のキャッシュデバイスの特徴的限界値を、第1のキャッシュデバイスに関する第1のアセットの限界値(MU)の移動平均の初期化された値よりも高い値として初期化することと、第1のキャッシュデバイスにおいてキャッシュされているアセットに対する最後のリクエストの受信と第1のキャッシュデバイスにおいてキャッシュされているアセットの削除との間の時間期間の指数関数的重み付き移動平均と、アセットに関連するコストとに基づいて、最長時間未使用キャッシュ削除ポリシに従って第1のキャッシュデバイスの特徴的限界値を更新することとによって、第1のキャッシュデバイスの特徴的限界値を決定することをさらに含む。
いくつかの例示的実施形態では、第1のキャッシュデバイスの特徴的限界値を更新することは、第1のキャッシュがアセットを削除するときに、第1のキャッシュデバイスの特徴的限界値を緩やかに増加させることをさらに含む。
いくつかの例示的実施形態では、この方法は、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均を、第1のキャッシュデバイスの特徴的限界値の初期化された値よりも低い値として初期化することと、第1のキャッシュデバイスにおける、第1のアセットに対するリクエストの連続的な受信の間の時間期間の指数関数的重み付き移動平均と、第1のアセットに関連するコストとに基づいて、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均を更新することであって、リクエストは、第1のアセットを別のデバイスに送るように第1のキャッシュデバイスにリクエストする、更新することとによって、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均を決定することを含む。
いくつかの例示的実施形態では、選択的に格納することが、第1のアセットに対する最初のリクエストが第1のキャッシュデバイスにおいて受信されたときに、第1のアセットを第1のデータベースに割り当てることと、第2のリクエストが最初のリクエストと連続的に受信されたときには、第1のアセットの到着間時間を、最初のリクエストおよび第2のリクエストが第1のキャッシュデバイスにおいて受信された時間に基づいて決定し、到着間データベースに格納されているアセットの数が閾値よりも大きいまたは閾値と等しい場合には、到着間データベースに格納されている複数のアセットのうちのどれが、第2のアセットと関連するコストが増加するにつれて減少する、そのアセットと関連する最大の限界値を有するかに基づき、到着間データベースから取り除くべき第2のアセットを決定することであって、到着間時間データベースはアセットに対応するリクエストの到着時間を格納するものであり、到着間時間データベースは第1のデータベースとは異なる、決定することと、第2のアセットを到着間データベースから取り除くことと、第1のアセットを到着間時間データベースに割り当てることと、を含む。
いくつかの例示的実施形態では、この方法は、アセットの限界値を、複数のアセットのそれぞれのアセットの最後のリクエストされた時間をそれと関連するコストによって除算することによって、決定することをさらに含む。
1つまたは複数の例示的実施形態によれば、第1のキャッシュデバイスは、プロセッサとメモリとを含み得る。
いくつかの例示的実施形態では、メモリはコンピュータ可読コードを含み得、コンピュータ可読コードは、プロセッサによって実行されると、プロセッサを、第1のアセットを第2のデバイスに送ることを求めるリクエストを受信し、第1のアセットが第1のキャッシュデバイスに格納されているかどうかを決定するように構成し、プロセッサが、第1のアセットは第1のキャッシュデバイスに格納されていないと決定したときには、プロセッサは、第1のキャッシュデバイスにおいて、第1のアセットを獲得し、第1のアセットと関連するコストを計算し、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均と第1のキャッシュデバイスの特徴的限界値とに基づいて、第1のアセットを第1のキャッシュデバイスにおいて選択的に格納するように構成されており、第1のキャッシュデバイスの特徴的限界値は、第1のキャッシュにおいてキャッシュされているアセットに対する最後のリクエストの受信と第1のキャッシュにおいてキャッシュされているアセットの削除との間の、コストに配慮した平均時間期間を表しており、そして、プロセッサは、獲得された第1のアセットと計算されたコストとを第2のデバイスに送るように構成されている。
1つまたは複数の例示的な実施形態によれば、コンテンツ配信ネットワークを動作させる方法であって、このコンテンツ配信ネットワークは、複数の階層レベルに分割された複数の第1のキャッシュデバイスを含んでおり、複数の第1のキャッシュデバイスのそれぞれは、プロセッサとメモリとを含む、方法。
いくつかの例示的実施形態では、メモリは、コンピュータ可読コードを含んでもよく、このコンピュータ可読コードは、プロセッサによって実行されると、それぞれの第1のキャッシュデバイスのプロセッサを、第1のアセットを第2のデバイスに送ることを求めるリクエストを受信し、第1のアセットがその第1のキャッシュデバイスに格納されているかどうかを決定し、第1のアセットがその第1のキャッシュデバイスに格納されていないとプロセッサが決定すると、第1のキャッシュデバイスにおいて第1のアセットを獲得し、第1のアセットと関連するコストを計算し、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均と第1のキャッシュデバイスの特徴的限界値とに基づき、第1のアセットを第1のキャッシュデバイスに選択的に格納し、なお、第1のキャッシュデバイスの特徴的限界値は、第1のキャッシュにおいてキャッシュされているアセットに対する最後のリクエストの受信と第1のキャッシュにおいてキャッシュされているアセットの削除との間の、コストに配慮した平均時間期間を表し、そして、獲得された第1のアセットを第2のデバイスに送るように、構成する。
少なくともいくつかの例示的実施形態が、以下で提供される詳細な説明と添付の図面とから、より完全に理解されることになるであろうが、以下の添付の図面では、類似の要素は類似の参照番号によって表されており、参照番号は、例証として与えられているに過ぎず、例示的実施形態を限定するものではない。
いくつかの例示的実施形態によるデータネットワークの一部を示す図である。 階層的キャッシュシステムの編成を示す図である。 例示的実施形態によるネットワーク要素の例示的構造を示す図である。 いくつかの例示的実施形態によりオンライン媒体の階層的キャッシングを実行するようにネットワーク要素を動作させる例示的方法を示すフローチャートである。 他の例示的実施形態によりオンライン媒体の階層的キャッシングを実行するようにネットワーク要素を動作させる例示的方法を示すフローチャートである。
ここでは、様々な例示的実施形態が、いくつかの例示的実施形態が示されている添付の図面を参照して、より完全に説明される。
本明細書では、詳細な例証のための実施形態が、開示される。しかし、本明細書で開示される特定の構造的および機能的詳細は、少なくともいくつかの例示的実施形態を説明するという目的のための、単に代表的なものである。しかし、例示的実施形態は、多くの代替的形式で具体化され得るのであって、本明細書において与えられている実施形態だけに限定されるものとして解釈されるべきではない。
したがって、例示的実施形態は様々な修正および代替的形式を取り得るのではあるが、これらの実施形態は、図面では例によって示されており、本明細書で詳細に説明されることになる。しかし、例示的実施形態を開示される特定の形式に限定するという意図が存在しているのではなく、それとは対照的に、例示的実施形態は、例示的実施形態の範囲内に含まれるすべての修正、均等物および代替物に及ぶことを理解されたい。図面における説明を通じて、類似の番号は、類似の要素を指す。本明細書で用いられる「および/または(and/or)」という用語は、関連してリスト化されている項目のうちの1つまたは複数の、いずれかおよびすべての組合せを含む。
ある要素が別の要素と「接続される(connected)」または「結合される(coupled)」と称される場合には、他の要素と直接的に接続または結合される場合があり得るし、または、介在する要素が存在する場合があり得る、ということが理解されるであろう。それとは対照的に、ある要素が他の要素と「直接的に接続される(directly connected)」または「直接的に結合される(directly coupled)」と称される場合には、介在する要素が存在しない。要素間の関係を説明するのに用いられる他の語は、同様に、解釈されるべきである(たとえば、「間に(between)」と「直接的に間に(directly between)」、「隣接する(adjacent)」と「直接的に隣接する(directly adjacent)」など)。
本明細書で用いられる用語は、特定の実施形態を説明するためのものに過ぎないのであって、例示的実施形態を限定するようには意図されていない。本明細書で用いられる単数形「1つの(a)」、「1つの(an)」および「その(the)」は、文脈が明らかにそうではないことを示していない限り、複数形を含むことが意図されている。「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で用いられるときには、言明された特徴、整数、ステップ、動作、要素および/またはコンポーネントの存在を特定するのであるが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、コンポーネントおよび/またはそれらのグループの存在または追加を排除しない、ということもさらに理解されるであろう。
いくつかの代替的実装では、記載されている機能/作用が、図面に記載の順序とは異なる順序で生じ得ることも、注意されるべきである。たとえば、連続して示されている2つの図面が、関連する機能/作用に応じて、実際には、実質的に同時に実行されることがあり得るし、または、逆の順序で実行される場合があり得る。
例示的実施形態は、本明細書では、適切な計算環境で実装されるものとして、論じられる。必要ではないが、例示的実施形態は、1つまたは複数のコンピュータプロセッサまたはCPUによって実行されているプログラムモジュールまたは機能プロセスなどのコンピュータ実行可能な命令という一般的な文脈において、説明されることになる。一般に、プログラムモジュールまたは機能プロセスは、特定のタスクを実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。
本明細書で論じられるプログラムモジュールと機能プロセスとは、既存の通信ネットワークにおける既存のハードウェアを用いて、実装され得る。たとえば、本明細書で論じられるプログラムモジュールと機能プロセスとは、既存のネットワーク要素または制御ノード(たとえば、図1に示されているeNB)において既存のハードウェアを用いて、実装され得る。そのような既存のハードウェアは、1つまたは複数のデジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)コンピュータなどを含み得る。
以下の説明では、例証のための実施形態は、そうではないことが示されない限り、1つまたは複数のプロセッサによって実行される(たとえば、フローチャート形式を有する)動作の作用および記号表現を参照して説明される。よって、そのような作用および動作は、時にはコンピュータ実行されると称されるのであるが、構造化された形式を有するデータを表す電気信号のプロセッサによる操作を含むことが理解されるであろう。この操作が、データを変換する、または、コンピュータのメモリシステムの中の場所にデータを維持するのであるが、これが、当業者によって十分に理解される態様で、コンピュータの動作を、再設定するか、または、それ以外の方法で変更する。
例示的ネットワークアーキテクチャ
図1は、1つまたは複数の例示的実施形態によるデータネットワーク100の一部を示している。通信ネットワーク100は、エンドユーザ110と、コンテンツ配信ネットワーク(CDN)130と、配信元サーバ140とを含む。
エンドユーザ110は、たとえば、たとえば電子ユーザデバイスによって具体化され得る。電子デバイスは、モバイルデバイス、スマートフォン、ラップトップ、タブレット、またはパーソナルコンピュータを含み得る。エンドユーザ110は、配信元サーバ140に格納されているコンテンツを、CDN130を経由して、受信することができる。エンドユーザ110とCDN130と配信元サーバ140とは、相互に、たとえばインターネットを通じて接続され得る。
CDN130は、キャッシュ135A−Fを含む。キャッシュ135A−Fは、それぞれ、媒体コンテンツを格納するためのストレージを含む。キャッシュ135A−Fは、たとえば、サーバにて、ルータにて、またはワイヤレス通信ネットワークコンポーネントにて、共に、グループとして、または個別的に具体化され得、なお、ワイヤレス通信ネットワークコンポーネントは、たとえば、基地局(BS)、進化型ノードB(eNB)、または無線ネットワークコントローラ(RNC)を含む。CDN130は、6つのキャッシュ135A−Fだけを含むものとして示されているが、任意の数のキャッシュを含んでいてかまわない。さらに、図1に示されている例では、配信元サーバ140はCDN130と別個である。しかし、1つまたは複数の例示的実施形態によれば、配信元サーバ140は、CDN130の一部と考えられてもよい。
配信元サーバ140は、コンテンツリクエストに応答してコンテンツを提供するサーバである。たとえば、配信元サーバ140は、エンドユーザ110によってストリーミングをリクエストされ得る1つまたは複数の動画に対応するコンテンツを格納し得る。この場合に、配信元サーバ140は、特定の動画と関連するコンテンツリクエストを、たとえばCDN130の内部のあるキャッシュから受信し得、リクエストされたコンテンツを提供することによって、リクエストに応答し得る。単純化する目的で、ただ1つの配信元サーバ140が示されているが、データネットワーク100は、任意の数の配信元サーバを含むことがあり得る。
CDN130におけるキャッシュは、階層的なキャッシュ構造に編成され得る。図2Aは、階層的なキャッシュシステムの例示的編成を示す図である。図2Aに示されているように、階層的キャッシュシステムにおけるキャッシュは、ツリー構造に編成され得る。図2Aにおける各キャッシュは、座標(j,k)によって示されたインデックス「j」と階層レベル「k」とを有する。したがって、最低の階層レベルk=0は、キャッシュ(0,0)、キャッシュ(1,0)、キャッシュ(2,0)、およびキャッシュ(3,0)という4つのキャッシュを含む。2番目に高い階層レベルk=1は、キャッシュ(0,1)およびキャッシュ(1,1)という2つのキャッシュを含む。最高の階層レベルk=2は、キャッシュ(0,2)という1つのキャッシュを含む。キャッシュ(0,2)は、キャッシュ(0,1)とキャッシュ(1,1)との親であり得る。キャッシュ(0,1)は、キャッシュ(0,0)とキャッシュ(1,0)との親であり得る。キャッシュ(1,1)は、キャッシュ(2,0)とキャッシュ(3,0)との親であり得る。親キャッシュを有する各キャッシュは、その親キャッシュとの関係では、子キャッシュである。さらに、階層キャッシュシステムにおいて親キャッシュではないキャッシュは、「葉」キャッシュと称され得る。たとえば、図2Aに示されているツリー構造では、階層レベルk=0であるキャッシュ(すなわち、キャッシュ(0,0)、キャッシュ(1,0)、キャッシュ(2,0)、およびキャッシュ(3,0))は、葉キャッシュの例である。階層キャッシュシステムにおける子キャッシュがリクエストされたアセットに関してキャッシュミスを経験するときには、その子キャッシュは、その親キャッシュがリクエストされたアセットを有するかどうかを決定するために、その子キャッシュの親キャッシュと通信することがあり得る。親キャッシュがリクエストされたアセットを有していない場合には、親キャッシュは、次に、リクエストされたアセットを獲得するために、リクエストされたアセットを子キャッシュに提供する前に、より高いレベルのキャッシュまたは配信元サーバと通信することがあり得る。
本明細書で用いられる「アセット」という用語は、キャッシュに格納されていることがあり得る、または配信元サーバによって提供され得るデータであって、ユーザによってリクエストされ得るデータを指す。たとえば、オンライン動画に関しては、アセットの例として、配信元サーバに格納されている2−10秒のチャンクの動画データがあり、これが、ユーザによってリクエストされ得るのであって、1つまたは複数のキャッシュに格納されていることがあり得るのである。
1つまたは複数の例示的実施形態によれば、CDN130におけるキャッシュは、図2Aに示されている階層的キャッシュ構造として編成され得る。たとえば、図1のキャッシュ135A−Fは、それぞれ、キャッシュ(0,2)、キャッシュ(0,1)、キャッシュ(1,1)、キャッシュ(0,0)、キャッシュ(1,0)およびキャッシュ(2,0)に対応し得る。
次に、データネットワーク100のネットワーク要素の例示的構造について、図2Bを参照して以下で論じられる。
例示的ネットワーク要素構造
図2Bは、ネットワーク要素251の例示的構造を示している図である。例示的実施形態によれば、データネットワーク100における任意のまたは全部のネットワーク要素は、たとえばエンドユーザ110とキャッシュ135A−Fと配信元サーバ140とを含んでいるが、ネットワーク要素251に関して以下で説明されるのと同じ構造および動作を有し得る。
図2Bを参照すると、ネットワーク要素251は、たとえば、データバス259と、送信ユニット252と、受信ユニット254と、メモリユニット256と、処理ユニット258とを含み得る。
送信ユニット252と、受信ユニット254と、メモリユニット256と、処理ユニット258とは、データバス259を用いて、相互に、データを送信および/またはデータを受信し得る。
送信ユニット252は、たとえば制御信号またはデータ信号を含む信号を、1つもしくは複数のワイヤードおよび/またはワイヤレス接続を経由して、データネットワーク100における他のネットワーク要素に送信するためのハードウェアと任意の必要なソフトウェアとを含むデバイスである。
受信ユニット254は、たとえば制御信号またはデータ信号を含むワイヤレス信号を、データネットワーク100における他のネットワーク要素への1つもしくは複数のワイヤードおよび/またはワイヤレス接続を経由して受信するためのハードウェアと、任意の必要なソフトウェアとを含むデバイスである。
メモリユニット256は、磁気ストレージ、フラッシュストレージなどを含む、データを記憶することができる任意のデバイスであり得る。
処理ユニット258は、たとえばプロセッサを含む、データを処理することができる任意のデバイスであり得る。
少なくとも1つの例示的実施形態によれば、たとえば図1−図3のいずれかを参照して本明細書で説明されており、ユーザ(たとえば、エンドユーザ110)とキャッシュ(たとえば、キャッシュ135A−F)とサーバ(たとえば、配信元サーバ140)とのいずれか1つによって実行されるどの動作も、図2Bに示されているネットワーク要素251の構造を有する電子デバイスによって、実行され得る。たとえば、少なくとも1つの例示的実施形態によれば、ネットワーク要素251は、ソフトウェアおよび/またはハードウェアに関して、本明細書で説明されておりユーザ、キャッシュ、もしくはサーバによって実行される機能のいずれかまたは全部を実行するようにプログラムされ得る。結果的に、本明細書で説明されるエンドユーザ110とキャッシュとサーバとのそれぞれは、専用コンピュータとして具体化され得る。
次に、ネットワーク要素251の例であって、ソフトウェアに関して、本明細書で説明されておりユーザ、キャッシュ、もしくはサーバによって実行される機能のいずれかまたは全部を実行するようにプログラムされている例が、以下で論じられる。たとえば、メモリユニット256は、図1−3を参照して本明細書で説明される動作のいずれかまたは全部に対応する実行可能な命令を含むプログラムであって、ユーザ、キャッシュ、またはサーバによって実行されるプログラムを記憶し得る。少なくとも1つの例示的実施形態によれば、メモリユニット256に記憶されることに追加してまたは代替的に、実行可能な命令が、たとえば光ディスク、フラッシュドライブ、SDカードなどを含むコンピュータ可読媒体に記憶され得るのであって、ネットワーク要素251は、そのコンピュータ可読媒体上に記憶されているデータを読み出すためのハードウェアを含み得る。さらに、処理ユニット258は、図1−3を参照して本明細書で説明されておりユーザ、キャッシュ、またはサーバによって実行される動作のいずれかまたは全部を、たとえば、メモリユニット256とコンピュータ可読記憶媒体との少なくとも一方に記憶されコンピュータ可読媒体を読むためにネットワーク要素251に含まれるハードウェアの中にロードされる実行可能命令を読み出し実行することによって、実行するように構成されたプロセッサであり得る。
次に、ハードウェアに関して、ネットワーク要素251の例であって、ソフトウェアに関して、本明細書で説明されておりユーザ、キャッシュ、もしくはサーバによって実行される機能のいずれかまたは全部を実行するようにプログラムされている例が、以下で論じられる。図1−3を参照して説明されたユーザ、キャッシュ、もしくはサーバによって実行される機能に対応し、上で論じられたメモリユニットもしくはコンピュータ可読媒体に記憶されている実行可能な命令に加えて、または、代替的に、処理ユニット258は、図1−3を参照して本明細書で説明されておりユーザ、キャッシュ、もしくはサーバによって実行される動作のいずれかまたは全部を実行すること専用の構造的設計を有する回路を含み得る。たとえば、上述され処理ユニット258に含まれる回路は、図1−3を参照して説明されておりユーザ、キャッシュ、もしくはサーバによって実行される動作のいずれかまたは全部を実行するように物理的にプログラムされたFPGAまたはASICであり得る。
次に、1つまたは複数の例示的実施形態による階層的キャッシングの概略が、以下で論じられることになる。
1つまたは複数の例示的実施形態による階層的キャッシングの概略
多くの従来型のキャッシングアルゴリズムについては、実際の使用に対する障害のいくつかとして、スループット性能の妨げになり得るアルゴリズムの実装の複雑性が認められる場合があり、ヒット率の上昇など追加的なキャッシング性能の値が上昇するという期待が、アセットの人気の変化に適応する能力などのファクタを下回り得る。
1つまたは複数の例示的実施形態は、オンライン動画のために、新たなキャッシングアルゴリズムを用いる。新たなキャッシングアルゴリズムは、実装の複雑性が低く、ヒット率と置換率とが向上している。新たなキャッシングアルゴリズムは、ビデオオンデマンド(VoD)統計を用いた現実的変化とアセットの典型的な人気に関するシミュレーションに基づいて、評価されてきた。いくつかの研究が示すところによると、多くのアセットはそのライフサイクルの開始時には極めて人気があるのであるが、その人気は指数関数的速度で低下し、その導入から数日のうちに、人気は、ごく僅かになってしまう。これらに基づき、ヒット率だけではなく、バイトビット率と置換率とが、1つまたは複数の例示的実施形態によるキャッシングアルゴリズムを評価するのに用いられる。キャッシングアルゴリズムの1つまたは複数の例示的実施形態は、本明細書においてオンライン動画のキャッシングを参照して説明されているが、オンライン動画のキャッシングに関して本明細書で説明される1つまたは複数の例示的実施形態は、たとえば、オーディオ、静止画、ビデオゲーム、3−Dオブジェクトおよびモデルを含め、インターネットなどの通信ネットワークを通じて転送される他のタイプの媒体にも適用され得る。
1つまたは複数の例示的実施形態による階層的キャッシングを提供する例示的方法
次に、1つまたは複数の例示的実施形態による階層的キャッシングを提供する方法が、図3との関係で、そして、オンライン動画データが図1のCDN130によってキャッシュされている例を参照して、論じられる。1つまたは複数の例示的実施形態によれば、図3に示されている階層的キャッシングを提供する方法は、水平的な協調型キャッシュではなく、図2Aに示されているもののような階層的キャッシュに基づいているが、その理由は、階層的キャッシュは、オペレータネットワークの場合に、より効率的であり得るからである。
1つまたは複数の例示的実施形態によれば、階層的キャッシングを提供する方法は、大域的な情報を必要とすることなく与えられたキャッシュにおける局所的な態様で機能するキャッシングアルゴリズムを用いる。さらに、1つまたは複数の例示的実施形態によれば、階層的キャッシングを提供する方法は、アセットまたはノードの数との関係でO(1)アルゴリズムであるキャッシングアルゴリズムを用いる。
1つまたは複数の例示的実施形態によれば、階層的キャッシングを提供する方法は、以前に非常に人気のあったアセットがその値を急速に低下させるときに、人気の変化への応答が比較的迅速なキャッシングアルゴリズムを用いる。
1つまたは複数の例示的実施形態によれば、階層的キャッシングを提供する方法は、改善されたヒット率性能を提供するキャッシングアルゴリズムを、用いる。
1つまたは複数の例示的実施形態によれば、階層的キャッシングを提供する方法は、削除する決定においてアセットのサイズを用いないキャッシングアルゴリズムを用いるのであるが、その理由は、これが、オンライン動画に対して望ましくない振る舞いを生じさせ得るからである。
1つまたは複数の例示的実施形態によれば、階層的キャッシングを提供する方法は、与えられている階層における各キャッシュにおいて、他のキャッシュにおけるアルゴリズムとは独立に動作するキャッシングアルゴリズムを用いる。各キャッシュは、各アセットの到着間時間を、局所的に見積もる。各キャッシュは、また、それ自身の特徴的時間を計算するのであるが、この特徴的時間とは、アセットが、削除される前に、キャッシュに滞在する平均時間として定義される。たとえば、キャッシュの特徴的時間は、LRUを用いた知られている方法に従って、いくつかのアセットに対応するいくつかの削除時間の平均を決定することによって、そのキャッシュによって決定され得るのであって、その場合に、各アセットに対して、そのアセットに対する削除時間は、キャッシュがアセットをまさに削除しようとするときに、現在時間とそのアセットが最後にリクエストされた時間との間の差として、決定され得る。次に、以下では、上述したキャッシングアルゴリズムの1つまたは複数の例示的実施形態について、より詳細に論じられる。
1つまたは複数の例示的実施形態によれば、階層的キャッシングを提供する方法は、知られているLRU方式に従ってアセットを削除するキャッシングアルゴリズムを用いる。たとえば、1つまたは複数の例示的実施形態によれば、いったんキャッシングアルゴリズムが、あるアセットがキャッシュから削除されるべきであると決定すると、削除対象として選択されたアセットは、最も長い間用いられなかったアセットである。
表1は、各アセットに対して定義される変数について説明する。
表1
Figure 2018511131
下記の表2は、各キャッシュに対して定義される変数について説明する。
表2
Figure 2018511131
下記の表3は、キャッシュ階層の全体に対して定義される変数について説明する。
表3
Figure 2018511131
下記の表4は、1つまたは複数の例示的実施形態により、図3に示されている階層的キャッシングを提供する方法によって用いられるキャッシングアルゴリズムが動作させられる前に設定される初期条件を、説明する。
表4
Figure 2018511131
下記の式(1)は、キャッシュ(j,k)の特徴的時間値であるTCjkが計算される態様を例証している。
TCjk=wTC×(TS−Pijk)+(1−wTC)×TCjk (1)
式(1)は、たとえばLRUキャッシュ削除ポリシに従って、キャッシュ(j,k)から削除される前にリクエストされることなくキャッシュ(j,k)にアセットが滞在する時間の指数関数的な移動平均として、特徴的時間TCjkを計算する。たとえば、キャッシュ(j,k)におけるアセットの最後のリクエストの受信とキャッシュ(j,k)からのアセットの削除との間の時間の指数関数的な移動平均としての、特徴的時間TCjkである。1つまたは複数の例示的実施形態によれば、キャッシュを動作させるための知られているLRU法に従って、LRU機能自体によるi番目のアセットに対するリクエストをキャッシュが受信すると常に、値Pijkが現在時刻に更新される。
下記の式(2)は、キャッシュ(j,k)に対するアセットiの平均の到着間時間であるTijkが計算される態様を、例証している。1つまたは複数の例示的実施形態によれば、値Tijkは、それが葉キャッシュであるか、または、より高い層のキャッシュであるかとは関係なく、アセットが任意のキャッシュからリクエストされると常に、計算され得る。
ijk=wIA×(TS−Pijk)+(1−wIA)×Tijk (2)
式(2)は、重みwIAを用いて、アセットiの到着間時間の指数関数的な移動平均を計算する。
1つまたは複数の例示的実施形態によれば、式(1)に従って値TCjkを計算した後で、特徴的時間TCjkは、特徴的時間TCjkが低い数値に留まらないように、緩やかに増加される。特徴的時間TCjkは、下記の式(3)に従って、緩やかに増加される。
TCjk=TCjk+GS×(TS−PLjk) (3)
1つまたは複数の例示的実施形態によれば、式(3)に従って値TCjkを緩やかに増加させた後で、PLjkに対する現在の値が、下の式(4)によって例証されているように、現在時刻に設定される。
PLjk=TS (4)
1つまたは複数の例示的実施形態による階層的キャッシングを提供する方法によって用いられるキャッシングアルゴリズムの一例が、アルゴリズム1による擬似コードの形式で、以下で説明される。1つまたは複数の例示的実施形態によれば、アルゴリズム1は、CDN130の階層的ツリー構造における各キャッシュによって、個別的に実行され得る。たとえば、CDN130のキャッシュの中からのあるキャッシュがアセットiに対するリクエストを受信するときは常に、このキャッシュは、リクエストされたアセットがこのキャッシュによってキャッシュされる必要があるかどうかを決定するために、アルゴリズム1を実行し得る。
Figure 2018511131
以下では、アルゴリズム1の例示的使用が、図3との関係で、さらに詳細に論じられる。図3は、オンライン媒体の階層的キャッシングを実行するためにネットワーク要素を動作させる例示的方法を示すフローチャートである。図3は、図2Aを参照して上で説明されたように、図2Aにおけるキャッシュ(0,1)(すなわち、階層レベルk=1における0番目のキャッシュ)に対応するキャッシュ135Bの観点から、説明される。
図3を参照すると、ステップS305では、あるアセットに対するリクエストが、キャッシュにおいて受信される。たとえば、ステップS305では、キャッシュ135Bが、アセットxに対するリクエストを受信する。キャッシュ135Bは、キャッシュ135Bの子キャッシュの1つからアセットxに対するリクエストを受信し得る(すなわち、図2Aにおいて示されているように、キャッシュ135Bは、キャッシュ135Dおよび135Eに対する親であるが、これらのキャッシュは、図2Aに示されているキャッシュ(0,0)およびキャッシュ(1,0)にそれぞれ対応する)。図3に示されている方法は、キャッシュ135Bがアセットxに対するリクエストをキャッシュ135Dから受信する例を参照して、説明される。たとえば、キャッシュ135Dは、アセットxに対するエンドユーザ110からのリクエストをキャッシュ135Dにおいて受信することに応答して、アセットxに対するリクエストを、キャッシュ135Bに送信し得る。したがって、図3に示されている方法が、キャッシュ135Bによって、アセットxに対するリクエストを受信するときに実行されるときには、i=x、j=0、およびk=1である。
アルゴリズム1に示されているように、ステップS305においてアセットxに対するリクエストを受信した時に、キャッシュ135Bは、式(2)を用いて、値Tijkを計算し得る。次に、キャッシュは、Pijkに対する値を、現在時刻に設定し得る。次に、キャッシュ135Bは、ステップS310に進み得る。キャッシュ135Bは、アセットを削除するときは常に、式(1)を用いて値TCjkを計算し得るし、次に、キャッシュ135Bは、式(3)を用いて、値TCjkを緩やかに増加させ得る。
ステップS310では、キャッシュは、ステップS305においてそれに対するリクエストが受信されたアセットが、キャッシュに格納されているかどうか(すなわち、キャッシュされているかどうか)を、決定する。たとえば、ステップS310では、キャッシュ135Bは、既にアセットxがキャッシュ135Bにキャッシュされているかどうかを決定し得る。アセットアセットxがキャッシュ135Bに格納されている場合であれば、キャッシュ135Bは、ステップS315に進む。
ステップS315では、キャッシュが、ステップS305でリクエストされたアセットを提供し、キャッシュのLRUデータベースを更新する。たとえば、ステップS315では、キャッシュ135Bが、アセットxを、ステップS310においてそのアセットをリクエストしたネットワーク要素であるキャッシュ135Dに、提供し得る。さらに、キャッシュを動作させる知られているLRU法に従い、キャッシュ135Dは、キャッシュに現在格納されている各アセットの最も近い使用時間をそれぞれ示すタイムスタンプを格納するキャッシュ135Dの中の(たとえば、キャッシュ135Dのメモリ256の中の)LRUデータベースを、更新し得る。
ステップS310に戻ると、ステップS305でリクエストされたアセットがキャッシュに含まれていないと、キャッシュがステップS310で決定した場合には、キャッシュは、ステップS320に進む。たとえば、ステップS310において、キャッシュ135Bが、アセットxはキャッシュ135Bに現在格納されていないと決定した場合には、キャッシュ135Bは、ステップS320に進む。
ステップS320では、キャッシュは、ステップS305でリクエストされたアセットを取得する。たとえば、ステップS320では、キャッシュ135Bは、アセットxに対するリクエストを、キャッシュ135Bの親であるキャッシュ135Aに送信し得る。キャッシュ135Bによって送信されたリクエストに応答して、キャッシュ135Bは、キャッシュ135Aから、アセットxを受信し得る。たとえば、キャッシュ135Aが、アセットxを既に格納している場合があり得るし、または、キャッシュ135Aは、アセットxをキャッシュ135Bに提供する前に、配信元サーバ140から、アセットxを取得し得る。
次に、ステップS325では、キャッシュが、TCjkおよびTijkの値に基づいて比較を実行し、その比較に基づいてアセットxを格納すべきかどうかを決定する。たとえば、ステップS325では、キャッシュ135Bが、下記の式(5)に従って、値TCjkと値Tijkとを比較しうる。
(Tijk<TCjk) (5)
ステップS325における比較動作の結果が真である場合には、キャッシュ135Bは、ステップS330に進む前に、ステップS335に進み得る。ステップS335では、キャッシュ135Bは、アセットxをキャッシュ135Bに格納する。ステップS330では、キャッシュ135Bは、アセットを、そのアセットをリクエストしたネットワーク要素であるキャッシュ135Dに提供する。
ステップS325における比較動作の結果が偽である場合には、キャッシュ135Bは、ステップS335に進むことなく、直接にステップS330に進み得る。したがって、ステップS325における比較動作の結果が偽である場合には、キャッシュ135Bは、アセットxをキャッシュ135Bにキャッシュすることなく、アセットxをキャッシュ135Dに提供し得る。このように、1つまたは複数の例示的実施形態によれば、CDN130におけるキャッシュは、式(5)によって定義される比較に従って、取得されたアセットをキャッシュするかどうかを決定し得る。
リクエストされたアセットxをステップS330で提供した後では、キャッシュ135Bは、次のアセットリクエストの受信を待機するために、ステップS305に戻る。
図3は、キャッシュ135Bの観点から説明されているが、キャッシュ135Bとの関係で上述された動作は、CDN130におけるいずれのキャッシュによっても実行され得る。たとえば、CDNにおけるすべてのキャッシュが、キャッシュ135Bに関して上述した動作を同時に実行することもあり得る。
次に、キャッシュのLRUデータベースに加えてCDN130のキャッシュに含まれ得る新たなデータベースについて(たとえば、CDN130のキャッシュのメモリ256の中にある)、以下で論じられる。
大きなアセット到着間時間データベース
上で論じられたように、CDN130のキャッシュは、キャッシュを動作させるための知られているLRU法に従うLRUデータベースを含み得る。さらに、CDN130のキャッシュのそれぞれは、また、たとえば、アセットiの平均の到着間を計算するために、様々なアセットの到着間時間であるTijkを格納するデータベースを含み得る。
ライブラリの中のアセットの数が非常に大きなものであり得るのであって、時には、キャッシュに格納され得るアセットの数よりもはるかに大きいとすると、到着間時間の統計を格納するために複数のデータベースを用いることが望ましい場合があり得る。たとえば、1つまたは複数の例示的実施形態によれば、CDN130のキャッシュは、到着間時間のメインデータベースと到着間時間の追加データベースとを含むことがあり得る。1つまたは複数の例示的実施形態によれば、あるキャッシュのための到着間時間のメインデータベースは、そのキャッシュに対するTCjkの値の数倍、たとえば3倍よりも多くの到着間時間を含まない。1つまたは複数の例示的実施形態によれば、それを超えると到着間時間がメインの到着間時間データベースに含まれないことになる正確な値は、そのキャッシュに格納されているアセットの人気分布(popularity distribution)に基づき得る。
追加データベースは、これまでにただ1回だけのリクエストがあったアセットとメインの到着間時間データベースから降格されたアセットとを格納するのに用いられる「1回発生」データベースであり得る。たとえば、キャッシュがあるアセットに対する第2のリクエストに遭うと、そのキャッシュは、第1および第2のリクエストのタイミングに基づいて、到着間時間を計算し得るのであり、そして、そのキャッシュは、新たに計算された到着間時間に基づいて、そのアセットを、メインの到着間時間データベースの中に配置し得る。さらに、新たに計算された到着間時間を有するアセットをメインデータベース中に配置した時には、メインデータベースの中で最大の到着間時間を有するアセットが、メインデータベースから取り除かれ得る。メインデータベースに戻るためには、取り除かれたアセットは、最初に「1回発生」データベースに入ることが必要であり得るし、次に、上述した態様でメインの到着間データベースに昇進されることが必要であり得る。
追加データベースは、これまでにただ1つのリクエストだけがあったアセットを格納するのに用いられる「1回発生」データベースであり得る。この「1回発生」データベースの中のアセットに対する第2のリクエストにキャッシュが遭うと、キャッシュは、第1および第2のリクエストのタイミングに基づいて、到着間時間を計算し得、次に、キャッシュは、新たに計算された到着間時間に基づいてそのアセットをメインの到着間時間データベースの中に配置し得るし、同時にまた、そのエントリを「1回発生」データベースから削除する。さらに、新たに計算された到着間時間を有するアセットをメインデータベース中に配置した時には、メインデータベースの中で最も長い間用いられなかったアセットが、メインデータベースから取り除かれ得る。最も長い間用いられなかったとは、それに対する最後のリクエストがすべてのアセットの中で最も古いアセットを意味する。メインデータベースに戻るためには、取り除かれたアセットは、最初に「1回発生」データベースに入ることが必要であり得るし、次に、上述した態様でメインの到着間データベースに昇進されることが必要であり得る。
下記の表5は、各アセットに対して定義されるコスト関数に対する追加的な変数について説明している。
表5
Figure 2018511131
以下で論じられるように、他の例示的実施形態では、CDN130におけるキャッシュは、あるアセットに対するリクエストを受信するときには、アルゴリズム2を実行し得る。
Figure 2018511131
アルゴリズム2は、図4を参照して、図2Aを参照して説明されたように図2Aのキャッシュ(0,1)(すなわち、階層レベルk=1の0番目のキャッシュ)に対応するキャッシュ135Bの観点から、説明される。
図4を参照すると、動作S405では、キャッシュが、アセットに対するリクエストを受信する。たとえば、キャッシュ135Bは、アセットxに対するリクエストを、キャッシュ135Bの子キャッシュのうちの1つから受信し得る(すなわち、図2Aに示されているように、キャッシュ135Bは、キャッシュ135Dおよび135Eに対する親であり、これらのキャッシュは、図2Aに示されているキャッシュ(0,0)およびキャッシュ(1,0)にそれぞれ対応する)。
これより後では、説明の目的のために、キャッシュ135Bは、たとえば、キャッシュ135Dがアセットxに対するリクエストをエンドユーザ110から受信することに応答して、アセットxに対するリクエストをキャッシュ135Dから受信すると仮定する。したがって、アセットxに対するリクエストを受信するキャッシュ135Bの視点からすると、i=x、j=0、およびk=1である。
アルゴリズム2に示されているように、キャッシュ135Bは、式(7)を用いて、限界値MUijkの指数関数的な移動平均を計算し得る。次に、キャッシュは、Pijkに対する値を、現在時刻として設定し得る。
動作S410では、キャッシュ135Bが、アセットxがキャッシュ135Bに格納されているかどうか(すなわち、キャッシュされているかどうか)を決定し得る。キャッシュ135Bがアセットxはキャッシュ135Bに現在格納されていると決定した場合には、キャッシュ135Bは、動作S415に進み得るし、そうでない場合には、キャッシュ135Bは、動作S420に進み得る。
動作S415では、キャッシュ135Bは、アセットxをキャッシュ135Dに提供し、知られている最長時間未使用(LRU)法に従って、キャッシュのLRUデータベースを更新する。たとえば、キャッシュ135Dは、そのキャッシュに現在格納されているアセットのそれぞれの最も近い使用時間をそれぞれ示すタイムスタンプを格納するキャッシュ135Dの中のLRUデータベース(たとえば、キャッシュ135Dのメモリ256の中の)を更新し得る。さらに、キャッシュ135Bは、アセットi=xのコストCout,ijkをキャッシュ135Dに提供するが、ここで、Cout,ijkは、アセットiに関連する現在のコストCijkに等しい。
いくつかの例示的実施形態では、コストは、キャッシュに格納される前にアセットが通過したホップの回数(キャッシュの数)を表し得る。他の例示的実施形態では、コストは、キャッシュに格納される前にアセットが遭遇したレイテンシを表すことがあり得る。さらに他の例示的実施形態では、コストは、たとえばホップの回数と遭遇したレイテンシとの両方である指標の組合せを表すことがあり得る。
キャッシュ135Bは、動作S410において、アセットxがそこに格納されていないと決定した場合には、キャッシュ135Bは、動作S420に進む。
動作S420では、キャッシュ135Bが、アセットxを、配信元またはキャッシュのうちの別の1つから、アセットxを取得する。たとえば、キャッシュ135Bは、アセットxに対するリクエストを、キャッシュ135Bの親であるキャッシュ135Aに送信し得る。キャッシュ135Bによって送信されたリクエストに応答して、キャッシュ135Bは、アセットxを、キャッシュ135Aから受信し得る。たとえば、キャッシュ135Aは、アセットxを既に格納していることがあり得るし、または、キャッシュ135Aが、アセットxをキャッシュ135Bに提供する前に、配信元サーバ140からアセットxを取得することもあり得る。
動作S425では、キャッシュ135Bが、アセットi=xと関連する限界値MUijkの移動平均とキャッシュ135Bの特徴的限界値CVjkとの間の比較に基づいて、アセットxを格納すべきかどうかを決定する。
たとえば、キャッシュ135Bは、値MUijkと値CVjkとを、下記の式(6)に従って比較し得る。
(MUijk<CVjk) (6)
キャッシュ135Bは、式(7)を用いて、特徴的限界値CVjkを計算し得る。キャッシュ135Bは、キャッシュ135Bが一杯であり、アセットxのための余地を作成するために、以前に格納されたアセットのうちの1つが削除されることが必要であるときにだけ、特徴的限界値CVjkの値を再計算し得る。キャッシュ135Bは、特徴的限界値CVjkの更新された値を格納し得る。
Figure 2018511131
式(7)において例証されているように、特徴的限界値は、式1で決定された特徴的時間値TCjkを、キャッシュ(j,k)へのアセットiのコストCijkで除算した値に等しい。したがって、キャッシュ(j,k)からアセットiを削除するときに、アセットiを獲得することに関連するコストCijkが高い場合には、削除の前にリクエストされることなくアセットがキャッシュ(j,k)に滞在する、コストに配慮した平均時間期間を表す特徴的限界値CVjkは、低くなるであろう。
さらに、キャッシュ135Bは、下記の式(8)を用いて、アセットi=xの限界値MUijkの指数関数的な移動平均を計算し得る。
Figure 2018511131
キャッシュ135Bは、キャッシュ135Bによって取得された各アセットiに対する限界値MUijkを計算し得るのであり、格納されているアセットiの1つがリクエストされるときには、格納されているアセットiの限界値MUijkを再計算し得る。
式(8)に例証されているように、限界値MUijkの指数関数的な移動平均は、アセットの到着間時間Tijkの平均をキャッシュ(j,k)へのアセットiのコストCijkによって除算した値に等しい。
キャッシュ135Bが式6から8を用いて、アセットi=xと関連する限界値MUijkの移動平均がキャッシュ135Bの特徴的限界値CVjkよりも小さくないと決定した場合には、キャッシュ135Bは、動作S430に進み得る。
動作S430においては、アセットi=xと関連する限界値MUijkの移動平均がキャッシュ135Bの特徴的限界値CVjkよりも小さくない場合には、キャッシュ135Bは、そのアセットを、そのアセットをリクエストしたネットワーク要素であるキャッシュ135Dに提供する。さらに、キャッシュ135Bは、アセットi=xのコストCout,ijkをキャッシュ135Dに提供するのであるが、この場合、キャッシュ135Bがアセットxを格納していないため、コストCout,ijkは、キャッシュ135Dが後の時間期間においてそのアセットを削除すると決定した場合にキャッシュ135Bがアセットxを取得するコストを示す追加限界コストC−stoijkを含む。
動作S435では、キャッシュ135Bが式6から8を用いてアセットi=xと関連する限界値MUijkの移動平均がキャッシュ135Bの特徴的限界値CVjkよりも小さいと決定した場合には、キャッシュ135Bは、アセットxをキャッシュ135Bに格納して、動作S440に進み得る。
キャッシュ135Bがその中にアセットxを格納しているときには、キャッシュ135Bのサイズは限定的であり得るから、キャッシュ135Bは、アセットxを格納するための空間を生成するために、現在格納されているアセットの削除を必要とし得る。
たとえば、キャッシュ135Bは、格納されているアセットiの最大の限界値MVijkに基づいて、どのアセットを削除すべきかを決定し得る。
たとえば、キャッシュ135Bは、アセットiの限界値MVijkを決定するために、下記の式9を用い得るのであり、最大の限界値MVijkを有するアセットを削除し得る。
Figure 2018511131
式9に例証されているように、アセットiと関連するコストCijkが比較的高い場合には、アセットiの限界値MVijkは、比較的低くなり、したがって、そのアセットiは、そのアセットiを再獲得することに関連する高いコストのため、削除される可能性が低い。
このように、1つまたは複数の例示的実施形態によれば、CDN130におけるキャッシュは、あるアセットをキャッシュすべきかどうかの決定がそのアセットを取得することに関連するコストに基づくように、取得されたアセットを、式(6)によって定義される比較に従って、キャッシュすべきかどうかを決定し得る。さらに、キャッシュ135Bは、アセットiのそれぞれを獲得するコストを考慮して、格納されるアセットのために空間を作成するために、どのアセットを削除すべきかを決定し得る。
動作S440では、キャッシュ135Bは、アセットxを、キャッシュ135Dに提供し得る。さらに、キャッシュ135Bは、アセットi=xのコストCout,ijkを、キャッシュ135Dに提供するのであるが、ここで、コストCout,ijkは、アセットiと関連する現在のコストCijkに等しい。
リクエストされたアセットxを動作S415、S430およびS440において提供した後で、キャッシュ135Bは、次のアセットリクエストの受信を待機するために、動作S405に戻る。
例示的実施形態はこのように記載されているが、実施形態が多数の方法で変形され得ることは明らかであろう。そのような変形は、例示的実施形態からの逸脱と見なされるべきではなく、そのような修正は、すべて、例示的実施形態の範囲内に含まれることが意図されている。

Claims (10)

  1. 第1のキャッシュデバイスを動作させる方法であって、
    第1のキャッシュデバイスにおいて、第1のアセットを第2のデバイスに送ることを求めるリクエストを受信することと、
    第1のアセットが第1のキャッシュデバイスに格納されているかどうかを決定することと、
    決定することにより、第1のアセットが第1のキャッシュデバイスに格納されていないと決定したときに、
    第1のキャッシュデバイスにおいて、第1のアセットを獲得し、
    第1のアセットと関連するコストを計算し、
    第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均と第1のキャッシュデバイスの特徴的限界値とに基づいて、第1のアセットを第1のキャッシュデバイスにおいて選択的に格納することであって、第1のキャッシュデバイスの特徴的限界値は、第1のキャッシュにおいてキャッシュされているアセットに対する最後のリクエストの受信と第1のキャッシュにおいてキャッシュされているアセットの削除との間の、コストに配慮した平均時間期間を表す、格納することと、
    第1のアセットと計算されたコストとを第2のデバイスに送ることと
    を備える、方法。
  2. 第1のキャッシュが、複数の階層レベルに分割されたコンテンツ配信ネットワークの複数のキャッシュデバイスのうちの1つであり、方法が、
    複数のキャッシュデバイスのそれぞれに対し、
    リクエストされたアセットに対するリクエストが複数のキャッシュデバイスのうちのそれぞれのキャッシュデバイスによって受信されたときに、リクエストされたアセットの限界値の移動平均を決定することと、
    キャッシュデバイスがアセットを削除するときに、複数のキャッシュデバイスのうちのそれぞれのキャッシュデバイスと関連する特徴的限界値を決定することと、
    をさらに備える、請求項1に記載の方法。
  3. 獲得することが、第1のアセットと、第1のアセットと関連する獲得されたコストとを複数の階層レベルのうちのより上位のレベルから獲得し、コストを計算することが、選択的に格納することが第1のアセットを格納しない場合には、獲得されたコストに限界コストを加算することを含む、請求項2に記載の方法。
  4. 第1のキャッシュデバイスの特徴的限界値を、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均の初期化された値よりも高い値として初期化することと、
    第1のキャッシュデバイスにおいてキャッシュされているアセットに対する最後のリクエストの受信と第1のキャッシュデバイスにおいてキャッシュされているアセットの削除との間の時間期間の指数関数的重み付き移動平均と、アセットに関連するコストとに基づいて、最長時間未使用キャッシュ削除ポリシに従って第1のキャッシュデバイスの特徴的限界値を更新することとによって、
    第1のキャッシュデバイスの特徴的限界値を決定することをさらに備える、請求項1に記載の方法。
  5. 第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均を、第1のキャッシュデバイスの特徴的限界値の初期化された値よりも低い値として初期化することと、
    第1のキャッシュデバイスにおける、第1のアセットに対するリクエストの連続的な受信の間の時間期間の指数関数的重み付き移動平均と、第1のアセットに関連するコストとに基づいて、第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均を更新することであって、リクエストは、第1のアセットを別のデバイスに送るように第1のキャッシュデバイスにリクエストする、更新することとによって、
    第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均を決定することをさらに備える、請求項1に記載の方法。
  6. 選択的に格納することが、
    第1のアセットに対する最初のリクエストが第1のキャッシュデバイスにおいて受信されたときに、第1のアセットを第1のデータベースに割り当てることと、
    第2のリクエストが最初のリクエストと連続的に受信されたとき、
    第1のアセットの到着間時間を、最初のリクエストおよび第2のリクエストが第1のキャッシュデバイスにおいて受信された時間に基づいて決定し、
    到着間データベースに格納されているアセットの数が閾値よりも大きいまたは閾値と等しい場合に、
    到着間データベースに格納されている複数のアセットのうちのどれが、第2のアセットと関連するコストが増加するにつれて減少する、そのアセットと関連する最大の限界値を有するかに基づき、到着間データベースから除去すべき第2のアセットを決定することであって、到着間時間データベースが、アセットに対応するリクエストの到着時間を格納し、到着間時間データベースが第1のデータベースとは異なる、決定することと、
    第2のアセットを到着間データベースから取り除くこととを行い、
    第1のアセットを到着間時間データベースに割り当てることと
    を含む、請求項1に記載の方法。
  7. 複数のアセットのそれぞれのアセットの最後のリクエストされた時間を、そのアセットに関連するコストによって除算することによって、アセットの限界値を決定することをさらに備え、
    第1のアセットと関連するコストが、第1のアセットのソースと第1のキャッシュデバイスとの間のホップの回数と、第1のアセットがそれらの間で遭遇したレイテンシと、のうちの1つまたは複数を表す、請求項6に記載の方法。
  8. 第1のキャッシュデバイスであって、
    プロセッサと、コンピュータ可読コードを含むメモリと、
    を備える第1のキャッシュデバイスであって、コンピュータ可読コードが、プロセッサによって実行されると、プロセッサを、
    第1のアセットを第2のデバイスに送ることを求めるリクエストを受信することと、
    第1のアセットが第1のキャッシュデバイスに格納されているかどうかを決定することとを行うように構成し、
    プロセッサが、第1のアセットが第1のキャッシュデバイスに格納されていないと決定したとき、プロセッサが、
    第1のキャッシュデバイスにおいて、第1のアセットを獲得することと、
    第1のアセットと関連するコストを計算することと、
    第1のキャッシュデバイスに関する第1のアセットの限界値の移動平均と第1のキャッシュデバイスの特徴的限界値とに基づいて、第1のキャッシュデバイスにおいて第1のアセットを選択的に格納することであって、第1のキャッシュデバイスの特徴的限界値が、第1のキャッシュにおいてキャッシュされているアセットに対する最後のリクエストの受信と第1のキャッシュにおいてキャッシュされているアセットの削除との間の、コストに配慮した平均時間期間を表す、格納することと、
    獲得された第1のアセットと計算されたコストとを第2のデバイスに送ることと
    を行うように構成される、第1のキャッシュデバイス。
  9. 第1のキャッシュが、複数の階層レベルに分割されたコンテンツ配信ネットワークの複数のキャッシュデバイスのうちの1つであり、複数のキャッシュデバイスのそれぞれが、それと関連するプロセッサを有し、
    複数のキャッシュデバイスのそれぞれが、
    リクエストされたアセットに対するリクエストが複数のキャッシュデバイスのうちのそれぞれのキャッシュデバイスによって受信されたときに、リクエストされたアセットの限界値の移動平均を決定し、
    キャッシュデバイスがアセットを削除するときに、複数のキャッシュデバイスのうちのそれぞれのキャッシュデバイスと関連する特徴的限界値を決定する
    ように構成されている、請求項8に記載の第1のキャッシュデバイス。
  10. プロセッサが、
    第1のアセットとそれに関連する獲得されたコストとを、複数の階層レベルのうちのより上位のレベルから獲得し、
    プロセッサが第1のアセットを格納しないと決定した場合には、獲得されたコストに限界コストを加算することによってコストを計算し、
    第1のアセットを選択的に格納するように構成され、第1のアセットを選択的に格納することが、
    第1のアセットに対する最初のリクエストが第1のキャッシュデバイスにおいて受信されたときに、第1のアセットを第1のデータベースに割り当て、
    第2のリクエストが最初のリクエストと連続的に受信されたとき、到着間データベースに格納されているアセットの数が閾値よりも大きいまたは閾値と等しい場合に、
    第1のアセットの到着間時間を、最初のリクエストおよび第2のリクエストが第1のキャッシュデバイスにおいて受信された時間に基づいて決定することと、
    到着間データベースに格納されている複数のアセットのうちのどれが、第2のアセットと関連するコストが増加するにつれて減少する、そのアセットと関連する最大の限界値を有するかに基づき、取り除くべき第2のアセットを到着間データベースから決定することであって、到着間時間データベースが、アセットに対応するリクエストの到着時間を格納し、到着間時間データベースは第1のデータベースとは異なる、決定することと、
    第2のアセットを到着間データベースから取り除くこととを行い、
    第1のアセットを到着間時間データベースに割り当てる
    ことによって行われる、請求項9に記載の第1のキャッシュデバイス。
JP2017550199A 2015-03-26 2016-03-09 オンライン媒体のための階層的なコストベースのキャッシング Ceased JP2018511131A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/669,408 US9866647B2 (en) 2015-03-26 2015-03-26 Hierarchical cost based caching for online media
US14/669,408 2015-03-26
PCT/US2016/021421 WO2016153779A1 (en) 2015-03-26 2016-03-09 Hierarchical cost based caching for online media

Publications (1)

Publication Number Publication Date
JP2018511131A true JP2018511131A (ja) 2018-04-19

Family

ID=55538658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017550199A Ceased JP2018511131A (ja) 2015-03-26 2016-03-09 オンライン媒体のための階層的なコストベースのキャッシング

Country Status (6)

Country Link
US (1) US9866647B2 (ja)
EP (1) EP3274844B1 (ja)
JP (1) JP2018511131A (ja)
KR (1) KR20170120683A (ja)
CN (1) CN107430552A (ja)
WO (1) WO2016153779A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983999B2 (en) * 2016-01-22 2018-05-29 Samsung Electronics Co., Ltd. Computing system with cache management mechanism and method of operation thereof
KR102347871B1 (ko) * 2017-11-14 2022-01-06 삼성전자주식회사 캐시 관리 매커니즘을 갖는 컴퓨팅 시스템 및 그 동작방법
US11681617B2 (en) * 2021-03-12 2023-06-20 Arm Limited Cache victim selection based on completer determined cost in a data processing system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256098A (ja) * 2000-03-09 2001-09-21 Hitachi Ltd プロキシサーバにおけるキャッシの制御方法
JP2012181745A (ja) * 2011-03-02 2012-09-20 Kddi Corp キャッシュ装置及び方法並びにプログラム
JP2013502641A (ja) * 2009-08-21 2013-01-24 グーグル インコーポレイテッド キャッシング情報のシステム及び方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826599B1 (en) 2000-06-15 2004-11-30 Cisco Technology, Inc. Method and apparatus for optimizing memory use in network caching
US7721051B2 (en) 2004-10-25 2010-05-18 Intel Corporation Techniques to improve cache performance
US20110107030A1 (en) 2009-10-29 2011-05-05 Simon Borst Self-organizing methodology for cache cooperation in video distribution networks
US8825685B2 (en) * 2009-11-16 2014-09-02 Symantec Corporation Selective file system caching based upon a configurable cache map
US8601216B2 (en) 2010-08-31 2013-12-03 Oracle International Corporation Method and system for removing cache blocks
CN107368433B (zh) * 2011-12-20 2021-06-22 英特尔公司 2级存储器分级结构中的存储器侧高速缓存的动态部分断电
US8874845B2 (en) 2012-04-10 2014-10-28 Cisco Technology, Inc. Cache storage optimization in a cache network
US9123010B2 (en) * 2012-06-05 2015-09-01 Apple Inc. Ledger-based resource tracking
US9756142B2 (en) 2013-03-14 2017-09-05 The Regents Of The University Of California System and method for delivering video data from a server in a wireless network by caching the video data
EP2830285A1 (en) 2013-07-25 2015-01-28 Thomson Licensing Method for caching of data items in a cloud based data processing system and corresponding device
CN104090847B (zh) * 2014-06-25 2017-01-11 华中科技大学 一种固态存储设备的地址分配方法
US10033784B2 (en) * 2014-07-14 2018-07-24 International Business Machines Corporation Predictive management of offline storage content for mobile applications and optimized network usage for mobile devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256098A (ja) * 2000-03-09 2001-09-21 Hitachi Ltd プロキシサーバにおけるキャッシの制御方法
JP2013502641A (ja) * 2009-08-21 2013-01-24 グーグル インコーポレイテッド キャッシング情報のシステム及び方法
JP2012181745A (ja) * 2011-03-02 2012-09-20 Kddi Corp キャッシュ装置及び方法並びにプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
アリ・ルオトネン, WEBプロキシサーバ, JPN6018040289, 5 December 1998 (1998-12-05), JP, pages 第224頁-第229頁 *

Also Published As

Publication number Publication date
EP3274844A1 (en) 2018-01-31
US9866647B2 (en) 2018-01-09
EP3274844B1 (en) 2019-12-18
WO2016153779A1 (en) 2016-09-29
KR20170120683A (ko) 2017-10-31
CN107430552A (zh) 2017-12-01
US20160285996A1 (en) 2016-09-29

Similar Documents

Publication Publication Date Title
US10394452B2 (en) Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse
CN103635887B (zh) 缓存数据的方法和存储***
US8139074B2 (en) Memory optimized cache generation for image tiling in GIS/CAD browser applications
CN105302830B (zh) 一种地图瓦片缓存方法及装置
US10771358B2 (en) Data acquisition device, data acquisition method and storage medium
KR101719500B1 (ko) 캐싱된 플로우들에 기초한 가속
CN108540510B (zh) 一种云主机创建方法、装置及云服务***
US9317470B1 (en) Method and system for incremental cache lookup and insertion
CN111506604A (zh) 访问数据的方法、装置和计算机程序产品
US11347646B2 (en) Method, device and computer program product for managing cache based on matching API
CN108415962A (zh) 一种云存储***
JP2018511131A (ja) オンライン媒体のための階層的なコストベースのキャッシング
US9851925B2 (en) Data allocation control apparatus and data allocation control method
CN116560562A (zh) 一种读、写数据方法及装置
CN107491565B (zh) 一种数据同步方法
EP3207457B1 (en) Hierarchical caching for online media
US10341467B2 (en) Network utilization improvement by data reduction based migration prioritization
CN109189696B (zh) 一种ssd缓存***及缓存方法
US10067678B1 (en) Probabilistic eviction of partial aggregation results from constrained results storage
CN110825652B (zh) 淘汰磁盘块上的缓存数据的方法、装置及设备
CN115794366A (zh) 一种内存预取方法及装置
CN111104528A (zh) 图片获取方法、装置及客户端
CN117150060B (zh) 一种数据处理方法及相关装置
WO2022148306A1 (zh) 一种淘汰数据的方法、装置、缓存节点以及缓存***
CN111813711B (zh) 训练样本数据的读取方法和装置、存储介质及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190226

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20190625