JPH1093924A - System and method for distributing digital data on demand - Google Patents

System and method for distributing digital data on demand

Info

Publication number
JPH1093924A
JPH1093924A JP9215258A JP21525897A JPH1093924A JP H1093924 A JPH1093924 A JP H1093924A JP 9215258 A JP9215258 A JP 9215258A JP 21525897 A JP21525897 A JP 21525897A JP H1093924 A JPH1093924 A JP H1093924A
Authority
JP
Japan
Prior art keywords
video
data
storage
module
thread
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.)
Granted
Application number
JP9215258A
Other languages
Japanese (ja)
Other versions
JP3560211B2 (en
Inventor
Wan Pon-Shen
ポン−シェン・ワン
Suu Chin-San
チン−サン・スー
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.)
SHINEKKUS INF TECHNOL Inc
Original Assignee
SHINEKKUS INF TECHNOL Inc
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 SHINEKKUS INF TECHNOL Inc filed Critical SHINEKKUS INF TECHNOL Inc
Publication of JPH1093924A publication Critical patent/JPH1093924A/en
Application granted granted Critical
Publication of JP3560211B2 publication Critical patent/JP3560211B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications
    • H04N7/17336Handling of requests in head-ends

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Bus Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an inexpensive system which can be adjusted to various conditions and which can be extended in accordance with the increase of demands by processing a command from a client, scheduling the reproduction of a video stream, managing a video file structure and controlling the flow of video data to distribution modules by respective central control modules. SOLUTION: A video server 105 is provided with the central control modules 110, the distribution modules 120 and a storage module 130. The respective central control modules 110 receive and process a video control command from the client 101. The central control modules 110 execute a multi-task processing by using a program code stored in DRAM 232 connected to CPU 112. The program code contains a multi-processing thread executed by CPU 112 and the multi-processing thread reproduces the multiple video streams by the demand by the client 101 and execute the various control commands.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、一般にリアルタイ
ムサーバシステム及びプロセスに関し、特に、クライア
ントロケーションにビデオストリームを分配するシステ
ム及びプロセスに関する。
FIELD OF THE INVENTION The present invention relates generally to real-time server systems and processes, and more particularly, to systems and processes for distributing video streams to client locations.

【0002】[0002]

【従来の技術】データの記憶、読み出し及び圧縮技術の
改善に伴い、一般にはリアルタイムサーバシステムの使
用が、特にビデオオンデマンドシステムの使用が、広く
普及してきている。ビデオオンデマンド用途には、歓待
施設(即ち、ホテル、モーテル、コンドミニアム、及び
病院)、カラオケ(一般に音声記録の再生を伴うもので
あり、画像情報の再生を伴うものもある)及びインフォ
メーションセンターにおけるコンテンツ(即ち内容)の
分配が含まれる。ビデオオンデマンドシステムは、選択
されたビデオファイルを記憶し(一般に各ビデオファイ
ルは映画、簡単な情報表示、又は他の種類のビデオコン
テンツに相当する)、ユーザによる制御の下で選択され
たビデオファイルを読み出す(即ち再生する)。従っ
て、ビデオオンデマンドシステムを使用する場合、一人
又は複数のユーザは、クライアントネットワークを介し
てビデオファイルを選択しアクセス(即ち再生)する。更
に、従来のビデオオンデマンドシステムは、一般に、再
生、停止、一時停止、巻戻し、及び早送り等の従来のビ
デオカセットレコーダ(VCR)に見られるような様々
な制御機能をユーザに提供する。ここで、「ビデオ」と
いう用語は、音声部分及び画像部分を有するコンテン
ツ、又は音声のみのコンテンツ、又は画像のみのコンテ
ンツ、又はその他の種類のディジタルコンテンツを含む
ものである、ということが理解されよう。
2. Description of the Related Art With the improvement of data storage, retrieval and compression techniques, the use of real-time server systems, in particular the use of video-on-demand systems, has become widespread. Video-on-demand applications include hospitality facilities (ie, hotels, motels, condominiums, and hospitals), karaoke (which generally involves the playback of audio recordings, and some that involve the playback of image information), and content in information centers. (Ie, content) distribution. Video-on-demand systems store selected video files (generally each video file corresponds to a movie, brief information display, or other type of video content), and the selected video file under user control. Is read out (that is, reproduced). Thus, when using a video-on-demand system, one or more users select and access (ie, play) a video file via a client network. In addition, conventional video-on-demand systems generally provide the user with various control functions such as play, stop, pause, rewind, and fast-forward, such as those found in conventional video cassette recorders (VCRs). Here, it will be understood that the term "video" includes content having audio and image portions, or audio-only content, or image-only content, or other types of digital content.

【0003】[0003]

【発明が解決しようとする課題】ビデオオンデマンドシ
ステムに関するチャネル要件(即ち、サーバにより分配
されるビデオストリームの数)は、各々の特定のビデオ
オンデマンドシステムによって異なる。例えば、大きな
ホテルは、小さなホテルよりも多数のチャネルを必要と
し、インフォメーションセンターは、そのインフォメー
ションセンターの場所及び提供する情報の種類に基づ
き、サービス対象となるクライアントの数が多かったり
少なかったりする。更に、ビデオオンデマンドシステム
は、始終大きなチャネル容量が要求される場所に設置さ
れる場合がある。例えば、歓待施設(即ち、ホテル、モ
ーテル、コンドミニアム、及び病院)に設置されたシス
テムは、初期は少数の部屋または装置に対してサービス
を行うことになるが、設備のサイズが大きくなると、ま
たは該サービスに気づいて消費者が増大すると、システ
ムの需要が増大することになる。この問題は、おそら
く、付加的なクライアントロケーションを提供するため
に必要とされる物理的なインフラを回避することができ
ないインフォメーションセンター等の用途においては更
に深刻なものとなる。
The channel requirements for a video on demand system (ie, the number of video streams distributed by a server) are different for each particular video on demand system. For example, large hotels require more channels than small hotels, and information centers may serve more or fewer clients based on the location of the information center and the type of information provided. In addition, video-on-demand systems may be installed wherever large channel capacity is required. For example, systems installed in hospitality facilities (ie, hotels, motels, condominiums, and hospitals) initially serve a small number of rooms or devices, but as the size of the facilities increases, or As consumers become aware of the service, the demand for the system will increase. This problem is likely to be even more acute in applications such as information centers where the physical infrastructure required to provide additional client locations cannot be avoided.

【0004】更に、ビデオオンデマンドシステムのビデ
オ記憶要件は、特定の用途によって異なるものとなる。
例えば、歓待施設は、長編ビデオ映画を多数の選択を提
供することを所望し、従って、かなり大容量の記憶要件
を有することになる。一方、インフォメーションセンタ
ーは、それよりもはるかに小さな記憶要件を有する傾向
にあり、情報コンテンツが長編映画と比較して小さい場
合には特にそうである。
[0004] In addition, the video storage requirements of video-on-demand systems will vary with the particular application.
For example, a hospitality facility would like to offer a large selection of feature-length video movies, and thus would have a fairly large storage requirement. Information centers, on the other hand, tend to have much smaller storage requirements, especially when the information content is small compared to feature films.

【0005】従来の多くのビデオオンデマンドシステム
は一定の高いコストアーキテクチャを有するものであ
る。特に、従来の幾つかのビデオオンデマンドシステム
は、多数のビデオストリームのリアルタイム分配を行う
ために、ハイエンドワークステーション又は特に高速の
コンピュータを使用している。その他の従来のビデオオ
ンデマンドシステムでは、多数のビデオストリームを分
配するための処理要求に合わせるために、イベントのマ
ルチタスク処理用の多数のプロセッサを備えたコンピュ
ータを用いている。従来のビデオオンデマンドシステム
は、ハイエンドの及び/又は特殊なハードウェアを使用
するため、一般に極めて高コストのものとなる。かかる
従来のビデオオンデマンドシステムは、指定された最大
数のビデオストリームに適応するように一般に設計さ
れ、従って、その容量を越えて容易に拡張させることは
できない、という欠点を更に有するものである。
[0005] Many conventional video-on-demand systems have a high cost architecture. In particular, some conventional video-on-demand systems use high-end workstations or especially high-speed computers to perform real-time distribution of multiple video streams. Other conventional video-on-demand systems use computers with multiple processors for multi-task processing of events to meet the processing requirements for distributing multiple video streams. Conventional video-on-demand systems are generally very expensive due to the use of high-end and / or specialized hardware. Such conventional video-on-demand systems have the further disadvantage that they are generally designed to accommodate a specified maximum number of video streams, and therefore cannot be easily expanded beyond their capacity.

【0006】様々なビデオオンデマンド用途の異なる要
件に合わせて調整可能であり、個々のサーバロケーショ
ンの要求の増大に合わせて拡張可能である、単一の低コ
ストのビデオオンデマンドシステムを提供することが望
ましい。
[0006] To provide a single, low-cost video-on-demand system that can be tailored to the different requirements of various video-on-demand applications, and that can scale as the demands of individual server locations grow. Is desirable.

【0007】従って、多数のビデオストリームやその他
のディジタルデータストリームを並行して分配するため
の、調整可能及び拡張可能でコスト効率の良好な方法及
びプロセスが必要とされている。
[0007] Accordingly, there is a need for an adjustable, scalable, and cost-effective method and process for distributing multiple video streams and other digital data streams in parallel.

【0008】更に、一般にコンピュータシステムの重要
な部分、特にビデオオンデマンドシステムの重要な部分
は、その大容量記憶装置部分である。ビデオサーバ(ビ
デオオンデマンド)に関して言えば、大容量記憶装置部
分は、ビデオコンテンツを記憶する。別の種類のコンピ
ュータシステムの場合、大容量記憶装置部分は、他の種
類のディジタルコンテンツ、例えば、コンピュータプロ
グラム、データベース、画像、データ等を記憶する。特
定の用途がビデオオンデマンドシステムにおけるもので
あろうとそれ以外の種類のコンピュータシステムにおけ
るものであろうと、大容量記憶装置のサイズ、処理速
度、及びコストは、システムの仕様、性能、及びコスト
に影響を及ぼすものとなる。
In addition, an important part of a computer system in general, and in particular of a video-on-demand system, is its mass storage part. As for the video server (video on demand), the mass storage part stores the video content. For other types of computer systems, the mass storage portion stores other types of digital content, such as computer programs, databases, images, data, and the like. Whether the particular application is in a video-on-demand system or another type of computer system, the size, speed, and cost of mass storage devices affect system specifications, performance, and cost. Will be exerted.

【0009】従来の大容量記憶アーキテクチャには、安
価なディスクドライブからなる冗長ディスクドライブア
レイ(RAID)を用いるものがある。従来、かかるア
ーキテクチャは、典型的には、従来入手可能な高性能で
大きくて高コストのディスクドライブよりも小さくて安
価で信頼性のあるドライブからなるドライブアレイを用
いている。これらの従来のRAIDシステムの中にはス
トライピングを用いたものがあり、この場合には、デー
タオブジェクトが「複数のデータストライプ」へと分割
され、次いでそれらのデータストライプが、並列ディス
ク動作によって性能の改善を達成するためにディスクア
レイ上にインターリーブされる。また、各データストラ
イプは、ディスクアクセスを促進させるだけのサイズの
データブロックへと更に副分割される場合もある。一般
に、従来のディスクアレイは、信頼性を増大させるため
に、ミラー又はパリティベースの機構といった形の冗長
性を取り入れたものとなる。
Some conventional mass storage architectures use a redundant disk drive array (RAID) of inexpensive disk drives. Traditionally, such architectures typically use a drive array of smaller, cheaper, and more reliable drives than previously available high performance, large, and expensive disk drives. Some of these conventional RAID systems use striping, in which data objects are divided into "multiple data stripes" which are then stripped of performance by parallel disk operations. Interleaved on the disk array to achieve improvement. Also, each data stripe may be further subdivided into data blocks of a size sufficient to facilitate disk access. In general, conventional disk arrays will incorporate redundancy in the form of a mirror or a parity-based mechanism to increase reliability.

【0010】詳細には、従来のRAIDレベル1はミラ
ー処理を用いており、その他の一層高レベルの従来のR
AIDシステムは、エラー訂正用のパリティブロックを
用いている。従来、このパリティブロックは、1つのス
トライプスライスにわたる(即ち、ディスクアレイにわ
たる)データブロックの排他ORをとることによって生
成される。従来、各パリティブロックは、その関連する
データストライプとは異なるディスクに記憶される。従
って、ディスクの故障が生じた場合には、その故障した
ディスクに記憶されているデータブロックは、そのパリ
ティブロックを使用して(そのデータストライプスライ
ス内の他の全てのデータブロックに対応するパリティブ
ロックの排他OR演算を行うことにより)再構成され
る。
Specifically, conventional RAID level 1 uses mirror processing, and other higher level conventional R
The AID system uses a parity block for error correction. Conventionally, this parity block is generated by exclusive-ORing the data blocks across one stripe slice (ie, across the disk array). Conventionally, each parity block is stored on a different disk than its associated data stripe. Therefore, when a disk failure occurs, the data blocks stored in the failed disk use the parity blocks (parity blocks corresponding to all other data blocks in the data stripe slice). By performing an exclusive OR operation of

【0011】従って、N個のディスクを備えたRAID
システムにおいて、ディスクが故障した場合には、失わ
れた1つのデータブロックを再構成するために(N−1)
個のディスクから(N−1)個のデータブロックを読み出
す必要がある。(N−1)個のディスクについての読み出
し動作は、サブシステムのロード性能が許容するのであ
れば応答時間の低減のために並列に行われるが、かかる
故障発生時にはやはりかなり大きな負荷がロード性能に
課されることになる。システムのディスク数(N)が増え
るにつれ、故障モードにおける性能上の不利益が悪化す
る。従って、性能上の不利益を制限するために、ディス
ク数(N)を比較的小さい値に制限することが望ましい。
Therefore, a RAID with N disks
In the system, if a disk fails, (N-1) is used to reconstruct one lost data block.
It is necessary to read (N-1) data blocks from the disks. Read operations on (N-1) disks are performed in parallel to reduce the response time if the load performance of the subsystem permits, but when such a failure occurs, a considerable load is still applied to the load performance. Will be imposed. As the number of disks (N) in the system increases, the performance penalty in failure mode increases. Therefore, it is desirable to limit the number of disks (N) to a relatively small value in order to limit the performance disadvantage.

