JP2005346732A - ファイルシステム - Google Patents

ファイルシステム Download PDF

Info

Publication number
JP2005346732A
JP2005346732A JP2005208805A JP2005208805A JP2005346732A JP 2005346732 A JP2005346732 A JP 2005346732A JP 2005208805 A JP2005208805 A JP 2005208805A JP 2005208805 A JP2005208805 A JP 2005208805A JP 2005346732 A JP2005346732 A JP 2005346732A
Authority
JP
Japan
Prior art keywords
data
unit
command
priority
resource
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.)
Pending
Application number
JP2005208805A
Other languages
English (en)
Inventor
Yukiko Ito
由起子 伊藤
Tsutomu Tanaka
田中  勉
Shinzo Doi
晋三 土居
Takeshi Kokado
健 古門
Tomoyuki Karibe
朋幸 苅部
Masaro Tamai
昌朗 玉井
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005208805A priority Critical patent/JP2005346732A/ja
Publication of JP2005346732A publication Critical patent/JP2005346732A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【課題】 ビデオサーバの使用効率を向上し、ユーザからの要求に対して素早い応答時間で映像を提供し、様々な再生速度を要求するユーザをサポートするファイルシステムを提供する。
【解決手段】 外部からゲットリソースメッセージが到着すると、リソース割り当て部102は、リソースの予約を行う。データの読み出し、書き込みに際しては、申告値管理部111にてパラメータをチェックし、スロット割り当て部103でリソースの割り当てを行うことにより、データの読み出しに関して、遅延品質を保証した、効率のよいファイルシステムを構築する。
【選択図】 図1

Description

