説明

分散型コンテンツ配信システム及び配信サーバ決定装置

【課題】 コンテンツ記憶サーバからキャッシュを有するコンテンツ配送先サーバへ配送させるコンテンツを適切に定め、そのコンテンツ配送をコンテンツの配信性能を劣化させずに行う。
【解決手段】 本発明の分散型コンテンツ配信システムは、配信ログを収集し、所定周期で人気コンテンツを把握してコンテンツ配送先サーバのキャッシュに記憶させるものである。これだけだと、急激な人気コンテンツの出現に対応できない。そこで、コンテンツ記憶サーバの記憶装置をアクセスするコンテンツアクセス部にもキャッシュを設け、コンテンツ配信要求毎に、記憶装置の負荷を確認し、この負荷から人気を捉えてコンテンツアクセス部のキャッシュに格納し、そこから配信できるようにした。また、アクセスコストとネットワークコストによっては、コンテンツ配送先サーバのキャッシュ側に格納することとした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は分散型コンテンツ配信システム及び配信サーバ決定装置に関し、例えば、分散型のビデオオンデマンドシステムに適用し得るものである。
【背景技術】
【0002】
従来、分散型のビデオオンデマンドシステムは、配信先端末(以下、クライアントと呼ぶ)からの要求を受け付けるなど、中心的なサーバ(以下、センタサーバと呼ぶ)にかかる負荷を軽減するため、ローカルにキャッシュサーバ(以下、ローカルサーバと呼ぶ)を配置して、人気の高いコンテンツはローカルサーバから配信して、センタサーバに負荷が集中することを防ぎつつ、ユーザからのアクセス要求を消化できるようにしていた(特許文献1参照)。センタサーバに負荷が集中するとは、例えば、センタサーバにおけるビデオサーバ部に負荷が集中したり、ビデオサーバ部がコンテンツを読み出すRAID(Redundant Arrays of Inexpensive Disks)等のディスク装置に負荷が集中したりすることである。
【0003】
コンテンツが配置されるローカルサーバがキャッシュサーバとして効果的に動作するように、人気の高いアクセス頻度の高いコンテンツをローカルサーバに配置するのが効果的である。このため、システム全体のコンテンツのアクセス状況を常に把握し、信用のおける人気情報を得るため、ある程度の長期間のコンテンツアクセス状況を蓄積し、その蓄積したアクセス状況データから今後のコンテンツのアクセス頻度を予測し、人気の高いコンテンツほどキャッシュサーバに配置する方法が効果的であると考えられる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−245114号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、人気を高いコンテンツをキャッシュサーバとして機能するローカルサーバに配置する上述した方法は、以下のような課題を有するものであった。
【0006】
ある一定期間のアクセス状況データから各地のローカルサーバ(キャッシュサーバ)に配置するコンテンツを決定して配置する場合、そのようなコンテンツは人気の高いコンテンツであるため、早急に各地のローカルサーバに配置することが望ましい。しかし、センタサーバと各ローカルサーバとの距離は遠いことが多く、ネットワークコストもその分高価であり、また、急に大量のコンテンツデータを配送すると、ネットワーク負荷が急に上昇し、配送元のセンタサーバにおけるディスク装置の入出力負荷(以下、IO負荷と呼ぶ)や、配送先の各地のローカルサーバにおけるディスク装置のIO負荷も大きくなり、センタサーバ及びローカルサーバのビデオオンデマンドによる配信性能を劣化させることも生じる。
【0007】
しかしながら、このような不都合を回避しようとすべく、サーバ間のコンテンツ配送をゆっくり行うと、アクセス頻度の高いコンテンツのため、配送中の期間においても、多くのユーザがアクセス要求を発し、キャッシュサーバが十分活用できず、結果的にセンタサーバの負荷を押し上げ、システム全体のビデオオンデマンド配信性能を劣化させる結果となる。
【0008】
また、人気コンテンツを正確に把握するために、過去一定期間の全コンテンツの配信傾向(アクセス状況)のデータを収集しているが、この一定期間中に、アクセス頻度の高いコンテンツが急に出現しても、一定期間の全期間でそのコンテンツの高アクセスというデータを収集していないため、人気があることを見落とす恐れがある。人気が急に変化しても、それに速やかに対応することができない。
【0009】
このような不都合を回避するために、データ収集期間を短くすると、収集したデータ量が少ないため、予測したコンテンツのアクセス頻度(人気度)の合致率が十分でないことも生じ、ローカルサーバ(キャッシュサーバ)にコンテンツを配送した後も、予想ほどそのコンテンツのアクセスが十分でなく、結果的にローカルサーバの効率が下がり、ローカルサーバに配送したこと(例えば、ネットワークコスト、ディスク装置の入出力コストなど)が無駄になるという結果を招くことも生じる。
【0010】
本発明は、以上の点に鑑みてなされたものであり、コンテンツを当初格納しているサーバからキャッシュサーバとして機能するサーバへ配送させるコンテンツを適切に定めることができる、しかも、サーバ間のコンテンツ配送を、コンテンツの配信性能を劣化させることなくできる、分散型コンテンツ配信システムを提供しようとしたものであり、また、そのような分散型コンテンツ配信システムに必要となる装置(配信サーバ決定装置)を提供しようとしたものである。
【課題を解決するための手段】
【0011】
第1の本発明は、複数のコンテンツを記憶している記憶装置を有するコンテンツ記憶サーバと、上記コンテンツ記憶サーバからコンテンツが配送されることがある、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツ配送先サーバとを有し、クライアント端末からのコンテンツ配信要求に対し、上記コンテンツ記憶サーバ又はいずれかの上記コンテンツ配送先サーバから要求されたコンテンツを配信する分散型コンテンツ配信システムにおいて、(1)上記コンテンツ記憶サーバは、上記記憶装置をアクセスする、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツアクセス部を備え、上記各コンテンツアクセス部は上記記憶装置にアクセスしてコンテンツを配信できると共に、自己のキャッシュメモリからコンテンツを取出して配信できるものであると共に、(2−1)コンテンツの配信ログを収集し、過去一定期間のログデータから人気コンテンツを予測し、人気コンテンツを上記各コンテンツ配送先サーバに配送する指示を上記コンテンツ記憶サーバに発して人気コンテンツを配送させるコンテンツ配送指示装置と、(2−2)コンテンツ配信要求が生じる毎に、配信元及び配信方法を決定する配信サーバ決定装置とをさらに有し、(3)上記配信サーバ決定装置は、(3−1)上記各コンテンツ配送先サーバのキャッシュメモリにキャッシュングされているコンテンツ、上記各コンテンツアクセス部のキャッシュメモリにキャッシュングされているコンテンツ、上記記憶装置の各コンテンツのアクセス状況の情報を管理している管理手段と、(3−2)コンテンツ配信要求が生じると、要求時点でいずれかの上記キャッシュメモリにキャッシュングされているコンテンツの配信を優先させると共に、上記記憶装置から要求されたコンテンツを取出して配信する場合には、上記各キャッシュメモリにキャッシュされているコンテンツの見直しを実行するキャッシュコンテンツ見直し手段とを有することを特徴とする。
【0012】
第2の本発明は、(1−1)複数のコンテンツを記憶している記憶装置を有するコンテンツ記憶サーバと、(1−2)上記コンテンツ記憶サーバからコンテンツが配送されることがある、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツ配送先サーバと、(1−3)コンテンツの配信ログを収集し、過去一定期間のログデータから人気コンテンツを予測し、人気コンテンツを上記各コンテンツ配送先サーバに配送する指示を上記コンテンツ記憶サーバに発して人気コンテンツを配送させるコンテンツ配送指示装置とを有し、(1−4)クライアント端末からのコンテンツ配信要求に対し、上記コンテンツ記憶サーバ又はいずれかの上記コンテンツ配送先サーバから要求されたコンテンツを配信する分散型コンテンツ配信システムに設けられる配信サーバ決定装置であって、(2)上記コンテンツ記憶サーバは、上記記憶装置をアクセスする、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツアクセス部を備え、上記各コンテンツアクセス部は上記記憶装置にアクセスしてコンテンツを配信できると共に、自己のキャッシュメモリからコンテンツを取出して配信できるものであり、(3)当該配信サーバ決定装置が、(3−1)上記各コンテンツ配送先サーバのキャッシュメモリにキャッシュングされているコンテンツ、上記各コンテンツアクセス部のキャッシュメモリにキャッシュングされているコンテンツ、上記記憶装置の各コンテンツのアクセス状況の情報を管理している管理手段と、(3−2)コンテンツ配信要求が生じると、要求時点でいずれかの上記キャッシュメモリにキャッシュングされているコンテンツの配信を優先させると共に、上記記憶装置から要求されたコンテンツを取出して配信する場合には、上記各キャッシュメモリにキャッシュされているコンテンツの見直しを実行するキャッシュコンテンツ見直し手段とを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、コンテンツ記憶サーバからコンテンツ配送先サーバへ配送させるコンテンツを適切に定めることができる、しかも、サーバ間のコンテンツ配送を、コンテンツの配信性能を劣化させることなくできるようになる。
【図面の簡単な説明】
【0014】
【図1】実施形態の分散型コンテンツ配信システムの全体構成を示すブロック図である。
【図2】実施形態のセンタサーバにおけるディスク負荷監視モジュールが監視しているディスク負荷などの監視情報の説明図である。
【図3】実施形態のセンタサーバが各部キャッシュを効率的に使用する動作の流れを示すフローチャートである。
【図4】実施形態のコンテンツ配送指示サーバの動作概要を示すフローチャートである。
【発明を実施するための形態】
【0015】
(A)主たる実施形態
以下、本発明による分散型コンテンツ配信システム及び配送サーバ決定装置の一実施形態を、図面を参照しながら説明する。この実施形態の分散型コンテンツ配信システムは、分散型のビデオオンデマンドシステムであり、配信されるコンテンツはビデオ信号(映像信号だけであっても良く、映像信号及び音響信号の双方が含まれるものであっても良い)のコンテンツ(ビデオコンテンツ)である。
【0016】
(A−1)実施形態の構成
図1は、実施形態の分散型コンテンツ配信システム1の構成を示すブロック図である。なお、図1は、クライアントが送出したビデオオンデマンドの要求を受信するセンタサーバの構成については図示を省略している。
【0017】
図1において、実施形態の分散型コンテンツ配信システム1は、センタエリアCAの構成要素と、1又は複数(図2では2つの場合を示している)のローカルエリアLA1、LA2の構成要素と、センタエリアCAとローカルエリアLA1、LA2との間に介在するネットワークNWとを有している。なお、センタエリアCAとローカルエリアLA1との間に介在するネットワークと、センタエリアCAとローカルエリアLA2との間に介在するネットワークとが異なっていても良いことは勿論である。
【0018】
この実施形態において、センタエリアCAとは、センタサーバ10を有するエリアである。センタサーバ10には、コンテンツ配送指示サーバ11が関連して設けられている。コンテンツの配信を受ける端末(例えば、セットトップボックスでなる)であるクライアントの中には、センタサーバ10が送出したコンテンツがネットワークNW−CAを介して配信されるクライアントもあり、図1では、符号12−1、12−2、…で示している。
【0019】
センタサーバ10は、RAID装置20と、1又は複数(図1では2つの場合を示している)のビデオサーバ部21−1、21−2と、キャッシュ制御サーバ部22とを有している。
【0020】
RAID装置20は、コンテンツ(ビデオコンテンツ)を格納しているものであり、入出力部(ディスクIO)が異なっていて独立にアクセス可能な1又は複数(図1では3つの場合を示している)のディスク23−1、23−2、23−3を有する。
【0021】
各ビデオサーバ部21−1、21−2はそれぞれ、RAID装置20から指示されたコンテンツを読み出すものであり、各ビデオサーバ部21−1、21−2とRAID装置20との間は、FC、SCSI、ネットワークといった読み出し用の経路を介して接続されている。各ビデオサーバ部21−1、21−2はそれぞれ、キャッシュメモリ(以下、キャッシュと呼ぶことがある)24−1、24−2を有している。各キャッシュメモリ24−1、24−2はそれぞれ、高価なメモリ素子を使用して構成されているため、メモリ容量が制限され、同時に多数のコンテンツをキャッシュすることは困難なものである。
【0022】
各ビデオサーバ部21−1、21−2はそれぞれ、コンテンツ配送指示サーバ11及びキャッシュ制御サーバ部22とは、例えば、制御バスを介して接続されており、この制御バスを介して、コンテンツの配送や配信が指示されるものである。ここで、「コンテンツの配送」とは、ローカルエリアLA1、LA2内の後述するキャッシュサーバへコンテンツを送出することを言い、「コンテンツの配信」とは、クライアントへコンテンツを送出することを言う。
【0023】
キャッシュ制御サーバ部22は、ディスク負荷監視モジュール25、キャッシュコンテンツ選択モジュール26、ビデオサーバ割振モジュール27を有し、これらモジュール25〜27は主としてプログラム及びその実行構成で構築されている。ディスク負荷監視モジュール25は、RAID装置20の全ディスク23−1〜23−3の負荷を監視するためのモジュールである。キャッシュコンテンツ選択モジュール26は、ビデオサーバ部21−1、21−2が内部のキャッシュ24−1、24−2に格納する(キャッシュする)コンテンツを選択してビデオサーバ部21−1、21−2に伝達するためのモジュールである。ビデオサーバ割振モジュール27は、コンテンツの配信をビデオサーバ部21−1、21−2に割り振るためのモジュールである。
【0024】
図2は、ディスク負荷監視モジュール25が監視しているディスク負荷などの監視情報の構造を示す説明図である。図2は、RAID装置20のディスクの数が図1に示すように3個で、センタサーバ10に設けられているビデオサーバ部の数が図1に示すように2個の場合を示しているが、ディスクの数やビデオサーバ部の数の他の組み合わせの場合にも、同様な構造で監視情報が監視されている。なお、図2に示す監視情報は、ディスク負荷監視モジュール25に内蔵されて記憶されていても良く、ディスク負荷監視モジュール25の外部の記憶部に記憶されているものであっても良い。
【0025】
図2において、監視情報は、各ディスク23−1、…、23−3のディスク名DISC#1、DISC#2、DISC#2に対応付けられて、コンテンツ名、各ビデオサーバ部から配信されている各コンテンツの本数、現時点の総入出力レート(総IOレート)、限界入出力レート(限界IOレート)が記述されている。限界入出力レートは、そのディスクに新たな入出力を許容できるか否かを切り分ける閾値となっている。
【0026】
例えば、ディスク名が「DISC#1」であるRAID装置20のディスク23−1には、コンテンツ名が「CNT#1」〜「CNT#(N−1)」のコンテンツが記録されている。これらコンテンツのうち、コンテンツ名が「CNT#1」のコンテンツは、現在、ビデオサーバ部21−1からはX1本、ビデオサーバ部21−2からはX2本が配信され、コンテンツ名が「CNT#2」のコンテンツは、現在、ビデオサーバ部21−1からはY1本、ビデオサーバ部21−2からはY2本が配信されている。ディスク名が「DISC#1」のディスク23−1の現時点における総入出力レートはR1であり、その限界入出力レートはTHR1になっている。
【0027】
ここで、ビデオサーバ部から配信されているコンテンツの本数が「キャッシュされていないことを表すコード」になっている欄は、そのビデオサーバ部のキャッシュにそのコンテンツがキャッシュされていないことを意味し、「0本」と記述されている欄は、ビデオサーバ部のキャッシュにそのコンテンツがキャッシュされているが配送中のコンテンツがないことを意味する。ここで、キャッシュされているか否かを表す欄と、配送中本数を表す欄とを別個に設けるようにしても良い。
【0028】
なお、図2では省略しているが、そのコンテンツをディスクから1つ読み出した場合に増加する入出力レートの増分も監視情報には含まれている。若しくは、そのコンテンツをディスクから1つ読み出した場合に増加する入出力レートの計算式が規定されている。
【0029】
キャッシュコンテンツ選択モジュール26は、ビデオサーバ部21−1、21−2が内部のキャッシュ24−1、24−2にどのようなコンテンツを格納しているかの情報を管理している。なお、図2では、省略しているが、キャッシュ制御サーバ部22には、後述するキャッシュサーバ30−1、30−2のキャッシュ31−1、31−2にどのようなコンテンツが格納されているかの情報を管理している機能部も存在している。
【0030】
各ローカルエリアLA1、LA2は同様な構成を有している。図1では、ローカルエリアLA1について詳細構成を示しているが、ローカルエリアLA2についても同様な詳細構成を有する。以下では、ローカルエリアLA1を例にローカルエリアの構成を説明する。
【0031】
ここで、ローカルエリアLA1とは、センタサーバ10におけるRAID装置20に格納されているコンテンツが与えられてそれを格納する(キャッシュする)ローカルサーバ(以下、キャッシュサーバと呼ぶ)30−1を有するエリアを言う。キャッシュサーバ30−1には、キャッシュメモリ(以下、キャッシュと呼ぶことがある)31−1が設けられている。キャッシュサーバ30−1のキャッシュ31−1は、ビデオサーバ部21−1、21−2のキャッシュ24−1、24−2より、多くのコンテンツをキャッシュ可能となされている。センタエリアCAとローカルエリアLA1との間に介在するネットワークNWを経由することなく、キャッシュサーバ30が収容されているネットワークNW−LA1を介して、キャッシュサーバ30−1から配信可能なクライアント32−1−1、32−2−1、…はローカルエリアLA1の構成要素と見ることもできる。
【0032】
この実施形態の場合、ローカルエリアLA1内のクライアント32−1、32−2、…には、センタサーバ10から、ネットワークNW及びNW−LA1を介して、コンテンツが配信されることもあれば、自己が属するキャッシュサーバ30−1から、ネットワークNW−LA1を介して、コンテンツが配信されることもある。
【0033】
なお、図1では省略しているが、以下の説明において、必要ならば、ローカルエリアLA2におけるキャッシュサーバ、キャッシュメモリ、クライアントに対して、符号30−2、31−2、32−1−2、32−2−2、…を付与して呼ぶこととする。
【0034】
また、図1では省略しているが、センタサーバ10には、各クライアントの情報も管理されている。例えば、どのエリア(センタエリアCA、ローカルエリアLA1、ローカルエリアLA2)に在圏しているかを表す情報、配信要求時の認証用情報、配信が認められているコンテンツ名、現在配信されているコンテンツの情報なども管理している。
【0035】
コンテンツ配送指示サーバ11は、全コンテンツの配信ログをセンタサーバ10側から随時収集し、過去一定期間のログデータから計算して、今後、一定期間の人気コンテンツを予測し、人気度の高いコンテンツから順に各ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2にセンタサーバ10から配送する指示を出すものである。
【0036】
(A−2)実施形態の動作
次に、実施形態の分散型コンテンツ配信システム1における動作を説明する。以下では、コンテンツ配信要求に応じた配信・配送動作、コンテンツ人気度に応じた配送動作の順に動作を説明する。
【0037】
コンテンツ配信要求に応じた配信・配送動作の概要は、以下の通りである。クライアントからのコンテンツ配信要求はセンタサーバ10(なお、センタエリアCAに要求受け付け用のサーバをセンタサーバ10の他に設けるようにしても良い)に与えられ、このとき、要求されたコンテンツを配置しているビデオサーバ部があれば、そのビデオサーバ部からクライアントに対してコンテンツを配信することを基本とするが、コスト(ネットワーク負荷や入出力負荷などを考慮した評価値)のバランスによっては、ローカルエリアにリアルタイムでコンテンツを配送して、そこからクライアントにコンテンツを配信させることも行う。すなわち、この実施形態は、コンテンツ配信要求が生じる毎に、ローカルエリアへ配送させる条件が成立しているかを確認することを特徴としており、また、成立しているときに、ローカルエリアにリアルタイムでコンテンツを配送してそこからクライアントにコンテンツを配信させることを特徴としている。
【0038】
図3は、実施形態の分散型コンテンツ配信システム1のセンタサーバ10が各部のキャッシュ24−1、24−2、31−1、31−2を効率的に使用する動作の流れを示すフローチャートである。なお、図3において、「本コンテンツ」の用語はクライアントから要求されたコンテンツ及びそれと同じコンテンツ(要求されているか否かを問わない)を表している。
【0039】
センタサーバ10は、いずれかのクライアントがコンテンツ配信要求を発行し、センタサーバ10から配信することを要するときには、図3の一連の処理を開始する(ステップS1)。なお、例えば、ローカルエリアLA1のクライアント32−1−1がコンテンツ配信要求を発行し、要求されたコンテンツがそのローカルエリアLA1のキャッシュサーバ30−1に既に配送されていてキャッシュ31−1に既に格納されている場合には、そのキャッシュサーバ30−1から配信されることとなり、図3は、このような場合の記載を省略している。他のローカルエリアLA2についても同様である。また、ステップS2以降の処理に移行するためには、予め、クライアントの認証や、そのクライアントへ要求されたコンテンツを配信しても良いことの確認などが実行される。
【0040】
いずれかのクライアントからコンテンツ配信要求が与えられると、センタサーバ10のキャッシュコンテンツ選択モジュール21は、ディスク負荷監視モジュール25が管理している上述した図2に示す監視情報に基づき、要求されたコンテンツを既にキャッシュして配信しているビデオサーバ部があるか否かを判別する(ステップS2)。
【0041】
要求されたコンテンツを既にキャッシュして配信しているビデオサーバ部があれば、そのビデオサーバ部から、要求したクライアントに要求したコンテンツを配信させ(ステップS3)、次のコンテンツ配信要求の待機状態に戻る(既に受信していてバッファから取出すことを待っていることもあり得る)。なお、要求されたコンテンツを既にキャッシュして配信しているビデオサーバ部が複数ある場合には、ビデオサーバ割振モジュール27によって、所定の決定ルールに従い、配信させるビデオサーバ部を決定させる。例えば、要求されたコンテンツの配送中の本数が少ない方のビデオサーバ部を、配信させるビデオサーバ部に決定する。
【0042】
このように、キャッシュしているビデオサーバ部からの配信を優先させることにより、そのコンテンツを格納しているRAID装置3のディスクに対して、追加の入出力負荷を掛けることはない。
【0043】
要求されたコンテンツをキャッシュして配信しているビデオサーバ部が1つもなければ、ディスク負荷監視モジュール25は、図2に示す監視情報を参照し、要求されたコンテンツをRAID装置20の該当するディスクから新たにリードすると仮定した場合に、そのディスクの入出力負荷が限界(閾値)を超えるか否かを判別する(ステップS4)。例えば、要求されたコンテンツのコンテンツ名が「CNT#1」であったとする。このコンテンツは、ディスク名が「DISC#1」のディスク23−1に格納されているので、このディスク23−1の現時点における総入出力レートはR1に、コンテンツ名が「CNT#1」のコンテンツのリードを1つ増やした場合の入出力レートの増分を加算し、この加算後の入出力レートと、限界入出力レート(閾値)との大小比較により、ステップS4の判別を行う。
【0044】
新たにコンテンツのリードを増やしても限界入出力レートを超えない場合には、ビデオサーバ割振モジュール27が、要求されたコンテンツをRAID装置20(の該当するディスク)からリードして要求したクライアントに配信するビデオサーバ部を決定し、そのビデオサーバ部から要求されたコンテンツを要求したクライアントに配信させ(ステップS5)、コンテンツ配信要求の待機状態に戻る。ビデオサーバ割振モジュール27は、例えば、その時点で最も配信本数が少ないビデオサーバ部を、要求されたコンテンツを配信するものに決定する。
【0045】
一方、新たにコンテンツのリードを増やすと限界入出力(閾値)を超える場合には、キャッシュ制御サーバ部22は、要求されたコンテンツが格納されているディスクのコンテンツの中から、いずれかのビデオサーバ部のキャッシュにもキャッシュされていないものであって、しかも、最もディスクに負荷を掛けているコンテンツを探索し、探索されたコンテンツを、いずれかのビデオサーバ部のキャッシュにコピーし、探索されたコンテンツをそのビデオサーバ部のキャッシュから配信させる(ステップS6)。「最もディスクに負荷を掛けているコンテンツ」とは、例えば、そのディスクからの総リードレート(例えばリード本数)が最も高いコンテンツであり、負荷が低いコンテンツより人気が高いコンテンツであるということができる。探索されたコンテンツをキャッシュするビデオサーバ部の決定は、ビデオサーバ割振モジュール27が実行する。このステップS6におけるキャッシュからの配信は、今回の要求元のクライアントへの配信ではなく、既に配信中であったクライアントへの継続配信である。既に配信中であったクライアントへの配信元の記憶部が、ディスクからキャッシュへ変化したに過ぎない。ステップS6の処理による、探索されたコンテンツの配信元記憶部の変化(ディスクからキャッシュへの変化)により、そのディスクの入出力負荷は減少する。
【0046】
ステップS6の処理が終了すると、キャッシュ制御サーバ部22は、ビデオサーバ部のキャッシュにコピーされたコンテンツと、今回要求されているコンテンツとが同一か否かを判別する(ステップS7)。
【0047】
同一コンテンツならば、キャッシュ制御サーバ部22は、そのコンテンツがキャッシュされたばかりのビデオサーバ部から、要求したクライアントに要求したコンテンツを配信させ(ステップS8)、コンテンツ配信要求の待機状態に戻る。
【0048】
これに対して、ビデオサーバ部のキャッシュにコピーされたコンテンツと、今回要求されているコンテンツとが異なる場合には、キャッシュ制御サーバ部22は、図2に示す監視情報を参照して、要求されているコンテンツを現時点で最も多く配信しているビデオサーバ部を認識し、そのビデオサーバ部に該当するディスクからのリードを実行させながら、要求したクライアントに要求したコンテンツを配信させる(ステップS9)。このステップS9の処理によっては、そのディスクの入出力負荷は増大することになる。
【0049】
その後、キャッシュ制御サーバ部22は、図2に示す監視情報を参照しながら、このような配信によって、要求されたコンテンツ(と同一のコンテンツ)が、RAID装置20の該当するディスクに掛ける負荷が、そのディスクに記憶されているコンテンツの中で最も負荷の高いコンテンツになったか否かを判別する(ステップS10)。ここで、最も負荷が高いコンテンツは、配信数が多いことを表しており、そのコンテンツは人気があることを意味する。後述するように、コンテンツ配送指示サーバ11は所定周期で人気コンテンツを把握し、人気コンテンツはキャッシュサーバ30−1、30−2にキャッシュングされる。しかし、前回の処理時に人気コンテンツと把握されなければ通常のコンテンツとしてセンタサーバ10からの配信が前提となるが、ディスクの負荷を捉えることで、その後の人気変化を捉えることもできる。
【0050】
最も負荷の高いコンテンツになっていなければ、キャッシュ制御サーバ部22は、RAID装置20の該当するディスクからリードしながらの各種コンテンツの配信や、ビデオサーバ部のキャッシュからのコンテンツの配信をそのまま継続させ(ステップS11)、コンテンツ配信要求の待機状態に戻る。
【0051】
これに対して、最も負荷の高いコンテンツになったならば、キャッシュ制御サーバ部22のディスク負荷監視モジュール20は、図2の監視情報を参照しながら、そのコンテンツをリードしているビデオサーバ部において現時点でキャッシングしているコンテンツをキャッシュから出し、代わりにRAID装置20の該当するディスクからリードするようにしたと仮定した場合に、該当するディスクの入出力レートの閾値を超えることになるか否かを判別する(ステップS12)。
【0052】
該当するディスクの入出力レートの閾値を超えない場合には、キャッシュ制御サーバ部22は、RAID装置20の該当するディスクからリードしながらの各種コンテンツの配信や、ビデオサーバ部のキャッシュからのコンテンツの配信をそのまま継続させ(ステップS11)、コンテンツ配信要求の待機状態に戻る。
【0053】
これに対して、ステップS12の判別により、該当するディスクの入出力レートの閾値を超えるという結果が得られた場合には、キャッシュ制御サーバ部22は、要求されたコンテンツと同一のコンテンツの配信を、ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2から行う場合のコストC2と、センタサーバ10から行う場合のコストC1とを比較する(ステップS13)。例えば、現時点で、各ローカルエリアLA1、LA2でそのコンテンツの配信を受けているクライアントの数から、このまま、センタエリアCAのいずれかのビデオサーバ部から、ローカルエリアLA1、LA2のクライアントに対して配信するネットワークのコストCT1と、ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2に本コンテンツを配送する際のネットワークのコストCTaと配送元におけるディスク入出力負荷のコストCTbと配送先におけるディスク入出力負荷のコストCTcの総和C2(=CTa+CTb+CTc)とを比較する。すなわち、この例では、キャッシュサーバ30−1、30−2からの配信コストとセンタサーバ10からの配信コストとの比較を、センタサーバ10から配信する場合のコストと、センタサーバ10からキャッシュサーバ30−1、30−2へ配送する場合のコストとの比較により行っている。
【0054】
ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2に本コンテンツを配送した上でキャッシュサーバから配信させる方のコストが低ければ(等しい場合を含んでも良い)、キャッシュ制御サーバ部22は、ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2に本コンテンツを配送させ、以降、ローカルエリアLA1、LA2のクライアント32−1−1、30−2−1、…、32−1−2、30−2−2、…に対しては、ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2から配信させるように設定し(ステップS14)、その後、上述したステップS10に戻る。
【0055】
このステップS14により、ビデオサーバ部にキャッシングされているコンテンツが高頻度でアクセスされるものである場合に、そのアクセスの一部をキャッシュサーバ側で移すことができる。また、ステップS10に戻ることは、ビデオサーバ部にキャッシングされているコンテンツの中に、アクセスが高頻度のものがさらにあるか(残っているか)の判別を行うことになる。
【0056】
一方、ステップS13の判別により、ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2に本コンテンツを配送した上でキャッシュサーバから配信させる方のコストが高い(等しい場合を含んでも良い)という結果を得ると、キャッシュ制御サーバ部22は、要求されたコンテンツの配信に機能するビデオサーバ部に、現時点でキャッシングされているコンテンツをキャッシュから出し(キャッシュから消去し)、そのコンテンツについては、これ以降、RAID装置20の該当するディスクからリードして今までの配信中のクライアントに配信させることとすると共に、要求されたコンテンツをRAID装置20の該当するディスクからリードしてビデオサーバ部のキャッシュに入れ、このコンテンツの配信先のクライアント(要求元クライアントを含む)への継続配信はキャッシュからの配信に移行させ(ステップS15)、コンテンツ配信要求の待機状態に戻る。
【0057】
ステップS15の処理は、今回のコンテンツ配信要求によって、要求されたコンテンツと同一コンテンツのディスクアクセスが高頻度になり、現時点でキャッシュされているコンテンツよりキャッシングが好ましいものとなったので、キャッシュングしているコンテンツを切り替える処理になっている。
【0058】
次に、コンテンツ人気度に応じた配送動作を説明する。このコンテンツ人気度に応じた配送動作は、コンテンツ配送指示サーバ11による配送コンテンツの決定動作から実行される。
【0059】
図4は、コンテンツ配送指示サーバ11の動作の概要を示すフローチャートである。
【0060】
コンテンツ配送指示サーバ11は、全コンテンツの配信ログを随時収集し(ステップS20)、過去一定期間のログデータが得られたときに、今後一定期間の人気コンテンツを予測する(ステップS21、S22)。人気コンテンツの予測方法は任意の方法を適用して構わない。例えば、各コンテンツにつて、過去一定期間を複数に等分したサブ期間毎のアクセス(配信要求)数を求め、サブ期間毎のアクセス数から、アクセス数の変化曲線を求め、その変化曲線を適用して、今後一定期間のアクセス数を推定し、その推定アクセス数を、人気があるか否かの判別用閾値と比較することにより、人気コンテンツを予測する。また例えば、上述したようにして求めた推定アクセス数が上位である所定数のコンテンツを人気コンテンツとして捉えるようにしても良い。さらに、判別用閾値を超えているコンテンツの中でも、超えている度合いが大きい所定数を人気コンテンツとして捉えるようにしても良い。
【0061】
コンテンツ配送指示サーバ11は、新たな人気コンテンツが予測できたときには(人気コンテンツとして予測されたことが初めてのコンテンツが生じたときには)、センタサーバ10へ、人気コンテンツをローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2に配送することを指示する(ステップS23)。ここで、新たな人気コンテンツが複数存在する場合には、人気が高いコンテンツの配送から指示する。
【0062】
また、コンテンツ配送指示サーバ11は、今回、人気コンテンツと予測できなかったコンテンツのうち、過去に人気コンテンツと予測されてキャッシュサーバ30−1、30−2にキャッシュされているが、今回及び過去の予測結果からキャッシングに不向きになったコンテンツがあれば、センタサーバ10へ、ローカルエリアLA1、LA2のキャッシュサーバ30−1、30−2からそのコンテンツをキャッシュングすることを取り止めることを指示し(ステップS24)、配信ログの収集処理に戻る。例えば、人気コンテンツと予測されないことが所定回数連続した場合に、キャッシュングを取り止めることに決定する。
【0063】
センタサーバ10は、配送指示を受けた新たな人気コンテンツを各キャッシュサーバ30−1、30−2に配送し、キャッシュサーバ30−1、30−2のキャッシュ31−1、31−2へキャッシュさせる。ローカルエリアに属するクライアントからの配信要求が、クライアントが在圏するキャッシュサーバ30−1、30−2にキャッシュされている人気コンテンツの場合には、キャッシュサーバ30−1、30−2からそのクライアントに配信される。
【0064】
また、センタサーバ10は、キャッシュング取止指示を受けたコンテンツのキャッシュ31−1、31−2からの消去を各キャッシュサーバ30−1、30−2に指令し、キャッシュサーバ30−1、30−2のキャッシュ31−1、31−2から消去させる。このようなコンテンツは、センタサーバ10が配信を行うことになる。
【0065】
以上のように、人気コンテンツをキャッシュサーバ30−1、30−2にキャッシュングし、同一ローカルエリアに在圏するクライアントからの配信要求に対しては、キャッシュサーバから配信するようにすると、システム全体の配信性能が向上するようになる。
【0066】
(A−3)実施形態の効果
実施形態の分散型コンテンツ配信システム1によれば、以下の効果を奏することができる。
【0067】
RAID装置20のディスクをアクセスするビデオサーバ部21−1、21−2にキャッシュ24−1、24−1を設け、ローカルのキャッシュサーバ30−1、30−2が対応しない、コンテンツ配信要求が生じる毎に、ビデオサーバ部21−1、21−2のキャッシュ24−1、24−1から取出して配信する、RAID装置20から取出して配信する、キャッシュ24−1、24−1にキャッシュングした上でキャッシュ24−1、24−1から取出して配信する、キャッシュサーバ30−1、30−2に配送した上でキャッシュサーバ30−1、30−2から配信するなど、ディスクの入出力性能を考慮して、要求元のクライアントだけでなく配信中のクライアントへの配信元装置や配信方法を動的に決定するようにしたので、ディスクの入出力性能の限界が超えて、クライアントの要求を処理できなくなるような事態を未然に防止することができる。
【0068】
例えば、コンテンツ配送指示サーバ11が人気コンテンツと予測する前に、急激に、そのコンテンツの配信要求が頻発しても、配信要求が生じる毎に、配信元装置や配信方法を動的に決定しているため、ディスクからの取出しで配信していた状況において、配信要求の頻発によって、ディスクの入出力性能の限界が超えるような事態になりそうならば、ビデオサーバ部のキャッシュにキャッシュングした上でキャッシュから取出して配信するように切替え、その際に既にキャッシュングされていた他のコンテンツについては場合によりキャッシュサーバに配送した上でキャッシュサーバから配信するように変化させたので、ディスクの入出力性能の限界が超えるような事態を回避でき、クライアントの配信要求を処理できなくなる事態を防ぐことができる。
【0069】
また、上述したように、コンテンツ配信要求が生じる毎に、クライアントへの配信元装置や配信方法を動的に決定するようにしたので、コンテンツ配送指示サーバ11が人気コンテンツを見直す前に、人気コンテンツの傾向が大きく変動したとしても、それに応じて、配信元装置や配信方法を決定でき、人気コンテンツの変動時におけるシステム全体の配信性能を向上させることができる。
【0070】
ここで、急激に人気が高まったコンテンツに対し、センタサーバにおけるビデオサーバ部のキャッシュから配信した際のコストと、キャッシュサーバから配信する場合とのコストを比較して、配信元装置を選択するようにしたので、システム全体のネットワークコストとディスクの入出力コストなどの総コストを低減することができる。
【0071】
(B)他の実施形態
上記実施形態においては、センタサーバが1つのものを示したが、センタサーバが複数あっても良い。この場合、コンテンツを重複することなく割り振るようにすれば良い。あるセンタサーバがあるコンテンツを記憶しているディスクを有する場合、他のセンタサーバのセンタエリアはそのコンテンツについてはローカルエリアとなり、実施形態で説明したキャッシュサーバとして機能するサーバを設けるようにすれば良い。
【0072】
上記実施形態においては、大容量記憶装置がRAID装置であるものを示したが、大容量記憶装置はRAID装置に限定されるものではなく、その構成要素もディスクに限定されない。磁気テープや半導体メモリを全て又は部分的に利用したものであっても良い。
【0073】
上記実施形態では、ステップS6において、要求されたコンテンツが格納されているディスクのコンテンツの中から、いずれかのビデオサーバ部のキャッシュにもキャッシュされていないものであって、しかも、最もディスクに負荷を掛けているコンテンツを探索し、探索されたコンテンツを、いずれかのビデオサーバ部のキャッシュにコピーするようにしたが、探索されたコンテンツの負荷(最も大きな負荷)が閾値を超えているかを確認し、超えている場合にのみ、探索されたコンテンツを、いずれかのビデオサーバ部のキャッシュにコピーするようにし、超えていない場合には、ステップS5に移行するようにしても良い。
【0074】
上記実施形態では、ステップS10において、最も入出力負荷の高いコンテンツになったかを判別するものを示したが、上位所定順位以内の入出力負荷のコンテンツになったかを判別するようにしても良く、また、順位ではなく、入出力負荷が予め定められている閾値以上のコンテンツになったかを判別するようにしても良い。
【0075】
上記実施形態においては、ステップS12で肯定結果が得られたときに、ステップS13のセンタサーバからの配信コストと、ローカルのキャッシュサーバからの配信コストとの相対比較を行うものを示したが、ステップS12を省略し、ステップS11で肯定結果を得た場合に、直ちにステップS13へ移行するようにしても良い。すなわち、ビデオサーバ部にその時点でキャッシュされているコンテンツのリード時の負荷を確認しないようにしても良い。若しくは、ステップS13からステップS15へ移行する際に、ステップS15の処理の前に、ステップS12のようなビデオサーバ部にその時点でキャッシュされているコンテンツのリード時の負荷を確認するようにしても良い。
【0076】
上記実施形態においては、コンテンツ配送指示サーバ11が、エリアを区別することなく、人気コンテンツを把握するものを示したが、人気コンテンツの把握をローカルエリア単位に行うようにしても良い。
【0077】
同様に、ステップS13のコスト比較も、ローカルエリア単位に行うようにしても良い。例えば、この場合、全てのローカルエリアについてセンタ側でのコストが低いときにステップS15に移行し、ステップS14への移行は、ローカル側のコストが低いローカルエリアについてのみ行うようにすれば良い。
【0078】
上記実施形態においては、コンテンツがビデオコンテンツの場合を示したが、コンテンツはビデオコンテンツに限定されるものではない。
【0079】
上記実施形態においては、センタサーバ内に、配送サーバ決定装置として機能するキャッシュ制御サーバ部が設けられたものを示したが、配送サーバ決定装置がセンタサーバ外に設けられたものであっても良い。
【0080】
上記実施形態において、「サーバ」や「サーバ部」と表現した部分は1つの物理的なサーバで構成されている場合に限られず、複数の物理的なサーバで構成されていても良い。
【符号の説明】
【0081】
1…分散型コンテンツ配信システム、
CA…センタエリア、
10…センタサーバ、
20…RAID装置、21−1、21−2…ビデオサーバ部、
22…キャッシュ制御サーバ部、23−1、23−2、23−3…ディスク、
24−1、24−2…キャッシュメモリ(キャッシュ)、
25…ディスク負荷監視モジュール、26…キャッシュコンテンツ選択モジュール、
27…ビデオサーバ割振モジュール
11…コンテンツ配送指示サーバ
12−1、12−2、…クライアント、
LA1、LA2…ローカルエリア、
30−1、30−2…キャッシュサーバ、
31−1、31−2…キャッシュメモリ(キャッシュ)、
32−1−1、32−2−1、32−1−2、32−2−2、…クライアント。