【0012】一方、RAIDシステムの高いスループッ
トを得るために、通常のデータアクセス時には多数(N
個)のディスクを有して、多数のディスク動作を並列に
行うことができるようにすることが望ましい。この側面
は、故障モードで少数のNが望ましいことと矛盾する。
従って、故障モードで許容不能な大きな性能上の不利益
を伴うことなくシステムの信頼性及び性能を向上させる
RAIDシステム及び方法が必要とされている。
On the other hand, in order to obtain a high throughput of the RAID system, a large number (N
It is desirable to have a number of disks so that multiple disk operations can be performed in parallel. This aspect is inconsistent with the desire for a small number of N in failure mode.
Accordingly, there is a need for a RAID system and method that improves system reliability and performance without significant unacceptable performance penalties in failure modes.

【0013】[0013]

【課題を解決するための手段】本発明によれば、従来の
低コストの構成要素を用いて多数のビデオストリームを
リアルタイムで分配する、調整可能で拡張可能なビデオ
サーバシステムが提供される。このシステムは、1つ又
は2つ以上の中央制御モジュール(CCM)と、1つ又
は2つ以上の分配モジュール(DM)と、1つ又は2つ
以上の記憶モジュール(SM)とを備えている。各中央
制御モジュールは、従来の2つのスモールコンピュータ
シリアルインターフェイス(SCSI)コントローラカ
ードを備えた従来のコンピュータであり、その各SCS
Iコントローラカードは、「開始(initiator)」モード
で動作して、1つ又は2つ以上の分配モジュール及び記
憶モジュールとのインターフェイスをとる。各中央制御
モジュールはまたローカルメモリを備えており、このロ
ーカルメモリは、分配モジュールへの分配に先立って記
憶モジュールから取り出されたデータを記憶するための
中間バッファメモリとして使用される。各中央制御モジ
ュールは更に、1つのユーザ(クライアント)または1
つのクライアントネットワークとの結合を行うための通
信インターフェイスを備えている。各中央制御モジュー
ルは、クライアントから受信したコマンドを処理し、多
数のビデオストリームの再生に関するスケジューリング
を行い、ビデオファイル構造を管理し、1つ又は複数の
分配モジュールへのビデオデータの流れを制御して、リ
アルタイム再生を確実にする。
SUMMARY OF THE INVENTION In accordance with the present invention, there is provided an adjustable and scalable video server system for distributing multiple video streams in real time using conventional low cost components. The system comprises one or more central control modules (CCM), one or more distribution modules (DM), and one or more storage modules (SM). . Each central control module is a conventional computer with two conventional small computer serial interface (SCSI) controller cards, each of its SCS
The I-controller card operates in an "initiator" mode to interface with one or more distribution modules and storage modules. Each central control module also comprises a local memory, which is used as an intermediate buffer memory for storing data retrieved from the storage module prior to distribution to the distribution module. Each central control module also has one user (client) or one
It has a communication interface for coupling with two client networks. Each central control module processes commands received from clients, schedules the playback of multiple video streams, manages video file structures, and controls the flow of video data to one or more distribution modules. Ensure real-time playback.

【0014】また、各分配モジュールは、「ターゲッ
ト」モードで動作する従来のSCSIコントローラカー
ドを備えた従来のコンピュータである。SCSIコント
ローラカードを備えていることに加え、各分配モジュー
ルは、クライアントへの分配に先立ってビデオストリー
ムの処理を行う1つ又は2つ以上の処理モジュールを備
えている。一実施例では、該処理モジュールはビデオデ
コーダであり、その各々は、ビデオデータストリームの
解凍のためのものである。この実施例の場合、該ビデオ
デコーダは、従来のMPEG−1又はMPEG−2デコ
ーダである。
Also, each distribution module is a conventional computer with a conventional SCSI controller card operating in "target" mode. In addition to having a SCSI controller card, each distribution module has one or more processing modules that process the video stream prior to distribution to the client. In one embodiment, the processing modules are video decoders, each of which is for decompression of a video data stream. In this embodiment, the video decoder is a conventional MPEG-1 or MPEG-2 decoder.

【0015】別の実施例では、該処理モジュールは、従
来のネットワークインターフェイスカードであり、該カ
ードは、ビデオデータストリームのフォーマッティング
や、イーサネット、ATM、又はPSTNネットワーク
等を介したクライアントへのビデオデータストリームの
供給を行うものである。更に、各分配モジュールは、分
配モジュール上での処理に先立ってビデオデータを記憶
するためのビデオバッファとして使用されるローカルメ
モリを備えている。
In another embodiment, the processing module is a conventional network interface card, which formats the video data stream and sends the video data stream to the client via an Ethernet, ATM, or PSTN network or the like. Supply of Further, each distribution module includes a local memory used as a video buffer for storing video data prior to processing on the distribution module.

【0016】各記憶モジュールは大容量記憶媒体であ
り、該大容量記憶媒体は、ビデオデータ等のディジタル
情報を記憶するよう構成されたものであり、標準的なS
CSIプロトコルを用いて中央制御モジュールによって
アクセスされる。各記憶モジュールは、例えば、ハード
ディスク、又はCD-ROMドライブ、又はハードディ
スク列(bank)、又はCD-ROM列、又はその他の種類
の大容量記憶媒体である。
Each of the storage modules is a large-capacity storage medium, and the large-capacity storage medium is configured to store digital information such as video data.
Accessed by the central control module using the CSI protocol. Each storage module is, for example, a hard disk, or a CD-ROM drive, or a bank of hard disks, or a bank of CD-ROMs, or another type of mass storage medium.

【0017】更に、本発明によれば、中央制御モジュー
ルは、ハイブリッドファイル管理スキームを用いて、デ
ータアクセス性能の向上及びメモリ利用の改善を達成す
る。該ハイブリッドファイル管理スキームは、中央制御
モジュール上で動作する従来のオペレーティングシステ
ムと、記憶装置に記憶されている未処理ビデオデータの
制御及びアクセスを直接行うための、従来のファイルマ
ネージャをバイパスするカスタマイズされたファイル管
理ソフトウェアとの両方を用いるものである。このハイ
ブリッドスキームは、未処理のビデオデータ並びにビデ
オ記憶マップに関する制御情報を管理するためにオペレ
ーティングシステムのファイル管理サービスを利用する
ビデオデータに対するアクセスタイムを最適化する。
Further, in accordance with the present invention, the central control module uses a hybrid file management scheme to achieve improved data access performance and improved memory utilization. The hybrid file management scheme is a customized operating system that runs on a central control module and bypasses a traditional file manager for direct control and access of raw video data stored in storage. File management software. This hybrid scheme optimizes the access time for video data that utilizes operating system file management services to manage raw video data as well as control information about the video storage map.

【0018】本発明の別の側面によれば、中央制御モジ
ュールは、優先順位法(prioritization method)を実施
して、サーバシステムにより生成される複数のビデオデ
ータストリームの間で、各記憶モジュールに含まれる記
憶装置のアクセスの優先順位付けを行う。複数のビデオ
データストリームによって複数の読み出し要求が生成さ
れる度に、優先順位法は、その読み出し要求(読み出し
メッセージ)が緊急のものか非緊急のものかを各読み出
し要求ごとに決定する。所定時間内に要求のサービスを
行えなかったことによりビデオデータストリームの再生
に問題が生じる場合には、該要求は緊急のものである。
また、同様の場合に問題が生じないのであれば、該要求
は非緊急のものである。好適には、メッセージが緊急で
あるか非緊急であるかは、ビデオデータストリームの現
在の状態によって決定される。例えば、ビデオデータス
トリームが現在一時停止されており、要求がその再生を
再開させるものである場合には、その要求は非緊急のも
のである。しかしながら、ビデオデータストリームが再
生状態にある場合の要求は緊急のものである。優先順位
法は、次いで、各緊急メッセージ毎の最終デッドライン
を計算する。優先順位法は、次いで、如何なる緊急メッ
セージもその最終デッドラインを逸することなく非緊急
の要求のサービスを行うのに十分な時間が存在するか否
かを判定する。該条件が満たされる場合には、システム
は非緊急の要求を取り扱い、該条件が満たされない場合
には、緊急の要求が次に処理される。
According to another aspect of the invention, the central control module implements a prioritization method to include in each storage module between the plurality of video data streams generated by the server system. Prioritize the access of the storage device to be accessed. Each time multiple read requests are generated by multiple video data streams, the priority method determines for each read request whether the read request (read message) is urgent or non-urgent. The request is urgent if the requested data cannot be serviced within a predetermined amount of time, causing a problem with the playback of the video data stream.
Also, if no problem occurs in the same case, the request is non-urgent. Preferably, whether the message is urgent or non-urgent is determined by the current state of the video data stream. For example, if the video data stream is currently paused and the request is to resume its playback, the request is non-urgent. However, the request when the video data stream is in the playing state is urgent. The priority method then calculates the final deadline for each urgent message. The priority method then determines if there is enough time to service any non-urgent requests without any urgent messages losing their final deadline. If the condition is met, the system handles the non-urgent request, and if the condition is not met, the urgent request is processed next.

【0019】本発明の別の側面によれば、サーバシステ
ム及び方法は、ディスクロード平衡化法を用いて、特定
のビデオデータストリームの再生の開始のスケジューリ
ングを行う。該ディスクロード平衡化法は、複数の時間
帯を規定する。ここで、好適には、該時間帯の数は記憶
装置の数に対応する。該ディスクロード平衡化法は、各
ビデオデータストリームを各時間帯に1つずつ割り当て
て、ビデオデータストリームの処理を分配する。該ディ
スクロード平衡化法は、かかる割り当てを、先ず、ビデ
オデータストリームを提供することになる記憶装置を識
別し、次いで、その記憶装置によりサービスされること
になる次に「利用可能な」時間帯を判定することにより
行う。更なるビデオデータストリームを扱う容量(帯域
幅)を有する場合には、該時間帯は「利用可能な」もの
とみなされる。該ディスクロード平衡化法は次いで、そ
の「利用可能な」時間帯を新規に開始されるビデオデー
タストリームに割り当てる。
According to another aspect of the invention, a server system and method uses a disk load balancing method to schedule the start of playback of a particular video data stream. The disk load balancing method defines a plurality of time zones. Here, preferably, the number of time periods corresponds to the number of storage devices. The disk load balancing method distributes the processing of the video data streams by allocating each video data stream one at a time. The disk load balancing method determines such an allocation by first identifying the storage device that will provide the video data stream, and then identifying the next “available” time period that will be serviced by that storage device. Is determined. The time period is considered "available" if it has the capacity (bandwidth) to handle additional video data streams. The disk load balancing method then assigns the "available" time period to the newly started video data stream.

【0020】本発明の更に別の側面によれば、サーバシ
ステム及び方法は、別個のディスクからなる冗長ディス
クアレイ(RAID)システム及び方法を用いてビデオ
オブジェクトの記憶を行う。該RAIDシステム及び方
法は、ビデオオブジェクトを複数のデータブロックへと
分割し、それらのデータブロックを、ストライピング処
理を用いて(ストライプ化された構成で)複数の記憶装
置にわたって(即ち、N個の記憶装置にわたって)記憶
する。該システム及び方法によれば、冗長ファクタ
(M)が選択される。該冗長ファクタMは、信頼性、及
びシステム動作中の故障モードでのサービス時間を決定
する。Mは、N未満の整数となるように選択される。本
発明のこの側面によれば、M個のデータブロックが記憶
される度に、エラー回復ブロックが計算される。好適に
は、該エラー回復ブロックは、該M個のデータブロック
について排他OR演算を行うことにより生成されたパリ
ティコードとなる。Mに比べてNが大きいと、ディスク
の故障に遭遇した際に、エラー回復処理が、冗長ファク
タMによって、必要とされる記憶装置のアクセスコール
の数に好適に制限される。一実施例では、エラー回復ブ
ロックは、データブロックとインターリーブされて記憶
されるが、それに関連するデータは、その記憶装置とは
異なる記憶装置に記憶される。かかる本発明の特徴は、
ビデオデータ以外のディジタルデータを記憶するための
システム及び方法に適用可能なものであり、また、サー
バシステム以外の記憶システムにも適用可能なものであ
る、ということが理解されよう。
In accordance with yet another aspect of the present invention, a server system and method for storing video objects using a redundant disk array (RAID) system and method of separate disks. The RAID system and method divides a video object into a plurality of data blocks and divides the data blocks using a striping process (in a striped configuration) across a plurality of storage devices (ie, N storage devices). (Across the device). According to the system and method, a redundancy factor (M) is selected. The redundancy factor M determines reliability and service time in failure mode during system operation. M is selected to be an integer less than N. According to this aspect of the invention, each time M data blocks are stored, an error recovery block is calculated. Preferably, the error recovery block is a parity code generated by performing an exclusive OR operation on the M data blocks. If N is greater than M, then in the event of a disk failure, the error recovery process is advantageously limited by the redundancy factor M to the number of storage access calls required. In one embodiment, the error recovery blocks are stored interleaved with the data blocks, but the associated data is stored on a different storage device. Such features of the present invention include:
It will be appreciated that the present invention is applicable to systems and methods for storing digital data other than video data, and is also applicable to storage systems other than server systems.

【0021】本発明の更に別の側面によれば、中央制御
モジュール、分配モジュール、及び記憶モジュールは、
システムの柔軟性及び拡張性を向上させるためにラック
マウント(rack mounted)システムにおけるラックマウン
ト(rack mounting)にもそれぞれ適用可能である。
According to yet another aspect of the invention, the central control module, distribution module, and storage module include:
In order to improve the flexibility and expandability of the system, the present invention is also applicable to rack mounting in a rack mounted system.

【0022】本明細書に記載の特徴及び利点は、その全
てを含むものではなく、当業者であれば、図面、発明の
詳細な説明及び特許請求の範囲を参照することにより、
更に多くの特徴及び利点が自明であろう。更に、本書で
使用する用語は、基本的に、読み易さ及び本発明の例示
を目的として選択されたものであって、本発明の要旨に
制限を加えるために選択されたものではなく、かかる本
発明の要旨は特許請求の範囲に基づいて決定されるべき
である、ということに留意されたい。
The features and advantages described herein are not all-inclusive, and those skilled in the art will be able to refer to the drawings, detailed description, and claims which follow.
Many more features and advantages will be apparent. Furthermore, the terms used in the specification are basically selected for the sake of readability and exemplification of the present invention, and are not selected for limiting the gist of the present invention. It should be noted that the gist of the present invention should be determined based on the claims.

【0023】[0023]

【発明の実施の形態】図1は、本発明によるビデオオン
デマンド(VOD)システム100を示すブロック図であ
る。VODシステム100は、制御入力ソース150及びビデ
オサーバ105を備えている。ビデオサーバ105は、1つ又
は2つ以上の中央制御モジュール110と、1つ又は2つ
以上の分配モジュール120と、1つ又は2つ以上の記憶
モジュール130とを備えている。該VODシステム100が
調整可能及び拡張可能なものであるため、特定用途で使
用される中央制御モジュール110、分配モジュール120、
及び記憶モジュール130の数は、分配すべきストリーム
の数や特定用途におけるビデオ記憶要件等のファクタに
よって決まる。一好適実施例では、ビデオサーバ105
は、1つの中央制御モジュール110と、1つの分配モジ
ュール120と、1つの記憶モジュール130とを備えてい
る。更に、調整性及びシステムの拡張性を促進させるた
めに、ビデオサーバ105は好適にはラックマウントシス
テムとする。この場合、各サブコンポーネント(中央制
御モジュール110、分配モジュール120、及び記憶モジュ
ール130)はラックマウント用に適応される。
FIG. 1 is a block diagram illustrating a video on demand (VOD) system 100 according to the present invention. The VOD system 100 includes a control input source 150 and a video server 105. The video server 105 includes one or more central control modules 110, one or more distribution modules 120, and one or more storage modules 130. Because the VOD system 100 is adjustable and scalable, the central control module 110, distribution module 120,
And the number of storage modules 130 depends on factors such as the number of streams to be distributed and the video storage requirements for the particular application. In one preferred embodiment, the video server 105
Has one central control module 110, one distribution module 120, and one storage module 130. Further, to facilitate adjustability and system scalability, video server 105 is preferably a rack mount system. In this case, each sub-component (central control module 110, distribution module 120, and storage module 130) is adapted for rack mounting.

【0024】制御入力ソース150は、記憶されているビ
デオ情報(ビデオデータ)の取り出し及び表示を制御す
るための制御信号を生成する任意の入力ソースである。
典型的な制御入力ソース150は、キーボード、遠隔制御
装置、マウス、完全なコンピュータシステム、又はビデ
オサーバ105に連結されたクライアントコンピュータの
ネットワークを備えるものとなる。本好適実施例では、
制御入力ソース150は、ビデオサーバ105に連結されたビ
デオクライアント101のネットワークである。各ビデオ
クライアント101は、ビデオ制御信号を生成するコンピ
ュータである。従って、ビデオクライアント101は、ビ
デオサーバ105に接続されたビデオ要求信号及び制御信
号を生成することによって、VODシステム100により
提供される複数のビデオのうちの1つのビデオの選択及
びその再生の制御を行うために使用される。ビデオクラ
イアント101は、好適にはイーサネットネットワークを
使用してビデオサーバ105に接続される。しかしなが
ら、本発明によれば、ビデオクライアント101をビデオ
サーバ105に接続する他の手段を使用することも可能で
ある、ということが理解されよう。例えば、ビデオクラ
イアント101は、ローカルエリアネットワーク、無線通
信リンク、光リンク、又は他の通信手段を使用してビデ
オサーバ105に接続することが可能である。
Control input source 150 is any input source that generates control signals for controlling the retrieval and display of stored video information (video data).
A typical control input source 150 would include a keyboard, a remote control, a mouse, a complete computer system, or a network of client computers coupled to the video server 105. In the preferred embodiment,
The control input source 150 is a network of video clients 101 coupled to the video server 105. Each video client 101 is a computer that generates a video control signal. Accordingly, the video client 101 generates a video request signal and a control signal connected to the video server 105, thereby selecting one of the videos provided by the VOD system 100 and controlling the reproduction thereof. Used to do. Video client 101 is connected to video server 105, preferably using an Ethernet network. However, it will be appreciated that other means of connecting the video client 101 to the video server 105 may be used in accordance with the present invention. For example, video client 101 can connect to video server 105 using a local area network, a wireless communication link, an optical link, or other communication means.

【0025】ここで再び図1を参照する。記憶モジュー
ル130は、1つ又は2つ以上の記憶装置131を備えてい
る。該記憶装置131の各々は、好適には、従来のハード
ディスクドライブ、CD-ROMドライブ、又はテープ
ドライブ等の大容量記憶装置である。この好適実施例で
は、記憶装置131は、Seagate, Inc.によって製造された
大容量(4〜9GByte)ディスクドライブである。記憶
モジュール130は、複数のビデオオブジェクト(ビデオ
シーケンス)を記憶する。一実施例では、ビデオオブジ
ェクトの各々は長編のビデオ映画である。別の実施例で
は、ビデオオブジェクトは別の形態のビデオコンテンツ
である。ここで、「ビデオ」という用語は、音声部分及
び画像部分を有するコンテンツ、又は音声のみのコンテ
ンツ、又は画像のみのコンテンツ、又はその他の種類の
ディジタルコンテンツを含むものである、ということが
理解されよう。従って、用語「ビデオ」は、ディジタル
音楽記録、音声記録、無声画像セグメント等も含むもの
である。
Referring again to FIG. The storage module 130 includes one or more storage devices 131. Each of the storage devices 131 is preferably a mass storage device such as a conventional hard disk drive, CD-ROM drive, or tape drive. In the preferred embodiment, storage device 131 is a high capacity (4-9 GByte) disk drive manufactured by Seagate, Inc. The storage module 130 stores a plurality of video objects (video sequences). In one embodiment, each of the video objects is a feature-length video movie. In another embodiment, the video object is another form of video content. Here, it will be understood that the term "video" includes content having audio and image portions, or audio-only content, or image-only content, or other types of digital content. Thus, the term "video" also includes digital music recordings, audio recordings, unvoiced image segments, and the like.

【0026】本発明の好適実施例は、「ストライピン
グ」を用いた本発明のRAID技術に従って各ビデオオ
ブジェクトを記憶するものであり、これについては後述
する。
The preferred embodiment of the present invention stores each video object in accordance with the RAID technique of the present invention using "striping", which will be described later.

【0027】ストライピングを用いて、各ビデオオブジ
ェクトが複数の「ビデオストライプ」へと分割され、そ
れら各ビデオストライプが異なる記憶装置131に記憶さ
れる。更に、各ビデオストライプが「データブロック」
と呼ばれる複数の128kbyteのデータチャンク(chunk:
塊)へと副分割される。
Using striping, each video object is divided into a plurality of "video stripes", each of which is stored in a different storage device 131. In addition, each video stripe is a "data block"
Multiple 128-kbyte data chunks (chunk:
Into a lump.

【0028】中央制御モジュール110は、重いマルチス
レッドのオペレーティングシステム(好適にはSun Micr
osystemsのオペレーティングシステムSOLARIS)をCP
U112(好適にはIntel Corporationにより製造されたPE
NTIUMプロセッサ)上で実行する高性能パーソナルコン
ピュータ用マザーボードである。該マザーボードは、AS
USTek Computer Inc.により製造されたものであり、MiT
AC Industrial Corporationにより製造されたラックマ
ウント式シャシにマウントされる。該マザーボードはま
た、SCSIコントローラ及びイーサネットコントロー
ラ等の周辺装置との接続のためのペリフェラルコントロ
ールインターフェイス(PCI)バスを備えている。
The central control module 110 includes a heavy multi-threaded operating system (preferably a Sun Micr
osystems operating system (SOLARIS) CP
U112 (preferably PE manufactured by Intel Corporation)
It is a high-performance personal computer motherboard that runs on the NTIUM processor. The motherboard is AS
MiT, manufactured by USTek Computer Inc.
Mounted on a rack-mounted chassis manufactured by AC Industrial Corporation. The motherboard also includes a peripheral control interface (PCI) bus for connection to peripheral devices such as SCSI controllers and Ethernet controllers.

【0029】各中央制御モジュール110は、中央制御モ
ジュール110と記憶モジュール130との間、及び中央制御
モジュール110と分配モジュール120との間との通信を促
進させるためにイニシエータ111,113を備えている。イ
ニシエータ111,113は、Adaptec, Inc.(Milpitas,Califo
rnia)により製造された従来のSCSIコントローラカ
ードであり、PCIバスを用いてCPU112に接続され
る。メモリバッファ114は、CPU112に直接接続された
ダイナミックランダムアクセスメモリ(DRAM232(図
2参照))内に割り当てられたメモリ空間である。好適
には、メモリバッファ114はそれぞれ128kbyteのメモリ
であり、従って、各メモリバッファ114は1データブロ
ック全体を記憶する大きさとなっている。
Each central control module 110 includes initiators 111 and 113 to facilitate communication between the central control module 110 and the storage module 130 and between the central control module 110 and the distribution module 120. Initiators 111 and 113 are licensed from Adaptec, Inc. (Milpitas, California
rnia) and is connected to the CPU 112 using a PCI bus. The memory buffer 114 is a memory space allocated in a dynamic random access memory (DRAM 232 (see FIG. 2)) directly connected to the CPU 112. Preferably, the memory buffers 114 are each 128 kbytes of memory, so each memory buffer 114 is sized to store an entire data block.

【0030】また、分配モジュール120は好適には、Tya
n Computer Corporationにより製造された高性能パーソ
ナルコンピュータ用マザーボードである。該マザーボー
ドは、MiTAC Industrial Corporationにより製造された
ラックマウント式シャシにマウントされる。該マザーボ
ードは更に、従来のペリフェラルコントロールインター
フェイス(PCI)バスを備えている。各分配モジュー
ル120は、ターゲット124、CPU125、複数のビデオプ
ロセッサ121、及びメモリバッファ126を備えている。C
PU125は、好適には、Intel Corporationにより製造さ
れたPENTIUMプロセッサである。ターゲット124は、Adva
nsys,Inc.(San Jose,California)により製造されたモデ
ルABP-940SCSIコントローラ等の従来の「ターゲッ
トモードが可能な」SCSIコントローラカードであ
り、PCIバスを用いてCPU125に接続される。ここ
で、「ターゲットモードが可能な」とは、イニシエータ
モードで動作しているSCSIコントローラからデータ
を受信するためにターゲットモードで動作するように適
応させることが可能なことを意味している。中央制御モ
ジュール110と分配モジュール120とのインターフェイス
をとるために従来のSCSIコントローラカードを使用
することにより、中央制御モジュール110が従来のディ
スクドライブに対して書込みを行っている際に、その中
央制御モジュール110が分配モジュール120にデータを書
き込むことが可能になり、これにより、システムのコス
ト及び複雑さが低減され、システムの信頼性が向上す
る。
Also, the distribution module 120 is preferably a Tya
n High performance personal computer motherboard manufactured by Computer Corporation. The motherboard is mounted on a rack mount chassis manufactured by MiTAC Industrial Corporation. The motherboard further includes a conventional peripheral control interface (PCI) bus. Each distribution module 120 includes a target 124, a CPU 125, a plurality of video processors 121, and a memory buffer 126. C
PU 125 is preferably a PENTIUM processor manufactured by Intel Corporation. Target 124 is Adva
A conventional "target mode capable" SCSI controller card, such as the model ABP-940 SCSI controller manufactured by nsys, Inc. (San Jose, California), which is connected to the CPU 125 using a PCI bus. Here, "target mode is possible" means that it can be adapted to operate in the target mode in order to receive data from the SCSI controller operating in the initiator mode. By using a conventional SCSI controller card to interface between the central control module 110 and the distribution module 120, when the central control module 110 is writing to a conventional disk drive, Allows 110 to write data to distribution module 120, which reduces system cost and complexity and increases system reliability.

【0031】ビデオプロセッサ121は、CPU125の制御
の下でメモリバッファ126から(ビデオストリームを形
成する)ビデオデータを受信し、次いで、クライアント
101に分配するために各ビデオストリームを処理する。
一好適実施例では、ビデオプロセッサ121は、Zoran Cor
poration(Santa Clara, California)により製造された
従来のMPEG−1デコーダやMatrox Electronic Syst
ems, LTD(Canada)により製造された従来のMPEG−2
デコーダ等の従来のモーションピクチャエキスパートグ
ループ(MPEG)デコーダである。MPEG−1デコ
ーダ又はMPEG−2デコーダの選択は、記憶モジュー
ル130に記憶されるビデオデータの圧縮に使用される圧
縮技術によって決定される。
Video processor 121 receives video data (forming a video stream) from memory buffer 126 under the control of CPU 125, and then
Process each video stream for distribution to 101.
In one preferred embodiment, the video processor 121 is a Zoran Cor
conventional MPEG-1 decoder and Matrox Electronic Syst manufactured by Poration (Santa Clara, California).
Conventional MPEG-2 manufactured by ems, LTD (Canada)
It is a conventional motion picture expert group (MPEG) decoder such as a decoder. The choice of an MPEG-1 or MPEG-2 decoder is determined by the compression technique used to compress the video data stored in the storage module 130.

【0032】本発明の一好適実施例は、分配モジュール
120に12個のビデオプロセッサ121を有している。好適に
は、各ビデオプロセッサ121が、それぞれ1つのビデオ
ストリームについて動作する。更に、該好適実施例で
は、各ビデオプロセッサ121の出力は、NTSC規格及
びPAL規格の何れにも互換性を有する(クライアント
101の)ビデオモニタに直接接続するためのNTSC/
PAL複合信号である。
One preferred embodiment of the present invention is a distribution module.
120 has 12 video processors 121. Preferably, each video processor 121 operates on one video stream each. Further, in the preferred embodiment, the output of each video processor 121 is compatible with both NTSC and PAL standards (client
101) NTSC / for direct connection to video monitor
This is a PAL composite signal.

【0033】別の実施例では、ビデオプロセッサ121は
MPEG解凍は行わないが、その代わりに他の種類の解
凍を行う。更に別の実施例では、ビデオプロセッサ121
は、イーサネット、ATM、PSTNネットワーク等の
ネットワークとのインターフェイスをとるように、又は
別のクライアント分配手段とのインターフェイスをとる
ように、ビデオストリームの処理を行う。これらの実施
例において、もし必要であれば、ビデオ解凍は、クライ
アントのロケーションにおいて分配モジュール120上
で、又はビデオストリーム経路に沿った別のポイントで
行われる。
In another embodiment, video processor 121 does not perform MPEG decompression, but instead performs other types of decompression. In yet another embodiment, the video processor 121
Performs video stream processing to interface with a network such as an Ethernet, ATM, or PSTN network, or to interface with another client distribution means. In these embodiments, if necessary, video decompression is performed on the distribution module 120 at the client's location or at another point along the video stream path.

【0034】中央制御モジュール110は、SCSIバス1
41により記憶モジュール130と接続される。同様に、中
央制御モジュール110は、SCSIバス142により各分配
モジュール120と接続される。該SCSI通信は、中央
制御モジュール110に配設されたイニシエータ111,113、
並びに記憶モジュール130及び分配モジュール120の一部
をなす対応するSCSIコントローラ(分配モジュール
120ではターゲット124、記憶モジュール130ではSCS
I回路(図示せず))によって操作される。記憶モジュ
ール130及び分配モジュール120上のSCSIコントロー
ラは、「ターゲット」モードで動作する。分配モジュー
ル120のSCSIインターフェイスは、コスト効率の良
いインターフェイス機構であり、これにより、各中央制
御モジュール110が、あたかもハードディスクドライブ
又はその他の従来のSCSI互換装置にデータを書き込
んでいるかのように分配モジュール120にデータを分配
することが可能になる。
The central control module 110 is provided with the SCSI bus 1
41 connects to the storage module 130. Similarly, the central control module 110 is connected to each distribution module 120 by a SCSI bus 142. The SCSI communication includes initiators 111 and 113 disposed in the central control module 110,
And a corresponding SCSI controller (partition module that forms part of the storage module 130 and the distribution module 120).
120 is the target 124, storage module 130 is the SCS
I circuit (not shown). The SCSI controllers on storage module 130 and distribution module 120 operate in a "target" mode. The SCSI interface of the distribution module 120 is a cost-effective interface mechanism whereby each central control module 110 writes data to the distribution module 120 as if it were writing data to a hard disk drive or other conventional SCSI compatible device. Data can be distributed to

【0035】本好適実施例では、記憶モジュール130と
の通信を行うために単一のイニシエータ113を使用した
が、別の実施例では、VODシステム100において一層
多数の記憶モジュール130が使用される場合のインター
フェイス要件を満たすように、複数のイニシエータ113
を用いることが可能である。同様に、本好適実施例で
は、分配モジュール120との通信を行うために単一のイ
ニシエータ111を使用したが、別の実施例では、VOD
システム100において一層多数の分配モジュール120が使
用される場合のインターフェイス要件を満たすように複
数のイニシエータ111を用いることが可能である。
While the preferred embodiment uses a single initiator 113 to communicate with the storage modules 130, alternative embodiments may use a larger number of storage modules 130 in the VOD system 100. Multiple initiators 113 to meet the interface requirements of
Can be used. Similarly, in the preferred embodiment, a single initiator 111 was used to communicate with the distribution module 120, but in another embodiment, the VOD
Multiple initiators 111 can be used to meet the interface requirements when more distribution modules 120 are used in system 100.

【0036】本好適実施例では単一の中央制御モジュー
ル110を使用したが、本発明の原理は、多数の中央制御
モジュール110を備えたVODシステム100にも適用する
ことができる。ビデオサーバ105中に多数の中央制御モ
ジュール110を配設することにより、冗長動作を行うよ
うにVODシステム100を構成することが可能となり、
これにより、システムの信頼性及び故障に対する許容性
が改善される。更に、多数の中央制御モジュール110を
備えた構成はシステムの帯域幅を増大させるものとな
り、これにより、VODシステム100によって生成され
る最大ビデオストリーム数が増大する。
Although the preferred embodiment uses a single central control module 110, the principles of the present invention can be applied to a VOD system 100 having multiple central control modules 110. By arranging a large number of central control modules 110 in the video server 105, the VOD system 100 can be configured to perform a redundant operation,
This improves system reliability and fault tolerance. In addition, configurations with multiple central control modules 110 increase the bandwidth of the system, thereby increasing the maximum number of video streams generated by VOD system 100.

【0037】好適なシステム構成の1つは、9個の分配
モジュール120のサービスを行う単一の中央制御モジュ
ール110を備えたものとなり、この場合、各分配モジュ
ール120は、12個のビデオプロセッサ121を有している。
従って、この好適な構成は、最大108のビデオストリー
ムを同時に生成するものとなる。別の構成では、12個で
はなく8個のビデオプロセッサ121を用いており、従っ
て、最大96のビデオストリームを分配する。
One preferred system configuration would include a single central control module 110 serving nine distribution modules 120, where each distribution module 120 has twelve video processors 121. have.
Thus, this preferred arrangement will produce up to 108 video streams simultaneously. Another configuration uses eight video processors 121 instead of twelve, thus distributing up to 96 video streams.

【0038】各中央制御モジュール110は、1つ又は2
つ以上のクライアント101からのビデオ制御コマンドを
受信して処理する。このビデオ制御コマンドには、例え
ば、再生、記憶、一時停止、早送り、巻戻し、ビデオ選
択等が含まれる。より詳細に言えば、中央制御モジュー
ル110上のCPU112は、受信したビデオ制御コマンドを
デコードし、そのデコードされたコマンドを実行するた
めに記憶モジュール130及び分配モジュール120を
制御する。中央制御モジュール110は、メモリバッファ1
14に対して出入りするビデオデータの非同期の伝送の管
理及びスケジューリング等の機能を行う。
Each central control module 110 has one or two
It receives and processes video control commands from one or more clients 101. The video control commands include, for example, playback, storage, pause, fast forward, rewind, video selection, and the like. More specifically, CPU 112 on central control module 110 decodes the received video control commands and controls storage module 130 and distribution module 120 to execute the decoded commands. The central control module 110 has a memory buffer 1
It performs functions such as management and scheduling of asynchronous transmission of video data to and from 14.

【0039】従来、ビデオサーバシステム(即ち、ビデ
オオンデマンドシステム)は、2つのカテゴリー、即
ち、ストリーミングシステム及び非ストリーミングシス
テムのうちの1つに含まれる。ストリーミングシステム
は、再生要求に応じて明らかに連続するビデオストリー
ムを分配し、これは、再生を変更する(即ち、一時停止
や停止等)ための別のユーザコマンドが受信されるま
で、またはファイルの終わりに達するまで行われる。ま
た、非ストリーミングシステムでは、ビデオサーバは、
進行中のビデオストリームを分配することはなく、その
代わりにクライアントの要求に応じてビデオチャンク又
はビデオセグメントを分配する。好適には、クライアン
ト101からの要求は、ユーザのための明らかに連続する
「リアルタイムの」ビデオストリームを生成するように
十分頻繁に発生するものであり十分に迅速なものでなけ
ればならない。VODシステムの好適実施態様は、スト
リーミングタイプのビデオサーバである。ストリーミン
グタイプのビデオサーバは、非ストリーミングタイプの
ビデオサーバと比べてクライアント101とビデオサーバ1
05との間で必要となる対話が少ないという利点を有する
ものである。従って、ストリーミングタイプのビデオサ
ーバは、エラーの生じる傾向が低く、多数のチャネルに
適応することができ、及びクライアント101で必要とす
る複雑性が低いものとなる。
Conventionally, video server systems (ie, video on demand systems) fall into one of two categories: streaming systems and non-streaming systems. The streaming system distributes an apparently continuous video stream in response to a playback request, either until another user command is received to change the playback (i.e., pause, stop, etc.), or to update the file. It is done until the end is reached. Also, in a non-streaming system, the video server
It does not distribute the ongoing video stream, but instead distributes video chunks or video segments as required by the client. Preferably, the request from the client 101 should occur frequently enough and generate fast enough to produce a clearly continuous "real-time" video stream for the user. The preferred embodiment of the VOD system is a streaming type video server. The streaming type video server is compared with the non-streaming type video server by the client 101 and the video server 1.
It has the advantage of requiring less dialogue with 05. Thus, streaming-type video servers are less prone to errors, can accommodate multiple channels, and require less complexity at client 101.

【0040】VODシステム100は、多数のバッファ機
構を使用してリアルタイムのビデオストリームを分配す
る。CPU112の制御下で、データが記憶モジュール130
からメモリバッファ114へ(好適には128kbyteのチャン
クで)伝送される。このデータが次いで、やはりCPU
112の制御下で一層小さなチャンク(好適には32kbyte)
で分配モジュール120のメモリバッファ126へと伝送され
る。ここで、CPU125の制御下でデータが一層小さな
チャンク(好適には32kbyte)で各ビデオプロセッサ121
へ伝送される。各ビデオプロセッサ121は、32kbyteのデ
ータチャンクを処理して、クライアントロケーションに
分配するためのビデオストリームを生成する。
The VOD system 100 uses a number of buffer mechanisms to distribute a real-time video stream. Under the control of the CPU 112, the data is stored in the storage module 130.
To the memory buffer 114 (preferably in 128 kbyte chunks). This data is then followed by the CPU
Smaller chunks under control of 112 (preferably 32 kbytes)
Is transmitted to the memory buffer 126 of the distribution module 120. Here, under the control of the CPU 125, each video processor 121 has smaller chunks of data (preferably 32 kbytes).
Transmitted to Each video processor 121 processes a 32 kbyte data chunk to generate a video stream for distribution to client locations.

【0041】好適には、記憶モジュール130と中央制御
モジュール110との間、及び中央制御モジュール110と分
配モジュール120との間のデータ伝送は、高速のメモリ
伝送を得るために、及び該伝送中におけるCPUを用い
た動作を回避するために、ダイレクトメモリアクセス
(DMA)伝送モードを用いて実行される。
Preferably, the data transmission between the storage module 130 and the central control module 110 and between the central control module 110 and the distribution module 120 is for obtaining a high-speed memory transmission and during the transmission. It is performed using a direct memory access (DMA) transmission mode to avoid operation using the CPU.

【0042】好適には、分配モジュール120は、ターゲ
ットモードで(ターゲットモードでSCSIインターフ
ェイスを使用して)中央制御モジュール110とのインタ
ーフェイスをとるので、ビデオデータ及びそれに伴う制
御コマンドがアドレススキームを用いて分配モジュール
120に送られる。各ビデオストリームは、分配モジュー
ル120上の指定されたアドレス範囲に割り当てられる。
従って、中央制御モジュール110が特定のビデオストリ
ームについてビデオデータの書き込みを行っている場合
には、特定のデータストリームを固有に指定するために
分配モジュール120上の宛先アドレスが使用される。同
様に、各ビデオストリームに関する進行、エンコード終
了、及び一時停止等の制御情報は、特定のビデオストリ
ームに対して各々マッピングされた特定の事前指定され
たアドレスに書き込まれる。各々のビデオストリーム及
びそれに関連する制御情報のアドレスマッピングは、予
め規定される。代替的には、各ビデオストリームのデー
タと各ビデオストリームに関する制御情報とのマッピン
グを行うアドレスマップが、システムのスタートアップ
中に分配モジュール120から受信され、次いで中央制御
モジュール110で記憶される。
Preferably, the distribution module 120 interfaces with the central control module 110 in a target mode (using a SCSI interface in the target mode) so that the video data and the associated control commands are addressed using an addressing scheme. Distribution module
Sent to 120. Each video stream is assigned to a specified address range on the distribution module 120.
Thus, if the central control module 110 is writing video data for a particular video stream, the destination address on the distribution module 120 is used to uniquely specify the particular data stream. Similarly, control information such as progress, end of encoding, and pausing for each video stream is written to a particular pre-specified address, each mapped to a particular video stream. The address mapping of each video stream and its associated control information is predefined. Alternatively, an address map that maps the data of each video stream to control information for each video stream is received from the distribution module 120 during system startup and then stored in the central control module 110.

【0043】図2は、本発明による中央制御モジュール
110を示すブロック図である。複数のクライアント101か
ら受信される制御コマンドのサービスを行うために、中
央制御モジュール110は、CPU112に接続されたDRA
M232に記憶されているプログラムコード231を使用して
マルチタスク処理を行う。DRAM232はまた、メモリ
バッファ114(図1にも示されている)を形成する。D
RAM232は、中央制御モジュール110に含まれる従来の
コンピュータ用マザーボード上に配設されたメモリ拡張
スロットに取り付けられたDRAMである。プログラム
コード231は、CPU112によって実行されるマルチプロ
セシングスレッド210〜205を含んでいる。マルチプロセ
シングスレッド210〜205は、リモートプロシージャコー
ル(RPC)スレッド202、コールバックスレッド203、
ストリームスレッド204、記憶スレッド201、及びファイ
ルスレッド205を備えている。各スレッドは、CPU112
により実行されるコンピュータプログラムを介したアク
ティブパスである。
FIG. 2 shows a central control module according to the invention.
It is a block diagram which shows 110. In order to service control commands received from the plurality of clients 101, the central control module 110
Multitask processing is performed using the program code 231 stored in M232. DRAM 232 also forms memory buffer 114 (also shown in FIG. 1). D
The RAM 232 is a DRAM attached to a memory expansion slot provided on a conventional computer motherboard included in the central control module 110. The program code 231 includes multi-processing threads 210 to 205 executed by the CPU 112. The multi-processing threads 210 to 205 include a remote procedure call (RPC) thread 202, a callback thread 203,
A stream thread 204, a storage thread 201, and a file thread 205 are provided. Each thread has a CPU 112
Is an active path through a computer program executed by the computer.

【0044】図2において、中央制御モジュール110は
また、該中央制御モジュール110に固有のシステムハー
ドディスク235を備えている。該システムハードディス
ク235は、DRAM232にロードするためのプログラムコ
ード231を記憶する。該システムハードディスク235は、
更に、サーバコンフィギュレーションファイル237、及
びビデオカタログサブディレクトリ236を記憶する。
In FIG. 2, the central control module 110 also has a system hard disk 235 specific to the central control module 110. The system hard disk 235 stores a program code 231 to be loaded into the DRAM 232. The system hard disk 235 is
Further, it stores a server configuration file 237 and a video catalog subdirectory 236.

【0045】図3は、マルチプロセシングスレッド201
〜205間の関係を示す状態図である。マルチプロセシン
グスレッド201〜205は、クライアント101により要求さ
れた際に多数のビデオストリームを再生し及び様々な制
御コマンド(即ち、一時停止、停止、巻戻し等)を実行
するために、(クライアント101上で実行される)クラ
イアントプログラム206により生成されるファンクショ
ンコールを受信して処理する。
FIG. 3 shows a multi-processing thread 201.
It is a state diagram which shows the relationship between. The multi-processing threads 201-205 play (on the client 101) to play multiple video streams and execute various control commands (i.e., pause, stop, rewind, etc.) as requested by the client 101. And executes the function call generated by the client program 206).

【0046】リモートプロシージャコール(RPC)ス
レッド202は、クライアントプログラム206に対してアプ
リケーションプログラムインターフェイス(API)を
提供し、よって、クライアントプログラム206から受け
る制御入力(ファンクションコール)の受信を操作す
る。中央制御モジュール110は、ビデオサーバ105とクラ
イアント101との間のインターフェイスを管理するため
に、単一のRPCスレッド202を生成(実行)する。
The remote procedure call (RPC) thread 202 provides an application program interface (API) to the client program 206, and thus operates to receive control inputs (function calls) received from the client program 206. Central control module 110 creates (executes) a single RPC thread 202 to manage the interface between video server 105 and client 101.

【0047】中央制御モジュール110は、各出力ビデオ
ストリーム毎にストリームスレッド204を(CPU112上
で)生成し実行する。各ストリームスレッド204は、1
つのビデオストリームの再生を管理する。
The central control module 110 generates (on the CPU 112) and executes a stream thread 204 for each output video stream. Each stream thread 204 has 1
Manage the playback of two video streams.

【0048】コールバックスレッド203は、CPU112に
よって実行され、ストリームスレッド204により生成さ
れるメッセージを操作する。該メッセージは、「ファイ
ルの終わり」またはエラー状態が生じた結果として生成
されるものである。
The callback thread 203 is executed by the CPU 112 and operates on a message generated by the stream thread 204. The message is generated as a result of an "end of file" or error condition.

【0049】ファイルスレッド205は、CPU112によっ
て実行され、ビデオオブジェクトの作成、削除、書き込
み、及び読み出しを含むファイル管理を操作する。中央
制御モジュール110は、多数のファイルスレッド205を有
している。
The file thread 205 is executed by the CPU 112 and operates file management including creation, deletion, writing, and reading of a video object. The central control module 110 has a number of file threads 205.

【0050】各記憶装置131は、1つ又は2つ以上の記
憶スレッド201によって管理される。記憶スレッド201
は、ストリームスレッド204、ファイルスレッド205、及
びRPCスレッド202からのメッセージ要求を受信し、
次いで適当なディスクアクセス機能及びデータ取り出し
機能を行うことにより、そのメッセージ要求のサービス
を行う。所与の記憶装置131を管理する記憶スレッド201
の数は、サーバコンフィギュレーションファイル237で
指定される。好適には、2つの記憶スレッド201が各記
憶装置131を管理する。
Each storage device 131 is managed by one or more storage threads 201. Memory thread 201
Receives message requests from the stream thread 204, the file thread 205, and the RPC thread 202,
The message request is then serviced by performing the appropriate disk access and data retrieval functions. A storage thread 201 that manages a given storage device 131
Is specified in the server configuration file 237. Preferably, two storage threads 201 manage each storage device 131.

【0051】ここで、図2を再び参照する。各記憶装置
131は、関連するメッセージ待ち行列233をそれぞれ1つ
ずつ有している。該メッセージ待ち行列233は、ディス
ク入出力要求メッセージを記憶するためのファーストイ
ンファーストアウト(FIFO)メッセージパイプ(待
ち行列)である。ストリームスレッド204は、特定の記
憶装置131からのビデオデータの読み出しを必要とする
場合に、(ディスク入出力を要求する)(ディスクアク
セス)メッセージを、適当な記憶装置131に対応するメ
ッセージ待ち行列233に送る。各メッセージは、該メッ
セージを生成したストリームスレッド204により算出さ
れたデッドラインフィールドを含んでいる。
Here, FIG. 2 is referred to again. Each storage device
131 has one associated message queue 233 each. The message queue 233 is a first-in first-out (FIFO) message pipe (queue) for storing a disk input / output request message. When it is necessary to read video data from a specific storage device 131, the stream thread 204 sends a (disk access) (disk access) message to a message queue 233 corresponding to the appropriate storage device 131. Send to Each message includes a deadline field calculated by the stream thread 204 that generated the message.

【0052】図4は、記憶装置へのアクセス時に使用さ
れるデータ構造及びプログラムモジュール232を示すフ
ローチャートである。プログラムコード232は、1組の
リンクリスト(linked list)データ構造242を含んでい
る。該リンクリストデータ構造242は、自由リスト240及
び要求リスト241を有している。1つの自由リスト240及
び1つの要求リスト241が各記憶装置131毎に作成され
る。自由リスト240は、自由メッセージ記憶要素の未ソ
ートのリンクリストであり、要求リスト241は、各メッ
セージに関するデッドラインフィールドに従ってソート
されたメッセージのリンクリストである。各記憶スレッ
ド201は、最初に自由リスト240から記憶要素を取り出す
ことにより、メッセージの処理を行う。記憶スレッド20
1は、次にメッセージ待ち行列233からメッセージを取り
出し、その取り出したメッセージを記憶要素に記憶させ
る。記憶スレッド201は次いでそのメッセージを、それ
に関するデッドラインフィールドに従って要求リスト24
1中にリンクさせる。
FIG. 4 is a flowchart showing a data structure and a program module 232 used when accessing the storage device. Program code 232 includes a set of linked list data structures 242. The linked list data structure 242 has a free list 240 and a request list 241. One free list 240 and one request list 241 are created for each storage device 131. Free list 240 is an unsorted linked list of free message storage elements, and request list 241 is a linked list of messages sorted according to the deadline field for each message. Each storage thread 201 processes messages by first extracting storage elements from the free list 240. Memory thread 20
1 then retrieves the message from message queue 233 and stores the retrieved message in a storage element. The storage thread 201 then passes the message to the request list 24 according to the deadline field for it.
Link in one.

【0053】図5は、本発明による要求リスト241を示
す説明図である。要求リスト241は、その要求リスト241
の前端がゼロのデッドラインのメッセージ244を有する
ように構成されたメッセージ244のリンクリストであ
る。ゼロのデッドラインのメッセージ244の後に非ゼロ
のデッドラインのメッセージ244が記憶され、この非ゼ
ロのデッドラインのメッセージ244が緊急時に伝わり、
緊急性の最も低い非ゼロのデッドラインのメッセージ24
4が要求リスト241の後端で共有されるようになる。
FIG. 5 is an explanatory diagram showing the request list 241 according to the present invention. The request list 241 is the request list 241
Is a linked list of messages 244 configured to have a zero deadline message 244 at the front end. A non-zero deadline message 244 is stored after the zero deadline message 244, and this non-zero deadline message 244 is transmitted in an emergency,
Least urgent non-zero deadline message 24
4 will be shared at the end of the request list 241.

【0054】要求リスト241及び自由リスト240は共に相
互排他ロック243を有しており、これにより、要求リス
ト241及び自由リスト240へのアクセスが連続的なものと
なる。相互排他ロック243は、オペレーティングシステ
ムにより提供される従来のロック機構である。
The request list 241 and the free list 240 both have a mutual exclusion lock 243, so that access to the request list 241 and the free list 240 is continuous. Mutual exclusion lock 243 is a conventional locking mechanism provided by the operating system.

【0055】処理スレッドの説明 ここで再び図3を参照する。中央制御モジュール110
は、RPCスレッド202がクライアントプログラム206か
らStreamOpen()コールを受信するまでアイドル状態とな
る。StreamOpen()コールは、再生用の新たなビデオスト
リームをオープンするための要求である。RPCスレッ
ド202は、StreamOpen()コールを受信すると、ストリー
ムスレッド204にStreamOpenメッセージを送る。次い
で、ストリームスレッド204は、オープンされたビデオ
ストリームの再生を操作する。
Description of Processing Thread Referring again to FIG. Central control module 110
Is idle until the RPC thread 202 receives a StreamOpen () call from the client program 206. The StreamOpen () call is a request to open a new video stream for playback. Upon receiving the StreamOpen () call, the RPC thread 202 sends a StreamOpen message to the stream thread 204. Next, the stream thread 204 operates playback of the opened video stream.

【0056】StreamOpenメッセージを操作する際に、ス
トリームスレッド204は、再生すべきビデオオブジェク
トの最初の3つのデータブロックを記憶する記憶装置13
1に対応する3つの記憶スレッドのメッセージ待ち行列2
33の各々にReadBlockメッセージを送る。好適実施例で
は、3つのメモリバッファ114が各再生ストリーム用に
リザーブされ、従って、StreamOpenメッセージのサービ
スを行うことによって、新たにオープンされた再生スト
リームに関連するメモリバッファ114が満たされること
になる。
In manipulating the StreamOpen message, the stream thread 204 stores the first three data blocks of the video object to be played back in the storage device 13.
Message queue 2 of 3 storage threads corresponding to 1
Send a ReadBlock message to each of the 33. In the preferred embodiment, three memory buffers 114 are reserved for each playback stream, so servicing the StreamOpen message will fill the memory buffer 114 associated with the newly opened playback stream.

【0057】各記憶スレッド201は、そのメッセージ待
ち行列233からReadBlockメッセージを非同期で取り出
し、そのメッセージを処理用に優先順位付けする。最終
的に処理されると、記憶スレッド201は、要求されたデ
ータブロック(好適なブロックサイズは128byte)を特
定のディスクから読み出して、割り当てられたメモリバ
ッファ114に該データブロックを書き込むことにより、R
eadBlockメッセージを処理する。ReadBlockメッセージ
のサービスを行った後、記憶スレッド201は、前記ReadB
lockメッセージを発したストリームスレッド204にREAD-
RESPメッセージを送る。
Each storage thread 201 asynchronously retrieves a ReadBlock message from its message queue 233 and prioritizes the message for processing. When finally processed, the storage thread 201 reads the requested data block (the preferred block size is 128 bytes) from a particular disk and writes the data block to the allocated
Process the eadBlock message. After performing the service of the ReadBlock message, the storage thread 201 reads the ReadB message.
READ- to the stream thread 204 that issued the lock message
Send a RESP message.

【0058】次いで、記憶スレッド201は、そのメッセ
ージ待ち行列233における次に最も時間的に決定的な
(時間クリティカル)メッセージを処理する。しかしな
がら、そのメッセージ待ち行列233が空である場合に
は、記憶スレッド201は、そのメッセージ待ち行列233に
メッセージが送られてくるまでアイドル状態となる。
The storage thread 201 then processes the next most time-critical (time-critical) message in its message queue 233. However, if the message queue 233 is empty, the storage thread 201 is idle until a message is sent to the message queue 233.

【0059】図6は、図3に示したストリームスレッド
204の状態図である。ストリームスレッド204は、Stream
Openメッセージを受信するまでIDLE状態307となる。
FIG. 6 shows the stream thread shown in FIG.
FIG. 204 is a state diagram of FIG. Stream thread 204
The state is the IDLE state 307 until the Open message is received.

【0060】メッセージ待ち行列にReadBlockメッセー
ジを送った後、ストリームスレッド204は、PRIMING状態
301に移行する。ストリームスレッド204は、PRIMING状
態301にあるとき、ReadBlockメッセージが送られた各記
憶スレッド201からREAD-RESPメッセージを受信するまで
待機する。記憶スレッド201により送られたREAD-RESPメ
ッセージは、記憶スレッド201がReadBlock要求を処理し
たことを示すものである。READ-RESPメッセージが受信
されると、ストリームスレッド204はPRIMED状態302に移
行する。
After sending the ReadBlock message to the message queue, the stream thread 204 enters the PRIMING state.
Move to 301. When in the PRIMING state 301, the stream thread 204 waits until a READ-RESP message is received from each storage thread 201 to which the ReadBlock message has been sent. The READ-RESP message sent by the storage thread 201 indicates that the storage thread 201 has processed the ReadBlock request. When the READ-RESP message is received, the stream thread 204 transitions to the PRIMED state 302.

【0061】ここで再び図3を参照する。RPCスレッ
ド202は、クライアントプログラム206からStreamPlay()
コールを非同期で受信する。次いで、RPCスレッド20
2は、StreamPlayメッセージをストリームスレッド204に
送る。次いで、ストリームスレッド204は、該ストリー
ムの再生を操作する。
Here, FIG. 3 is referred to again. The RPC thread 202 executes StreamPlay () from the client program 206.
Receive calls asynchronously. Next, the RPC thread 20
2 sends a StreamPlay message to the stream thread 204. Next, the stream thread 204 operates the reproduction of the stream.

【0062】ここで再び図6を参照する。ストリームス
レッド204がPRIMED状態302にあるとき、該ストリームス
レッド204は、RPCスレッド202からStreamPlayメッセ
ージが受信されるまで待機する。ストリームスレッド20
4は、好適には以下で説明するスケジューリングプロト
コルに従って、該ストリーム用の開始時間帯を選択する
ことにより、StreamPlayメッセージを操作する。開始時
間帯の選択後、メモリバッファ114からビデオデータの
第1のサブブロック(32kbyte)を取り出し、宛先出力
ポートを含む分配モジュール120に該サブブロックを送
ることにより、再生が開始される。サブブロックの送信
後、ストリームスレッド204は、PLAYWAIT状態303に移行
する。
Here, FIG. 6 is referred to again. When the stream thread 204 is in the PRIMED state 302, the stream thread 204 waits until a StreamPlay message is received from the RPC thread 202. Stream thread 20
4 manipulates the StreamPlay message by selecting a start time slot for the stream, preferably according to the scheduling protocol described below. After the selection of the start time period, the reproduction is started by extracting the first sub-block (32 kbytes) of the video data from the memory buffer 114 and sending the sub-block to the distribution module 120 including the destination output port. After transmitting the sub-block, the stream thread 204 shifts to the PLAYWAIT state 303.

【0063】PLAYWAIT状態303にあるとき、ストリーム
スレッド204は、RPCスレッド202又は記憶スレッド20
1の何れかから新たなメッセージが到着したか否かを判
定し、受信したメッセージを処理する。受信する可能性
のあるメッセージとしては、StreamPauseメッセージ、S
treamJumpメッセージ、及びREAD-RESPメッセージが挙げ
られる。各々のメッセージは次のように操作される。
When in the PLAYWAIT state 303, the stream thread 204
It is determined whether a new message has arrived from any one of the methods 1 and the received message is processed. Messages that may be received include StreamPause messages, S
There are a treamJump message and a READ-RESP message. Each message is operated as follows.

【0064】(i)StreamPauseメッセージがRPCスレッ
ド202から送られた場合、ストリームスレッド204は、PA
USED状態304に移行する。
(I) When the StreamPause message is sent from the RPC thread 202, the stream thread 204
Move to the USED state 304.

【0065】(ii)StreamJumpメッセージがRPCスレッ
ド202から送られた場合、ストリームスレッド204は、ま
だ分配モジュール120に送られていないメモリバッファ1
14中のデータブロックを破棄する。次に、新たな位置へ
のジャンプによって取り出されたビデオデータ(データ
ブロック)を記憶するために、ストリームスレッド204
による使用のために割り当てられていなかったメモリバ
ッファ114が記憶スレッド201による使用のために割り当
てられる。StreamJumpメッセージの処理後、ストリーム
スレッド204は、PLAYWAIT状態303でループして次のメッ
セージの受信を待つ。
(Ii) When the StreamJump message is sent from the RPC thread 202, the stream thread 204 sends the memory buffer 1 not yet sent to the distribution module 120.
Discard the data block in 14. Next, the stream thread 204 stores the video data (data blocks) retrieved by the jump to the new location.
Memory buffers 114 that have not been allocated for use by storage thread 201 are allocated for use by storage thread 201. After processing the StreamJump message, the stream thread 204 loops in the PLAYWAIT state 303 to wait for the next message to be received.

【0066】(iii)READ-RESPメッセージが記憶スレッド
201から送られた場合、及び、ReadBlockメッセージがエ
ラーを伴うことなく操作されたことをREAD-RESPメッセ
ージが示す場合には、ストリームスレッド204は、対応
するメモリバッファ114をレディ状態にマークし、次い
でPLAYWAIT状態303でループする。
(Iii) READ-RESP message is stored thread
If sent from 201, and if the READ-RESP message indicates that the ReadBlock message was operated without error, the stream thread 204 marks the corresponding memory buffer 114 as ready, and then Loop in PLAYWAIT state 303.

【0067】(iv) READ-RESPメッセージが記憶スレッド
201から送られた場合、及び、ReadBlockメッセージがエ
ラーに遭遇したことをREAD-RESPメッセージが示す場合
には、ストリームスレッド204は、コールバックスレッ
ド203にErrorPlayDoneメッセージを送り、ABEND状態305
に移行する。次いで、コールバックスレッド203は、Err
orPlayDoneメッセージの受信時に、ビデオコマンドを発
したクライアントプログラム206にコールバックを行っ
て、ビデオストリーム中でエラーに遭遇したことをクラ
イアントプログラム206に知らせる。
(Iv) READ-RESP message is stored thread
If sent from 201 and the READ-RESP message indicates that the ReadBlock message has encountered an error, the stream thread 204 sends an ErrorPlayDone message to the callback thread 203, and the ABEND state 305
Move to Next, the callback thread 203 returns the Err
Upon receiving the orPlayDone message, it makes a callback to the client program 206 that issued the video command to notify the client program 206 that an error has been encountered in the video stream.

【0068】PLAYWAIT状態303では、ストリームスレッ
ド204は、等時性のビデオストリームを維持するために
タイマによって更に制御される。「等時性」とは、非破
裂性又は「ほぼ一定速度」を意味するものである。等時
性のビデオストリームを維持するために、各々が32kbyt
eのデータサブブロックが所定時間内に分配モジュール1
20に送られる。各々のデータサブブロックを分配モジュ
ール120に送る際に、ストリームスレッド204は、該デー
タサブブロックがメモリバッファ114中の最後のサブブ
ロックであったか否かを判定する。該データサブブロッ
クが最後のサブブロックであった場合には、ストリーム
スレッド204は、メモリバッファ114を「利用可能」とマ
ークし、記憶装置131からの更なるビデオデータ(128kb
yteのデータブロック)の取り出しを開始させるために
適当な記憶スレッド201にReadBlockメッセージを送る。
ストリームスレッド204は更に、ビデオファイルの終わ
りに達したか否かを判定する。ビデオファイルの終わり
に遭遇した場合には、ストリームスレッド204は、コー
ルバックスレッド203にNormalPlayDoneメッセージを送
り、DONE状態306に移行する。次いで、コールバックス
レッド203は、ビデオコマンドを発したクライアントプ
ログラム206にコールバックを送って、ビデオストリー
ムが正常終了したことをクライアントプログラム206に
知らせる。しかしながら、ビデオファイルの終わりに達
していなかった場合には、ストリームスレッド204は、P
LAYWAIT状態303でループする。
In the PLAYWAIT state 303, the stream thread 204 is further controlled by a timer to maintain an isochronous video stream. "Isochronous" means non-bursting or "almost constant velocity". 32kbyt each to maintain isochronous video streams
distribution module 1
Sent to 20. As each data sub-block is sent to the distribution module 120, the stream thread 204 determines whether the data sub-block was the last sub-block in the memory buffer 114. If the data sub-block was the last sub-block, the stream thread 204 marks the memory buffer 114 as “available” and sends additional video data (128 kb) from the storage 131.
Send a ReadBlock message to the appropriate storage thread 201 to begin fetching the yte data block).
The stream thread 204 further determines whether the end of the video file has been reached. If the end of the video file is encountered, the stream thread 204 sends a NormalPlayDone message to the callback thread 203 and transitions to the DONE state 306. Next, the callback thread 203 sends a callback to the client program 206 that has issued the video command to notify the client program 206 that the video stream has been completed normally. However, if the end of the video file has not been reached, the stream thread 204 returns
Loop in LAYWAIT state 303.

【0069】DONE状態306にあるとき、ストリームスレ
ッド204は、RPCスレッド202から受信したメッセージ
を処理する。(クライアントプログラム206からStreamJ
ump()コールを受信した結果として)RPCスレッド202
からStreamJumpメッセージが送られた場合には、ストリ
ームスレッド204は、記憶されているビデオファイル上
の新たなジャンプ先位置からビデオデータを取り出すた
めに、メモリバッファ114のアドレスを記憶スレッド201
に送る。メモリバッファ114のアドレスの送信後、スト
リームスレッド204はPRIMING状態301に移行する。(ク
ライアントプログラム206からのStreamClose()コールの
結果として)RPCスレッド202によりStreamCloseメッ
セージが送られた場合には、ストリームスレッド204
は、該ストリームに関連する分配モジュール120にスト
リームの再生のクローズを知らせるコマンドを送出す
る。次いでストリームスレッド204はIDLE状態307に移行
する。
When in the DONE state 306, the stream thread 204 processes messages received from the RPC thread 202. (StreamJ from client program 206
RPC thread 202 (as a result of receiving a ump () call)
Sends a StreamJump message from the storage thread 201 to retrieve the video data from the new jump destination position on the stored video file.
Send to After transmitting the address of the memory buffer 114, the stream thread 204 transitions to the PRIMING state 301. If a StreamClose message is sent by the RPC thread 202 (as a result of a StreamClose () call from the client program 206), the stream thread 204
Sends a command to notify the distribution module 120 associated with the stream that the playback of the stream has been closed. Next, the stream thread 204 transitions to the IDLE state 307.

【0070】PAUSED状態304にあるとき、ストリームス
レッド204は、RPCスレッド202により送られたメッセ
ージを処理する。(クライアントプログラム206により
送られたStreamJump()コールの結果として)RPCスレ
ッド202からStreamJumpメッセージが送られた場合に
は、ストリームスレッド204は、メモリバッファ114中の
あやゆるデータを破棄し、ビデオファイル中の新たなジ
ャンプ先位置で始まるビデオデータを取り出すために、
その解放されたメモリ空間を対応する記憶スレッド201
に割り当てる。ストリームスレッド204は、次いでPRIMI
NG状態301に移行する。
When in the PAUSED state 304, the stream thread 204 processes the message sent by the RPC thread 202. If a StreamJump message is sent from RPC thread 202 (as a result of a StreamJump () call sent by client program 206), stream thread 204 discards any data in memory buffer 114 and returns To retrieve video data starting at the new jump destination position,
The storage thread 201 corresponding to the released memory space
Assign to The stream thread 204 then enters PRIMI
Move to the NG state 301.

【0071】(クライアントプログラム206からのStrea
mClose()コールの結果として)RPCスレッド202からS
treamCloseメッセージが送られた場合には、ストリーム
スレッド204は、該ストリームに関連する分配モジュー
ル120にストリームの再生のクローズを知らせる。次い
でストリームスレッド204はIDLE状態307に移行する。
(Strea from client program 206)
RPC thread 202 to S (as a result of mClose () call)
When the streamClose message is sent, the stream thread 204 notifies the distribution module 120 associated with the stream that the stream has been closed. Next, the stream thread 204 transitions to the IDLE state 307.

【0072】(クライアントプログラム206からのStrea
mPlay()コールの結果として)RPCスレッド202からSt
reamPlayメッセージが送られた場合には、ストリームス
レッド204は、当該ビデオストリームに関する開始時間
スロットを選択し、該開始時間スロットに達した後、ビ
デオディスクの32kbyteのカレントブロックを、(中央
制御モジュール110上の)メモリバッファ114から、該ビ
デオストリームのための宛先ポートを含む分配モジュー
ル120に送る。ストリームスレッド204は、次いでPLAYWA
IT状態303に移行する。
(Strea from client program 206)
St from RPC thread 202 (as a result of mPlay () call)
When the reamPlay message is sent, the stream thread 204 selects a start time slot for the video stream, and after reaching the start time slot, the stream thread 204 stores the current block of 32 kbytes on the video disk (on the central control module 110). From the memory buffer 114) to the distribution module 120 which contains the destination port for the video stream. The stream thread 204 then plays PLAYWA
Move to the IT state 303.

【0073】ABEND状態305にあるとき、ストリームスレ
ッド204は、RPCスレッドからのStreamCloseメッセー
ジを処理する。(クライアントプログラム206からのStr
eamClose()コールの結果として)RPCスレッド202か
らStreamCloseメッセージが送られた場合には、ストリ
ームスレッド204は、ストリームの再生がクローズされ
たことを該ストリームに関連する分配モジュール120に
知らせる。ストリームスレッド204は次いでIDLE状態307
に移行する。
When in the ABEND state 305, the stream thread 204 processes a StreamClose message from the RPC thread. (Str from client program 206
When a StreamClose message is sent from the RPC thread 202 (as a result of an eamClose () call), the stream thread 204 informs the distribution module 120 associated with the stream that the playback of the stream has been closed. Stream thread 204 then goes to IDLE state 307
Move to

【0074】ストリームスレッドによるメッセージ要求
の優先順位付け VODシステム100は、優先順位スキームを用いて、多
数のストリームスレッド204から各記憶スレッド201に送
られるディスク入出力要求を要求するメッセージの操作
のスケジューリングを行う。該優先順位スキームは、好
適には、要求を行っている全てのストリームスレッド20
4がそれぞれのビデオストリームの連続的な再生を維持
することができるように全てのメッセージを確実に完了
させる(操作する)ものとなる。
Message request by stream thread
The priority VOD system 100 uses a priority scheme to schedule operations on messages requesting disk I / O requests sent from multiple stream threads 204 to each storage thread 201. The priority scheme is preferably such that all requesting stream threads 20
4 will ensure that all messages are completed (operated) so that continuous playback of each video stream can be maintained.

【0075】該優先順位スキームによれば、各メッセー
ジはそれに関するデッドラインフィールドを有してい
る。ストリームスレッド204が、中央制御モジュール110
のバッファを満たすために、ディスク入出力を要求する
メッセージ(ReadBlockメッセージ)を記憶スレッド201
に送ると、ストリームスレッド204は、該メッセージに
ついてのデッドラインを計算し、その該デッドラインを
該メッセージと共に記憶スレッド201に送る。該デッド
ラインは、ストリームスレッド204の現在の状態によっ
て決まる。該デッドラインは、0から最大値までの整数
である。デッドラインを有さないメッセージには「ゼ
ロ」のデッドライン値が与えられ、デッドラインを有す
るメッセージにはその緊急性に対応したデッドライン値
が割り当てられ、この場合、大きなデッドライン値を有
するメッセージほど緊急性が低く、小さなデッドライン
値を有するメッセージほど緊急性が高いものである。
According to the priority scheme, each message has a deadline field associated with it. The stream thread 204 is used by the central control module 110
A storage thread 201 stores a message (ReadBlock message) requesting disk I / O to fill the buffer of
, The stream thread 204 calculates the deadline for the message and sends the deadline along with the message to the storage thread 201. The deadline depends on the current state of the stream thread 204. The deadline is an integer from 0 to a maximum value. Messages without deadlines are given a deadline value of "zero", and messages with deadlines are assigned deadline values corresponding to their urgency, in which case messages with large deadline values The lower the urgency of a message, the higher the urgency of a message with a smaller deadline value.

【0076】通常の再生時、即ち、PLAYWAIT状態303に
ある場合には、デッドラインの計算は、ストリームスレ
ッド204による分配モジュール120に対するもっとも最近
のデータ書き込みに関する開始時間に、ストリームに関
する全てのメモリバッファ114中のデータ消費時間(即
ち、ビデオデータの再生に要する時間)を加えることに
より行われる。好適には、該データ消費時間は、各メモ
リバッファ114のサイズに、ビデオストリームに関する
メモリバッファ114の数を乗算し、次いでその積を出力
データ速度で除算すること(即ち、バッファサイズ×バ
ッファ数÷データ速度)により算出される。
During normal playback, that is, in the PLAYWAIT state 303, the deadline calculation is performed at the start time of the most recent data write to the distribution module 120 by the stream thread 204 at the start time of all memory buffers 114 for the stream. This is performed by adding the medium data consumption time (that is, the time required for reproducing the video data). Preferably, the data consumption time is determined by multiplying the size of each memory buffer 114 by the number of memory buffers 114 for the video stream, and then dividing the product by the output data rate (ie, buffer size × number of buffers ÷ Data rate).

【0077】ストリームの再生が開始する前のバッファ
の初期プライミング時に(即ち、PRIMING状態301にある
際に)及びPRIMED状態302にある際に、デッドラインが
ゼロにセットされる。この「ゼロ」は、メッセージが絶
対的なデッドラインを有さないこと、及び、かかるサー
ビスによりメッセージ待ち行列233中の他のメッセージ
がそれらのデッドラインを逸さないこととなる場合に該
メッセージがサービスされるべきであることを示すもの
である。
The deadline is set to zero during initial priming of the buffer before playback of the stream begins (ie, when in the PRIMING state 301) and when in the PRIMED state 302. This "zero" indicates that the messages do not have an absolute deadline, and that if such services would cause other messages in the message queue 233 to not miss their deadlines. Indicates that it should be serviced.

【0078】ストリームスレッド204がPAUSED状態304に
あり、該ストリームスレッド204によりStreamJump()メ
ッセージが受信された場合、ストリームスレッド204
は、該ストリームスレッド204に関するメモリバッファ1
14中のデータを破棄する。次いでストリームスレッド20
4は、記憶されているビデオオブジェクト中の新たな
(ジャンプ先)位置から取り出されたデータで満たすた
めにメモリバッファ114のアドレスを適当な記憶スレッ
ド201に送る。StreamJump()メッセージに関するデッド
ラインは、該メッセージが絶対的なデッドラインを有さ
ないこと、及び、かかるサービスによりメッセージ待ち
行列233中の他のメッセージがそれらのデッドラインを
逸さないこととなる場合に該メッセージがサービスされ
るべきであることを示す「ゼロ」である。
When the stream thread 204 is in the PAUSED state 304 and the stream thread 204 receives a StreamJump () message, the stream thread 204
Is the memory buffer 1 for the stream thread 204
Discard the data in 14. Then stream thread 20
4 sends the address of the memory buffer 114 to the appropriate storage thread 201 to fill with data retrieved from a new (jump-to) location in the stored video object. The deadline for a StreamJump () message is that the message has no absolute deadline, and that such a service would prevent other messages in the message queue 233 from missing those deadlines. Is "zero" indicating that the message should be serviced.

【0079】ストリームスレッド204が通常再生モード
にある際、即ち、PLYWAIT状態303にある際に、該ストリ
ームスレッド204によってStreamJump()メッセージが受
信された場合、該ストリームスレッド204は、該ストリ
ームスレッド204に関連すると共に現在の時間に記憶ス
レッド201の応答時間を加算したものよりも遅いデッド
ラインを有するデータを有するメモリバッファ114中の
データを破棄する。次いでストリームスレッド204は、
新たなビデオ位置(即ち、ビデオファイル中のジャンプ
先位置)から取り出されたデータで満たすと共に以前に
記憶されていたデータに関連していたデッドラインと同
一のデッドラインを維持するために、データが破棄され
た該メモリバッファ114のアドレスを適当な記憶スレッ
ド201に送る。
When the stream thread 204 receives the StreamJump () message while the stream thread 204 is in the normal playback mode, that is, in the PLYWAIT state 303, the stream thread 204 Discard the data in the memory buffer 114 that has data that is related and has a deadline that is slower than the current time plus the response time of the storage thread 201. Then the stream thread 204
To fill with data retrieved from the new video location (ie, the jump destination location in the video file) and maintain the same deadline associated with the previously stored data, the data is The address of the discarded memory buffer 114 is sent to an appropriate storage thread 201.

【0080】記憶スレッドの処理 記憶スレッド201は、中央制御モジュール110のスタート
アップ時に作成され、記憶装置131に対するアクセスを
管理する。ここで再び図4を参照する。各記憶装置131
に対するアクセスは、各記憶装置131に関連するリンク
リスト(要求リスト241及び自由リスト240)によって制
御される。各記憶装置131を管理する記憶スレッド201の
数は、コンフィギュレーションファイル237を読み出す
ことにより決定される。各記憶装置131毎に1つ以上の
記憶スレッド201が作成される場合には、要求リスト241
及び自由リスト240とアクセスするためにロック機構(m
utexlock243)が用いられる。
Processing of Storage Thread The storage thread 201 is created when the central control module 110 is started up, and manages access to the storage device 131. Here, FIG. 4 is referred to again. Each storage device 131
Is controlled by a link list (request list 241 and free list 240) associated with each storage device 131. The number of storage threads 201 managing each storage device 131 is determined by reading the configuration file 237. When one or more storage threads 201 are created for each storage device 131, the request list 241
And a lock mechanism (m
utexlock243) is used.

【0081】図7は、各記憶スレッド201により行われ
るメッセージ待ち行列処理400を示すフローチャートで
ある。記憶スレッド201は、記憶装置131に関連する2つ
以上の記憶スレッド201が存在するか否かを判定するこ
とにより処理を開始する。記憶装置131に関連する2つ
以上の記憶スレッド201が存在する場合には、現在の記
憶スレッド201が、記憶装置131に関連するmutex lock24
3を得て、リンクリスト242(要求リスト241及び自由リ
スト240)をロックする(ステップ401)。
FIG. 7 is a flowchart showing the message queue processing 400 performed by each storage thread 201. The storage thread 201 starts processing by determining whether there are two or more storage threads 201 related to the storage device 131. If there are two or more storage threads 201 related to the storage device 131, the current storage thread 201 sets the mutex lock 24 related to the storage device 131.
After obtaining 3, the link list 242 (request list 241 and free list 240) is locked (step 401).

【0082】mutex lock243が固定されると(及びリン
クリスト242がロックされると)、記憶スレッド201がメ
ッセージを処理する。記憶スレッド201は、次に自由リ
スト240からメッセージ記憶要素をリムーブする(アン
リンクする)。次いで、記憶スレッド201は、取り出さ
れたメッセージをアンリンクされたメッセージ記憶要素
に記憶させ(ステップ403)、該メッセージをそれに関
連するデッドラインに従って要求リスト241に挿入する
(ステップ404)。詳細には、挿入されるメッセージ
(新たなメッセージ)が非ゼロのデッドラインを有して
いる場合には、記憶スレッド201は、要求リスト241のサ
ーチをその後端から開始し(即ち、該後端が最も緊急性
の低い非ゼロのデッドラインを有している)、新たなメ
ッセージを、該新たなメッセージよりも早いデッドライ
ンを有する最初のメッセージの直後で要求リスト241に
挿入する。要求リスト241中のメッセージで該新たなメ
ッセージよりも早いデッドラインを有するものが1つも
存在しない場合には、該新たなメッセージは要求リスト
241の最初に挿入される。
When the mutex lock 243 is locked (and the link list 242 is locked), the storage thread 201 processes the message. The storage thread 201 then removes (unlinks) the message storage element from the free list 240. The storage thread 201 then stores the retrieved message in the unlinked message storage element (step 403) and inserts the message into the request list 241 according to its associated deadline (step 404). Specifically, if the message to be inserted (the new message) has a non-zero deadline, the storage thread 201 starts searching the request list 241 from its trailing end (ie, the trailing end). Has the least urgent non-zero deadline), inserts the new message into the request list 241 immediately after the first message with a deadline earlier than the new message. If no message in the request list 241 has a deadline earlier than the new message, the new message is
Inserted at the beginning of 241.

【0083】しかしながら、新たなメッセージがゼロの
デッドラインを有している場合には、記憶スレッド201
は、要求リスト241のサーチをその前端から開始し(即
ち、該前端が最も緊急性の高いデッドラインを有してい
る)、新たなメッセージを、非ゼロのデッドラインを有
する最初のメッセージの直前で要求リスト241に挿入す
る。要求リスト241中のメッセージで非ゼロのデッドラ
インを有するものが1つも存在しない場合には、該新た
なメッセージは要求リスト241の最後に挿入される。新
たなメッセージが要求リスト241に挿入された後、記憶
スレッド201は、次いでmutex lock243を解放してリンク
リスト242をアンロックする(ステップ405)。記憶スレッ
ド201は、メッセージ待ち行列243が空になるまでメッセ
ージ待ち行列処理400を繰り返す。次いで、記憶スレッ
ド201は、要求リスト241中の優先順位付けされたメッセ
ージの処理へと進む。
However, if the new message has a deadline of zero, the storage thread 201
Starts a search of request list 241 from its leading end (ie, the leading end has the most urgent deadline), and places a new message immediately before the first message with a non-zero deadline. Is inserted into the request list 241. If none of the messages in the request list 241 have a non-zero deadline, the new message is inserted at the end of the request list 241. After the new message is inserted into the request list 241, the storage thread 201 then releases the mutex lock 243 and unlocks the link list 242 (step 405). The storage thread 201 repeats the message queue processing 400 until the message queue 243 is empty. The storage thread 201 then proceeds to process the prioritized messages in the request list 241.

【0084】図8は、要求リスト241中の優先順位付け
されたメッセージの記憶スレッド201による処理500を示
すフローチャートである。
FIG. 8 is a flowchart showing a process 500 by the storage thread 201 of the messages with priorities in the request list 241.

【0085】記憶装置131に対して2つ以上の記憶スレ
ッド201が存在する場合、現在の記憶スレッド201は、該
記憶装置131に関連するmutex lock243を得て、リンクリ
ストデータ構造242(自由リスト240及び要求リスト24
1)をロックする(ステップ501)。
If there are two or more storage threads 201 for the storage device 131, the current storage thread 201 obtains the mutex lock 243 associated with the storage device 131, and obtains the link list data structure 242 (free list 240). And request list 24
1) is locked (step 501).

