説明

キャッシング情報のシステム及び方法

システム(100)及び方法(図5〜図6)を提供する。1つの態様では、現在要求されている情報のアイテム(143)が、以前に要求されたことがあるかどうか、またもしそうであるならば、前回要求された時間に基づいてキャッシュ(140)に記憶される。そのアイテムがこれまでに要求されたことがない場合は、そのアイテムはキャッシュには記憶されない。テーマ・アイテムが以前に要求されたことがある場合、それは、継続期間の比較に基づいて、すなわち、(1)テーマ・アイテムに対する現在の要求と前回の要求との間の時間の継続期間、及び(2)キャッシュ内のそれぞれの他のアイテムに対して、他のアイテムに対する現在の要求と前回の要求との間の時間の継続期間に基づいてキャッシュされる。テーマ・アイテムに関連する継続期間がキャッシュ内の他のアイテムの継続期間よりも短い場合、そのテーマ・アイテムはキャッシュに記憶される。

【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本願は、2009年8月21日に出願された「SYSTEM AND METHOD OF CACHING INFORMATION」という名称の米国特許出願第12/545,225号に対する利点を主張し、その全ての開示内容は引用することにより本明細書の一部をなすものとする。
【背景技術】
【0002】
[発明の分野]
キャッシュは、通常、キャッシュが存在しない場合よりも低い「コスト」でプロセッサがアクセスする情報のアイテムを記憶するように、プロセッサを有するシステムの中で提供される。例えば、プロセッサが1つのメモリ内に記憶されているデータ又はプログラム命令を他のメモリよりも早く得ることができるように、システムを構成することができる。他のメモリに含まれている頻繁にアクセスされる情報がキャッシュにコピーされ、代わりにキャッシュからアクセスされることができるように、このメモリをキャッシュとして使用することができる。さらに、キャッシュを使用することは、情報アイテムがローカルで利用可能な場合は、プロセッサとメモリ又は入出力インターフェースなどの内部システム部品との間の内部データ・トラフィックを減少させるのに役立つことができると共に、情報がローカルに利用可能でない場合は、システムとリモート・システムとの間の外部データ・トラフィックを減少させるのに役立つことができる。
【0003】
キャッシュは、プロセッサが必要とする情報の全てを記憶するには小さ過ぎることが多い。このため、どの情報をキャッシュに記憶するかを決定するに関して、キャッシュ・ベースのシステムを、一般に、選択する必要がある。例えば、プロセッサが繰り返しかつ頻繁に、10個の異なる情報アイテムにアクセスする可能性がある場合でも、キャッシュは5回しか記憶することができないことがある。
【0004】
アイテムをいつキャッシュに記憶すべきかを判断するために、種々のアルゴリズムが使用されてきた。例えば、幾つかの現行のシステムは、最後に使用された情報を自動的にキャッシュに記憶する。プロセッサが最近10個のアイテムを処理し、キャッシュが5個を記憶できる場合、どの位の頻度でアイテムが使用されるかには無関係に、最後の5個の別個のアイテムがキャッシュに記憶される。
【発明の概要】
【0005】
1つの態様では、関連するキャッシュを有するプロセッサにおいて、情報のアイテムを処理する要求を受け取るステップと、アイテムがキャッシュに記憶される場合、キャッシュから要求されたアイテムを読み出すステップと、アイテムがキャッシュ内に記憶されていない場合、他のメモリから要求されたアイテムを読み出すステップと、アイテムが所定の期間内に前もって要求されない場合、アイテムをキャッシュ内に記憶することなくアイテムを処理するステップと、アイテムが所定の期間内に前もって要求されかつこの前もって要求された時間がキャッシュ内に記憶されたアイテムのセット内の各アイテムに対する最新の要求よりも早い場合、アイテムをキャッシュ内に記憶することなくアイテムを処理するステップと、アイテムが所定の期間内に前もって要求されかつこの前もって要求された時間がキャッシュ内に記憶されたアイテムのセット内の少なくとも1つのアイテムに対する最新の要求よりも遅い場合、アイテムを処理しかつこのアイテムをキャッシュ内に記憶するステップと、を含んでなる方法を提供する。
【0006】
別の態様では、電子的に記憶された情報の、第1のメモリ内に記憶された第1のアイテムに対する現在の要求を受け取るステップと、第1のアイテムが第2のメモリにも記憶される場合、第2のメモリから第1のアイテムを提供するステップと、第1のアイテムが第2のメモリに記憶されていない場合、第1のアイテムを第1のメモリから提供するステップと、第1のアイテムが所定の期間内に前もって要求されていたかどうかを、プロセッサを用いて判断するステップと、第1のアイテムが前もって要求されていると判断された場合、第1のアイテムに関連付けられた、第1のアイテムに対する現在の要求と第1のアイテムに対する以前の要求との間の継続時間である第1の継続時間を、プロセッサを用いて確認するステップと、第1のアイテムに対する現在の要求と第2のアイテムに対する最新の要求との間の時間の継続時間であり、第2のメモリ内に記憶され前もって要求された第2のアイテムのセットの各アイテムに対する第2の継続時間を、プロセッサを用いて確認するステップと、かつ第1のアイテムが前もって要求され、かつ第1の継続時間が第2の継続時間の少なくとも1つよりも小さい場合は、第1のアイテムを第2のメモリ内に記憶するステップとを含んでなる方法を提供する。
【0007】
さらに別の方法は、電子的に記憶されている情報の第1のアイテムに対する要求を受け取るステップと、第1のアイテムが所定の期間内に前もって要求されていない場合、第1のアイテムを第2のメモリ内に記憶せずに、第1のアイテムを第1のメモリから提供するステップと、第2のメモリが複数の他のアイテムも記憶しその他のアイテムの各々が少なくとも2回前もって要求されたことがある状態で、第1のアイテムが第2のメモリ内に記憶されている場合、第1のアイテムを第2のメモリから提供するステップと、第1のアイテムが所定の期間内に前もって要求されていない場合、第1のアイテムを第2のメモリ内に記憶することなく、第1のアイテムを第1のメモリから提供するステップと、第1のアイテムが前もって要求されていると判断される場合、前記第1のアイテムに関連付けられた、前記第1のアイテムに対する以前の要求の間の継続時間に基づく第1の値を、プロセッサを用いて確認するステップと、第2の値が第1のアイテムに対する現在の要求と第2のアイテムに対する最新の要求との間の継続時間に基づく値である場合に、第2のメモリ内に記憶され前もって要求された第2のアイテムのセットの各アイテムに関連付けられた第2の値を、プロセッサを用いて確認するステップと、かつ第1のアイテムが所定の期間内に前もって要求される場合、第1の値の第2の値との比較に基づいて、第1のアイテムを第1のメモリから提供し、そして第1のアイテムを第2のメモリ内に記憶するステップとに関係する。
【0008】
さらに別の態様では、情報のアイテムを記憶するように構成されたキャッシュと、情報のアイテムを記憶するように構成された他のメモリと、かつ命令に基づいてキャッシュ内のアイテムを読み出し及び記憶して、これらのアイテムを要求元のデバイスに提供するように構成されたプロセッサと、を備えるシステムが提供される。命令は、要求元のデバイスから要求されたアイテムに対する要求に応じて、要求されたアイテムがキャッシュの中に記憶されている場合は、要求されたアイテムをキャッシュから読み出すステップと、要求されたアイテムがキャッシュの中に記憶されていない場合は、要求されたアイテムを他のメモリから読み出すステップと、アイテムが所定の期間内に前もって要求されていない場合は、要求されたアイテムを次の要求より前にキャッシュに記憶することなく、要求されたアイテムを要求元のデバイスに提供するステップと、アイテムが所定の期間内に前もって要求されており、かつ前もって要求された時間がキャッシュ内に記憶されたアイテムのセット内の各アイテムに対する最新の要求よりも早い場合は、要求されたアイテムを次の要求より前にキャッシュに記憶せずに、要求されたアイテムを要求元のデバイスに提供するステップと、かつアイテムが所定の期間内に前もって要求されており、かつ前もって要求された時間がキャッシュ内に記憶されたアイテムのセット内の少なくとも1つのアイテムに対する最新の要求よりも遅い場合は、要求されたアイテムを要求元のデバイスに提供し、そして要求されたアイテムを次の要求の前にキャッシュの中に記憶するステップとを含む。
【0009】
別のシステムは、命令に基づいて、メモリ内のアイテムを読み出すように及びメモリ内にアイテムを記憶するように構成されるプロセッサを備えることができる。それは、第1の記憶容量及び第1のアクセス時間(この場合、アクセス時間は、プロセッサがメモリから情報を得るために要する時間を指す)を有する第1のメモリと、第1のメモリよりも大きい記憶容量及び遅いアクセス時間を有する第2のメモリ、並びに第2のメモリよりも大きな記憶容量及び遅いアクセス時間を有する第3のメモリを備えることもできる。命令は、プロセッサが受信したアイテムに対する要求に応じて、要求されたアイテムが第1のメモリ内に記憶される場合、要求されたアイテムを第1のメモリから読み出すステップと、要求されたアイテムが第2のメモリ内に記憶される場合、要求されたアイテムを第2のメモリから読み出すステップと、要求されたアイテムが第3のメモリ内に記憶される場合、要求されたアイテムを第3のメモリから読み出すステップと、アイテムが要求時に第2のメモリに記憶されていたかどうか、及びアイテムが要求された最後の時間から経過した時間が最後の削除期間(last-eviction duration)よりも短いかどうかに基づいて、要求されたアイテムを第1のメモリに記憶するステップと、この場合、最後の削除期間は、まだ第1のメモリ内に記憶されている最後に削除されるアイテムに対する最後の要求から始まり、最後に削除されたアイテムの第1のメモリからの削除で終了する継続時間を含み、アイテムが要求時に第2のメモリに記憶されていたかどうか、及びアイテムが第3のメモリから読み出されたかどうかに基づいて、要求されたアイテムを第2のメモリに記憶するステップとを含みうる。
【図面の簡単な説明】
【0010】
【図1】本発明の態様によるサーバ及びクライアント・デバイスから成るシステムの機能図である。
【図2】本発明の態様によるコンピュータ・チップ及び命令ストアの機能図である。
【図3】本発明の態様によるサーバ及びクライアント・デバイスの多層システムの機能図である。
【図4】本発明の態様によるコンピュータの機能図である。
【図5】本発明の態様によるフローチャートである。
【図6】本発明の態様によるフローチャートである。
【発明を実施するための形態】
【0011】
本発明の1つの態様によれば、現在要求されている情報のアイテムは、それが前もって要求されたことがあるかどうか、またもしそうなら、前回要求された時間に基づいてキャッシュに記憶される。具体的に言うと、アイテムがこれまで要求されたことがない場合は、そのアイテムはキャッシュには決して記憶されることはない(ここで、「決して〜しない(never)」という用語は、「24時間以内に決して〜しない」又は時間的に変化するデータに基づいて動的に決定される期間内で決して〜しないというように、所定の期間を引き合いに出すことができる)。テーマ・アイテムが以前要求されたことがある場合、テーマ・アイテムは、継続期間の決定及び比較に基づいて、すなわち、(1)テーマ・アイテムに対する現在の要求と前回の要求との間の時間の継続期間、及び(2)キャッシュ内のそれぞれの他のアイテムに対して、他のアイテムに対する現在の要求と前回の要求との間の時間の継続期間、に基づいてキャッシュされる。テーマ・アイテムに関連する継続期間がキャッシュ内の他のアイテムの継続期間よりも短い場合、テーマ・アイテムはキャッシュに記憶される。
【0012】
図1に示すように、本発明の1つの態様によるシステム100は、プロセッサ120、メモリ130、クロック115及び一般に汎用コンピュータに存在する他の構成部品を有するコンピュータ110を備えている。メモリ130は、プロセッサ120がアクセス可能な情報を記憶し、プロセッサ120が実行することができる命令131を含んでいる。それは、プロセッサが読み出し、操作又は記憶することができるデータ135も含んでいる。メモリは、ハード・ドライブ、メモリ・カード、ROM、RAM、DVD、又は他の光ディスク、並びに書込み可能及び読出し専用メモリなどの、コンピュータが読み出し可能な媒体を含む、プロセッサがアクセス可能な情報を記憶することができる任意の種類のものでありうる。プロセッサ120は、Intel Corporation 又は AMDが販売しているプロセッサなど周知のプロセッサでありうる。別の方法では、このプロセッサは、ASICなどの、専用のコントローラでありうる。
【0013】
命令131は、プロセッサによって(マシン・コードなどの)直接的に又は(スクリプトなどの)間接的に実行される任意の命令のセットでありうる。例えば、命令はコンピュータ・コードとしてコンピュータに読み取り可能な媒体上に記憶されることができる。その点において、「命令」及び「プログラム」という用語は、本願では交換可能に使用されることができる。これらの命令は、プロセッサが直接処理するためのオブジェクト・コード形式で、又はオンデマンドで解釈される又は事前にコンパイルされる独立ソース・コード・モジュールのスクリプト又はコレクションを含む任意の他のコンピュータ言語で記憶されうる。命令の機能、方法及びルーチンは、以下でより詳細に説明される。
【0014】
データ135は、プロセッサ120によって、命令131に従って読み出し、記憶又は変更されることができる。例えば、このシステム及び方法は、特定のデータ構造によって限定されることはないが、データはコンピュータ・レジスタの中に、複数の様々なフィールド及びレコードを有するテーブル、XML文書、又はフラット・ファイルとしてリレーショナル・データベースの中に記憶されうる。データは、これらに限定されることはないが、バイナリ値、ASCII又はユニコードなどのコンピュータ可読の形式にフォーマットされることもできる。画像データは、圧縮される又は圧縮されない、すなわち可逆の(例えば、BMP)又は不可逆の形式(例えば、JPEG)に基づいて記憶されるピクセルから成るビットマップとして、及びビットマップすなわちベクタ・ベースの形式(例えば、SVG)として、並びにグラフィックを描画するコンピュータ命令として記憶されうる。ビデオ・データは、MPEG、GIF、AVI、M−JPEG、フラッシュ、クイック・タイムなどを含む種々のフォーマットの中に記憶されうる。このデータは、数、説明文、商標コード、ポインタ、他のメモリの中に記憶されたデータへの参照(他のネットワーク位置を含む)又は関係資料を計算するための関数として使用される情報などの、関連情報を識別するに十分な任意の情報を含みうる。
【0015】
図1は、プロセッサ及びメモリが同じブロック内に存在するように機能的に例示しているが、プロセッサ及びメモリは、実質的には、同じ物理的な筐体内に格納される又は格納されない複数のプロセッサ及びメモリを含みうることが当業者には理解されるであろう。例えば、命令及びデータによっては、着脱可能なCD−ROM上に記憶することができるものもあれば、読取り専用のコンピュータ・チップ内に記憶することができるものもある。命令及びデータのうちの幾つか又は全てを、プロセッサから物理的に離れているが依然としてアクセス可能な位置に記憶することができる。このため、コンピュータ、プロセッサ及びメモリを参照することは、並列に動作することもしないこともできるコンピュータ、プロセッサ又はメモリの集合を参照することを含むものと理解される。
【0016】
コンピュータ110は、ネットワーク195の1つ又は複数のノードに配置されて、ネットワークの他のノードと直接的に又は間接的に通信することができる。例えば、コンピュータ110は、ネットワーク195を介してクライアント・デバイス150〜152と通信する、クライアント・デバイス150〜152にウェブ・ページを配送する、及びそれに応じて情報や要求を受信することができるウェブ・サーバを備えることができる。サーバ110はネットワーク195を使用して、情報をユーザのクライアント・デバイス150のモニタ160上に送信及び表示することができる。
【0017】
ネットワーク195、及びサーバ110とクライアント・デバイスとの間に介在するノードは、インターネット、ワールド・ワイド・ウェブ、イントラネット、仮想プライベート・ネットワーク、ワイド・エリア・ネットワーク、ローカル・ネットワーク、1つ又は複数の企業に専有の通信プロトコルを使用するプライベート・ネットワーク、セルラー及び他の無線ネットワーク、インターネット・リレー・チャット・チャネル(IRC)、インスタント・メッセージング、シンプル・メール転送プロフィール(SMTP)、イーサネット(登録商標)、WiFi及びHTTP、及び前述されたものの種々の組合せ、を含む様々な構成を有しまた種々のプロトコルを使用することができる。図1には数個のコンピュータしか示していないが、代表的なシステムは、多数の接続されたコンピュータを備えることができることが理解されよう。
【0018】
各クライアント・デバイスは、サーバ110と同様に、プロセッサ、メモリ及び命令で構成することができる。各クライアント・デバイス150〜152は、人190及び191が使用することを意図された、中央処理装置(CPU)、ディスプレイ160(例えば、スクリーン、プロジェクタ、タッチ・スクリーン、小型LCDスクリーン、テレビ、又はプロセッサによって処理される情報を表示するように動作可能な電気デバイスなどの他のデバイスを有するモニタ)、DVDドライブ、ハード・ドライブ、ユーザ入力デバイス163(例えば、マウス、キーボード、タッチ・スクリーン、又はマイクロフォン)、スピーカ、モデム、又はネットワークインターフェース・デバイス(電話、ケーブル、無線など)、並びにこれらの素子を互いに接続するために使用される全ての構成要素などの、パーソナル・コンピュータの中で通常見出される全ての内部構成要素を有するパーソナル・コンピュータでありうる。
【0019】
クライアント・デバイス150〜152はフルサイズのパーソナル・コンピュータを備えることができるが、本システム及び方法は、インターネットなどのネットワークを介してサーバとデータを無線で交換することが可能なモバイル機器と接続して用いられることもできる。例えば、クライアント・デバイスは、ブラックベリー(Blackberry)電話又はインターネット対応の携帯電話などの無線可能PDAでありうる。ユーザは小型キーボード(Blackberry電話の場合)、キーパッド(通常の携帯電話の場合)、タッチ・スクリーン(PDAの場合)、又は任意の他のユーザ入力デバイスを用いて情報を入力することができる。実際に、本願で説明されるシステム及び方法によるコンピュータは、命令を処理しかつ、人や他のコンピュータにまた人や他のコンピュータからデータを送受信することができる任意のデバイスを含みうる、ここで、他のコンピュータは、汎用コンピュータ、局部記憶能力がないネットワーク・コンピュータ、及びテレビ用のセットトップ・ボックスを含む。
【0020】
サーバ110に加えて、システム100は別のサーバも備えることができる。例えば、サーバ115〜116は、Google社のYouTubeサービスを介して提供されるオーディオ/ビジュアル・ビデオ・ファイルなどの、ネットワークの他のノードに配送されるべき情報を記憶することができる。他の非限定的なコンテンツの例としては、音楽、静止画像、コンピュータ・ゲームを含むプログラム及び上記の組合せが含まれる。ビジュアル・コンテンツはクライアント・デバイスの電子ディスプレイ160を介してユーザに表示され、オーディオ・コンテンツはクライアント・デバイスに結合したスピーカを介して与えられる。コンテンツは無料又は有料で提供され、ディジタル著作権管理(DRM)に対して制約を受ける又はそれの対象とされる可能性がある。
【0021】
サーバ110は、ネットワーク196を介してコンテンツ用サーバ115〜116と通信することができる。このネットワークは、ネットワーク195と同様に構成されることができる。実際に、少なくとも1つの態様では、ネットワーク195及び196は同じノードを共有する、例えば、両方のネットワーク195及び196はインターネットを含みうる。
【0022】
サーバ110は、将来使用するためにサーバが要求する情報を記憶するキャッシュ140を備えることができる。例えば、キャッシュは、当初はサーバ115〜116から受信したコンテンツ・ファイルを記憶して、クライアント・デバイス150〜152に与えることができる。以下でより詳細に説明するように、これは本発明によるシステム及び方法の1つの可能な態様に過ぎない。
【0023】
1つの態様では、また多くの状況の中では、サーバ110は、一般的に、情報をコンテンツ用サーバ115〜116から得るよりも早く、キャッシュからの情報をクライアント・デバイス150〜152に配送することができる。例えば、サーバ110は、コンテンツ用サーバよりもクライアント・デバイスに地理的により近い可能性がある。サーバ100はクライアント・デバイスに位相的により近いこともある、例えば、インターネットが両方のネットワーク195及びネットワーク196として機能している場合、サーバ110とクライアント・デバイス150との間よりも、コンテンツ用サーバ115とクライアント・デバイス150との間にはより多くの介在ノードが存在する可能性がある。さらに、キャッシュ140を、サーバ内に物理的に配置される大きなハード・ドライブといったように、プロセッサ120と同じ筐体内に格納することができ、そのような構成によりプロセッサは、一般に、情報に極めて高速にアクセスできるようになる。しかしながら、結果として待ち時間がハード・ドライブよりも大きいが、情報をコンテンツ用サーバ115〜116から得るよりも小さい別の位置に、キャッシュ140を配置することもできる。
【0024】
このシステム及び方法は、様々な形式、構成及び大きさの情報を、記憶、読み出し及び処理することができる。その点において、キャッシュ内に記憶される情報アイテムの大きさは、異なっていても又は同じであっても良い。幾つかの態様では、各アイテムは、ユーザが希望する全ての情報を表す単一のファイルである(例えば、このファイルは、歌が全部揃った音楽ビデオである)。別の態様では、各アイテムは、ユーザのクライアント・デバイスが複数のパケットを一緒に受信して組み立てるまで、ユーザが有意義に使用できない情報の固定長パケットである。上記の組み合わせも可能である、例えば、キャッシュ内の個々のアイテムは、音楽ビデオの固定長の部分とすることができ、サーバ110は、キャッシュから個々のパケットを取得して送信することにより、ユーザのクライアント・デバイスに音楽ビデオを流す。
【0025】
本システム及び方法は、アイテムに対する要求の間の時間の長さを示すデータを処理することもできる。例えば、データ135は、各レコードがキャッシュ140の中に記憶されたコンテンツ・ファイル143並びにクライアント・デバイスによってファイルが最後に要求された日時を識別する要求レコード145を記憶することができる。1つの態様では、要求レコード145は、キーがファイルの識別子(例えば、それぞれ異なるビデオ・ファイルに割り当てられる固有の数字)であり、かつこのキーがクライアント・デバイスが最後にファイルを要求した日時を示す、ハッシュ・テーブルとして記憶されることができる。
【0026】
全ての要求されたアイテムがキャッシュされることはなく、以前要求されたアイテムがキャッシュされ、次に、キャッシュから削除される可能性があるため、要求レコードは、アイテムがキャッシュの中に記憶されているかどうかも確認することができる。
【0027】
幾つかの態様では、以下で述べるように、追加の情報も記憶することができる。
【0028】
図5に示す動作に加えて、本発明の多岐にわたる態様による様々な動作をここで説明する。以下の動作は、後述する正確な順序で実行される必要はないことを理解すべきである。それどころか、種々のステップを逆の順序で又は同時に処理することができる。
【0029】
1つの態様では、本システム及び方法は、クライアント・デバイスが要求することができる情報を記憶するために、キャッシュを使用するサーバを備えている。例えば、サーバ110は、www.youtube.comといったウェブ・サイトに関連付けられた多くのサーバの1つのエッジ・サーバとすることができる。その点において、ユーザはクライアント・デバイス150を使用して、ビデオ・ファイル検索エンジンを動作させるウェブ・サーバと対話することができる。エンジン用サーバはユーザに適合するビデオのリストを提供して、次に、ユーザが希望するビデオに固有のウェブ・ページを選択して、そこに行くことを可能にする。それはエンジン用サーバによって提供されたが、このビデオ固有のウェブ・ページは、直接サーバ110を指すURLとファイルの固有IDとを含みうる。このため、ユーザが「再生」ボタンをクリックするなどによりビデオのコピーを要求する場合、この要求はエンジン用サーバではなく、サーバ110に直接送られる。
【0030】
情報に対する要求を受け取ると、本システム及び方法は、要求された情報を読み出して要求元エンティティに提供することができる。例えば、サーバ110は、最初に、キャッシュ140が要求されたコンテンツ・ファイルのコピーを有しているかどうかを判断する。そのファイルがキャッシュ内に含まれている場合は、プロセッサ120は、ファイルのコピーをキャッシュ140からネットワーク195を介してクライアント・デバイス150に送信することができる。そのファイルがキャッシュに含まれていない場合は、プロセッサはそのファイルをコンテンツ用サーバ115〜116の1つから要求して、それをプロクシングなどによりクライアント・デバイス150に転送することができる。別の方法では、サーバ110は、HTTP302リダイレクトを介して位置への指示を提供することなどにより、コンテンツ用サーバ又はクライアント・デバイスに十分な情報を提供するため、クライアント・デバイスは、サーバ110を通過させることなく、コンテンツ用サーバからファイルを得ることができる。
【0031】
プロセッサが情報に対する要求を受け取ると、それはこの情報が以前に要求されたかどうかを判断する。例えば、サーバ110は、要求レコード145に問い合わせて、コンテンツ・ファイルがクライアント・デバイス150〜152のいずれかから以前に要求されたことがあるかどうかを判断することができる。レコードがハッシュ・テーブルに記憶されている場合は、プロセッサ120は、ファイルのUIDに一致するキーを有するレコードに関してハッシュ・テーブルを確認することができる。そのようなキーが存在しない場合、プロセッサ120は、ファイルがこれまで要求されたことがないと判断する。キーが存在する場合は、プロセッサ120は、ファイルが以前要求されたことがあると判断する。
【0032】
要求されたアイテムがこれまで要求されたことがない場合、本システム及び方法は、情報をキャッシュしないが、要求があった時間に関するデータを記憶する。例えば、それは、要求されたファイルのUID並びに要求が発生した日時を識別するハッシュ・テーブル145にキー/値の対を加えることができる。それは、そのファイルがキャッシュ内に現在は記憶されていないことを示す、フラグのような、値をレコード内に含みうる。
【0033】
所望の情報が前もって要求されている場合、プロセッサは、それが以前に要求された最後の時間を確認して、それがキャッシュ内の他の情報を要求した時間を特定する情報と比較する。キャッシュするかどうかの決定は、その決定に基づいてなされることがある。
【0034】
本システム及び方法の1つの態様では、現在の要求の時間を除いて、アイテムがキャッシュ内に他のアイテムよりも最近要求された場合、それはキャッシュされる。例えば、サーバ110が午後7:00時に「ファイル#3」に対する要求を受け取り、要求レコード145が下記の情報を確認すると仮定する。
【表1】