【特許請求の範囲】
【請求項1】
複数のコンテンツを記憶している記憶装置を有するコンテンツ記憶サーバと、上記コンテンツ記憶サーバからコンテンツが配送されることがある、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツ配送先サーバとを有し、クライアント端末からのコンテンツ配信要求に対し、上記コンテンツ記憶サーバ又はいずれかの上記コンテンツ配送先サーバから要求されたコンテンツを配信する分散型コンテンツ配信システムにおいて、
上記コンテンツ記憶サーバは、上記記憶装置をアクセスする、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツアクセス部を備え、上記各コンテンツアクセス部は上記記憶装置にアクセスしてコンテンツを配信できると共に、自己のキャッシュメモリからコンテンツを取出して配信できるものであると共に、
コンテンツの配信ログを収集し、過去一定期間のログデータから人気コンテンツを予測し、人気コンテンツを上記各コンテンツ配送先サーバに配送する指示を上記コンテンツ記憶サーバに発して人気コンテンツを配送させるコンテンツ配送指示装置と、
コンテンツ配信要求が生じる毎に、配信元及び配信方法を決定する配信サーバ決定装置とをさらに有し、
上記配信サーバ決定装置は、
上記各コンテンツ配送先サーバのキャッシュメモリにキャッシュングされているコンテンツ、上記各コンテンツアクセス部のキャッシュメモリにキャッシュングされているコンテンツ、上記記憶装置の各コンテンツのアクセス状況の情報を管理している管理手段と、
コンテンツ配信要求が生じると、要求時点でいずれかの上記キャッシュメモリにキャッシュングされているコンテンツの配信を優先させると共に、上記記憶装置から要求されたコンテンツを取出して配信する場合には、上記各キャッシュメモリにキャッシュされているコンテンツの見直しを実行するキャッシュコンテンツ見直し手段とを有する
ことを特徴とする分散型コンテンツ配信システム。
【請求項2】
上記キャッシュコンテンツ見直し手段は、今回のコンテンツ配信要求に応じていずれかの上記コンテンツアクセス部が上記記憶装置から要求された該当コンテンツを取出すことにより、上記記憶装置の該当コンテンツの入出力負荷が第1の閾値を超える場合には、入出力負荷が最大なコンテンツを上記記憶装置から読み出して上記コンテンツアクセス部の上記キャッシュメモリにキャッシュングすることを特徴とする請求項1に記載の分散型コンテンツ配信システム。
【請求項3】
上記キャッシュコンテンツ見直し手段は、入出力負荷が最大でキャッシュングさせたコンテンツが要求されたコンテンツと同一である場合には、要求したクライアント端末への配信を、上記キャッシュメモリからの読み出し配信に切り替えることを特徴とする請求項2に記載の分散型コンテンツ配信システム。
【請求項4】
上記キャッシュコンテンツ見直し手段は、入出力負荷が最大でキャッシュングさせたコンテンツが要求されたコンテンツと異なる場合には、要求されたコンテンツと同一のコンテンツを最も配信している上記コンテンツアクセス部から、要求したクライアント端末へ要求されたコンテンツを配信させることを特徴とする請求項3に記載の分散型コンテンツ配信システム。
【請求項5】
上記キャッシュコンテンツ見直し手段は、要求されたコンテンツを上記記憶装置から取出すことによる入出力負荷が、要求されたコンテンツが人気コンテンツになったと判断できる負荷であることを少なくとも条件とし、要求されたコンテンツと同一のコンテンツを、上記コンテンツ記憶サーバから配信する場合のコストと、上記各コンテンツ配送先サーバから配信する場合のコストとの比較を行い、要求されたコンテンツをキャッシュングさせるいずれかの1以上の上記キャッシュメモリを決定することを特徴とする請求項4に記載の分散型コンテンツ配信システム。
【請求項6】
複数のコンテンツを記憶している記憶装置を有するコンテンツ記憶サーバと、上記コンテンツ記憶サーバからコンテンツが配送されることがある、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツ配送先サーバと、コンテンツの配信ログを収集し、過去一定期間のログデータから人気コンテンツを予測し、人気コンテンツを上記各コンテンツ配送先サーバに配送する指示を上記コンテンツ記憶サーバに発して人気コンテンツを配送させるコンテンツ配送指示装置とを有し、クライアント端末からのコンテンツ配信要求に対し、上記コンテンツ記憶サーバ又はいずれかの上記コンテンツ配送先サーバから要求されたコンテンツを配信する分散型コンテンツ配信システムに設けられる配信サーバ決定装置であって、
上記コンテンツ記憶サーバは、上記記憶装置をアクセスする、コンテンツをキャッシュングするキャッシュメモリを備えた1又は複数のコンテンツアクセス部を備え、上記各コンテンツアクセス部は上記記憶装置にアクセスしてコンテンツを配信できると共に、自己のキャッシュメモリからコンテンツを取出して配信できるものであり、
当該配信サーバ決定装置が、
上記各コンテンツ配送先サーバのキャッシュメモリにキャッシュングされているコンテンツ、上記各コンテンツアクセス部のキャッシュメモリにキャッシュングされているコンテンツ、上記記憶装置の各コンテンツのアクセス状況の情報を管理している管理手段と、
コンテンツ配信要求が生じると、要求時点でいずれかの上記キャッシュメモリにキャッシュングされているコンテンツの配信を優先させると共に、上記記憶装置から要求されたコンテンツを取出して配信する場合には、上記各キャッシュメモリにキャッシュされているコンテンツの見直しを実行するキャッシュコンテンツ見直し手段とを有する
ことを特徴とする配信サーバ決定装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2011−176595(P2011−176595A)
【公開日】平成23年9月8日(2011.9.8)
【国際特許分類】
【出願番号】特願2010−38877(P2010−38877)
【出願日】平成22年2月24日(2010.2.24)
【出願人】(308033722)株式会社OKIネットワークス (165)
【Fターム(参考)】