【0086】該データ構造をロックした後、記憶スレッ
ド201が、非ゼロのデッドラインのメッセージにそれら
のデッドラインを逸させることなく要求リスト241中の
ゼロのデッドラインのメッセージをサービスするだけの
十分な時間があるか否かを判定する。記憶スレッド201
は、要求リスト241中の非ゼロのデッドラインのメッセ
ージの操作についての最も最近の開始時間を計算する
(ステップ503)ことによりこの決定を行う。該最も最近
の開始時間は、緊急性の最も低い非ゼロのデッドライン
を有する要求リスト241の終わりから開始して、各メッ
セージ毎に、以前のメッセージ及び現在のメッセージに
関連する該メッセージのデッドラインについて計算され
た最も最近の開始時間のうち一層小さいものから、期待
されるディスクアクセス(ディスク入出力)時間を減算
することで最も最近の開始時間を計算することにより、
繰り返し計算される。
After locking the data structure, the storage thread 201 has sufficient time to service the zero deadline messages in the request list 241 without losing those deadlines to non-zero deadline messages. It is determined whether there is an appropriate time. Memory thread 201
Computes the most recent start time for operations on non-zero deadline messages in request list 241
(Step 503) makes this determination. The most recent start time starts at the end of the request list 241 with the least urgent non-zero deadline, and for each message, the deadline of the previous message and the message associated with the current message. By calculating the most recent start time by subtracting the expected disk access (disk I / O) time from the smaller of the most recent start times calculated for
It is calculated repeatedly.

