JP2004145613A - 配信システム - Google Patents
配信システム Download PDFInfo
- Publication number
- JP2004145613A JP2004145613A JP2002309336A JP2002309336A JP2004145613A JP 2004145613 A JP2004145613 A JP 2004145613A JP 2002309336 A JP2002309336 A JP 2002309336A JP 2002309336 A JP2002309336 A JP 2002309336A JP 2004145613 A JP2004145613 A JP 2004145613A
- Authority
- JP
- Japan
- Prior art keywords
- content
- cache
- distribution
- network
- data
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】コンテンツ配信システムで、クライアント数やネットワークキャッシュのヒット率に変動があっても、安定したコンテンツ配信を行うこと。
【解決手段】ネットワークキャッシュの資源を監視して、ネットワークキャッシュが破綻しそうなときに、クライアントを含めた配信システム全領域の資源で、余裕のある資源を検出し、それらの資源をコントロールして、ネットワークキャッシュの破綻を防止する為に使用することにより、安定なコンテンツ配信を実現する。
【選択図】 図1
【解決手段】ネットワークキャッシュの資源を監視して、ネットワークキャッシュが破綻しそうなときに、クライアントを含めた配信システム全領域の資源で、余裕のある資源を検出し、それらの資源をコントロールして、ネットワークキャッシュの破綻を防止する為に使用することにより、安定なコンテンツ配信を実現する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、連続メディア配信システムの制御方法に関する。
【0002】
【従来の技術】
図2は従来の配信システムの構造を示す図である。
【0003】
100はクライアントであり、007はディスクなどの蓄積デバイスであり、映像データ等の連続メディアのコンテンツデータが蓄積されている。
【0004】
クライアント100は、外部ネットワーク003を通して蓄積デバイス007上のコンテンツ配信要求を行う。
【0005】
外部ネットワーク003と蓄積デバイス007の間には、ネットワークキャッシュ102が挿入されている。ネットワークキャッシュ102は、クライアント100よりのコンテンツ配信要求を受け取り、要求されたコンテンツデータを持っている場合(キャッシュヒットと言う)は、そのコンテンツデータをクライアント100に配信する。クライアント100が要求しているコンテンツデータを持っていない(キャッシュミスヒットと言う)場合は、コンテンツ配信要求をコントローラー103へ転送する。
【0006】
コントローラー103は、コンテンツ配信要求を受け取り、蓄積デバイス007をコントロールし、コンテンツデータを読み出してネットワークキャッシュ102へ出力する。
【0007】
配信を開始した直後より動作を説明する。
【0008】
配信を開始すると、クライアント100よりコンテンツ要求がネットワークキャッシュ102に送られる。
【0009】
配信直後は、ネットワークキャッシュ102にはコンテンツが無いので、キャッシュミスヒットを起こし、蓄積デバイス007より、ネットワークキャッシュ102にコンテンツデータがロードする(このロード動作をキャッシュフィルと言う)様に、コントローラ103にコンテンツ要求を転送する。
【0010】
コントローラ103は、そのコンテンツ要求を受け取り、蓄積デバイス007をコントロールして、要求されたコンテンツを蓄積デバイス007より読み出し、読み出されたコンテンツデータをネットワークキャッシュ102にロードしてゆく。同時に、ロードされたコンテンツデータは、要求をだしたクライアント100へ配信される。
【0011】
ロード終了後は、そのコンテンツに対する配信要求がクライアント100よりあっても、蓄積デバイス007からでなく、ネットワークキャッシュ102よりそのコンテンツデータが配信される。
【0012】
キャッシュフィルにより、ネットワークキャッシュ102の容量まで、コンテンツがロードされていく。更にキャッシュミスヒットが起きた場合、キャッシュフィルを行おうとするが、新たにコンテンツデータを保持する為の領域(容量)がネットワークキャッシュ102にないので、以前に保持していたコンテンツデータを破棄して、新しいコンテンツデータをロードしていく。この動作をキャッシュリプレースと言う。
【0013】
この様に、ネットワークキャッシュ102が保持するコンテンツの種類は、キャッシュミスヒットが起きる度に変わっていく。
【0014】
従来は、ネットワークキャッシュのヒット率を上げることで応答性や配信システムの安定性を確保しようとしてきた。例えば、特許文献1では、過去のアクセス回数やアクセス時刻に基づいたコンテンツのキャッシュリプレースを行うことで、キャッシュのヒット率を上げている。また、特許文献2では、コンテンツの属性情報、即ち、時刻情報、フレームレートや解像度を用いてキャッシュリプレースを行い、キャッシュのヒット率を上げている。
【0015】
【特許文献1】
特開2000−137642号公報
【特許文献2】
特開2000−209258号公報
【0016】
【発明が解決しようとする課題】
しかしながら上記のような構成では、ネットワークキャッシュのヒット率が低下すると、ネットワークキャッシュのコンテンツのリプレースができない、又はリプレースの速度が遅くなる、更に、クライアントでのコンテンツの要求応答時間が長くなったり、連続して再生されなければいけないコンテンツの再生が途切れるといういう問題点があった。
【0017】
例えば、コンテンツの転送レートが3Mbpsで、再生時間が2時間のコンテンツが100本を配信するシステムを考える。コンテンツの総容量は、270GBとなり、蓄積デバイス007に保持されているとする。
【0018】
通常、クライアントによるコンテンツの選択分布は、Zipf分布で近似される(”Multimedia Servers”, Dinkar Sitaram and Asit Dan著)。Zipf分布は、C/X(1−θ)で表される(Cは定数)。θ=−0.5、ネットワークキャッシュ102のヒット率を90%だとすると、必要なネットワークキャッシュ102の容量は、Y=C/X1.5の曲線で、X=0よりの面積が90%となるコンテンツ約27本分、約73GBとなる。
【0019】
次に、上記ネットワークキャッシュを上記配信システムに適用した時の配信の状態を考えてみる。
【0020】
配信開始直後は、ネットワークキャッシュ102にコンテンツは無いので、クライアント100よりのコンテンツ配信要求に対して、キャッシュミスヒットを起こす。よって、蓄積デバイス007より、ネットワークキャッシュ102へのキャッシュフィルが起きる。キャッシュフィルによりネットワークキャッシュ102に保持されたコンテンツを配信要求を出したクライアント100へ配信される。
【0021】
この様なキャッシュフィルの間にも新たなコンテンツ要求がネットワークキャッシュ102に届く。その場合、キャッシュヒットすることもあり、その時は、ネットワークキャッシュ102より配信が行われる。
【0022】
しかし、大部分のコンテンツ要求は、キャッシュミスヒットし、それらのキャッシュミスヒットによるキャッシュフィルにより、ネットワークキャッシュ102の容量73GBまで、コンテンツがネットワークキャッシュ102にロードされていく。上記システム例では、約27のコンテンツが、ネットワークキャッシュ102内に保持される。
【0023】
更にキャッシュミスヒットが起きた場合、キャッシュフィルを行おうとするが、新たにコンテンツデータを保持する為の領域(容量)がネットワークキャッシュ102にないので、キャッシュリプレースが起きる。
【0024】
この時、ネットワークキャッシュ102に保持されているコンテンツで、配信中でなく、且つ、キャッシュフィル中でないコンテンツがあれば、そのコンテンツを新しい蓄積デバイス007よりのコンテンツにリプレースする。
【0025】
しかしながら、ネットワークキャッシュ102に保持されている27のコンテンツが、すべて配信中かキャッシュフィル中ならば、キャッシュリプレースはできない。よって、ネットワークキャッシュ102内の何れかのコンテンツの配信とキャッシュフィルが終了するまで、キャッシュリプレース動作が停止してしまい、クライアントよりの要求応答時間が長くなり、安定した配信ができなくなる。
【0026】
この様な状況は、ネットワークキャッシュのヒット率が低下した時に起こりやすい。キャッシュミスヒットが増え、キャッシュフィル中のコンテンツが増し、結果的にキャッシュのリプレースができなくなる可能性があるからである。上記例、ネットワークキャッシュ102の容量が73GBある場合で、ネットワークキャッシュ102のヒット率が90%から70%になった場合を考える。例えば、100個のコンテンツ要求に対し、70個のコンテンツ要求にはキャッシュがヒットするが、残り30個のコンテンツ要求に対してはキャッシュヒットしない。ネットワークキャッシュ102内に27のコンテンツまでしか保持できないことから、キャッシュのリプレースができなくなる可能性があり、安定した配信ができなくなる。
【0027】
この様に、クライアントのコンテンツ選択分布が変わるだけで、ネットワークキャッシュの安定動作に大きく影響する。
【0028】
また、クライアント100の数が、急に増加した時にも、同様にキャッシュリプレースができなくなる。例えば、100個のクライアント100が同時にコンテンツ要求をすると、ネットワークキャッシュ102のヒット率が90%以上で、平均して10個のクライアント100よりのコンテンツ要求がキャッシュヒットミスし、ネットワークキャッシュ102のリプレースが起きるが、300個クライアント100が同時にコンテンツ要求すると、ネットワークキャッシュ102のリプレースは、平均して30個起こり、キャッシュリプレースができなくなる可能性が高く、安定した配信ができなくなる。
【0029】
特に、ネットワークキャッシュのヒット率や配信クライアント数は、時間と共に大きく変化しうるパラメータであり、これらのパラメータの変化に対してのネットワークキャッシュの安定性は、配信システム実現のキーになりうる。
【0030】
この様な不安定な動作、キャッシュリプレース動作の停止を避けるには、ネットワークキャッシュ102に十分大きな容量を確保して配信中でなく、且つ、キャッシュフィル中でないコンテンツの数が多くし、ネットワークキャッシュのヒット率を十分高く保ち、キャッシュリプレース動作が停止する可能性を小さくするしかなかった。
【0031】
本発明は上記問題点に鑑み、キャッシュのヒット率が低下しても、又は、クライアントの数が増加しても、より安定して連続メディアの配信ができる配信システムを提供するものである。
【0032】
【課題を解決するための手段】
本発明の骨子は、配信システム上で不安定な動作に陥りやすいネットワークキャッシュを安定化させることで、配信システム全体を安定化することを目的とし、その目的の為に、配信システム上で空いている資源を制御してネットワークキャッシュの安定化の為に使用する、又は、ネットワークキャッシュが保持するコンテンツをコンテンツ要求分布に合わす点にある。
【0033】
本願の請求項1の発明は、外部ネットワーク上に接続されている複数のクライアントが各々バッファ2メモリを内蔵しているとし、このクライアントのコンテンツ要求により蓄積デバイス内のコンテンツをクライアントまで配信する配信システムで、蓄積デバイスとバッファ1メモリを制御するコントローラと、コントローラに接続されている内部ネットワークと、内部ネットワークと外部ネットワークに接続されているネットワークキャッシュとで構成された配信システムで、各々の構成要素の状態、すなわち、バッファ1メモリの保持データ量と、バッファ2メモリの保持データ量と、ネットワークキャッシュ内の各々のコンテンツ毎のキャッシュフィルポインターとネットワークキャッシュ内の各々のコンテンツ毎の配信ポインターとネットワークキャッシュのコンテンツデータ量とネットワークキャッシュの保持コンテンツ数とネットワークキャッシュのキャッシュフィル中コンテンツ数とネットワークキャッシュの配信中コンテンツ数と内部ネットワークよりのネットワークキャッシュの入力データの転送速度と外部ネットワークへのネットワークキャッシュの出力データの転送速度の示す値によって、空いている資源を検出し、ネットワークキャッシュが安定に動作する様に蓄積デバイスとバッファ1メモリとネットワークキャッシュを制御することを特徴とする配信システムである。
【0034】
本願の請求項2の発明は、キャッシュフィルポインターの値とそのコンテンツの配信ポインターの値より、キャッシュフィルがすぐに終了しないコンテンツのキャッシュフィルに対しては、配信ポインターがアンダーフローを起こさない様にキャッシュフィルの転送速度を低く制御し、キャッシュフィルが終了しそうなコンテンツに対しては、キャッシュフィルの転送速度を高く制御することを特徴とする配信システムである。
【0035】
本願の請求項3の発明は、コンテンツ毎に、キャッシュフィルポインターの値とそのコンテンツの配信ポインターの値で、キャッシュフィル及び配信が終了した領域をキャッシュリプレースにアサインすることを特徴とする配信システムである。
【0036】
本願の請求項4の発明は、クライアント毎に配信コンテンツ、配信経過時間、配信済みコンテンツデータ量を検出してクライアントのバッファ2メモリがオーバーフローを起こさない様に配信の転送速度を高く制御することを特徴とする配信システムである。
【0037】
本願の請求項5の発明は、ネットワークキャッシュが保持するコンテンツ数、データ量を検出してキャッシュリプレースができない時に、コンテンツをネットワークキャッシュに保持しないで直接クライアントに配信することを特徴とする配信システムである。
【0038】
本願の請求項6の発明は、ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツを一定期間のコンテンツアクセス回数とコンテンツデータ量の積をパラメータとして評価して選択することを特徴とする配信システムである。
【0039】
本願の請求項7の発明は、ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツを一定期間のコンテンツがネットワークキャッシュ内に留まっている時間とコンテンツデータ量の積をパラメータとして評価して選択することを特徴とする配信システムである。
【0040】
本願の請求項8の発明は、ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツを一定期間のコンテンツ配信時間をパラメータとして評価して選択することを特徴とする配信システムである。
【0041】
本願の請求項9の発明は ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツをコンテンツデータ量を一定期間のコンテンツのリプレース回数+1で割った値をパラメータとして評価して選択する配信システムである。
【0042】
本願の請求項10の発明は ネットワークキャッシュが、所定のスケジュールでランダムにキャッシュリプレースを行うことで、ネットワークキャッシュに保持するコンテンツを部分的にリフレッシュしてコンテンツ要求分布の変化に追従さすことを特徴とする配信システムである。
【0043】
本願の請求項11の発明は ネットワークキャッシュで、所定のスケジュールで最大保持コンテンツ数、又は、最大保持容量、又は、最大保持コンテンツ数と最大保持容量を制限することで、ネットワークキャッシュに保持するコンテンツを部分的にリフレッシュしてコンテンツ要求分布の変化に追従さすことを特徴とする配信システムである。
【0044】
本願の請求項12の発明は 配信システム以外から得られた統計データにより、配信システム起動時にネットワークキャッシュが保持するコンテンツデータの組み合わせを定め、配信システム以外から得られた統計データより作成したデータをコンテンツアクセス記録手段の統計データとすることを特徴とする配信システムである。
【0045】
【発明の実施の形態】
以下本発明の実施例について、図面を参照しながら説明する。
【0046】
図1は本発明の第1の実施形態におけるブロック図を説明している。
【0047】
複数のクライアント001が、外部ネットワーク003に接続されている。各クライアント001は、各々バッファ2メモリ002を接続していて、外部ネットワーク003よりのデータを一時保持できる様になっている。
【0048】
ネットワークキャッシュ004は、外部ネットワーク003と内部ネットワーク005の間に接続されている。ネットワークキャッシュ004は、高速にアクセス可能なキャッシュメモリを内蔵している。また、ネットワークキャッシュ004は、保持しているコンテンツのデータ量を示すコンテンツ容量カウンター020、保持しているコンテンツ数を示す保持コンテンツ数カウンター014、キャッシュフィル動作中のコンテンツの数を示すキャッシュフィル中コンテンツカウンター013、配信動作中のコンテンツ数を示す配信中コンテンツカウンター015、所定時間内に外部ネットワーク003へ転送したデータ量を示す外部転送速度測定手段021、コンテンツ毎でクライアント毎に持っているコンテンツ内の配信されたデータの先頭アドレスを示す配信ポインター010、コンテンツ毎に持っているネットワークキャッシュ004にロードされたコンテンツデータの先頭アドレスを示すキャッシュフィルポインター011、コンテンツを要求しているクライアント001毎に持っているバッファ2メモリ002内のデータ量を示すバッファ2メモリカウンター012を持っている。
【0049】
更に、内部ネットワーク005には、コントローラー006が接続されている。コントローラー006は、蓄積デバイス007とバッファ1メモリ008を接続していて、これらを制御して、蓄積デバイス007よりのデータの読み出しや、バッファ1メモリ008で蓄積デバイス007より読み出したデータを一時保持する。また、蓄積デバイス007よりのデータやバッファ1メモリ008に一時保持したデータを内部ネットワークを通してネットワークキャッシュ004に転送する。更に、所定時間内に内部ネットワーク005へ転送したデータ量を示す内部転送速度測定手段022とバッファ1メモリ008に保持されているコンテンツデータ量を示すバッファ1メモリカウンター016を持っている。また、コントローラー006は、ネットワークキャッシュ004に内蔵されているコンテンツ容量カウンター020、保持コンテンツ数カウンター014、キャッシュフィル中コンテンツカウンター013、配信中コンテンツカウンター015、外部転送速度測定手段021、配信ポインター010、キャッシュフィルポインター011、バッファ2メモリカウンター012の内容を参照できる。
【0050】
蓄積デバイス007は、映像や音声などの連続コンテンツを保持している。
【0051】
次に、配信システムの概略の動作を起動時より説明する。
【0052】
クライアント001は、外部ネットワーク003を経由して各々コンテンツ要求をネットワークキャッシュ004に対して送信する。配信システム起動直後は、通常、ネットワークキャッシュ004は空の状態であるので、ヒット率は0%で、クライアント001よりのコンテンツ要求は、コントローラ006へ送られる。
【0053】
コンテンツ要求を受け取ったコントローラー006は、蓄積デバイス007を制御して、要求されたコンテンツを蓄積デバイス007より読みとり、内部ネットワーク005経由でネットワークキャッシュ004に転送する。蓄積デバイス007よりコンテンツデータを読む時、コントローラー006は、所定の長さのデータを連続的に読む様に制御する。一般に、ディスクよりデータを読み出す時は、読み出したデータを転送する時間以外にオーバーヘッド時間と呼ばれる時間がかかる。オーバーヘッド時間は、大きく分けて2つの部分に分かれる。1つは、ディスク上の要求されているデータの保持されている領域へ再生ヘッドを移動する時間である。他の1つは、通常、ディスクは回転していることから、再生ヘッドが要求されたデータの先頭位置の角度がくるまで回転を待つ時間が必要である。この再生ヘッド又は記録ヘッドの移動のことをシークと呼び、シークにかかる時間をシーク時間を呼んでいる。この2つの時間を加えた時間がオーバーヘッド時間と言われている。ここでは、連続的にコンテンツを読むことで、データ当たりの蓄積デバイス007のオーバーヘッド時間を小さくして読み出しデータの実効的な転送速度の低下を最小限度に押さえる効果がある。この長さをチャンク長と呼び、通常、コンテンツのデータ量に比べ小さな量、数百〜数千セクター程度の長さとなる。またこの時、内部ネットワーク005にコンテンツデータを転送する毎に内部転送速度測定手段022内のカウンターをインクリメントしてゆく。内部転送速度測定手段022内のカウンターは、所定の時間毎に内部転送速度測定手段022内に値を保持された後にリセットされる。
【0054】
また、転送すべきコンテンツデータが多く、内部ネットワーク005がすぐに使用できない時は、一時バッファ1メモリ008に保持し、内部ネットワーク005が使用できる様になり次第、ネットワークキャッシュ004に転送する。通常、内部ネットワーク005の最大転送速度より蓄積デバイス007の転送速度の方が速いので、チャンク長分のコンテンツデータを一度に内部ネットワーク005に転送できず、一時バッファ1メモリ008に保持する。この時、バッファ1メモリ008にコンテンツデータが保持される毎に、バッファ1メモリカウンター016がインクリメントされる。また、バッファ1メモリ008より読み出される毎にバッファ1メモリカウンター016がデクリメントされる。
【0055】
バッファ1メモリ008は、最低数チャンク長程度の容量は必要となり、蓄積デバイス007よりのコンテンツデータの保持とネットワークキャッシュ004へ読み出しが同時にできることが必要となる。
【0056】
内部ネットワーク005経由で入力されたコンテンツデータより、そのコンテンツ全体のデータ量のメモリ領域がネットワークキャッシュ004に確保され、コンテンツ容量カウンター020の値は更新され、キャッシュフィル中コンテンツカウンター013がインクリメントされる。その入力されたコンテンツデータは、ネットワークキャッシュ004内に確保された領域に保持される。入力されたコンテンツデータがネットワークキャッシュ004内に保持される毎に、キャッシュフィルポインター011がインクリメントされる。また同時に、入力されたコンテンツデータは、コンテンツ要求を出したクライアント001に配信され、配信ポインター010と外部転送速度測定手段021内のカウンターがインクリメントされる。外部転送速度測定手段021内のカウンターは、所定の時間毎に値を外部転送速度測定手段021内に保持された後にリセットされる。
【0057】
以降、同じコンテンツが要求された時は、ネットワークキャッシュ004内に要求されたコンテンツデータがあるので、ネットワークキャッシュ004より要求したクライアント001へコンテンツデータが配信される。この時、配信中コンテンツカウンター015をインクリメントする。また、配信コンテンツデータを外部ネットワーク003に転送する毎にクライアント毎にある配信ポインター010と外部転送速度測定手段021内カウンターを更新してゆく。外部転送速度測定手段021内カウンターは、所定の時間毎に外部転送速度測定手段021内に値を保持された後リセットされる。
【0058】
1つのコンテンツデータのキャッシュフィルが完了したら、保持コンテンツ数カウンター014がインクリメントされ、キャッシュフィル中コンテンツカウンター013がデクリメントされる。
【0059】
内部ネットワーク005に必要な転送レートは、1つのコンテンツのキャッシュフィル時間が、クライアント001よりのコンテンツ要求がミスヒットする時間間隔が等しい時、即ちキャッシュフィル中のコンテンツ数が平衡することより求められる。Tfillを内部ネットワーク005の転送速度、Cconを平均コンテンツデータ量、Hをネットワークキャッシュ004のヒット率、Siをクライアント001の単位時間当たりの増加率とすると、1つのコンテンツのキャッシュフィル時間はTfill/Cconであり、クライアント001よりのコンテンツ要求がミスヒットする時間間隔は(1−H)/Siであるので、
Tfill=Ccon×(1−H)/Si
となる。Cconを2.7GB、Hを90%、Siを1秒とすると、Tfillは、約2.16Gbps必要となる。
【0060】
配信されたコンテンツデータは、一旦バッファ2メモリ002に保持される。バッファ2メモリ002に所定のコンテンツデータがたまった後、FIFO動作にてバッファ2メモリ002より読み出され、所定の速度でデコードされて映像や音声などになる。
【0061】
バッファ2メモリカウンター012は、コンテンツ要求したクライアント001毎あり、所定の量のコンテンツデータがバッファ2メモリ002にたまるデータ量を、配信経過時間と配信ポインター010の示すアドレス、即ち配信済みコンテンツデータ量と配信しているコンテンツのデコード速度、即ち再生転送速度より演算し、バッファ2メモリカウンター012の値とする。また、バッファ2メモリカウンター012の代わりにコンテンツ要求したクライアント001にバッファ2メモリ002にたまっているコンテンツデータの量を報告させても良い。
【0062】
1つの配信が完了したら、配信中コンテンツ数カウンター015が、デクリメントされる。
【0063】
最初の配信が終了するまでに必要なネットワークキャッシュ004の容量は、配信終了までにキャッシュフィルで必要なデータ量がネットワークキャッシュ004の容量を超えないことから求められる。配信の転送速度をTdist、ネットワークキャッシュ004の容量をCcashとすると、最初の配信が終了する時間はCcon/Tdist、キャッシュフィルで保持データ量が増える速さは
((1−H)/Si)×Cconであるので、
(Ccon/Tdist)×((1−H)/Si)×Ccon<Ccash
となる。ここでは、ヒット率は計算を簡単にする為、一定としている。Cconを2.7GB、Hを90%、Siを1秒、Tdistを再生の転送速度の10倍の30Mbpsとすると、Ccashは、最低194.4GB以上必要となる。実際は、ヒット率は、最初0%で、徐々に増えていき、コンテンツ194.4GBになると、θ=−0.5のZipf分布で98.0%になる。
【0064】
しかし、ネットワークキャッシュ004起動時に、何らかのコンテンツをネットワークキャッシュ004に保持されていれば、起動時のヒット率は0%ではない。例えば、72GB分のコンテンツがランダムに保持されていれば、72/270=27%のヒット率はある。更に、何らかの統計情報、例えば、ヒットチャートのデータなどを基にして保持するコンテンツを選択すれば、更にヒット率は高くなる。また、ヒット率が高くなるにつれて、ネットワークキャッシュ004に必要な容量も減っていく。
【0065】
その後コンテンツ要求に対してミスヒットが起きると、新たにキャッシュフィルするコンテンツデータに対するネットワークキャッシュ004内のメモリ領域が確保できなくなる。そこで、ネットワークキャッシュ004内で、キャッシュフィルが完了していて、配信していないコンテンツメモリ領域を探し、新しくキャッシュフィルを行うコンテンツデータのメモリ領域とするキャッシュリプレースを行う。
【0066】
リプレースを行うネットワークキャッシュ004内のコンテンツの選択は、ランダムに選択するよりも、何らかの統計情報を基に選択する方が、ヒット率が高くなる。
【0067】
例えば、ネットワークキャッシュ004内に過去に配信されたコンテンツを記録するコンテンツ配信統計記録手段を設け、過去一定期間のコンテンツの配信回数とそのコンテンツのデータ量の積をパラメータとして、そのパラメータが小さいコンテンツを選ぶとヒット率が高くなる。コンテンツのデータ量をパラメータとしたのは、再びキャッシュフィルした時のコスト、即ち、内部ネットワーク005の転送レート及びキャッシュフィル時間を考慮したためである。
【0068】
また、他のパラメータ例として、過去一定期間のコンテンツのネットワークキャッシュ保持時間とそのコンテンツのデータ量の積をパラメータとして、そのパラメータが小さいコンテンツを選ぶ、又は、過去一定期間のコンテンツの配信時間をパラメータとして、そのパラメータが小さいコンテンツを選ぶ、又は、コンテンツのデータ量を過去一定期間のコンテンツのリプレース回数+1で割った値をパラメータとして、そのパラメータが小さいコンテンツを選ぶ、などがある。
【0069】
次に、最初のキャッシュリプレースが起きてからの配信システムの制御方法を説明する。(表1)から(表4)は、配信システムの状態を5つのパラメータで示し、その状態に対する制御方法を表している。
【0070】
【表1】
【0071】
【表2】
【0072】
【表3】
【0073】
【表4】
【0074】
尚、表中、ネットワークキャッシュをキャッシュ、バッファ1メモリをバッファ1、バッファ2メモリをバッファ2と略している。
【0075】
(表1)から(表4)で、バッファ1容量のパラメータの項は、×はバッファ1メモリカウンター016の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0076】
(表1)から(表4)で、内部ネットワーク転送速度のパラメータ項は、×は内部転送速度測定手段022の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0077】
(表1)から(表4)で、キャッシュ容量のパラメータ項は、×はコンテンツ容量カウンター020の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0078】
(表1)から(表4)で、キャッシュ転送中コンテンツ数のパラメータ項は、×はキャッシュフィル中コンテンツカウンター013の示す値と配信中コンテンツカウンター015の示す値の和と保持コンテンツ数カウンター014が示す値の差が所定の値(スライス値)を超えた状態を示し、○は下回った状態を示している。
【0079】
(表1)から(表4)で、バッファ2容量のパラメータ項は、×は、何れかのクライアント001のバッファ2メモリカウンター012の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0080】
もちろん、上記各スライス値はヒステリシスを持って良いし、キャッシュフィル中コンテンツカウンター013の示す値と配信中コンテンツカウンター015の示す値の和と、保持コンテンツ数カウンター014が示す値の比較においても、ヒステリシスを持っていても良い。
【0081】
また、上記各スライス値を複数持っていて、制御を段階的に強くしても良い。キャッシュフィル中コンテンツカウンター013の示す値と配信中コンテンツカウンター015の示す値の和と保持コンテンツ数カウンター014が示す値の差の比較においても、同様である。
【0082】
以下に各状態を説明してゆく。
【0083】
状態1は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワークは、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツを保持できなく、保持中のコンテンツは、全ては配信中ではない状態にある。
【0084】
この状態は、通常起こりうる状態で、新たなコンテンツリクエストが来ると、コンテンツのリプレースが起きる。
【0085】
状態2は、バッファ1メモリ008に更に多くのデータを保持することができなくて、バッファ2メモリ002に更に多くのデータを保持することができ、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0086】
この状態は、通常起こりうる状態で、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送レートが大きくて、一時コンテンツをバッファ1メモリ008に保持した時に起きる。
【0087】
制御方法としては、内部ネットワーク005の転送レートに余裕があるので、コントローラ006が、バッファ1メモリ008より内部ネットワーク005により速く転送する様に制御する。新たにキャッシュミスヒットが生じた時は、ネットワークキャッシュ004は、キャッシュリプレースを行う。
【0088】
状態3は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータを保持することができ、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツの保持ができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0089】
この状態は、通常起こりうる状態で、特に、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送レートが大きくて、内部ネットワーク005の転送能力いっぱいまで使用した時に起きる。
【0090】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0091】
状態4は、バッファ1メモリ008に現在以上のデータを保持することができなくて、バッファ2メモリ002は更に多くのデータが保持することができ、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持することができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0092】
この状態は、通常起こりうる状態で、特に、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送レートが大きくて、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持した時に起きる。
【0093】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、バッファ1メモリ008がオーバーフローする可能性もあるので、コントローラー006は、蓄積デバイス007よりの読み込みを一時中断する。
【0094】
状態5は、バッファ1メモリ008に更に多くのデータを保持することができ、何れかのクライアント001のバッファ2メモリ002は更に多くのデータを保持することができなく、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツの保持ができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0095】
この状態は、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0096】
この場合、バッファ2メモリ002がオーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。
【0097】
状態6は、バッファ1メモリ008に更に多くのデータを保持することができなく、何れかのクライアント001のバッファ2メモリ002は現在以上のデータを保持することができなく、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツを保持することができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0098】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速くて、一時コンテンツをバッファ1メモリ008に保持して、且つ、ネットワークキャッシュ004より何れかのクライアント001への配信の転送レートが大きい時に起きる。
【0099】
この場合、バッファ1メモリ008、バッファ2メモリ002が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断し、ネットワークキャッシュ004は、バッファ2メモリ002がオーバーフローしそうなクライアント001への配信の転送レートを下げる。
【0100】
状態7は、バッファ1メモリ008に更に多くのデータが保持でき、バッファ2メモリ002には現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0101】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい特に起きる。
【0102】
この場合、バッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、バッファ2メモリ002がオーバーフローしそうなクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0103】
状態8は、バッファ1メモリ008とバッファ2メモリ002に現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0104】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0105】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0106】
状態9は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態にある。
【0107】
この状態は、通常起こり得る状態で、ネットワークキャッシュ004のヒット率が高い時に起きる。特に処理はない。
【0108】
状態10は、バッファ1メモリ008に現在以上のデータが保持できなく、バッファ2メモリ002は更に多くのデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態にある。
【0109】
この状態は、通常起こり得る状態で、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、処理しきれずに、一時コンテンツをバッファ1メモリ008に保持した時に起きる。
【0110】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、より多くの内部ネットワーク005の転送レートをキャッシュフィルにアサインする。
【0111】
状態11は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0112】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用している時に起きる。
【0113】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0114】
状態12は、バッファ1メモリ008に現在以上のデータが保持できなく、バッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0115】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持する時に起きる。
【0116】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0117】
状態13は、バッファ1メモリ008に更に多くのデータが保持でき、何れかのクライアント001のバッファ2メモリ002に現在以上のデータが保持できず、内部ネットワーク005に更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0118】
この状態は、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0119】
この場合、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。
【0120】
状態14は、バッファ1メモリ008とバッファ2メモリ002に現在以上のデータが保持できなく、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0121】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、処理しきれずに一時コンテンツをバッファ1メモリ008に保持し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0122】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、より多くの内部ネットワーク005の転送レートをキャッシュフィルにアサインする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。
【0123】
状態15は、バッファ1メモリ008にデータが保持でき、何れかのクライアント001のバッファ2メモリ002に現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0124】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0125】
この場合、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0126】
状態16は、バッファ1メモリ008とバッファ2メモリ002に現在状のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0127】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0128】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、ディスクのコンテンツ読み込みを一時中断しする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0129】
状態17は、バッファ1メモリ008とバッファ2メモリ002にデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツ以外のコンテンツを保持することができなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。この状態は、ネットワークキャッシュ004の容量が小さい時、又は、配信クライアント数が多い時に起きる。
【0130】
この場合、内部ネットワーク005の転送レートに余裕があるので、コントローラー006は、蓄積デバイス007のコンテンツ読みとりの転送レートを上げて、内部ネットワーク005の転送能力いっぱいまで転送レートをキャッシュフィルにアサインし、キャッシュフィルが早く終了する様にする。また、より多くのコンテンツをバッファ2メモリ002に保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求でキャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワークに転送してクライアント001に配信できる。
【0131】
状態18は、バッファ1メモリ008に現在以上のデータが保持できなくて、バッファ2メモリ002にデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツを保持することができなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0132】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信数が多い時に起きる。
【0133】
この場合、内部ネットワーク005の転送レートに余裕があるので、コントローラー006は、キャッシュフィルにより多くの内部ネットワーク005の転送レートをアサインし、キャッシュフィルが早く終了する様にする。また、より多くのコンテンツをバッファ2メモリ002に保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワークに転送してクライアント001に配信できる。
【0134】
状態19は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0135】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0136】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、より多くのコンテンツをバッファ2メモリ002に保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター020よりこの配信中のコンテンツの容量分を減算する。
【0137】
状態20は、バッファ1メモリ008に現在以上のデータを保持することができなく、バッファ2メモリ002にデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0138】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0139】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、バッファ2メモリ002により多くのコンテンツを保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター020よりこの配信中のコンテンツの容量分を減算する。
【0140】
状態21は、バッファ1メモリ008に更に多くのデータが保持でき、バッファ2メモリ002には現在以上のデータが保持できなく、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0141】
この状態は、ネットワークキャッシュ004の容量が小さい時、又は、配信クライアント数が多い時に起きる。
【0142】
この場合、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、内部ネットワーク005の転送レートに余裕があるので、コントローラー006は、ディスクのコンテンツ読みとりの転送レートを上げて、内部ネットワーク005の転送能力いっぱいまで転送レートをキャッシュフィルにアサインし、キャッシュフィルが早く終了する様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。
【0143】
状態22は、バッファ1メモリ008に現在以上のデータを保持することができなく、バッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0144】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0145】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、キャッシュフィルにより多くの内部ネットワーク005の転送レートをアサインし、キャッシュフィルが早く終了する様にする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。
【0146】
状態23は、バッファ1メモリ008に更に多くのデータが保持でき、バッファ2メモリ002に現在以上のデータを保持することができなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0147】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0148】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター012よりこの配信中のコンテンツの容量分を減算する。
【0149】
状態24は、バッファ1メモリとバッファ2メモリに現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0150】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低い時、又は、配信クライアント数が多い時に起きる。
【0151】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター020よりこの配信中のコンテンツの容量分を減算する。
【0152】
上記状態1と状態9は、通常の状態である。状態2より状態8と状態10より状態16は、ネットワークキャッシュ004のヒット率が低下したり、クライアント数が増加したりすると起き得る。できるだけ状態1や状態9に近づける様に制御しなければいけない。
【0153】
状態17より状態24は、ネットワークキャッシュ004が非常に不安定な動作をしている。想定していたネットワークキャッシュ004のヒット率やクライアント数を大きく逸脱している可能性がある。上記制御方法実行して利用しうる資源を100%使用して、状態1より状態16に移行しなければいけない。
【0154】
また、アクセス分布は、時間に伴って変化しているので、ネットワークキャッシュ004のコンテンツとコンテンツ要求の分布が合わなくなることがある。その場合は、ネットワークキャッシュ004を所定のスケジュールでランダムにキャッシュリプレースを行うことにより、ネットワークキャッシュ004に保持されているコンテンツの一部をリフレッシュし、現状のコンテンツ要求分布に合わすことができる。
【0155】
同様の効果は、所定のスケジュールでネットワークキャッシュ004の最大保持コンテンツ数、又は、最大保持容量、又は、最大保持コンテンツ数と最大保持容量を制限することでも得られる。
【0156】
また、この様なネットワークキャッシュ004をクライアント001とコントローラ006の間に多段、又は、並列に入れると、ネットワークキャッシュ004の動作はより安定する。
【0157】
【発明の効果】
以上説明したように本願の請求項1、2、3、4、5の発明では、配信システムで空いている資源をネットワークキャッシュが安定な動作を行う為にアサインすることで、安定なコンテンツ配信を実現をすることができる。
【0158】
請求項6、7、8、9、12の発明では、ネットワークキャッシュのヒット率を高め、更に安定なコンテンツ配信を実現をすることができる。
【0159】
請求項10、11の発明では、ネットワークキャッシュのコンテンツの分布をコンテンツ要求分布に合わすことでヒット率を高め、更に安定なコンテンツ配信を実現をすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態におけるブロック図
【図2】従来の配信システムを説明する図
【符号の説明】
001 クライアント
002 バッファ2メモリ
003 外部ネットワーク
004 ネットワークキャッシュ
005 内部ネットワーク
006 コントローラー
007 蓄積デバイス
008 バッファ1メモリ
010 配信ポインター
011 キャッシュフィルポインター
012 バッファ2メモリカウンター
013 キャッシュフィル中コンテンツカウンター
014 保持コンテンツ数カウンター
015 配信中コンテンツカウンター
016 バッファ1メモリカウンター
020 コンテンツ容量カウンター
021 外部転送速度測定手段
022 内部転送速度測定手段1
100 クライアント
102 ネットワークキャッシュ
103 コントローラー
【発明の属する技術分野】
本発明は、連続メディア配信システムの制御方法に関する。
【0002】
【従来の技術】
図2は従来の配信システムの構造を示す図である。
【0003】
100はクライアントであり、007はディスクなどの蓄積デバイスであり、映像データ等の連続メディアのコンテンツデータが蓄積されている。
【0004】
クライアント100は、外部ネットワーク003を通して蓄積デバイス007上のコンテンツ配信要求を行う。
【0005】
外部ネットワーク003と蓄積デバイス007の間には、ネットワークキャッシュ102が挿入されている。ネットワークキャッシュ102は、クライアント100よりのコンテンツ配信要求を受け取り、要求されたコンテンツデータを持っている場合(キャッシュヒットと言う)は、そのコンテンツデータをクライアント100に配信する。クライアント100が要求しているコンテンツデータを持っていない(キャッシュミスヒットと言う)場合は、コンテンツ配信要求をコントローラー103へ転送する。
【0006】
コントローラー103は、コンテンツ配信要求を受け取り、蓄積デバイス007をコントロールし、コンテンツデータを読み出してネットワークキャッシュ102へ出力する。
【0007】
配信を開始した直後より動作を説明する。
【0008】
配信を開始すると、クライアント100よりコンテンツ要求がネットワークキャッシュ102に送られる。
【0009】
配信直後は、ネットワークキャッシュ102にはコンテンツが無いので、キャッシュミスヒットを起こし、蓄積デバイス007より、ネットワークキャッシュ102にコンテンツデータがロードする(このロード動作をキャッシュフィルと言う)様に、コントローラ103にコンテンツ要求を転送する。
【0010】
コントローラ103は、そのコンテンツ要求を受け取り、蓄積デバイス007をコントロールして、要求されたコンテンツを蓄積デバイス007より読み出し、読み出されたコンテンツデータをネットワークキャッシュ102にロードしてゆく。同時に、ロードされたコンテンツデータは、要求をだしたクライアント100へ配信される。
【0011】
ロード終了後は、そのコンテンツに対する配信要求がクライアント100よりあっても、蓄積デバイス007からでなく、ネットワークキャッシュ102よりそのコンテンツデータが配信される。
【0012】
キャッシュフィルにより、ネットワークキャッシュ102の容量まで、コンテンツがロードされていく。更にキャッシュミスヒットが起きた場合、キャッシュフィルを行おうとするが、新たにコンテンツデータを保持する為の領域(容量)がネットワークキャッシュ102にないので、以前に保持していたコンテンツデータを破棄して、新しいコンテンツデータをロードしていく。この動作をキャッシュリプレースと言う。
【0013】
この様に、ネットワークキャッシュ102が保持するコンテンツの種類は、キャッシュミスヒットが起きる度に変わっていく。
【0014】
従来は、ネットワークキャッシュのヒット率を上げることで応答性や配信システムの安定性を確保しようとしてきた。例えば、特許文献1では、過去のアクセス回数やアクセス時刻に基づいたコンテンツのキャッシュリプレースを行うことで、キャッシュのヒット率を上げている。また、特許文献2では、コンテンツの属性情報、即ち、時刻情報、フレームレートや解像度を用いてキャッシュリプレースを行い、キャッシュのヒット率を上げている。
【0015】
【特許文献1】
特開2000−137642号公報
【特許文献2】
特開2000−209258号公報
【0016】
【発明が解決しようとする課題】
しかしながら上記のような構成では、ネットワークキャッシュのヒット率が低下すると、ネットワークキャッシュのコンテンツのリプレースができない、又はリプレースの速度が遅くなる、更に、クライアントでのコンテンツの要求応答時間が長くなったり、連続して再生されなければいけないコンテンツの再生が途切れるといういう問題点があった。
【0017】
例えば、コンテンツの転送レートが3Mbpsで、再生時間が2時間のコンテンツが100本を配信するシステムを考える。コンテンツの総容量は、270GBとなり、蓄積デバイス007に保持されているとする。
【0018】
通常、クライアントによるコンテンツの選択分布は、Zipf分布で近似される(”Multimedia Servers”, Dinkar Sitaram and Asit Dan著)。Zipf分布は、C/X(1−θ)で表される(Cは定数)。θ=−0.5、ネットワークキャッシュ102のヒット率を90%だとすると、必要なネットワークキャッシュ102の容量は、Y=C/X1.5の曲線で、X=0よりの面積が90%となるコンテンツ約27本分、約73GBとなる。
【0019】
次に、上記ネットワークキャッシュを上記配信システムに適用した時の配信の状態を考えてみる。
【0020】
配信開始直後は、ネットワークキャッシュ102にコンテンツは無いので、クライアント100よりのコンテンツ配信要求に対して、キャッシュミスヒットを起こす。よって、蓄積デバイス007より、ネットワークキャッシュ102へのキャッシュフィルが起きる。キャッシュフィルによりネットワークキャッシュ102に保持されたコンテンツを配信要求を出したクライアント100へ配信される。
【0021】
この様なキャッシュフィルの間にも新たなコンテンツ要求がネットワークキャッシュ102に届く。その場合、キャッシュヒットすることもあり、その時は、ネットワークキャッシュ102より配信が行われる。
【0022】
しかし、大部分のコンテンツ要求は、キャッシュミスヒットし、それらのキャッシュミスヒットによるキャッシュフィルにより、ネットワークキャッシュ102の容量73GBまで、コンテンツがネットワークキャッシュ102にロードされていく。上記システム例では、約27のコンテンツが、ネットワークキャッシュ102内に保持される。
【0023】
更にキャッシュミスヒットが起きた場合、キャッシュフィルを行おうとするが、新たにコンテンツデータを保持する為の領域(容量)がネットワークキャッシュ102にないので、キャッシュリプレースが起きる。
【0024】
この時、ネットワークキャッシュ102に保持されているコンテンツで、配信中でなく、且つ、キャッシュフィル中でないコンテンツがあれば、そのコンテンツを新しい蓄積デバイス007よりのコンテンツにリプレースする。
【0025】
しかしながら、ネットワークキャッシュ102に保持されている27のコンテンツが、すべて配信中かキャッシュフィル中ならば、キャッシュリプレースはできない。よって、ネットワークキャッシュ102内の何れかのコンテンツの配信とキャッシュフィルが終了するまで、キャッシュリプレース動作が停止してしまい、クライアントよりの要求応答時間が長くなり、安定した配信ができなくなる。
【0026】
この様な状況は、ネットワークキャッシュのヒット率が低下した時に起こりやすい。キャッシュミスヒットが増え、キャッシュフィル中のコンテンツが増し、結果的にキャッシュのリプレースができなくなる可能性があるからである。上記例、ネットワークキャッシュ102の容量が73GBある場合で、ネットワークキャッシュ102のヒット率が90%から70%になった場合を考える。例えば、100個のコンテンツ要求に対し、70個のコンテンツ要求にはキャッシュがヒットするが、残り30個のコンテンツ要求に対してはキャッシュヒットしない。ネットワークキャッシュ102内に27のコンテンツまでしか保持できないことから、キャッシュのリプレースができなくなる可能性があり、安定した配信ができなくなる。
【0027】
この様に、クライアントのコンテンツ選択分布が変わるだけで、ネットワークキャッシュの安定動作に大きく影響する。
【0028】
また、クライアント100の数が、急に増加した時にも、同様にキャッシュリプレースができなくなる。例えば、100個のクライアント100が同時にコンテンツ要求をすると、ネットワークキャッシュ102のヒット率が90%以上で、平均して10個のクライアント100よりのコンテンツ要求がキャッシュヒットミスし、ネットワークキャッシュ102のリプレースが起きるが、300個クライアント100が同時にコンテンツ要求すると、ネットワークキャッシュ102のリプレースは、平均して30個起こり、キャッシュリプレースができなくなる可能性が高く、安定した配信ができなくなる。
【0029】
特に、ネットワークキャッシュのヒット率や配信クライアント数は、時間と共に大きく変化しうるパラメータであり、これらのパラメータの変化に対してのネットワークキャッシュの安定性は、配信システム実現のキーになりうる。
【0030】
この様な不安定な動作、キャッシュリプレース動作の停止を避けるには、ネットワークキャッシュ102に十分大きな容量を確保して配信中でなく、且つ、キャッシュフィル中でないコンテンツの数が多くし、ネットワークキャッシュのヒット率を十分高く保ち、キャッシュリプレース動作が停止する可能性を小さくするしかなかった。
【0031】
本発明は上記問題点に鑑み、キャッシュのヒット率が低下しても、又は、クライアントの数が増加しても、より安定して連続メディアの配信ができる配信システムを提供するものである。
【0032】
【課題を解決するための手段】
本発明の骨子は、配信システム上で不安定な動作に陥りやすいネットワークキャッシュを安定化させることで、配信システム全体を安定化することを目的とし、その目的の為に、配信システム上で空いている資源を制御してネットワークキャッシュの安定化の為に使用する、又は、ネットワークキャッシュが保持するコンテンツをコンテンツ要求分布に合わす点にある。
【0033】
本願の請求項1の発明は、外部ネットワーク上に接続されている複数のクライアントが各々バッファ2メモリを内蔵しているとし、このクライアントのコンテンツ要求により蓄積デバイス内のコンテンツをクライアントまで配信する配信システムで、蓄積デバイスとバッファ1メモリを制御するコントローラと、コントローラに接続されている内部ネットワークと、内部ネットワークと外部ネットワークに接続されているネットワークキャッシュとで構成された配信システムで、各々の構成要素の状態、すなわち、バッファ1メモリの保持データ量と、バッファ2メモリの保持データ量と、ネットワークキャッシュ内の各々のコンテンツ毎のキャッシュフィルポインターとネットワークキャッシュ内の各々のコンテンツ毎の配信ポインターとネットワークキャッシュのコンテンツデータ量とネットワークキャッシュの保持コンテンツ数とネットワークキャッシュのキャッシュフィル中コンテンツ数とネットワークキャッシュの配信中コンテンツ数と内部ネットワークよりのネットワークキャッシュの入力データの転送速度と外部ネットワークへのネットワークキャッシュの出力データの転送速度の示す値によって、空いている資源を検出し、ネットワークキャッシュが安定に動作する様に蓄積デバイスとバッファ1メモリとネットワークキャッシュを制御することを特徴とする配信システムである。
【0034】
本願の請求項2の発明は、キャッシュフィルポインターの値とそのコンテンツの配信ポインターの値より、キャッシュフィルがすぐに終了しないコンテンツのキャッシュフィルに対しては、配信ポインターがアンダーフローを起こさない様にキャッシュフィルの転送速度を低く制御し、キャッシュフィルが終了しそうなコンテンツに対しては、キャッシュフィルの転送速度を高く制御することを特徴とする配信システムである。
【0035】
本願の請求項3の発明は、コンテンツ毎に、キャッシュフィルポインターの値とそのコンテンツの配信ポインターの値で、キャッシュフィル及び配信が終了した領域をキャッシュリプレースにアサインすることを特徴とする配信システムである。
【0036】
本願の請求項4の発明は、クライアント毎に配信コンテンツ、配信経過時間、配信済みコンテンツデータ量を検出してクライアントのバッファ2メモリがオーバーフローを起こさない様に配信の転送速度を高く制御することを特徴とする配信システムである。
【0037】
本願の請求項5の発明は、ネットワークキャッシュが保持するコンテンツ数、データ量を検出してキャッシュリプレースができない時に、コンテンツをネットワークキャッシュに保持しないで直接クライアントに配信することを特徴とする配信システムである。
【0038】
本願の請求項6の発明は、ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツを一定期間のコンテンツアクセス回数とコンテンツデータ量の積をパラメータとして評価して選択することを特徴とする配信システムである。
【0039】
本願の請求項7の発明は、ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツを一定期間のコンテンツがネットワークキャッシュ内に留まっている時間とコンテンツデータ量の積をパラメータとして評価して選択することを特徴とする配信システムである。
【0040】
本願の請求項8の発明は、ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツを一定期間のコンテンツ配信時間をパラメータとして評価して選択することを特徴とする配信システムである。
【0041】
本願の請求項9の発明は ネットワークキャッシュのキャッシュリプレースで、リプレースするコンテンツをコンテンツデータ量を一定期間のコンテンツのリプレース回数+1で割った値をパラメータとして評価して選択する配信システムである。
【0042】
本願の請求項10の発明は ネットワークキャッシュが、所定のスケジュールでランダムにキャッシュリプレースを行うことで、ネットワークキャッシュに保持するコンテンツを部分的にリフレッシュしてコンテンツ要求分布の変化に追従さすことを特徴とする配信システムである。
【0043】
本願の請求項11の発明は ネットワークキャッシュで、所定のスケジュールで最大保持コンテンツ数、又は、最大保持容量、又は、最大保持コンテンツ数と最大保持容量を制限することで、ネットワークキャッシュに保持するコンテンツを部分的にリフレッシュしてコンテンツ要求分布の変化に追従さすことを特徴とする配信システムである。
【0044】
本願の請求項12の発明は 配信システム以外から得られた統計データにより、配信システム起動時にネットワークキャッシュが保持するコンテンツデータの組み合わせを定め、配信システム以外から得られた統計データより作成したデータをコンテンツアクセス記録手段の統計データとすることを特徴とする配信システムである。
【0045】
【発明の実施の形態】
以下本発明の実施例について、図面を参照しながら説明する。
【0046】
図1は本発明の第1の実施形態におけるブロック図を説明している。
【0047】
複数のクライアント001が、外部ネットワーク003に接続されている。各クライアント001は、各々バッファ2メモリ002を接続していて、外部ネットワーク003よりのデータを一時保持できる様になっている。
【0048】
ネットワークキャッシュ004は、外部ネットワーク003と内部ネットワーク005の間に接続されている。ネットワークキャッシュ004は、高速にアクセス可能なキャッシュメモリを内蔵している。また、ネットワークキャッシュ004は、保持しているコンテンツのデータ量を示すコンテンツ容量カウンター020、保持しているコンテンツ数を示す保持コンテンツ数カウンター014、キャッシュフィル動作中のコンテンツの数を示すキャッシュフィル中コンテンツカウンター013、配信動作中のコンテンツ数を示す配信中コンテンツカウンター015、所定時間内に外部ネットワーク003へ転送したデータ量を示す外部転送速度測定手段021、コンテンツ毎でクライアント毎に持っているコンテンツ内の配信されたデータの先頭アドレスを示す配信ポインター010、コンテンツ毎に持っているネットワークキャッシュ004にロードされたコンテンツデータの先頭アドレスを示すキャッシュフィルポインター011、コンテンツを要求しているクライアント001毎に持っているバッファ2メモリ002内のデータ量を示すバッファ2メモリカウンター012を持っている。
【0049】
更に、内部ネットワーク005には、コントローラー006が接続されている。コントローラー006は、蓄積デバイス007とバッファ1メモリ008を接続していて、これらを制御して、蓄積デバイス007よりのデータの読み出しや、バッファ1メモリ008で蓄積デバイス007より読み出したデータを一時保持する。また、蓄積デバイス007よりのデータやバッファ1メモリ008に一時保持したデータを内部ネットワークを通してネットワークキャッシュ004に転送する。更に、所定時間内に内部ネットワーク005へ転送したデータ量を示す内部転送速度測定手段022とバッファ1メモリ008に保持されているコンテンツデータ量を示すバッファ1メモリカウンター016を持っている。また、コントローラー006は、ネットワークキャッシュ004に内蔵されているコンテンツ容量カウンター020、保持コンテンツ数カウンター014、キャッシュフィル中コンテンツカウンター013、配信中コンテンツカウンター015、外部転送速度測定手段021、配信ポインター010、キャッシュフィルポインター011、バッファ2メモリカウンター012の内容を参照できる。
【0050】
蓄積デバイス007は、映像や音声などの連続コンテンツを保持している。
【0051】
次に、配信システムの概略の動作を起動時より説明する。
【0052】
クライアント001は、外部ネットワーク003を経由して各々コンテンツ要求をネットワークキャッシュ004に対して送信する。配信システム起動直後は、通常、ネットワークキャッシュ004は空の状態であるので、ヒット率は0%で、クライアント001よりのコンテンツ要求は、コントローラ006へ送られる。
【0053】
コンテンツ要求を受け取ったコントローラー006は、蓄積デバイス007を制御して、要求されたコンテンツを蓄積デバイス007より読みとり、内部ネットワーク005経由でネットワークキャッシュ004に転送する。蓄積デバイス007よりコンテンツデータを読む時、コントローラー006は、所定の長さのデータを連続的に読む様に制御する。一般に、ディスクよりデータを読み出す時は、読み出したデータを転送する時間以外にオーバーヘッド時間と呼ばれる時間がかかる。オーバーヘッド時間は、大きく分けて2つの部分に分かれる。1つは、ディスク上の要求されているデータの保持されている領域へ再生ヘッドを移動する時間である。他の1つは、通常、ディスクは回転していることから、再生ヘッドが要求されたデータの先頭位置の角度がくるまで回転を待つ時間が必要である。この再生ヘッド又は記録ヘッドの移動のことをシークと呼び、シークにかかる時間をシーク時間を呼んでいる。この2つの時間を加えた時間がオーバーヘッド時間と言われている。ここでは、連続的にコンテンツを読むことで、データ当たりの蓄積デバイス007のオーバーヘッド時間を小さくして読み出しデータの実効的な転送速度の低下を最小限度に押さえる効果がある。この長さをチャンク長と呼び、通常、コンテンツのデータ量に比べ小さな量、数百〜数千セクター程度の長さとなる。またこの時、内部ネットワーク005にコンテンツデータを転送する毎に内部転送速度測定手段022内のカウンターをインクリメントしてゆく。内部転送速度測定手段022内のカウンターは、所定の時間毎に内部転送速度測定手段022内に値を保持された後にリセットされる。
【0054】
また、転送すべきコンテンツデータが多く、内部ネットワーク005がすぐに使用できない時は、一時バッファ1メモリ008に保持し、内部ネットワーク005が使用できる様になり次第、ネットワークキャッシュ004に転送する。通常、内部ネットワーク005の最大転送速度より蓄積デバイス007の転送速度の方が速いので、チャンク長分のコンテンツデータを一度に内部ネットワーク005に転送できず、一時バッファ1メモリ008に保持する。この時、バッファ1メモリ008にコンテンツデータが保持される毎に、バッファ1メモリカウンター016がインクリメントされる。また、バッファ1メモリ008より読み出される毎にバッファ1メモリカウンター016がデクリメントされる。
【0055】
バッファ1メモリ008は、最低数チャンク長程度の容量は必要となり、蓄積デバイス007よりのコンテンツデータの保持とネットワークキャッシュ004へ読み出しが同時にできることが必要となる。
【0056】
内部ネットワーク005経由で入力されたコンテンツデータより、そのコンテンツ全体のデータ量のメモリ領域がネットワークキャッシュ004に確保され、コンテンツ容量カウンター020の値は更新され、キャッシュフィル中コンテンツカウンター013がインクリメントされる。その入力されたコンテンツデータは、ネットワークキャッシュ004内に確保された領域に保持される。入力されたコンテンツデータがネットワークキャッシュ004内に保持される毎に、キャッシュフィルポインター011がインクリメントされる。また同時に、入力されたコンテンツデータは、コンテンツ要求を出したクライアント001に配信され、配信ポインター010と外部転送速度測定手段021内のカウンターがインクリメントされる。外部転送速度測定手段021内のカウンターは、所定の時間毎に値を外部転送速度測定手段021内に保持された後にリセットされる。
【0057】
以降、同じコンテンツが要求された時は、ネットワークキャッシュ004内に要求されたコンテンツデータがあるので、ネットワークキャッシュ004より要求したクライアント001へコンテンツデータが配信される。この時、配信中コンテンツカウンター015をインクリメントする。また、配信コンテンツデータを外部ネットワーク003に転送する毎にクライアント毎にある配信ポインター010と外部転送速度測定手段021内カウンターを更新してゆく。外部転送速度測定手段021内カウンターは、所定の時間毎に外部転送速度測定手段021内に値を保持された後リセットされる。
【0058】
1つのコンテンツデータのキャッシュフィルが完了したら、保持コンテンツ数カウンター014がインクリメントされ、キャッシュフィル中コンテンツカウンター013がデクリメントされる。
【0059】
内部ネットワーク005に必要な転送レートは、1つのコンテンツのキャッシュフィル時間が、クライアント001よりのコンテンツ要求がミスヒットする時間間隔が等しい時、即ちキャッシュフィル中のコンテンツ数が平衡することより求められる。Tfillを内部ネットワーク005の転送速度、Cconを平均コンテンツデータ量、Hをネットワークキャッシュ004のヒット率、Siをクライアント001の単位時間当たりの増加率とすると、1つのコンテンツのキャッシュフィル時間はTfill/Cconであり、クライアント001よりのコンテンツ要求がミスヒットする時間間隔は(1−H)/Siであるので、
Tfill=Ccon×(1−H)/Si
となる。Cconを2.7GB、Hを90%、Siを1秒とすると、Tfillは、約2.16Gbps必要となる。
【0060】
配信されたコンテンツデータは、一旦バッファ2メモリ002に保持される。バッファ2メモリ002に所定のコンテンツデータがたまった後、FIFO動作にてバッファ2メモリ002より読み出され、所定の速度でデコードされて映像や音声などになる。
【0061】
バッファ2メモリカウンター012は、コンテンツ要求したクライアント001毎あり、所定の量のコンテンツデータがバッファ2メモリ002にたまるデータ量を、配信経過時間と配信ポインター010の示すアドレス、即ち配信済みコンテンツデータ量と配信しているコンテンツのデコード速度、即ち再生転送速度より演算し、バッファ2メモリカウンター012の値とする。また、バッファ2メモリカウンター012の代わりにコンテンツ要求したクライアント001にバッファ2メモリ002にたまっているコンテンツデータの量を報告させても良い。
【0062】
1つの配信が完了したら、配信中コンテンツ数カウンター015が、デクリメントされる。
【0063】
最初の配信が終了するまでに必要なネットワークキャッシュ004の容量は、配信終了までにキャッシュフィルで必要なデータ量がネットワークキャッシュ004の容量を超えないことから求められる。配信の転送速度をTdist、ネットワークキャッシュ004の容量をCcashとすると、最初の配信が終了する時間はCcon/Tdist、キャッシュフィルで保持データ量が増える速さは
((1−H)/Si)×Cconであるので、
(Ccon/Tdist)×((1−H)/Si)×Ccon<Ccash
となる。ここでは、ヒット率は計算を簡単にする為、一定としている。Cconを2.7GB、Hを90%、Siを1秒、Tdistを再生の転送速度の10倍の30Mbpsとすると、Ccashは、最低194.4GB以上必要となる。実際は、ヒット率は、最初0%で、徐々に増えていき、コンテンツ194.4GBになると、θ=−0.5のZipf分布で98.0%になる。
【0064】
しかし、ネットワークキャッシュ004起動時に、何らかのコンテンツをネットワークキャッシュ004に保持されていれば、起動時のヒット率は0%ではない。例えば、72GB分のコンテンツがランダムに保持されていれば、72/270=27%のヒット率はある。更に、何らかの統計情報、例えば、ヒットチャートのデータなどを基にして保持するコンテンツを選択すれば、更にヒット率は高くなる。また、ヒット率が高くなるにつれて、ネットワークキャッシュ004に必要な容量も減っていく。
【0065】
その後コンテンツ要求に対してミスヒットが起きると、新たにキャッシュフィルするコンテンツデータに対するネットワークキャッシュ004内のメモリ領域が確保できなくなる。そこで、ネットワークキャッシュ004内で、キャッシュフィルが完了していて、配信していないコンテンツメモリ領域を探し、新しくキャッシュフィルを行うコンテンツデータのメモリ領域とするキャッシュリプレースを行う。
【0066】
リプレースを行うネットワークキャッシュ004内のコンテンツの選択は、ランダムに選択するよりも、何らかの統計情報を基に選択する方が、ヒット率が高くなる。
【0067】
例えば、ネットワークキャッシュ004内に過去に配信されたコンテンツを記録するコンテンツ配信統計記録手段を設け、過去一定期間のコンテンツの配信回数とそのコンテンツのデータ量の積をパラメータとして、そのパラメータが小さいコンテンツを選ぶとヒット率が高くなる。コンテンツのデータ量をパラメータとしたのは、再びキャッシュフィルした時のコスト、即ち、内部ネットワーク005の転送レート及びキャッシュフィル時間を考慮したためである。
【0068】
また、他のパラメータ例として、過去一定期間のコンテンツのネットワークキャッシュ保持時間とそのコンテンツのデータ量の積をパラメータとして、そのパラメータが小さいコンテンツを選ぶ、又は、過去一定期間のコンテンツの配信時間をパラメータとして、そのパラメータが小さいコンテンツを選ぶ、又は、コンテンツのデータ量を過去一定期間のコンテンツのリプレース回数+1で割った値をパラメータとして、そのパラメータが小さいコンテンツを選ぶ、などがある。
【0069】
次に、最初のキャッシュリプレースが起きてからの配信システムの制御方法を説明する。(表1)から(表4)は、配信システムの状態を5つのパラメータで示し、その状態に対する制御方法を表している。
【0070】
【表1】
【0071】
【表2】
【0072】
【表3】
【0073】
【表4】
【0074】
尚、表中、ネットワークキャッシュをキャッシュ、バッファ1メモリをバッファ1、バッファ2メモリをバッファ2と略している。
【0075】
(表1)から(表4)で、バッファ1容量のパラメータの項は、×はバッファ1メモリカウンター016の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0076】
(表1)から(表4)で、内部ネットワーク転送速度のパラメータ項は、×は内部転送速度測定手段022の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0077】
(表1)から(表4)で、キャッシュ容量のパラメータ項は、×はコンテンツ容量カウンター020の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0078】
(表1)から(表4)で、キャッシュ転送中コンテンツ数のパラメータ項は、×はキャッシュフィル中コンテンツカウンター013の示す値と配信中コンテンツカウンター015の示す値の和と保持コンテンツ数カウンター014が示す値の差が所定の値(スライス値)を超えた状態を示し、○は下回った状態を示している。
【0079】
(表1)から(表4)で、バッファ2容量のパラメータ項は、×は、何れかのクライアント001のバッファ2メモリカウンター012の示す値が所定の値(スライス値)を超えた状態を示し、○は所定の値を下回った状態を示している。
【0080】
もちろん、上記各スライス値はヒステリシスを持って良いし、キャッシュフィル中コンテンツカウンター013の示す値と配信中コンテンツカウンター015の示す値の和と、保持コンテンツ数カウンター014が示す値の比較においても、ヒステリシスを持っていても良い。
【0081】
また、上記各スライス値を複数持っていて、制御を段階的に強くしても良い。キャッシュフィル中コンテンツカウンター013の示す値と配信中コンテンツカウンター015の示す値の和と保持コンテンツ数カウンター014が示す値の差の比較においても、同様である。
【0082】
以下に各状態を説明してゆく。
【0083】
状態1は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワークは、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツを保持できなく、保持中のコンテンツは、全ては配信中ではない状態にある。
【0084】
この状態は、通常起こりうる状態で、新たなコンテンツリクエストが来ると、コンテンツのリプレースが起きる。
【0085】
状態2は、バッファ1メモリ008に更に多くのデータを保持することができなくて、バッファ2メモリ002に更に多くのデータを保持することができ、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0086】
この状態は、通常起こりうる状態で、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送レートが大きくて、一時コンテンツをバッファ1メモリ008に保持した時に起きる。
【0087】
制御方法としては、内部ネットワーク005の転送レートに余裕があるので、コントローラ006が、バッファ1メモリ008より内部ネットワーク005により速く転送する様に制御する。新たにキャッシュミスヒットが生じた時は、ネットワークキャッシュ004は、キャッシュリプレースを行う。
【0088】
状態3は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータを保持することができ、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツの保持ができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0089】
この状態は、通常起こりうる状態で、特に、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送レートが大きくて、内部ネットワーク005の転送能力いっぱいまで使用した時に起きる。
【0090】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0091】
状態4は、バッファ1メモリ008に現在以上のデータを保持することができなくて、バッファ2メモリ002は更に多くのデータが保持することができ、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持することができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0092】
この状態は、通常起こりうる状態で、特に、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送レートが大きくて、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持した時に起きる。
【0093】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、バッファ1メモリ008がオーバーフローする可能性もあるので、コントローラー006は、蓄積デバイス007よりの読み込みを一時中断する。
【0094】
状態5は、バッファ1メモリ008に更に多くのデータを保持することができ、何れかのクライアント001のバッファ2メモリ002は更に多くのデータを保持することができなく、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツの保持ができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0095】
この状態は、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0096】
この場合、バッファ2メモリ002がオーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。
【0097】
状態6は、バッファ1メモリ008に更に多くのデータを保持することができなく、何れかのクライアント001のバッファ2メモリ002は現在以上のデータを保持することができなく、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツを保持することができなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0098】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速くて、一時コンテンツをバッファ1メモリ008に保持して、且つ、ネットワークキャッシュ004より何れかのクライアント001への配信の転送レートが大きい時に起きる。
【0099】
この場合、バッファ1メモリ008、バッファ2メモリ002が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断し、ネットワークキャッシュ004は、バッファ2メモリ002がオーバーフローしそうなクライアント001への配信の転送レートを下げる。
【0100】
状態7は、バッファ1メモリ008に更に多くのデータが保持でき、バッファ2メモリ002には現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0101】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい特に起きる。
【0102】
この場合、バッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、バッファ2メモリ002がオーバーフローしそうなクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0103】
状態8は、バッファ1メモリ008とバッファ2メモリ002に現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以上のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中ではない状態にある。
【0104】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0105】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0106】
状態9は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態にある。
【0107】
この状態は、通常起こり得る状態で、ネットワークキャッシュ004のヒット率が高い時に起きる。特に処理はない。
【0108】
状態10は、バッファ1メモリ008に現在以上のデータが保持できなく、バッファ2メモリ002は更に多くのデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態にある。
【0109】
この状態は、通常起こり得る状態で、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、処理しきれずに、一時コンテンツをバッファ1メモリ008に保持した時に起きる。
【0110】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、より多くの内部ネットワーク005の転送レートをキャッシュフィルにアサインする。
【0111】
状態11は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0112】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用している時に起きる。
【0113】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0114】
状態12は、バッファ1メモリ008に現在以上のデータが保持できなく、バッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0115】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持する時に起きる。
【0116】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0117】
状態13は、バッファ1メモリ008に更に多くのデータが保持でき、何れかのクライアント001のバッファ2メモリ002に現在以上のデータが保持できず、内部ネットワーク005に更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0118】
この状態は、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0119】
この場合、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。
【0120】
状態14は、バッファ1メモリ008とバッファ2メモリ002に現在以上のデータが保持できなく、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0121】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、処理しきれずに一時コンテンツをバッファ1メモリ008に保持し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0122】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、より多くの内部ネットワーク005の転送レートをキャッシュフィルにアサインする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。
【0123】
状態15は、バッファ1メモリ008にデータが保持でき、何れかのクライアント001のバッファ2メモリ002に現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0124】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0125】
この場合、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0126】
状態16は、バッファ1メモリ008とバッファ2メモリ002に現在状のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツより更に多くのコンテンツは保持でき、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0127】
この状態は、バースト的に蓄積デバイス007よりコンテンツを読んだ場合に、蓄積デバイス007よりの転送が速く、内部ネットワーク005の転送能力いっぱいまで使用し、それでも転送しきれずに、一時コンテンツをバッファ1メモリ008に保持し、且つ、ネットワークキャッシュ004よりクライアント001への配信の転送レートが大きい時に起きる。
【0128】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、ディスクのコンテンツ読み込みを一時中断しする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。
【0129】
状態17は、バッファ1メモリ008とバッファ2メモリ002にデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量は、現在キャッシュフィル中のコンテンツ以外のコンテンツを保持することができなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。この状態は、ネットワークキャッシュ004の容量が小さい時、又は、配信クライアント数が多い時に起きる。
【0130】
この場合、内部ネットワーク005の転送レートに余裕があるので、コントローラー006は、蓄積デバイス007のコンテンツ読みとりの転送レートを上げて、内部ネットワーク005の転送能力いっぱいまで転送レートをキャッシュフィルにアサインし、キャッシュフィルが早く終了する様にする。また、より多くのコンテンツをバッファ2メモリ002に保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求でキャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワークに転送してクライアント001に配信できる。
【0131】
状態18は、バッファ1メモリ008に現在以上のデータが保持できなくて、バッファ2メモリ002にデータが保持でき、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツを保持することができなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0132】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信数が多い時に起きる。
【0133】
この場合、内部ネットワーク005の転送レートに余裕があるので、コントローラー006は、キャッシュフィルにより多くの内部ネットワーク005の転送レートをアサインし、キャッシュフィルが早く終了する様にする。また、より多くのコンテンツをバッファ2メモリ002に保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワークに転送してクライアント001に配信できる。
【0134】
状態19は、バッファ1メモリ008とバッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0135】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0136】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、より多くのコンテンツをバッファ2メモリ002に保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター020よりこの配信中のコンテンツの容量分を減算する。
【0137】
状態20は、バッファ1メモリ008に現在以上のデータを保持することができなく、バッファ2メモリ002にデータが保持でき、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0138】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0139】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、バッファ2メモリ002により多くのコンテンツを保持できるクライアント001があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを上げることで、配信を早く終了できる様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター020よりこの配信中のコンテンツの容量分を減算する。
【0140】
状態21は、バッファ1メモリ008に更に多くのデータが保持でき、バッファ2メモリ002には現在以上のデータが保持できなく、内部ネットワーク005は、更にコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0141】
この状態は、ネットワークキャッシュ004の容量が小さい時、又は、配信クライアント数が多い時に起きる。
【0142】
この場合、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、内部ネットワーク005の転送レートに余裕があるので、コントローラー006は、ディスクのコンテンツ読みとりの転送レートを上げて、内部ネットワーク005の転送能力いっぱいまで転送レートをキャッシュフィルにアサインし、キャッシュフィルが早く終了する様にする。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。
【0143】
状態22は、バッファ1メモリ008に現在以上のデータを保持することができなく、バッファ2メモリ002に更に多くのデータが保持でき、内部ネットワーク005は、更に多くのコンテンツを転送でき、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0144】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0145】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、キャッシュフィルにより多くの内部ネットワーク005の転送レートをアサインし、キャッシュフィルが早く終了する様にする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、内部ネットワーク005の転送レートに余裕があるので、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。
【0146】
状態23は、バッファ1メモリ008に更に多くのデータが保持でき、バッファ2メモリ002に現在以上のデータを保持することができなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0147】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低下した時、又は、配信クライアント数が多い時に起きる。
【0148】
この場合、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター012よりこの配信中のコンテンツの容量分を減算する。
【0149】
状態24は、バッファ1メモリとバッファ2メモリに現在以上のデータが保持できなく、内部ネットワーク005は、転送能力いっぱいまで転送していて、ネットワークキャッシュ004の容量はフルに近くて現在キャッシュフィル中のコンテンツ以外のコンテンツは保持できなく、保持中のコンテンツは、全てが配信中である状態に近い状態である。
【0150】
この状態は、ネットワークキャッシュ004の容量が小さい時、ネットワークキャッシュ004のヒット率が低い時、又は、配信クライアント数が多い時に起きる。
【0151】
この場合、バッファ1メモリ008が、オーバーフローする可能性があるので、コントローラー006は、蓄積デバイス007のコンテンツ読み込みを一時中断しする。また、特定のクライアント001のバッファ2メモリ002が、オーバーフローする可能性があるので、ネットワークキャッシュ004は、そのクライアント001への配信の転送レートを下げる。また、キャッシュフィルが遅れる可能性があるので、コントローラー006は、キャッシュフィル中で且つ配信中のコンテンツで、アンダーフローしそう、即ち、配信ポインター010が、キャッシュフィルポインター011に追いつきそうなコンテンツをネットワークキャッシュ004に報告させ、このコンテンツに内部ネットワーク005の転送レートを優先的に割り当て、そのコンテンツのキャッシュフィルを早く終了させる。それでも、この状態で、新たなクライアント001よりのコンテンツ要求で、キャッシュミスが発生したら、ネットワークキャッシュ004は、そのコンテンツをネットワークキャッシュ004に保持せずに直接外部ネットワーク003に転送してクライアント001に配信する。また、コントローラー006は、そのコンテンツに内部ネットワーク005の転送レートをできるだけアサインする。また、ネットワークキャッシュ004は、ネットワークキャッシュ004内の各コンテンツの保持領域で、キャッシュフィルが終了し、配信が終了した領域が最も大きいコンテンツを配信ポインター010とキャッシュフィルポインター011より演算して求め、その領域を新たなコンテンツの保持領域としてアサインしても良い。この場合は、元の配信中のコンテンツは、保持されていないとみなし、保持コンテンツ数カウンター014をデクリメントし、コンテンツ容量カウンター020よりこの配信中のコンテンツの容量分を減算する。
【0152】
上記状態1と状態9は、通常の状態である。状態2より状態8と状態10より状態16は、ネットワークキャッシュ004のヒット率が低下したり、クライアント数が増加したりすると起き得る。できるだけ状態1や状態9に近づける様に制御しなければいけない。
【0153】
状態17より状態24は、ネットワークキャッシュ004が非常に不安定な動作をしている。想定していたネットワークキャッシュ004のヒット率やクライアント数を大きく逸脱している可能性がある。上記制御方法実行して利用しうる資源を100%使用して、状態1より状態16に移行しなければいけない。
【0154】
また、アクセス分布は、時間に伴って変化しているので、ネットワークキャッシュ004のコンテンツとコンテンツ要求の分布が合わなくなることがある。その場合は、ネットワークキャッシュ004を所定のスケジュールでランダムにキャッシュリプレースを行うことにより、ネットワークキャッシュ004に保持されているコンテンツの一部をリフレッシュし、現状のコンテンツ要求分布に合わすことができる。
【0155】
同様の効果は、所定のスケジュールでネットワークキャッシュ004の最大保持コンテンツ数、又は、最大保持容量、又は、最大保持コンテンツ数と最大保持容量を制限することでも得られる。
【0156】
また、この様なネットワークキャッシュ004をクライアント001とコントローラ006の間に多段、又は、並列に入れると、ネットワークキャッシュ004の動作はより安定する。
【0157】
【発明の効果】
以上説明したように本願の請求項1、2、3、4、5の発明では、配信システムで空いている資源をネットワークキャッシュが安定な動作を行う為にアサインすることで、安定なコンテンツ配信を実現をすることができる。
【0158】
請求項6、7、8、9、12の発明では、ネットワークキャッシュのヒット率を高め、更に安定なコンテンツ配信を実現をすることができる。
【0159】
請求項10、11の発明では、ネットワークキャッシュのコンテンツの分布をコンテンツ要求分布に合わすことでヒット率を高め、更に安定なコンテンツ配信を実現をすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態におけるブロック図
【図2】従来の配信システムを説明する図
【符号の説明】
001 クライアント
002 バッファ2メモリ
003 外部ネットワーク
004 ネットワークキャッシュ
005 内部ネットワーク
006 コントローラー
007 蓄積デバイス
008 バッファ1メモリ
010 配信ポインター
011 キャッシュフィルポインター
012 バッファ2メモリカウンター
013 キャッシュフィル中コンテンツカウンター
014 保持コンテンツ数カウンター
015 配信中コンテンツカウンター
016 バッファ1メモリカウンター
020 コンテンツ容量カウンター
021 外部転送速度測定手段
022 内部転送速度測定手段1
100 クライアント
102 ネットワークキャッシュ
103 コントローラー
Claims (12)
- 複数のクライアントと、
前記クライアントに内蔵されているバッファ2メモリと、
前記クライアントに接続されている外部ネットワークと、
配信すべきコンテンツデータが記録されている蓄積デバイスと、
前記コンテンツデータを一時保持するバッファ1メモリと、
前記蓄積デバイスと前記バッファメモリを接続して制御するコントローラと、前記コントローラに接続されている内部ネットワークと、
前記内部ネットワークと前記外部ネットワークに接続されているネットワークキャッシュと、
前記バッファ1メモリの保持データ量検出手段と、
前記バッファ2メモリの保持データ量検出手段と、
前記ネットワークキャッシュ内の各々のコンテンツ毎のキャッシュフィルポインター検出手段と、
前記ネットワークキャッシュ内の各々のクライアント毎の配信ポインター検出手段と、
前記ネットワークキャッシュのコンテンツデータ量検出手段と、
前記ネットワークキャッシュの保持コンテンツ数検出手段と、
前記ネットワークキャッシュのキャッシュフィル中コンテンツ数検出手段と、
前記ネットワークキャッシュの配信中コンテンツ数検出手段と、
前記内部ネットワークよりの前記ネットワークキャッシュの入力データの転送速度検出手段と、
前記外部ネットワークへの前記ネットワークキャッシュの出力データの転送速度検出手段とを具備し、
前記バッファ1メモリの保持データ量検出手段の示す値と、
前記バッファ2メモリの保持データ量検出手段の示す値と、
前記ネットワークキャッシュ内の各々のコンテンツ毎のキャッシュフィルポインター検出手段の示す値と、
前記ネットワークキャッシュ内の各々のクライアント毎の配信ポインター検出手段の示す値と、
前記ネットワークキャッシュのコンテンツデータ量検出手段の示す値と、
前記ネットワークキャッシュの保持コンテンツ数検出手段の示す値と、
前記ネットワークキャッシュのキャッシュフィル中コンテンツ数検出手段の示す値と、
前記ネットワークキャッシュの配信中コンテンツ数検出手段の示す値と、
前記ネットワークキャッシュの入力データの転送速度検出手段の示す値と、
前記ネットワークキャッシュの出力データの転送速度検出手段の示す値の一部、又はすべてによって、
空いている資源を検出し、
前記空いている資源で、前記ネットワークキャッシュのコンテンツデータ量と、前記ネットワークキャッシュの保持コンテンツ数と、前記ネットワークキャッシュのキャッシュフィル中コンテンツ数と、前記ネットワークキャッシュの配信中コンテンツ数の一部、又は全てを減らす様に制御を行うことを特徴とする配信システム。 - 1つのコンテンツに対応した前記キャッシュフィルポインター検出手段の示す値と、前記1つのコンテンツの配信を受けている全ての前記クライアントに対応する前記配信ポインター検出手段の示す値と、前記1つのコンテンツの配信を受けている全ての前記クライアントの配信の転送速度に応じて、前記1つのコンテンツのキャッシュフィルの転送速度を割り当てることを特徴とする請求項1記載の配信システム。
- 1つのコンテンツに対応した前記キャッシュフィルポインター検出手段の示す値と、前記1つのコンテンツの配信を受けている全ての前記クライアントに対応する前記配信ポインター検出手段の示す値に応じて、前記1つのコンテンツに対応する保持領域の一部をキャッシュリプレースの為の領域とすることを特徴とする請求項1又は請求項2記載の配信システム。
- 前記ネットワークキャッシュが、クライアント毎の配信コンテンツ及び配信経過時間及び配信済みコンテンツデータ量検出手段を具備し、1つの前記クライアントに対応した前記配信コンテンツ及び配信経過時間及び配信済みコンテンツデータ量検出手段の示す配信コンテンツと配信経過時間と配信済みコンテンツデータ量と、前記1つのクライアントに配信しているコンテンツの再生転送速度に応じて前記1つのクライアントの配信転送速度を割り当てることを特徴とする請求項1から請求項3のいずれか1項に記載の配信システム。
- 前記保持コンテンツ数検出手段と、前記保持データ量検出手段と前記キャッシュフィル中コンテンツ数検出手段と、前記配信中コンテンツ数検出手段の示す値に応じて、前記コントローラーよりのコンテンツデータを前記ネットワークキャッシュに保持せずに直接前記クライアントへ配信することを特徴とする請求項1から請求項4のいずれか1項に記載の配信システム。
- 前記ネットワークキャッシュが、前記配信中コンテンツ検出手段より出力される検出データを記録するコンテンツ配信統計記録手段を具備し、一定期間の前記コンテンツ配信統計記録手段の統計データに基づいてキャッシュリプレースを行う配信システムで、前記統計データが、コンテンツアクセス回数とコンテンツデータ量の積である請求項1から請求項5のいずれか1項に記載の配信システム。
- 前記ネットワークキャッシュが、前記配信中コンテンツ検出手段より出力される検出データを記録するコンテンツ配信統計記録手段を具備し、一定期間の前記コンテンツ配信統計記録手段の統計データに基づいてキャッシュリプレースを行う配信システムで、前記統計データが、コンテンツが前記ネットワークキャッシュ内に留まっている時間とコンテンツデータ量の積である請求項1から請求項5のいずれか1項に記載の配信システム。
- 前記ネットワークキャッシュが、前記配信中コンテンツ検出手段より出力される検出データを記録するコンテンツ配信統計記録手段を具備し、一定期間の前記コンテンツ配信統計記録手段の統計データに基づいてキャッシュリプレースを行う配信システムで、前記統計データが、コンテンツ配信時間である請求項1から請求項5のいずれか1項に記載の配信システム。
- 前記ネットワークキャッシュが、前記配信中コンテンツ検出手段より出力される検出データを記録するコンテンツ配信統計記録手段を具備し、一定期間の前記コンテンツ配信統計記録手段の統計データに基づいてキャッシュリプレースを行う配信システムで、前記統計データが、コンテンツデータ量をコンテンツのリプレース回数+1で割った値である請求項1から請求項5のいずれか1項に記載の配信システム。
- 前記ネットワークキャッシュが、所定のスケジュールでランダムにキャッシュリプレースを行うことを特徴とする請求項1から請求項5のいずれか1項に記載の配信システム。
- 前記ネットワークキャッシュで、所定のスケジュールで最大保持コンテンツ数、又は、最大保持容量、又は、最大保持コンテンツ数と最大保持容量を制限することを特徴とする請求項1から請求項10のいずれか1項に記載の配信システム。
- 前記配信システム以外から得られた統計データにより、前記配信システム起動時に前記ネットワークキャッシュが保持するコンテンツデータの組み合わせを定め、前記配信システム以外から得られた統計データより作成したデータを前記コンテンツアクセス記録手段の統計データとすることを特徴とする請求項1から請求項11のいずれか1項に記載の配信システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002309336A JP2004145613A (ja) | 2002-10-24 | 2002-10-24 | 配信システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002309336A JP2004145613A (ja) | 2002-10-24 | 2002-10-24 | 配信システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004145613A true JP2004145613A (ja) | 2004-05-20 |
Family
ID=32455189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002309336A Pending JP2004145613A (ja) | 2002-10-24 | 2002-10-24 | 配信システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004145613A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011010688A1 (ja) * | 2009-07-22 | 2011-01-27 | 日本電気株式会社 | コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信プログラム |
-
2002
- 2002-10-24 JP JP2002309336A patent/JP2004145613A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011010688A1 (ja) * | 2009-07-22 | 2011-01-27 | 日本電気株式会社 | コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信プログラム |
JP5408257B2 (ja) * | 2009-07-22 | 2014-02-05 | 日本電気株式会社 | コンテンツ配信システム、コンテンツ配信方法、コンテンツ配信プログラム |
US9402058B2 (en) | 2009-07-22 | 2016-07-26 | Nec Corporation | Content delivery system, content delivery method and content delivery program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6986019B1 (en) | Method and apparatus for detection and management of data streams | |
US9615125B2 (en) | Method of data management for efficiently storing and retrieving data to respond to user access requests | |
US7237061B1 (en) | Systems and methods for the efficient reading of data in a server system | |
Freedman et al. | The SPIFFI scalable video-on-demand system | |
EP2359536B1 (en) | Adaptive network content delivery system | |
US6988169B2 (en) | Cache for large-object real-time latency elimination | |
JP2003533843A (ja) | バンド幅効率の改善方法 | |
KR20140097924A (ko) | 우선 순위를 가지는 이중 캐싱 방법 및 이를 위한 장치 | |
Chen et al. | Storage allocation policies for time-dependent multimedia data | |
JP2001502458A (ja) | データストリーム供給システム | |
KR20020019597A (ko) | 저장 매체로부터 블록들을 판독하는 방법 및 시스템 | |
KR100746842B1 (ko) | 멀티미디어 서버 | |
JP2004145613A (ja) | 配信システム | |
JP3999440B2 (ja) | コンテンツ管理方法、コンテンツ管理システムおよび記憶媒体 | |
JP2005234794A (ja) | ファイルシステム制御装置 | |
Dey et al. | Storage subsystem in a large multimedia server for high-speed network environments | |
Shim et al. | An Effective Data Placement Scheme to Serve Popular Video On-Demand | |
JP2005508114A (ja) | 家庭用ビデオ・サーバのための受入れ制御システム | |
CN105635747B (zh) | 一种视频缓存方法及装置 | |
Cha et al. | Constructing a video server with tertiary storage: Practice and experience | |
Hamidzadeh et al. | Dynamic scheduling techniques for interactive hypermedia servers | |
JP2003242020A (ja) | キャッシュシステムにおけるコンテンツ選定保持方法及び装置 | |
Lee et al. | Caching Strategies for Continuous-media Servers | |
WO2005119490A2 (en) | Method and system for resource management in a video on-demand server | |
DeWitt | The SPIFFI Scalable Video-on-Demand System |