本発明は、ファイルシステムに関し、より特定的には、リアルタイム性が要求される映像、音声、動画といったマルチメディアデータの読み書きを扱うファイルシステムに関する。
従来のコンピュータで用いられているファイルシステムは、主としてテキストデータを扱ってきた。例えば、「UNIXカーネルの設計」(Maurice J.Bach著/坂本 文・多田好克・村井純訳;共立出版株式会社)によると、UNIX(登録商標)のファイルシステムでは、ファイルからデータを読み出し、またはファイルにデータを書き込む場合には、openシステムコールを用いてファイルを開き、ファイルの内容を、read、writeといったシステムコールを用いて読み出しまたは書き込むようにしている。
ところで、ファイルシステムの一例として、ディジタル化された映像データを扱うビデオサーバがある。このようなビデオサーバには、特開平07−107425号公報の「ビデオサーバ」に記載されているように、ビデオデータを格納した複数の記憶装置を、交換装置で接続した構成のものがある。また、ビデオサーバにおける映像の再生手順については、ISO/IEC標準13818−6(Committee Draft)において記述されている。このCommittee Draftによれば、ユーザがビデオサーバに「Directory Open」を送出すると、ビデオサーバは、映像の連続再生の準備を完了し、「DSM Stream Play」「DSM Pause Resume」を送出すると、ビデオサーバからユーザへの映像データの送出が開始される。また、映像データの供給を停止させる場合には、ユーザからビデオサーバに「DSM Stream Pause」が送出される。
しかしながら、UNIX(登録商標)のような従来のファイルシステムでは、ユーザからのアクセスが多数同時に発生した場合には、ユーザ側での読み出し待ち時間が増加する。このように、ユーザが読み出しコマンドを発行してから、データの受け取りを完了するまでの待ち時間は、他のユーザからのアクセス状況に影響を受けるため、予測不可能であった。特に、ビデオサーバのように、ファイルシステムが映像や、音声といった時間的に連続性が要求されるデータを管理しており、ユーザがデータの一部を一定時間おきに読み出して、ユーザ端末で再生を行う場合には、一定時間内に確実にデータを取得する必要があり、従来のファイルシステムでは対応できなかった。従って、映像データのように時間的に連続性が要求されるデータに関しては、ユーザ側で予め長いデータを取得しておき、全て取得した後に、映像の再生を行う必要があった。この場合には、ユーザ側で長いデータを格納できる大容量の記憶装置を保持する必要があり、また、映像の再生を開始するまでに長い待ち時間を要した。
それ故に、本発明の目的は、ユーザからの要求に対して素早い応答時間でデータを提供でき、しかも様々な再生速度を要求するユーザをサポートすることのできるファイルシステムを提供することである。
第1の発明は、有線または無線の伝送路を介して複数の端末と接続されており、いずれかの端末からデータの読み出し要求が送られてきたとき、内部に蓄積されたデータの中から対応するデータを検索して読み出し、読み出したデータを読み出し要求を発した端末へと送信するサーバ装置であって、
種々のデータを記憶しており、端末からの読み出し要求に応じて、ランダムアクセスが可能なデータ記憶部と、
データ記憶部と各端末との間でデータの入出力を制御する入出力部と、
入出力部とデータ記憶部との間でデータを交換する交換部と、
端末から要求されたデータを、データ記憶部から読み出して当該端末へと出力する際に必要となるリソースを管理するリソース管理部とを備え、
リソース管理部は、サーバ装置全体のリソースを、連続性を保証する必要のあるデータ(優先データ)を端末へと出力するために用いられるリソース(優先リソース)と、連続性を保証する必要のないデータ(非優先データ)を端末へと出力するために用いられるリソース(非優先リソース)とに分離して管理することを特徴とする。
第2の発明は、第1の発明において、
各端末は、複数のグループに分割されており、
入出力部は、端末のグループ毎に設けられた複数のI/Oユニットを含み、
各I/Oユニットは、
対応するグループの端末から送られてくる優先データの読み出しを要求するコマンドに対する入出力制御を実行する優先入出力制御部と、
対応するグループの端末から送られてくる非優先データの読み出しを要求するコマンドに対する入出力制御を実行する非優先入出力制御部とを含み、
データ記憶部は、
複数の記憶装置と、
各記憶装置と接続され、当該記憶装置からのデータの読み出しを制御する複数のMSFSとを含み、
非優先入出力制御部は、
対応するグループの端末から送られてくる非優先データの読み出しを要求するコマンドを一時的に格納するコマンキューと、
コマンドキューからコマンドを取り出すコマンドキュー制御部と、
コマンドキュー制御部が取り出したコマンドを、対応する宛先のMSFSに送出するコマンド送出部と、
MSFSによって記憶装置から読み出された非優先データを一時的に格納するデータバッファ部と、
データバッファ部に格納された非優先データを端末に送出するデータ送出部とを含んでいる。
第3の発明は、第2の発明において、
コマンドキューは、対応するグループに属する複数の端末のそれぞれに対応して設けられており、それぞれが対応する端末からのコマンドを到着順に格納し、
コマンドキュー制御部は、複数のコマンドキューの中からコマンドを格納している1つのコマンドキューを選択すると共に、その先頭に格納されているコマンドおよびそれと同じMSFSに送出されるコマンドを取り出してコマンド送出部に出力するコマンド取り出し処理を実行し、
コマンド送出部は、
コマンドキュー制御部から受け取ったコマンドを、それを実行すべきMSFSに送出し、
送出したコマンドに対する全ての読み出しデータを、データバッファ部がMSFSから受信したことを確認すると、受信完了通知をコマンドキュー制御部に送出し、
コマンドキュー制御部は、コマンド送出部から受信完了通知を受け取る毎に、コマンド取り出し処理を繰り返し実行することを特徴とする。
第4の発明は、第3の発明において、
コマンドキュー制御部は、1回のコマンド取り出し処理において、1つのコマンドキューから取り出すコマンドの数を、予め定めた一定個数以下に制限することを特徴とする。
第5の発明は、第3の発明において、
非優先入出力制御部は、データバッファ部の使用状態を管理するバッファ管理部をさらに含み、
コマンドキュー制御部は、バッファ管理部が管理するデータバッファの使用状態に基づき、コマンド取りだし処理のために選択するコマンドキューを決定することを特徴とする。
第6の発明は、第5の発明において、
バッファ管理部には、各端末毎にデータバッファ部に格納されている未送信データ数をカウントする複数の使用量カウンタが設けられており、
コマンドキュー制御部は、コマンド取り出し処理を実行する前にバッファ管理部の使用量カウンタを参照し、未送信データ数が最も小さい端末に対応するコマンドキューを、コマンド取り出し処理の対象として選択することを特徴とする。
第7の発明は、第3の発明において、
コマンド送出部は、MSFSによって読み出される非優先データを格納するための領域をデータバッファ部に予約した後に、コマンドキュー制御部から受け取ったコマンドをMSFSに送出し、データバッファ部に非優先データを格納するための領域が予約できない場合には、予約できるまでMSFSに対するコマンドの送出を停止することを特徴とする。
第8の発明は、第2の発明において、
コマンドキュー制御部は、I/Oユニットが端末にデータを出力するための非優先リソースとしての通信帯域と、I/Oユニットがデータ記憶部から読み出された非優先データを受信するための非優先リソースとしての通信帯域との内、小さい方の帯域に基づいて、コマンド送出部に対してコマンドを出力する周期を決定することを特徴とする。
第9の発明は、第2の発明において、
コマンド送出部は、
各MSFSに対応して設けられ、コマンドキュー制御部から受け取ったコマンドを、MSFS別に格納する複数の送出キューと、
各送出キューのそれぞれに対応して設けられ、対応する送出キューからMSFSへコマンドを送出する毎にインクリメントされ、対応するMSFSからの読み出しデータがデータバッファ部に到着する毎にデクリメントされることにより、データバッファ部への非優先データの未到着数をカウントする複数の処理数カウンタとを含み、
コマンド送出部は、処理数カウンタによってカウントされる未到着数が所定のしきい値を超えないように、各送出キューからMSFSに対して送出されるコマンドの数を制限することを特徴とする。
第10の発明は、第1の発明において、
リソース管理部は、リソースとして、交換部の通信帯域と、データ記憶部がデータを読み出す帯域と、入出力部が各端末にデータを出力するための通信帯域とを管理していることを特徴とする。
第11の発明は、第1の発明において、
交換部は、ATMスイッチで構成されており、
ATMスイッチの非優先リソースとしての通信帯域が、ABRモードで確保されることを特徴とする。
第12の発明は、第1の発明において、
リソース管理部は、予め固定的に、サーバ装置全体のリソースの内、一部を優先リソースとして割り当て、残りの部分を非優先リソースとして割り当てることを特徴とする。
第13の発明は、第1の発明において、
リソース管理部は、端末からの優先データの読み出し要求に応じて、サーバ装置全体のリソースの内、優先リソースとして割り当てる量を変化させることを特徴とする。
第14の発明は、第13の発明において、
リソース管理部は、サーバ装置全体のリソースの内、優先リソースとして割り当てられていないリソースを全て非優先リソースとして割り当て、優先リソースを増やす必要が生じた場合、非優先リソースが所定のリソース量以下にならない範囲で、当該非優先リソースとして割り当てられているリソースから優先リソースを割り当てることを特徴とする。
上記第1の発明によれば、システム全体のリソースを、優先リソースと非優先リソースとに分離して管理するようにしているので、非優先データの読み出しに使用するリソースを、優先リソースとは独立して確保することができる。その結果、非優先データの読み出し量が増加しても、優先データの出力に影響を与えることがない。
上記第3の発明によれば、コマンドキュー制御部は、コマンド送出部にコマンドを出力後、出力したコマンドに対応する全てのデータを、データバッファ部が受信するまでは、次のコマンドをコマンド送出部に出力しないことになる。これによって、I/Oユニットは、非優先データの受信に関して、同時に複数のMSFSと通信することがなくなり、非優先データ同士のセルの衝突を考慮する必要がない。一方、MSFSは、I/Oユニットが持つ非優先リソースの通信帯域の全てを使用して高速にデータを送信することが可能となる。
上記第4の発明によれば、1つのMSFSに対してほぼ同時に多数のコマンドが送出されると、コマンドを受信したMSFSで輻輳が生じるため、1つのコマンドキューから取り出されてコマンド送出部に送出されるコマンド数を、予め定めた一定個数以下に制限するようにしている。
上記第6の発明によれば、バッファ管理部が管理するデータバッファ部の使用状況に基づいて、コマンドが蓄えられているコマンドキューの中から、データバッファ部に格納されているデータ量が最も少ない端末に対応するコマンドキューを選択し、当該選択したコマンドキューに蓄えられているコマンドの送出処理を優先的に実行するようにしているので、複数の端末が共通に使用している非優先リソースを、1つの端末が占有して使用することが少なくなり、サーバ装置が各端末に対して有する通信能力を最大限に活用することができる。
上記第7の発明によれば、コマンド送出部は、データバッファ部内にデータを格納するための領域を予約した後に、非優先データの読み出しを要求するコマンドをMSFSに送出するようにしている。すなわち、コマンド送出部は、格納領域を予約できない場合には、予約できるまで、非優先データの読み出しを要求するコマンドをMSFSに送出しない。これによって、MSFSからのデータ受信時に、データバッファ部内に格納領域がなくてデータが廃棄されることを防止することができる。
上記第8の発明によれば、コマンドキュー制御部は、I/Oユニットが端末にデータを出力するための非優先リソースとしての通信帯域と、I/Oユニットがデータ記憶部から読み出された非優先データを受信するための非優先リソースとしての通信帯域との内、小さい方の帯域に基づいて、コマンド送出部に対してコマンドを出力する周期を決定するようにしている。これによって、MSFSから送られてくるデータによって使用される平均帯域が、交換部がMSFSと通信するための非優先リソースとしての通信帯域と等しくなるか、またはそれよりも小さくなるため、MSFSのデータ送信による交換部の輻輳を抑制する効果が期待できる。さらに、MSFSから送られてくるデータによって使用される平均帯域が、I/Oユニットが端末にデータを出力するための非優先リソースとしての通信帯域とも等しくなるか、またはそれよりも小さくなるため、I/Oユニット内のデータバッファ部に蓄積されるデータ量が増大していくことを抑えることができる。
上記第9の発明によれば、コマンド送出部は、注目している送出キューに対応する処理数カウンタのカウント値が、予め定められたしきい値未満である場合にのみ、当該注目している送出キュー内のコマンドをMSFSに送信するようにしているので、1つのMSFSに対して読み出し処理が集中し、当該MSFS内でコマンドが滞留するのを避けることができる。
上記第11の発明によれば、非優先リソースとしてのATMスイッチの通信帯域をABRモードを用いて確保し、データを読み出したMSFSは、ABRモードで確保している通信帯域を用いてデータを送信するようにしているので、ATMスイッチにおいて輻輳が生じた場合でも、即座にMSFSからの送信レートが下がり、輻輳が解消される。従って、I/Oユニットは、常に正常にデータを受信できる。
上記第13の発明によれば、端末からの優先データの読み出し要求に応じて、サーバ装置全体のリソースの内、優先リソースとして割り当てる量を変化させるようにしているので、優先データの読み出し要求の増減に応じて、リソースの割り当てを柔軟に変更でき、有限なリソースを効率的に活用することができる。
上記第14の発明によれば、優先リソースとして使用されていないリソースを全て非優先リソースとして管理し、優先リソースを新たに増やす必要が生じた場合には、非優先リソースが所定のリソース量(最低帯域量)以下にならない条件下で、非優先リソースから優先リソースを割り当てるようにしているので、非優先データの読み出しが増加しても、優先データの入出力が影響を受けることがなく、しかも、使用されていないリソースが全て非優先リソースとして使用されるため、非優先データの読み出しが効率的に実行される。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るファイルシステムの構成を示すブロック図である。図1において、本ファイルシステムは、交換装置1と、ファイルマネージャ2と、複数のサーバユニット3とを備えている。
ファイルマネージャ2は、ファイルシステム全体を管理する。各サーバユニット3は、ユーザからのファイルの読み出しまたは書き込みの要求を受け付け、ファイルシステムが管理する記憶装置から読み出したデータやメッセージをユーザに対して送信する。各サーバユニット3間、および各サーバユニット3とファイルマネージャ2との間では、交換装置1を介してデータがやりとりされる。当該ファイルシステムが管理するデータは、各サーバユニット3内に存在する記憶装置に格納されている。
図2は、各サーバユニット3におけるファイルアクセスに関連する部分の構成を示すブロック図である。図2において、各サーバユニット3は、外部メッセージインターフェース部101と、リソース割り当て部102と、スロット割り当て部103と、アドレス検索部104と、要求送出部105と、外部ネットワークI/O制御部106と、内部メッセージインターフェース部107と、記憶装置108と、記憶制御部109と、内部ネットワークI/O制御部110と、申告値管理部111とを含む。
外部メッセージインターフェース部101は、外部とやりとりされるメッセージを識別し、サーバユニット内の各機能ブロックに対して処理の指示を与える。リソース割り当て部102は、ファイルシステム内のリソースの割り当てを行う。スロット割り当て部103は、サーバユニット3で管理しているスロットの割り当てを行う。なお、スロットについての説明は後述する。アドレス検索部104は、要求されたデータの格納位置を検索する。要求送出部105は、固定長のデータブロックの読み出しを要求するブロック読み出し要求や、書き込みを要求するブロック書き込み要求の送出を指示する。内部メッセージインターフェース部107は、ファイルシステム内部のファイルマネージャ2や、他のサーバユニットに対するメッセージの送受信を制御する。記憶装置108は、データブロックや、ファイル毎のデータの格納位置情報を記憶する。記憶制御部109は、記憶装置108へのアクセスを制御する。内部ネットワークI/O制御部110は、ブロック読み出し要求により要求されたデータブロックを交換装置1に送出するタイミングを制御する。申告値管理部111は、外部から到着したメッセージのパラメータが妥当なものであるかどうかをチェックする。
図3は、ファイルマネージャ2におけるファイルアクセスに関連する部分の構成を示すブロック図である。図3において、ファイルマネージャ2は、メッセージインターフェース部201と、リソース管理部202とを含む。メッセージインターフェース部201は、交換装置1を介して各サーバユニット3とやりとりされるメッセージを識別し、ファイルマネージャ2内の機能に対して処理の指示を与える。リソース管理部202は、ファイルシステムにおける、記憶装置の読み出し帯域、交換装置の入出力帯域の容量と使用量とを管理する。
ここで、ファイルシステムには、外部からファイルアクセスに関連して、以下のメッセージが到着する。
(1)GetResource
(2)FileOpen
(3)ReadBlock
(4)WriteBlock
上記メッセージを受け取ったときの、ファイルマネージャ2および各サーバユニット3での、ファイルアクセスに関連する部分の動作について、以下に説明する。
GetResourceメッセージが到着すると、サーバユニット3内の外部メッセージインターフェース部101は、リソース割り当て部102にその旨を通知する。リソース割り当て部102は、ファイルマネージャ2に対するリソース割り当て要求の送出を、内部メッセージインターフェース部107に指示する。リソース割り当て要求がファイルマネージャ2に到着すると、リソース管理部202では、リソース割り当て要求の受け付け可否を判断し、その結果をサーバユニット3に送出する。サーバユニット3内のリソース割り当て部102では、割り当て可能の判断結果を受け取ると、リソースの予約を行う。
FileOpenメッセージが到着すると、サーバユニット3は、ファイル内のデータの格納位置情報を記憶装置108から取得し、ファイルアクセス可能な状態に移行する。
ReadBlockメッセージが到着すると、サーバユニット3内のスロット割り当て部103は、予約したリソースを割り当てて、要求されたデータの読み出しを行う。
WriteBlockメッセージが到着すると、サーバユニット3内のスロット割り当て部103は、予約したリソースを割り当てて、要求されたデータの書き込みを行う。
図4は、リソースの予約および割り当てと、データ読み出し動作との関係を示した図である。以下には、この図4を参照しつつ、リソース予約および割り当てを行ってデータの読み出し,書き込みを行うファイルシステムの動作について説明する。まず始めに、リソースの予約および割り当てに用いるMS到着スロットおよび書き込み用スロットについて説明した後、ファイルシステムの動作について説明する。
(1)MS到着スロット
本ファイルシステムでは、数10msecおきに区切られた「MS到着スロット」という概念を用いる。図4において、線801は、時間をMS到着スロットに区切って管理していることを示している。また、データの読み出しに際しては、要求されたデータを固定長のデータブロック(MSブロック)に区切り、MS毎にブロック読み出し要求を記憶装置108または他のサーバユニットに送出し、読み出しを行う。あるサーバユニットが他のサーバユニットに対してブロック読み出し要求を送出する場合には、MS到着スロットを割り付ける。1つのスロットに割り付けることができるブロック読み出し要求の個数には、最大値が設定されている。本ファイルシステムでは、ユーザへのストリーム提供を保証するために、ブロック読み出し要求を受け付けたユーザについて、予めMS到着スロットを予約する。ブロック読み出し要求に割り付けるMS到着スロットは、予約されたMS到着スロットの中から選定する。MS到着スロットを予約する動作は、一定時間おきにまとめて行う。「MS到着スロット」を形成するパラメータを以下に示す。
T_slt:スロットの時間間隔
Nmax1:スロットに割り当て可能な要求数
T_rsvMS:到着スロット予約動作の間隔
図4において、参照番号802は、T_sltの間隔を示している。図5は、MS到着スロットの状態を管理するMS到着スロット管理テーブルの一例を示している。図5に示したように、MS到着スロット管理テーブルは、スロットを識別する「スロット番号」、スロットの予約の有無および予約しているユーザを識別する「予約ユーザ番号」、ブロック読み出し要求を割り付けているかどうかおよび割り当てている要求を識別する「割り当て要求番号」、非優先のブロック読み出し要求を割り付けてよいかどうかを識別する「非優先フラグ」といった項目を情報として持つ。GetResourceメッセージによってリソースが割り当てられたユーザは、予約したスロットを利用する。また、リソース割り当てなしにブロックの読み出しを要求したユーザに対しては、ブロックの読み出しをする場合には、非優先フラグを参照して、割り当てることが可能なスロットを割り当てる。
(2)書き込み用スロット
ブロックの書き込みに際しては、「書き込み用スロット」という概念が用いられる。各サーバユニット3において、書き込み用スロットは、宛先サーバユニット毎に設けられている。外部からWriteBlockコマンドと共に到着するデータは、固定長のデータブロック(MSブロック)に分割され、記憶装置108の空き領域リストに従って宛先が決定され、ブロック書き込み要求として送出される。ここで、ブロック書き込み要求には、宛先となるサーバユニットの書き込み用スロットを必ず割り付ける。書き込み用スロットの状態を管理する書き込み用スロット管理テーブルの一例を図6に示す。図6に示したように、書き込み用スロット管理テーブルは、宛先サーバユニットを識別する「宛先ユニット番号」、書き込み用スロットを特定する「スロット番号」、スロットに割り当てた要求の有無と割り当てた要求を識別する「割り当て要求識別番号」といった項目を情報として持つ。
(3)ユーザ毎のリソース管理
サーバユニット3では、GetResourceを受け付けているユーザを、Read/Write別に、確保した帯域が大きいものより小さいものの順に「ストリーム管理テーブル」で管理している。確保した帯域により、ユーザは、単数または複数のファイルを読み出すことができる。図7は、ストリーム管理テーブルの一例を示している。このストリーム管理テーブルは、各サーバユニット3内のリソース割り当て部102で管理されている。「ストリーム管理テーブル」は、ユーザ毎のリソースの獲得状況を管理するために、図7に示したような項目を情報として持つ。図7において、「リソース記述子」は、GetResourceメッセージ受け付け毎に割り付けられる識別子である。「ストリーム管理テーブル」は、この「リソース記述子」毎に、読み出し用か書き込み用かを識別する「読み出し・書き込みの別」と、要求帯域を提供するために必要となるスロットの平均予約間隔とを記憶している。さらに、「ストリーム管理テーブル」は、確保した帯域を記憶する「確保されたファイルシステム内の内部帯域」、確保した帯域のうち現在使っていない帯域量を記憶する「現在使用可能なファイルシステム内部帯域」といった項目を情報として持つ。
(4)リソース獲得受け付け制御
リソース獲得受け付け制御は、外部からのGetResourceメッセージの受け付け可否を判断し、判断結果を外部に返す制御である。受け付け可否の判断は、メッセージによって申告されるパラメータに基づいて、リソース管理部202にて行われる。GetResourceメッセージは、以下の申告パラメータを持つ。
Read/Writeの別
ブロックの最小Read/Write間隔T
ReadBlock到着から、ブロック送出までの遅延要求値D_lim
図8は、図3に示すリソース管理部202のより詳細な構成を示すブロック図である。図8において、リソース管理部202は、申告パラメータ処理部401と、書き込み帯域算出部402と、受付判断部403と、リソース記憶部404とを含む。申告パラメータ処理部401は、コマンドによって申告されるパラメータを、受け付け判断に必要な数値に置き換える。書き込み帯域算出部402は、書き込み用の帯域を算出する。受付判断部403は、メッセージの受付の可否を判断する。リソース記憶部404は、現在のリソースの使用状況と、提供可能なリソースの最大値とを記憶する。
申告パラメータ処理部401では、まず、遅延要求値D_limに基づき、次式(1)を満たす値T_maxを求める。
D_lim=D_net+D_dsk_min+2×T_max…(1)
上式(1)において、交換装置1での遅延許容値をD_net、記憶装置108での遅延限界値の最小値をD_dsk_minとする。また、T_maxとTを比較した場合に、小さい方をT_minとする。
申告パラメータ処理部401は、T_minの値から、必要な帯域量を算出する。読み出しの場合、申告パラメータ処理部401は、算出した帯域量を受付判断部403に通知する。書き込みの場合、申告パラメータ処理部401は、交換装置1からサーバユニット3への出入口の帯域として申告値を採用し、記憶装置108の処理能力の部分として、申告値に記憶装置毎に決められている一定値を乗じた数値(書き込み帯域算出部402にて計算される)を、ピーク提供速度として求める。受付判断部403は、交換装置1からサーバユニット3への入口側および出口側、ならびに記憶装置108において、GetResourceを受け付けた場合の獲得リソースの総和が一定以下となるかどうかを判断する。受け付けが可能な場合、受付判断部403は、その旨をリソース記憶部404に格納すると共に、リソース割り当て部102が管理するストリーム管理テーブルに情報を追加する。このとき、ストリーム管理テーブルの記述順序(T_minが小さいものから大きいものの順)を乱さない位置に情報を追加する。
(5)読み出し用リソースの確保
GetResourceメッセージが受け付けられ、かつ読み出し用のリソースが獲得されているユーザのために使用する、MS到着スロットの予約が行われる。MS到着スロットの予約は、一定時間おきに行われる。ストリーム管理テーブルに記述された順序(提供ストリームの速度が速いものから遅いものの順)で、時間区間T_rsvの間のMS到着スロットの予約が行われる。各T_minの設定値に従って、予約が行われる。図4において、参照番号803〜806は、予約動作を行うタイミングを示しており、参照番号807は、時間区間T_rsvを示している。予約スロットの決定方法を以下に示す。
1)それぞれのユーザについて、T_minの時間間隔でスロットを選択し、選択したスロットのそれぞれを期待スロットとする。
2)タイミング803〜806では、時間区間T_rsv内に、T_minの時間間隔で、予約の期待スロットを決定する。
3)期待スロットに予約可能であれば、予約する。
4)期待スロットに予約できなければ、期待スロットの次のスロットを参照する。参照したスロットに予約可能であれば、予約する。予約できなければ、次のスロットを参照する。これを繰り返す。
5)予約する区間を外れてしまった場合にも、上記規則に従い、次の時間区間T_rsv内のスロットに、予約を行う。
図4において、参照番号808〜820は、予約の期待スロットを示している。そして、参照番号821〜833は、実際に予約を行ったスロットを示している。新たにGetResourceコマンドを受け付けたときには、T_minの設定値に従って、既に予約されている区間のスロット予約を直ちに行う。スロットの予約方法は、これまでに説明した方法と同一とする。すべてのユーザについて、予約動作を行った時刻のMS到着スロットで、予約されていないものについては、図5における非優先フラグをONとする。
なお、MS到着スロットの予約を、次の期待スロットが到来するタイミングが早いものから順番に行うようにしてもよい。この場合、ストリーム管理テーブルには、GetResourceを受け付けたユーザに関する情報が、次の期待スロットの到来するタイミングが早いものの順番で記述されている。MS到着スロットの予約が行われると、ストリーム管理テーブルの記述順序は更新される。
(6)ブロック読み出し動作
外部からReadBlockメッセージが到着すると、その旨が、メッセージインターフェース部101を介して申告値管理部111に通知される。 ReadBlockメッセージは、以下の申告パラメータを持つ。
リソース記述子
ブロックのRead間隔
ReadBlock到着からブロック送出までの遅延要求値D_lim
ファイル識別子
ファイル内の位置情報
申告値管理部111では、ユーザからのReadBlockコマンドによるブロックの取得要求間隔が、GetResourceによる申告通りとなっているかどうかを調べる。ReadBlockの到着時刻に、コマンドに付与された遅延要求値を加算した時刻が、ブロックの要求到着時刻となる。このブロックの要求到着時刻の間隔が、申告通りになっているかどうかを調べる。違反している場合には、違反通知を行う。また、遅延要求値が、小さ過ぎないことを確認する。すなわち、交換装置1での遅延許容値をD_netとし、記憶装置108での遅延限界値の最小値をD_dsk_minとして、次式(2)が成立する場合には、ユーザに対して違反通知を行う。
D_lim<D_net+D_dsk_min+2×T_min …(2)一方、GetResourceによる申告通りとなっている場合には、スロット割り当て部103、アドレス検索部104、外部ネットワークI/O制御部106にReadBlockの到着が通知される。スロット割り当て部103では、要求された帯域で、連続的にデータブロックを提供できるように、ブロック読み出し要求送出間隔を決定する。ブロック読み出し要求送出により、MSブロックを取得する間隔(MS到着間隔)は、平均間隔となるようにする。ブロック読み出し要求送出時刻に達したときに、それぞれのコマンドの遅延要求値をもとに、MS到着スロットの割り付けおよび遅延限界値算出を行う。
ただし、同一サーバユニット内宛の場合には、スロットの割り付けは行わない。ブロック読み出し要求に付与する遅延限界値D_dskは、次式(3)のように規定される。
D_dsk=D_lim …(3)
他のサーバユニット宛の場合には、割り付けるスロットは、以下の方法で選択する。ブロック読み出し要求を送出する時刻をT_reqとする。次式(4)を満たす時刻Tの間で、このユーザのために予約されているスロットを割り付ける。予約されているスロットが複数存在する場合には、最も早い時刻を選択する。
T_req+D_lim−2×T_min<t≦T_req+D_lim …(4)
ブロック読み出し要求に付与する遅延限界値D_dskは、割り付けたスロットの時刻をt_arv、交換装置1での遅延許容値をD_netとして、次式(5)で求められる。
D_dsk=t_arv−T_req−D_net …(5)
スロット割り当て部103は、要求送出部105に、遅延限界値をパラメータとした、ブロック読み出し要求の送出を指示する。スロット割り当て部103は、また、予約されたが、割り当てられなかった到着スロットをONとする。図4において、矢印834〜838は、ReadBlockメッセージの到着を示している。参照番号839〜843は、それぞれのReadBlockメッセージに割り当てたMS到着スロットを示している。矢印844〜848は、ブロック読み出し要求の送出の指示を行うタイミングを示している。要求送出部105では、アドレス検索部104により申告された宛先に、ブロック読み出し要求を送出する。内部メッセージインターフェース部107では、ブロック読み出し要求の送信を実行する。宛先となったサーバユニット3においては、内部メッセージインターフェース部107を介して内部ネットワーク制御部110に、ブロック読み出し要求が到着する。内部ネットワーク制御部110では、パラメータとして付与された遅延限界値をもとに、読み出したMSの送出を指示する時刻を算出し、記憶する。また、記憶制御部109に対してMSの読み出しを指示する。記憶制御部109では、記憶装置108より要求されたMSの読み出しを行う。内部ネットワークI/O制御部110では、記憶装置より読み出されたMSについて、ブロック読み出し要求が到着してから遅延限界値に示された時間の後に、サーバユニットから交換装置への出力を許可する。読み出されたMSは、内部メッセージインターフェース部107を介して外部ネットワークI/O制御部106に到着する。外部ネットワークI/O制御部106では、時刻T_req+D_limにユーザへの送出を指示する。図4において、参照番号849〜853は、MSが外部ネットワークI/O制御部106に到着したタイミングを示し、参照番号854〜858は、MSをユーザに送出するタイミングを示している。
リソース記述子による指定がないReadBlockメッセージについては、図5における非優先フラグがONとなっているスロットに割り当てを行い、ブロック読み出し要求を送出する。
(7)ブロック書き込み動作
外部からWriteBlockコマンドと共に到着するストリームデータは、申告値管理部111において、GetResourceにより確保した帯域を越えて到着していないかどうかチェックされる。違反している場合には、違反通知が行われる。GetResourceにより確保した帯域の範囲内で到着している場合には、スロット割り当て部103において、MSに分割され、アドレス検索部104において、宛先が決定され、ブロック書き込み要求として送出される。ここで、ブロック書き込み要求には、スロット割り当て部103にて、宛先となるサーバユニットの書き込み用スロットを必ず割り付ける。ブロック書き込み要求は、割り付けられた時刻に送出される。
(第2の実施形態)
図9は、本発明の第2の実施形態に係るファイルシステムの構成を示すブロック図である。図9において、本ファイルシステムは、ファイルマネージャ901と、複数のI/Oユニット902と、複数のブロック格納ユニット905と、交換装置908とを備えている。
ファイルマネージャ901は、ファイルシステム全体を管理する。すなわち、このファイルマネージャ901は、図1に示すファイルマネージャ2と同様の機能を有する。各I/Oユニット902は、ユーザからのファイルの読み出しや、書き込みの要求を受け付けて、ユーザに対して、ファイルシステムが管理する記憶装置から読み出したデータやメッセージを送信する。各ブロック格納ユニット905は、ファイルシステムが管理するデータを記憶する記憶装置を保持し、記憶装置からのデータの読み出しや書き込みを制御する。交換装置908は、ファイルマネージャ901、各I/Oユニット902、各ブロック格納ユニット905を接続し、データやメッセージのやりとりを制御する。
本ファイルシステムが管理するデータは、ブロック格納ユニット905内に存在する記憶装置に格納されている。各I/Oユニット902におけるファイルアクセス部の構成は、図10に示すようになっている。図10に示した各ブロックの機能は、図2における同一名称のブロックの機能と同様である。各ブロック格納ユニット905におけるファイルアクセス部の構成は、図11に示すようになっている。図11に示した各ブロックの機能もまた、図2における同一名称のブロックと同様の機能を有している。すなわち、I/Oユニット902およびブロック格納ユニット905は、協働して、図1のサーバユニット3と同様の機能を果たしている。
(第3の実施形態)
図12は、本発明の第3の実施形態に係るファイルシステムの構成を示すブロック図である。図12において、本ファイルシステムは、メッセージインターフェース部1201と、リソース管理部1202と、読み出し/書き込み制御部1203と、記憶装置1204と、申告値管理部1205とを備えている。
メッセージインターフェース部1201は、ユーザからのメッセージの送受信を制御する。リソース管理部1202は、リソースの使用状況を管理する。読み出し/書き込み制御部1203は、記憶装置1204からの読み出しや書き込みを制御する。記憶装置1204には、データが格納されている。申告値管理部1205は、読み出し、書き込みメッセージのパラメータをチェックする。前述した第1の実施形態と同様に、図12におけるファイルシステムにおいても、GetResourceメッセージによりリソースの確保を行う。リソース管理部1202は、記憶装置1204へのアクセス可能量と、現在の使用量とを管理している。
以上、本発明をいくつかの実施形態について説明したが、本発明は上記各実施形態に限定されないのは勿論である。例えば、以下のようなことが言える。
(1)メッセージの名称は、一例を示したものであり、各実施形態で使用した名称に限定されない。また、その発行順序についても規定しない。
(2)各メッセージのパラメータは、関連する部分の一例を挙げており、これに限定されない。例えば、予めGetResourceメッセージで確保する帯域量が決まっている場合には、Tは、パラメータとして与えず、システムで記憶していてもよい。
(3)記憶装置108は、物理的に複数に分かれている場合もあり得る。
(4)リソース管理部202では、処理能力の最大値および使用量を単位時間当たりの読み出しデータ量であるとしたが、この方法に限らない。単位時間当たりの書き込みデータ量にする方法や、読み出し、書き込み別に最大値を定める方法も考えられる。
以上説明したように、第1〜第3の実施形態では、GetResourceメッセージを受け取ったときに、ファイルシステム内部の帯域を確保することによって、ファイルの読み出し、書き込みについて、遅延品質を保証することが可能となる。そして、確保した帯域を用いて複数のファイルの読み出しまたは書き込みを実現することにより、無駄な帯域を確保する必要がなく、ファイルシステム内部のリソースを有効利用することができる。
また、書き込み時には、要求帯域に一定値を乗じたものを確保する帯域とすることにより、予め書き込み用と、読み出し用にファイルシステムの処理能力を分割しておく必要がなく、ユーザからの要求に応じて容易に比率を変えることができ、リソースを効率よく使用することができる。
さらに、ゲットリソースメッセージにより申告された遅延時間を満たす帯域と、ゲットリソースメッセージの要求に従って確保すべき帯域との内、大きい方の帯域を確保可能かを判断して、帯域の割り当てを行うことにより、複数の遅延品質をサポートすることが可能となる。
また、ブロック読み出し要求に対してMS到着スロットを割り当てることにより、ブロック格納ユニットから交換装置に入力されるブロックの個数を時間的に平滑化することができる。その結果、複数のブロック格納ユニットから読み出されて交換装置に入力されるブロックが、I/Oユニットへの入力側でぶつかって交換装置内部で廃棄されることを回避することができる。また、ブロックのトラヒックの時間による変動を少なくすることができ、交換装置を効率よく利用することが可能となる。
また、MS到着スロットの予約を、確保された帯域が大きいものから小さいものの順で行うことにより、すべての帯域の遅延品質を保証しつつ、各スロットの最大登録数を一定にして、スロットを100%利用することが可能となる。このとき、要求送出数の時間変動はなくなり、最も効率良く交換装置を利用することが可能となる。
さらに、使用しないMS到着スロットを、リソースの獲得を行っていないユーザからのデータの読み出しに割り当てることにより、さらにファイルシステムの使用効率を向上させることが可能となる。
例えばビデオサーバのように、大規模でかつ連続性を要求されるデータを扱うファイルシステムにおいては、通常、複数の記憶装置が設けられ、1つのファイルのデータが各記憶装置に分散して格納されている。このような状況下では、1つのファイルシステムに対して、帯域や記憶容量(以下、単に容量と称する)の異なる記憶装置が複数個設けられた場合、入出力帯域の制御が問題となる。従来は、各記憶装置が持つ能力(帯域、容量)の差を考慮した制御をしていなかったため、各記憶装置の能力を効率的に活用することができなかった。そこで、以下には、容量や入出力帯域の異なる複数の記憶装置の制御を容易にし、しかも要求される入出力帯域に合わせて記憶装置の使用効率を最適化できるようなディスク管理装置およびそれを用いたファイルシステムについて説明する。
(第4の実施形態)
図13は、本発明の第4の実施形態に係るディスク管理装置の構成を示すブロック図である。図13において、本ディスク管理装置1300は、ディスク帯域管理部1301と、ディスク容量管理部1302と、分配比率決定部1303と、帯域計算部1304と、容量計算部1305と、全ディスク帯域制御部1306と、全ディスク容量制御部1307とを備えている。
ディスク帯域管理部1301は、ファイルシステムに設けられた各記憶装置の入出力帯域を管理している。ディスク容量管理部1302は、ファイルシステムに設けられた各記憶装置の容量を管理している。分配比率決定部1303は、ファイルシステムで規定されたアルゴリズムに従って、各記憶装置にデータを分配する比率を決定する。帯域計算部1304は、ディスク帯域管理部130で管理している各記憶装置の帯域に、分配比率決定部1303で決定された分配比率の逆数を掛けた値の中で、最も値が小さいものを、全記憶装置をまとめた場合の帯域として計算する。容量計算部1305は、ディスク容量管理部1302で管理している各記憶装置の容量に、分配比率決定部1303で決定された分配比率の逆数を掛けた値の中で、最も値が小さいものを、全記憶装置をまとめた場合の容量として計算する。全ディスク帯域制御部1306は、分配比率決定部1303と帯域計算部1304とによって決められた入出力帯域に基づき、全記憶装置の帯域制御を行う。全ディスク容量制御部1307は、分配比率決定部1303と容量計算部1305とによって決められた容量に基づき、全記憶装置の容量制御を行う。
以上のように構成されたディスク管理装置1300について、その動作を以下に説明する。まず、分配比率決定部1303で実行される帯域設定アルゴリズムの一例について説明する。
図14は、記憶装置の帯域に比例してデータを分配する比率を決定する、帯域優先レイアウトについて示している。例えば、容量と帯域とが異なる3つの記憶装置がある場合に、各記憶装置へのデータの分配を、帯域に比例して行うと、各記憶装置への分配の比率は、図14に示す分配比率の値になる。また、分配比率の逆数を各記憶装置の帯域に掛けた値を実効帯域とし、分配比率の逆数を各記憶装置の容量に掛けた値を実効容量とする。また、全記憶装置まとめた場合の帯域を、各記憶装置の実効帯域の中で最も値が小さいもの、全記憶装置まとめた場合の容量を、各記憶装置の実効容量の中で最も値が小さいものと定義する。すると、全記憶装置まとめた場合は、帯域が6Mbps、容量が6GBの記憶装置と等価と見なすことができる。
図15は、記憶装置の容量に比例してデータを分配する比率を決定する、容量優先レイアウトについて示している。例えば、容量と帯域とが異なる3つの記憶装置がある場合に、各記憶装置へのデータの分配を、容量に比例して行うと、各記憶装置への分配の比率は、図15に示す分配比率の値になる。また、分配比率の逆数を各記憶装置の帯域に掛けた値を実効帯域とし、分配比率の逆数を各記憶装置の容量に掛けた値を実効容量とする。また、全記憶装置まとめた場合の帯域を、各記憶装置の実効帯域の中で最も値が小さいもの、全記憶装置まとめた場合の容量を、各記憶装置の実効容量の中で最も値が小さいものと定義する。すると、全記憶装置まとめた場合は、帯域が4Mbps、容量が8GBの記憶装置と等価と見なすことができる。
図16は、帯域優先レイアウトと容量優先レイアウトとを混在させてデータを分配する比率を決定する、帯域設定レイアウトについて示している。例えば、容量と帯域とが異なる3つの記憶装置がある場合に、各記憶装置への分配を、帯域優先レイアウトの比率がα、容量優先レイアウトの比率が(1−α)で実行すると、各記憶装置への分配の比率は、図16に示す分配比率の値になる。また、分配比率の逆数を各記憶装置の帯域に掛けた値を実効帯域とし、分配比率の逆数を各記憶装置の容量に掛けた値を実効容量とする。また、全記憶装置まとめた場合の帯域を、各記憶装置の実効帯域の中で最も値が小さいもの、全記憶装置まとめた場合の容量を、各ディスクの実効容量の中で最も値が小さいものと定義する。このとき、全ての記憶装置の実効帯域が5Mbpsを越えるように指示された場合は、αが3/5以上であることが必要である。今、αを3/5に設定すると、全記憶装置まとめた場合は、帯域が5Mbps、容量が20/3GBの記憶装置と等価と見なすことができる。
次に、図13に示すディスク管理装置全体の動作について説明する。予めディスク帯域管理部1301には、ファイルシステムに接続された各記憶装置の帯域が設定されている。また、予めディスク容量管理部1302には、ファイルシステムに接続された各記憶装置の容量が設定されている。ファイルシステムとして必要とされる帯域が指示されると、分配比率決定部1303は、ディスク帯域管理部1301に設定されている各記憶装置の帯域の情報と、ディスク容量管理部1302に設定されている各記憶装置の容量の情報とに基づき、上記の帯域設定アルゴリズムに従って、帯域計算部1304および容量計算部1305によって記憶装置全体としての帯域と容量を計算させる。実際にデータの入出力要求が発生すると、全ディスク帯域制御部1306は、帯域計算部1304で計算した記憶装置全体としての帯域によって、各記憶装置の入出力の帯域制御を行う。また、全ディスク容量制御部1307は、容量計算部1305で計算した記憶装置全体としての容量によって、各記憶装置の入出力の容量制御を行う。
なお、上記第4の実施形態において個々に扱っている複数の記憶装置を、論理的に1つの記憶装置と見なしたものに置き換えて処理することも可能である。
また、上記第4の実施形態においては、全記憶装置をまとめて処理しているが、まとめる対象を全部の記憶装置ではなく一部の記憶装置に限定しても良い。
このように、入出力帯域、容量の異なる記憶装置を組み合わせて使用する場合に、個々の記憶装置を意識することなく、複数の記憶装置をまとめて帯域、容量の管理を行うことによって、管理が容易となり、また要求される帯域に合わせて使用効率を最適化することができる。
(第5の実施形態)
図17は、図13に示すディスク管理装置を用いたファイルシステムの構成を示すブロック図である。図17において、本ファイルシステムは、記憶装置1708a,1708bと、ファイル属性管理部1709と、帯域管理部1710と、ファイルオープン処理部1711と、帯域獲得部1712と、入出力制御部1713とを備えている。
ハードディスク、CD−ROM、MOD、DVD、半導体メモリ等の記憶媒体を含む記憶装置1708a,1708bには、各ファイルのデータが、それぞれ分散して格納されている。ファイル属性管理部1709は、ファイルの属性として帯域特性を管理している。帯域管理部1710は、図13に示すディスク管理装置1300の機能をその一部に含み、ファイルシステムの入出力帯域を管理している。ファイルオープン処理部1711は、データファイルのオープン処理を行う。帯域獲得部1712は、データ入出力に使用する帯域の獲得を行う。入出力制御部1713は、ファイルオープン処理部1711でオープンした複数のファイルに、帯域獲得部1712で獲得した帯域を組み合わせて、複数のファイルから任意のファイルデータを選んで入出力を行う。
実際は、上記以外にも、帯域特性以外のファイル属性を管理する機能、入出力データを送受信する機能など、種々の構成要素を必要とするが、本発明とは直接の関係がないので、その説明を省略する。
以上のように構成された第5の実施形態のファイルシステムについて、その動作を以下に説明する。
まず、ディスク管理装置1300は、前述した帯域設定アルゴリズムに従って、各記憶装置へのファイルデータの分配比率を計算する。この分配比率は、レイアウトプロファイル情報中に記述され、ファイルの属性の帯域特性としてファイル属性管理部1709に格納される。
今、ビデオデータを記録した第1のファイルと、音声データを記録した第2のファイルとが存在するものとする。第1のファイルの帯域特性は、入出力に必要な帯域が6Mbpsであり、そのレイアウトプロファイルは、記憶装置1708a,1708bに均等に分配されている。第2のファイルの帯域特性は、入出力に必要な帯域が0.5Mbpsであり、そのレイアウトプロファイルは、記憶装置1708a,1708bに均等に分配されている。
このとき、記憶装置1708aおよび1708bには、第1および第2のファイルのデータが、それぞれ均等に分配されて格納されている。ファイル属性管理部1709は、第1および第2のファイルの帯域特性を管理している。
ファイルオープン処理部1711は、ユーザから第1のファイルのファイルオープン要求コマンドを受け取ると、所定のオープン処理を行って、ファイル属性管理部1709から対応する帯域特性を取得する。また、ファイルオープン処理部1711は、ユーザから第2のファイルのファイルオープン要求コマンドを受け取ると、所定のオープン処理を行って、ファイル属性管理部1709から対応する帯域特性を取得する。
次に、帯域獲得部1712は、ユーザから帯域獲得要求コマンドを受け取ると、ファイルオープン処理部1711が取得した帯域特性に従って、第1および第2のファイルを同時に読み出すために必要な帯域を、帯域管理部1710から獲得する。
次に、入出力制御部1713は、ユーザから読出要求コマンドを受け取ると、ファイルオープン処理部1711がオープンした第1および第2のファイルに、帯域獲得部1712が獲得した帯域を分割して個別的に割り当て、第1のファイルのビデオデータと、第2のファイルの音声データとを、同期を取りながら記憶装置1708aおよび1708bから同時に読み出す。これによって、映像と音声との同期が取れたストリームデータが作成される。
なお、上記第5の実施形態においては、各ファイルのデータは、記憶装置1708aおよび1708bに均等に分配されているが、記憶装置の帯域、容量に応じて偏って分配することも可能である。
また、上記第5の実施形態においては、帯域特性の異なる2つファイルのデータを、2つのファイルの帯域特性を加算した帯域を用いて、同時に読み出しているが、複数のファイルのデータを、いずれか1つのファイルの帯域特性により決まる帯域(最も大きい帯域)を用いて、交互に読み出すようにしても良い。このように、複数のファイルのデータを、1つの帯域を用いて交互に読み出すことにより、AV同期などのアプリケーションの作成を容易にすることができる。
ところで、ファイルシステムの一例として、複数のクライアントに映像情報を提供する形態の映像情報提供システムでは、一般に、各クライアントにおいて、送信された情報を一時記憶するためのバッファが設けられている。各クライアントは、それぞれのバッファの容量と、受信する映像のビットレートで定まる周期で、ファイルシステム内のサーバにサービスリクエストを送信し、当該サーバは、サービスリクエストに応じて、所定の量の映像情報を、各クライアントに送信する。しかしながら、サーバには、一度に送信可能な情報量の上限があるため、サービスリクエストが競合する場合、映像の不連続が発生することのないよう、各クライアントからのサービスリクエストのスケジューリングを行う必要がある。
そのため、従来の映像情報提供システムにおけるサーバには、周期的に処理することが求められるサービスリクエストのスケジューリングを行うためのスケジューリング装置が設けられている。従来のスケジューリング装置としては、特公平7−104792号公報に記載されたものが知られている。この装置は、スケジュール制御プログラムが、各タスク毎でかつ優先順位毎に、優先順位対応処理待ちキューを設けるようにし、これにより、より優先順位の高い処理を先に実行し得るようにするものである。
上記従来のスケジューリング装置を用いて、優先度の高いクライアント、すなわち、サービスリクエストを送信する周期がより短いクライアントからのサービスリクエストが優先して実行されるようにすることにより、遅延が発生する回数を少なくすることができ、従って、映像の不連続が発生する頻度を低くすることができる。
しかしながら、上記従来のスケジューリング装置は、より短い周期で送信される、優先順位が上位のクライアントからのサービスリクエストを、常に優先して実行させるため、下位のクライアントからのものが、長時間、実行されない場合がある。
しかも、上記下位のクライアントからのサービスリクエストが実行されるまでの時間は、他のクライアントからのサービスリクエストの個数により変動する。このため、上記下位のクライアント側で、遅延時間を考慮に入れた周期でサービスリクエストの送信を行うようにして、映像の不連続が発生するのを防ぐことができない。
また、全クライアントから送信されるサービスリクエストの個数の時間的な平均が、サーバの処理能力を超えている場合には、時間の経過とともに、処理しきれずに残されるサービスリクエストの数が増加する。この場合、当然ながら、どのような順序でサービスリクエストを実行させても、映像の不連続が発生するのを防ぐことができない。
また、複数のサーバが、共通の伝送路を介して、クライアントに映像情報を提供する形態の映像情報提供システムでは、伝送路に、一度に伝送可能な情報量の上限があるため、各サーバへのサービスリクエストのスケジューリングを行う必要がある。そこで、上記従来のスケジューリング装置を用いてスケジューリングを行った場合、上記と同様の課題が生じる。
そこで、以下には、サーバから複数のクライアントに、映像情報などの連続した情報が分割して提供される際、情報の不連続が発生しないよう、各クライアントからのサービスリクエストのスケジューリングを行うことができるスケジューリング装置について説明する。
また、複数のサーバからクライアントに、連続した情報が分割して提供される際、情報の不連続が発生しないよう、各サーバへのサービスリクエストのスケジューリングを行うことができるスケジューリング装置について説明する。
(第6の実施形態)
以下、本発明の第6の実施形態について、図面を参照しながら説明する。
図18は、本発明の第6の実施形態に係るスケジューリング装置の構成を示すブロック図である。図18の装置は、登録指示部1811、実行権発生周期テーブル1812、実行権発生部1813、処理待ちキュー1814および実行指示部1815を備えている。実行指示部1815は、実行権キュー1816を含む。
図19は、図18のスケジューリング装置を用いた、映像情報提供システムの構成を示すブロック図である。図19のシステムは、ファイルシステムの一例の映像情報提供装置1920および複数のクライアント(1〜n)1921で構成される。映像情報提供装置1920は、スケジューリング装置1810およびサーバ1922を含む。
図19のクライアント(1〜n)1921はそれぞれ、映像情報提供装置1920のサーバ1922に、周期的に読み出し要求を送信する。クライアント(1〜n)1921にはバッファおよびモニタが設けられており、クライアント(1〜n)1921は、提供される映像情報をこのバッファに一時蓄え、蓄えた情報を読み出しながら、モニタに映像を表示する。スケジューリング装置1810は、サーバ1922から、クライアント(1〜n)1921に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う。サーバ1922は、スケジューリング装置1810の指示に応じて、クライアント(1〜n)1921に、映像情報を所定の量ずつ送信する。
図18の登録指示部1811は、図19のクライアント(1〜n)1921からの申告を受けて、クライアント(1〜n)1921毎の、実行権を発生させるべき周期を、実行権発生周期テーブル1812に指示して登録させる。実行権発生周期テーブル1812は、実行権を発生させるべき周期を登録する。実行権発生部1813は、所定の周期(以下、Tslt)で起動され、実行権発生周期テーブル1812に登録された周期に基づいて、クライアント(1〜n)1921毎の実行権を発生させる。実行権発生部1813はまた、発生させた実行権に、優先度を示す評価指数(以下、Nsft)を付与する。処理待ちキュー1814は、クライアント(1〜n)1921からの読み出し要求をキューイングする。実行指示部1815は、周期Tsltで起動され、処理待ちキュー1814にキューイングされている読み出し要求のうち、実行権発生部1813が発生させた実行権に対応するクライアント1921からの読み出し要求を取得して、その読み出し要求を実行するよう、サーバ1922に指示する。
図20は、図19の映像情報提供装置1920とクライアント(1〜n)1921との間で、信号が送受信される様子を示すシーケンス図である。図20のリソース獲得要求31は、送信元のクライアント1921を識別するための情報(以下、クライアントID)と、読み出しを希望する映像情報名および読み出し位置とを通知するために、クライアント(1〜n)1921が映像情報提供装置1920に送信する信号である。リソース獲得要求31には、さらに、クライアント(1〜n)1921がそれぞれ希望する、読み出し要求を送信する周期、すなわち、上記実行権を発生させるべき周期(以下、Treq)が含まれる。リソース獲得応答32は、希望されたTreqで、映像情報を提供できるか否かを通知するために、映像情報提供装置1920がクライアント(1〜n)1921に送信する信号である。
読み出し要求33は、読み出しを希望する際に、クライアント(1〜n)1921が映像情報提供装置1920に送信する信号である。読み出し応答34は、読み出し要求33に応じて、映像情報提供装置1920がクライアント(1〜n)1921に送信する映像情報である。リソース開放要求35は、希望する映像情報の読み出しが完了したことを通知するために、クライアント(1〜n)1921が映像情報提供装置1920に送信する信号であって、クライアントIDが含まれる。リソース解放応答36は、リソース開放要求35に応じて、映像情報の提供を停止することを通知するために、映像情報提供装置1920がクライアント(1〜n)1921に送信する信号である。
図21は、図18の実行権発生周期テーブル1812の登録内容を示す図である。図21に示すように、実行権発生周期テーブル1812は、クライアント(1〜n)1921毎のクライアントID、Treqおよび実行権発生周期オフセット(以下、Tofs)を登録する。
図22は、図18の処理待ちキュー1814のキューイング内容を示す図である。図22に示すように、処理待ちキュー1814は、クライアント(1〜n)1921からの読み出し要求を、クライアント(1〜n)1921毎に、キューイングする。
図23は、図18の実行権キュー1816のキューイング内容を示す図である。図23に示すように、実行権キュー1816は、発生された実行権を、付与されたNsft毎に、キューイングする。
図24は、図18の実行権発生部1813が、実行権を発生させる動作を説明するためフローチャートである。
図25は、図18の実行指示部1815が、図19のサーバ1922に、読み出し要求の実行を指示する動作を説明するためのフローチャートである。
以下には、図19のスケジューリング装置1810が、サーバ1922から、複数のクライアント(1〜n)1921に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う動作について、図18〜25を参照しながら説明する。
最初、図18の登録指示部1811が、実行権発生周期テーブル1812に指示して、クライアントID、TreqおよびTofsを登録させる動作について説明する。
いま、実行権発生周期テーブル1812には、複数のクライアント1921のクライアントID、TreqおよびTofsが、すでに登録されているものとする。この時、他のクライアント1921が、図20のリソース獲得要求31を送信することにより、自己のクライアントIDおよびTreqを映像情報提供装置1920に申告する。
登録指示部1811は、サーバ1922の情報提供能力、すなわち、周期Tsltに等しい時間内にサーバ1922が実行可能な読み出し要求の最大数(以下、Nmax)を認識しており、すでに登録されているものに加えて、申告されたTreqが登録された場合、発生される実行権のTslt当たりの平均数と、Nmaxとを比較することにより、サーバ1922が、時間的に平均して、情報を提供できるか否かを判定する。
情報を提供できると判定した場合、登録指示部1811は、申告されたクライアントIDおよびTreqを、実行権発生周期テーブル1812に指示して登録させ、また、Tofsの初期値として、"0"を登録させる。そして、登録指示部1811は、リソース獲得応答32を送信することにより、申告されたTreqで映像情報を提供できることを、リソース獲得要求31の送信元のクライアント1921に通知する。
情報を提供できないと判定した場合には、登録指示部1811は、リソース獲得応答32を送信することにより、申告されたTreqで情報を提供できないことを、送信元のクライアント1921に通知する。
次に、図18の実行権発生部1813が、実行権発生周期テーブル1812に登録されたTreqおよびTofsに基づいて、実行権を発生させる動作について、図24を参照しながら説明する。なお、実行権発生周期テーブル1812には、複数のクライアント1921のクライアントID、TreqおよびTofsが、上記のようにして登録されているものとする。
実行権発生部1813は、最初、実行権発生周期テーブル1812に登録されたクライアントID、TreqおよびTofsを一組取り出す(ステップS1)。次に、実行権発生部1813は、取り出したTofsと、自己の動作の周期Tsltとを比較する(ステップS2)。
Tofs≧Tsltである場合、実行権発生部1813は、ステップS9に進む。
Tofs<Tsltである場合には、実行権発生部1813は、読み出したクライアントIDに対応するクライアント1921からの読み出し要求が、処理待ちキュー1814にキューイングされているか否かを判定する(ステップS3)。
キューイングされている場合、実行権発生部1813は、実行権を発生させるとともに、その読み出し要求に実行権が割り当てられたことを示す情報を付与する一方、次式(6)により、新たなTofsを算定する(ステップS4)。
Tofs=Tofs+Treq …(6)
キューイングされていない場合には、実行権発生部1813は、ステップS9に進む。
次に、実行権発生部1813は、算定して得た新たなTofsと、Tsltとを比較する(ステップS5)。
Tofs<Tsltである場合、実行権発生部1813は、発生させた実行権に、評価指数として、Nsft=0を付与する(ステップS6)。発生された実行権を、実行指示部1815が、実行権キュー1816に指示して、Nsftの値が一致するキューの最後尾にキューイングさせると(ステップS7)、実行権発生部1813は、ステップS2に戻る。
Tofs≧Tsltである場合には、実行権発生部1813は、発生させた実行権に、評価指数として、次式(7)により算定されるNsftを付与し(ステップS8)、ステップS7に進む。
Nsft=f(Treq/Tslt) …(7)
ただし、上式(7)において、f(x)はx以上の最小の整数である。
ステップS2で、Tofs≧Tsltである場合、実行権発生部1813は、次式(8)により、新たなTofsを算定する(ステップS9)。
Tofs=Tofs−Tslt …(8)
次に、実行権発生部1813は、算定して得た新たなTofsが、Tofs≧0であるか否かを判定する(ステップS10)。
Tofs≧0である場合、実行権発生部1813は、実行権発生周期テーブル1812に指示して、Tofsを、算定して得た新たなTofsに更新させる(ステップS11)。
Tofs<0である場合には、実行権発生部1813は、Tofsを、0に更新させる(ステップS12)。
次に、実行権発生部1813は、実行権発生周期テーブル1812に登録されている全てのクライアントID、TreqおよびTofsを取り出したか否かを判定する(ステップS13)。
全て取り出したと判定した場合、実行権発生部1813は、動作を停止し、取り出すべきものがあると判定した場合には、ステップS1に戻る。
次に、図18の実行指示部1815が、上記のようにして発生された実行権に基づいて、サーバ1922に対して、キューイングされている読み出し要求の実行を指示する動作について、図25を参照しながら説明する。
実行指示部1815は、サーバ1922に実行を指示した回数をカウントしており、カウントして得たカウント値Cを記憶している。実行指示部1815は、最初、このカウント値Cを初期化する(ステップS21)。
次に、実行指示部1815は、実行権キュー1816にキューイングされている実行権のうち、Nsftの値が最小のキューにキューイングされている実行権の先頭のもの、すなわち、付与されたNsftが最小で、かつ、発生されてからの経過時間が最も長いものを取り出し(ステップS22)、次いで、カウント値Cをインクリメントする(ステップS23)。
次に、実行指示部1815は、取り出した実行権に付与されたクライアントIDを参照して、処理待ちキュー1814から、その実行権に対応するクライアント1921からの読み出し要求を取り出して、サーバ1922に実行を指示する(ステップS24)。そして、実行指示部1815は、インクリメントして得たカウント値Cを、Nmaxと比較する(ステップS25)。
C<Nmaxである場合、実行指示部1815は、ステップS22に戻り、C≧Nmaxである場合には、実行権キュー1816に指示して、残された実行権のNsftの値をそれぞれディクリメントさせ(ステップS26)、その後、処理を終了する。
上記のようにして実行の指示を受けたサーバ1922は、指示を受けてから、ある一定の時間が経過した後、指定された映像情報を、読み出し要求の送信元であるクライアント1921に送信する。クライアント1921は、必要な映像情報の受け取りを完了すると、図20のリソース解放要求35を送信することにより、受け取りが完了した意を、映像情報提供装置1920に通知する。リソース解放要求35には、送信元のクライアント1921のクライアントIDが付与されており、リソース解放要求35を受信した登録指示部1811は、実行権発生周期テーブル1812から、付与されたクライアントIDと、そのクライアントIDに対応するTreqおよびTofsとを削除する。
上記のように、本実施形態によれば、サーバ1922から、複数のクライアント(1〜n)1921に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う際、処理待ちキュー1814は、各クライアント(1〜n)1921からの読み出し要求をキューイングする。実行権発生周期テーブル1812は、クライアント(1〜n)1921毎の、実行権を発生させるべき周期Treqを登録し、実行権発生部1813は、実行権発生周期テーブル1812に登録された周期に基づいて、実行権を発生させる。実行指示部1815は、処理待ちキュー1814にキューイングされている読み出し要求のうち、実行権発生部1813が発生させた実行権に対応するクライアント1921からの読み出し要求を取得して、サーバ1922に実行を指示する。
このように、各クライアント(1〜n)1921からの読み出し要求をキューイングする一方、クライアント(1〜n)1921毎の、実行権を発生させるべき周期を登録しておいて、その周期に基づいて、実行権を発生させる。そして、キューイングしている読み出し要求のうち、発生させた実行権に対応するクライアント1921からのものを、サーバ1922に指示して実行させる。これにより、あるクライアント1921からの読み出し要求が実行されるまでの時間が、他のクライアント1921からの読み出し要求の送信の状況に影響されることがなくなり、従って、送信された読み出し要求が実行されるまでの時間が不定となるのを防ぐことができる。
また、実行権発生部1813は、周期Tsltで起動され、実行権発生周期テーブル1812を参照して、起動された現時刻から、次の実行権を発生させる時刻までの時間Tofsが、Tofs<Tsltであるクライアント1921の実行権を発生させる。さらに、当該クライアント1921のTofsにTreqを加算し、加算して得たTofsが、Tofs≧Tsltである場合、当該Tofsに対して、式Tofs=Tofs−Tsltにより、新たなTofsを算定し、算定して得たTofsを、実行権発生周期テーブル1812に指示して登録させる。
加算して得たTofsが、Tofs<Tsltである場合には、実行権発生部1813は、さらに、実行権を発生させるとともに、TofsにTreqを加算してTsltと比較する動作を繰り返す。そして、加算して得たTofsが、Tofs≧Tsltとなった時点で、そのTofsに対して、式Tofs=Tofs−Tsltにより、新たなTofsを算定し、算定して得たTofsを、実行権発生周期テーブル1812に指示して登録させる。
なお、起動された現時刻から、次の実行権を発生させる時刻までの時間Tofsが、Tofs≧Tsltであるか、または、読み出し要求が、処理待ちキュー1814にキューイングされていないクライアント1921については、実行権を発生させず、そのTofsに対して、式Tofs=Tofs−Tsltにより、新たなTofsを算定し、算定して得たTofsを、実行権発生周期テーブル1812に指示して登録させる。
算定して得たTofsが、Tofs<0である場合には、実行権発生部1813は、Tofs=0を、実行権発生周期テーブル1812に指示して登録させる。
このように、実行権発生部1813は、周期Tsltで起動され、起動されると、実行権発生周期テーブル1812に登録されたTreqと、Tsltとに基づいて、Tofs、すなわち、起動された現時刻から、次の実行権を発生させる時刻までの時間を算定し、算定して得たTofsと、Tsltとを比較することにより、実行権を発生させるべきクライアント1921を判定して、実行権を発生させる。さらに、実行権発生部1813は、TofsにTreqを加算して、Tsltと比較する動作を繰り返すことにより、複数の実行権を発生させべきクライアント1921を判定して、必要な数の実行権を発生させる。実行権発生部1813は、これらの動作を、起動時に一括して行うことにより、実行権発生周期テーブル1812に登録された周期Treqで実行権を発生させるのに比べて、実行権発生部1813の処理動作を軽減できる。
また、読み出し要求がキューイングされていないクライアント1921については、実行権を発生させないことにより、読み出し要求を送信しなかったクライアント1921に、映像情報が提供されないようにすることができる。
また、算定して得た新たなTofsが、Tofs<0である場合には、Tofs=0を登録させることにより、読み出し要求がキューイングされていないクライアント1921のTofsが、繰り返しTsltを減算されて小さな値となり、読み出し要求がキューイングされた時点で、そのクライアント1921の実行権が多数発生されるのを防ぐことができる。
さらに、実行権発生部1813は、上記のようにして発生させた実行権に、上記の式(7)により算定される評価指数Nsftを付与する。実行指示部1815は、実行権発生部1813が発生させた実行権をキューイングする実行権キュー1816を含んでおり、発生された実行権を、このキューに指示して、評価指数毎でかつ発生された順にキューイングさせる。そして、実行指示部1815は、キューイングされている実行権のうち、付与された評価指数Nsftがより小さく、かつ、より先に発生された実行権を選択して、その実行権に対応するクライアント1921からの読み出し要求の実行を、サーバ1922に指示する。
実行指示部1815は、周期Tsltに等しい時間内にサーバ1922が実行可能な読み出し要求の最大数Nmaxを認識しており、このNmaxに等しい個数だけ、実行を指示した時点で、実行の指示を停止し、かつ、実行権キュー1816に指示して、残された実行権の評価指数Nsftをディクリメントさせる。
このように、実行権発生部1813が、発生させた実行権に、実行権を発生させるべき周期の関数として算定した、優先度を示す評価指数を付与し、実行指示部1815は、付与された評価指数に基づいて、優先されるべき実行権を選択して、実行を指示する。そして、実行指示部1815は、Nmax個の読み出し要求の実行を指示した時点で、実行の指示をいったん停止し、さらに、残された実行権については、その評価指数をディクリメントして、優先度をより高くする。
これにより、実行指示部1815は、起動された現時刻から、次の実行権が発生される時刻までの時間が、より短いクライアント1921の実行権を、優先して選択することができ、従って、遅延が発生する回数をより少なくできる。また、処理能力を超える数の読み出し要求を、サーバ1922に実行させるのを防ぐことができるとともに、残された実行権については、評価指数がTslt毎にディクリメントされるため、発生されてから、遅くともTreq+Tslt後までに、当該実行権が選択されるようにすることができる。従って、クライアント(1〜n)1921は、この最大遅延時間を考慮に入れた周期で、読み出し要求を送信することにより、映像情報の不連続が発生するのを防ぐことができる。
ただし、時間的に平均して、サーバ1922の処理能力を超える数の実行権が発生される場合には、時間の経過に従って、残される実行権の数が増加する。この場合には、上記のような処理を行っても、映像の不連続が発生するのを防ぐことができない。
そこで、登録指示部1811は、Treqを登録するよう申告を受けると、すでに登録されているものに加えて、申告されたTreqがさらに登録されても、発生される実行権のTslt当たりの平均数が、Nmaxを越えないと判定した場合にのみ、実行権発生周期テーブル1812に指示して、申告されたTreqを登録させる。
これにより、時間的に平均して、発生される実行権の総数がサーバ1922の処理能力を越えているために、時間の経過とともに、残される実行権の数が増加して、映像の不連続が発生するのを防ぐことができる。
また、実行指示部1815に実行権キュー1816を設けて、評価指数毎でかつ発生された順にキューイングさせることにより、実行指示部1815は、実行権を選択する際、評価指数が最小のキューの先頭から順に選択すればよいため、実行指示部1815の処理動作を軽減できる。
(第7の実施形態)
以下、本発明の第7の実施形態について、図面を参照しながら説明する。
図26は、本発明の第7の実施形態に係るスケジューリング装置の構成を示すブロック図である。図26の装置は、登録指示部2691、実行権発生周期テーブル2692、実行権発生部2693、処理待ちキュー2694および実行指示部2695を備えている。実行指示部2695は、実行権キュー2696を含む。
図27は、図26のスケジューリング装置を用いた、映像情報提供システムの構成を示すブロック図である。図27のシステムは、映像情報提供装置2700およびクライアント2701で構成され、映像情報提供装置2700とクライアント2701との間は、伝送路2703で接続されている。映像情報提供装置2700は、スケジューリング装置2690および複数のサーバ(1〜m)2702を含む。
図27のクライアント2701は、映像情報提供装置2700の複数のサーバ(1〜m)2702に、読み出し要求をそれぞれ周期的に送信する。クライアント2701には、複数のバッファおよびモニタが設けられており、クライアント2701は、提供される情報を、サーバ(1〜m)2702毎に、各バッファに一時的に蓄え、蓄えた情報を読み出しながら、各モニタに映像を表示する。スケジューリング装置2690は、サーバ(1〜m)2702から、クライアント2701に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う。サーバ(1〜m)2702はそれぞれ、スケジューリング装置2690の指示に応じて、クライアント2701に、映像情報を所定の量ずつ送信する。なお、映像情報提供装置2700に含まれるサーバ(1〜m)2702の情報提供能力の合計は、伝送路2703の伝送能力を上回っているものとする。
図26の登録指示部2691は、図27のクライアント2701からの申告を受けて、サーバ(1〜m)2702毎の、実行権を発生させるべき周期を、実行権発生周期テーブル2692に指示して登録させる。実行権発生周期テーブル2692は、実行権を発生させるべき周期を登録する。実行権発生部2693は、所定の周期(以下、Tslt)で起動され、実行権発生周期テーブル2692に登録された周期に基づいて、サーバ(1〜m)2702毎の実行権を発生させる。実行権発生部2693はまた、発生させた実行権に、優先度を示す評価指数(以下、Nsft)を付与する。処理待ちキュー2694は、サーバ(1〜m)2702への読み出し要求をキューイングする。実行指示部2695は、周期Tsltで起動され、処理待ちキュー2694にキューイングされている読み出し要求のうち、実行権発生部2693が発生させた実行権に対応するサーバ2702への読み出し要求を取得して、その読み出し要求を実行するよう、対応するサーバ2702に指示する。
また、第6の実施形態において図20を用いて説明したものと同様の信号が、図27の映像情報提供装置2700とクライアント2701との間で送受信される。ただし、リソース獲得要求31には、クライアントIDに代えて、サーバIDが含まれる。
図28は、図26の実行権発生周期テーブル2692の登録内容を示す図である。図28に示すように、実行権発生周期テーブル2692は、サーバ(1〜m)2702毎のサーバID、Titvおよび実行権発生周期オフセット(以下、Tofs)を登録する。なお、図21のテーブルのTreqは、図19のクライアント(1〜n)1921から申告された値であるが、図28のTitvは、図27のクライアント2701から申告されたTreqに基づいて、所定の方法で算定された値である。
図29は、図26の処理待ちキュー2694のキューイング内容を示す図である。図29に示すように、処理待ちキュー2694は、サーバ(1〜m)2702への読み出し要求を、サーバ(1〜m)2702毎に、キューイングする。
図30は、図26の実行権キュー2696のキューイング内容を示す図である。図30に示すように、実行権キュー2696は、発生された実行権を、付与されたNsft毎に、キューイングする。
以下には、図27のスケジューリング装置2690が、複数のサーバ(1〜m)2702から、クライアント2701へ、伝送路2703を介して、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う動作について、図20、24〜30を参照しながら説明する。
最初、図26の登録指示部2691が、実行権発生周期テーブル2692に指示して、サーバID、TitvおよびTofsを登録させる動作について説明する。
いま、実行権発生周期テーブル2692には、複数のサーバ2702のサーバID、TitvおよびTofsが、すでに登録されているものとする。この時、クライアント2701が、図20のリソース獲得要求31を送信することにより、希望するサーバ2702のサーバIDおよびTreqを、映像情報提供装置2700に申告する。
登録指示部2691は、サーバ(1〜m)2702の情報提供能力および伝送路2703の伝送能力を認識しており、下記の(a)および(b)について判定する。
(a)指定されたサーバ2702の情報提供能力が、すでに登録されているTitvを、申告されたTreqを含めた新たなTitvに更新した場合、情報を提供できるものであるか。
(b)伝送路2703の伝送能力が、すでに登録されているTitvを、申告されたTreqを含めた新たなTitvに更新した場合、サーバ(1〜m)2702から提供される情報を伝送できるものであるか。
上記(a)および(b)について、両方の能力があると判定した場合、登録指示部2691は、実行権発生周期テーブル2692に指示して、すでに登録されている、指定されたサーバ2702のTitvを、下記の式(9)で算定される新たなTitvに更新させるとともに、クライアント2701に対して、図20のリソース獲得応答32を送信することにより、要求を受け入れることを通知する。
Titv=1/(1/Titv+1/Treq) …(9)
また、登録指示部2691は、実行権発生周期テーブル2692に指示して、Tofsを、下記の式(10)により算定される新たなTofsに更新させる。
Tofs=Tofs+(Titv(new)−Titv(old)) …(10)
ただし、上式(10)において、Titv(new)は、更新されたTitvを、Titv(old)は更新される前のTitvを、それぞれ意味する。
少なくとも一方の能力がないと判定した場合には、登録指示部2691は、クライアント2701に対して、リソース獲得応答32を送信することにより、要求を受け入れないことを通知する。
なお、上記(a)および(b)について、両方の能力があると判定し、かつ指定されたサーバ2702のサーバIDが実行権発生周期テーブル2692に登録されていない場合には、登録指示部2691は、実行権発生周期テーブル2692に指示して、サーバID、TitvおよびTofsを新たに登録させる。この場合、Titvとして、申告されたTreqが、Tofsとして、"0"が、それぞれ登録される。
実行権発生部2693が、実行権発生周期テーブル2692に登録されたTitvおよびTofsに基づいて実行権を発生させる動作は、第6の実施形態において、図24を用いて説明したものと同様である。ただし、実行権発生周期テーブル2692には、複数のサーバ(1〜m)2702のサーバID、TitvおよびTofsが、上記のようにして登録されている点が異なる。
また、図24のステップS4において、式(6)に代えて、下記の式(11)により、新たなTofsが算定される点も異なる。
Tofs=Tofs+Titv …(11)
同様に、ステップS8において、式(7)に代えて、下記の式(12)により、Nsftが算定される点も異なる。
Nsft=f(Titv/Tslt) …(12)
ただし、上式(12)において、f(x)はx以上の最小の整数である。
次に、実行指示部2695は、付与された評価指数に基づいて実行権を選択し、処理待ちキュー2694にキューイングされている読み出し要求のうち、選択した実行権に対応するサーバ2702への読み出し要求を取得して、対応するサーバ2702に実行を指示する。その際の実行指示部2695の動作は、第6の実施形態において、図25を用いて説明したものと同様である。ただし、カウント値Cは、実行指示部2695が全サーバ(1〜m)2702に実行を指示した合計回数であり、Nmaxは、周期Tsltに等しい時間内に伝送路2703が伝送可能な最大の情報量に対応する読み出し要求の個数である。
上記のようにして映像情報が提供され、提供が完了すると、クライアント2701は、第6の実施形態においてクライアント1921が行ったのと同様に、図20のリソース解放要求35を送信することにより、希望する映像情報の受け取りが完了したことを映像情報提供装置2700に通知する。ただし、クライアント2701が送信するリソース解放要求35には、サーバIDおよびTreqが付加されており、図26の登録指示部2691は、実行権発生周期テーブル2692に指示して、登録されているTitvを、下記の式(13)により算定される新たなTitvに更新させる。
Titv=1/(1/Titv−1/Treq) …(13)
また、登録指示部2691は、実行権発生周期テーブル2692に指示して、Tofsを、上記の式(10)により算定される新たなTofsに更新させる。
上記のように、本実施形態によれば、複数のサーバ(1〜m)2702から、クライアント2701に、それぞれ周期的に映像情報が提供されるよう、読み出し要求のスケジューリングを行う際、第6の実施形態におけるものと同様の動作を行う。さらに、登録指示部2691は、すでに登録されている、あるサーバ2702の実行権を発生させるべき周期Titvを、さらに周期Treqで実行権を発生させるものに更新するよう申告を受けた際、すでに登録されているTitvを、申告されたTreqを含めた新たなTitvに更新しても、伝送路2703の伝送能力が、全サーバ(1〜m)2702から提供される情報を伝送できるものである場合にのみ、実行権発生周期テーブル2692に指示して、登録されているTitvを、上記の式(9)により算定される新たな周期Titvに更新させる。
これにより、登録された周期を更新した際、発生される実行権のTslt当たりの平均数が、伝送路の伝送能力を越えているために、時間の経過ともなって、残される実行権の数が増加するのを防ぐことができる。
また、登録指示部2691は、すで登録されている、あるサーバ2702の実行権を発生させるべき周期Titvを、周期Treqを除いて実行権を発生させるものに更新するよう申告を受けた際、実行権発生周期テーブル2692に指示して、登録されているTitvを、上記の式(13)により算定される新たな周期Titvに更新させる。
これにより、すでに登録されている、実行権を発生させるべき周期を、周期Treqで発生させている実行権を除いて発生させるものに更新するよう申告を受けた場合、すでに登録されている周期を、新たなものに更新することができる。
なお、本実施形態では、複数のバッファおよびモニタを備えたクライアント2701を、一つだけ含むようにしているが、共通の伝送路2703を介して、一つのバッファおよびモニタを備えたクライアント2701を、複数含むようにしてもよい。ただし、この場合、各クライアント2701は、それぞれに定められた周期で、読み出し要求を送信する必要がある。
また、本実施形態では、伝送路2703の伝送能力の制限があるために、スケジューリングを行うとしているが、クライアント2701の受信能力(バッファの容量や処理速度など)の制限があるために、スケジューリングを行うとしてもよい。
また、第6および第7の実施形態において、実行権発生部1813および2693ならびに実行指示部1815および2695は、ともに周期Tsltで起動されるとしているが、それぞれ互いに異なる周期で起動されるようにしてもよい。
また、第6の実施形態において、Nmaxは、周期Tsltに等しい時間内にサーバ1922が実行可能な読み出し要求の最大数であるとしているが、単位時間にサーバ1922が実行可能な読み出し要求の最大数であるとしてもよい。同様に、第7の実施形態において、Nmaxは、周期Tsltに等しい時間内に伝送路2703が伝送可能な情報量に対応する読み出し要求の個数であるとしているが、単位時間に伝送路2703が伝送可能な情報量に対応する読み出し要求の個数であるとしてもよい。
また、図18のスケジューリング装置と、図26のスケジューリング装置とを含む他のスケジューリング装置を用いることにより、複数のサーバから、複数のクライアントに、それぞれ周期的に映像情報が提供されるよう、スケジューリングを行うことができる。すなわち、最初、図18のスケジューリング装置が、クライアント毎の実行権を発生させ、発生させた実行権のうち、あるクライアントの実行権を選択して、その実行権に対応する読み出し要求を、図26のスケジューリング装置に入力する。次に、図26のスケジューリング装置が、サーバ毎の実行権を発生させ、発生させた実行権のうち、あるサーバの実行権を選択して、入力された読み出し要求を実行するよう、そのサーバに指示する。
また、第6および第7の実施形態において、実行権発生部1813および2693はそれぞれ、上記の式(7)、式(12)により、Nsftを算定するとしたが、TreqをTsltで除して得られる値の整数部分をNsftとするとしてもよい。
また、実行権発生周期テーブル1812および2692が、実行権発生周期オフセットTofsに代えて、次の実行権を発生させる時間を示すTnextを登録し、実行権発生部1813および2693は、現時間がTnextに一致した時点で、実行権を発生させるようにしてもよい。
また、実行権発生部1813および2693がNsftを算定し、実行指示部1815および2695は、Nsftがより小さい実行権を選択するとしたが、実行権発生部1813および2693が上記のTnextを算定し、実行指示部1815および2695は、Tnextが現時間により近い実行権を選択するとしてもよい。
また、実行指示部1815および2695は、カウント値Cが、C≧Nmaxとなった場合、それぞれ実行権キュー1816、実行権キュー2696に指示して、残された実行権のNsftをディクリメントさせるとしたが、実行権キュー1816および2696の代わりに、図31に示すような他の実行権キューを用い、実行指示部1815および2695は、カウント値Cが、C≧Nmaxとなった場合、上記他の実行権キューに指示して、ポインタをずらさせるようにしてもよい。なお、図31に示すように、上記他の実行権キューはリング構造を有しており、ポインタの位置が移動するのにともなって、Nsftの値が順次入れ替わる。
前述したように、CATVネットワークにおけるビデオオンデマンドシステムや放送局の映像編集システム等のファイルシステムにおいては、映像や音声等のデータを扱うサーバ装置が設けられている。このサーバ装置は、ユーザ端末あるいはクライアントからデータの読み出し要求を受けたとき、内部の記憶装置を検索して要求に対応するデータを読み出し、読み出しを要求したユーザ端末あるいはクライアントに、当該データを送出する機能を有している。
ところで、従来のサーバ装置は、送出するデータの連続性を保証するために、ユーザ端末へデータを送出する前に、送出するデータの量に見合う、サーバ装置内部のリソース(単位時間当たりにデータを処理または転送できる能力)の使用権と、サーバ装置とデータの取得を要求するユーザ端末との間の通信リソース(単位時間当たりにデータを送信できる能力)の使用権とを確保した上で、データの送出を実行するようになっている。
しかしながら、上記のような従来のサーバ装置では、動画や音声のような連続性を必要とするデータのみならず、静止画のような連続性を必要としないデータの送出に関しても、データの送出前にリソース使用権を確保するようにしている。そのため、連続性を必要としないデータの送出量が増えるに従い、連続性を必要とするデータのリソース確保が困難になり、最悪の場合はデータの送出が行えなくなるという問題が生じていた。
そこで、以下には、連続性を必要としないデータを送出する際に効率的にリソースを使用でき、しかも、連続性を必要としないデータの送出量が増加しても、連続性を必要とするデータを送出するためのリソース確保に影響を与えないサーバ装置について説明する。
(第8の実施形態)
図32は、本発明の第8の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図である。図32において、本データ伝送システムは、リソース管理部3201と、データ記憶部3202と、交換部3203と、入出力部3204と、複数のユーザ端末3208とを備えている。なお、本実施形態のサーバ装置は、リソース管理部3201と、データ記憶部3202と、交換部3203と、入出力部3204とによって構成される。そして、当該サーバ装置と各端末3208は、有線または無線の伝送路を介して接続されている。
リソース管理部3201は、各ユーザ端末3208に対してデータを送出する際に、必要となるリソースを管理する。データ記憶部3202は、ランダムアクセスが可能な複数の記憶装置(例えば、ハードディスクドライブ、オートチェンジャー付き光ディスクドライバ)3205と、各記憶装置3205に接続されてデータの読み出しを制御する複数のMSFS3206とを含む。交換部3203は、入出力部3204とデータ記憶部3202との間でデータの交換を行う。なお、本実施形態では、一例として、交換部3203にATMスイッチを使用している。入出力部3204は、複数のI/Oユニット3207を含み、サーバ装置と各ユーザ端末3208との間のデータの入出力を制御する。各ユーザ端末3208は、いずれかのI/Oユニット3207に接続されている。
上記のような構成において、各I/Oユニット3207と各MSFS3206との間には、交換部3203によりメッシュ状にコネクションが設定される。なお、各コネクションの帯域は、リソース管理部3201が管理している。
図33は、図32におけるI/Oユニット3207のより詳細な構成を示すブロック図である。図33おいて、I/Oユニット3207は、優先入出力制御部3301と、非優先入出力制御部3302とを備えている。非優先入出力制御部3302は、コマンドキュー3321と、コマンドキュー制御部3322と、コマンド送出部3323と、データバッファ部3324と、バッファ管理部3325と、データ送出部3326と、コマンド受付部3327とを含む。
優先入出力制御部3301は、例えば動画データのように連続性を必要とするデータ(以下、優先データと称する)の入出力を制御する。これに対し、非優先入出力制御部3302は、例えば静止画データのように連続性を必要としないデータ(以下、非優先データと称する)の入出力を制御する。
非優先入出力制御部3302において、コマンドキュー3321は、ユーザ端末3208からの非優先データの読み出しを要求するコマンドを、ユーザ端末毎に蓄える。コマンドキュー制御部3322は、コマンドキュー3321からのコマンドの取り出しを制御する。コマンド送出部3323は、コマンドキュー制御部3322が取り出したコマンドを、対応する宛先のMSFS3206に送出する。データバッファ部3324は、MSFS3206が記憶装置3205から読み出したデータを蓄える。バッファ管理部3325は、データバッファ部3324に格納されている(または、格納が予約されている)データを、読み出しを要求したユーザ端末毎にカウントする。データ送出部3326は、データバッファ部3324に蓄積されたデータを、対応する宛先のユーザ端末3208に送出し、送出が完了したデータバッファ部3324の領域を空きの状態に設定する。コマンド受付部3327は、ユーザ端末3208から到着したコマンドを、コマンドキュー3321に登録するか否かを管理している。
以上のように構成されたサーバ装置について、以下にその動作を説明する。
まず、システムの起動時に行われるリソースの初期設定動作について説明する。リソース管理部3201は、システムの起動時において、データ伝送システムにおける各部のリソース、すなわち、各MSFS3206のデータ読み出し帯域、各I/Oユニット3207における外部との間の通信帯域、交換部3203における各ATMスイッチの通信帯域等を、
(1)優先データを出力するのに使用するリソース(以下、優先リソースと称す)と、
(2)非優先データを出力するのに使用するリソース(以下、非優先リソースと称す)と
に分離して割り当てる。以後、リソース管理部3201は、分離されたそれぞれのリソースを、個別に管理する。
なお、MSFS3206のデータ読み出し帯域は、MSFS3206が要求する、読み出すデータの格納先がランダムで、かつ要求間隔がランダムな読み出し要求に応答してデータの読み出しを行うときに、予め定められた遅延時間以内に、予め定められた廃棄率以下で読み出し可能なデータの最大速度として定義される。
次に、優先データの出力動作について説明する。各ユーザ端末3208は、サーバ装置に対して優先データの出力を要求する場合、当該優先データを送出するのに必要な帯域のリソースの確保を要求する。リソース確保の要求を受けた優先入出力制御部3301は、リソース管理部3201に対し、帯域量を指定してリソースの確保を要求する。リソース管理部3201では、要求された帯域量のデータを送信するために、ATMスイッチの通信帯域と、MSFS3206のデータ読み出し帯域と、I/Oユニット3207の通信帯域とを、優先リソースとして予め割り当てられている帯域量の中から確保する。
現在、優先リソースが使用中で、要求された帯域量に見合う分の余りがない場合には、リソースの確保が失敗し、サーバ装置は、優先データの出力を実行できない。一方、リソースの確保に成功すると、ユーザ端末3208が出力を希望するデータ用に、I/Oユニット3207の通信帯域と、MSFS3206のデータ読み出し帯域と、交換部3203のATMスイッチの通信帯域とが、それぞれの機器に設定される。
ユーザ端末3208は、リソース確保完了通知を優先入出力制御部3301から受けると、優先データの出力を要求するコマンドを発行する。コマンドを受信したI/Oユニット3207の優先入出力制御部3301は、出力したい優先データ用に確保されているリソースを用いてデータの出力を実行する。
図34は、図33におけるコマンド受付部3327の動作を示すフローチャートである。図35は、図33におけるコマンドキュー制御部3322の動作を示すフローチャートである。図36は、図33におけるコマンド送出部3323の動作を示すフローチャートである。以下、これら図34〜図36を参照して、非優先データの出力動作について説明する。
図34に示すように、コマンド受付部3327は、ユーザ端末3208から非優先データの読み出しを要求するコマンドを受信すると(ステップS101)、当該コマンドを送信したユーザ端末3208に対応するコマンドキュー3321に空きがあるか否かを判断する(ステップS102)。対応するコマンドキュー3321に空きがない場合、コマンド受付部3327は、コマンドの受付を拒否し(ステップS103)、ステップS101の動作に戻る。一方、対応するコマンドキュー3321に空きがある場合、コマンド受付部3327は、受信したコマンドを対応するコマンドキュー3321の最後部に格納し(ステップS104)、その動作を終了する。なお、非優先入出力制御部3302は、前述した優先入出力制御部3301のように、ユーザ端末3208にデータを送出するためのリソースを確保する必要はない。
図35に示すように、コマンドキュー制御部3322は、バッファ管理部3325に格納されている管理情報を参照することにより、コマンドが蓄えられているユーザ端末3208毎のコマンドキュー3321の中から、データバッファ部3324に格納されているデータ量(実際に格納されているデータ量のみならず、格納することが予約されているデータ量も含む)が最も少ない(データが全く格納されていない場合も含む)ユーザ端末3208に対応するコマンドキューを選択する(ステップS201)。なお、データバッファ部3324に格納されているデータ量が同一であり、しかもそれぞれのデータ量が最小であるようなユーザ端末が複数存在する場合は、キュー長が最も長い(すなわち、最も多くのコマンドを格納している)コマンドキューが選択される。さらにこの場合であって、キュー長が同一のコマンドキューが複数存在する場合は、デフォルトで定められた順番に従ってコマンドキューがサイクリックに選択される。
次に、コマンドキュー制御部3322は、選択したコマンドキューに注目し、その先頭部に格納さているコマンドをCOM(1)とする(ステップS202)。次に、コマンドキュー制御部3322は、コマンドカウンタNcに初期値1を設定すると共に、送出コマンドカウンタNsに初期値0を設定する(ステップS203)。次に、コマンドキュー制御部3322は、コマンドCOM(Nc)の宛先のMSFS3206が、コマンドCOM(1)の宛先のMSFS3206と等しいか否かを判断する(ステップS204)。両コマンドの宛先となるMSFS3206が等しい場合、コマンドキュー制御部3322は、選択したコマンドキューからコマンドCOM(Nc)を取り出し、取り出したコマンドCOM(Nc)をコマンド送出部3323に出力する(ステップS205)。なお、コマンドカウンタNcの計数値の初期値は1であるため、最初は、コマンドCOM(Nc)=COM(1)となる。従って、最初は、選択したコマンドキューから先頭のコマンドCOM(1)が取り出され、コマンド送出部3323に出力される。
次に、コマンドキュー制御部3322は、送出コマンドカウンタNsをインクリメントする(ステップS206)。次に、コマンドキュー制御部3322は、送出コマンドカウンタNsの計数値が予め定められたしきい値Nよりも小さいか否かを判断する(ステップS207)。ここで、送出コマンドカウンタNsの計数値は、コマンドキュー制御部3322が、選択したコマンドキューの中から1つのMSFS3206に対して送出したコマンドの数に対応している。1つのMSFS3206に対してほぼ同時に多数のコマンドが送出されると、コマンドを受信したMSFS3206で輻輳が生じるため、本実施形態では、1つのコマンドキュー3321からは、同時にN個以上のコマンドを送出しないようにしている。すなわち、コマンドキュー制御部3322は、送出コマンドカウンタNsの計数値が予め定められたしきい値Nよりも小さい場合のみ、選択したコマンドキュー内の次のコマンドに対する送出処理に移行することができる。
上記ステップS207において、送出コマンドカウンタNsの計数値が予め定められたしきい値Nよりも小さい場合、コマンドキュー制御部3322は、選択したコマンドキュー内にCOM(Nc+1)で示されるコマンドが存在するか否か、すなわち選択したコマンドキュー内に未だ送出すべきコマンドが存在するか否かを判断する(ステップS208)。選択したコマンドキュー内にコマンドCOM(Nc+1)が存在する場合、すなわち選択したコマンドキュー内に未だ送出すべきコマンドが存在する場合、コマンドキュー制御部3322は、コマンドカウンタNcをインクリメントした後(ステップS209)、ステップS204の動作に戻る。従って、選択したコマンドキュー内において、次の位置に格納されているコマンドが、コマンド送出部3323への送出処理の対象となる。例えば、選択したコマンドキュー内において2番目の位置に格納されたコマンドCOM(2)について考えてみると、このコマンドCOM(2)が先頭位置のコマンドCOM(1)と等しい場合は、当該コマンドCOM(2)がステップS205においてコマンド送出部3323に出力される。一方、コマンドCOM(2)が先頭位置のコマンドCOM(1)と等しくない場合は、ステップS204の後、ステップS205〜S207がスキップされて、当該コマンドCOM(2)がコマンド送出部3323に出力されない。
一方、選択したコマンドキュー内にコマンドCOM(Nc+1)が存在しない場合、コマンドキュー制御部3322は、コマンド送出処理が完了したか否か、すなわちコマンド送出部3323に出力したコマンドに対応するデータがMSFS3206からデータバッファ部3324に到着したか否かを判断し(ステップS210)、完了した場合はステップS201の動作に戻る。なお、コマンドキュー制御部3322は、コマンド送出部3323から受信完了通知(後述する図36のステップS308参照)を受け取ったときに、コマンド送出処理が完了したものと判断する。
なお、前述のステップS207において、送出コマンドカウンタNsの計数値が予め定められたしきい値N以上になった場合、コマンドキュー制御部3322は、ステップS210の動作に進み、次のコマンドに対する送出処理を実行しない。
図36に示すように、コマンド送出部3323は、コマンドキュー制御部3322から非優先データの読み出しを要求するコマンドを受け取ると、読み出し完了カウンタNrを初期化する(ステップS301)。すなわち、コマンド送出部3323は、読み出し完了カウンタNrに初期値として、コマンドキュー制御部3322から受け取った全コマンド数を設定する。次に、コマンド送出部3323は、MSFS3206に対して送出していないコマンドを内部に保有しているか否かを判断する(ステップS302)。コマンド送出部3323は、未送出のコマンドを保有している場合、保有している未送出のコマンドの中からいずれか1つのコマンド(通常は、次のコマンド)を選択して注目し、当該コマンドに対応するデータを記憶装置3205から読み出したときに、当該データを格納し得るだけの空き領域がデータバッファ部3324内に存在するか否かを判断する(ステップS303)。データバッファ部3324内に空き領域が存在するか否かは、バッファ管理部3325内の管理情報(具体的には、各カウンタの計数値)を参照することにより判断できる。
データバッファ部3324内に空き領域が存在する場合、コマンド送出部3323は、データを格納するための領域をデータバッファ部3324内に予約すると共に、バッファ管理部3325に予約したことを通知し、さらに宛先のMSFS3206に選択したコマンドを送出する(ステップS304)。仮に、予約できない場合には、予約できる状態になるまで、コマンド送出部3323は、非優先データの読み出しを要求するコマンドをMSFS3206に送出しない。この処理を行うことにより、MSFS3206からのデータ受信時に、データバッファ部3324内に格納領域が無くて、データが廃棄されることを防止することができる。
バッファ管理部3325は、ユーザ端末毎にカウンタを有しており、コマンド送出部3323から予約の通知を受けたとき、データバッファ部3324に格納領域を予約したデータの読み出しコマンドを送信したユーザ端末3208に対応するカウンタの計数値をインクリメントする。
次に、コマンド送出部3323は、データバッファ部3324がMSFS3206からデータを受信したか否かを判断する(ステップS305)。データバッファ部3324がMSFS3206からのデータを受信していない場合、コマンド送出部3323は、ステップS302の動作に戻り、次の未送出コマンドに対する送出処理を行う。一方、データバッファ部3324がMSFS3206からのデータを受信した場合、コマンド送出部3323は、読み出し完了カウンタNrをデクリメントする(ステップS306)。従って、読み出し完了カウンタNrの計数値は、今回の送出処理の対象となるコマンド(すなわち、コマンドキュー制御部3322から今回受け取った全コマンド)の内、MSFS3206からのデータ送出が完了していないコマンドの数を表すことになる。
その後、コマンド送出部3323は、読み出し完了カウンタNrの計数値が0になったか否かを判断する(ステップS307)。読み出し完了カウンタNrの計数値が0になっていない場合、コマンド送出部3323は、ステップS302の動作に戻り、次の未送出コマンドに対する送出処理を行う。一方、読み出し完了カウンタNrの計数値が0になった場合、コマンド送出部3323は、受信完了通知をコマンドキュー制御部3322に送出し(ステップS308)、その動作を終了する。
上記の説明から明らかなように、コマンド送出部3323は、コマンドキュー制御部3322から送られたコマンドを全て送出した後、送出したコマンドに対応するデータをMSFS3206から全て受信完了するまでは、次のコマンドをコマンドキュー制御部3322から受け取らないことになる。
非優先データの読み出しを要求するコマンドを受信したMSFS3206は、当該コマンドを、内部に設けられた非優先コマンドキューに一旦蓄える。そして、当該MSFS3206は、非優先リソースとして確保されている読み出し帯域内で、非優先コマンドキューからコマンドを取り出し、記憶装置3205からのデータの読み出しを実行する。読み出されたデータは、読み出しを要求したI/Oユニット3207がMSFS3206との間に確保している非優先リソースとしての通信帯域を用いて送信される。このとき、当該I/Oユニット3207は、非優先データの受信に関して、同時に複数のMSFS3206との間で通信することがないため、MSFS3206は、I/Oユニット3207が持つ非優先リソースの通信帯域の全てを使用してデータを送信することが可能となる。
MSFS3206からのデータがI/Oユニット3207に到着すると、当該データは、データバッファ部3324内の既に予約されている領域に格納される。データ送出部3326は、非優先リソースとして確保されているサーバ装置外部との間の通信帯域内でデータバッファ部3324からデータを取り出し、データが格納されていた領域を空き領域とする。同時に、データ送出部3326は、データの取り出しをバッファ管理部3325に通知する。通知を受けたバッファ管理部3325は、データバッファ部3324から取り出されたデータの読み出しコマンドを送信したユーザ端末3208に対応するカウンタをデクリメントする。そして、データ送出部3326は、対応するユーザ端末3208に、取り出したデータを送出する。
以上説明したように、第8の実施形態によれば、システムの各部のリソースを、優先データを出力するのに使用するリソース(優先リソース)と、非優先データを出力するのに使用するリソース(非優先リソース)とに予め分離して管理するようにしているので、非優先データの読み出しに使用するリソースを、優先リソースとは独立して確保することができる。その結果、非優先データの読み出し量が増加しても、優先データの出力に影響を与えることがない。
ところで、各ユーザ端末3208がサーバ装置からの非優先データを受信できる能力には限界がある。それにもかかわらず、あるユーザ端末3208が、自己の受信能力を超える量の非優先データの読み出しを要求した場合、そのユーザ端末3208からの要求に応答して記憶装置3205から読み出されたデータは、データバッファ部3324の内部において大量に蓄積されることになる。その結果、サーバ装置では、その他のユーザ端末3208からの読み出し要求に対する処理が遅くなる。以下、このことを具体例を挙げてより詳細に説明する。
例えば、サーバ装置に10台のユーザ端末3208が接続されており、各ユーザ端末3208の受信能力がそれぞれ10Mbpsであり、サーバ装置の外部との間の通信帯域が全体として100Mbpsであった場合を想定する。この場合、ある1台のユーザ端末3208が、サーバ装置に対して100Mbpsを越える量の非優先データの読み出し要求を出したとすると、データバッファ部3324内は、読み出し要求を出した1つのユーザ端末3208に対する蓄積データで満杯になる。しかも、このときデータバッファ部3324内に蓄積されたデータは、10Mbpsの速度でしか減少していかない。このような状況下では、他のユーザ端末3208から非優先データの読み出し要求があったとしても、データバッファ部3324内に読み出しデータを格納し得る空き領域ができるまでは、当該他のユーザ端末3208からの要求に対する送信処理を実行することができない。これでは、即時性を要求されるような読み出し要求コマンドに迅速に対応することができない。しかも、この場合、サーバ装置全体としては100Mbpsの通信能力を有しているにもかかわらず、実際には10Mbpsの通信能力しか発揮していないことになり、限られた通信帯域を有効に活用することができない。
そこで、上記第8の実施形態では、バッファ管理部3325に格納されている管理情報を参照することにより、コマンドが蓄えられているユーザ端末3208毎のコマンドキュー3321の中から、データバッファ部3324に格納されているデータ量が最も少ないユーザ端末3208に対応するコマンドキューを選択し、当該選択したコマンドキューに蓄えられているコマンドの送出処理を優先的に実行するようにしているので、複数のユーザ端末3208が共通に使用している非優先リソースを、1つのユーザ端末3208が占有して使用することが少なくなり、サーバ装置が各ユーザ端末3208に対して有する通信能力を最大限に活用することができる。
なお、コマンドキュー制御部3322は、データバッファ部3324に格納されている最も少ないデータ量が所定のしきい値を越えている場合、選択したコマンドキュー3321からのコマンド取り出しを中止するようにしてもよい。これによって、データバッファ部3324が特定のユーザ端末3208のデータで埋め尽くされ、他のユーザ端末3208の非優先のデータの読み出し要求が処理できなくなることをより一層効果的に防ぐことができる。
また、上記第8の実施形態では、コマンド送出部3323は、データバッファ部3324内にデータを格納するための領域を予約した後に、非優先データの読み出しを要求するコマンドをMSFS3206に送出するようにしている。すなわち、コマンド送出部3323は、格納領域を予約できない場合には、予約できるまで、非優先データの読み出しを要求するコマンドをMSFS3206に送出しない。このようなコマンド送出部3323を設けたことにより、MSFS3206からのデータ受信時に、データバッファ部3324内に格納領域がなくてデータが廃棄されることを防止できる。
さらに、上記第8の実施形態では、コマンド送出部3323は、コマンドキュー制御部3322から送られたコマンドを全て送出後、送出したコマンドに対応するデータをMSFS3206から全て受信完了するまでは、次のコマンドをコマンドキュー制御部3322から受け取らない。これによって、I/Oユニット3207は、非優先データの受信に関して、同時に複数のMSFS3206と通信することがないため、非優先データ同士のセルの衝突を考慮する必要がない。また、MSFS3206は、I/Oユニット3207が持つ非優先リソースの通信帯域の全てを使用して高速にデータを送信することが可能となる。
(第9の実施形態)
図37は、本発明の第9の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図である。図37において、本データ伝送システムは、リソース管理部3701と、データ記憶部3702と、交換部3703と、入出力部3704と、複数のユーザ端末3708とを備えている。なお、本実施形態のサーバ装置は、リソース管理部3701と、データ記憶部3702と、交換部3703と、入出力部3704とによって構成される。そして、当該サーバ装置と各端末3708は、有線または無線の伝送路を介して接続されている。
リソース管理部3701は、各ユーザ端末3708に対してデータを送出する際に、必要となるリソースを管理する。データ記憶部3702は、ランダムアクセスが可能な複数の記憶装置(例えば、オートチェンジャー付き光ディスクドライバ)3705と、各記憶装置3705に接続されてデータの読み出しを制御する複数のMSFS3706とを含む。交換部3703は、入出力部3704とデータ記憶部3702との間でデータの交換を行う。なお、本実施形態では、一例として、交換部3703にATMスイッチを使用している。入出力部3704は、複数のI/Oユニット3707を含み、サーバ装置と各ユーザ端末3708との間のデータの入出力を制御する。各ユーザ端末3708は、いずれかのI/Oユニット3707に接続されている。
上記のような構成において、各I/Oユニット3707と各MSFS3706との間には、交換部3703によりメッシュ状にコネクションが設定される。なお、各コネクションの帯域は、リソース管理部3701が管理している。
上記第9の実施形態は、以下の点で前述した第8の実施形態と相違する。
まず、リソース管理部3701は、システム全体のリソースを、優先リソースと非優先リソースとに分離して管理するが、必要となる優先リソース量の増減に応じて、優先リソースとして割り当てる量と、非優先リソースとして割り当てる量とを変更する。
次に、交換部3703におけるATMスイッチの非優先リソースとしての通信帯域は、ABRモードによって確保されている。ここで、ABRとは、ATMでの通信の標準化を推進する業界団体である"The ATM Forum"で審議されているサービスカテゴリである。ABRを用いた通信では、輻輳が生じた場合に送信レートがATMレイヤで自動的に調整され、それによって輻輳が解消される。また、帯域に空きがある場合には、自動的に送信レートが上げられ、通信帯域の有効利用が図られる。ABRについては、ATM Forum Traffic Management Specification Version 4.0,October 1995,ATM Forum/95−0013R8等に記述されている。
図38は、図37におけるI/Oユニット3707のより詳細な構成を示すブロック図である。図38おいて、I/Oユニット3707は、優先入出力制御部3801と、非優先入出力制御部3802とを備えている。非優先入出力制御部3802は、コマンドキュー3841と、コマンドキュー制御部3842と、コマンド送出部3843と、データバッファ部3844と、データ送出部3846と、コマンド受付部3847とを含む。コマンド送出部3843は、各MSFS3706毎に設けられた、複数のカウンタ3848および複数の送出キュー3849を含む。
優先入出力制御部3801は、動画データ等の優先データの入出力を制御する。これに対し、非優先入出力制御部3802は、静止画データ等の非優先データの入出力を制御する。
非優先入出力制御部3802において、コマンドキュー3841は、ユーザ端末3708からの非優先データの読み出しを要求するコマンドを一括的に蓄える。コマンドキュー制御部3842は、コマンドキュー3841からのコマンドの取り出しを制御する。コマンド送出部3843は、コマンドキュー制御部3842が取り出したコマンドを、対応する宛先のMSFS3706に送出する。データバッファ部3844は、MSFS3706が記憶装置3705から読み出したデータを蓄える。データ送出部3846は、データバッファ部3844に蓄積されたデータを、対応する宛先のユーザ端末3708に送出する。コマンド受付部3847は、ユーザ端末3708から到着したコマンドを、コマンドキュー3841に登録するか否かを管理している。
コマンド送出部3843において、各カウンタ3848は、送出したデータ読み出しのコマンドの内、未だMSFS3706からデータが到着していないコマンドの数を、各MSFS3706毎にカウントする。各送出キュー3849は、各MSFS3706毎に、送出するコマンドを蓄える。
図39は、図37におけるリソース管理部3701の動作を示すフローチャートである。図40は、図38におけるコマンド受付部3847の動作を示すフローチャートである。図41は、図38におけるコマンドキュー制御部3842の動作を示すフローチャートである。図42は、図38におけるコマンド送出部3843の動作を示すフローチャートである。以下、これら図39〜図42を参照して、第9の実施形態のサーバ装置の動作について説明する。
まず、システムの起動時に行われるリソースの初期設定動作について説明する。リソース管理部3701は、システムの起動時において、データ伝送システム全体のリソース(各MSFS3706のデータ読み出し帯域、各I/Oユニット3707における外部との間の通信帯域、交換部3703における各ATMスイッチの通信帯域等を含む)の内、非優先リソースとして最低限確保すべき帯域量を決定する。本実施形態では、優先リソースは、非優先リソースよりも常に優先的に確保される。従って、非優先リソースとして最低限確保すべき帯域量を決めておかないと、優先データの読み出し要求が増えた場合、非優先リソースとして確保する帯域が無くなり、非優先データを送出することができなくなる。また、システムの起動時において、リソース管理部3701は、ABRモードによって、MSFS3706とI/Oユニット3707との間の、非優先リソースとしてのATM通信路を設定する。
次に、優先データの出力動作について説明する。各ユーザ端末3708は、サーバ装置に対して優先データの出力を要求する場合、当該優先データを送出するのに必要な帯域のリソースの確保を要求する。リソース確保の要求を受けた優先入出力制御部3801は、リソース管理部3701に対し、帯域量を指定してリソースの確保を要求する。リソース管理部3701では、要求された帯域量のデータを送信するために、交換部3703におけるATMスイッチの通信帯域と、MSFS3206のデータ読み出し帯域と、I/Oユニット3707の通信帯域とを、優先リソースとして予め割り当てられている帯域量の中から確保する。
現在、優先リソースとして確保されている帯域の全てまたは大部分が使用中であり、要求された優先データを読み出して送出するのに必要な帯域量の余りがない場合、図39に示すように、リソース管理部3701は、優先リソースとして確保している帯域量の変更要求が発生したものと判断する(ステップS401)。その後、リソース管理部3701は、もし優先リソースの帯域量を増加するように変更した場合、非優先リソースに対し、前述の最低帯域量(システムの起動時に設定されている)を確保することが可能か否かを判断する(ステップS402)。もし、優先リソースの帯域量を増加すると、非優先リソースに対して最低帯域量を確保することができない場合、リソース管理部3701は、優先リソースの増加を拒否し(ステップS403)、ステップS401の動作に戻る。この場合、優先リソースの確保が失敗し、サーバ装置は、優先データの出力を実行できない。
一方、優先リソースの帯域量を増加しても非優先リソースに対して最低帯域量を確保することが可能な場合、リソース管理部3701は、変更後の優先リソースの残りとして割り当てられる非優先リソースの帯域量をMSFS3706,I/Oユニット3707に設定すると共に、カウンタ3848のしきい値Lをコマンド送出部3843に通知する(ステップS404)。なお、リソース管理部3701は、優先入出力制御部3801が優先データの出力を完了すると、対応する帯域量を確保している優先リソースから減少させる。
リソース管理部3701のその他の動作は、図32に示すリソース管理部3201と同様であり、その説明を省略する。
次に、非優先データの出力動作について説明する。図40に示すように、コマンド受付部3847は、ユーザ端末3708から非優先データの読み出しを要求するコマンドを受信すると(ステップS501)、コマンドキュー3841に空きがあるか否かを判断する(ステップS502)。コマンドキュー3841に空きがない場合、コマンド受付部3847は、コマンドを送信したユーザ端末3708に対してコマンドの受付を拒否し(ステップS503)、ステップS501の動作に戻る。一方、コマンドキュー3841に空きがある場合、コマンド受付部3847は、受信したコマンドをコマンドキュー3841の最後部に格納し(ステップS504)、その動作を終了する。
図41に示すように、コマンドキュー制御部3842は、コマンドキュー3841にコマンドが格納されているか否かを判断し(ステップS601)、格納されている場合は、MSFS毎に設けられた送出キュー3849の内、1つでも満杯状態(すなわち、最後尾までコマンドを格納した状態)になったキューがあるか否かを判断する(ステップS602)。もし、1つでも満杯状態になったキューがある場合、コマンドキュー制御部3842は、コマンドが送出され、送出キュー3849に空きができるまで、コマンドキュー3841からのコマンドの取り出しを停止する。一方、満杯状態の送出キュー3849が1つもない場合、コマンドキュー制御部3842は、コマンドキュー3841の先頭からコマンドを1つ取り出し、当該コマンドを送出先のMSFS3706に対応する送出キュー3849に格納する(ステップS603)。
次に、コマンドキュー制御部3842は、所定のデータ量に相当するコマンドをコマンド送出部3843に送出したか否かを判断する(ステップS604)。ここで、所定のデータ量とは、その時点でI/Oユニット3707に割り当てられている非優先リソースであって、MSFS3706との間の通信帯域と、ユーザ端末3708との通信帯域との内、小さい方の通信帯域を用いて、予め定められた時間Tの間に送信可能なデータ量と定義される。所定のデータ量に相当するコマンドをコマンド送出部3843に送出していない場合、コマンドキュー制御部3842は、ステップS601の動作に戻り、コマンドキュー3841から次のコマンドを取り出してコマンド送出部3843に送出する。一方、所定のデータ量に相当するコマンドをコマンド送出部3843に送出している場合、コマンドキュー制御部3842は、時間Tの間、コマンドキュー3841からコマンド送出部3843へのコマンドの送出を停止する(ステップS605)。
例えば、I/Oユニット3707がサーバ装置外部にデータを出力するための非優先リソースとしての通信帯域がM(KB/s)であり、I/Oユニット3707がMSFS3706から読み出しデータを受信するための非優先リソースとしての通信帯域がN(KB/s)であり、1つの読み出し要求コマンドで読み出されるデータ量がS(KB)であり、M>Nである場合、コマンドキュー制御部3842は、S/N(sec)の周期でコマンドキュー3841からコマンドを取り出し、コマンド送出部3843に送ることになる。
図42に示すように、コマンド送出部3843は、コマンドの送出先MSFSを表す値iを初期化、すなわち1に設定する(ステップS701)。次に、コマンド送出部3843は、i番目のカウンタ3848のカウント値Co(i)が、リソース管理部3701によって設定されたしきい値L(前述のステップS404で設定されたしきい値)よりも小さいか否かを判断する(ステップS702)。カウント値Co(i)がしきい値Lよりも小さい場合(すなわち、Co(i)<Lの場合)、コマンド送出部3843は、i番目のカウンタ3848のカウント値Co(i)をインクリメントし(ステップS703)、i番目の送出キュー3849からコマンドを1つ取り出して対応する宛先のMSFS3706に送出する(ステップS704)。次に、コマンド送出部3843は、値iをインクリメントする(ステップS705)。
その後、コマンド送出部3843は、データバッファ部3844がMSFS3706からの読み出しデータを受信したか否かを判断し(ステップS706)、受信した場合は、当該受信データを送信した先のMSFS3706に対応するカウンタ3848のカウント値をデクリメントする(ステップS707)。次に、コマンド送出部3843は、値iがMSFS3706の総個数よりも大きいか否かを判断する(ステップS708)。値iがMSFS3706の総個数以下の場合、コマンド送出部3843は、ステップS702の動作に戻り、次の送出キュー3849に対してコマンドの送出処理を実行する。
ここで、前述のステップS702において、i番目のカウンタ3848のカウント値Co(i)がしきい値L以上の場合(すなわち、Co(i)≧Lの場合)、コマンド送出部3843は、対応するi番目の送出キュー3849に対するコマンドの送出処理を行わない。これは、1つのMSFS3706に対して読み出し処理が集中し、当該MSFS3706内でコマンドが滞留するのを避けるためである。
ステップS708において、値iがMSFS3706の総個数よりも大きい場合、コマンド送出部3843は、ステップS701の動作に戻る。従って、値iが初期値1に設定され、上記一連の動作が繰り返される。このように、コマンド送出部3843は、複数の送出キュー3849を1番目から順番にサーチし、注目している送出キュー3849がコマンドを格納している場合は、コマンドを1つだけ取り出して対応する宛先のMSFS3706に送出するようにしている。これによって、各MSFS3706は、均等に読み出し処理を行うことになり、いずれか1つのMSFS3706に負荷が集中するのを回避できる。さらに、偶然にユーザ端末3708からの読み出し要求が1つのMSFS3706に偏った場合であっても、当該MSFS3706に対する未処理のコマンド(データの読み出しが実行されていないコマンド)がしきい値L以上になると、当該MSFS3706に対するコマンド送出処理を停止するようにしているので、このような不測の事態にも対応できる。
非優先データ読み出し要求を受信したMSFS3706は、当該要求を内部の非優先コマンドキューに一旦蓄る。そして、当該MSFS3706は、非優先リソースとして確保されている読み出し帯域内で、非優先コマンドキューからコマンドを取り出し、データの読み出しを実行する。
読み出されたデータは、非優先リソースとして、読み出しを要求したI/Oユニット3707が、MSFS3706との間にABRモードで確保している通信帯域を用いて送信される。
MSFS3706からのデータがI/Oユニット3707に到着すると、データバッファ部3844に格納される。このとき、送信元MSFS3706に対応するカウンタ3848のカウント値がデクリメントされる(前述のステップS707)。
データ送出部3846は、非優先リソースとして確保されているサーバ装置外部との通信帯域に従い、データバッファ部3844からデータを取り出し、対応するユーザ端末3708に取り出したデータを送出する。
以上のように、上記第9の実施形態によれば、優先リソースとして使用されていないリソースを全て非優先リソースとして管理し、優先リソースを新たに増やす必要が生じた場合には、非優先リソースが所定のリソース量(最低帯域量)以下にならない条件下で、非優先リソースから優先リソースを割り当てるようにしているので、非優先データの読み出しが増加しても、優先データの入出力が影響を受けることがなく、しかも、使用されていないリソースが全て非優先リソースとして使用されるため、非優先データの読み出しが効率的に実行される。
また、上記第9の実施形態では、各MSFS3706が非同期で動作するため、各MSFS3706からI/Oユニット3707に送信されるデータの衝突が発生し、交換部3703におけるATMスイッチに輻輳が生じる恐れがある。しかしながら、第9の実施形態では、非優先リソースとしてのATMスイッチの通信帯域をABRモードを用いて確保し、データを読み出したMSFS3706は、ABRモードで確保している通信帯域を用いてデータを送信するようにしているので、たとえ輻輳が生じた場合でも、即座にMSFS3706からの送信レートが下がり、輻輳が解消される。従って、I/Oユニット3707は、常に正常にデータを受信できる。ただし、優先リソースとしての通信帯域の解放等により、通信帯域に空き帯域が生じた場合には、直ちに送信レートが上がり、帯域の有効利用が行われる。
また、上記第9の実施形態では、コマンドキュー制御部3842は、I/Oユニット3707がサーバ装置外部にデータを出力するための非優先リソースとしての通信帯域と、I/Oユニット3707がMSFS3706から読み出しデータを受信するための非優先リソースとしての通信帯域との内、小さい方の帯域に、データの読み出しコマンドが要求するデータ量が等しくなる周期で、コマンドキュー3841の先頭から順にコマンドを取り出して、コマンド送出部3843に送るようにしている。これによって、MSFS3706から送られてくるデータによって使用される平均帯域が、ATMスイッチがMSFS3706と通信するための非優先リソースとしての通信帯域と等しくなるか、またはそれよりも小さくなるため、MSFS3706のデータ送信によるATMスイッチの輻輳を抑制する効果が期待できる。さらに、MSFS3706から送られてくるデータによって使用される平均帯域が、サーバ装置外部にデータを出力するための非優先リソースとしての通信帯域とも等しくなるか、またはそれよりも小さくなるため、I/Oユニット3707内のデータバッファ部3844に蓄積されるデータ量が増大していくことを抑えることができる。
また、上記第9の実施形態では、コマンド送出部3843は、注目している送出キュー3849に対応するカウンタ3848のカウント値が、予め定められたしきい値L未満である場合にのみ、当該注目している送出キュー3849内のコマンドをMSFS3706に送信するようにしているので、MSFS3706から同時に送信される可能性があるデータ数を制限していることになり、ATMスイッチの輻輳を抑制する効果が期待できる。
なお、第9の実施形態では、MSFS3706は、非優先リソースとして確保されている読み出し帯域内で、内部の非優先コマンドキューからコマンドを取り出し、データの読み出しを実行するとしたが、優先リソースに対するデータのI/O処理が行われていないときに、非優先コマンドキューからコマンドを取り出し、非優先データの読み出しを実行するとしてもよい。この場合、非優先リソースの帯域量が変化した場合の各MSFS3706に対する非優先リソースとしてのデータの読み出し帯域の通知は、必要がなくなる。
また、上記第9の実施形態では、カウンタ3848および送出キュー3849は、MSFS3706毎に設けるとしたが、これらを各I/Oユニット3707に1つずつ設けるようにし、送出先のMSFSを意識しない制御としても、第9の実施形態と同様にMSFS3706から同時に送信される可能性があるデータ数を制限していることになり、ATMスイッチの輻輳を抑制する効果が期待できる。ただし、ユーザ端末3708からのデータの読み出しが特定のMSFS3706にある程度集中した場合等には、読み出しの効率が悪くなることが考えられる。これは、要求が集中していないMSFS3706に対しては、要求を送信できるとすぐに応答が得られるはずであるが、要求が集中しているMSFSからのデータを受信しないと、カウンタ3848のカウント値のしきい値制御により、要求をMSFS3706に送信できなくなるためである。
一般的に、ファイルシステムの利用者は、取得するファイルデータの範囲を指定して、ファイルシステム内のサーバに対してデータ送出要求を送る。サーバは、データ送出要求で指定された範囲のファイルデータをすべて利用者に送出する。従来のファイルシステムでは、利用者は、サーバの実行中のデータ送出処理を中断する操作は行えたが、実行中のデータ送出処理を一時停止し、一時停止したデータ送出処理を再開する操作を行うことはできなかった。
ところで、ディジタル化された動画像データを扱うファイルシステムでは、任意のデータ伝送速度によるデータの連続送出処理が不可欠となっている。動画像データを扱うファイルシステムに関して、ISO/IEC標準13818−9のドラフトでは、1つの動画像ファイルに関するデータの連続送出の一時停止および再開操作を定義している。このドラフトによれば、「DSM Stream Pause」によりデータ送出の一時停止を行い、「DSM Stream Resume」によりデータ送出再開を実行するものと定義している。
しかしながら、動画像データを扱う従来のファイルシステムにおいて、ある伝送速度によるデータの連続送出処理を一時停止するポーズ、および一時停止したデータ送出処理を再開するポーズ解除に関して、ポーズ解除時に任意に指定したデータ伝送速度でデータ送出を再開させるポーズ制御方式は確立されていなかった。
また、従来のファイルシステムは、ポーズ解除でデータの送出を再開する場合、ポーズ解除後のデータ取得に必要となる時間を考慮していなかった。そのため、ポーズ処理前後でデータの伝送速度が変化すると、連続した送出に必要なデータの不足が生じたり、取得したデータのバッファからの溢れが生じたり、データ送出再開までにファイルシステムが次のデータを取得する時間が必要となる等の問題があった。
そこで、データの連続送出処理の一時停止および再開を行うファイルシステムにおいて、ポーズ解除後の伝送速度を任意に指定した場合でも、データ送出時のデータ不足を生ずることがなく、かつ再開までの時間を短縮することのできる実施形態について以下に説明する。
(第10の実施形態)
図43は、本発明の第10の実施形態に係るファイルシステムの構成を示すブロック図である。図43において、本ファイルシステムは、サーバ装置4301と、データ記憶装置4302とを備えている。
データ記憶装置4302は、サーバ装置4301によって管理され、利用者4303によって利用されるるデータを格納している。利用者4303は、指定した範囲のデータの送出を要求するデータ送出要求と、データ送出の一時停止を要求するポーズ要求と、一時停止したデータ送出の再開を要求するポーズ解除要求とを、サーバ装置4301に対して発行する。サーバ装置4301は、利用者4303からのデータ送出要求を受けて、データ記憶装置4302からデータを取得し、当該データを利用者4303に送出するものであり、データ送出部4310と、データ取得部4311と、バッファ4312と、バッファ管理部4313と、ポーズ制御部4314とを含む。
データ取得部4311は、指定した位置から順番に、かつ指定された速度で連続的に、データ記憶装置4302からデータを取得する。バッファ4312は、データ記憶装置4302から取得したデータを格納する。バッファ管理部4313は、バッファ4312に格納されたデータの操作とデータ量の管理とを行う。データ送出部4310は、バッファ4312に格納されているデータを、指定された順番で、かつ指定された任意の伝送速度で連続的に、データを利用者4303に送出する。ポーズ制御部4314は、利用者4303からのポーズ要求およびポーズ解除要求を受けて、データ送出部4310とデータ取得部4311とバッファ管理部4313とを制御する。また、サーバ装置4301およびデータ記憶装置4302で扱うデータは、すべて固定長のブロックを単位として操作され、各ブロックにはデータ中の位置を示すブロック番号が連続的に付与されるものとする。
図44は、サーバ装置4301のデータ送出動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。まず、この図44を参照して、サーバ装置4301が利用者4303からデータ送出要求を受け付けたときの動作を説明する。
図44において、参照番号4441および4442は、時間軸を示しており、当該時間軸は、垂直方向の対応する位置が、互いに同一時刻を表している。参照番号4431は、サーバ装置4301が利用者4303から受け付けたデータ送出要求と、その受付時刻とを示している。参照番号4401A〜4403Aは、データ取得部4311がデータ記憶装置4302に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号4411A〜4413Aは、データ取得要求4401A〜4403Aによって取得されたデータと、データ送出部4310が利用者4303へ当該データを送出する時刻とを示している。参照番号4421は、データ取得要求4401Aを発行してから対応するデータ4411Aがバッファ4312に格納されるまでの最大時間を示している。参照番号4451〜4454は、データ送出部4310が利用者4303にデータを送出する時間間隔を示している。
利用者4303は、データ送出要求4431を発行し、データの範囲とデータを送出する際の伝送速度とを指定する。データの範囲は、開始ブロック番号と終了ブロック番号とで指定される。データの伝送速度は、送出するブロック間の平均時間間隔であるデータ送出間隔(以降Tsdと記述する)で指定される。
データ取得部4311は、データ送出要求4431を受け付けると、当該データ送出要求4431で指定された開始ブロック番号に対応する1つのブロックを取得するためのデータ取得要求4401Aを発行する。データ取得部4311は、データ取得要求4401Aの発行時刻からデータ送出間隔Tsd後に、次の1つのブロックを取得するためのデータ取得要求4402Aを、データ記憶装置4302に発行する。同様の手順により、データ取得部4311は、データ送出要求4431で指定された終了ブロック番号に到達するまで、データ送出要求を繰り返し発行する。
データ取得要求4401Aによってデータ記憶装置4302から取得されたブロックは、バッファ4312に格納される。データ取得時間Dは、データ取得部4311がデータ取得要求を発行してから対応する1つのブロックがバッファ4312に格納されるまでの最大時間であり、既知の値である。すなわち、データ取得時間Dの間に、必ず指定した1ブロックを取得できることが保証される。
データ取得要求4401Aによって取得され、バッファ4312に格納されたブロックは、データ取得要求4401Aの発行時刻からデータ取得時間D経過後のデータ送出時刻4411Aに、データ送出部4310により利用者4303に対して送出される。同様に、データ取得要求4402Aによって取得されたブロックは、データ取得要求4402Aの発行時刻からデータ取得時間D経過後の送出時刻4412Aに、データ送出部4310により利用者4303に対して送出される。同様の手順により、データ送出要求4431で指定された終了ブロック番号に対応するデータが送出されるまで、データ送出が連続的に行われる。以上の動作により、利用者4303に指定された任意のデータ伝送速度による連続的なデータ送出が実現される。
図45は、サーバ装置4301のポーズ動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。次に、図45を参照して、サーバ装置4301内のポーズ制御部4314が、利用者4303からポーズ要求を受け取ったときの動作を説明する。
図45において、参照番号4432は、ポーズ制御部4314が利用者4303から受け付けたポーズ要求と、その受付時刻とを示している。参照番号4404A〜4406Aは、データ取得部4311がデータ記憶装置4302に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号4414Aおよび4415Aは、データ取得要求4044Aおよび4045Aによって取得されたデータと、データ送出部4310が利用者4303に当該データを送出する時刻とを示している。参照番号4422は、データ取得要求4404Aを発行してから対応するデータ4414Aがバッファ4312に格納されるまでの最大時間Dを示している。参照番号4455〜4457は、データ送出部4310が利用者4303にデータを送出する時間間隔を示している。
利用者4303からのデータ送出要求に応答して、データ取得部4311がデータ取得要求4404A〜4406Aを発行しようとしているときであって、データ送出要求4404Aおよび4405Aが発行された後に、ポーズ制御部4314がポーズ要求4432を受け付けた場合、ポーズ制御部4314は、データ取得部4311に対して、直ちにデータ取得要求の発行を停止するように制御する。これにより、データ取得要求4406Aは、データ取得部4311から発行されなくなる。同様に、ポーズ制御部4314は、データ送出部4310に対して、直ちにデータ送出を停止するように制御する。データ取得要求4404Aおよび4405Aによって取得されたブロック4414Aおよび4415Aの送出時刻は、ポーズ要求受付時刻よりも後であるため、当該ブロック4414Aおよび4415Aは、バッファ4312に格納されたままとなり、データ送出部4310から利用者4303に送出されなくなる。以上の動作により、連続的に送出されていたデータの一時停止が実現される。
図46は、サーバ装置4301のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。次に、図46を参照して、ポーズ制御部4314が利用者4303からポーズ解除要求を受け取ったときの動作を説明する。
図46において、参照番号4433は、ポーズ制御部4314が利用者4303から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号4406A〜4408Aは、データ取得部4311がデータ記憶装置4302に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号4414Aおよび4415Aは、ポーズ処理でバッファに格納されたままとなっている2つのブロックと、利用者4303への送出時刻とを示している。参照番号4416Aおよび4417Aは、ポーズ解除後のデータ取得要求4406Aおよび4407Aによって取得されたデータと、データ送出部4310が利用者4303に当該データを送出する時刻とを示している。参照番号4423は、データ取得要求4406Aを発行してから対応するデータ4416Aがバッファ4312に格納されるまでの最大時間Dを示している。参照番号4458〜4462は、データ送出部4310が利用者4303に対してデータを送出する時間間隔を示している。
利用者4303は、ポーズ解除要求4433を発行し、ポーズ解除後のデータ伝送速度を指定する。データ伝送速度は、データ送出要求時と同様に、送出するブロック間の平均時間間隔である、データ送出間隔Tsd'で指定する。
ポーズ制御部4314は、利用者4303からポーズ解除要求4433を受け付けると、バッファ管理部4313を参照することにより、ポーズ処理以降にバッファ4312に格納されたままとなっているブロックの数Nを取得する。
ポーズ解除要求4433に応答して、ポーズ制御部4314がデータ取得部4311に対して、直ちにデータ取得を再開するよう制御する時刻を、データ取得再開時刻trdと定義する。同様に、バッファ4312中に格納されているブロックの中で、次に送出するブロックの送出時刻、すなわち図46のデータ送出時刻4414Aを、データ送出再開時刻tsdと定義する。
ポーズ制御部4314は、データ取得再開時刻trdと、バッファ4312中のブロック数Nと、ポーズ解除後のデータ送出間隔Tsd'と、データ取得時間Dとを、次式(14)に代入することにより、データ送出再開時刻tsdを求める。
tsd=trd+D−N・Tsd' …(14)
次に、ポーズ制御部4314は、上式(14)を用いて求めたデータ送出再開時刻tsdと、データ取得再開時刻trdとを比較し、当該データ送出再開時刻tsdがデータ取得再開時刻trd以上の場合は、式(14)で求めた時刻を、データ送出再開時刻tsdと決定する。また、データ送出再開時刻tsdがデータ取得再開時刻trd未満の場合は、データ取得再開時刻trdと等しい時刻を、データ送出再開時刻tsdと決定する。
次に、ポーズ制御部4314は、データ取得再開時刻trdにおいて、データ取得部4311に対し、バッファ4312に格納されている最後のブロック4415Aの次のブロック4416Aを取得するためのデータ取得要求4406Aから順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部4314は、決定したデータ送出再開時刻tsdにおいて、データ送出部4310に対して、直ちにバッファ4312に格納されている先頭のブロック4414Aから順番に終了ブロックを送出するまで、データを送出するよう制御する。
以上のように、第10の実施形態によれば、ポーズ解除後のデータ伝送速度として任意の伝送速度が指定された場合、ポーズ制御部4314が、前述の式(14)を用いてデータ送出再開時刻を求めることにより、ポーズ解除後にデータが途切れることなく、指定された伝送速度でデータを送出することができる。
(第11の実施形態)
以下、本発明の第11の実施形態に係るファイルシステムについて図面を参照しながら説明する。なお、第11の実施形態は、図43に示す第10の実施形態と各ブロックの機能が異なるが、全体としての構成は同様である。従って、以下には、図43に示す第10の実施形態の構成を援用しつつ、第11の実施形態について説明する。
第11の実施形態において、サーバ装置4301が利用者4303からデータ送出要求を受け付けたときの動作は、第10の実施形態において、図44を参照して説明した動作と同一である。同様に、ポーズ制御部4314が利用者4303からポーズ要求を受け取ったときの動作は、第10の実施形態において、図45を参照して説明した動作と同一である。従って、これらの動作の説明は、省略する。
図47は、サーバ装置4301のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。以下、図47を参照して、ポーズ制御部4314が利用者4303からポーズ解除要求を受け付けたときの動作を説明する。
図47において、参照番号4741および4742は、時間軸を示しており、当該時間軸は、垂直方向の対応する位置が、互いに同一時刻を表している。参照番号4733は、ポーズ制御部4314が利用者4303から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号4706Bおよび4707Bは、データ取得部4311がデータ記憶装置4302に対して発行するデータ取得要求と、その発行時刻とを示している。参照番号4714Bおよび4715Bは、ポーズ処理でバッファ4312に格納されたままとなっている2つのブロックと、利用者4303への送出時刻とを示している。参照番号4716Bおよび4717Bは、データ取得要求4706Bおよび4707Bによって取得されたデータと、データ送出部4310が利用者4303に当該データを送出する時刻とを示している。参照番号4724は、データ取得要求4706Bを発行してから対応するデータ4716Bがバッファ4312に格納されるまでの最大時間Dを示している。4763〜4766は、データ送出部4310が利用者4303にデータを送出する時間間隔を示している。
利用者4303は、ポーズ解除要求4733を発行し、ポーズ解除後のデータ伝送速度を指定する。データ伝送速度は、データ送出要求時と同様に、送出するブロック間の平均時間間隔であるデータ送出間隔Tsd'で指定する。
ポーズ制御部4314は、利用者4303からポーズ解除要求4733を受け付けると、バッファ管理部4313を参照して、ポーズ処理以降にバッファ4312に格納されたままとなっているブロックの数Nを取得する。
ポーズ解除要求4733に応答して、ポーズ制御部4314がデータ取得部4311に対して直ちにデータ取得再開するよう制御する時刻を、データ取得再開時刻trdと定義する。同様に、バッファ4312中に格納されているブロックの中で、次に送出するブロックの送出時刻、すなわち図47のデータ送出時刻4714Bを、データ送出再開時刻tsdと定義する。
ポーズ制御部4314は、次式(15)に、データ送出再開時刻tsdと、バッファ4312中のブロック数Nと、ポーズ解除後のデータ送出間隔Tsd'と、データ取得時間Dとを代入することにより、データ取得再開時刻trdを求める。
trd=tsd+N・Tsd'−D …(15)
ポーズ制御部4314は、上式(15)を用いて求めたデータ取得再開時刻trdと、データ送出再開時刻tsdとを比較し、当該データ取得再開時刻trdがデータ送出再開時刻tsd以上の場合は、式(15)で求めた時刻を、データ取得再開時刻trdと決定する。また、データ取得再開時刻trdがデータ送出再開時刻tsd未満の場合は、第10の実施形態を適用して、ポーズ制御部4314は、式(14)に、データ取得再開時刻trdと、バッファ4312中のブロック数Nと、ポーズ解除後のデータ送出間隔Tsd' と、データ取得時間Dを代入することにより、データ送出再開時刻tsdを求める。
ポーズ制御部4314は、決定したデータ取得再開時刻trdにおいて、データ取得部4311に対し、バッファに格納されている最後のブロック4715Bの次のブロック4716Bを取得するためのデータ取得要求4706Bから順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部4314は、データ送出再開時刻tsdにおいて、データ送出部4310に対し、直ちにバッファ4312に格納されている先頭のブロック4714Bから順番に、終了ブロックを送出するまで、データを送出するよう制御する。
以上のように、第11の実施形態によれば、ポーズ解除後のデータ伝送速度として任意の伝送速度が指定された場合、ポーズ制御部4314が、前述の式(15)を用いてデータ取得再開時刻を求めることにより、ポーズ解除後にデータが途切れることなく、指定された伝送速度でデータを送出することができる。
(第12の実施形態)
以下、本発明の第12の実施形態に係るファイルシステムについて図面を参照しながら説明する。なお、第12の実施形態は、図43に示す第10の実施形態と各ブロックの機能が異なるが、全体としての構成は同様である。従って、以下には、図43に示す第10の実施形態の構成を援用しつつ、第12の実施形態について説明する。
第12の実施形態において、サーバ装置4301が利用者4303からデータ送出要求を受け付けたときの動作は、第10の実施形態において、図44を参照して説明した動作と同一である。同様に、ポーズ制御部4314が利用者4303からポーズ要求を受け取ったときの動作は、第10の実施形態において、図45を参照して説明した動作と同一である。従って、これらの動作の説明は、省略する。
図48は、ポーズ解除動作におけるデータ送出再開時刻の算出方法を説明するためのタイムチャートである。図49は、サーバ装置4301のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャートである。以下、これら図48および図49を参照して、ポーズ制御部4314が利用者4303からポーズ解除要求を受け付けたときの動作を説明する。
図48において、参照番号4841および4842は、時間軸を示しており、当該時間軸は、垂直方向の対応する位置が、互いに同一時刻を表している。参照番号4833は、ポーズ制御部4314が利用者4303から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号4806Cは、データ取得部4311がデータ記憶装置4302に対して発行するデータ取得要求と、その発行予定時刻とを示している。参照番号4814Cおよび4815Cは、ポーズ処理でバッファ4312に格納されたままとなっている2つのブロックと、利用者4303への送出予定時刻とを示している。参照番号4816Cは、データ取得要求4806Cによって取得される予定のデータと、データ送出部4310が利用者4303に当該データを送出する予定時刻とを示している。参照番号4825は、データ取得要求4806Cを発行してから、対応するデータ4816Cがバッファ4312に格納されるまでの最大時間Dを示している。参照番号4867および4868は、データ送出部4310が利用者4303にデータを送出する時間間隔を示している。
図49において、参照番号4833は、ポーズ制御部4314が利用者4303から受け付けたポーズ解除要求と、その受付時刻とを示している。参照番号4805C',4806Cおよび4807Cは、データ取得部4311がデータ記憶装置4302に対して発行するデータ取得要求の発行時刻を示している。参照番号4814C'は、ポーズ処理以降にバッファ4312に格納されたままとなっているブロックと、利用者4303への送出時刻とを示している。参照番号4815C'および4816Cは、データ取得要求4805C'および4806Cによって取得されたデータと、データ送出部4310が利用者4303に当該データを送出する時刻とを示している。参照番号4826は、データ取得要求4805C'を発行してから、対応するデータ4815C'がバッファ4312に格納されるまでの最大時間Dを示している。参照番号4869〜4872は、データ送出部4310が利用者4303にデータを送出する時間間隔を示している。
利用者4303は、ポーズ解除要求4833を発行し、ポーズ解除後のデータ伝送速度を指定する。データ伝送速度は、データ送出要求時と同様に、送出するブロック間の平均時間間隔である、データ送出間隔Tsd'で指定する。
ポーズ制御部4314は、利用者4303からポーズ解除要求4833を受け付けると、バッファ管理部4313を参照して、ポーズ処理以降にバッファ4312に格納されたままとなっているブロックの数Nを取得する。
ポーズ解除要求4833に応答して、ポーズ制御部4314がデータ取得部4311に対して、直ちにデータ取得を再開するよう制御する時刻を、データ取得再開時刻trdと定義する。同様に、バッファ4312中に格納されているブロックの中で、次に送出するブロックの送出時刻、すなわち図48のデータ送出時刻4814Cおよび図49のデータ送出時刻4814C'を、データ送出再開時刻tsdと定義する。
ポーズ制御部4314は、前述の式(14)を用いて、データ送出再開予定時刻tsdを求める。次に、ポーズ制御部4314は、式(14)を用いて求めたデータ送出再開予定時刻tsdと、データ取得再開時刻trdとを比較し、当該データ送出再開予定時刻tsdがデータ取得再開時刻trd以上の場合は、式(14)で求めた時刻を、データ取得再開時刻tsdと決定し、前述した第10の実施形態で説明したポーズ解除処理と同様に、以下の処理を行う。すなわち、ポーズ制御部4314は、データ取得再開時刻trdにおいて、データ取得部4311に対し、直ちにバッファ4312に格納されている最後のブロックの次のブロックを取得するためのデータ取得要求から順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部4314は、決定したデータ送出再開時刻tsdにおいて、データ送出部4310に対し、直ちにバッファ4312に格納されている先頭のブロックから順番に、終了ブロックを送出するまで、データを送出するよう制御する。
式(14)を用いて求めたデータ送出再開予定時刻tsdが、データ取得再開時刻trd未満、すなわち図48に示す場合は、以下の処理を行う。すなわち、ポーズ制御部4314は、図48のデータ取得時間4825において、ポーズ解除後のデータ伝送速度Tsd'により送出することのできるブロック数L、すなわち限界データ量を、次式(16)を用いて求める。ただし、次式(16)において、[X]はXを越えない最大の整数とする。
L=[D/Tsd'] …(16)
次に、ポーズ制御部4314は、バッファ4312から削除するブロック数Nd を、次式(17)を用いて求め、バッファ管理部4313に対し、バッファ4312に格納されているブロックから、次式(17)で求めたNd 個のブロックを削除するよう制御する。
Nd=N−L …(17)
バッファ管理部4313は、バッファ4312からNd 個のブロックを、最後にバッファに格納された順番、すなわちブロック番号の大きい順番に削除する。これにより、バッファ4312中のブロック数は、Lと一致する。この結果、図48のブロック4815Cが、バッファ4312から削除される。
ポーズ制御部4314は、次式(18)に、データ取得再開時刻trdと、バッファ4312中のブロック数Lと、ポーズ解除後のデータ送出間隔Tsd'と、データ取得時間Dとを代入することにより、新たにデータ送出再開時刻tsd'を求める。
tsd'=trd+D−L・Tsd' …(18)
次に、ポーズ制御部4314は、データ取得再開時刻trdにおいて、データ取得部4311に対し、バッファ4312に格納されている最後のブロック4814C'の次のブロック4815C'を取得するためのデータ取得要求4805C'から順番に、終了ブロックに到達するまで、データ取得要求を発行するよう制御する。同様に、ポーズ制御部4314は、決定したデータ送出再開時刻tsd'において、データ送出部4310に対し、直ちにバッファ4312に格納されている先頭のブロック4814C'から順番に、終了ブロックを送出するまで、データを送出するよう制御する。
以上のように、第12の実施形態によれば、ポーズ解除後のデータ伝送速度として任意の伝送速度が指定された場合、限界データ量を越えるデータをバッファ4312から削除するようにしているので、サーバ装置4301は、限界データ量以上のバッファ容量を持つ必要がなく、ポーズ解除後にデータが途切れることなく、指定された伝送速度でデータを送出することができる。
本発明に係るファイルシステムは、ユーザからの要求に対して素早い応答時間でデータを提供できるサーバ装置等を含むファイルシステムとして有用である。
本発明の第1の実施形態に係るファイルシステムの構成を示すブロック図 図1の各サーバユニットにおけるファイルアクセスに関連する部分の構成を示すブロック図 図1のファイルマネージャにおけるファイルアクセスに関連する部分の構成を示すブロック図 第1の実施形態において、リソースの予約および割り当てと、データ読み出し動作との関係を示した図 MS到着スロットの状態を管理するMS到着スロット管理テーブルの一例を示す図 書き込み用スロットの状態を管理する書き込み用スロット管理テーブルの一例を示す図 ストリーム管理テーブルの一例を示す図 図3に示すリソース管理部のより詳細な構成を示すブロック図 本発明の第2の実施形態に係るファイルシステムの構成を示すブロック図 図9の各I/Oユニットにおけるファイルアクセス部の構成を示すブロック図 図9の各ブロック格納ユニットにおけるファイルアクセス部の構成を示すブロック図 本発明の第3の実施形態に係るファイルシステムの構成を示すブロック図 本発明の第4の実施形態に係るディスク管理装置の構成を示すブロック図 記憶装置の帯域に比例してデータを分配する比率を決定する、帯域優先レイアウトについて示す図 記憶装置の容量に比例してデータを分配する比率を決定する、容量優先レイアウトについて示す図 帯域優先レイアウトと容量優先レイアウトとを混在させてデータを分配する比率を決定する、帯域設定レイアウトについて示す図 図13に示すディスク管理装置を用いたファイルシステムの構成を示すブロック図 本発明の第6の実施形態に係るスケジューリング装置の構成を示すブロック図 図18のスケジューリング装置を用いた映像情報提供システムの構成を示すブロック図 図19の映像情報提供装置1920とクライアント(1〜n)1921との間で、信号が送受信される様子を示すシーケンス図 図18の実行権発生周期テーブル1812の登録内容を示す図 図18の処理待ちキュー1814のキューイング内容を示す図 図18の実行権キュー1816のキューイング内容を示す図 図18の実行権発生部1813が実行権を発生させる動作を説明するためフローチャート 図18の実行指示部1815が読み出し要求の実行を指示する動作を説明するためのフローチャート 本発明の第7の実施形態に係るスケジューリング装置の構成を示すブロック図 図26のスケジューリング装置を用いた映像情報提供システムの構成を示すブロック図 図26の実行権発生周期テーブル2692の登録内容を示す図 図26の処理待ちキュー2694のキューイング内容を示す図 図26の実行権キュー2696のキューイング内容を示す図 他の実行権キューの動作を説明するための図 本発明の第8の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図 図32におけるI/Oユニット3207のより詳細な構成を示すブロック図 図33におけるコマンド受付部3327の動作を示すフローチャート 図33におけるコマンドキュー制御部3322の動作を示すフローチャート 図33におけるコマンド送出部3323の動作を示すフローチャート 本発明の第9の実施形態に係るサーバ装置を用いたデータ伝送システムの構成を示すブロック図 図37におけるI/Oユニット3707のより詳細な構成を示すブロック図 図37におけるリソース管理部3701の動作を示すフローチャート 図38におけるコマンド受付部3847の動作を示すフローチャート 図38におけるコマンドキュー制御部3842の動作を示すフローチャート 図38におけるコマンド送出部3843の動作を示すフローチャート 本発明の第10の実施形態に係るファイルシステムの構成を示すブロック図 第10の実施形態において、サーバ装置のデータ送出動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート 第10の実施形態において、サーバ装置のポーズ動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート 第10の実施形態において、サーバ装置のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート 第11の実施形態において、サーバ装置のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート 第12の実施形態において、サーバ装置のポーズ解除動作における、データ送出再開時刻の算出方法を説明するためのタイムチャート 第12の実施形態において、サーバ装置のポーズ解除動作における、データ送出要求とデータ取得要求とデータ送出との関係を示すタイムチャート
符号の説明
1 交換装置
2 ファイルマネージャ
3 サーバユニット
101 外部メッセージインターフェース部
102 リソース割り当て部
103 スロット割り当て部
104 アドレス検索部
105 要求送出部
106 外部ネットワークI/O制御部
107 内部メッセージインターフェース部
108 記憶装置
109 記憶制御部
110 内部ネットワークI/O制御部
111 申告値管理部
201 メッセージインターフェース部
202 リソース管理部
401 申告パラメータ処理部
402 書き込み帯域算出部
403 受付判断部
404 リソース記憶部
901 ファイルマネージャ
902 I/Oユニット
905 ブロック格納ユニット
908 交換装置
1001 外部メッセージインターフェース部
1002 リソース割り当て部
1003 スロット割り当て部
1004 アドレス検索部
1005 要求送出部
1006 外部ネットワークI/O制御部
1007 内部メッセージインターフェース部
1008 申告値管理部
1101 内部メッセージインターフェース部
1102 内部ネットワークI/O制御部
1103 記憶制御部
1104 記憶装置
1201 メッセージインターフェース部
1202 リソース管理部
1203 読み出し、書き込み制御部
1204 記憶装置
1205 申告値管理部
1300 ディスク管理装置
1301 ディスク帯域管理部
1302 ディスク容量管理部
1303 分配比率決定部
1304 帯域計算部
1305 容量計算部
1306 全ディスク帯域制御部
1307 全ディスク容量制御部
1708a,1708b 記憶装置
1709 ファイル属性管理部
1710 帯域管理部
1711 ファイルオープン処理部
1712 帯域獲得部
1713 入出力制御部
1414a〜1414c 記憶装置
1515a〜1515c 記憶装置
1616a〜1616c 記憶装置
1810、2690 スケジューリング装置
1811、2691 登録指示部
1812、2692 実行権発生周期テーブル
1813、2693 実行権発生部
1814、2694 処理待ちキュー
1815、2695 実行指示部
1816、2696 実行権キュー
1920、2700 映像情報提供装置
1921、2701 クライアント
1922、2702 サーバ
2703 伝送路
3201,3701…リソース管理部
3202,3702…データ記憶部
3203,3703…交換部
3204,3704…入出力部
3205,3705…記憶装置
3206,3706…MSFS
3207,3707…I/Oユニット
3208,3708…ユーザ端末
3301,3801…優先入出力制御部
3302,3802…非優先入出力制御部
3321,3841…コマンドキュー
3322,3842コマンドキュー制御部
3323,3843…コマンド送出部
3324,3844…データバッファ部
3325…バッファ管理部
3326,3846…データ送出部
3327,3847…コマンド受付部
3848…カウンタ
3849…送出キュー
4301 サーバ装置
4302 データ記憶装置
4310 データ送出部
4311 データ取得部
4312 バッファ
4313 バッファ管理部
4314 ポーズ制御部

Claims (14)

  1. 有線または無線の伝送路を介して複数の端末と接続されており、いずれかの端末からデータの読み出し要求が送られてきたとき、内部に蓄積されたデータの中から対応するデータを検索して読み出し、読み出したデータを読み出し要求を発した端末へと送信するサーバ装置であって、
    種々のデータを記憶しており、前記端末からの読み出し要求に応じて、ランダムアクセスが可能なデータ記憶部と、
    前記データ記憶部と各前記端末との間でデータの入出力を制御する入出力部と、
    前記入出力部と前記データ記憶部との間でデータを交換する交換部と、
    前記端末から要求されたデータを、前記データ記憶部から読み出して当該端末へと出力する際に必要となるリソースを管理するリソース管理部とを備え、
    前記リソース管理部は、サーバ装置全体のリソースを、連続性を保証する必要のあるデータ(優先データ)を前記端末へと出力するために用いられるリソース(優先リソース)と、連続性を保証する必要のないデータ(非優先データ)を前記端末へと出力するために用いられるリソース(非優先リソース)とに分離して管理することを特徴とする、サーバ装置。
  2. 各前記端末は、複数のグループに分割されており、
    前記入出力部は、前記端末のグループ毎に設けられた複数のI/Oユニットを含み、
    各前記I/Oユニットは、
    対応するグループの端末から送られてくる優先データの読み出しを要求するコマンドに対する入出力制御を実行する優先入出力制御部と、
    対応するグループの端末から送られてくる非優先データの読み出しを要求するコマンドに対する入出力制御を実行する非優先入出力制御部とを含み、
    前記データ記憶部は、
    複数の記憶装置と、
    各前記記憶装置と接続され、当該記憶装置からのデータの読み出しを制御する複数のMSFSとを含み、
    前記非優先入出力制御部は、
    対応するグループの端末から送られてくる非優先データの読み出しを要求するコマンドを一時的に格納するコマンドキューと、
    前記コマンドキューからコマンドを取り出すコマンドキュー制御部と、
    前記コマンドキュー制御部が取り出したコマンドを、対応する宛先のMSFSに送出するコマンド送出部と、
    前記MSFSによって前記記憶装置から読み出された非優先データを一時的に格納するデータバッファ部と、
    前記データバッファ部に格納された非優先データを前記端末に送出するデータ送出部とを含む、請求項1に記載のサーバ装置。
  3. 前記コマンドキューは、対応するグループに属する複数の端末のそれぞれに対応して設けられており、それぞれが対応する端末からのコマンドを到着順に格納し、
    前記コマンドキュー制御部は、複数のコマンドキューの中からコマンドを格納している1つのコマンドキューを選択すると共に、その先頭に格納されているコマンドおよびそれと同じMSFSに送出されるコマンドを取り出して前記コマンド送出部に出力するコマンド取り出し処理を実行し、
    前記コマンド送出部は、
    前記コマンドキュー制御部から受け取ったコマンドを、それを実行すべきMSFSに送出し、
    送出したコマンドに対する全ての読み出しデータを、前記データバッファ部が前記MSFSから受信したことを確認すると、受信完了通知を前記コマンドキュー制御部に送出し、
    前記コマンドキュー制御部は、前記コマンド送出部から前記受信完了通知を受け取る毎に、前記コマンド取り出し処理を繰り返し実行することを特徴とする、請求項2に記載のサーバ装置。
  4. 前記コマンドキュー制御部は、1回の前記コマンド取り出し処理において、1つのコマンドキューから取り出すコマンドの数を、予め定めた一定個数以下に制限することを特徴とする、請求項3に記載のサーバ装置。
  5. 前記非優先入出力制御部は、前記データバッファ部の使用状態を管理するバッファ管理部をさらに含み、
    前記コマンドキュー制御部は、前記バッファ管理部が管理する前記データバッファ部の使用状態に基づき、前記コマンド取りだし処理のために選択するコマンドキューを決定することを特徴とする、請求項3に記載のサーバ装置。
  6. 前記バッファ管理部には、各端末毎に前記データバッファ部に格納されている未送信データ数をカウントする複数の使用量カウンタが設けられており、
    前記コマンドキュー制御部は、前記コマンド取り出し処理を実行する前に前記バッファ管理部の使用量カウンタを参照し、未送信データ数が最も小さい端末に対応するコマンドキューを、コマンド取り出し処理の対象として選択することを特徴とする、請求項5に記載のサーバ装置。
  7. 前記コマンド送出部は、前記MSFSによって読み出される非優先データを格納するための領域を前記データバッファ部に予約した後に、前記コマンドキュー制御部から受け取ったコマンドを前記MSFSに送出し、データバッファ部に非優先データを格納するための領域が予約できない場合には、予約できるまでMSFSに対するコマンドの送出を停止することを特徴とする、請求項3に記載のサーバ装置。
  8. 前記コマンドキュー制御部は、前記I/Oユニットが前記端末にデータを出力するための非優先リソースとしての通信帯域と、前記I/Oユニットが前記データ記憶部から読み出された非優先データを受信するための非優先リソースとしての通信帯域との内、小さい方の帯域に基づいて、前記コマンド送出部に対してコマンドを出力する周期を決定することを特徴とする、請求項2に記載のサーバ装置。
  9. 前記コマンド送出部は、
    各前記MSFSに対応して設けられ、前記コマンドキュー制御部から受け取ったコマンドを、MSFS別に格納する複数の送出キューと、
    各前記送出キューのそれぞれに対応して設けられ、対応する送出キューからMSFSへコマンドを送出する毎にインクリメントされ、対応するMSFSからの読み出しデータが前記データバッファ部に到着する毎にデクリメントされることにより、データバッファ部への非優先データの未到着数をカウントする複数の処理数カウンタとを含み、
    前記コマンド送出部は、前記処理数カウンタによってカウントされる未到着数が所定のしきい値を超えないように、各送出キューからMSFSに対して送出されるコマンドの数を制限することを特徴とする、請求項2に記載のサーバ装置。
  10. 前記リソース管理部は、前記リソースとして、前記交換部の通信帯域と、前記データ記憶部がデータを読み出す帯域と、前記入出力部が各前記端末にデータを出力するための通信帯域とを管理していることを特徴とする、請求項1に記載のサーバ装置。
  11. 前記交換部は、ATMスイッチで構成されており、
    前記ATMスイッチの非優先リソースとしての通信帯域が、ABRモードで確保されることを特徴とする、請求項1に記載のサーバ装置。
  12. 前記リソース管理部は、予め固定的に、サーバ装置全体のリソースの内、一部を前記優先リソースとして割り当て、残りの部分を前記非優先リソースとして割り当てることを特徴とする、請求項1に記載のサーバ装置。
  13. 前記リソース管理部は、前記端末からの前記優先データの読み出し要求に応じて、サーバ装置全体のリソースの内、前記優先リソースとして割り当てる量を変化させることを特徴とする、請求項1に記載のサーバ装置。
  14. 前記リソース管理部は、サーバ装置全体のリソースの内、前記優先リソースとして割り当てられていないリソースを全て前記非優先リソースとして割り当て、前記優先リソースを増やす必要が生じた場合、前記非優先リソースが所定のリソース量以下にならない範囲で、当該非優先リソースとして割り当てられているリソースから優先リソースを割り当てることを特徴とする、請求項13に記載のサーバ装置。
JP2005208805A 1995-10-26 2005-07-19 ファイルシステム Pending JP2005346732A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005208805A JP2005346732A (ja) 1995-10-26 2005-07-19 ファイルシステム

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP27881495 1995-10-26
JP27881395 1995-10-26
JP27879995 1995-10-26
JP12514696 1996-05-20
JP21355696 1996-08-13
JP2005208805A JP2005346732A (ja) 1995-10-26 2005-07-19 ファイルシステム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP8278359A Division JPH10111761A (ja) 1995-10-26 1996-10-21 ファイルシステム

Publications (1)

Publication Number Publication Date
JP2005346732A true JP2005346732A (ja) 2005-12-15

Family

ID=35498987

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005208805A Pending JP2005346732A (ja) 1995-10-26 2005-07-19 ファイルシステム

Country Status (1)

Country Link
JP (1) JP2005346732A (ja)

Similar Documents

Publication Publication Date Title
US6714986B2 (en) File system for handling real-time and non-real-time data
EP0673159B1 (en) Scheduling policies with grouping for providing VCR control functions in a video server
US6378036B2 (en) Queuing architecture including a plurality of queues and associated method for scheduling disk access requests for video content
KR100196882B1 (ko) 주문형 비디오 시스템 및 이 시스템의 비디오 스케쥴링방법,주문형고객서비스시스템의물리적자원스케쥴링방법,컴퓨터판독가능한메모리
US5956321A (en) Stream scheduling system for real time stream server
JP2742390B2 (ja) ビデオ・システムにおけるポーズ・レジュームをサポートする方法およびシステム
KR100334000B1 (ko) 영상축적배송장치및영상축적배송시스템
CA2142380C (en) Buffer management policy for an on-demand video server
US7730238B1 (en) Buffer management method and system with two thresholds
EP0739136A2 (en) Multi-node media server with efficient work scheduling
EP0694830A1 (en) Buffering for load balancing in on-demand video servers
JPH10276221A (ja) セル伝送のスケジューリング方法および装置
US5619502A (en) Static and dynamic scheduling in an asynchronous transfer mode communication network
US7587549B1 (en) Buffer management method and system with access grant based on queue score
EP1390840B1 (en) System and method for scheduling the distribution of assets from multiple asset providers to multiple receivers
JPH10111761A (ja) ファイルシステム
JP2002532037A (ja) パケット交換通信ネットワークのためのアクセス制御機構
JP3575862B2 (ja) ストリームスケジューリング方法及び装置
JP2006065844A (ja) ファイルシステム
JP2005346732A (ja) ファイルシステム
JPH07111648A (ja) Av信号配信システム
JP4316123B2 (ja) データ伝送システムおよびネットワークシステム
JP2002368799A (ja) 帯域制御装置
JPH1155276A (ja) シェーピング装置
JP3416498B2 (ja) サーバ装置およびその制御方法並びにサーバ装置制御プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070413

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070808