【0087】最も最近の開始時間を計算する場合、該最
も最近の開始時間は、最初に、最も最近の開始時間によ
り表現可能な最大整数値へと初期化される(ステップ50
2)。更に、ディスクアクセス時間は、要求リスト241に
関連する特定の記憶装置131から1つのデータブロック
(128kbyteのデータ)を読み出すのに要する時間に相当
する。
When calculating the most recent start time, the most recent start time is first initialized to the largest integer value representable by the most recent start time (step 50).
2). Further, the disk access time corresponds to the time required to read one data block (128 kbyte data) from the specific storage device 131 related to the request list 241.

【0088】次に、記憶スレッド201は、ステップ504の
比較を行い、計算された最も最近の開始時間が与えられ
た場合にゼロのデッドラインのメッセージを操作するの
に十分な時間が存在するか否かを判定する。この判定
は、現在の時間と、最も最近の開始時間及び特定の記憶
装置131からの期待されるディスクアクセス時間(1デ
ータブロック(128kbyteのデータ)の読み出しに要する
時間)の差とを比較することにより行われる(ステップ
504)。
Next, the storage thread 201 performs a comparison at step 504 to determine if there is sufficient time to operate on a zero deadline message given the most recently calculated start time. Determine whether or not. This determination is to compare the current time with the most recent start time and the difference between the expected disk access time from the specific storage device 131 (the time required to read one data block (128 kbyte data)). (Step
504).

【0089】現在の時間が、最も最近の開始時間及び期
待されるディスクアクセス時間の差よりも小さい場合に
は、ゼロのデッドラインのメッセージを操作すると共に
最も最近の開始時間の要件を依然として満たすだけの十
分な時間が存在する。従って、かかる場合には、要求リ
スト241中の最初のメッセージが処理のためにリムーブ
される(ステップ506)。この最初のメッセージは、ゼロ
のデッドラインのメッセージ又は最も緊急性の高い(即
ち最小デッドラインの)メッセージとなる。
If the current time is less than the difference between the most recent start time and the expected disk access time, only manipulate the deadline message of zero and still meet the most recent start time requirement. There is enough time. Accordingly, in such a case, the first message in the request list 241 is removed for processing (step 506). This first message will be the zero deadline message or the most urgent (ie, least deadline) message.

【0090】しかしながら、現在の時間が、最も最近の
開始時間及び期待されるディスクアクセス時間の差より
も大きい場合には、ゼロのデッドラインのメッセージを
操作すると共に最も最近の開始時間の要件を依然として
満たすだけの十分な時間が存在しない。従って、かかる
場合には、要求リスト241中の最初の非ゼロのデッドラ
インのメッセージが処理のためにリムーブされる(ステ
ップ505)。
However, if the current time is greater than the difference between the most recent start time and the expected disk access time, then the zero deadline message will be manipulated and the most recent start time requirement will still be in effect. There is not enough time to fill. Accordingly, in such a case, the first non-zero deadline message in the request list 241 is removed for processing (step 505).

【0091】処理のためにメッセージをリムーブした
(ステップ505又は506)後、記憶スレッド201は、リンク
リストデータ構造242をアンロックし(ステップ507)、
次いで該メッセージを処理する(ステップ508)。この処
理の後、記憶スレッド201は次いでリンクリストデータ
構造242をロックし(ステップ509)、ステップ508で処理
されたメッセージにより占有されたメッセージ記憶要素
を自由リスト240に挿入する(ステップ510)。この挿入
の後、リンクリストデータ構造242はアンロックされる
(ステップ511)。
After removing the message for processing (step 505 or 506), the storage thread 201 unlocks the linked list data structure 242 (step 507)
Next, the message is processed (step 508). After this processing, the storage thread 201 then locks the linked list data structure 242 (step 509) and inserts the message storage element occupied by the message processed in step 508 into the free list 240 (step 510). After this insertion, the linked list data structure 242 is unlocked (step 511).

