JP2023509125A - 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法 - Google Patents

二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法 Download PDF

Info

Publication number
JP2023509125A
JP2023509125A JP2022539295A JP2022539295A JP2023509125A JP 2023509125 A JP2023509125 A JP 2023509125A JP 2022539295 A JP2022539295 A JP 2022539295A JP 2022539295 A JP2022539295 A JP 2022539295A JP 2023509125 A JP2023509125 A JP 2023509125A
Authority
JP
Japan
Prior art keywords
storage device
content items
processor
clients
secondary storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2022539295A
Other languages
English (en)
Other versions
JPWO2021137885A5 (ja
JP7318899B2 (ja
Inventor
クラウダー、ウィリアム
Original Assignee
レベル スリー コミュニケーションズ,エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by レベル スリー コミュニケーションズ,エルエルシー filed Critical レベル スリー コミュニケーションズ,エルエルシー
Publication of JP2023509125A publication Critical patent/JP2023509125A/ja
Publication of JPWO2021137885A5 publication Critical patent/JPWO2021137885A5/ja
Application granted granted Critical
Publication of JP7318899B2 publication Critical patent/JP7318899B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Filling Or Discharging Of Gas Storage Vessels (AREA)
  • Solid-Sorbent Or Filter-Aiding Compositions (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本明細書に記載される例は、コンテンツアイテムを格納するためのシステムおよび方法に関する。方法は、プロセッサと、一次ストレージデバイスと、二次ストレージと、デバイスと、ネットワークインタフェースとを有するコンピュータによって実装され得る。一次ストレージデバイスは、クライアントからのそれぞれの要求に応答して、ネットワークインタフェースを介して複数のコンテンツアイテムを受信し得る。複数のコンテンツアイテムは、クライアントからのそれぞれの要求に応答して、ネットワークインタフェースを介して一次ストレージデバイスからクライアントに分配され得る。プロセッサは、経時的なクライアントからのそれぞれの要求に基づいて、コンテンツアイテムについて動的優先度リストを生成し得、動的優先度リストに基づいて、コンテンツアイテムのサブセットのみを二次ストレージデバイスに書き込み得る。

Description

関連出願への相互参照
本願は、2020年1月2日に出願された、「Systems and Methods for Storing Content Items in Secondary Storage」と題する米国仮特許出願第62/956,612号の利益を主張し、その内容全体は本明細書に参照により組み込まれている。
コンテンツ配信システムまたはネットワーク(例えば、コンテンツ配信ネットワーク(CDN))は、オリジンサーバが、オリジンサーバのコンテンツアイテム(例えば、ビデオ、画像、およびウェブサイトコンテンツデータなど)を、コンテンツアイテムを消費するクライアントに分配することを容易にするように構成されたサーバの地理的に分散したネットワークである。コンテンツ配信システム内の各サーバは、ノードおよびマシンなどと称され得る。オリジンサーバから、地理的にオリジンサーバの遠隔にあるクライアントにコンテンツアイテムを分配するために、クライアントと地理的に近接したノードが、オリジンサーバに代わってクライアントにコンテンツアイテムを提供することができる。具体的には、CDNは、オリジンサーバのコンテンツアイテムを複製およびキャッシュし、複製およびキャッシュしたコンテンツアイテムをクライアントに提供することができる。CDN上のノードのそれぞれのキャッシュは、ランダムアクセスメモリ(RAM)におけるメモリキャッシュなどの一次ストレージと、大容量ストレージデバイスなどの二次ストレージとを含み得る。
コンテンツアイテムを二次ストレージに格納するためのシステム、装置および方法が本明細書に提供される。
いくつかの構成では、コンテンツアイテムを格納するための方法が提供される。方法は、プロセッサと、一次ストレージデバイスと、二次ストレージデバイスと、ネットワークインタフェースとを有するコンピュータによって実装され得る。方法は、前記ネットワークインタフェースを介して前記一次ストレージデバイスによって、クライアントからのそれぞれの要求に応答して、複数のコンテンツアイテムを受信する段階を含み得る。方法はまた、前記ネットワークインタフェースを介して、前記クライアントからの前記それぞれの要求に応答して、前記一次ストレージデバイスからクライアントに前記複数のコンテンツアイテムを分配する段階を含み得る。方法はまた、前記プロセッサによって、経時的な前記クライアントからの前記それぞれの要求に基づいて、前記コンテンツアイテムについて動的優先度リストを生成する段階を含み得る。方法はまた、前記プロセッサによって、前記動的優先度リストに基づいて、前記コンテンツアイテムのサブセットのみを前記二次ストレージデバイスに書き込む段階を含み得る。
追加的または代替的に、任意に、一次ストレージデバイスはメモリキャッシュを含む。任意に、二次ストレージデバイスは大容量ストレージデバイスを含む。
追加的または代替的に、任意、一次ストレージデバイスは第1のレートでコンテンツアイテムを受信する。二次ストレージデバイスは、任意に、前記第1のレートよりも大幅に低い第2のレートでコンテンツアイテムを受信する。
いくつかの構成では、方法は、任意に、前記プロセッサによって、前記クライアントからの前記それぞれの要求に応答して、前記一次ストレージデバイスからコンテンツアイテムを削除する段階をさらに含む。
追加的または代替的に、任意に、前記プロセッサは、前記クライアントが前記コンテンツアイテムをそれぞれ要求する頻度に基づいて、前記動的優先度リストを生成する。追加的または代替的に、任意に、前記プロセッサは、前記クライアントが前記コンテンツアイテムをそれぞれ要求する回数に基づいて、前記動的優先度リストを生成する。追加的または代替的に、任意に、前記プロセッサは、前記クライアントが前記コンテンツアイテムをそれぞれ要求するレートの変化に基づいて、前記動的優先度リストを生成する。追加的または代替的に、任意に、前記プロセッサは、前記ネットワークインタフェースを介して前記コンテンツアイテムを受信するそれぞれのコストに基づいて、前記動的優先度リストを生成する。追加的または代替的に、任意に、前記プロセッサは、前記一次ストレージデバイスへの前記コンテンツアイテムの書き込みのそれぞれのコストに基づいて、前記動的優先度リストを生成する。追加的または代替的に、任意に、前記プロセッサは、前記二次ストレージデバイスへの前記コンテンツアイテムの書き込みのそれぞれのコストに基づいて、前記動的優先度リストを生成する。
いくつかの構成では、前記コンピュータは、任意に、コンテンツ配信ネットワークのノードを有する。追加的または代替的に、任意に、前記プロセッサは、前記クライアントから前記それぞれの要求を受信し、そのような要求に応答して前記複数のコンテンツアイテムを前記クライアントに分配する。
追加的または代替的に、任意に、前記プロセッサは、前記一次ストレージデバイスからの前記コンテンツアイテムの前記サブセットを前記二次ストレージデバイスに書き込む。
追加的または代替的に、任意に、前記プロセッサは、前記ネットワークインタフェースからの前記コンテンツアイテムの前記サブセットを前記二次ストレージデバイスに書き込む。さらなる選択肢として、前記プロセッサは、前記それぞれのコンテンツアイテムが前記一次ストレージデバイスにおいて利用可能であるかどうかに基づいて、前記動的優先度リストを生成する。
いくつかの構成では、データアイテムを格納するための方法が提供される。方法は、プロセッサと、メモリキャッシュと、大容量ストレージデバイスとを含むコンピュータによって実装され得る。方法は、前記メモリキャッシュによって前記データアイテムを受信する段階と、前記プロセッサによって、前記データアイテムの各々のそれぞれの適性値を生成する段階と、前記プロセッサによって、前記それぞれの適性値に基づいて、前記メモリキャッシュからの前記データアイテムのサブセットのみを前記大容量ストレージデバイスに書き込む段階とを含み得る。
いくつかの構成では、プロセッサと、一次ストレージデバイスと、二次ストレージデバイスと、ネットワークインタフェースとを含むコンピュータシステムが提供される。前記プロセッサは、前記ネットワークインタフェースを介して前記一次ストレージデバイスによって、クライアントからのそれぞれの要求に応答して、複数のコンテンツアイテムを受信することを含む動作を実装するように構成され得る。前記動作はさらに、前記ネットワークインタフェースを介して、前記クライアントからの前記それぞれの要求に応答して、前記一次ストレージデバイスからクライアントに前記複数のコンテンツアイテムを分配することを含み得る。前記動作はさらに、前記プロセッサによって、経時的な前記クライアントからの前記それぞれの要求に基づいて、前記コンテンツアイテムについて動的優先度リストを生成することを含み得る。前記動作はさらに、前記プロセッサによって、前記動的優先度リストに基づいて、前記コンテンツアイテムのサブセットのみを前記二次ストレージデバイスに書き込むことを含み得る。
いくつかの構成では、プロセッサと、メモリキャッシュと、大容量ストレージデバイスとを含むコンピュータシステムが提供される。前記プロセッサは、前記メモリキャッシュによって前記データアイテムを受信することと、前記プロセッサによって、前記データアイテムの各々のそれぞれの適性値を生成することと、前記プロセッサによって、前記それぞれの適性値に基づいて、前記メモリキャッシュからの前記データアイテムのサブセットのみを前記大容量ストレージデバイスに書き込むこととを含む動作を実装するように構成され得る。
これらおよび他の特徴は、それらの構成および動作様式と共に、添付図面と合わせて以下の詳細な説明から明らかになるであろう。
いくつかの実施形態によるコンテンツ配信システムの図である。
本開示のいくつかの実施形態によるノードを示すブロック図である。
様々な実施形態による、コンテンツアイテムを二次ストレージに格納するための方法を示すフロー図である。
様々な実施形態による、データアイテムを大容量ストレージデバイスに格納するための方法を示すフロー図である。
本明細書に記載される実施形態は、コンテンツアイテムを二次ストレージに格納するためのシステムおよび方法に関する。本明細書に提供される特定の例は、コンテンツ配信システム(例えば、CDN)に関連したそのようなコンテンツアイテムの二次ストレージを説明しているが、本システムおよび本方法は、任意の好適なコンピューティング環境で実装され得、CDNなどのコンテンツ配信システムに限定されるものではないことを理解すべきである。コンテンツ配信システムにおいて、エッジノードは、クライアントから1つまたは複数のコンテンツアイテムについての要求を最初に受信するノードである。クライアントとは、オリジンサーバによって提供されるコンテンツアイテムのうちの1つまたは複数を消費する、または別様に受信することを所望するエンドユーザによって操作されるデバイスを指す。コンテンツアイテムは、オリジンサーバによって格納され、クライアントのうちの1つまたは複数への提供のためにコンテンツ配信システムにわたってキャッシュされるデータの部分、セグメント、オブジェクト、ファイル、またはスライスである、またはそれを含む。オリジンサーバとは、それぞれのクライアントへのコンテンツアイテムを供給において顧客を促進する、コンテンツ配信システムの顧客によって操作されるデバイスを指す。
本明細書に提供されるいくつかの実装形態では、コンピュータシステム(例えば、エッジノードなどのノード)は、プロセッサと、ネットワークインタフェースと、ネットワークインタフェースを介して受信したコンテンツアイテムをそれぞれ独立に格納し得る一次ストレージデバイスおよび二次ストレージデバイスの両方とを含む。例えば、一次ストレージデバイスは、クライアントからのそれぞれの要求に応答して、ネットワークインタフェースを介してコンテンツアイテムを受信し得る。それらのコンテンツアイテムは、次に、ネットワークインタフェースを介して一次ストレージデバイスからそれぞれのクライアントに送信され得る。本明細書に提供されるものなどの実装形態では、二次ストレージデバイスは、例えば、本明細書で記載されるものなどの好適な数の基準のいずれかのうちの1つまたは複数に基づいて、クライアントによってそれぞれ要求されたコンテンツアイテムのサブセットのみを独立に格納する大容量ストレージデバイスである、またはそれを含み得る。一次ストレージデバイスは、クライアント要求に応答して即時分配のためにコンテンツアイテムを一時的に格納し得る一方、二次ストレージデバイスは、例えば将来受信され得るクライアント要求に応答した、将来の分配のためにコンテンツアイテムのサブセットのみのより長期のストレージを提供し得る。本明細書に提供されるように、プロセッサは、それぞれのコンテンツアイテムのそれぞれの「適性」を評価し得、その時点で最も適性を有するとプロセッサが見なすコンテンツアイテム、例えば、将来再び要求される可能性が最も高い、または、本明細書により詳細に説明されるものなどの1つまたは複数の他の基準を満たすコンテンツアイテムのみを二次ストレージに独立に書き込み得る。そのように、一次ストレージデバイスおよび二次ストレージデバイスは、互いから「切り離された」ものとして考えられ得る。一次ストレージデバイスからの二次ストレージデバイスのそのような独立性は、以前の既知の構成と比較して顕著な計算効率を提供し得る。
例えば、一次ストレージデバイスおよび二次ストレージデバイスの両方を含む以前の既知のコンピュータシステムでは、プロセッサは、受信したすべてのコンテンツアイテムを最初に一次ストレージデバイス(例えば、メモリキャッシュ)に、そこからまた、二次ストレージデバイス(例えば,大容量ストレージデバイス)に自動的に書き込むように構成され得る。しかしながら、本発明者は、そのような構成が顕著な計算上の非効率をもたらし得ると認識した。例えば、ネットワークデバイスを介して受信した各コンテンツアイテムを一次ストレージデバイス(例えば、メモリキャッシュ)に書き込むことが計算的に比較的効率的であり得る。これは、一次ストレージデバイスは、プロセッサが受信したコンテンツアイテムを反復してこれに書き込み、そこからコンテンツアイテムを比較的迅速に読み取り得るようなものであり得るからである。例えば、プロセッサは、それを介してコンテンツアイテムが受信されるネットワークインタフェースと少なくとも同等に速いレートで、一次ストレージデバイスを劣化させることなく、コンテンツアイテムを一次ストレージデバイスに反復して書き込むことが可能であり得る。
本発明者はまた、受信した各コンテンツアイテムを二次ストレージデバイスに書き込むことにより計算上の非効率が引き起こされ得、クライアントのそれぞれの要求されたコンテンツアイテムの受信を遅延させ得ることを認識した。例えば、二次ストレージデバイスは、プロセッサが受信したコンテンツアイテムを、そのようなコンテンツアイテムを一次ストレージデバイスに書き込み得るレートと比較して、比較的ゆっくりこれに書き込み得るようなものであり得る。例として、現在利用可能な二次ストレージデバイス、例えば、回転式ハードディスクドライブ(HDDまたはソリッドステートドライブ(SSD)は、メモリキャッシュなどの一次ストレージデバイスの書き込み速度よりも少なくとも10倍遅い書き込み速度を有し得る。さらに、繰り返される上書き動作は、HDDまたはSSDを経時的に劣化させ得、結果として、経時的な性能低下、および潜在的に頻繁かつ費用の掛かる交換の必要がもたらされる。以前の既知のシステムでは、要求されたコンテンツアイテムのストリームが、それらのコンテンツアイテムが二次ストレージデバイスに書き込まれ得るレートを超えるレートで一次ストレージデバイスに受信された場合、プロセッサは、要求されたコンテンツが受信されるレートを、二次ストレージデバイスがそのストリームについていくことができるレベルまで意図的に低減し得る。これにより、クライアントのそれぞれのコンテンツアイテムの受信が遅延し得る。さらに、以前の既知のシステムは、再び要求される可能性が低いいくつかのコンテンツアイテムを二次ストレージデバイスに書き込み得るが、これは、計算リソースを無駄にし、複数の書き込みプロセスに起因して二次ストレージデバイスの劣化を一層無駄にし得る。
対照的に、本明細書に提供される構成では、コンテンツアイテムのすべてを一次ストレージデバイスに書き込むこととは独立に、要求されたコンテンツアイテムのサブセットのみを二次ストレージデバイスに書き込むことにより、数々の計算上の効率性が提供され得、以前の既知のシステムと比較して、クライアントが自身の要求したコンテンツアイテムを受信し得る速度が増加し得る。例えば、二次ストレージデバイスに書き込まれる受信したコンテンツアイテムの数を、すべて(以前に既知であるように)からサブセット(本明細書に提供されるように)に低減することによって、プロセッサは、二次ストレージデバイスがストリームについていけるように要求されたコンテンツを受信するレートを必ずしも低減する必要がなくなる。別の例として、二次ストレージデバイスに書き込まれるコンテンツアイテムの数を低減することにより、二次ストレージデバイスが上書きされるレートを低減され得、結果として、より低レートの劣化、および二次ストレージデバイスを交換する必要性がより少なくなり得る。なおさらに、二次ストレージデバイスに書き込まれるコンテンツアイテムのサブセットは、それらの長期ストレージのための明らかな「適性」に基づいて選択され得る。これは、例えば、クライアントによって再び要求される可能性が低い場合があるストレージアイテムを格納するのに計算リソースを無駄にする必要がなくなることを意味する。
図1は、いくつかの実施形態によるコンテンツ配信システム100の図である。図1を参照すると、コンテンツ配信システム100は、オリジンサーバ150によって提供されたコンテンツアイテムを様々なクライアント102a~102nに供給するために構成されている。示されるように、ユーザ101a~101nの各々は、ノード140、110を介してオリジンサーバ150によって提供されるコンテンツアイテムを要求および受信するために、クライアント102a~102nのそれぞれ1つを動作させる、またはそれと関連付けられている。いくつかの実施形態では、クライアント102a~102nの各々は、本明細書で説明される動作を実行するためのハードウェアおよびソフトウェアで構成された、デスクトップコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、パッドデバイス、またはスマートフォンデバイスなどであり得る。例えば、クライアント102a~102nの各々は、少なくとも、処理回路、ネットワークデバイス、およびユーザインタフェースを含む。処理回路は、本明細書で説明されるクライアント102a~102nの機能を実行するように構成される。ネットワークデバイスは、クライアント102a~102nをコンテンツ配信システム100のノード(例えば、エッジノード110)に接続するように構成されている。ユーザインタフェースは、コンテンツアイテムに基づいて出力する(例えば、メディアコンテンツ、ゲーム、および情報などを表示する)、ならびにユーザ101a~101nからのユーザ入力を受信するために構成されている。コンテンツ配信システム100内の任意の好適なノードまたは複数のノードは、本明細書に提供されるものなどのように、コンテンツアイテムのサブセットを二次ストレージに格納するための機能性を実装するように構成され得る。しかしながら、そのような機能性は、任意のコンピューティングシステム上で好適に実装され得、コンテンツ配信システム内のノード上での実装に限定されるものではないことを理解するべきである。
いくつかの例では、コンテンツ配信システム100は、オリジンサーバ150に起因するコンテンツアイテムをクライアント102a~102nに供給および分配するためにCDNに対応する。例えば、コンテンツ配信システム100は、ノード110、140、...および150を含み、オリジンサーバ150は少なくとも1つのノード(図示せず)に接続され、少なくとも1つのノードのうちの1つはノード140に接続され、ノード140はエッジノード110に接続されている。オリジンサーバ150、ノード140、エッジノード110、および図示されていないコンテンツ配信システム100内の他のノードは、異なる位置に配置され得、そのように地理的に分散したコンテンツ配信システム100を形成している。ノード140とオリジンサーバ150との間に追加のノードがあってもよいが、ノード140はオリジンサーバ150に直接接続されてもよく、または、ノード140がオリジンサーバ150であってもよい。いくつかの構成では、ノード140およびエッジノード110の一方または両方は、コンテンツアイテムのサブセットを二次ストレージに格納するための本願の機能性を実装するように構成され得る。
オリジンサーバ150のコンテンツアイテムは、ノード140および他のノード(図示せず)を含め、コンテンツ配信システム100にわたる複数の位置(例えば、複数のノード)において複製およびキャッシュ(一次ストレージもしくは二次ストレージまたはその両方に格納される)され得る。本明細書で使用される場合、ノード140とは、オリジンサーバ150によって提供されたコンテンツアイテムのコピーを格納するコンテンツ配信システム100内(オリジンサーバ150とエッジノード110との間)の任意のノードを指す。オリジンサーバ150とは、コンテンツアイテムのソースを指す。オリジンサーバ150は、コンテンツ配信システム100を使用してコンテンツアイテムを供給するために顧客が料金を支払うような、コンテンツ配信システム100の顧客(例えば、コンテンツ保有者、コンテンツ発行者、またはシステム100の加入者)に属し得る。コンテンツアイテムの例としては、ウェブページおよびウェブオブジェクト(例えば、テキスト、グラフィック、およびスクリプトなど)、ダウンロード可能なオブジェクト(例えば、メディアファイル、ソフトウェア、およびドキュメントなど)、ライブストリーミングメディア、オンデマンドストリーミングメディア、ソーシャルネットワーク、ならびにアプリケーション(例えば、オンラインマルチプレイヤーゲーム、デーティングアプリケーション、電子商取引アプリケーション、およびポータルなど)などが挙げられるがこれらに限定されない。
ノード110、140、およびエッジノード110とオリジンサーバ150との間の他のノード(図示せず)は、コンテンツ配信システム100の「バックボーン」を形成し、オリジンサーバ150からクライアント102a~102nへのパスを提供する。ノード140がエッジノード110とオリジンサーバ150との間にあるため、ノード140はエッジノード110に関して上流である。バックボーンを構成するノードは、オリジンサーバ150からクライアント102a~102nへのホップまたはリンクの数、レイテンシ、利用可能性、コスト、および他の好適な基準を考慮に入れて、それらのノードの位置に基づいて、動的にまたは静的に選択され得る。いくつかの実施形態では、エッジノード110のクライアント102a~102nに対する近接性のため、エッジノード110は「エッジノード」と称される。例えば、エッジノード110のクライアント102a~102nに対する近接性のため、エリア105内にあるクライアント102a~102nは、エッジノード110に関連付けられ、接続され得る。換言すれば、エッジノード110は、コンテンツ配信システム100の縁部にあり、エッジノード110は、クライアント102a~102nに直接接続されている。通常、エッジノードがこれに接続されたクライアントに近いほど、そのエッジノードからのコンテンツアイテムの受信に関してそれらのクライアントが受けるレイテンシは少なくなる。そのため、性能はエッジノード110のクライアント102a~102nに対する地理的な近接性に左右される。CDNプロバイダは通常、エッジノードを、意図されるクライアントに実施可能な限り近くに配置する。そのため、エッジノード110はエリア105内に位置し得る。いくつかの実施形態では、エッジノード110はオリジンサーバ150に直接接続され得る。
いくつかの実施形態では、ノード140(およびノード140とオリジンサーバ150との間の図示されない他のノード)は、「中間ノード」と称され得る。中間ノードは、様々なネットワークリンクまたは「ホップ」を介してエッジノードをオリジンサーバ150に連結させる。中間ノードは、コンテンツアイテム(およびそれらの更新)をエッジノードに提供し得る。すなわち、オリジンサーバ150は、エッジノード110が現在、クライアント102a~102nによってそれぞれ要求されたコンテンツアイテムのコピーをキャッシュ(一次ストレージまたは二次ストレージに格納)していない場合に、ノード140を通じてコンテンツアイテム(およびそれらの更新)をエッジノード110に提供し得る。
クライアント102a~102nのうちの1つとエッジノード110との間の各リンクは、コンテンツアイテムなどのデータを交換するための好適なネットワーク接続に対応する。さらに、ノード/サーバ110、140、・・・および150のうちの2つの間の各リンクは、データを交換するための好適なネットワーク接続を表す。ネットワーク接続は、示される様式でのクライアント102a~102n、およびノード110、140などとオリジンサーバ150との間のデータ、値、命令、およびメッセージなどの交換を許容する構造である。ネットワーク接続は、任意の好適なローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)接続であり得る。例えば、各ネットワークリンクは、周波数分割多元接続(FDMA)、時分割多元接続(TDMA)、同期型光ネットワーク(SONET)、高密度波長分割多重(DWDM)、光伝送ネットワーク(OTN)、符号分割多元接続(CDMA)(特に、エボリューションデータオプティマイズド(EVDO))、汎用移動体通信システム(UMTS)(特に、時分割同期CDMA(TD-SCDMAもしくはTDS)、広帯域符号分割多元接続(WCDMA(登録商標))、ロングタームエボリューション(LTE)、進化型マルチメディアブロードキャストマルチキャストサービス(eMBMS)、および高速ダウンリンクパケットアクセス(HSDPA)など)、汎用地上無線アクセス(UTRA)、移動体通信用グローバルシステム(GSM(登録商標))、符号分割多元接続1x無線伝送技術(1x)、汎用パケット無線サービス(GPRS)、パーソナル通信サービス(PCS)、802.11X、ZigBee(登録商標)、Bluetooth(登録商標)、Wi-Fi(登録商標)、任意の好適な有線ネットワーク、ならびに/またはそれらの組み合わせによってサポートされ得る。
示されるように、エッジノード110は、エッジノード110の機能を実行するように構成された任意の好適な数のモジュールを含むCDNエンジン120を含む。任意の所与のモジュールが、本明細書に提供されるような複数の機能を実行するように構成され得ることが理解されるべきである。図1に示される非限定的な例では、CDNエンジンは、要求サービスモジュール122と、キャッシュモジュール124と、ビジネスロジックモジュール132とを含む。要求サービスモジュール122は、クライアント102a~102nから受信したコンテンツに対する要求(例えば、HTTP要求)を処理するように構成され得、キャッシュモジュール124は、要求されたコンテンツアイテムのサブセットを受信し、追加のクライアントが同じコンテンツアイテムを後の時点で要求した場合のために、少なくとも一次ストレージ126に、および任意で二次ストレージ128に格納するように構成され得る。要求サービスモジュール122は、クライアント102a~102nから受信したHTTP要求を受信および処理するように構成されたHTTPサービスモジュールを含み得る。要求サービスモジュール122は、HTTP要求を受信および処理するための好適なプロトコル(例えば、HTTP)のために構成されている。換言すれば、要求サービスモジュール122は、説明される様式で、コンテンツアイテムに対するエンドユーザ101a~101nからのHTTP要求に回答するように構成されている。いくつかの構成では、キャッシュモジュール124は、一次ストレージ126および二次ストレージ128を含む、またはそれらと動作可能に結合されている。キャッシュモジュール124は、本明細書の他の箇所でより詳細に説明されるように、受信したコンテンツアイテムを一次ストレージ126に格納し、二次ストレージ128における格納のためにコンテンツアイテムのサブセットのみを選択し、そのサブセットを二次ストレージ128に格納するように構成されている。
ビジネスロジックモジュール132は、エッジノード110において、例えば認証のためのビジネスロジックを実装し、正しい統計情報をおよびログの保持、ならびにキャッシュキーの算出などにおける使用のためにビジネス情報をキャッシュモジュール124に提供するように構成され得る。例えば、ビジネスロジックモジュール132は、クライアント102a~102nによって要求されたコンテンツアイテムがコンテンツ配信システム100の有効な顧客に属するかどうか、顧客のルールによりクライアント102a~102nへのコンテンツアイテムのサービス提供が許容されているかどうか、および、コンテンツ配信システム100のルールによりクライアント102a~102nへのコンテンツアイテムのサービス提供が許容されているかどうかなどを決定するように構成されている。
CDNエンジン120内のモジュールは、大まかにもしくは緻密に結合され得、または、それらの両極端の間の様々な程度で、実行される特定の機能に応じて連結が変化するように結合され得る。例えば、ビジネスロジックモジュール132は、その判定(複数可)を行うために、キャッシュモジュール124内に保持された情報(人気度データ、リソース寿命データ、リソースサイズデータ、および最新アクセスパターンデータなどを含むがこれらに限定されない)を必要とし得、したがって、それらの目的のためにキャッシュモジュールと緻密に結合され得る一方、他の機能については連結がほとんどないまたはない場合がある。本願においていかなるものも、本明細書で説明される可能な実施形態のいずれかにおいて言及された様々な開示されたモジュール間の任意の特定の程度の連結またはその構成について制限または要件を課すものとして解釈されるべきではない。
コンテンツ配信システム100のその他の構成は好適に実装され得る。例えば、キャッシュモジュール124およびビジネスロジックモジュール132は、互いとは異なるノード上に提供されてもよく、それらのノードは、データ、値、命令、およびメッセージなどの交換を許容するように構造化されたネットワークを介して動作可能に結合され得る。そのようなネットワークは、任意の好適なLANまたはWAN接続であり得る。例えばは、ネットワークは、FDMA、TDMA、SONET、DWDM、OTN、CDMA(特に、EVDO)、UMTS(特に、TD-SCDMAもしくはTDS WCDMA、LTE、eMBMS、およびHSDPAなど)、UTRA、GSM、1x、GPRS、PCS、802.11X、ZigBee、Bluetooth、Wi-Fi、任意の好適な有線ネットワーク、ならびに/またはそれらの組み合わせなどによってサポートされ得る。
図2は、いくつかの実施形態によるノード200を示すブロック図である。図1~2を参照すると、ノード200は、いくつかの実施形態では、ノード110、140、ならびにノード140とオリジンサーバ150との間のノード(ある場合)のうちの任意の好適な1つまたは複数の非限定的な例である。示されるように、ノード200は、処理回路210、大容量ストレージデバイス218、およびネットワークデバイス220のうちの1つまたは複数を含む。
処理回路210は、ノード200に関連して本明細書で説明される様々な機能を実行するように構成される。例えば、エッジノード110(図1)の処理回路210は、CDNエンジン120の1つまたは複数の機能、例えば、キャッシュモジュール124、および任意にまた、ビジネスロジックモジュール132を実装するように構成され得る。処理回路210は、プロセッサ212およびメモリ214を含む。プロセッサ212は、汎用プロセッサ、特定用途向け集積回路(ASIC)、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、処理コンポーネントのグループ、または他の好適な電子処理コンポーネントを用いて実装され得る。メモリ214は、図1を参照して説明した一次ストレージデバイス126であり得る、またはそれを含み得る。メモリ214は、例えば、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、不揮発性RAM(NVRAM)、フラッシュメモリ、ハードディスクストレージ、または別の好適なデータストレージユニットで実装され得る。メモリ214は、プロセッサ212によって実行される様々なプロセスを容易にするためのデータおよび/またはコンピュータコードを格納する。さらに、メモリ214は、有形の非一時的揮発性メモリまたは不揮発性メモリであるか、またはそれを含む。したがって、メモリ214は、データベースコンポーネント、オブジェクトコードコンポーネント、スクリプトコンポーネント、または、本明細書で説明される様々な機能をサポートするための任意の他のタイプの情報構造を含む。大容量ストレージデバイス218は、図1を参照して説明した二次ストレージデバイス128であり得る、またはそれを含み得る。大容量ストレージデバイス218は、例えば、HDDまたはSSDで実装され得る。
ネットワークインタフェース220は、クライアント(例えば、クライアント102a~102n)、コンテンツ配信システム100内の他のノード、および/またはオリジンサーバ150との通信を確立するように構造化されている。いくつかの例では、ネットワークインタフェース220は、ネットワーク140aを確立するように構成されている。ネットワークインタフェース220は、それらを達成するためのハードウェアおよびソフトウェアを含む。いくつかの実装形態では、ネットワークインタフェース220は、セルラ送受信機(セルラ規格用に構成された)、ローカル無線ネットワーク送受信機(802.11X、ZigBee、Bluetooth、もしくはWi-Fi用)、有線ネットワークインタフェース、および/またはそれらの組み合わせ(例えば、セルラ送受信機およびBluetooth送受信機の両方)などを含む。
それぞれ図1~2を参照して説明される、コンテンツ配信システム100またはノード200内の任意の好適な1つもしくは複数のコンピュータまたは処理回路、あるいは任意の他の好適なコンピュータもしくは処理回路は、本明細書に提供される様式で二次ストレージデバイスにコンテンツアイテムを格納するための方法における使用のために構成され得る。例えば、図3は、本明細書に提供される様々な構成による、コンテンツアイテムを格納するための例示的な方法300における動作のフローを示す。図3を参照して説明される方法300は、プロセッサと、一次ストレージデバイスと、二次ストレージデバイスと、ネットワークインタフェースとを含む任意の好適なコンピュータによって実装され得る。上でより詳細に説明したように、一次ストレージデバイスは第1のレートでコンテンツアイテムを受信し得、二次ストレージデバイスは、第1のレートよりも大幅に低い第2のレートでコンテンツアイテムを受信し得、これは、以前の既知のシステムでは計算上の非効率を引き起こし得る。一例として、一次ストレージデバイスは、RAMなどのメモリキャッシュを含み得、二次ストレージデバイスは、HDDまたはSSDなどの大容量ストレージデバイスを含み得る。
図3を参照すると、方法300は、ネットワークインタフェースを介して一次ストレージデバイスによって、クライアントからのそれぞれの要求に応答して、複数のコンテンツアイテムを受信する動作を含み得る(動作302)。例えば、図1に示されるコンテンツ配信システム100のエッジノード110内の要求サービスモジュール122は、それぞれのコンテンツアイテムに対するクライアント102a・・・102nからの様々な要求を経時的に受信し得る。要求の一例はHTTP要求である。要求は、クラウドから、および/またはインターネットから受信され得る。そのような各クライアント要求に応答して、要求サービスモジュール122は、クライアント要求を認証するための認証要求をビジネスロジックモジュール132に送信し得、この認証要求に対して、ビジネスロジックモジュール132は、クライアント要求がサービス提供され得るかどうかを示すことによって応答し得る。ビジネスロジックモジュール132が、クライアント要求がサービスされ得ることを示す場合、キャッシュモジュール124は、要求されたコンテンツアイテムが一次ストレージ126または二次ストレージ128に既に格納されているかどうかを決定し得る。要求されたコンテンツアイテムが一次ストレージ126または二次ストレージ128に既に格納されていない場合、キャッシュモジュール124は、コンテンツアイテムに対するコンテンツ要求を上流ノード140またはオリジンサーバ150に送信する。そのコンテンツ要求に応答して、キャッシュモジュール124の一次ストレージ126はネットワークインタフェース(例えば、図2を参照して説明されるネットワークデバイス220)を介してコンテンツアイテムを受信する。要求されたコンテンツアイテムが一次ストレージ126または二次ストレージ128に既に格納されている場合、キャッシュモジュール124は、そのようなコンテンツ要求を送信する必要がなく、任意の適切なコンテンツアイテムを二次ストレージ128から一次ストレージ126に分配のために伝達し得る。当技術分野において既知であり、以下でより詳細に説明されるものなどの様式で、キャッシュモジュール124は、クライアントからのそれぞれの要求に応答して、特定のコンテンツアイテムを一次ストレージデバイス126から削除し得る。例えば、一次ストレージデバイスは、コンテンツアイテムを格納するための容量が限定されている場合がある。したがって、クライアント要求に応答して、追加のコンテンツアイテムを一次ストレージデバイス126に書き込むために、キャッシュモジュール124は、新しいコンテンツアイテムのための余地を作るためにストレージデバイスからより古いコンテンツアイテムを選択的に削除し得る。「キャッシュ管理」として知られている場合がある、アルゴリズム一次ストレージデバイス内のコンテンツアイテムを管理するための様々なアルゴリズムが当技術分野において既知であるが、本願の構成はこれに限定されない。
図3を再び参照すると、方法300は、ネットワークインタフェースを介して、クライアントからのそれぞれの要求に応答して、一次ストレージデバイスからクライアントに複数のコンテンツアイテムを分配する段階(動作304)を含む。例えば、クライアント102a・・・102nからのそれぞれの要求に応答して、要求サービスモジュール122は、ネットワークインタフェース(例えば、図2を参照して説明されるネットワークデバイス220)を介して、一次ストレージ126からそのようなクライアントにコンテンツアイテムを送信する。
図3を再び参照すると、方法300は、プロセッサによって、経時的なクライアントからのそれぞれの要求に基づいて、コンテンツアイテムについて動的優先度リストを生成する段階(動作306)を含む。すなわち、任意の所与の時間において、プロセッサは、コンテンツアイテムのうちのどれが二次ストレージデバイスへの書き込みについて最も高い優先度を有するべきであるか、および、コンテンツアイテムのうちのどれが二次ストレージデバイスへの書き込みについて次に最も高い優先度を有するべきであるかなどを識別する。優先度リストは、以下で説明するものなどの様式で、経時的なクライアントからの異なる要求に応答して、動的であり得、すなわち、経時的に変化し得る。動的優先度リストを生成するための例示的な基準は以下により詳細に説明される。図3に示される方法300はまた、プロセッサによって、動的優先度リストに基づいて、コンテンツアイテムのサブセットのみを二次ストレージデバイスに書き込む段階(動作308)を含み得る。残りのコンテンツアイテムは、例えばそれらが、動作302を参照して説明されるものなどの様式で削除されるまで、一次ストレージデバイスに残され得る方法300の動作306および308は、一次ストレージデバイスおよび二次ストレージデバイスに結合された任意の好適なプロセッサによって実装され得る。一例では、図1を参照して説明されたキャッシュモジュール124または図2を参照して説明された処理回路210が、動作306および308を実装するように構成され得る。
しかしながら、方法300の動作306および/または308を実装するプロセッサは、動作302および/または304を実装するプロセッサと同じであり得るが、必ずしも同じである必要はないことに留意されたい。例えば、第1のプロセッサは、クライアントからのそれぞれの要求を受信し得(動作302)、そのような要求に応答して、複数のコンテンツアイテムをクライアントに分配し得る(動作304)。いくつかの構成では、第1のプロセッサは、動的優先度リストを生成し得(306)、または、一次ストレージデバイスからのコンテンツアイテムのサブセットを二次ストレージデバイスに書き込み得る(動作308)。その他の構成では、第2のプロセッサは、動的優先度リストを生成し得(306)、または、一次ストレージデバイスからのコンテンツアイテムのサブセットを二次ストレージデバイスに書き込み得る(動作308)。第2のプロセッサは、第2のストレージデバイスへのコンテンツアイテムのサブセットの書き込みを管理するように構成され得る一方、第1のプロセッサは、第1のストレージデバイスへのコンテンツアイテムの書き込みを管理するように構成され得る。例えば、第2のプロセッサは、第1のストレージデバイスからのコンテンツアイテムのサブセットを第2のストレージデバイスに書き込むよりもむしろ、ネットワークインタフェースからのコンテンツアイテムのサブセットを二次ストレージデバイスに書き込み得る。
図1~2を参照して説明されるものなどの構成では、経時的なコンテンツアイテムに対するクライアントからのそれぞれの要求に基づいて、プロセッサがコンテンツアイテムについての動的優先度リストを生成することが有用であり得、これは、例えば、それらの要求の頻度またはタイミングが、そのようなコンテンツアイテムが再び要求される可能性と関連し得るからである。例として、所与の期間内に単一のクライアントのみが特定のコンテンツアイテムを要求する場合、別のクライアントが後続期間の間にそのコンテンツアイテムを要求し得る可能性が低い。そのように、追加の計算リソースが無駄にされないように、プロセッサが、そのコンテンツアイテムを、二次ストレージデバイスへの書き込みついての優先度リストにおいて低く配置することが適切であり得る。他方で、長期間にわたって複数のクライアントが特定のコンテンツアイテムを要求する場合、さらにより多くのクライアントが後続期間の間にそのアイテムを要求し得る可能性が高い場合がある。そのように、上流ノードまたはオリジンサーバから再びそのコンテンツアイテムを取得するのに追加の計算リソースを消費するよりもむしろ、プロセッサが、二次ストレージデバイスへの書き込みについての優先度リストにおいてそのコンテンツアイテムを高く配置し、それによりそれがローカルに格納され得ることが適切であり得る。別の例では、複数のクライアントが短期間内に特定のコンテンツアイテムを要求するが、その後には要求しない場合に、追加のクライアントが後続期間の間にそのアイテムを要求し得る可能性が低い場合がある。そのようなコンテンツアイテムの一例は、その包装の直後の期間の間に多くのユーザが関心を持ち得るが、その後にはそれほど関心を持たない場合がある、生放送であり得る。そのように、追加の計算リソースが無駄にされないように、プロセッサが、そのコンテンツアイテムを二次ストレージデバイスへの書き込みについての優先度リストにおいて低く配置することが適切であり得る。これらのおよび任意の他のシナリオでは、プロセッサは、ユーザの関心が経時的に変動し得るため、経時的なそれらのコンテンツアイテムに対するクライアントからのそれぞれの要求に基づいて、動的優先度リストを周期的または継続的に更新し得る。
プロセッサは、任意の好適な基準または基準の組み合わせに基づいて、動的優先度リストを生成するように構成され得る。例えば、いくつかの構成では、プロセッサは、クライアントがコンテンツアイテムをそれぞれ要求する頻度に基づいて動的優先度リストを生成する。これらの頻度は経時的に変化し得る。例として、所与の時間において、プロセッサは、その時点でより低い頻度で要求されているコンテンツアイテムよりも、その時間でより高い頻度で要求されているコンテンツアイテムを動的優先度リストにおいてより高く配置するように構成され得る。別の例では、いくつかの構成において、プロセッサは、クライアントがコンテンツアイテムをそれぞれ要求する回数に基づいて動的優先度リストを生成する。例として、所与の時間において、プロセッサは、その時点で要求された回数が少ないコンテンツアイテムよりも、その時点で要求された回数が多いコンテンツアイテムを動的優先度リストにおいてより高く配置するように構成され得る。
なお別の例では、いくつかの構成において、プロセッサは、クライアントがコンテンツアイテムをそれぞれ要求するレートの変化に基づいて動的優先度リストを生成する。例として、所与の時間において、プロセッサは、その時点でのクライアント要求のレートの増加が小さいコンテンツアイテムよりも、その時点でクライアント要求のレートの増加が大きいコンテンツアイテムを動的優先度リストにおいてより高く配置するように構成され得る。しかしながら、生放送のような一定のタイプのコンテンツアイテムは、その放送中およびその放送直後には多くのユーザが関心を持ち得るが、その後にはそれほど関心を持たない場合がある。そのようなコンテンツアイテムは、短期間におけるクライアント要求のレートの増加が比較的大きい場合があり、このレートの増加から、プロセッサは、追加の計算リソースが無駄にされないように、そのコンテンツアイテムを二次ストレージデバイスへの書き込みについての優先度リストにおいて低く配置することがより適切であることを決定し得る。そのように、いくつかの構成では、プロセッサは、要求のレートの増加がより高いコンテンツアイテムよりも、クライアント要求のレートの増加が小さいコンテンツアイテムを動的優先度リストにおいてより高く配置するように構成され得る。さらに、または代替的に、プロセッサは、その時点で、コンテンツアイテムのクライアント要求のレートの割合の変化を、予め定められた閾値(例えば、生放送を示す閾値)と比較し、その比較に基づいて、コンテンツアイテムを動的優先度リストにおいてより高くまたはより低く配置し得る。同様に、プロセッサは、クライアントによる最新の要求のそれらのそれぞれの時間に基づいて、動的優先度リストにおいてコンテンツアイテムを配置し得、より最近要求されたコンテンツアイテムが、より前に要求されたコンテンツアイテムよりも高くランク付けされる。
なお別の例では、プロセッサは、ネットワークインタフェースを介してコンテンツアイテムを受信するそれぞれのコストに基づいて、動的優先度リストを生成する。この文脈において、「コスト」とは、オリジンサーバなどの別のコンピュータからコンテンツアイテムをそれぞれ取得する計算コストを指し得る。計算コストが比較的低いコンテンツアイテムは、オリジンサーバから比較的迅速に取得され得る、ファイルサイズが比較的小さく、かつ、ネットワークリソースの消費が低いものであり得る。計算コストが比較的高いコンテンツアイテムは、ファイルサイズが比較的大きい場合があり、ネットワークを介したオリジンサーバからの伝達に時間がかかり得る。したがって、後の時点でネットワークを介してそれらのコンテンツアイテムを再び取得することに計算リソースを消費する必要性を回避するように、計算コストがより高いコンテンツアイテムを二次ストレージに書き込むための計算リソースの節約となり得る。そのように、プロセッサは、その時点でネットワークインタフェースを介して受信するコストがより低いコンテンツアイテムよりも、その時点でネットワークインタフェースを介して受信するコストがより高いコンテンツアイテムを動的優先度リストにおいてより高く配置するように構成され得る。
なお別の例では、プロセッサは、コンテンツアイテムを一次ストレージデバイスに書き込むそれぞれのコストに基づいて、動的優先度リストを生成する。この文脈にて、「コスト」とは、コンテンツアイテムを一次ストレージデバイスにそれぞれ書き込む計算コストを指し得る。計算コストが比較的低いコンテンツアイテムは、一次ストレージデバイスに比較的容易に書き込まれ得る、ファイルサイズが比較的小さいものであり得る。計算コストが比較的高いコンテンツアイテムは、ファイルサイズが比較的大きい場合があり一次ストレージデバイスへの書き込みに時間がかかり得る。したがって、後の時点でコンテンツアイテムを一次ストレージデバイスに書き込むことに計算リソースを消費する必要性を回避するように、計算コストがより高いコンテンツアイテムを二次ストレージに書き込むための計算リソースの節約となり得る。そのように、プロセッサは、その時点で一次ストレージデバイスに書き込むコストがより低いコンテンツアイテムよりも、その時点で一次ストレージデバイスに書き込むコストがより高いコンテンツアイテムを動的優先度リストにおいてより高く配置するように構成され得る。
さらに別の例では、プロセッサは、コンテンツアイテムを二次ストレージデバイスに書き込むそれぞれのコストに基づいて、動的優先度リストを生成する。この文脈において、「コスト」とは、そのデバイスにコンテンツアイテムを書き込んだ結果としての二次ストレージデバイスの予想される劣化を指し得る。コストが比較的低いコンテンツアイテムは、二次ストレージデバイスから複数回読み取られることが予想され得る、および/または、二次ストレージデバイスに比較的容易に書き込まれ得る比較的小さいファイルサイズを有し得るものであり得る。コストが比較的高いコンテンツアイテムは、二次ストレージデバイスから読み取られる頻度が低いもしくは読み取られることがないと予想され得る、および/または、二次ストレージデバイスへの書き込みに時間がかかり得る比較的大きいファイルサイズを有し得るものであり得る。したがって、それらのコンテンツアイテムを二次ストレージデバイスに書き込むことによる二次ストレージの劣化を回避するように、コストがより低いコンテンツアイテムを二次ストレージに書き込むための計算リソースの節約となり得る。そのように、プロセッサは、その時点で二次ストレージデバイスに書き込むコストがより高いコンテンツアイテムよりも、その時点で二次ストレージデバイスに書き込むコストがより低いコンテンツアイテムを動的優先度リストにおいてより高く配置するように構成され得る。
プロセッサは、そのような基準または他の適切な基準もしくは複数の基準のうちの1つまたは複数の任意の好適な組み合わせを使用するように構成され得る。例えば、いくつかの構成では、プロセッサは、(例えば、一次ストレージのコンテンツに基づくよりもむしろ)クライアント要求のストリームに直接基づいて動的優先度リストを生成するように構成され得るが、動的優先度リストに基づく優先順位で一次ストレージからコンテンツアイテムを取得し得る。本明細書の他の箇所で述べたように、コンテンツアイテムは、例えばキャッシュ管理の一環として、一次ストレージデバイスから削除され得る。そのように、クライアント要求のストリーム内のすべてのコンテンツアイテムが必ずしも一次ストレージデバイスに存在しない場合がある。本明細書で説明したものなどの他の基準と任意に組み合わされ得る別の基準として、プロセッサは、要求ストリーム内のコンテンツアイテムが一次ストレージデバイス内にそれぞれ格納されているかどうかを決定し、かつ、一次ストレージデバイスに格納されていないコンテンツアイテムを動的優先度リストにおいてより低く配置するように構成され得る。すなわち、プロセッサは、それぞれのコンテンツアイテムが一次ストレージデバイスにおいて利用可能であるかどうかに基づいて動的優先度リストを生成し得る。
プロセッサは任意に、各コンテンツアイテムについて、コンピューティングシステムに対して、動作302を参照して上で説明したように最終的にそこから削除され得る一次ストレージデバイスのみにそのコンテンツアイテムを保持することとは対照的に、そのコンテンツアイテムを二次ストレージデバイスに書き込むことのそれぞれの値を示す「適性値」を生成し得る。適性値が最も高いコンテンツアイテムは動的優先度リストにおいて最高であり得、プロセッサは、適性値の降順でコンテンツアイテムを二次ストレージに書き込み得るか、または、所定の閾値を超えるそれらの適性値に基づいてコンテンツアイテムを二次ストレージに書き込み得る。単なる例として、プロセッサは、一次ストレージデバイスに格納された各コンテンツアイテムに、クライアントがそのコンテンツアイテムをそれぞれ要求した回数に対応する適性値を割り当て得、したがって、クライアントがコンテンツアイテムをそれぞれ要求した回数に基づいて、動的優先度リストを生成し得る。各コンテンツアイテムの適性値は、例えば、そのアイテムが要求されるごとに、または、そうでない場合にはコンテンツアイテムの人気度に基づいてインクリメントされ得る。プロセッサは、適性値の降順で、または、所定の閾値を超えるそれらの適性値に基づいて、コンテンツアイテムを二次ストレージに書き込み得る。コンテンツアイテムの適性値は、本明細書に提供されるもの(例えば、要求の頻度、要求の回数、要求のレート、受信コスト、一次ストレージへの書き込みコスト、二次ストレージへの書き込みコスト)などの、任意の好適な基準または基準の組み合わせに基づき得る。
本主題により提供される構成はコンテンツ配信システムにおける実装に限定されず、コンテンツアイテムの管理に限定されないことが理解されるべきである。代わりに、任意の好適なデータアイテムが任意の好適なプロセッサによって任意の好適なメモリデバイスに書き込まれ得る。図4は、様々な実施形態による、データアイテムを大容量ストレージデバイスに格納するための方法を示すフロー図である。図4に示される方法400は、プロセッサと、メモリキャッシュと、大容量ストレージデバイスとを含む、好適にプログラミングされたコンピュータによって実行され得る。方法400は、メモリキャッシュによってデータアイテムを受信する段階(動作402)を含み得る。好適なメモリキャッシュの例は、本明細書の他の箇所で提供されている。データアイテムは、任意の好適なタイプのファイルまたはデータを含み得、本明細書の他の箇所で提供されるコンテンツアイテムの例に限定されない。方法400は、プロセッサによって、データアイテムの各々のそれぞれの適性値を生成する段階(動作404)を含み得る。データアイテムの適性値は、本明細書に提供されるもの(例えば、要求の頻度、要求の回数、要求のレート、受信コスト、メモリキャッシュへの書き込みコスト、大容量ストレージデバイスへの書き込みコスト)などの任意の好適な基準または基準の組み合わせに基づいて生成され得る。方法400は、例えば、プロセッサが一次ストレージデバイスからのコンテンツアイテムのサブセットを二次ストレージデバイスに書き込む、本明細書で説明されたものと類似の様式で、プロセッサによって、それぞれの適性値に基づいて、メモリキャッシュからのデータアイテムのサブセットのみを大容量ストレージデバイスに書き込む段階(動作406)を含み得る。
ビジネスロジックモジュール132を含む構成では、そのモジュールは、例えば、本明細書で説明されたものなどの様式で、それぞれのコンテンツアイテムについてクライアントが行うすべての要求を観測および処理するように構成され得ることが理解されるべきである。キャッシュモジュール122は任意に、それぞれのコンテンツアイテムの現在のキャッシュ状態についてビジネスロジックモジュール132に通知するように構成され得、ビジネスロジックモジュールは任意に、そのような各コンテンツアイテムの適性値を算出し、その適性値を、例えば、そのコンテンツアイテムを二次ストレージにコミットする適性をキャッシュモジュール122に通知するように構成され得る。
本明細書で説明される実施形態は、図面を参照して説明してきた。図面は、本明細書で説明されるシステム、方法、およびプログラムを実装する特定の実施形態の特定の詳細を示している。しかしながら、図面を用いた実施形態の説明は、図面に存在し得るいかなる限定も本開示に課すものと解釈するべきではない。
本明細書のいずれの請求項要素も、その要素が「ための手段」という語句を使用して明確に引用されていない限り、米国特許法112条(f)の条項の下で解釈されるべきでないことが理解されるべきである。
本明細書で使用される場合、「回路」という用語は、本明細書で説明される機能を実行するように構造化されたハードウェアを含み得る。いくつかの実施形態では、それぞれの各「回路」は、本明細書で説明される機能を実行するハードウェアを構成するための機械可読媒体を含み得る。回路は、処理回路、ネットワークインタフェース、周辺デバイス、入力デバイス、出力デバイス、センサなどを含むがこれらに限定されない1つまたは複数の回路コンポーネントとして具現化され得る。いくつかの実施形態では、回路は、1つまたは複数のアナログ回路、電子回路(例えば、集積回路(IC)、ディスクリート回路、システムオンチップ(SOC)回路など)、電気通信回路、ハイブリッド回路および任意の他のタイプの「回路」の形態を取り得る。これに関連して、「回路」は、本明細書で説明した動作の実現を達成するか、または容易にするための任意のタイプのコンポーネントを含み得る。例えば、本明細書で説明した回路は、1つまたは複数のトランジスタ、論理ゲート(例えば、NAND、AND、NOR、OR、XOR、NOT、XNORなど)、抵抗器、マルチプレクサ、レジスタ、コンデンサ、インダクタ、ダイオード、ワイヤ等を含み得る。
「回路」は、1つまたは複数の一次ストレージデバイスまたは二次ストレージデバイスなどの、1つまたは複数のメモリまたはメモリデバイスに通信可能に結合された1つまたは複数のプロセッサも含み得る。これに関連して、1つまたは複数のプロセッサは、メモリに格納された命令を実行し得るか、または、本来であれば1つまたは複数のプロセッサにアクセス可能な命令を実行し得る。いくつかの実施形態では、1つまたは複数のプロセッサは、様々な方法で具現化され得る。1つまたは複数のプロセッサは、少なくとも本明細書で説明した動作を実行するのに十分な様式で構築され得る。いくつかの実施形態では、1つまたは複数のプロセッサは、複数の回路により共有され得る(例えば、回路Aおよび回路Bが、いくつかの例示的な実施形態では、メモリの異なるエリアを介して格納されるか、またはそうでなければアクセスされる命令を実行し得る同じプロセッサを備え得るか、またはそうでなければ共有し得る)。代替的に、または追加的に、1つまたは複数のプロセッサは、1つまたは複数のコプロセッサとは無関係に特定の動作を実行するように、または別様に実行するように構造化され得る。他の例示的な実施形態では、2つまたはそれよりも多くのプロセッサがバスを介して結合されることで、独立した、並行の、パイプライン化またはマルチスレッド化された命令の実行が可能になり得る。各プロセッサは、1つまたは複数の汎用プロセッサ、ASIC、FPGA、DSP、またはメモリにより提供される命令を実行するように構造化された他の好適な電子データ処理コンポーネントとして実装され得る。1つまたは複数のプロセッサは、シングルコアプロセッサ、マルチコアプロセッサ(例えば、デュアルコアプロセッサ、トリプルコアプロセッサ、クアッドコアプロセッサなど)、マイクロプロセッサなどの形態を取り得る。いくつかの実施形態では、1つまたは複数のプロセッサは、システムの外部にあってよく、例えば、1つまたは複数のプロセッサは、リモートプロセッサ(例えば、クラウドベースのプロセッサ)であってよい。代替的に、または追加的に、1つまたは複数のプロセッサは、システムの内部および/またはローカルであってよい。これに関連して、所与の回路またはそのコンポーネントが、ローカルに(例えば、ローカルサーバ、ローカルコンピューティングシステムなどの一部として)、またはリモートで(例えば、クラウドベースサーバなどのリモートサーバの一部として)配置され得る。そのために、本明細書で説明した「回路」は、1つまたは複数の位置にわたって分散されたコンポーネントを含み得る。
実施形態のシステム全体または一部を実装するための例示的なシステムは、処理ユニットと、システムメモリデバイスと、システムメモリデバイスを含む様々なシステムコンポーネントを処理ユニットに結合させるシステムバスとを含む、汎用コンピュータ、専用コンピュータ、または専用処理マシンを含み得る。システムメモリは、一次ストレージデバイスおよび/または二次ストレージデバイスであり得る、またはそれを含み得る。システムメモリ、一次ストレージデバイス、および二次ストレージデバイスのうちの1つまたは複数は、非一時的揮発性記憶媒体、不揮発性記憶媒体、非一時的記憶媒体(例えば、1つまたは複数の揮発性および/または不揮発性メモリ)などを含み得る。いくつかの実施形態では、不揮発性媒体は、ROM、フラッシュメモリ(例えば、フラッシュメモリ、例えばNAND、3D NAND、NOR、3D NORなど)、EEPROM、MRAM、磁気ストレージ、ハードディスク、光ディスクなどの形態を取り得る。他の実施形態では、揮発性記憶媒体は、RAM、TRAM、ZRAMなどの形態を取り得る。上述のものの組み合わせも、機械可読媒体の範囲内に含まれる。これに関連して、機械実行可能命令は、例えば、汎用コンピュータ、専用コンピュータまたは専用処理マシンに特定の機能または機能のグループを実行させる命令およびデータを含む。それぞれの各メモリデバイスは、プロセッサ命令および関連データを含む、1つまたは複数の関連付けられた回路により実行されるオペレーションに関する情報(例えば、データベースコンポーネント、オブジェクトコードコンポーネント、スクリプトコンポーネントなど)を本明細書で説明した例示的な実施形態に従って維持するように、またはそうでなければ格納するように動作可能であってよい。
本明細書で説明した「入力デバイス」という用語は、キーボード、キーパッド、マウス、ジョイスティックまたは同様の機能を実行する他の入力デバイスを含むがこれらに限定されない任意のタイプの入力デバイスを含み得ることにも留意されたい。比較的に、本明細書で説明した「出力デバイス」という用語は、コンピュータモニタ、プリンタ、ファクシミリ機または同様の機能を実行する他の出力デバイスを含むがこれらに限定されない任意のタイプの出力デバイスを含み得る。
本明細書における図は方法ステップの特定の順序および構成を示し得るが、これらのステップの順序は示されているものとは異なり得ると理解されることに留意されたい。例えば、2つ以上のステップが、同時に、または部分的に同時に実行され得る。また、個別のステップとして実行されるいくつかの方法ステップが組み合わされてよく、組み合わされたステップとして実行されているステップが個別のステップに分けられてよく、特定のプロセスのシーケンスが逆にされるかまたは別様に変更されてよく、個別のプロセスの性質または数は変更されたり変化させられたりしてよい。任意の要素または装置の順序またはシーケンスは、代替的な実施形態に従って変更されたり置き換えられたりしてよい。したがって、すべてのそのような修正は、添付の特許請求の範囲において定義される本開示の範囲内に含まれるよう意図されている。そのような変形は、選択される機械可読媒体およびハードウェアシステムと、設計者の選択とに依存する。すべてのそのような変形は本開示の範囲内であることが理解される。同様に、本開示のソフトウェアおよびウェブの実装は、ルールベースロジックと様々なデータベース検索ステップ、相関付けステップ、比較ステップ、および判定ステップを実現する他のロジックとを伴う標準的なプログラミング技術を用いて実現され得る。
実施形態についての前述の説明を例示および説明の目的で提示した。包括的なものとすることも、本開示を開示された正確な形式に限定することも意図されておらず、修正および変更が、上述の教示に鑑みて可能であるか、または本開示から取得され得る。当該実施形態は、本開示の原理およびその実際の用途を説明することで、様々な実施形態を当業者が利用することを可能にするために、かつ、様々な修正が、意図された特定の用途に適合するよう、選択および説明されている。添付の特許請求の範囲において表される本開示の範囲から逸脱することなく、他の置き換え、修正、変更および省略が、当該実施形態の設計、動作条件および実施形態で行われ得る。

Claims (18)

  1. コンテンツアイテムを格納するための方法であって、前記方法が、プロセッサと、一次ストレージデバイスと、二次ストレージデバイスと、ネットワークインタフェースとを含むコンピュータによって実装され、前記方法が、
    前記ネットワークインタフェースを介して前記一次ストレージデバイスによって、クライアントからのそれぞれの要求に応答して、複数のコンテンツアイテムを受信する段階と、
    前記ネットワークインタフェースを介して、前記クライアントからの前記それぞれの要求に応答して、前記一次ストレージデバイスからクライアントに前記複数のコンテンツアイテムを分配する段階と、
    前記プロセッサによって、経時的な前記クライアントからの前記それぞれの要求に基づいて、前記コンテンツアイテムについて動的優先度リストを生成する段階と、
    前記プロセッサによって、前記動的優先度リストに基づいて、前記コンテンツアイテムのサブセットのみを前記二次ストレージデバイスに書き込む段階と
    を備える、方法。
  2. 前記一次ストレージデバイスがメモリキャッシュを有し、前記二次ストレージデバイスが大容量ストレージデバイスを有する、請求項1に記載の方法。
  3. 前記一次ストレージデバイスが第1のレートでコンテンツアイテムを受信し、前記二次ストレージデバイスが、前記第1のレートよりも大幅に低い第2のレートでコンテンツアイテムを受信する、請求項1に記載の方法。
  4. 前記プロセッサによって、前記クライアントからの前記それぞれの要求に応答して、前記一次ストレージデバイスからコンテンツアイテムを削除する段階をさらに備える、請求項1に記載の方法。
  5. 前記プロセッサは、前記クライアントが前記コンテンツアイテムをそれぞれ要求する頻度に基づいて、前記動的優先度リストを生成する、請求項1に記載の方法。
  6. 前記プロセッサは、前記クライアントが前記コンテンツアイテムをそれぞれ要求する回数に基づいて、前記動的優先度リストを生成する、請求項1に記載の方法。
  7. 前記プロセッサは、前記クライアントが前記コンテンツアイテムをそれぞれ要求するレートの変化に基づいて、前記動的優先度リストを生成する、請求項1に記載の方法。
  8. 前記プロセッサが、前記ネットワークインタフェースを介して前記コンテンツアイテムを受信するそれぞれのコストに基づいて、前記動的優先度リストを生成する、請求項1に記載の方法。
  9. 前記プロセッサが、前記一次ストレージデバイスへの前記コンテンツアイテムの書き込みのそれぞれのコストに基づいて、前記動的優先度リストを生成する、請求項1に記載の方法。
  10. 前記プロセッサが、前記二次ストレージデバイスへの前記コンテンツアイテムの書き込みのそれぞれのコストに基づいて、前記動的優先度リストを生成する、請求項1に記載の方法。
  11. 前記コンピュータが、コンテンツ配信ネットワークのノードを有する、請求項1に記載の方法。
  12. 前記プロセッサが、前記クライアントから前記それぞれの要求を受信し、そのような要求に応答して前記複数のコンテンツアイテムを前記クライアントに分配する、請求項1に記載の方法。
  13. 前記プロセッサが、前記一次ストレージデバイスからの前記コンテンツアイテムの前記サブセットを前記二次ストレージデバイスに書き込む、請求項1に記載の方法。
  14. 前記プロセッサが、前記ネットワークインタフェースからの前記コンテンツアイテムの前記サブセットを前記二次ストレージデバイスに書き込む、請求項1に記載の方法。
  15. 前記プロセッサが、前記それぞれのコンテンツアイテムが前記一次ストレージデバイスにおいて利用可能であるかどうかに基づいて、前記動的優先度リストを生成する、請求項14に記載の方法。
  16. プロセッサと、メモリキャッシュと、大容量ストレージデバイスとを有するコンピュータによってデータアイテムを格納するための方法であって、
    前記メモリキャッシュによって前記データアイテムを受信する段階と、
    前記プロセッサによって、前記データアイテムの各々のそれぞれの適性値を生成する段階と、
    前記プロセッサによって、前記それぞれの適性値に基づいて、前記メモリキャッシュからの前記データアイテムのサブセットのみを前記大容量ストレージデバイスに書き込む段階と
    を備える、方法。
  17. プロセッサと、一次ストレージデバイスと、二次ストレージデバイスと、ネットワークインタフェースとを備えるコンピュータシステムであって、前記プロセッサが、
    前記ネットワークインタフェースを介して前記一次ストレージデバイスによって、クライアントからのそれぞれの要求に応答して、複数のコンテンツアイテムを受信することと、
    前記ネットワークインタフェースを介して、前記クライアントからの前記それぞれの要求に応答して、前記一次ストレージデバイスからクライアントに前記複数のコンテンツアイテムを分配することと、
    前記プロセッサによって、経時的な前記クライアントからの前記それぞれの要求に基づいて、前記複数のコンテンツアイテムについて動的優先度リストを生成することと、
    前記プロセッサによって、前記動的優先度リストに基づいて、前記複数のコンテンツアイテムのサブセットのみを前記二次ストレージデバイスに書き込むことと
    を含む動作を実装するように構成されている、コンピュータシステム。
  18. プロセッサと、メモリキャッシュと、大容量ストレージデバイスとを備えるコンピュータにシステムであって、前記プロセッサが、
    前記メモリキャッシュによって前記データアイテムを受信することと、
    前記プロセッサによって、前記データアイテムの各々のそれぞれの適性値を生成することと、
    前記プロセッサによって、前記それぞれの適性値に基づいて、前記メモリキャッシュからの前記データアイテムのサブセットのみを前記大容量ストレージデバイスに書き込むことと
    を含む動作を実装するように構成されている、コンピュータシステム。
JP2022539295A 2020-01-02 2020-04-27 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法 Active JP7318899B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062956612P 2020-01-02 2020-01-02
US62/956,612 2020-01-02
PCT/US2020/030140 WO2021137885A1 (en) 2020-01-02 2020-04-27 Systems and methods for storing content items in secondary storage

Publications (3)

Publication Number Publication Date
JP2023509125A true JP2023509125A (ja) 2023-03-07
JPWO2021137885A5 JPWO2021137885A5 (ja) 2023-05-09
JP7318899B2 JP7318899B2 (ja) 2023-08-01

Family

ID=70918960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022539295A Active JP7318899B2 (ja) 2020-01-02 2020-04-27 二次ストレージにコンテンツアイテムを格納するためのシステムおよび方法

Country Status (7)

Country Link
US (2) US11463520B2 (ja)
EP (1) EP4085594A1 (ja)
JP (1) JP7318899B2 (ja)
KR (1) KR20220123290A (ja)
AU (1) AU2020417157A1 (ja)
CA (1) CA3163480A1 (ja)
WO (1) WO2021137885A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116506566A (zh) * 2023-06-20 2023-07-28 深圳市欣喜连连科技有限公司 一种物联网智能摄像系统数据分布式存储方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238751A1 (en) * 2012-03-10 2013-09-12 Headwater Partners Il LLC Content distribution based on a value metric
JP2014098978A (ja) * 2012-11-13 2014-05-29 Sony Corp メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
US20170134517A1 (en) * 2012-11-27 2017-05-11 Fastly, Inc. Data storage based on content popularity
US20200110553A1 (en) * 2018-05-15 2020-04-09 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6442601B1 (en) * 1999-03-25 2002-08-27 International Business Machines Corporation System, method and program for migrating files retrieved from over a network to secondary storage
US6721794B2 (en) * 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US6701316B1 (en) * 2000-04-07 2004-03-02 Nec Corporation Method and apparatus for intelligent network bandwidth and system resource utilization for web content fetch and refresh
US7058691B1 (en) * 2000-06-12 2006-06-06 Trustees Of Princeton University System for wireless push and pull based services
US7444393B2 (en) * 2001-10-30 2008-10-28 Keicy K. Chung Read-only storage device having network interface, a system including the device, and a method of distributing files over a network
US7437438B2 (en) * 2001-12-27 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for energy efficient data prefetching
US20040086166A1 (en) * 2002-11-01 2004-05-06 Photon Dynamics, Inc. Method and apparatus for flat patterned media inspection
US7275179B1 (en) * 2003-04-24 2007-09-25 Network Appliance, Inc. System and method for reducing unrecoverable media errors in a disk subsystem
WO2006046236A1 (en) * 2004-10-26 2006-05-04 May High-Tech Solutions, Ltd. Method and apparatus for residue detection on a polished wafer
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
KR101182523B1 (ko) * 2008-07-28 2012-09-12 삼성전자주식회사 홈 네트워크에서 브라우징 속도를 향상하기 위한 시스템 및방법
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
US8230123B2 (en) * 2010-08-23 2012-07-24 International Business Machines Corporation Using information on input/output (I/O) sizes of accesses to an extent to determine a type of storage device for the extent
US9002826B2 (en) * 2010-10-27 2015-04-07 Qualcomm Incorporated Media file caching for an electronic device to conserve resources
US9336380B2 (en) * 2010-12-15 2016-05-10 Microsoft Technology Licensing Llc Applying activity actions to frequent activities
US8788849B2 (en) * 2011-02-28 2014-07-22 Sandisk Technologies Inc. Method and apparatus for protecting cached streams
GB201108709D0 (en) * 2011-05-24 2011-07-06 Corethree Ltd Core engine
WO2013076763A1 (en) * 2011-11-22 2013-05-30 Hitachi, Ltd. Storage system and control method of storage system
US9177072B2 (en) * 2013-03-14 2015-11-03 Facebook, Inc. Social cache
US9483191B2 (en) * 2013-03-15 2016-11-01 Arris Enterprises, Inc. Multi-tier storage for delivery of services
US10579664B2 (en) * 2013-09-06 2020-03-03 Realnetworks, Inc. Device-centric media prioritization systems and methods
US9185164B1 (en) * 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
US9413824B1 (en) * 2015-01-30 2016-08-09 Dropbox, Inc. Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
JP6385556B2 (ja) * 2015-02-27 2018-09-05 株式会社日立製作所 不揮発性メモリデバイスおよび不揮発性メモリデバイスのデータ記憶方法
US11385797B2 (en) * 2015-10-05 2022-07-12 Micron Technology, Inc. Solid state storage device with variable logical capacity based on memory lifecycle
US20170168956A1 (en) * 2015-12-15 2017-06-15 Facebook, Inc. Block cache staging in content delivery network caching system
US10120872B2 (en) * 2015-12-28 2018-11-06 Facebook, Inc. Data caching based on requestor identity
US10282095B2 (en) * 2016-03-09 2019-05-07 Hitachi, Ltd. Method and device for managing performance of storage apparatus
US10404829B2 (en) * 2016-03-11 2019-09-03 Wipro Limited Method and system for achieving improved quality of service (QoS) for content delivery in a SDN controller based communication network
US11048764B2 (en) * 2016-12-30 2021-06-29 Verizon Media Inc. Managing under—and over-represented content topics in content pools
US10289473B2 (en) * 2017-03-23 2019-05-14 Netscout Systems, Inc. Situation analysis
US20190028766A1 (en) * 2017-07-18 2019-01-24 Audible Magic Corporation Media classification for media identification and licensing
US20190044809A1 (en) * 2017-08-30 2019-02-07 Intel Corporation Technologies for managing a flexible host interface of a network interface controller
JP6982468B2 (ja) * 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
US10534832B1 (en) * 2017-11-01 2020-01-14 Amazon Technologies, Inc. Server-side tracking and selection of rotating content
US11294954B2 (en) * 2018-01-04 2022-04-05 Audible Magic Corporation Music cover identification for search, compliance, and licensing
US11924304B2 (en) * 2018-07-27 2024-03-05 International Business Machines Corporation Accessing cached data using hash keys
CN110908926B (zh) * 2018-09-14 2022-03-22 慧荣科技股份有限公司 数据储存装置及逻辑至物理地址映射表的写入方法
US11099952B2 (en) * 2018-11-06 2021-08-24 International Business Machines Corporation Leveraging server side cache in failover scenario
US10779023B2 (en) * 2019-01-11 2020-09-15 International Business Machines Corporation Content prediction for cloud-based delivery
US11157209B2 (en) * 2019-01-22 2021-10-26 EMC IP Holding Company LLC Storage allocation techniques using logical region I/O access information and temporal trend prediction
US11323514B2 (en) * 2019-04-30 2022-05-03 EMC IP Holding Company LLC Data tiering for edge computers, hubs and central systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238751A1 (en) * 2012-03-10 2013-09-12 Headwater Partners Il LLC Content distribution based on a value metric
JP2014098978A (ja) * 2012-11-13 2014-05-29 Sony Corp メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
US20170134517A1 (en) * 2012-11-27 2017-05-11 Fastly, Inc. Data storage based on content popularity
US20200110553A1 (en) * 2018-05-15 2020-04-09 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates

Also Published As

Publication number Publication date
US20210211496A1 (en) 2021-07-08
KR20220123290A (ko) 2022-09-06
US20230026912A1 (en) 2023-01-26
AU2020417157A1 (en) 2022-07-28
US11463520B2 (en) 2022-10-04
JP7318899B2 (ja) 2023-08-01
EP4085594A1 (en) 2022-11-09
WO2021137885A1 (en) 2021-07-08
CA3163480A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
JP5450841B2 (ja) ユーザコンテンツフィードをサポートするための機構
CN102523279B (zh) 一种分布式文件系统及其热点文件存取方法
US9935655B2 (en) Reading of distributed erasure-coded data from an enterprise object storage system
US10915455B2 (en) Cache warming: agility for a stateful service
CN107179878B (zh) 基于应用优化的数据存储的方法和装置
CN102387220A (zh) 一种基于云存储的离线下载的方法及其系统
US20140129624A1 (en) Bt offline data download system and method, and computer storage medium
CN102629941A (zh) 云计算系统中虚拟机镜像缓存的方法
JP6506374B2 (ja) キャッシュ管理
US9900384B2 (en) Distributed caching in a communication network
CN102523234A (zh) 一种应用服务器集群实现方法及系统
US10346303B1 (en) Origin server cache eviction system
WO2021253889A1 (zh) 负载均衡方法、装置、代理设备、缓存设备及服务节点
US20230040213A1 (en) Cache management in content delivery systems
US20190050164A1 (en) System, method , and computer program product for securely delivering content between storage mediums
CN103455439A (zh) 本地缓存装置以及用于提供内容缓存服务的系统和方法
JP2012512471A (ja) データノード装置、ピア情報取得方法およびシステム
US20230026912A1 (en) Systems and methods for storing content items in secondary storage
WO2021135412A1 (zh) 部署实例的方法、实例管理节点、计算节点和计算设备
CN102609508A (zh) 一种面向网络存储的文件高速访问方法
Huang et al. S-cache: Toward an low latency service caching for edge clouds
US20140214768A1 (en) Reducing backup bandwidth by remembering downloads
US20150012745A1 (en) Precalculating hashes to support data distribution
US10992743B1 (en) Dynamic cache fleet management
US20160219120A1 (en) Methods for providing a staging area for objects prior to erasure coding and devices thereof

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230426

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20230426

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230711

R150 Certificate of patent or registration of utility model

Ref document number: 7318899

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150