JP4244572B2 - キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム - Google Patents

キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4244572B2
JP4244572B2 JP2002195654A JP2002195654A JP4244572B2 JP 4244572 B2 JP4244572 B2 JP 4244572B2 JP 2002195654 A JP2002195654 A JP 2002195654A JP 2002195654 A JP2002195654 A JP 2002195654A JP 4244572 B2 JP4244572 B2 JP 4244572B2
Authority
JP
Japan
Prior art keywords
cache
data
data block
group
list
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.)
Expired - Fee Related
Application number
JP2002195654A
Other languages
English (en)
Other versions
JP2004038627A (ja
Inventor
敦 宮内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2002195654A priority Critical patent/JP4244572B2/ja
Priority to US10/520,427 priority patent/US7287136B2/en
Priority to CNB038208652A priority patent/CN100383758C/zh
Priority to PCT/JP2003/007971 priority patent/WO2004006101A1/ja
Publication of JP2004038627A publication Critical patent/JP2004038627A/ja
Application granted granted Critical
Publication of JP4244572B2 publication Critical patent/JP4244572B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラムに関する。さらに詳細には、ネットワークを通じて送受信されるデータ・キャッシュ処理において、キャッシュ装置内のデータ格納領域の効率的利用、およびヒット率向上を実現したキャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
近年、インターネット等の通信ネットワークを介した画像、音声データ、各種プログラム等のデータ転送が盛んに行われている。ネットワークを通じてやりとりされるコンテンツの種類は、テキスト・静止画などから、動画・音声などのマルチメディアコンテンツへと移行が進み、コンテンツの大容量化、多種類化が著しく進んでいる。
【0003】
また、近年は、ブロードバンドによる大容量コンテンツの配信が急速に広まり、これに応じて、ネットワークを介して流通するコンテンツ数が飛躍的に増加している。このようにコンテンツの種類が増加し、大容量コンテンツが増大すると、データ通信量の増大、すなわちネットワークのデータトラフィックの増大という問題が発生する。
【0004】
ネットワークのデータトラフィックの増大という問題を解決する1つの手法にキャッシュシステムがある。キャッシュシステムは、例えばコンテンツ配信サイトからコンテンツ受信ユーザー側に至るネットワーク経路上にデータ蓄積手段としてのキャッシュを構成したシステムであり、ユーザー側から要求されたデータ(コンテンツ)がキャッシュに蓄積されている場合は、コンテンツ配信サイトから改めてデータ(コンテンツ)を送信することなく、データをキャッシュから取り出してユーザーに提供可能としたものである。
【0005】
例えば、ユーザーがネットワークを介してコンテンツを取得し、ネットワーク上の一時的な記憶装置(キャッシュ)にコンテンツが格納された場合、キャッシュは一定の決まったルールでコンテンツ格納、削除処理を行なう。例えばキャッシュの記憶容量の越えない範囲で最新のコンテンツが入力される毎に、アクセスの頻度が古いコンテンツを書き換える処理を実行する。通常、このキャッシュにおけるコンテンツ管理ルールはコンテンツの配信側やユーザー側の直接的な管理とは無関係に実行される。
【0006】
このように、インターネット・キャッシュのデータ領域管理において、データが満杯になると使われなくなったデータ領域を検出し、その領域をキャッシュから削除後に新しいデータで置き換える処理を行なう。これをキャッシュ・リプレースメント(Cache Replacement)と呼ぶ。
【0007】
従来のインターネット・キャッシュのキャッシュ・リプレースメント(Cache Replacement)は、インターネット等のネットワークに複数のキャッシュが存在する場合であっても、各々の個別のキャッシュ装置内で独自なデータ管理を実行するのが一般的である。最も一般的なキャッシュ・リプレースメントの技法としては、LRU(Least Recently Used)によるデータ管理方法がある。
【0008】
LRUは、最近使用されていないデータ・ブロックを、LRUリストの後ろに回し、最近使われたデータ・ブロックを、LRUリストの先頭に設定するという管理方法であり、新しいデータをキャッシュするために古いデータを削除したい場合には、LRUリストの後ろにあるブロックから削除することで、キャッシュ内に新たなデータ格納領域を形成する方法である。
【0009】
図1を参照してLRU(Least Recently Used)によるデータ管理方法について説明する。管理データとしては、利用頻度順にデータ・ブロックに対応するエントリを並べた(a)LRUリストと、キャッシュの空き領域ブロックを示す(b)フリーブロックリストを有する。新たにキャッシュされたデータは、(b)フリーブロックリストのエントリに示されるポインタによって特定されるメモリ領域としてのデータ格納ブロックに格納され、格納ブロックに対して設定されるブロック情報を格納したエントリが、(a)LRUリストの先頭エントリ101として設定される。
【0010】
データの新規入力(キャッシュ)により、キャッシュのデータ格納領域が満杯になり、以前よりキャッシュされていたデータの中から、いずれかを削除する必要のあるときに、削除されるデータは、(a)LRUリストの末端にある最近使われていないデータ・ブロックと考えられるエントリ102に対応するデータ・ブロックであり、削除されたデータ・ブロックをポインタ情報として示すエントリが(b)フリーブロックリストに設定されることで、所定のデータ格納ブロックが空き領域として設定される。
【0011】
このようなキャッシュ用データ・ブロック管理の方法は、あくまで単独のキャッシュ装置に関する情報を元に処理されていた。また、近隣の複数のキャッシュ装置に対して要求元のキャッシュ装置の持っていないデータを要求するための手段としてICP(Internet Cache Protocol : RFC-2186, RFC-2187)が提案されているが、コンテンツファイルのリソース情報としてのURL(Uniform Resource Locator)を指定したURL単位でのデータ要求処理であることや、複数のキャッシュ間でどのデータを消去または残すべきかの細かい調整機能が無い。このため、たまたま各キャッシュ装置の事情で要求したものと同じデータが他のキャッシュ装置に残っているときに、そのデータをサーバーからダウンロードしてくる代わりに他のキャッシュ装置から持ってくるという処理をしていただけである。
【0012】
【発明が解決しようとする課題】
本発明は、上述したキャッシュ管理の現状に鑑みてなされたものであり、ネットワークに複数のキャッシュが接続された構成において、効率的なデータ格納領域の利用を実現したキャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0013】
例えば、ネットワーク接続されたキャッシュにおけるデータ領域管理方法において、データの削除を一時保留する「削除保留リスト」を使って管理することや、キャッシュグループという概念を導入することで、ビデオコンテンツのような大きなサイズのコンテンツをキャッシュするときに好適なデータ管理方法を実現する。
【0014】
キャッシュグループとは、ネットワークに接続したキャッシュ装置のいくつかを組にしたものであり、このグループ内の複数のディスク間で同じコンテンツデータが管理されているものとする。このときに、あるデータ単位ごとにブロック化して各々のブロック単位で削除保留リストを使って管理するときに、ディスク別に削除保留すべき部分が異なるように処理することにより、キャッシュ・リプレースメントによって、ある程度のデータ削除処理が進んだ段階においても、キャッシュグループ内の近隣のキャッシュディスクからデータを集めることによって、元のコンテンツデータを迅速に再生することができる。短いコンテンツデータであれば、コンテンツ別に削除保留にすべきものをディスク別に異なるように設定することで、同様の管理が可能である。
【0015】
【課題を解決するための手段】
本発明の第1の側面は、
ネットワークを介して受信したデータをキャッシュデータとして格納し、端末からのデータ要求に応じてキャッシュデータを取得して端末に送信するキャッシュ装置であり、
自キャッシュ装置およびネットワークに接続された他のキャッシュ装置によって構成され、コンテンツを構成する複数のデータ・ブロックを分散格納してコンテンツの共同管理を行うキャッシュグループに関するグループ設定情報を格納したテーブルであり、キャッシュグループが共同管理するコンテンツの識別子と、キャッシュグループを構成するキャッシュ装置数:Nと、各キャッシュ装置に対応して設定されるグループ・メンバー番号:mを格納したキャッシュグループ・テーブルと、
自キャッシュ装置に保持されたデータ・ブロックの管理データであるLRUリストから削除予定データ・ブロックを検索し、削除予定データ・ブロックが前記キャッシュグループにおける自己の記憶担当データである保留データ・ブロックであるか否かを前記キャッシュグループ・テーブルの格納パラメータを適用した算出式の算出結果に基づいて決定し、削除予定データ・ブロックが保留データ・ブロックである場合は削除せずに削除保留リストによる管理対象として自キャッシュ装置に保持し管理する処理を行う制御手段と、
を有することを特徴とするキャッシュ装置にある。
【0016】
さらに、本発明のキャッシュ装置の一実施態様において、前記制御手段は、共同管理するコンテンツを構成する複数のデータ・ブロックから、自キャッシュ装置における記憶保持対象とする保留データ・ブロックの決定処理を、以下の処理、すなわち、
判定対象データ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
C mod Nを算出し、
C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)として、
V=mであるか否かを判定し、
V=mである場合に、該データ・ブロックを保留データ・ブロックとして決定する処理、
を実行する構成であることを特徴とする。
【0017】
さらに、本発明のキャッシュ装置の一実施態様において、前記制御手段は、記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、前記キャッシュグループによる共同管理が可能か否かをキャッシュ装置間のメッセージ送受信により判定し、共同管理可能であると判定した場合に、前記キャッシュグループ・テーブルを生成する構成であることを特徴とする。
【0018】
さらに、本発明のキャッシュ装置の一実施態様において、前記制御手段は、記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、前記キャッシュグループ・テーブルの格納情報に基づいて、コンテンツを構成する複数のデータ・ブロック中から、自キャッシュ装置における記憶保持データとしての保留データ・ブロックを決定し、決定した保留データ・ブロック以外のデータ・ブロックについては、削除の許容されるデータ・ブロック管理リストとしてのフリーブロックリストにより管理する構成であることを特徴とする。
【0019】
さらに、本発明のキャッシュ装置の一実施態様において、前記削除保留リストは、データ・ブロックの保存優先度に応じた複数のリストによって構成され、前記制御手段は、データ・ブロックの保存優先度を判定し、該判定結果に基づいて選択した削除保留リストに対して前記管理データ・ブロックに対応するエントリの設定を行なう構成であることを特徴とする。
【0020】
さらに、本発明のキャッシュ装置の一実施態様において、前記制御手段は、端末からのコンテンツ取得要求が、前記キャッシュグループによる共同管理対象のコンテンツ取得要求である場合に、取得要求対象のコンテンツを構成するデータ・ブロックが前記キャッシュグループを構成するいずれのキャッシュ装置の保持対象データ・ブロックであるかを判定し、該判定結果に基づいてデータ・ブロックを自キャッシュ装置または、前記キャッシュグループを構成する他のキャッシュ装置から取得する処理を実行する構成であることを特徴とする。
【0021】
さらに、本発明のキャッシュ装置の一実施態様において、前記制御手段は、取得要求対象のデータ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
C mod Nを算出し、
C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)として、
V=mを算出し、
算出したmをグループ・メンバー番号として有するキャッシュ装置からデータ・ブロックの取得処理を実行する構成であることを特徴とする。
【0022】
さらに、本発明の第2の側面は、
ネットワークを介して受信したデータをキャッシュデータとして格納し、端末からのデータ要求に応じてキャッシュデータを取得して端末に送信するキャッシュ装置におけるキャッシュデータ管理方法であり、
前記キャッシュ装置の制御手段が、自キャッシュ装置に保持されたデータ・ブロックの管理データであるLRUリストから削除予定データ・ブロックを検索するステップと、
前記制御手段が、自キャッシュ装置およびネットワークに接続された他のキャッシュ装置によって構成され、コンテンツを構成する複数のデータ・ブロックを分散格納してコンテンツの共同管理を行うキャッシュグループに関するグループ設定情報を格納したテーブルであり、キャッシュグループが共同管理するコンテンツの識別子と、キャッシュグループを構成するキャッシュ装置数:Nと、各キャッシュ装置に対応して設定されるグループ・メンバー番号:mを格納したキャッシュグループ・テーブルの格納パラメータを適用した算出式の算出結果に基づいて、前記削除予定データ・ブロックが前記キャッシュグループにおける自己の記憶担当データである保留データ・ブロックであるか否かを決定する保留データ・ブロック決定ステップと、
前記制御手段が、前記削除予定データ・ブロックが保留データ・ブロックである場合は削除せずに削除保留リストによる管理対象として自キャッシュ装置に保持し管理する処理を行うステップと、
を有することを特徴とするキャッシュデータ管理方法にある。
【0023】
さらに、本発明のキャッシュデータ管理方法の一実施態様において、前記保留データ・ブロック決定ステップは、共同管理するコンテンツを構成する複数のデータ・ブロックから、自キャッシュ装置における記憶保持対象とする保留データ・ブロックの決定処理を、以下の処理、すなわち、
判定対象データ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
C mod Nを算出し、
C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)として、
V=mであるか否かを判定し、
V=mである場合に、該データ・ブロックを保留データ・ブロックとして決定する処理を実行することを特徴とする。
【0024】
さらに、本発明のキャッシュデータ管理方法の一実施態様において、前記キャッシュデータ管理方法は、さらに、前記制御手段が、記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、前記キャッシュグループによる共同管理が可能か否かをキャッシュ装置間のメッセージ送受信により判定し、共同管理可能であると判定した場合に、前記キャッシュグループ・テーブルを生成する処理を実行することを特徴とする。
【0025】
さらに、本発明のキャッシュデータ管理方法の一実施態様において、前記キャッシュデータ管理方法は、さらに、前記制御手段が、記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、前記キャッシュグループ・テーブルの格納情報に基づいて、コンテンツを構成する複数のデータ・ブロック中から、自キャッシュ装置における記憶保持データとしての保留データ・ブロックを決定し、決定した保留データ・ブロック以外のデータ・ブロックについては、削除の許容されるデータ・ブロック管理リストとしてのフリーブロックリストにより管理するステップを含むことを特徴とする。
【0026】
さらに、本発明のキャッシュデータ管理方法の一実施態様において、前記削除保留リストは、データ・ブロックの保存優先度に応じた複数のリストによって構成され、前記キャッシュデータ管理方法は、さらに、前記制御手段が、データ・ブロックの保存優先度を判定し、該判定結果に基づいて選択した削除保留リストに対して前記管理データ・ブロックに対応するエントリの設定を行なうステップを含むことを特徴とする。
【0027】
さらに、本発明のキャッシュデータ管理方法の一実施態様において、前記キャッシュデータ管理方法は、さらに、前記制御手段が、端末からのコンテンツ取得要求が、前記キャッシュグループによる共同管理対象のコンテンツ取得要求である場合に、取得要求対象のコンテンツを構成するデータ・ブロックが前記キャッシュグループを構成するいずれのキャッシュ装置の保持対象データ・ブロックであるかを判定し、該判定結果に基づいてデータ・ブロックを自キャッシュ装置または、前記キャッシュグループを構成する他のキャッシュ装置から取得するデータ・ブロック取得処理を実行するステップを含むことを特徴とする。
【0028】
さらに、本発明のキャッシュデータ管理方法の一実施態様において、前記キャッシュグループ・テーブルは、キャッシュグループによって共同管理するコンテンツの識別子と、キャッシュグループを構成するキャッシュ装置数:Nと、各キャッシュ装置に対応して設定されるグループ・メンバー番号:mとを有し、前記データ・ブロック取得処理は、取得要求対象のデータ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
C mod Nを算出し、
C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)として、
V=mを算出し、
算出したmをグループ・メンバー番号として有するキャッシュ装置からデータ・ブロックを取得する処理として実行することを特徴とする。
【0029】
さらに、本発明の第3の側面は、
ネットワークを介して受信したデータをキャッシュデータとして格納し、端末からのデータ要求に応じてキャッシュデータを取得して端末に送信するキャッシュ装置のプログラム実行部である制御手段にキャッシュデータ管理処理を実行させるコンピュータ・プログラムであり、
自キャッシュ装置に保持されたデータ・ブロックの管理データであるLRUリストから削除予定データ・ブロックを検索させるステップと、
自キャッシュ装置およびネットワークに接続された他のキャッシュ装置によって構成され、コンテンツを構成する複数のデータ・ブロックを分散格納してコンテンツの共同管理を行うキャッシュグループに関するグループ設定情報を格納したテーブルであり、キャッシュグループが共同管理するコンテンツの識別子と、キャッシュグループを構成するキャッシュ装置数:Nと、各キャッシュ装置に対応して設定されるグループ・メンバー番号:mを格納したキャッシュグループ・テーブルの格納パラメータを適用した算出式の算出結果に基づいて、前記削除予定データ・ブロックが前記キャッシュグループにおける自己の記憶担当データである保留データ・ブロックであるか否かを決定させる保留データ・ブロック決定ステップと、
前記削除予定データ・ブロックが保留データ・ブロックである場合は削除せずに削除保留リストによる管理対象として自キャッシュ装置に保持し管理する処理を行わせるステップと、
を実行させることを特徴とするコンピュータ・プログラムにある。
【0030】
【作用】
本発明の構成によれば、ネットワーク接続されたキャッシュ装置におけるキャッシュ・リプレースメント処理において、削除保留ブロックに関するリストを保持して、キャッシュグループ内のキャッシュ装置ごとに各々削除保留されるデータ・ブロックが異なるようにデータ管理を行なう構成としたので、各キャッシュ装置が単独でキャッシュ・リプレースメントの管理をしている場合に比べて効率的な記憶領域の利用が図れ、また、端末からのデータ要求に応じて複数のキャッシュ装置に記憶したデータ・ブロックを集めて送信することが可能となり、ネットワークトラフィックの軽減、キャッシュ装置のヒット率の向上が実現される。
【0031】
さらに、本発明の多段の削除保留リストを適用したキャッシュ装置構成によれば、保持重要度の高いデータが削除されずにキャッシュに残る可能性が高くなるため、さらに、キャッシュヒット率の向上を達成することが可能となる。
【0032】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0033】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0034】
【発明の実施の形態】
以下、本発明のキャッシュ装置、およびキャッシュデータ管理方法について、図面を参照して、詳細に説明する。
【0035】
[キャッシュ装置および処理概要]
図2は、本発明のキャッシュ装置を適用可能なネットワークシステムの全体構成例を示す図である。この図2に示す構成は、一般的なインターネット・キャッシュ装置、サーバー装置、端末装置から成るシステムと同様である。本発明のキャッシュ装置は、従来のネットワークシステム構成での適用が可能であり、ネットワーク内の複数のキャッシュ装置でグループ設定を行ない、グループ内においてキャッシュデータの管理を実行する。
【0036】
各キャッシュ装置1(211)〜キャッシュ装置4(214)は、お互いにネットワークで接続されていると共に、コンテンツサーバー201から配信されるデータ(コンテンツ)を一時的に保存する機能を持つ。キャッシュ装置211〜214のネットワーク下流側には、コンテンツを受信する複数の端末装置、例えばユーザーPC、携帯通信端末等の各種端末を接続できる構成となっている。
【0037】
キャッシュ装置1(211)には、コンテンツ受信端末としての端末221a〜c・・、キャッシュ装置2(212)には、端末231a〜c・・、キャッシュ装置3(213)には、端末241a〜b・・、キャッシュ装置4(214)には、端末251a〜c・・がそれぞれ接続される。
【0038】
ある端末からコンテンツデータの取得要求があると、コンテンツサーバー201からデータを読み出すか、中間にあるキャッシュ装置からデータを読み出す。端末からのコンテンツ要求は、例えば、コンテンツファイルのリソース情報としてのURL(Uniform Resource Locator)を指定したコンテンンツ取得要求メッセージの送信によって行なわれる。
【0039】
キャッシュ装置に端末から取得要求のあったコンテンツのURLに対応するデータが保存されている場合は、このキャッシュ装置からデータを読み出す。キャッシュからのデータ読み出しにより、コンテンツサーバー201からキャッシュ装置間におけるデータ転送が省略可能となり、ネットワーク上のデータトラフィックが緩和される。
【0040】
本発明の構成では、ネットワークで接続された複数のキャッシュ装置、例えば、図2に示すキャッシュ装置1(211)〜キャッシュ装置4(214)を「キャッシュグループ」としてグループ化し、これら複数のキャッシュ装置1(211)〜キャッシュ装置4(214)間で、コンテンツの共同管理、すなわち複数のキャッシュ装置1(211)〜キャッシュ装置4(214)でのコンテンツの分散保持を実行する。以下、本発明におけるキャッシュ管理の構成、および方法について説明する。
【0041】
図2のキャッシュグループに属する4つのキャッシュ装置1(211)〜キャッシュ装置4(214)に、例えば図3に示すように、同じコンテンツデータがキャッシュされているとする。コンテンツは、データ・ブロック1〜7からなる。図3のように各キャッシュ装置1(211)〜キャッシュ装置4(214)で同じデータ・ブロック1〜7を保存しているものとする。これらのデータ・ブロック1〜7は、それぞれのキャッシュ装置1(211)〜キャッシュ装置4(214)がそれぞれの接続端末からの要求に応じて、コンテンツサーバー201から受信し、一時記憶しているデータ、すなわちキャッシュデータである。
【0042】
もし、従来と同様、個々のキャッシュ装置が単独で、キャッシュ・リプレースメント処理を実行すると、個々のキャッシュ装置は、新しく記憶手段に格納、すなわちキャッシュすべきデータを保存するために、端末からの取得要求頻度の低いデータ・ブロックを削除することになる。この削除したデータを再度提供する場合には、既にキャッシュ装置にデータが無いために、コンテンツサーバー201へデータを取りに行くことになる。
【0043】
本発明のキャッシュ装置は、複数のキャッシュ装置1(211)〜キャッシュ装置4(214)で構成するキャッシュグループで、データを共同管理する。
【0044】
本発明のキャッシュデータ管理方法では、同じコンテンツデータを持つ複数のキャッシュ装置を使ってキャッシュをグループ化してキャッシュするデータを管理する。本発明におけるキャッシュ装置のキャッシュ・リプレースメントは、キャッシュグループを構成する複数のキャッシュ装置1(211)〜キャッシュ装置4(214)を単位として実行する。
【0045】
キャッシュグループを構成するキャッシュ装置ごとに削除されずに残っているデータが異なるデータとなるように制御されてデータ削除を実行する。従って、キャッシュ装置におけるデータ格納領域の効率的利用が可能となる。さらに、端末からのデータ要求に応答して、キャッシュグループの複数キャッシュ装置から各格納データを転送して端末に対する出力が可能となり、総合的にキャッシュ装置のヒット率を向上させることが可能となる。
【0046】
具体例について、図を参照して説明する。図3のように、キャッシュグループを構成する複数のキャッシュ装置1(211)〜キャッシュ装置4(214)の各々が、同じコンテンツデータ・ブロック1〜7を格納していた場合、キャッシュグループを単位としたデータ管理により、キャッシュ装置ごとに削除されずに残っているデータが異なるデータとなるようにデータ削除、すなわちキャッシュ・リプレースメントを実行する。
【0047】
このキャッシュグループを単位としたキャッシュ・リプレースメントの結果、図4に示すように、キャッシュ装置1(211)は、データ・ブロック1,5をキャッシュデータとして保持し、データ・ブロック2,3,4,6,7をフリーリスト(削除データ・ブロックに相当)に移動する。キャッシュ装置2(212)は、データ・ブロック2,6をキャッシュデータとして保持し、データ・ブロック1,3,4,5,7をフリーリストに移動する。キャッシュ装置3(213)は、データ・ブロック3,7をキャッシュデータとして保持し、データ・ブロック1,2,4,5,6をフリーリストに移動する。キャッシュ装置4(214)は、データ・ブロック4をキャッシュデータとして保持し、データ・ブロック1,2,3,5,6,7をフリーリストに移動する。
【0048】
このように、キャッシュグループを構成する複数のキャッシュ装置1(211)〜キャッシュ装置4(214)全体としてキャッシュ・リプレースメントを行ない、コンテンツ共同管理を実行する。キャッシュグループ単位でのキャッシュ・リプレースメント処理の具体的処理態様について説明する。
【0049】
あらかじめ決めた一定の時間間隔ごとに、各キャッシュ装置が独自に持っているLRUリスト(図1参照)から、キャッシュ・リプレースメントによって近々に消去される可能性のある順にブロックをスキャンし、その消去予定のブロックに対応するコンテンツを持つキャッシュ装置が近隣にあるかどうかを問い合わせ、さらに、問い合わせ先のキャッシュ装置が消去予定のコンテンツを持っている場合には、相互にキャッシュグループを組めるか否かを確認する。
【0050】
このような問い合わせに適用する送受信メッセージは、例えばネットワーク接続されたキャッシュ間のメッセージ送受信プロトコルとして定義されたICP(Internet Cache Protocol)プロトコルが適用可能である。従来のICPの仕様中には、キャッシュグループに参加できるかどうかの確認機能についてまで規定されていないが、例えば、ICP中のオペコードの1つとして定義されているIP_OP_QUERYメッセージ中のOPTION Flagを拡張して、キャッシュグループに参加できるかどうかの確認メッセージを送受信することが可能である。
【0051】
ネットワーク接続されたキャッシュ間のメッセージ送受信プロトコルとして定義されたICP(Internet Cache Protocol)プロトコルのフォーマットを図5(a)に、ICP中のオペコードの1つとして定義されているIP_OP_QUERYメッセージフォーマットを図5(b)に示す。ICPフォーマットは、図5(a)に示すように、オペコード、バージョン、メッセージ長、リクエストNo.、オプション、オプションデータ、送信側ホストアドレス、ペイロードの各データフィールドを有する。
【0052】
特定のコンテンツデータを持っているか、およびキャッシュグループに参加できるかを、近隣のキャッシュ装置に問い合わせる際には、コンテンツファイルのリソース情報としてのURL(Uniform Resource Locator)を指定して、近隣キャッシュ装置に問い合わせメッセージを送信する。この問い合わせメッセージの1形態として、ICP(Internet Cache Protocol)プロトコルのOPTION Flagの拡張を行ない、ICP_OP_QUERYで、コンテンツファイルのリソース情報としてのURLを指定するとともに、このコンテンツについてキャッシュグループのメンバーとして参加可能かの確認の意味を含むフラグ(例えば、0x20000000(ICP_FLAG_GROUP_REQ))を追加する。なお、この問い合わせメッセージは、この手法に限らず、他のフォーマット、プロトコルを使用することも可能である。
【0053】
なお、このコンテンツ保持問い合わせは、問い合わせを行なうキャッシュ装置が、マルチキャスト(Multicast)を適用して、複数の近隣キャッシュ装置に一度に問い合わせることも可能である。
【0054】
なお、本発明において、「近隣のキャッシュ装置」とは、ある1つのキャッシュ装置に対してキャッシュグループとして組む可能性のあるキャッシュ装置の候補であり、例えばデータ送受信処理を、あらかじめ定めた許容時間内に実行可能なキャッシュ装置として設定される。
【0055】
「近隣のキャッシュ装置」の具体的な設定態様としては、例えば、キャッシュ装置の設定ファイルにキャッシュグループを組める可能性のある複数のキャッシュ装置を予め登録し、これらの登録キャッシュ装置にpingなどを使ってキャッシュ装置間のRTT(Round Trip Time)を測定し、RTTが許容時間範囲内にある複数のキャッシュ装置を「近隣のキャッシュ装置」として設定することが可能である。
【0056】
キャッシュグループの設定を実行するキャッシュ装置は、「近隣のキャッシュ装置」に関するリストを保持する。リストは、対象となるキャッシュ装置に関するデータとして、ホスト名、IPアドレス、ICPポート番号を保存したリストである。
【0057】
キャッシュ装置リスト構成例を図6に示す。キャッシュ装置リストは、図6に示すように、近隣のキャッシュ装置として設定されたキャッシュ装置に関するデータとして、ホスト名、IPアドレス、ICPポート番号を保存したリストである。
【0058】
コンテンツ保持の有無および、グループ参加可否についての問い合わせを近隣のキャッシュ装置に対して実行しようとするキャッシュ装置は、例えば、ICP_OP_QUERYで、あるコンテンツデータに対応するURLを指定して問い合わせメッセージをブロードキャスト、マルチキャスト等により送信する。問い合わせを実行したキャッシュ装置は、問い合わせメッセージに対する答えを待つことになる。
【0059】
しかし、応答を無限に待つことはできないし、マルチキャストで問い合わせした場合は、どれだけ返事が戻るか不明であるため、あらかじめ決めた一定時間の範囲内において、ヒット(HIT)応答、すなわち問い合わせに係るURLに関連するコンテンツデータを持っているとの応答が何処からいくつ戻るかをカウントし内部のキャッシュグループ・テーブル(対象とするコンテンツデータの識別子(URL,コンテンツID等)、グループの構成メンバー数、グループID、キャッシュグループを構成するメンバーの(メンバー番号とIPアドレスリストの対データ))に記憶する。
【0060】
応答メッセージは、問い合わせに係るURLに関連するコンテンツデータを持っているとの応答として、例えばICPメッセージのICP_OP_HIT、また、コンテンツデータを持っていない旨の応答として、ICP_OP_MISSを用いた応答メッセージが適用可能である。
【0061】
上述の問い合わせメッセージを受信したキャッシュ装置は、問い合わせを送信してきたキャッシュ装置とのキャッシュグループを構成するメンバーになることを承諾し、さらに、キャッシュグループ形成までの間、問い合わせのあったコンテンツに対応するデータ・ブロックを削除せずに保持できる能力を持つ場合に、HIT応答を返す。
【0062】
問い合わせメッセージを送信したキャッシュ装置と、HIT応答を返した1以上のキャッシュ装置とによって、問い合わせメッセージの指定コンテンツに関するキャッシュグループを構成する。
【0063】
問い合わせメッセージを送信し、応答メッセージを受信したキャッシュ装置が、1以上のHIT応答を受信してキャッシュグループを設定した場合は、キャッシュグループを構成するキャッシュ装置数(N),当該キャッシュ装置のキャッシュグループを構成するキャッシュ装置(メンバー)識別子としてのグループ・メンバー番号(m)、キャッシュグループでの処理対象コンテンツデータ識別子(CID)などのグループ設定情報を、キャッシュグループを構成する各キャッシュ装置に伝える。
【0064】
なお、キャッシュ装置(メンバー)識別子としてのグループ・メンバー番号(m)は、キャッシュ装置のIPアドレスに対応して設定され、キャッシュグループを構成する全てのキャッシュ装置(メンバー)は、キャッシュグループを構成する他の全てのキャッシュ装置(メンバー)識別子としてのグループ・メンバー番号(m)とIPアドレスの対応情報を取得する。
【0065】
グループ設定情報の伝達には、上述の問い合わせメッセージと同様、ICPが適用可能である。例えば、ICPにおいて、情報通知のためのICP_OP_NOTIFYのようなオペコードを独自に追加し、ペイロード部分に図7のようなキャッシュ装置(メンバー)のグループ・メンバー番号と、IPアドレスデータを格納してキャッシュグループを構成する各キャッシュ装置に送信し、通知することになる。なお、図7に示す例は、IPアドレスとしてIPv4を適用した例である。
【0066】
図7に示すように、ペイロード部には、キャッシュグループを構成する全て(N)のキャッシュ装置(メンバー)のグループ・メンバー番号(キャッシュ・メンバー#1〜#N)とIPアドレス情報が格納される。これらの情報を受領することにより、キャッシュグループを構成する全てのキャッシュ装置(メンバー)は、キャッシュグループを構成する他の全てのキャッシュ装置(メンバー)のグループ・メンバー番号とIPアドレスの対応を知ることができる。
【0067】
グループ設定情報を伝達したキャッシュ装置、およびグループ設定情報を伝達された、キャッシュグループに属するキャッシュ装置は、図8に示すようなグループ設定情報を格納したキャッシュグループ・テーブルを自己の管理情報としてメモリに格納する。
【0068】
キャッシュグループ・テーブルには、上述のグループ設定情報に基づいて取得される情報、すなわち、設定キャッシュグループにおいて共同管理するコンテンツの識別子、キャッシュグループの構成キャッシュ装置数[N]、キャッシュグループの識別子(ID)、およびキャッシュグループのメンバーリストとして、メンバー番号とIPアドレスの対応データとが格納される。
【0069】
このようにして作成したキャッシュグループを構成する各キャッシュ装置は、単独のデータ(コンテンツ)管理ではなく、グループ全体でのコンテンツデータの管理を行なう。以下、キャッシュグループ内の各キャッシュ装置におけるコンテンツ管理方法について説明する。
【0070】
キャッシュグループ内の各キャッシュ装置は、図9に示すように、利用頻度順にデータ・ブロックを並べた(a)LRUリストと、キャッシュの空き領域ブロックをポインタ情報として持つ(c)フリーブロックリスト、さらに、(b)削除保留リストを有する。
【0071】
削除保留リストとは、LRUリストから排除、例えば削除対象ブロックとなったデータ・ブロックの内、一時的に削除保留状態に設定したデータ・ブロックを管理するリストである。LRUリストから排除するエントリに対応するデータ・ブロックを削除対象として、フリーブロックリストで管理するか、あるいは削除を保留すべきブロックとして、削除保留リストで管理するかの判定は、以下の処理手順によって行なう。
【0072】
削除保留状態に設定するか否かの判定は、以下の処理手順について説明する。判定対象コンテンツの先頭からのブロックオフセット番号をC、キャッシュグループを構成するキャッシュ装置数をN、キャッシュグループにおける自己に設定されたグループ・メンバー番号をmとしたときに、
(1) C mod Nを算出する。
(2) C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)として、
(3) V=mであれば、削除保留状態に設定する。
V≠mであれば、削除保留状態に設定せず削除する。
【0073】
上述の処理を、キャッシュグループを構成するキャッシュ装置の各々で実行することにより、先に図4を参照して説明したように、キャッシュ装置間で、重複の無いデータ・ブロックの格納構成が実現される。
【0074】
すなわち、m=1であるキャッシュ装置1(211)は、データ・ブロック1,5を削除保留状態として保持し、削除保留リストの管理ブロックとし、データ・ブロック2,3,4,6,7を削除対象としてフリーリストで管理する。m=2であるキャッシュ装置2(212)は、データ・ブロック2,6を削除保留状態として保持し、削除保留リストの管理ブロックとし、データ・ブロック1,3,4,5,7をフリーリストで管理する。m=3であるキャッシュ装置3(213)は、データ・ブロック3,7を削除保留状態として保持し、削除保留リストの管理ブロックとし、データ・ブロック1,2,4,5,6をフリーリストで管理する。m=4であるキャッシュ装置4(214)は、データ・ブロック4を削除保留状態として保持し、削除保留リストの管理ブロックとし、データ・ブロック1,2,3,5,6,7をフリーリストで管理する構成が実現される。
【0075】
上述の処理の詳細について、キャッシュグループ内の各キャッシュ装置の有するLRUリスト、削除保留リスト、フリーブロックリストの内部構造を参照しながら説明する。
【0076】
まず、LRUリストの構成について図10を参照して説明する。図10に示すように、各キャッシュ装置は、自己のキャッシュデータを格納する記憶手段としてのデータ格納領域320、およびデータ格納領域に格納したデータに対するリストとしてのLRUリスト310を有する。
【0077】
LRUリスト310は、各データ・ブロックに対応付けて生成される。ここでは、(a)〜(p)のリストデータ(エントリ)が各データ・ブロックに対応付けられて保持されている。LRUリストの内部構造は、図10に示すように、データ・ブロックヘのポインタ311、コンテンツ識別子312、ブロックオフセット313、LRUリストの前リストデータ(エントリ)のポインタ314、LRUリストの後続リストデータ(エントリ)のポインタ315を有する。
【0078】
データ・ブロックヘのポインタ311は、各リストデータに対応する実コンテンツデータ・ブロックの、データ格納領域320における格納アドレスを示す。コンテンツ識別子312は、例えばURL、または各データ・ブロックの識別データによって構成されるコンテンツIDである。ブロックオフセット313は、各コンテンツデータ・ブロックのコンテンツ先頭からのオフセットを示す。
【0079】
オフセットは、例えばデータ格納領域におけるアドレス差分を用いることも可能であるが、ここでは、ある大きさごとにデータを区切ったブロックという単位で管理することにすると、先頭からのブロックオフセット番号Cの値が入る。(a)のリストに対して設定されるブロックオフセットは1、(b)のリストに対して設定されるブロックオフセットは2となり、(p)のリストに対して設定されるブロックオフセットは、コンテンツデータのブロックサイズがNブロック分あるとすると、Nとなる。このようにブロックオフセットは、コンテンツ毎の、コンテンツ先頭からの位置識別データとしてのブロックオフセット番号Cとして設定される。
【0080】
LRUリストの前リストデータ(エントリ)のポインタ314、LRUリスト後リストデータ(エントリ)のポインタ315は、それぞれ、リストの前後のエントリに対するポインタを示すデータである。従って、リスト先頭のリストデータ(a)の前リストデータのポインタはNULL、リスト最後尾のリストデータ(p)の後リストデータのポインタもNULLとして設定される。
【0081】
LRUリスト中の各エントリが持つデータ・ブロックへのポインタに対応するコンテンツの識別子および先頭からのブロックオフセット番号:Cは、このエントリ中のデータを読むことで簡単に知ることが出来る。
【0082】
次に、削除保留リストの構成について、図11を参照して説明する。削除保留リストとは、前述したように、LRUリストで削除対象ブロックとなったデータ・ブロックの内、一時的に削除保留状態に設定したデータ・ブロックを管理するリストである。
【0083】
図11に示すように、キャッシュ装置の保有する削除保留リスト330は、削除保留状態に設定したデータ・データ・ブロックに対応付けて生成される。ここでは、(a)〜(p)のリストデータ(エントリ)が削除保留状態に設定したデータ・データ・ブロックに対応付けられて保持されている。削除保留リストの内部構造は、図11に示すように、データ・ブロックヘのポインタ331、コンテンツ識別子332、ブロックオフセット333、設定されたキャッシュグループのグループ識別子(GP)334、削除保留リストの前リストデータ(エントリ)のポインタ335、削除保留リストの後続リストデータ(エントリ)のポインタ336を有する。
【0084】
キャッシュ装置の保有する削除保留リスト330の格納データは、先に説明したLRUリストの格納データにグループ識別子(GP)334を付加した構成となる。グループ識別子(GP)334は、キャッシュグループ作成時に設定されるキャッシュグループを識別するグループIDである。キャッシュグループを設定したキャッシュ装置によって設定され、キャッシュグループを構成する他のキャッシュ装置は、キャッシュグループを設定したキャッシュ装置から送信されるグループ設定情報により通知され、キャッシュグループ・テーブル(図8参照)に記録されたIDである。
【0085】
次に、フリーブロックリストの構成について、図12を参照して説明する。フリーブロックリストとは、前述したように、LRUリストで削除対象ブロックとなったデータ・ブロックの内、削除保留状態に設定されずに削除対象となったデータ・ブロック、および削除保留状態に一旦、設定されたものの、その後、削除対象となったデータ・ブロックに対応する管理リストである。
【0086】
図12に示すように、キャッシュ装置の保有するフリーブロックリスト350は、データ格納領域320のデータ格納ブロック中、上書き、消去可能なデータ・ブロックへのポインタ351を持ち、フリーブロックリストの前リストデータ(エントリ)のポインタ352、フリーブロックリストの後続リストデータ(エントリ)のポインタ353を有する。
【0087】
次に、キャッシュグループを構成する各キャッシュ装置において、新規入力データが発生し、データ・ブロックを削除保留リスト、あるいはフリーブロックリストの管理データに移行する際の処理手順について説明する。
【0088】
まず、キャッシュ装置は、LRUリストから処理対象とするデータ・ブロックに対応するエントリ(リストデータ)を抽出し、抽出したLRUリストのエントリからブロックオフセット番号:C(図10:ブロックオフセット313)を読み出す。
【0089】
次に、キャッシュ装置は、ブロックオフセット番号:Cの値に基づいて、上述した処理を実行する。すなわち、
(1) C mod Nを算出する。
(2) C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)、
として、
(3)V=mであれば、削除保留状態に設定、すなわち、
対応するデータ・ブロックの管理リストデータを削除保留リストに移動する。このデータ・ブロックは、データ格納領域において消去されずに保持される。
(3’)一方、V≠mであれば、削除保留状態に設定しない。すなわち、
対応するデータ・ブロックの管理リストデータをフリーブロックリストに移動する。このデータ・ブロックは、データ格納領域において消去、上書き可能ブロックとして設定されることになる。
【0090】
V=mである場合は、設定したキャッシュグループにおいて、自装置がそのデータ・ブロックを保留すべきであると判定し、LRUリストからの削除予定エントリを削除保留リストに移動し、コンテンツデータ・ブロックを削除することなく、メモリに残し、削除保留リストでの管理を実行する。また、V≠mの場合は、設定したキャッシュグループにおいて、自装置がデータ・ブロックを保留する必要がない、すなわち、そのデータ・ブロックは、他のグループ・メンバーにおいて保持すべきデータ・ブロックであると判定し、LRUリストからの削除予定エントリをフリーブロックリストに移動して、対応データ・ブロックを削除可能状態とするものである。なお、削除されたデータ・ブロックは、キャッシュグループの他のメンバーが保持しており、これを取得して端末に送信可能となる。この処理については後述する。
【0091】
リストに対するエントリの移動は、図9に示す処理となる。例えばキャッシュ装置1において、新規データ・ブロックの書き込み要求があると、(c)フリーブロックリストの先頭エントリ271に設定されたデータ・ブロック・ポインタに対応するデータ格納領域のデータ記憶領域に新規データ・ブロックが書き込まれ、書き込まれたデータ・ブロックに関する情報は、図10のLRUリストの先頭エントリ272に移される。
【0092】
その結果、もしLRUリストの長さが許容リスト長を超えることになった場合は、LRUリストの末尾のエントリ273が、削除保留リストあるいは、フリーブロックリストに移動することになる。どちらに移動するかの判定は、前述の(1)〜(3)に示すC mod Nの算出、Vの値の判定に従う。
【0093】
上述した判定処理の結果、LRUリストの末尾のエントリ273を削除保留リストに移動すると決定した場合は、LRUリストの末尾のエントリ273が削除保留リストの末尾のエントリ274として設定される。また、上述した判定処理の結果、フリーブロックリストに移動すると決定した場合は、LRUリストの末尾のエントリ273がフリーブロックリストの末尾のエントリ275として設定される。
【0094】
また、削除保留リストに新たなエントリが加わり、削除保留リストが予め定められたリスト長を超えることとなった場合は、削除保留リストの先頭のエントリ276が、フリーブロックリストの末尾のエントリ275として設定される。
【0095】
なお、フリーブロックリストに対応して確保すべきバッファ量が、予め定められており、これが、新規データの格納により不足することとなった場合は、LRUリストあるいは削除保留リストからのフリーブロックリストへの移動、すなわちデータ・ブロックの削除によるバッファ量確保処理が実行される。
【0096】
フリーブロックリストへ移動されたエントリの指定するデータ・ブロック・ポインタの指定するメモリ領域は、新たな入力データの書き込みに適用され、データ・ブロックの内容が捨てられることになる。
【0097】
[キャッシュグループ形成およびデータ管理処理]
次に、上述したキャッシュグループにおけるグループ形成、データ管理の手順について、フローチャートおよびシーケンス図を参照して説明する。
【0098】
まず、キャッシュグループの生成処理、データ管理手順について、図13および図14を参照して説明する。
【0099】
キャッシュグループは、自己のキャッシュ装置に格納したコンテンツのデータ・ブロックをLRUリストから削除保留リストによる管理に移動して、グループでの共同管理を行なう場合に生成される。図13のフローに従って、キャッシュグループの生成処理手順について説明する。
【0100】
まず、ネットワーク接続されたキャッシュ装置は、事前準備処理として、キャッシュグループのメンバー候補の登録を行なう。これは、図13におけるステップS101〜S104のステップである。
【0101】
ステップS101において、キャッシュグループを組む可能性のあるキャッシュ装置情報を登録する。これは、例えばオペレータが選択した1以上のキャッシュ装置のホスト名、IPアドレス、ICPポート番号の登録情報である。
【0102】
次に、これらの登録情報から実際にキャッシュグループを設定可能なキャッシュ装置を判定する。これは、ステップS101において登録された各キャッシュ装置にpingなどを使ってキャッシュ装置間のRTT(Round TripTime)を測定し、RTTが許容時間範囲内にある複数のキャッシュ装置を選択するものであり、ステップS102のRTT測定処理、ステップS103の判定処理によって、あらかじめ定めた閾値以下のRTTを持つキャッシュ装置をステップS104において、「近隣のキャッシュ装置」として設定する。
【0103】
キャッシュ装置は、「近隣のキャッシュ装置」として設定されたキャッシュ装置リストを保持する。リストは、先に図6を参照して説明したように、近隣のキャッシュ装置に関するホスト名、IPアドレス、ICPポート番号を保存したリストである。
【0104】
図13のステップS102〜S104のステップに対応するデータ通信シーケンスが図14の[処理P]に相当する。図14のシーケンス図においては、キャッシュ装置Aが処理主体となるキャッシュ装置であり、キャッシュ装置B,C,Dが図13のステップS101において登録されたキャッシュ装置に相当する。
【0105】
図14の[処理P]がRTT測定処理に相当する。キャッシュ装置Aは、キャッシュ装置B,C,Dに対して登録された各キャッシュ装置B,C,Dにpingなどを使ってキャッシュ装置間のRTT(Round Trip Time)を測定し、RTTが許容時間範囲内にある複数のキャッシュ装置を選択する。
【0106】
図13のフローに戻り、説明を続ける。図6に示す近隣のキャッシュ装置リストが生成されると、キャッシュ装置は、ステップS105において、所定時間毎に、キャッシュ・リプレースメントにより、自己の保有するLRUリストから削除すべきコンテンツデータ・ブロックが発生したか否かの判定を実行する。
【0107】
LRUリストから削除すべきデータ・ブロックがあると判定すると、ステップS106に進み、LRUリスト中の削除予定のエントリを抽出し、ステップS107において、そのエントリに対応するコンテンツがキャッシュグループ・テーブルに登録ずみのコンテンツであるかを判定する。
【0108】
キャッシュグループ・テーブルは、先に、図8を参照して説明したように、設定キャッシュグループにおいて共同管理するコンテンツの識別子、キャッシュグループの構成キャッシュ装置数[N]、キャッシュグループの識別子(ID)、およびキャッシュグループのメンバーリストとして、メンバー番号とIPアドレスの対応データとが格納されたテーブルであり、キャッシュグループ・テーブルに登録されたコンテンツは、設定されたキャッシュグループにおいて共同管理が実行されていることを示す。
【0109】
ステップS107において、LRUリストから削除予定のコンテンツがキャッシュグループ・テーブルに登録されている場合は、設定されたキャッシュグループにおいて共同管理が実行されているコンテンツであり、共同管理処理として、ステップS115以下の処理を実行することになる。この処理の詳細については、後段で説明する。
【0110】
ステップS107において、LRUリストから削除予定のコンテンツがキャッシュグループ・テーブルに登録されていない場合は、ステップS108以下において、LRUリストから削除予定のコンテンツに対応する新たなキャッシュグループを生成する。
【0111】
ステップS108では、先のステップS104で設定したRTTが閾値以下の近隣キャッシュ装置リスト(図6参照)に設定された各キャッシュ装置に対して、LRUリストから削除予定のコンテンツに関するキャッシュグループを組むことが可能か否かの問い合わせメッセージを送信する。
【0112】
この問い合わせメッセージは、LRUリストから削除予定のエントリに対応するコンテンツ保持の有無および、グループ参加可否についての問い合わせメッセージである。図14のシーケンス図では、[処理Q]のICP_OP_QUERYがこの問い合わせメッセージに相当する。
【0113】
図13のステップS109で、キャッシュ装置は、問い合わせメッセージに対する応答を待機し、ステップS110で応答が、グループ構成可(HIT)であるか否かを判定し、ステップS111において、グループ構成可(HIT)であるキャッシュ装置について、のデータをキャッシュグループ・テーブル(図8参照)に登録する。ステップS112では、全てのグループ・メンバー候補(図6の近隣キャッシュ装置リストに登録されたキャッシュ装置)に対する返事の確認が終了したかを判定して、キャッシュグループの仮設定を終える。
【0114】
図14のシーケンス図では、[処理Q]のICP_OP_QUERY(問い合わせメッセージ)に対して、グループ構成可(HIT)のキャッシュ装置B,Cが、ICPメッセージのICP_OP_HITをキャッシュ装置Aに対する応答メッセージとして送信し、グループ構成不可(MISS)のキャッシュ装置Dが、ICPメッセージのICP_OP_MISSをキャッシュ装置Aに対する応答メッセージとして送信している。この場合、キャッシュ装置Aは、キャッシュ装置B,Cと、キャッシュグループを構成する。
【0115】
図13の処理フローのステップS113では、キャッシュグループ設定可能な数のキャッシュ装置からのHIT応答が取得できたかを判定する。例えば1以上のキャッシュ装置からHIT応答が得られればキャッシュグループ設定可能と判定することができる。キャッシュグループ設定可能な数のキャッシュ装置のHIT応答がなかった場合は、ステップS118に進み、キャッシュグループは設定せずにLRUリストからの削除エントリをフリーブロックリストに移動する。この場合は、当エントリに対応するコンテンツのキャッシュグループでの共同管理は実行されない。
【0116】
ステップS113で、キャッシュグループ設定可能な数のキャッシュ装置からのHIT応答が取得できたと判定された場合は、ステップS114において、HIT応答を返したキャッシュ装置であり、キャッシュグループ・テーブル(図8参照)にキャッシュグループのメンバーとして登録されたキャッシュ装置に対してグループ設定情報を送信する。
【0117】
グループ設定情報は、キャッシュグループを構成するキャッシュ装置数(N),当該キャッシュ装置のキャッシュグループを構成するキャッシュ装置(メンバー)識別子としてのグループ・メンバー番号(m)、キャッシュグループでの処理対象コンテンツデータ識別子などの情報である。グループ・メンバー番号(m)は、キャッシュ装置のIPアドレスに対応して設定され、キャッシュグループを構成する全てのキャッシュ装置(メンバー)は、キャッシュグループを構成する他の全てのキャッシュ装置(メンバー)識別子としてのグループ・メンバー番号(m)とIPアドレスの対応情報を取得する。
【0118】
図14のシーケンス図において、[処理R]のICP_OP_NOTIFYが、グループ設定情報の送信に相当し、この送信データフォーマットは、例えば先に図7を参照して説明したフォーマットに従ったものとなる。グループ設定情報を伝達したキャッシュ装置、およびグループ設定情報を伝達された、キャッシュグループに属するキャッシュ装置は、図8に示すようなグループ設定情報格納したキャッシュグループ・テーブルを自己の管理情報としてメモリに格納する。
【0119】
次にステップS115以下が、設定されたキャッシュグループにおけるコンテンツの共同管理処理として実行されるLRUリストからの移動処理である。
【0120】
キャッシュ装置は、ステップS115において、LRUリストからの削除予定エントリについて、ブロックオフセット番号:C、キャッシュグループを構成するキャッシュ装置数:N、キャッシュグループにおける自己に設定されたグループ・メンバー番号:mの各値に基づいて、
(1) C mod Nを算出し、
(2) C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)として、
(3)V=mであるか否かを判定する。
【0121】
V=mである場合は、設定したキャッシュグループにおいて、自装置がコンテンツを保留すべきであると判定し、ステップS116において、LRUリストからの削除予定エントリを削除保留リストに移動する。すなわち、コンテンツデータ・ブロックを削除することなく、メモリに残し、削除保留リストでの管理を実行する。
【0122】
V=mでない場合は、設定したキャッシュグループにおいて、自装置がコンテンツを保留する必要がない、すなわち、他のグループ・メンバーにおいて保持すべきデータ・ブロックであると判定し、ステップS118において、LRUリストからの削除予定エントリをフリーブロックリストに移動する。この場合は、対応データ・ブロックは、削除されることになる。削除された場合でも、キャッシュグループの他のメンバーが保持しており、これを取得して端末に送信可能となる。この処理については後述する。
【0123】
さらに、ステップS116におけるLRUリストから削除保留リストに対するエントリ移動により、削除保留リストのリスト長が許容値を超えることとなったとき(S117でYes)は、ステップS118において、削除保留リストのエントリをフリーブロックリストに移動する処理を実行する。
【0124】
次に、図15乃至図17を参照して、キャッシュグループによるコンテンツ管理を実行しているキャッシュ装置に、端末からのコンテンツ要求が発生した場合の処理について説明する。
【0125】
図15のステップS201において、キャッシュ装置が端末からコンテンツ取得要求を受信すると、キャッシュ装置は、ステップS202において、要求コンテンツデータがキャッシュグループ・テーブル(図8参照)に登録されたコンテンツであるか否かを判定する。登録されていない場合は、グループ管理されていないコンテンツであり、通常の処理、すなわち自装置に格納されている場合は、コンテンツを取得して端末に送信し、自装置に格納されていない場合は、コンテンツをコンテンツサーバーから取得して端末に送信する。
【0126】
要求コンテンツデータがキャッシュグループ・テーブル(図8参照)に登録されたコンテンツである場合は、グループ管理されているコンテンツであり、ステップS203で、キャッシュグループ・テーブル(図8参照)からキャッシュグループの構成要素数Nと、自身のメンバー番号m1を取得する。
【0127】
ステップS204において、端末からのコンテンツ取得要求中に含まれるコンテンツのオフセット情報に基づいて、ブロックオフセットを算出して、ブロックオフセット番号:Cを取得する。次に、ステップS205において、キャッシュグループを構成するキャッシュ装置数:N、キャッシュグループにおける自己に設定されたグループ・メンバー番号:m1の各値に基づいて、
(1) C mod Nを算出し、
(2) C mod N=0の場合はV=N、
C mod N≠0の場合はV=(C mod N)として、
(3)V=m1であるか否かを判定する。
【0128】
V=m1である場合は、要求されたコンテンツが自装置内に格納されていることになり、ステップS206に進み、LRUリストまたは削除保留リストのエントリに基づいて要求コンテンツ名、ブロックオフセット番号から自装置内のデータ格納領域情報を取得し、ステップS207において、データの読み出しを実行し、正常読み出し完了を確認(S208)し、ステップS209において、グループID(Gp)=0であるか否かを判定する。
【0129】
グループID(Gp)=0は、設定されたキャッシュグループのメンバー離脱が発生して、キャッシュグループの維持を行なわない際にキャッシュ装置が、キャッシュグループ・テーブルのグループID(Gp)を書き換えることにより設定される。グループID(Gp)が、0の場合は、キャッシュグループから離脱したメンバーが多くなってグループを構成できないことを示すエントリであるため、ステップS210において、エントリを削除保留リストではなくLRUリストの先頭に移動させる。
【0130】
また、グループID(Gp)=0でない場合は、ステップS211において、データ・ブロックがアクセスをされたことから、削除保留リストの先頭に該当のエントリを移す。
【0131】
さらに、ステップS212で、読み出しデータを要求端末に送信し、指定サイズデータの送信の完了を確認(S213)し、未終了である場合は、ステップS214において、ブロックオフセット番号:Cの更新処理(C=C+1)を実行して、ステップS205以下の処理を繰り返し実行して端末に対するコンテンツ送信を実行する。
【0132】
ステップS205において、キャッシュグループを構成するキャッシュ装置数:N、キャッシュグループにおける自己に設定されたグループ・メンバー番号:m1の各値に基づく、C mod N算出、V=m1であるか否かの判定において、V=m1でない場合は、要求されたコンテンツが自装置内に格納されていないことになり、ステップS215に進み、算出したVの値(m2とする)に対応するグループ・メンバーをキャッシュグループ・テーブル(図8参照)から取得する。
【0133】
ステップS216において、算出したVの値(m2とする)に対応するグループ・メンバーのIPアドレスをキャッシュグループ・テーブル(図8参照)から取得する。ステップS217では、取得IPアドレスが0.0.0.0か否かを判定する。IPアドレスが0.0.0.0の場合は、キャッシュグループを離脱したメンバーのエントリを示す。この場合は、上流のキャッシュ装置またはコンテンツサーバーに要求をリダイレクトして発行(S221)する。
【0134】
ステップS217の判定において、取得IPアドレスが0.0.0.0でない場合は、キャッシュグループのメンバーのエントリを示す。ステップS218に進み、コンテンツの読み出し要求(リダイレクト要求)をキャッシュグループのメンバー(m2)に対応するIPアドレスに基づいて実行する。
【0135】
リダイレクト要求を受信したキャッシュ装置における処理について、図16を参照して説明する。これは、キャッシュグループを構成するキャッシュ装置が、他のグループ・メンバーからのコンテンツ読み出し要求(リダイレクト要求)に応答する処理として実行される処理である。
【0136】
ステップS301において、コンテンツ読み出し要求(リダイレクト要求)を受信すると、ステップS302に進み、LRUリストまたは削除保留リストのエントリに基づいて要求コンテンツ名、ブロックオフセット番号から自装置内のデータ格納領域情報を取得し、ステップS303において、データの有無、エラー状態を判定し、消去されているかエラーである場合は、ステップS306において、コンテンツ読み出し要求(リダイレクト要求)を送信してきたキャッシュ装置に対してエラー提示コードを応答送信する。
【0137】
ステップS303において、データの有無、エラー状態を判定し、データが存在し、読み出し可能であると判定されると、ステップS304において、指定サイズのデータの読み出しを実行し、ステップS305で、読み出しデータを要求キャッシュ装置に、正常終了提示コードとともに送信する。
【0138】
図15の処理フローに戻り、説明を続ける。ステップS219またはステップS222において、リダイレクト要求先からの応答を受信すると、ステップS220またはステップS223において、正常読み出しがなされたか否かを判定し、Yesの場合は、ステップS209に進み、以下の処理、すなわち、リストエントリの移動、取得コンテンツの端末に対する送信等を実行する。なお、ステップS208、S220,S223において、データの正常読み出しに失敗した場合は、異常終了として処理を終了する。
【0139】
なお、異常終了として処理を終了する以前に、エラー応答受信後、リダイレクト先として上流のキャッシュ装置(サーバーへの経路途中にある、サーバーにより近いキャッシュ装置)がある場合は、上流の装置にリダイレクトし、無い場合は、直接コンテンツサーバーに要求をリダイレクトして、目的とするデータを得る処理を実行してもよい。
【0140】
上記処理における各キャッシュ装置間のデータ通信シーケンスの概要を、図17を参照して説明する。なお、図17において、左端から、
コンテンツ取得要求を送信する端末、
端末からのコンテンツ取得要求を受信するキャッシュ装置A
キュッシュ装置Aとキャッシュグループを構成するキャッシュ装置1
キュッシュ装置Aとキャッシュグループを構成するキャッシュ装置2
キュッシュ装置Aの上流キャシュ装置またはサーバー
である。
【0141】
[処理S]は、端末からの要求コンテンツデータを、キャッシュ装置Aが、キャッシュグループ・メンバーとしてのキャッシュ装置1,2からそれぞれ取得して、端末に送信する処理シーケンスであり、URLを指定したコンテンツ取得要求(HTTP GET (URL))を受信したキャッシュ装置が上述のC mod N算出、V=m1の算出に基づいて、コンテンツの対応データ・ブロックを保持していると予測されるキャッシュ装置1,2に対してコンテンツ取得要求(HTTP GET (URL) Range:bytes=aa−bb)を送信し、コンテンツのデータ・ブロックを取得(HTTP206)し、キャッシュ装置Aは、取得コンテンツを端末に送信(HTTP OK)する処理シーケンスである。
【0142】
[処理T]は、端末からの要求コンテンツデータを、キャッシュ装置Aが、キャッシュグループ・メンバーとしてのキャッシュ装置1,2からそれぞれ取得できなかった場合の処理シーケンスであり、URLを指定したコンテンツ取得要求(HTTP GET (URL))を受信したキャッシュ装置が上述のC modN算出、V=m1の算出に基づいて、コンテンツの対応データ・ブロックを保持していると予測されるキャッシュ装置1に対してコンテンツ取得要求(HTTP GET (URL) Range:bytes=aa−bb)を送信し、コンテンツのデータ・ブロックが取得できない旨の応答(HTTP404(Not Found)または、HTTP410(Gone))を受信する。
【0143】
さらに、キャッシュ装置Aは、キュッシュ装置Aの上流キャシュ装置またはサーバーに、コンテンツ取得要求(HTTP GET (URL) Range:bytes=aa−bb)を送信し、コンテンツのデータ・ブロックを取得(HTTP206)し、キャッシュ装置Aは、取得コンテンツを端末に送信(HTTPOK及び取得したコンテンツデータの送信)をする。
【0144】
なお、[処理T]のように、キャッシュグループの構成メンバーから予定のコンテンツが取得できなかった場合は、キャッシュグループの構成メンバーとして存続する意味がないので、グループ解消を行なう。この処理が[処理U]である。
【0145】
グループ解消処理は、キャッシュAから、グループ解消通知(ICP OP NOTIFY)を、グループを構成する各キャッシュ装置1,2に送信することによって行なわれる。キャッシュ装置A,1,2はその後、キャッシュグループ・テーブルから対応するグループ情報を削除する。
【0146】
なお、上述した例では、HTTPプロトコルを使ったリダイレクト手順を書いているが、FTPやRTSPなどの別のプロトコルであってもかまわない。また、キャッシュ装置間の通信プロトコルについても、ICPだけに限定する必要はなく、一般的に使われる装置間の通信手段を拡張することでも実現可能である。また、キャッシュ間通信プロトコルも、ICPだけには限らない。
【0147】
キャッシュグループを構成するグループ・メンバーm(m=1,2,...,N: Nはグループ構成メンバー数)がキャッシュグループから離脱することになるケースを以下に説明する。
【0148】
キャッシュグループを組むと宣言したコンテンツに関連するデータ・ブロックの全体数をAとしたときに、グループ・メンバーとして保持しておくべきデータ・ブロック(V=mのデータ・ブロック)の総数Sは、A mod Nが零の場合はV=N,非零の場合はV=(A mod N)としてm≦VのときS=(A+N−1)/N,m>VのときS=A/Nと計算される。
【0149】
このSの分のデータ・ブロックを永久に保持できればよいが、記憶資源は有限であるため、キャッシュ・リプレースメントが進むとグループ・メンバーとして保持しておくべきデータ・ブロックであったとしても、削除保留リストから削除されてしまうケースもある。このようにグループ・メンバーとして保持しておくべきデータ・ブロックも削除保留リストからも削除されてしまうような場合において、グループ・メンバーとして保持すべきデータ・ブロックにもかかわらず削除してしまったデータ・ブロックの数をDとするとき、グループ離脱に至る閾値T(%)として、グループ・メンバーとして保持すべきデータ・ブロックの残存率:(S−D)/S×100(%)を算出し、
データ・ブロックの残存率と閾値Tとの関係が、
(S−D)/S×100(%)<T(0<=T<100)となった場合に、そのコンテンツに関しキャッシュグループを組んでいるキャッシュ・メンバーに対して、グループ離脱を宣言する構成が可能である。
【0150】
キャッシュグループからの離脱を検知したときは、自分のキャッシュグループ・テーブルから該当するコンテンツに対応するエントリを削除すると共に、図17の[処理U]に示すように、これを知らせるフラグ(説明のための例として0x10000000(ICP_FLAG_GROUP_DESERTED))を立てたICP_OP_NOTIFYメッセージを、該当するコンテンツについてキャッシュグループを組んでいる全グループ・メンバーに送る。
【0151】
さらに、各キャッシュ装置にあるキャッシュグループ・テーブルから、通知されたキャッシュ装置がキャッシュグループから離脱したことがわかるように、対応する部分のIPアドレスを≡0.0.0.0≡のように書き換える。
【0152】
ただし、メンバー数などの他の情報は、離脱メンバーが無い場合とのアルゴリズムの互換を保つ目的もあり、そのままの情報として保持してもよい。もし、離脱グループ・メンバーが保持しているべきデータ・ブロックをアクセスしたい場合には、オリジナルデータを持っているサーバーまたは上流のキャッシュ装置にアクセスすることになる。
【0153】
キャッシュグループを構成するメンバー数が、離脱メンバーを除いた実質数で1となった場合、キャッシュグループを組めないことになるため、グループを完全に消去する意味で、残った1台のキャッシュ装置のキャッシュグループ・テーブルから該当するコンテンツに対応するエントリを削除し、削除保留リストの対応するコンテンツに属するデータ・ブロックの“Gp”の項目を初期化(ゼロクリア)する。
【0154】
[多段構成の削除保留リスト]
次に、キャッシュ装置においてデータ管理リストとして生成する削除保留リストを多段構成とした実施例について説明する。
【0155】
上述した実施例において、キャッシュ装置は、図9を参照して説明したように、LRUリストと、キャッシュの空き領域ブロックを示すフリーブロックリスト、さらに、LRUリストで削除対象ブロックとなったデータ・ブロックの内、一時的に削除保留状態に設定したデータ・ブロックを管理するリストとしての削除保留リストを有しており、各リストは、先頭エントリからシーケンシャルに並べられたエントリを有する構成であった。
【0156】
本実施例のキャッシュ装置は、図18に示すように、複数の削除保留リストを有する。キャッシュ装置は、利用頻度順にエントリを並べた(a)LRUリスト、キャッシュグループを構成したコンテンツのデータ・ブロックに対応して設定したエントリを格納した複数の(b1)(b2)削除保留リスト、空きブロック領域をポインタ情報として有する(c)フリーブロックリストを有する。
【0157】
複数の削除保留リスト(b1)(b2)は、コンテンツデータ・ブロックの削除保留優先度の高低に基づいて振り分けられてエントリが各リストに格納される。ここでは、2つの削除保留リスト(b1)(b2)のうち、(b1)のリストに保存優先度の高いコンテンツに対応するエントリを格納し、(b2)のリストに保存優先度の低いコンテンツに対応するエントリを格納する例を示す。本例では、2つの削除保留リストの設定例を示しているが、保存優先度順に3以上の削除保留リストを設定する構成としてもよい。
【0158】
なお、データ・ブロックの重要性に応じた保存優先度の判定の態様は、様々な態様が可能である。例えば、新規に届いたコンテンツに対応するデータ・ブロックほど重要とする設定、あるいは、コンテンツデータの先頭部分やシーンチェンジ部分以降の特定区間だけは重要度の高いデータ・ブロックとして設定するなどの構成がある。なお、コンテンツデータの先頭部分やシーンチェンジ部分の検出は、既存のソフトウェアによる処理が可能である。
【0159】
リストに対するエントリの移動について説明する。例えばキャッシュ装置において、新規データ・ブロックの書き込み要求があると、(c)フリーブロックリストの先頭エントリ501に設定されたデータ・ブロック・ポインタに対応するデータ格納領域のデータ記憶領域に新規データ・ブロックが書き込まれ、書き込まれたデータ・ブロックに関する情報は、図10のLRUリストの先頭エントリ502に移される。
【0160】
その結果、もしLRUリストの長さが許容リスト長を超えることになった場合は、LRUリストの末尾のエントリ503が、削除保留リスト(b1)または(b2)あるいは、フリーブロックリスト(c)に移動することになる。削除保留リストかフリーブロックリストのどちらに移動するかの判定は、前述のC mod Nの算出、Vの値によるエントリに対応するコンテンツデータ・ブロックの残留、削除判定に基づくことになる。
【0161】
上述した判定処理の結果、エントリを削除保留リストに移動すると決定した場合は、保存の重要度に応じて、重要度の高いデータ・ブロックに対するエントリは、削除保留リスト(b1)の末尾のエントリ504として設定し、重要度の低いデータ・ブロックに対するエントリは、削除保留リスト(b2)の末尾のエントリ505として設定する。
【0162】
また、削除保留リスト(b1)に新たなエントリが加わり、削除保留リスト(b1)が予め定められたリスト長を超えることとなった場合は、削除保留リスト(b1)の先頭のエントリ511が、削除保留リスト(b2)の末尾のエントリ505として設定される。
【0163】
同様に、削除保留リスト(b2)に新たなエントリが加わり、削除保留リスト(b2)が予め定められたリスト長を超えることとなった場合は、削除保留リスト(b2)の先頭のエントリ512が、フリーブロックリストの末尾のエントリ521として設定される。
【0164】
なお、フリーブロックリストに対応して確保すべきバッファ量が、予め定められており、これが、新規データの格納により不足することとなった場合は、LRUリストあるいは削除保留リスト(b2)からのフリーブロックリストへの移動、すなわちデータ・ブロックの削除によるバッファ量確保処理が実行される。
【0165】
フリーブロックリストへ移動されたエントリの指定するデータ・ブロック・ポインタの指定するメモリ領域は、新たな入力データの書き込みに適用され、データ・ブロックの内容が捨てられることになる。
【0166】
多段構成とした場合の削除保留リストの構成について、図19を参照して説明する。削除保留リストとは、前述したように、LRUリストで削除対象ブロックとなったデータ・ブロックの内、一時的に削除保留状態に設定したデータ・ブロックを管理するリストである。
【0167】
図19は、図18の削除保留リスト(b1)または(b2)のいずれかに対応する削除保留リストの構成を示している。図19のように、キャッシュ装置の保有する削除保留リスト630は、削除保留状態に設定したデータ・データ・ブロックに対応付けて生成される。ここでは、(a)〜(p)のリストデータ(エントリ)が削除保留状態に設定したデータ・データ・ブロックに対応付けられて保持されている。削除保留リストの内部構造は、図19に示すように、データ・ブロックヘのポインタ631、コンテンツ識別子632、ブロックオフセット633、設定されたキャッシュグループのグループ識別子(GP)634、さらに、削除保留リストの重要度指数値(Priority)635、および削除保留リストの前リストデータ(エントリ)のポインタ636、削除保留リストの後続リストデータ(エントリ)のポインタ637を有する。多段構成の削除保留リスト630の格納データには、削除保留リストの重要度指数値(Priority)635が付加されることになる。
【0168】
次に、多段構成の削除保留リストを持キャッシュ装置におけるキャッシュグループの生成処理、データ管理手順について、図20を参照して説明する。
【0169】
図20において、ステップS501乃至ステップS515は、前述の図13を参照して説明した処理フローのステップS101乃至ステップS115と同様の処理であるので、説明を省略する。
【0170】
図20のステップS515において、LRUリストからの削除予定エントリについて、ブロックオフセット番号:C、キャッシュグループを構成するキャッシュ装置数:N、キャッシュグループにおける自己に設定されたグループ・メンバー番号:mの各値に基づいて、 C mod Nを算出し、さらに、 C mod N=0の場合はV=N、C mod N≠0の場合はV=(C mod N)として、V=mであるか否かを判定した結果、V≠mである場合は、ステップS523に進みそのデータ・ブロックをフリーリストで管理する。V=mである場合は、そのデータ・ブロックを削除保留として、自装置で管理することになる。
【0171】
この場合、ステップS516において、削除保留対象データ・ブロックの保持優先度の判定を実行する。この保持優先度判定は、キャッシュ装置において予め定められた基準、例えば、前述したように、新規に届いたコンテンツに対応するデータ・ブロックを重要、あるいは、コンテンツデータの先頭部分やシーンチェンジ部分以降の特定区間を重要とした設定情報に基づいて判定する。
【0172】
保存優先度の高いデータ・ブロックであると判定した場合は、ステップS517に進み、保存優先度の高い削除保留リスト(図18の(b1))にエントリを移動する。保存優先度の低いデータ・ブロックであると判定した場合は、ステップS520に進み、保存優先度の低い削除保留リスト(図18の(b2))にエントリを移動する。
【0173】
さらに、ステップS518において、保存優先度の高い削除保留リストから保存優先度の低い削除保留リストにエントリ移動が必要であるか否かを判定し、必要があると判定されると、ステップS519において、保存優先度の高い削除保留リストから保存優先度の低い削除保留リストにエントリを移動する。
【0174】
ステップS521において、保存優先度の低い削除保留リストからフリーブロックリストにエントリ移動が必要であるか否かを判定し、必要があると判定されると、ステップS522において、保存優先度の低い削除保留リストからフリーブロックリストにエントリを移動する。
【0175】
以上の処理に従って、多段構成を持つ削除保留リストを適用したデータ管理が実行される。
【0176】
[キャッシュ装置の構成]
次に、上述の実施例において説明したキャッシュ装置のハード構成例について説明する。
【0177】
図21に、制御手段としてCPU(Central Processing Unit)を備えたキャッシュ装置例を示す。なお、図21に示す構成例は1つの例であり、キャッシュ装置は、ここに示す構成以外のハードウェアを持つことも可能である。
【0178】
図21に示す構成について説明する。CPU(Central Processing Unit)701は、各種実行プログラム、OS(Operating System)を実行するプロセッサである。ROM(Read-Only-Memory)702は、CPU701が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。RAM(Random Access Memory)703は、CPU701の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。また、近隣キャッシュ装置リスト、キャッシュグループ・テーブルの格納領域として使用される。
【0179】
CPU701,ROM702,RAM703はCPUバス711によってデータ転送可能に接続され、バスブリッジ704を介してI/Oバス712に接続される。I/Oバス712には、ディスクインタフェース705、ネットワークインタフェース707,708が接続される。
【0180】
ディスクインタフェース705は、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク等のディスク706に対するインタフェースであり、ディスク706には、キャッシュデータガ格納され、CPU701の制御の下に必要データが取得、格納される。
【0181】
ネットワークインタフェース707は、外部ネットワークインタフェースであり、ネットワーク接続されたサーバー、他のキャッシュ装置とのデータ送受信用のインタフェースである。ネットワークインタフェース708は、内部ネットワークインタフェースであり、ネットワーク接続された端末とのデータ送受信用のインタフェースである。
【0182】
なお、明細書中において説明した各処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、又は各種のプログラムをインストールすることで各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、フレキシブルディスクやCD−ROM等のプログラム読み取り可能な記録媒体にプログラムを格納して提供してもよいし、インターネットなどの通信網を介してプログラムをダウンロードしてもよい。
【0183】
具体的には、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0184】
また、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0185】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0186】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0187】
【発明の効果】
以上、説明してきたように、本発明の構成によれば、ネットワーク接続されたキャッシュ装置におけるキャッシュ・リプレースメント処理において、削除保留ブロックに関するリストを保持して、キャッシュグループ内のキャッシュ装置ごとに各々削除保留されるデータ・ブロックが異なるようにデータ管理を行なう構成としたので、各キャッシュ装置が単独でキャッシュ・リプレースメントの管理をしている場合に比べて効率的な記憶領域の利用が図れ、また、端末からのデータ要求に応じて複数のキャッシュ装置に記憶したデータ・ブロックを集めて送信することが可能となり、ネットワークトラフィックの軽減、キャッシュ装置のヒット率の向上が実現される。
【0188】
さらに、本発明の多段の削除保留リストを適用したキャッシュ装置構成によれば、保持重要度の高いデータが削除されずにキャッシュに残る可能性が高くなるため、さらに、キャッシュヒット率の向上を達成することが可能となる。
【図面の簡単な説明】
【図1】従来のLRUリストおよびフリーブロックリストによるキャッシュデータの管理構成について説明する図である。
【図2】本発明のキャッシュ装置が適用可能なネットワーク構成について説明する図である。
【図3】本発明のキャッシュ装置におけるデータ管理構成について説明する図である。
【図4】本発明のキャッシュ装置におけるデータ管理構成について説明する図である。
【図5】本発明のキャッシュ装置間における送受信メッセージのフォーマット例について説明する図である。
【図6】本発明のキャッシュ装置における近隣キャッシュ装置リストの構成データについて説明する図である。
【図7】本発明のキャッシュ装置間における送受信メッセージとしてのグループ設定情報メッセージのフォーマット例について説明する図である。
【図8】本発明のキャッシュ装置において格納するキャッシュグループ・テーブルのデータ例について説明する図である。
【図9】本発明のキャッシュ装置においてデータ管理に利用するリストについて説明する図である。
【図10】本発明のキャッシュ装置においてデータ管理に利用するLRUリストについて説明する図である。
【図11】本発明のキャッシュ装置においてデータ管理に利用する削除保留リストについて説明する図である。
【図12】本発明のキャッシュ装置においてデータ管理に利用するフリーブロックリストについて説明する図である。
【図13】本発明のキャッシュ装置におけるグループ形成、データ管理処理について説明するフロー図である。
【図14】本発明のキャッシュ装置におけるグループ形成、データ管理処理に際して送受信されるメッセージについて説明するシーケンス図である。
【図15】本発明のキャッシュ装置におけるデータ取得送信処理について説明するフロー図である。
【図16】本発明のキャッシュ装置におけるリダイレクト処理によるデータ取得送信処理について説明するフロー図である。
【図17】本発明のキャッシュ装置におけるデータ取得送信処理に際して送受信されるメッセージについて説明するシーケンス図である。
【図18】本発明のキャッシュ装置において多段構成の削除保留リストを持つ構成を説明する図である。
【図19】本発明のキャッシュ装置における多段構成の削除保留リスト構成について説明する図である。
【図20】本発明の多段構成の削除保留リストを持つキャッシュ装置におけるグループ形成、データ管理処理について説明するフロー図である。
【図21】本発明のキャッシュ装置におけるハード構成例を示す図である。
【符号の説明】
201 コンテンツサーバー
202 ネットワーク
210 キャッシュグループ
211,212,213,214 キャッシュ装置
221,231,251 端末
310 LRUリスト
320 データ格納領域
330 削除保留リスト
350 フリーブロックリスト
630 削除保留リスト
701 CPU
702 ROM
703 RAM
704 バスブリッジ
705 ディスクインタフェース
706 ディスク
707 ネットワークインタフェース
708 ネットワークインタフェース
711 CPUバス
712 I/Oバス

