JP4057074B2 - Stream data striping method and stream server - Google Patents

Stream data striping method and stream server Download PDF

Info

Publication number
JP4057074B2
JP4057074B2 JP10545596A JP10545596A JP4057074B2 JP 4057074 B2 JP4057074 B2 JP 4057074B2 JP 10545596 A JP10545596 A JP 10545596A JP 10545596 A JP10545596 A JP 10545596A JP 4057074 B2 JP4057074 B2 JP 4057074B2
Authority
JP
Japan
Prior art keywords
access
stripe
storage devices
stream
striping
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP10545596A
Other languages
Japanese (ja)
Other versions
JPH09294244A (en
Inventor
泰生 野口
克彦 西川
宏一 江川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP10545596A priority Critical patent/JP4057074B2/en
Publication of JPH09294244A publication Critical patent/JPH09294244A/en
Application granted granted Critical
Publication of JP4057074B2 publication Critical patent/JP4057074B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
ビデオ・オン・デマンドシステムなどにおいて、動画データや音声データなどのストリームデータを供給するためのストライピング方法およびこのストライピング方法を用いたストリームサーバに関するものである。
利用者からの要求に応じて、映画などのソフトウェアを供給するビデオ・オン・デマンドシステムやマルチメディア情報システムにおいては、多数の利用者に並行してサービスを提供することが必要とされている。
このため、ストリームサーバは、各ソフトウェアに対応するストリームデータを多重にアクセスしてそれぞれの利用者に提供するとともに、一連のストリームとしての転送速度を確保して、利用者に快適なレスポンスを保証する必要がある。
ストリームサーバにおいて、上述したような性能を実現するための技術として、ストリームデータを多数のストライプに分割し、各ストライプを複数の記憶装置に分配して格納するストライピングと呼ばれる技法があり、ビデオ・オン・デマンドシステムなどに適用されている。
【0002】
【従来の技術】
図7に、従来のストライピング技法を適用したストリームサーバの構成例を示す。
図7に示したストリームサーバにおいて、ストリームデータは、n個のストライプA1 〜An に分割され、4つのディスク装置4111 〜4114 に分散して格納されている。
【0003】
例えば、上述したn個のストライプA1 〜An は、ディスク装置4111 を分配の基点として、添え字で示した装置番号順に上述した4つのディスク装置4111 〜4114 に分配して格納されている。また、各タイトルごとに設けられたストライプテーブル412には、ストライプ番号に対応して、該当するストライプのストリームデータの格納場所が格納されている。
【0004】
この場合は、アクセス処理部413が、これらのディスク装置4111 〜4114 を順次にアクセスし、各ストライプのストリームデータを読み出して順次に再生処理部414の処理に供することにより、映画などの一連の動画データや音声データを再生することができる。
また、このようにして再生された動画データや音声データは、通信処理部415を介して通信回線に送出され、利用者側のセットトップボックスなどのクライアント装置(図示せず)に渡される。
【0005】
ここで、再生処理部414によって1ストライプ分のストリームデータを再生するためには所定の再生時間Tを要するので、アクセス処理部413は、読み出したストライプに対応する再生時間が経過するまでに、次の1ストライプ分のストリームデータを読み出して、再生処理部414の処理に供すればよい。
したがって、アクセス処理部413が、m個のディスク装置411に同時にアクセス可能であり、上述した再生時間Tの間にディスク装置411からk個のストライプを読出可能であるとすると、図8(a) に示すように、再生時間Tをk個のアクセスタイミングに分割し、各ディスク装置411へのアクセスタイミングを1ストライプ分ずつずらすことにより、記憶装置数m×分割数k本のストリームを並行して供給することができる。但し、図8(a) は、アクセス処理部413が、4台のディスク装置411のそれぞれから再生時間Tの間に4個分のストライプを読み出し可能とした場合について、各ディスク装置411へのアクセスタイミングの割当を示したものであり、4ストライプ分の再生時間(図8において、符号T1〜T4で示す)の間に、16本の各ストリームが4台のディスク装置411(図8において、符号#1〜#4で示す)をそれぞれタイミングをずらしてアクセスする様子を示している。
【0006】
各アクセスタイミングにおけるディスク装置411の割当は、図8(b) に示すように、図7に示したディスク管理テーブル416に、各ストリームがアクセス可能なディスク装置411の装置番号として格納されており、更に該当するストリームが空き状態であるか否かを示す空きフラグが付加されている。
アクセス制御部417は、上述した割当に従って、アクセスタイミングごとにこのディスク管理テーブル416を更新するとともに、受付処理部418および通信処理部415を介して、クライアント装置(図示せず)からの指示を受け取り、このディスク管理テーブル416および上述したストライプテーブル412を参照しながらアクセス処理部413によるアクセス動作を制御する構成となっている。
【0007】
例えば、クライアント装置(図示せず)から新規サービスの開始が要求された場合に、アクセス制御部417は、まず、指定されたタイトルに対応するストライプテーブル412を参照して、先頭のストライプが格納されたディスク装置411を検索し、次に、上述したディスク管理テーブル416に基づいて、適切なストリームを該当するクライアント装置(図示せず)に割り当てて、サービスを開始すればよい。
【0008】
このとき、アクセス制御部417は、ディスク管理テーブル416から、上述した先頭のストライプに対応するディスク装置411に最も早くアクセス可能な空きストリームを検索し、このストリームを新規のサービスに割り当てればよい。
このようにして、利用者からの要求に応じてサービスが開始され、その後は、このストリームにおいて、各ストライプのストリームデータが順次に送出され、利用者に連続的な動画や音声が提供される。
【0009】
一方、利用者が所望のシーンへのジャンプなどを指示した場合に、アクセス制御部417は、この指示およびジャンプ先を受付処理部418から受け取って、ストライプテーブル412からジャンプ先のストライプの格納場所を検索し、再び、ディスク管理テーブル416を参照して、該当するディスク装置411に最も早くアクセス可能なストリームに切り換えればよい。
【0010】
このようなストリームの乗り換え制御を行うことにより、利用者に対して、可能な限りのレスポンスを提供することができる。
【0011】
【発明が解決しようとする課題】
従来の方法では、ストリームデータの各ストライプは、各ストリームにおいてストリームデータが滞りなく流れることを前提として、各ストライプのストリームデータの性質にかかわらず、単純にストリームデータ全体における順序に従って重複することなく配置されていた。
【0012】
したがって、メニューの画面やクライアント装置(図示せず)に所定の動作を実行させるためのスクリプトと呼ばれる一種のプログラムなどのように、明らかに他のストライプとはアクセス頻度が異なっているストライプも、他のストライプと同様に、ディスク装置411のいずれかに格納されていた。
このため、空きストリームが少ないときには、映画などを途中で中断して、別の画面にジャンプしたり、メニュー画面を呼び出そうとした場合に、待ち時間が発生することがある。
【0013】
なぜなら、上述したようなストリームの乗り換えを行ったとしても、次にアクセス可能なディスク装置411にジャンプ先のストライプが格納されているとは限らないからである。
例えば、ストリーム1がディスク装置4111 にアクセスするタイミングに、このディスク装置4111 に格納されたストライプAi へのジャンプが指示された場合に、ストリーム5からストリーム8に空きがなければ、次の再生時間Tの間にディスク装置4111 をアクセスすることはできない(図8(a) 参照)。この場合は、他のストリームから乗り換え先を選択するので、少なくとも再生時間T分の待ち時間が発生し、最悪の場合は、再生時間T×ディスク装置数mの待ち時間が発生する。
【0014】
本発明は、アクセス頻度が異なるストライプを含むストリームデータをレスポンスを維持しながら供給可能なストリームデータ供給システムを提供することを目的とする。
【0015】
【課題を解決するための手段】
図1(a),(b) は、請求項1および請求項2のストライピング方法の原理を示す図である。
【0016】
請求項1の発明は、ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置から、これらの記憶装置に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、前記ストリームデータを再生して利用者側のクライアント装置に提供するストリームサーバにおいて、複数の記憶装置から記憶装置の数より少ない複数の記憶装置を分配の基点として選択し、選択された記憶装置をそれぞれ基点として、ストリームデータの全てのストライプを前記スケジュールで規定されたアクセス順に従って複数の記憶装置に分配することを特徴とする。
【0017】
請求項1の発明は、ストリームデータ全体を基点となる記憶装置をずらして重複してストライピングするので、ストリームデータの各ストライプは、ストライピングの重複数(以下、重複度と称する)だけそれぞれ異なる記憶装置に格納される。したがって、任意のストライプに対するアクセスが必要となったときに、スケジュールで規定されたタイミングで、アクセス可能な記憶装置に該当するストライプが存在する確率が大きくなっている。これにより、ジャンプ再生指示に応じた任意ストライプへのアクセスなどによってアクセス頻度に変動が生じた場合にも、指定されたストライプをアクセスするまでに必要な平均的な待ち時間を削減し、ストリームサーバのレスポンスを維持することができる。
【0018】
請求項2の発明は、ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置から、これらの記憶装置に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、ストリームデータを再生して利用者側のクライアント装置に提供するストリームサーバにおいて、ストリームデータをそれぞれ少なくとも1つの連続したストライプからなる複数のグループに分類し、複数のグループごとに、複数の記憶装置から複数の記憶装置をそれぞれ選択し、複数のグループに対応して選択した記憶装置それぞれを基点として、対応するグループに属するストライプを前記スケジュールで規定されたアクセス順に従って前記複数の記憶装置に分配することを特徴とする。
【0019】
請求項2の発明は、ストリームデータを構成するn個のストライプを複数のグループに分類し、このグループごとに基点となる記憶装置を選択してストライピングするので、それぞれが属するグループに応じて、ストリームデータの各ストライプの重複度を変えることができる。
これにより、例えば、ストリームデータから、メニュー画面の表示やスクリプト再生に関するストライプのようにアクセス頻度の高いストライプを分離し、これらのストライプからなるグループの重複度を、他の連続的なアクセスが期待されるストライプからなるグループの重複度とは独立に決定し、アクセス頻度の高いグループに属するストライプにアクセスするまでの平均待ち時間の短縮を図ることができる。
請求項3の発明は、請求項2に記載のストライピング方法において、ストリームデータを構成する各ストライプに対するアクセス頻度に応じて、各ストライプを複数のグループに分類し、アクセス頻度の高いグループに対応して、他のグループよりも多い記憶装置をストライピングの基点として選択することを特徴とする。
【0020】
特に、請求項3の発明は、ストリームデータを構成する複数のストライプをアクセス頻度に応じてグループ分けし、アクセス頻度の高いストライプからなるグループに高い重複度を与えているので、これらのストライプは重複度分の記憶装置に重複して格納される。したがって、これらのストライプへのアクセスが必要とされたときに、スケジュールで規定されたタイミングでアクセス可能な記憶装置に指定されたストライプが存在する確率を大きくすることができるので、該当するストライプにアクセスするまでの平均待ち時間を短縮し、レスポンスの向上を図ることができる
【0021】
図2は、本発明のストリームサーバの原理ブロック図である。
請求項4の発明は、ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置101から、読出手段102により、これらの記憶装置101に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、ストリームデータを再生して利用者側のクライアント装置103に提供するストリームサーバにおいて、ストリームデータを構成する各ストライプを格納している記憶装置101およびその格納場所に関するストライピング情報を保持するストライピング情報保持手段111と、複数の記憶装置101に対するアクセスについてのスケジュールに関するスケジュール情報を保持するスケジュール情報保持手段112とを備え、複数の記憶装置101は、相異なる記憶装置101を基点としてスケジュールで規定された順序に従って行われたストライプの分配によって、分配された各ストライプをそれぞれ選択的に格納する構成であり、読出手段102は、アクセス指示に応じて、指定された記憶装置101にアクセスし、指定されたストライプを読み出すアクセス手段113と、指定ストライプへのアクセス指示の入力に応じて、ストライピング情報保持手段111を参照し、指定ストライプに対応するストライピング情報を検索する検索手段114と、スケジュール情報と、検索結果として得られたストライピング情報とに基づいて、アクセス手段113へのアクセス指示を作成するアクセス制御手段115とを備えた構成であることを特徴とする。
【0022】
請求項4の発明では、読出手段102に備えられた検索手段114およびアクセス制御手段115がアクセス指示に応じて動作し、ストライピング情報保持手段111およびスケジュール情報保持手段112にそれぞれ保持されたストライピング情報およびスケジュール情報に基づいて、アクセス手段113の動作を制御する。これにより、複数の記憶装置101に重複してストライピングされたストリームデータの中から指定されたストライプを読み出して、クライアント装置103に提供することができる。
【0023】
複数の記憶装置101には、上述した請求項1のストライピング方法に従って、ストリームデータ全体が重複してストライピングされているので、任意のストライプがアクセス対象として指定されたときに、アクセス手段113がスケジュールに従ってアクセス可能な記憶装置101に指定されたストライプが格納されている確率が重複度に対応して高くなっている。また、ストリームの乗換えが必要となる場合にも、選択可能な候補ストリームが多くなるので、待ち時間を発生させずに、指定されたストライプを読み出すことができる可能性を高くすることができる。これにより、ジャンプ再生のような指定ストライプに対するアクセス指示によって生じるアクセス頻度の変化に柔軟に対応し、平均的な待ち時間を短縮してレスポンス性能を維持することが可能となり、利用者に快適なサービスを提供することができる。
【0024】
請求項5の発明は、ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置101から、読出手段102により、これらの記憶装置101に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、前記ストリームデータを再生して利用者側のクライアント装置103に提供するストリームサーバにおいて、ストリームデータを構成する各ストライプを格納している前記記憶装置101およびその格納場所に関するストライピング情報を保持するストライピング情報保持手段111と、複数の記憶装置101に対するアクセスについてのスケジュールに関するスケジュール情報を保持するスケジュール情報保持手段112とを備え、複数の記憶装置101は、前記ストリームデータを構成する複数のストライプを所定の基準に従って分類して得られる複数のグループごとに、複数の記憶装置101を基点として前記スケジュールで規定された順序に従って行われたストライプの分配によって、分配された各ストライプをそれぞれ選択的に格納する構成であり、読出手段102は、アクセス指示に応じて、指定された記憶装置101にアクセスし、指定されたストライプを読み出すアクセス手段113と、指定ストライプへのアクセス指示の入力に応じて、ストライピング情報保持手段111を参照し、指定ストライプに対応するストライピング情報を検索する検索手段114と、スケジュール情報と、検索結果として得られたストライピング情報とに基づいて、アクセス手段113へのアクセス指示を作成するアクセス制御手段115とを備えた構成であることを特徴とする。
【0025】
請求項5の発明は、読出手段101に備えられた検索手段114およびアクセス制御手段115がアクセス指示に応じて動作し、ストライピング情報保持手段111およびスケジュール情報保持手段112にそれぞれ保持されたストライピング情報およびスケジュール情報に基づいて、アクセス手段113の動作を制御することにより、複数の記憶装置101に重複してストライピングされたストリームデータの中から指定されたストライプを読み出して、クライアント装置103に提供することができる。
【0026】
複数の記憶装置101には、上述した請求項2のストライピング方法に従って、ストリームデータがグループごとに重複してストライピングされているので、アクセス手段113が、スケジュールに従ってアクセス可能な記憶装置101から指定されたストライプを対応するグループの重複度に応じた確率で読み出すことができる。これにより、1つのストリームデータを構成する各グループのアクセス頻度の格差に柔軟に対応し、平均的な待ち時間を短縮してレスポンス性能を維持することが可能となり、利用者に快適なサービスを提供することができる。
【0027】
【発明の実施の形態】
以下、図面に基づいて、本発明の実施形態について詳細に説明する。
図3は、請求項4のストリームサーバの実施形態を示す図である。
図3に示したストリームサーバ210において、4台のディスク装置2111 〜2114 は記憶装置101に相当するものであり、請求項1のストライピング方法によってストライピングされたストリームデータを格納している。例えば、ディスク装置2111 を基点としてストライピングしたストリームデータと、ディスク装置2112 を基点としてストライピングしたストリームデータとを格納している。
【0028】
この場合は、各ストライプのストリームデータは、装置番号が連続した2つのディスク装置211に重複して格納されており、各ストライプのストリームデータの格納場所は、図4(a) に示すように、各タイトルに含まれるストライプにそれぞれ対応するストライプテーブル2121 〜212n にそれぞれ格納されている。
【0029】
以下、ディスク装置2111 〜2114 およびストライプテーブル2121 〜212n をそれぞれ総称する際は、単に、ディスク装置211およびストライプテーブル212と称する。
また、図3において、タイトルごとに設けられたストライピングテーブル213は、図4(b) に示すように、ストライプ番号に対応して、各ストライプに対応するストライプテーブル212を示すポインタPiと、そのストライプが格納されているディスク装置211の数を重複度として格納している。
【0030】
このように、ストライピングテーブル213に格納されたポインタによって、適切なストライプテーブル212を示す構成とすることにより、これらの各部により、請求項4で述べたストライピング情報保持手段111の機能を実現し、請求項1で述べたストライピング方法によってストライピングされた各ストライプの格納場所に関するストライピング情報を過不足なく保持することができる。
【0031】
このストライピングテーブル213は、上述したストライプテーブル212およびディスク管理テーブル416とともに、アクセス制御部214の処理に供されており、このアクセス制御部214からの指示に応じて、アクセス手段113に相当するアクセス処理部413が動作する構成となっている。
図3に示したアクセス制御部214において、ストリーム管理部221は、受付処理部418を介して新規サービスの開始やストリームのジャンプなどの指示を受け取り、検索処理部222、照合処理部223および割り当て処理部224に対してそれぞれの動作を指示し、これらの処理結果に応じて、アクセス処理部413の動作を制御する構成となっている。
【0032】
図3において、検索処理部222は請求項4で述べた検索手段114に相当するものであり、ストリーム管理部221からの指示に応じて、ストライピングテーブル213およびストライプテーブル212を参照し、指定されたストライプの格納場所をストリーム管理部221に返す構成となっている。
また、照合処理部223は、ストリーム管理部221からの指示に応じて、上述したストライプの格納場所と、請求項4で述べたスケジュール情報保持手段112に相当するディスク管理テーブル416内の情報とを照合する構成となっている。
【0033】
また、図2において、割当処理部224は、ストリーム管理部221からの指示に応じて、候補抽出部225が、ディスク管理テーブル416に基づいて割当先の候補となる候補ストリームを抽出し、割当決定部226が、抽出された候補ストリームの中から1つを選択してストリーム管理部221に通知する構成となっている。
【0034】
すなわち、検索処理部222による検索結果とディスク管理テーブル416の内容に応じて、ストリーム管理部221、照合処理部223および割り当て処理部224が動作することにより、請求項4で述べたアクセス制御手段115の機能を実現する構成となっている。
図5に、ストリーム管理動作を表す流れ図を示す。
【0035】
利用者から新規のサービス提供開始が指示された場合や、サービス中に指定先へのジャンプなどが指定された場合に、アクセス制御部214は、受付処理部418から指定されたタイトルおよびストライプを受け取って動作を開始する。
まず、ストリーム管理部221からの指示に応じて、検索処理部222は、タイトルに対応するストライピングテーブル213を参照し、得られたポインタで示されるストライプテーブル212から指定ストライプのストリームデータが格納されたディスク装置211の装置番号を検索する(ステップ301)。
【0036】
次に、ストリーム管理部221は、受付処理部418から受け取った指示がジャンプ要求であるか否かを判定し(ステップ302)、肯定判定の場合に、ステップ301で検索した装置番号と要求元のストリーム番号を照合処理部223に渡せばよい。
これに応じて、照合処理部223はディスク管理テーブル416を参照し、検索結果として受け取った装置番号のそれぞれと要求元のストリームに対応するディスク装置211の装置番号とを照合し(ステップ303)、この照合結果に基づいて、ストリーム管理部221は、ストリームの乗り換えが必要であるか否かを判定する(ステップ304)。
【0037】
ここで、上述したように、4台のディスク装置211に1本のストリームデータを2つ重複してストライピングした場合は、ステップ301において、例えば、ストライプ番号Ai に対応して2つの装置番号(例えば、装置番号1、装置番号2)が検索され、ステップ303の処理に供される。
したがって、ストリーム管理部221は、要求元のストリームがアクセス可能なディスク装置211に対応する装置番号が、ステップ301で得られた装置番号のいずれかと一致した旨の照合結果が得られた場合に、ストリームの乗り換えが不要であると判断すればよい。
【0038】
このとき、ストリーム管理部221は、ステップ304の否定判定として、そのまま、指定されたストライプへのアクセス処理を実行する旨をアクセス処理部413に指示し(ステップ305)、処理を終了すればよい。
この場合は、要求元のストリームがアクセス可能なディスク装置に、ジャンプ先のストライプが格納されているから、元のストリームのままで指定されたストライプを読み出すことができ、再生処理部414および通信処理部415を介してクライアント装置103に送出することができるから、利用者を待たせることなく、ジャンプ先のストライプのストリームデータを提供することができる。
【0039】
一方、ステップ304の肯定判定の場合および上述したステップ302の否定判定の場合は、ストリーム管理部221からの指示に応じて、割当処理部224により、以下に述べるストリーム割当処理が行われる。
この場合に、候補抽出部225はディスク管理テーブル416を参照し、各ストリーム番号に対応する空きフラグに基づいて、空きストリームを検索し(ステップ306)、候補ストリームとして割当決定部226に通知する。
【0040】
これに応じて、割当決定部226は、まず、これらの候補ストリームそれぞれについて、指定されたディスク装置211に対するアクセスが可能となるまでの待ち時間を算出し(ステップ307)、最も待ち時間が短い候補ストリームを選択して(ステップ308)、ストリーム管理部221に通知すればよい。
これに応じて、ストリーム管理部221は、該当するストリームを要求元の利用者に対するサービスに割り当て(ステップ309)、次いで、ステップ305に進んでアクセス処理を実行した後に、処理を終了すればよい。
【0041】
この場合は、ディスク管理テーブル416において、指定されたストライプを格納する複数のディスク装置211にアクセス可能とされたストリームのいずれかが空きストリームであれば、要求に応じてこの空きストリームを割り当てることにより、即座に新規サービスの提供および指定ストライプへのジャンプを実現することができる。
【0042】
また、現アクセスタイミングで指定ストライプにアクセス可能なストリームに空きがない場合においても、指定ストライプのストリームデータが格納された複数のディスク装置211のいずれかにアクセスすればよいので、待ち時間を短縮可能な空きストリームが存在する可能性が高い。
上述したように、アクセス制御部214の各部が、ストライピングテーブル213、ストライプテーブル212およびディスク管理テーブル416に基づいてストリーム管理動作を行うことにより、請求項1のストライピング方法によって得られるストライプの分布の特徴を利用して、指定ストライプへのアクセス指示に対して、迅速にレスポンス可能なストリームサーバを実現することができる。
【0043】
これにより、利用者からのジャンプ要求など要求に応じて、各ストライプのストリームデータに対するアクセス頻度に予想不可能な変化が生じた場合においても、この変化に柔軟に対応し、利用者からの要求に対するレスポンスを大幅に向上して、ビデオ・オン・デマンドシステムなどの利用者に快適なサービスを提供することができる。
【0044】
また、予め、各ストライプのストリームデータごとに利用される頻度が分かっている場合は、利用頻度の高い一部のストライプのみを重複してストライピングしてもよい。
例えば、メニュー画面やスクリプトなどを含むストライプは、利用者に時系列的に提供される動画データや音声データの各ストライプに比べて、アクセス頻度が明らかに異なっており、特に、メニュー画面などは、非常にアクセス頻度が高い。
【0045】
以下、例えば、メニュー画面を提供するストリームデータを含んだストライプA1 ,A2 と、利用者に提供する動画・音声データからなるストライプA3 からストライプAn とからなるストリームデータをストライピングする方法について説明する。
図6に、請求項5のストリームサーバの実施形態を示す図を示す。
【0046】
図6において、4台のディスク装置2111 〜2114 には、ディスク装置2111 を基点として、ストリームデータ全体がストライピングされるとともに、ディスク装置2112 、2113 、2114 をそれぞれ基点として、ストライプ番号A1 、A2 のストリームデータがストライピングされている。
すなわち、請求項2の発明を適用し、ストリームデータを2つのグループに分割し、ストライプ番号A1 、A2 のストリームデータからなるグループに重複度4を与え、他のストライプには重複度1を与えて、それぞれストライピングされている。
【0047】
この場合は、ストライプA1 、A2 に対応してストライプテーブル2121 、2122 を設けて、4台のディスク装置2111 〜2114 における格納場所をそれぞれ示しておき、ストライピングテーブル213に、ストライプ番号A1 、A2 に対応してこれらのストライプテーブル2121 、2122 へのポインタおよび重複度4を格納しておけばよい。
【0048】
また、ストライプ番号A3 〜An に対応する情報としては、それぞれの格納場所を示す情報および重複度1をストライピングテーブル213に格納しておけばよい。
すなわち、この場合は、ストライピングテーブル213と2つのストライプテーブル2121 、2122 とによって、ストライピング情報保持手段111の機能が実現されている。
【0049】
また、これらのテーブルに格納されたストライピング情報と、ディスク管理テーブル416に格納されたスケジュール情報とをアクセス制御部214の処理に供することにより、請求項2の発明を適用して得られる各ストライプの分布の特徴を利用して、利用者からの要求に迅速にレスポンス可能なストリームサーバを実現することが可能となる。
【0050】
この場合は、全てのディスク装置211にメニュー画面に相当するストライプA1 が格納されているから、全てのストリームは、アクセスタイミングにかかわらず該当するストライプにアクセス可能である。
したがって、利用者へのサービスに割り当てられているストリームにかかわらず、メニュー画面を指定したジャンプ指示の入力に応じて、即座に該当するストライプへのジャンプを実現し、メニュー画面を表すストリームデータを利用者に提供することができる。
【0051】
このように、ストリームデータの一部のストライプをそのアクセス頻度に応じた重複度で重複してストライピングすることにより、該当するストライプがジャンプ先として指定された場合のレスポンスを向上して、利用者に快適なサービスを提供することができる。
特に、メニュー画面は、ジャンプ先として頻繁に指定され、しかもそのデータ量が小さいので、上述したように大きな重複度を与えて重複してストライピングした場合には、わずかな情報量を重複させることにより、大幅なレスポンス性能の向上を期待することができるので、大変効果的である。
【0052】
同様に、クライアント側のセットトップボックスなどの装置に特定の動作を行わせるため一種のプログラムであるスクリプトも、他のストリームデータに比べてアクセス頻度が高く、また、データ量も小さいので、これらのスクリプトに大きな重複度を与えてストライピングすることにより、大きな効果が期待できる。
【0053】
【発明の効果】
以上に説明したように、本発明のストライピング方法は、ストリームデータ全体あるいは各部分ごとに、基点を変えて重複してストライピングすることにより、アクセススケジュールで規定された各タイミングにおいて、指定されたストライプをアクセス可能となる確率を大きくし、利用者からのジャンプ指示などによって生じる各ストライプに対するアクセス頻度の変化や各ストライプの性質の違いによるアクセス頻度の差異に柔軟に対応し、平均的な待ち時間を短縮して、利用者に快適なサービスを提供することができる。
【0054】
また、請求項1あるいは請求項2の発明を適用し、重複してストライピングされた各ストライプの格納場所に関するストライピング情報に基づいて、記憶装置に対するアクセス動作を制御することにより、本発明のストライピング方法によって得られる各ストライプの分布の特徴を利用して、利用者からの要求に迅速に応答可能なストリームサーバを提供することが可能となる。
【図面の簡単な説明】
【図1】請求項1および請求項2のストライピング方法の原理を示す図である。
【図2】本発明のストリームサーバの原理ブロック図である。
【図3】請求項4のストリームサーバの実施形態を示す図である。
【図4】ストライピングテーブルの説明図である。
【図5】ストリーム管理動作を表す流れ図である。
【図6】請求項5のストリームサーバの実施形態を示す図である。
【図7】従来のストライピング技法を用いたストリームサーバの構成例を示す図である。
【図8】ストライピング技法を説明する図である。
【符号の説明】
101 記憶装置
102 読出手段
103 クライアント装置
111 ストライピング情報保持手段
112 スケジュール情報保持手段
113 アクセス手段
114 検索手段
115 アクセス制御手段
210 ストリームサーバ
211、411 ディスク装置
212、412 ストライプテーブル
213 ストライピングテーブル
214、417 アクセス制御部
221 ストリーム管理部
222 検索処理部
223 照合処理部
224 割当処理部
225 候補抽出部
226 割当決定部
413 アクセス処理部
414 再生処理部
415 通信処理部
416 ディスク管理テーブル
418 受付処理部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a striping method for supplying stream data such as moving image data and audio data in a video-on-demand system and a stream server using the striping method.
In video-on-demand systems and multimedia information systems that supply software such as movies in response to requests from users, it is necessary to provide services to a large number of users in parallel.
For this reason, the stream server accesses the stream data corresponding to each software in a multiplexed manner and provides it to each user, and secures a transfer speed as a series of streams to guarantee a comfortable response to the user. There is a need.
In the stream server, as a technique for realizing the above-described performance, there is a technique called striping in which stream data is divided into a large number of stripes and each stripe is distributed and stored in a plurality of storage devices.・ Applied to demand systems.
[0002]
[Prior art]
FIG. 7 shows a configuration example of a stream server to which a conventional striping technique is applied.
In the stream server shown in FIG. 7, the stream data includes n stripes A.1~ AnDivided into four disk devices 4111~ 411FourAre distributed and stored.
[0003]
For example, the above-mentioned n stripes A1~ AnThe disk device 4111Are the four disk devices 411 described above in the order of device numbers indicated by subscripts.1~ 411FourAre distributed and stored. The stripe table 412 provided for each title stores the storage location of the stream data of the corresponding stripe in correspondence with the stripe number.
[0004]
In this case, the access processing unit 413 uses these disk devices 411.1~ 411FourAre sequentially accessed, the stream data of each stripe is read out, and sequentially supplied to the processing of the reproduction processing unit 414, so that a series of moving image data such as a movie and audio data can be reproduced.
Also, the moving image data and audio data reproduced in this way are sent to the communication line via the communication processing unit 415, and passed to a client device (not shown) such as a set-top box on the user side.
[0005]
Here, since a predetermined reproduction time T is required for the reproduction processing unit 414 to reproduce the stream data for one stripe, the access processing unit 413 determines that the next reproduction time corresponding to the read stripe has elapsed. The stream data for one stripe may be read out and used for the processing of the reproduction processing unit 414.
Therefore, assuming that the access processing unit 413 can simultaneously access the m disk devices 411 and can read k stripes from the disk device 411 during the reproduction time T described above, FIG. As shown in FIG. 3, the reproduction time T is divided into k access timings, and the access timings to the respective disk devices 411 are shifted by one stripe, thereby simultaneously dividing the stream of the number of storage devices m × the number of divisions k. Can be supplied. However, FIG. 8A shows an access to each disk device 411 when the access processing unit 413 can read four stripes from each of the four disk devices 411 during the reproduction time T. The timing allocation is shown. During the reproduction time of 4 stripes (indicated by reference numerals T1 to T4 in FIG. 8), each of the 16 streams has four disk devices 411 (in FIG. 8, reference numerals). (Shown by # 1 to # 4) are accessed at different timings.
[0006]
The allocation of the disk device 411 at each access timing is stored in the disk management table 416 shown in FIG. 7 as the device number of the disk device 411 to which each stream can be accessed, as shown in FIG. Furthermore, an empty flag indicating whether or not the corresponding stream is empty is added.
The access control unit 417 updates the disk management table 416 for each access timing according to the above-described assignment, and receives an instruction from a client device (not shown) via the reception processing unit 418 and the communication processing unit 415. The access operation by the access processing unit 413 is controlled with reference to the disk management table 416 and the stripe table 412 described above.
[0007]
For example, when the start of a new service is requested from a client device (not shown), the access control unit 417 first refers to the stripe table 412 corresponding to the designated title and stores the first stripe. The disk device 411 is searched, and then an appropriate stream is allocated to the corresponding client device (not shown) based on the above-described disk management table 416 to start the service.
[0008]
At this time, the access control unit 417 may search the disk management table 416 for a free stream that can be accessed earliest to the disk device 411 corresponding to the above-described first stripe, and assign this stream to a new service.
In this way, the service is started in response to a request from the user, and thereafter, the stream data of each stripe is sequentially sent out in this stream, and continuous video and audio are provided to the user.
[0009]
On the other hand, when the user instructs a jump to a desired scene, the access control unit 417 receives the instruction and the jump destination from the reception processing unit 418, and determines the storage location of the jump destination stripe from the stripe table 412. It is only necessary to search and again refer to the disk management table 416 to switch to a stream that can access the disk device 411 most quickly.
[0010]
By performing such stream transfer control, it is possible to provide the user with as many responses as possible.
[0011]
[Problems to be solved by the invention]
In the conventional method, each stripe of stream data is arranged without duplication according to the order of the entire stream data, regardless of the nature of the stream data of each stripe, on the premise that the stream data flows smoothly in each stream. It had been.
[0012]
Therefore, stripes that are clearly different in access frequency from other stripes, such as a kind of program called a script for causing a menu screen or client device (not shown) to execute a predetermined operation, etc. As in the case of the stripes of FIG.
For this reason, when there are few empty streams, a waiting time may occur when a movie or the like is interrupted halfway to jump to another screen or try to call a menu screen.
[0013]
This is because even if the stream is changed as described above, the jump destination stripe is not always stored in the next accessible disk device 411.
For example, stream 1 is a disk device 411.1At the timing of accessing the disk device 4111Stripe A stored iniIf there is no free space from stream 5 to stream 8 when a jump to is issued, the disk device 411 is played during the next playback time T.1Cannot be accessed (see Fig. 8 (a)). In this case, since a transfer destination is selected from another stream, a waiting time corresponding to at least the reproduction time T is generated, and in the worst case, a waiting time corresponding to the reproduction time T × the number of disk devices m is generated.
[0014]
An object of the present invention is to provide a stream data supply system capable of supplying stream data including stripes having different access frequencies while maintaining a response.
[0015]
[Means for Solving the Problems]
1 (a) and 1 (b) are diagrams showing the principle of the striping method of claims 1 and 2. FIG.
[0016]
  According to the first aspect of the present invention, each stripe is sequentially read out from a plurality of storage devices that store the stripes obtained by dividing the stream data into a plurality of pieces according to a predetermined schedule for access to these storage devices. In the stream server that reproduces the stream data and provides it to the client device on the user side, the number of storage devices is smaller than the number of storage devices.Multiple storage devicesThe distribution base point is selected, and all the stripes of the stream data are distributed to a plurality of storage devices in accordance with the access order defined in the schedule, with the selected storage device as the base point.
[0017]
  According to the first aspect of the present invention, since the entire storage device of the stream data is shifted by overlapping the storage device, the stripes of the stream data are stored in different storage devices by a plurality of striping overlaps (hereinafter referred to as “duplication degree”). Stored in Therefore, when an access to an arbitrary stripe is necessary, the probability that the stripe corresponding to the accessible storage device exists at the timing specified by the schedule is high. ThisEven if the access frequency fluctuates due to access to an arbitrary stripe according to the jump playback instruction,The average waiting time required for accessing a specified stripe can be reduced, and the response of the stream server can be maintained.
[0018]
  The invention according to claim 2 reads out each stripe sequentially from a plurality of storage devices that store the stripes obtained by dividing the stream data into a plurality of pieces according to a schedule determined in advance for access to these storage devices. In the stream server that reproduces the stream data and provides it to the client device on the user side, the stream data is classified into a plurality of groups each composed of at least one continuous stripe, and a plurality of storage devices are divided into a plurality of groups.Multiple storage devicesEach stripe is selected, and the stripes belonging to the corresponding group are distributed to the plurality of storage devices according to the access order defined by the schedule, with the storage devices selected corresponding to the plurality of groups as the base points.
[0019]
  The invention according to claim 2 classifies the n stripes constituting the stream data into a plurality of groups, and sets a storage device as a base point for each group.SelectSince striping is performed, the overlapping degree of each stripe of the stream data can be changed according to the group to which each belongs.
  As a result, for example, stripes with high access frequency are separated from stream data, such as stripes related to menu screen display and script playback, and other continuous accesses are expected for the degree of overlap of groups of these stripes. It is possible to reduce the average waiting time until access is made to a stripe belonging to a group having a high access frequency.
  According to a third aspect of the present invention, in the striping method according to the second aspect, each stripe is classified into a plurality of groups according to the access frequency for each stripe constituting the stream data, and corresponding to a group having a high access frequency. More storage devices than other groups are selected as striping base points.
[0020]
  In particular, the invention of claim 3The multiple streams that make up the stream dataThe stripes are grouped according to the access frequency, and a high degree of duplication is given to a group of stripes with a high access frequency.Therefore, these stripes are stored redundantly in the storage devices corresponding to the degree of overlap. Therefore, when access to these stripes is required, the storage device can be accessed at the timing specified in the schedule.The specified stripe existsSince the probability can be increased, the average waiting time to access the corresponding stripe can be shortened, and the response can be improved..
[0021]
  FIG. 2 is a principle block diagram of the stream server of the present invention.
  In the invention of claim 4, stream data isEach stripe is sequentially read from a plurality of storage devices 101 that store the stripes obtained by dividing into a plurality of pieces according to a predetermined schedule for access to these storage devices 101 by the reading means 102, and stream data Is provided to the client device 103 on the user sideIn the stream server,Each stripe composing stream dataA striping information holding means 111 for holding striping information relating to the storage device 101 storing the information and the storage location thereof,Multiple storage devices 101Schedule information holding means 112 for holding schedule information relating to a schedule for access toMultiple storage devices 101IsEach of the distributed stripes is selectively stored by distributing the stripes in accordance with the order defined in the schedule with different storage devices 101 as a base point,The reading unit 102 accesses the designated storage device 101 in response to the access instruction, reads the designated stripe, and the striping information holding unit 111 in response to the input of the access instruction to the designated stripe. A search unit 114 for searching for striping information corresponding to the specified stripe, an access control unit 115 for creating an access instruction to the access unit 113 based on the schedule information and the striping information obtained as a search result; It is the structure provided with.
[0022]
  In the invention of claim 4,Based on the striping information and schedule information held in the striping information holding means 111 and the schedule information holding means 112, respectively, the search means 114 and the access control means 115 provided in the reading means 102 operate according to the access instruction.The operation of the access means 113 is controlled. This allows multipleA specified stripe can be read out from the stream data that is redundantly striped in the storage device 101 and provided to the client device 103.
[0023]
  The plurality of storage devices 101 includeAccording to the striping method of claim 1 described above, since the entire stream data is duplicated and striped,When an arbitrary stripe is designated as an access target, the probability that the designated stripe is stored in the storage device 101 accessible by the access means 113 according to the schedule is high corresponding to the degree of duplication. Also, when stream transfer is required, the number of candidate streams that can be selected increases, so that it is possible to increase the possibility that a designated stripe can be read without causing a waiting time.ThisLike jump playIt is possible to flexibly cope with a change in access frequency caused by an access instruction for a specified stripe, shorten an average waiting time, maintain response performance, and provide a comfortable service to the user.
[0024]
  According to the fifth aspect of the present invention, a schedule determined in advance for access to a plurality of storage devices 101 by a reading means 102 from a plurality of storage devices 101 that divides and stores stripes obtained by dividing stream data into a plurality of pieces. In the stream server that sequentially reads each stripe and reproduces the stream data and provides it to the client device 103 on the user side, the storage device 101 storing each stripe constituting the stream data and the storage location thereof Striping information holding means 111 that holds striping information, and schedule information holding means 112 that holds schedule information related to a schedule for access to the plurality of storage devices 101, and the plurality of storage devices 101 include the striping information. A plurality of stripes constituting the stream data for each of a plurality of groups obtained by the classification according to a predetermined criterion,Multiple storage devices 101Each of the distributed stripes is selectively stored by the distribution of the stripes performed according to the order defined in the schedule as a base point, and the reading means 102 has a storage device designated according to the access instruction. Access means 113 for accessing 101 and reading the designated stripe, and search means 114 for searching for striping information corresponding to the designated stripe with reference to striping information holding means 111 in response to the input of an instruction to access the designated stripe. And an access control means 115 for creating an access instruction to the access means 113 based on the schedule information and the striping information obtained as a search result.
[0025]
  In the invention of claim 5, the search means 114 and the access control means 115 provided in the reading means 101 operate in response to the access instruction, and the striping information held in the striping information holding means 111 and the schedule information holding means 112, respectively. By controlling the operation of the access means 113 based on the schedule information,Multiple storage devices 101A specified stripe can be read out from the redundantly striped stream data and provided to the client apparatus 103.
[0026]
  The plurality of storage devices 101 includeAccording to the striping method of claim 2 described above, since the stream data is duplicated and striped for each group, the access means 113 is the degree of overlap of the group corresponding to the stripe designated from the storage device 101 accessible according to the schedule. Can be read with a probability corresponding to This constitutes one stream dataFor each groupIt is possible to flexibly cope with the difference in access frequency, shorten the average waiting time and maintain the response performance, and provide a comfortable service to the user.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 3 is a diagram showing an embodiment of the stream server of claim 4.
In the stream server 210 shown in FIG.1~ 211FourCorresponds to the storage device 101 and stores the stream data striped by the striping method of claim 1. For example, the disk device 2111Stream data striped from the base point and the disk device 2112The stream data striped from the base point is stored.
[0028]
In this case, the stream data of each stripe is redundantly stored in two disk devices 211 having consecutive device numbers, and the storage location of the stream data of each stripe is as shown in FIG. Stripe table 212 corresponding to each stripe included in each title1 ~ 212n Is stored in each.
[0029]
Hereinafter, the disk device 2111~ 211FourAnd stripe table 2121 ~ 212n Are collectively referred to as a disk device 211 and a stripe table 212.
In FIG. 3, the striping table 213 provided for each title includes a pointer Pi indicating the stripe table 212 corresponding to each stripe and the stripe corresponding to the stripe number, as shown in FIG. Is stored as the degree of duplication.
[0030]
In this way, by configuring the appropriate stripe table 212 with the pointer stored in the striping table 213, the function of the striping information holding unit 111 described in claim 4 is realized by each of these units, The striping information regarding the storage location of each stripe striped by the striping method described in Item 1 can be held without excess or deficiency.
[0031]
The striping table 213 is provided to the processing of the access control unit 214 together with the stripe table 212 and the disk management table 416 described above, and an access process corresponding to the access unit 113 according to an instruction from the access control unit 214. The unit 413 operates.
In the access control unit 214 illustrated in FIG. 3, the stream management unit 221 receives an instruction such as start of a new service or stream jump via the reception processing unit 418, and receives a search processing unit 222, a matching processing unit 223, and an allocation process. Each operation is instructed to the unit 224, and the operation of the access processing unit 413 is controlled according to these processing results.
[0032]
In FIG. 3, the search processing unit 222 corresponds to the search unit 114 described in claim 4, and is designated by referring to the striping table 213 and the stripe table 212 in response to an instruction from the stream management unit 221. The stripe storage location is returned to the stream management unit 221.
Further, in response to an instruction from the stream management unit 221, the verification processing unit 223 displays the stripe storage location described above and information in the disk management table 416 corresponding to the schedule information holding unit 112 described in claim 4. It is the structure to collate.
[0033]
In FIG. 2, in response to an instruction from the stream management unit 221, the allocation processing unit 224 causes the candidate extraction unit 225 to extract candidate streams that are candidates for allocation based on the disk management table 416, and determine the allocation. The unit 226 is configured to select one of the extracted candidate streams and notify the stream management unit 221 of the selected candidate stream.
[0034]
That is, the stream control unit 221, the collation processing unit 223, and the allocation processing unit 224 operate according to the search result by the search processing unit 222 and the contents of the disk management table 416, so that the access control unit 115 described in claim 4 is operated. It is the composition which realizes the function.
FIG. 5 is a flowchart showing the stream management operation.
[0035]
The access control unit 214 receives the specified title and stripe from the reception processing unit 418 when a user instructs to start providing a new service or when a jump to a specified destination is specified during service. Start operation.
First, in response to an instruction from the stream management unit 221, the search processing unit 222 refers to the striping table 213 corresponding to the title, and stores the stream data of the specified stripe from the stripe table 212 indicated by the obtained pointer. The device number of the disk device 211 is searched (step 301).
[0036]
Next, the stream management unit 221 determines whether or not the instruction received from the reception processing unit 418 is a jump request (step 302), and in the case of an affirmative determination, the apparatus number searched in step 301 and the request source The stream number may be passed to the verification processing unit 223.
In response to this, the collation processing unit 223 refers to the disk management table 416 and collates each device number received as a search result with the device number of the disk device 211 corresponding to the request source stream (step 303). Based on the comparison result, the stream management unit 221 determines whether or not it is necessary to change streams (step 304).
[0037]
Here, as described above, when two pieces of stream data are duplicated on the four disk devices 211, in step 301, for example, two device numbers (for example, corresponding to the stripe number Ai) are used. , Device number 1 and device number 2) are retrieved and provided for the processing of step 303.
Therefore, the stream management unit 221 obtains a collation result indicating that the device number corresponding to the disk device 211 accessible by the request source stream matches one of the device numbers obtained in step 301. What is necessary is just to judge that the transfer of a stream is unnecessary.
[0038]
At this time, the stream management unit 221 may instruct the access processing unit 413 to execute the access processing to the designated stripe as it is as a negative determination in step 304 (step 305), and the processing may be terminated.
In this case, since the jump destination stripe is stored in the disk device accessible to the request source stream, the specified stripe can be read out as it is in the original stream, and the reproduction processing unit 414 and the communication processing Since the data can be sent to the client apparatus 103 via the unit 415, the stream data of the jump destination stripe can be provided without causing the user to wait.
[0039]
On the other hand, in the case of an affirmative determination in step 304 and a negative determination in step 302 described above, the allocation processing unit 224 performs a stream allocation process described below in response to an instruction from the stream management unit 221.
In this case, the candidate extraction unit 225 refers to the disk management table 416, searches for an empty stream based on the empty flag corresponding to each stream number (step 306), and notifies the allocation determination unit 226 as a candidate stream.
[0040]
In response to this, the allocation determining unit 226 first calculates the waiting time until the designated disk device 211 can be accessed for each of these candidate streams (step 307), and the candidate with the shortest waiting time. A stream may be selected (step 308) and notified to the stream management unit 221.
In response to this, the stream management unit 221 may assign the corresponding stream to the service for the requesting user (step 309), and then proceed to step 305 to execute the access process and then terminate the process.
[0041]
In this case, in the disk management table 416, if any of the streams that can be accessed by the plurality of disk devices 211 storing the specified stripe is an empty stream, the empty stream is allocated upon request. Instantly provide new services and jump to specified stripes.
[0042]
In addition, even when there is no available stream that can access the specified stripe at the current access timing, it is only necessary to access any of the plurality of disk devices 211 that store the stream data of the specified stripe, thereby reducing the waiting time. There is a high possibility that a free stream exists.
As described above, each part of the access control unit 214 performs the stream management operation based on the striping table 213, the stripe table 212, and the disk management table 416, and thus the stripe distribution feature obtained by the striping method according to claim 1. Can be used to realize a stream server that can quickly respond to an instruction to access a specified stripe.
[0043]
As a result, even when an unpredictable change occurs in the access frequency to the stream data of each stripe in response to a request such as a jump request from the user, this change can be flexibly handled and the request from the user can be handled. The response can be greatly improved, and a comfortable service can be provided to users such as a video-on-demand system.
[0044]
If the frequency of use for each stream data of each stripe is known in advance, only some of the stripes with high use frequency may be overlapped and striped.
For example, stripes that include menu screens and scripts are clearly different in access frequency compared to each stripe of video data and audio data provided to users in time series. Access frequency is very high.
[0045]
Hereinafter, for example, a stripe A including stream data providing a menu screen1, A2 And stripe A consisting of video and audio data provided to the userThreeTo stripe AnA method of striping stream data consisting of
FIG. 6 is a diagram showing an embodiment of the stream server of claim 5.
[0046]
In FIG. 6, four disk devices 2111~ 211FourIncludes a disk device 211.1As a starting point, the entire stream data is striped and the disk device 2112211Three211FourWith stripe number A1, A2Stream data is striped.
That is, the invention of claim 2 is applied, the stream data is divided into two groups, and the stripe number A1, A2Each group of stream data is given a duplication degree of 4 and the other stripes are given a duplication degree of 1 so as to be striped.
[0047]
In this case, stripe A1, A2Corresponding to the stripe table 2121, 2122And four disk devices 2111~ 211FourEach of the storage locations in the striping table 213 is indicated in the striping table 213.1, A2Corresponding to these stripe tables 2121, 2122It is only necessary to store a pointer to and a degree of overlap 4.
[0048]
Also, stripe number AThree~ AnAs information corresponding to, information indicating the respective storage locations and redundancy 1 may be stored in the striping table 213.
That is, in this case, the striping table 213 and the two stripe tables 212 are used.1, 2122Thus, the function of the striping information holding unit 111 is realized.
[0049]
In addition, by using the striping information stored in these tables and the schedule information stored in the disk management table 416 for the processing of the access control unit 214, each stripe obtained by applying the invention of claim 2 is used. By using the characteristics of the distribution, it is possible to realize a stream server that can quickly respond to a request from a user.
[0050]
In this case, all the disk devices 211 have a stripe A corresponding to the menu screen.1Therefore, all streams can access the corresponding stripe regardless of the access timing.
Therefore, regardless of the stream assigned to the service to the user, in response to the input of the jump instruction specifying the menu screen, the jump to the corresponding stripe is immediately realized and the stream data representing the menu screen is used. Can be provided.
[0051]
In this way, by striping some stripes of the stream data with the overlap according to the access frequency, the response when the corresponding stripe is designated as the jump destination is improved, and the user is A comfortable service can be provided.
In particular, the menu screen is frequently specified as the jump destination, and the amount of data is small. Therefore, as described above, when overlapping is performed with a large degree of duplication, a small amount of information is duplicated. Because it can be expected to greatly improve the response performance, it is very effective.
[0052]
Similarly, a script which is a kind of program for causing a device such as a set-top box on the client side to perform a specific operation has a higher access frequency and a smaller data amount than other stream data. A great effect can be expected by striping scripts with a large degree of duplication.
[0053]
【The invention's effect】
As described above, in the striping method of the present invention, the specified stripe is formed at each timing specified by the access schedule by performing overlapping striping by changing the base point for the entire stream data or for each part. Increases the probability of access, flexibly responds to changes in access frequency for each stripe caused by jump instructions from the user, and differences in access frequency due to differences in the properties of each stripe, reducing average waiting time Thus, a comfortable service can be provided to the user.
[0054]
Further, by applying the invention of claim 1 or claim 2 and controlling the access operation to the storage device on the basis of striping information regarding the storage location of each stripe which is striped in duplicate, the striping method of the present invention It is possible to provide a stream server that can quickly respond to a request from a user by using the obtained distribution characteristics of each stripe.
[Brief description of the drawings]
FIG. 1 is a diagram showing the principle of a striping method according to claims 1 and 2;
FIG. 2 is a principle block diagram of a stream server according to the present invention.
FIG. 3 is a diagram showing an embodiment of a stream server according to claim 4;
FIG. 4 is an explanatory diagram of a striping table.
FIG. 5 is a flowchart showing a stream management operation.
FIG. 6 is a diagram showing an embodiment of a stream server according to claim 5;
FIG. 7 is a diagram illustrating a configuration example of a stream server using a conventional striping technique.
FIG. 8 is a diagram illustrating a striping technique.
[Explanation of symbols]
101 storage device
102 Reading means
103 Client device
111 Striping information holding means
112 Schedule information holding means
113 Access means
114 Search means
115 Access control means
210 Stream server
211,411 disk device
212, 412 Stripe table
213 Striping table
214, 417 Access control unit
221 Stream management unit
222 Search processing part
223 Verification processing unit
224 Allocation processing part
225 Candidate extraction unit
226 Allocation determination unit
413 Access processing unit
414 Playback processing unit
415 Communication processing unit
416 Disk management table
418 Reception processing unit

Claims (5)

ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置から、これらの記憶装置に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、前記ストリームデータを再生して利用者側のクライアント装置に提供するストリームサーバにおいて、
前記複数の記憶装置から前記記憶装置の数より少ない複数の記憶装置を分配の基点として選択し、
前記選択された記憶装置をそれぞれ基点として、前記ストリームデータの全てのストライプを前記スケジュールで規定されたアクセス順に従って前記複数の記憶装置に分配する
ことを特徴とするストライピング方法。
Each stripe is sequentially read out from a plurality of storage devices that store the stripes obtained by dividing the stream data into a plurality of pieces according to a predetermined schedule for access to these storage devices, and the stream data is reproduced. In the stream server provided to the client device on the user side,
Selecting a plurality of storage devices less than the number of storage devices from the plurality of storage devices as a distribution base point;
A striping method characterized by distributing all the stripes of the stream data to the plurality of storage devices in accordance with the access order defined by the schedule, using the selected storage devices as base points.
ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置から、これらの記憶装置に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、前記ストリームデータを再生して利用者側のクライアント装置に提供するストリームサーバにおいて、
前記ストリームデータをそれぞれ少なくとも1つの連続したストライプからなる複数のグループに分類し、
前記複数のグループごとに、前記複数の記憶装置から複数の記憶装置をそれぞれ選択し、
前記複数のグループに対応して選択した記憶装置それぞれを基点として、対応するグループに属するストライプを前記スケジュールで規定されたアクセス順に従って前記複数の記憶装置に分配する
ことを特徴とするストライピング方法。
Each stripe is sequentially read out from a plurality of storage devices that store the stripes obtained by dividing the stream data into a plurality of pieces according to a predetermined schedule for access to these storage devices, and the stream data is reproduced. In the stream server provided to the client device on the user side,
Classifying the stream data into a plurality of groups each consisting of at least one continuous stripe;
For each of the plurality of groups, select a plurality of storage devices from the plurality of storage devices ,
A striping method, wherein a stripe belonging to a corresponding group is distributed to the plurality of storage devices in accordance with an access order defined by the schedule, with each storage device selected corresponding to the plurality of groups as a base point.
請求項2に記載のストライピング方法において、
ストリームデータを構成する各ストライプに対するアクセス頻度に応じて、前記各ストライプを複数のグループに分類し、
アクセス頻度の高いグループに対応して、他のグループよりも多い記憶装置をストライピングの基点として選択する
ことを特徴とするストライピング方法。
The striping method according to claim 2,
According to the access frequency for each stripe constituting the stream data, each stripe is classified into a plurality of groups,
A striping method characterized by selecting a storage device more frequently than other groups as a base point for striping corresponding to a group having high access frequency.
ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置から、読出手段により、これらの記憶装置に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、前記ストリームデータを再生して利用者側のクライアント装置に提供するストリームサーバにおいて、
前記ストリームデータを構成する各ストライプを格納している前記記憶装置およびその格納場所に関するストライピング情報を保持するストライピング情報保持手段と、
前記複数の記憶装置に対するアクセスについてのスケジュールに関するスケジュール情報を保持するスケジュール情報保持手段とを備え、
前記複数の記憶装置は、相異なる記憶装置を基点として前記スケジュールで規定された順序に従って行われたストライプの分配によって、分配された各ストライプをそれぞれ選択的に格納する構成であり、
前記読出手段は、
アクセス指示に応じて、指定された記憶装置にアクセスし、指定されたストライプを読み出すアクセス手段と、
指定ストライプへのアクセス指示の入力に応じて、前記ストライピング情報保持手段を参照し、前記指定ストライプに対応するストライピング情報を検索する検索手段と、
前記スケジュール情報と、検索結果として得られたストライピング情報とに基づいて、前記アクセス手段へのアクセス指示を作成するアクセス制御手段とを備えた構成である
ことを特徴とするストリームサーバ。
Each of the stripes is sequentially read out from a plurality of storage devices that store the stripes obtained by dividing the stream data into a plurality of pieces according to a schedule determined in advance for access to these storage devices by the reading means. In a stream server that reproduces data and provides it to a client device on the user side,
Striping information holding means for holding striping information relating to the storage device storing each stripe constituting the stream data and its storage location;
Schedule information holding means for holding schedule information related to a schedule for access to the plurality of storage devices;
The plurality of storage devices are configured to selectively store each distributed stripe by distributing stripes performed according to the order defined in the schedule with different storage devices as a base point,
The reading means includes
An access means for accessing the designated storage device and reading the designated stripe in response to the access instruction;
Search means for searching for striping information corresponding to the designated stripe, referring to the striping information holding means in response to an input of an instruction to access the designated stripe;
A stream server comprising: an access control unit that creates an access instruction to the access unit based on the schedule information and striping information obtained as a search result.
ストリームデータを複数個に分割して得られるストライプを分散して格納する複数の記憶装置から、読出手段により、これらの記憶装置に対するアクセスについて予め決定されたスケジュールに従って各ストライプを順次に読み出し、前記ストリームデータを再生して利用者側のクライアント装置に提供するストリームサーバにおいて、
前記ストリームデータを構成する各ストライプを格納している前記記憶装置およびその格納場所に関するストライピング情報を保持するストライピング情報保持手段と、
前記複数の記憶装置に対するアクセスについてのスケジュールに関するスケジュール情報を保持するスケジュール情報保持手段とを備え、
前記複数の記憶装置は、前記ストリームデータを構成する複数のストライプを所定の基準に従って分類して得られる複数のグループごとに、複数の記憶装置を基点として前記スケジュールで規定された順序に従って行われたストライプの分配によって、分配された各ストライプをそれぞれ選択的に格納する構成であり、
前記読出手段は、
アクセス指示に応じて、指定された記憶装置にアクセスし、指定されたストライプを読み出すアクセス手段と、
指定ストライプへのアクセス指示の入力に応じて、前記ストライピング情報保持手段を参照し、前記指定ストライプに対応するストライピング情報を検索する検索手段と、
前記スケジュール情報と、検索結果として得られたストライピング情報とに基づいて、前記アクセス手段へのアクセス指示を作成するアクセス制御手段とを備えた構成である
ことを特徴とするストリームサーバ。
Each of the stripes is sequentially read out from a plurality of storage devices that store the stripes obtained by dividing the stream data into a plurality of pieces according to a schedule determined in advance for access to these storage devices by the reading means. In a stream server that reproduces data and provides it to a client device on the user side,
Striping information holding means for holding striping information relating to the storage device storing each stripe constituting the stream data and its storage location;
Schedule information holding means for holding schedule information related to a schedule for access to the plurality of storage devices;
The plurality of storage devices are performed in accordance with the order defined in the schedule based on a plurality of storage devices for each of a plurality of groups obtained by classifying a plurality of stripes constituting the stream data according to a predetermined standard. Each of the distributed stripes is selectively stored by stripe distribution.
The reading means includes
An access means for accessing the designated storage device and reading the designated stripe in response to the access instruction;
Search means for searching for striping information corresponding to the designated stripe, referring to the striping information holding means in response to an input of an instruction to access the designated stripe;
A stream server comprising: an access control unit that creates an access instruction to the access unit based on the schedule information and striping information obtained as a search result.
JP10545596A 1996-04-25 1996-04-25 Stream data striping method and stream server Expired - Fee Related JP4057074B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10545596A JP4057074B2 (en) 1996-04-25 1996-04-25 Stream data striping method and stream server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10545596A JP4057074B2 (en) 1996-04-25 1996-04-25 Stream data striping method and stream server

Publications (2)

Publication Number Publication Date
JPH09294244A JPH09294244A (en) 1997-11-11
JP4057074B2 true JP4057074B2 (en) 2008-03-05

Family

ID=14408070

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10545596A Expired - Fee Related JP4057074B2 (en) 1996-04-25 1996-04-25 Stream data striping method and stream server

Country Status (1)

Country Link
JP (1) JP4057074B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017501515A (en) * 2013-11-11 2017-01-12 アマゾン・テクノロジーズ・インコーポレーテッド Data stream ingestion and persistence policy

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401126B1 (en) * 1999-03-10 2002-06-04 Microsoft Corporation File server system and method for scheduling data streams according to a distributed scheduling policy
JP2014178874A (en) * 2013-03-14 2014-09-25 Toshiba Corp Content distribution device, content distribution server and program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017501515A (en) * 2013-11-11 2017-01-12 アマゾン・テクノロジーズ・インコーポレーテッド Data stream ingestion and persistence policy

Also Published As

Publication number Publication date
JPH09294244A (en) 1997-11-11

Similar Documents

Publication Publication Date Title
US7039784B1 (en) Video distribution system using dynamic disk load balancing with variable sub-segmenting
US6925499B1 (en) Video distribution system using disk load balancing by file copying
US7143433B1 (en) Video distribution system using dynamic segmenting of video data files
US9615125B2 (en) Method of data management for efficiently storing and retrieving data to respond to user access requests
CA2153000C (en) Online placement of video files on disks in a server environment
JP2004500651A (en) Streaming media search and playback system
JPH1093951A (en) System/metohd adapted to request for cable programming by telephone request
EP1466479A1 (en) A server and method for storing files in a ring buffer
CN100571380C (en) The scatter storage technique and this system that are used for distributed network TV system
JP4057074B2 (en) Stream data striping method and stream server
Haskin et al. A system for the delivery of interactive television programming
CN103269442A (en) Content on-demand broadcasting method, content on-demand broadcasting system and content on-demand broadcasting equipment
CN111225248A (en) On-demand content management method and content distribution network on-demand server
JP2004504737A (en) How to distribute elements of multimedia information
JP4065761B2 (en) Stream data related information supply apparatus, stream data related information supply method, program, recording medium, and stream data related information supply system
US7421726B1 (en) Method of seamlessly replacing disc-based video streams with memory-based video streams in a video-on-demand system
US8763053B1 (en) File system for a file server of a video-on-demand system
Tanaka et al. Performance improvements of large‐scale video servers by video segment allocation
Philip et al. Look-ahead scheduling to support pause-resume for video-on-demand applications
US7681222B1 (en) Method of reducing disc workload in a video-on-demand system by seamlessly replacing memory-based video streams with disc-based video streams, and visa-versa
Abram-Profeta et al. A practical approach to resource allocation in video-on-demand servers
Tetzlaff Scheduling, striping, and scaling issues for video server file systems
NL1033656C1 (en) Information distribution method for television and radio programs via internet, stores information in large capacity storage memory connected to set=top box
Vin Architectures and algorithms for designing digital multimedia storage servers
KR20080049290A (en) Method for buffering vod using segmentation writing of video file

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101221

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111221

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121221

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees