(57)【要約】【課題】  記録媒体に、より迅速に空き領域を作成する。【解決手段】  HDD１１６は、時間的に連続するコンテンツのデータを記録する。光ディスク１１９は、コンテンツの全体のデータを記録する。ストレージマネージャ１１４は、HDD１１６からコンテンツのデータの部分を消去する場合、光ディスク１１９に全体のデータが記録されているコンテンツのデータの部分をHDD１１６から消去させる。ストレージマネージャ１１４は、HDD１１６に記録されているコンテンツのデータのデータ量が下限閾値未満にならない場合、コンテンツの全体のデータを光ディスク１１９に記録させた後HDD１１６からコンテンツのデータの部分を消去する処理が中断されたコンテンツについて、中断された処理を再開させる。本発明は、コンテンツを記録し再生する記録再生システムに適用できる。【選択図】  図５
2007011565.tif 000002
【特許請求の範囲】
【請求項１】
時間的に連続するコンテンツのデータを記録する第１の記録媒体と、
前記コンテンツの全体のデータを記録する第２の記録媒体と、
前記第１の記録媒体から前記コンテンツのデータの部分を消去する場合、前記第２の記録媒体に全体のデータが記録されている前記コンテンツのデータの部分を前記第１の記録媒体から消去し、前記第２の記録媒体に全体のデータが記録されている前記コンテンツのデータの部分を前記第１の記録媒体から消去しても、前記第１の記録媒体に記録されている前記コンテンツのデータのデータ量が所定の閾値未満にならないとき、前記コンテンツの全体のデータを前記第２の記録媒体に記録させた後前記第１の記録媒体から前記コンテンツのデータの部分を消去する処理が中断された前記コンテンツについて、中断された処理を再開させるか、または、前記第２の記録媒体にデータが記録されていないコンテンツについて、前記コンテンツの全体のデータを前記第２の記録媒体に記録させて、前記第１の記録媒体から前記コンテンツのデータの部分を消去するように、前記第１の記録媒体または前記第２の記録媒体への前記コンテンツのデータの記録を制御する記録制御手段と
を備えることを特徴とする記録装置。
【請求項２】
前記記録制御手段は、前記第２の記録媒体に全体のデータが記録されている前記コンテンツのデータの部分を前記第１の記録媒体から消去しても、前記第１の記録媒体に記録されている前記コンテンツのデータのデータ量が前記閾値未満にならない場合、前記コンテンツの全体のデータを前記第２の記録媒体に記録させた後前記第１の記録媒体から前記コンテンツのデータの部分を消去する処理が中断された前記コンテンツについて、中断された処理を再開させ、中断された処理が完了しても、前記第１の記録媒体に記録されている前記コンテンツのデータのデータ量が前記閾値未満にならないとき、前記第２の記録媒体にデータが記録されていないコンテンツについて、前記コンテンツの全体のデータを第２の記録媒体に記録させて、前記第１の記録媒体から前記コンテンツのデータの部分を消去するように、前記第１の記録媒体または前記第２の記録媒体への前記コンテンツのデータの記録を制御する
ことを特徴とする請求項１に記載の記録装置。
【請求項３】
前記記録制御手段は、所定の走査方式で前記コンテンツを走査する順に、前記コンテンツのデータの部分を前記第１の記録媒体から消去するように、前記第１の記録媒体への前記コンテンツのデータの記録を制御する
ことを特徴とする請求項１に記載の記録装置。
【請求項４】
前記記録制御手段は、行きがけ順、通りがけ順、または帰りがけ順の走査方式で前記コンテンツを走査する順に、前記コンテンツのデータの部分を前記第１の記録媒体から消去するように、前記第１の記録媒体への前記コンテンツのデータの記録を制御する
ことを特徴とする請求項３に記載の記録装置。
【請求項５】
前記コンテンツへのアクセスの履歴を記憶する記憶手段をさらに備え、
前記記録制御手段は、前記コンテンツへのアクセスの履歴を基に、前記第１の記録媒体への前記コンテンツのデータの記録を制御する
ことを特徴とする請求項１に記載の記録装置。
【請求項６】
時間的に連続するコンテンツのデータを第１の記録媒体に記録し、前記コンテンツの全体のデータを第２の記録媒体に記録する記録装置の記録方法において、
前記第１の記録媒体から前記コンテンツのデータの部分を消去するか否かを判定する判定ステップと、
前記第１の記録媒体から前記コンテンツのデータの部分を消去する場合、前記第２の記録媒体に全体のデータが記録されている前記コンテンツのデータの部分を前記第１の記録媒体から消去し、前記第２の記録媒体に全体のデータが記録されている前記コンテンツのデータの部分を前記第１の記録媒体から消去しても、前記第１の記録媒体に記録されている前記コンテンツのデータのデータ量が所定の閾値未満にならないとき、前記コンテンツの全体のデータを前記第２の記録媒体に記録させた後前記第１の記録媒体から前記コンテンツのデータの部分を消去する処理が中断された前記コンテンツについて、中断された処理を再開させるか、または、前記第２の記録媒体にデータが記録されていないコンテンツについて、前記コンテンツの全体のデータを前記第２の記録媒体に記録させて、前記第１の記録媒体から前記コンテンツのデータの部分を消去するように、前記第１の記録媒体または前記第２の記録媒体への前記コンテンツのデータの記録を制御する記録制御ステップと
を含むことを特徴とする記録方法。
【請求項７】
時間的に連続するコンテンツのデータを第１の記録媒体に記録し、前記コンテンツの全体のデータを第２の記録媒体に記録する記録装置を制御するコンピュータに、
前記第１の記録媒体から前記コンテンツのデータの部分を消去するか否かを判定する判定ステップと、
前記第１の記録媒体から前記コンテンツのデータの部分を消去する場合、前記第２の記録媒体に全体のデータが記録されている前記コンテンツのデータの部分を前記第１の記録媒体から消去し、前記第２の記録媒体に全体のデータが記録されている前記コンテンツのデータの部分を前記第１の記録媒体から消去しても、前記第１の記録媒体に記録されている前記コンテンツのデータのデータ量が所定の閾値未満にならないとき、前記コンテンツの全体のデータを前記第２の記録媒体に記録させた後前記第１の記録媒体から前記コンテンツのデータの部分を消去する処理が中断された前記コンテンツについて、中断された処理を再開させるか、または、前記第２の記録媒体にデータが記録されていないコンテンツについて、前記コンテンツの全体のデータを前記第２の記録媒体に記録させて、前記第１の記録媒体から前記コンテンツのデータの部分を消去するように、前記第１の記録媒体または前記第２の記録媒体への前記コンテンツのデータの記録を制御する記録制御ステップと
を含む処理を実行させるプログラム。
【請求項８】
請求項７に記載のプログラムが記録されているプログラム記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記録装置および方法、プログラム並びにプログラム記録媒体に関し、特に、コンテンツを記録する記録装置および方法、プログラム並びにプログラム記録媒体に関する。
【背景技術】
【０００２】
複数の記録媒体に、コンテンツのデータを記録し、記録媒体のドライブへの装着を自動化することで、多量のコンテンツを簡単に取り扱えるようにした記録再生システムがある。
【０００３】
図１は、従来の記録再生システムの構成を示すブロック図である。ビデオ／オーディオエンコーダ１１は、入力された入力画像信号に対応したベースバンドの画像データをMPEG（Moving Pictures Experts Group）方式で符号化する。また、ビデオ／オーディオエンコーダ１１は、入力された音声信号（図示せず）に対応したベースバンドの音声データをMPEG方式で符号化する。ビデオ／オーディオエンコーダ１１は、符号化により得られたデータをストリームエンコーダ１２に供給する。
【０００４】
ストリームエンコーダ１２は、ビデオ／オーディオエンコーダ１１から供給された、符号化されているデータを多重化して、MPEGトランスポートストリーム方式またはMPEGプログラムストリーム方式のストリームに変換し、変換により得られたストリームをライトバッファ１３に供給する。
【０００５】
ライトバッファ１３は、ストリームエンコーダ１２から供給されたストリーム（データ）を一時的に記憶して、記憶しているストリーム（データ）をドライブ１４に供給する。
【０００６】
ドライブ１４は、装着されている光ディスク１５に、ライトバッファ１３から供給されたデータをファイルとして記録する。
【０００７】
ジュークシステム１６は、ドライブ１４への光ディスク１５の着脱を制御する。ジュークシステム１６は、複数の光ディスク１５のそれぞれを格納するディスクスロット１７からいずれかの光ディスク１５をピッカー１８に選択させる。ピッカー１８は、ジュークシステム１６の制御の基に、選択した光ディスク１５を搬送し、ドライブ１４に装着させる。また、ピッカー１８は、ジュークシステム１６の制御の基に、ドライブ１４から取り出された光ディスク１５を搬送して、いずれかのディスクスロット１７に格納させる。すなわち、ジュークシステム１６は、ピッカー１８を制御する。
【０００８】
また、ドライブ１４は、装着されている光ディスク１５からファイルとして記録されているデータを読み出して、読み出したデータをリードバッファ１９に供給する。リードバッファ１９は、半導体メモリまたはハードディスクからなり、ドライブ１４から供給されたデータ（ストリーム）を一時的に記憶する。リードバッファ１９は、読み出しジッタを吸収し、データレートを一定となるように平坦化して、記憶しているデータ（ストリーム）をストリームデコーダ２０に供給する。
【０００９】
ストリームデコーダ２０は、MPEGトランスポートストリーム方式またはMPEGプログラムストリーム方式のストリームを、画像データおよび音声データに分離して、分離した画像データおよび音声データをビデオ／オーディオデコーダ２１に供給する。
【００１０】
ビデオ／オーディオデコーダ２１は、符号化されている画像データおよび音声データを、いわゆるベースバンドの画像データおよび音声データに復号する。また、ビデオ／オーディオデコーダ２１は、復号により得られたベースバンドの画像データおよび音声データを基にした、出力画像信号および音声信号（図示せず）をモニタ２２に供給する。モニタ２２は、出力画像信号を基にして、画像を表示すると共に、供給された音声信号を基にして、音声を出力する。
【００１１】
ここで、図２を参照して、再生の処理を説明する。時刻t0において、使用者から再生が要求されると、再生が要求されたコンテンツのデータを記録している光ディスク１５が、ピッカー１８によって、ディスクスロット１７からドライブ１４に搬送されて、時刻t1において、ドライブ１４に装着（マウント）される。
【００１２】
時刻t2において、ドライブ１４による、装着された光ディスク１５に記録されているデータの読み出しが開始され、リードバッファ１９に記憶される。そして、時刻t3において、リードバッファ１９に、所定のデータ量のデータが溜まった場合、リードバッファ１９に記憶されたデータがストリームデコーダ２０に読み出される。そして、ビデオ／オーディオデコーダ２１は、画像データおよび音声データを復号して、復号により得られた画像データおよび音声データに応じた出力画像信号および音声信号をモニタ２２に供給する。時刻t4において、モニタ２２は、出力画像信号および音声信号を基にして、画像を表示し、音声を出力する。
【００１３】
時刻t0において、使用者から再生が要求されてから、時刻t4において、モニタ２２に画像が表示されるまで、ディスクスロット１７に格納されている光ディスク１５が、ドライブ１４に装着されて、装着された光ディスク１５から画像データが読み出されるに必要な時間に相当するタイムラグが発生する。このタイムラグは、記録再生システムの構成にもよるが、２０秒から３０秒程度である。
【００１４】
このタイムラグは、再生を要求するたびに毎回発生するので、使用者は、これにより、非常に大きなストレスを感じることになり、この点は、操作感という観点から大きな問題である。
【００１５】
このような問題を解決するために、HSM（Hierarchical Storage Management：階層型記憶域管理）ソフトウェアの使用が考えられる。HSMソフトウェアは、ハードディスクなどの高速な補助記録装置に保存されているファイルを、より低速で安価な記録媒体に自動的に移動する管理を行う（例えば、特許文献１参照）。
【００１６】
一般的なHSMにおいては、データの先頭部分が、高速な１次ストレージであるハードディスクにキャッシュファイルとして保持され、データの全体が、低速な２次ストレージである光ディスクに保持される。このデータへのアクセスが発生した場合、１次ストレージにキャッシュされているデータの先頭部分がアクセスされている間に、データの残りの部分が、２次ストレージから１次ストレージにコピーされる。このようにすることで、ユーザからは、１次ストレージにデータの全体が記録されているように見える。
【００１７】
以上のように、記録容量当たりのコストが安い２次ストレージにデータの全体を配置し、１次ストレージをキャッシュメモリとして用いることにより、ユーザには、見かけ上、巨大な１次ストレージを利用しているように思わせることができる。
【００１８】
このようなHSMシステムにおいて、１次ストレージにおいて記録容量に対する記録されているデータのデータ量、すなわち、１次ストレージの使用率が所定の閾値を超えた場合、マイグレーションの処理が開始されて、１次ストレージに空き領域が作成される。マイグレーションの処理は、データの全体を２次ストレージに記録し、１次ストレージからデータの部分を消去する処理である。
【００１９】
従来のHSMシステムにおいては、HSMシステムがファイルとして管理している総てのデータをリストアップして、マイグレーションの処理を適用するファイルの候補を決定してから、これらの候補に実際のマイグレーションの処理が適用される。
【００２０】
【特許文献１】特開２００３−２９６１５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、このような方式では、HSMシステムが管理するファイルの数が多くなると、１次ストレージに空き領域が作成されるまでタイムラグが発生する。
【００２２】
図３は、従来のHSMシステムにおいて、マイグレーションの処理を適用するファイルの候補を決定する処理に要する時間を示す図である。図３の横軸は、ファイルの数を示し、図３の縦軸は、マイグレーションの処理を適用するファイルの候補を決定する処理に要する時間を示す。
【００２３】
マイグレーションの処理を適用するファイルの候補を決定する処理に要する時間は、ファイルの数が増加すると長くなり、５万のファイルから、マイグレーションの処理を適用するファイルの候補を決定する場合、約６００秒となった。
【００２４】
この場合、１次ストレージの空き領域よりも大きな記憶領域を必要とするデータは、マイグレーション処理が実行されて空き領域が作成されるまで、１次ストレージに記録することができない。また、従来のマイグレーションの処理を適用するファイルの候補を決定する方式は、非常に演算量の大きな処理である。マイグレーションの処理を適用するファイルの候補を決定し、実際にマイグレーションが終了するまでに、長い間システムに大きな負荷が掛かった状態が続くことになり、システムの通常運用に支障をきたす可能性があった。
【００２５】
本発明はこのような状況に鑑みてなされたものであり、より迅速に空き領域を作成することができるようにするものである。
【課題を解決するための手段】
【００２６】
本発明の第１の側面は、時間的に連続するコンテンツのデータを記録する第１の記録媒体と、コンテンツの全体のデータを記録する第２の記録媒体と、第１の記録媒体からコンテンツのデータの部分を消去する場合、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去し、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去しても、第１の記録媒体に記録されているコンテンツのデータのデータ量が所定の閾値未満にならないとき、コンテンツの全体のデータを第２の記録媒体に記録させた後第１の記録媒体からコンテンツのデータの部分を消去する処理が中断されたコンテンツについて、中断された処理を再開させるか、または、第２の記録媒体にデータが記録されていないコンテンツについて、コンテンツの全体のデータを第２の記録媒体に記録させて、第１の記録媒体からコンテンツのデータの部分を消去するように、第１の記録媒体または第２の記録媒体へのコンテンツのデータの記録を制御する記録制御手段とを備えることを特徴とする記録装置である。
【００２７】
本発明の第１の側面においては、第１の記録媒体に、時間的に連続するコンテンツのデータが記録され、第２の記録媒体に、コンテンツの全体のデータが記録され、第１の記録媒体からコンテンツのデータの部分を消去する場合、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去し、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去しても、第１の記録媒体に記録されているコンテンツのデータのデータ量が所定の閾値未満にならないとき、コンテンツの全体のデータを第２の記録媒体に記録させた後第１の記録媒体からコンテンツのデータの部分を消去する処理が中断されたコンテンツについて、中断された処理を再開させるか、または、第２の記録媒体にデータが記録されていないコンテンツについて、コンテンツの全体のデータを第２の記録媒体に記録させて、第１の記録媒体からコンテンツのデータの部分を消去するように、第１の記録媒体または第２の記録媒体へのコンテンツのデータの記録が制御される。
【００２８】
記録制御手段は、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去しても、第１の記録媒体に記録されているコンテンツのデータのデータ量が閾値未満にならない場合、コンテンツの全体のデータを第２の記録媒体に記録させた後第１の記録媒体からコンテンツのデータの部分を消去する処理が中断されたコンテンツについて、中断された処理を再開させ、中断された処理が完了しても、第１の記録媒体に記録されているコンテンツのデータのデータ量が閾値未満にならないとき、第２の記録媒体にデータが記録されていないコンテンツについて、コンテンツの全体のデータを第２の記録媒体に記録させて、第１の記録媒体からコンテンツのデータの部分を消去するように、第１の記録媒体または第２の記録媒体へのコンテンツのデータの記録を制御するようにすることができる。
【００２９】
記録制御手段は、所定の走査方式でコンテンツを走査する順に、コンテンツのデータの部分を第１の記録媒体から消去するように、第１の記録媒体へのコンテンツのデータの記録を制御するようにすることができる。
【００３０】
記録制御手段は、行きがけ順、通りがけ順、または帰りがけ順の走査方式でコンテンツを走査する順に、コンテンツのデータの部分を第１の記録媒体から消去するように、第１の記録媒体へのコンテンツのデータの記録を制御するようにすることができる。
【００３１】
コンテンツへのアクセスの履歴を記憶する記憶手段をさらに備え、記録制御手段は、コンテンツへのアクセスの履歴を基に、第１の記録媒体へのコンテンツのデータの記録を制御するようにすることができる。
【発明の効果】
【００３２】
以上のように、本発明の第１の側面によれば、より迅速に空き領域を作成することができる。
【発明を実施するための最良の形態】
【００３３】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３４】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００３５】
請求項１に記載の記録装置は、時間的に連続するコンテンツのデータを記録する第１の記録媒体（例えば、図５のHDD１１６）と、コンテンツの全体のデータを記録する第２の記録媒体（例えば、図５の光ディスク１１９）と、第１の記録媒体からコンテンツのデータの部分を消去する場合、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去し、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去しても、第１の記録媒体に記録されているコンテンツのデータのデータ量が所定の閾値未満にならないとき、コンテンツの全体のデータを第２の記録媒体に記録させた後第１の記録媒体からコンテンツのデータの部分を消去する処理が中断されたコンテンツについて、中断された処理を再開させるか、または、第２の記録媒体にデータが記録されていないコンテンツについて、コンテンツの全体のデータを第２の記録媒体に記録させて、第１の記録媒体からコンテンツのデータの部分を消去するように、第１の記録媒体または第２の記録媒体へのコンテンツのデータの記録を制御する記録制御手段（例えば、図５のストレージマネージャ１１４）とを備えることを特徴とする。
【００３６】
請求項６に記載の記録方法は、時間的に連続するコンテンツのデータを第１の記録媒体に記録し、コンテンツの全体のデータを第２の記録媒体に記録する記録装置の記録方法であって、第１の記録媒体からコンテンツのデータの部分を消去するか否かを判定する判定ステップ（例えば、図１１のステップＳ３４）と、第１の記録媒体からコンテンツのデータの部分を消去する場合、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去し、第２の記録媒体に全体のデータが記録されているコンテンツのデータの部分を第１の記録媒体から消去しても、第１の記録媒体に記録されているコンテンツのデータのデータ量が所定の閾値未満にならないとき、コンテンツの全体のデータを第２の記録媒体に記録させた後第１の記録媒体からコンテンツのデータの部分を消去する処理が中断されたコンテンツについて、中断された処理を再開させるか、または、第２の記録媒体にデータが記録されていないコンテンツについて、コンテンツの全体のデータを第２の記録媒体に記録させて、第１の記録媒体からコンテンツのデータの部分を消去するように、第１の記録媒体または第２の記録媒体へのコンテンツのデータの記録を制御する記録制御ステップ（例えば、図１１乃至図１３のステップＳ３５乃至ステップＳ６３）とを含むことを特徴とする。
【００３７】
図４は、本発明の一実施の形態の記録再生システム１０１の構成を示すブロック図である。ビデオ／オーディオエンコーダ１１１は、入力された入力画像信号に対応したベースバンドの画像データをMPEG方式で符号化する。また、ビデオ／オーディオエンコーダ１１１は、入力された音声信号（図示せず）に対応したベースバンドの音声データをMPEG方式で符号化する。ビデオ／オーディオエンコーダ１１１は、符号化により得られたデータをストリームエンコーダ１１２に供給する。
【００３８】
ストリームエンコーダ１１２は、ビデオ／オーディオエンコーダ１１１から供給された、符号化されているデータを多重化して、MPEGトランスポートストリーム方式またはMPEGプログラムストリーム方式のストリームに変換し、変換により得られたストリームをHSM１１３に供給する。
【００３９】
HSM１１３は、記録媒体へのコンテンツのデータの階層的な記録を管理する（階層構造の記録媒体へのコンテンツのデータの記録を管理するとも言える）。HSM１１３は、ストレージマネージャ１１４の制御の基に、ストリームエンコーダ１１２から供給されたストリームをバッファ１１５を介してHDD（Hard Disk Drive）１１６に供給する。HDD１１６は、高速な１次ストレージの一例であり、HSM１１３の制御の基に、バッファ１１５を介して、HSM１１３から供給されたストリーム（データ）を記録する。また、HDD１１６は、記録しているストリーム（データ）をバッファ１１５またはバッファ１１７に供給する。
【００４０】
バッファ１１５は、半導体メモリまたはHDD１１６の一部の記録領域からなり、HSM１１３またはHDD１１６から供給されたストリーム（データ）を一時的に記憶して、記憶しているストリーム（データ）をHSM１１３またはHDD１１６に供給する。バッファ１１７は、半導体メモリまたはHDD１１６の一部の記録領域からなり、HDD１１６またはドライブ１１８から供給されたストリーム（データ）を一時的に記憶して、記憶しているストリーム（データ）をHDD１１６またはドライブ１１８に供給する。
【００４１】
バッファ１１５およびバッファ１１７は、読み出しジッタを吸収し、データレートを一定となるように平坦化する。
【００４２】
ドライブ１１８は、装着されている光ディスク１１９に、バッファ１１７から供給されたデータをファイルとして記録する。光ディスク１１９は、低速な２次ストレージの一例であり、例えば、MO（Magneto-Optical disk）、DVD(Digital Versatile Disc)、またはCD(Compact Disc)などである。
【００４３】
ジュークシステム１２０は、ドライブ１１８への光ディスク１１９の着脱を制御する。ジュークシステム１２０は、複数の光ディスク１１９のそれぞれを格納するディスクスロット１２１からいずれかの光ディスク１１９をピッカー１２２に選択させる。ピッカー１２２は、ジュークシステム１２０の制御の基に、選択した光ディスク１１９を搬送し、ドライブ１１８に装着させる。また、ピッカー１２２は、ジュークシステム１２０の制御の基に、ドライブ１１８から取り出された光ディスク１１９を搬送して、いずれかのディスクスロット１２１に格納させる。すなわち、ジュークシステム１２０は、ピッカー１２２を制御する。
【００４４】
また、ドライブ１１８は、装着されている光ディスク１１９からファイルとして記録されているデータを読み出して、読み出したデータをバッファ１１７に供給する。光ディスク１１９から読み出されたデータは、バッファ１１７を介して、HDD１１６に供給されて、HDD１１６に記録される。
【００４５】
HSM１１３は、光ディスク１１９から読み出され、HDD１１６に記録されたデータ（ストリーム）を、HDD１１６からバッファ１１５を介して読み出して、読み出したデータ（ストリーム）をストリームデコーダ１２３に供給する。
【００４６】
ストリームデコーダ１２３は、MPEGトランスポートストリーム方式またはMPEGプログラムストリーム方式のストリームを、画像データおよび音声データに分離して、分離した画像データおよび音声データをビデオ／オーディオデコーダ１２４に供給する。
【００４７】
ビデオ／オーディオデコーダ１２４は、符号化されている画像データおよび音声データを、いわゆるベースバンドの画像データおよび音声データに復号する。また、ビデオ／オーディオデコーダ１２４は、復号により得られたベースバンドの画像データおよび音声データを基にした、出力画像信号および音声信号（図示せず）をモニタ１２５に供給する。モニタ１２５は、出力画像信号を基にして、画像を表示すると共に、供給された音声信号を基にして、音声を出力する。
【００４８】
記録再生システム１０１において、コンテンツを記録する場合、入力された入力画像信号に応じたコンテンツの全てのデータがHDD１１６に記録される。そして、ドライブ１１８の空き時間において、HDD１１６に記録されているコンテンツの全てのデータが、光ディスク１１９にコピーされる。この場合、HSM１１３が、どの光ディスク１１９にどのコンテンツのデータが書き込まれたかを示す情報を、後述するストアデータベースに記録させる。詳細は後述するが、この情報には、コンテンツのデータを格納するファイルを識別する情報、コンテンツの全てのデータが書き込まれた光ディスク１１９を識別する情報、書き込んだ日時、またはコンテンツのデータを格納するファイルの名前などが含まれる。
【００４９】
なお、外部から直接入力されたストリームを記録するようにしてもよく、ストリームを出力するようにしてもよい。また、データの符号化の方式は、MPEGに限らず、所定の圧縮伸張のための符号化方式であればよい。さらに、ストリームの方式は、本発明を限定するものではない。
【００５０】
図５は、記録再生システム１０１のより詳細な構成を示すブロック図である。アプリケーションプログラム１４１は、使用者とのインターフェースの機能を有し、使用者からの指示を取得するか、使用者に記録再生システム１０１に関する各種の情報を通知する。アプリケーションプログラム１４１は、記録再生システム１０１全体を制御する。
【００５１】
例えば、アプリケーションプログラム１４１は、使用者からの操作に応じて、ビデオ／オーディオエンコーダ１１１、ストリームエンコーダ１１２、ビデオ／オーディオデコーダ１２４、ストリームデコーダ１２３、コンテンツマネージャ１４２、およびストレージマネージャ１１４を制御する。アプリケーションプログラム１４１は、ビデオカメラ１７１からの入力画像信号および音声信号を取得し、取得した入力画像信号および音声信号をビデオ／オーディオエンコーダ１１１に供給する。また、アプリケーションプログラム１４１は、ビデオ／オーディオデコーダ１２４から出力画像信号および音声信号を取得し、取得した出力画像信号および音声信号をモニタ１２５に供給する。さらに、アプリケーションプログラム１４１は、ストレージマネージャ１１４を介して、HSM１１３から供給されたストリーム（データ）をストリームデコーダ１２３に供給する。
【００５２】
コンテンツマネージャ１４２は、記録再生システム１０１に記録されているコンテンツの内容を管理し、コンテンツの内容を検索する。コンテンツマネージャ１４２は、コンテンツデータベース（ＤＢ）１６１へのコンテンツに関する各種の情報の記録およびコンテンツデータベース１６１からのコンテンツに関する情報の読み出しを制御する。
【００５３】
図６で示されるように、コンテンツデータベース１６１には、コンテンツに関する情報として、コンテンツに関連するファイルの情報（例えば、ファイル名、パス名など）、コンテンツの内容および付加情報（例えば、コンテンツの名前、コンテンツのジャンルなど）、コンテンツの圧縮形式（方式）、再生時間、およびインデックス情報（例えば、コンテンツにおけるインデックスの位置など）、並びにアクセス可能なユーザ（使用者）のユーザ情報（例えば、使用者の名前、パスワードなど）などが記録される。
【００５４】
また、コンテンツデータベース１６１には、アクセス履歴テーブルが記録される。アクセス履歴テーブルは、最近アクセスされた所定の数のコンテンツについて、アクセスの履歴に関する情報を格納する。例えば、アクセス履歴テーブルは、最近アクセスされた１００のコンテンツのそれぞれについて、アクセスの履歴に関する情報を格納する。
【００５５】
なお、アクセス履歴テーブルに格納される情報に対応するコンテンツの数は、任意の数とすることができる。例えば、このコンテンツの数は、初期設定により決定される。アクセス履歴テーブルに格納される情報に対応するコンテンツの数は、記録再生システム１０１の動作中に動的に変更するようにしてもよい。
【００５６】
より具体的には、アクセス履歴テーブルは、それぞれのコンテンツについて、コンテンツのファイルのパス名、コンテンツのファイルが作成された日時を示す作成日時、コンテンツのファイルが最後に更新された日時を示す最終更新日時、コンテンツのファイルが最後にアクセスされた日時を示す最終アクセス日時、およびコンテンツのファイルのサイズを示すファイルサイズなどである、アクセスの履歴に関する情報を格納する。
【００５７】
コンテンツマネージャ１４２は、アクセス履歴テーブルにアクセスの履歴に関する情報を格納していないコンテンツにアクセスされると、アクセスされたコンテンツについて、アクセスの履歴に関する情報を生成し、生成した情報をアクセス履歴テーブルに格納する。例えば、記録再生システム１０１にコンテンツが記録されると、コンテンツマネージャ１４２は、記録されたコンテンツについて、アクセスの履歴に関する情報を生成し、生成した情報をアクセス履歴テーブルに格納する。
【００５８】
また、コンテンツマネージャ１４２は、コンテンツがアクセスされると（コンテンツのデータが読み出されると）、アクセス履歴テーブルに格納されている情報を更新する。
【００５９】
ストレージマネージャ１１４は、HSM１１３を上位から制御する。すなわち、ストレージマネージャ１１４は、アプリケーションプログラム１４１からの要求に基づいて、HSM１１３を制御する。ストレージマネージャ１１４には、システムマネージャ１６２およびファイルＩ／Ｏマネージャ１６３が設けられている。
【００６０】
システムマネージャ１６２は、ストレージ制御関連のシステムを設定し、システムログを記録し、エラーログを管理し、メンテナンス処理を実行する。ファイルＩ／Ｏマネージャ１６３は、アプリケーションプログラム１４１からのファイルの読み出しまたは書き込みの要求を受け付ける。ファイルＩ／Ｏマネージャ１６３は、HDD１１６に記録されているコンテンツのファイルの、例えば、画像コンテンツまたは音楽コンテンツの一部分である、指定された一部分のデータをスタブデータとして保持するスタブファイル（状態）への変換を指示する。ファイルＩ／Ｏマネージャ１６３は、光ディスク１１９からHDD１１６へのデータの読み出し（後述するリロード）の処理の中断または再開を指示する。さらに、ファイルＩ／Ｏマネージャ１６３は、HDD１１６から光ディスク１１９へのデータの書き込みの処理の中断または再開を指示する。
【００６１】
HSM１１３は、HDD１１６、ドライブ１１８、光ディスク１１９、ジュークシステム１２０、ディスクスロット１２１、およびピッカー１２２を仮想ストレージ化し、HDD１１６によるコンテンツのデータの一時的な記録を制御する。HSM１１３は、マイグレーションファイルシステム１６４、ストレージサーバ１６５、ストアデータベース（ＤＢ）１６６、メディアサーバ１６７、およびボリウムデータベース（ＤＢ）１６８を含むように構成される。
【００６２】
マイグレーションファイルシステム１６４は、HSM１１３に管理されているファイルの拡張属性を管理し、拡張属性を書き換える。マイグレーションファイルシステム１６４は、HSM１１３に管理されているファイルに対するアクセスイベントを管理する。マイグレーションファイルシステム１６４は、光ディスク１１９からHDD１１６にデータを読み出す処理を制御し、HDD１１６から光ディスク１１９にデータを書き込む処理を制御する。
【００６３】
ストレージサーバ１６５は、光ディスク１１９からHDD１１６にデータに読み出すか、または、HDD１１６から光ディスク１１９にデータを書き込む。また、ストレージサーバ１６５は、HDD１１６に記録されている、コンテンツのデータを格納するキャッシュファイルに関する情報のストアデータベース１６６への記録およびキャッシュファイルに関する情報のストアデータベース１６６からの読み出しを管理する。また、ストレージサーバ１６５は、コンテンツのデータの全体と、そのデータが記録されている光ディスク１１９とのリンク情報を管理する。
【００６４】
ストアデータベース１６６は、コンテンツのデータを格納するキャッシュファイルであって、HDD１１６に記録されているキャッシュファイルに関する情報を記録する。
【００６５】
図６で示されるように、ストアデータベース１６６には、HDD１１６に記録されているキャッシュファイル名と、キャッシュファイルを特定するための値であるキャッシュファイルＩＤとの関連付けが格納される。また、ストアデータベース１６６には、キャッシュファイルが書き込まれた時間またはキャッシュファイルが最後にアクセスされた時間を示すキャッシュファイルデート情報、並びに全体のデータが保存されている光ディスク１１９を特定するボリウムIDが記録されている。さらに、ストアデータベース１６６には、ジュークボックス１４５内の各光ディスク１１９の空き容量が記録される。
【００６６】
メディアサーバ１６７は、それぞれのディスクスロット１２１に格納されている光ディスク１１９を管理する。メディアサーバ１６７は、チェンジャドライバ１４３に対し、指定された光ディスク１１９のドライブ１１８への装着（マウント）を要求する。また、メディアサーバ１６７は、チェンジャドライバ１４３に対し、ドライブ１１８に装着されている光ディスク１１９のディスクスロット１２１への格納（アンマウント）を要求する。
【００６７】
メディアサーバ１６７に設けられているボリウムデータベース１６８は、光ディスク１１９に関係する情報を格納する。
【００６８】
図６で示されるように、ボリウムデータベース１６８には、各光ディスク１１９の生ディスク状態での記録容量、並びに各光ディスク１１９のメディアとしての種類（MO（Magneto-Optical disk）、DVD（Digital Versatile Disc）＋Ｒ、またはDVD＋RWなど）と書き込み専用または読み書き可能などの属性が記録される。また、ボリウムデータベース１６８には、ジュークボックス１４５内の各ディスクスロット１２１に格納されている光ディスク１１９のボリウムID、およびジュークボックス１４５に搭載されているドライブ１１８の使用状況が記録される。
【００６９】
チェンジャドライバ１４３は、ドライブ１１８を制御し、ジュークボックス制御部１４４とHSM１１３とのインターフェースの機能を有する。
【００７０】
ジュークボックス制御部１４４は、ジュークシステム１２０およびジュークサーボ１６９を含む。ジュークシステム１２０は、ドライブ１１８、光ディスク１１９、ディスクスロット１２１、およびピッカー１２２からなるシステム（ジュークボックス１４５）を制御する。ジュークサーボ１６９は、ジュークボックス１４５を駆動する。
【００７１】
ジュークボックス１４５は、ドライブ１１８、光ディスク１１９、ディスクスロット１２１、およびピッカー１２２からなる。
【００７２】
なお、コンテンツデータベース１６１、ストアデータベース１６６、およびボリウムデータベース１６８のそれぞれに記録されているデータを、１つのデータベースに記録するようにしてもよい。
【００７３】
また、図６で示されるように、コンテンツの拡張属性として、キャッシュファイルにおけるコンテンツの部分についての領域情報、コンテンツのどの部分をキャッシュファイルとしてHDD１１６に記録するかのヒントを示すヒント情報、およびキャッシュファイルIDがマイグレーションファイルシステム１６４に記録される。
【００７４】
また、コンテンツの拡張属性として、そのキャッシュファイルについてのマイグレーションの処理が中断されたかを示す情報がマイグレーションファイルシステム１６４に記録される。例えば、マイグレーションの処理が中断されたかを示す情報はフラグとされ、１であるフラグは、そのキャッシュファイルについてのマイグレーションの処理が中断されたことを示し、０であるフラグは、そのキャッシュファイルについてのマイグレーションの処理が完了したことを示す。なお、マイグレーションの処理は、ユーザから中止が要求された場合、他のコンテンツへのアクセスの処理が開始された場合、またはコンテンツの記録が開始された場合など中断される。
【００７５】
なお、コンテンツの拡張属性は、オペレーティングシステムのファイルシステムにより記録および読み出しをするようにしてもよく、また、コンテンツデータベース１６１に記録するようにしてもよい。
【００７６】
より詳細には、領域情報は、キャッシュファイルにおけるコンテンツの部分についての、コンテンツのデータの先頭からその部分の先頭までのオフセット値（バイト）を示すオフセット、コンテンツの部分のデータ量を示すサイズ、および、詳細は後述するが、コンテンツの部分がストア済みであるかまたはホール状態であるかを示すフラグを含む。また、ヒント情報は、コンテンツのどの部分をキャッシュファイルとしてHDD１１６に記録するかを示し、コンテンツのデータの先頭からその部分の先頭までのオフセット値（バイト）を示すヒントオフセット、コンテンツの部分のデータ量を示すヒントサイズ、詳細は後述するが、部分の属性を示すリージョンフラッグス、および、この部分をマイグレーションする場合の優先順位を示すヒントプライオリティなどからなる。
【００７７】
さらに、図６で示されるように、コンテンツを格納するファイルの属性として、読み出し専用（リードオンリ）または読み書き（リードライト）可能であるかを示す情報がファイルシステムによって記録される。
【００７８】
次に、図７乃至図９を参照して、HDD１１６に記録されるキャッシュファイルおよびキャッシュファイルを用いたコンテンツのデータの読み出しについて説明する。
【００７９】
図７は、HDD１１６に記録されるキャッシュファイルの状態を説明する図である。ビデオ／オーディオエンコーダ１１１によって、符号化され、ストリームエンコーダ１１２によって、多重化された、ストリーム（コンテンツ）は、キャッシュファイルとしてHDD１１６（のキャッシュ領域）に書き込まれる。図７で示されるように、入力されたストリーム（コンテンツ）の全体のデータが記録されたキャッシュファイルの状態を、レギュラー状態と称する。
【００８０】
ジュークボックス１４５の空き時間において実行される、HDD１１６に記録されているレギュラー状態のキャッシュファイルを光ディスク１１９に書き込むシャドウド化によって、コンテンツの全体は、HDD１１６に記録されると共に、光ディスク１１９にも記録される。コンテンツの全体のデータがHDD１１６に記録されると共に光ディスク１１９に記録されている場合の、キャッシュファイルの状態をビットファイル状態と称する。
【００８１】
キャッシュファイルがレギュラー状態またはビットファイル状態である場合、言い換えれば、ストリームの全体、すなわち、コンテンツのデータの全体がHDD１１６に記録されている場合、コンテンツのデータの全体は、HDD１１６から読み出されるので、高速に、コンテンツのデータを読み出すことができる。しかし、キャッシュファイルがレギュラー状態またはビットファイル状態である場合、キャッシュファイルのデータ量が多いので、多数のコンテンツについて、レギュラー状態またはビットファイル状態のキャッシュファイルをHDD１１６に記録していると、HDD１１６の記録領域の消費量が大きくなり、HDD１１６がすぐに一杯になってしまう（HDD１１６の全ての記録領域にデータが記録された状態になってしまう）。
【００８２】
そこで、例えば、キャッシュファイルがHDD１１６に記録されてからの経過時間を参照して、古いキャッシュファイルから順に、コンテンツの全体のデータを光ディスク１１９に記録させて、HDD１１６に記録しているキャッシュファイルのデータ量を小さくすることで、HDD１１６に記録されるキャッシュファイルのデータ量の総量を一定の範囲内に納めることができる。
【００８３】
図７で示されるように、コンテンツの全体のデータが記録されていないが、コンテンツのデータの所定の部分が記録されたキャッシュファイルの状態を、スタブファイル状態と称する。特に、コンテンツのデータの所定の部分であって、複数の部分が記録されたキャッシュファイルの状態を、マルチスタブ状態と称する。キャッシュファイルからコンテンツのデータの全てを無くし、コンテンツの拡張属性およびキャッシュファイルIDだけをHDD１１６に記録している状態を、例外的に、ゼロスタブ状態と称する。
【００８４】
コンテンツの全体のデータが記録されている光ディスク１１９から、コンテンツのデータを読み出して、読み出したデータをHDD１１６に記録することをリロードと称する。例えば、光ディスク１１９から、コンテンツのデータを読み出して、HDD１１６にコンテンツの全体のデータを記録することができる。
【００８５】
このように、アプリケーションプログラム１４１から取得された入力画像信号および音声信号に対応するデータがHDD１１６に記録され、さらに、HDD１１６に記録されたデータがドライブ１１８に装着された光ディスク１１９に記録される。
【００８６】
このデータを読み出す場合には、HDD１１６からデータが読み出されるか、または装着された光ディスク１１９からドライブ１１８によってデータが読み出される。光ディスク１１９からドライブ１１８によって読み出されたデータは、一旦、HDD１１６に記録されて、HDD１１６からアプリケーションプログラム１４１に読み出される。
【００８７】
より具体的には、データを読み出す場合には、ドライブ１１８に装着された光ディスク１１９からドライブ１１８によってデータが読み出され、バッファ１１７に一時的に記憶される。バッファ１１７に一時的に記憶されたデータは、HDD１１６に供給され、HDD１１６によって記録される。
【００８８】
HDD１１６に予め記録されているデータ（後述するスタブ領域のデータ）はバッファ１１５に読み出されて、バッファ１１５に一時的に記憶される。同様に、データの読み出しの要求に応じて、バッファ１１７を介して光ディスク１１９から読み出されて、HDD１１６に記録されたデータ（後述するホール領域のデータ）も、バッファ１１５に読み出されて、バッファ１１５に一時的に記憶される。
【００８９】
アプリケーションプログラム１４１は、バッファ１１５に一時的に記憶されたデータを読み出して、出力画像信号および音声信号を出力する。
【００９０】
図８は、スタブ状態のキャッシュファイルを説明する図である。図８には、比較のためにビットファイル状態のキャッシュファイルを示す。図８で示されるように、ビットファイル状態のキャッシュファイルには、コンテンツの全体のデータが格納され、スタブ状態のキャッシュファイルには、コンテンツの部分のデータが格納される。
【００９１】
例えば、スタブ状態のキャッシュファイルには、インデックス情報で示されるインデックスに対応する位置の、コンテンツの部分のデータが格納される。インデックスインデックス情報が、コンテンツの開始位置のインデックス１、コンテンツの開始から２３分２６秒経過した位置のインデックス２、コンテンツの開始から３８分４５秒経過した位置のインデックス３、およびコンテンツの開始から４３分５９秒経過した位置のインデックス４を示す場合、コンテンツの開始位置の所定の期間のコンテンツの部分のデータ、コンテンツの開始から２３分２６秒経過した位置の所定の期間のコンテンツの部分のデータ、コンテンツの開始から３８分４５秒経過した位置の所定の期間のコンテンツの部分のデータ、およびコンテンツの開始から４３分５９秒経過した位置の所定の期間のコンテンツの部分のデータが、キャッシュファイルにスタブデータとして格納される。
【００９２】
スタブデータで再生されるコンテンツの時間の長さは、ディスクスロット１２１に格納されている光ディスク１１９をディスクスロット１２１から取り出してドライブ１１８に装着し、ドライブ１１８が装着された光ディスク１１９からコンテンツのデータを読み出すまでに必要な時間より長く、例えば、２０秒から３０秒程度とされる。
【００９３】
ここで、スタブとは、キャッシュファイルとして、HDD１１６のキャッシュ領域に記録されているデータに対応するコンテンツの部分をいう。スタブ領域とは、スタブデータがHDD１１６に記録されているコンテンツ上の領域、すなわち、スタブの領域をいう。ホール領域とは、スタブデータがHDD１１６に記録されていないコンテンツ上の領域をいう。
【００９４】
スタブ領域およびホール領域を区別しない場合、単に領域と称する。図８において、インデックス１に対応する、０で示されるスタブ領域である領域のデータ（スタブデータ）は、HDD１１６にキャッシュファイルとして記録され、インデックス１とインデックス２との間の、１で示されるホール領域である領域のデータは、HDD１１６に記録されていない。同様に、インデックス２に対応する、２で示されるスタブ領域である領域のデータ（スタブデータ）、インデックス３に対応する、４で示されるスタブ領域である領域のデータ（スタブデータ）、およびインデックス４に対応する、６で示されるスタブ領域である領域のデータ（スタブデータ）は、HDD１１６にキャッシュファイルとして記録される。また、インデックス２とインデックス３との間の、３で示されるホール領域である領域のデータ、インデックス３とインデックス４との間の、５で示されるホール領域である領域のデータ、およびインデックス６の後の、７で示されるホール領域である領域のデータは、HDD１１６に記録されていない。
【００９５】
図９を参照して、領域および拡張属性における領域情報について説明する。図９で示す例において、コンテンツのデータの先頭に、スタブ領域が配置され、そのスタブ領域に続いて、ホール領域が配置されている。また、そのホール領域に続いて、スタブ領域が配置され、さらに、そのスタブ領域に続いて、ホール領域が配置されている。言い換えれば、コンテンツの先頭の部分のデータであるスタブデータは、HDD１１６のキャッシュファイルに記録され（ストア済みとされ）、コンテンツの先頭のその部分に続く領域であって、所定の長さの領域のデータは、HDD１１６のキャッシュファイルに記録されていない（ホール状態とされる）。また、そのホール状態の領域に続く、コンテンツの所定の部分のデータであるスタブデータは、HDD１１６のキャッシュファイルに記録され（ストア済みとされ）、その部分に続く領域であって、所定の長さの領域のデータは、HDD１１６のキャッシュファイルに記録されていない（ホール状態とされる）。すなわち、コンテンツの部分のデータがHDD１１６のキャッシュファイルに記録されている領域と、記録されていない領域とが交互に配置される。
【００９６】
領域情報は、領域それぞれの、領域番号、オフセット、サイズ、およびフラグを含む。領域番号は、ファイルの先頭から０乃至Ｎ（整数）の連続した値をとる。すなわち、領域番号は、０を初期値として、コンテンツのデータの先頭から順に、領域のそれぞれに付加される整数の通し番号である。オフセットは、ファイルの先頭（コンテンツのデータの先頭）からその領域の先頭までのオフセット値を示す。オフセットは、例えば、バイトを単位とする。サイズは、その領域のデータのデータ量を示す。サイズは、例えば、バイトを単位とする。フラグは、スタブ領域（ストア済み）であるかまたはホール領域（ホール状態）であるかを示す。例えば、１であるフラグは、スタブ領域（ストア済み）であることを示し、０であるフラグは、ホール領域（ホール状態）であることを示す。
【００９７】
例えば、コンテンツのデータの先頭のスタブ領域は、コンテンツのデータの先頭に位置し、この領域のデータ量が１５０バイトであり、スタブ領域（ストア済み）なので、コンテンツのデータの先頭のスタブ領域には、０である領域番号、０であるオフセット、１５０であるサイズ、および１であるフラグが付加される。コンテンツのデータにおける先頭から２番目の領域は、この領域の本来のデータ量が８００バイトであり、ホール領域（ホール状態）なので、この領域には、１である領域番号、１５０であるオフセット、８００であるサイズ、および０であるフラグが付加される。
【００９８】
同様に、コンテンツのデータにおける先頭から３番目の領域は、この領域のデータ量が１５０バイトであり、スタブ領域（ストア済み）なので、この領域には、２である領域番号、９５０（１５０＋８００）であるオフセット、１５０であるサイズ、および１であるフラグが付加される。コンテンツのデータにおける先頭から４番目の領域は、この領域の本来のデータ量が１４００バイトであり、ホール領域（ホール状態）なので、この領域には、３である領域番号、１１００（９５０＋１５０）であるオフセット、１４００であるサイズ、および０であるフラグが付加される。
【００９９】
このように、コンテンツの拡張属性における領域情報は、キャッシュファイルにおける各領域の状態を示す。領域情報を参照することにより、キャッシュファイルにおける領域の状態を知ることができる。
【０１００】
次に、図１０のフローチャートを参照して、ヒント情報の書き込みの処理を説明する。ステップＳ１１において、アプリケーションプログラム１４１は、コンテンツマネージャ１４２を介して、コンテンツデータベース１６１から、コンテンツにおけるインデックスの位置を示すインデックス情報を取得する。ステップＳ１２において、アプリケーションプログラム１４１は、インデックス情報を基に、インデックスで示されるコンテンツ上の位置を特定する。
【０１０１】
ステップＳ１３において、アプリケーションプログラム１４１は、特定された位置をヒントセクションの開始位置とするヒント情報を生成する。ヒントセクションは、ヒント情報で示される、コンテンツにおける部分（範囲）である。
【０１０２】
ヒント情報は、コンテンツのどの部分をキャッシュファイルとしてHDD１１６に記録するかのヒントを示す情報である。コンテンツ（コンテンツのデータ）にヒント情報を付与することで、コンテンツのデータのうち、任意の部分のデータをスタブデータとしてHDD１１６のキャッシュ領域に記録することができる。すなわち、コンテンツのデータのうち、ヒント情報で示される部分のデータがスタブデータとしてキャッシュファイルに格納されてHDD１１６に記録される。また、ヒント情報を参照することにより、段階的なマイグレーションの処理を実行することができる。
【０１０３】
ヒント情報は、バージョンナンバ、ヒントセクションレングス、ヒントオフセット、ヒントサイズ、リージョンフラッグス、ヒントプライオリティ、およびタイムスタンプからなる。１つのヒント情報に、１つのバージョンナンバおよび１つのヒントセクションレングスが配置される。１つのヒント情報に、ヒントセクションの数に応じた、ヒントオフセット、ヒントサイズ、リージョンフラッグス、ヒントプライオリティ、およびタイムスタンプが配置される。すなわち、１組のヒントオフセット、ヒントサイズ、リージョンフラッグス、ヒントプライオリティ、およびタイムスタンプは、１つの領域の情報を示す。
【０１０４】
バージョンナンバは、ヒント情報のバージョンを示し、システムおよびソフトウェアの互換性を保つために利用される。ヒントセクションレングスは、このヒント情報で示される全てのヒントセクションのデータ量の合計を示す。１つのヒントセクションのデータ量を一定とすれば、ヒントセクションレングスを、１つのヒントセクションのデータ量で割り算することにより、ヒントセクションの数を求めることができる。
【０１０５】
ヒントオフセットは、それぞれのヒントセクションの開始位置を、コンテンツのデータの先頭からのオフセットで示す。例えば、ヒントオフセットの単位は、データ量（バイトなど）とされる。ヒントサイズは、ヒントセクションのデータ量を示す。ヒントサイズの単位は、例えば、バイトとされる。
【０１０６】
リージョンフラッグスは、それぞれのヒントセクションについて、インデックスに対応するヒントセクションであるか、盛り上がりシーンに対応するヒントセクションであるか、または重要シーンに対応するヒントセクションであるかなどの属性を示す。オペレーティングシステムなどが、リージョンフラッグスを参照して、アクセスに応じてイベントを発生させることができる。
【０１０７】
ヒントプライオリティは、それぞれのヒントセクションをマイグレーションする場合の優先順位を示す。ヒントプライオリティの値が大きいほど、そのヒントセクションに対応する部分のデータがマイグレーションされやすい。ヒントプライオリティに０が設定された場合、そのコンテンツが記録再生システム１０１から削除されるまで、一次ストレージであるHDD１１６に、そのヒントセクションに対応する部分のデータがキャッシュされる。アプリケーションプログラム１４１またはオペレーティングシステムにより、頻繁にアクセスされるコンテンツの部分（データ）に対応するヒントセクションのヒントプライオリティに０を設定するなど、ヒントプライオリティの値を管理することができる。
【０１０８】
タイムスタンプは、そのヒントセクションに対応するコンテンツの部分（データ）に最後にアクセスされた日時を示す。タイムスタンプは、アプリケーションプログラム１４１またはオペレーティングシステムにより設定される。
【０１０９】
例えば、アプリケーションプログラム１４１は、予め定めた値をバージョンナンバに設定する。
【０１１０】
例えば、アプリケーションプログラム１４１は、ステップＳ１２の処理で特定された、コンテンツの再生における時刻であるコンテンツ上の位置から、コンテンツのデータの先頭からその位置までのデータ量を求める。アプリケーションプログラム１４１は、そのデータ量をヒントオフセットとする。また、例えば、アプリケーションプログラム１４１は、予め定めた値をヒントサイズとする。さらに、例えば、アプリケーションプログラム１４１は、インデックスに対応することを示す所定の値をリージョンフラッグスとする。
【０１１１】
さらにまた、アプリケーションプログラム１４１は、予め定めた値をヒントプライオリティに設定する。例えば、アプリケーションプログラム１４１は、コンテンツの最初のインデックスについては０、その他のインデックスについては１である値をヒントプライオリティに設定する。アプリケーションプログラム１４１は、最後にアクセスされた日時をタイムスタンプとする。
【０１１２】
また、アプリケーションプログラム１４１は、ヒントセクションの数にヒントサイズを掛け算して得られた値をヒントセクションレングスとする。
【０１１３】
アプリケーションプログラム１４１は、このように生成したバージョンナンバ、ヒントセクションレングス、ヒントオフセット、ヒントサイズ、リージョンフラッグス、ヒントプライオリティ、およびタイムスタンプを所定の順序で配置することによりヒント情報を生成する。
【０１１４】
ステップＳ１４において、アプリケーションプログラム１４１は、ストレージマネージャ１１４を介して、HSM１１３のマイグレーションファイルシステム１６４に記録されているコンテンツの拡張属性に、ヒント情報を格納させる。
【０１１５】
ステップＳ１５において、アプリケーションプログラム１４１は、コンテンツマネージャ１４２に問い合わせた結果を基に、コンテンツデータベース１６１に盛り上がりシーンを示す情報があるか否かを判定する。ステップＳ１５において、盛り上がりシーンを示す情報があると判定された場合、ステップＳ１６に進み、アプリケーションプログラム１４１は、コンテンツマネージャ１４２を介して、コンテンツデータベース１６１から盛り上がりシーンを示す情報を取得する。
【０１１６】
ステップＳ１７において、アプリケーションプログラム１４１は、盛り上がりシーンを示す情報を基に、コンテンツ上の盛り上がりシーンの先頭の位置を特定する。例えば、アプリケーションプログラム１４１は、盛り上がりシーンを示す情報を基に、コンテンツの再生における時刻で決まる、盛り上がりシーンの先頭の位置を特定する。
【０１１７】
ステップＳ１８において、アプリケーションプログラム１４１は、盛り上がりシーンの先頭の位置をヒントセクションの開始位置とするヒント情報を生成する。ステップＳ１９において、アプリケーションプログラム１４１は、ストレージマネージャ１１４を介して、HSM１１３のマイグレーションファイルシステム１６４に記録されているコンテンツの拡張属性に、ヒント情報を格納させ、処理は終了する。
【０１１８】
ステップＳ１５において、盛り上がりシーンを示す情報がないと判定された場合、ステップＳ１６乃至ステップＳ１９の処理はスキップされて、処理は終了する。
【０１１９】
このように、インデックス情報または盛り上がりシーンを示す情報を基に、ヒント情報が生成されて、記録される。
【０１２０】
このように記録されたヒント情報を参照して、段階的なマイグレーションの処理を行うことができる。
【０１２１】
なお、ヒント情報には、使用者からの操作に応じた値が直接設定されるようにしてもよく、また、アプリケーションプログラム１４１に限らず、オペレーティングシステムなどの他のプログラムによって書き込まれるようにしてもよい。
【０１２２】
次に、図１１乃至図１３のフローチャートを参照して、マイグレーションの処理を説明する。ステップＳ３１において、ストレージマネージャ１１４は、HDD１１６に記録されているファイルの走査を開始するディレクトリであるアンカーポイントを設定する。なお、マイグレーションの処理を開始して、最初に実行されるステップＳ３１の処理において、ストレージマネージャ１１４は、予め定めたディレクトリ（例えば、ルートディレクトリなど）であるアンカーポイントを設定する。後述するステップＳ４１、ステップＳ５３、またはステップＳ６０の処理において、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満となったと判定されて、手続きがステップＳ３１に戻った場合、ストレージマネージャ１１４は、それまでの処理で注目していたディレクトリ、またはそれまでの処理の対象となったファイルが格納されているディレクトリを、ファイルの走査を開始するディレクトリとするようにアンカーポイントを設定する。
【０１２３】
ストレージマネージャ１１４は、ステップＳ３２およびステップＳ６５において、設定されたアンカーポイントについてステップＳ３３乃至ステップＳ６４の処理を実行するようにスペースガードの処理のループ制御を実行する。
【０１２４】
ステップＳ３３において、ストレージマネージャ１１４は、ウェイト処理を実行して、予め定めた期間だけ待機する。ステップＳ３４において、ストレージマネージャ１１４は、HSM１１３からHDD１１６に記録されているキャッシュファイルのデータ量を取得して、HDD１１６に記録されているキャッシュファイルのデータ量が上限閾値を超えているか否かを判定する。ステップＳ３４において、データ量が上限閾値を超えてないと判定された場合、HDD１１６に記録されているキャッシュファイルのデータ量を削減する必要はないので、ステップＳ３３に戻り、所定の期間だけ待機して、HDD１１６に記録されているキャッシュファイルのデータ量が上限閾値を超えているか否かの判定の処理が繰り返される。
【０１２５】
ステップＳ３４において、データ量が上限閾値を超えていると判定された場合、ステップＳ３５に進み、ストレージマネージャ１１４は、ステップＳ３１の処理で設定されたアンカーポイントに移動する。すなわち、ステップＳ３５において、ストレージマネージャ１１４は、アンカーポイントであるディレクトリを示すパスを設定するなどして、アンカーポイントであるディレクトリに移動する（ディレクトリを特定する）。
【０１２６】
ステップＳ３６において、ストレージマネージャ１１４は、マイグレーションレベルｎに予め定めた初期値を設定する。例えば、ステップＳ３６において、ストレージマネージャ１１４は、マイグレーションレベルｎに初期値である８を設定する。詳細は後述するが、マイグレーションレベルｎは、コンテンツの部分のデータをキャッシュするか否かを決める基準である。
【０１２７】
なお、ストレージマネージャ１１４は、ステップＳ４０として後述するスタブファイル状態のキャッシュファイルの生成の処理で用いたマイグレーションレベルｎを記憶しておいて、ステップＳ３６において、その前回のスタブファイル状態のキャッシュファイルの生成の処理で用いたマイグレーションレベルｎを初期値として設定するようにしてもよい。
【０１２８】
ストレージマネージャ１１４は、ステップＳ３７およびステップＳ４４において、アンカーポイントから順にキャッシュファイルを走査し、走査したキャッシュファイルを基に、ステップＳ３９乃至ステップＳ４３の処理を実行するように対象ディレクトリ操作のループ制御の処理を実行する。
【０１２９】
ステップＳ３８において、ストレージマネージャ１１４は、オペレーティングシステムのファイルシステムから、ディレクトリの構造およびそれぞれのディレクトリに格納されているファイルのファイル名を取得する。そして、ステップＳ３８において、ストレージマネージャ１１４は、取得したディレクトリの構造およびファイル名を基に、現在注目しているディレクトリから、処理の対象となるスタブファイル状態のキャッシュファイルを特定する。例えば、ステップＳ３７およびステップＳ４４の対象ディレクトリ操作のループ制御の処理が実行されて、最初に実行されるステップＳ３８の処理において、アンカーポイントとして設定されたディレクトリを基に、処理の対象となるスタブファイル状態のキャッシュファイルが特定される。後述するステップＳ４３において、次のディレクトリに移動した後に実行されるステップＳ３８の処理において、移動したディレクトリを基に、処理の対象となるスタブファイル状態のキャッシュファイルが特定される。
【０１３０】
ステップＳ３９において、ストレージマネージャ１１４は、特定されたキャッシュファイルが近日中にアクセスされる可能性が高いか否かを判定し、特定されたキャッシュファイルが近日中にアクセスされる可能性が高くないと判定された場合、ステップＳ４０に進み、特定されたキャッシュファイルに、スタブファイル状態のキャッシュファイルの生成の処理を適用して、キャッシュファイルからコンテンツの所定の部分のデータを削除する。キャッシュファイルからコンテンツの所定の部分のデータが削除されると、HDD１１６に記録されているデータのデータ量が削減されることになる。なお、スタブファイル状態のキャッシュファイルの生成の処理の詳細は図１７のフローチャートを参照して後述する。ステップＳ４０の処理の後、手続きは、ステップＳ４１に進む。
【０１３１】
例えば、ステップＳ３９において、ストレージマネージャ１１４は、コンテンツデータベース１６１のアクセス履歴テーブルから、特定されたキャッシュファイルについてのアクセスの履歴に関する情報を読み出して、読み出されたアクセスの履歴に関する情報に基づいて、特定されたキャッシュファイルが近日中にアクセスされる可能性が高いか否かを判定する。より具体的には、一度アクセスされたデータは、再度、アクセスされる可能性が高いので、ストレージマネージャ１１４は、最終アクセス日時で示されるコンテンツのファイルが最後にアクセスされた日時から現在の日時までの期間が、所定の閾値より短い場合、特定されたキャッシュファイルが近日中にアクセスされる可能性が高いと判定し、最後にアクセスされた日時から現在の日時までの期間が、所定の閾値以上である場合、特定されたキャッシュファイルが近日中にアクセスされる可能性が高くないと判定する。
【０１３２】
図１４は、コンテンツデータベース１６１に記録されているアクセス履歴テーブルの例を示す図である。図１４には、アクセス履歴テーブルに格納されているアクセスの履歴に関する情報のうち、１つのコンテンツについてのアクセスの履歴に関する情報が示されている。
【０１３３】
図１４において、左側の縦一列は、フィールドの名称を示し、左側から２番目の縦一列は、それぞれのフィールドの情報のタイプを示す。また、左側から３番目の縦一列は、それぞれのフィールドが検索のキーとして使用されるか否かを示し、左側から４番目の縦一列は、それぞれのフィールドのデフォルトを示す。また、右側の縦一列は、それぞれのフィールドについての備考を示す。
【０１３４】
アクセス履歴テーブルには、ファイルパス、作成日時、最終更新日、最終アクセス日、およびファイルサイズのフィールドが設けられる。ファイルパスのフィールドは、それぞれコンテンツのデータが格納されているファイルへのパスが示されるパス名を格納する。作成日時のフィールドは、コンテンツのファイルが作成された日時を示す情報を格納する。最終更新日のフィールドは、コンテンツのファイルが最後に更新された日時を示す情報を格納する。また、最終アクセス日のフィールドは、コンテンツのファイルが最後にアクセスされた日時を示す情報を格納する。ファイルサイズのフィールドは、それぞれコンテンツのデータのデータ量を示す情報を格納する。
【０１３５】
ファイルパスのフィールドに格納されるパス名のタイプは、文字列とされ、作成日時のフィールドに格納される情報のタイプは、日時とされ、最終更新日のフィールドに格納される情報のタイプは、日時とされ、最終アクセス日のフィールドに格納される情報のタイプは、日時とされる。ファイルサイズのフィールドに格納される情報のタイプは、符号なし整数とされる。
【０１３６】
ファイルパスのフィールドに格納されるパス名が、主キーとされ、ファイルを特定するIDとして用いられる。
【０１３７】
作成日時のフィールドに格納される情報のデフォルトは、作成日時とされ、作成日時のフィールドに格納される情報は、ファイルの作成時にアクセス履歴テーブルに記録される。最終更新日のフィールドに格納される情報のデフォルトは、最終更新日時とされ、最終更新日のフィールドに格納される情報は、ファイルが更新された場合、アクセス履歴テーブルに記録される（更新される）。
【０１３８】
最終アクセス日のフィールドに格納される情報のデフォルトは、最終アクセス日時とされ、最終アクセス日のフィールドに格納される情報は、ファイル（のデータ）がアクセスされた場合、アクセス履歴テーブルに記録される（更新される）。ファイルサイズのフィールドに格納される情報のデフォルトは、ファイルサイズとされる。
【０１３９】
例えば、ステップＳ３９において、ストレージマネージャ１１４は、コンテンツデータベース１６１のアクセス履歴テーブルから、特定されたキャッシュファイルについての履歴情報であって、最終アクセス日のフィールドに格納される情報を読み出して、コンテンツのファイルが最後にアクセスされた日時を示す情報に基づいて、特定されたキャッシュファイルが近日中にアクセスされる可能性が高いか否かを判定する。
【０１４０】
ステップＳ３９において、特定されたキャッシュファイルが近日中にアクセスされる可能性が高いと判定された場合、ステップＳ４０の処理はスキップされ、手続きは、ステップＳ４１に進む。
【０１４１】
ステップＳ４１において、ストレージマネージャ１１４は、HSM１１３からHDD１１６に記録されているキャッシュファイルのデータ量を取得して、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満となったか否かを判定し、データ量が下限閾値未満となっていないと判定された場合、さらにキャッシュファイルのデータ量を削減する必要があるので、ステップＳ４２に進む。なお、下限閾値は、上限閾値より小さい値とされる。
【０１４２】
ステップＳ４２において、ストレージマネージャ１１４は、現在、注目しているディレクトリについて総てのキャッシュファイルを特定したか否かを判定し、総てのキャッシュファイルを特定したと判定された場合、ステップＳ４３に進み、走査手順に応じて、走査の対象となる次のディレクトリに移動する。
【０１４３】
ステップＳ４２において、現在、注目しているディレクトリについて総てのキャッシュファイルを特定していないと判定された場合、データを削除できる可能性のあるキャッシュファイルがまだあるので、ステップＳ４３の処理はスキップされ、ステップＳ４４に進む。
【０１４４】
ステップＳ４１において、データ量が下限閾値未満となったと判定された場合、キャッシュファイルのデータ量をこれ以上削減する必要はないので、ステップＳ３１に戻り、上述した処理を繰り返す。
【０１４５】
ステップＳ３７およびステップＳ４４の処理によって、HDD１１６に記録されている総てのキャッシュファイルが走査され、走査されたキャッシュファイルについて、ステップＳ３９およびステップＳ４０の処理が適用された場合、手続きは、ステップＳ３７およびステップＳ４４のループの処理を抜けて、ステップＳ４５に進む。
【０１４６】
ここで、図１５および図１６を参照して、ステップＳ３８およびステップＳ４３の処理における、ディレクトリの走査およびキャッシュファイルの特定の具体例について説明する。例えば、ディレクトリの走査およびキャッシュファイルの検索（特定）は、行きがけ順（Pre-order traversal）、通りがけ順（in-order traversal）、または帰りがけ順（post-order traversal）などの方式とすることができる。
【０１４７】
図１５は、ディレクトリの構成の例を示す図である。図１５の最も上の”／”で示されるディレクトリは、ルートディレクトリである。なお、ルートディレクトリとは、キャッシュファイルが格納されるディレクトリのうち、最も上位のディレクトリをいう。
【０１４８】
ルートディレクトリには、”ａａａ／”で示されるディレクトリ、”ｂｂｂ／”で示されるディレクトリ、および”ｃｃｃ／”で示されるディレクトリが配置される。また、ルートディレクトリは、”Ａ”であるファイルおよび”Ｂ”であるファイルを格納する。
【０１４９】
”ａａａ／”で示されるディレクトリには、”ｄｄｄ／”で示されるディレクトリ、および”ｅｅｅ／”で示されるディレクトリが配置される。”ａａａ／”で示されるディレクトリは、”Ｃ”であるファイルを格納する。
【０１５０】
”ｂｂｂ／”で示されるディレクトリは、”Ｄ”であるファイルを格納する。”ｃｃｃ／”で示されるディレクトリは、ファイルを格納しない。
【０１５１】
”ｄｄｄ／”で示されるディレクトリは、”Ｅ”であるファイルを格納する。”ｅｅｅ／”で示されるディレクトリは、ファイルを格納しない。
【０１５２】
図１６は、行きがけ順の走査の例を示す図である。行きがけ順の方式においては、現在注目しているディレクトリに格納されているファイルを検索（特定）してから、注目しているディレクトリの子供のディレクトリを前順に走査する。
【０１５３】
すなわち、行きがけ順の方式においては、まず、現在注目しているディレクトリに格納されているファイルを検索（特定）する。次に、注目しているディレクトリの子供のディレクトリを前順に注目する。注目された子供のディレクトリについて、再帰的に、行きがけ順の方式で、ファイルが検索され、さらにその子供のディレクトリが前順で注目される。
【０１５４】
従って、図１６で示されるように、ルートディレクトリに最初に注目すると、ルートディレクトリの”Ａ”であるファイルおよび”Ｂ”であるファイルが検索される。次に、ルートディレクトリの最初の子供のディレクトリである”ａａａ／”で示されるディレクトリが注目（走査）され、”ａａａ／”で示されるディレクトリに格納されている”Ｃ”であるファイルが検索される。
【０１５５】
次に、”ａａａ／”で示されるディレクトリの最初の子供のディレクトリである”ｄｄｄ／”で示されるディレクトリが注目（走査）され、”ｄｄｄ／”で示されるディレクトリに格納されている”Ｅ”であるファイルが検索される。そして、”ａａａ／”で示されるディレクトリの２番目（最後）の子供のディレクトリである”ｅｅｅ／”で示されるディレクトリが注目される。”ａａａ／”で示されるディレクトリの総ての子供のディレクトリが注目されたので、次に、ルートディレクトリの２番目の子供のディレクトリである”ｂｂｂ／”で示されるディレクトリが注目される。そして、”ｂｂｂ／”で示されるディレクトリに格納されている”Ｄ”であるファイルが検索される。
【０１５６】
さらに、ルートディレクトリの最後の子供のディレクトリである”ｃｃｃ／”で示されるディレクトリが注目される。”ｃｃｃ／”で示されるディレクトリにはファイルが格納されていない。ルートディレクトリの総ての子供のディレクトリが注目されたので、処理は終了する。
【０１５７】
このように、行きがけ順の方式においては、”Ａ”であるファイル、”Ｂ”であるファイル、”Ｃ”であるファイル、”Ｅ”であるファイル、”Ｄ”であるファイルが順に検索（特定）されることになる。
【０１５８】
通りがけ順の方式においては、現在注目しているディレクトリの子供のディレクトリの中を間順に走査し、走査の過程で注目しているディレクトリに格納されているファイルが検索（特定）される。
【０１５９】
すなわち、通りがけ順の方式においては、ルートディレクトリの最初の子供のディレクトリである”ａａａ／”で示されるディレクトリが注目され、さらに、”ａａａ／”で示されるディレクトリの最初の子供のディレクトリである”ｄｄｄ／”で示されるディレクトリが注目される。”ｄｄｄ／”で示されるディレクトリには、子供のディレクトリがないので、”ｄｄｄ／”で示されるディレクトリに格納されている”Ｅ”であるファイルが検索される。
【０１６０】
”ａａａ／”で示されるディレクトリに戻り、”ａａａ／”で示されるディレクトリに格納されている”Ｃ”であるファイルが検索される。”ａａａ／”で示されるディレクトリの最後の子供のディレクトリである”ｅｅｅ／”で示されるディレクトリが注目される。”ｅｅｅ／”で示されるディレクトリにはファイルが格納されていないので、ルートディレクトリに戻る。
【０１６１】
ここで、ルートディレクトリの”Ａ”であるファイルおよび”Ｂ”であるファイルが検索される。
【０１６２】
次に、ルートディレクトリの２番目の子供のディレクトリである”ｂｂｂ／”で示されるディレクトリが注目され、”ｂｂｂ／”で示されるディレクトリには、子供のディレクトリがないので、”ｂｂｂ／”で示されるディレクトリに格納されている”Ｄ”であるファイルが検索される。
【０１６３】
そして、ルートディレクトリの最後の子供のディレクトリである”ｃｃｃ／”で示されるディレクトリが注目される。ルートディレクトリの総ての子供のディレクトリが注目されたので、処理は終了する。
【０１６４】
このように、通りがけ順の方式においては、”Ｅ”であるファイル、”Ｃ”であるファイル、”Ａ”であるファイル、”Ｂ”であるファイル、”Ｄ”であるファイルが順に検索（特定）される。
【０１６５】
また、帰りがけ順の方式においては、現在注目しているディレクトリの子供のディレクトリの中を後順に走査した後に、注目しているディレクトリに格納されているファイルが検索（特定）される。
【０１６６】
すなわち、帰りがけ順の方式においては、ルートディレクトリの最初の子供のディレクトリである”ａａａ／”で示されるディレクトリが注目され、さらに、”ａａａ／”で示されるディレクトリの最初の子供のディレクトリである”ｄｄｄ／”で示されるディレクトリが注目される。”ｄｄｄ／”で示されるディレクトリには、子供のディレクトリがないので、”ｄｄｄ／”で示されるディレクトリに格納されている”Ｅ”であるファイルが検索される。
【０１６７】
”ａａａ／”で示されるディレクトリに戻り、”ａａａ／”で示されるディレクトリの最後の子供のディレクトリである”ｅｅｅ／”で示されるディレクトリが注目される。”ｅｅｅ／”で示されるディレクトリにはファイルが格納されていないので、”ａａａ／”で示されるディレクトリに戻り、”ａａａ／”で示されるディレクトリに格納されている”Ｃ”であるファイルが検索される。
【０１６８】
”ａａａ／”で示されるディレクトリの子供のディレクトリの総てが注目されて、”ａａａ／”で示されるディレクトリに格納されている”Ｃ”であるファイルが検索されたので、次に、ルートディレクトリの２番目の子供のディレクトリである”ｂｂｂ／”で示されるディレクトリが注目される。”ｂｂｂ／”で示されるディレクトリには、子供のディレクトリがないので、”ｂｂｂ／”で示されるディレクトリに格納されている”Ｄ”であるファイルが検索される。
【０１６９】
ルートディレクトリの最後の子供のディレクトリである”ｃｃｃ／”で示されるディレクトリが注目される。”ｃｃｃ／”で示されるディレクトリには、子供のディレクトリがなく、ファイルも格納されていないので、ルートディレクトリの”Ａ”であるファイルおよび”Ｂ”であるファイルが検索され、処理は終了する。
【０１７０】
このように、帰りがけ順の方式においては、”Ｅ”であるファイル、”Ｃ”であるファイル、”Ｄ”であるファイル、”Ａ”であるファイル、”Ｂ”であるファイルが順に検索（特定）される。
【０１７１】
以上のように、ステップＳ３７およびステップＳ４４の処理によって、HDD１１６に記録されている総てのキャッシュファイルが走査され（順に検索され）、走査（検索）されたキャッシュファイルについて、ステップＳ３９およびステップＳ４０の処理が適用される。
【０１７２】
ステップＳ４５において、ストレージマネージャ１１４は、マイグレーションレベルｎから１を引き算し、その結果を、マイグレーションレベルｎに設定する。すなわち、マイグレーションレベルｎは、１だけ小さくされる。
【０１７３】
ステップＳ４６において、ストレージマネージャ１１４は、マイグレーションレベルｎが０未満であるか否かを判定する。ステップＳ４６において、マイグレーションレベルｎが０未満でないと判定された場合、ステップＳ３７に戻り、前回の処理に比較して１小さいマイグレーションレベルｎについて、ステップＳ３７乃至ステップＳ４４の処理が繰り返される。
【０１７４】
すなわち、所定のマイグレーションレベルｎを基に、HDD１１６に記録されているキャッシュファイルのデータが削除（トランケート）されても、まだ、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満となっていない場合、前回の処理に比較して１小さいマイグレーションレベルｎを基に、さらにキャッシュファイルからデータがトランケートされる。ここで、トランケートの処理は、キャッシュファイルの部分のデータ、またはキャッシュファイルの全部のデータを１次ストレージから削除する処理である。
【０１７５】
このように、例えば、HDD１１６に記録されている総てのキャッシュファイルが走査され、初期値としての８であるマイグレーションレベルｎを基に、走査されたキャッシュファイルからデータが削除（トランケート）される。８であるマイグレーションレベルｎを基に、走査されたキャッシュファイルからデータが削除されても、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満とならない場合、さらに、HDD１１６に記録されている総てのキャッシュファイルが走査され、７であるマイグレーションレベルｎを基に、走査されたキャッシュファイルからデータがトランケートされる。同様に、７であるマイグレーションレベルｎを基に、走査されたキャッシュファイルからデータが削除されても、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満とならない場合、さらにまた、HDD１１６に記録されている総てのキャッシュファイルが走査され、６であるマイグレーションレベルｎを基に、走査されたキャッシュファイルからデータがトランケートされる。
【０１７６】
以上のように、走査されたキャッシュファイルからデータが削除されても、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満とならない場合、HDD１１６に記録されている総てのキャッシュファイルが走査され、１づつ小さい値とされたマイグレーションレベルｎを基に、走査されたキャッシュファイルからデータがトランケートされる処理が繰り返される。
【０１７７】
ステップＳ４６において、マイグレーションレベルｎが０未満であると判定された場合、これ以上、スタブファイル状態のキャッシュファイルの生成の処理（トランケートの処理）でキャッシュファイルからデータを削除することができないので、ステップＳ４７に進み、ストレージマネージャ１１４は、ルートディレクトリに移動する。
【０１７８】
ストレージマネージャ１１４は、ステップＳ４８およびステップＳ５６において、ルートディレクトリから順にキャッシュファイルを走査して、走査したキャッシュファイルにステップＳ５０乃至ステップＳ５５の処理を適用するように対象ディレクトリ操作のループ制御の処理を実行する。
【０１７９】
ステップＳ４９において、ストレージマネージャ１１４は、処理の対象となるキャッシュファイルを特定する。例えば、ステップＳ４８およびステップＳ５６の対象ディレクトリ操作のループ制御の処理が実行されて、最初に実行されるステップＳ４９の処理において、ルートディレクトリを基に、処理の対象となるキャッシュファイルが特定される。後述するステップＳ５５において、次のディレクトリに移動した後に実行されるステップＳ４９の処理において、移動したディレクトリを基に、処理の対象となるキャッシュファイルが特定される。
【０１８０】
ステップＳ５０において、ストレージマネージャ１１４は、特定されたキャッシュファイルの拡張属性をマイグレーションファイルシステム１６４から取得する。
【０１８１】
ステップＳ５１において、ストレージマネージャ１１４は、拡張属性を基に、特定されたキャッシュファイルがマイグレーションの処理を中断したキャッシュファイルであるか否かを判定し、特定されたキャッシュファイルがマイグレーションの処理を中断したキャッシュファイルであると判定された場合、ステップＳ５２に進み、特定されたキャッシュファイルについてのマイグレーションの処理を再開させる。
【０１８２】
ステップＳ５１において、特定されたキャッシュファイルがマイグレーションの処理を中断したキャッシュファイルでないと判定された場合、ステップＳ５２の処理はスキップされて、手続きは、ステップＳ５３に進む。
【０１８３】
ステップＳ５３において、ストレージマネージャ１１４は、HSM１１３からHDD１１６に記録されているキャッシュファイルのデータ量を取得して、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満となったか否かを判定し、データ量が下限閾値未満となっていないと判定された場合、ステップＳ５４に進む。ステップＳ５４において、ストレージマネージャ１１４は、注目しているディレクトリについて、総てのキャッシュファイルを特定したか否かを判定し、注目しているディレクトリについて、総てのキャッシュファイルを特定したと判定された場合、ステップＳ５５に進み、走査手順に応じて、走査の対象となる次のディレクトリに移動する。
【０１８４】
ステップＳ５４において、注目しているディレクトリについて、総てのキャッシュファイルを特定していないと判定された場合、その注目しているディレクトリについて、キャッシュファイルがまだあるので、ステップＳ５５の処理はスキップされ、ステップＳ５６に進む。
【０１８５】
ステップＳ５３において、データ量が下限閾値未満となったと判定された場合、ステップＳ３１に戻り、上述した処理を繰り返す。
【０１８６】
ステップＳ４８およびステップＳ５６の処理によって、HDD１１６に記録されている総てのキャッシュファイルが走査され、走査されたキャッシュファイルについて、ステップＳ５０乃至ステップＳ５２の処理が適用された場合、手続きは、ステップＳ４８およびステップＳ５６のループの処理を抜けて、ステップＳ５７に進む。
【０１８７】
ステップＳ４９およびステップＳ５５の処理における、ディレクトリの走査およびキャッシュファイルの特定の処理は、例えば、ディレクトリの走査およびキャッシュファイルの検索（特定）は、行きがけ順、通りがけ順、または帰りがけ順などの方式とすることができる。
【０１８８】
ステップＳ５７において、ストレージマネージャ１１４は、ルートディレクトリに移動する。
【０１８９】
ストレージマネージャ１１４は、ステップＳ５８およびステップＳ６３において、ルートディレクトリから順にレギュラー状態のキャッシュファイルを走査して、走査したレギュラー状態のキャッシュファイルにマイグレーションの処理を適用するように対象ディレクトリ操作のループ制御の処理を実行する。
【０１９０】
ステップＳ５９において、ストレージマネージャ１１４は、注目しているディレクトリを基に、レギュラー状態のキャッシュファイルを特定して、特定されたレギュラー状態のキャッシュファイルにマイグレーションの処理を適用する。例えば、ステップＳ５８およびステップＳ６３の対象ディレクトリ操作のループ制御の処理が実行されて、最初に実行されるステップＳ５９の処理において、ルートディレクトリを基に、レギュラー状態のキャッシュファイルが特定され、特定されたレギュラー状態のキャッシュファイルにマイグレーションの処理が適用される。後述するステップＳ６２において、次のディレクトリに移動した後に実行されるステップＳ５９の処理において、移動したディレクトリを基に、レギュラー状態のキャッシュファイルが特定され、特定されたレギュラー状態のキャッシュファイルにマイグレーションの処理が適用される。
【０１９１】
ステップＳ６０において、ストレージマネージャ１１４は、HSM１１３からHDD１１６に記録されているキャッシュファイルのデータ量を取得して、HDD１１６に記録されているキャッシュファイルのデータ量が下限閾値未満となったか否かを判定し、データ量が下限閾値未満となっていないと判定された場合、ステップＳ６１に進む。ステップＳ６１において、ストレージマネージャ１１４は、注目しているディレクトリに、レギュラー状態のキャッシュファイルがあるか否かを判定し、注目しているディレクトリに、レギュラー状態のキャッシュファイルがないと判定された場合、ステップＳ６２に進み、走査手順に応じて、走査の対象となる次のディレクトリに移動する。
【０１９２】
ステップＳ６１において、注目しているディレクトリに、レギュラー状態のキャッシュファイルがあると判定された場合、ステップＳ６２の処理はスキップされ、ステップＳ６３に進む。
【０１９３】
ステップＳ６０において、データ量が下限閾値未満となったと判定された場合、ステップＳ３１に戻り、上述した処理を繰り返す。
【０１９４】
ステップＳ５８およびステップＳ６３の処理によって、ルートディレクトリから順にレギュラー状態のキャッシュファイルが走査され、走査されたレギュラー状態のキャッシュファイルの総てにマイグレーションの処理が適用された場合、手続きは、ステップＳ５８およびステップＳ６３のループの処理を抜けて、ステップＳ６４に進む。
【０１９５】
ステップＳ５９およびステップＳ６２の処理における、ディレクトリの走査およびマイグレーションの処理を適用するレギュラー状態のキャッシュファイルの特定の処理は、例えば、ディレクトリの走査およびキャッシュファイルの検索（特定）は、行きがけ順、通りがけ順、または帰りがけ順などの方式とすることができる。
【０１９６】
ステップＳ６４において、ストレージマネージャ１１４は、アプリケーションプログラム１４１にマイグレーションの対象となるファイルが存在しないことを通知する。例えば、アプリケーションプログラム１４１は、モニタ１２５に、マイグレーションの対象となるファイルが存在しないことを通知する画像を表示させる。
【０１９７】
ステップＳ６４の処理の後、ステップＳ３２およびステップＳ６５のスペースガードのループの処理を抜けて、処理は終了する。
【０１９８】
このように、HDD１１６からコンテンツのデータの部分を消去する場合、光ディスク１１９に全体のデータが記録されているコンテンツのデータの部分がHDD１１６から消去され、光ディスク１１９に全体のデータが記録されているコンテンツのデータの部分をHDD１１６から消去しても、HDD１１６に記録されているコンテンツのデータのデータ量が下限閾値未満にならないとき、コンテンツの全体のデータを光ディスク１１９に記録させた後HDD１１６からコンテンツのデータの部分を消去する処理が中断されたコンテンツについて、中断された処理が再開されるか、または、光ディスク１１９にデータが記録されていないコンテンツについて、コンテンツの全体のデータが光ディスク１１９に記録させられて、HDD１１６からコンテンツのデータの部分が消去される。
【０１９９】
平均的な処理時間が短いと想定される順序で、HDD１１６からコンテンツのデータの部分を消去する処理が実行されるので、１次ストレージであるHDD１１６に、より迅速に空き領域を作成することができるようになる。
【０２００】
図１７は、図１１のステップＳ４０に対応する、スタブファイル状態のキャッシュファイルの生成の処理を説明するフローチャートである。ステップＳ８１において、ストレージマネージャ１１４は、HSM１１３のマイグレーションファイルシステム１６４からコンテンツの拡張属性を読み出して、コンテンツの拡張属性にヒント情報があるか否かを判定する。ステップＳ８１において、ヒント情報があると判定された場合、ステップＳ８２に進み、ストレージマネージャ１１４は、HSM１１３のマイグレーションファイルシステム１６４からコンテンツの拡張属性を読み出して、読み出したコンテンツの拡張属性からヒント情報を抽出する。そして、ストレージマネージャ１１４は、ヒント情報のうちの、全てのヒントセクションのデータ量の合計を示すヒントセクションレングスを取得する。
【０２０１】
ステップＳ８３において、ストレージマネージャ１１４は、ヒントセクションレングスを１つのヒントセクションのデータ量で割り算することによりヒントセクションの数を算出する。
【０２０２】
ストレージマネージャ１１４は、ステップＳ８４およびステップＳ９２において、それぞれのヒントセクションについてステップＳ８５乃至ステップＳ９１の処理を実行し、ステップＳ８４乃至ステップＳ９２の処理をヒントセクションの数だけ繰り返すようにループ制御の処理を実行する。
【０２０３】
ステップＳ８５において、ストレージマネージャ１１４は、ヒント情報から、所定のヒントセクションの開始位置を示すヒントオフセットを取得する。ステップＳ８６において、ストレージマネージャ１１４は、ヒント情報から、そのヒントセクションのデータ量を示すヒントサイズを取得する。ステップＳ８７において、ストレージマネージャ１１４は、ヒント情報から、そのヒントセクションの優先順位を示すヒントプライオリティを取得する。
【０２０４】
ステップＳ８８において、ストレージマネージャ１１４は、ヒント情報が設定されていない領域を、HDD１１６に記録されているキャッシュファイル上から削除するホール領域に設定する。
【０２０５】
ステップＳ８９において、ストレージマネージャ１１４は、ヒントプライオリティが設定されているマイグレーションレベルｎ以下であるか否かを判定する。ステップＳ８９において、ヒントプライオリティが設定されているマイグレーションレベルｎ以下であると判定された場合、ステップＳ９０に進み、ストレージマネージャ１１４は、そのヒントプライオリティが設定されているヒントセクションをスタブ領域（キャッシュする領域）に設定する。
【０２０６】
一方、ステップＳ８９において、ヒントプライオリティが設定されているマイグレーションレベルｎ以下でない判定された場合、ステップＳ９１に進み、ストレージマネージャ１１４は、そのヒントプライオリティが設定されているヒントセクションをキャッシュファイル上から削除するホール領域に設定する。
【０２０７】
それぞれのヒントセクションについてステップＳ８５乃至ステップＳ９１の処理が実行され、それぞれのヒントセクションを包括する領域は、スタブ領域に設定されるか、またはホール領域に設定されることになる。なお、ヒント情報が設定されていない領域はホール領域に設定される。
【０２０８】
ステップＳ８４乃至ステップＳ９２の処理がヒントセクションの数だけ繰り返された後、手続きは、ステップＳ４４に進む。
【０２０９】
ステップＳ８１において、コンテンツの拡張属性にヒント情報がないと判定された場合、ステップＳ９３に進み、ストレージマネージャ１１４は、初期設定に従って、ファイル内部領域を設定する。すなわち、ステップＳ９３において、ストレージマネージャ１１４は、初期設定に従って、コンテンツの領域を、スタブ領域か、ホール領域かに設定し、ステップＳ９４に進む。
【０２１０】
ステップＳ９４において、ストレージマネージャ１１４は、ホール領域のデータがキャッシュファイルに記録されているか否か、すなわち、ホール領域のデータがキャッシュされているか否かを判定し、ホール領域のデータがキャッシュされていると判定された場合、ステップＳ９５に進み、HSM１１３に、ホール領域のデータをキャッシュファイルから削除（消去）させる。HSM１１３は、ストレージマネージャ１１４の制御に基づいて、HDD１１６のキャッシュファイルからホール領域のデータを消去させる。その後、手続きは、ステップＳ９６に進む。
【０２１１】
ステップＳ９４において、ホール領域のデータがキャッシュされていないと判定された場合、キャッシュファイルからデータを削除する処理を実行する必要がないので、ステップＳ９５の処理はスキップされ、手続きは、ステップＳ９６に進む。
【０２１２】
ステップＳ９６において、ストレージマネージャ１１４は、スタブ領域のデータがキャッシュファイルに記録されていないか否か、すなわち、スタブ領域のデータがキャッシュされていないか否かを判定し、スタブ領域のデータがキャッシュされていないと判定された場合、ステップＳ９７に進み、HSM１１３に、スタブ領域のデータをキャッシュファイルにリロードさせる。HSM１１３は、ストレージマネージャ１１４の制御に基づいて、コンテンツの全体のデータを記録している光ディスク１１９をドライブ１１８に装着させる。HSM１１３は、ドライブ１１８に、光ディスク１１９からコンテンツのデータを読み出させて、読み出したコンテンツのデータをHDD１１６のキャッシュファイルに格納することにより、スタブ領域のデータをリロードする。その後、手続きは、ステップＳ９８に進む。
【０２１３】
ステップＳ９６において、スタブ領域のデータがキャッシュされていると判定された場合、スタブ領域のデータをリロードする処理を実行する必要がないので、ステップＳ９７の処理はスキップされ、手続きは、ステップＳ９８に進む。
【０２１４】
ステップＳ９８において、ストレージマネージャ１１４は、HSM１１３のマイグレーションファイルシステム１６４に、キャッシュファイルからのデータの消去またはキャッシュファイルへのデータのリロードの結果に対応するように、コンテンツの拡張属性の領域情報を書き換えらせて、処理は終了する。
【０２１５】
以上のように、スタブファイル状態のキャッシュファイルが生成される。スタブファイル状態のキャッシュファイルに、マイグレーションレベルｎを基にした、スタブファイル状態のキャッシュファイルの生成の処理が適用されると、ｎ以下のヒントプライオリティのヒントセクションに対応した部分からなるスタブファイル状態のキャッシュファイルが生成されることになる。スタブファイル状態のキャッシュファイルに、より小さい値のマイグレーションレベルｎを基にした、スタブファイル状態のキャッシュファイルの生成の処理が適用されると、キャッシュファイルからスタブデータが消去されるので、キャッシュファイルのデータ量がより削減されることになる。
【０２１６】
次に、このように生成された、スタブファイル状態のキャッシュファイルを用いた、コンテンツのデータの読み出しの処理を説明する。
【０２１７】
図１８は、インデックス＿ｎからのデータの読み出しの処理を説明するフローチャートである。ステップＳ１１１において、ストレージマネージャ１１４のファイルＩ／Ｏマネージャ１６３は、データの読み出しを開始するインデックス＿ｎの指定を受け付ける。より詳細には、アプリケーションプログラム１４１は、使用者の操作に応じた、再生を開始するインデックスの選択を受け付ける。アプリケーションプログラム１４１は、使用者に選択され、再生を開始するインデックスを指定するデータをファイルＩ／Ｏマネージャ１６３に供給する。ファイルＩ／Ｏマネージャ１６３は、アプリケーションプログラム１４１からのデータを取得することにより、使用者により選択された、データの読み出しを開始するインデックス＿ｎの指定を受け付ける。ストレージマネージャ１１４は、インデックス＿ｎからの再生をHSM１１３に指示する。
【０２１８】
ステップＳ１１２において、ストレージマネージャ１１４は、HSM１１３のマイグレーションファイルシステム１６４に格納されている領域情報を基に、読み出しが指示されたコンテンツの全てのデータがキャッシュファイルとしてHDD１１６に記録されているか、すなわち、読み出しが指示されたコンテンツの全てのデータがHDD１１６にストアされているか否かを判定する。ステップＳ１１２において、全てのデータがHDD１１６にストアされていると判定された場合、ステップＳ１１３に進み、ストレージマネージャ１１４は、HSM１１３に、インデックス＿ｎに対応する位置からコンテンツのデータの読み出しを指示する。HSM１１３は、HDD１１６に、インデックス＿ｎに対応する位置から、キャッシュファイルのデータの読み出しを開始させる。ステップＳ１１３の処理の後、手続きは、ステップＳ１１９に進む。
【０２１９】
一方、ステップＳ１１２において、全てのデータがHDD１１６にストアされていないと判定された場合、ステップＳ１１４に進み、ストレージマネージャ１１４は、HSM１１３に、インデックス＿ｎに対応する位置からコンテンツのデータの読み出しを指示する。HSM１１３は、HDD１１６に、HDD１１６のキャッシュファイルのインデックス＿ｎに対応するスタブ領域の先頭位置からデータの読み出しを開始させる。
【０２２０】
これにより、コンテンツが即座に再生されることになる。
【０２２１】
ストレージマネージャ１１４は、HSM１１３に、光ディスク１１９からHDD１１６への該当するコンテンツのデータの読み出し要求であるリロードコマンドを発行する。
【０２２２】
ステップＳ１１５において、HSM１１３は、ストアデータベース１６６から、対応するキャッシュファイルIDとボリウムIDを参照する。ステップＳ１１６において、ストレージサーバ１６５は、ボリウムデータベース１６８を基に、ボリウムIDで特定される光ディスク１１９が格納されているディスクスロット１２１を特定する。すなわち、ストレージサーバ１６５は、メディアサーバ１６７に、ボリウムIDで特定される光ディスク１１９が格納されているディスクスロット１２１の特定を要求する。メディアサーバ１６７は、ボリウムデータベース１６８に、ジュークボックス１４５の各ディスクスロット１２１に格納されている光ディスク１１９を特定するボリウムIDのうち、ストレージサーバ１６５からの要求に含まれているボリウムIDと一致するボリウムIDを検索させる。ボリウムデータベース１６８が、ストレージサーバ１６５からの要求に含まれているボリウムIDで特定される光ディスク１１９が格納されているディスクスロット１２１を示す情報を出力してくるので、メディアサーバ１６７は、ディスクスロット１２１を示す情報をストレージサーバ１６５に供給する。これにより、ストレージサーバ１６５は、ボリウムIDで特定される光ディスク１１９が格納されているディスクスロット１２１を特定する。
【０２２３】
ステップＳ１１７において、ストレージサーバ１６５は、メディアサーバ１６７に、特定されたディスクスロット１２１に格納されている光ディスク１１９のドライブ１１８への装着を指示する。メディアサーバ１６７は、チェンジャドライバ１４３を介して、ジュークシステム１２０に、特定されたディスクスロット１２１に格納されている光ディスク１１９をドライブ１１８に装着させる。すなわち、ジュークシステム１２０の制御の基に、ジュークボックス１４５のピッカー１２２は、特定されたディスクスロット１２１から、光ディスク１１９を取り出して、搬送し、その光ディスク１１９をドライブ１１８に装着（マウント）させる。
【０２２４】
ステップＳ１１８において、リロードの処理が実行される。リロードの処理の詳細は図１９のフローチャートを参照して後述する。
【０２２５】
ステップＳ１１８の処理の後、手続きは、ステップＳ１１９に進む。
【０２２６】
ステップＳ１１９において、ストレージマネージャ１１４は、キャッシュファイルの最後までデータを読み出したか否かを判定し、キャッシュファイルの最後までデータを読み出していないと判定された場合、ステップＳ１１９に戻り、判定の処理を繰り返す。
【０２２７】
ステップＳ１１９において、キャッシュファイルの最後までデータを読み出したと判定された場合、処理は終了する。
【０２２８】
次に、図１９のフローチャートを参照して、図１８のステップＳ１１８のリロードの処理の詳細を説明する。ステップＳ１３１において、ストレージマネージャ１１４は、HSM１１３に、所定の位置を指定して、リロードの開始を指示する。HSM１１３のマイグレーションファイルシステム１６４は、リロードの開始位置を、現在、HDD１１６から読み出されているデータの位置の後の領域であって、最も近い領域の先頭とする。
【０２２９】
ステップＳ１３２において、HSM１１３のストレージサーバ１６５は、リロードを開始する。すなわち、ストレージサーバ１６５は、リロードの開始位置におけるデータを、光ディスク１１９が装着されたドライブ１１８から読み出させ、読み出したデータをキャッシュファイルの所定の領域に格納させるように、HDD１１６に記録させる。
【０２３０】
ステップＳ１３３において、マイグレーションファイルシステム１６４は、その領域がストアされているか否かを判定し、その領域がストアされていると判定された場合、ステップＳ１３４において、リロードの開始位置を、その領域の後のホール領域であって、最も近いホール領域の先頭に移動する。ステップＳ１３３において、その領域がストアされていないと判定された場合、ステップＳ１３４の処理はスキップされる。
【０２３１】
ステップＳ１３５において、HSM１１３のストレージサーバ１６５は、リロードを開始する。
【０２３２】
ステップＳ１３６において、マイグレーションファイルシステム１６４は、その領域のリロードが完了したか否かを判定し、その領域のリロードが完了していないと判定された場合、ステップＳ１３６に戻り、判定の処理を繰り返す。
【０２３３】
ステップＳ１３６において、その領域のリロードが完了したと判定された場合、ステップＳ１３７に進み、マイグレーションファイルシステム１６４は、リロードを完了した領域と隣接するスタブ領域とを結合させるように拡張属性を書き換える。
【０２３４】
ステップＳ１３８において、マイグレーションファイルシステム１６４は、キャッシュファイルの最後までリロードが完了したか否かを判定する。ステップＳ１３８において、キャッシュファイルの最後までリロードが完了したと判定された場合、ステップＳ１３９に進み、マイグレーションファイルシステム１６４は、コンテンツの全てのデータがHDD１１６に記録されたか、すなわち、コンテンツの全てのデータがストアされたか否かを判定する。
【０２３５】
ステップＳ１３９において、コンテンツの全てのデータがストアされていないと判定された場合、ステップＳ１４０に進み、マイグレーションファイルシステム１６４は、オートリロードモードであるか否かを判定する。ステップＳ１４０において、オートリロードモードであると判定された場合、ステップＳ１４１に進み、マイグレーションファイルシステム１６４は、リロードの開始位置を、キャッシュファイルの先頭に移動して、ステップＳ１３２に戻り、上述した処理を繰り返す。
【０２３６】
ステップＳ１３８において、キャッシュファイルの最後までリロードが完了していないと判定された場合、ステップＳ１３２に戻り、上述した処理を繰り返す。
【０２３７】
ステップＳ１３９において、コンテンツの全てのデータがストアされたと判定された場合、または、ステップＳ１４０において、オートリロードモードでないと判定された場合、処理は終了する。
【０２３８】
このように、HDD１１６のキャッシュファイルからコンテンツのデータが読み出されている間であって、予めキャッシュファイルに記録されていないデータの読み出しが実行される前に、ドライブ１１８に装着された光ディスク１１９からホール領域のデータが読み出されて、読み出されたデータがキャッシュファイルに格納される。ドライブ１１８は、コンテンツの再生に必要なデータの読み出し速度に比較して、より速い速度で光ディスク１１９からデータを読み出すので、コンテンツの再生が始まる前にHDD１１６のキャッシュファイルに格納されていなかったデータは、そのデータがコンテンツの再生のために読み出される前に、HDD１１６のキャッシュファイルに格納される。従って、コンテンツの再生のために必要なデータは、常に、HDD１１６のキャッシュファイルから読み出すことができるようになる。
【０２３９】
その結果、コンテンツのデータの読み出しが要求されると、待ち時間をほとんど生じさせることなく、迅速にコンテンツのデータを読み出すことができる。すなわち、例えば、音声または画像のコンテンツである場合、画像または音声が途切れることがなく、画像または音声を再生することができる。
【０２４０】
さらに、光ディスク１１９からコンテンツのデータを先読みして、HDD１１６に記録させるので、光ディスク１１９から読み出したデータを直接再生に用いる場合に比較して、ドライブ１１８をより早く開放することができる。すなわち、光ディスク１１９の高速読み出しなど、ドライブ１１８の能力をより十分に発揮させることができ、ドライブ１１８をより効率的に使用できるようになる。
【０２４１】
このように、スタブファイル状態のキャッシュファイルがHDD１１６に記録されているコンテンツの読み出しが要求されると、コンテンツの全体のデータを記録している光ディスク１１９からデータが読み出されて、読み出されたデータがキャッシュファイルに格納される。そして、キャッシュファイルに格納されているデータが読み出されて、コンテンツが再生される。
【０２４２】
以上のように、面倒な操作をすることなく、任意の部分を読み出そうとする場合の、待ち時間の発生をより少なくすることができる。
【０２４３】
キャッシュファイルに記録されていないデータを、光ディスク１１９から読み出して、光ディスク１１９から読み出したデータから直接コンテンツを再生するようにしてもよい。
【０２４４】
図２０は、この場合における、本発明の一実施の形態の記録再生システム１０１の他の構成を示すブロック図である。図４に示す場合と同様の部分には同一の符号を付してあり、その説明は省略する。
【０２４５】
HDD１１６は、記録しているストリーム（データ）をバッファ２０１またはセレクタ２０２に供給する。
【０２４６】
バッファ２０１は、半導体メモリまたはHDD１１６の一部の記録領域からなり、HDD１１６から供給されたストリーム（データ）を一時的に記憶して、記憶しているストリーム（データ）をドライブ１１８に供給する。
【０２４７】
セレクタ２０２は、HSM１１３の制御の基に、ドライブ１１８から出力されるデータまたはHDD１１６から出力されるデータのいずれか一方を選択する。バッファ１１５は、セレクタ２０２に選択された、ドライブ１１８から出力されるデータまたはHDD１１６から出力されるデータのいずれか一方を取得し、取得したデータを記憶する。
【０２４８】
なお、セレクタ２０２は、ハードウェアとして設けても良いが、ソフトウェア（処理）によりセレクタ２０２と等価の機能を実現するようにしてもよい。
【０２４９】
また、セレクタ２０２は、ストレージマネージャ１１４の制御の基に、ドライブ１１８から出力されるデータまたはHDD１１６から出力されるデータのいずれか一方を選択するようにしてもよい。
【０２５０】
キャッシュファイルに記録されていないデータを、光ディスク１１９から読み出して、光ディスク１１９から読み出したデータから直接コンテンツを再生する場合、HDD１１６のキャッシュファイルに格納されているデータは、HDD１１６から読み出され、HDD１１６のキャッシュファイルに格納されていないデータは、ドライブ１１８に装着された光ディスク１１９からドライブ１１８によって読み出される。
【０２５１】
すなわち、HDD１１６に予め記録されているスタブ領域のデータはHDD１１６からバッファ１１５に読み出されて、バッファ１１５に一時的に記憶される。HDD１１６に予め記録されていないホール領域のデータは光ディスク１１９から読み出されて、HDD１１６によって記録されずに、バッファ１１５に直接供給されて、バッファ１１５に一時的に記憶される。
【０２５２】
アプリケーションプログラム１４１は、バッファ１１５に一時的に記憶されたデータを読み出して、出力画像信号および音声信号を出力する。
【０２５３】
このようにすることで、HDD１１６へのアクセスをより少なくすることができる。また、HDD１１６の記録領域の使用量をより少なくすることができる。
【０２５４】
光ディスク１１９をドライブ１１８に装着（マウント）した後は、ホール領域を含めた、コンテンツ上の任意の部分のデータを迅速に読み出すことができる。
【０２５５】
なお、図４で示される記録再生システム１０１の処理および図２０で示される記録再生システム１０１の処理を適応的に切り替えるようにしてもよい。
【０２５６】
さらに、記録しているコンテンツをネットワークを介して送信するようにすることもできる。
【０２５７】
図２１は、記録しているコンテンツをネットワークを介して送信する、本発明の一実施の形態の記録再生システムのさらに他の構成を示すブロック図である。図４に示す場合と同様に部分には同一の符号を付してあり、その説明は省略する。
【０２５８】
この場合、記録再生システムは、サーバ３０１と、サーバ３０１にネットワーク３０２を介して接続されるクライアント３０３とからなる。
【０２５９】
サーバ３０１は、HSM１１３、ストレージマネージャ１１４、アプリケーションプログラム１４１、コンテンツマネージャ１４２、チェンジャドライバ１４３、ジュークボックス制御部１４４、ジュークボックス１４５、ストリーミングサーバ３２１、およびネットワークライブラリ３２２を含むように構成される。
【０２６０】
アプリケーションプログラム１４１は、ネットワーク３０２を介してクライアント３０３から送信されてきた画像データおよび音声データを含むストリームを受信し、受信したストリームをストレージマネージャ１６３に供給する。また、アプリケーションプログラム１４１は、ストレージマネージャ１６３から供給されたストリームを、ストリーミングサーバ３２１に送信させる。
【０２６１】
ストリーミングサーバ３２１は、ネットワークライブラリ３２２として記述されている手続きを基に、アプリケーションプログラム１４１から供給されたストリームを、ネットワーク３０２を介して、クライアント３０３に送信する。ストリーミングサーバ３２１は、クライアント３０３から送信されてきた、所定の位置からのコンテンツの再生を要求するデータ（ストリームの送信要求）が受信されると、要求された位置からコンテンツを再生するためのストリームをネットワーク３０２を介して、クライアント３０３に送信する。
【０２６２】
ネットワークライブラリ３２２には、ネットワーク３０２を介した、ストリームまたはデータを送信または受信する手続きが記述されている。
【０２６３】
ネットワーク３０２は、無線または有線を伝送媒体とする、ホームネットワークなどのLAN（Local Area Network）、インターネット、公衆回線、または専用回線などからなり、各種のデータ（ストリームを含む）を伝送する。
【０２６４】
クライアント３０３は、アプリケーションプログラム３４１、ストリーミングクライアント３４２、ネットワーククライアント３４３、ビデオ／オーディオデコーダ３４４、およびビデオオーディオエンコーダ３４５を含むように構成される。
【０２６５】
アプリケーションプログラム３４１は、使用者とのインターフェースの機能を有し、使用者からの指示を取得するか、使用者にクライアント３０３に関する各種の情報を通知する。アプリケーションプログラム１４１は、クライアント３０３全体を制御する。
【０２６６】
ストリーミングクライアント３４２は、ネットワーク３０２を介して、サーバ３０１から送信されてきたストリームを受信して、受信したストリームをビデオ／オーディオデコーダ３４４に供給する。ネットワーククライアント３４３は、ネットワーク３０２を介して、サーバ３０１と各種のデータを送受信する。ネットワーククライアント３４３は、ビデオオーディオエンコーダ３４５から供給されたストリームを、ネットワーク３０２を介して、サーバ３０１に送信する。また、ネットワーククライアント３４３は、所望の位置からのコンテンツの再生を要求するデータ（ストリームの送信要求）を、ネットワーク３０２を介して、サーバ３０１に送信する。
【０２６７】
ビデオ／オーディオデコーダ３４４は、ストリームを画像データおよび音声データに分離する。そして、ビデオ／オーディオデコーダ３４４は、符号化されている画像データおよび音声データを、いわゆるベースバンドの画像データおよび音声データに復号し、復号により得られたベースバンドの画像データおよび音声データを基にした、出力画像信号および音声信号（図示せず）をモニタ１２５に供給する。
【０２６８】
ビデオオーディオエンコーダ３４５は、ビデオカメラ１７１からの入力画像信号および音声信号を取得し、取得した入力画像信号および音声信号をベースバンドの画像データおよび音声データに変換する。ビデオオーディオエンコーダ３４５は、ベースバンドの画像データおよび音声データを符号化し、符号化された画像データおよび音声データを多重化することでストリームを生成する。ビデオオーディオエンコーダ３４５は、生成したストリームをネットワーククライアント３４３に供給する。
【０２６９】
このように、サーバ３０１は、ネットワーク３０２を介して、クライアント３０３に、所望の位置からコンテンツを再生するストリームを、迅速に送信することができる。
【０２７０】
以上のように、本発明によれば、面倒な操作をすることなく、任意の部分を読み出そうとする場合の、待ち時間の発生をより少なくすることができる。
【０２７１】
なお、１次ストレージとして、HDD１１６に代えて、半導体メモリなどの他の高速な記録媒体を用いるようにしもよく、また、２次ストレージとして、光ディスク１１９に代えて、磁気ディスクまたは磁気テープなどの１次ストレージに比較して記録容量当たりの価格が安い他の記録媒体を用いるようにしてもよい。
【０２７２】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２７３】
図２２は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU（Central Processing Unit）４０１は、ROM（Read Only Memory）４０２、記録部４０８、または記録部４０９に記憶されているプログラムに従って各種の処理を実行する。RAM（Random Access Memory）４０３には、CPU４０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU４０１、ROM４０２、およびRAM４０３は、バス４０４により相互に接続されている。
【０２７４】
なお、CPU４０１として、”Ｃｅｌｌ誕生”、日経エレクトロニクス、日経BP社、２００５年２月２８日、８９頁乃至１１７頁に記載されているＣｅｌｌを採用することができる。
【０２７５】
CPU４０１にはまた、バス４０４を介して入出力インターフェース４０５が接続されている。入出力インターフェース４０５には、キーボード、マウス、マイクロホンなどよりなる入力部４０６、ディスプレイ、スピーカなどよりなる出力部４０７が接続されている。CPU４０１は、入力部４０６から入力される指令に対応して各種の処理を実行する。そして、CPU４０１は、処理の結果を出力部４０７に出力する。
【０２７６】
入出力インターフェース４０５に接続されている記録部４０８は、例えばHDD１１６に対応し、CPU４０１が実行するプログラムや各種のデータを記録する。記録部４０９は、例えばジュークボックス１４５に対応し、各種のデータやCPU４０１が実行するプログラムを記録する。通信部４１０は、インターネットやLANなどのネットワーク３０２を介してクライアント３０３などの外部の装置と通信する。
【０２７７】
また、通信部４１０を介してプログラムを取得し、記録部４０８または記録部４０９に記憶してもよい。
【０２７８】
入出力インターフェース４０５に接続されているドライブ４１１は、磁気ディスク４２１、光ディスク４２２、光磁気ディスク４２３、或いは半導体メモリ４２４などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部４０８または記録部４０９に転送され、記録される。
【０２７９】
一連の処理をさせるプログラムが格納されている記録媒体は、図２２に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク４２１（フレキシブルディスクを含む）、光ディスク４２２（CD-ROM(Compact Disc-Read Only Memory)、ＤＶＤ(Digital Versatile Disc)を含む）、光磁気ディスク４２３（ＭＤ(Mini-Disc)（商標）を含む）、若しくは半導体メモリ４２４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM４０２や、記録部４０８に含まれるハードディスクまたは記録部４０９に含まれる光ディスク１１９などで構成される。
【０２８０】
なお、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインターフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２８１】
また、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２８２】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【図面の簡単な説明】
【０２８３】
【図１】従来の記録再生システムの構成を示すブロック図である。
【図２】従来の再生の処理を説明する図である。
【図３】従来の、マイグレーションの処理を適用するファイルの候補を決定する処理に要する時間を示す図である。
【図４】本発明の一実施の形態の記録再生システムの構成を示すブロック図である。
【図５】記録再生システムのより詳細な構成を示すブロック図である。
【図６】記録再生システムにおいて用いる情報を説明する図である。
【図７】HDDに記録されるキャッシュファイルを説明する図である。
【図８】スタブ状態のキャッシュファイルを説明する図である。
【図９】領域および拡張属性における領域情報について説明する図である。
【図１０】ヒント情報の書き込みの処理を説明するフローチャートである。
【図１１】マイグレーションの処理を説明するフローチャートである。
【図１２】マイグレーションの処理を説明するフローチャートである。
【図１３】マイグレーションの処理を説明するフローチャートである。
【図１４】アクセス履歴テーブルの例を示す図である。
【図１５】ディレクトリの構成の例を示す図である。
【図１６】行きがけ順の走査の例を示す図である。
【図１７】スタブファイル状態のキャッシュファイルの生成の処理を説明するフローチャートである。
【図１８】インデックス＿ｎからのデータの読み出しの処理を説明するフローチャートである。
【図１９】リロードの処理の詳細を説明するフローチャートである。
【図２０】本発明の一実施の形態の記録再生システムの他の構成を示すブロック図である。
【図２１】本発明の一実施の形態の記録再生システムのさらに他の構成を示すブロック図である。
【図２２】パーソナルコンピュータの構成の例を示すブロック図である。
【符号の説明】
【０２８４】
１０１  記録再生システム，  １１３  HSM，  １１４  ストレージマネージャ，  １１６  HDD，  １１８  ドライブ，  １１９  光ディスク，  １２０  ジュークシステム，  １２１  ディスクスロット，  １２２  ピッカー，  １４１  アプリケーションプログラム，  １４２  コンテンツマネージャ，  １４４  ジュークボックス制御部，  １４５  ジュークボックス，  １６１  コンテンツデータベース，  １６２  システムマネージャ，  １６３  ファイルＩ／Ｏマネージャ，  １６４  マイグレーションファイルシステム，  １６５  ストレージサーバ，  １６６  ストアデータベース，  １６７  メディアサーバ，  １６８  ボリウムデータベース，  ３０１  サーバ，  ３０２  ネットワーク，  ３０３  クライアント，  ３２１  ストリーミングサーバ，  ４０１  ＣＰＵ，  ４０２  ＲＯＭ，  ４０３  ＲＡＭ，  ４０８  記録部，  ４０９  記録部，  ４１０  通信部，  ４７１  磁気ディスク，  ４２２  光ディスク，  ４２３  光磁気ディスク，  ４２４  半導体メモリ
【図１】
2007011565.tif 000003
【図２】
2007011565.tif 000004
【図３】
2007011565.tif 000005
【図４】
2007011565.tif 000006
【図５】
2007011565.tif 000007
【図６】
2007011565.tif 000008
【図７】
2007011565.tif 000009
【図８】
2007011565.tif 000010
【図９】
2007011565.tif 000011
【図１０】
2007011565.tif 000012
【図１１】
2007011565.tif 000013
【図１２】
2007011565.tif 000014
【図１３】
2007011565.tif 000015
【図１４】
2007011565.tif 000016
【図１５】
2007011565.tif 000017
【図１６】
2007011565.tif 000018
【図１７】
2007011565.tif 000019
【図１８】
2007011565.tif 000020
【図１９】
2007011565.tif 000021
【図２０】
2007011565.tif 000022
【図２１】
2007011565.tif 000023
【図２２】
2007011565.tif 000024