IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キンドリル・インクの特許一覧

特許7083016データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス
<>
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図1
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図2
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図3
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図4
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図5
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図6
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図7
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図8
  • 特許-データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-01
(45)【発行日】2022-06-09
(54)【発明の名称】データ重複排除環境を実装するためのテープ・ドライブ・メモリ・ストレージを改良する方法、コンピュータ・プログラムおよびストレージ・テープ・ドライブ・ハードウェア・デバイス
(51)【国際特許分類】
   G06F 3/06 20060101AFI20220602BHJP
【FI】
G06F3/06 301W
G06F3/06 303C
【請求項の数】 11
(21)【出願番号】P 2020513504
(86)(22)【出願日】2018-08-21
(65)【公表番号】
(43)【公表日】2020-11-19
(86)【国際出願番号】 IB2018056306
(87)【国際公開番号】W WO2019053535
(87)【国際公開日】2019-03-21
【審査請求日】2021-01-22
(31)【優先権主張番号】15/701,994
(32)【優先日】2017-09-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521555742
【氏名又は名称】キンドリル・インク
【氏名又は名称原語表記】Kyndryl Inc.
【住所又は居所原語表記】One Vanderbilt Avenue,15th Floor,New York,New York 10017,USA
(74)【代理人】
【識別番号】110000420
【氏名又は名称】特許業務法人エム・アイ・ピー
(72)【発明者】
【氏名】ルーガー、エリック
(72)【発明者】
【氏名】アシュムッセン、オレ
(72)【発明者】
【氏名】バイダーベック、ロバート
(72)【発明者】
【氏名】シェーファー、マーカス
【審査官】松平 英
(56)【参考文献】
【文献】特開2012-094220(JP,A)
【文献】特開2013-161185(JP,A)
【文献】特表2015-528928(JP,A)
【文献】米国特許出願公開第2012/0047328(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/06-3/08
11/14
13/00
13/10-13/14
16/00-16/958
G11B20/10-20/16
(57)【特許請求の範囲】
【請求項1】
テープ・ドライブ・メモリ・ストレージを改良する方法であって、
重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、データ・ストリームを受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記NVS2に通すことと、
前記プロセッサが前記NVS2において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記NVS1に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含み、
データ・チャンクの前記第1のグループが前記NVS2内に残るように、前記プロセッサによって前記NVS2から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記NVS2から前記第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第1のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第1のグループの各データ・チャンクと、データ・チャンクの前記第1のグループの各前記データ・チャンクのための前記第1のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記NVS1内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記NVS1から前記第1のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含む方法。
【請求項2】
前記第1のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記方法は、
前記プロセッサによって、前記NVS1から前記ポインタを含む前記チャンク・リスト・ファイルを削除することと、
前記プロセッサによって、前記NVS2からデータ・チャンクの前記第1のグループを削除することとをさらに含む、請求項1に記載の方法。
【請求項3】
前記ストレージ・テープ・ドライブ・ハードウェア・デバイス内に第2のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、前記第2のデータ・ストレージ・テープ・カートリッジから前記NVS2に、重複排除されたデータ・チャンクの第2のグループを書き込むことと、
前記プロセッサによって、前記第2のデータ・ストレージ・テープ・カートリッジから前記NVS1に、重複排除されたデータ・チャンクの前記第2のグループの各データ・チャンクと、関連付けられた記憶位置とを識別するポインタを含む追加のチャンク・リスト・ファイルを書き込むことと、
前記プロセッサによって、前記追加のチャンク・リスト・ファイルの解析に基づいて、重複排除されたデータ・チャンクの前記第2のグループに関して重複データを含む必要な重複データ・チャンクを特定することと、
重複排除されたデータ・チャンクの前記第2のグループが前記必要な重複データ・チャンクと組み合わさって実行のための完全なデータ・ファイルを含むように、前記プロセッサによって、重複排除されたデータ・チャンクの前記第2のグループに前記必要な重複データ・チャンクを追加することとをさらに含む、請求項2に記載の方法。
【請求項4】
前記第2のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記ストレージ・テープ・ドライブ・ハードウェア・デバイスに第3のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、記憶のために第2のデータ・ストリームを受け取ることと、
前記プロセッサによって、前記NVS2の重複排除されたデータ・チャンクの前記第2のグループと、前記NVS1の前記追加のチャンク・リスト・ファイルとに基づいて前記第2のデータ・ストリームに関して重複排除プロセスを実行することであって、その結果として記憶のために、重複排除されたデータ・チャンクの第3のグループができる、前記重複排除プロセスを実行することと、
前記プロセッサによって、前記第3のデータ・ストレージ・テープ・カートリッジに、重複排除されたデータ・チャンクの前記第3のグループを記憶のために書き込むこととをさらに含む、請求項3に記載の方法。
【請求項5】
前記特定することは、前記データ・ストリームに関して指定データ記憶サイズ閾値を超えるまで実行される、請求項1に記載の方法。
【請求項6】
前記データ・ストリームが前記NVS2の第1のパーティションに記憶され、データ・チャンクの前記第1のグループが前記NVS2の第2のパーティションに記憶されるように、前記プロセッサによって前記NVS2をパーティションに区分することをさらに含む、請求項1に記載の方法。
【請求項7】
前記NVS1が第1の集積回路ベースのメモリ・デバイスを含み、前記NVS2が第2の集積回路ベースのメモリ・デバイスを含む、請求項1に記載の方法。
【請求項8】
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスにおいてコンピュータ可読コードの作成と、組み込みと、運営と、維持と、配備とのうちの少なくとも1つのための少なくとも1つのサポート・サービスを提供することをさらに含み、前記コードが、前記受け取ることと、前記データ・ストリームを前記記憶することと、前記分割することと、前記チャンク・リスト・ファイルを前記生成することと、前記チャンク・リスト・ファイルを前記記憶することと、データ・チャンクの前記第1のグループを前記特定することと、前記削除することと、前記書き込むことと、前記ポインタを前記生成することと、前記ポインタを前記記憶することと、前記チャンク・リスト・ファイルを前記書き込むこととを実装するために前記プロセッサによって実行される、請求項1に記載の方法。
【請求項9】
テープ・ドライブ・メモリ・ストレージを改良する方法を実装するアルゴリズムを含むプロセッサが実行可能なコンピュータ・プログラムであって、
トレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含み、前記プロセッサによってデータ・ストリームを記憶のために受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記NVS2に通すことと、
前記プロセッサが前記NVS2において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記NVS1に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含み、
データ・チャンクの前記第1のグループが前記NVS2内に残るように、前記プロセッサによって前記NVS2から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記NVS2から前記第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第1のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第1のグループの各データ・チャンクと、データ・チャンクの前記第1のグループの各前記データ・チャンクのための前記第1のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記NVS1内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記NVS1から前記第1のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含むアルゴリズムをプロセッサに実行させる、コンピュータ・プログラム。
【請求項10】
テープ・ドライブ・メモリ・ストレージを改良する方法を実装するため、プロセッサが実行可な命令を含むストレージ・テープ・ドライブ・ハードウェア・デバイスであって、前記方法は、
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含み、前記プロセッサによって記憶のために、データ・ストリームを受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記NVS2に通すことと、
前記プロセッサが前記NVS2において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記NVS1に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含み、
データ・チャンクの前記第1のグループが前記NVS2内に残るように、前記プロセッサによって前記NVS2から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記NVS2から前記第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第1のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第1のグループの各データ・チャンクと、データ・チャンクの前記第1のグループの各前記データ・チャンクの、前記第1のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記NVS1内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記NVS1から前記第1のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含む、ストレージ・テープ・ドライブ・ハードウェア・デバイス。
【請求項11】
テープ・ドライブ・メモリ・ストレージを改良する方法であって、
重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、記憶のためにデータ・ファイルを受け取ることと、
前記プロセッサが前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ファイルを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサが前記重複排除ソフトウェア・エンジンを実行することによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含み、
前記プロセッサによって前記NVS2内の第1のデータベースにデータ・チャンクの前記第1のグループを記憶することと、
前記プロセッサによって、データ・チャンクの前記第1のグループの各データ・チャンクと、データ・チャンクの前記第1のグループの各前記データ・チャンクのための前記NVS2の前記第1のデータベース内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって前記NVS1内の第2のデータベースに前記ポインタを記憶することとを含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般には、テープ・ドライブに記憶されたデータを効率的に重複排除する方法に関し、特に、重複排除データ・チャンクとそれに関連付けられた参照ポインタとを一時的に記憶するためにテープ・ドライブ・ハードウェア・デバイスに重複排除メモリ・デバイスを組み込む方法およびそれに付随するシステムに関する。「ストレージ・テープ・ドライブ・ハードウェア・デバイス」は「テープ・ドライブ・システム」とも呼ぶ。「コンピュータ・プログラム製品」は単に「コンピュータ・プログラム」とも呼ぶ。
【背景技術】
【0002】
データ重複排除環境を実装するためのプロセスがよく知られている。ディスク・ドライブおよびフラッシュ・メモリなどのランダム・アクセス可能ストレージ・システムのための典型的なデータ重複排除環境は、典型的には、情報識別データ・チャンクとそれに関連付けられたメタデータとを含むデータ・チャンク・データベースを含む。上記のメモリ構造は、データに遅延なくアクセスすることができるため、データを重複排除するプロセスを随時行うことができるために、ディスク・ドライブおよびフラッシュ・メモリ上に記憶されたデータの重複排除に関しては、現在、多数の解決策が存在する。テープ・ストレージ環境では、データは通常、読み取り/書き込みヘッドを基準にしたテープの位置決めに起因する読み取り遅延を伴う順次方式で1回書き込まれる。複数の記憶媒体におけるデータの重複排除に関して、現在、多くの解決策が存在する。
【0003】
しかし、上記の解決策には、テープ・ドライブ・ストレージの制約と速度の問題が伴う場合があり、それによって重複排除システムのパフォーマンスを制限している。さらに、上記の解決策は、テープ・ドライブのデータ圧縮に対応することができない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、当技術分野では、テープ・ドライブ・ストレージ・デバイスに対して実行される重複排除方法によるデータの圧縮のためのプロセスを提供する必要がある。また、当技術分野では、重複排除方法によってデータを圧縮するための専用テープ・ドライブ・ハードウェア構造を提供する必要がある。本発明は、テープ・ドライブ・ハードウェア・デバイスに重複排除メモリ・デバイスを組み込む方法、テープ・ドライブ・ハードウェア・デバイス、およびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【0005】
本発明の第1の態様は、テープ・ドライブ・メモリ・ストレージを改良する方法であって、重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、記憶のためにデータ・ストリームを受け取ることと、上記プロセッサによって、上記データ・ストリームを上記NVS2に通すことと、上記プロセッサが上記NVS2において上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、上記プロセッサによって、上記NVS1に上記チャンク・リスト・ファイルを記憶することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが、上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含む、上記特定することと、データ・チャンクの上記第1のグループが上記NVS2内に残るように、上記プロセッサによって上記NVS2から上記重複データ・チャンクを削除することと、上記プロセッサによって、記憶のために上記NVS2から上記第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第1のグループを書き込むことと、上記プロセッサによって、データ・チャンクの上記第1のグループの各データ・チャンクと、データ・チャンクの上記第1のグループの上記各データ・チャンクの、上記第1のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって、上記ポインタを上記NVS1内にある上記チャンク・リスト・ファイルに記憶することと、上記プロセッサによって、記憶のために上記NVS1から上記第1のデータ・ストレージ・テープ・カートリッジに上記ポインタを含む上記チャンク・リスト・ファイルを書き込むこととを含む方法を提供する。
【0006】
本発明の第2の態様は、コンピュータ可読プログラム・コードを記憶したコンピュータ可読ハードウェア・ストレージ・デバイスを含むコンピュータ・プログラム製品であって、上記コンピュータ可読プログラム・コードは、ストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装するアルゴリズムを含み、上記方法は、上記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含み、上記プロセッサによってデータ・ストリームを記憶のために受け取ることと、上記プロセッサによって、上記データ・ストリームを上記NVS2に通すことと、上記プロセッサが上記NVS2において上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、上記プロセッサによって、上記NVS1に上記チャンク・リスト・ファイルを記憶することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが、上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含む、上記特定することと、データ・チャンクの上記第1のグループが上記NVS2内に残るように、上記プロセッサによって上記NVS2から上記重複データ・チャンクを削除することと、上記プロセッサによって、記憶のために上記NVS2から上記第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第1のグループを書き込むことと、上記プロセッサによって、データ・チャンクの上記第1のグループの各データ・チャンクと、データ・チャンクの上記第1のグループの上記各データ・チャンクのための上記第1のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって、上記ポインタを上記NVS1内にある上記チャンク・リスト・ファイルに記憶することと、上記プロセッサによって、記憶のために上記NVS1から上記第1のデータ・ストレージ・テープ・カートリッジに上記ポインタを含む上記チャンク・リスト・ファイルを書き込むこととを含む、コンピュータ・プログラム製品を提供する。
【0007】
本発明の第3の態様は、コンピュータ可読メモリ・ユニットに結合されたプロセッサを含むストレージ・テープ・ドライブ・ハードウェア・デバイスであって、上記メモリ・ユニットは、上記プロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装する命令を含み、上記方法は、上記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含み、上記プロセッサによって、記憶のためにデータ・ストリームを受け取ることと、上記プロセッサによって、上記データ・ストリームを上記NVS2に通すことと、上記プロセッサが上記NVS2において上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、上記プロセッサによって、上記NVS1に上記チャンク・リスト・ファイルを記憶することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが、上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含む、上記特定することと、データ・チャンクの上記第1のグループが上記NVS2内に残るように、上記プロセッサによって上記NVS2から上記重複データ・チャンクを削除することと、上記プロセッサによって、記憶のために上記NVS2から上記第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第1のグループを書き込むことと、上記プロセッサによって、データ・チャンクの上記第1のグループの各データ・チャンクと、データ・チャンクの上記第1のグループの上記各データ・チャンクの上記第1のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって、上記ポインタを上記NVS1内にある上記チャンク・リスト・ファイルに記憶することと、上記プロセッサによって、記憶のために上記NVS1から上記第1のデータ・ストレージ・テープ・カートリッジに上記ポインタを含む上記チャンク・リスト・ファイルを書き込むこととを含むストレージ・テープ・ハードウェア・デバイスを提供する。
【0008】
本発明の第4の態様は、テープ・ドライブ・メモリ・ストレージ改良方法であって、重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、記憶のためにデータ・ファイルを受け取ることと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ファイルを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含む、上記特定することと、上記プロセッサによって上記NVS2内の第1のデータベースにデータ・チャンクの上記第1のグループを記憶することと、上記プロセッサによって、データ・チャンクの上記第1のグループの各データ・チャンクと、データ・チャンクの上記第1のグループの上記各データ・チャンクのための上記NVS2の上記第1のデータベース内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって上記NVS1内の第2のデータベースに上記ポインタを記憶することと、上記プロセッサによって、記憶のために上記NVS2から第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第1のグループを書き込む第1の書き込むことと、上記プロセッサによって、上記NVS1から上記第1のデータ・ストレージ・テープ・カートリッジに上記ポインタを書き込む第2の書き込むこととを含む方法を提供する。
【0009】
本発明の第5の態様は、コンピュータ可読プログラム・コードを記憶したコンピュータ可読ハードウェア・ストレージ・デバイスを含むコンピュータ・プログラム製品であって、上記コンピュータ可読プログラム・コードは、ストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装するアルゴリズムを含み、上記方法は、上記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含む、上記プロセッサによって、記憶のためにデータ・ファイルを受け取ることと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ファイルを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含む、上記特定することと、上記プロセッサによって上記NVS2内の第1のデータベースにデータ・チャンクの上記第1のグループを記憶することと、上記プロセッサによって、データ・チャンクの上記第1のグループの各データ・チャンクと、データ・チャンクの上記第1のグループの上記各データ・チャンクの、上記NVS2の上記第1のデータベース内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって上記NVS1の第2のデータベースに上記ポインタを記憶することと、上記プロセッサによって、記憶のために上記NVS2から第1のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第1のグループを書き込む第1の書き込むことと、上記プロセッサによって、上記NVS1から上記第1のデータ・ストレージ・テープ・カートリッジに上記ポインタを書き込む第2の書き込むこととを含むコンピュータ・プログラム製品を提供する。
【発明の効果】
【0010】
本発明は、データ重複排除環境を実装可能な簡易な方法およびそれに付随するシステムを有利に提供する。
【図面の簡単な説明】
【0011】
図1】本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するためのストレージ・テープ・ドライブ・ハードウェア・デバイスを示す図である。
図2】本発明の実施形態による、内蔵不揮発性メモリ・デバイスを介してデータの重複排除と書き込みとを行うためのプロセスを示す図である。
図3】本発明の実施形態による、図2のプロセスに関するさらなるプロセスを示す図である。
図4】本発明の実施形態による、内蔵不揮発性メモリ・デバイスを介してテープ・カートリッジから重複排除されたデータを読み取るためのプロセスを示す図である。
図5】本発明の実施形態による、図4のプロセスに関するさらなるプロセスを示す図である。
図6】本発明の実施形態による、ストレージ・テープ・ドライブ・ハードウェア・デバイス内で実行されるプロセスを示す図である。
図7】本発明の実施形態による、内部データ重複排除プロセスの実行によってテープ・ドライブ・メモリ・ストレージを改良するための、図1のシステムによって可能にされるプロセス・フローの詳細を示すアルゴリズムを示す図である。
図8】本発明の実施形態による、内部データ重複排除プロセスによってテープ・ドライブ・メモリ・ストレージを改良するための、図7のアルゴリズムに代わるアルゴリズムを示す図である。
図9】本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するための、図1に示すシステムによって使用されるかまたは含まれるコンピュータ・システムを示す図である。
【発明を実施するための形態】
【0012】
図1に、本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するためのストレージ・テープ・ドライブ・ハードウェア・デバイス100を示す。典型的な重複排除プロセスは、通常、ディスク・ドライブおよびフラッシュ・メモリ・デバイスなどのランダム・アクセス可能ストレージ・システムに関連付けられる。重複排除プロセスは、随時に行うことができるため、典型的には上記のメモリ・ストレージ・システムに適用され、データには遅延なくアクセスすることができる。テープ・ドライブ・ストレージ・デバイスに記憶されているデータに関する重複排除プロセスの実行の結果として、テープ・ドライブ・ストレージの制約と速度の問題とが生じることがある。上記のテープ・ドライブ重複排除プロセスによって、重複排除システムのパフォーマンス問題が生じることがあり、それによって記憶遅延が生じる。
【0013】
データ重複排除とは、本明細書では、データ・ストリームから繰り返し現れるデータ部分(またはチャンク)の重複コピーを削除するための特殊なデータ圧縮技法であると定義される。データ重複排除プロセスは、(テープ・ドライブ・デバイス)メモリ・ストレージの利用率を向上させるために使用される。重複排除プロセスは、解析プロセス中にデータまたはバイト・パターンの固有チャンクを特定し、記憶する。解析プロセス中に、追加のデータ・チャンクが、記憶されているデータ・チャンクと比較され、一致がある場合は常に、重複(冗長)データ・チャンクが、その記憶されているデータ・チャンクの位置を指すポインタ(参照)に置き換えられる。
【0014】
ストレージ・テープ・ドライブ・ハードウェア・デバイス100は、ホスト・システムまたはデータ管理システムを必要とせずにストレージ・テープ・ドライブ・ハードウェア・デバイス100内で直接実行される重複排除プロセスによってデータを圧縮するための機構を可能にする。ストレージ・テープ・ドライブ・ハードウェア・デバイス100は、参照ポインタにリンクされた重複排除されたデータ・チャンクを一時的に記憶するために、追加の重複排除メモリ・デバイス(すなわち、不揮発性メモリ・デバイス104および不揮発性メモリ・デバイス108)を内部に含む重複排除モジュールを組み込んでいる。データ書き込み実行時ごとに、重複排除ソフトウェア・エンジンが、データ・ストリームから重複データ・チャンクを除去し、それらを重複排除メモリ・デバイスを指すポインタに置き換え、データ・ストレージ・テープ・カートリッジがいっぱいになるかまたはストレージ・テープ・ドライブ・ハードウェア・デバイス100から取り外されると、重複排除メモリ・デバイスのデータ内容がデータ・ストレージ・テープ・カートリッジの予約部に書き込まれる。したがって、データ・ストレージ・テープ・カートリッジには、圧縮されたデータ(すなわち重複部分として特定されたデータ・チャンクのないデータ)と、重複排除メモリ・デバイスからのすべてのデータとが含まれる。データ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイス100に装填されると、(データ・ストレージ・テープ・カートリッジの)検出されたすべての予約部が読み取られ、それによって重複排除メモリ・デバイスを満たす。したがって、圧縮データを読み取り、関連付けられたポインタを重複排除メモリ・デバイスからのデータに置き換えることにより圧縮データをデコードすることによって、データ読み取りプロセスを行うことができる。
【0015】
図1のストレージ・テープ・ドライブ・ハードウェア・デバイス100は、不揮発性メモリ・デバイス(NVS1)104と、不揮発性メモリ・デバイス(NVS2)108と、テープ・ドライブ・モータ109aおよび109bと、ストレージ・テープ・ドライブ・ハードウェア・デバイス100に付随するすべての機能を制御するための重複排除ソフトウェア・エンジンを含む制御回路117とを含む。NVS1およびNVS2は、特に、集積回路ベースのメモリ・デバイス、取り外し可能フラッシュ・メモリ・デバイスなどを含む任意の種類の特殊メモリ・デバイスを含み得る。ストレージ・テープ・ドライブ・ハードウェア・デバイス100は、組み込み型コンピュータまたは任意の種類の特殊組み込み型ハードウェア・デバイスを含み得る。組み込み型コンピュータとは、本明細書では、特殊機能を実行するために特別に設計された、コンピュータ・ハードウェアとソフトウェアとの(機能が固定された、またはプログラム可能な)組合せを含む専用コンピュータであると定義される。プログラム可能組み込み型コンピュータは、特殊プログラミング・インターフェースを含み得る。また、ストレージ・テープ・ドライブ・ハードウェア・デバイス100は、図1ないし図8に関して説明するプロセスを実行するための特殊(非汎用)ハードウェアおよび回路(すなわち、特殊ディスクリート非汎用アナログ、デジタルおよびロジック方式の回路)を含む特殊ハードウェア・デバイスを含み得る。特殊ディスクリート非汎用アナログ、デジタルおよびロジック方式回路は、特別に設計されたプロプライエタリ構成要素(例えば、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するための自動プロセスを実装するためのみに設計された特殊集積回路)を含み得る。図1のストレージ・テープ・ドライブ・ハードウェア・デバイス100は、特殊メモリ・デバイスNVS1 104およびNVS2 108を含む。特殊メモリは、単一のメモリ・システムを含んでよい。あるいは、特殊メモリは、複数のメモリ・システムを含んでもよい。ストレージ・テープ・ドライブ・ハードウェア・デバイス100は、センサと、プロセッサと、追加のソフトウェアおよび特殊回路とを含むことができる。センサは、特に、ストレージ・センサ、光学センサ、速度センサなどを含み得る。
【0016】
ストレージ・テープ・ドライブ・ハードウェア・デバイス100は、データ書き込みプロセス中に、記憶/バッファリングされたデータ・セット(datasets)を、各データ・セグメントがチャンキング・アルゴリズムの実行によって導出された隣接可変長データ・チャンクの集合を含むようにより大きなセグメントにそのデータ・セットを分割することによって解析すべく、データ・ストレージ・テープ・カートリッジに書き込まれる前にデータ・セットをNVS2 108内に記憶/バッファリングするためのプロセスを可能にする。解析されたデータ・セグメントは、チャンク・リスト・ファイルを作成し、インデックス内に記憶するための1つまたは複数の類似識別子を計算するために使用される。チャンク・リスト・ファイル(すなわち、一時リポジトリ)は、NVS1 104に記憶される。NVS2 108の内容を(物理)データ・ストレージ・テープ・カートリッジに直接ストリーミングするプロセス中に、ストレージ・テープ・ドライブ・ハードウェア・デバイス100は、チャンク・リスト・ファイルを構築するためのプロセスを実行し、第1の数百メガ・バイトのデータ内にある一致データ・チャンクを判断するためにカウント・プロセスを開始する。カウント・プロセスは、指定された閾値に達するまで実行され、以降のすべての同一データ・チャンクがNVS2 108から削除される。さらに、位置ポインタ(すなわち、データ・ストレージ・テープ・カートリッジ内の位置を指すポインタ)がNVS1 104に書き込まれる。NVS2 108から削除されたすべてのデータ・チャンクがデータ・ストレージ・テープ・カートリッジに書き込まれ、それによってスペース節減プロセスによりメモリが改良される。
【0017】
図2に、本発明の実施形態による、NVS1 204およびNVS2 208を介してデータの重複排除と書き込みとを行うためのプロセス200を示す。プロセス200は、データ・ホスト・デバイスから受け取られたデータ・ストリーム205を示す。データ・ストリーム205は、(ソフトウェア・マイクロコードを含む)重複排除ソフトウェア・エンジン210によって(NVS2 208内で)処理され、その結果、NVS2 208からデータ・チャンク「A」および「B」が削除される。さらに、(テープ・カートリッジ4711に記憶されている)残りのデータ・チャンク218に関連付けられた位置ポインタが、NVS1 204内のチャンク・インデックス・データベースに記憶される。指定数(すなわち閾値)の重複データ・チャンクが特定されるまで、入来データ・ストリーム224を解析するために後続の解析が行われる。例えば(図2に関して)、データ・チャンク「A」が3回特定され、データ・チャンク「B」が2回特定される。残りのすべてのデータ・チャンク229がテープ・カートリッジ4711に書き込まれる。
【0018】
図3に、本発明の実施形態による、図2のプロセス200に関するさらなるプロセス300を示す。プロセス300は、NVS2内の予約部232を示す。予約部232は、特定された(すなわち図2のプロセス中に特定された)すべての重複データ・チャンク「A」および「B」を含むデータベースを含む。NVS1 204は、テープ・カートリッジ4711のためのチャンク・インデックス・データベースを含む。NVS1 204およびNVS2 208の内容をテープ・カートリッジ4711の先頭部の指定位置に書き込むために、後続のプロセスが実行される。
【0019】
図4に、本発明の実施形態による、NVS1 204およびNVS2 208を介してテープ・カートリッジ4712から重複排除されたデータを読み取るためのプロセス400を示す。プロセス400は、データ読み取り操作を実行するために、ストレージ・テープ・ドライブ・ハードウェア・デバイス(例えば図1の100)に装填されるテープ・カートリッジ4712を示している。テープ・カートリッジ4712からNVS2 208にチャンク・データベースが読み取られる。テープ・カートリッジ4712からNVS1 204にインデックス・データベースが読み取られる。
【0020】
図5に、本発明の実施形態による、図4のプロセス400に関するさらなるプロセス500を示す。プロセス500は、チャンク・インデックス・データベース522が事前ロードされているNVS2内の予約部232を示している。このプロセスは、データ・チャンク512がテープ・カートリッジ4712からNVS2 208に読み戻されると開始される。NVS2の予約データベースからの情報に関するチャンク・インデックス・データベース522からの情報に基づいて、満たされるべき(データ・チャンク512の)どのような空白535も特定され、欠落データ・チャンク537がデータ・チャンク512に付加される。重複排除エンジン210が完全なデータ・ストリーム550をホスト・デバイスに返送する。
【0021】
図6に、本発明の実施形態による、ストレージ・テープ・ドライブ・ハードウェア・デバイス600内で実行されるプロセスを示す。ストレージ・テープ・ドライブ・ハードウェア・デバイス600は、テープ・カートリッジ620との通信のためにNVS2 614およびNVS1 618に接続されたテープ・ドライブ・メモリ・ユニット604(テープ・ドライブ・マイクロコード608と重複排除エンジン610とを含む)を含む。このプロセスは、(テープ・ドライブ・メモリ604を介して)データ・ホストからデータが受け取られると開始される。テープ・ドライブ・マイクロコード608および重複排除エンジン610は、(NVS2 614内の)重複データ・チャンクを特定し、それらの重複データ・チャンクをNVS1 618に関連付けられた位置ポインタに置き換える。残りのすべてのデータ・チャンクがテープ・カートリッジ620内に記憶される。
【0022】
図7に、本発明の実施形態による、内部データ重複排除プロセスの実行によりテープ・ドライブ・メモリ・ストレージを改良するための、図1のシステム100によって可能とされるプロセス・フローの詳細を示すアルゴリズムを示す。図7のアルゴリズムにおけるステップのそれぞれは、コンピュータ・プロセッサがコンピュータ・コードを実行することによって可能とされ、任意の順序で実行することができる。ステップ700で、記憶のために(ストレージ・テープ・ドライブ・ハードウェア・デバイスによって)データ・ストリームが受け取られる。ストレージ・テープ・ドライブ・ハードウェア・デバイスは、重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含む。データ・ストリームはNVS2に記憶される。NVS1およびNVS2は、集積回路ベースのメモリ・デバイスを含み得る。ステップ702で、データ・ストリームは(NVS2内で)複数の隣接可変長データ・チャンクに分割される。ステップ704で、チャンク・リスト・ファイルが生成される。チャンク・リスト・ファイルは、隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含む。チャンク・リスト・ファイルは、NVS1に記憶される。ステップ708で、(例えば、データ・ストリームに関する指定データ記憶サイズ閾値を超えるまで)隣接可変長データ・チャンクのうちの重複データ・チャンクが特定される。重複データ・チャンクは、隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関する重複データを含む。ステップ710で、データ・チャンクの第1のグループがNVS2内に残るようにして、すべての他の同一データ・チャンクがNVS2から削除される。NVS2は、データ・ストリームがNVS2の第1のパーティションに記憶され、データ・チャンクの第1のグループがNVS2の第2のパーティションに記憶されるように、パーティションに区分することができる。ステップ712で、データ・チャンクの第1のグループが記憶のためにNVS2から第1のデータ・ストレージ・テープ・カートリッジに書き込まれる。ステップ714で、データ・チャンクの第1のグループの各データ・チャンクと(第1のデータ・ストレージ・テープ・カートリッジ内の各データ・チャンクの)関連付けられた記憶位置とを識別するポインタが生成される。ポインタは、NVS1内にあるチャンク・リスト・ファイルに記憶される。ステップ718で、ポインタを含むチャンク・リスト・ファイルが、記憶のためにNVS1から第1のデータ・ストレージ・テープ・カートリッジに書き込まれる。ステップ720で、第1のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、ポインタを含むチャンク・リスト・ファイルがNVS1から削除される。さらに、ポインタを含むチャンク・リスト・ファイルがNVS2から削除される。ステップ722で、第2のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスに入れられ、重複排除されたデータ・チャンクの第2のグループが第2のデータ・ストレージ・テープ・カートリッジからNVS2に書き込まれる。さらに、(重複排除されたデータ・チャンクの第2のグループのそれぞれのデータ・チャンクと、関連付けられた記憶位置とを識別するポインタを含む)追加のチャンク・リスト・ファイルが、第2のデータ・ストレージ・テープ・カートリッジからNVS1に書き込まれる。ステップ724で、重複排除されたデータ・チャンクのグループに関して重複データを含む必要な重複データ・チャンクが、追加のチャンク・リスト・ファイルの解析に基づいて特定される。必要な重複データ・チャンクは、重複排除されたデータ・チャンクの第2のグループが必要な重複データ・チャンクと組み合わさって実行のための完全なデータ・ファイルを含むように重複排除データ・チャンクの第2のグループに追加される。ステップ726で、第2のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、第3のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスに入れられ、第2のデータ・ストリームが記憶のために受け取られる。ステップ728で、第2のデータ・ストリームに関する重複排除プロセスが、NVS2の重複排除データ・チャンクの第2のグループとNVS1の追加のチャンク・リスト・ファイルとに基づいて実行される。この重複排除プロセスの結果、記憶のための重複排除されたデータ・チャンクの第3のグループができる。重複排除されたデータ・チャンクの第3のグループは、記憶のために第3のデータ・ストレージ・テープ・カートリッジに書き込まれる。
【0023】
図8に、本発明の実施形態による、内部データ重複排除プロセスによりテープ・ドライブ・メモリ・ストレージを改良するための、図1のシステム100によって可能とされる別のプロセス・フローの詳細を示す、図7のアルゴリズムに代わるアルゴリズムを示す。図8のアルゴリズムのステップのそれぞれは、コンピュータ・プロセッサがコンピュータ・コードを実行することによって可能とされ、任意の順序で実行することができる。ステップ800で、記憶のために(ストレージ・テープ・ドライブ・ハードウェア・デバイスによって)データ・ファイルが受け取られる。ストレージ・テープ・ドライブ・ハードウェア・デバイスは、重複排除ソフトウェア・エンジンと、第1の不揮発性メモリ・デバイス(NVS1)と、第2の不揮発性メモリ・デバイス(NVS2)と、第1のデータ・ストレージ・テープ・カートリッジとを内部に含む。ステップ802で、データ・ファイルが、複数の隣接可変長データ・チャンクに分割される。ステップ804で、(複数の隣接可変長データ・チャンクの)重複データ・チャンクが特定される。重複データ・チャンクは、複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第1のグループに関して重複データを含む。ステップ808で、データ・チャンクの第1のグループがNVS2内の第1のデータベースに記憶される。ステップ810で、データ・チャンクの第1のグループの各データ・チャンクと第1のデータベース内の関連付けられた記憶位置とを識別するポインタが生成される。ポインタは、NVS1内の第2のデータベースに記憶される。任意選択のステップ812で、データ・チャンクの第1のグループとポインタが暗号化される。ステップ814で、データ・チャンクの第1のグループが記憶のためにNVS2から第1のデータ・ストレージ・テープ・カートリッジに書き込まれる。ステップ818で、ポインタがNVS1から第1のデータ・ストレージ・テープ・カートリッジに書き込まれる。
【0024】
図9に、本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するための、図1のシステムによって使用されるかまたは含まれるコンピュータ・システム90(例えば、ストレージ・テープ・ドライブ・ハードウェア・デバイス)を示す。
【0025】
本発明の態様は、完全にハードウェア実施形態、または(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)完全にソフトウェア実施形態、または、ソフトウェア態様とハードウェア態様を組み合わせた実施形態の形態をとってもよく、これらすべてを本明細書では「回路」、「モジュール」または「システム」と総称する場合がある。
【0026】
本発明は、システム、方法またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
【0027】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、可搬コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【0028】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング/処理装置におけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【0029】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語、または同様のプログラム言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【0030】
本発明の態様について、本明細書では、本発明の実施形態による方法、デバイス(システム)、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
【0031】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理デバイスのプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理デバイスのプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理デバイス、またはその他の装置あるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
【0032】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル・デバイスまたはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで規定されている機能/動作を実装するように、コンピュータ実装処理を作成するために、コンピュータ、その他のプログラマブル・デバイス、またはその他のデバイス上で一連の動作ステップが実行されるようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
【0033】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。なお、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する特殊目的ハードウェア・ベースのシステムによって実装可能であるか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施することができることもわかるであろう。
【0034】
図9に示すコンピュータ・システム90は、プロセッサ91と、プロセッサ91に結合された入力デバイス92と、プロセッサ91に結合された出力デバイス93と、それぞれがプロセッサ91に結合されたメモリ・デバイス94および95とを含む。入力デバイス92は、特に、キーボード、マウス、カメラ、タッチスクリーンなどとすることができる。出力デバイス93は、特に、プリンタ、プロッタ、コンピュータ画面、磁気テープ、取り外し可能ハード・ディスク、フロッピィ・ディスクなどとすることができる。メモリ・デバイス94および95は、特に、ハード・ディスク、フロッピィ・ディスク、磁気テープ、コンパクト・ディスク(CD)またはデジタル媒体ディスク(DVD)などの光学ストレージ、ダイナミック・ランダム・アクセス・メモリ(DRAM)、読み取り専用メモリ(ROM)などとすることができる。メモリ・デバイス95は、コンピュータ・コード97を含む。コンピュータ・コード97は、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するためのプロセスを可能にするアルゴリズム(例えば図7および図8のアルゴリズム)を含む。プロセッサ91は、コンピュータ・コード97を実行する。メモリ・デバイス94は、入力データ96を含む。入力データ96は、コンピュータ・コード97によって必要とされる入力を含む。出力デバイス93は、コンピュータ・コード97からの出力を表示する。メモリ・デバイス94および95の一方または両方(または読み取り専用メモリ・デバイス96などの1つまたは複数の追加のメモリ・デバイス)が、アルゴリズム(例えば図7および図8のアルゴリズム)を含んでよく、内部に実現されたコンピュータ可読プログラム・コードを有するかまたは内部に記憶されたその他のデータを有するかあるいはその両方であるコンピュータ使用可能媒体(またはコンピュータ可読媒体またはプログラム・ストレージ・デバイス)として使用することができ、コンピュータ可読プログラム・コードはコンピュータ・コード97を含む。一般に、コンピュータ・システム90のコンピュータ・プログラム製品(あるいは製造品)は、コンピュータ使用可能媒体(またはプログラム・ストレージ・デバイス)を含み得る。
【0035】
ある実施形態では、記憶コンピュータ・プログラム・コード84(例えばアルゴリズムを含む)は、ハード・ドライブ、光ディスク、またはその他の書き込み可能、読み取り可能または取り外し可能ハードウェア・メモリ・デバイス95に記憶され、アクセスされるのではなく、読み取り専用メモリ(ROM)デバイス85などの静的な取り外し不能読み取り専用記憶媒体に記憶してもよく、またはそのような静的な取り外し不能読み取り専用媒体85から直接、プロセッサ91によりアクセスされてもよい。同様に、ある実施形態では、記憶コンピュータ・プログラム・コード97は、ハード・ドライブまたは光ディスクなどのより動的な、または取り外し可能なハードウェア・データ・ストレージ・デバイス95からではなく、コンピュータ可読ファームウェア85として記憶されてもよく、またはそのようなファームウェア85から直接、プロセッサ91によってアクセスされてもよい。
【0036】
さらに、本発明の構成要素のいずれも、テープ・ドライブ・メモリ・ストレージ・プロセスの改良を申し出るサービス供給者によって、作成、組み込み、運営、維持、配備、管理、サービス提供されることなどが可能である。したがって、本発明は、コンピュータ・システム90にコンピュータ可読コードを組み込むことを含む、コンピューティング・インフラストラクチャの配備、作成、組み込み、運営、維持、または組み込み、あるいはその組合せを行うためのプロセスを開示し、コードは、コンピュータ・システム90と組み合わさって、テープ・ドライブ・メモリ・ストレージ・プロセスを改良する方法を実行することができる。別の実施形態では、本発明は、加入方式、広告料方式または料金方式あるいはその組合せの方式で、本発明のプロセス・ステップを実行するビジネス方法を提供する。すなわち、ソリューション・インテグレータなどのサービス供給者が、テープ・ドライブ・メモリ・ストレージ・プロセスの改良のためのプロセスを可能にすることを申し出ることも可能である。この場合、サービス供給者は、1件または複数件の顧客のために、本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャの作成、維持、サポートなどを行うことができる。その見返りとして、サービス供給者は、加入契約または料金契約あるいはその両方に従って顧客から支払いを受けることができるか、またはサービス供給者は1件または複数件の第三者への広告コンテンツの販売から支払いを受けることができるか、あるいはその両方の支払を受けることができる。
【0037】
図9に、ハードウェアおよびソフトウェアの特定の構成としてコンピュータ・システム90を示すが、当業者に知られているように、上述の目的のために、図9の特定のコンピュータ・システム90と共にハードウェアおよびソフトウェアのどのような構成でも利用することができる。例えば、メモリ・デバイス94および95は、別々のメモリ・デバイスではなく、単一のメモリ・デバイスの部分であってもよい。
【0038】
本明細書では、本発明の実施形態について例示のために説明したが、当業者には多くの修正および変更が明らかになるであろう。したがって、添付の特許請求の範囲は、そのようなすべての修正および変更を、本発明の真の思想および範囲に含まれるものとして包含することを意図している。
図1
図2
図3
図4
図5
図6
図7
図8
図9