(A)主たる実施形態
以下では、本発明のコンテンツ配信装置、コンテンツ配信方法及びコンテンツ配信プログラムの実施形態を、図面を参照しながら詳細に説明する。
(A−1)実施形態の構成
図1は、この実施形態に係るコンテンツ配信システムの全体構成及びビデオオンデマンドシステムの内部構成を示す構成図である。
図1において、コンテンツ配信システム100は、ビデオオンデマンドシステム10、ネットワ−クNT、複数の端末装置20−1〜20−k(kは整数)を有する。
複数の端末装置20−1〜20−kは、ネットワ−クNTを介してビデオオンデマンドシステム10に対してコンテンツ配信要求をしたり、ネットワ−クNTを介してビデオオンデマンドシステム10から配信されたコンテンツを受信して出力(表示、音出力等)したりするものである。
ビデオオンデマンドシステム10は、複数のRAID装置R1〜RL(Lは整数)、RAID装置管理サーバ3、複数のマシンM1〜MN(Nは整数)、コンテンツ配信・配置制御サーバ5を有する。
なお、以下では、複数のRAID装置、複数のマシンについて共通の機能構成を説明する場合には、「RAID装置RD」、「マシンM」と表記して説明し、各RAID装置、各マシンを区別して説明する場合には、「RAID装置R1」、「マシンM1」等のように表記して説明する。
複数のマシンM1〜MNのそれぞれには、1又は複数のビデオサーバVSとキャッシュ記憶装置管理サーバCSとが稼働できる状態となっており、1又は複数のキャッシュ記憶装置CDが搭載されている。
なお、以下では、ビデオサーバ、キャッシュ記憶装置について共通の機能構成を説明する場合には、「ビデオサーバVS」、「キャッシュ記憶装置CD」と表記して説明し、各ビデオサーバ、各キャッシュ記憶装置を区別して説明する場合には、「ビデオサーバVS1」、「キャッシュ記憶装置CD1」等のように表記して説明する。
各ビデオサーバVSは、コンテンツ配信・配置制御サーバ5からの指示により、指定のコンテンツを指定のキャッシュ記憶装置CD又はRAID装置RDから読み込み、指定された端末装置20に配信する。各ビデオサーバVSは、同じマシン上に搭載されているキャッシュ記憶装置CDと、全てのRAID装置RDに格納されているコンテンツにアクセス可能である。
コンテンツ配信・配置制御サーバ5は、端末装置20からの配信要求を受けて、要求されたコンテンツの配信をマシンM上で動作するビデオサーバVSに指示するものである。
図4は、この実施形態に係るコンテンツ配信・配置制御サーバ5の機能的な構成を示す構成図である。図4において、コンテンツ配信・配置制御サーバ5は、配信情報管理部51、コンテンツ配置制御部52、コンテンツ配信制御部53、通信部54を有する。
なお、コンテンツ配信・配置制御サーバ5は、CPU、ROM、RAM、EEPROM、入出力インタフェース等を有して構成されるサーバである。CPUが、ROMに格納される処理プログラムを実行することにより、コンテンツ配信・配置制御サーバ5の機能を実現する。なお、処理プログラムは、インストールにより搭載されるようにしても良く、その場合でも図4に示す機能部を示すことができる。
通信部54は、端末装置20からコンテンツ配信要求を受信すると、そのコンテンツ配信要求をコンテンツ配信制御部53に与えたり、ビデオサーバVSから負荷情報(例えば、CPU使用率等)を受信すると、その負荷情報を配信情報管理部51に与えたりするものである。
コンテンツ配信制御部53は、適当なビデオサーバVSを見つけ、ビデオサーバVSに対して、要求元の端末装置20にコンテンツの配信を行なわせるよう指示をするコンテンツ配信制御を行なう。また、コンテンツ配信制御部53は、コンテンツ配信要求の要求元である端末装置20に対して配信応答を行う。
配信情報管理部51は、通信部54から受け取ったビデオサーバVSの負荷情報を管理するものである。負荷情報には、デバイス負荷情報、ビデオサーバ負荷情報、サーバごとコンテンツごとデバイスごと配信情報がある。また、配信情報管理部51は、マシンMとビデオサーバVSとを対応付けたマシン情報も管理する。
図5は、実施形態に係るマシン情報テ−ブルの構成を説明する説明図である。図6は、実施形態に係るデバイス負荷情報テ−ブルの構成を説明する説明図である。図7は、実施形態に係るビデオサーバ負荷情報テ−ブルの構成を説明する説明図である。図8は、実施形態に係るサーバごとコンテンツごとデバイスごとの配信情報テ−ブルの構成を説明する説明図である。
配信情報格納部51は、例えば図5のようなマシンMとビデオサーバVSを対応付けるマシン情報テ−ブルも格納する。例えば、マシン情報テ−ブルは、「マシン名」と「所属するビデオサーバID」とを対応付けている。図5に示すように、マシンM1上には、ビデオサーバVS1、VS2が動作している等のように示す。
デバイス負荷情報については、図6のようなデバイス負荷情報テ−ブルを配信情報管理部51に格納して管理する。図6において、デバイス負荷情報テ−ブルは、例えば、「デバイスID」、コンテンツを格納しているデバイスがRAID装置RDか又はキャッシュ記憶装置CDかを示す「デバイス種類」、「I/Oビジー率(%)」、「ビジー率上限(%)」、「デバイス配信ビットレ−ト上限(Mbps)」、「デバイス配信数上限(本)」、「空き容量(GB)」、「容量(GB)」、コンテンツを格納先の優先度を示す「デバイス優先度」を項目としている。
ビデオサーバ負荷情報については図7のようなビデオサーバ負荷情報テ−ブルを配信情報管理部51に格納して管理する。ビデオサーバ負荷情報テ−ブルは、例えば、「ビデオサーバID」、「CPU使用率(%)」、「CPU使用率上限(%)」、「配信ビットレ−ト上限(Mbps)」、「配信数上限(本)」を項目として有する。
サーバごとコンテンツごとデバイスごと配信情報については図8のようなサーバごとコンテンツごとデバイスごと配信情報テ−ブル(以下、配信情報テ−ブルとも呼ぶ。)を配信情報管理部51に格納して管理する。配信情報テ−ブルは、例えば、「ビデオサーバID」、「コンテンツID」、「デバイスID」、「配信ビットレ−ト(Mbps)」、「配信数(本)」を項目として有する。
コンテンツ配置制御部52は、定期的に、図8に例示する配信情報テ−ブルを検査してRAID装置RDの負荷(例えばCPU使用率等)が高くなったことを検知し、適当なマシンのキャッシュ記憶装置管理サーバCSにキャッシュ作成と不要になったキャッシュの削除を指示することにより、コンテンツ配置制御を行なう。
RAID装置RDは、冗長化とストライピングにより優れた耐故障性と読み書き性能を有し、大量のコンテンツを格納する大容量の記憶装置である。
キャッシュ記憶装置CDは、高速なアクセス機能を持ち、少量のコンテンツを格納する。キャッシュ記憶装置CD上のコンテンツはRAID装置RDに格納されたコンテンツの複製であり、ビデオオンデマンドシステム10内ではコンテンツのキャッシュとして機能する。例えば、キャッシュ記憶装置CDは、SSDやメモリ等を適用することができる。
キャッシュ記憶装置管理サーバCSは、同じマシン上のキャッシュ記憶装置CDのコンテンツ(=キャッシュ)を管理し、コンテンツ配信・配置制御サーバ5のコンテンツ配置制御部52からのキャッシュ作成指示により、RAID装置管理サーバ3を通じてRAID装置RDからマシンM内に配置されるビデオサーバVSに送信されるコンテンツに関して、RAID装置RDのコンテンツの複製を作成し、キャッシュとして格納する。また、キャッシュ記憶装置管理サーバCSは、コンテンツ配信・配置制御サーバ5のコンテンツ配置制御部53からのキャッシュ削除指示により、キャッシュを削除する。
(A−2)実施形態の動作
次に、この実施形態のビデオオンデマンドシステム10におけるコンテンツ配置制御処理及びコンテンツ配信制御処理の動作を、図面を参照しながら詳細に説明する。
(A−2−1)コンテンツ配置制御処理
まず、この実施形態のビデオオンデマンドシステム10におけるコンテンツの配信制御処理について図面を参照しながら詳細に説明する。
図9は、実施形態に係るコンテンツ配置処理を示すフローチャートである。
コンテンツ配信・配置制御サーバ5のコンテンツ配置制御部52は、定期的に、図9に例示するフローチャート処理を行なう。なお、コンテンツ配信・配置制御サーバ5の定期的な実行の時間間隔をΔtとし、以下では時刻tで実行しているとする。
(S1)コンテンツ配置制御部52はキャッシュ作成候補を選択する。ここで、コンテンツ配置制御部52によるキャッシュ作成候補の選択方法は、4個の選択方式がある。そのため、管理者は4個の選択方式の優先度を決めておくようにしてもよい。また、4個の選択方式のうち、いずれの方式を使用するかを決定しておくようにしても良い。
(A−2−1−1)キャッシュ作成候補選択処理
図10は、実施形態に係るキャッシュ候補の選択方式を説明する説明図である。
図10に示すように、この実施形態に係るキャッシュ候補方式の「方式1」は、配信負荷の高いコンテンツを検出したときにキャッシュを開始する。「方式1」のキャッシュ対象のコンテンツは、総配信ビットレ−トが最大のコンテンツとする。
「方式2」は、配信負荷増分の高いコンテンツ(すなわち、単位時間当たりの配信負荷が高いコンテンツ)を検出したときにキャッシュを開始する。「方式2」のキャッシュ対象のコンテンツは、総配信ビットレ−トの増分が最大のコンテンツとする。
「方式3」は、配信負荷の高いRAID装置RDを検出したときにキャッシュを開始する。「方式3」のキャッシュ対象のコンテンツは、配信負荷の高いRAID装置RDの中で、総配信ビットレ−トが最大のコンテンツとする。
「方式4」は、配信負荷増分の高いRAID装置RDを検出したときにキャッシュを開始する。「方式4」のキャッシュ対象のコンテンツは、配信負荷増分の高いRAID装置RDの中で、総配信ビットレ−トが最大のコンテンツとする。
図11〜図13は、コンテンツ配置制御部52によるキャッシュ候補の選択処理を示すフローチャートである。
(S1−1)まず、管理者等により、コンテンツ配置制御部52がキャッシュ候補の選択方式として使用する方式の選択や、複数の方式を使用する場合にその方式の優先度の設定を選択方式リストに行う。
例えば、「方式4」、「方式1」、「方式3」の順に優先し、「方式2」は無効にしたい場合には、「方式1:2」,「方式2:0」、「方式3:3」、「方式4:1」等のように選択方式リストに設定するようにしても良い。コンテンツ配置制御部52は、このように決められた優先度の高い順に選択方式をソートし、選択方式リストを作成する。上の例では、選択方式リストは(方式4,方式1,方式3)のようにソートする。
(S1−2)コンテンツ配置制御部52は、選択方式リストの先頭を取り出す。例えば、上記例の場合、コンテンツ配置制御部52は、「方式4」を取り出し、選択方式リストは(方式1,方式3)のようになる。
(S1−3)取り出した方式が「方式1」であるかを判断する。
(S1−4)例えば、取り出した方式が「方式1」の場合、コンテンツ配置制御部52は、次式(1)、式(2)により、時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信される各コンテンツについての配信ビットレ−トの和f
B(c,t)と配信数の和f
N(c,t)を計算する。
ここで、fB(c,t)は、時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツの配信ビットレ−トの和を示す。
また、fN(c,t)は、時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツの配信数の和を示す。
Br(v,r,c,t)は、時刻tにおけるサーバID=vのビデオサーバによりデバイスID=rのRAID装置RDのデバイスから端末装置20に配信されるコンテンツI=cのコンテンツの配信ビットレ−トを示す。Br(v,r,c,t)は、図8の配信情報テ−ブルから取得することができる。
Num(v,r,c,t)は、時刻tにおけるサーバID=vのビデオサーバVSによりデバイスID=rのRAID装置RDのデバイスから端末装置20に配信されるコンテンツID=cのコンテンツの配信数を示す。Num(v,r,c,t)は、図8の配信情報テ−ブルから取得することができる。
Vは、全ビデオサーバVSのIDの集合示し、また、Rは全RAID装置RDのデバイスIDの集合を示す。
また、式(1)及び式(2)の右辺の関数「Σ」は、全てのビデオサーバVS、全てのRAID装置RDについての和であることを表す。
(S1−5)コンテンツ配置制御部52は、式(3)が成立するか否かを判断する。式(3)が成立する場合にはS1−6に進み、不成立の場合にはS1−8に進む。
(S1−6) 式(3)が成立する場合、コンテンツ配置制御部52は、「fB(c,t)は時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信ビットレ−トの和」が「管理者が設定するコンテンツの配信ビットレ−ト閾値T1」以上であり、最も配信ビットレ−トの和fB(c,t)が大きくなるコンテンツID=cを選択する。
ここで、T1は管理者が設定するコンテンツの配信ビットレ−ト閾値を示す。
また、式(3)の関数「max」は、コンテンツID=cを変化させたときに最大となる値を表す。
(S1−7)S1−6でコンテンツIDを選択すると、処理を図9に戻す。
(S1−8)コンテンツ配置制御部52は、式(4)が成立するか否かを判断する。式(4)が成立する場合にはS1−9に進み、不成立の場合にはS1−11に進む。
(S1−9)式(4)が成立する場合、コンテンツ配置制御部52は、「fN(c,t)が時刻tにおける全ビデオサーバにより全RAID装置から端末装置に配信されるコンテンツID=cのコンテンツについての配信数の和」が「管理者が設定するコンテンツの配信数閾値T2」以上であり、最も配信数の和fN(c,t)が大きくなるコンテンツID=c」を選択する。ここで、式(4)において、T2は管理者が設定するコンテンツの配信数閾値を示す。
(S1−10)S1−9でコンテンツIDを選択すると、処理を図9に戻す。
(S1−11)式(3)、式(4)の両方とも成り立たず、かつ、選択方式リストが空であるかを判断する。式(3)、式(4)の両方とも成り立たず、かつ、選択方式リストが空でない場合、処理をS1−2へ戻す。
(S1−12)選択方式リストが空である場合、キャッシュ候補のコンテンツのコンテンツIDは「なし」として、図9に処理を戻す。
(S1−13)取り出した方式が「方式2」であるかを判断する。
(S1−14)取り出した方式が「方式2」の場合、コンテンツ配置制御部52は、式(5)及び式(6)により「時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信ビットレ−トの和」と「時刻t−Δtにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信ビットレ−トの和」との差分ΔfB(c,t)を計算する。
さらに、コンテンツ配置制御部52は、「時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信数の和」と「時刻t−Δtにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信数の和」との差分Δf
N(c,t)を計算する。
ここで、
ΔfB(c,t)は、時刻tにおけるコンテンツID=cのコンテンツの配信ビットレ−トの和と時刻t−Δtのそれとの差分を示す。
ΔfN(c,t)は、時刻tにおけるコンテンツID=cのコンテンツの配信数の和と時刻t−Δtのそれとの差分を示す。
(S1−15)式(7)が成立か否かを判断する。式(7)が成立する場合、S1−16に進み、不成立の場合、S1−18に進む。
(S1−16)式(7)が成立する場合、コンテンツ配置制御部52は、「fB(c,t):時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信ビットレ−トの和」と「fB(c,t−Δt):時刻t−Δtにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信ビットレ−トの和」との差分ΔfB(c,t)」が「管理者が設定するコンテンツの配信ビットレ−トの差分閾値T3」以上であり、最も差分ΔfB(c,t)が大きくなるコンテンツID=cを選択する。ここで、T3は管理者が設定するコンテンツの配信ビットレ−ト差分閾値を示す。
(S1−17)S1−16でコンテンツIDを選択すると、処理を図9に戻す。
(S1−18)式(8)が成立か否かを判断する。式(8)が成立する場合、S1−19に進み、不成立の場合、S1−21に進む。
(S1−19)式(8)が成立する場合、コンテンツ配置制御部52は、「fN(c,t):「時刻tにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信数の和」と「fN(c,t−Δt):時刻t−Δtにおける全ビデオサーバVSにより全RAID装置RDから端末装置20に配信されるコンテンツID=cのコンテンツについての配信数の和」との差分ΔfN(c,t)」が、「管理者が設定するコンテンツの配信数の差分閾値T4」以上であり、最も差分ΔfN(c,t)が大きくなるコンテンツID=c」を選択する。ここで、T4は管理者が設定するコンテンツの配信数の差分閾値を示す。
(S1−20)S1−19でコンテンツIDを選択すると、処理を図9に戻す。
(S1−21)式(7)、式(8)の両方とも成り立たず、かつ、選択方式リストが空であるかを判断する。式(7)、式(8)の両方とも成り立たず、かつ、選択方式リストが空でない場合、処理をS1−2へ戻す。
(S1−22)選択方式リストが空である場合、キャッシュ候補のコンテンツのコンテンツIDは「なし」として、図9に処理を戻す。
(S1−23)取り出した方式が「方式3」であるかを判断する。
(S1−24)取り出した方式が「方式3」の場合、コンテンツ配信制御部52は、式(9)、式(10)により、時刻tにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信ビットレ−トの和g
B(r,t)と配信数の和のg
N(r,t)を計算する。
ここで、gB(r,t)は、時刻tにおけるデバイスID=rのRAID装置のデバイスの配信ビットレ−トの和を示す。
gN(r,t)は、時刻tにおけるデバイスID=rのRAID装置のデバイスの配信数の和を示す。
C:全コンテンツIDの集合を示す。
式(9)、式(10)において右辺の関数「Σ」は、全てのビデオサーバ、全てのコンテンツについての和であることを表す。
(S1−25)式(11)が成立か否かを判断する。式(11)が成立する場合、S1−26に進み、不成立の場合、S1−30に進む。
ここでT5は管理者が設定するRAID装置の配信ビットレ−トの閾値を示す。また関数「max」は、rを変化させたときに最大となる値を表す。
(S1−26)式(11)が成立する場合、コンテンツ配置制御部52は、「gB(r,t): 時刻tにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信ビットレ−トの和」が「管理者が設定するRAID装置RDの配信ビットレ−トの閾値T5」以上であり、最も配信ビットレ−トの和gB(r,t)が大きくなるRAID装置RDのデバイスID=rを選択する。ここではデバイスID=r0が選択されたとする。
(S1−27)コンテンツ配置制御部52は、時刻tにおける全ビデオサーバVSによりデバイスID=r
0のRAID装置RDから端末装置20に配信される各コンテンツID=cの配信ビットレ−トの和h
B(r
0,c,t)を次式から計算する。
ここで、右辺の関数「Σ」は、全てのビデオサーバVSについての和であることを表す。
(S1−28)式(12−1)が成立するか否かを判断する。
式(12−1)が成立する場合、コンテンツ配置制御部52は、時刻tにおける全ビデオサーバVSによりデバイスID=r0のRAID装置RDから端末装置20に配信される各コンテンツID=cの配信ビットレ−トの和が最大配信ビットレ−トとなるコンテンツID=cを選択する。
(S1−29)処理を図9に戻す。
(S1−30)式(13)が成立するか否かを判断する。式(13)が成立する場合にはS1−31に進み、不成立の場合にはS1−35に進む。
ここで、T6は管理者が設定するRAID装置の配信数の閾値を示す。
(S1−31)式(13)が成立する場合、コンテンツ配置制御部52は、「gN(r,t):時刻tにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信数の和」が「管理者が設定するRAID装置RDの配信数の閾値T6」以上であり、最も配信数の和gB(r,t)が大きくなるRAID装置RDのデバイスID=rを選択する。ここではデバイスID=r0が選択されたとする。
(S1−32)コンテンツ配置制御部52は、時刻tにおける全ビデオサーバによりデバイスID=r
0のRAID装置RDから端末装置20に配信される各コンテンツID=cの配信数の和h
N(r
0,c,t)を計算する。
(S1−33)式(14−1)によりコンテンツを選択する。
つまり、コンテンツ配置制御部52は、時刻tにおける全ビデオサーバによりデバイスID=r0のRAID装置から端末装置に配信される各コンテンツID=cの配信数の和が最大配信数となるコンテンツID=cを選択する。
(S1−34)処理を図9に戻す。
(S1−35)式(13)が成り立たず、かつ、選択方式リストが空であるかを判断する。式(11)が成り立たず、かつ、選択方式リストが空でない場合、処理をS1−2へ戻す。
(S1−36)選択方式リストが空である場合、キャッシュ候補のコンテンツのコンテンツIDは「なし」として、図9に処理を戻す。
(S1−37)取り出した方式が「方式4」であるかを判断する。
(S1−38)取り出した方式が「方式4」以外の場合、候補のコンテンツのコンテンツIDは「なし」とする。
(S1−39)取り出した方式が「方式4」の場合、コンテンツ配置制御部52は、式(15)により「gB(r,t):時刻tにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信ビットレ−トの和」と「gB(r,t−Δt):時刻t−Δtにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信ビットレ−トの和」との差分ΔgB(r,t)を計算する。
さらに、コンテンツ配置制御部52は、式(16)により「g
N(r,t):時刻tにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信数の和」と「g
N(r,t−Δt):時刻t−Δtにおける全ビデオサーバVSにより各RAID装置RDから端末装置に配信される全コンテンツについての配信数の和」との差分Δg
N(r,t)を計算する。
ここで
ΔgB(r,t)は、時刻tにおけるデバイスID=rのRAID装置RDの配信ビットレ−トの和と時刻t−Δtのそれとの差分を示す。
ΔgN(r,t)は、時刻tにおけるデバイスID=rのRAID装置RDの配信数の和と時刻t−Δtのそれとの差分を示す。
(S1−40)式(17)が成立するか否かを判断する。
ここで、T7は管理者が設定するRAID装置の配信ビットレ−トの差分の閾値を示す。
式(17)が成り立つ場合、コンテンツ配置制御部52は、「ΔgB(r,t):「gB(r,t):時刻tにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信ビットレ−トの和」と「gB(r,t−Δt):時刻t−Δtにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信ビットレ−トの和」との差分」が、「管理者が設定するRAID装置の配信ビットレ−トの差分の閾値T7」以上であり、最も差分ΔgB(r,t)が大きくなるRAID装置ID=r」を選択する。ここでは、例えばRAID装置RDのデバイスID=r0が選択されたとする。
(S1−42)コンテンツ配置制御部52は、式(12)より、時刻tにおけるデバイスID=r0のRAID装置RDから全ビデオサーバVSに配信される各コンテンツID=cの配信ビットレ−トの和hB(r0,c,t)を計算する。
(S1−43)式(17−1)によりコンテンツを選択する。つまり、コンテンツ配置制御部52は、時刻tにおける全ビデオサーバVSによりデバイスID=r
0のRAID装置RDから端末装置20に配信される各コンテンツID=cの配信ビットレ−トの和が最大配信ビットレ−トとなるコンテンツID=cを選択する。
(S1−44)処理を図9に戻す。
(S1−45)式(18)が成立するか否かを判断する。式(18)が成立する場合にはS1−46に進み、不成立の場合にはS1−50に進む。
ここで、T8は管理者が設定するRAID装置の配信数の差分の閾値を示す。
(S1−46)式(18)が成立する場合、コンテンツ配置制御部52は、「ΔgN(r,t):「gN(r,t):時刻tにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信数の和」と「gN(r,t−Δt):時刻t−Δtにおける全ビデオサーバVSにより各RAID装置RDから端末装置20に配信される全コンテンツについての配信数の和」との差分」が、「管理者が設定するRAID装置RDの配信ビットレ−トの差分の閾値T8」以上であり、「最も差分ΔgN(r,t)が大きくなるRAID装置ID=r」を選択する。ここではデバイスID=r0が選択されたとする。
(S1−47)コンテンツ配置制御部52は、式(14)により、時刻tにおける全ビデオサーバVSによりデバイスID=r0のRAID装置RDから端末装置20に配信される各コンテンツID=cの配信数の和hN(r0,c,t)を計算する。
(S1−48)式(18−1)によりコンテンツを選択する。コンテンツ配置制御部52は、時刻tにおける全ビデオサーバによりデバイスID=r
0のRAID装置から端末装置に配信される各コンテンツID=cの配信数の和が最大配信数となるコンテンツID=cを選択する。
(S1−49)処理を図9に戻す。
(S1−50)式(17)、式(18)が成り立たず、かつ、選択方式リストが空であるかを判断する。式(17)、式(18)が成り立たず、かつ、選択方式リストが空でない場合、処理をS1−2へ戻す。
(S1−51)選択方式リストが空である場合、キャッシュ候補のコンテンツのコンテンツIDは「なし」として、図9に処理を戻す。
以上のように、図11〜図13の処理により、コンテンツ配置制御部52は、キャッシュ作成の候補を選択する。
図9に戻る。(S2)では、コンテンツ配置制御部52が、S1の処理のよりキャッシュ作成の候補があるか否かを判断する。キャッシュ作成の候補が無い場合、単にキャッシュを作成せずに処理を終了する(S3)。
(S4)コンテンツ配置制御部52は、キャッシュ作成先候補リストを作成する。
図14は、この実施形態に係るコンテンツ配置制御部52によるキャッシュ作成先候補リストの作成方法を示すフローチャートである。ここでは、S1で、キャッシュ作成の候補がコンテンツID=c0のコンテンツとして説明する。
(S4−1)コンテンツ配置制御部52は、時刻tにおける各マシンID=mの全ビデオサーバVSにより各RAID装置RDから端末装置20に配信されるコンテンツID=c
0の配信数の和の配信数Q
N(m,c
0,t)を計算する。
ここで、Vmは、マシンID=mのマシンで稼動するビデオサーバのIDの集合を示す。また、式(19)の右辺の関数「Σ」は、マシンID=mのマシンMで稼動する全てのビデオサーバVS、全てのRAID装置RDについての和であることを表す。
(S4−2)コンテンツ配置制御部52は、以下の条件((条件1−1)かつ(条件1−2))を満たすマシンを候補マシンリストに抽出する。
(条件1−1)CPU(v)<T9 …(20)
ここで、CPU(v)は、ビデオサーバID=vのビデオサーバのCPU使用率を示す。T9は、管理者が設定するビデオサーバのCPU使用率の上限値を示す。CPU(v)とT9とは、ビデオサーバ負荷情報テ−ブルを参照して得られる。
(S4−3)候補マシンリストが空であるか否かを判断し、空である場合にはS4−4に進み、空でない場合にはS4−6に進む。
(S4−4)候補マシンリストが空の場合、コンテンツ配置制御部52はキャッシュ作成先候補リストを空とする。
(S4−5)処理を図9に戻す。
(S4−6)コンテンツ配置制御部52は、候補マシンリストの各マシンに対して、以下の条件((条件2−1)かつ(条件2−2))を満たすキャッシュ記憶装置CDを候補デバイスリストに抽出する。
ここで、Kは、全てのキャッシュ記憶装置CDのデバイスIDの集合を示す。C(k)は、デバイスID=kに格納された全コンテンツIDの集合を示す。
ここで、Busy(k)は、デバイスID=kのキャッシュ記憶装置CDのI/Oビジー率を示す。T10は、管理者が設定するキャッシュ記憶装置CDのI/Oビジー率の上限値を示す。Busy(k)とT10とは、図6に示すデバイス負荷情報テ−ブルを参照して得られる。
すなわち、コンテンツ配置制御部52は、マシンID=mにおけるキャッシュ記憶装置CDにおいて、コンテンツID=c0のコンテンツが格納されておらず、ビジー率が閾値未満のキャッシュ記憶装置CDを抽出する。
(S4−7)コンテンツ配置制御部52は、式(24)の組からなるキャッシュ作成先候補リストを作成する
ここで、mは、候補マシンリストに含まれるマシンIDを示す。kは、候補デバイスリストに含まれるキャッシュ記憶装置CDのデバイスIDを示す。ただしkは、マシンID=mのマシンに存在するキャッシュ記憶装置CDを示す。
MCPU(m)は、マシンID=mで稼動するビデオサーバVSのCPU使用率の最大値を示し、次式で与えられる。
Pri(k)は、デバイスID=kのキャッシュ記憶装置CDのデバイス優先度を示す。Pri(k)は、図6に示すデバイス負荷情報テ−ブルから得られる。
(S4−8)(S4−9)コンテンツ配置制御部52は、作成したキャッシュ作成先候補リストを、第1キ−、第2キ−、第3キ−でソートして、図9に戻る。
ソートの第1キ−=QN(m,c0,t)の降順
ソートの第2キ−=MCPU(m)の昇順
ソートの第3キ−=Pri(k)の降順
図9に戻る。(S5)では、コンテンツ配置制御部52が、キャッシュ作成先リストが空であるか否かを判断し、空である場合には、キャッシュを作成せず処理を終了する(S6)。
(S7)コンテンツ配置制御部52は、キャッシュ作成先候補リストの先頭要素のマシンMとキャッシュ記憶装置CDとを取り出す。
すなわち、コンテンツID=c0のコンテンツの配信数が、最多のマシンMが選ばれる。これにより、キャッシュ作成後の配信切り替えのとき、RAID装置RDの負荷低減効果が大きくなる。ここでは、マシンID=m0、デバイスID=k0が選ばれたとする。
(S8)コンテンツ配置制御部52は、デバイスID=k0のキャッシュ記憶装置CDの残り容量が、コンテンツID=c0のコンテンツのサイズ以上あるかチェックする。そして、デバイスID=k0のキャッシュ記憶装置CDの残り容量がある場合S9に進む、残り容量がない場合S12に進む。
(S9)コンテンツ配置制御部52は、デバイスID=k0のキャッシュ記憶装置CD上でコンテンツID=c0のコンテンツのキャッシュを作成する。
図15は、実施形態に係るコンテンツ配置処理を説明する説明図である。図15は、マシンID=m0のマシンにおけるキャッシュ記憶装置k0にコンテンID=c0をキャッシュする場合を例示している。また、図5に記載の[1]の数字は図9の「ステップS1」に対応している。
図15に示すように、コンテンツ配置制御部52は、マシンID=m0のマシンにあるキャッシュ記憶装置管理サーバCSm0にコンテンツID=c0のコンテンツのキャッシュをデバイスID=k0のキャッシュ記憶装置k0上に作成するよう指示を与える。
キャッシュ記憶装置管理サーバCSm0はRAID装置管理サーバ3と通信してコンテンツID=c0のコンテンツデ−タを取得して、コンテンツ配置制御部52は、デバイスID=k0のキャッシュ記憶装置CD上でコンテンツID=c0のコンテンツのキャッシュを作成する。
(S10)(S11)対象コンテンツが既にRAID装置RDから配信されていれば、キャッシュ記憶装置CDからのコンテンツ配信に切り替えて、処理を終了する。
例えば、図15において、マシンID=m0のマシンで稼動しているビデオサーバVSのうち、コンテンツID=c0のコンテンツを既にRAID装置から配信しているものがあれば、デバイスID=k0のキャッシュ記憶装置CDからコンテンツ配信へ切り替える。
そのために、コンテンツ配置制御部52は、マシンID=m0のマシンで稼動している全てのビデオサーバVSへデバイスID=k0のキャッシュ記憶装置CDからのコンテンツ配信へ切り替えるよう指示を与える。
(S12)デバイスID=k0のキャッシュ記憶装置CDの残り容量が充分でない場合、コンテンツ配置制御部52はキャッシュ削除候補を選択する。
図16は、実施形態に係るキャッシュ削除候補の選択処理を示すフローチャートである。
(S12−1)キャッシュ作成先でマシンID=m
0のマシンのデバイスID=k
0のキャッシュ記憶装置CDの各コンテンツの配信ビットレ−トの和H
B(m
0,k
0,c,t)と、マシンのマシンID=m
0におけるコンテンツID=c
0のコンテンツの配信ビットレ−トの和Q
B(m
0,c
0,t)を次式から計算する。
ここで、HB(m0,k0,c,t)は、時刻tにおけるマシンID=m0のマシンで稼動するビデオサーバVSがデバイスID=k0のキャッシュ記憶装置CDのデバイスから端末装置20に配信するコンテンツID=c0のコンテンツの配信ビットレ−トの和を示す。
QB(m0,c0,t)は、時刻tにおけるマシンID=m0のマシンで稼動する全てのビデオサーバVSによるコンテンツID=c0のコンテンツのRAID装置RDから端末装置20への配信ビットレ−トの和を示す。
Br(v,k,c,t)は、時刻tにおけるサーバID=vのビデオサーバVSによりデバイスID=kのキャッシュ記憶装置CDから端末装置20に配信されるコンテンツID=c0のコンテンツの配信ビットレ−トを示す。このBr(v,k,c,t)は、図8に示す配信情報テ−ブルから取得することができる。
(S12−2)ここで、後述するように削除候補の判定方法として2種類の方法があるため、コンテンツ配置制御部52は、管理者により決定された方法で削除候補を選択する。削除候補の判定方法は、式(28)に従う方法と、式(29)に従う方法とがあり、コンテンツ配置制御部52は、管理者に設定された式(28)又は式(29)が成立するか否かを判断する。
ここで、T11は、管理者が設定する削除用配信ビットレ−ト閾値を示す。また、式(28)の「min」は、cを変化させたときに最小となる値を表す。
コンテンツ配置制御部52は、式(28)が成立するか否かを判断する。つまり、「HB(m0,k0,c,t):時刻tにおけるマシンID=m0のマシンで稼動するビデオサーバVSがキャッシュ記憶装置CDのデバイスID=k0のデバイスから端末装置20に配信するコンテンツID=cのコンテンツの配信ビットレ−トの和」が、「管理者が設定する削除用配信ビットレ−ト閾値T11」以下であり、HB(m0,k0,c,t)が最小となるコンテンツID=cを選択する。すなわち、配信ビットレ−トが最小でかつ閾値以下のコンテンツを削除する。
ここでT12は、管理者が設定する削除用配信ビットレ−ト差の閾値を示す。
コンテンツ配置制御部52は、式(29)が成立するか否かを判断する。つまり、「QB(m0,c0,t)時刻tにおけるマシンID=m0のマシンで稼動する全てのビデオサーバVSがRAID装置RDから端末装置20に配信するコンテンツID=c0のコンテンツの配信ビットレ−トの和」と「HB(m0,k0,c,t):時刻tにおけるマシンID=m0のマシンで稼動するビデオサーバVSがキャッシュ記憶装置CDのデバイスID=k0のデバイスから端末装置20に配信するコンテンツID=cのコンテンツの配信ビットレ−トの和であり、HB(m0,k0,c,t)」が最小となるコンテンツID=cとの差」が、「管理者が設定する削除用配信ビットレ−ト差閾値:T12」以上であるコンテンツID=cを選択する。
式(29)第1項はマシン(マシンID=m0)におけるキャッシュ対象コンテンツの配信ビットレ−トの和、第2項は同じマシンのキャッシュ対象デバイスの削除対象コンテンツの配信ビットレ−トの和を表す。すなわち、配信ビットレ−トが最小でかつキャッシュ対象との差が閾値以上のコンテンツを削除する。
(S12−3)式(28)又は式(29)が成立するときは、コンテンツ配置制御部52は、式(28)又は式(29)が成立するコンテンツID=cを削除対象のコンテンツIDとして選択する。
(S12−4)式(28)又は式(29)が成立しないとき、コンテンツ配置制御部52は、削除候補がないと判断し、図9に戻る。
図9に戻る。(S13)において、コンテンツ配置制御部52は、削除候補があるか否かを判断する。削除候補がある場合S14に進み、削除候補が無い場合、S5に戻り処理を繰り返す。
(S14)削除候補がある場合(ここでは、例えばコンテンツID=c1が削除候補のコンテンツのIDとする。)、コンテンツ配置制御部52は、さらにその削除候補が配信中か否かを調べる。配信中でなければS17に進み、配信中であればS15に進む。
(S15)コンテンツ配置制御部52は、式(30)、式(31)が成立するRAID装置RDがあるか否かを判断する。
すなわち、マシンID=m0のマシンで稼動しているビデオサーバVSのうち、コンテンツID=c1のコンテンツを既にデバイスID=k0のキャッシュ記憶装置CDから配信されていれば、コンテンツ配置制御部52はRAID装置RDからの配信へ切り替える。
つまり、コンテンツ配置制御部52は、削除候補が配信中のときRAID装置RDへ配信を切り替えるため、式(30)、式(31)が成り立つRAID装置RDがあるか否かを判断する。配信元を切り替えることで、RAID装置RDの負荷が高くなるため、コンテンツ配置制御部52は負荷増加に耐えられるRAID装置RDを探す。式(30)、式(31)を満たすRAID装置RDがなければS5に戻って処理を行い、他のキャッシュ作成先候補を検索する。
ここで、T13は、管理者が設定するRAID装置のI/Oビジー率の上限値を示す。なお、Busy(r)とT13は、図6に示すデバイス負荷情報テ−ブルを参照して得られる。
式(30)、式(31)は、コンテンツID=c1のコンテンツが格納されており、I/Oビジー率が閾値未満のRAID装置を選択することを意図している。
また、式(30)、式(31)が成り立つRAID装置RDが複数あれば、デバイス優先度が最も高いRAID装置を選択するようにする。例えば、ここでは、RAID装置RDのデバイスID=r1が選択されたとする。
(S16)コンテンツ配置制御部52は、式(30)、式(31)が成立するRAID装置RDからの配信に切り替える。
これにより、例えば、図15に示すように、コンテンツ配置・配信制御サーバ5のコンテンツ配置制御部52は、マシンID=m0のマシンで稼動している全てのビデオサーバへデバイスID=r1のRAID装置RDからの配信へ切り替えるよう指示を与える。
(S17)コンテンツ配置制御部52は、当該マシンのキャッシュ記憶装置管理サーバCSに削除指示を与えて、キャッシュ記憶装置CDからキャッシュを削除する。
例えば、図15に示すように、コンテンツ配置制御部52は、マシンID=m0のマシンのキャッシュ記憶装置管理サーバCSへコンテンツID=c1のコンテンツを削除するように指示を与える。その後、S8に処理を戻して空き容量を再度チェックする。
(A−2−2)コンテンツ配信制御処理
次に、実施形態に係るコンテンツ配信制御処理を、図面を参照しながら詳細に説明する。
図17及び図18は、実施形態に係るコンテンツ配信制御処理を示すフローチャートである。
(S100)コンテンツ配信制御部53は、クライアントよりコンテンツ配信要求を受信する。ここではコンテンツID=c0のコンテンツの配信要求を受信するものとする。
(S101)〜(S103)コンテンツ配信制御部53は、指定コンテンツが記憶装置(RAID装置RD)に存在するかを確認し、指定コンテンツがいずれの記憶装置にも存在しない場合は、端末装置に該当コンテンツなしのエラーを返して処理を終了する。
(S104)コンテンツ配信制御部53は、時刻tにおける各ビデオサーバから各端末装置に配信される全コンテンツの配信ビットレ−トの和S
B(v,t)と配信数の和S
N(v,t)を次式から計算する。
ここで、Dは、全てのキャッシュ記憶装置CDとRAID装置RDのデバイスIDの集合を示す。すなわちD=R∪Kである。
SB(v,t)は、時刻tにおけるビデオサーバID=vのビデオサーバVSが配信するコンテンツの配信ビットレ−トの和を示す。
SN(v,t)は、時刻tにおけるビデオサーバID=vのビデオサーバVSが配信するコンテンツの配信数の和を示す。
Br(v,d、c、t)は、時刻tにおけるサーバID=vのビデオサーバVSによりデバイスID=dのデバイス(キャッシュ記憶装置CD又はRAID装置RD)から端末装置20に配信されるコンテンツID=cのコンテンツの配信ビットレ−トを示す。Br(v,d、c、t)は、図8に示す配信情報テ−ブルから得られる。
Num(v,d,c,t)は、時刻tにおけるサーバID=vのビデオサーバVSによりデバイスID=dのデバイス(キャッシュ記憶装置CD又はRAID装置RD)から端末装置20に配信されるコンテンツID=cのコンテンツの配信数を示す。Num(v,d,c,t)は、図8に示す配信情報テ−ブルから得られる。
式(32)及び式(33)の右辺の関数「Σ」は、全てのデバイス(RAID装置RDとキャッシュ記憶装置CD)と全てのコンテンツについての和であることを表す。
(S105)コンテンツ配信制御部53は、以下を満足するビデオサーバVSのIDを候補ビデオサーバリストVLに抽出する。
ここで、式(34)〜式(36)を説明する。
T14は、管理者が設定するビデオサーバVSのCPU使用率の上限値を示す。
T15は、管理者が設定するビデオサーバVSの配信ビットレ−トの上限値を示す。
T16は、管理者が設定するビデオサーバVSの配信数の上限値を示す。
Br(c0)は、ビデオサーバVSから端末装置20に配信されるコンテンツID=c0のコンテンツのビットレ−トを示す。Br(c0)は、端末装置20から1つの配信要求に対するコンテンツを配信するビットレ−トである。
T14、T15、T16は、コンテンツ配信制御部53が、図7に例示するビデオサーバ負荷情報テ−ブルを参照して得られる。
式(34)〜式(36)は、実際にコンテンツ配信を行うビデオサーバVSの状態をチェックするためのものである。
すなわち、コンテンツ配信制御部53は、ビデオサーバVSのCPU使用率が閾値以下であることと、そのビデオサーバVSを配信元に選んだときそのビデオサーバVSの配信数とビットレ−トが予め決定した上限値を超えないこと(そのため、式(36)では、現在の配信数にマ−ジンとして例えば「1」を加算し、配信ビットレ−トにコンテンツのビットレ−トを加算している)を条件にしたとき、コンテンツ配信制御部53は、上記式(34)〜式(36)を条件とし、これら条件を満たすビデオサーバVSを候補として選択し、その選択したビデオサーバのIDを候補ビデオサーバリストVLに設定する。
(S106)〜(S108)コンテンツ配信制御部53は、候補ビデオサーバリストVLが空か否かを判断し、該当するビデオサーバがなければ、クライアントへ配信不可のエラーを返して処理を終了する。
(S109)候補ビデオサーバリストVLが空でない場合、コンテンツ配信制御部53は、少なくとも1個のビデオサーバが候補ビデオサーバリストVLに含まれるマシンをマシンリストに抽出する。
(S110)コンテンツ配信制御部53は、マシンリストの各マシン(マシンID=m)のコンテンツID=c
0のコンテンツの配信数の和P
N(m,c
0,t)を式(37)から計算する。
ここで、PN(m,c,t)は、時刻tにおけるマシンID=m上の全てのビデオサーバVSが各端末装置20に配信するコンテンツID=cのコンテンツの配信数の和を示す。
式(37)の右辺の関数「Σ」は、マシンM上の全てのビデオサーバVSと全てのデバイス(RAID装置RDとキャッシュ記憶装置CD)についての和であることを表す。
PN(m,c0,t)は、式(37)でコンテンツIDについてc=c0と置き換えて計算する。
(S111)コンテンツ配信制御部53は、(m,PN(m,c0,t))の組からなる候補マシンリストMLを作成して、PN(m,c0,t)の降順にソートする。
(S112)コンテンツ配信制御部53は、各デバイス(RAID装置RDとキャッシュ記憶装置CD)の配信ビットレ−トの和gB(d,t)と配信数の和gN(d,t)とを式(9)と式(10)から計算する。ただし、d∈D=R∪Kとする。
(S113)コンテンツ配信制御部53は、以下を満足するデバイス(RAID装置RDとキャッシュ記憶装置CD)のデバイスIDを候補デバイスリストDLに抽出する。
ここで、式(38)は、コンテンツID=c0のコンテンツが格納されたデバイス(RAID装置RDまたはキャッシュ記憶装置CD)であることを示す。
式(39)は、I/Oビジー率が閾値未満のデバイス(RAID装置RDまたはキャッシュ記憶装置CD)であることを示す。
式(40)は、もしコンテンツID=c0のコンテンツを追加で配信したとしても、現在の配信ビットレ−トとコンテンツID=c0のコンテンツの配信ビットレ−トの合計が配信ビットレ−ト上限値以下であることを示す。
式(41)は、もしコンテンツID=c0のコンテンツを追加で配信したとしても、現在の配信本数との合計が配信本数上限値以下であること。ただし、d∈D=R∪Kとする。
ここで、T17は、管理者が設定する各デバイス(RAID装置RDとキャッシュ記憶装置CD)のI/Oビジー率の上限値を示す。
T18は、管理者が設定する各デバイス(RAID装置RDとキャッシュ記憶装置CD)の配信ビットレ−トの上限値を示す。
T19は、管理者が設定する各デバイス(RAID装置RDとキャッシュ記憶装置CD)の配信数の上限値を示す。
T17、T18、T19は、図6に示すデバイス負荷情報テ−ブルを参照して得られる。
すなわち、コンテンツID=c0のコンテンツが格納され、ビジー率が閾値以下で、配信先に選んだとき、そのデバイスの配信数とビットレ−トが予め決められた上限値を超えないこと(そのために、式(41)では、現在の配信数にマ−ジンとして「1」を加算し、配信ビットレ−トにコンテンツのビットレ−トを加算している)を条件にしたとき、式(38)〜式(41)を条件としてこれらの条件を満たすデバイスを候補として選択する。
(S114)〜(S116)コンテンツ配信制御部53は、候補デバイスリストDLが空であるか否かを判断する。そして、候補デバイスリストDLが空の場合、コンテンツ配信制御部53は、端末装置20に配信不可エラーを返して処理を終了する。
(S117)コンテンツ配信制御部53は、ソート後、候補マシンリストMLの先頭にあるマシンを取り出す。
(S118)コンテンツ配信制御部53は、候補マシンリストMLから抽出したマシン(ここでは、例えばマシンID=mとする。)に属する各ビデオサーバ(ここでは、例えば、ビデオサーバID=v,v∈Vm)について、指定コンテンツの配信数の和p
N(v,c
0,t)を式(42)に従って計算する。
ここで、pN(v,c,t)は、時刻tにおけるビデオサーバID=vのビデオサーバVSが各端末装置20に配信するコンテンツID=cのコンテンツの配信数の和を示す。ここでは、pN(v,c0,t)は、式(42)でc=c0と置き換えて計算する。
(S119)コンテンツ配信制御部53は、v(v∈Vm)、d(d∈DL)、p
N(v,c
0,t)、Pri(d)に基づいて、式(43)の組を構成し、配信候補リストを作成する。
ここで、vはマシンID=m上のビデオサーバVSのビデオサーバIDを示す。ただしv∈Vである。
DはビデオサーバID=vのビデオサーバVSが参照できる各デバイス(RAID装置RDとキャッシュ記憶装置CD)のデバイスIDを示す。ただし、d∈Dである。
pN(v,c0,t)は、時刻tにおけるビデオサーバID=vのビデオサーバVSが各端末装置20に配信するコンテンツID=c0のコンテンツの配信数の和である。なお、pN(v,c0,t)は式(42)に従って計算することができる。
Pri(d)は、デバイスID=dのデバイスのデバイス優先度。デバイス負荷情報テ−ブルから得られる。
(S120)コンテンツ配信制御部53は、配信候補リストが空か否かを判断する。配信候補リストが空の場合S121に進み、そうでない場合S124に進む。
(S121)コンテンツ配信制御部53は、候補マシンリストMLが空か否かを判断する。そして、配信候補リストが空であり、かつ、候補マシンリストMLが空でない場合、S117に進み、処理を繰り返す。
(S122)、(S123)一方、配信候補リストが空であり、かつ、候補マシンリストMLも空である場合、コンテンツ配信制御部53は、端末装置20に配信不可エラーを返して処理を終了する。
(S124)コンテンツ配信制御部53は、配信候補リストを、ソートの第1キ−=pN(v,c0,t)の降順、ソートの第2キ−=Pri(d)の降順によりソートする。
(S125)コンテンツ配信制御部53は、S124のソート後の配信候補リストの先頭要素のビデオサーバIDとデバイスIDを取り出す。これらを配信元として選択する。
ここでは、ビデオサーバID=v0,デバイスID=d0が選ばれたとする(d0∈D)。
コンテンツID=c0のコンテンツの配信数が最大のデバイスが選ばれる。
選ばれたデバイスがRAID装置の場合、将来キャッシュ記憶装置にキャッシュを作ったとき、キャッシュからへの配信に切り替えることにより、多くの配信がキャッシュへ移行するためRAID装置の負荷軽減効果を最大化することができる。
また、選択されたデバイスがキャッシュ記憶装置の場合、同じキャッシュ記憶装置に配信が集中する。その結果、あまり使われないキャッシュ記憶装置の配信数はより小さくなるので削除がされやすくなる。キャッシュが削除されると、空いた容量を別のキャッシュの作成に利用できるので、容量の効率がよくなる。
図19は、この実施形態に係るコンテンツ配信の配信負荷を説明する説明図である。図19は、例えば、サーバがN台あり、コンテンツC1の総配信数をMとしている。図19において、C1の総配信数をMの場合を考えると、いずれかのサーバ、例えばサーバ1が集中的にC1を配信する。
図19に示すように、時刻t0でサーバ1にキャッシュが作成されると、RAID装置全体ではM本の負荷が軽減され、従来の図3と場合と比べて、負荷低減効果が大きい。
(S126)コンテンツ配信制御部53は、ビデオサーバID=v0のビデオサーバVSに要求のあった端末装置に対してコンテンツc0をデバイスID=d0のデバイスから配信するよう要求指示する。コンテンツ配信制御部53は、ビデオサーバVSに配信先クライアントアドレス、ポ−ト番号なども通知する。
(A−2−3)キャッシュ作成候補選択処理の具体的な実施形態
[方式1]
まず、図11で説明した方式1のキャッシュ作成候補選択処理について具体的に説明する。
図20〜図23は、方式1のキャッシュ作成候補選択処理を説明する説明図である。
ここでは、マシンは、マシンM1及びM2の2台とし、M1にはビデオサーバVS1が稼働し、M2にはビデオサーバVS2が稼働しているものとする。
また、RAID装置はRAID装置R1及びR2の2台とする。キャッシュ記憶装置は、キャッシュ記憶装置D1、D2、D3、D4の4台とする。コンテンツは、コンテンツC1、C2、C3、C4の4つが存在するとする。
図20は、時刻t1における各RAID装置の状態を示す図であり、図21は、時刻t2におけるRAID装置の状態を示す図である。
時刻t1と時刻t2での各ビデオサーバVS1及びVS2の各RAID装置R1及びR2における各コンテンツの配信ビットレ−トを計算する(単位Mbps)。
図20及び図21は、図8に示す配信情報テ−ブルからRAID装置R1及びR2のデバイスの配信ビットレートのデータのみ抽出したものに相当する。また、閾値T1は200Mbpsとし、キャッシュはどれも作られていないとする。
例えば、図20では、コンテンツC1について、ビデオサーバVS1のRAID装置R1からコンテンツC1が「10(Mbps)」配信されており、ビデオサーバVS1のRAID装置R2からコンテンツC1が「60(Mbps)」配信されており、ビデオサーバVS2のRAID装置R1からコンテンツC1が「30(Mbps)」配信されており、ビデオサーバVS3のRAID装置R2からコンテンツC1が「40(Mbps)」配信されている等のように示している。他のコンテンツC2〜C4についても同様である。
なお、ここでは説明を簡単にするために、コンテンツの配信ビットレ−トについて例示して説明するが、配信ビットレ−トだけでなく、コンテンツの配信本数について注目しても同様に適用することができる。
方式1の場合、コンテンツ配置制御部52は、図22に示すように、時刻t1におけるRAID装置の配信状態に基づいて、各コンテンツごとの配信ビットレ−ト和fBを計算する。
C1:fB(C1,t1)=10+60+30+40=140
C2:fB(C2,t1)=50+20+70+75=215
C3:fB(C3,t1)=1+6+3+4=14
C4:fB(C4,t1)=5+2+7+8=22
そうすると、上記の各コンテンツの配信ビットレ−ト和fBより、コンテンツC2が最も配信ビットレ−トが高いことが分かる。このことは、コンテンツC2が最も端末装置20への配信が多く(すなわち、人気が高く)、かつ、閾値200Mbpsを超えている。そのため、方式1によれば、コンテンツ配置制御部52は、コンテンツC2をキャッシュ対象のコンテンツとして選択する。
[方式2]
図24は、方式2のキャッシュ作成候補選択処理を説明する説明図である。図24においても、ビデオサーバVS1、VS2及びRAID装置R1、R2の構成及び配信状態は方式1の場合と同様とする。
また、閾値T3は200Mbpsとして、キャッシュはどれも作られていないものとする。ここでも、配信ビットレ−トのみを説明するが、配信本数に注目しても適用することができる。
図24(A)は時刻t1における配信状態であり、図24(B)は時刻t2における配信状態を示す。
コンテンツ配置制御部52は、時刻t2において、それぞれのコンテンツについて、各ビデオサーバVS1及びVS2の各RAID装置R1及びR2の時刻2における配信状態と時刻t1における配信状態との差分を計算する。
図24(C)は、時刻t2と時刻t1との差分結果を示している。コンテンツ配置制御部52は、各コンテンツ毎、各デバイス(ここでは、RAID装置を意図する。)毎に、時刻t2における差分ΔfBを計算する。
次に、以下のようにコンテンツごとの差分の和を計算する。
C1:ΔfB(C1,t2)=(9−10)+(61−60)+(29−30)+(39−40)=−2
C2:ΔfB(C2,t2)=(51−50)+(21−20)+(71−70)+(76−75)=4
C3:ΔfB(C3,t2)=(61−1)+(16−6)+(73−3)+(54−4)=190
C4:ΔfB(C4,t2)=(25−5)+(52−2)+(97−7)+(48−8)=200
そうすると、図24(D)に示すように、各コンテンツ毎、各デバイス毎の時刻t2における差分ΔfBより、コンテンツC2が(t2−t1)時間で、最も配信ビットレ−トが上昇したことがわかる。このことは、(t2−t1)時間の中で、コンテンツC2が最も端末装置20への配信が上昇し(すなわち、人気が高く)、かつ、閾値200Mbpsを超えている。そのため、方式2によれば、コンテンツ配置制御部52は、コンテンツC2をキャッシュ対象のコンテンツとして選択する。
[方式3]
図24は、方式3のキャッシュ作成候補選択処理を説明する説明図である。図24においても、ビデオサーバVS1、VS2及びRAID装置R1、R2の構成及び配信状態は方式1の場合と同様とする。
また、閾値T5は200Mbpsとし、キャッシュはどれも作られていないとする。ここでも、配信ビットレ−トのみを説明するが、配信本数に注目しても適用することができる。
まず、コンテンツ配置制御部52は、図24(A)に示すように、RAID装置R1、R2毎に配信ビットレ−ト和gBを計算する。
R1:gB(R1,t1)=10+50+1+5+30+70+3+7=176
R2:gB(R1,t1)=60+20+6+2+40+75+4+8=215
そうすると、RAID装置R2に人気コンテンツが集中しており、かつ、閾値200Mbpsを超えているので、コンテンツ配置制御部52はRAID装置R2をキャッシュの対象のデバイスとして選択する。
次に、コンテンツ配置制御部52は、図24(B)に示すように、RAID装置R2が配信している各コンテンツについて、各コンテンツ毎の配信ビットレ−トhBを計算する。
C1:hB(R2,C1,t1)=60+40=100
C2:hB(R2,C2,t1)=20+75=95
C3:hB(R2,C3,t1)=6+4=10
C4:hB(R2,C4,t1)=2+8=10
そうすると、キャッシュ対象のデバイスであるRAID装置R2が配信しているコンテンツの中で、コンテンツC1の配信ビットレ−トが最も高いため、コンテンツ配置制御部52は、コンテンツC1をキャッシュすればRAID装置R2の負荷を最大限低減できる。
したがって、コンテンツ配置制御部52は、配信ビットレ−トが最大のコンテンツC1をキャッシュの対象のコンテンツとして選択する。
[方式4]
図25は、方式4のキャッシュ作成候補選択処理を説明する説明図である。図25においても、ビデオサーバVS1、VS2及びRAID装置R1、R2の構成及び配信状態は方式1の場合と同様とする。
また、閾値T7は200Mbpsとし、キャッシュはどれも作られていないとする。ここでも、配信ビットレ−トのみを説明するが、配信本数に注目しても適用することができる。
コンテンツ配置制御部52は、時刻t2において、各コンテンツ毎、各デバイス(ここでは、RAID装置を意図する。)毎に、時刻t2における差分ΔfBを計算する。図25(A)は、図23(C)に相当するものである。
次に、コンテンツ配置制御部52は、図25(B)に示すように、時刻t2において、各コンテンツ毎、各RAID装置R1及びR2毎の時刻t1との差分ΔgBを計算する。
R1:ΔgB(R1,t2)=
(9−10)+(51−50)+(61−1)+(25−5)+(29−30)+(71−70)+(73−3)+(97−7)=240
R2:ΔgB(R2,t2)=
(61−60)+(21−20)+(16−6)+(52−2)+(39−40)+(76−75)+(54−4)+(48−8)=152
これにより、コンテンツ配置制御部52は、閾値200Mbpsを超えたRAID装置R1をキャッシュの対象のデバイスとして選択する。つまり、コンテンツ配置制御部52は、RAID装置R1のコンテンツが全体として急速に人気を上昇させており、かつ閾値200Mbpsを超えているため、RAID装置R1をキャッシュの対象のデバイスとして選択する。
次に、コンテンツ配置制御部52は、時刻t2においてRAID装置R1が配信している各コンテンツの配信ビットレ−トhNを計算する。
C1:hN(R1,C1,t2)=9+29=38
C2:hN(R1,C2,t2)=51+71=122
C3:hN(R1,C3,t2)=61+73=134
C4:hN(R1,C4,t2)=25+97=122
そうすると、RAID装置R1の中ではコンテンツC3の配信ビットレ−トが最も高いので、コンテンツC3をキャッシュすれば、RAID装置R1の負荷を最大限低減できる。
したがって、コンテンツ配置制御部52は、配信ビットレ−トが最大のコンテンツC3をキャッシュの対象のコンテンツとして選択する。
[方式1〜方式4の比較]
キャッシュ作成候補の選択方法として、方式1〜方式4の4方式を例示した。ここで、各方式について比較する。
図26は、キャッシュ作成候補選択方式の比較を説明する説明図である。ここでは、ビデオサーバはビデオサーバVS1及びVS2の2台であり、RAID装置はRAID装置R1の1台のみとする。コンテンツは、コンテンツC1〜C10の10個が存在するものとする。また、キャッシュはどれも作られていないとする。ここでは、配信ビットレ−トだけを考えるが、配信本数の場合も同様である。
方式1の閾値T1=20000(Mbps)、方式3の閾値T5=30000(Mbps)とする。
(1)突出して人気の高いコンテンツがある場合
各ビデオサーバVS1、VS2のRAID装置R1における各コンテンツの配信ビットレ−トは、以下のものとする(図26参照、単位Mbps)。
C1:25000
C2:30
C3:30
C4:30
C5:30
C6:30
C7:30
C8:30
C9:30
C10:30
従って、RAID装置R1全体の配信ビットレ−トは25270Mbpsとなる。
図26に示すように、コンテンツC1は突出して配信ビットレ−トが高いので、コンテンツC1をキャッシュすることに意味があることがわかる。
実際、コンテンツC1の配信ビットレ−トはT1を超えるため、コンテンツ配置制御部52は、方式1及び方式3によれば、コンテンツC1をキャッシュ作成候補として選択する。
また、方式2は、所定時間(例えば、(t2−t1)時間)において、急速にアクセス数が上昇したコンテンツがある場合に、そのコンテンツを伸ばしたコンテンツをキャッシュ作成候補として選択する。
(2)中程度の人気コンテンツが多くある場合
図27は、キャッシュ作成候補選択方式の比較を説明する説明図である。ここでは、ビデオサーバはビデオサーバVS1及びVS2の2台であり、RAID装置はRAID装置R1の1台のみとする。コンテンツは、コンテンツC1〜C10の10個が存在するものとする。また、キャッシュはどれも作られていないとする。ここでは、配信ビットレ−トだけを考えるが、配信本数の場合も同様である。
各ビデオサーバVS1、VS2のRAID装置R1における各コンテンツの配信ビットレ−トは以下のようになる(図27参照、単位Mbps)。
C1:4000
C2:3400
C3:3000
C4:3000
C5:2600
C6:2600
C7:2600
C8:3400
C9:2200
C10:3700
従って、RAID装置R1全体の配信ビットレ−トでは30200Mbpsとなる。
このように、上述した(1)の例におけるコンテンツC1ほど突出した人気のコンテンツはなくても、どのコンテンツもそれなりに人気が高く、RAID装置R1全体では上述した(1)より負荷が高く、RAID装置R1の負荷を下げる必要がある。
このような例は、例えばシリーズもののコンテンツを同じデバイス(ここではRAID装置)に投入した場合に発生することがある(例えば、コンテンツC1が連続ドラマの第1話、コンテンツC2が同第2話等の場合に発生し得る)。
この中でコンテンツC1をキャッシュすれば、RAID装置R1の負荷を低減できる。
実際、コンテンツ配置制御部52は、方式1ではどのコンテンツもT1より小さいので検出はできない。しかし、コンテンツ配置制御部52は、方式3によれば、RAID装置R1全体の配信ビットレ−トがT5を超えるため、キャッシュを作成することができる。
また、コンテンツ配置制御部52は、方式4によればRAID装置R1全体で急速にアクセス数を伸ばした複数の人気コンテンツがある場合に検出できる。
(A−2−4)キャッシュ作成先候補選択処理の具体的な実施形態
ここでは、方式1のキャッシュ作成候補選択処理により、コンテンツC2を、キャッシュ対象のコンテンツとして選択した場合を例示する。なお、キャッシュ作成候補選択処理は、他の方式で選択した場合でも同様である。
図28は、実施形態に係るキャッシュ作成先候補選択処理を説明する説明図である。図28は、時刻t1における配信本数状態(単位は[本])を示している。
図28は、マシンM1上でビデオサーバVS1が稼働しており、マシンM2上でビデオサーバVS2が稼働しているものとする。RAID装置は、RAID装置R1及びR2の2台としており、コンテンツは、コンテンツC1、C2、C3、C4の4個とする。
図29は、マシンM1及びM2におけるキャッシュ記憶装置の優先度及びビジー率を示すキャッシュ作成先候補選択処理を説明する説明図である。
図29では、マシンM1にキャッシュ記憶装置D1及びD2が存在しており、マシンM2にキャッシュ記憶装置D3、D4及びD5が存在しているものとする。
また、図29において、「Pri」は、キャッシュ記憶装置CDを選択する優先度を例示しており、「Pri」の値が大きい方が優先度は高いとする。なお、「Pri」の値は、「1」〜「5」とする場合を例示しているが、Priの値の範囲は特に限定されるものではない。また、「Busy(%)」は、キャッシュ記憶装置のビジー率の上限値を示す。図29の「Pri」及び「Busy」の値は、図6の負荷情報テ−ブルに格納される値から取得することができる。
図28及び図29では、ビデオサーバV1のCPU使用率が「50%」、ビデオサーバVS2のCPU使用率が「60%」であると仮定する。また、閾値T9は「T9=80」、閾値T10は「T10=70」と仮定する。
まず、コンテンツ配置制御部52は、時刻t1において、以下のようにマシンごとのコンテンツC2の配信本数の和QNを計算する。
M1:QN(M1,C2,t1)=10+4=14
M2:QN(M2,C2,t1)=14+15=29
ビデオサーバVS1とVS2のCPU使用率は、いずれも閾値T9より小さい。また、ビデオサーバVS1とVS2のコンテンツC2の配信本数の和QN(M1、C2、t1)、QN(M2、C2、t1)はいずれも「1(本)」以上であるため、マシンM1、マシンM2のいずれも候補マシンとなる。
また、コンテンツC2は、どのキャッシュ記憶装置にも存在しないため、キャッシュ記憶装置D1〜D5も、式(22)は成立する。
ビジー率については、Busy(D1)=Busy(D2)=Busy(D4)=60<T10,Busy(D5)=30<T10である。しかし、Busy(D3)=80>T10なので、キャッシュ記憶装置D3のみ候補デバイスに含まれない。
その結果、コンテンツ配置制御部52は、キャッシュ記憶装置D1、D2、D4、D5のキャッシュ作成先候補リストとして、((M1,D1,14,50,5), (M1,D2,14,50,4), (M2,D4,29,60,4), (M2,D5,29,60,3))を作成する。
コンテンツ配置制御部52は、キャッシュ作成先候補リストをソートして、以下の先頭要素であるマシンM2のキャッシュ記憶装置D4をキャッシュ作成先候補として選択する。
((M2,D4,29,60,4),(M2,D5,29,60,3),(M1,D1,14,50,5),(M1,D2,14,50,4))
(A−2−5)キャッシュ削除処理の具体的な実施形態
図30は、時刻t1における各ビデオサーバVS1、VS2の各RAID装置R1及びR2とキャッシュ記憶装置D1〜D5における各コンテンツの配信ビットレ−トの状態を説明する説明図である(単位Mbps)。
ここでは、コンテンツC2、C5、C6、C7のコンテンツのサイズはそれぞれ6GB、4GB、3GB、3GBとし、キャッシュ記憶装置D4の容量は10GBとする。また閾値T11はT11=30とし、閾値T12は、T12=120とする。
まず、コンテンツC2のキャッシュをキャッシュ記憶装置D4に作成する場合を例示する。ここで、キャッシュ記憶装置D4には、図30に示すように、既にコンテンツC5、C6、C7が格納されており、これらコンテンツのサイズ合計が10GBであり、キャッシュ記憶装置D4に空き容量がないとする。
そのため、コンテンツ配置制御部52は、キャッシュ記憶装置D4からコンテンツC5、C6、C7のいずれかを削除することを判断する。
コンテンツ配置制御部52は、キャッシュ記憶装置D4における各コンテンツの配信ビットレ−トの和HBを計算する。
C5:HB(M2,D4,C5,t1)=20
C6:HB(M2,D4,C6,t1)=30
C7:HB(M2,D4,C7,t1)=40
次に、コンテンツ配置制御部52は、キャッシュ記憶装置D4にコンテンツC2をキャッシュするための容量を確保するため、コンテンツ2の配信ビットレ−トの和QBを求める。このとき、図30の例の場合、ビデオサーバVS2は、RAID装置R1及びR2に格納されているコンテンツC2を配信している。従って、コンテンツ配置制御部52は、コンテンツC2の配信ビットレ−トの和QBを計算し、QB(M2,C2,t1)=70+75=145である。
そのため、コンテンツ配置制御部52は、各コンテンツの配信ビットレ−トの和HBのうち、最小値minHBのコンテンツを選択する。すなわち、minHB=20となり、対応するコンテンツはコンテンツC5となる。
ここで、コンテンツ配置制御部52は、削除判定方法(1)又は(2)の条件を満たすコンテンツを削除する。
例えば、削除判定方法(1)では、minHB≦T11であり条件を満たすので、コンテンツC5を削除する。
また例えば、削除判定方法(2)でも、QB−minHB=145−20=125>T12であり、条件を満たすのでコンテンツC5を削除する。
しかし、コンテンツC5のサイズは4GBなので、キャッシュ記憶装置D4の空き容量は4GBとなり、依然コンテンツC2をキャッシュ記憶装置D4にキャッシュするための空き容量が不足であり、この状態ではコンテンツC2のキャッシュを作成することができない。
そこで、コンテンツ配置制御部52は、再び各コンテンツのHBを参照して、各コンテンツの配信ビットレ−トの和HBのうち、最小値minHBのコンテンツを選択する。この場合、minHB=30に対応するコンテンツC6を選択する。
また、上記と同様に、コンテンツ配置制御部52は、削除判定方法(1)又は(2)の条件を満たすコンテンツを削除する。
例えば、削除判定方法(1)では、minHB≦T11であり条件を満たすので、コンテンツC6を削除する。ここで、コンテンツC6のサイズは3GBなので、キャッシュ記憶装置D4の空き容量は7GBとなり、コンテンツC2のキャッシュを作成することができる。
また例えば、削除判定方法(2)では、QB−minHB=145−30=115>T12であり、条件を満たしておらず、コンテンツC6を削除しない。
この場合、キャッシュ記憶装置D4にキャッシュを作成するのは中止し、キャッシュ作成先候補リストの次の要素であるキャッシュ記憶装置D5に対して同様の処理を行なうことになる。
削除判定方法(1)により、キャッシュ記憶装置D4のコンテンツC5、C6を削除するときはC5,C6∈C(R1),Pri(R1)>Pri(R2)が成り立つとすると、削除前にRAID装置R1からの配信に切り替える。
さらに、コンテンツC2のキャッシュをキャッシュ記憶装置D4に作成した後、配信の切り替わりが発生する。
この結果、配信ビットレ−トの状態は、図31のようになる。図30と図31とを比較すると、図31に示すように、ビデオサーバVS2において、RAID装置R1とRAID装置R2の配信ビットレ−トが小さくなり、負荷が減少していることがわかる。
(A−2−6)キャッシュ作成と削除のパタ−ン例の説明
図32は、削除判定方法(1)の場合のキャッシュ作成と削除のタイミングを説明する説明図である。図33は、削除判定方法(2)の場合のキャッシュ作成と削除のタイミングを説明する説明図である。
ここでは、コンテンツは、コンテンツC1とC2の2個だけとする。キャッシュ記憶装置にはいずれか1個のコンテンツの容量しかない状態とする。
図32に示すように、削除判定方法(1)を採用した場合、閾値T11=10、すなわち配信ビットレ−トの和が10Mbps以下のコンテンツのみを削除の対象とする。
そうすると、図2に示すように従来技術による場合は、コンテンツのキャッシュ作成と削除とが頻繁に行われていたが、図32に示すように、この実施形態の削除判定方法(1)によれば、キャッシュ作成及び削除の回数は減り、ある程度の配信数があるコンテンツについては削除されない。
図33に示すように、削除判定方法(2)を採用した場合、閾値T12=140、すなわちキャッシュ作成対象コンテンツと削除対象コンテンツの配信ビットレ−トの差が140Mbps以上のコンテンツのみ削除の対象とする。
そうすると、図2に示すように従来技術による場合と比較すると、図33に示すように、この実施形態の削除判定方法(2)によれば、キャッシュ作成対象コンテンツとの配信ビットレ−トの差があまりないときは削除しない。その結果、キャッシュの作成及び削除の回数が減る。
上記のように、削除判定方法(1)は、キャッシュ作成時に容量が不足したときだけ行なうことになる。一方、削除判定方法(2)は、削除対象の配信ビットレ−トが十分多いか、キャッシュ作成対象との配信ビットレ−トの差があまりないときは削除しない。
そのため、従来技術より配信数が拮抗したコンテンツ間の頻繁なキャッシュ作成と削除は抑制される。
(A−2−7)配信制御処理の具体的な実施形態
図34は、実施形態に係る配信制御処理を説明する説明図である。
ここでは、マシンはマシンM1、M2、M3の3台である。マシンM1には、ビデオサーバVS1、VS2、VS3が稼働しているものとする。マシンM1は、キャッシュ記憶装置D1、D2、D3が搭載されているものとする。
マシンM2には、ビデオサーバVS4が稼働しており、キャッシュ記憶装置D4が搭載されているものとする。マシンM3にはビデオサーバVS5が稼動し、キャッシュ記憶装置D5が搭載されているものとする。
RAID装置R1は全てのマシンM1〜M3で共有するとする。
コンテンツはコンテンツC1、C2の2つが各デバイス(ここでは、RAID装置、キャッシュ記憶装置)に存在しているものとする。また、Br(C1)=8(Mbps)とし、Br(C2)=10(Mbps)とする。
図35は、時刻t1における各コンテンツ、各デバイスでの配信ビットレ−トの状態を示す図である。図36は、時刻t1における各コンテンツ、各デバイスでの配信本数の状態を示す図である。
図37は、各ビデオサーバのCPU使用率、T14(CPU使用率の上限値)、T15(配信ビットレ−トの上限値)、T16(配信本数の上限値)を示す図である。
図38は、各デバイスのPri、Busy(ビジー率)、T17(ビジー率の上限値)、T18(配信ビットレ−トの上限値)、T19(配信本数の上限値)を示す図である。
図35〜図36における値はそれぞれ、図8に示す配信情報テ−ブルからそれぞれ配信ビットレ−トと配信本数を抽出したものに相当する。
図34に示すように、ある端末装置20からコンテンツC2の配信要求を受信する(図34のS501)。以下、コンテンツ配信制御部53の処理手順を説明する。
(1)コンテンツ配信制御部53は、時刻t1の各ビデオサーバの配信ビットレ−トの和SBと配信数の和SNを計算する(図39参照)。
VS1:sB(VS1,t1)=80+0+8+8+0+500+20+10=626
VS1:sN(VS1,t1)=10+0+1+1+0+50+2+1=65
VS2:sB(VS2,t1)=80+8+8+8+0+10+500+10=624
VS2:sN(VS2,t1)=10+1+1+1+0+1+50+1=65
VS3:sB(VS3,t1)=80+8+8+8+100+10+10+10=234
VS3:sN(VS3,t1)=10+1+1+1+10+1+1+1=26
VS4:sB(VS4,t1)=80+0+100+0=180
VS4:sN(VS4,t1)=100+10+0 =20
VS5:sB(VS5,t1)=0+800+400+0=1200
VS5:sN(VS5,t1)=0+100+40+0=140
(2)次に、コンテンツ配信制御部53は、式(34)〜式(36)の条件をチェックする。この場合、いずれのビデオサーバも式(34)を満たしていることがわかる。
式(35)、式(36)については、以下のように、VS1〜VS4を満足する。
VS1:sB(VS1,t1)+Br(C2)=626+10=636<T15=1200
VS1:sN(VS1,t1)+1=65+1=66<T16=200
VS2:sB(VS2,t1)+Br(C2)=624+10=634<T15=1200
VS2:sN(VS2,t1)+1=65+1=66<T16=200
VS3:sB(VS3,t1)+Br(C2)=234+10=244<T15=1200
VS3:sN(VS3,t1)+1=26+1=27<T16=200
VS4:sB(VS4,t1)+Br(C2)=180+10=190<T15=1200
VS4:sN(VS4,t1)+1=20+1=21<T16=200
しかし、VS5については、以下の通り満足しない。
VS5:sB(VS5,t1)+Br(C2)=1200+10=1210>T15=1200
つまり、VS5のSBは配信ビットレ−トの上限値を超過するので、対応するマシンのM3は候補からはずれる。そのため、候補マシンリストは(M1,M2)となる(マシンM3にはVS5しかないことに注意)。
(3)コンテンツ配信制御部53は、図36を参照して、各マシンのコンテンツC2の配信数の和PNを計算する(図40参照)。
M1:PN(M1,C2,t1)=0+50+2+1+0+1+50+1+10+1+1+1=118
M2:PN(M2,C2,t1)=10+0=10
候補マシンリストは((M1,118),(M2,10))となり、コンテンツ配信制御部53はPNの降順にソートすると、((M1,118),(M2,10))となる。
(4)コンテンツ配信制御部53は、各デバイスの配信ビットレ−トの和gBと配信数の和gNを計算する(図41参照)。キャッシュD5については候補マシンリストに含まれないマシンに対応するので計算する必要はない。
R1:gB(R1,t1)=80+0+80+0+80+100+80+100+0+400=920
R2:gN(R1,t1)=10+0+10+0+10+10+10+10+0+40=100
D1:gB(D1,t1)=0+500+8+10+8+10=536
D1:gN(D1,t1)=0+50+1+1+1+1=54
D2:gB(D2,t1)=8+20+8+500+8+10=554
D2:gN(D2,t1)=1+2+1+50+1+1=56
D3:gB(D3,t1)=8+10+8+10+8+10=54
D3:gN(D3,t1)=1+1+1+1+1+1=6
D4:gB(D4,t1)=0,gN(D4,t1)=0
(5)コンテンツ配信制御部53は、式(38)〜式(41)の条件をチェックする。式(38)については、ここでの前提条件なので満足している。
図38において、「Busy」と「T17」とを比較すると、R1,D1,D2,D3,D4はいずれも式(39)を満たしていることがわかる。
式(40)、式(41)については、以下の通り満足する。
R1:gB(R1,t1)+Br(C2)=920+10=930<T18=10000
R1:gN(R1,t1)+1=100+1=101<T19=1500
D1:gB(D1,t1)+Br(C2)=536+10=546<T18=1000
D1:gN(D1,t1)+1=54+1=55<T19=150
D2:gB(D2,t1)+Br(C2)=554+10=564<T18=1000
D2:gN(D2,t1)+1=56+1=57<T19=150
D3:gB(D3,t1)+Br(C2)=54+10=64<T18=1000
D3:gN(D3,t1)+1=6+1=7<T19=150
D4:gB(D4,t1)+Br(C2)=0+10=10<T18=1000
D4:gN(D4,t1)+1=0+1=1<T19=150
従って、候補デバイスリストは(R1,D1,D2,D3,D4)となる。
(6)候補マシンリストの先頭はM1なのでマシンM1に属する各ビデオサーバVS1のコンテンツC2の配信数の和pN(v,C0,t)を計算する(図42参照)。
VS1:pN(VS1,C2,t1)=0+50+2+1=53
VS2:pN(VS2,C2,t1)=0+1+50+1=52
VS3:pN(VS3,C2,t1)=10+1+1+1=13
(7)コンテンツ配信制御部53は、配信候補リスト(v,d, pN,Pri(d))を以下のように作成する。
((VS1,R1,53,1),(VS1,D1,53,30),(VS1,D2,53,20),(VS1,D3,53,10),(VS2,R1,52,1),(VS2,D1,52,30),(VS2,D2,52,20),(VS2,D3,52,10),(VS3,R1,13,1),(VS3,D1,13,30),(VS3,D2,13,20),(VS3,D3,13,10))
コンテンツ配信制御部53は、上記配信候補リストをpNの降順、Pri(d)の降順にソートすると、以下のようになる。
((VS1,D1,53,30),(VS1,D2,53,20),(VS1,D3,53,10),(VS1,R1,53,1),(VS2,D1,52,30),(VS2,D2,52,20),(VS2,D3,52,10),(VS2,R1,52,1),(VS3,D1,13,30),(VS3,D2,13,20),(VS3,D3,13,10),(VS3,R1,13,1))
この結果、コンテンツ配信制御部53は、配信元ビデオサーバとしてVS1、配信元記憶装置としてD1を選択する。
コンテンツ配信・配信制御サーバ5はビデオサーバVS1にコンテンツC2をキャッシュ記憶装置D1から読み込んで端末装置に配信するよう指示する(図34のS502)。
ビデオサーバVS1は、キャッシュ記憶装置D1からコンテンツC2のデ−タを読みこみ(図34のS503)、端末装置20に配信する(図34のS504)。
(A−3)実施形態の効果
以上のように、この実施形態によれば、以下の効果を奏する。
第1にRAID装置などの大容量、低速アクセスの記憶装置とメモリなどの小容量、高速アクセスの記憶装置という両者の特長を組み合わせ、サーバごとコンテンツごとデバイスごとに配信負荷を定期的に観測することにより(1)配信負荷の高いコンテンツを検出したとき、または(2)配信負荷増分の高いコンテンツを検出したときまたは(3)配信負荷の高いRAID装置を検出したとき、または(4)配信負荷増分の高いRAID装置を検出したときにキャッシュを作成する、しかもキャッシュ効果の高い記憶装置にキャッシュを作成することでRAID装置の負荷を下げ、全体の配信数を向上することができる。
第2に削除は(1)キャッシュ作成時に容量が不足したときだけ行ないかつ、(2)配信数が一定以上程度あるコンテンツ、またはキャッシュ作成対象コンテンツと削除対象コンテンツの配信ビットレ−トの差が一定以下のコンテンツは削除しないので、従来技術と比べ配信数が拮抗したコンテンツ間の頻繁なキャッシュ作成と削除を抑制することができ、それにより負荷と時間を要するキャッシュ作成と削除の間の配信性能低下を回避できる。
第3にクライアントから配信要求を受信したときは、同時アクセス数が最大のサーバから配信するよう制御するので、キャッシュ作成時、RAID装置の負荷軽減効果が最大化される。
(B)他の実施形態
上述した実施形態において、キャッシュ作成候補の選択、キャッシュ作成先候補の選択、キャッシュ削除候補の選択処理について、各デバイス(RAID装置)からのコンテンツの配信ビットレートに基づいて算出する場合を例示した。しかし、コンテンツの配信ビットレートに限定されるものではなく、各デバイスが配信しているコンテンツの配信数に基づいても同様に算出するようにしても良い。