上記によれば、ファイル#3は、ファイル#1(午後1:00時)よりも最近(午後3:00時)要求された−−現在の要求時間を除いて。従って、ファイル#3はキャッシュに記憶されるであろう。
【0035】
キャッシュが現在要求されたアイテムを記憶する容量がない場合、本システム及び方法は、その最後の要求以来最も長くキャッシュ内に置かれているアイテムを取り除くことができる。前述の実施例を用いると、ファイル#1が前に要求されて以来、6時間(午後7:00時マイナス午後1:00時)が経過している。このため、ファイル#1に対する次の要求がいつ来ようとも、最後の要求と次の要求との間の継続期間は6時間よりも短くなることはできない。この継続期間は、任意の他のファイルに対する任意の他の継続期間よりも長い。従って、ファイル#1及びファイル#3の両方に対して十分な余地がない場合は、ファイル#1をキャッシュ140から取り除き、ファイル#3をキャッシュに加えて、要求レコード145を下記のように更新することができる(最後の図表からの変化を太字で示す)。
【表2】

別のアイテムを除いた後でもまだ現在要求されたアイテムを記憶するための十分なメモリ空間がない場合は、本システム及び方法は、十分なメモリ空間が提供されるまで、アイテムの削除を続けることができる。
【0036】
1つの態様では、本システム及び方法は、現在要求されたアイテムをキャッシュすべきかどうかを判断するために、最後に削除されたアイテムに関連付けられたデータを使用する。例えば、ファイル#1が除かれる場合、サーバ110は、以下に「−X−>」で示すように、ファイル#1用の要求レコードに対してデータ135の中にポインタを記憶することができる。
【表3】

次に、サーバ110が、午後8:00時にファイル#5に対する要求を受け取ると仮定する。プロセッサは、現在要求されているアイテムが要求された最後の時間をキャッシュ内の全てのアイテムと比較するのではなく、それを最後に削除されたアイテムと比較することができる。その点において、ファイル#5が以前要求されたのが、今しがた削除されたファイル(ファイル#1、午後1:00時)よりも最近であることを確認すると、ファイル#5をキャッシュに加えることができる。ファイル#5用のメモリ空間を作るためにファイル#4を除く必要がある場合、結果として生じる要求レコード145は、下記のようになる。
【表4】

【0037】
別の態様では、本システム及び方法は現在のアイテムを、その最後の要求以降にキャッシュ内に残っている最後に除かれたアイテムの時間と比較することができる。前述の実施例に戻ると、本システム及び方法が、午後7:00時に削除するためにアイテムを選択する必要がある場合、それはファイル#1を削除した、その理由は、他のアイテムが要求なしでキャッシュ内により長く残っていなかったためである。このため、最後に削除されたアイテムとして「最悪の実行者(worst performer)」を定義する場合、またその確定の前に要求されずにキャッシュ内に残っていた時間の長さとして、その「空費した時間(wasted time)」を定義する場合、ファイル#1が最悪の実行者であり、それは6時間空費した(削除7:00時マイナス最後の要求1:00時)。
【0038】
その点において、新しいアイテムが、「最悪の実行者」よりも多くの時間を「空費する」ことを予想される場合、本システム及び方法の1つの態様では、この新しいアイテムを全くキャッシュすべきではないと判断される。その点においてまたこの態様では、ファイル#5は、それが要求されるときにキャッシュされるであろう、その理由は、その最後の要求(午後5:00時)とその現在の要求(午後8:00時)との間のスパンが3時間であり、これは最悪の実行者が空費した時間(6時間)よりも短いからである。しかしながら、ファイル#11がファイル#5と同じ時間(午後8:00時)に要求されるが、ファイル#11は9時間前(午前11:00時)に既に要求されていたと仮定する。ファイル#11がキャッシュ内に置かれて、別の9時間が要求なしで過ぎたとすると、このことは、それが現在の最悪の実行者:ファイル#1の6時間よりもキャッシュ内で長い時間を空費したことを意味する。このため、本システム及び方法は、ファイル#11を全くキャッシュすべきではないと判断することができる。
【0039】
現在要求されているアイテムが要求された最後の時間が、キャッシュ内の他のアイテムよりも前である場合、プロセッサはそのアイテムをキャッシュしないと判断することができる。たとえそうであっても、それは依然として現在の要求の時間を反映するように要求レコードを更新することができる。例えば、ファイル#1に対する要求が午後9:00に受信されるとき、要求レコードが下記のように表示されると仮定する。
【表5】

