JP2000515706A - ストリームサーバにおいてデータを取り出すシステム - Google Patents

ストリームサーバにおいてデータを取り出すシステム

Info

Publication number
JP2000515706A
JP2000515706A JP10529413A JP52941398A JP2000515706A JP 2000515706 A JP2000515706 A JP 2000515706A JP 10529413 A JP10529413 A JP 10529413A JP 52941398 A JP52941398 A JP 52941398A JP 2000515706 A JP2000515706 A JP 2000515706A
Authority
JP
Japan
Prior art keywords
data
storage
block
storage unit
units
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.)
Ceased
Application number
JP10529413A
Other languages
English (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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of JP2000515706A publication Critical patent/JP2000515706A/ja
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/232Content retrieval operation locally within server, e.g. reading video streams from disk arrays
    • H04N21/2326Scheduling disk or memory reading operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

(57)【要約】 オーディオ/ビデオサーバ(100)において、データのブロックが読取器(180)により記憶媒体(110)から読み取られ、データストリームの形でユーザに供給される。記憶媒体(110)は、複数の記録担体型記憶ユニット(102、104、106、108)を有している。読取器(180)は、記憶ユニットから、該記憶ユニットの読取ヘッドの該記憶ユニットの記録担体に対する単一の相対移動によりデータ単位のバッチを読み取る。スケジューラ(170)は、記憶媒体(110)からのブロックの読み取りを、当該ブロックに関して何の記憶ユニット(又は複数の記憶ユニット)からデータ単位(又は複数のデータ単位)を読み取る必要があるかを判断し且つ対応する担体アクセス要求を読取待ち行列に入力することにより制御する。スケジューラ(170)は上記記憶ユニットの各々に関して上記待ち行列から1つのバッチの担体アクセス要求を取り出し、当該記憶ユニットに対する以前のバッチに関わるデータ単位の読み取りを実質的に完了している読取器(180)に応答して、前記バッチを該読取器(180)に非同期的に供給する。

Description

【発明の詳細な説明】 ストリームサーバにおいてデータを取り出すシステム技術分野 本発明は、記憶媒体からオーディオ及び/又はビデオデータのようなデータの ブロックを取り出し、これらブロックを複数のデータの流れ(データストリーム )の形でユーザに供給するようなシステムであって、上記記憶媒体が複数の記録 担体型記憶ユニットを有し、前記ブロックが少なくとも1つのデータ単位を有し 、データ単位は前記記憶ユニットの1つに記憶され、当該システムが、 上記記憶ユニットの各々に対し、当該記憶ユニットの記録担体に対する該記憶 ユニットの読み取りヘッドの単一の相対移動で対応する1つの群(1つのバッチ )のデータ単位を読み取ることにより1つのバッチの担体アクセス要求を処理す る読取器であって、上記バッチのデータ単位の各単位が上記バッチの担体アクセ ス要求における担体アクセス要求の1つに関連付けられているような読取器と、 前記記憶ユニットからの前記データストリームに関するデータブロックの読み 取りを、各ブロックの少なくとも1つのデータ単位に関して該データ単位が何の 記憶ユニットに記憶されているかを判定すると共に担体アクセス要求を読取待ち 行列に入力することにより制御するスケジューラであって(前記担体アクセス要 求は前記データ単位と前記判定された記憶ユニットとに関連付けられている)、 前記複数の記憶ユニットの各々に関して当該記憶ユニットに関連づけられた1つ のバッチの担体アクセス要求を前記読取待ち行列から巡回的に取り出し、これら バッチを前記読取器に送出するスケジューラと、 を有しているようなシステムに関するものである。背景技術 この種のシステムは、マルチメディアサーバ、もっと特定的にはビデオオンデ マンドサーバ又は準ビデオオンデマンドサーバに使用されている。このようなシ ステムにおける一般的な要件は、連続した途切れのないデータストリームを各活 動状態ユーザに供給することである。典型的には、データはハードディスクのよ うな通常のディスク型記憶媒体から読み取られ、これら媒体はRAIDシステム のようなディスクアレイとして構成されている。一般的に、固定消費率システム と可変消費率システムとの間の区別がなされている。固定消費率システムにおい ては、データは典型的には固定レートのデータストリームとしてユーザに供給さ れる。通常、該システムにおける各データストリームに関してはレートは同一で ある。このようなシステムの一例は準ビデオオンデマンドシステムであり、該シ ステムにおいては複数の映画を並列に再生することができると共に、同一の映画 を数重に並列に再生することができ、その場合、例えば5分毎又は15分毎のよ うに規則的に同一の映画の新たな複写が開始されるようになる。可変消費率シス テムにおいては、ユーザがデータを消費するレートは時間にわたり変化する。典 型的には、各ストリームに対して最大消費率を規定することができる。実際には 、ストリームを異なる最大消費率(例えば、オーディオストリームに対して1つ の最大値を、合成されたビデオ及びオーディオストリームに対して他の1つの最 大値)で効率的に支援することもできるが、通常は全てのストリームに対して同 一の最大消費率が使用される。可変消費率システムは、例えば、ポーズ又はスロ ーモーションのようなVCR的な機能を支援するシステム、又はMPEG-2のような 可変ビットレート符号化を可能とするデータ圧縮方法を使用するシステム用に使 用される。 上記システムは記憶媒体の各記憶ユニットからデータブロックを読み取る読取 器を有している。ディスク型記録担体からは、データはディスクアクセスブロッ ク(DAB)として取り出される。同一のディスクから順次読み取られるDAB は、典型的には、ディスク上に連続的には記憶されてはいない。通常、同一のデ ィスクから順次読み取られるDABは、該ディスクが複数のデータストリームに 関するDABを何らかのインターリーブされた態様で供給しなければならないの で、異なるファイルに属している(ここで、1つのファイルは1つのタイトルに 属するブロックの集合である)。結果として、当該ディスクヘッドはDABの読 み取りの間で移動されねばならず、次のDABの適切な開始点を待たねばならな い。このような切り替えには相当の時間が掛かり、その間データは読み取ること はできない。この切り替えオーバーヘッドを減少させるために、所謂ディスク掃 引技術がしばしば使用される。このような方法においては、上記読取器は多数の DABをディスクから1バッチで読み取ることができる。該バッチのDABは、 それらの物理的トラック位置に基づいて配列されている。読み取り動作に関して は、ディスクヘッドは1方向のみ(例えば、データが読み出されねばならない最 内側位置から最外側位置へ、又はその逆)に移動され、上記バッチのDABを読 み取るために停止するのみである。このようにして、上記切り替えオーバーヘッ ドは大幅に減少される。同様の技術がテープ型記録担体に対しても使用すること ができ、その場合は、ディスクの読取ヘッドの1つの掃引動作は読取ヘッドに対 するテープの1つの巻き取り動作に対応する。読み取られたデータはバッファに 記憶され、該バッファからデータがデータストリームとしてユーザに供給される 。通常、各データストリームに対して別個のバッファが割り当てられる。 上記バッファ中に十分な量のデータがあることを保証するため、スケジューリ ング方法が使用される。原理的に、スケジューラは何のストリームに関してデー タを読み取る必要があるかを判断し、データを必要とする各ストリームに対して ディスク(又は複数のディスク)からデータが読み取られるようにする。この目 的のため、該DABのための担体アクセス要求が読取待ち行列に入力される。該 スケジューラは、周期的に、上記読取待ち行列から同一のディスクに対する担体 アクセス要求を取り出すことにより1つのディスクに対する担体アクセス要求の バッチを生成し、該バッチを前記読取器に送出する。各ディスクの読み取り動作 は同期して開始される。当該システム内で能力が依然として利用可能な場合は、 新たなサイクルの開始時に当該システムに新たなストリームが登場する。この新 たなサイクルが完了した後、データは上記の新たなストリームにより消費される ことができる。従って、間隔の長さが当該システムの応答時間を決定することに なり、該長さは平均して1と半サイクルである。 活動状態ストリームに対して所望のデータレートでのデータの連続的供給を保 証するために、何れのディスクに対する負荷も、当該ディスクの最悪状態性能を 呈するような所与の時間内に読み取ることができるよりも重くてはいけない。典 型的には、前記ディスクアレイ内のディスクの数は、並列に支援される必要のあ るデータストリームの数に鑑みた所要の全帯域幅により決定される。能力が無駄 づかいされるのを防止するために、負荷は当該システムの各ディスク上に相対的 に一様に分散される必要がある。このことは、通常、特別な記憶方法により達成 される。 固定消費率システムに対しては、典型的には、スケジューラは固定のインター バルで動作する。このインターバルの間では、読取器は各ストリームに対して一 定の量の(1インターバル継続するに十分な)データを読み取り、この読み取ら れたデータをバッファに記憶する。負荷のバランスは、或るタイトルの連続した ブロックが順次のディスクに(巡回的に)記憶されるような記憶方法を用いるこ とにより達成される。別々のストリームに対して、当該ストリームに関して再生 されるべきタイトルの最初のブロックによる当該ディスクへの負荷が、許容され る最大値より低い時点で再生が開始されるのを保証することにより、負荷が最大 値を決して超えないことが自動的に保証される。 可変消費率システムに関しては、異なるストリームが異なる時点でバッファの 所定のブロックを空にする可能性があるので、スケジューリング方法はもっと複 雑になる。典型的には、可変ビットレートスケジューラが、何のストリームが潜 在的にもっとデータを必要としているかを、即ち何のストリームが新たなデータ ブロックのための余裕のあるバッファを有しているかを、繰り返し判断する。他 のストリームは飛び越される。結果として、データを読み取るための上記インタ ーバルの持続時間は、全ての活動状態ストリームが新たなデータブロックを必要 とする状況により制限されて、可変となる。最も一般的に使用される記憶方法は ストライピング(striping)であり、該方法においてはユーザに供給されるべき データはデータを読み取る要求が各ディスクへのディスクアクセスを意味するよ うに全ディスクにわたり分割される。結果として、各ディスクへの負荷は最適に バランスされる。全ディスクの部分集合上にデータを分割(ストライプ)するこ とも知られている。ロサンゼルスのような町を経る建築学的歩行のような三次元 対話型アプリケーション用のディスク利用型記憶サーバが、Compocon'96(4stIE EE Computer Society International Conference,Santa Clara,25-28 Febr., 1996)の“リアルタイムディスクI/O用のランダム化されたデータ割り当て” に記載されている。非常に大きな三次元モデルを考えている該システムにおいて は、ユーザの予期せぬ行為により当該モデルの新たな部分が見えるようになる場 合、該モデルのこの新たな部分を提示するために、少なくともテラバイト程度の 広いピーク帯域幅が必要である。斯かる広い帯域幅を達成するため、データブロ ックは典型的には7個のディスク上にストライプされ、これら7個のディスクの 各々が該ブロック用に1つの完全なデータトラックを有するようにする。各ディ スクへの負荷が依然として妥当にバランスされるように、上記7個のディスクの 群が利用可能なディスクの全組からランダムに選択される。これらディスクの内 の6個は通常のデータ(ユーザに供給されるままの)を伴うデータ単位を記憶し 、1個のディスクはパリティデータを伴うデータ単位を記憧する。各群のランダ ムな分散の結果、待ち行列の長さが統計的変化となる。上記可変性は、7つの単 位の群の内の6つの単位のみを読み取り、これら単位が低い負荷のディスクから 読み取られるようにして減少させることができる。読み取られなかった単位が通 常のデータを有している場合は、パリティ単位が該読み取られなかった単位を再 生するために使用される。発明の開示 本発明の一つの目的は、冒頭で述べたようなシステムであって低減された応答 時間を有するシステムを提供することにある。 この目的を達成するため、本発明によるシステムは、前記スケジューラが、記 憶ユニットの各々に対する巡回的な取り出しを、各個別の記憶ユニットに関し当 該記憶ユニット用の担体アクセス要求のバッチを、前記読取器が該記憶ユニット 用の担体アクセス要求の以前のバッチに関するデータ単位の読み取りを略完了し たことに応答して、該読取器に送出することにより、非同期的に実行することを 特徴としている。ディスク転送レートの変化(ディスクの外側のトラック上に位 置するデータの読み取りは、内側のトラックからの読み取りよりも約50%高い 転送レートとなる)、シーク時間の変化及び回転待ち時間により、或るディスク は他のディスクよりも大幅に早く掃引を完了する。早く完了したディスクの次の 掃引を全てのディスクが掃引を完了するまで遅らせる代わりに、新たなバッチの 担体アクセス要求は該ディスクに対して、該ディスクの丁度完了した掃引の完了 時点で発せされる。特定の掃引の間の最悪に動作しているディスクの効率よりも 良好な平均効率のディスクから生じる余分な帯域幅容量を無駄にしないことによ り、応答時間を減少させる余裕が生成される。当該システムにおいて追加のスト リームを処理する容量が依然として利用可能であると仮定すると、従来のシステ ムにおいては、新たなストリームは、全ての現在活性状態のストリームが処理さ れるまでしか該システムに参加させることができず、次いでデータが当該ストリ ームのために読み出されるまでもう1サイクル待たねばならなかった。上記活性 ストリームの処理は1つの大きなサイクル内で生じるか(ディスクの各々に対す る1つの大きな掃引となる)、数個の小さな副サイクルに副分割される(各々が ディスクの各々に対する1つの掃引となる)。1つの特定のディスクが他のディ スク以上に連続して負荷を受けることがないような妥当にバランスされたシステ ムを想定すると、統計的に見て、連続したサイクル(又は副サイクル)の間に最 悪に動作するディスクは変化するであろう。好ましくは前のバッチが完了した直 後に読み取りを再開することにより、或る掃引の間の或るディスクの悪い効率は 次の掃引の間のより良好な効率により相殺することすることができる。従って、 連続する掃引の全持続時間は、全ての掃引が同期して開始された場合よりも短く なるであろう。結果として、スケジューラから見た総サイクル持続時間は短くな り、その結果、平均の応答時間が減少されることになる。シミュレーションは、 ディスクを非同期的に制御することにより平均の応答時間の大幅な短縮が達成さ れ得ることを示している。特定のシステムのシミュレーションは、平均応答時間 の3なる係数による減少を示した。当該システムにおいてより多くのストリーム が活性状態になる程、当該システムの非同期的構成の性能は同期的構成に比較し て改善される。 請求項2に記載された構成は、スケジューラが記憶ユニットの各々に対して別 個の読取副待ち行列を維持することを述べている。このように、ディスクの負荷 を判定し、ディスクに対して担体アクセス要求のバッチを送出することは、直裁 的である。好ましくは、前のバッチが完了したとの指示に応答して、スケジュー ラは当該ディスクの副待ち行列から複数の担体アクセス要求を取り出し、これら 要求をバッチとしてディスク読取器に送出するとよい。スケジューリングアルゴ リズムに応じて、副待ち行列内の全ての読取アクセス要求をディスク読取器に送 出するのが好ましいかもしれない(バッチが大きい程、読み取りは最適となる) 。他の例として、最大数までの担体アクセス要求が一度に送出されるようにし、 スケジューラに当該システムに対する一層良好な制御を与えるようにする。 請求項3に記載の構成によれば、ブロックが冗長な形で記憶ユニットに記憶さ れ、スケジューラは当該ブロックを再生するために何の記憶ユニットからデータ 単位を読み取るかを選択することができる。一例として、分割(ストライピング )技術を使用することができ、その場合、ブロックはデータ単位に分割され、各 データ単位は異なるディスク上に記憶されると共に、少なくとも1つの付加的な データ単位が記憶されて(ここでも、当該ブロックのデータ単位(又は複数のデ ータ単位)を記憶するために使用されたディスク(又は複数のディスク)とは異 なるディスク上に)、冗長な情報が提供される。一例として、上記ブロックは7 つのデータ単位に分割することができ、8番目のデータ単位は良く知られたエラ ー検出及び訂正符号化技術を用いて作成され(単純なものは、上記7つのデータ 単位上への排他的論理和演算である)、ここで、これら8つのデータ単位は8つ の異なるディスクに記憶される。この例では、上記8つのデータ単位のうちの 7つだけが前記ブロックの再生に必要とされる。従って、スケジューラはデータ を読み取るために7つのディスクの8つの群の間で選択することができ、これに より当該スケジューラは記憶ユニットの負荷をバランスすることが可能となる。 好ましくは、1つのブロックのデータ単位が記憶される記憶ユニットは適切なア ルゴリズムを用いて選択されるものとする。例えば、上記記憶ユニットを実質的 にランダムに選択することにより、可変レートシステムに対してさえも再生の間 に比較的一様な負荷を達成することができる。斯様な可変レートシステムに対し ては、さもなければ、活性ストリームに関して個々の記憶ユニットに時間的にど のように負荷が発生するかを予測するのは困難又は不可能でさえある。このよう にして、上記スケジューラの(実際には仮想の)サイクルの持続時間は平均して 一層短くなり、結果として応答時間が減少することが分かるであろう。単純なシ ステムにおいては、全てのタイトルの全てのブロックが冗長な形で記憶される。 前記ブロックの選択組は全てのブロックのうちの一部とすることもでき、その場 合、残りのブロックは1度だけ記憶される。 この実施例により提供される解決策は、帯域幅と違って記憶媒体の容量は主要 な決定要因ではなく、ハードディスクの容量は平均して帯域幅(典型的には年4 0%の増加)より高いレート(典型的には、年60%)で増加しているので、斯 かる容量は益々決定要因ではなくなるという見通しから有利である。2年以内に 典型的なディスクが25Gバイトの記憶容量及び85Mbits/secなる保証された データレートを持つようになると仮定すると、以下の2つの筋書きを描くことが できる。第1の筋書きでは、本発明によるシステムのビデオオンデマンド版は、 映画館におけるように、20までの範囲の映画を最大で1000人のユーザに提 供するように使用される。これら映画はMPEG2を用いて4Mbits/secなる平均レ ートで符号化される。映画が平均して90分の長さを有していると仮定すると、 映画当たり90*60*4.106=21.6*109bits=2.5Gバイトなる合計記憶容量が必要と され、結果として、必要とされる全記憶容量は約50Gバイトとなる。全てのブ ロックが完全に冗長な形(実際に必要とされるよりも2倍のデータ単位の量)で 記憶されるとすると、容量は約100Gバイトでなければならず、これは4ない し5個のディスクに相当する。同時に1000人のユーザを扱うことができるに は、4000Mbits/secなる合計の保証された帯域幅が必要とされ、これは47 個のディスクに相当する。このようなシステムにおいて235を越える映画を記 憶する必要がある場合にのみ、上記ディスクの容量が妥当なものとなる。本発明 によるシステムが、ホテルにおいて典型的であるように、100人までのユーザ に対して映画の選択を提供するよう使用されるような、もっと緩やかな第2の筋 書きでは、帯域幅に関しては5つのディスクが必要となる。完全な冗長性の場合 は、上記5つのディスクは23の映画を記憶することができ、これは斯様なシス テムにおいて通常提供されるよりも多い。 この実施例の他の利点は、当該システムの改善された強さにある。1つ(又は それ以上の)ディスクの故障は、当該システムの故障とはならない。何故なら、 データを、最早アクセスすることができない該データを再生するのに使用するこ とができるようなデータを記憶している他のディスクから取り出すことができる からである。 請求項4に記載の構成によれば、幾つかの(又は全ての)ブロックが別個のデ ィスク上で完全に二重化されている(又は3度以上記憶されている)。この実施 例は、上記データは2度以上記憶されているが、典型的なシステムにおいては実 際には、本発明によるシステムでは従来のシステムにおけるより少ない記憶容量 しか必要とされないという洞察に基づいている。既に前記筋書きで示したように 、帯域幅が殆どの実際のシステムに関しては制限要因であり、益々そうなるであ ろう。データブロックを個々の記憶ユニットにわたって最早分割(ストライプ) するのではなく、代わりに、1つのディスクから全体のブロックを読み取ること により、記憶ユニットからデータを読み取る効率が改善される。前記第1の筋書 きでは、丁度2%を越えるような効率の改善の結果、既に、ディスクが節約され ている。 本発明による本実施例の他の利点は、当該システムの強さが改善される点にあ る。一例として、12個のディスクのうちの1つが故障し、全ブロックが二重化 されているとすると、前記スケジューラは、10個のブロックのうちの1つに関 しては、当該ブロックを何のユニットから読み取るべきであるかを選択すること ができないであろう。パリティディスクのような他の手段は必要とされない。 更に、システムの拡張性が増加する。もし追加の帯域幅(又は記憶容量)が必 要な場合は、迫加のディスクを当該システムに付加することができる。既に存在 するディスクから新たなディスクへ移動されるべきブロックは、ランダムに選択 することができる。典型的には、移動されるべきブロックの数は、略、1つのデ ィスク上に記憶されるブロックの平均数であろう。本発明によるシステムにおい ては、当該システムの動作に対する影響は非常に少ない。50個のディスクのシ ステムにおいては、ブロックの2%だけしか移動する必要がない。他の全てのブ ロックは全く影響を受けない。また、移動作業は、ブロックを移動させるための 容量が利用可能な場合に何時でも実行することができる(即ち、該作業は当該シ ステムが動作している間にバックグラウンドで実行することができる)。ブロッ クが上記の新たなディスクに移動されるにつれて、当該システムの容量は、最終 的に所望の数のブロックが該新たなディスクに移動されてしまうまで、緩やかに 増加する。これとは対照的に、ブロックが全ディスクにわたりストライプされて いる典型的なシステムにおいては、全てのディスクがアクセスされねばならず、 新たなディスク上にデータを記憶するためにブロックは再構築さえされねばなら ない。このような大きな作業は、通常、当該システムがオフライン状態にある間 になされねばならない。 請求項5に記載された構成は簡単なスケジューリングのやり方を説明しており 、この場合、記憶媒体からデータブロックを取り込むための要求はスケジューラ により個別に処理され、典型的には、これら要求が該スケジューラに到達する順 に処理される。各要求に対して、スケジューラは、前記読取待ち行列内の既に割 り当てられた担体アクセス要求の結果としてのその時点の実際の負荷に基づいて 、当該ブロックを再生するのに必要とされる全てのデータ単位を記憶している何 の 群の記憶ユニットが最も低い負荷を有しているかを判定する。 請求項6に記載された構成は、読み取られるべき一群のブロックのための要求 を分散させることにより負荷をバランスさせる。これにより、既に割り当てられ た要求が最早影響を受けないような上記要求を個別的に割り当てる場合に比較し て、一層一様な負荷が可能となる。一例として、要求を個別に割り当てると結果 として以下のような状況となる。或る要求が、等しい負荷を持つ2つの可能性の ある記憶ユニットA及びBから選択された記憶ユニットAに割り当てられるとす る。記憶ユニットCの負荷は、A及びBの初期負荷より1だけ大きいとする。次 の要求に対しては、記憶ユニットA及びCの間で選択がなされねばならない。A 及びCは共に等しい負荷を有しているから、どのような選択をしても、これらの 記憶ユニットの一方の負荷を常に増加させる結果となる。一方、両要求を1つの 群として扱うことにより、上記最初の要求がBに第2の要求がAに割り当てられ るようにし、上記3つのユニットの最大負荷を低くすることができる。 この実施例においては、スケジューラは何のストリームがブロックを必要とす るかを判定し、記憶ユニットの負荷をバランスさせるという高いレベルの巡回的 動作を実行することが分かるであろう。これとは別に、当該スケジューラは上記 高いレベルのサイクル及び他の記憶ユニットの供給サイクルとは独立して、各記 憶ユニットに担体アクセス要求のバッチを供給するという低いレベルの巡回的動 作を実行する。上記の高いレベルのサイクルに使用されるアルゴリズムは、単一 の同期されたサイクルに基づくシステム用にも使用されるような従来の如何なる 好適なスケジューリングアルゴリズムでもよい。比較的速い掃引を行うディスク は、より早く再供給される。結果として、前記待ち行列はこれらのディスクに関 してより少ない担体アクセス要求を含むことになり、その結果、新たなブロック に関するもっと多くのデータアクセス要求が、その時点で速く動作しているディ スクに割り当てられることになる。これにより、その時点で遅い掃引を行ってい るディスクは解放され、結果として、全体として一層速い動作、従って低減され た応答時間が得られる。 請求項7に記載の構成は、新たなブロックのための要求の群に対して負荷をバ ランスさせる簡単なスケジューリング法を述べており、そこでは、前記記憶媒体 からデータブロックを取り込むための要求は、スケジューラにより且つ典型的に はこれら要求が該スケジューラに到達する順序で個別に処理される。新たなブロ ックに関する各要求に対して、スケジューラは、既に割り当てられている担体ア クセス要求から生じるその時点での実際の負荷に基づいて、これら要求が何の記 憶ユニットに割り当てられるべきかを判定し、ここで、該記憶ユニットは読み取 られるべき当該ブロックを記憶する全ての記憶ユニットのうちの最低の負荷を持 つ記憶ユニットであるとする。更に、現在処理されている又は前記読取器に既に 確実に送出されている(例えば、当該ディスクの次の掃引動作において読み取ら れるべきブロックに関する要求を記憶するハードウェアの読取要求バッファに既 に送出されている)要求は、考慮する必要がない。 請求項8に記載された構成によれば、当該システムを再バランスすることによ り、より一層良好な負荷バランス(結果として、全体としての高速動作が得られ る)を達成することができる。この再バランスは、データ単位に関する担体アク セス要求を或る記憶ユニットから、(同一のデータを再生することができる)他 の記憶ユニットへ再割り当てすることにより達成される。新たなブロックの要求 の結果としての担体アクセス要求が、当該システムがその時点でバランスされる ように、最初から割り当てられていたとしても、当該システムは依然として後の 段階での最バランスから利点を得ることができる。例えば、先に説明したように 、前記初期割当がなされた際に、ディスクは、通常、最悪の場合の仮定よりも速 くバッチを処理することができる。成るバッチの担体アクセス要求に対して個々 のディスクがどのくらい速く掃引を行うかを予測し、当該システムをそれに応じ てバランスしようと試みる代わりに、当該システムを後で再バランスする方が簡 単である。更に、新たなデータのブロックのための要求が、新たなブロックのた めの1群の要求を順次処理することにより割り当てられるとすると、1群の要求 を処理している間に、前の群において1又はそれ以上の特定の記憶ユニットが少 な く負荷されていた方が良かったことが検出される事態が生じる場合がある。例え ば、或るサイクルの間にスケジューラは新たな担体アクセス要求を全てのディス クの負荷が(略)同一となるように分散したとする。次のサイクルの間では、特 定の記憶ユニットが当該サイクルの間に処理されるべきブロックに関するデータ 単位の非常に大きな割合を記憶していることが分かる。もしそうなら、前のサイ クルにおいて該記憶ユニットがより少なく負荷されていた方が有利であったこと になる。このことが、未だ確実に読取器に送出されていない担体アクセス要求を 再割り当てすることにより達成される。同様の再割り当てが1つのサイクル内で なされるようにしてもよい。例えば、成る群のブロックが割り当て過程の終わり に向かって順次処理されるとすると、多くの担体アクセス要求は少数の記憶ユニ ットに割り当てる必要があるが、実際には初期段階で担体アクセス要求が他の記 憶ユニットに割り当てることができたような記憶ユニットに割り当てられてしま っていることが分かる場合がある。上記再バランスは、ブロックが1つのデータ 単位として記憶されるか又は1群のデータ単位から再生される(この場合は、該 群のデータ単位に関して割り当てられた全ての担体アクセス要求を待ち行列から 除去し、続いて新たな群を選択すると共に新たなアクセス要求を割り当てる必要 がある)ような状況に対して実施することができる。 請求項9に記載された構成は、最適な負荷を達成する効果的且つ簡単な方法を 提供する。図面の簡単な説明 本発明の上記及び他の特徴を図示の実施例に基づいて説明するが、図面におい て: 第1図は、本発明によるシステムのブロック図を示す。 第2図は、再生のために記憶ユニットを選択する線形順次方法のフローチャー トを示す。 第3図は、再生のために記憶ユニットを選択する反復線形順次方法のフローチ ャートを示す。 第4図は、ノードの回路網を経る最大のフローを解くことに基づいて再生のた めの記憶ユニットを選択する方法を図示する。 第5図は、再生のために記憶ユニットを選択する他の反復手順を図示する。発明を実施するための最良の形態 第1図は、本発明によるシステム100のブロック図を示している。このよう なシステム100の一例はマルチメディアサーバである。マルチメディアアプリ ケーションは、視聴覚材料の広範な使用により特徴付けられる。オーディオ又は ビデオの再生のためには、オーディオ/ビデオデータの(準)連続的な供給が必 要とされる。マルチメディアサーバの既知の例は、準ビデオオンデマンドサーバ 及びビデオオンデマンドサーバを含む。準ビデオオンデマンドサーバシステムに おいては、サービスプロバイダが何時タイトルが再生されるかを決定する。該タ イトルのデータを含むデータストリームは、多くのユーザにより同時に受信する ことができる。ビデオオンデマンドシステムにおいては、典型的には、ユーザが タイトルを選択し、VCR的な制御により該タイトルの再生出力を制御する。対 話のレベルは高く、データストリームは典型的には一人のユーザによってのみ消 費される。マルチメディアサーバは、通常、同様のデータレート(典型的には同 一の最大データレートにより制限される)の多数のユーザ用の連続したデータス トリームを並列に供給するように特別に設計されたファイルサーバを用いて実施 化される。通常、1つ又はそれ以上のマルチメディアタイトルがバックグラウン ド記憶媒体110に記憶される。現時点では、普通、ハードディスクのようなデ ィスクが、それらの低価格大記憶容量及びランダムアクセスが可能であることか ら、該バックグラウンド記憶媒体110として使用されている。光ディスクのよ うな他の記憶媒体を使用することもできることが分かるであろう。該記憶媒体は 、一例として102、104、106及び108で示されているように、複数の 記憶ユニットに分割されている。従って、記憶媒体110はRAIDシステムの ような一群(クラスタ)の記憶ユニットにより形成されることになる。ハードデ ィスクのような該記憶ユニットは、それ自体更に副分割することができる(結果 と して、階層的クラスタとなる)。本説明の目的で、この様に副分割された記憶ユ ニットは1つの記憶ユニット(記憶ユニット内の副ユニットよりも広い帯域幅及 び/又は大きな記憶容量を持つ)とみなす。ディスク型の記憶媒体を使用する典 型的なビデオオンデマンドシステムに関しては、記憶媒体110を形成する記憶 ユニットの数は所要の帯域幅により決定される。典型的には、全てのデータスト リームは毎秒Rmaxデータ要素なる同一の最大消費率により制限され、ここで1 データ要素は例えば1バイトである。MPEG-2で符号化された題材に関しては、最 大消費率は、所望の品質に応じて、典型的には約2Mbits/secと約15Mbits/s ecとの間に選定される。同時にNmax個のデータストリームを扱うよう設計され たシステムは、少なくとも略Nmax*Rmax、/B個の記憶ユニットを必要とし、 ここでBは個々の記憶ユニットの保証された帯域幅である。実際には、幾つかの データストリームに対する最大消費率は、もし例えば対応するタイトルが低品質 又は異なる形式(例えばオーディオ、ところで殆どのストリームがオーディオと ビデオとの組み合わせに関するものである)のものである場合は、当該システム が設計されている最悪の状況よりも低くてもよい場合があることが分かるであろ う。 当該システム100は記憶媒体110からデータを読み取る読取器180を有 している。該読取器180は、例えば、SCSIインターフェースを用いて構成 されている。有利には、記憶媒体110も当該システム100に含まれるものと する。データは記憶媒体110から、ディスク型記憶媒体用のディスクアクセス ブロック(DAB)のようなデータ単位として取り出される。選択されたスケジ ューリングアルゴリズムに応じて、データを固定サイズのDABとして読み取る か又は可変サイズのDABとして読み取るかに優先度が付与される。同一のディ スクから順次読み取られるDABは、典型的には、当該ディスク上には連続的に は記憶されていない。通常、同一のディスクから順次読み取られるDABは、当 該ディスクが複数のデータストリームに関するDABを何らかのインターリーブ された態様で供給しなければならないので、異なるファイルに属している(ここ で、1つのファイルは1つのタイトルに属するブロックの集合である)。非連続 なDABを読み取ることに起因する切り替えオーバーヘッドを減少させるために 、ディスク掃引技術が使用される。この場合、読取器180は記憶ユニット11 0から多数のDABを1バッチで読み取ることができる。該バッチのDABは、 それらの物理的トラック位置に基づいて配列されている。読み取り動作に関して は、ディスクヘッドは1方向のみ(例えば、データを読み取る必要がある最内側 位置から最外側位置まで、又はその逆)に移動され、当該バッチのDABを読み 取るためにのみ停止する。このようにして、上記切り替えオーバーヘッドは大幅 に減少される。上記記憶ユニットはテープユニットにより形成することもできる ことが分かるであろう。この場合、非連続なテープアクセスブロックを読み取る には、通常、任意の方向への巻き取りが関連するであろう。かくして、該テープ は当該バッチの最初のテープアクセスブロックの読取から開始して最後のブロッ クが読み取られるまで1方向に巻き取られる。階層構造の記憶ユニットも使用す ることができ、その場合、ディスクは例えば上記読取器がデータを得るキャッシ ュの形で作用する一方、テープはデータをディスクに供給するバックグラウンド 記憶部を形成する。有利には、読み取り要求のバッチを受け、要求された読み取 り動作の所要のスケジューリングを反復実施して特定のディスクに関して最適の 掃引を行うような読取器180が使用される。読取器180は、ディスクから読 み取られたデータを、潜在的にディスクから読み取られたのとは異なる順序で、 バス140を介して当該システム100の残部に供給する前に、一時的に記憶す るためのキャッシュメモリも含んでいる。上記読み取りの制御、掃引順序の管理 及び読み取られたデータのキャッシュ記憶のような当該読取器の役割は分散させ ることができ、その場合、上記記憶ユニットの各々がこれら機能を果たす自身の コントローラを有することが分かるであろう。もしそうなら、読取器180の主 たる仕事は、これらの種々の“インテリジェント”制御ユニットの動作を協調さ せることとなる。 特にビデオに関しては、データストリームは非常に大量となる。この量を減ら すために、典型的には、圧縮技術が使用される。圧縮方法の結果、例えばMPEG-1 符号化の固定レート様式を用いた固定レートのデータストリームが、又は例えば MPEG-2符号化の可変レート様式を用いた可変レートデータストリームが得られる 。可変データレートストリームに関しては、通常、毎秒Rmaxデータ要素なる固 定の同一の最大消費率が仮定され、該最大消費率は当該システムが最悪の状況( 例えば、全てのデータストリームが最大のデータレートでデータを消費する場合 )においても動作するのを保証するために該システムの規模(例えば、当該シス テムの帯域幅及び/又は記憶部のサイズ)の決定に使用される。通常、データは 記憶媒体110内に記憶され、当該システムにより圧縮された形態で処理される 。ユーザ130においてのみ、データストリームはデコーダを用いて伸張される 。特に可変レートシステムの場合は、システム100はVCR的な制御機能を扱 うこともできる。このような場合は、データストリームは活性状態及び停止され た状態のような複数の状態のうちの1つにあり、ここで、活性データストリーム はユーザにデータを供給し、停止されたデータストリームは目下ユーザにはデー タを供給しない。典型的には、ユーザがデータの消費を一時的に停止している場 合は、当該ストリームは活性状態のままである。ユーザがストリームを切り替え ると(例えば、明示的に新たなタイトルを選択するか、又は当該システムに高速 順方向送りモードを指示する結果として同一のタイトルが高速で表示されるよう な新たなストリームが選択されることにより暗示的に新ストリームが提供される )、当該ストリームは一時的に停止され、新たなデータがロードされるのを可能 とする。スローモーション機能はデータを低いレートで消費することにより(当 該ストリームは活性状態のままである)、又は新しいストリームに切り替える( 当該ストリームは一時的に停止される)ことにより実施することができることが 分かるであろう。システム100は、当該データストリームに対して、現在の状 態を示すストリーム状態を維持する。1又はそれ以上のデータストリームのスト リーム状態は、当該サーバの主メモリ(RAM)又は特別なレジスタのような状 態メモリ190に記憶することができる。 データストリームの部分集合に対して、データが記憶媒体110から読み取ら れ、その場合、読み取られたデータはバス140を介して時間多重されたストリ ームとして供給される。何れの場合においても、記憶媒体110は当該システム の全てのユーザに対して連続したデータストリームを同時に供給することはでき ない。その代わりに、データストリームの部分集合に対するデータが読み取られ 、当該システム100の残りの部分に対して、対応するデータストリームにより 消費されるよりも高いデータレートで供給される。従って、当該システム100 は、各ユーザ130へのデータの所要のレートでの供給を達成するために、バッ ファ120を有している。通常、バッファ120はRAMを用いて構成される。 当該システム100は、更に、上記データストリームのデータをユーザに伝送す るための通信手段150を有している。この通信手段150は、当該システム1 00の近くに位置するユーザに対して上記データを供給するためのローカルエリ アネットワークのような何らかの好適な手段により形成することができる。実際 には、長い距離にわたり上記データを供給するために電気通信回路網又はケーブ ル回路網が使用される。 システム100は、当該システム100を制御するための制御ユニット160 も有している。該制御ユニットの主要部分はスケジューラ170により形成され ており、該スケジューラはバッファ120のアンダーフロー又はオーバーフロー を防止するために読取器180により記憶媒体110から何のDABが読み取ら れるべきであるかを決定する。該制御ユニットは、典型的には、RISC型マイ クロプロセッサ又はCISC型マイクロプロセッサのようなプロセッサにより形 成され、該プロセッサはROM又はハードディスクのような記憶媒体からロード されるリアルタイムオペレーティングシステムの制御の下で動作する。スケジュ ーラ170は、上記オペレーティングシステムに統合されたソフトウェアモジュ ールとして構成されるか、又はアプリケーションプログラムとしてロードするこ とができる。典型的には、スケジューラ170は前記バッファの充填度のような 状態情報を受け取り、該情報をスケジューラ170は判断の基とする。VCR的 な制御を提供するようなシステムに関しては、上記スケジューラはストリームの 状態に関する情報も入力する。このようなシステムにおいては、典型的には、制 御情報がユーザ130から通信手段150を介して入力される。 本発明による該システムにおいては、ストリームに対して読み取られるべきデ ータのブロックは前記記憶ユニットの1つにDABのような1つのデータ単位と して記憶することができ、又は、他の例として、数個のデータ単位として記憶す ることができる。数個のデータ単位が使用される場合は、これらデータ単位は異 なる記憶ユニットに分散することができる。1つの形は、ブロックが全ての記憶 ユニット上に分散されることである(同一の数のDABが各記憶ユニットから読 み取られて、上記ブロックを形成する)。該ブロックを全てのディスク上に分割 (ストライプ)する代わりに、ブロックは1群のディスク上にストライプするこ ともできる。ストリームに対してデータブロックを読み取る必要がある場合は、 スケジューラ170は、何のデータ単位(2以上のデータ単位が関係している場 合は、複数のデータ単位)が取り出されるべきであるかを決定する。このデータ 単位に関しては、スケジューラ170は該データ単位が何の記憶ユニットに記憶 されているかを判定し、担体アクセス要求を読取待ち行列172に入力する。こ の担体アクセス要求は、上記データ単位と上記判定された記憶ユニットとに関連 付けられている(例えば、該担体アクセス要求は待ち行列へのレコード又はデー タ構造のようなエントリの形をとり、そこでは該エントリの或るフィールドは上 記データ単位を指示するために使用され、他のフィールドは上記記憶ユニットを 指示するために使用される)。好ましくは、読取待ち行列172は複数の記憶ユ ニットの各々に対して、対応する読取副待ち行列を有するようにする。図示のも のは副待ち行列174、175、176及び177であり、ここで副待ち行列1 74は記憶ユニット102に関連付けられ、副待ち行列175は記憶ユニット1 04に関連付けられ、副待ち行列176は記憶ユニット106に関連付けられ、 副待ち行列177は記憶ユニット108に関連付けられている。このようにして 、スケジューラ170は、或る記憶ユニットに対する担体アクセス要求を該記憶 ユ ニットに関連付けられた読取副待ち行列に入力することにより、担体アクセス要 求を当該記憶ユニットに簡単に関連付けることができる。巡回的に、スケジュー ラ170は特定の記憶ユニットに関する担体アクセス要求の1バッチを上記読取 待ち行列から取り出し、該バッチを読取器180に送出する。副待ち行列が使用 されている場合は、スケジューラ170は、或る記録担体に関する担体アクセス 要求のバッチを該記憶ユニットに関連する副待ち行列から簡単に取り出すことが できる。スケジューラ170は前記記憶ユニットの各々に対する上記の巡回的な 取り出しを非同期的に実行する(即ち、記憶ユニットからのデータの読み取りは 異なる時点で終了するのみならず、典型的には異なる時点でも開始する)。特定 の記憶ユニットに対する担体アクセス要求のバッチは、同じ記憶ユニットに対す る前のバッチが処理された際に(又は、読取器が担体アクセス要求の新らしいバ ッチを受け付ける準備ができている場合は僅かに早く)、読取器に送出される。 スケジューラ170は、記憶ユニットに関して新たなバッチを送出することがで きるか否かを監視することができる。他の例として、読取器180が前のバッチ が完了したことを示すトリガをスケジューラ170に供給することもできる。 他の実施例では、ブロックはNなる複数の対応するデータ単位により表され、 ここで各データ単位は異なる記記憶ユニットに記憶される。これらデータ単位の N未満のものが該ブロックを再生するのに必要である。該ブロックは上記データ 単位のM個までの2個以上の群から再生することができ、ここで1≦M<Nであ る。殆どの状況では、各群はMなる同一の数のデータ単位により形成されるであ ろう(もっとも、厳格に要求されるわけではない)。このような記憶戦略の一例 は、当該ブロックが7つのセグメントに分割され、他の1つのセグメントがこれ ら7つのセグメントに対して計算されたエラー訂正符号を用いて形成される場合 である。このようなエラー訂正符号の単純な形態は、上記7つのセグメントに対 するパリティを計算する(例えば、全てのセグメントの一緒の排他的論理和をと ることにより)ことであり、該パリティは何のディスクが故障したかの知識との 組み合わせで、検出されたエラーの訂正を可能にする。この場合、上記7つのセ グメ ント及びエラー符号化セグメントの各々が、前記データ単位の1つを形成し、且 つ、異なる記憶ユニットに記憶される。一層の冗長度を提供するようなもっと進 んだ符号化方法も使用することができる(即ち、上記ブロックを完全に再生する ことができるために、もっと少ないデータ単位しか取り出す必要がない)。7つ のデータセグメントと1つのパリティセグメントとを使用する場合は、上記ブロ ックを再生することができる、各々が7つのセグメントからなる8つの異なる群 が存在する。上記ブロックを再生するのに最小限必要とされるデータ単位の群が 区別される。データ単位は各々別個の記憶ユニットに記憶されるので、データ単 位の各群は記憶ユニットの各群に1対1に対応する。スケジューラ170が或る ブロックの読み取りを準備しようとする場合は、該スケジューラは記憶ユニット の群のうちの1つを、これら記憶ユニットへの負荷がバランスするように、選択 する。或る記憶ユニットへの負荷は、例えば、該記憶ユニットに対応する副待ち 行列内の担体アクセス要求の数により決定される。もし可能であるなら、読取器 180に対して既に送出されているが、未だ処理されていない担体アクセス要求 も付加的に考慮に入れるようにしてもよい。記憶ユニットの1つの群に対する負 荷は、該群の記憶ユニットの平均負荷として、又は例えば該群の記憶ユニットの 負荷の最大値として定義することができる。スケジューラ170は、選択された 群の記憶ユニット(又は複数の記憶ユニット)の各々に関して担体アクセス要求 を前記読取待ち行列に入力する。担体アクセス要求は、記憶ユニットと該記憶ユ ニットに記憶されたブロックのデータ単位とに関連付けられている。 当該システム内の全てのタイトルの全てのブロックは冗長な形で記憶すること ができる(即ち、データ単位の少なくとも2つの異なる群から再生可能である) 。他の例として、幾つかのブロックは一度だけ記憶される。例えば、当該システ ムにおける全てのタイトルの部分集合のブロックは冗長な形で記憶される。有利 には、このような部分集合は最も好まれているタイトル(例えば、ユーザによる 全アクセスの90%のような所定のパーセント、又は最も頻繁にアクセスされる 全タイトルの10%のようなパーセントをカバーするタイトルの集合)により形 成 される。代わりとして又は組み合わせとして、冗長な形で記憶されたブロックの 選択は、或るタイトルのブロックの部分集合に対応するようにしてもよい。例え ば、或るタイトルの1つ置きのブロックが冗長な形で記憶される一方、該タイト ルの他のブロックは1回だけ記憶されるようにする。多くの変形が可能であるこ とが分かるであろう。通常、記憶媒体110に記憶されるブロックは複数のタイ トルに関係し、ここで各タイトル(通常ファイルとして記憶される)は一連のデ ータブロックを有している。好ましくは、各タイトル(又はタイトルの群)は所 定の冗長係数に関連付けられている。タイトルの冗長係数は、当該タイトルに関 して上記記憶媒体に記憶されたデータ単位の数と、当該タイトルのデータ単位の 数との比に関係する。好ましくは、タイトルの冗長係数は当該タイトルの評判に 依存させるようにする。有利には、最も好まれているタイトルに対しては高い冗 長係数が選択され、それ程頻繁にアクセスされない“古い好み”のものに対して は低い冗長係数が使用される。冗長係数は、当該システムの典型的な使用に対し て(即ち、評判のよいタイトルとそれ程評判がよくないタイトルとの間の平均し たバランスで)、平均冗長係数が所望のレベルとなるように選定される。明らか に、上記冗長係数はタイトルの群に対して選択することもできるし、個々のタイ トルに対しても選択することができる。 当該システムの他の実施例においては、冗長な形で記憶された幾つかの又は全 てのブロックは単に二重化(N=2)されるか、又は多重化(N>2)される。 これは、該ブロックに対応するデータ単位が各々ブロック全体を有することによ り表すことができる。結果として、該ブロックを再生するのに唯1個のデータ単 位(M=1)のみが必要とされる(或るブロックの1以上のデータ単位が他の記 憶ユニットに記憶された他のデータ単位から再生することができる何らかの形の エラー検出及び訂正符号を使用する場合と対照的に)。有利には、同一のブロッ クを記憶する記憶ユニットは前記複数の記憶ユニットから実質的にランダムに選 択されたものとする。当該システム(又は別のシステム)は、ブロックの選択群 を、このようなブロックが少なくとも2つの記憶ユニットに確実に記憶されるよ うにして、前記記憶媒体に多重に記憶する手段(図示略)を有している。好まし くは、このようなブロックは正確に2つの記憶ユニットに記憶されるようにし、 これら記憶ユニットは記憶媒体110の一群の記憶ユニットからランダムに選択 される。ディスクの選択は、多重に記憶されるべき各ブロックに対して別途なさ れる。(疑似)ランダム順序発生器が、利用可能な記憶ユニットの範囲内でラン ダムな数を発生するために使用される。上記ブロックの選択群における順次のブ ロックの各々に対して、次のランダム数は当該ブロックが記憶されるべき記憶ユ ニットを示す。以下に詳述するように、記憶ユニットをランダムに選択すること は、ブロックを取り出す場合に負荷の良好なバランスを可能にする。発見的アル ゴリズムも使用することができ、該アルゴリズムは再生の間に統計的に“一様な ”負荷という同一の結果を達成する。明らかに、多重に記憶されるブロックが各 々異なる記憶ユニットに記憶されるのが好ましく、さもなければ該多重化が負荷 のバランスの改善(又は強さの改善)という結果をもたらさないからである。こ のことは、発生されたランダム数が当該ブロックを既に記憶している記憶ユニッ トに対応している場合は、次のランダム数を使用することにより、簡単に達成す ることができる。選択されたブロックを2つの記憶ユニットに記憶する代わりに 、ブロックをもっと多くの記憶ユニットに記憶することもできることが分かるで あろう。より多くの記憶ユニットが使用されるにつれて、ブロックの記憶ユニッ トへの割り当てはあまり“ランダム”である必要がなくなる。ここで、1994 年の計算理論についてのACMシンポジウムの第593〜602頁に掲載された Y.Azar e.a.の“バランスされた割り当て”は、n個のボールをn個の箱に投入 されるようし、ここで各ボールにはランダムに2つの箱が選択され、当該ボール は投入時点においてより満たされていない箱に投入されるようにすると、最も満 たされた箱は、高い確率で、ln ln n/ln2+0(1)個のボールを含むことになる、と 述べている。これは、上記ボールが1個のランダムに選択された箱に投入された 場合(この場合は、最も満たされた箱は、高い確率で、ln n/ln ln n(1+o(1))個 のボールを含む結果になるであろう)よりも指数関数的に少ない。これ らの結果は、特に多数のブロックに関しては、全てのブロックを完全に多重化し 、これらブロックをランダムに2つのディスクに記憶すると、これらディスクは 略同一の数のブロックを有する結果になることを示している。実用的目的のため 、特定のディスクに記憶されるブロックの数は、全てのディスクに記憶されるブ ロックの数の平均に近いと仮定することができる。 データストリームに対し新たなブロックが必要になった場合、スケジューラ1 70は対応するデータ単位が記憶された記憶ユニットの群を判定する。当該ブロ ックが1個の記憶ユニットにのみ記憶されている場合は(即ち、当該ブロックが 多重に記憶されているブロックの選択群に属していない場合は)、上記スケジュ ーラは該ブロックを読み取るための読取要求を、この記憶ユニットに割り当てる 。上記ブロックが多重に記憶されている場合は、スケジューラ170は、それら 記憶ユニットの1つを選択し、当該ブロックに対応するデータ単位を示す担体ア クセス要求を該選択された記憶ユニットに割り当てる。スケジューラ170は、 上記群から、記憶媒体110の各記憶ユニットの負荷がバランスするように、記 憶ユニットを選択する。 全てのディスクを同期的に動作させることにより各ディスクからデータ単位が 読み取られる状況と、これらディスクが非同期的に動作される状況とを比較して シミュレーションが行われた。これらシミュレーションは各ブロックが2つのラ ンダムに選択された記憶ユニットに記憶されるようなシステム対して実施された 。同期式システムにおいては、全てのバッチが前記読取器に対して“同時に”送 出される。次のバッチは、以前の全てのバッチが全てのディスクに関して完了す るやいなや送出される。非同期式システムにおいては、個々の記憶ユニットに対 して、次のバッチは同じ記憶ユニットに対する以前のバッチが完了するやいなや 送出される。 10個のディスクを備えるシステムに関する結果が下記の表に示されている。 これらシミュレーションは、ディスクを非同期的に制御することにより平均の場 合の応答時間の大幅な減少が達成されることを示している。各ブロックが2つの ランダムに選択された記憶ユニットに記憶されるようなシステムに関しては、応 答時間は平均して3倍減少された。当該システムにおいてもっと多くのストリー ムが活性状態であると、この非同期的構成の性能は同期的構成に較べて一層改善 される。 本発明の一実施例においては、スケジューラ170はデータストリームのため のブロックの取り込み要求を個別に取り扱う。要求が到来する(又は、スケジュ ーラ170が新たなブロックが必要であることを自ら検出する)毎に、該スケジ ューラは、当該ブロックに対応する記憶ユニットの群のうちの何れがその時点で 最も負荷が軽いかを判断することにより、記憶ユニットの1つの群を選択する。 負荷を判断するには、既に割り当てられている担体アクセス要求のみが考慮され る。以前の読取要求の再割り当てはなされず、スケジューラ170に既に到来し ているかも知れないブロックの他の取り込み要求は考慮されない。以前の担体ア クセス要求の唯一の影響は、既に割り当てられているが未だデータが読み出され ていないような担体アクセス要求の結果としての記憶ユニットの負荷を介しての ものである。実際の状況では、スケジューラ170は、当該スケジューラ170 が依然として状態を決定することができるような割り当てられた担体アクセス要 求を考慮に入れることができるのみであることが分かる。一例として、読取器1 80(又は、上記記憶ユニットの個々のコントローラ)は掃引順序を最適化する ためにハードウェア的に何らかの形の内部スケジューリングを実施することがで きる。一旦担体アクセス要求が発せられると、スケジューラ170は、最早、何 時実際のデータ単位が読み取られようとしているか又は読み取られているかを判 断することはできない。従って、スケジューラ170は斯かるディスクアクセス 読取要求を完了されたもと及び負荷に最早寄与しないものと見なすことができる 。このような割り当て方法は、如何なる形態の冗長記憶(完全な多重化は必要で はない)にも利用することができる。 本発明によるシステムの他の実施例においては、スケジューラ170はブロッ クを一度に取り込むための2以上の要求の群を扱うことにより記憶ユニットへの 負荷をバランスさせる。これは、一層良好なバランスを可能とするのみならず、 ビデオサーバにおいて通常使用されている巡回的なやり方に調和しており、そこ では各サイクルにおいて何のデータストリームに対してブロックを読み取る必要 があるかを先ず判断し、次いで対応する担体アクセス要求が割り当てられる。本 発明によれば、スケジューラ170は、先ず、次のサイクルにおいて読み取られ るべきブロックの群を決定する(これは、個々の記憶ユニットの掃引動作とは独 立した高いレベルの巡回的動作であることに注意されたい)。スケジューラ17 0は、次に、該群の全てのブロックに関して、データ単位が読み取られるべき記 憶ユニットの群を、これら記憶ユニットへの負荷がバランスするように選択する 。負荷を判断するため、既に読取待ち行列内にあり且つ上記群のブロックに関連 付けられている担体アクセス要求のみが考慮される。このようにして、負荷は関 係する記憶ユニット(即ち、読み取られるべきブロックの1つにおけるデータ単 位のうちの1つのコピーを有する記憶ユニット)に対して、比較的簡単にバラン スさせることができる。典型的には、上記ブロックの群(従って、データ単位の 数)は記憶ユニットの合計数より大幅に大きいので、通常は、全ての記憶ユニッ トが関係する。これにより、全記憶ユニット上の負荷の妥当なバランスを達成す ることができる。他の例として、スケジューラ170は、それらデータ単位が未 だ全て読み取られていないなら、以前の群の割り当ての結果としての負荷も考慮 することができる。 第2図は、本発明によるシステムの他の実施例におけるスケジューラ170の 動作のフローチャートを示し、ここで該スケジューラは前記群の各ブロックを順 次取り扱う。これらブロックには何らかの順序が存在すると仮定する。この順序 自体は重要ではない。この順序は、例えば、スケジューラ170がブロックを取 り込むための要求を受ける順序である。他の例の順序は、当該ブロックが意図す るバッファの順序に基づくものかもしれない。ステップ200において、スケジ ューラは該順序の最初のブロックを選択する。選択されたブロックは、ステップ 210、220及び任意選択的にステップ230において処理される。ステップ 240においては、スケジューラ170は該群の全てのブロックが処理されたか を判定する。もしそうなら、動作は終了する。そうでない場合は、ステップ25 0において当該群の次のブロックが選択され、処理がステップ210において継 続される。各ブロックに対して、スケジューラ170はステップ210において 、当該ブロックを再生することができるデータ単位を有する記憶ユニットの群を 判定する。ステップ215においては、全てのブロックが冗長な形で記憶されて いるのではないようなシステムで使用される任意選択的な判断がなされる。当該 ブロックが記憶ユニットの1つの群のみから再生することができる(即ち、当該 ブロックが冗長的に記憶されたブロックの選択群に属していない)場合は、スケ ジューラは、ステップ220において、当該ブロックに対応するデータ単位(又 は複数のデータ単位)を関係する記憶ユニット(又は複数の記憶ユニット)から 読み取るための担体アクセス要求を割り当てる。当該ブロックが冗長な形で記憶 されている場合は、スケジューラ170はステップ230において記憶ユニット の群の内の1つの群を選択し、ステップ220において当該ブロックのデータ単 位(又は複数のデータ単位)を読み取るための上記担体アクセス要求(又は複数 の担体アクセス要求)を、この群の記憶ユニット(又は複数の記憶ユニット)に 割り当てる。スケジューラ170は、その時点で当該群の以前に処理されたブロ ックのために既に割り当てられていた担体アクセス要求の結果として最も低い負 荷を有している記憶ユニットの群を選択する。このアルゴリズムは、以下では、 線形割り当てアルゴリズム(Llnear Assignment algorithm)と呼ぶ。 本発明による一実施例においては、スケジューラ170は、前記読取待ち行列 内の担体アクセス要求の結果としての記憶ユニットの負荷バランスを改善するこ とができるかを判断する。もしそうなら、スケジューラ170は少なくとも1つ のブロックに対して、最初に意図したのとは異なるデータ単位(又は複数のデー タ単位)が確実に読み取られるようにする。これは、当該ブロックの結果として の担体アクセス要求(又は複数の担体アクセス要求)を上記読取待ち行列から削 除することにより実行される。次に、スケジューラ170は当該ブロックを再生 することができる記憶ユニット(又は複数の記憶ユニット)の群を再選択する。 例えば、(当該ブロックに関連付けられた記憶ユニット(又は複数の記憶ユニッ ト)の群から)その時点でより低い負荷を有している群を選択することができる 。最後に、スケジューラ170は、上記の選択された群の記憶ユニット(又は複 数の記憶ユニット)の各々に対して、担体アクセス要求を前記読取待ち行列に入 力する。この担体アクセス要求は、上記記憶ユニットと該記憶ユニットに記憶さ れたブロックのデータ単位とに関連付けられる。 第3図は、本発明によるシステムの他の実施例におけるスケジューラ170の 動作のフローチャートを示す。ステップ310において、スケジューラ170は 初期割り当てを実行する。スケジューラ170は当該群のブロックの各々に対し て記憶ユニット(又は複数の記憶ユニット)の予備的な群を選択し、対応する担 体アクセス要求(又は複数の担体アクセス要求)を、上記の予備的に選択された 記憶ユニット(又は複数の記憶ユニット)の群の各記憶ユニットに割り当てる。 上記の選択過程は、常に最初の群の記憶ユニットを選択するか(何らかの形で各 群の順序付けが確立されていると仮定する)、又は可能性のある群から記憶ユニ ットの1つの群をランダムに選択するというように、単純なものとすることがで きる。好ましくは、ステップ310の初期割り当ては、ブロックの群内のバラン スを考慮した第2図の順次割り当て方法を用いて実行される。この初期割り当て に続いて、スケジューラ170は、当該群の各ブロックに対して記憶ユニットの 群が再選択されると共に対応する担体アクセス要求が再割り当てされるような反 復手順を開始する。好ましくは、上記再割り当ては第2図に示した方法に対応す るような下記の方法により実行される。再び、これらブロックには何らかの順序 が存在すると仮定すると、スケジューラ170はステップ320において該順序 の最初のブロックを選択する。選択されたブロックは、ステップ325、330 、340及び350で処理される。ステップ360においては、スケジューラ1 70は当該群の全てのブロックが処理されたかを判断する。もしそうなら、該反 復手順のループは完了する。もしそうでないなら、ステップ370において当該 群の次のブロックが選択され、ステップ325において処理が継続される。ステ ップ380においては、スケジューラ170は当該ループを終了するための条件 が満たされているかが判断される。もしそうなら、当該ループからは抜け出され 、さもなければ次のループがステップ320において開始される。上記条件自体 は、当該ループが所定の回数実行されたか否か、又は最後のループの結果として の最大負荷が当該ループが開始された以前と同じであるか否か等の、単純な条件 である。各ブロックに対して、スケジューラ170はステップ325において、 当該ブロックのデータ単位(又は複数のデータ単位)を読み取るために既に割り 当てられている担体アクセス要求(又は複数の担体アクセス要求)の割り当てを 外す。次に、スケジューラ170はステップ330において何の記憶ユニットの 群が当該ブロックに対応するか(即ち、当該ブロックを再生することができるか )を判定する。ステップ335においては、全てのブロックが冗長な形では記憶 されていないようなシステムで使用することができる任意選択的な判断がなされ る。当該ブロックが1つの群の記憶ユニットにのみ記憶されている(即ち、当該 ブロックが冗長的に記憶されたブロックの選択群に属していない)場合は、該ス ケジューラはステップ340において、当該ブロックのデータ単位(又は複数の データ単位)を読み取るための担体アクセス要求(又は複数の担体アクセス要求 )を該群の記憶ユニット(又は複数の記憶ユニット)に割り当てる。当該ブロッ クが冗長な形で記憶されている場合は、スケジューラ170はステップ350に おいて記憶ユニットの群のうちの1つの群を選択し、ステップ340において当 該ブロックのデータ単位(又は複数のデータ単位)を読み取るための担体アクセ ス要求 (又は複数の担体アクセス要求)を該選択された群の記憶ユニット(又は複数の 記憶ユニット)に割り当てる。スケジューラ170は、その時点で、当該群の以 前に処理されたブロックに対して既に割り当てられていた担体アクセス要求の結 果として最低の負荷を持つ記憶ユニット(又は複数の記憶ユニット)の群を選択 する。このアルゴリズムは、以下では線形再割り当てアルゴリズム(Linear Rea ssignment algorithm)と呼ぶが、上記初期割り当ては線形割り当てアルゴリズ ム(Linear Assignment algorithm)により実行される。 本発明による他の実施例においては、スケジューラ170は当該群のブロック に関する担体アクセス要求を、近似最大フロー問題(analogous maximum flow p roblem)を解くことから導出される割当に従って割り当てる。この割当アルゴリ ズムが、ブロックが完全に多重化されている(即ち、当該ブロックに対応するデ ータ単位が該ブロックを完全に含む)ような状況に関して説明される。当業者で あれば、同じ原理をブロックが数個の記憶ユニットに分散されている状況にも使 用することができるであろう。第3図のステップ310と同様に、スケジューラ 170は当該群のブロックの各々に対して記憶ユニットを予備的に選択し、この 予備的に選択された記憶ユニットに対して対応する担体アクセス要求を割り当て ることにより、先ず初期割り当てを実行する。近似最大フロー問題は以下のよう に定義される。各記憶ユニットsiに対して対応するノード(頂点)niを含むよ うなノードniのネットワークが定義される。このネットワークは、ソースノー ド(s)及びドレインノード(又はシンクノード)(d)も有している。各ノー ドniは対応する弧(有向辺)を介してnj(i≠j)に接続されており、該弧は si及びsjの両方に記憶され且つ対応する担体アクセス要求がsiに割り当てら れているようなブロックの数に対応する容量を有する。従って、該容量はsiか らsjに再割り当てすることができるブロックの数を示している。第4a図は、 ノードn1ないしn3により各々表された3つの記憶ユニットs1ないしs3に関す るネットワークを図示している。この例では、記憶ユニットs1ないしs3の各初 期負荷が15、12及び10であると仮定されている(対応するノー ドの中心に示されているように)。或るノードから他のノードへの弧の傍には、 これらノードに対応する記憶ユニットの間で幾つの担体アクセス要求を再割り当 てすることができるかが示されている(例えば、本例では、3個のブロックをs1 からs2に、2つのブロックをs2からs1に再割り当てすることができる)。前 記問題は、記憶ユニットの最大負荷lmaxをk単位だけ低下させることができる かを判断することができるというように定義され、ここで上記負荷は担体アクセ ス要求のこれら記憶ユニットへの前記予備的割り当ての結果である。この目的の ため、ソースsがmax(k+li-lmax,0)なる容量の対応する弧を介して各ノードni に接続される。この式において、liは、予備的にsiに割り当てられた担体アク セス要求の結果としての記憶ユニットsiの負荷に対応する。結果として、最大 負荷lmaxは、全記憶ユニットにわたりlmax=max{li}により与えられる。第4 a図の例では、lmaxは15である。更に、各ノードniはmax(lmax-li-k,0)な る容量を持つ対応する弧を介してドレインdに接続されている。第4a図の例で は、kは2に選択され、前記ソースから各ノードへの及びこれらノードから上記 ドレインへの対応する容量が示されている。次に、当該ネットワークを経る最大 フローが計算される。第4b図は、算出されたフローの可能性のある結果を示し ている。各弧の隣に(第4a図では容量が示されたのとは異なり)フローが示さ れている。弧内のフローは該弧の容量を超えることはできない。ソースsから各 ノードへの弧の容量は、ソースsから各ノードへの算出されたフローが当該容量 に一致する(即ち、容量が完全に使用される)場合及びこのような場合にのみ、 上記最大負荷がk単位だけ確かに低下させることができるというように、定義さ れる。一例として、或るノードの負荷が最大負荷lmaxに等しい場合は、容量max (k+li-lmax,0)=max(k+lmax-lmax,0)=kを反映して、該ノードの負荷をk単 位だけ低下させることが望ましい。同様に、lmax−1なる負荷を持つノードに 関しては、容量max(k+lmax-1-lmax,0)=max(k-1,0)=k-1(k>=0と仮定す る)を反映して、該負荷はk−1単位だけ低下させることが望ましい。上記式は 、lmax−k(又は、それよりもっと低い)なるノードの負荷は低下させる 必要がないことも表している。同様に、各ノードからドレインdへの弧の容量は 、当該ノードへの負荷を、lmax−kなる所望の最大負荷を越えることなく、ど れだけ多くの単位だけ増加させることができるかを表している。各ノードからド レインへの算出されたフローは、当該システムがいっぱいには負荷されていない ことを反映して(第4b図ではn3からドレインへのフローは1であるのに対し 、その容量は3であり、n3への負荷は未だ更に2つのブロックまでは増加する ことができることを示している)、各容量よりは低いであろうことが分かるであ ろう。算出された最大フローが最大負荷をk単位だけ低下することができること を示している場合は、スケジューラ170は、結果として算出されたniからnj へのフローに等しいようなsiからsj(si≠sj)への担体アクセス要求の数 を再割り当てする。第4c図は、第4b図に示される算出されたフローによる再 割り当てを示している。当該ネットワークを介しての最大フローを計算するには 、よく知られているフォード&ファルカーソン(Ford&Fulkerson)アルゴリズム のような如何なる好適なアルゴリズムも使用することができる。最大フロー理論 の詳細は、1989年のケンブリッジ大学出版の第96〜106頁にアラン・ギ ブソンにより掲載された“アルゴリズム的グラフ理論”に記載されている。 良好にバランスされたシステムの記憶ユニットに対する最大負荷は、(境界を 含み)これら記憶ユニットへの切り上げ(upwardly rounded)平均負荷lavgと 、前記予備的割り当ての結果としての最大負荷lmaxとの間にあるであろう。従 って、kは1とlmax−lavgとの間に選択することができる(lmaxがlavgに等 しい場合は、負荷は低下させることはできない)。最大負荷を低下させることが できるkの最大値を決定するには、種々の方法を使用することができる。例えば 、所望の結果に到達するまで、境界の一方から始めてkの全ての値を順次試す( 例えば、k=lmax−lavgで開始して最大フローを計算する);そして、成功し なかった場合は成功するまで又はk(k=1)なる最終値が不成功に試されるま でkを低下させる。また、“二進サーチ”を実行することもでき、ここではkは 間隔の略中間に選択される。もし成功した場合は該間隔の上側半分で繰り返 され、さもなければ該間隔の下側半分で繰り返される。斯かる処理は、kの値に 到達するまで繰り返される。 本発明によるシステムの一実施例においては、前述した最大フロー問題に基づ くアルゴリズムを解くことにより得られるのと同じ結果が、反復手順を実行する スケジューラ170により達成され、これが第5図に示されている。前述と同様 に、最初のステップ510は、当該群のブロックの各々に対して予備的な記憶ユ ニットを選択し、この予備的に選択された記憶ユニットに対応して担体アクセス 要求を割り当てることにより初期割り当てを実行することである。この初期割り 当てに続いて、スケジューラ170は反復手順を開始し、該手順においては担体 アクセス要求を最大負荷を持つ記憶ユニットからlmax−1より少ない負荷を持 つ記憶ユニットへ再割り当てする試みがなされる。該再割り当ては或る記憶担体 から他の記憶ユニットへの直接的なものでもよいが、一連の再割り当ても起こり 得る。ステップ520においては、スケジューラ170は、siへの負荷が複数 の記憶ユニットの最大負荷lmaxに等しいような負荷を持つ記憶ユニットsiを選 択する。該負荷は現在割り当てられている担体アクセス要求からの結果である。 1以上の記憶ユニットが最大負荷を持つ可能性があることが分かるであろう。も しそうなら、これらのうちの何れか(例えば、これらのうちの最初のもの)を選 択することができる。ステップ530においては、スケジューラは、siからlm ax −1未満の負荷を持つ別の記憶ユニットsjへの経路が存在するか否かを判断 する。該経路を介して1つの読取要求をsiからsjへ移動することが意図され、 これによりsiへの負荷を1つ減らし、sjの負荷を1つ増やす。改善を得るには 、sjへの結果としての負荷がlmax未満でなければならず、これはsjの初期負 荷がlmax−1未満でなければならないことを意味する。上記経路に沿って読取 要求を移動することができるように、該経路はsi=sp1及びsj=spLであるよ うな一連の記憶ユニットsp1,sp2,…,spLにより形成され、ここで各対spk,sp(k+l) に対して担体アクセス要求がspkかsp(k+l)に再割り当てされることがで きる(kは1からL−1の範囲である)。このような経路が存在するか 否かの判断には、如何なる好適なアルゴリズムも使用することができる。一例と して、記憶ユニットs1ないしs3(ノードn1ないしn3により表されている)に 関して第4図に図示したようなグラフを形成することができ、該グラフを介して ツリー検索を実行することができる。経路が存在した場合は、ステップ540に おいてスケジューラ170は、1からL−1のkに対して担体アクセス要求をspk からsp(k+1)に再割り当てする。次に、該手順はステップ520において再開 される。その時点で、siの負荷は1だけ低下されている。他の記憶ユニットが 依然としてsiが前に有していたのと同様の最大負荷を有している場合は、これ らユニットのうちの1つがステップ520において選択される。siが上記最大 負荷を有する唯一の記憶ユニット(又は最後の記憶ユニット)であった場合は、 これは自動的に当該システムの最大負荷を1だけ低下させたことになるであろう 。結果として、前よりは1だけ低下しているが、siは今や再び最大負荷を有す る(通常、幾つかの他の記憶ユニットも該最大負荷を有する)ことになる。所望 なら、この処理は繰り返される。好ましくは、この処理は(当該スケジューラ又 は該スケジューラを実行するシステムが十分な余裕時間を有しているなら)バッ クグラウンドで実行される。該処理の如何なる繰り返しも、最大負荷を有する記 憶ユニットに対して負荷を低下させるような経路を見つけることができない場合 は、終了される(及び後に再開される)。 3つのアルゴリズム、即ち線形割り当て(Linear Assignment;LA)、線形再割 り当て(Linear Reassignment;LR)及び最大フロー割り当て(Maximum Flow Ass ignment;MFA)がシミュレーションされた。m=5〜30個のディスクに関して (5のステップで)、シミュレーションが実行され、ここで更に活動ストリーム の数が、ストリームの数をディスクの数で割った値が5〜30(5のステップで )の範囲となるように、変化された。従って、当該システムにおける活動ストリ ームの数は25〜900の範囲である。下記の表は、該シミュレーションの1,00 0,000回の掃引に関する結果を示している。全ブロックが完全に二重化され、各 掃引においてデータブロックが各活動ストリームに対して取り込まれ、全スト リームが最大レートで連続的に消費される最悪状況の筋書きを反映した。この表 に示される3つの結果の各群のうち、上の結果はLAアルゴリズムに関係し、真 ん中の結果はLRアルゴリズムに関係し、下の結果はMFAアルゴリズムに関係 するものである。各結果は最大の観測された負荷を示し、ここで該最大負荷が観 測された回数が括弧内に示されている。シミュレーションの簡素化の理由で、こ れらシミュレーションはディスクが同期的に動作されるシステムに関して実施さ れた。同様に良好な結果を、該システムの非同期構成に関しても達成することが できる。 これらシミュレーションは、比較的単純なLRアルゴリズムで以て、最大負荷が 観測される回数はMFAアルゴリズムの場合よりも多いが、殆ど全ての状況にお いてMFAアルゴリズム(該アルゴリズムは達成可能な最良の負荷バランスを提 供する)で得られるのと同様の最大負荷を伴うような良好な結果が達成され得る ことを示している。また、これらシミュレーションは、ブロックを完全に二重化 すると共にこれらブロックをランダムに記憶することにより、特にLR及びMF Aアルゴリズムの場台に、殆どのシミュレーションされた状況に対して、下限で ある平均負荷より3ないし10%だけしか高くないような最大負荷を達成するこ とができることを示している。かくして、達成することができるバランスは極め て良好である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),JP 【要約の続き】 に供給する。

Claims (1)

  1. 【特許請求の範囲】 1.オーディオデータ及び/又はビデオデータのようなデータのブロックを記憶 媒体から取り出すと共にこれらブロックを複数のデータストリームの形でユー ザに供給し、前記記憶媒体が複数の記録担体型の記憶ユニットを有し、前記ブ ロックが少なくとも1つのデータ単位を有し、ここで、データ単位は前記記憶 ユニットの1つに記憶されるものとするようなシステムであって、該システム が、 前記記憶ユニットの各々に対して担体アクセス要求のバッチを、当該記憶ユ ニットの記録担体に対する該記憶ユニットの読取ヘッドの単一の相対移動によ り対応するデータ単位のバッチを読み取ることにより処理する読取器であって 、前記データ単位のバッチの各単位が前記担体アクセス要求のバッチにおける 担体アクセス要求の1つに関連付けられているような読取器と、 スケジューラと、 を有し、前記スケジューラは前記データストリーム用のデータブロックの前記 記憶ユニットからの読み取りを、 各ブロックの少なくとも1つのデータ単位に関して該データ単位が何の記憶 ユニットに記憶されているかを判定すると共に、該データ単位と前記判定され た記憶ユニットとに関連付けられた担体アクセス要求を読取待ち行列に入力し 、 前記複数の記憶ユニットの各々に関して当該記憶ユニットに関連する担体ア クセス要求のバッチを前記読取待ち行列から巡回的に取り出すと共に、これら バッチを前記読取器に送出する、 ことにより制御するようなシステムにおいて、 前記スケジューラが、前記記憶ユニットの各々に対する前記巡回的な取り出 しを、各個別の記憶ユニットに関し当該記憶ユニット用の担体アクセス要求の バッチを、前記読取器が該記憶ユニット用の担体アクセス要求の以前のバッチ に関するデータ単位の読み取りを略完了したことに応答して、前記読取器に送 出することにより、非同期的に実行することを特徴とするシステム。 2.請求項1に記載のシステムにおいて、前記読取待ち行列が前記複数の記憶ユ ニットの各々に関して対応する読取副待ち行列を有し、前記スケジューラが、 担体アクセス要求を、或る記憶ユニット用の当該担体アクセス要求を該記憶 ユニットに対応する読取副待ち行列に入力することにより該記憶ユニットに関 連付け、 或る記憶ユニットに関する担体アクセス要求のバッチを、該記憶ユニットに 対応する副待ち行列から取り出す、 ことを特徴とするシステム。 3.請求項1に記載のシステムにおいて、所定のブロックの選択組がNなる複数 の対応するデータ単位を有し、ここで、各データ単位は異なる記憶ユニットに 記憶され、前記ブロックはM個までの対応するデータ単位の複数の異なる群か ら再生することができ(1≦M<N)、これら群は前記ブロックに関連付けら れ、データ単位の前記群の各々は当該群のデータ単位を記憶する記憶ユニット の群と1対1の対応関係を有し、前記スケジューラは前記ブロックの選択組に おけるブロックの読み取りを、 該ブロックに関連する記憶ユニットの複数の群から、記憶ユニットの群を、 前記記憶ユニットの負荷がバランスするように選択し、 この選択された群の記憶ユニットの各々に関して、当該記憶ユニットと該記 憶ユニットに記憶されたブロックのデータ単位とに関連付けられた担体アクセ ス要求を前記読取待ち行列に入力する、 ことにより制御することを特徴とするシステム。 4.請求項3に記載のシステムにおいて、前記所定のブロックの選択組における 他の選択組に関して、対応するデータ単位は各々完全なブロックを有し(N≧ 2;M=1)、同一のブロックを記憶する記憶ユニットが前記複数の記憶ユニ ットから実質的にランダムに選択されていることを特徴とするシステム。 5.請求項3に記載のシステムにおいて、前記スケジューラは、データストリー ムのためのブロックを取り込む要求に応答して、当該ブロックに対応する前記 複数の群の記憶ユニットのうちの何れがその時点で前記読取待ち行列内に既に ある担体アクセス要求の結果として最低の負荷を有しているかを判定すること により記憶ユニットの群を選択することを特徴とするシステム。 6.請求項3に記載のシステムにおいて、前記スケジューラが巡回的に、 次のサイクルにおいて読み取られるべきブロックの群を判定し、 該群のブロックに対して、前記読取待ち行列内に存在し且つ前記群のブロッ クに関連付けられた担体アクセス要求の結果としての前記複数の記憶ユニット の負荷がバランスされるように、記憶ユニットの群の選択を実施する、 ことにより前記複数の記憶ユニットの負荷をバランスさせること特徴とするシ ステム。 7.請求項6に記載のシステムにおいて、前記スケジューラが、 前記ブロックの群のブロックを順次処理し、 各ブロックに対して、前記ブロックの群のブロックのために前記読取待ち行 列内に既に入力されている担体アクセス要求の結果としてその時点で最低の負 荷を有している記憶ユニットの群を当該ブロックに関連する記憶ユニットの複 数の群から選択する、 ことにより記憶ユニットの選択を実施することを特徴とするシステム。 8.請求項3に記載のシステムにおいて、前記スケジューラが、 前記読取待ち行列内の担体アクセス要求の結果としての前記記憶ユニットの 負荷バランスを改善することが可能であるかを判定し、 もし可能であるなら、少なくとも1つのブロックに関して、 当該ブロックに対して選択された記憶ユニットの群の記憶ユニットの各々 に関して担体アクセス要求を前記読取待ち行列から削除し、 当該ブロックに関連する記憶ユニットの複数の群から、その時点で最低の 負荷を持つ記憶ユニットの群を再選択し、 この選択された群の記憶ユニットの各々に関して、当該記憶ユニットと該 記憶ユニットに記憶されたブロックのデータ単位とに関連付けられた担体ア クセス要求を前記読取待ち行列に入力する、 ことにより前記複数の記憶ユニットの負荷をバランスさせることを特徴とする システム。 9.請求項8に記載のシステムにおいて、前記スケジューラが、前記負荷バラン スを改善することが可能であるかを判定し、もし可能であるなら、 siの負荷が前記複数の記憶ユニットの最大負荷lmaxに等しいような記憶ユ ニットsiを選択し、ここで、記憶ユニットの負荷は当該記憶ユニットに目下 関連する担体アクセス要求の結果であるものとし、 siからlmax−1未満の負荷を持つ記憶ユニットsjへの経路が存在するか 否かを判定し、ここで、前記経路はsi=sp1及びsj=spLとした場合一連の 記憶ユニットsp1,sp2,…,spLにより形成され、且つ、kがlからL−1 までの範囲である場合に各対spk,sp(k+l)に対して担体アクセス要求がspk の代わりにsp(k+1)に再関連付けされることができるものとし、 経路が存在する場合は、1からL−1までの範囲のkに関して、担体アクセ ス要求をspkの代わりにsp(k+1)に再関連付けさせる、 ことにより担体アクセス要求を再関連付けすることを特徴とするシステム。
JP10529413A 1997-05-26 1998-04-20 ストリームサーバにおいてデータを取り出すシステム Ceased JP2000515706A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP97201590.3 1997-05-26
EP97201590 1997-05-26
EP97203621 1997-11-20
EP97203621.4 1997-11-20
PCT/IB1998/000577 WO1998054646A2 (en) 1997-05-26 1998-04-20 System for retrieving data in a stream server

Publications (1)

Publication Number Publication Date
JP2000515706A true JP2000515706A (ja) 2000-11-21

Family

ID=26146524

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10529413A Ceased JP2000515706A (ja) 1997-05-26 1998-04-20 ストリームサーバにおいてデータを取り出すシステム

Country Status (5)

Country Link
US (1) US6061732A (ja)
EP (1) EP0916118B1 (ja)
JP (1) JP2000515706A (ja)
DE (1) DE69810250T2 (ja)
WO (1) WO1998054646A2 (ja)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4151991B2 (ja) * 1997-05-26 2008-09-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビデオサーバにおいてデータを取り出すシステム
JP2001502458A (ja) * 1997-07-02 2001-02-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データストリーム供給システム
US6374336B1 (en) 1997-12-24 2002-04-16 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6415373B1 (en) * 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
US6621834B1 (en) * 1999-11-05 2003-09-16 Raindance Communications, Inc. System and method for voice transmission over network protocols
US6535909B1 (en) * 1999-11-18 2003-03-18 Contigo Software, Inc. System and method for record and playback of collaborative Web browsing session
US7349944B2 (en) * 1999-11-18 2008-03-25 Intercall, Inc. System and method for record and playback of collaborative communications session
US7328239B1 (en) 2000-03-01 2008-02-05 Intercall, Inc. Method and apparatus for automatically data streaming a multiparty conference session
US20060173847A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143199A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143237A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
JP2003536329A (ja) * 2000-06-02 2003-12-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 記憶媒体からブロックを読み出すための方法及びシステム
JP3860394B2 (ja) * 2000-06-20 2006-12-20 株式会社リコー 情報再生方法及び情報再生装置
AU2001267581A1 (en) * 2000-07-15 2002-01-30 Filippo Costanzo Audio-video data switching and viewing system
US7716358B2 (en) 2000-09-12 2010-05-11 Wag Acquisition, Llc Streaming media buffering system
US8595372B2 (en) * 2000-09-12 2013-11-26 Wag Acquisition, Llc Streaming media buffering system
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
WO2002045372A2 (en) * 2000-11-29 2002-06-06 British Telecommunications Public Limited Company Transmitting and receiving real-time data
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7143433B1 (en) 2000-12-27 2006-11-28 Infovalve Computing Inc. Video distribution system using dynamic segmenting of video data files
US7246369B1 (en) 2000-12-27 2007-07-17 Info Valve Computing, Inc. Broadband video distribution system using segments
EP1428357A1 (en) * 2001-09-21 2004-06-16 British Telecommunications Public Limited Company Data communications method and system using receiving buffer size to calculate transmission rate for congestion control
AU2002365821A1 (en) * 2001-11-30 2003-06-17 British Telecommunications Public Limited Company Data transmission
US6925499B1 (en) * 2001-12-19 2005-08-02 Info Value Computing, Inc. Video distribution system using disk load balancing by file copying
US7039784B1 (en) * 2001-12-20 2006-05-02 Info Value Computing Inc. Video distribution system using dynamic disk load balancing with variable sub-segmenting
US7155475B2 (en) * 2002-02-15 2006-12-26 Sony Corporation System, method, and computer program product for media publishing request processing
EP1359722A1 (en) * 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
DE60314106T2 (de) * 2002-03-27 2008-01-24 British Telecommunications Public Ltd. Co. Datenstruktur für ein datenübertragungssystem
WO2004053676A2 (en) * 2002-12-11 2004-06-24 Koninklijke Philips Electronics N.V. Methods and apparatus for improving teh breathing of disk scheduling alogorithms
EP1593045A4 (en) 2003-02-10 2007-08-08 Raindance Comm Inc METHOD AND APPARATUS TO ENSURE EQUAL CONTROL IN A MULTIMEDIA COLLABORATION SESSION
US7529798B2 (en) 2003-03-18 2009-05-05 Intercall, Inc. System and method for record and playback of collaborative web browsing session
GB0306296D0 (en) * 2003-03-19 2003-04-23 British Telecomm Data transmission
US7627506B2 (en) * 2003-07-10 2009-12-01 International Business Machines Corporation Method of providing metered capacity of temporary computer resources
US8135795B2 (en) * 2003-04-03 2012-03-13 International Business Machines Corporation Method to provide on-demand resource access
US7908413B2 (en) 2003-07-15 2011-03-15 International Business Machines Corporation Data allocation in a distributed storage system
US7493488B2 (en) 2003-07-24 2009-02-17 International Business Machines Corporation Method to disable on/off capacity in demand
US7877754B2 (en) * 2003-08-21 2011-01-25 International Business Machines Corporation Methods, systems, and media to expand resources available to a logical partition
US7702940B2 (en) * 2003-12-03 2010-04-20 Koninklijke Philips Electronics N.V. Power saving method and system
US8074223B2 (en) * 2005-01-31 2011-12-06 International Business Machines Corporation Permanently activating resources based on previous temporary resource usage
US7328315B2 (en) * 2005-02-03 2008-02-05 International Business Machines Corporation System and method for managing mirrored memory transactions and error recovery
US20060218277A1 (en) * 2005-03-24 2006-09-28 International Business Machines Corporation Activating on-demand computer resources
US7945416B2 (en) * 2006-04-12 2011-05-17 Ati Technologies, Ulc Software or hardware test apparatus and method
US8024518B1 (en) * 2007-03-02 2011-09-20 Netapp, Inc. Optimizing reads for verification of a mirrored file system
US8799535B2 (en) 2008-01-11 2014-08-05 Akamai Technologies, Inc. Storage of data utilizing scheduling queue locations associated with different data rates
WO2009089386A2 (en) * 2008-01-11 2009-07-16 Verivue, Inc. Asynchronous and distributed storage of data
US8364892B2 (en) 2008-01-11 2013-01-29 Verivue, Inc. Asynchronous and distributed storage of data
US8510370B2 (en) * 2008-02-26 2013-08-13 Avid Technology, Inc. Array-based distributed storage system with parity
US8375137B2 (en) * 2008-07-22 2013-02-12 Control4 Corporation System and method for streaming audio using a send queue
US8750315B2 (en) 2009-01-23 2014-06-10 Akamai Technologies, Inc. Efficiently storing transport streams
US9565397B2 (en) 2009-02-26 2017-02-07 Akamai Technologies, Inc. Deterministically skewing transmission of content streams
US9906757B2 (en) 2009-02-26 2018-02-27 Akamai Technologies, Inc. Deterministically skewing synchronized events for content streams
US8650602B2 (en) 2009-02-27 2014-02-11 Akamai Technologies, Inc. Input queued content switching using a playlist
US8862733B2 (en) * 2010-07-30 2014-10-14 Verizon Patent And Licensing Inc. User-based prioritization for content transcoding
JP2012226822A (ja) * 2011-04-15 2012-11-15 Samsung Electronics Co Ltd 不揮発性メモリ装置
KR101818209B1 (ko) 2011-04-15 2018-01-16 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
CN102866920B (zh) * 2012-08-02 2016-05-11 杭州海康威视数字技术股份有限公司 主从结构分布式视频处理系统及其调度方法
US9521176B2 (en) 2014-05-21 2016-12-13 Sony Corporation System, method, and computer program product for media publishing request processing
CN108228079B (zh) * 2016-12-21 2021-01-22 伊姆西Ip控股有限责任公司 存储管理方法和设备
US11210173B2 (en) * 2018-05-09 2021-12-28 Microsoft Technology Licensing, Llc Fault tolerant device upgrade

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972396A (en) * 1988-10-24 1990-11-20 Honeywell Inc. Multiple independently positionable recording-reading head disk system
US5333299A (en) * 1991-12-31 1994-07-26 International Business Machines Corporation Synchronization techniques for multimedia data streams
JP2950432B2 (ja) * 1994-03-16 1999-09-20 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 複数データ・ストリームおよび実時間タスクの同期およびスケジューリングの方法および装置
US5757415A (en) * 1994-05-26 1998-05-26 Sony Corporation On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means
US5606359A (en) * 1994-06-30 1997-02-25 Hewlett-Packard Company Video on demand system with multiple data sources configured to provide vcr-like services
US5761417A (en) * 1994-09-08 1998-06-02 International Business Machines Corporation Video data streamer having scheduler for scheduling read request for individual data buffers associated with output ports of communication node to one storage node
WO1997001841A2 (en) * 1995-06-29 1997-01-16 Philips Electronics N.V. Method of and system for interleaving real-time files
TW335480B (en) * 1995-09-29 1998-07-01 Matsushita Electric Ind Co Ltd Method and apparatus for encoding a bistream for multi-angle connection
US5933603A (en) * 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
DE69610552T2 (de) * 1995-12-01 2001-05-31 Koninkl Philips Electronics Nv Datenleseverfahren und -system für eine anzahl von verwendern
US5926649A (en) * 1996-10-23 1999-07-20 Industrial Technology Research Institute Media server for storage and retrieval of voluminous multimedia data

Also Published As

Publication number Publication date
DE69810250T2 (de) 2003-10-09
EP0916118B1 (en) 2002-12-18
WO1998054646A3 (en) 1999-03-04
EP0916118A2 (en) 1999-05-19
US6061732A (en) 2000-05-09
DE69810250D1 (de) 2003-01-30
WO1998054646A2 (en) 1998-12-03

Similar Documents

Publication Publication Date Title
JP2000515706A (ja) ストリームサーバにおいてデータを取り出すシステム
CA2178376C (en) Video data retrieval method for use in video server environments that use striped disks
CA2178359C (en) Apparatus and method for scheduling and rescheduling incoming requests
US6233607B1 (en) Modular storage server architecture with dynamic data management
US6138221A (en) Method and system for supplying streams of data having identical maximum consumption rate in a storage medium
JP4151991B2 (ja) ビデオサーバにおいてデータを取り出すシステム
Chen et al. A scalable video-on-demand service for the provision of VCR-like functions
Ghandeharizadeh et al. Design and implementation of scalable continuous media servers
US6205525B1 (en) System for supplying data steams
US6643083B2 (en) Method and system for retrieving blocks of data from a storage medium
US6477541B1 (en) Multimedia server
US5737577A (en) Complementary block storage for breater minimumdata transfer rate
Reisslein et al. Striping for interactive video: Is it worth it?
US6446162B1 (en) Storage system
US20060167959A1 (en) Storing programs on disk for multiple-user retrieval
KR20050088427A (ko) 디스크 스케쥴링 알고리즘의 브리딩을 개선시키는 방법 및장치
Abram-Profeta et al. A practical approach to resource allocation in video-on-demand servers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20071003

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071127