Claims (15)

  1. ネットワークを介して受信したデータをキャッシュデータとして格納し、端末からのデータ要求に応じてキャッシュデータを取得して端末に送信するキャッシュ装置であり、
    自キャッシュ装置およびネットワークに接続された他のキャッシュ装置によって構成され、コンテンツを構成する複数のデータ・ブロックを分散格納してコンテンツの共同管理を行うキャッシュグループに関するグループ設定情報を格納したテーブルであり、キャッシュグループが共同管理するコンテンツの識別子と、キャッシュグループを構成するキャッシュ装置数:Nと、各キャッシュ装置に対応して設定されるグループ・メンバー番号:mを格納したキャッシュグループ・テーブルと、
    自キャッシュ装置に保持されたデータ・ブロックの管理データであるLRUリストから削除予定データ・ブロックを検索し、削除予定データ・ブロックが前記キャッシュグループにおける自己の記憶担当データである保留データ・ブロックであるか否かを前記キャッシュグループ・テーブルの格納パラメータを適用した算出式の算出結果に基づいて決定し、削除予定データ・ブロックが保留データ・ブロックである場合は削除せずに削除保留リストによる管理対象として自キャッシュ装置に保持し管理する処理を行う制御手段と、
    を有することを特徴とするキャッシュ装置。
  2. 記制御手段は、共同管理するコンテンツを構成する複数のデータ・ブロックから、自キャッシュ装置における記憶保持対象とする保留データ・ブロックの決定処理を、以下の処理、すなわち、
    判定対象データ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
    C mod Nを算出し、
    C mod N=0の場合はV=N、
    C mod N≠0の場合はV=(C mod N)として、
    V=mであるか否かを判定し、
    V=mである場合に、該データ・ブロックを保留データ・ブロックとして決定する処理、
    を実行する構成であることを特徴とする請求項1に記載のキャッシュ装置。
  3. 前記制御手段は、
    記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、前記キャッシュグループによる共同管理が可能か否かをキャッシュ装置間のメッセージ送受信により判定し、
    共同管理可能であると判定した場合に、前記キャッシュグループ・テーブルを生成する構成であることを特徴とする請求項1に記載のキャッシュ装置。
  4. 前記制御手段は、
    記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、
    前記キャッシュグループ・テーブルの格納情報に基づいて、コンテンツを構成する複数のデータ・ブロック中から、自キャッシュ装置における記憶保持データとしての保留データ・ブロックを決定し、決定した保留データ・ブロック以外のデータ・ブロックについては、削除の許容されるデータ・ブロック管理リストとしてのフリーブロックリストにより管理する構成であることを特徴とする請求項1に記載のキャッシュ装置。
  5. 前記削除保留リストは、データ・ブロックの保存優先度に応じた複数のリストによって構成され、
    前記制御手段は、
    データ・ブロックの保存優先度を判定し、該判定結果に基づいて選択した削除保留リストに対して前記管理データ・ブロックに対応するエントリの設定を行なう構成であることを特徴とする請求項1に記載のキャッシュ装置。
  6. 前記制御手段は、
    端末からのコンテンツ取得要求が、前記キャッシュグループによる共同管理対象のコンテンツ取得要求である場合に、
    取得要求対象のコンテンツを構成するデータ・ブロックが前記キャッシュグループを構成するいずれのキャッシュ装置の保持対象データ・ブロックであるかを判定し、該判定結果に基づいてデータ・ブロックを自キャッシュ装置または、前記キャッシュグループを構成する他のキャッシュ装置から取得する処理を実行する構成であることを特徴とする請求項1に記載のキャッシュ装置。
  7. 記制御手段は、
    取得要求対象のデータ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
    C mod Nを算出し、
    C mod N=0の場合はV=N、
    C mod N≠0の場合はV=(C mod N)として、
    V=mを算出し、
    算出したmをグループ・メンバー番号として有するキャッシュ装置からデータ・ブロックの取得処理を実行する構成であることを特徴とする請求項6に記載のキャッシュ装置。
  8. ネットワークを介して受信したデータをキャッシュデータとして格納し、端末からのデータ要求に応じてキャッシュデータを取得して端末に送信するキャッシュ装置におけるキャッシュデータ管理方法であり、
    前記キャッシュ装置の制御手段が、自キャッシュ装置に保持されたデータ・ブロックの管理データであるLRUリストから削除予定データ・ブロックを検索するステップと、
    前記制御手段が、自キャッシュ装置およびネットワークに接続された他のキャッシュ装置によって構成され、コンテンツを構成する複数のデータ・ブロックを分散格納してコンテンツの共同管理を行うキャッシュグループに関するグループ設定情報を格納したテーブルであり、キャッシュグループが共同管理するコンテンツの識別子と、キャッシュグループを構成するキャッシュ装置数:Nと、各キャッシュ装置に対応して設定されるグループ・メンバー番号:mを格納したキャッシュグループ・テーブルの格納パラメータを適用した算出式の算出結果に基づいて、前記削除予定データ・ブロックが前記キャッシュグループにおける自己の記憶担当データである保留データ・ブロックであるか否かを決定する保留データ・ブロック決定ステップと、
    前記制御手段が、前記削除予定データ・ブロックが保留データ・ブロックである場合は削除せずに削除保留リストによる管理対象として自キャッシュ装置に保持し管理する処理を行うステップと、
    を有することを特徴とするキャッシュデータ管理方法。
  9. 前記保留データ・ブロック決定ステップは、
    共同管理するコンテンツを構成する複数のデータ・ブロックから、自キャッシュ装置における記憶保持対象とする保留データ・ブロックの決定処理を、以下の処理、すなわち、
    判定対象データ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
    C mod Nを算出し、
    C mod N=0の場合はV=N、
    C mod N≠0の場合はV=(C mod N)として、
    V=mであるか否かを判定し、
    V=mである場合に、該データ・ブロックを保留データ・ブロックとして決定する処理を実行することを特徴とする請求項8に記載のキャッシュデータ管理方法。
  10. 前記キャッシュデータ管理方法は、さらに、
    前記制御手段が、記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、前記キャッシュグループによる共同管理が可能か否かをキャッシュ装置間のメッセージ送受信により判定し、共同管理可能であると判定した場合に、前記キャッシュグループ・テーブルを生成する処理を実行することを特徴とする請求項8に記載のキャッシュデータ管理方法。
  11. 前記キャッシュデータ管理方法は、さらに、
    前記制御手段が、記憶手段に格納したデータ・ブロックについての管理リストであるLRUリストからの排除対象エントリに対応するデータ・ブロックについて、前記キャッシュグループ・テーブルの格納情報に基づいて、コンテンツを構成する複数のデータ・ブロック中から、自キャッシュ装置における記憶保持データとしての保留データ・ブロックを決定し、決定した保留データ・ブロック以外のデータ・ブロックについては、削除の許容されるデータ・ブロック管理リストとしてのフリーブロックリストにより管理するステップを含むことを特徴とする請求項8に記載のキャッシュデータ管理方法。
  12. 前記削除保留リストは、データ・ブロックの保存優先度に応じた複数のリストによって構成され、
    前記キャッシュデータ管理方法は、さらに、
    前記制御手段が、データ・ブロックの保存優先度を判定し、該判定結果に基づいて選択した削除保留リストに対して前記管理データ・ブロックに対応するエントリの設定を行なうステップを含むことを特徴とする請求項8に記載のキャッシュデータ管理方法。
  13. 前記キャッシュデータ管理方法は、さらに、
    前記制御手段が、端末からのコンテンツ取得要求が、前記キャッシュグループによる共同管理対象のコンテンツ取得要求である場合に、取得要求対象のコンテンツを構成するデータ・ブロックが前記キャッシュグループを構成するいずれのキャッシュ装置の保持対象データ・ブロックであるかを判定し、該判定結果に基づいてデータ・ブロックを自キャッシュ装置または、前記キャッシュグループを構成する他のキャッシュ装置から取得するデータ・ブロック取得処理を実行するステップを含むことを特徴とする請求項8に記載のキャッシュデータ管理方法。
  14. 前記データ・ブロック取得処理は、
    取得要求対象のデータ・ブロックが構成要素となるコンテンツの先頭データ・ブロックからのオフセット情報としてのブロックオフセット番号:Cに基づいて、
    C mod Nを算出し、
    C mod N=0の場合はV=N、
    C mod N≠0の場合はV=(C mod N)として、
    V=mを算出し、
    算出したmをグループ・メンバー番号として有するキャッシュ装置からデータ・ブロックを取得する処理として実行することを特徴とする請求項13に記載のキャッシュデータ管理方法。
  15. ネットワークを介して受信したデータをキャッシュデータとして格納し、端末からのデータ要求に応じてキャッシュデータを取得して端末に送信するキャッシュ装置のプログラム実行部である制御手段にキャッシュデータ管理処理を実行させるコンピュータ・プログ ラムであり、
    自キャッシュ装置に保持されたデータ・ブロックの管理データであるLRUリストから削除予定データ・ブロックを検索させるステップと、
    自キャッシュ装置およびネットワークに接続された他のキャッシュ装置によって構成され、コンテンツを構成する複数のデータ・ブロックを分散格納してコンテンツの共同管理を行うキャッシュグループに関するグループ設定情報を格納したテーブルであり、キャッシュグループが共同管理するコンテンツの識別子と、キャッシュグループを構成するキャッシュ装置数:Nと、各キャッシュ装置に対応して設定されるグループ・メンバー番号:mを格納したキャッシュグループ・テーブルの格納パラメータを適用した算出式の算出結果に基づいて、前記削除予定データ・ブロックが前記キャッシュグループにおける自己の記憶担当データである保留データ・ブロックであるか否かを決定させる保留データ・ブロック決定ステップと、
    前記削除予定データ・ブロックが保留データ・ブロックである場合は削除せずに削除保留リストによる管理対象として自キャッシュ装置に保持し管理する処理を行わせるステップと、
    を実行させることを特徴とするコンピュータ・プログラム。
JP2002195654A 2002-07-04 2002-07-04 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4244572B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2002195654A JP4244572B2 (ja) 2002-07-04 2002-07-04 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム
US10/520,427 US7287136B2 (en) 2002-07-04 2003-06-24 Cache device, and method and computer program for controlling cached data
CNB038208652A CN100383758C (zh) 2002-07-04 2003-06-24 高速缓存设备和高速缓存数据管理方法
PCT/JP2003/007971 WO2004006101A1 (ja) 2002-07-04 2003-06-24 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002195654A JP4244572B2 (ja) 2002-07-04 2002-07-04 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2004038627A JP2004038627A (ja) 2004-02-05
JP4244572B2 true JP4244572B2 (ja) 2009-03-25

Family

ID=30112345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002195654A Expired - Fee Related JP4244572B2 (ja) 2002-07-04 2002-07-04 キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム

Country Status (4)

Country Link
US (1) US7287136B2 (ja)
JP (1) JP4244572B2 (ja)
CN (1) CN100383758C (ja)
WO (1) WO2004006101A1 (ja)

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101270737B1 (ko) * 2003-11-04 2013-06-03 톰슨 라이센싱 서비스를 다운로딩하기 위한 핫 스폿에서의 캐시 서버
JP4416603B2 (ja) * 2004-08-20 2010-02-17 キヤノン株式会社 画像処理装置及び画像処理装置の制御方法
US7499996B1 (en) * 2004-12-22 2009-03-03 Google Inc. Systems and methods for detecting a memory condition and providing an alert
CN100396059C (zh) * 2006-03-03 2008-06-18 清华大学 分裂式网络处理器控制信息高速缓冲存储器
US20080126352A1 (en) * 2006-09-27 2008-05-29 Rockwell Automation Technologies, Inc. Client side state cache for industrial control systems
US8615635B2 (en) * 2007-01-05 2013-12-24 Sony Corporation Database management methodology
US8087027B2 (en) * 2007-03-29 2011-12-27 International Business Machines Corporation Computer program product and system for deferring the deletion of control blocks
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8321568B2 (en) * 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8782143B2 (en) * 2008-12-17 2014-07-15 Adobe Systems Incorporated Disk management
EP2411918B1 (en) * 2009-03-23 2018-07-11 Riverbed Technology, Inc. Virtualized data storage system architecture
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US9131004B2 (en) * 2009-04-26 2015-09-08 Jeffrey Alan Carley Method and apparatus for network address resolution
US9076239B2 (en) * 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
CN102025750A (zh) * 2009-09-15 2011-04-20 天津七所信息技术有限公司 网络缓存代理服务系统
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
CN101707684B (zh) * 2009-10-14 2014-04-30 北京东方广视科技股份有限公司 一种Cache调度的方法、设备及系统
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US8898181B2 (en) * 2010-06-22 2014-11-25 Microsoft Corporation Subscription for integrating external data from external system
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
KR101845110B1 (ko) * 2010-10-06 2018-04-03 가부시끼가이샤 도시바 분산 캐쉬 일관성 프로토콜
CN103154910A (zh) * 2010-10-25 2013-06-12 马维尔国际贸易有限公司 群集高速缓冲存储器相干性协议
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US9691068B1 (en) * 2011-12-15 2017-06-27 Amazon Technologies, Inc. Public-domain analyzer
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US20140089778A1 (en) * 2012-09-24 2014-03-27 Amazon Technologies, Inc Progressive Image Rendering Utilizing Data URI Enhancements
US9274954B1 (en) * 2012-12-18 2016-03-01 Netapp, Inc. Caching data using multiple cache devices
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9893971B1 (en) * 2012-12-31 2018-02-13 Juniper Networks, Inc. Variable timeouts for network device management queries
US9384208B2 (en) * 2013-01-22 2016-07-05 Go Daddy Operating Company, LLC Configuring a cached website file removal using a pulled data list
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
CN104252391B (zh) * 2013-06-28 2017-09-12 国际商业机器公司 用于在分布式计算系统中管理多个作业的方法和装置
CN103412884B (zh) * 2013-07-18 2016-12-28 华中科技大学 一种异构存储介质下嵌入式数据库的管理方法
CN104580268A (zh) * 2013-10-09 2015-04-29 南京中兴新软件有限责任公司 文件数据的传输方法及装置
EP2963894A1 (en) * 2014-07-04 2016-01-06 Thomson Licensing Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache.
US20160134929A1 (en) * 2014-11-07 2016-05-12 Qualcomm Incorporated Collaborative Distributed/Unstructured Service Management Framework for Wireless-Display Platform
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US20230079078A1 (en) * 2014-12-30 2023-03-16 Arteris, Inc. Cache coherent system implementing victim buffers
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
CN104933187B (zh) 2015-07-06 2019-02-01 张兆琦 一种用于操作系统或者应用程序的临时文件管理方法
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
WO2017091984A1 (zh) * 2015-12-01 2017-06-08 华为技术有限公司 数据缓存方法、存储控制装置、及存储设备
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
KR102610846B1 (ko) * 2016-05-13 2023-12-07 한국전자통신연구원 고속 분산 저장 장치 및 방법
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
CN107506314B (zh) * 2016-06-14 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和装置
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
CN106227679B (zh) * 2016-07-25 2018-12-28 北京邮电大学 一种数据缓存替换方法及装置
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10547876B2 (en) * 2017-02-08 2020-01-28 Nanning Fugui Precision Industrial Co., Ltd. Video cache rule generation system and method
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
JP6638145B2 (ja) * 2017-07-14 2020-01-29 国立大学法人電気通信大学 ネットワークシステム、ノード装置、キャッシュ方法及びプログラム
CN107463398B (zh) * 2017-07-21 2018-08-17 腾讯科技(深圳)有限公司 游戏渲染方法、装置、存储设备及终端
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10592418B2 (en) * 2017-10-27 2020-03-17 Dell Products, L.P. Cache sharing in virtual clusters
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US20190303037A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Using sequential read intention to increase data buffer reuse
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
CN112738148B (zh) * 2019-10-28 2024-05-14 中兴通讯股份有限公司 缓存内容的批量删除方法、装置、设备和可读存储介质
CN115053517A (zh) 2020-01-26 2022-09-13 巴科股份有限公司 同步本地房间和远程共享
TWI751580B (zh) * 2020-06-10 2022-01-01 財團法人工業技術研究院 儲存空間暫存檔案的管理方法及用於儲存多個暫存檔案的記錄裝置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848241A (en) * 1996-01-11 1998-12-08 Openframe Corporation Ltd. Resource sharing facility functions as a controller for secondary storage device and is accessible to all computers via inter system links
JPH10222411A (ja) * 1997-02-05 1998-08-21 Nippon Telegr & Teleph Corp <Ntt> プロキシキャッシュサーバ制御方法及びプロキシキャッシュサーバ
US6073129A (en) * 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
JP3463803B2 (ja) 1999-11-09 2003-11-05 松下電器産業株式会社 クラスタサーバ装置
JP4505977B2 (ja) * 2000-11-10 2010-07-21 ソニー株式会社 データ蓄積装置およびその方法、ならびに記録媒体
US7136885B2 (en) * 2002-12-20 2006-11-14 International Business Machines Corporation Free space management