本システム及び方法は、現在要求されているアイテム(ファイル#1、午後1:00時)に対する前の要求を最後に削除されたアイテム(ファイル#4、4:00時)に対する最も新しい要求と比較することができる。ファイル#4が、要求されずにあまりに長くキャッシュ内に残っているため今除去されたが、それはファイル#1よりも最近要求されていた(システムがファイル#1に対する現在の要求を評価していることは脇に置いておく)。このため、ファイル#1はキャッシュの中には置かれないが、そのレコードは下記のように更新される。
【表6】

その点において、ファイル#1が午後10:00時よりも後の時間に再度要求される場合、それは今削除されたアイテム(ファイル#4、午後4:00時)よりも最近(午後9:00時)要求されたため、それはキャッシュに加えられる。
【0040】
上述したように、本システム及び方法の1つの態様は、現在の要求時間と(特に)最後の要求時間とを使用して、アイテムをキャッシュすべきかどうかを決定する。
【0041】
別の態様では、本システム及び方法は、現在の要求時間、最後の要求時間及び、それに加えて、それより前の要求時間を使用して決定を行う。さらに、本システム及び方法は、決定を行うときに異なる重みを適用することができる。例えば、アイテムをキャッシュすべきかどうかを決定する場合、最後の要求の時間をより前の要求時間よりも重要であると考えることができる。
【0042】
1つのこのようなシステム及び方法は、指数関数的な減衰を使用する。ほんの一例として、各アイテムに優先順位の値を割り当てて、これにより、必要な場合、優先順位の低いアイテムをキャッシュから取り除いて、優先順位が高いアイテム用のメモリ空間を作ることができる。ただ1つの可能な方法は、各アイテムに優先順位の値の「E」を割り当てるステップを含み、ここで、
=−1*(ALPHA*LS+(1−ALPHA)*En−1)であり、
「n」は、要求がn番目に出現したことを示す、例えば、E10は10回要求された後のアイテムの優先順位の値を示し、
「LS」は、要求のn番目の出現と以前の要求との間で経過した時間を示す、例えば、LS10は、アイテムに対する9番目の要求と10番目の要求との間で経過した時間を示し、そして
「ALPHA」は、0と1との間及び0と1とを含む値を示している。その点において、プロセッサは、アイテムに対する優先順位の値を、それが要求されるたびに計算することができる。その値が、アイテムがキャッシュ内の他のアイテムよりも優先順位が高いことを示す場合、そのアイテムがキャッシュされる。キャッシュ内にそのアイテムに対する十分なメモリ空間がない場合、優先順位が低いアイテムが取り除かれる。(上記の式内の−1乗数を割愛することができることは理解されよう。この場合、より高いE値はより低いE値よりもキャッシングするために望ましくないと考えることができる。)
【0043】
上述したように、最近の要求が古い要求よりも大きな重みが与えられるように、優先順位の値を計算することができる。その点に関して、Eに対して上記の式が使用される場合、最新の要求に多少の重みを与えるように、ALPHAを選択することができる。例えば、ALPHAを0.9になるように選択する場合、優先順位の値の90%は、現在の要求と最後の要求との間の時間の継続期間に依存する。しかしながら、ALPHAを0.2になるように選択する場合は、優先順位の値のわずか20%が、現在の要求と最後の要求との間の時間の継続期間に依存し、その値の残りは以前の要求の間の継続期間に依存する。その点において、ALPHAをシステムの要求に基づいて選択することができる。システムの定期的な統計分析に基づいて、時間的に自動的かつ動的にALPHAを調整することもできる。
【0044】
アイテムのキャッシュ優先順位に対する以前の要求の影響は、より多くのその後の要求が受信されるにつれて指数関数的に減少する可能性がある。例えば、そのアイテムに対して10回の要求があると仮定する。たとえEのALPHA値が0.2に設定されても(優先順位の値のわずか20%が、2つの最も新しい要求の間の継続期間に依存する)、第1の要求と第2の要求との間の時間は、9番目の要求と10番目の要求との間の時間よりも優先順位の値に対する影響はずっと少ない。実際に、ALPHAが0.2でありかつ約10回の要求がある場合、最も初期の継続期間に対する最も新しい継続期間の影響は、約10:1になる可能性がある。他方では、ALPHAを1に設定することができる、この場合、優先順位の値は最後の要求の間の継続期間に完全に依存する。
【0045】
アイテムに対する要求が初めて受信され、かつEに対して前記の式が使用される場合、Ezeroに対してディフォルト値を選択することができる。小さいE値は一般に優先順位が高いアイテムを示すため、前に見たことがないアイテムに高い優先順位を与えることが好ましい場合は、Ezeroに対して小さいディフォルト値を選択することができ、逆の場合も同様である。
【0046】
別の方法では、要求レコード145は、各アイテムに対して単一の「E」値を記憶することができる、すなわち、それは各アイテムの要求ごとに別個のE値を記憶しない。そのことについては、アイテムが最初に要求される場合、Eに対して特別な値を記憶して、そのアイテムの最後の要求がまたその最初の要求であったことを示すことができる。そのアイテムに対して次の要求が受信されると、本システム及び方法は、現在のE値が特別な値に等しいかどうかを確認することができる。等しい場合、ALPHA=1であるようにE値を計算することができる、これにより、第1の要求と第2の要求との間の時間の長さに対して、式の中の全ての重みが配置される。本システム及び方法が、現在のE値は特別な値ではないと判断する場合、式をALPHAの通常の値に基づいて計算することができる。いずれにせよ、本システム及び方法は、次に、Eの前の値をEに対して新しく計算された値と置き換えることができる。
【0047】
本システム及び方法の利点の1つは、その能力が上記の態様とは異なる又は上記の態様に相乗効果的に組み合わされることができる構成の中で実行されるといった、その柔軟性である。
【0048】
例えば、上記のシステム及び方法は、情報のアイテムをキャッシュすべきかどうかを判断するために、他のシステム及び方法と組み合わされることができる。その点において、そのアイテムがこれまで要求されたことがなかったという事実にもかかわらず、それがキャッシュされる状況が存在する。プロセッサはメモリ空間が存在するときはいつも、すなわち、アイテムの大きさが、キャッシュの全記憶容量からキャッシュ内に記憶されている他の全てのアイテム(もしあれば)を一緒にした大きさを引いたものよりも小さい場合は、アイテムをキャッシュ内に自動的に記憶することができる。別の方法では、アイテムをキャッシュすべきかどうかを示すことができる、アイテムに関連した別の特性が存在する。例えば、プロセッサは、ファイルが極めて人気がありかつ上記のE式が重み係数としてファイルの知名度を含みうることを示す情報を備えることができる。
【0049】
本システム及び方法は、キャッシングを決定する根拠を、要求の詳細な日時を記憶せずに、要求時間に置くこともできる。優先順位の値に関連して前述したように、本システム及び方法は、多くのパラメータを有する式から計算される値を記憶することができ、そのわずか1つが要求時間である。
【0050】
また前述したように、本システム及び方法は、アイテムの任意の特定の大きさに限定されることはない。ほんの一例として、個々のアイテムは、可変サイズのファイル、固定サイズのデータ部分、又はその両方を含みうる。それぞれ2MBの4つのチャンクと0.5MBの1つのチャンクから構成する8.5MBファイルといった、固定サイズのチャンクの状態で記憶されかつストリームされる可変サイズのビデオの例を検討する。ユーザが最初の部分を見た後でビデオを終えることは一般的であるため、サーバが第1のチャンク又は2つのチャンクのみを送信することは十分に可能である。1つの態様では、本システム及び方法は、各チャンクを別個のアイテムであるとみなす可能性がある、この場合、最初の2つのチャンクはキャッシュされるが残りはキャッシュされない可能性がある。
【0051】
別の態様では、本システム及び方法は、全体のファイルを単一のアイテムとみなす可能性がある、この場合、最初の1つ又は2つのチャンクだけが相次いでエンド・ユーザ配送されても、全てのチャンクがそのファイルに対する反復された要求に応じてキャッシュされる。この態様は、サーバ110がHTTPプロトコルに基づいて、別のサーバからのファイルをプロクシによって提供する場合は特に有用である、サーバ110がそのキャッシュから要求されたファイルの最初の2つのチャンクをストリームしまた残りは別のサーバに転送することは可能ではない。
【0052】
さらに別の態様では、本システム及び方法は、本システム及び方法に基づいて全アイテムをキャッシュすることができる、さらに別の基準に従って、アイテムの一部を削除することもできる。例えば、サーバは、ファイルに対する要求レコードに基づいて、8.5MBファイルの全ての4つのチャンクをキャッシュすることができる。しかしながら、サーバは、周知のキャッシング・アルゴリズム(例えば、Least Recently Used(LRU)アルゴリズム)を使用して、8.5MBファイルの最後の2つのファイルのような不人気のチャンクを、それらがまれにしかユーザに送られない場合は、時折、削除することができる、前述したように、本システム及び方法は、新たに要求されたファイルの要求時間を最後に削除されたアイテムの存続期間と比較することによって、新たに要求されたアイテムをキャッシュすべきかどうかを判断することができる。この段落で記述された態様では、本システム及び方法は、新たに要求されたファイルの要求時間を最後に削除されたチャンクの存続時間と比較することができる。
【0053】
さらに、本システム及び方法を大規模なクライアント/サーバによるコンテンツ配信網と共に使用する場合は、特定の利点が生じる可能性があるが、特定の態様では、コンピュータ・チップのような小さい閉じたシステムの中で実現することもできる。ほんの一例として、また図2に示すように、マイクロプロセッサ210は、命令ソース220からマイクロコード命令のシーケンスを事前に取り込み、命令が近い将来使用されるとシステムが予想する場合、それらを単一の半導体チップ240上の比較的小さなキャッシュ230内に記憶することができる。その点において、情報の個々のアイテムは、マイクロプロセッサによって取得および処理される一連のマイクロコード命令を構成することができる。マイクロプロセッサ210が命令を必要とする場合、それはキャッシュ制御部250から命令を要求することができる。その命令が命令ブランチの一部であり、かつその命令ブランチがキャッシュ230に記憶されている場合、制御部250は命令をキャッシュから提供する。そうでない場合は、制御部250は、適用可能なブランチを命令記憶部220から取得する。ブランチが最初に記憶部220から取り出される場合、それはキャッシュされない。しかしながら、ブランチが以前に取り出されている場合は、制御部250は、キャッシュ内に記憶された他のブランチに対してこのブランチが処理された最後の時間に基づいて、このブランチをキャッシュすると決定することができる。
【0054】
逆の言い方をすれば、前述したものよりもさらに大きなネットワーク・ベースのシステムの中で、本システム及び方法を実現することができる。例えば、図3に示すように、エッジ・サーバ310は、第2層サーバ315〜316からデータを要求することができる、それらは各自のキャッシュ325〜326及び要求レコードのセット335〜336を有することができ、また図3に示すサーバを運営する会社が動作させる他のサーバから利用できるファイルの一部のみを含みうる。多くの場合、第2層サーバは、キャッシュ・サイズが大きいといった、エッジ・サーバよりも大きな記憶容量を有している。このため、第2層サーバ315〜316は、第3層サーバ340〜341などの他のサーバからファイルを要求することができる、これは今度は、サーバ310を介して利用可能な全ての情報を記憶することができる(又は、別の場合では、全ての情報を得ることができる)。このため、任意のクライアント・デバイス150〜153からのファイルに対する要求は、全システム300の複数の層の全体を通してカスケード接続するように、ファイル及びそのキャッシングに対する要求を生じさせる可能性がある。それに関して、本システム及び方法を使用して、どのファイルをエッジ・サーバ310でキャッシュすべきか、またどれをより大きな容量の大きなキャッシュに転送すべきかを決定することができる。
【0055】
本システム及び方法は、地域分散形のエッジ・サーバと一緒に使用する場合、特に好適である。例えば、本システム及び方法が、地理上の区域に広く分散して配置されたエッジ・サーバにおいて実行される場合、エッジ・サーバによって要求及び提供されるアイテムは位置に極めて大きく依存する。例えば、日本語の面白いビデオ・クリップは、東京のエッジ・キャッシュによってサービス提供されるユーザの間では大きな人気があるため、東京ベースのエッジ・サーバはそのクリップを記憶することができる。しかしながら、そのクリップは、ロンドンのエッジ・キャッシュによってサービス提供されるユーザの間では人気がないため、それはそのクリップを記憶しない。
【0056】
単一のサーバもまた、キャッシュの複数の層を持ち、ネットワークの支援なしでそれらのキャッシュにアクセスすることができる。例えば、図4に示すように、コンピュータ400は、キャッシュ411に関連した要求レコード410を問い合わせることによって、アイテムに対する最初の確認を行うことができる。アイテムがキャッシュ410に存在しない場合は、それは、第2の独立したキャッシュ421に関連した要求レコード420の第2の独立したセットに問い合わせることができる。第2のキャッシュがそのアイテムを有していない場合は、コンピュータは要求レコードの他のセットに関連した他のキャッシュを確認することができる。
【0057】
それに関して、本システム及び方法は、様々な種類の複数のメモリを有するデバイスと一緒に使用されることができる。例えば、サーバは単一のソリッド・ステート・ドライブ(例えば、フラッシュ・ドライブ)及び複数のローカル・ディスク・ドライブの両方にローカルにアクセスすることができる。フラッシュ・メモリの容量はディスク・ドライブよりも小さいが、それは情報を、ディスク・ドライブよりも平均して早く提供することもできる。さらにまた、サーバはそこから要求される可能性がある全ての情報よりも少ない情報を保持することになるため、それは情報を発生するサーバ上に記憶される情報にアクセスすることができる。この情報は、集合的にビデオ・ファイルを構成するチャンクの形式で記憶されることができる。
【0058】
図6は、例えば、フラッシュ・メモリ、ディスク・メモリ、及び(オリジン・サーバからといったような)他のノードに配置されたメモリなどの、読み出し速度及び容量が異なる階層の中で情報のチャンクを記憶するシステムにおいて実行されることができるただ1つの方法を示している。チャンクは、このチャンクを記憶している最速のメモリから読み出される、例えば、それがフラッシュ・メモリの中にある場合はフラッシュ・メモリから、そこにない場合はディスク・メモリから、またそれがフラッシュ・メモリやディスク・メモリに記憶されていない場合はオリジン・サーバから読み出される。さらに、チャンクがオリジン・サーバから読み出されるたびに、コピーがローカル・ディスクに記憶されることができる(そして、必要な場合、最も古いチャンクがローカル・ディスクから削除される)。
【0059】
しかしながら、チャンクがサーバから読み出された後で、このチャンクは自動的にディスク・メモリに記憶されることができるが、それがディスクから読み出される後で、それがフラッシュ・メモリ内に自動的に配置されることはない。さらに、チャンクがオリジン・サーバからフラッシュ・メモリに直接昇進されることはできない。そうではなく、本システム及び方法の1つの態様では、また参照番号610〜613で示すように、その最後の要求からの経過時間がフラッシュ・メモリ内の最後に削除されたチャンクの存続時間よりも短い場合は、チャンクはディスク・メモリからフラッシュ・メモリに進められるに過ぎない。
【0060】
さらに別の態様では、図6のシステム及び方法は、余裕がある場合は、チャンクをフラッシュ・メモリ内に自動的に記憶する。別の方法では、それはオリジン・サーバから直接受け取ったどのようなチャンクでも、キャッシュが空の状態から始まりキャッシュが最初にチャンクを削除するまでのタイム・スパンの間に、直接フラッシュ・メモリ内に(例えば、ディスクをバイパスして)自動的に記憶することができる。
【0061】
キャッシュは、クライアント・デバイスがアイテムを要求した日時に依存するのではなく、キャッシングを決定する基準として、別の時間ベースのイベントを使用することもできる。例えば、情報のアイテムが実行可能なファイルであり、かつ本システム及び方法がパーソナル・コンピュータ上で実行される場合、要求に関連した時間は、ファイルが磁気ディスクから専用のディスク・キャッシュにロードされる時間と考えることができる(すなわち、コンピュータの構成要素の中で生じる要求、ファイルをディスク・キャッシュにロードする要求を構成する要求、及びファイルがローディングを開始したときの要求の時間)。別の方法では、要求の時間は、プロセッサがファイルをRAMにロードした後でその実行を開始する時間と考えることができる。さらに別の方法では、要求の時間は、要求が受け取られた時間、要求が送られた時間、又は要求が実行された時間と考えることができる。
【0062】
本システム及び方法は、データを保護するための様々な手段をさらに備えることができる。例えば、要求レコード145は、高速アクセスするためにRAM内にメタデータとして記憶されることができるが、そのレコードがディスク内に存在することもよくあるため、関連するプログラムがクラッシュするかあるいは再起動する場合、状態は、再構築されたものからではなく、ディスクから読み取ることができる。
【0063】
上記の代替的な実施形態のほとんどは互いに矛盾するものではなく、様々な組み合わせで実施して独特な利点を達成することができる。上記で検討した特徴のこれらの及び他の変形例及び組み合わせは、特許請求の範囲によって規定された本発明から逸脱することなく利用することができるので、実施形態の上述した説明は、特許請求の範囲によって規定されるような本発明を限定するものではなく説明するものとして受け取られるべきである。本発明の実施例を提供すること(及び「などの」、「含む」などと表された文節)は、本発明を特定の実施例に限定すると解釈してはならない、むしろ、実施例は多数の可能な実施形態の1つだけを例示するように意図されていることも理解されよう。
【産業上の利用可能性】
【0064】
本発明は、コンピュータ用データ処理システムを含む広い産業上の利用可能性を有しているが、これに限定されることはない。

【特許請求の範囲】
【請求項1】
関連するキャッシュを有するプロセッサにおいて、情報のアイテムを処理するための要求を受け取るステップと、
前記アイテムがキャッシュに記憶される場合、該キャッシュから要求された前記アイテムを読み出すステップと、
前記アイテムが前記キャッシュ内に記憶されていない場合、他のメモリから要求されたアイテムを読み出すステップと、
前記アイテムが所定の期間内に前もって要求されない場合、前記アイテムをキャッシュ内に記憶することなく前記アイテムを処理するステップと、
前記アイテムが所定の期間内に前もって要求されかつ前記前もって要求された時間がキャッシュ内に記憶されたアイテムのセット内の各アイテムに対する最新の要求よりも早い場合、前記アイテムを前記キャッシュ内に記憶することなく前記アイテムを処理するステップと、
前記アイテムが所定の期間内に前もって要求されかつ前記前もって要求された時間が前記キャッシュ内に記憶されたアイテムのセット内の少なくとも1つのアイテムに対する最新の要求よりも遅い場合、前記アイテムを処理しかつ前記アイテムを前記キャッシュ内に記憶するステップと
を含んでなる方法。
【請求項2】
クライアント・デバイスからの前記要求がサーバによってネットワーク上で受信され、前記アイテムを処理する前記要求が要求されたアイテムを前記クライアント・デバイスに送信するステップを含む請求項1に記載の方法。
【請求項3】
前記アイテムが、前記クライアント・デバイスにおいて表現されるオーディオ・データ又は画像データを含む請求項2に記載の方法。
【請求項4】
前記アイテムがファイルを含む請求項3に記載の方法。
【請求項5】
前記アイテムがファイルの一部を含む請求項4に記載の方法。
【請求項6】
削除されるアイテムに対する最後の要求がセット内の任意の他のアイテムに対する最後の要求よりも前である場合、前記アイテムのセットからアイテムを削除するステップをさらに含む請求項1に記載の方法。
【請求項7】
前記アイテムが、要求されたアイテムを前記キャッシュ内に記憶する前に削除される請求項6に記載の方法。
【請求項8】
前記要求されたアイテムの大きさが、前記キャッシュの大きさからセット内のアイテムの結合された大きさを減じた大きさを超える場合には、前記アイテムが削除される請求項7に記載の方法。
【請求項9】
前記アイテムがコンピュータ命令を含み、前記アイテムを処理するための要求が前記命令を処理することを含む請求項1に記載の方法。
【請求項10】
前記アイテムがコンテンツ・ファイルを含み、前記アイテムを処理するための要求がコンテンツをユーザに送ることを含む請求項1に記載の方法。
【請求項11】
前記キャッシュ内に記憶されたアイテムのセットが前記キャッシュ内に記憶された全てのアイテムを含む請求項1に記載の方法。
【請求項12】
電子的に記憶された情報である、第1のメモリ内に記憶された第1のアイテムに対する現在の要求を受け取るステップと、
前記第1のアイテムが第2のメモリにも記憶される場合、前記第2のメモリから前記第1のアイテムを提供するステップと、
前記第1のアイテムが前記第2のメモリに記憶されていない場合、前記第1のアイテムを前記第1のメモリから提供するステップと、
前記第1のアイテムが所定の期間内に前もって要求されていたかどうかを、プロセッサを用いて判断するステップと、
前記第1のアイテムが前もって要求されていると判断された場合、前記第1のアイテムに関連付けられた、前記第1のアイテムに対する現在の要求と前記第1のアイテムに対する以前の要求との間の継続時間である第1の継続時間を、プロセッサを用いて確認するステップと、
前記第1のアイテムに対する現在の要求と前記第2のアイテムに対する最新の要求との間の継続時間であり、前記第2のメモリ内に記憶され前もって要求された第2のアイテムのセットの各アイテムに対する第2の継続時間を、プロセッサを用いて確認するステップと、
前記第1のアイテムが前もって要求され、かつ前記第1の継続時間が前記第2の継続時間の少なくとも1つよりも小さい場合は、前記第1のアイテムを前記第2のメモリ内に記憶するステップと
を含んでなる方法。
【請求項13】
前記第1のアイテムを別の基準に基づいて前記第2のメモリに記憶するステップをさらに含む請求項12に記載の方法。
【請求項14】
前記別の基準が複数の前記第1のアイテムを含む請求項13に記載の方法。
【請求項15】
前記アイテムの位置を参照するアイテムを要求するエンティティを提供することによって、前記第1のアイテムを提供するステップをさらに含む請求項12に記載の方法。
【請求項16】
前記アイテムのコピーを有するアイテムを要求するエンティティを提供することによって、前記第1のアイテムを提供するステップをさらに含む請求項12に記載の方法。
【請求項17】
電子的に記憶されている情報の第1のアイテムに対する要求を受け取るステップと、
前記第1のアイテムが所定の期間内に前もって要求されていない場合、前記第1のアイテムを第2のメモリ内に記憶せずに、前記第1のアイテムを第1のメモリから提供するステップと、
前記第2のメモリが複数の他のアイテムも記憶し前記他のアイテムの各々が少なくとも2回前もって要求されたことがある状態で、前記第1のアイテムが前記第2のメモリ内に記憶されている場合、前記第1のアイテムを前記第2のメモリから提供するステップと、
前記第1のアイテムが前もって要求されていると判断される場合、前記第1のアイテムに関連付けられた、前記第1のアイテムに対する以前の要求の間の継続時間に基づく第1の値を、プロセッサを用いて確認するステップと、
前記第2の値が前記第1のアイテムに対する現在の要求と前記第2のアイテムに対する最新の要求との間の継続時間に基づく値である場合に、前記第2のメモリ内に記憶され前もって要求された前記第2のアイテムのセットの各アイテムに関連付けられた第2の値を、プロセッサを用いて確認するステップと、
前記第1のアイテムが所定の期間内に前もって要求される場合、前記第1の値の前記第2の値との比較に基づいて、前記第1のアイテムを前記第1のメモリから提供し、そして前記第1のアイテムを前記第2のメモリ内に記憶するステップと
を含んでなる方法。
【請求項18】
前記第2の値が重み関数に基づいて判断され、要求とその後の要求との間の継続時間に加えられた重みが別の要求が受け取られるたびに減少するものである請求項17に記載の方法。
【請求項19】
前記第2の値が、下記の関数、すなわち、
第2の値=−1*(ALPHA*LS+(1−ALPHA)*En−1)であり、
ここで、
「n」は、要求がn番目に出現したことを示し、
「LS」は、要求のn番目の出現と以前の要求との間で経過した時間を示し、
「ALPHA」は、0と1との間及び0と1とを含む値を示すことに基づくものである請求項17に記載の方法。
【請求項20】
前記第1の値が前記関数に基づくものである請求項18に記載の方法。
【請求項21】
情報のアイテムを記憶するように構成されたキャッシュと、
情報のアイテムを記憶するように構成された他のメモリと、
命令に基づいて前記キャッシュ内のアイテムを読み出し及び記憶して、前記アイテムを要求元のデバイスに提供するように構成されたプロセッサと
を備えてなり、
前記命令が、要求元のデバイスから要求されたアイテムに対する要求に応じて、
前記要求されたアイテムが前記キャッシュの中に記憶されている場合は、前記要求されたアイテムをキャッシュから読み出し、
前記要求されたアイテムが前記キャッシュの中に記憶されていない場合は、前記要求されたアイテムを他のメモリから読み出し、
前記アイテムが所定の期間内に前もって要求されていない場合は、前記要求されたアイテムを次の要求より前に前記キャッシュに記憶することなく、前記要求されたアイテムを要求元のデバイスに提供し、
前記アイテムが所定の期間内に前もって要求されており、かつ前もって要求された時間が前記キャッシュ内に記憶されたアイテムのセット内の各アイテムに対する最新の要求よりも早い場合は、前記要求されたアイテムを次の要求より前に前記キャッシュに記憶せずに、前記要求されたアイテムを前記要求元のデバイスに提供し、
前記アイテムが所定の期間内に前もって要求されており、かつ前もって要求された時間が前記キャッシュ内に記憶されたアイテムのセット内の少なくとも1つのアイテムに対する最新の要求よりも遅い場合は、前記要求されたアイテムを前記要求元のデバイスに提供し、そして前記要求されたアイテムを次の要求の前に前記キャッシュの中に記憶する、
ことを含むものである、システム。
【請求項22】
前記プロセッサがネットワークのあるノードに存在し、かつ前記要求元のデバイスが前記プロセッサのノードとは異なるネットワークのノードにおいてデバイスを備える請求項21に記載のシステム。
【請求項23】
前記プロセッサがネットワークのあるノードに存在し、かつ前記要求元のデバイスが、前記プロセッサのノードとは異なるネットワークの複数のノードにおいて複数のデバイスを備える請求項21に記載のシステム。
【請求項24】
前記情報のアイテムがビデオ情報を含み、前記ネットワークがインターネットを含み、かつ前記要求元のデバイスがユーザ・コンピュータを含む請求項23に記載のシステム。
【請求項25】
前記プロセッサ及び要求元のデバイスは同一であるため、前記プロセッサは前記キャッシュや他のメモリから取得したアイテムを処理する請求項21に記載のシステム。
【請求項26】
命令に基づいて、メモリ内のアイテムを読み出すように及びメモリ内にアイテムを記憶するように構成されたプロセッサと、
第1の記憶容量及び第1のアクセス時間(この場合、前記アクセス時間は、前記プロセッサがメモリから情報を得るために要する時間を指す)を有する第1のメモリと、
第1の記憶容量よりも大きい第2の記憶容量及び第1のアクセス時間よりも遅い第2のアクセス時間を有する第2のメモリと、
第2の記憶容量よりも大きな第3の記憶容量及び第2のアクセス時間よりも遅い第3のアクセス時間を有する第3のメモリと
を備えてなり、
前記命令が、前記プロセッサが受信したアイテムに対する要求に応じて、
要求されたアイテムが前記第1のメモリ内に記憶される場合、前記要求されたアイテムを前記第1のメモリから読み出し、
前記要求されたアイテムが前記第2のメモリ内に記憶される場合、前記要求されたアイテムを前記第2のメモリから読み出し、
前記要求されたアイテムが前記第3のメモリ内に記憶される場合、前記要求されたアイテムを前記第3のメモリから読み出し、
前記アイテムが要求時に前記第2のメモリに記憶されていたかどうか、及び前記アイテムが要求された最後の時間から経過した時間が最後の削除期間(前記最後の削除期間は、まだ前記第1のメモリ内に記憶されている最後に削除されるアイテムに対する最後の要求から始まり、最後に削除されるアイテムの前記第1のメモリからの削除で終了する継続時間を含む)よりも短いかどうかに基づいて、前記要求されたアイテムを前記第1のメモリに記憶し、
前記アイテムが要求時に前記第2のメモリに記憶されていたかどうか、及び前記アイテムが前記第3のメモリから読み出されたかどうかに基づいて、前記要求されたアイテムを前記第2のメモリに記憶する、
ことを含む、システム。
【請求項27】
前記第1のメモリがフラッシュ・メモリである請求項26に記載のシステム。
【請求項28】
前記第2のメモリがディスク・メモリである請求項27に記載のシステム。
【請求項29】
前記プロセッサがネットワークを経由して前記第3のメモリにアクセスするものである請求項27に記載のシステム。
【請求項30】
前記情報のアイテムがビデオ・ファイルのチャンクを含む請求項26に記載のシステム。
【請求項31】
命令に基づいて、メモリ内のアイテムを読み出すように及びメモリ内にアイテムを記憶するように構成されたプロセッサと、
第1の記憶容量を有する第1のメモリと、
前記第1の記憶容量よりも大きい第2の記憶容量を有する第2のメモリと、
前記第2の記憶容量よりも大きい第3の記憶容量を有する第3のメモリと
を備えてなり、
前記命令が、前記プロセッサが受信したアイテムに対する要求に応じて、
要求されたアイテムが前記第1のメモリ内に記憶される場合、前記要求されたアイテムを前記第1のメモリから読み出し、
前記要求されたアイテムが前記第2のメモリ内に記憶される場合、前記要求されたアイテムを前記第2のメモリから読み出し、
前記要求されたアイテムが前記第3のメモリ内に記憶される場合、前記要求されたアイテムを前記第3のメモリから読み出し、
前記要求されたアイテム及び前記第1のメモリ内に記憶された複数のアイテムに対する優先順位の値を決定し、ここで、前記優先順位の値は優先順位関数に基づき、前記優先順位関数はアイテムに対する要求の間の継続時間に基づき、より小さな重みがアイテムに対するより早い要求の間の継続期間に加えられるものであり、
前記アイテムが以前に要求されたことがある場合、前記要求されたアイテムが前記第2のメモリ内に記憶される場合、及び前記要求されたアイテムの優先順位の値が第1のメモリ内に記憶された少なくとも1つの他のアイテムの優先順位の値よりも大きい場合、前記要求されたアイテムを前記第1のメモリ内に記憶する、
ことを含む、システム。
【請求項32】
前記優先順位関数が、下記の関数、すなわち、
優先順位の値=−1*(ALPHA*LS+(1−ALPHA)*En−1)であり、
ここで、
「n」は、要求がn番目に出現したことを示し、
「LS」は、要求のn番目の出現と以前の要求との間で経過した時間を示し、
「ALPHA」は、0と1との間及び0と1とを含む値を示すことに基づくものである、請求項31に記載のシステム。
【請求項33】
前記第1のメモリが第1のアクセス時間を有し、ここで、アクセス時間は、前記プロセッサがメモリから情報を得るために要する時間を指すものであり、前記第2のメモリが前記第1のアクセス時間よりも遅い第2のアクセス時間を有し、前記第3のメモリが前記第2のアクセス時間よりも遅い第3のアクセス時間を有している請求項31に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2013−502641(P2013−502641A)
【公表日】平成25年1月24日(2013.1.24)
【国際特許分類】
【出願番号】特願2012−525535(P2012−525535)
【出願日】平成22年8月20日(2010.8.20)
【国際出願番号】PCT/US2010/002317
【国際公開番号】WO2011/022079
【国際公開日】平成23年2月24日(2011.2.24)
【出願人】(502208397)グーグル インコーポレイテッド (161)
【Fターム(参考)】