(57)【特許請求の範囲】
【請求項１】
テープ媒体上に格納されたデータへのアクセスを管理するための方法であって、
目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取るステップと、
前記目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定するステップであって、前記物理的位置を判定するステップは、複数のユーザ・データ・セグメントをリストする順序付きリストの当該複数のユーザ・データ・セグメントの各々間の間隔を決定することを含む、前記判定するステップと、
前記順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が前記目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記再順序付きリストを生成するステップと、
前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始するステップと
を含み、
前記順序付きリストの前記複数のユーザ・データ・セグメントの各々間の間隔が、下記式によって求められ、
Ｄ＝｜Ｅ（Ａ）−Ｓ（Ｂ）｜／Ｖ
ここで、Ｄが、第１のユーザ・データ・セグメントＡの終端から第２のユーザ・データ・セグメントＢの先頭へのシークに対する時間的間隔であり、
Ｅ（Ａ）は、テープの始まりから前記第１のユーザ・データ・セグメントＡの終端までの長さであり、
Ｓ（Ｂ）は、前記テープの前記始まりから前記第２のユーザ・データ・セグメントＢの先頭までの長さであり、及び、
Ｖは、ユーザ・データ・セグメントをシークする為のテープ媒体の速度であり、
前記物理的位置を判定するステップが、前記計算された間隔（Ｄ）を用いて前記目的ユーザ・データ・セグメントの前記順序付きリストを処理して、前記複数のユーザ・データ・セグメントの各々の前記物理的位置を判定するステップを含む、
前記方法。
【請求項２】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される、請求項１に記載の方法。
【請求項３】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される、請求項１又は２に記載の方法。
【請求項４】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付けされたリストを生成するように動作可能な処理論理を含むホストによって処理される、請求項１〜３のいずれか一項に記載の方法。
【請求項５】
個々のユーザ・データ・セグメントが複数のデータ・レコードを含む、請求項１〜４のいずれか一項に記載の方法。
【請求項６】
前記目的テープ媒体上の前記複数のユーザ・データ・セグメントの前記物理的位置は、
テープ・ディレクトリ（ＴＤ）、
ファイルマーク・マップ、
高解像度テープ・ディレクトリ（ＨＲＴＤ）、又は
仮想ＨＲＴＤ
のうちの１つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される、請求項１〜５のいずれか一項に記載の方法。
【請求項７】
テープ媒体上に格納されたデータへのアクセスを管理するためのシステムであって、
プロセッサと、
前記プロセッサに結合されたデータ・バスと、
目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取り、
前記目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定し、前記物理的位置を判定することは、複数のユーザ・データ・セグメントをリストする順序付きリストの当該複数のユーザ・データ・セグメントの各々間の間隔を決定することを含み、
前記順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が前記目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記再順序付きリストを生成し、
前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始するための手段であって、
を含み、
前記順序付きリストの前記複数のユーザ・データ・セグメントの各々間の間隔が、下記式によって求められ、
Ｄ＝｜Ｅ（Ａ）−Ｓ（Ｂ）｜／Ｖ
ここで、Ｄが、第１のユーザ・データ・セグメントＡの終端から第２のユーザ・データ・セグメントＢの先頭へのシークに対する時間的間隔であり、
Ｅ（Ａ）は、テープの始まりから前記第１のユーザ・データ・セグメントＡの終端までの長さであり、
Ｓ（Ｂ）は、前記テープの前記始まりから前記第２のユーザ・データ・セグメントＢの先頭までの長さであり、及び、
Ｖは、ユーザ・データ・セグメントをシークする為のテープ媒体の速度であり、
前記物理的位置を判定することが、前記計算された間隔（Ｄ）を用いて前記目的ユーザ・データ・セグメントの前記順序付きリストを処理して、前記複数のユーザ・データ・セグメントの各々の前記物理的位置を判定することを含む、
前記システム。
【請求項８】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付きリストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される、請求項７に記載のシステム。
【請求項９】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付きリストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される、請求項７又は８に記載のシステム。
【請求項１０】
前記再順序付け動作は、前記複数のユーザ・データ・セグメントの前記再順序付きリストを生成するように動作可能な処理論理を含むホストによって処理される、請求項７〜９までのいずれか一項に記載のシステム。
【請求項１１】
個々のユーザ・データ・セグメントが複数のデータ・レコードを含む、請求項７〜１０のいずれか一項に記載のシステム。
【請求項１２】
前記目的テープ媒体上の前記複数のユーザ・データ・セグメントの前記物理的位置は、
テープ・ディレクトリ（ＴＤ）、
ファイルマーク・マップ、
高解像度テープ・ディレクトリ（ＨＲＴＤ）、又は
仮想ＨＲＴＤ
のうちの１つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される、請求項７〜１１のいずれか一項に記載のシステム。
【請求項１３】
コンピュータ・システムに、請求項１〜６のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープ媒体上に格納されたデータへのアクセスを管理することに関し、より具体的には、リスト内のユーザ・データ・セグメント（ＵＤＳ）を再順序付けして、ＵＤＳシーク時間を減らすことに関する。
【背景技術】
【０００２】
データ・ストレージのために用いられるテープ媒体の容量は、対応するフォーム・ファクタに応じて増大を続けている。例えば、リニア・テープ・オープン（ＬＴＯ）第５世代媒体の非圧縮の（ｎａｔｉｖｅ）容量は、１．５テラバイト（ＴＢ）である。テープ媒体の容量が増大するにつれて、その利用法は変化してきた。過去においては、テープ媒体は、主としてデータ・バックアップ及びアーカイビングのために用いられてきた。現在では、テープ媒体は、仮想テープ・サーバ（ＶＴＳ）、階層型ストレージ管理（ＨＳＭ）、及び長期ファイル・システム（ＬＴＦＳ）のようなファイル・システムのためにも用いられている。
【０００３】
テープ媒体のデータ転送速度も向上し続けてきた。一例として、先に言及したＬＴＯ第５世代テープ・ドライブの非圧縮の読み出し及び書き込み転送速度は、１４０ＭＢ／秒である。一部には、データ転送速度の向上は、データ圧縮手法の使用を通して達成される。しかしながら、ＬＴＯ第５世代テープ・ドライブ上の個々のレコードに対するデータのシーク時間は、平均すると１分である。長いシーク時間の１つの理由は、ＬＴＯ第５世代テープ媒体の８００メートルという長さと、対応するおよそ１０メートル／秒という再位置決め速度との組み合わせである。別の理由は、テープ・ドライブは典型的には、テープ媒体上における目的レコードの実際の物理的位置を確実には認識していないということである。
【０００４】
長いシーク時間は、一般にはテープ・ドライブの弱点の１つであると考えられるが、個別のレコード、又は、その物理的位置がテープ媒体上で連続的に配置されているレコードのシーケンスにアクセスするときには、それほどの不都合はない。しかしながら、長いシーク時間は、テープ媒体上に連続的に配置されていない目的レコードのシーケンスを読み出すときには、追加の待ち時間をもたらすことがある。これらの状況においては、テープ・ドライブは、目的レコードの位置を検索するためにテープ媒体を巻き取り、かつ巻き戻すことが要求される。その結果、連続的になっていないレコードのシーケンスを読み出すためにかかる時間の総量は、目的レコードの数が増加するに従って著しく増大することがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、テープ媒体上に格納されたデータにアクセスするときのシーク時間を減らすためにデータへのアクセスを管理する方法、システム及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
従って、本発明は、第１の態様において、テープ媒体上に格納されたデータへのアクセスを管理するための方法を提供し、この方法は、目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取ることと、目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定することと、複数のユーザ・データ・セグメントをリストする順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記順序付きリスト（再順序付けされたリスト）を生成することと、前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始することとを含む。
【０００７】
好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むホストによって処理される。好ましくは、個々のユーザ・データ・セグメントは、複数のデータ・レコードを含む。好ましくは、目的テープ媒体上のユーザ・データ・セグメントの物理的位置は、テープ・ディレクトリ（ＴＤ）、ファイルマーク・マップ、高解像度テープ・ディレクトリ（ＨＲＴＤ）、又は仮想ＨＲＴＤのうちの１つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される。
【０００８】
第２の態様においては、テープ媒体上に格納されたデータへのアクセスを管理するためのシステムが提供され、このシステムは、プロセッサと、プロセッサに結合されたデータ・バスと、目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取り、目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定し、複数のユーザ・データ・セグメントをリストする順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記順序付きリスト（再順序付けされたリスト）を生成し、前記目的テープ媒体からの前記複数のユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始するための手段とを含む。
【０００９】
好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ドライブによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むテープ・ライブラリによって処理される。好ましくは、再順序付け動作は、ユーザ・データ・セグメントの再順序付けされたリストを生成するように動作可能な処理論理を含むホストによって処理される。好ましくは、個々のユーザ・データ・セグメントは、複数のデータ・レコードを含む。好ましくは、目的テープ媒体上のユーザ・データ・セグメントの物理的位置は、テープ・ディレクトリ（ＴＤ）、ファイルマーク・マップ、高解像度テープ・ディレクトリ（ＨＲＴＤ）、又は仮想ＨＲＴＤのうちの１つに格納されたユーザ・データ・セグメント・テープ媒体位置データを処理することによって判定される。
【００１０】
第３の態様において、コンピュータ・システム内にロードされてそこで実行されたときに、第１の態様による方法の全てのステップをコンピュータ・システムに実行させる、コンピュータ可読媒体上に格納されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。
【００１１】
第３の態様のコンピュータ・プログラムは、コンピュータ・プログラム・コードを具体化するコンピュータ使用可能媒体の形態で提供することができ、このコンピュータ・プログラム・コードは、目的テープ媒体から複数のユーザ・データ・セグメントをリストする再順序付きリストを取得する要求を受け取り、目的テープ媒体上の複数のユーザ・データ・セグメントの各々の物理的位置を判定し、複数のユーザ・データ・セグメントをリストする順序付きリストに対して再順序付け動作を実行して、当該順序付きリスト中の前記複数のユーザ・データ・セグメントの順序が目的テープ媒体上のそれらの物理的位置に従って再順序付けされた前記順序付きリスト（再順序付けされたリスト）を生成し、目的テープ媒体からのユーザ・データ・セグメントの取得を、前記再順序付きリスト上のそれらの順序で開始するように構成された、コンピュータ実行可能命令を含む。第３の態様の好ましいコンピュータ・プログラム要素は、第１の態様の好ましい方法ステップの特徴に対応する。コンピュータ使用可能媒体は、遠隔位置にあるサーバからクライアント・コンピュータに配布することができるコンピュータ実行可能命令を含むことができる。好ましくは、コンピュータ実行可能命令は、サービス・プロバイダによって、オンデマンド方式で顧客に提供される。
【００１２】
従って、テープ媒体上に格納されたデータにアクセスするときのシーク時間を減らすためにリスト内のユーザ・データ・セグメント（ＵＤＳ）を再順序付けするための方法、システム及びコンピュータ使用可能媒体が開示される。種々の実施形態において、ユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュールは、テープ・ドライブ上、テープ・ライブラリ上、又はホスト内に実装される。これら及び他の実施形態において、ＵＤＳリスト再順序付けモジュールは、テープ媒体から取得する目的ユーザ・データ・セグメントの順序付きリストを受け取る。ＵＤＳリスト再順序付けモジュールは、次に、典型的には個々のレコード番号とテープ媒体上のその対応する物理的位置との間の関係に関してのテープ・ディレクトリ又は他の情報を含む、目的テープ媒体と対話する。次にテープ媒体は、テープ・ディレクトリ又は他の情報を用いてシーク動作を実行すること、そして次に対応するデータ・レコードを読み出すことが可能な、テープ・ドライブによって読み取られる。種々の実施形態において、テープ・ドライブは、どのテープ媒体が目的ユーザ・データ・セグメントを収容しているのかを認識しているテープ・ライブラリと共に実装される。
【００１３】
ＵＤＳリスト再順序付けモジュールは、次に、テープ・ディレクトリ又は他の情報を用いて目的ユーザ・データ・セグメントの順序付きリストを処理して、テープ媒体上のユーザ・データ・セグメントの各々の物理的位置を判定する。得られた物理的位置は、次にＵＤＳリスト再順序付けモジュールによって処理されて、ユーザ・データ・セグメントの順序が目的テープ媒体上のその物理的位置に従って再順序付けされたユーザ・データ・セグメントの再順序付けされたリストが生成される。ＵＤＳリスト再順序付けモジュールは、次にユーザ・データ・セグメントの再順序付けされたリストを、テープ媒体からユーザ・データ・セグメントを読み出すためのシーク、再位置決め及び読み出し動作を実行することが可能な、ホスト上に実装されたアプリケーションに提供する。
【００１４】
本発明の好ましい実施形態を、以下、例示のみを目的として、添付の図面を参照して説明する。
【図面の簡単な説明】
【００１５】
【図１】本発明を実装することができる、例示的なクライアント・コンピュータを示す。
【図２】テープ・ドライブ上に実装されたユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュールの略ブロック図である。
【図３】テープ・ライブラリ上に実装されたＵＤＳリスト再順序付けモジュールの略ブロック図である。
【図４】ホスト上に実装されたＵＤＳリスト再順序付けモジュールの略ブロック図である。
【図５】ＵＤＳリスト再順序付けモジュールの動作の一般化されたフローチャートである。
【発明を実施するための形態】
【００１６】
テープ媒体上に格納されたデータにアクセスするときのシーク時間を減らすためにユーザ・データ・セグメント（ＵＤＳ）リストを再順序付けするための方法、システム及びコンピュータ使用可能媒体が、開示される。当業者により認識されるように、本発明は、方法、システム又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の実施形態は、全体をハードウェアで実施することができ、全体をソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）で実施することができ、又は、ソフトウェアとハードウェアとを組み合わせた実施形態で実施することもできる。これらの種々の実施形態は全て、本明細書において、「回路」、「モジュール」又は「システム」と一般に呼ぶことができる。さらに、本発明は、媒体内に具体化されたコンピュータ使用可能プログラム・コードを有するコンピュータ使用可能ストレージ媒体上のコンピュータ・プログラム製品の形態をとることができる。
【００１７】
任意の適切なコンピュータ使用可能媒体又はコンピュータ可読媒体を利用することができる。コンピュータ使用可能媒体又はコンピュータ可読媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線又は半導体のシステム、装置又はデバイスとすることができるが、これらに限定されない。コンピュータ可読媒体のより具体的な例（非網羅的なリスト）は、以下のもの、即ち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能なプログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、ポータブル・コンパクト・ディスク型読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、又は磁気記憶装置を含む。本明細書の文脈において、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置若しくはデバイスによって、又はこれらと関連して用いるためのプログラムを収容し、格納し、伝達し、又は輸送することができる任意の媒体とすることができる。
【００１８】
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向プログラミング言語で記述することができる。しかしながら、本発明の動作を実行するためのコンピュータ・プログラム・コードは、Ｃプログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語でも記述することができる。プログラム・コードは、全体がユーザのコンピュータ上で実行される場合もあり、独立したソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は全体が遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続（例えば、インターネット・サービス・プロバイダを用いるインターネットを通じて）がなされる場合もある。
【００１９】
本発明の実施形態を、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して以下で説明する。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実装することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能データ処理装置のプロセッサに与えて機械を製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するための手段を作り出すようにすることができる。
【００２０】
これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能データ処理装置に特定の方式で機能するよう指示することができるコンピュータ可読メモリ内に格納して、それにより、そのコンピュータ可読メモリ内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令手段を含む製品を製造するようにさせることもできる。
【００２１】
コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置上にロードして、そのコンピュータ又は他のプログラム可能装置上で一連の動作ステップを実施させてコンピュータにより実装されるプロセスを生成し、それにより、そのコンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するためのステップを提供するようにすることもできる。
【００２２】
図１は、本発明をその中で利用することができる例示的なクライアント・コンピュータ１０２のブロック図である。クライアント・コンピュータ１０２は、システム・バス１０６に結合されたプロセッサ・ユニット１０４を含む。ディスプレイ１１０を制御するビデオ・アダプタ１０８もまた、システム・バス１０６に結合される。システム・バス１０６は、バス・ブリッジ１１２を介して、入力／出力（Ｉ／Ｏ）バス１１４に結合される。Ｉ／Ｏインターフェース１１６が、Ｉ／Ｏバス１１４に結合される。Ｉ／Ｏインターフェース１１６は、キーボード１１８、マウス１２０、コンパクト・ディスク型読み出し専用メモリ（ＣＤ−ＲＯＭ）ドライブ１２２、テープ・ドライブ１２４（ライブラリを提供するための１つ又は複数のテープを含むことができる）、及びフラッシュ・ドライブ・メモリ１２６を含む種々のＩ／Ｏデバイスと通信することができる。Ｉ／Ｏインターフェース１１６に接続されるポートの形態は、コンピュータ・アーキテクチャの分野の当業者に知られた任意の形態とすることができ、ユニバーサル・シリアル・バス（ＵＳＢ）ポートを含むがそれに限定されない。
【００２３】
クライアント・コンピュータ１０２は、システム・バス１０６に結合されたネットワーク・インターフェース１３０を用いて、ネットワーク１２８を介してサービス・プロバイダ・サーバ１５２と通信することができる。ネットワーク１２８は、インターネットのような外部ネットワーク、又はイーサネット・ネットワーク若しくは仮想プライベート・ネットワーク（ＶＰＮ）のような内部ネットワークとすることができる。
【００２４】
ハード・ドライブ・インターフェース１３２もまた、システム・バス１０６に結合される。ハード・ドライブ・インターフェース１３２は、ハード・ドライブ１３４とインターフェースする。好ましい実施形態においては、ハード・ドライブ１３４は、これもまたシステム・バス１０６に結合されるシステム・メモリ１３６にポピュレートする。システム・メモリ１３６にポピュレートするデータは、クライアント・コンピュータ１０２のオペレーティング・システム（ＯＳ）１３８及びソフトウェア・プログラム１４４を含む。
【００２５】
ＯＳ１３８は、ソフトウェア・プログラム１４４のようなリソースに対する透過的なユーザ・アクセスを提供するためのシェル１４０を含む。一般に、シェル１４０は、ユーザとオペレーティング・システムとの間のインタプリタ及びインターフェースを提供するプログラムである。より詳細には、シェル１４０は、コマンド・ライン・ユーザ・インターフェース内に入力されたコマンド又はファイルからのコマンドを実行する。従って、シェル１４０（ＵＮＩＸ（登録商標）においてはそう呼ばれる）は、Ｗｉｎｄｏｗｓ（登録商標）ではコマンド・プロセッサとも呼ばれ、一般に、オペレーティング・システム・ソフトウェア階層の最高レベルであり、コマンド・インタプリタとして機能する。シェルは、システム・プロンプトを与え、キーボード、マウス又は他のユーザ入力媒体によって入力されたコマンドを解釈し、解釈されたコマンドを処理のためにオペレーティング・システムの適切な下位レベル（例えば、カーネル１４２）に送る。シェル１４０は、一般に、テキスト・ベースの行指向ユーザ・インターフェースであるが、本発明は、画像、音声、ジェスチャ等のような他のユーザ・インターフェース・モードをサポートすることもできる。
【００２６】
図示されるように、ＯＳ１３８は、メモリ管理、プロセス及びタスク管理、ディスク管理、並びにマウス及びキーボード管理を含めて、ＯＳ１３８の他の部分及びソフトウェア・プログラム１４４によって要求される必須のサービスを含む、ＯＳ１３８のための下位レベルの機能を含むカーネル１４２も含む。
【００２７】
ソフトウェア・プログラム１４４は、ブラウザ１４６及び電子メール・クライアント１４８を含むことができる。ブラウザ１４６は、ワールド・ワイド・ウェブ（ＷＷＷ）クライアント（即ち、クライアント・コンピュータ１０２）が、ハイパーテキスト転送プロトコル（ＨＴＴＰ）メッセージングを用いてインターネットとの間でネットワーク・メッセージを送受信することを可能にするプログラム・モジュール及び命令を含み、これによりサービス・プロバイダ・サーバ１５２との通信を可能にする。ソフトウェア・プログラム１４４は、ユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュール１５０も含む。ＵＤＳリスト再順序付けモジュール１５０は、後述の図２−図４で説明されるプロセスを実装するためのコードを含む。一実施形態においては、クライアント・コンピュータ１０２は、ＵＤＳリスト再順序付けモジュール１５０を、サービス・プロバイダ・サーバ１５２からダウンロードすることができる。
【００２８】
クライアント・コンピュータ１０２内に描かれたハードウェア要素は、網羅的であることが意図されるものではなく、むしろ、本発明によって用いられるコンポーネントを強調するための代表的なものである。例えば、クライアント・コンピュータ１０２は、磁気カセット、デジタル多用途ディスク（ＤＶＤ）、ベルヌーイ・カートリッジ等のような代替的なメモリ・ストレージ・デバイスを含むことができる。これら及び他の変種は、本発明の趣旨及び範囲内に含まれることが意図される。
【００２９】
本明細書において用いられる場合、データ・レコードは、テープ・ドライブ・システムによる処理および記録のために（例えば、ホストから）提供される区別できる最小のデータの組として、そしてまた同様に、テープ・ドライブ・システムによってテープから読み出され、再処理され、（例えば、ホストにとって）利用可能なものにすることができる、区別できる最小のデータの組として定義される。種々の実施形態において、ホスト上で動作するアプリケーションは一般に、本明細書においてはユーザ・データ・セグメントと呼ばれる、多重のデータ・レコードの組を一度に読み出し又は書き込む。
【００３０】
これら及び他の実施形態において、アプリケーションは、典型的には、ロード・コマンドを呼び出して、複数のユーザ・データ・セグメントを含むテープ媒体をロードする。テープ媒体がロードされると、アプリケーションは、再位置決めコマンドを呼び出して目的ユーザ・データ・セグメントをシークし、その後、読み出しコマンドを呼び出してこれを読み出す。これらのステップは、その後、全ての目的ユーザ・データ・セグメントが読み出されるまで繰り返される。
【００３１】
しかしながら、シーク動作を実行することができるようになる前に、テープ・ドライブは、まず目的データ・レコードの物理的位置を推定することを必要とする。テープ媒体は何百万ものデータ・レコードを収容することができるので、テープ媒体上での各レコードの物理的位置それ自体を保存することが必ずしも現実的であるとは限らない。同様に、各データ・レコードは異なるサイズであり得るので、データ・レコードの物理的位置を推定することが難しい場合もある。結果として、データ・レコードの推定物理位置がその実際の位置から離れている場合には、データ・レコードのシーク時間が増大することがある。
【００３２】
種々の実施形態において、目的ユーザ・データ・セグメント及びその関連付けられたデータ・レコードの物理的位置は、データ・レコード番号、及び、テープ媒体上の所定の物理的区域又は領域に対して索引付けされたその他の関連情報を処理することによって判定される。これら及び他の実施形態において、データ・レコードの位置情報は、テープ・ディレクトリ（ＴＤ）、ファイルマーク・マップ、高解像度テープ・ディレクトリ（ＨＲＴＤ）若しくは仮想ＨＲＴＤ内に格納され、又は、当業者が精通している他のデータ・レコード索引付け手法で格納される。
【００３３】
長いシーク時間は、テープ媒体がデータ・バックアップ又はアーカイビングのために用いられるときには典型的には問題にはならない。いくつかの場合には、１つだけ又は数個のユーザ・データ・セグメントが読み出される。他の場合には、もっと多くのユーザ・データ・セグメントが読み出されるが、それらは典型的には連続的な順序でテープ媒体上に存在するので、シーク時間は、一般に最初のユーザ・データ・セグメントの位置を突き止めるために発生する。しかしながら、テープ媒体が仮想テープ記憶（ＶＴＳ）又はファイル・システムのために用いられる場合には、テープ媒体上の多数のユーザ・データ・セグメントを読み出すことは珍しくない。例えば、ＶＴＳ上で実行されるテープ媒体上の有効なデータを別のテープ媒体に移動する（ｒｅｃｌａｍａｔｉｏｎ）動作、及びファイル・システム上で実行されるデフラグ動作は、多くのユーザ・データ・セグメントの読み出しを招くことがある。これらの場合には、個々のシーク動作に関連付けられた累積シーク時間が合計され、結果として性能が低下する。
【００３４】
種々の実施形態において、ユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュールは、テープ・ドライブ上、テープ・ライブラリ上、又はホスト内に実装される。これら及び他の実施形態において、ＵＤＳリスト再順序付けモジュールは、テープ媒体から取得する目的ユーザ・データ・セグメントの順序付きリストを受け取る。ＵＤＳリスト再順序付けモジュールは、次に、典型的には個々のレコード番号とテープ媒体上のその対応する物理的位置との間の関係に関してのテープ・ディレクトリ又は他の情報を含む、目的テープ媒体と対話する。次にテープ媒体は、テープ・ディレクトリ又は他の情報を用いてシーク動作を実行すること、そして次に対応するデータ・レコードを読み出すことが可能な、テープ・ドライブによって読み取られる。種々の実施形態において、テープ・ドライブは、どのテープ媒体が目的ユーザ・データ・セグメントを収容しているのかを認識しているテープ・ライブラリと共に実装される。
【００３５】
種々の実施形態において、第１のユーザ・データ・セグメント「Ａ」の終端から第２のユーザ・データ・セグメント「Ｂ」の先頭へのシークに対する時間的間隔（「Ｄ」）は、以下のアルゴリズムを用いることによって求められる。
Ｄ＝｜Ｅ（Ａ）−Ｓ（Ｂ）｜／Ｖ
【００３６】
このアルゴリズムにおいて、Ｄが、第１のユーザ・データ・セグメント「Ａ」の終端から第２のユーザ・データ・セグメント「Ｂ」の先頭へのシークに対する時間的間隔であり、Ｅ（Ａ）は、テープの始まりから上記第１のユーザ・データ・セグメントＡの終端までの長さであり、Ｓ（Ｂ）は、上記テープの上記始まりから上記第２のユーザ・データ・セグメントＢの先頭までの長さであり、Ｖは、ユーザ・データ・セグメントをシークする為のテープ媒体の速度である。
【００３７】
ＵＤＳリスト再順序付けモジュールは、次に、計算された距離（「Ｄ」）情報を用いて目的ユーザ・データ・セグメントの順序付きリストを処理して、テープ媒体上のユーザ・データ・セグメントの各々の物理的位置を判定する。得られた物理的位置は、次にＵＤＳリスト再順序付けモジュールによって処理されて、ユーザ・データ・セグメントの順序が目的テープ媒体上のその物理的位置に従って再順序付けされたユーザ・データ・セグメントの再順序付けされたリストが生成される。ＵＤＳリスト再順序付けモジュールは、次にユーザ・データ・セグメントの再順序付けされたリストを、テープ媒体からユーザ・データ・セグメントを読み出すためのシーク、再位置決め及び読み出し動作を実行することが可能な、ホスト上に実装されたアプリケーションに提供する。
【００３８】
図２は、本発明の実施形態による、テープ・ドライブ上に実装されたユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュールの略ブロック図である。この実施形態において、テープ・ライブラリ２０６は、テープ媒体２１０及びテープ・ドライブ２０８を含み、このテープ・ドライブは、ユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュール２５０を含む。ホスト２０２は、アプリケーション２０４を含み、このアプリケーションは、テープ・ライブラリ２０６、テープ・ドライブ２０８、ＵＤＳリスト再順序付けモジュール２５０及びテープ媒体２１０に関連付けられた、シーク、再位置決め及び読み出し動作を実行することが可能である。
【００３９】
ここでより詳細に説明されるように、アプリケーション２０４は、ユーザ・データ・セグメント・リスト２１２をＵＤＳリスト再順序付けモジュール２５０に提供し、ＵＤＳリスト再順序付けモジュールは、テープ媒体２１０上の各ユーザ・データ・セグメントの物理的位置を判定する。物理的位置が判定されると、ＵＤＳリスト再順序付けモジュール２５０は、再順序付けされたユーザ・データ・セグメント・リスト２１６を生成し、これが次にアプリケーション２０４に提供される。アプリケーションは、次に、再順序付けされたユーザ・データ・セグメント・リスト２１６を用いて再位置決め動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト２１６内の最初のユーザ・データ・セグメントに対してテープ媒体２１０を再位置決めする（２１８）。その後、アプリケーションは、読み出し動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト２１６内の最初のユーザ・データ・セグメントを読み出す（２２０）。最初のユーザ・データ・セグメントが読み出されると、アプリケーション２０４は、再順序付けされたユーザ・データ・セグメント・リスト２１６を引き続き用いて再位置決め動作及び読み出し動作を実行し、再順序付けされたユーザ・データ・セグメント・リスト２１６内の残りのユーザ・データ・セグメントを読み出す。この実施形態においては、将来的にテープ・ドライブ２０８がテープ・ドライブ２０８のより新しいモデルで置き換えられても、テープ・ライブラリ２０６又はアプリケーション２０４に対する変更は必要ないことを、当業者は認識するであろう。
【００４０】
図３は、本発明の実施形態による、テープ・ライブラリ上に実装されたユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュールの略ブロック図である。この実施形態において、テープ・ライブラリ２０６は、テープ媒体２１０、テープ・ドライブ２０８、ユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュール３５０、及びテープ・ディレクトリ又は他のユーザ・データ・セグメント位置情報３１４を含む。ホスト２０２は、アプリケーション２０４を含み、このアプリケーションは、テープ・ライブラリ２０６、テープ・ドライブ２０８、ＵＤＳリスト再順序付けモジュール３５０及びテープ媒体２１０に関連付けられた、シーク、再位置決め及び読み出し動作を実行することが可能である。
【００４１】
ここでより詳細に説明されるように、アプリケーション２０４は、ユーザ・データ・セグメント・リスト２１２を、ＵＤＳリスト再順序付けモジュール３５０に提供し、ＵＤＳリスト再順序付けモジュールは、テープ媒体２１０上の各ユーザ・データ・セグメントの物理的位置を判定する。物理的位置が判定されると、ＵＤＳリスト再順序付けモジュール３５０は、再順序付けされたユーザ・データ・セグメント・リスト２１６を生成し、これが次にアプリケーション２０４に提供される。アプリケーションは、次に、再順序付けされたユーザ・データ・セグメント・リスト２１６を用いて再位置決め動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト２１６内の最初のユーザ・データ・セグメントに対してテープ媒体２１０を再位置決めする（２１８）。その後、アプリケーションは、読み出し動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト２１６内の最初のユーザ・データ・セグメントを読み出す（２２０）。最初のユーザ・データ・セグメントが読み出されると、アプリケーション２０４は、再順序付けされたユーザ・データ・セグメント・リスト２１６を引き続き用いて再位置決め及び読み出し動作を実行し、再順序付けされたユーザ・データ・セグメント・リスト２１６内の残りのユーザ・データ・セグメントを読み出す。当業者は、この実施形態が、所望のユーザ・データ・セグメントが複数のテープ媒体２１０カートリッジ内に記録されていた場合でもテープ・ライブラリ２０６が目的テープ媒体２１０を選択することを可能にすることを認識するであろう。
【００４２】
図４は、本発明の実施形態による、ホスト上に実装されたＵＤＳリスト再順序付けモジュールの略ブロック図である。この実施形態において、テープ・ライブラリ２０６は、テープ媒体２１０及びテープ・ドライブ２０８を含む。ホスト２０２は、ユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュール４５０、ユーザ・データ・セグメント・リスト４１２、及びアプリケーション２０４を含み、このアプリケーションは、テープ・ライブラリ２０６、テープ・ドライブ２０８、ＵＤＳリスト再順序付けモジュール４５０及びテープ媒体２１０に関連付けられた、シーク、再位置決め及び読み出し動作を実行することが可能である。
【００４３】
この実施形態において、アプリケーション２０４は、テープ・ディレクトリ、テープ・ドライブ及びテープ媒体の情報４１２を、テープ・ライブラリ２０６又はテープ・ドライブ２０８のいずれかから受け取る。ＵＤＳリスト再順序付けモジュール４５０は、次に、テープ・ディレクトリ、テープ・ドライブ及びテープ媒体の情報４１２を用いて、テープ媒体２１０上の各ユーザ・データ・セグメントの物理的位置を判定する。物理的位置が判定されると、ＵＤＳリスト再順序付けモジュール４５０は、次に、ユーザ・データ・セグメント・リスト４１２を処理して、再順序付けされたユーザ・データ・セグメント・リスト４１６を生成し、これが次にアプリケーション２０４に提供される。アプリケーションは、次に、再順序付けされたユーザ・データ・セグメント・リスト４１６を用いて再位置決め動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト４１６内の最初のユーザ・データ・セグメントに対してテープ媒体２１０を再位置決めする（２１８）。その後、アプリケーションは、読み出し動作を実行して、再順序付けされたユーザ・データ・セグメント・リスト４１６内の最初のユーザ・データ・セグメントを読み出す（２２０）。最初のユーザ・データ・セグメントが読み出されると、アプリケーション２０４は、再順序付けされたユーザ・データ・セグメント・リスト４１６を引き続き用いて再位置決め及び読み出し動作を実行し、再順序付けされたユーザ・データ・セグメント・リスト４１６内の残りのユーザ・データ・セグメントを読み出す。
【００４４】
図５は、本発明の実施形態により実装されるユーザ・データ・セグメント（ＵＤＳ）リスト再順序付けモジュールの動作の一般化されたフローチャートである。この実施形態において、ＵＤＳリスト再順序付け動作は、ステップ５０２で開始され、その後、ステップ５０４において、ＵＤＳリスト再順序付けモジュールが目的テープ・ドライブ上に実装されているかどうかの判定が行われる。目的テープ・ドライブ上に実装されている場合には、ステップ５０６において、アプリケーションは、本明細書においてより詳細に説明されているように、目的ＵＤＳリストをテープ・ドライブ上のＵＤＳリスト再順序付けモジュールに提出する。そうでない場合には、ステップ５０８において、ＵＤＳリスト再順序付けモジュールが目的テープ・ライブラリ上に実装されているかどうかの判定が行われる。目的テープ・ライブラリ上に実装されている場合には、ステップ５１０において、アプリケーションは、本明細書においてより詳細に説明されているように、目的ＵＤＳリストをテープ・ライブラリ上のＵＤＳリスト再順序付けモジュールに提出する。ステップ５０６又はステップ５１０において、ＵＤＳリストがＵＤＳリスト再順序付けモジュールにそれぞれ提出されると、ステップ５１２において、ＵＤＳリスト再順序付けモジュールは、目的媒体のテープ・ディレクトリを読み出す。
【００４５】
しかしながら、ステップ５０８において、ＵＤＳリスト再順序付けモジュールがテープ・ライブラリ上に実装されていないと判定された場合には、ステップ５１４において、ＵＤＳリスト再順序付けモジュールがホスト上に実装されているかどうかの判定が行われる。ホスト上に実装されていない場合には、ＵＤＳリスト再順序付け動作は、ステップ５３２においいて終了する。そうでない場合には、ＵＤＳリスト再順序付けモジュールは、テープ・ディレクトリ、テープ・ドライブ及びテープ媒体の情報を、目的テープ・ドライブ又は目的テープ・ライブラリのいずれかから取得する。その後、又は、ステップ５１２においてＵＤＳリスト再順序付けモジュールが目的媒体のテープ・ディレクトリを読み出すと、ステップ５１８において、ＵＤＳリスト再順序付けモジュールは、テープ媒体上の各ＵＤＳに関連付けられた物理的位置の情報を判定する。
【００４６】
その後、ステップ５２０において、ＵＤＳリスト再順序付けモジュールは、物理的位置の情報を処理して、再順序付けされたＵＤＳリストを生成し、このリストは次に、ステップ５２２において、アプリケーションに提出される。次いで、ステップ５２４において、アプリケーションは、シーク動作を実行して、再順序付けされたＵＤＳリスト上の最初のＵＤＳの位置に目的媒体を位置決めする。その後、アプリケーションは、読み出し動作を実行して、目的ＵＤＳを読み出す。次にステップ５２８において、再順序付けされたＵＤＳリスト上の最後のＵＤＳが読み出されたかどうかの判定が行われる。最後のＵＤＳが読み出された場合には、ＵＤＳリスト再順序付け動作は、ステップ５３２において終了する。そうでない場合には、ステップ５３０において、アプリケーションは、シーク動作を実行して、再順序付けされたＵＤＳリスト上の次のＵＤＳの物理的位置にテープ媒体を位置決めする。プロセスは、その後継続され、ステップ５２６に進む。
【００４７】
本発明を詳細に説明したが、添付の特許請求の範囲により定義された本発明の範囲から逸脱することなく、これに種々の変更、置き換え及び修正を行うことができることが、当業者には明らかであろう。
【符号の説明】
【００４８】
１０２：クライアント・コンピュータ
【図１】
0005963314.tif 000002
【図２】
0005963314.tif 000003
【図３】
0005963314.tif 000004
【図４】
0005963314.tif 000005
【図５】
0005963314.tif 000006