【0092】記憶スレッド処理500の完了後、記憶スレ
ッド201は、記憶スレッド処理500が開始してからメッセ
ージ待ち行列233に書き込まれたメッセージを取り出す
ために、図7に示したメッセージ待ち行列処理400へと
処理を戻す。
After completion of the storage thread process 500, the storage thread 201 proceeds to the message queue process 400 shown in FIG. 7 to retrieve the message written to the message queue 233 since the start of the storage thread process 500. And return the process.

【0093】記憶モジュールのデータ構造及びアクセス
機構 VODシステム100は、ビデオオブジェクトの記憶を管
理するためにハイブリッドファイル管理機構を用いる。
該ハイブリッドファイル管理機構は、多数の名称付きビ
デオオブジェクト(即ちビデオファイル)の管理タスク
を簡素化すると共に生(raw)ディスクドライブの最大性
能の帯域幅を完全に利用するために、中央制御モジュー
ル110上で実行されるオペレーティングシステムによっ
て提供されるファイルシステムサービスと生ディスクア
クセス法との両方を含むものである。
Data Structure and Access of Storage Module
The mechanism VOD system 100 uses a hybrid file management mechanism to manage the storage of video objects.
The hybrid file management mechanism simplifies the task of managing a large number of named video objects (i.e., video files) and fully utilizes the full performance bandwidth of raw disk drives by using a central control module 110. It includes both file system services provided by the operating system running on it and raw disk access methods.

【0094】一般に、ビデオオブジェクト自体のサイズ
は、該ビデオオブジェクトに関する制御情報(例えば、
ビデオ属性、作成日時、及び記憶マップ等)に比べて極
めて大きなものである。典型的には、ビデオオブジェク
トのサイズはGbyte、その制御情報のサイズはkbyte又は
それ未満といったものである。更に、ビデオオブジェク
トについての入出力動作の回数はその制御情報について
の入出力動作の回数を大きく上回るものである。VOD
システム100は、ビデオオブジェクト自体について記憶
及びアクセスを行うための生ディスク法を用いる。この
ため、オペレーティングシステムのファイルシステムに
関連する空間上及び性能上のオーバーヘッドを回避する
(バイパスする)ことにより、空間的な要件が最小限と
なり、性能が最適化される。
In general, the size of a video object itself is determined by control information (for example,
Video attribute, creation date, storage map, etc.). Typically, the size of a video object is Gbyte, and the size of its control information is kbyte or less. Further, the number of input / output operations for the video object greatly exceeds the number of input / output operations for the control information. VOD
System 100 uses a raw disk method for storing and accessing the video objects themselves. Thus, spatial requirements are minimized and performance is optimized by avoiding (bypassing) the space and performance overhead associated with the operating system file system.

【0095】しかしながら、VODシステム100は、各
ビデオオブジェクトに関連する制御情報を記憶するため
にオペレーティングシステムのファイルシステムを使用
する。かかるファイルシステムを使用することにより、
ビデオオブジェクトの名称空間マッピング(name space
mapping)の管理、ディレクトリ情報の維持、及び制御情
報のための記憶空間の動的な割り当て及び割り当て解除
を行うという複雑性が排除される。その上、ソフトウェ
アのテスト、システムのメンテナンス、及び将来のアッ
プグレードに対する備えが簡単になる。同時に、記憶ス
ペース及び性能に関するオーバーヘッドにより生じる不
利益が最小限となる。これは、ビデオオブジェクトと比
較して制御データの方がサイズが比較的小さく、及び入
出力要求の数が比較的少ないことによる。
However, VOD system 100 uses the operating system's file system to store control information associated with each video object. By using such a file system,
Name space mapping of video objects
The complexity of managing mappings, maintaining directory information, and dynamically allocating and deallocating storage space for control information is eliminated. Moreover, software testing, system maintenance, and preparation for future upgrades are simplified. At the same time, the penalties caused by storage space and performance overhead are minimized. This is due to the relatively small size of the control data and the relatively small number of input / output requests as compared to the video object.

【0096】ここで再び図2を参照する。中央制御モジ
ュール110中のシステムディスク235は、ビデオカタログ
サブディレクトリ236及びサーバコンフィギュレーショ
ンファイル237を含んでいる。
Here, FIG. 2 is referred to again. The system disk 235 in the central control module 110 contains a video catalog subdirectory 236 and a server configuration file 237.

【0097】ビデオカタログサブディレクトリ236はデ
ィレクトリ(例えば"/svsdrive/cat")であり、複数の
名称付きファイルを有している。この場合、各々の名称
付きファイルは、記憶モジュール130に記憶されている
同じ名称のビデオオブジェクトに対応するものである。
かかる名称付きファイルは、ビデオ属性、再生データ速
度、及び同時に発生する最大ユーザ数等の制御情報を含
んでいる。
The video catalog subdirectory 236 is a directory (for example, "/ svsdrive / cat") and has a plurality of named files. In this case, each named file corresponds to a video object of the same name stored in the storage module 130.
Such named files contain control information such as video attributes, playback data rate, and the maximum number of concurrent users.

【0098】また、サーバコンフィギュレーションファ
イル237(例えば"drive-confuguration")は、記憶モジ
ュール130における記憶装置131の記憶上の割り当てに関
する情報を含んでいる。かかる情報には、例えば、生装
置名称、ストライプセグメントサイズ、及び冗長性に関
する情報等が含まれる。サーバコンフィギュレーション
ファイル237は、システムのスタートアップ時に読み出
され、VODシステム100を構成するために使用され
る。
The server configuration file 237 (for example, “drive-confuguration”) contains information on the storage allocation of the storage device 131 in the storage module 130. Such information includes, for example, information on the raw device name, stripe segment size, and redundancy. The server configuration file 237 is read at system startup and used to configure the VOD system 100.

【0099】更に、システムディスク235は、記憶モジ
ュール130における記憶装置131の数と同数の多くのマウ
ントポイントを有している。通常の動作中に、各記憶装
置1313の制御区画が該マウントポイントのうちの1つに
マウントされる。
Further, the system disk 235 has as many mount points as the number of storage devices 131 in the storage module 130. During normal operation, the control partition of each storage device 1313 is mounted on one of the mount points.

【0100】VODシステム100の構成中に、各記憶装
置131は、2つの区画、即ち制御区画及びデータ区画へ
とフォーマットされる。
During the configuration of the VOD system 100, each storage device 131 is formatted into two partitions, a control partition and a data partition.

【0101】記憶装置131のフォーマット中に、各制御
区画にファイルシステムが作成される。各制御区画は、
対応するデータ区画についてセグメントの利用可能性を
指定する自由スペースビットマップを含んでいる。
During the format of the storage device 131, a file system is created in each control partition. Each control partition
Contains a free space bitmap that specifies segment availability for the corresponding data partition.

【0102】制御区画はまた、多数の名称付きファイル
を含んでおり、該名称付きファイルの各々は、ビデオオ
ブジェクトのストライプのスペースマップを1つずつ含
んでいる。1つのスペースマップは、1つのビデオスト
ライプに含まれている128kbyteのデータブロックの各々
に関するアドレス情報のマッピングを行う。従って、ス
ペースマップは、記憶装置131上のビデオストライプの1
28kbyteのデータブロックの各々の位置を定めるために
使用される。一層詳細には、スペースマップは、ビデオ
オブジェクトのストライプ内の論理ブロック番号を、同
じ記憶装置131上のデータ区画内の物理セグメント番号
に変換する。スペースマップファイルの名称は、対応す
るビデオオブジェクトの名称にストライプ番号を付加す
ることにより形成される。
The control section also contains a number of named files, each of which contains one space map of video object stripes. One space map maps address information for each of the 128 kbyte data blocks included in one video stripe. Therefore, the space map indicates one of the video stripes on the storage device 131.
Used to locate each of the 28 kbyte data blocks. More specifically, the space map translates logical block numbers within a stripe of a video object into physical segment numbers within a data partition on the same storage device 131. The name of the space map file is formed by adding a stripe number to the name of the corresponding video object.

【0103】各記憶装置131のデータ区画は、生ディス
ク区画として形成される(即ち、如何なるオペレーショ
ンシステム情報も伴わずにディスクがフォーマットされ
る)。データ区画に対するアクセス及び記憶管理は、完
全に中央制御モジュール110の制御の下で行われる。よ
り詳細には、記憶スレッド201がデータ区画のアクセス
及び記憶管理を制御する。
The data partition of each storage device 131 is formed as a raw disk partition (ie, the disk is formatted without any operating system information). Access and storage management for the data partitions is performed entirely under the control of the central control module 110. More specifically, a storage thread 201 controls access and storage management of data partitions.

【0104】記憶モジュールにおける記憶装置のフォー
マッティング 記憶装置131は複数のグループ(ストライプグループと
呼ばれる)に編成され、該各グループには番号(ストラ
イプグループ番号と呼ばれる)が1つずつ割り当てられ
る。1つのビデオオブジェクトが複数のビデオストライ
プへと分割される際、それらのビデオストライプは特定
のストライプグループに割り当てられる。ビデオオブジ
ェクト内の各ビデオストライプは、該割り当てられたス
トライプグループ内で別個の記憶装置131に記憶され
る。記憶モジュール130における各記憶装置131は、特に
VODシステム100のためにフォーマットされる。
The format of the storage device in the storage module
The matting storage device 131 is organized into a plurality of groups (called stripe groups), and each group is assigned a number (called a stripe group number) one by one. When a video object is divided into multiple video stripes, those video stripes are assigned to a specific stripe group. Each video stripe in the video object is stored on a separate storage device 131 within the assigned stripe group. Each storage device 131 in the storage module 130 is formatted specifically for the VOD system 100.

【0105】該フォーマット処理の際に、ユーザは、ス
トライプグループ番号、ストライプ番号、生装置アドレ
ス、ストライプセグメントサイズ、及びフォーマットす
べきディスクに関する一次/二次標識等の記憶情報を指
定する。ユーザはまた、例えばストライプグループ2及
びストライプ4のディスクを"/svsdrive/G2/4"とすると
いった、所望の名称付け上の約束を用いてマウントポイ
ントを作成する。
At the time of the formatting process, the user specifies storage information such as a stripe group number, a stripe number, a raw device address, a stripe segment size, and a primary / secondary indicator relating to a disk to be formatted. The user also creates a mount point using the desired naming convention, for example, "/ svsdrive / G2 / 4" for disks in stripe group 2 and stripe 4.

【0106】次に、"/svsdrive/drive-configuration"
サーバコンフィギュレーションファイル237がオープン
される。サーバコンフィギュレーションファイル237が
存在しない場合には、新たなサーバコンフィギュレーシ
ョンファイル237が作成される。ユーザにより指定され
た記憶フォーマット情報は、サーバコンフィギュレーシ
ョンファイル237に対する妥当性の検査が行われる。該
妥当性検査の後、新たなドライブ名及び情報がサーバコ
ンフィギュレーションファイル237に追加される。
Next, "/ svsdrive / drive-configuration"
The server configuration file 237 is opened. If the server configuration file 237 does not exist, a new server configuration file 237 is created. The storage format information specified by the user is checked for validity with respect to the server configuration file 237. After the validation, the new drive name and information are added to the server configuration file 237.

【0107】次に、ディスクが2つの区画にフォーマッ
トされる。区画0(制御区画)は、マウント可能なもの
として規定され、該区画0にファイルシステムが作成さ
れる。区画1(データ区画)は、マウント不能なものと
して規定される。
Next, the disk is formatted into two partitions. Partition 0 (control partition) is defined as mountable, and a file system is created in partition 0. Section 1 (data section) is defined as unmountable.

【0108】次に、区画0が、以前に生成されたマウン
トポイントにマウントされる。従って、"freespace.ma
p"等のファイルが、自由スペースビットマップとして区
画0に作成される。該ファイルは次いで、区画1におけ
る全てのセグメントが利用可能である(未割り当てであ
る)ことを示すよう初期化される(但し、セグメント0
を除く)。次いで、区画0がマウント解除される。
Next, partition 0 is mounted at the previously created mount point. Therefore, "freespace.ma
A file such as p "is created in partition 0 as a free space bitmap. The file is then initialized to indicate that all segments in partition 1 are available (unallocated) ( However, segment 0
except for). Then, partition 0 is unmounted.

【0109】次に、区画1がオープンされて、ストライ
プグループ番号、ストライプ番号、ストライプ用のマウ
ントポイント、一次/二次フラグ、活動ディスクフラ
グ、一次ディスクのための生装置名称、及び二次ディス
クのための生装置名称等の情報が、セグメント0に書き
込まれる。
Next, the partition 1 is opened, and the stripe group number, stripe number, mount point for stripe, primary / secondary flag, active disk flag, raw device name for primary disk, and secondary disk Information such as the name of the raw device for writing is written in segment 0.

【0110】セグメント0への書き込み後、区画1及び
コンフィギュレーションファイルがクローズされる。
After writing to segment 0, partition 1 and the configuration file are closed.

【0111】記憶モジュールのスタートアップ処理 記憶装置131のフォーマット後、VODシステム100をス
タートアップさせることが可能になる。該スタートアッ
プ処理は、サーバコンフィギュレーションファイル237"
/svsdrive/drive-configuration"をDRAM232に読み
込み、次いで、該サーバコンフィギュレーションファイ
ル237中のコンフィギュレーション情報を実際のハード
ウェア構成と比較することにより妥当性検査を行うこと
を含む。
[0111] After the format of the start-up processing storage device 131 of the storage module, it is possible to start up the VOD system 100. The startup process is performed in the server configuration file 237 "
/ svsdrive / drive-configuration "into the DRAM 232 and then perform a validation by comparing the configuration information in the server configuration file 237 with the actual hardware configuration.

【0112】サーバコンフィギュレーションファイル23
7の妥当性検査の後、各ディスクが次の処理によって初
期化される。
The server configuration file 23
After 7 validations, each disk is initialized by the following process.

【0113】(i) ディスクの制御区画(区画0)をそ
の対応するマウントポイント(例えば、"/svsdrive/G3/
2")にマウントし、(ii) 制御区画からメモリに自由ス
ペースビットマップファイルを読み込み、通常の動作時
にスペースの割り当て及び割り当て解除のために該ファ
イルに対して効率的にアクセス及び更新を行うことがで
きるようにし、(iii) ディスク上のビデオオブジェク
トのストライプに対する後続の通常のアクセスのために
該ディスクのデータ区画(区画1)をオープンする。
(I) Copy the control partition (partition 0) of the disk to its corresponding mount point (for example, "/ svsdrive / G3 /
2 "), and (ii) read the free space bitmap file into memory from the control partition and efficiently access and update the file during normal operation to allocate and deallocate space. And (iii) opening the data partition (partition 1) on the disk for subsequent normal access to the stripes of video objects on the disk.

【0114】ビデオオブジェクトのオープン VODシステム100は、スタートアップ処理を完了する
と、クライアントプログラム206がビデオオブジェクト
を作成するためにFileOpen()ファンクションコールを行
うまで待機する。例えば、クライアントプログラム206
は、"xyz"と呼ばれるビデオオブジェクトを作成するた
めにFileOpen()ファンクションをコールすることができ
る(ステップ620)。
[0114] open VOD system 100 of the video object has completed the start-up process, the client program 206 will wait until the FileOpen () function call in order to create a video object. For example, the client program 206
Can call the FileOpen () function to create a video object called "xyz" (step 620).

【0115】FileOpen()コールに応じて、VODシステ
ム100は、図9にフローチャートで示すビデオオープン
処理を行って、記憶モジュール130上のビデオオブジェ
クトをオープンする。
In response to the FileOpen () call, the VOD system 100 performs the video open processing shown in the flowchart of FIG. 9 to open the video object on the storage module 130.

【0116】該ビデオオープン処理は、ビデオカタログ
ディレクトリ236(例えばディレクトリ"/svsdrive/ca
t")中のビデオカタログファイル"xyz"を作成する(ス
テップ601)ことにより開始する。VODシステム100は
次いで、ビデオ属性、データ速度、ビデオ長、及び作成
日時等の制御情報を、ビデオカタログファイル"xyz"に
書き込む(ステップ602)。
The video open processing is performed in the video catalog directory 236 (for example, directory “/ svsdrive / ca”).
t ") begins by creating a video catalog file" xyz "in step 601. The VOD system 100 then stores control information such as video attributes, data rate, video length, and creation date and time in the video catalog file. Write to "xyz" (step 602).

【0117】次に、外処理は、ストライプグループ内の
各記憶装置131毎にスペースマップを生成する(ステッ
プ603)。該スペースマップは、特定のビデオストライプ
の各データブロックを記憶装置131上のアドレスに変換
するものである。該スペースマップは、各記憶装置131
の制御区画(即ち区画0)に存在する。該スペースマッ
プファイルの名称は、好適には、ストライプの総数及び
特定のストライプ番号をビデオオブジェクト名に付加す
ることにより生成される。例えば、ビデオ"xyz"に6つ
のストライプが存在する場合、該ビデオオブジェクトの
ストライプ3に関連するスペースマップファイルに"xyz
6-3"という名称を付けることができる。該スペースマッ
プ生成プロセス603は、ビデオオブジェクトの各ストラ
イプ毎に繰り返される。次いで、それらのスペースマッ
プファイルが書き込み動作のためにオープンされる。
Next, the external processing generates a space map for each storage device 131 in the stripe group (step 603). The space map converts each data block of a specific video stripe into an address on the storage device 131. The space map is stored in each storage device 131.
In the control section (ie, section 0). The name of the space map file is preferably generated by appending the total number of stripes and a specific stripe number to the video object name. For example, if the video "xyz" has six stripes, the space map file associated with stripe 3 of the video object contains "xyz
The space map generation process 603 is repeated for each stripe of the video object. The space map files are then opened for a write operation.

【0118】次いで、作成されてオープンされた各スペ
ースマップファイル毎に、VODシステム100は、記憶
装置131に対応するファイル制御ブロックチェーンに制
御ブロックを挿入する(ステップ605)。各記憶装置131
は、ファイル制御ブロックチェーンを1つずつ有してい
る。ファイル制御ブロックチェーンは、一連の制御ブロ
ックであり、DRAM232中で共有される。制御ブロッ
クは、各ビデオストライプに関連する制御情報のコピー
であり、特に、記憶装置131の制御区画に記憶されてい
るスペースマップのコピーを含んでいる。ファイル制御
ブロックチェーンにおける制御ブロックがDRAM232
に記憶されているため、該制御ブロック中のスペースマ
ップは、各制御区画で共有される実際のスペースマップ
よりも速いアクセス時間を有するものとなる。
Next, for each space map file created and opened, the VOD system 100 inserts a control block into the file control block chain corresponding to the storage device 131 (step 605). Each storage device 131
Has one file control block chain. The file control block chain is a series of control blocks and is shared in the DRAM 232. The control block is a copy of the control information associated with each video stripe, and in particular includes a copy of the space map stored in the control partition of storage device 131. The control block in the file control block chain is a DRAM 232
, The space map in the control block has a faster access time than the actual space map shared by each control partition.

【0119】次いで、クライアントプログラム206が、
ビデオオブジェクトデータの書き込みのためにFileWrit
e()ファンクションをコールし(ステップ621)、VOD
システム100は、各データブロック毎に、データブロッ
クを記憶するための特定のストライプグループ中の記憶
装置131を選択する(ステップ607)。記憶装置131を選択
した後、VODシステム100は、利用可能なスペースを
求めて対応する自由スペースピットマップをサーチする
ことにより、データブロックのためのメモリの割り当て
を行う(ステップ608)。
Next, the client program 206
FileWrit for writing video object data
Call the e () function (step 621) and
The system 100 selects, for each data block, a storage device 131 in a specific stripe group for storing the data block (step 607). After selecting the storage device 131, the VOD system 100 allocates memory for the data block by searching the corresponding free space pit map for available space (step 608).

【0120】ビデオオブジェクトデータを記憶するため
のメモリが割り当てられた後、中央制御モジュール110
が、ビデオオブジェクトの各ストライプ毎にファイル制
御ブロックを更新し(ステップ609)、また記憶割り当て
を反映するよう自由スペースビットマップを更新する
(ステップ609)。次に、中央制御モジュール110は、ス
ペースマップに従ってストライプグループ中に存在する
各記憶装置131の区画1にビデオオブジェクトデータを
書き込むために、生ディスク書き込み動作を生成する
(ステップ610)。全てのデータブロックの書き込み後、
クライアントプログラム206は、FileClose()ファンクシ
ョンをコールする。該FileClose()ファンクションを受
信した際に、VODシステム100は、各記憶装置131に記
憶されているスペースマップを更新する。
After the memory for storing the video object data has been allocated, the central control module 110
Updates the file control block for each stripe of the video object (step 609) and updates the free space bitmap to reflect the storage allocation
(Step 609). Next, the central control module 110 generates a raw disk write operation to write the video object data to the partition 1 of each storage device 131 present in the stripe group according to the space map.
(Step 610). After writing all data blocks,
The client program 206 calls the FileClose () function. Upon receiving the FileClose () function, the VOD system 100 updates the space map stored in each storage device 131.

【0121】ビデオオブジェクトの再生 ビデオオブジェクトの再生は、クライアントプログラム
206が、StreamOpen()次いでStreamPlay()ファンクショ
ンコールを生成することにより開始される。クライアン
トプログラム206は、例えば、StreamOpen()及びStreamP
layback()ファンクションをコールして、"xyz"という名
称が付けられたビデオオブジェクトの再生を開始させる
ことができる。図10は、再生のためにビデオオブジェ
クトをオープンする処理を示すフローチャートである。
Reproduction of Video Object The reproduction of the video object is performed by the client program.
206 begins by generating a StreamOpen () and then a StreamPlay () function call. For example, StreamOpen () and StreamP
The layback () function can be called to start playing the video object named "xyz". FIG. 10 is a flowchart showing processing for opening a video object for reproduction.

【0122】StreamOpen()ファンクションがコールされ
ると(ステップ720)、プログラムコード231は、ビデオ
カタログファイル237(例えば"svsdrive/cat/xyz")を
オープンし(ステップ701)、そのコンテンツ(即ち内
容)を読み出す。ビデオカタログファイル237から読み
出された情報(ストリームデータ速度、ビデオオブジェ
クトサイズ等)は、ビデオオブジェクトの再生を制御す
るために使用される。
When the StreamOpen () function is called (step 720), the program code 231 opens the video catalog file 237 (for example, "svsdrive / cat / xyz") (step 701), and its contents (ie, contents). Is read. Information (stream data rate, video object size, etc.) read from the video catalog file 237 is used to control the reproduction of the video object.

【0123】次いで、ビデオオブジェクトの各ストライ
プ毎に、プログラムコード231は、(特定のビデオスト
ライプに割り当てられた記憶装置131に記憶されてい
る)スペースマップファイルを読み出して(ステップ70
2)、制御ブロックを生成する。次いで、プログラムコ
ード231は、ビデオストライプが割り当てられている記
憶装置131に関連する制御ブロックチェーンのサーチを
行う(ステップ703)。ビデオストライプに関する制御ブ
ロックが制御ブロックチェーン中に既に存在する場合に
は、プログラムコード231は使用カウントをインクリメ
ントする(ステップ704)。また、該制御ブロックが制御
ブロックチェーン中に既に存在しない場合には、プログ
ラムコード231は、該制御ブロックチェーンに該制御ブ
ロックを追加して(ステップ705)、使用カウントを1に
セットする。
Next, for each stripe of the video object, the program code 231 reads the space map file (stored in the storage device 131 assigned to the specific video stripe) (step 70).
2), generate control blocks. Next, the program code 231 searches the control block chain associated with the storage device 131 to which the video stripe is assigned (step 703). If the control block for the video stripe already exists in the control block chain, the program code 231 increments the usage count (step 704). If the control block does not already exist in the control block chain, the program code 231 adds the control block to the control block chain (step 705) and sets the use count to one.

【0124】前記サーチ703を行った後、プログラムコ
ード231は、次いで制御ブロックに記憶されているスペ
ースマップ情報を使用して、記憶装置131の区画1に対
して生ディスク読み出し動作を行って(ステップ706)、
該ビデオオブジェクトデータをメモリバッファ114に読
み込む。
After performing the search 703, the program code 231 performs a raw disk read operation on the partition 1 of the storage device 131 by using the space map information stored in the control block (step 703). 706),
The video object data is read into the memory buffer 114.