Also Published As

Publication number Publication date
US20050172080A1 (en) 2005-08-04
WO2004006101A1 (ja) 2004-01-15
JP2004038627A (ja) 2004-02-05
US7287136B2 (en) 2007-10-23
CN100383758C (zh) 2008-04-23
CN1679004A (zh) 2005-10-05

Similar Documents

Publication Publication Date Title
JP4244572B2 (ja) キャッシュ装置、およびキャッシュデータ管理方法、並びにコンピュータ・プログラム
JP4938092B2 (ja) エッジネットワークにおけるデータ配信方法、データ配信システム、および関連装置
JP3768406B2 (ja) 移動通信網における情報配信制御方法及びシステム、及び移動通信網における通信ノードでの情報蓄積方法
US7472143B2 (en) File migration device
JP4997950B2 (ja) ネットワーク管理システム、ネットワーク管理プログラムおよびネットワーク管理方法
US20060265465A1 (en) Method, apparatus and system for processing message bundles on a network
JP2004172917A (ja) パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム
US9294397B1 (en) Apparatus and method for forwarding packets based on approved associations between ports and addresses of received packets
JP2000207370A (ja) 分散ファイル管理装置及び分散ファイル管理システム
CN103595808B (zh) 一种文件更新信息推送方法及装置
US20070088854A1 (en) Apparatus for searching TCP and UDP sockets
JP2021519041A (ja) Icnメッセージの転送方法
JP2019180009A (ja) 無線通信システムおよび無線通信方法
WO2023125380A1 (zh) 一种数据管理的方法及相应装置
CN1829231A (zh) 直接接收入站数据的方法和装置
JP2896394B2 (ja) ファイルサーバ装置
US9348847B2 (en) Data access control apparatus and data access control method
KR20050024446A (ko) 캐시 장치 및 캐시 데이터 관리 방법과 컴퓨터 프로그램
JP2005100007A (ja) データファイル保存システムおよびアロケーション方法
JP4946906B2 (ja) マルチキャストアドレス情報処理装置及びマルチキャストアドレス情報処理プログラム
US7159019B2 (en) Information collection apparatus and method
US7487256B2 (en) Dynamic management method for forwarding information in router having distributed architecture
JP3709905B2 (ja) ネットワークサーバ装置
JP4064162B2 (ja) ファイル蓄積装置および方法
CN114157620B (zh) 一种报文转发方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081110

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: 20081216

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081229

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees