(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-01
(45)【発行日】2024-02-09
(54)【発明の名称】ブロック・グループ化を用いるテープからの高速ファイル・コピー
(51)【国際特許分類】
G11B 20/10 20060101AFI20240202BHJP
G11B 20/12 20060101ALI20240202BHJP
G11B 5/008 20060101ALI20240202BHJP
G11B 27/00 20060101ALI20240202BHJP
G11B 5/584 20060101ALI20240202BHJP
【FI】
G11B20/10 301Z
G11B20/12
G11B5/008 Z
G11B27/00 C
G11B5/584
(21)【出願番号】P 2022511296
(86)(22)【出願日】2020-08-14
(86)【国際出願番号】 IB2020057666
(87)【国際公開番号】W WO2021033103
(87)【国際公開日】2021-02-25
【審査請求日】2023-01-20
(32)【優先日】2019-08-22
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】宮村 剛志
(72)【発明者】
【氏名】長谷川 徹
(72)【発明者】
【氏名】山本 紀子
(72)【発明者】
【氏名】三間 慎介
(72)【発明者】
【氏名】松井 壮介
(72)【発明者】
【氏名】板垣 浩
【審査官】中野 和彦
(56)【参考文献】
【文献】特開2014-081988(JP,A)
【文献】特開2016-091575(JP,A)
【文献】特開2015-069290(JP,A)
【文献】特開2013-161185(JP,A)
【文献】特開2015-041401(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11B 20/10
G11B 20/12
G11B 5/008
G11B 27/00
G11B 5/584
(57)【特許請求の範囲】
【請求項1】
ファイルにアクセスするためのコンピュータ実装方法であって、
磁気テープから複数のファイルを読み出すリクエストを受け取ることと、
前記ファイルが記憶されている前記磁気テープの上の領域を識別するテープ・ディレクトリを取得することと、
前記ファイルのそれぞれを前記それぞれのファイルが記憶されている前記磁気テープの上の前記領域の1つにマップするために、前記テープ・ディレクトリを用いることと、
前記磁気テープの上の同じ第1の領域に記憶されている前記ファイルの第1の部分集合を第1の順序にソートすることと、
前記磁気テープの上の同じ第2の領域に記憶されている前記ファイルの第2の部分集合を第2の順序にソートし、同時に、前記第1の部分集合における前記ファイルのそれぞれを前記第1の順序に従って読み出すようにテープ・ドライブに命令することとを含む、コンピュータ実装方法。
【請求項2】
前記ファイルの前記第2の部分集合をソートすることと、前記第1の部分集合における前記ファイルのそれぞれを読み出すように前記テープ・ドライブに命令することとは、並列的に実行される、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記磁気テープの上の同じ以後の領域に記憶されている前記ファイルの以後の部分集合を以後の順序にソートし、同時に、
前記第2の部分集合における前記ファイルのそれぞれを前記第2の順序に従って読み出すように前記テープ・ドライブに命令することを含む、請求項1ないし2のどちらかに記載のコンピュータ実装方法。
【請求項4】
前記ファイルの全部がソートされたかどうか判断することと、
前記ファイルのうちの1つまたは複数がソートされていないとの判断に応答して、前記ファイルの次の以後の部分集合に進むことと、
前記磁気テープの上の同じ次の以後の領域に記憶されている前記ファイルの前記次の以後の部分集合を次の以後の順序にソートし、同時に、先の以後の部分集合における前記ファイルのそれぞれを先の以後の順序に従って読み出すように前記テープ・ドライブに命令することと
を含む反復的なプロセスを実行することを含む、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記ファイルの全部がソートされたとの判断に応答して、前記次の以後の部分集合における前記ファイルのそれぞれを前記次の以後の順序に従って読み出すように前記テープ・ドライブに命令することを含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記第1の部分集合における前記ファイルのそれぞれから読み出された情報を受け取ることと、
前記受け取られた情報を記憶デバイスに送ることと、
前記受け取られた情報のコピーを前記記憶デバイスに記憶するために、1つまたは複数の命令を送ることとを含む、請求項1ないし5のいずれかに記載のコンピュータ実装方法。
【請求項7】
各領域は前記磁気テープの上の完全なラップの半分に対応する、請求項1ないし6のいずれかに記載のコンピュータ実装方法。
【請求項8】
前記コンピュータ実装方法は前記テープ・ドライブに結合されているホスト・サーバによって実行される、請求項1ないし7のいずれかに記載のコンピュータ実装方法。
【請求項9】
前記ホスト・サーバはリニア・テープ・ファイル・システム(LTFS)を実装する、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記ファイルのそれぞれを前記それぞれのファイルが記憶されている前記磁気テープの上の前記領域の1つにマップするために前記テープ・ディレクトリを用いることは、
前記与えられたファイルに対応するブロックの範囲を識別することと、
前記与えられたファイルを、前記与えられたファイルに対応するブロックの前記範囲を含む前記磁気テープの上の領域に割り当てることとを含む、請求項1ないし9のいずれかに記載のコンピュータ実装方法。
【請求項11】
前記磁気テープの上の与えられた領域に記憶されている前記ファイルの与えられた部分集合を与えられた順序にソートすることは、
前記与えられた順序で前記ファイルを読み出す間に前記テープ・ドライブによって実行されたヘッドの再位置決めの量が最小化されるように前記与えられた順序を決定するために、前記与えられた領域に記憶されている各ファイルの物理的位置を用いることを含む、請求項1ないし10のいずれかに記載のコンピュータ実装方法。
【請求項12】
前記第1の部分集合における前記ファイルのそれぞれを前記第1の順序に従って読み出すことの結果として経験されるデータ・アクセス時間は、前記第1の部分集合における前記ファイルのそれぞれを前記第1の順序と異なるどの順序で読み出すことの結果として経験されるデータ・アクセス時間よりも短い、請求項1ないし11のいずれかに記載のコンピュータ実装方法。
【請求項13】
ファイルにアクセスするためのコンピュータ・プログラ
ムであって、処理回路
に、請求項1ないし12のいずれかに記載の方法を実行
させるためのコンピュータ・プログラ
ム。
【請求項14】
請求項13に記載のコンピュータ・プログラムを記憶したコンピュータ可読
記憶媒体。
【請求項15】
ファイルにアクセスするためのシステムであって、
プロセッサと、
前記プロセッサと一体化された、前記プロセッサによって実行可能な、または前記プロセッサと一体化されており前記プロセッサによって実行可能なロジックであって、
前記プロセッサによって、磁気テープから複数のファイルを読み出すリクエストを受け取ることと、
前記プロセッサによって、前記ファイルが記憶されている前記磁気テープの上の領域を識別するテープ・ディレクトリを取得することと、
前記プロセッサによって、前記ファイルのそれぞれを前記それぞれのファイルが記憶されている前記磁気テープの上の前記領域の1つにマップするために、前記テープ・ディレクトリを用いることと、
前記プロセッサによって、前記磁気テープの上の同じ第1の領域に記憶されている前記ファイルの第1の部分集合を第1の順序にソートすることと、
前記プロセッサによって、前記磁気テープの上の同じ第2の領域に記憶されている前記ファイルの第2の部分集合を第2の順序にソートし、同時に、前記プロセッサによって、前記第1の部分集合における前記ファイルのそれぞれを前記第1の順序に従って読み出すようにテープ・ドライブに命令することとを行うように構成されているロジックと
を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ記憶システムに関し、さらに詳しくは、本発明は、磁気テープ上に記憶されているファイルに、ブロック・グループ化を用いてアクセスすることに関する。
【背景技術】
【0002】
磁気記憶システムでは、磁気トランスデューサが、磁気記録媒体からデータを読み出し、磁気記録媒体上にデータを書き込む。データは、データが記憶される媒体上の位置に磁気記録トランスデューサを移動させることによって、磁気記録媒体上に書き込まれる。そして、磁気記録トランスデューサは磁場を発生させ、この磁場がデータを磁気媒体の中にエンコードする。データは、磁気読み出しトランスデューサを同様に位置決めし、磁気媒体の磁場を感知することによって、媒体から読み出される。読み出し動作と書き込み動作とは、データが媒体上の所望の場所から読み出されることができ所望の場所に書き込まれることができることを保証するため、独立に、媒体の移動と同期され得る。
【0003】
データ・ストレージ産業における重要で継続的な目標は、媒体上に記憶されるデータ密度を向上させることである。テープ記憶システムの場合、その目標は、記録テープ上のトラックおよび線形ビット密度を上昇させることと、磁気テープ媒体の厚さを低下させることに通じる。これは、また、磁気テープに対する記憶容量を、全体として増加させることにもなった。しかし、小さなフットプリントの開発や、より高性能のテープ・ドライブ・システムは、そのようなシステムで用いられるテープ・ヘッド・アセンブリの設計から、磁気テープの上に記憶されたデータへの実際のアクセスまでに至る、様々な困難を生じさせている。
【0004】
例えば、磁気テープの上の異なる位置から複数のファイルを読み出すプロセスは、ファイルが記憶されている様々な物理的位置の間で磁気ヘッドを再位置決めすることを含む。従来型のプロセスは、これらの読み出し動作を、どのようにファイル自体が相互に関係しているのかに対応する順序でファイルがアクセスされるように、行ってきた。例えば、ファイルAが最初にアクセスされ、ファイルBが二番目にアクセスされ、ファイルCが三番目にアクセスされる、などである。しかし、このようにファイルにアクセスすることは、テープの上の各ファイルの始点を探すために行われる反復的な移動のために、多くの場合に非効率的である。さらに、アクセスされているファイルの数が増加するにつれて、このような従来型のプロセスによって行われるヘッドの再位置決めの量も、同様に増加する。
【0005】
したがって、上述の問題に対処する必要性が、当該技術分野に存在している。
【発明の概要】
【0006】
第1の態様から見ると、本発明は、ファイルにアクセスするためのコンピュータ実装方法を提供するのであるが、この方法は、磁気テープから複数のファイルを読み出すリクエストを受け取ることと、ファイルが記憶されている磁気テープの上の領域を識別するテープ・ディレクトリを取得することと、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域の1つにマップするために、テープ・ディレクトリを用いることと、磁気テープの上の同じ第1の領域に記憶されているファイルの第1の部分集合を第1の順序にソートすることと、磁気テープの上の同じ第2の領域に記憶されているファイルの第2の部分集合を第2の順序にソートし、同時に、第1の部分集合におけるファイルのそれぞれを第1の順序に従って読み出すようにテープ・ドライブに命令することとを含む。
【0007】
さらなる態様から見ると、本発明は、ファイルにアクセスするためのシステムを提供するのであるが、このシステムは、プロセッサと、プロセッサと一体化された、プロセッサによって実行可能な、またはプロセッサと一体化されておりプロセッサによって実行可能なロジックとを備えており、このロジックは、プロセッサによって、磁気テープから複数のファイルを読み出すリクエストを受け取ることと、プロセッサによって、ファイルが記憶されている磁気テープの上の領域を識別するテープ・ディレクトリを取得することと、プロセッサによって、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域の1つにマップするために、テープ・ディレクトリを用いることと、プロセッサによって、磁気テープの上の同じ第1の領域に記憶されているファイルの第1の部分集合を第1の順序にソートすることと、プロセッサによって、磁気テープの上の同じ第2の領域に記憶されているファイルの第2の部分集合を第2の順序にソートし、同時に、プロセッサによって、第1の部分集合におけるファイルのそれぞれを第1の順序に従って読み出すようにテープ・ドライブに命令することとを行うように構成されている。
【0008】
さらなる態様から見ると、本発明は、ファイルにアクセスするためのコンピュータ・プログラム製品を提供するのであるが、このコンピュータ・プログラム製品は、処理回路によって読み出し可能なコンピュータ可読記憶媒体であり、本発明のステップを実行するための方法を実行するために処理回路によって実行されるための命令を記憶するコンピュータ可読記憶媒体を含む。
【0009】
さらなる態様から見ると、本発明は、コンピュータ可読媒体の上に記憶されており、デジタル・コンピュータの内部メモリの中にロード可能なコンピュータ・プログラムであって、前記プログラムがコンピュータ上で動作されるときに、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【0010】
さらなる態様から見ると、本発明は、それによりプログラム命令が具体化されているコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品を提供するのであるが、このプログラム命令は、プロセッサによって読み出し可能または実行可能あるいはその両方であって、プロセッサに、プロセッサによって、磁気テープから複数のファイルを読み出すリクエストを受け取ることと、プロセッサによって、ファイルが記憶されている磁気テープの上の領域を識別するテープ・ディレクトリを取得することと、プロセッサによって、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域の1つにマップするために、テープ・ディレクトリを用いることと、プロセッサによって、磁気テープの上の同じ第1の領域に記憶されているファイルの第1の部分集合を第1の順序にソートすることと、プロセッサによって、磁気テープの上の同じ第2の領域に記憶されているファイルの第2の部分集合を第2の順序にソートし、同時に、プロセッサによって、第1の部分集合におけるファイルのそれぞれを第1の順序に従って読み出すようにテープ・ドライブに命令することとを行わせる。
【0011】
あるアプローチによるコンピュータ実装方法は、磁気テープから複数のファイルを読み出すリクエストを受け取ることと、ファイルが記憶されている磁気テープの上の領域を識別するテープ・ディレクトリを取得することとを含む。テープ・ディレクトリは、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域の1つにマップするために、用いられる。磁気テープの上の同じ第1の領域に記憶されているファイルの第1の部分集合は、また、第1の順序にソートされる。このコンピュータ実装方法は、さらに、磁気テープの上の同じ第2の領域に記憶されているファイルの第2の部分集合を第2の順序にソートし、同時に、第1の部分集合におけるファイルのそれぞれを第1の順序に従って読み出すようにテープ・ドライブに命令することを含む。好適な場合においては、ファイルの第2の部分集合をソートすることと、第1の部分集合におけるファイルのそれぞれを読み出すようにテープ・ドライブに命令することとは、さらに、並列的に実行される。
【0012】
性能は、別の部分集合における(既にソートされている)ファイルがテープ・ドライブによって磁気テープから読み出されつつある間に、与えられた部分集合におけるファイルを同時にソートすることによって、著しく改善される。これが、関連する計算量を領域サイズの塊に分割することに加えて処理動作を重複させることにより、与えられた時点において消費される計算資源の量を、有効に低下させる。さらに、磁気テープの上の同じ次の領域に記憶されているファイルの次の部分集合を次の順序にソートし、同時に、先の部分集合におけるファイルのそれぞれを先の順序に従って読み出すようにテープ・ドライブに命令するというこのプロセスは、例えば、いずれかの所望の個数のファイルに対して、反復的な様態で反復され得る。
【0013】
いくつかの場合に、磁気テープの上の与えられた領域に記憶されているファイルの与えられた部分集合を与えられた順序にソートすることは、与えられた順序でファイルを読み出す間にテープ・ドライブによって行われるヘッドの再位置決めの量が最小化されるように与えられる順序を決めるために、与えられた領域に記憶されている各ファイルの物理的位置を用いることを含む。また、この結果として、実行遅延を改善することができる。例えば、与えられた部分集合におけるファイルのそれぞれを与えられた順序で読み出すことの結果として経験されるデータ・アクセス時間は、与えられた順序と別であるどの他の順序で与えられた部分集合におけるファイルのそれぞれを読み出すことの結果として経験されるデータ・アクセス時間よりも短い。つまり、このコンピュータ実行方法は、従来技術において達成可能であったよりもより効率的な様態で、磁気テープからの複数のファイルにアクセスする(例えば、読み出す)ことができることになる。
【0014】
別のアプローチによるコンピュータ・プログラム製品は、それによりプログラム命令が具体化されているコンピュータ可読記憶媒体を含む。プログラム命令は、プロセッサに上述の方法を実行させるように、プロセッサによって読み出し可能または実行可能あるいはその両方である。
【0015】
さらに別のアプローチによるシステムは、プロセッサと、ロジックとを含み、このロジックは、プロセッサと一体化されている、プロセッサによって実行可能である、またはプロセッサと一体化されていてプロセッサによって実行可能である。このロジックは、上述の方法を実行するように構成されている。
【0016】
これらのアプローチのいずれもが、磁気ヘッドと、磁気媒体(例えば、記録用テープ)を磁気ヘッド上に通過させるための駆動機構と、磁気ヘッドと電気的に結合されたコントローラとを含み得るテープ・ドライブ・システムなどの、磁気データ記憶システムにおいて実装され得る。
【0017】
本発明の他の態様とアプローチとは、以下の詳細な説明から明らかになるのであるが、その説明は、図面と共に読まれることにより、本発明の原理を、例を通じて例示するものである。
【0018】
次に、本発明が、単に例を用いることにより、以下の図面において図解されている好適実施形態を参照して、説明される。
【図面の簡単な説明】
【0019】
【
図1A】あるアプローチによる、単純化されたテープ駆動システムの概略図である。
【
図1B】あるアプローチによるテープ・カートリッジの概略図である。
【
図2A】あるアプローチによる平面上に研削され双方向で2つのモジュールからなる磁気テープ・ヘッドの側面図である。
【
図2D】1対のモジュールの部分的なテープ支持面の詳細図である。
【
図3】書き込み-読み出し-書き込み構成を有する磁気ヘッドの部分的なテープ支持面の図である。
【
図4】読み出し-書き込み-読み出し構成を有する磁気ヘッドの部分的なテープ支持面の図である。
【
図5】ほぼ平行である平面に沿ってモジュールのすべてが全体として配置されているあるアプローチによる、3つのモジュールを有する磁気テープ・ヘッドの側面図である。
【
図6】接線(角度付きの)構成の3つのモジュールを用いた磁気テープ・ヘッドの側面図である。
【
図7】オーバーラップ構成の3つのモジュールを用いた磁気テープ・ヘッドの側面図である。
【
図8A】テープ・テンティングの原理を示す概略図である。
【
図8B】テープ・テンティングの原理を示す概略図である。
【
図8C】テープ・テンティングの原理を示す概略図である。
【
図9】あるアプローチによる磁気テープ上に記憶されているファイルとインデックスの表現図である。
【
図10A】あるアプローチによる方法のフローチャートである。
【
図10B】あるアプローチによる方法のフローチャートである。
【
図10C】あるアプローチによる方法のフローチャートである。
【
図11】あるアプローチによるデータ記憶システムの部分的な代表図である。
【
図12】あるアプローチによる層構造を有するデータ記憶システムの代表図である。
【発明を実施するための形態】
【0020】
以下の説明は、本発明の一般的原理を例示する目的で行われているのであって、本明細書で特許請求されている発明の概念を限定することは、意図されていない。さらに、本明細書で説明されている特定の特徴は、様々な可能性のある組合せおよび順列において、説明されている他の特徴との組合せとして、用いられることが可能である。
【0021】
本明細書で特に別の定義が与えられない限り、すべての用語には、それらの最も広く可能性のある解釈が与えられるべきであり、それには、本明細書から含意される意味と、当業者によって理解されるまたは辞書や専門書などにおいて定義されているまたはその両方の意味とが含まれる。
【0022】
本明細書と添付の特許請求の範囲とで用いられる場合、単数形の「a」、「an」および「the」は、そうではないと指定されない限り、複数の指示対象を含むということも留意されるべきである。
【0023】
以下の説明では、磁気記憶システムのいくつかの好適なアプローチと、同様に、従来技術で可能であったよりもより効率的な様態で、磁気テープからの複数のファイルにアクセスする(例えば、読み出す)ための、その動作またはコンポーネントあるいはその両方とを開示する。好適なアプローチでは、(既にソートされている)別の部分集合におけるファイルがテープ・ドライブによって磁気テープから読み出されている間に、同時に、ある部分集合におけるファイルをソートすることによって、性能が改善される。これが、例えば後でより詳細に説明されるように、関連する計算量を領域サイズの塊に分割することに加えて処理動作を重複させることにより、与えられた時点において消費される計算資源の量を、有効に低下させる。
【0024】
ある一般的なアプローチでは、コンピュータ実装方法が、磁気テープから複数のファイルを読み出すリクエストを受け取ることと、ファイルが記憶されている磁気テープの上の領域を識別するテープ・ディレクトリを取得することとを含む。テープ・ディレクトリは、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域の1つにマップするために用いられる。また、磁気テープの上の同じ第1の領域に記憶されているファイルの第1の部分集合は、第1の順序にソートされる。コンピュータ実装方法は、さらに、磁気テープの上の同じ第2の領域に記憶されているファイルの第2の部分集合を第2の順序にソートし、同時に、第1の部分集合におけるファイルのそれぞれを第1の順序で読み出すようにテープ・ドライブに命令することを含む。
【0025】
別の一般的なアプローチでは、コンピュータ・プログラム製品が、それを用いてプログラム命令が具体化されているコンピュータ可読記憶媒体を含む。プログラム命令は、プロセッサによって読み出し可能または実行可能あるいはその両方であり、上述の方法をプロセッサに実行させる。
【0026】
さらに別の一般的なアプローチでは、システムが、プロセッサと、ロジックとを含むが、このロジックは、プロセッサと一体化されている、プロセッサによって実行可能である、またはプロセッサと一体化されていてプロセッサによって実行可能である。このロジックは、上述の方法を実行するように構成されている。
【0027】
図1Aは、テープ・ベースのデータ記憶システムの単純化されたテープ・ドライブ100を図解しており、このテープ・ベースのデータ記憶システムは、本発明の文脈で用いられ得るものである。テープ・ドライブのある特定の実装形態が
図1Aに示されているが、ここで説明されるアプローチは、どのタイプのテープ駆動システムの文脈でも実装され得るということが留意されるべきである。
【0028】
示されているように、テープ供給カートリッジ120と巻取リール121とが、テープ122を支持するために提供されている。リールの1つまたは複数が、取り外し可能なカートリッジの一部を形成し得るが、必ずしもテープ・ドライブ100の一部とは限らない。
図1Aに図解されているようなテープ・ドライブは、さらに、テープ供給カートリッジ120を駆動する駆動モータ(単数または複数)と、テープ122をいずれかのタイプのテープ・ヘッド126上で移動させる巻取リール121とを含み得る。このようなヘッドは、リーダ、ライタまたはその両方のアレイを含むことがある。
【0029】
ガイド125は、テープ・ヘッド126を横断するように、テープ122を誘導する。このテープ・ヘッド126は、また、ケーブル130を経由して、コントローラ128に結合されている。コントローラ128は、ドライブ100のどのサブシステムでも制御するためのプロセッサもしくはいずれかのロジックまたはその両方であり得るし、あるいはドライブ100のどのサブシステムでも制御するためのプロセッサもしくはいずれかのロジックまたはその両方を含み得る。例えば、コントローラ128は、典型的には、サーボ追跡、データ書き込み、データ読み出しなどのヘッド機能を制御する。コントローラ128は、少なくとも1つのサーボ・チャネルと、少なくとも1つのデータ・チャネルとを含み得るが、これらは、それぞれが、テープ122に書き込まれるまたはテープ122から読み出されるあるいはその両方の情報を、処理または記憶あるいはその両方を行うように構成されたデータ・フロー処理ロジックを含む。コントローラ128は、当該技術分野で既知のロジックの下で、また同様に本明細書に開示されているいずれかのロジックの下で、動作し得るのであって、様々なアプローチにおいて本明細書に含まれているテープ・ドライブの説明のいずれかのためのプロセッサとして考えられ得る。コントローラ128は、いずれかの既知のタイプのメモリ136に結合され得るが、メモリ136は、コントローラ128によって実行可能な命令を記憶し得る。さらに、コントローラ128は、本明細書で提示されている方法論の一部もしくはすべてを実行または制御するように、構成またはプログラム可能あるいはその両方であり得る。よって、コントローラ128は、1つまたは複数のチップ、モジュールまたはブロックあるいはこれらの組合せと、1つまたは複数のプロセッサにとって利用可能なソフトウェア、ファームウェアまたはそれ以外の命令もしくはこれらの組合せと、それらの組合せとの中にプログラムされたロジックによって、様々な動作を実行するように構成されていると考えられ得る。
【0030】
ケーブル130は、データをテープ・ヘッド126に伝送する、テープ122上に記録する、およびテープ・ヘッド126によって読み出されたデータをテープ122から受け取るための読み出し/書き込み回路を含み得る。アクチュエータ132は、テープ122に対するテープ・ヘッド126の位置を制御する。
【0031】
インターフェース134は、また、テープ・ドライブ100とホスト(内部または外部)との間でデータを送信および受信する通信のため、そしてテープ・ドライブ100の動作を制御しテープ・ドライブ100の状態をホストに通信するために、提供され得るのであるが、これらはすべて当業者によって理解されるであろう。
【0032】
図1Bは、あるアプローチによる例示的なテープ・カートリッジ150を図解している。このようなテープ・カートリッジ150は、
図1Aに示されているようなシステムと共に用いられ得る。示されているように、テープ・カートリッジ150は、ハウジング152と、ハウジング152の中のテープ122と、ハウジング152に結合された不揮発性メモリ156とを含む。いくつかのアプローチでは、不揮発性メモリ156は、
図1Bに示されているように、ハウジング152の内部に埋め込まれていることがあり得る。より多くのアプローチでは、不揮発性メモリ156は、ハウジング152を修正することなく、ハウジング152の内部または外部に、付着されていることもあり得る。例えば、不揮発性メモリが、自己接着性ラベル154に埋め込まれていることがあり得る。ある好適なアプローチでは、非揮発性メモリ156は、テープ・カートリッジ150の内部もしくは外部に埋め込まれたまたは結合されたフラッシュ・メモリ・デバイス、リード・オンリ・メモリ(ROM)デバイスなどであり得る。この不揮発性メモリは、テープ・ドライブ、テープ動作ソフトウェア(ドライバ・ソフトウェア)、または他のデバイスあるいはこれらの組合せによって、アクセスが可能である。
【0033】
例により、
図2Aは、本発明の文脈で実装され得る、平面上に研削され双方向で2つのモジュールからなる磁気テープ・ヘッド200の側面図を図解している。示されているように、ヘッドは、1対のベース202を含んでおり、ベース202は、それぞれが、モジュール204を備え、相互に対して小さな角度αで固定されている。ベースは、相互に接着的に結合されている「Uビーム」であり得る。各モジュール204は、基板204Aと、「ギャップ」と称されるのが通常でありリーダまたはライタあるいはその両方206が形成される薄膜部を備えた閉包204Bとを含む。使用の際には、テープ208が、媒体(テープ)支持面209に沿って、モジュール204上を、リーダおよびライタを用いてテープ208上のデータを読み出しテープ上にデータを書き込むために、示されている様態で移動される。平坦な媒体支持面209上に進行するおよび平坦な媒体支持面209から去るエッジにおけるテープ208のラップ角θは、通常、約0.1度から約3度までの間である。
【0034】
基板204Aは、典型的には、セラミックなどの耐摩耗材料で構成される。閉包204Bは、基板204Aと同じまたは同様のセラミックで作られ得る。
【0035】
リーダとライタとは、ピギーバックまたは統合構成として配列され得る。例示的なピギーバック構成は、(磁気シールドされた)リーダ・トランスデューサ(例えば、磁気抵抗リーダなど)の上(または下)にある(磁気誘導)ライタ・トランスデューサを含み、ライタの磁極とリーダのシールドとは、分離されているのが一般的である。例示的な統合構成は、ライタの一方の磁極と同じ(したがって「統合」)物理層に1つのリーダ・シールドを含む。リーダとライタとは、インターリーブ構成として配置されることもあり得る。あるいは、チャネルの各アレイが、リーダまたはライタのみである場合もあり得る。これらのアレイは、どれも、媒体上のサーボ・データを読み出すための1つまたは複数のサーボ・トラック・リーダを含み得る。
【0036】
図2Bは、
図2Aの線2Bから見たモジュール204の1つのテープ支持面209を図解している。代表的なテープ208が、破線で示されている。モジュール204は、好ましくは、ヘッドがデータ・バンドの間を進むときに、テープを支持することができるのに十分な程度の長さを有する。
【0037】
この例では、テープ208は、例えば1.5インチ(約3.81センチメートル)幅のテープ208上に
図2Bに示されている16のデータ・バンドと17のサーボ・トラック210を備えているように、4~32のデータ・バンドを含む。データ・バンドは、サーボ・トラック210の間で定義される。各データ・バンドは、例えば1024のデータ・トラック(図示せず)など、多数のデータ・トラックを含み得る。読み出し/書き込み動作の間、リーダまたはライタあるいはその両方206は、データ・バンドの1つの内部における特定のトラック位置に位置決めされる。時にはサーボ・リーダと称される外部リーダが、サーボ・トラック210を読み出す。それに対し、サーボ信号は、読み出し/書き込み動作の間、リーダまたはライタあるいはその両方206を、特定の組のトラックと位置合わせされた状態に維持するのに用いられる。
【0038】
図2Cは、
図2Bの円2Cにおけるモジュール204上のギャップ218に形成されている複数のリーダまたはライタあるいはその両方206を示す。示されているように、リーダおよびライタ206のアレイは、個数は変動することがあり得るが、例えば、16のライタ214と、16のリーダ216と、2つのサーボ・リーダ212とを含む。例示的なアプローチは、1アレイ当たりに、8、16、32、40および64のアクティブなリーダまたはライタあるいはその両方206を含み、あるいは、インターリーブ型の設計の場合には、17、25、33など、奇数個のリーダまたはライタを有する。例示的なアプローチは、1アレイ当たり32のリーダまたは1アレイ当たり32のライタあるいはその両方を含んでおり、その場合に、トランスデューサ要素の実際の個数は、例えば33、34などというように、より大きいことがあり得る。これにより、テープがより低速で移動することが可能になり、よって、速度で誘導されるトラッキングおよび力学的困難を低減させることができるまたはテープを充填するもしくは読み出すためにより少数の「ラップ」を実行することができるあるいはその両方が可能になる。リーダとライタとは
図2Cに示されているようにピギーバック構成に配列され得るが、リーダ216とライタ214とは、インターリーブ構成にも配列され得る。あるいは、リーダ/ライタ206の各アレイはリーダまたはライタのみの場合もあり得るし、アレイが1つまたは複数のサーボ・リーダ212を含むこともあり得る。
図2Aおよび2B~2Cを考察することによって留意されるように、各モジュール204は、双方向読み出しおよび書き込み、読み出しと書き込みとを同時に行う能力、後方互換性などのために、リーダまたはライタあるいはその両方206の相補的な組を含むことがあり得る。
【0039】
図2Dは、あるアプローチによる、磁気テープ・ヘッド200の相補的モジュールの部分的なテープ支持面の図を示している。このアプローチでは、各モジュールは、共通基板204Aとオプションで電気絶縁性の絶縁層236との上に形成されたピギーバック構成の複数の読み出し/書き込み(R/W)ペアを有する。ライタ214とリーダ216とは、R/Wペア222として例示されているR/Wペアを形成するように、それらを横断するテープ媒体の意図された移動方向と平行に、位置合わせされている。テープの意図された移動方向は、本明細書では、ときに、テープの移動方向とも称されるのであって、これらの用語は相互に交換可能に用いられ得るということに留意してほしい。このテープの移動方向は、システムの設計から、例えば、説明書を検討すること、基準点に対するテープの実際の移動方向を観察することなどによって、推測され得る。さらに、双方向の読み出しまたは書き込みあるいはその両方が可能であるように動作するシステムでは、双方向へのテープの移動方向は、典型的には平行であり、したがって、両方の方向は相互に均等であると考えられ得る。
【0040】
8、16、32のペアなど、いくつかのR/Wペア222が存在し得る。示されているR/Wペア222は、それらを横断するテープの移動方向に対してほぼ垂直な方向に、直線的に位置合わせされている。しかし、これらのペアは、対角線方向などにも位置合わせされ得る。サーボ・リーダ212は、R/Wペアのアレイの外側に位置決めされているが、その機能は広く知られている。
【0041】
一般に、磁気テープ媒体は、矢印220によって指示されているように、順方向または逆方向のいずれかに移動する。磁気テープ媒体とヘッド・アセンブリ200とは、当該技術分野で広く知られている様態で、変換関係として動作する。ヘッド・アセンブリ200は、一般的には同一の構成を有する2つの薄膜モジュール224および226を含む。
【0042】
モジュール224および226は、相互に結合され、それらの閉包204B(部分的に示されている)の間に存在する空間を有し、先行モジュールのライタと、それらに対するテープの移動方向と平行に先行モジュールのライタと位置合わせされた後続モジュールのリーダとを付勢することによって、同時的な読み出しおよび書き込み能力を提供する単一の物理ユニットを形成する。磁気テープ・ヘッド200のモジュール224、226が構築されるときに、例えばAlTiCなどの導電性基板204A(部分的に図示)の上方に生じるギャップ218に、一般的には下記の順序で、R/Wペア222のための層が形成されるのであり、すなわち:絶縁層236と、典型的にはNiFe(-)、コバルト・ジルコニウム・タンタル(CZT)またはAl-Fe-Si(センダスト)などの鉄合金の第1のシールド232と、磁気媒体上のデータ・トラックを感知するためのセンサ234と、典型的にはニッケル-鉄合金(例えば、パーマロイとしても知られている~80/20の%のNiFe)の第2のシールド238と、第1および第2のライタの磁極228、230と、コイル(図示せず)とである。センサは、いずれかの既知のタイプであり得るが、磁気抵抗性(MR)、GMR、AMR、トンネル磁気抵抗性(TMR)などに基づくものを含む。
【0043】
第1および第2のライタの磁極228、230は、~45/55のNiFeなど、高磁気モーメント材料から製造され得る。これらの材料は、単に例として提供されているのであって、他の材料も用いられ得ることに留意してほしい。シールドまたは磁極端あるいはその両方の間の絶縁などの追加的な層と、センサの周囲の絶縁層とが存在することもあり得る。絶縁のための例示的な材料には、アルミナおよびそれ以外の酸化物、絶縁性ポリマなどが含まれる。
【0044】
あるアプローチによるテープ・ヘッド126の構成は、好ましくは3つ以上である複数のモジュールを含む。書き込み-読み出し-書き込み(W-R-W)ヘッドでは、書き込みのための外側モジュールが、読み出しのための1つまたは複数の内側モジュールの側面に配置される。W-R-W構成を示している
図3を参照すると、外側モジュール252、256は、それぞれが、ライタ260の1つまたは複数のアレイを含む。
図3の内側モジュール254は、同様の構成で、リーダ258の1つまたは複数のアレイを含む。マルチ・モジュール・ヘッドの変更例には、R-W-Rヘッド(
図4)、R-R-Wヘッド、W-W-Rヘッドなどが含まれる。さらに他の変更例では、モジュールの1つまたは複数が、トランスデューサの読み出し/書き込みペアを有し得る。さらに、3よりも多くのモジュールが存在する場合もあり得る。さらなるアプローチでは、例えば、W-R-R-W、R-W-W-Rという配列など、2つの外側モジュールの横に、2つまたはそれより多くの内側モジュールが配置されることがあり得る。単純にするために、本発明のアプローチを例示するのには、本明細書では、W-R-Wヘッドが主に用いられる。本明細書における教示を得た当業者であれば、本発明の順列が、W-R-W構成とは異なる構成にどのように適用され得るのかを理解するであろう。
【0045】
図5は、第1、第2のおよび第3のモジュール302、304、306を含む、本発明のあるアプローチによる磁気ヘッド126を図解しており、各モジュールは、平坦である、起伏を有する、その他であり得るテープ支持面308、310、312を、それぞれ有する。「テープ支持面」という用語は、テープ315の側の面がテープ支持面と物理的に接していることを含意するように思えるが、必ずしもそうではないことに留意してほしい。むしろ、テープの一部分のみが、常時または断続的にテープ支持面と接する場合があり得るだけであり、テープの他の部分は、テープ支持面の上方で、時には「空気支持」とも称される空気の層に乗っている(または「飛んでいる」)のである。第1のモジュール302は、テープが指示された方向に動いている場合に、3モジュール設計において、テープが最初に遭遇するモジュールであるから、「先行」モジュールと称される。第3のモジュール306は、「後続」モジュールと称される。後続モジュールは、中間モジュールに続いており、3モジュール設計の場合にテープが最後に見るモジュールである。先行および後続モジュール302、306は、集合的に、外側モジュールと称される。外側モジュール302、306は、テープ315の移動方向に応じて、先行モジュールとして交代することにも留意してほしい。
【0046】
あるアプローチでは、第1、第2および第3のモジュール302、304、306のテープ支持面308、310、312が、ほぼ平行な平面(これは、例えば、
図6におけるように、平行と接線方向との間など、平行な平面とほとんど平行な平面を含むことが意図されている)の上に存在しており、第2のモジュール304のテープ支持面310は、第1および第3のモジュール302、306のテープ支持面308、312の上方にある。後述されるように、これは、第2のモジュール304のテープ支持面310に対するテープの所望のラップ角α
2を生じさせるという効果を有する。
【0047】
テープ支持面308、310、312が平行またはほとんど平行であるがオフセットを有する平面に沿って存在する場合には、直感的には、テープは、先行モジュール302のテープ支持面308から剥がれるはずである。しかし、先行モジュール302のスカイビング・エッジ318によって生じた真空が、テープを先行モジュール302のテープ支持面308に接着された状態に維持するのに十分であることが実験的に発見されている。先行モジュール302の後続エッジ320(テープが先行モジュール302を去る端部)は、第2のモジュール304のテープ支持面310上のラップ角α2を定義する近似的な基準点である。テープは、先行モジュール302の後続エッジ320の近くまで、テープ支持面の密接な近傍に留まる。したがって、トランスデューサ322は、外側モジュール302、306の後続エッジの近くに配置され得る。これらのアプローチは、書き込み-読み出し-書き込みの応用に特に適している。
【0048】
このアプローチと本明細書で説明されている他のアプローチとの長所は、外側モジュール302、306が第2のモジュール304から所定のオフセットの位置に固定されているため、モジュール302、304、306が相互に結合されているまたはそれ以外の様態でヘッドの中に固定されているときには、内側ラップ角α2が固定されることである。内側ラップ角α2は、δをテープ支持面308、310の面の間の高さの差であり、Wをテープ支持面308、310の対向する端部の間の幅であるとして、ほぼ、tan-1(δ/W)である。例示的な内側ラップ角α2は、約0.3度から約1.1度までの間に属するが、設計によって必要とされる任意の角度であってよい。
【0049】
有利であることに、テープを受け取るモジュール304の側(先行エッジ)における内側ラップ角α2は、後続エッジにおける内側ラップ角α3よりも大きいのであるが、その理由は、テープ315は後続モジュール306の上方に乗っているからである。この差は、一般的に有利であるのだが、その理由は、α3が小さいほど、より傾斜が急な、出て行く有効ラップ角であったものに対向する傾向にあるからである。
【0050】
外側モジュール302、306のテープ支持面308、312は、外側モジュール302の後続エッジ320において負のラップ角を生じさせるように位置決めされるということに留意してほしい。これは、ヘッドから剥がれる場所においてテープに形成されるバール領域の位置を適切に考慮するならば、後続エッジ320との接触に起因する摩擦を減少させることを助ける点で、一般的に優れている。この負のラップ角は、また、フラッタと、先行モジュール302上の要素に対するスクラブ損傷とを減少させる。さらに、後続エッジ306においては、テープ315は、テープ支持面312の上を飛ぶために、テープがこの方向に動いているときに、要素上の摩耗は実質的に存在しない。特に、テープ315は、空気に乗っているため、第3のモジュール306のテープ支持面312に著しく載ることはない(いくらかの接触が生じることはあり得る)。後続モジュール306がアイドル状態である場合でも先行モジュール302は書き込みを行っているため、これは許容可能である。
【0051】
書き込み機能と読み出し機能とは、どの与えられた時間でも、異なるモジュールによって実行される。あるアプローチでは、第2のモジュール304は、複数のデータおよびオプションであるサーボ・リーダ331を含み、ライタは含まない。第1および第3のモジュール302、306は、複数のライタ322を含み、データ・リーダは含まないが、例外的に、外側モジュール302、306は、オプションのサーボ・リーダを含むことがあり得る。サーボ・リーダは、読み出しまたは書き込みあるいはその両方の動作の間に、ヘッドを位置決めするのに用いられ得る。各モジュールにおけるサーボ・リーダは、典型的には、リーダまたはライタのアレイの端部に向かって配置される。
【0052】
基板と閉包との間のギャップにリーダのみを有する、またはライタとサーボ・リーダとを並んで有することにより、ギャップの長さを実質的に縮小させることが可能である。典型的なヘッドは、ピギーバック式のリーダとライタとを有しているが、その場合に、ライタは、各リーダの上方に形成される。典型的なギャップは、20~35ミクロンである。しかし、テープ上の不規則性は、ギャップの中に垂れ下がることで、ギャップの腐食を生じさせる傾向があり得る。よって、ギャップは、小さければ小さいほど、優れていることになる。本明細書において可能になるより小さなギャップは、摩耗に関する問題をより少なく示すことになる。
【0053】
いくつかのアプローチでは、第2のモジュール304は閉包を有するのに対し、第1および第3のモジュール302、306は閉包を有しない。閉包がない場合には、ハード・コーティングがモジュールに追加されることが好ましい。1つの好ましいコーティングは、ダイアモンド・ライク・カーボン(DLC)である。
【0054】
図5に示されているアプローチでは、第1、第2および第3のモジュール302、304、306は、それぞれが、関連するモジュールのテープ支持面を延長する閉包332、334、336を有することにより、読み出し/書き込み要素を、効果的に、テープ支持面のエッジから離れて位置決めすることになる。第2のモジュール304上の閉包332は、テープ・ヘッドにおいて典型的に見られるタイプのセラミック製閉包であり得る。しかし、第1および第3のモジュール302、306の閉包334、336は、それぞれのモジュールの上のテープの移動方向と平行に測定された場合、第2のモジュール304の閉包332よりも短いことがあり得る。これが、モジュールを相互により近く位置決めすることを可能にする。より短い閉包334、336を生じさせる1つの方法は、第2のモジュール304の標準的なセラミック製閉包に追加的な量を重ねることである。別の方法は、薄膜処理の間に、要素の上に薄膜閉包をメッキまたは堆積させることである。例えば、センダストまたはニッケル-鉄合金(例えば、45/45)などの硬い材料の薄膜閉包を、モジュール上に形成させることが可能である。
【0055】
外側モジュール302、306上に、厚さが縮小されたセラミックもしくは薄膜閉包334、336が存在するか、または閉包がない状態の場合、書き込みから読み出しまでのギャップ間隔は、例えば約0.75mmなどの約1mm未満まで、または通常用いられているリニア・テープ・オープン(LTO)テープ・ヘッドの間隔の50%未満まで、縮小させることが可能である。モジュール302、304、306の間の開放空間は、依然として、約0.5~0.6mmに設定されることが可能であり、これは、いくつかのアプローチでは、第2のモジュール304上のテープ移動を安定化させるのに理想的である。
【0056】
テープの張力と剛性とに応じて、外側モジュールのテープ支持面を、第2のモジュールのテープ支持面に対して角度を設けることが望まれる場合があり得る。
図6は、モジュール302、304、306が接線またはほぼ接線(角度を有する)構成になっているアプローチを図解している。特に、外側モジュール302、306のテープ支持面は、第2のモジュール304の所望のラップ角α
2で、テープとほぼ平行である。換言すると、外側モジュール302、306のテープ支持面308、312の平面は、第2のモジュール304に対して、テープ315のおおよその所望のラップ角α
2という向きになっている。このアプローチでは、テープは、また、後続モジュール306から離れることになり、それによって、後続モジュール306における要素上の摩耗を減少させる。これらのアプローチは、書き込み-読み出し-書き込みの応用にとって特に有用である。これらのアプローチの追加的な態様は、上述したものと類似している。
【0057】
典型的には、テープ・ラップ角は、
図5に示されたアプローチと
図6に示されたアプローチとのほぼ中間に設定され得る。
【0058】
図7は、モジュール302、304、306がオーバーラップした構成にあるアプローチを図解している。特に、外側モジュール302、306のテープ支持面308、312は、第2のモジュール304に対して所望のラップ角α
2に設定されるときには、テープ315よりも僅かに大きな角度を有する。このアプローチでは、テープは、後続モジュールから離れることはなく、後続モジュールが書き込みまたは読み出しのために用いられることを可能にする。したがって、先行モジュールと中間モジュールとは、共に、読み出しまたは書き込み機能あるいはその両方を実行することができるが、他方で、後続モジュールは、書き込まれたデータだけを、どのようなものであっても読み出すことができる。こうして、これらのアプローチは、書き込み-読み出し-書き込み、読み出し-書き込み-読み出し、書き込み-書き込み-読み出しの応用に好適である。後者のアプローチでは、閉包は、読み出し能力を保証するために、テープ・キャノピよりも幅が広くなくてはならない。より幅の広い閉包は、より幅の広いギャップ間の分離を要求することがあり得る。したがって、好適なアプローチは、書き込み-読み出し-書き込み構成を有しており、この構成は、より幅の狭いギャップ間の分離を許容する短縮された閉包を用い得る。
【0059】
図6および7に示されたアプローチの追加的な態様は、上述したものと同様である。
【0060】
マルチ・モジュール・テープ・ヘッド126の32チャネル・バージョンは、現在の16チャネルのピギーバックLTOモジュールと同じまたはそれよりも小さなピッチ上にリードを有するケーブル350を用い得るか、または代替的に、モジュール上の接続が、ケーブル・スパンを50%縮小するために、オルガンの鍵盤状であり得る。上下の書き込みペアのシールドされていないケーブルが、ライタのために用いられ得るが、ライタは、一体化されたサーボ・リーダを有することがあり得る。
【0061】
外側ラップ角α1は、調整可能なローラやスライドなど、当該技術分野で既知であるいずれかのタイプのガイドによって、または代替的にヘッドと一体であるアウトリガによって、ドライブにおいて設定され得る。ラップ角を設定するのには、例えば、オフセットのある軸を有するローラが用いられることがあり得る。オフセットのある軸は、回転の軌道弧を生じさせ、ラップ角α1の正確な位置合わせを可能にする。
【0062】
上述したアプローチのいずれかを組み立てるには、従来型のUビーム・アセンブリを用いることが可能である。したがって、結果的に得られるヘッドの質量は維持され得るし、または従来の世代のヘッドと比較すると、軽量化される場合さえあり得る。他のアプローチでは、モジュールは、単体として構築されることもあり得る。本明細書における教示を得た当業者であれば、これらのヘッドを製造する他の既知の方法を、これらのヘッドを構築するために適合させ得ることを理解するであろう。さらに、特に断らない場合には、本開示を読むことで当業者には明らかになるように、当該技術分野で知られているタイプのプロセスおよび材料を、本明細書における教示と一致するような様々なアプローチにおける使用のために、適合させ得る。
【0063】
テープがモジュールの上を移動させられるときには、例えば低いエラー・レートで読み出しまたは書き込みあるいはその両方が効率的に実行されるように、テープがモジュール上の磁気トランスデューサの十分に近くを通過することが好ましい。いくつかのアプローチによると、モジュールの磁気トランスデューサを有する部分の十分に近くをテープが通過することを保証するために、テープ・テンティングが用いられることがあり得る。このプロセスをよりよく理解するため、
図8A~8Cが、テープ・テンティングの原理を図解している。
図8Aは、対向するエッジ804とエッジ806との間に延長する上側のテープ支え面802を有するモジュール800を示している。静止したテープ808が、エッジ804、806の周囲に巻き付いている状態で示されている。示されているように、テープ808の曲げ剛性が、テープをテープ支え面802から持ち上げる。
図8Aに示されているように、テープの張力は、テープの形状を平坦にする傾向を有する。テープの張力が最小である場合、テープの曲率は、示されているより放物線状になる。
【0064】
図8Bは、移動中のテープ808を示している。先行エッジ、すなわち移動しているときにテープが遭遇する最初のエッジは、空気をテープから剥ぐように機能する場合があり、それによって、テープ808とテープ支え面802との間に準大気気圧を生じさせる。
図8Bでは、テープが左から右に移動しているときに、先行エッジは左側のエッジであり、右側のエッジが後続エッジである。その結果、テープの上方の大気圧が、テープをテープ支え面802に向かう方向に強制し、それによってエッジのそれぞれの近傍でテープ・テンティングを生じさせる。テープの曲げ剛性が大気圧の影響に抵抗し、それによって先行エッジと後続エッジとの両方の近傍にテープ・テンティングを引き起こす。モデル化は、2つのテントが、形状において極めて類似することを予測する。
【0065】
図8Cは、後続ガイド810がテープ支え面の平面の上方に配置されたとしても、準大気圧がどのようにテープ808をテープ支え面802に向かう方向に強制するかを示している。
【0066】
したがって、テープがモジュール上を通過するときのテープの経路を方向付けるため、テープ・テンティングが用いられ得ることになる。上述したように、好ましくは、読み取りまたは書き込みあるいはその両方が、例えば低いエラー・レートで効率的に実行されるように、モジュールの磁気トランスデューサを有する部分の十分近くをテープが通過するのを保証するために、テープ・テンティングが用いられることがあり得る。
【0067】
磁気テープは、テープ・カートリッジに格納されることがあり得るが、テープ・カートリッジは、次に、データ・ストレージ・ライブラリ内部のストレージ・スロットなどに格納される。テープ・カートリッジは、物理的に取り出すためにアクセス可能な様態で、ライブラリに格納され得る。磁気テープおよびテープ・カートリッジに加え、データ・ストレージ・ライブラリは、データの磁気テープへの記憶またはデータの磁気テープからの回収あるいはその両方を行うデータ・ストレージ・ドライブを含み得る。さらに、テープ・ライブラリとそれらに含まれるコンポーネントとは、テープとテープに格納されたデータとへのアクセスを可能にするファイル・システムを実装し得る。
【0068】
ファイル・システムは、どのようにデータがメモリに記憶されメモリから取り出されるのかを制御するのに、用いられ得る。よって、ファイル・システムは、例えばファイルがメモリにおいて編成される様態など、オペレーティング・システムがメモリ内のファイルを追跡するのに用いるプロセスとデータ構造とを含み得る。リニア・テープ・ファイル・システム(LTFS)とは、適合するテープへのアクセスを可能にするために、与えられたライブラリにおいて実装され得るファイル・システムの例示的なフォーマットである。本明細書の様々なアプローチが、例えばIBMのスペクトラム・アーカイブ・ライブラリ・エディション(LTFS LE)を含む、広い範囲のファイル・システム・フォーマットを用いて実装可能であるということが、理解されるべきである。しかし、コンテキストを提供するため、そして単に読者を助けるために、以下のアプローチのいくつかが、あるタイプのファイル・システム形式であるLTFSを参照して説明される場合がある。これは、単なる例として行われているのであって、特許請求の範囲で定義されている本発明に対する限定であると見なされるべきではない。
【0069】
テープ・カートリッジは、そのカートリッジをテープ・ドライブに挿入することによって「ロード」され得るのであり、そして、テープ・カートリッジは、そのテープ・カートリッジをテープ・ドライブから取り外すことによって「アンロード」され得る。いったんテープ・ドライブにロードされると、カートリッジ内のテープは、テープ・カートリッジからテープ(磁気記録部分)を物理的に引き出し、引き出されたテープをテープ・ドライブの磁気テープ・ヘッドの上を通過させることによって、ドライブに「通される」ことになり得る。さらに、テープは、そのテープを磁気テープ・ヘッドの上を移動させるため、巻取リール(例えば、上記の
図1Aの121を参照)に、取り付けられ得る。
【0070】
いったんテープ・ドライブに通されると、カートリッジ内のテープは、テープ上のメタデータを読み取り、そのテープをLTFSがファイル・システムの構成要素として用いることができる状態にすることにより、「マウント」され得る。さらに、テープを「マウント解除」するためには、メタデータが(例えば、インデックスとして)テープ上に最初に書き込まれるのが好ましいのであって、その後であれば、LTFSがテープをファイル・システムの構成要素として用いることが許容されている状態から、テープを取り除くことができる。最後に、テープを「抜き取る」ためには、テープが巻取リールから取り外され、再びテープ・カートリッジの内部に物理的に配置される。カートリッジは、テープが抜き取られた後であっても、例えば別の読み取り要求または書き込み要求あるいはその両方を待ちながら、テープ・ドライブ内にロードされたままの状態に留まり得る。しかし、他の場合には、例えば上述したように、テープが抜き取られる際に、テープ・カートリッジがテープ・ドライブからアンロードされることもある。
【0071】
磁気テープは、シーケンシャルなアクセス媒体である。つまり、新たなデータは、以前に書き込まれたデータの末尾にそのデータを追加することによって、テープに書き込まれる。したがって、ただ1つのパーティションを含むテープにデータが記録されるときには、データが頻繁に更新されそれに応じてテープに再び書き込まれると、メタデータ(例えば、割り当て情報)が、以前に書き込まれたデータの末尾に連続的に追加されることになる。その結果、テープが最初にマウントされると、そのテープに対応するメタデータの最新のコピーにアクセスするために、最後尾の情報が読み出される。しかし、これは、与えられているテープをマウントするプロセスに、相当な量の遅延をもたらす。
【0072】
単一パーティションのテープ媒体によって生じる遅延を克服するために、LTFS形式は、インデックス・パーティションとデータ・パーティションとを含む、2つのパーティションに分割されたテープを含む。インデックス・パーティションは、例えばファイル割り当て情報(インデックス)などのメタデータ(メタ情報)を記録するように構成され得るが、他方で、データ・パーティションは、例えばデータ自体であるデータの本体を記録するようにも構成され得る。
【0073】
図9を参照すると、インデックス・パーティション902とデータ・パーティション904とを含む磁気テープ900が、あるアプローチに従って、図解されている。示されているように、データ・ファイルとインデックスとが、テープ上に記憶されている。ここでの説明を読むときに当業者によって理解されるだろうが、LTFS形式は、テープ906の先頭にあるインデックス・パーティション902にインデックス情報が記録されることを可能にする。
【0074】
インデックス情報が更新されるときには、以前のバージョンのインデックス情報を上書きするのが好ましく、それによって、更新された現在のインデックス情報に、テープの先頭にあるインデックス・パーティションでアクセスできるようになる。
図9に図解されている特定の例によると、最新バージョンのメタデータであるインデックス3が、テープ906の先頭にあるインデックス・パーティション902に記録されている。逆に、3つすべてのバージョンのメタデータであるインデックス1、インデックス2、インデックス3と、データであるファイルA、ファイルB、ファイルC、ファイルDとは、テープのデータ・パーティション904に記録されている。インデックス1とインデックス2とは古い(例えば、更新されていない)インデックスであるけれど、上述したように、情報は、以前に書き込まれたデータの末尾にその情報を追加することによってテープに書き込まれるため、これらの古いインデックスであるインデックス1、インデックス2は、上書きされずに、テープ900上のデータ・パーティション904に記憶されたままになる。
【0075】
メタデータは、インデックス・パーティション902またはデータ・パーティション904あるいはその両方において、所望のアプローチに応じて同じ様態でまたは異なる様態で、更新され得る。いくつかのアプローチによると、例えばテープが再びマウントされるときにインデックスがインデックス・パーティションから迅速に読み取られることができるように、インデックス・パーティション902またはデータ・パーティション904あるいはその両方のメタデータが、テープがアンマウントされることに応答して、更新され得る。例えばバックアップのオプションとしてデータ・パーティション904に記録されているメタデータを用いてテープがマウントされ得るようにするためには、メタデータは、データ・パーティション904に書き込まれることが好ましい。
【0076】
本発明を限定することなどまったく意図されていない1つの例によると、例えば突然の停電が発生したときのデータ損失を軽減できるように、ユーザがシステムに明示的にそうするようにと指示をしたとき、またはユーザによって設定され得る所定の期間によって指定された時間に、インデックスをデータ・パーティションに書き込む機能を提供するのに、LTFS LEが用いられることがあり得る。
【0077】
上述したように、磁気テープの上の異なる位置から複数のファイルを読み出すプロセスは、それらのファイルが記憶されている様々な物理的位置の間で、磁気ヘッドを再位置決めすることを含む。従来型のプロセスは、ファイル自体がどのように相互に関係しているかに対応する順序でファイルがアクセスされるように、これらの読み出し動作を実行してきた。例えば、ファイルAが最初にアクセスされ、ファイルBが二番目にアクセスされ、ファイルCが三番目にアクセスされる、などである。これは、これら従来型のプロセスは、ファイルにアクセスする順序を評価する際に、ファイル・インデックスの記録番号を参照するだけであるという事実に部分的に起因する。結果的に、テープの上の各ファイルの始点を探すために実行される反復的な移動のため、このような様態でファイルにアクセスするのは、多くの場合、非効率的である。これは、既に通過されたファイルにアクセスするためにテープ・ドライブがテープを反復的に巻き戻す状況において、特に明らかである。さらに、アクセスされているファイルの数が増加するにつれて、これらの従来型のプロセスによって実行されるヘッドの再位置決めの量も同様に増加し、それにより、データ・アクセス時間がさらに増加する。例えば、磁気テープは、約12テラバイトの非圧縮データを記憶することができる。さらに、磁気テープの上に書き込まれたファイルの平均サイズは約10メガバイトであるが、これは、ある与えられた磁気テープの上に記憶されつつある約120万個のファイルに相当する。
【0078】
古い実装例によって経験されるこれらの従来型の短所と極めて対照的に、本明細書に含まれているアプローチのうちの様々なものは、磁気テープからの複数のファイルに、より効率的な様態で、アクセスする(例えば、読み出す)ことができる。このような改善は、ファイルを実際に読み出す間に、アクセスされるファイルを、テープ・ドライブによって実行される再位置決めの量を最小化する特定の順序にソートすることの結果として、達成される。さらに、本明細書に含まれているアプローチのうちの様々なものは、アクセスされる様々なファイルを、磁気テープの上におけるそれらのそれぞれの物理的記憶位置に基づいて、異なるグループ(または部分)に分割する。これにより、あるグループのファイルが、別のグループにおけるファイルのそれぞれが同時にアクセスされている間に、記憶されることが可能になる。結果的に、ヘッドの再位置決め動作の回数が減少させられるだけでなく、ファイルをソートするプロセスの間に計算資源が利用される効率も、例えば後でさらに詳細に説明されるように、改善されるのである
【0079】
ここで
図10を参照すると、読み出しリクエストにおいて特定されている複数のファイルをコピーするための方法1000のフローチャートが、あるアプローチに従って、示されている。方法1000は、様々なアプローチで、数ある中でも
図1A~9に示されている環境のいずれにおいても、本発明に従って、実行され得る。もちろん、当業者ならば本明細書における説明を読むことで理解するであろうが、
図10に具体的に記載されているより多くのまたはそれより少ない動作が、方法1000に含まれている場合もあり得る。
【0080】
方法1000のステップのそれぞれは、動作環境のいずれかの適切なコンポーネントによって実行され得る。例えば、様々なアプローチにおいて、方法1000は、コントローラ、プロセッサ、コンピュータ、その他、または1つまたは複数のプロセッサをその中に有する何らかのその他のデバイスによって、部分的にまたは全体として、実行され得る。よって、いくつかのアプローチでは、方法1000は、コンピュータ実装方法であり得る。そのようなアプローチでは、この方法を実装するのに用いられるコンピュータは、コントローラ、テープ、外部ホスト、サーバ、その他など、テープ・ドライブ自体またはその一部を含み得る。さらに、コンピュータ、プロセッサおよびコントローラという用語は、本明細書におけるアプローチのどれとの関係においても、相互に交換可能に用いられ得るのであって、そのようなコンポーネントは、本発明の多くの様々な順列において、均等であると考えられる。
【0081】
さらに、プロセッサを有するアプローチの場合には、例えば、処理回路、チップまたはハードウェアまたはソフトウェアあるいはその両方として実装されるモジュールあるいはそれらの組合せなどのプロセッサは、好ましくは少なくとも1つのハードウェア・コンポーネントを有しており、方法1000の1つまたは複数のステップを実行するために、いずれのデバイスにおいても利用され得る。例示的なプロセッサは、これらに限定されることはないが、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、その他、これらの組合せ、または当該技術分野において既知であるいずれかの他の適切なコンピューティング・デバイスを含む。
【0082】
図10に示されているように、方法1000の動作1002は、磁気テープから複数のファイルを読み出すリクエストを受け取ることを含む。アプローチに応じて、このリクエストは、ユーザ(例えば、ホスト)、動作しているアプリケーション、別の記憶デバイス、その他から受け取られ得る。本明細書で用いられている「ファイル」という用語は、いかなる意味でも限定的なものであるとは意図されていないことに、留意されるべきである。むしろ、本明細書で用いられている「ファイル」とは、例えば、データ・オブジェクト、特定の文書(例えば、ワード・プロセシング文書)、所定の量のデータまたはメタデータあるいはその両方、その他など、情報のいずれかの所望のグルーピングを指し得る。
【0083】
リクエストを受け取ったことに応答して、動作1004は、1つまたは複数のテープ・ディレクトリに対するリクエストを送ることを含むのであるが、このテープ・ディレクトリは、それぞれが、複数のファイルが記憶されている(例えば、書き込まれている)磁気テープの上の領域を識別する情報を含む。換言すると、テープ・ディレクトリは、様々なファイルが記憶されている磁気テープの上の物理的位置を、好ましくは受け取られたリクエストにおいて特定されている物理的位置を含む物理的位置を識別する。
【0084】
いくつかのアプローチでは、テープ・ディレクトリは、磁気テープにアクセスするのに用いられるテープ・ドライブに含まれるまたはそれに結合されているあるいはその両方であるメモリに記憶されている。他のアプローチでは、テープ・ディレクトリは、カートリッジ・メモリにおける情報として、磁気テープ自体の上に元々がシステム管理業務用のデータその他として、記憶されている場合もあり得る。つまり、テープ・ディレクトリが記憶されているメモリは、テープ・ドライブまたはホスト・サーバあるいはその両方における1つまたは複数のメモリ・チップには、決して限定されないことになる。したがって、いくつかのアプローチでは、動作1004で送られるテープ・ディレクトリに対するリクエストは、ホスト・サーバによって、1つまたは複数のテープ・ドライブに送られる。しかし、テープ・ディレクトリに対するリクエストは、例えば、テープ・ディレクトリがどこに記憶されているかまたはどこからアクセスされるのかあるいはその両方に応じて、いずれかの所望の位置に送られることがあり得る。
【0085】
動作1006は、さらに、1つまたは複数のテープ・ディレクトリを取得することを含む。留意するようにと既に述べたように、いくつかのアプローチでは、1つまたは複数のテープ・ディレクトリに対するリクエストが、そのテープ・ディレクトリを記憶する1つまたは複数のテープ・ドライブから送られる。つまり、テープ・ディレクトリを取得することは、いくつかのアプローチでは、1つまたは複数のテープ・ドライブからテープ・ディレクトリを受け取ることを、単に含むことがあり得る。ある例示的なアプローチによると、ただし、このアプローチは本発明を限定することは決してないのであるが、1つまたは複数のテープ・ディレクトリは、そのテープ・ディレクトリと関連する新たに定義されたバッファ識別子を用いて所望のテープ・ディレクトリを特定することによって取得され得るのであって、読み出しバッファ・コマンドを用いてテープ・ドライブからターミナル・ディスクレーマ(terminal disclaimer)を読み出し得る。他のアプローチでは、テープ・ディレクトリは、そのテープ・ディレクトリが記憶されているメモリに直接にアクセスすることの結果として、取得され得る。
【0086】
さらに、動作1008は、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域のうちの1つにマップするために、1つまたは複数のテープ・ディレクトリの最初のものを用いることを含む。いくつかのアプローチでは、ファイルのそれぞれを磁気テープの上のそれぞれの領域にマップするために、各ファイルの記録番号が、テープ・ディレクトリと組み合わされて用いられることがあり得る。磁気テープに書き込まれているファイルは、記録に基づいて、アクセスされる。これらの記録には、テープの最初から論理的な順序で、シーケンシャルに番号が付されている。しかし、テープ・ドライブは記録を圧縮しながらファイル(例えば、データ)を磁気テープの上に書き込むため、テープの上に書き込まれているファイルの位置は、データのタイプとその圧縮可能性とに応じて、変動する。つまり、記録が特定され、そのファイルを求めているリクエストが受け取られると、テープ・ディレクトリに含まれている情報を用いて、磁気テープの上におけるファイルの物理的位置に関する予測がなされ得る。
【0087】
ある例示的なアプローチによると、ただし、このアプローチが本発明を限定することは決して意図されていないが、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域のうちの1つにマップするために各ファイルのテープ・ディレクトリまたは記録番号あるいはその両方を用いることは、与えられたファイルに対応するブロックの範囲を識別することを含む。様々なファイルに対するブロックの範囲は、当業者には本明細書における説明を読んだ後ならば明らかであろういずれかの情報またはプロセスあるいはその両方を用いて、識別され得る。例えば、いくつかのアプローチでは、ファイルの記録番号が、それぞれのブロックの範囲を決定するのに用いられ得る。さらに、与えられたファイルは、当業者が本明細書における説明を読んだ後ならば理解するだろうように、その与えられたファイルに対応するブロックの範囲を含む磁気テープの上の領域に割り当てられる。
【0088】
他のアプローチによると、与えられたファイルに対応するブロックの範囲を識別することは、そのファイルの上の最初の記録番号またはサイズあるいはその両方を記載しているエクステントに属するブロックの範囲を取得することを含み得る。これは、いくつかのアプローチでは、それぞれのファイル・システムのインターフェースを用いることによって、達成され得る。また、ファイル・システムにおけるすべてのファイルのブロックの範囲は、さらに、例えば以下で詳細に説明されるように、複数のファイルが読み出される所望の順序を決定するのに用いられ得る。また、あるエクステントが複数のテープ・ディレクトリに属するときには、当業者が本明細書における説明を読んだ後ならば理解するだろうように、そのエクステントは、好ましくは、各テープ・ディレクトリの切れ目(breaks)に対応する複数のブロック範囲のエクステントに分割されることが、留意されるべきである。分割されたエクステントは、それ以後は、それぞれのブロック範囲に属するものとして、扱われる。ファイルに対応するメタデータの取得は、与えられたファイルに対応するブロックの範囲を識別することが試みられる際にも、実行され得る。
【0089】
ここで用いられる領域に関しては、磁気テープは、いくつかの領域に有効に分割され得るのであるが、分割された領域は、それぞれが、磁気テープの上の異なる物理的セクション(例えば、エリア)に対応する。例えば、磁気テープは、いくつかのアプローチにおいて、テープの長さの方向に沿った2つの領域に、有効に分割され得る。これらの領域のそれぞれは、いくつかのアプローチでは、同じテープ・ディレクトリにおいて表され得るのであるが、他方で、他のアプローチでは、これらの領域の各部分集合に対して、テープ・ディレクトリがそれぞれ確立されることもあり得る。ある例によると、ただし、この例が本発明を限定することは決して意図されていないが、約1,000メートルの長さを有する磁気テープが、その磁気テープの(例えば、半分である)500メートルの長さの各セクションに対して、1つのテープ・ディレクトリを提供することがあり得る。いくつかのアプローチでは、磁気テープは、さらに、磁気テープのラップに基づいて、分割されることもあり得る。つまり、208のラップを有する磁気テープの全体は、上述したように、このテープはさらにその長さに沿った2つのセクションに分割され得るという事実を説明するときに、全部で416の領域に分割され得ることになる。よって、いくつかのアプローチでは、磁気テープの上の各領域は、その磁気テープの上のラップ全体の半分に対応する。
【0090】
いくつかのアプローチでは、最後に書き込まれた記録番号も、テープ・ディレクトリの各領域に記憶される。よって、記録番号が関心対象であるファイルに対して特定されると、テープ・ドライブは、その関心対象であるファイルが記憶されている磁気テープの上の領域を決定するために、テープ・ディレクトリを参照することが可能な場合があり得る。換言すると、テープ・ディレクトリは、関心対象であるファイルに対する物理的記憶位置を決定するのに用いられ得る。物理的記憶位置は、さらに、関心対象であるファイルが読み出され得るように、磁気ヘッドと磁気テープとの間の相対位置を調整することをテープ・ドライブに命令するのに用いられ得る。いくつかのアプローチによると、テープ・ドライブは、関心対象のファイルが記憶されている物理的位置に十分に近い磁気テープの上の位置に到達するまで、比較的高速で磁気テープを進行させるまたは巻き戻すあるいはその両方を行う(例えば、粗いルックアップを実行する)。この時点で、テープ・ドライブは、関心対象であるファイルの場所が判明するまで、テープに書き込まれているデータが読み出されることさえあり得るように、テープが進行されるまたは巻き戻されるあるいはその両方が行われる速度を低下させる(例えば、精細なルックアップを実行する)ことがあり得る。
【0091】
上述したように、動作1008は、ファイルのそれぞれをそれぞれのファイルが記憶されている磁気テープの上の領域の1つにマップするために、1つまたは複数のテープ・ディレクトリの最初のものを用いることを含む。したがって、動作1008は、同じ領域に記憶されているファイルが同じ部分集合に含まれるように、リクエストされたファイルをグループ分けする。依然として
図10を参照すると、動作1010は、さらに、磁気テープの上の同じ第1の領域に記憶されているファイルの第1の部分集合を第1の順序にソートすることを含む。換言すると、同じ領域に記憶されており同じ部分集合に割り当てられたファイルは、好ましくは、特定の順序に編成される。第1の部分集合におけるファイルは、磁気テープの上の第1の順序に物理的にソートされる(例えば、再度書き込まれる)ことはなく、むしろ、第1の部分集合におけるファイルがアクセスされ得る好適な順序に関する決定がなされる、ということが留意されるべきである。
【0092】
再度述べるが、本明細書に含まれているアプローチのうちの様々なものが、従来技術において達成可能であったよりもより効率的な様態で、磁気テープからの複数のファイルにアクセスする(例えば、読み出す)ことができる。これらの改善は、実際にファイルを読み出している間にテープ・ドライブによって実行される磁気テープの再位置決めの量を最小化する特定の順序に、アクセスされるファイルをソートする結果として、実現される。したがって、動作1010は、好ましくは、第1の順序に従って第1の部分集合におけるファイルのそれぞれを読み出す結果として経験されるデータ・アクセス時間が、第1の順序とは異なるいずれかの順序で第1の部分集合におけるファイルのそれぞれを読み出す結果として経験されるデータ・アクセス時間よりも短くなるように、第1の部分集合におけるファイルをソートする。この改善されたデータ・アクセス時間は、与えられた順序でファイルを読み出す間にテープ・ドライブによって磁気テープに対して実行されるヘッドの再位置決めの量を最小化する順序を決定するために、第1の領域に記憶されている各ファイルの物理的位置を用いることの結果として生じる。いくつかのアプローチでは、第1の部分集合におけるファイルは、対応するファイルのそれぞれと関連する第1の記録番号を同様に用いて(例えば、基づいて)、第1の順序にソートされる。
【0093】
動作1010から、方法1000は、読み出しリクエストにおいて識別され第1のテープ・ディレクトリに対応するファイルの全部がソートされたかどうかを判断することを含む判断1012に進む。換言すると、判断1012は、第1のテープ・ディレクトリにおいて表されているファイルの部分集合のそれぞれが評価されたかどうかを判断する。ファイルのうちの少なくとも1つがまだソートされていないと判断されると、方法1000は、動作1014に進む。そこでは、動作1014は、ファイルの以後の(例えば、次の)部分集合に進むことを含む。方法1000はいずれかの所望の順序でファイルの部分集合の間を進み得る、ということに留意されるべきである。よって、本明細書での説明との関係では、「ファイルのうちの以後の部分集合」とは、既にソートされた領域に隣接する領域、リクエストされたファイルのうちで次に大きな個数を含む領域などに含まれるファイルを指し得る。
【0094】
さらに、動作1016は、ファイルのうちの以後の部分集合を、以後の順序にソートすることを含む。ファイルのうちの以後の部分集合は、各ファイルまたはファイルのそれぞれと関連する第1の記録番号あるいはその両方の物理的位置に基づいて、ソートされるのが好ましい。しかし、ファイルのうちの以後の部分集合は、動作1010との関係で上述されたアプローチのうちの1つまたは複数を用いて、以後の順序にソートされ得る。
【0095】
リクエストされるファイルの個数が増加するにつれて、効率的な様態でアクセスされる(例えば、読み出される)ようにリクエストされたファイルをソートすることに関係する計算量も同様に増加する。よって、各部分集合におけるファイルを個別的にソートすることによって、方法1000は、ファイルのうちの複数の部分集合を同時かつ並列的に処理することができ、それによって、動作効率が著しく改善される。例えば、ファイルのうちの以後の部分集合が動作1016においてソートされている間に、テープ・ドライブは、以前の順序(ここでは、第1の順序)に従って以前の部分集合(ここでは、第1の部分集合)におけるファイルのそれぞれを読み出すように命令される。動作1018を参照してほしい。ファイルが磁気テープから読み出される特定の順序を特定する1つまたは複数の命令が、テープ・ドライブに送られ得る。しかし、磁気テープからファイルを実際に読み出すプロセスは、例えば、
図1A~9に関して本明細書で説明されたプロセスなど、いずれかの所望のプロセスを用いて、実行され得る。
【0096】
つまり、動作1016および1018は、好ましくは、ファイルのうちの1つの部分集合が、ファイルのうちの別の部分集合が先に決定された順序で実際に読み出されている間にソートされるように、同時かつ並列的に実行されることになる。動作1016および1018は、いくつかのアプローチでは、同じホスト・サーバを用いて、同時かつ並列的に実行され得る(例えば、後述される
図11の1102を参照のこと)。しかし、他のアプローチでは、複数のサーバ、プロセッサなどが、動作を同時かつ並列的に実行するために、実装され得る。
【0097】
動作1018から、方法1000は、テープ・ドライブによってファイルの部分集合から読み出された情報(例えば、データ、メタデータ、その他)を実際に受け取ることを含む動作1020に進む。いくつかのアプローチでは、情報は、ファイルが読み出されるにつれてストリームとして受け取られ得るのであって、他方で、他のアプローチにおいては、部分集合におけるすべてのファイルから読み出された情報が、読み出し動作が終了することに応答して、テープ・ドライブによって、パケットとして、送られ得る。さらに、テープ・ドライブから受け取られる情報は、メモリ(例えば、キャッシュ、バッファ、その他)に記憶される。動作1022を参照のこと。
【0098】
オプションである動作1023は、さらに、テープ・ドライブから受け取られメモリに記憶されている情報をコンパイルすることを含む。コンパイルされた情報は、また、遠隔の記憶デバイスに送られる(例えば、伝送される)。遠隔の記憶デバイスは、好ましくは、情報のコピーのための意図されたターゲット位置に対応する。つまり、いくつかのアプローチでは、意図されたターゲット位置は、動作1002において受け取られた読み出しリクエストにおいて特定されていることがあり得る。さらに、1つまたは複数の命令が、例えば、以下でさらに詳細に説明されるように、受け取られた情報のコピーを遠隔の記憶デバイスに記憶するために、遠隔の記憶デバイスに送られ得る。
【0099】
動作1023から、方法1000は、読み出しリクエストにおいて識別され第1のテープ・ディレクトリに対応するファイルのすべてがソートされたかどうかに関する判断を反復するために、判断1012に戻る。読み出しリクエストにおいて識別され第1のテープ・ディレクトリに対応するファイルであってまだソートされていないファイルの1つまたは複数が存在すると判断すると、方法1000は、動作1014~1022が、先の以後の部分集合に追加してファイルのうちの次の以後の部分集合に対して反復されるように、動作1014に進む。例えば、動作1014は、ファイルのうちの次の以後の部分集合に進むように反復され得るのであって、他方で、動作1018は、先の以後の順序に従ってファイルのうちの先の以後の部分集合が読み出されるように、反復され得る。「ファイルのうちの次の以後の部分集合」とは、ファイルのうちの先に調べられた部分集合に続くファイルのうちの次の部分集合を指していることが、留意されるべきである。同様に、「ファイルのうちの先の以後の部分集合」とは、「ファイルのうちの次の以後の部分集合」に進む前に評価されたファイルの部分集合を指している。したがって、「次の以後の」および「先の以後の」という用語は、少なくとも、相互に対するものである。つまり、プロセス1012~1022は、読み出しリクエストにおいて識別され第1のテープ・ディレクトリに対応するファイルの個数に応じて、例えば反復的なプロセスとして、いずれかの回数だけ反復され得ることになる。
【0100】
しかし、読み出しリクエストにおいて識別され第1のテープ・ディレクトリに対応するファイルの全部がソートされたと判断されると、方法1000は、判断1024に進む。そこで、判断1024は、動作1006において取得された1つまたは複数のテープ・ディレクトリの全部が評価されたかどうかを判断することを含む。取得されたテープ・ディレクトリの少なくとも1つがまだ評価されていないと判断されると、方法1000は、テープ・ディレクトリの次の1つが、対応するファイルが記憶されている磁気テープの上の領域の1つにファイルのそれぞれをマップするのに用いられ得るように、動作1008に戻る。つまり、上述されたアプローチのいずれか1つまたは複数が、プロセス1010~1022と同様に、動作1008を反復するように実装され得る。
【0101】
判断1024に戻ると、方法1000は、取得されたテープ・ディレクトリのすべてが評価されたとの判断に応答して、動作1026に進む。そこで、動作1026は、動作1016の最後の反復において形成された順序に従って、最新の部分集合におけるファイルのそれぞれを読み出すように、テープ・ドライブに命令することを含む。つまり、動作1018に関して上述したアプローチのいずれか1つまたは複数が、動作1026を実行するために実装され得ることになる。さらに、動作1028は、例えば、動作1020との関係で上述したアプローチのうちのいずれかに従い、テープ・ドライブによってファイルのうちの最新の部分集合から読み出された情報を実際に受け取ることを含む。この受け取られた情報は、さらに、テープ・ドライブから受け取られた他の情報と共に、メモリに記憶される。動作1030を参照のこと。動作1022との関係で上述したアプローチのうちのいずれか1つまたは複数は、例えば、当業者であれば本明細書における説明を読んだ後であれば理解するように、動作1030を実行しながら、実装され得る。
【0102】
動作1032に進むと、テープ・ドライブから受け取られメモリに記憶されている情報は、コンパイルされ、遠隔の記憶デバイスに送られる(例えば、伝送される)。既に留意したように、複数のテープ・ディレクトリにわたって延長するエクステントは、分割され得るのであって、それぞれのブロック範囲に属するものとして扱われ得る。したがって、1つのブロック範囲によって構成されているファイルは、単一のブロック範囲を用いて、生成される。しかし、複数のブロック範囲によって構成されているファイルは、好ましくは、対応するオフセットでブロック範囲のデータを充填し、例えばスパース関数を用いるなど、残りの部分を空洞のままに一時的に放置することによって、生成される。そのようなファイルの少なくとも別の部分を含む追加的なブロック範囲が読み出され受け取られるにつれて、ファイルの少なくとも1つの部分が、欠けている部分を充填し対応するファイルを構築するのに用いられることが好ましい。換言すると、複数のブロック範囲によって構成されているファイルは、対応するブロックのそれぞれが読み出されるにつれて、インクリメンタルにコンパイルされる。
【0103】
遠隔の記憶デバイスは、好ましくは、情報のコピーのために意図されたターゲット位置に対応する。いくつかのアプローチでは、意図されたターゲット位置は、動作1022において受け取られる読み出しリクエストにおいて、特定され得る。さらに、1つまたは複数の命令が、受け取られた情報のコピーを遠隔記憶デバイスに記憶するために、遠隔記憶デバイスに送られる。動作1034を参照のこと。つまり、遠隔の記憶デバイスは、好ましくは、情報が先に読み出された磁気テープとは異なり、別個のものである。よって、リクエストされた情報のバックアップ・コピーが、さらなる使用、冗長記憶目的、データ移植、その他のために生成され得る。
【0104】
動作1034から、
図10のフローチャートは、動作1036に進み、それにより、方法1000は終了し得る。しかし、方法1000は動作1036に到達することで終了し得るが、方法1000に含まれるプロセスのうちのいずれかの1つまたは複数が、磁気テープの上に記憶されている複数のファイルを含む他の読み出し動作を実行するために、反復される場合があり得ることが、留意されるべきである。換言すると、方法1000に含まれるプロセスのいずれかの1つまたは複数は、以後に受け取られる読み出しリクエストを実行するために、反復され得る。
【0105】
つまり、方法1000に含まれる様々なプロセスは、従来技術において可能であったより効率的な様態で、磁気テープからの複数のファイルにアクセスする(例えば、読み出す)ことができることになる。既に述べたように、ファイルが読み出される好適な順序を決定するために、与えられた領域に記憶された各ファイルの物理的位置を用いることにより、与えられた順序でファイルを読み出しながら磁気テープに対してテープ・ドライブによって実行されるヘッドの再位置決めの量を最小化することが可能になる。また、この結果として、実行遅延を改善することができる。例えば、方法1000における様々なプロセスによって決定される順序に従って与えられた部分集合におけるファイルのそれぞれを読み出すことの結果として経験されるデータ・アクセス時間は、どの他の順序で同じ部分集合におけるファイルのそれぞれを読み出すことの結果として経験されるデータ・アクセス時間よりも短い。
【0106】
性能は、別の部分集合における(既にソートされている)ファイルがテープ・ドライブによって磁気テープから読み出されつつある間に、与えられた部分集合におけるファイルを同時にソートすることによって、さらに改善される。これが、関連する計算量を領域サイズの塊に分割することに加えて処理動作を重複させることにより、与えられた時点において消費される計算資源の量を、有効に低下させる。
【0107】
方法1000に含まれるプロセスは、動作環境のいずれかの適切なコンポーネントによって実行され得る。例えば、様々なアプローチにおいて、方法1000は、ホスト・サーバ、コントローラ、プロセッサ、コンピュータ、その他、または1つまたは複数のプロセッサをその中に有する何らかの他のデバイスによって、部分的にまたは全体として、実行され得る。次に
図11を参照すると、上述した方法1000に含まれるプロセスのうちの1つまたは複数を実装するのに用いられ得るデータ記憶システム1100が、あるアプローチに従って、図解されている。つまり、このデータ記憶システム1100は、
図10などの他の図面を参照して説明されたものなど、本明細書に列挙されたいずれかの他のアプローチからの特徴と共に、実装され得ることになる。しかし、このデータ記憶システム1100と本明細書において提示されている他のシステムとは、様々なアプリケーションまたは本明細書において列挙されている例示的なアプローチにおいて特に説明され得るまたは説明され得ない順列あるいはその両方において、用いられ得る。さらに、本明細書において提示されているデータ記憶システム1100は、いずれの所望の環境においても、用いられ得る。よって、
図11(および他の図面)は、どの可能な順列も含むものであり得る。
【0108】
示されているように、データ記憶システム1100は、テープ・ドライブ1104に結合されているサーバ1102を含む。本明細書における説明に関しては、「結合されている」とは、サーバ1102が少なくともテープ・ドライブ1104と通信することができることを示すことが意図されていることに留意すべきである。したがって、情報、リクエスト、コマンド、その他が、サーバ1102とテープ・ドライブ1104との間で、送られ得る。アプローチに応じて、サーバ1102は、例えば、Wi-Fi、ブルートゥース(R)、セルラ・ネットワーク、その他などの無線接続、ケーブル、光ファイバー・リンク、有線、その他などの有線接続、その他、または本明細書における説明を読んだ後では当業者に明らかとなり得るいずれかの他のタイプの接続を用いて、テープ・ドライブ1104に結合され得る。
【0109】
好適なアプローチでは、サーバ1102は、ホスト・サーバとして機能する。したがって、サーバ1102は、いずれかの数のまたはタイプのあるいはその両方のアプリケーションを動作させるのに用いられ得るアプリケーション・モジュール1106を含む。いくつかのアプローチによると、アプリケーション・モジュール1106は、上述した
図10の方法1000に含まれるプロセスのうちの1つまたは複数を実行し得る。継続して
図11を参照すると、アプリケーション・モジュール1106は、また、LTFSモジュール1108にも結合されている。LTFSモジュール1108は、サーバ1102またはテープ・ドライブ1104あるいはその両方において実装され得るLTFSを管理するのに用いられる。LTFSとは、テープがファイルとして認識されるファイル・システムであり、例えば、インデックスにおいてファイルに含まれる記録番号またはファイル名あるいはその両方として、記録を、先に記録されたメタデータと共に、ファイル・システムにおけるファイルとして認識することができる。したがって、LTFSモジュール1108は、いくつかのアプローチでは、デバイス・ドライバを通じて、テープ・ドライブと通信する。アプリケーション・モジュール1106もまた、ファイル・システム1100のアプリケーション・プログラミング・インターフェースを用いて、ユーザによって特定されるファイルを読み出し得る。
【0110】
磁気テープから読み出されるデータは、例えば、本明細書で説明されているアプローチのいずれかに従って、ターゲット記憶位置にコピーされ得る。例えば、いくつかのアプローチでは、複数のファイルの冗長コピーが、HDDなどの異なる記憶デバイスにおいて、作成され得る。つまり、本明細書で説明されている様々なアプローチは、多層データ記憶システムの複数の層の間でデータが転送されつつある状況で、実装され得ることになる。
【0111】
例えば、
図12を参照すると、あるアプローチによる記憶システム1200が示されている。
図12に示されている要素のうちのいくつかは、様々なアプローチに従って、ハードウェアまたはソフトウェアあるいはその両方として実装され得る、ということに留意してほしい。記憶システム1200は、少なくとも1つの上位記憶層1202と少なくとも1つの下位記憶層1206との上に、複数の媒体またはドライブあるいはその両方と通信するための記憶システム・マネージャ1212を含み得る。上位記憶層1202は、好ましくは、ハード・ディスク・ドライブ(HDD)におけるハード・ディスク、不揮発性メモリ(NVM)、ソリッド・ステート・ドライブ(SSD)におけるソリッド・ステート・メモリ、フラッシュ・メモリ、SSDアレイ、フラッシュ・メモリ・アレイなど、または本明細書に記載されたその他のもの、もしくは当技術分野において既知のその他のもの、あるいはそれらの組合せなど、1つまたは複数のランダム・アクセスまたは直接アクセスあるいはその両方の媒体1204を含み得る。下位記憶層1206は、好ましくは、テープ・ドライブにおける磁気テープまたは光学媒体あるいはその両方などのシーケンシャル・アクセス媒体、低速アクセスHDD、低速アクセスSSD、または本明細書に記載されたその他のもの、もしくは当技術分野において既知のその他のもの、あるいはそれらの組合せを含む、1つまたは複数の低性能記憶媒体1208を含み得る。1つまたは複数の追加記憶層1216は、システム1200の設計者によって希望されるように、記憶メモリ媒体のいずれかの組合せを含み得る。また、上位記憶層1202または下位記憶層1206あるいはその両方のうちのいずれかが、記憶デバイスまたは記憶媒体あるいはその両方の何らかの組合せを含むこともあり得る。
【0112】
記憶システム・マネージャ1212は、
図12に示されているような記憶エリア・ネットワーク(SAN)、または何らかの他の適切なネットワーク・タイプなどのネットワーク1210を通じて、上位記憶層1202と下位記憶層1206との上のドライブ1204または記憶媒体1208あるいはその両方と通信し得る。記憶システム・マネージャ1212は、また、ホスト・インターフェース1214を通じて1つまたは複数のホスト・システム(図示せず)と通信することもあるが、このホスト・インターフェース1214は、記憶システム・マネージャ1212の一部であり得るし、または一部ではないこともあり得る。記憶システム・マネージャ1212または記憶システム1200のいずれかの他のコンポーネントあるいはその両方は、ハードウェアまたはソフトウェアあるいはその両方において実装され得るのであって、中央処理装置(CPU)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)など、当該技術分野で既知であるタイプのコマンドを実行するためのプロセッサ(図示せず)を利用することがあり得る。もちろん、当業者には本説明を読むことで明らかになるように、記憶システムのいずれかの配列が用いられ得る。
【0113】
より多くのアプローチにおいて、記憶システム1200は、任意の数のデータ記憶層を含み得るのであり、各記憶層の内部には、同一または異なる記憶メモリ媒体を含み得る。例えば、各データ記憶層は、HDD、SSD、シーケンシャル・アクセス媒体(テープ・ドライブにおけるテープ、光ディスク・ドライブにおける光ディスクなど)、直接アクセス媒体(CD-ROM、DVD-ROMなど)、または複数の媒体記憶タイプのいずれかの組合せなど、同一のタイプの記憶メモリ媒体を含み得る。1つのそのような構成では、上位記憶層1202は、高性能記憶環境においてデータを記憶するためのSSD記憶媒体の大部分を含み得るのであり、下位記憶層1206と追加記憶層1216とを含む残りの記憶層は、低性能記憶環境においてデータを記憶するためのSDD、HDD、テープ・ドライブなどのいずれかの組合せを含み得る。このように、より頻繁にアクセスされるデータ、より高い優先順位を有するデータ、より高速にアクセスされる必要があるデータなどは、上位記憶層1202に記憶され得るのであって、他方で、これらの属性のうちの1つを有しないデータは、下位記憶層1206を含む追加記憶層1216に記憶され得る。もちろん、当業者は、本説明を読むことで、本明細書において提示されているアプローチに従い、異なる記憶方式として実装するための記憶媒体のタイプの多くの他の組合せを考案し得る。
【0114】
いくつかのアプローチに従うと、(1200などの)記憶システムは、データ・セットを開くリクエストを受け取るように構成されたロジックと、リクエストされたデータ・セットが、複数の関連する部分に階層化されたデータ記憶システム1200の下位記憶層1206に記憶されているかどうかを判断するように構成されたロジックと、リクエストされたデータ・セットの各関連する部分を、階層化されたデータ記憶システム1200の上位記憶層1202に移動させるように構成されたロジックと、階層化されたデータ記憶システム1200の上位記憶層1202におけるリクエストされたデータ・セットを関連の部分から組み立てるロジックと、を含み得る。
【0115】
本発明を限定することはまったく意図していないが、本明細書に含まれる様々なアプローチによって達成される改善を例示する使用中の例によると、百万個のファイル(すなわち、n=1,000,000)を特定する読み出しリクエストが受け取られる。この個数の特定されたファイルを単にソートするための従来型のプロセスは、O(n×log(n))の計算量を有する。したがって、これらの百万個の特定されたファイルを従来型のプロセスを用いて読み出されるべき順序にソートするには約24時間を要する、と推定することができる。
【0116】
極めて対照的に、本明細書において紹介されている様々なアプローチは、「n個」のファイルを、O(n×log(k))の計算量で、「k個」の領域に分割するためのプロセスを紹介している。これらの計算量を単純に比較することはできないが、「n」が百万に等しく、「k」が2つの半分×208ラップ、すなわち416個の領域に等しい場合には、従来の方法で達成可能な計算量と比較すると、計算量を下記のパーセンテージだけ減少させることが可能であると予想される:
【数1】
【0117】
したがって、本明細書に含まれているアプローチのいくつかは、同じ百万個の特定されたファイルを、以下の時間すなわち24時間×43.7%=10時間29分で、読み出されるべき順序にソートすることができるのである。
【0118】
さらに、各テープ・ディレクトリ領域における計算量は、O((n/k)×log(n/k))として表され得る。しかし、下記の数式は、さらに、テープ・ドライブによって読み出されつつある既にソートされたファイルと同時かつ並列的にファイルをソートすることの結果として達成される計算効率を組み入れている:
【数2】
【0119】
したがって、本明細書に含まれているアプローチの様々なものは、磁気テープ上の複数のファイルにアクセスするための従来型の手順が経験する計算量の僅かに0.135%まで、計算量を減少させることができる。すべての百万個のファイルをソートするのに約24時間を要する従来型の手順の上述した例の後で、本明細書に含まれているアプローチは、各テープ・ディレクトリに含まれているファイルを約2分でソートすることができる。さらに、テープ・ドライブは、約5.6メートル/秒で、磁気テープを進行させるまたは巻き戻すあるいはその両方が可能である。よって、テープ・ドライブは、約500メートルの長さを有する与えられたテープ・ディレクトリの領域から、約1分30秒で、ファイルにおけるデータを読み出すことができる。比較すると、標準的なテープ・ドライブの高さの半分を有するテープ・ドライブが、約4.7メートル/秒という読み出し速度で、約1分46秒の間に、同じ500メートルの磁気テープをカバーすることができるのである。
【0120】
好適なアプローチにおいては、テープ・ディレクトリのそれぞれに対するソート・プロセスは、テープからのファイルの読み出しプロセスと並列的に実行されるので、それぞれのテープ・ディレクトリに対するソート・プロセスを実行するために、追加的な15~30秒が用いられる。よって、磁気テープからデータが読み出された後の計算が完了したときにそれ以後の読み出しプロセスが開始される場合には、例えば、当業者が本明細書の説明を読んだ後であれば理解するように、「停止」位置から読み出し「開始」位置への約3~5秒の巻き戻しが、生成される。したがって、計算の実行に関与する時間を前もって予測し、磁気テープの進行または巻き戻し速度を調整することが望ましい。
【0121】
ある例によると、ただし、この例によって本発明が限定されることはやはりまったく意図していないが、約4.23メートル/秒のテープ速度に対しては、約118秒の計算時間が、そして、約3.87メートル/秒のテープ速度に対しては、約129秒の計算時間が、経験される。さらに、複数のテープ速度を組み合わせることによって、微調整を行うことも可能である。テープの各領域に対して15~30秒が追加されると、磁気テープの全体を評価するのに要する時間量は、次の通りである:すなわち、15秒×208領域=52分ないし30秒×208領域=104分(1時間44分)である。
【0122】
これらのテープ位置決め遅延と上述したファイルのソートに関する達成とを組み合わせると、以下のような百万個のファイルを特定する読み出し動作を実行することに関連する全時間量は、次の通りである:すなわち、テープの各領域のために組み入れられる時間に応じて、(24時間×43.7%)+(52分ないし1時間44分)=11時間21分ないし12時間13分である。したがって、本明細書に含まれている様々なアプローチは、従来型の手順が同じ結果を達成することができる時間量の約半分で、複数ファイルの読み出しまたはリクエストのコピーあるいはその両方を実行することができる、と予想することができる。
【0123】
再び述べるが、これらの著しい改善は、少なくとも部分的には、テープ・ディレクトリを用いることの結果として、達成される。例えば、複数のファイルを特定する読み出しまたはコピー・リクエストが受け取られると、磁気テープ上においてそれぞれのファイルのデータが記憶されている領域に基づき、特にテープ・ディレクトリを前もって参照して、カテゴリ分けが実行される。そして、テープ・ドライブは、各領域に対する記録をソートすることができ、次に、磁気テープの次の領域におけるファイルを同時にソートしながら、ソートされた順序で記録を読み出すことができる。例示的なアプローチによると、ただし、この例示的なアプローチが本発明を限定することはまったく意図していないが、磁気テープ上に書き込まれた複数のファイルを特定する読み出しリクエストまたはコピー・リクエストあるいはその両方が受け取られる。次に、テープ・ディレクトリ情報が、テープ・ドライブから取得され、各コピー・ターゲット・ファイルの記録番号が質問され、その後で、テープ・ディレクトリ領域に対応するグループにカテゴリ分けされる。第1のテープ・ディレクトリ領域に属するファイルは、次に、記録番号と領域における物理的位置とによってソートされる。いったんソートされると、磁気テープの次の領域におけるファイルを同時にソートしながら、ファイルが、ソートされた順序で読み出される。ファイルは、磁気テープから読み出されたデータを用いて生成され、結果的には、ターゲットとなる記憶位置にコピーされる。
【0124】
本発明は、統合のいずれかの可能な技術詳細レベルにおける、システム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含み得る。
【0125】
コンピュータ可読記憶媒体は、命令実行デバイスによって用いられるための命令を保持および記憶することが可能な有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されることはないが、電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、またはこれらのいずれかの適切な組合せであり得る。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能でプログラマブルなリード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝としての隆起構造など機械的にエンコードされているデバイス、および以上のいずれかの適切な組合せを含む。本明細書で用いられるコンピュータ可読記憶媒体とは、それ自体、無線波もしくはその他の自由に伝播する電磁波、導波管もしくはその他の伝送媒体を伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通過して伝送される電気信号など、一過性の信号として解釈されるべきではない。
【0126】
本明細書で説明されているコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング・デバイス/処理デバイスに、あるいは、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはそれらの組合せなどのネットワークを介して外部コンピュータまたは外部の記憶デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組合せを含み得る。各コンピューティング・デバイス/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令をそれぞれのコンピューティング・デバイス/処理デバイスにおけるコンピュータ可読記憶媒体に記憶するために転送する。
【0127】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路構成のためのコンフィギュレーション・データ、あるいは、Smalltalk(R)、C++もしくは同様のものなどのオブジェクト指向プログラミング言語と、「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語と、を含む1つもしくは複数のプログラミング言語のいずれかの組合せで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行する、ユーザのコンピュータ上でスタンドアロンのソフトウェア・パッケージとして部分的に実行する、一部がユーザのコンピュータ上で一部がリモート・コンピュータの上で実行する、またはリモート・コンピュータ上もしくはサーバ上で全体的に実行することがあり得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続されることがあり得るし、またはこの接続は、(例えば、インターネット・サービス・プロバイダを用いて、インターネット経由で)外部コンピュータに対してなされることもあり得る。いくつかの実施形態では、本発明の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路構成が、コンピュータ可読プログラム命令の状態情報を利用することにより、この電子回路構成をカスタマイズするために、コンピュータ可読プログラム命令を実行することがあり得る。
【0128】
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートによる図解またはブロック図あるいはその両方を参照して説明されている。フローチャートによる図解またはブロック図あるいはその両方の各ブロックと、フローチャートによる図解またはブロック図あるいはその両方におけるブロックの組合せとは、コンピュータ可読プログラム命令によって実装され得る、ということが理解されるだろう。
【0129】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定されている機能/作用を実装するための手段を作成するように、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサに提供され、マシンを生じさせ得る。これらのコンピュータ可読プログラム命令は、また、命令が記憶されているコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定されている機能/作用の態様を実装する命令を含む製品を構成するように、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはそれらの組合せに特定の様態で機能するように指示することができるコンピュータ可読記憶媒体に記憶されることもあり得る。
【0130】
コンピュータ可読プログラム命令は、また、コンピュータ、その他のプログラム可能な装置、またはその他のデバイスにおいて実行される命令が、フローチャートまたはブロック図あるいはその両方における1つまたは複数のブロックで指定されている機能/作用を実装するように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされ、コンピュータ、その他のプログラム可能な装置、またはその他のデバイスにおいて一連の動作可能なステップを実行させ、コンピュータ実装可能なプロセスを生じさせ得る。
【0131】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および動作を図解している。これに関連して、フローチャートまたはブロック図内の各ブロックは、特定された論理機能を実装するための1つまたは複数の実行可能な命令を含む、命令のモジュール、セグメント、または部分を表し得る。一部の代替的な実装形態では、ブロックに示されている機能が、図に示されている順序とは異なる順序で発生する場合があり得る。例えば、連続して示されている2つのブロックが、実際には、1つのステップで達成されること、同時に実行されること、実質的に同時に実行されること、部分的にもしくは全体として時間的に重複した様態で実行されること、または時には逆の順序で実行されることなどが、関係する機能に応じて起こり得る。ブロック図またはフローチャートによる図解あるいはその両方の各ブロックと、ブロック図またはフローチャートによる図解あるいはその両方に含まれる複数のブロックの組合せとが、特定された機能または作用を実行するまたは専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェア・ベースのシステムによって、実装されることもあり得る、ということにも注意してほしい。
【0132】
さらに、様々な実施形態よるシステムが、プロセッサと、プロセッサと統合されているロジックまたはプロセッサによって実行可能なロジックあるいはその両方とを含むことあり得るが、このロジックは、本明細書に列挙されている処理ステップのうちの1つまたは複数を実行するように構成されている。統合されているというのは、つまり、プロセッサに、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などのハードウェア・ロジックとして、ロジックが組み込まれていることを意味する。プロセッサによって実行可能であるとは、つまり、ロジックが、ハードウェア・ロジック、ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部などのソフトウェア・ロジック、またはプロセッサによってアクセス可能なハードウェア・ロジックとソフトウェア・ロジックとの何らかの組合せであって、プロセッサによって実行されると何らかの機能をプロセッサに実行させるように構成されているということを意味する。ソフトウェア・ロジックは、従来技術で知られているいずれかのメモリ・タイプの、ローカルまたはリモートあるいはその両方のメモリに記憶され得る。ソフトウェア・プロセッサ・モジュールまたはASIC、FPGA、中央処理装置(CPU)、集積回路(IC)などのハードウェア・プロセッサあるいはその両方など、従来技術で知られているいずれかのプロセッサが、用いられ得る。
【0133】
上述したシステムまたは方法あるいはその両方の様々な特徴はいずれかの様態で組み合わされ得ることは明らかであり、それによって、以上で提示された説明から複数の組合せを生じさせることができる。
【0134】
本発明の実施形態は、顧客に代わって展開されるサービスの形態で提供され得ることが、さらに理解されるであろう。
【0135】
本明細書に開示されている発明的な概念は、複数の例示的なシナリオ、実施形態または実装形態あるいはそれらの組合せとして、その無数の特徴を例示する例によって提示されてきた。一般的に開示されている概念は、モジュール的なものであると考察されるべきであり、それらのいずれかの組合せ、順列、または合成として実装され得ることが理解されるべきである。さらに、当業者が今回の説明を読むことにより理解し得る本明細書で開示されている特徴、機能、および概念のいかなる修正、変更、または均等物も、本開示の範囲に属するものと考えるべきである。
【0136】
本発明の様々な実施形態に関する説明を、例示の目的のために以上で提示してきたが、網羅的であること、または開示されている実施形態に限定されることは、意図されていない。説明されている実施形態の範囲から逸脱することなく、当業者には、多くの修正および変更が明らかであろう。本明細書で用いられている用語は、実施形態の原理と、市場で見つけられる技術と比較した場合の実際的な応用もしくは技術的改善とを最良に説明するように、または他の当業者が本明細書に開示されている実施形態を理解することを可能にするように、選択された。