【0125】続いてクライアントプログラム206によっ
てStreamPlay()ファンクションがコールされると(ステ
ップ721)、中央制御モジュール110は、ビデオオブジェ
クトデータを、その処理のためにメモリバッファ114か
ら分配モジュール120へと送る。プログラムコード231
は、ビデオオブジェクトの終わりに達するまで、又はユ
ーザにより指定された終了条件(例えば時間制限)等の
阻止条件が発生するまで、生ディスク読み出し動作を続
行する(ステップ708)。次いで、プログラムコード231
は、コールバックファンクションによってクライアント
をコールして、再生の終了をクライアントプログラム20
6に知らせる。
Subsequently, when the StreamPlay () function is called by the client program 206 (step 721), the central control module 110 sends the video object data from the memory buffer 114 to the distribution module 120 for processing. Program code 231
Continues the raw disk read operation until the end of the video object is reached or until a blocking condition, such as an end condition (eg, time limit) specified by the user, occurs (step 708). Then, program code 231
Calls the client by the callback function and terminates the playback by the client program 20.
Inform 6

【0126】次いで、クライアントプログラム206はStr
eamClose()ファンクションをコールする。プログラムコ
ード231は、次いで、StreamClose()ファンクションコー
ルに応じてビデオオブジェクトの各ストライプ毎にクロ
ーズ処理を行う。
Next, the client program 206
Call the eamClose () function. Next, the program code 231 performs a closing process for each stripe of the video object in response to the StreamClose () function call.

【0127】該クローズ処理には、制御ブロックチェー
ン中のスペースマップファイルに関する使用カウントを
判定することが含まれる。該判定後、使用カウントがゼ
ロである場合、制御ブロックチェーンから該制御ブロッ
クが削除される。
The closing process includes determining a use count for a space map file in the control block chain. After the determination, if the usage count is zero, the control block is deleted from the control block chain.

【0128】該判定後、プログラムコード231は、ビデ
オオブジェクトのストライプに関するスペースマップフ
ァイルをクローズする。
After the determination, the program code 231 closes the space map file related to the stripe of the video object.

【0129】最終的に、プログラムコード231は、ビデ
オオブジェクトに関するビデオカタログファイル237
(例えば"/svsdrive/cat/xyz")をクローズする。
Finally, the program code 231 is used to store the video catalog file 237 related to the video object.
(Eg "/ svsdrive / cat / xyz").

【0130】ディスクロード平衡化(スケジューリン
グ) マルチストリームVODシステム100において、各ビデ
オ再生ストリームの開始時間が調整されない場合には、
読み出しを要求するあまりに多数のメッセージを同時に
受けることによって1つ又は2つ以上の記憶装置131が
オーバーロードされる可能性がある。かかる事態が発生
すると、連続するストリーム再生に関する時間要件を満
たすよう適時に操作されないメッセージが生じる可能性
がある。これは、ビデオ再生に望ましくない欠陥を生じ
させるものとなる。VODシステム100は、好適には、
データストライプスキームを用いて多数の記憶装置131
へのビデオオブジェクトの記憶をインターリーブさせ、
更に、スケジューリング法を用いて各ビデオストリーム
の開始時間を調整し、これにより複数の記憶装置131の
何れもオーバーロードされることがないようにする。該
スケジューリング法はまた、ストリームの開始前の時間
遅延を最小限にする。
Disk Load Balancing (Scheduling
G) In the multi-stream VOD system 100, if the start time of each video playback stream is not adjusted,
One or more storage devices 131 may be overloaded by receiving too many messages simultaneously requesting a read. When this occurs, messages may not be timely acted to meet the time requirements for continuous stream playback. This causes undesirable defects in video playback. The VOD system 100 preferably
Multiple storage devices 131 using data stripe scheme
Interleave the storage of video objects into
Furthermore, the start time of each video stream is adjusted using a scheduling method, so that none of the plurality of storage devices 131 is overloaded. The scheduling method also minimizes the time delay before the start of the stream.

【0131】好適には、該スケジューリング法は、スト
ライプグループ中のディスクの各組毎に個別に用いられ
る。
Preferably, the scheduling method is used individually for each set of disks in a stripe group.

【0132】時間帯を用いてビデオストリームの再生の
開始を分配し、これによりディスクアクセスの集中(オ
ーバーロード)を回避する。各ビデオストリームは、特
定の時間帯で開始するようにスケジューリングされる
(割り当てられる)。該スケジューリング法によれば、
M個の時間帯が存在する(ここで、Mはストライプグル
ープ中の記憶装置131の数である)。該M個の時間帯
は、Z1…Zmと表される。
The start of the reproduction of the video stream is distributed using the time zone, thereby avoiding the concentration (overload) of disk accesses. Each video stream is scheduled (assigned) to start at a specific time slot. According to the scheduling method,
There are M time zones (where M is the number of storage devices 131 in the stripe group). The M time zones are represented as Z 1 ... Z m .

【0133】下記の表1は、1ストライプグループにつ
き4つの記憶装置131を有するシステムにおける好適な
時間帯ローテーションを示すものである。
Table 1 below shows a preferred time zone rotation in a system having four storage devices 131 per stripe group.

【0134】[0134]

【表1】 [Table 1]

【0135】時間は、タイムスロット(Tn)と呼ばれ
る所定の固定長の時間間隔で測定される。例えば、タイ
ムスロットT1中に、ディスク1が、時間帯Z1に割り当
てられたビデオストリームのみを開始させ、ディスク2
が、時間帯Z2に割り当てられたビデオストリームのみ
を開始させる(以下同様)。同様に、タイムスロットT
2中には、ディスク1が、時間帯Z2に割り当てられたビ
デオストリームのみを開始させ、ディスク2が、時間帯
3に割り当てられたビデオストリームのみを開始させ
る(以下同様)。従来の方法で行われていたように各ビ
デオオブジェクトを所定の一定の時間帯(Zi)に割り
当てるのではなく、ビデオストリームが開始することに
なる記憶装置131に関連する最も早い利用可能な時間帯
(Zi)にビデオオブジェクトの再生開始が割り当てら
れる。最も早い利用可能な時間帯(Zi)とは、時間帯
iに現在割り当てられているビデオストリームに欠陥
を決して生じさせることなく再生を操作するのに十分な
容量を有する次の時間帯(Zi)である。
Time is measured at predetermined fixed-length time intervals called time slots (T n ). For example, during timeslot T 1, the disc 1, to start only video streams assigned to time zone Z 1, the disk 2
But to start only video streams assigned to time slot Z 2 (same hereinafter). Similarly, time slot T
During 2, (hereinafter the same) of the disk 1, to start only video streams assigned to time slot Z 2, disk 2, to start only video streams assigned to time zone Z 3. Rather than assigning each video object to a predetermined fixed time period (Z i ) as was done in the conventional manner, the earliest available time associated with storage 131 where the video stream will start. The reproduction start of the video object is assigned to the band (Z i ). The earliest available time period (Z i ) is the next time period (Z i ) that has sufficient capacity to operate playback without causing any defects in the video stream currently assigned to time period Z i. Z i ).

【0136】一好適実施例では、M=6である。別の実
施例では、異なる数の記憶装置131が特定のストライプ
グループに割り当てられている。
In one preferred embodiment, M = 6. In another embodiment, different numbers of storage devices 131 are assigned to a particular stripe group.

【0137】図11は、1ストライプグループ中にM個
の記憶装置131を有するVODシステムによるスケジュ
ーリング法800を示すフローチャートである。
FIG. 11 is a flowchart showing a scheduling method 800 by the VOD system having M storage devices 131 in one stripe group.

【0138】該スケジューリング法800は、ビデオスト
リームの再生を開始させるためのStreamPlayメッセージ
820をストリームスレッド204が受信した際に開始する。
次いで、ストリームスレッド204は、読み出すべき最初
のデータブロックを記憶している記憶装置131のディス
ク番号nを判定する(ステップ801)。次いで、ストリー
ムスレッド204は、現在の時間(t)を獲得する(ステッ
プ802)。
The scheduling method 800 includes a StreamPlay message for starting reproduction of a video stream.
It starts when the stream thread 204 receives 820.
Next, the stream thread 204 determines the disk number n of the storage device 131 storing the first data block to be read (step 801). Next, the stream thread 204 acquires the current time (t) (step 802).

【0139】次いで、記憶スレッド201は、現在の時間
帯を表すインデックス値(C)を計算する(ステップ80
3)。該インデックス値(C)は次の式に従って計算さ
れる。
Next, the storage thread 201 calculates an index value (C) representing the current time zone (step 80).
3). The index value (C) is calculated according to the following equation.

【0140】C=(floor(t/T)−n)modM ここで、 t=現在の時間 T=データブロックを再生するための時間間隔 (即ち、Z=データブロックサイズ/ストリーム再生デ
ータ速度) n=ストライプグループ中の記憶装置の番号 M=ストライプグループ中の記憶装置の総数 Floor=整数値を返すように変数の切り捨てを行って返
す関数 該スケジューリング法800は、M個の要素を有する時間
帯使用列Z[1…M]を用いる。該M個の要素は、それぞ
れ、最初はゼロにセットされ、対応するM個の時間帯の
各々に割り当てられた活動再生ストリームの数を表す。
C = (floor (t / T) -n) modM where: t = current time T = time interval for reproducing data block (that is, Z = data block size / stream reproduction data rate) n = Number of storage devices in stripe group M = Total number of storage devices in stripe group Floor = Function to return by truncating variables to return an integer value The scheduling method 800 uses a time zone having M elements The column Z [1... M] is used. The M elements are each initially set to zero and represent the number of active playback streams assigned to each of the corresponding M time periods.

【0141】ステップ803でインデックス値Cを計算し
た後に、ストリームスレッド204が、インデックスIに
Cをセットする。ストリームスレッド204は次いで、時
間帯使用列ZのI番目の要素の値を、1つの時間帯に割
り当て可能な最大ストリーム数と比較する(ステップ80
4)。1つの時間帯についての最大ストリーム数は、特
定の記憶装置131に関するアクセス時間によって決ま
る。該比較ステップ804が、時間帯が一杯である(即
ち、既に最大ストリーム数を有している)ことを示す結
果を返した場合には、該方法は、次の式に従ってインデ
ックス値Iを更新する(ステップ805)。
After calculating the index value C in step 803, the stream thread 204 sets C to the index I. The stream thread 204 then compares the value of the I-th element of the time zone usage column Z with the maximum number of streams that can be assigned to one time zone (step 80).
Four). The maximum number of streams for one time slot is determined by the access time for a specific storage device 131. If the comparing step 804 returns a result indicating that the time period is full (ie, already has the maximum number of streams), the method updates the index value I according to the following equation: (Step 805).

【0142】I=(I+1)Mod M ステップ805でインデックス値を更新した後、該方法は
比較ステップ804に戻る。
I = (I + 1) Mod M After updating the index value in step 805, the method returns to the comparison step 804.

【0143】しかしながら、比較ステップ804が、時間
帯が一杯でないことを示す結果を返した場合には、時間
帯使用列Zが更新され(ステップ806)、ビデオストリー
ムが時間帯Tiに割り当てられる(ステップ807)。
[0143] However, the comparison step 804, when it returns a result indicating that the time zone is not full is updated time zone using column Z (step 806), the video stream is assigned to a time period T i ( Step 807).

【0144】ビデオストリームが時間帯Tiに割り当て
られた後、該ビデオストリームは、次の式による時間遅
延の後に再生を開始する。
After the video stream has been assigned to the time period T i , the video stream starts playing after a time delay according to the following equation:

【0145】時間遅延=((I+M+C) mod M)+T この時間遅延は、所望の(選択された)時間スロットで
再生を開始するように導入される。
Time delay = ((I + M + C) mod M) + T This time delay is introduced to start playback at the desired (selected) time slot.

【0146】ストリームスレッド204は、StreamPause()
コールを受信した場合、又はストリームの再生を完了し
た場合には、該再生ストリームに関する使用値Z1をデ
クリメントする。
The stream thread 204 has a StreamPause ()
When receiving a call, or when completing the playback of the stream, decrements the usage values Z 1 regarding regeneration stream.

【0147】RAIDシステム及び方法 VODシステム100は、本発明による安価なディスクか
らなる冗長ディスクアレイ(RAID)システム及び方
法を用いる。本発明によれば、記憶モジュール130は、
複数の記憶装置131を使用して複数のビデオオブジェク
トを記憶する。本発明によるRAIDシステム及び方法
は、ビデオサーバ用途に限定されるものではなく、記憶
装置のアレイを使用するあらゆるコンピュータシステム
又は構成で有用なものとなる、ということが理解されよ
う。
RAID System and Method The VOD system 100 uses the inexpensive disk redundant disk array (RAID) system and method according to the present invention. According to the present invention, the storage module 130
A plurality of storage devices 131 are used to store a plurality of video objects. It will be appreciated that the RAID system and method according to the present invention is not limited to video server applications, but will be useful in any computer system or configuration that uses an array of storage devices.

【0148】本発明によるRAIDシステム及び方法
は、多数のディスクから構成された記憶サブシステム
(記憶モジュール130)が、データアクセスに関して高い
スループットを達成すること、及び、1つ又は2つ以上
のディスクが故障した際に失ったデータを動的に再構成
する際の性能上の不利益を制限することを可能にする。
該システム及び方法は、更に、N個のディスクからなる
ディスクアレイ中のN/(M+1)又はそれ未満の個数
の記憶装置131(ディスク)が故障した場合における動的
なデータ再構成を達成することにより連続的な動作を可
能にする。ここで、(1)Mは、データオブジェクトがデ
ィスクアレイに記憶される際に該データオブジェクトの
クリエータにより指定された(又はデフォルト値として
割り当てられた)冗長ファクタであり、(2)故障した2
つのディスクの距離は、Mよりも大きい。
The RAID system and method according to the present invention provide a storage subsystem composed of multiple disks.
(Storage module 130) achieves high throughput with respect to data access and the performance penalty of dynamically reconstructing the data lost when one or more disks fail. Allows you to limit.
The system and method further achieves dynamic data reconstruction in the event that N / (M + 1) or less storage devices 131 (disks) in a disk array of N disks fail. Enables continuous operation. Here, (1) M is the redundancy factor specified (or assigned as a default value) by the creator of the data object when the data object is stored in the disk array, and (2) failed 2
The distance between two disks is greater than M.

【0149】該システム及び方法は、N個のディスクへ
のデータオブジェクトの記憶をインターリーブさせるも
のである。ここで、Nは、多数の並列ディスク動作を可
能にすることにより高性能を得るように、また、M個の
データブロック毎にパリティブロックを作成するため
に、所望するだけ大きくすることが可能である。なお、
Mは、Nよりも小さい整数であり、動的データ再構成時
における性能上の不利益を制限するために所望するだけ
小さくして(M=1と選択した場合には、RAIDレベ
ル1ミラーと等価になる)、全ての状況で性能レベルが
保証されるようにすることができる。Mが小さいという
ことは、冗長データに関する記憶オーバーヘッドが大き
いことを意味する。
The system and method interleave the storage of data objects on N disks. Here, N can be made as large as desired to obtain high performance by allowing multiple parallel disk operations and to create a parity block every M data blocks. is there. In addition,
M is an integer smaller than N, and is made as small as desired to limit the performance penalty during dynamic data reconfiguration (if M = 1 is selected, the RAID level 1 mirror Equivalent), so that performance levels can be guaranteed in all situations. The fact that M is small means that the storage overhead for redundant data is large.

【0150】本発明の典型的な用途は、マルチストリー
ムVODシステム100であり、この場合、総ディスクス
ループットは、数十Mbyte/secから数百又は数千Mbyte/s
ecの範囲のものとなる。ビデオサーバ105に記憶されて
いる1つのビデオオブジェクトは、数十、数百、又は数
千ものユーザにより同時に要求される可能性がある。従
って、多数のディスクに対するビデオオブジェクトのス
トライプ処理が可能であることは必須であり、例えば、
20個のディスクに対してビデオオブジェクトのストライ
プ処理を行い、20個のディスク全てが並列動作を行って
数百のユーザの要求を満たすようにする。この場合、ビ
デオオブジェクトに関する冗長ファクタMは、例えば、
ディスクが故障した際に失ったデータブロックを再構成
するために4個の並列ディスク読み出ししか必要としな
いように4と選択することが可能である。これは、かか
る場合の応答時間を保証するだけでなく、システム全体
の作業負荷を殆ど増大させないものとなる。その理由
は、それらの4つのディスク読み出しが、失ったデータ
に密接したものであり、及び通常のビデオ再生中にどう
しても必要とされるものであり、従ってそれらは(通常
のアクセスと比べて)特別なディスク動作ではない、と
いうことにある。この説明のため、アレイ中にN個のデ
ィスク(0〜Nと番号付けされたもの)が存在するもの
と仮定する。また、好適には、(ビデオオブジェクト等
の)データオブジェクトが作成される際に、ストライプ
ブロックサイズで連続的にデータが分配される(データ
ブロックは0,1,2…と番号付けされている)。
A typical application of the present invention is a multi-stream VOD system 100, where the total disk throughput is from tens of Mbytes / sec to hundreds or thousands of Mbytes / s.
ec range. One video object stored on video server 105 may be requested by tens, hundreds, or thousands of users simultaneously. Therefore, it is essential that video objects can be striped on a large number of discs. For example,
Video object striping is performed on 20 disks, and all 20 disks operate in parallel to satisfy the requirements of hundreds of users. In this case, the redundancy factor M for the video object is, for example,
It is possible to select 4 so that only four parallel disk reads are needed to reconstruct the data blocks lost in the event of a disk failure. This not only guarantees a response time in such a case, but also hardly increases the workload of the entire system. The reason is that those four disk reads are closely related to the lost data and are absolutely needed during normal video playback, so they are special (compared to normal access). It is not a simple disk operation. For the purposes of this description, assume that there are N disks (numbered 0-N) in the array. Also, preferably, when a data object (such as a video object) is created, data is continuously distributed in stripe block sizes (data blocks are numbered 0, 1, 2,...). .

【0151】図12は、本発明に従ってビデオオブジェ
クトを記憶するRAID方法900を示すフローチャート
である。該方法は、最初にセットアップ処理901を行
う。セットアップ処理901では、ビデオオブジェクトの
クリエータ(例えば、コンピュータプログラム又はユー
ザ)が該ビデオオブジェクトに関する冗長ファクタMを
指定する。Mは、1〜N−1の整数である。ここで、N
は、記憶モジュール130中の記憶装置131の個数である。
FIG. 12 is a flowchart illustrating a RAID method 900 for storing video objects according to the present invention. The method first performs a setup process 901. In a setup process 901, a creator of a video object (eg, a computer program or a user) specifies a redundancy factor M for the video object. M is an integer of 1 to N-1. Where N
Is the number of storage devices 131 in the storage module 130.

【0152】次いで、セットアップ処理901中に、該方
法は、ビデオオブジェクトの属性として冗長ファクタM
を記憶する。該方法は更に、インデックス(I)をゼロに
初期化し、及びDRAM232上のパリティバッファを規
定し初期化する。
Next, during a setup process 901, the method determines whether the redundancy factor M
Is stored. The method further initializes index (I) to zero and defines and initializes a parity buffer on DRAM 232.

【0153】次いで、該システムは、ビデオオブジェク
トに書き込まれるべきデータブロックを取り出す(ステ
ップ902)。各データブロック毎に、該方法は、パリテ
ィバッファに対してI番目のデータブロックの排他OR
演算を行う(ステップ903)。該方法900は次いで、I番
目のデータブロックをJ番目のディスクに書き込む(ス
テップ904)。ここで、 J={floor(I/M)・(M+1)+(I mod M)} mod N である。
Next, the system retrieves a data block to be written to the video object (step 902). For each data block, the method uses an exclusive OR of the I-th data block with respect to the parity buffer.
An operation is performed (step 903). The method 900 then writes the Ith data block to the Jth disk (step 904). Here, J = {floor (I / M) · (M + 1) + (I mod M)} mod N.

【0154】更に、I番目のデータブロックは、J番目
のディスク上のビデオオブジェクトのストライプのK番
目のブロックとして書き込まれる。ここで、 K= floor({floor(I/M)・(M+1)+(I mod M)}/
N) である。
Further, the I-th data block is written as the K-th block of the stripe of the video object on the J-th disk. Here, K = floor ({floor (I / M) · (M + 1) + (I mod M)} /
N).

【0155】該方法は次いで、現在のデータブロック
(I番目のデータブロック)が冗長グループ中の最後のデ
ータブロックであるか否かを判定するためのテストを行
う(ステップ905)。該テスト905では下記の判定が行わ
れる。
The method then proceeds to the current data block.
A test is performed to determine whether (I-th data block) is the last data block in the redundancy group (step 905). In the test 905, the following determination is made.

【0156】(i)Iが(M−1)以上であるか。(I) Is I not less than (M-1)?

【0157】(ii)((I+1) mod M)=0であるか。(Ii) Is ((I + 1) mod M) = 0?

【0158】かかる条件が満たされる場合には、該方法
900は、J番目のディスクにパリティバッファを書き込
む(ステップ906)。ここで、 J={(I+1)/M・(M+1)−1} mod N である。
If such a condition is satisfied, the method
900 writes the parity buffer to the J-th disk (step 906). Here, J = {(I + 1) / M · (M + 1) −1} mod N.

【0159】パリティバッファは、J番目のディスク上
のデータオブジェクトのストライプのK番目のブロック
として書き込まれる(ステップ906)。ここで、K= flo
or({(I+1)/M・(M+1)−1}/N)である。
The parity buffer is written as the Kth block of the stripe of the data object on the Jth disk (step 906). Where K = flo
or ({(I + 1) / M. (M + 1) -1} / N).

【0160】J番目のディスクにパリティバッファを書
き込んだ後、該パリティバッファがクリアされる(再び
初期化される)(ステップ907)。
After writing the parity buffer in the J-th disk, the parity buffer is cleared (initialized again) (step 907).

【0161】次いで該方法900は、インデックス(I)を
1だけインクリメントする(ステップ908)。該方法900
は、次いで、ビデオオブジェクトの最後のデータブロッ
クのディスクへの書き込みが完了しているか否かを判定
するためのテストを行う(ステップ909)。最後のデータ
ブロックの書き込みが完了していない(即ち、書き込む
べきデータブロックが更に存在する)場合には、該方法
900は、ステップ902に戻って、ビデオオブジェクトに書
き込むべき次のデータブロックを取り出し、該方法900
を続行する。また、最後のデータブロックの書き込みが
完了している場合には、該方法900は、現在のデータブ
ロック(I番目のデータブロック)が冗長グループ中の
最後のデータブロックであるか否かを判定するためのテ
ストへと進む(ステップ910)。該テスト910は、(Imod
M)を計算することにより行われる。(Imod M)が
ゼロでない場合には、冗長グループはM個未満のデータ
ブロックを有しており、従って、該方法900は、ステッ
プ911へと進んで、全てゼロで満たされた1つのデータ
ブロックをJ番目のディスクに書き込む。ここで、J=
{floor(I/M)・(M+1)+(I mod M)} mod Nであ
る。
Next, the method 900 increments the index (I) by one (step 908). The method 900
Then performs a test to determine whether the last data block of the video object has been written to disk (step 909). If the writing of the last data block has not been completed (ie, there are more data blocks to be written), the method
900 returns to step 902 to retrieve the next block of data to write to the video object,
To continue. Also, if the last data block has been written, the method 900 determines whether the current data block (I-th data block) is the last data block in the redundancy group. (Step 910). The test 910 is (Imod
M). If (Imod M) is not zero, then the redundancy group has less than M data blocks, so the method 900 proceeds to step 911, where one data block is filled with all zeros. Is written to the J-th disk. Where J =
{floor (I / M) · (M + 1) + (I mod M)} mod N.

【0162】ステップ911で、I番目のデータブロック
は、J番目のディスク上のデータオブジェクトのストラ
イプのK番目のブロックとして書き込まれる。ここで、 K= floor({floor(I/M)・(M+1)+(I mod M)}/
N) である。
At step 911, the I-th data block is written as the K-th block in the stripe of the data object on the J-th disk. Here, K = floor ({floor (I / M) · (M + 1) + (I mod M)} /
N).

【0163】次いで、該方法900は、I番目のデータブ
ロックが冗長グループ中の最後のデータブロックである
か否かを判定するためのテストを行う(ステップ912)。
次の場合に条件が満たされることになる。
Next, the method 900 performs a test to determine whether the I-th data block is the last data block in the redundancy group (step 912).
The condition will be satisfied if:

【0164】(i)Iが(M−1)以上である。(I) I is equal to or more than (M-1).

【0165】(ii)((I+1) mod M)=0である。(Ii) ((I + 1) mod M) = 0.

【0166】該条件が満たされる場合には、該方法900
は、J番目のディスクにパリティバッファを書き込む
(ステップ913)。ここで、 J={(I+1)/M・(M+1)−1} mod N である。
If the condition is satisfied, the method 900
Writes the parity buffer to the Jth disk
(Step 913). Here, J = {(I + 1) / M · (M + 1) −1} mod N.

【0167】更に、パリティバッファは、J番目のディ
スク上のデータオブジェクトのストライプのK番目のブ
ロックとして書き込まれる(ステップ913)。ここで、 K= floor({(I+1)/M・(M+1)−1}/N) である。
Furthermore, the parity buffer is written as the K-th block of the stripe of the data object on the J-th disk (step 913). Here, K = floor ({(I + 1) / M. (M + 1) -1} / N).

【0168】該方法900は次いでパリティバッファをク
リアし(ステップ916)、次いで該データオブジェクトに
関するN個全てのストライプをクローズする(ステップ9
15)。一方、テスト912において条件が満たされなかっ
た場合には、該方法900は次いでIをインクリメントし
(ステップ914)、次いでステップ910に戻って、現在の
データブロック(I番目のデータブロック)が冗長グル
ープ中の最後のデータブロックであるか否かを判定す
る。
[0168] The method 900 then clears the parity buffer (step 916), and then closes all N stripes for the data object (step 9).
15). On the other hand, if the condition was not met at test 912, the method 900 then increments I.
(Step 914) Then, returning to Step 910, it is determined whether or not the current data block (I-th data block) is the last data block in the redundant group.

【0169】図13は、本発明に従ってビデオオブジェ
クトにアクセスするRAID方法1000を示すフローチャ
ートである。該方法1000は、J番目のディスクに記憶さ
れているビデオオブジェクトからI番目のデータブロッ
クを読み出すことをストリームスレッド204が要求した
(ステップ1001)際に開始する。該読み出し要求を受け
ると、該方法1000は、ビデオオブジェクトに関する冗長
ファクタMを読み出す(ステップ1002)。次いで、該方
法1000は、故障状態を判定するためのテストを行う(ス
テップ1003)。故障が生じなかったことを該テスト1003
が示す場合には、該方法1000は、適当なディスク(J番
目のディスク)からデータブロックを取り出す。しかし
ながら、該テスト1003が故障が生じたと判定した場合に
は、該方法1000は、データ再構成バッファを全てゼロに
初期化する(ステップ1004)。次いで、該方法1000は、
インデックスPをゼロに初期化する(ステップ1005)。
Pをゼロに初期化することにより、Pは、冗長グループ
中の最初のデータブロックを指すように初期化される。
FIG. 13 is a flowchart illustrating a RAID method 1000 for accessing a video object according to the present invention. The method 1000 requires the stream thread 204 to read an Ith data block from a video object stored on a Jth disk.
(Step 1001) starts. Upon receiving the read request, the method 1000 reads a redundancy factor M for the video object (step 1002). The method 1000 then performs a test to determine a fault condition (step 1003). Test 1003 that no failure occurred
, The method 1000 retrieves the data block from the appropriate disk (Jth disk). However, if the test 1003 determines that a failure has occurred, the method 1000 initializes the data reconstruction buffer to all zeros (step 1004). Then, the method 1000 includes:
The index P is initialized to zero (step 1005).
By initializing P to zero, P is initialized to point to the first data block in the redundancy group.

【0170】次いで、該方法1000は、故障したディスク
にP番目のデータブロックが記憶されていないか判定す
るためのテストを行う(ステップ1006)。故障したディ
スクにP番目のデータブロックが記憶されていると判定
された場合には、該方法1000は、L番目の記憶装置上の
ストライプのK番目のデータブロックの読み出しへと処
理を進める。ここで、 L={J+N−(Imod M)+P} mod N J={floor(I/M)・(M+1)+(Imod M)} mod N K=floor({floor(I/M)・(M+1)+(P mod M)}/
N) である。
Next, the method 1000 performs a test to determine whether the Pth data block is stored on the failed disk (step 1006). If it is determined that the Pth data block is stored on the failed disk, the method 1000 proceeds to read the Kth data block of the stripe on the Lth storage device. Here, L = {J + N− (Imod M) + P} mod N J = {floor (I / M) · (M + 1) + (Imod M)} mod NK = floor ({floor (I / M) · ( M + 1) + (P mod M)} /
N).

【0171】次いで、該方法は、取り出したデータ及び
再構成バッファ中に記憶されているデータの排他OR演
算を行う(ステップ1008)。次いで該方法は、ステップ1
009に進んでインデックスPをインクリメントする。該
インクリメントの後、該方法1000は、再構成が完了した
か否か(即ち、P>Mか否か)を判定するためのテスト
を行う(ステップ1010)。再構成が完了している場合に
は、該方法1000は、再構成バッファ中のデータをストリ
ームスレッド204に返す。また、再構成が完了していな
い場合には、該方法1000はステップ1006に戻る。
Next, the method performs an exclusive OR operation on the extracted data and the data stored in the reconstruction buffer (step 1008). The method then comprises the step 1
Proceeding to 009, the index P is incremented. After the increment, the method 1000 performs a test to determine whether the reconstruction is complete (ie, whether P> M) (step 1010). If the reconstruction is complete, the method 1000 returns the data in the reconstruction buffer to the stream thread 204. If the reconstruction has not been completed, the method 1000 returns to step 1006.

【0172】上記の説明は、本発明の方法及び実施例の
単なる典型例を示すものである。当業者であれば理解さ
れるように、本発明は、その思想及び本質的な特徴から
逸脱することなく別の特定形態で実施可能なものであ
る。従って、本発明の開示は、その例示を目的としたも
のであり、特許請求の範囲に記載の本発明の範囲を限定
するものではない。
The above description is merely exemplary of the methods and embodiments of the present invention. As will be appreciated by those skilled in the art, the present invention may be embodied in other specific forms without departing from its spirit and essential characteristics. Accordingly, the disclosure of the present invention is intended to be illustrative, and not limiting, of the scope of the invention, which is set forth in the following claims.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明によるビデオオンデマンドシステムを示
すブロック図である。
FIG. 1 is a block diagram illustrating a video on demand system according to the present invention.

【図2】図1のビデオオンデマンドシステムで使用され
るプログラムモジュール(処理スレッド)を含む中央制
御モジュールを示すブロック図である。
FIG. 2 is a block diagram showing a central control module including a program module (processing thread) used in the video-on-demand system of FIG. 1;

【図3】図2に示す中央制御モジュールで使用される処
理スレッドの対話を示す状態図である。
FIG. 3 is a state diagram showing the interaction of processing threads used in the central control module shown in FIG.

【図4】記憶装置とのアクセスに使用されるデータ構造
及びプログラムモジュールを示すフローチャートであ
る。
FIG. 4 is a flowchart showing a data structure and a program module used for accessing the storage device.

【図5】図4に示す「要求リスト」の説明図である。FIG. 5 is an explanatory diagram of a “request list” shown in FIG. 4;

【図6】本発明による図3に示すストリームスレッドの
処理状態を示す状態図である。
6 is a state diagram showing a processing state of the stream thread shown in FIG. 3 according to the present invention.

【図7】各記憶スレッドにより行われるメッセージキュ
ー処理を示すフローチャートである。
FIG. 7 is a flowchart illustrating a message queue process performed by each storage thread.

【図8】「要求リスト」中のメッセージの記憶スレッド
による処理を示すフローチャートである。
FIG. 8 is a flowchart showing processing by a storage thread of a message in the “request list”.

【図9】図1に示す記憶モジュールへの記憶のためのビ
デオオブジェクトオープン処理を示すフローチャートで
ある。
FIG. 9 is a flowchart showing a video object open process for storage in the storage module shown in FIG. 1;

【図10】再生のためのビデオオブジェクトオープン処
理を示すフローチャートである。
FIG. 10 is a flowchart showing a video object open process for reproduction.

【図11】図1に示す複数の記憶装置にわたるアクセス
負荷の時間的平衡化のためのスケジューリング方法を示
すフローチャートである。
11 is a flowchart illustrating a scheduling method for temporally balancing access loads across a plurality of storage devices illustrated in FIG. 1;

【図12】M個のデータブロック毎にパリティコードを
生成するように冗長ファクタ(M)を用いてディスクド
ライブアレイにビデオオブジェクトを記憶させる方法を
示すフローチャートである。
FIG. 12 is a flowchart illustrating a method of storing a video object in a disk drive array using a redundancy factor (M) to generate a parity code for every M data blocks.

【図13】図12に示す方法に従って記憶されたデータ
ブロックを取り出す処理を示すフローチャートである。
FIG. 13 is a flowchart showing a process of retrieving a data block stored according to the method shown in FIG.

【符号の説明】[Explanation of symbols]

100 VODシステム 101 ビデオクライアント 105 ビデオサーバ 110 中央制御モジュール 120 分配モジュール 130 記憶モジュール 150 制御入力ソース 100 VOD system 101 Video client 105 Video server 110 Central control module 120 Distribution module 130 Storage module 150 Control input source

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G06F 17/30 G11B 20/10 Z G11B 20/10 H04N 7/16 A H04N 7/16 7/173 7/173 G06F 15/40 370D ──────────────────────────────────────────────────の Continued on the front page (51) Int.Cl. 6 Identification code FI G06F 17/30 G11B 20/10 Z G11B 20/10 H04N 7/16 A H04N 7/16 7/173 7/173 G06F 15/40 370D

Claims (17)

【特許請求の範囲】[Claims] 【請求項1】ビデオクライアントのサービスを行うため
のビデオサーバシステムであって、 複数のビデオセレクションを記憶するための大容量記憶
モジュールと、 ターゲットモードで動作することによりSCSI装置を
エミュレートするSCSIインターフェイスを有する分
配モジュールであって、1つ又は2つ以上の処理モジュ
ールを有しており、その各処理モジュールが、ビデオク
ライアントに分配するためのビデオデータを処理するた
めのものであり、前記分配モジュールが、前記SCSI
インターフェイスを介してビデオデータを受信し、該受
信したビデオデータをバッファリングし、及び該バッフ
ァリングされたビデオデータをクライアントに分配する
ようにプログラムされている、分配モジュールと、 前記大容量記憶モジュールに接続された第1のSCSI
インターフェイスと、前記分配モジュールに接続された
第2のSCSIインターフェイスとを有する中央制御モ
ジュールであって、クライアントからビデオ制御コマン
ドを受信し、該受信したビデオ制御コマンドに応じて前
記ビデオセレクションの再生を制御する、中央制御モジ
ュールとを備えていることを特徴とする、ビデオサーバ
システム。
1. A video server system for providing a video client service, comprising: a mass storage module for storing a plurality of video selections; and a SCSI interface for emulating a SCSI device by operating in a target mode. A distribution module having one or more processing modules, each processing module for processing video data to be distributed to a video client; Is the SCSI
A distribution module programmed to receive video data via the interface, buffer the received video data, and distribute the buffered video data to the client; Connected first SCSI
A central control module having an interface and a second SCSI interface connected to the distribution module, wherein the central control module receives a video control command from a client and controls playback of the video selection in response to the received video control command. And a central control module.
【請求項2】前記分配モジュールに含まれる少なくとも
1つの処理モジュールが、圧縮されたビデオデータの圧
縮解除を行うためのビデオデータ圧縮解除手段である、
請求項1に記載のビデオサーバシステム。
2. The video processing apparatus according to claim 1, wherein at least one processing module included in said distribution module is video data decompression means for decompressing the compressed video data.
The video server system according to claim 1.
【請求項3】前記ビデオデータ圧縮解除手段が、モーシ
ョンピクチャエキスパートグループ(MPEG)規格に従
ってデータの圧縮解除を行う、請求項2に記載のビデオ
サーバシステム。
3. The video server system according to claim 2, wherein said video data decompression means decompresses data according to the Motion Picture Expert Group (MPEG) standard.
【請求項4】前記分配モジュールが、ラックマウント可
能なシャシにマウントされたコンピュータ用マザーボー
ドであり、前記中央制御モジュールが、ラックマウント
可能なシャシにマウントされたコンピュータ用マザーボ
ードである、請求項1に記載のビデオサーバシステム。
4. The computer readable medium of claim 1, wherein the distribution module is a computer motherboard mounted on a rack mountable chassis, and the central control module is a computer motherboard mounted on a rack mountable chassis. A video server system as described.
【請求項5】前記分配モジュールに含まれる少なくとも
1つの処理モジュールが、イーサネットネットワークを
介した分配用にビデオデータをフォーマットするイーサ
ネットフォーマットモジュールである、請求項1に記載
のビデオサーバシステム。
5. The video server system according to claim 1, wherein the at least one processing module included in the distribution module is an Ethernet format module for formatting video data for distribution via an Ethernet network.
【請求項6】前記分配モジュールに含まれる少なくとも
1つの処理モジュールが、ATMネットワークを介した
分配用にビデオデータをフォーマットする非同期伝送モ
ード(ATM)モジュールである、請求項1に記載のビ
デオサーバシステム。
6. The video server system according to claim 1, wherein the at least one processing module included in the distribution module is an asynchronous transfer mode (ATM) module for formatting video data for distribution over an ATM network. .
【請求項7】1つ又は2つ以上の付加的な分配モジュー
ルを更に備えており、 前記大容量記憶モジュールが複数のSCSI互換の記憶
装置を備えており、 前記中央制御モジュールが、前記大容量記憶装置に接続
された第1の複数のSCSIインターフェイスと、1つ
又は2つ以上の前記分配モジュールに各々接続された第
2の複数のSCSIインターフェイスとを有している、
請求項1に記載のビデオサーバシステム。
7. The system according to claim 1, further comprising one or more additional distribution modules, wherein said mass storage module comprises a plurality of SCSI compatible storage devices, and wherein said central control module comprises: A first plurality of SCSI interfaces connected to a storage device and a second plurality of SCSI interfaces each connected to one or more of the distribution modules;
The video server system according to claim 1.
【請求項8】前記ビデオセレクションがそれぞれ制御デ
ータ及びビデオデータを含んでおり、前記制御データ
が、前記中央制御モジュール上で実行されるオペレーテ
ィングシステムに関連するファイル管理システムを用い
て記憶され、前記ビデオデータが、前記ファイル管理シ
ステムをバイパスして生フォーマットで記憶される、請
求項1に記載のビデオサーバシステム。
8. The video selection, wherein each of the video selections includes control data and video data, wherein the control data is stored using a file management system associated with an operating system running on the central control module; The video server system according to claim 1, wherein data is stored in a raw format, bypassing the file management system.
【請求項9】前記制御データが、記憶装置上の未使用の
メモリのアドレスを示すアドレスマップと、ビデオオブ
ジェクトの各データブロックを記憶装置上のアドレスに
マッピングするアドレスマップとを含んでいる、請求項
8に記載のビデオサーバシステム。
9. The control data according to claim 1, wherein the control data includes an address map indicating an address of an unused memory on the storage device, and an address map for mapping each data block of the video object to an address on the storage device. Item 9. A video server system according to item 8.
【請求項10】前記中央制御モジュールが、前記大容量
記憶装置に記憶されているビデオデータを読み出すため
の複数の読み出し要求を生成し、 該読み出し要求を記憶するためのメッセージ待ち行列
と、 前記メッセージ待ち行列に接続されて前記読み出し要求
の優先順位付けを行う優先順位付け手段とを更に備えて
いる、請求項1に記載のビデオサーバシステム。
10. The central control module generates a plurality of read requests for reading video data stored in the mass storage device, a message queue for storing the read requests, and the message 2. The video server system according to claim 1, further comprising a prioritizing means connected to a queue for prioritizing said read requests.
【請求項11】前記優先順位付け手段が、 各読み出し要求が緊急の読み出し要求であるか否かを判
定し、 緊急の各読み出し要求毎にデッドラインを計算し、 非緊急の読み出し要求をサービスすることにより緊急の
読み出し要求がそのデッドラインを逸することになるか
否かを判定し、 非緊急の読み出し要求をサービスすることにより緊急の
読み出し要求がそのデッドラインを逸することにならな
いとの判定に応じて非緊急の読み出し要求をサービス
し、 非緊急の読み出し要求をサービスすることにより緊急の
読み出し要求がそのデッドラインを逸することになると
の判定に応じて緊急のデッドラインを有する読み出し要
求をサービスする、という各ステップからなる方法を実
施するものである、請求項10に記載のビデオサーバシ
ステム。
11. The prioritizing means determines whether each read request is an urgent read request, calculates a deadline for each urgent read request, and serves a non-urgent read request. To determine if an urgent read request will miss the deadline by servicing a non-emergency read request. Servicing a non-emergency read request in response to a non-emergency read request and providing a read request with an emergency deadline in response to a determination that the emergency read request will miss its deadline. The video server system according to claim 10, wherein the video server system implements a method comprising the steps of servicing.
【請求項12】前記大容量記憶モジュールが複数の記憶
装置を備えており、 前記複数の記憶装置にわたってストライプ構成で複数の
前記ビデオセレクションが記憶されており、 受信した制御コマンドに応じたビデオセレクションの再
生の制御が、 複数の時間スロットを規定し、 再生が開始される記憶装置を識別し、該識別された記憶
装置に関する第1の利用可能な時間スロット内にビデオ
セレクションの再生をスケジューリングし、各記憶装置
が複数の時間スロットのサービスをローテーションで行
う、という各ステップからなる、請求項1に記載のビデ
オサーバシステム。
12. The mass storage module includes a plurality of storage devices, wherein a plurality of the video selections are stored in a stripe configuration over the plurality of storage devices, and a plurality of video selections corresponding to a received control command are stored. The control of playback defines a plurality of time slots, identifies a storage device on which playback is to be initiated, schedules playback of the video selection in a first available time slot for the identified storage device, 2. The video server system according to claim 1, wherein the storage device performs a plurality of time slot services in rotation.
【請求項13】前記大容量記憶モジュールが複数の記憶
装置を備えており、 少なくとも1つのビデオセレクションが、複数のデータ
ブロックを含んでおり、前記複数の記憶装置にわたって
ストライプ構成で記憶されており、 M個のデータブロック毎に計算されるエラーブロックを
更に有しており、該Mが、前記ストライプ構成に使用さ
れる前記記憶装置の数よりも小さい整数の冗長ファクタ
である、請求項1に記載のビデオサーバシステム。
13. The mass storage module comprises a plurality of storage devices, wherein at least one video selection includes a plurality of data blocks and is stored in a stripe configuration across the plurality of storage devices. 2. The apparatus of claim 1, further comprising an error block calculated every M data blocks, wherein M is an integer redundancy factor less than the number of storage devices used in the stripe configuration. Video server system.
【請求項14】時間クリティカルコマンドと非時間クリ
ティカルコマンドとを含む複数の制御コマンドを受信す
るよう構成されたビデオサーバシステムにおいて、受信
した制御コマンドのサービスの優先順位付けを行う方法
であって、 各時間クリティカルコマンド毎にデッドラインを決定
し、 時間クリティカルコマンドにそのデッドラインを逸させ
ることなく非時間クリティカルコマンドをサービスする
ことができるか否かを判定し、 時間クリティカルコマンドにそのデッドラインを逸させ
ることなく非時間クリティカルコマンドをサービスする
ことができるとの判定に応じて非時間クリティカルコマ
ンドをサービスし、 時間クリティカルコマンドにそのデッドラインを逸させ
ることなく非時間クリティカルコマンドをサービスする
ことができないとの判定に応じて時間クリティカルコマ
ンドをサービスする、という各ステップからなることを
特徴とする、ビデオサーバシステムにおいて受信した制
御コマンドのサービスの優先順位付けを行う方法。
14. A method for prioritizing services of a received control command in a video server system configured to receive a plurality of control commands including a time critical command and a non-time critical command, the method comprising: Determine deadline for each time-critical command, determine whether non-time-critical command can be serviced without missing the deadline for time-critical command, and miss the deadline for time-critical command Service a non-time critical command in response to a determination that the non-time critical command can be serviced without the need for a non-time critical command without losing its deadline to the time critical command. A method for prioritizing the service of a control command received in a video server system, comprising the steps of: servicing a time-critical command in response to a determination that the command cannot be performed.
【請求項15】複数(N個)の記憶装置にディジタルデ
ータを記憶させる方法であって、 ディジタルデータをデータブロックへと分割し、 複数のデータブロックを各記憶装置に記憶させ、 N未満の整数の冗長ファクタ(M)を選択し、 M個のデータブロック毎にエラー回復ブロックを生成
し、 関連するデータブロックを記憶する記憶装置とは異なる
記憶装置に該エラー回復ブロックを記憶させる、という
各ステップからなることを特徴とする、複数の記憶装置
へのディジタルデータの記憶方法。
15. A method for storing digital data in a plurality of (N) storage devices, comprising: dividing the digital data into data blocks; storing the plurality of data blocks in each storage device; Selecting a redundancy factor (M), generating an error recovery block for each of the M data blocks, and storing the error recovery block in a storage device different from the storage device storing the associated data block. A method for storing digital data in a plurality of storage devices, characterized by comprising:
【請求項16】エラー回復ブロックの生成が、パリティ
コードを計算することからなる、請求項15に記載の方
法。
16. The method of claim 15, wherein generating the error recovery block comprises calculating a parity code.
【請求項17】各記憶装置への複数のデータブロックの
記憶が、複数の記憶装置にわたってデータブロックのス
トライプ処理を行うことからなる、請求項16に記載の
方法。
17. The method of claim 16, wherein storing the plurality of data blocks on each storage device comprises striping the data blocks across the plurality of storage devices.
JP21525897A 1996-08-08 1997-08-08 System and method for distributing digital data on demand Expired - Fee Related JP3560211B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/692,697 US5928327A (en) 1996-08-08 1996-08-08 System and process for delivering digital data on demand
US692697 1996-08-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2003389400A Division JP2004199853A (en) 1996-08-08 2003-11-19 Method for reliably distributing digital data

Publications (2)

Publication Number Publication Date
JPH1093924A true JPH1093924A (en) 1998-04-10
JP3560211B2 JP3560211B2 (en) 2004-09-02

Family

ID=24781644

Family Applications (2)

Application Number Title Priority Date Filing Date
JP21525897A Expired - Fee Related JP3560211B2 (en) 1996-08-08 1997-08-08 System and method for distributing digital data on demand
JP2003389400A Pending JP2004199853A (en) 1996-08-08 2003-11-19 Method for reliably distributing digital data

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2003389400A Pending JP2004199853A (en) 1996-08-08 2003-11-19 Method for reliably distributing digital data

Country Status (3)

Country Link
US (2) US5928327A (en)
JP (2) JP3560211B2 (en)
TW (1) TW364267B (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000048001A (en) * 1998-07-10 2000-02-18 Internatl Business Mach Corp <Ibm> Real time shared disk system for computer cluster
WO2000052936A1 (en) * 1999-03-01 2000-09-08 Kyushu Electronics Systems. Inc. Image information high-speed compressing method and real-time moving picture transferring method using the same
JP2002529850A (en) * 1998-11-09 2002-09-10 インテル コーポレイション Scheduling requests in the system
JP4292713B2 (en) * 1998-05-18 2009-07-08 株式会社日立製作所 Disk array controller
JP2009529193A (en) * 2006-03-08 2009-08-13 オムニオン ビデオ ネットワークス Data storage system
WO2011117986A1 (en) * 2010-03-24 2011-09-29 富士通株式会社 Data transfer device and data transfer method

Families Citing this family (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0872120A1 (en) * 1995-03-07 1998-10-21 Interval Research Corporation System and method for selective recording of information
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
US5862312A (en) * 1995-10-24 1999-01-19 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6449730B2 (en) * 1995-10-24 2002-09-10 Seachange Technology, Inc. Loosely coupled mass storage computer cluster
US6567926B2 (en) * 1995-10-24 2003-05-20 Seachange International, Inc. Loosely coupled mass storage computer cluster
US6469753B1 (en) 1996-05-03 2002-10-22 Starsight Telecast, Inc. Information system
US5893062A (en) 1996-12-05 1999-04-06 Interval Research Corporation Variable rate video playback with synchronized audio
US6263507B1 (en) * 1996-12-05 2001-07-17 Interval Research Corporation Browser for use in navigating a body of information, with particular application to browsing information represented by audiovisual data
US6711622B1 (en) 1997-12-31 2004-03-23 Broadware Technologies, Inc. Video and audio streaming for multiple users
US6732183B1 (en) 1996-12-31 2004-05-04 Broadware Technologies, Inc. Video and audio streaming for multiple users
US7069575B1 (en) * 1997-01-13 2006-06-27 Sedna Patent Services, Llc System for interactively distributing information services
US20030192053A1 (en) * 1997-02-19 2003-10-09 Next Level Communications, Inc. Method and apparatus for transmitting wireless signals over media
JPH10285510A (en) * 1997-04-04 1998-10-23 Sony Corp Video transmission method
US9113122B2 (en) 1997-04-21 2015-08-18 Rovi Guides, Inc. Method and apparatus for time-shifting video and text in a text-enhanced television program
WO1999004561A1 (en) 1997-07-21 1999-01-28 E-Guide, Inc. Systems and methods for displaying and recording control interfaces
US7024681B1 (en) * 1997-12-04 2006-04-04 Verizon Laboratories Inc. Method and apparatus for near video on demand
JPH11234627A (en) * 1998-02-17 1999-08-27 Sony Corp Data reproduction device and method
KR20010071560A (en) * 1998-06-22 2001-07-28 콜린 콘스터블 Virtual data storage (vds) system
CN1867068A (en) 1998-07-14 2006-11-22 联合视频制品公司 Client-server based interactive television program guide system with remote server recording
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
US6317779B1 (en) * 1998-09-03 2001-11-13 Hewlett-Packard Company Audio/video from internet direct to compact disc through web browser
TW425509B (en) * 1998-09-11 2001-03-11 Mentor Data System Inc Hierarchical peripheral component interconnect bus system
US6097422A (en) * 1998-10-05 2000-08-01 Panasonic Technologies, Inc. Algorithm for fast forward and fast rewind of MPEG streams
GB9821768D0 (en) * 1998-10-06 1998-12-02 Sgs Thomson Microelectronics Data transfer
US6859799B1 (en) 1998-11-30 2005-02-22 Gemstar Development Corporation Search engine for video and graphics
US7492393B2 (en) * 1999-02-12 2009-02-17 Sony Corporation Method of and apparatus for generating a precise frame rate in digital video transmission from a computer system to a digital video device
US6535550B1 (en) 1999-03-02 2003-03-18 Legerity, Inc. Transceiver with variable width cyclic prefix
US6691208B2 (en) 1999-03-12 2004-02-10 Diva Systems Corp. Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content
US6378036B2 (en) * 1999-03-12 2002-04-23 Diva Systems Corporation Queuing architecture including a plurality of queues and associated method for scheduling disk access requests for video content
US6792469B1 (en) * 1999-03-22 2004-09-14 General Electric Company System and method for monitoring and controlling the production of audio and video streams
US8763053B1 (en) * 1999-04-01 2014-06-24 Cox Communications, Inc. File system for a file server of a video-on-demand system
US8245260B1 (en) * 1999-05-04 2012-08-14 Unisys Corporation Video server
KR100624865B1 (en) * 1999-06-02 2006-09-18 엘지전자 주식회사 Video system based on user profile
US6341375B1 (en) 1999-07-14 2002-01-22 Lsi Logic Corporation Video on demand DVD system
US6385673B1 (en) * 1999-10-06 2002-05-07 Sun Microsystems, Inc. System and method for adjusting performance of a media storage by decreasing a maximum throughput by a primary derate parameter to specify available & guaranteed rate parameters and determining ring buffer sizes for streams
US6721789B1 (en) 1999-10-06 2004-04-13 Sun Microsystems, Inc. Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US6438630B1 (en) * 1999-10-06 2002-08-20 Sun Microsystems, Inc. Scheduling storage accesses for multiple continuous media streams
US7155735B1 (en) 1999-10-08 2006-12-26 Vulcan Patents Llc System and method for the broadcast dissemination of time-ordered data
US6487613B1 (en) * 1999-10-14 2002-11-26 Dell Products L.P. System for indicating channel availability by having a light emitting diode operative to signal of connection of a data storage device to an internal connector
US6738360B1 (en) * 1999-10-22 2004-05-18 Verizon Laboratories Inc. System and method for reliable video transmission in wireless Asynchronous Transfer Mode networks with fading
US6757682B1 (en) 2000-01-28 2004-06-29 Interval Research Corporation Alerting users to items of current interest
US7113998B1 (en) * 2000-02-03 2006-09-26 International Business Machines Corporation System and method for grouping recipients of streaming data
US6477610B1 (en) * 2000-02-04 2002-11-05 International Business Machines Corporation Reordering responses on a data bus based on size of response
US6754907B1 (en) * 2000-02-09 2004-06-22 Sprint Communications Company, L.P. Remote control of video-on-demand system
US6757907B1 (en) * 2000-02-09 2004-06-29 Sprint Communications Company, L.P. Display selection in a video-on-demand system
EP1287677A2 (en) * 2000-03-13 2003-03-05 Comnet Media Corporation Video data management, transmission, and control system and method employing distributed video segments microcasting
US20070127887A1 (en) * 2000-03-23 2007-06-07 Adrian Yap Digital video recorder enhanced features
US8312490B2 (en) 2000-03-23 2012-11-13 The Directv Group, Inc. DVR with enhanced functionality
CN100508577C (en) 2000-03-31 2009-07-01 联合视频制品公司 Method for reducing cut-offs in program recording
US7266771B1 (en) * 2000-04-21 2007-09-04 Vulcan Patents Llc Video stream representation and navigation using inherent data
US6763439B1 (en) * 2000-05-01 2004-07-13 Microsoft Corporation Disk throttling and priority queuing for streaming I/O
US20030115294A1 (en) * 2000-05-31 2003-06-19 Khoi Hoang Selective access digital data broadcast system
US8131867B1 (en) 2000-06-01 2012-03-06 Qualcomm Incorporated Dynamic layer congestion control for multicast transport
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US6486803B1 (en) 2000-09-22 2002-11-26 Digital Fountain, Inc. On demand encoding with a window
US7103906B1 (en) 2000-09-29 2006-09-05 International Business Machines Corporation User controlled multi-device media-on-demand system
US7650621B2 (en) 2000-10-11 2010-01-19 United Video Properties, Inc. Systems and methods for providing storage of data on servers in an on-demand media delivery system
JP4851055B2 (en) 2000-10-11 2012-01-11 ユナイテッド ビデオ プロパティーズ インク System and method for caching data in a media on demand system
US6411223B1 (en) * 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US20020101932A1 (en) * 2000-11-29 2002-08-01 Montgomery Dennis L. Method and apparatus for encoding information using multiple passes and decoding in a single pass
US6978047B2 (en) * 2000-11-29 2005-12-20 Etreppid Technologies Llc Method and apparatus for storing digital video content provided from a plurality of cameras
US9613483B2 (en) 2000-12-27 2017-04-04 Proxense, Llc Personal digital key and receiver/decoder circuit system and method
US6973576B2 (en) * 2000-12-27 2005-12-06 Margent Development, Llc Digital content security system
US20030115351A1 (en) * 2001-12-14 2003-06-19 Giobbi John J. Digital content distribution system and method
US7472280B2 (en) * 2000-12-27 2008-12-30 Proxense, Llc Digital rights management
US7305560B2 (en) * 2000-12-27 2007-12-04 Proxense, Llc Digital content security system
US6973666B1 (en) * 2001-02-28 2005-12-06 Unisys Corporation Method of moving video data thru a video-on-demand system which avoids paging by an operating system
US6941252B2 (en) * 2001-03-14 2005-09-06 Mcdata Corporation Striping data frames across parallel fibre channel links
US20020184638A1 (en) * 2001-05-29 2002-12-05 Koninklijke Philips Electronics N.V. Video playback device capable of sharing resources and method of operation
KR100431734B1 (en) * 2001-06-09 2004-05-17 왕영국 Method for offering move image the same time by using multi pumping
US6977693B2 (en) * 2001-06-11 2005-12-20 Sun Microsystems, Inc. Networked video projector apparatus and method of projecting a video frame on a video projector
US7318146B2 (en) * 2001-06-19 2008-01-08 Micron Technology, Inc. Peripheral device with hardware linked list
US20030009765A1 (en) * 2001-06-22 2003-01-09 Linden Thomas M. Multiple program burst broadcast
US6950966B2 (en) * 2001-07-17 2005-09-27 Seachange International, Inc. Data transmission from raid services
US6810523B2 (en) * 2001-07-31 2004-10-26 International Business Machines Corporation Efficient thread programming using a single callback function
WO2003028255A2 (en) * 2001-09-26 2003-04-03 General Atomics Method and apparatus for data transfer using a time division multiple frequency scheme
US6996670B2 (en) * 2001-10-05 2006-02-07 International Business Machines Corporation Storage area network methods and apparatus with file system extension
US8116612B2 (en) * 2001-10-05 2012-02-14 Ucentric Systems, Inc. Centralized digital video recording and playback system accessible to multiple reproduction and control units via a home area network
US6738980B2 (en) 2001-11-15 2004-05-18 Industrial Technology Research Institute Methods and systems for video streaming with VCR functionality
JP2005512270A (en) 2001-12-06 2005-04-28 トヨタ モーター セールス, ユー.エス.エー, インコーポレイテッド Vehicle player system
FI116167B (en) * 2001-12-18 2005-09-30 Valtion Teknillinen Archive file server
US20060098880A1 (en) * 2002-02-22 2006-05-11 Montgomery Dennis L Method and apparatus for storing digital video content provided from a plurality of cameras
US7421726B1 (en) * 2002-03-27 2008-09-02 Unisys Corporation Method of seamlessly replacing disc-based video streams with memory-based video streams in a video-on-demand system
US7337232B2 (en) 2002-03-28 2008-02-26 Sony Corporation Method and system for providing and controlling sub-burst data transfers
US6915354B1 (en) * 2002-04-30 2005-07-05 Intransa, Inc. Distributed iSCSI and SCSI targets
US20030233651A1 (en) * 2002-06-18 2003-12-18 Farley Elisha Rawle Edwin System and method for parental control of digital display media
US8165993B2 (en) 2002-09-06 2012-04-24 Oracle International Corporation Business intelligence system with interface that provides for immediate user action
US7899879B2 (en) 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US7945846B2 (en) 2002-09-06 2011-05-17 Oracle International Corporation Application-specific personalization for data display
US7412481B2 (en) 2002-09-16 2008-08-12 Oracle International Corporation Method and apparatus for distributed rule evaluation in a near real-time business intelligence system
US7912899B2 (en) 2002-09-06 2011-03-22 Oracle International Corporation Method for selectively sending a notification to an instant messaging device
US7941542B2 (en) 2002-09-06 2011-05-10 Oracle International Corporation Methods and apparatus for maintaining application execution over an intermittent network connection
US7454423B2 (en) 2002-09-06 2008-11-18 Oracle International Corporation Enterprise link for a software database
US8255454B2 (en) 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7426059B2 (en) 2002-09-16 2008-09-16 Oracle International Corporation Data presentation methods and apparatus to facilitate printing and reviewing
US7401158B2 (en) 2002-09-16 2008-07-15 Oracle International Corporation Apparatus and method for instant messaging collaboration
US7668917B2 (en) 2002-09-16 2010-02-23 Oracle International Corporation Method and apparatus for ensuring accountability in the examination of a set of data elements by a user
US20040153787A1 (en) * 2002-10-11 2004-08-05 Eric Zucker Process for managing messages between a set of decoders and a system of conditional access control
AU2003302862A1 (en) * 2002-12-12 2004-06-30 Koninklijke Philips Electronics N.V. Intermediate storage of a/v data at the internet
US20040143850A1 (en) * 2003-01-16 2004-07-22 Pierre Costa Video Content distribution architecture
JP4274523B2 (en) * 2003-01-24 2009-06-10 株式会社日立製作所 Storage device system and start method of storage device system
US7493646B2 (en) 2003-01-30 2009-02-17 United Video Properties, Inc. Interactive television systems with digital video recording and adjustable reminders
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US20040267384A1 (en) * 2003-02-07 2004-12-30 Broadon Communications, Inc. Integrated console and controller
US8131649B2 (en) * 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US7322042B2 (en) 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US7904823B2 (en) 2003-03-17 2011-03-08 Oracle International Corporation Transparent windows methods and apparatus therefor
US20060051059A1 (en) 2004-09-08 2006-03-09 Krakirian Haig H Video recorder having user extended and automatically extended time slots
US7351217B2 (en) * 2003-05-23 2008-04-01 Yvette Scherpenborg Thermal compressive aerating bandage and methods of use relating to same
US7593336B2 (en) 2003-10-31 2009-09-22 Brocade Communications Systems, Inc. Logical ports in trunking
US7619974B2 (en) 2003-10-31 2009-11-17 Brocade Communication Systems, Inc. Frame traffic balancing across trunk groups
WO2005086802A2 (en) 2004-03-08 2005-09-22 Proxense, Llc Linked account system using personal digital key (pdk-las)
JP2005303975A (en) * 2004-03-19 2005-10-27 Onkyo Corp Network av system, controller, and its operation program
JP4321340B2 (en) * 2004-04-22 2009-08-26 ソニー株式会社 Playback device
US20060031916A1 (en) * 2004-04-30 2006-02-09 Vulcan Inc. Management and non-linear presentation of broadcasted or streamed multimedia content
US20060031879A1 (en) * 2004-04-30 2006-02-09 Vulcan Inc. Management and non-linear presentation of news-related broadcasted or streamed multimedia content
US20060031885A1 (en) * 2004-04-30 2006-02-09 Vulcan Inc. Management and non-linear presentation of music-related broadcasted or streamed multimedia content
US8108429B2 (en) 2004-05-07 2012-01-31 Quest Software, Inc. System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US7565661B2 (en) 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
US7680834B1 (en) 2004-06-08 2010-03-16 Bakbone Software, Inc. Method and system for no downtime resychronization for real-time, continuous data protection
US7979404B2 (en) 2004-09-17 2011-07-12 Quest Software, Inc. Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data
US8086575B2 (en) 2004-09-23 2011-12-27 Rovi Solutions Corporation Methods and apparatus for integrating disparate media formats in a networked media system
US7904913B2 (en) 2004-11-02 2011-03-08 Bakbone Software, Inc. Management interface for a system that provides automated, real-time, continuous data protection
EP1829283A2 (en) 2004-12-20 2007-09-05 Proxense, LLC Biometric personal data key (pdk) authentication
CN1310512C (en) * 2004-12-29 2007-04-11 国家广播电影电视总局广播科学研究院 Method of server expansion based on data/video system
US9973817B1 (en) 2005-04-08 2018-05-15 Rovi Guides, Inc. System and method for providing a list of video-on-demand programs
US7788521B1 (en) 2005-07-20 2010-08-31 Bakbone Software, Inc. Method and system for virtual on-demand recovery for real-time, continuous data protection
US7689602B1 (en) 2005-07-20 2010-03-30 Bakbone Software, Inc. Method of creating hierarchical indices for a distributed object system
US20070079342A1 (en) 2005-09-30 2007-04-05 Guideworks, Llc Systems and methods for managing local storage of on-demand content
US9681105B2 (en) 2005-12-29 2017-06-13 Rovi Guides, Inc. Interactive media guidance system having multiple devices
US8607287B2 (en) 2005-12-29 2013-12-10 United Video Properties, Inc. Interactive media guidance system having multiple devices
US9113464B2 (en) 2006-01-06 2015-08-18 Proxense, Llc Dynamic cell size variation via wireless link parameter adjustment
US11206664B2 (en) 2006-01-06 2021-12-21 Proxense, Llc Wireless network synchronization of cells and client devices on a network
US20070214105A1 (en) * 2006-03-08 2007-09-13 Omneon Video Networks Network topology for a scalable data storage system
US20070294565A1 (en) * 2006-04-28 2007-12-20 Network Appliance, Inc. Simplified parity disk generation in a redundant array of inexpensive disks
US20070255659A1 (en) * 2006-05-01 2007-11-01 Wei Yen System and method for DRM translation
JP2009535735A (en) 2006-05-02 2009-10-01 ブロードオン コミュニケーションズ コーポレーション Content management system and method
US8412949B2 (en) * 2006-05-05 2013-04-02 Proxense, Llc Personal digital key initialization and registration for secure transactions
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US9269221B2 (en) 2006-11-13 2016-02-23 John J. Gobbi Configuration of interfaces for a location detection system and application
US7883003B2 (en) 2006-11-13 2011-02-08 Proxense, Llc Tracking system using personal digital key groups
US8200961B2 (en) * 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US7801888B2 (en) 2007-03-09 2010-09-21 Microsoft Corporation Media content search results ranked by popularity
US8131723B2 (en) 2007-03-30 2012-03-06 Quest Software, Inc. Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity
US8364648B1 (en) 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
US20090019492A1 (en) 2007-07-11 2009-01-15 United Video Properties, Inc. Systems and methods for mirroring and transcoding media content
US8659427B2 (en) 2007-11-09 2014-02-25 Proxense, Llc Proximity-sensor supporting multiple application services
US8171528B1 (en) 2007-12-06 2012-05-01 Proxense, Llc Hybrid device having a personal digital key and receiver-decoder circuit and methods of use
US20090157891A1 (en) * 2007-12-13 2009-06-18 General Instrument Corporation Method and Apparatus for Inserting Time-Variant Data into a Media Stream
WO2009079666A1 (en) 2007-12-19 2009-06-25 Proxense, Llc Security system and method for controlling access to computing resources
WO2009102979A2 (en) 2008-02-14 2009-08-20 Proxense, Llc Proximity-based healthcare management system with automatic access to private information
US8103775B2 (en) * 2008-03-13 2012-01-24 Harris Corporation System and method for distributing a client load from a failed server among remaining servers in a storage area network (SAN)
US11120449B2 (en) 2008-04-08 2021-09-14 Proxense, Llc Automated service-based order processing
US8773469B2 (en) * 2008-04-09 2014-07-08 Imagine Communications Corp. Video multiviewer system with serial digital interface and related methods
US8717435B2 (en) * 2008-04-09 2014-05-06 Hbc Solutions, Inc. Video monitoring device providing parametric signal curve display features and related methods
US9716854B2 (en) * 2008-04-09 2017-07-25 Imagine Communications Corp. Video multiviewer system with distributed scaling and related methods
US9172900B2 (en) * 2008-04-09 2015-10-27 Imagine Communications Corp. Video multiviewer system with switcher and distributed scaling and related methods
US8103628B2 (en) 2008-04-09 2012-01-24 Harmonic Inc. Directed placement of data in a redundant data storage system
US8811499B2 (en) 2008-04-10 2014-08-19 Imagine Communications Corp. Video multiviewer system permitting scrolling of multiple video windows and related methods
US9124847B2 (en) * 2008-04-10 2015-09-01 Imagine Communications Corp. Video multiviewer system for generating video data based upon multiple video inputs with added graphic content and related methods
US9615049B2 (en) * 2008-04-10 2017-04-04 Imagine Communications Corp. Video multiviewer system providing direct video data transfer to graphics processing unit (GPU) memory and related methods
US8151008B2 (en) * 2008-07-02 2012-04-03 Cradle Ip, Llc Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling
US8925025B2 (en) * 2008-08-22 2014-12-30 At&T Intellectual Property I, L.P. System and method of providing access to content of an interrupted digital broadcast signal
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US8392530B1 (en) * 2008-12-18 2013-03-05 Adobe Systems Incorporated Media streaming in a multi-tier client-server architecture
WO2010089886A1 (en) * 2009-02-06 2010-08-12 富士通株式会社 Packet buffer device and packet discarding method
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US9014546B2 (en) 2009-09-23 2015-04-21 Rovi Guides, Inc. Systems and methods for automatically detecting users within detection regions of media devices
US9418205B2 (en) 2010-03-15 2016-08-16 Proxense, Llc Proximity-based system for automatic application or data access and item tracking
US9322974B1 (en) 2010-07-15 2016-04-26 Proxense, Llc. Proximity-based system for object tracking
US9265450B1 (en) 2011-02-21 2016-02-23 Proxense, Llc Proximity-based system for object tracking and automatic application initialization
US8713405B2 (en) * 2011-11-22 2014-04-29 Simplivity Corporation Method and apparatus for allocating erasure coded data to disk storage
US8805418B2 (en) 2011-12-23 2014-08-12 United Video Properties, Inc. Methods and systems for performing actions based on location-based rules
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
WO2014183106A2 (en) 2013-05-10 2014-11-13 Proxense, Llc Secure element as a digital pocket
US9674563B2 (en) 2013-11-04 2017-06-06 Rovi Guides, Inc. Systems and methods for recommending content
US9466964B1 (en) * 2015-06-08 2016-10-11 Amazon Technologies, Inc. Multilevel cable management system
US10158611B2 (en) 2016-11-17 2018-12-18 Bank Of America Corporation System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash
US10701462B2 (en) 2018-04-12 2020-06-30 International Business Machines Corporation Generating video montage of an event
CN114564144B (en) * 2020-11-27 2024-04-19 伊姆西Ip控股有限责任公司 Method, apparatus and program product for creating a block array in a storage system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5508732A (en) * 1993-03-22 1996-04-16 International Business Machines Corporation Data server, control server and gateway architecture system and method for broadcasting digital video on demand
ES2118216T3 (en) * 1993-05-19 1998-09-16 Alsthom Cge Alcatel VIDEO SERVICE DEVICE.
US5442390A (en) * 1993-07-07 1995-08-15 Digital Equipment Corporation Video on demand with memory accessing and or like functions
US5440336A (en) * 1993-07-23 1995-08-08 Electronic Data Systems Corporation System and method for storing and forwarding audio and/or visual information on demand
US5583876A (en) * 1993-10-05 1996-12-10 Hitachi, Ltd. Disk array device and method of updating error correction codes by collectively writing new error correction code at sequentially accessible locations
US5473362A (en) * 1993-11-30 1995-12-05 Microsoft Corporation Video on demand system comprising stripped data across plural storable devices with time multiplex scheduling
AU2123995A (en) * 1994-03-18 1995-10-09 Micropolis Corporation On-demand video server system
US5793971A (en) * 1994-04-25 1998-08-11 Sony Corporation Video signal output apparatus having near video-on-demand function
US5521631A (en) * 1994-05-25 1996-05-28 Spectravision, Inc. Interactive digital video services system with store and forward capabilities
US5519435A (en) * 1994-09-01 1996-05-21 Micropolis Corporation Multi-user, on-demand video storage and retrieval system including video signature computation for preventing excessive instantaneous server data rate
US5623595A (en) * 1994-09-26 1997-04-22 Oracle Corporation Method and apparatus for transparent, real time reconstruction of corrupted data in a redundant array data storage system
US5533021A (en) * 1995-02-03 1996-07-02 International Business Machines Corporation Apparatus and method for segmentation and time synchronization of the transmission of multimedia data
JP3358687B2 (en) * 1995-03-13 2002-12-24 株式会社日立製作所 Disk array device
US5719983A (en) * 1995-12-18 1998-02-17 Symbios Logic Inc. Method and apparatus for placement of video data based on disk zones
US5832196A (en) * 1996-06-28 1998-11-03 Mci Communications Corporation Dynamic restoration process for a telecommunications network

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292713B2 (en) * 1998-05-18 2009-07-08 株式会社日立製作所 Disk array controller
JP2000048001A (en) * 1998-07-10 2000-02-18 Internatl Business Mach Corp <Ibm> Real time shared disk system for computer cluster
US6877072B1 (en) 1998-07-10 2005-04-05 International Business Machines Corporation Real-time shared disk system for computer clusters
JP2002529850A (en) * 1998-11-09 2002-09-10 インテル コーポレイション Scheduling requests in the system
JP2010044784A (en) * 1998-11-09 2010-02-25 Intel Corp Scheduling request in system
WO2000052936A1 (en) * 1999-03-01 2000-09-08 Kyushu Electronics Systems. Inc. Image information high-speed compressing method and real-time moving picture transferring method using the same
EP1076460A1 (en) * 1999-03-01 2001-02-14 Kyushu Electronics Systems, Inc. Image information high-speed compressing method and real-time moving picture transferring method using the same
EP1076460A4 (en) * 1999-03-01 2008-11-05 Kyushu Electronics Systems Inc Image information high-speed compressing method and real-time moving picture transferring method using the same
JP2009529193A (en) * 2006-03-08 2009-08-13 オムニオン ビデオ ネットワークス Data storage system
WO2011117986A1 (en) * 2010-03-24 2011-09-29 富士通株式会社 Data transfer device and data transfer method
JP5573943B2 (en) * 2010-03-24 2014-08-20 富士通株式会社 Data transfer apparatus and data transfer method
US9015369B2 (en) 2010-03-24 2015-04-21 Fujitsu Limited Data transferring apparatus and data transferring method

Also Published As

Publication number Publication date
US5928327A (en) 1999-07-27
JP3560211B2 (en) 2004-09-02
US6212657B1 (en) 2001-04-03
JP2004199853A (en) 2004-07-15
TW364267B (en) 1999-07-11

Similar Documents

Publication Publication Date Title
JP3560211B2 (en) System and method for distributing digital data on demand
US9432460B2 (en) 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
US6785768B2 (en) Computer system and process for transferring streams of data between multiple storage units and multiple applications in a scalable and reliable manner
Yu et al. Grouped sweeping scheduling for DASD-based multimedia storage management
Lougher et al. The design of a storage server for continuous media
US5826110A (en) System for video server using coarse-grained disk striping method in which incoming requests are scheduled and rescheduled based on availability of bandwidth
US5815662A (en) Predictive memory caching for media-on-demand systems
US5974503A (en) Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names
US5892915A (en) System having client sending edit commands to server during transmission of continuous media from one clip in play list for editing the play list
JP3110987B2 (en) Media streamer optimized for video producing isochronous data streams
EP1040419B1 (en) Computer system for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
JPH0887385A (en) Medium streamer optimized for video with cache management
JPH08130714A (en) Media streamer user interface optimized for video
JPH08154233A (en) Medium streamer optimized for video
JP2003525486A (en) Disk scheduling system using finite request reordering
Lougher et al. The design and implementation of a continuous media storage server
Özden et al. Architecture issues in multimedia storage systems
Jin et al. Multimedia storage server

Legal Events

Date Code Title Description
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: 20040420

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040520

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: 20080604

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees