(57)【要約】【課題】テープ・ドライブ・メモリ・ストレージを改良するための方法およびシステムを提供する。【解決手段】方法は、ストレージ・テープ・ドライブによって記憶のためにデータ・ストリームを受け取ることを含む。データ・ストリームは、ストレージ・テープ・ドライブの不揮発性メモリ・デバイス（ＮＶＳ２）に通される。データ・ストリームは、隣接可変長データ・チャンクに分割され、隣接可変長データ・チャンクのそれぞれの類似識別子を含むチャンク・リスト・ファイルが生成され、（不揮発性メモリ・デバイス）ＮＶＳ１に記憶される。隣接可変長データ・チャンクのうちのデータ・チャンクのグループに関して重複データを含む重複データが特定され、そのデータ・チャンクのグループがＮＶＳ２内に残るように、ストレージ・テープ・ドライブのＮＶＳ２から削除される。そのデータ・チャンクのグループはデータ・ストレージ・テープ・カートリッジに書き込まれる。各データ・チャンクと、関連付けられた記憶位置とを識別するポインタが生成され、記憶される。【選択図】図７
2020533674.tif 000002
【特許請求の範囲】
【請求項１】
テープ・ドライブ・メモリ・ストレージ改良方法であって、
重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、データ・ストリームを受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記ＮＶＳ２に通すことと、
前記プロセッサが前記ＮＶＳ２において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記ＮＶＳ１に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
データ・チャンクの前記第１のグループが前記ＮＶＳ２内に残るように、前記プロセッサによって前記ＮＶＳ２から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記ＮＶＳ２から前記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第１のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクのための前記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記ＮＶＳ１内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記ＮＶＳ１から前記第１のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含む方法。
【請求項２】
前記第１のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記方法は、
前記プロセッサによって、前記ＮＶＳ１から前記ポインタを含む前記チャンク・リスト・ファイルを削除することと、
前記プロセッサによって、前記ＮＶＳ２からデータ・チャンクの前記第１のグループを削除することとをさらに含む、請求項１に記載の方法。
【請求項３】
前記ストレージ・テープ・ドライブ・ハードウェア・デバイス内に第２のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、前記第２のデータ・ストレージ・テープ・カートリッジから前記ＮＶＳ２に、重複排除されたデータ・チャンクの第２のグループを書き込むことと、
前記プロセッサによって、前記第２のデータ・ストレージ・テープ・カートリッジから前記ＮＶＳ１に、重複排除されたデータ・チャンクの前記第２のグループの各データ・チャンクと、関連付けられた記憶位置とを識別するポインタを含む追加のチャンク・リスト・ファイルを書き込むことと、
前記プロセッサによって、前記追加のチャンク・リスト・ファイルの解析に基づいて、重複排除されたデータ・チャンクの前記第２のグループに関して重複データを含む必要な重複データ・チャンクを特定することと、
重複排除されたデータ・チャンクの前記第２のグループが前記必要な重複データ・チャンクと組み合わさって実行のための完全なデータ・ファイルを含むように、前記プロセッサによって、重複排除されたデータ・チャンクの前記第２のグループに前記必要な重複データ・チャンクを追加することとをさらに含む、請求項２に記載の方法。
【請求項４】
前記第２のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記ストレージ・テープ・ドライブ・ハードウェア・デバイスに第３のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、記憶のために第２のデータ・ストリームを受け取ることと、
前記プロセッサによって、前記ＮＶＳ２の重複排除されたデータ・チャンクの前記第２のグループと、前記ＮＶＳ１の前記追加のチャンク・リスト・ファイルとに基づいて前記第２のデータ・ストリームに関して重複排除プロセスを実行することであって、その結果として記憶のために、重複排除されたデータ・チャンクの第３のグループができる、前記重複排除プロセスを実行することと、
前記プロセッサによって、前記第３のデータ・ストレージ・テープ・カートリッジに、重複排除されたデータ・チャンクの前記第３のグループを記憶のために書き込むこととをさらに含む、請求項３に記載の方法。
【請求項５】
前記特定することは、前記データ・ストリームに関して指定データ記憶サイズ閾値を超えるまで実行される、請求項１に記載の方法。
【請求項６】
前記データ・ストリームが前記ＮＶＳ２の第１のパーティションに記憶され、データ・チャンクの前記第１のグループが前記ＮＶＳ２の第２のパーティションに記憶されるように、前記プロセッサによって前記ＮＶＳ２をパーティションに区分することをさらに含む、請求項１に記載の方法。
【請求項７】
前記ＮＶＳ１が第１の集積回路ベースのメモリ・デバイスを含み、前記ＮＶＳ２が第２の集積回路ベースのメモリ・デバイスを含む、請求項１に記載の方法。
【請求項８】
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスにおいてコンピュータ可読コードの作成と、組み込みと、運営と、維持と、配備とのうちの少なくとも１つのための少なくとも１つのサポート・サービスを提供することをさらに含み、前記コードが、前記受け取ることと、前記データ・ストリームを前記記憶することと、前記分割することと、前記チャンク・リスト・ファイルを前記生成することと、前記チャンク・リスト・ファイルを前記記憶することと、データ・チャンクの前記第１のグループを前記特定することと、前記削除することと、前記書き込むことと、前記ポインタを前記生成することと、前記ポインタを前記記憶することと、前記チャンク・リスト・ファイルを前記書き込むこととを実装するために前記プロセッサによって実行される、請求項１に記載の方法。
【請求項９】
コンピュータ可読プログラム・コードを記憶したコンピュータ可読ハードウェア・ストレージ・デバイスを含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードは、ストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装するアルゴリズムを含み、前記方法は、
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含み、前記プロセッサによってデータ・ストリームを記憶のために受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記ＮＶＳ２に通すことと、
前記プロセッサが前記ＮＶＳ２において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記ＮＶＳ１に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
データ・チャンクの前記第１のグループが前記ＮＶＳ２内に残るように、前記プロセッサによって前記ＮＶＳ２から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記ＮＶＳ２から前記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第１のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクのための前記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記ＮＶＳ１内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記ＮＶＳ１から前記第１のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含む、コンピュータ・プログラム製品。
【請求項１０】
コンピュータ可読メモリ・ユニットに結合されたプロセッサを含むストレージ・テープ・ドライブ・ハードウェア・デバイスであって、前記メモリ・ユニットは、前記プロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装する命令を含み、前記方法は、
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含み、前記プロセッサによって記憶のために、データ・ストリームを受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記ＮＶＳ２に通すことと、
前記プロセッサが前記ＮＶＳ２において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記ＮＶＳ１に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
データ・チャンクの前記第１のグループが前記ＮＶＳ２内に残るように、前記プロセッサによって前記ＮＶＳ２から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記ＮＶＳ２から前記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第１のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクの、前記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記ＮＶＳ１内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記ＮＶＳ１から前記第１のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含む、ストレージ・テープ・ドライブ・ハードウェア・デバイス。
【請求項１１】
前記第１のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記方法は、
前記プロセッサによって、前記ＮＶＳ１から前記ポインタを含む前記チャンク・リスト・ファイルを削除することと、
前記プロセッサによって、前記ＮＶＳ２からデータ・チャンクの前記第１のグループを削除することとをさらに含む、請求項１０に記載のストレージ・テープ・ドライブ・ハードウェア・デバイス。
【請求項１２】
前記ストレージ・テープ・ドライブ・ハードウェア・デバイス内に第２のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、前記第２のデータ・ストレージ・テープ・カートリッジから前記ＮＶＳ２に、重複排除されたデータ・チャンクの第２のグループを書き込むことと、
前記プロセッサによって、前記第２のデータ・ストレージ・テープ・カートリッジから前記ＮＶＳ１に、重複排除されたデータ・チャンクの前記第２のグループの各データ・チャンクと、関連付けられた記憶位置とを識別するポインタを含む追加のチャンク・リスト・ファイルを書き込むことと、
前記プロセッサによって、前記追加のチャンク・リスト・ファイルの解析に基づいて、重複排除されたデータ・チャンクの前記第２のグループに関して重複データを含む必要な重複データ・チャンクを特定することと、
重複排除されたデータ・チャンクの前記第２のグループが前記必要な重複データ・チャンクと組み合わさって実行のための完全なデータ・ファイルを含むように、前記プロセッサによって、重複排除されたデータ・チャンクの前記第２のグループに前記必要な重複データ・チャンクを追加することとをさらに含む、請求項１１に記載のストレージ・テープ・ドライブ・ハードウェア・デバイス。
【請求項１３】
前記第２のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記ストレージ・テープ・ドライブ・ハードウェア・デバイスに第３のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、記憶のために第２のデータ・ストリームを受け取ることと、
前記プロセッサによって、前記ＮＶＳ２の重複排除されたデータ・チャンクの前記第２のグループと、前記ＮＶＳ１の前記追加のチャンク・リスト・ファイルとに基づいて前記第２のデータ・ストリームに関して重複排除プロセスを実行することであって、その結果として記憶のために、重複排除されたデータ・チャンクの第３のグループができる、前記重複排除プロセスを実行することと、
前記プロセッサによって、前記第３のデータ・ストレージ・テープ・カートリッジに、重複排除されたデータ・チャンクの前記第３のグループを記憶のために書き込むこととをさらに含む、請求項１２に記載のストレージ・テープ・ドライブ・ハードウェア・デバイス。
【請求項１４】
前記特定することは、前記データ・ストリームに関して指定データ記憶サイズ閾値を超えるまで実行される、請求項１０に記載のストレージ・テープ・ドライブ・ハードウェア・デバイス。
【請求項１５】
テープ・ドライブ・メモリ・ストレージ改良方法であって、
重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、記憶のためにデータ・ファイルを受け取ることと、
前記プロセッサが前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ファイルを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサが前記重複排除ソフトウェア・エンジンを実行することによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
前記プロセッサによって前記ＮＶＳ２内の第１のデータベースにデータ・チャンクの前記第１のグループを記憶することと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクのための前記ＮＶＳ２の前記第１のデータベース内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって前記ＮＶＳ１内の第２のデータベースに前記ポインタを記憶することとを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、テープ・ドライブに記憶されたデータを効率的に重複排除する方法に関し、特に、重複排除データ・チャンクとそれに関連付けられた参照ポインタとを一時的に記憶するためにテープ・ドライブ・ハードウェア・デバイスに重複排除メモリ・デバイスを組み込む方法およびそれに付随するシステムに関する。「ストレージ・テープ・ドライブ・ハードウェア・デバイス」は「テープ・ドライブ・システム」とも呼ぶ。「コンピュータ・プログラム製品」は単に「コンピュータ・プログラム」とも呼ぶ。
【背景技術】
【０００２】
データ重複排除環境を実装するためのプロセスがよく知られている。ディスク・ドライブおよびフラッシュ・メモリなどのランダム・アクセス可能ストレージ・システムのための典型的なデータ重複排除環境は、典型的には、情報識別データ・チャンクとそれに関連付けられたメタデータとを含むデータ・チャンク・データベースを含む。上記のメモリ構造は、データに遅延なくアクセスすることができるため、データを重複排除するプロセスを随時行うことができるために、ディスク・ドライブおよびフラッシュ・メモリ上に記憶されたデータの重複排除に関しては、現在、多数の解決策が存在する。テープ・ストレージ環境では、データは通常、読み取り／書き込みヘッドを基準にしたテープの位置決めに起因する読み取り遅延を伴う順次方式で１回書き込まれる。複数の記憶媒体におけるデータの重複排除に関して、現在、多くの解決策が存在する。
【０００３】
しかし、上記の解決策には、テープ・ドライブ・ストレージの制約と速度の問題が伴う場合があり、それによって重複排除システムのパフォーマンスを制限している。さらに、上記の解決策は、テープ・ドライブのデータ圧縮に対応することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
したがって、当技術分野では、テープ・ドライブ・ストレージ・デバイスに対して実行される重複排除方法によるデータの圧縮のためのプロセスを提供する必要がある。また、当技術分野では、重複排除方法によってデータを圧縮するための専用テープ・ドライブ・ハードウェア構造を提供する必要がある。本発明は、テープ・ドライブ・ハードウェア・デバイスに重複排除メモリ・デバイスを組み込む方法、テープ・ドライブ・ハードウェア・デバイス、およびコンピュータ・プログラムを提供する。
【課題を解決するための手段】
【０００５】
本発明の第１の態様は、テープ・ドライブ・メモリ・ストレージを改良する方法であって、重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、記憶のためにデータ・ストリームを受け取ることと、上記プロセッサによって、上記データ・ストリームを上記ＮＶＳ２に通すことと、上記プロセッサが上記ＮＶＳ２において上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、上記プロセッサによって、上記ＮＶＳ１に上記チャンク・リスト・ファイルを記憶することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが、上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、上記特定することと、データ・チャンクの上記第１のグループが上記ＮＶＳ２内に残るように、上記プロセッサによって上記ＮＶＳ２から上記重複データ・チャンクを削除することと、上記プロセッサによって、記憶のために上記ＮＶＳ２から上記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第１のグループを書き込むことと、上記プロセッサによって、データ・チャンクの上記第１のグループの各データ・チャンクと、データ・チャンクの上記第１のグループの上記各データ・チャンクの、上記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって、上記ポインタを上記ＮＶＳ１内にある上記チャンク・リスト・ファイルに記憶することと、上記プロセッサによって、記憶のために上記ＮＶＳ１から上記第１のデータ・ストレージ・テープ・カートリッジに上記ポインタを含む上記チャンク・リスト・ファイルを書き込むこととを含む方法を提供する。
【０００６】
本発明の第２の態様は、コンピュータ可読プログラム・コードを記憶したコンピュータ可読ハードウェア・ストレージ・デバイスを含むコンピュータ・プログラム製品であって、上記コンピュータ可読プログラム・コードは、ストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装するアルゴリズムを含み、上記方法は、上記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含み、上記プロセッサによってデータ・ストリームを記憶のために受け取ることと、上記プロセッサによって、上記データ・ストリームを上記ＮＶＳ２に通すことと、上記プロセッサが上記ＮＶＳ２において上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、上記プロセッサによって、上記ＮＶＳ１に上記チャンク・リスト・ファイルを記憶することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが、上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、上記特定することと、データ・チャンクの上記第１のグループが上記ＮＶＳ２内に残るように、上記プロセッサによって上記ＮＶＳ２から上記重複データ・チャンクを削除することと、上記プロセッサによって、記憶のために上記ＮＶＳ２から上記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第１のグループを書き込むことと、上記プロセッサによって、データ・チャンクの上記第１のグループの各データ・チャンクと、データ・チャンクの上記第１のグループの上記各データ・チャンクのための上記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって、上記ポインタを上記ＮＶＳ１内にある上記チャンク・リスト・ファイルに記憶することと、上記プロセッサによって、記憶のために上記ＮＶＳ１から上記第１のデータ・ストレージ・テープ・カートリッジに上記ポインタを含む上記チャンク・リスト・ファイルを書き込むこととを含む、コンピュータ・プログラム製品を提供する。
【０００７】
本発明の第３の態様は、コンピュータ可読メモリ・ユニットに結合されたプロセッサを含むストレージ・テープ・ドライブ・ハードウェア・デバイスであって、上記メモリ・ユニットは、上記プロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装する命令を含み、上記方法は、上記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含み、上記プロセッサによって、記憶のためにデータ・ストリームを受け取ることと、上記プロセッサによって、上記データ・ストリームを上記ＮＶＳ２に通すことと、上記プロセッサが上記ＮＶＳ２において上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、上記プロセッサによって、上記ＮＶＳ１に上記チャンク・リスト・ファイルを記憶することと、上記プロセッサによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが、上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、上記特定することと、データ・チャンクの上記第１のグループが上記ＮＶＳ２内に残るように、上記プロセッサによって上記ＮＶＳ２から上記重複データ・チャンクを削除することと、上記プロセッサによって、記憶のために上記ＮＶＳ２から上記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第１のグループを書き込むことと、上記プロセッサによって、データ・チャンクの上記第１のグループの各データ・チャンクと、データ・チャンクの上記第１のグループの上記各データ・チャンクの上記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって、上記ポインタを上記ＮＶＳ１内にある上記チャンク・リスト・ファイルに記憶することと、上記プロセッサによって、記憶のために上記ＮＶＳ１から上記第１のデータ・ストレージ・テープ・カートリッジに上記ポインタを含む上記チャンク・リスト・ファイルを書き込むこととを含むストレージ・テープ・ハードウェア・デバイスを提供する。
【０００８】
本発明の第４の態様は、テープ・ドライブ・メモリ・ストレージ改良方法であって、重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、記憶のためにデータ・ファイルを受け取ることと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ファイルを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、上記特定することと、上記プロセッサによって上記ＮＶＳ２内の第１のデータベースにデータ・チャンクの上記第１のグループを記憶することと、上記プロセッサによって、データ・チャンクの上記第１のグループの各データ・チャンクと、データ・チャンクの上記第１のグループの上記各データ・チャンクのための上記ＮＶＳ２の上記第１のデータベース内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって上記ＮＶＳ１内の第２のデータベースに上記ポインタを記憶することと、上記プロセッサによって、記憶のために上記ＮＶＳ２から第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第１のグループを書き込む第１の書き込むことと、上記プロセッサによって、上記ＮＶＳ１から上記第１のデータ・ストレージ・テープ・カートリッジに上記ポインタを書き込む第２の書き込むこととを含む方法を提供する。
【０００９】
本発明の第５の態様は、コンピュータ可読プログラム・コードを記憶したコンピュータ可読ハードウェア・ストレージ・デバイスを含むコンピュータ・プログラム製品であって、上記コンピュータ可読プログラム・コードは、ストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって実行されるとテープ・ドライブ・メモリ・ストレージ改良方法を実装するアルゴリズムを含み、上記方法は、上記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含む、上記プロセッサによって、記憶のためにデータ・ファイルを受け取ることと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記データ・ファイルを複数の隣接可変長データ・チャンクに分割することと、上記プロセッサが上記重複排除ソフトウェア・エンジンを実行することによって、上記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、上記重複データ・チャンクが上記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、上記特定することと、上記プロセッサによって上記ＮＶＳ２内の第１のデータベースにデータ・チャンクの上記第１のグループを記憶することと、上記プロセッサによって、データ・チャンクの上記第１のグループの各データ・チャンクと、データ・チャンクの上記第１のグループの上記各データ・チャンクの、上記ＮＶＳ２の上記第１のデータベース内の関連付けられた記憶位置とを識別するポインタを生成することと、上記プロセッサによって上記ＮＶＳ１の第２のデータベースに上記ポインタを記憶することと、上記プロセッサによって、記憶のために上記ＮＶＳ２から第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの上記第１のグループを書き込む第１の書き込むことと、上記プロセッサによって、上記ＮＶＳ１から上記第１のデータ・ストレージ・テープ・カートリッジに上記ポインタを書き込む第２の書き込むこととを含むコンピュータ・プログラム製品を提供する。
【発明の効果】
【００１０】
本発明は、データ重複排除環境を実装可能な簡易な方法およびそれに付随するシステムを有利に提供する。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するためのストレージ・テープ・ドライブ・ハードウェア・デバイスを示す図である。
【図２】本発明の実施形態による、内蔵不揮発性メモリ・デバイスを介してデータの重複排除と書き込みとを行うためのプロセスを示す図である。
【図３】本発明の実施形態による、図２のプロセスに関するさらなるプロセスを示す図である。
【図４】本発明の実施形態による、内蔵不揮発性メモリ・デバイスを介してテープ・カートリッジから重複排除されたデータを読み取るためのプロセスを示す図である。
【図５】本発明の実施形態による、図４のプロセスに関するさらなるプロセスを示す図である。
【図６】本発明の実施形態による、ストレージ・テープ・ドライブ・ハードウェア・デバイス内で実行されるプロセスを示す図である。
【図７】本発明の実施形態による、内部データ重複排除プロセスの実行によってテープ・ドライブ・メモリ・ストレージを改良するための、図１のシステムによって可能にされるプロセス・フローの詳細を示すアルゴリズムを示す図である。
【図８】本発明の実施形態による、内部データ重複排除プロセスによってテープ・ドライブ・メモリ・ストレージを改良するための、図７のアルゴリズムに代わるアルゴリズムを示す図である。
【図９】本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するための、図１に示すシステムによって使用されるかまたは含まれるコンピュータ・システムを示す図である。
【発明を実施するための形態】
【００１２】
図１に、本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するためのストレージ・テープ・ドライブ・ハードウェア・デバイス１００を示す。典型的な重複排除プロセスは、通常、ディスク・ドライブおよびフラッシュ・メモリ・デバイスなどのランダム・アクセス可能ストレージ・システムに関連付けられる。重複排除プロセスは、随時に行うことができるため、典型的には上記のメモリ・ストレージ・システムに適用され、データには遅延なくアクセスすることができる。テープ・ドライブ・ストレージ・デバイスに記憶されているデータに関する重複排除プロセスの実行の結果として、テープ・ドライブ・ストレージの制約と速度の問題とが生じることがある。上記のテープ・ドライブ重複排除プロセスによって、重複排除システムのパフォーマンス問題が生じることがあり、それによって記憶遅延が生じる。
【００１３】
データ重複排除とは、本明細書では、データ・ストリームから繰り返し現れるデータ部分（またはチャンク）の重複コピーを削除するための特殊なデータ圧縮技法であると定義される。データ重複排除プロセスは、（テープ・ドライブ・デバイス）メモリ・ストレージの利用率を向上させるために使用される。重複排除プロセスは、解析プロセス中にデータまたはバイト・パターンの固有チャンクを特定し、記憶する。解析プロセス中に、追加のデータ・チャンクが、記憶されているデータ・チャンクと比較され、一致がある場合は常に、重複（冗長）データ・チャンクが、その記憶されているデータ・チャンクの位置を指すポインタ（参照）に置き換えられる。
【００１４】
ストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、ホスト・システムまたはデータ管理システムを必要とせずにストレージ・テープ・ドライブ・ハードウェア・デバイス１００内で直接実行される重複排除プロセスによってデータを圧縮するための機構を可能にする。ストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、参照ポインタにリンクされた重複排除されたデータ・チャンクを一時的に記憶するために、追加の重複排除メモリ・デバイス（すなわち、不揮発性メモリ・デバイス１０４および不揮発性メモリ・デバイス１０８）を内部に含む重複排除モジュールを組み込んでいる。データ書き込み実行時ごとに、重複排除ソフトウェア・エンジンが、データ・ストリームから重複データ・チャンクを除去し、それらを重複排除メモリ・デバイスを指すポインタに置き換え、データ・ストレージ・テープ・カートリッジがいっぱいになるかまたはストレージ・テープ・ドライブ・ハードウェア・デバイス１００から取り外されると、重複排除メモリ・デバイスのデータ内容がデータ・ストレージ・テープ・カートリッジの予約部に書き込まれる。したがって、データ・ストレージ・テープ・カートリッジには、圧縮されたデータ（すなわち重複部分として特定されたデータ・チャンクのないデータ）と、重複排除メモリ・デバイスからのすべてのデータとが含まれる。データ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイス１００に装填されると、（データ・ストレージ・テープ・カートリッジの）検出されたすべての予約部が読み取られ、それによって重複排除メモリ・デバイスを満たす。したがって、圧縮データを読み取り、関連付けられたポインタを重複排除メモリ・デバイスからのデータに置き換えることにより圧縮データをデコードすることによって、データ読み取りプロセスを行うことができる。
【００１５】
図１のストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、不揮発性メモリ・デバイス（ＮＶＳ１）１０４と、不揮発性メモリ・デバイス（ＮＶＳ２）１０８と、テープ・ドライブ・モータ１０９ａおよび１０９ｂと、ストレージ・テープ・ドライブ・ハードウェア・デバイス１００に付随するすべての機能を制御するための重複排除ソフトウェア・エンジンを含む制御回路１１７とを含む。ＮＶＳ１およびＮＶＳ２は、特に、集積回路ベースのメモリ・デバイス、取り外し可能フラッシュ・メモリ・デバイスなどを含む任意の種類の特殊メモリ・デバイスを含み得る。ストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、組み込み型コンピュータまたは任意の種類の特殊組み込み型ハードウェア・デバイスを含み得る。組み込み型コンピュータとは、本明細書では、特殊機能を実行するために特別に設計された、コンピュータ・ハードウェアとソフトウェアとの（機能が固定された、またはプログラム可能な）組合せを含む専用コンピュータであると定義される。プログラム可能組み込み型コンピュータは、特殊プログラミング・インターフェースを含み得る。また、ストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、図１ないし図８に関して説明するプロセスを実行するための特殊（非汎用）ハードウェアおよび回路（すなわち、特殊ディスクリート非汎用アナログ、デジタルおよびロジック方式の回路）を含む特殊ハードウェア・デバイスを含み得る。特殊ディスクリート非汎用アナログ、デジタルおよびロジック方式回路は、特別に設計されたプロプライエタリ構成要素（例えば、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するための自動プロセスを実装するためのみに設計された特殊集積回路）を含み得る。図１のストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、特殊メモリ・デバイスＮＶＳ１  １０４およびＮＶＳ２  １０８を含む。特殊メモリは、単一のメモリ・システムを含んでよい。あるいは、特殊メモリは、複数のメモリ・システムを含んでもよい。ストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、センサと、プロセッサと、追加のソフトウェアおよび特殊回路とを含むことができる。センサは、特に、ストレージ・センサ、光学センサ、速度センサなどを含み得る。
【００１６】
ストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、データ書き込みプロセス中に、記憶／バッファリングされたデータ・セット（datasets）を、各データ・セグメントがチャンキング・アルゴリズムの実行によって導出された隣接可変長データ・チャンクの集合を含むようにより大きなセグメントにそのデータ・セットを分割することによって解析すべく、データ・ストレージ・テープ・カートリッジに書き込まれる前にデータ・セットをＮＶＳ２  １０８内に記憶／バッファリングするためのプロセスを可能にする。解析されたデータ・セグメントは、チャンク・リスト・ファイルを作成し、インデックス内に記憶するための１つまたは複数の類似識別子を計算するために使用される。チャンク・リスト・ファイル（すなわち、一時リポジトリ）は、ＮＶＳ１  １０４に記憶される。ＮＶＳ２  １０８の内容を（物理）データ・ストレージ・テープ・カートリッジに直接ストリーミングするプロセス中に、ストレージ・テープ・ドライブ・ハードウェア・デバイス１００は、チャンク・リスト・ファイルを構築するためのプロセスを実行し、第１の数百メガ・バイトのデータ内にある一致データ・チャンクを判断するためにカウント・プロセスを開始する。カウント・プロセスは、指定された閾値に達するまで実行され、以降のすべての同一データ・チャンクがＮＶＳ２  １０８から削除される。さらに、位置ポインタ（すなわち、データ・ストレージ・テープ・カートリッジ内の位置を指すポインタ）がＮＶＳ１  １０４に書き込まれる。ＮＶＳ２  １０８から削除されたすべてのデータ・チャンクがデータ・ストレージ・テープ・カートリッジに書き込まれ、それによってスペース節減プロセスによりメモリが改良される。
【００１７】
図２に、本発明の実施形態による、ＮＶＳ１  ２０４およびＮＶＳ２  ２０８を介してデータの重複排除と書き込みとを行うためのプロセス２００を示す。プロセス２００は、データ・ホスト・デバイスから受け取られたデータ・ストリーム２０５を示す。データ・ストリーム２０５は、（ソフトウェア・マイクロコードを含む）重複排除ソフトウェア・エンジン２１０によって（ＮＶＳ２  ２０８内で）処理され、その結果、ＮＶＳ２  ２０８からデータ・チャンク「Ａ」および「Ｂ」が削除される。さらに、（テープ・カートリッジ４７１１に記憶されている）残りのデータ・チャンク２１８に関連付けられた位置ポインタが、ＮＶＳ１  ２０４内のチャンク・インデックス・データベースに記憶される。指定数（すなわち閾値）の重複データ・チャンクが特定されるまで、入来データ・ストリーム２２４を解析するために後続の解析が行われる。例えば（図２に関して）、データ・チャンク「Ａ」が３回特定され、データ・チャンク「Ｂ」が２回特定される。残りのすべてのデータ・チャンク２２９がテープ・カートリッジ４７１１に書き込まれる。
【００１８】
図３に、本発明の実施形態による、図２のプロセス２００に関するさらなるプロセス３００を示す。プロセス３００は、ＮＶＳ２内の予約部２３２を示す。予約部２３２は、特定された（すなわち図２のプロセス中に特定された）すべての重複データ・チャンク「Ａ」および「Ｂ」を含むデータベースを含む。ＮＶＳ１  ２０４は、テープ・カートリッジ４７１１のためのチャンク・インデックス・データベースを含む。ＮＶＳ１  ２０４およびＮＶＳ２  ２０８の内容をテープ・カートリッジ４７１１の先頭部の指定位置に書き込むために、後続のプロセスが実行される。
【００１９】
図４に、本発明の実施形態による、ＮＶＳ１  ２０４およびＮＶＳ２  ２０８を介してテープ・カートリッジ４７１２から重複排除されたデータを読み取るためのプロセス４００を示す。プロセス４００は、データ読み取り操作を実行するために、ストレージ・テープ・ドライブ・ハードウェア・デバイス（例えば図１の１００）に装填されるテープ・カートリッジ４７１２を示している。テープ・カートリッジ４７１２からＮＶＳ２  ２０８にチャンク・データベースが読み取られる。テープ・カートリッジ４７１２からＮＶＳ１  ２０４にインデックス・データベースが読み取られる。
【００２０】
図５に、本発明の実施形態による、図４のプロセス４００に関するさらなるプロセス５００を示す。プロセス５００は、チャンク・インデックス・データベース５２２が事前ロードされているＮＶＳ２内の予約部２３２を示している。このプロセスは、データ・チャンク５１２がテープ・カートリッジ４７１２からＮＶＳ２  ２０８に読み戻されると開始される。ＮＶＳ２の予約データベースからの情報に関するチャンク・インデックス・データベース５２２からの情報に基づいて、満たされるべき（データ・チャンク５１２の）どのような空白５３５も特定され、欠落データ・チャンク５３７がデータ・チャンク５１２に付加される。重複排除エンジン２１０が完全なデータ・ストリーム５５０をホスト・デバイスに返送する。
【００２１】
図６に、本発明の実施形態による、ストレージ・テープ・ドライブ・ハードウェア・デバイス６００内で実行されるプロセスを示す。ストレージ・テープ・ドライブ・ハードウェア・デバイス６００は、テープ・カートリッジ６２０との通信のためにＮＶＳ２  ６１４およびＮＶＳ１  ６１８に接続されたテープ・ドライブ・メモリ・ユニット６０４（テープ・ドライブ・マイクロコード６０８と重複排除エンジン６１０とを含む）を含む。このプロセスは、（テープ・ドライブ・メモリ６０４を介して）データ・ホストからデータが受け取られると開始される。テープ・ドライブ・マイクロコード６０８および重複排除エンジン６１０は、（ＮＶＳ２  ６１４内の）重複データ・チャンクを特定し、それらの重複データ・チャンクをＮＶＳ１  ６１８に関連付けられた位置ポインタに置き換える。残りのすべてのデータ・チャンクがテープ・カートリッジ６２０内に記憶される。
【００２２】
図７に、本発明の実施形態による、内部データ重複排除プロセスの実行によりテープ・ドライブ・メモリ・ストレージを改良するための、図１のシステム１００によって可能とされるプロセス・フローの詳細を示すアルゴリズムを示す。図７のアルゴリズムにおけるステップのそれぞれは、コンピュータ・プロセッサがコンピュータ・コードを実行することによって可能とされ、任意の順序で実行することができる。ステップ７００で、記憶のために（ストレージ・テープ・ドライブ・ハードウェア・デバイスによって）データ・ストリームが受け取られる。ストレージ・テープ・ドライブ・ハードウェア・デバイスは、重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含む。データ・ストリームはＮＶＳ２に記憶される。ＮＶＳ１およびＮＶＳ２は、集積回路ベースのメモリ・デバイスを含み得る。ステップ７０２で、データ・ストリームは（ＮＶＳ２内で）複数の隣接可変長データ・チャンクに分割される。ステップ７０４で、チャンク・リスト・ファイルが生成される。チャンク・リスト・ファイルは、隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含む。チャンク・リスト・ファイルは、ＮＶＳ１に記憶される。ステップ７０８で、（例えば、データ・ストリームに関する指定データ記憶サイズ閾値を超えるまで）隣接可変長データ・チャンクのうちの重複データ・チャンクが特定される。重複データ・チャンクは、隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関する重複データを含む。ステップ７１０で、データ・チャンクの第１のグループがＮＶＳ２内に残るようにして、すべての他の同一データ・チャンクがＮＶＳ２から削除される。ＮＶＳ２は、データ・ストリームがＮＶＳ２の第１のパーティションに記憶され、データ・チャンクの第１のグループがＮＶＳ２の第２のパーティションに記憶されるように、パーティションに区分することができる。ステップ７１２で、データ・チャンクの第１のグループが記憶のためにＮＶＳ２から第１のデータ・ストレージ・テープ・カートリッジに書き込まれる。ステップ７１４で、データ・チャンクの第１のグループの各データ・チャンクと（第１のデータ・ストレージ・テープ・カートリッジ内の各データ・チャンクの）関連付けられた記憶位置とを識別するポインタが生成される。ポインタは、ＮＶＳ１内にあるチャンク・リスト・ファイルに記憶される。ステップ７１８で、ポインタを含むチャンク・リスト・ファイルが、記憶のためにＮＶＳ１から第１のデータ・ストレージ・テープ・カートリッジに書き込まれる。ステップ７２０で、第１のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、ポインタを含むチャンク・リスト・ファイルがＮＶＳ１から削除される。さらに、ポインタを含むチャンク・リスト・ファイルがＮＶＳ２から削除される。ステップ７２２で、第２のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスに入れられ、重複排除されたデータ・チャンクの第２のグループが第２のデータ・ストレージ・テープ・カートリッジからＮＶＳ２に書き込まれる。さらに、（重複排除されたデータ・チャンクの第２のグループのそれぞれのデータ・チャンクと、関連付けられた記憶位置とを識別するポインタを含む）追加のチャンク・リスト・ファイルが、第２のデータ・ストレージ・テープ・カートリッジからＮＶＳ１に書き込まれる。ステップ７２４で、重複排除されたデータ・チャンクのグループに関して重複データを含む必要な重複データ・チャンクが、追加のチャンク・リスト・ファイルの解析に基づいて特定される。必要な重複データ・チャンクは、重複排除されたデータ・チャンクの第２のグループが必要な重複データ・チャンクと組み合わさって実行のための完全なデータ・ファイルを含むように重複排除データ・チャンクの第２のグループに追加される。ステップ７２６で、第２のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、第３のデータ・ストレージ・テープ・カートリッジがストレージ・テープ・ドライブ・ハードウェア・デバイスに入れられ、第２のデータ・ストリームが記憶のために受け取られる。ステップ７２８で、第２のデータ・ストリームに関する重複排除プロセスが、ＮＶＳ２の重複排除データ・チャンクの第２のグループとＮＶＳ１の追加のチャンク・リスト・ファイルとに基づいて実行される。この重複排除プロセスの結果、記憶のための重複排除されたデータ・チャンクの第３のグループができる。重複排除されたデータ・チャンクの第３のグループは、記憶のために第３のデータ・ストレージ・テープ・カートリッジに書き込まれる。
【００２３】
図８に、本発明の実施形態による、内部データ重複排除プロセスによりテープ・ドライブ・メモリ・ストレージを改良するための、図１のシステム１００によって可能とされる別のプロセス・フローの詳細を示す、図７のアルゴリズムに代わるアルゴリズムを示す。図８のアルゴリズムのステップのそれぞれは、コンピュータ・プロセッサがコンピュータ・コードを実行することによって可能とされ、任意の順序で実行することができる。ステップ８００で、記憶のために（ストレージ・テープ・ドライブ・ハードウェア・デバイスによって）データ・ファイルが受け取られる。ストレージ・テープ・ドライブ・ハードウェア・デバイスは、重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含む。ステップ８０２で、データ・ファイルが、複数の隣接可変長データ・チャンクに分割される。ステップ８０４で、（複数の隣接可変長データ・チャンクの）重複データ・チャンクが特定される。重複データ・チャンクは、複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む。ステップ８０８で、データ・チャンクの第１のグループがＮＶＳ２内の第１のデータベースに記憶される。ステップ８１０で、データ・チャンクの第１のグループの各データ・チャンクと第１のデータベース内の関連付けられた記憶位置とを識別するポインタが生成される。ポインタは、ＮＶＳ１内の第２のデータベースに記憶される。任意選択のステップ８１２で、データ・チャンクの第１のグループとポインタが暗号化される。ステップ８１４で、データ・チャンクの第１のグループが記憶のためにＮＶＳ２から第１のデータ・ストレージ・テープ・カートリッジに書き込まれる。ステップ８１８で、ポインタがＮＶＳ１から第１のデータ・ストレージ・テープ・カートリッジに書き込まれる。
【００２４】
図９に、本発明の実施形態による、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するための、図１のシステムによって使用されるかまたは含まれるコンピュータ・システム９０（例えば、ストレージ・テープ・ドライブ・ハードウェア・デバイス）を示す。
【００２５】
本発明の態様は、完全にハードウェア実施形態、または（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）完全にソフトウェア実施形態、または、ソフトウェア態様とハードウェア態様を組み合わせた実施形態の形態をとってもよく、これらすべてを本明細書では「回路」、「モジュール」または「システム」と総称する場合がある。
【００２６】
本発明は、システム、方法またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令が記憶されたコンピュータ可読記憶媒体（または複数の媒体）を含み得る。
【００２７】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用される命令を保持し、記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学式ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適合する組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のものが含まれる。すなわち、可搬コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、可搬コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、メモリ・スティック、フロッピィ・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、およびこれらの任意の適合する組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体とは、電波またはその他の自由に伝播する電磁波、導波路またはその他の伝送媒体を伝播する電磁波（例えば光ファイバ・ケーブルを通る光パルス）、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈すべきではない。
【００２８】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワークあるいはこれらの組合せを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、交換機、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを含み得る。各コンピューティング／処理装置におけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それらのコンピュータ可読プログラム命令を、それぞれのコンピューティング／処理デバイス内のコンピュータ可読記憶媒体への記憶のために転送する。
【００２９】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語、または同様のプログラム言語などの従来の手続き型プログラミング言語を含む、１つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードまたはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上でまたは一部がユーザのコンピュータ上で、または一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータまたはサーバ上で実行されてもよい。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）またはワイド・エリア・ネットワーク（ＷＡＮ）を含む、任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続は（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行ってもよい。実施形態によっては、本発明の態様を実行するために、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路が、コンピュータ可読プログラム命令の状態情報を使用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行することができる。
【００３０】
本発明の態様について、本明細書では、本発明の実施形態による方法、デバイス（システム）、およびコンピュータ・プログラム製品を示すフローチャート図またはブロック図あるいはその両方を参照しながら説明している。フローチャート図またはブロック図あるいはその両方の図の各ブロックおよび、フローチャート図またはブロック図あるいはその両方の図のブロックの組合せは、コンピュータ可読プログラム命令によって実装可能であることはわかるであろう。
【００３１】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理デバイスのプロセッサにより実行される命令が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装する手段を形成するようなマシンを実現するように、汎用コンピュータ、特殊目的コンピュータ、またはその他のプログラマブル・データ処理デバイスのプロセッサに供給することができる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作の態様を実装する命令を含む製造品を含むように、コンピュータ、プログラマブル・データ処理デバイス、またはその他の装置あるいはこれらの組合せに対して特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶することもできる。
【００３２】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル・デバイスまたはその他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方のブロックで規定されている機能／動作を実装するように、コンピュータ実装処理を作成するために、コンピュータ、その他のプログラマブル・デバイス、またはその他のデバイス上で一連の動作ステップが実行されるようにするために、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイスにロードされてもよい。
【００３３】
図面中のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能および動作を示す。なお、フローチャートまたはブロック図の各ブロックは、規定されている論理機能を実装するための１つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または部分を表すことがある。別の実装形態では、ブロックに記載されている機能は、図に記載されている順序とは異なる順序で行われてもよい。例えば、連続して示されている２つのブロックは、関与する機能に応じて、実際には実質的に並行して実行されてよく、またはそれらのブロックは場合によっては逆の順序で実行されてもよい。また、ブロック図またはフローチャート図あるいはその両方の図の各ブロック、およびブロック図またはフローチャート図あるいはその両方の図のブロックの組合せは、規定されている機能または動作を実行する特殊目的ハードウェア・ベースのシステムによって実装可能であるか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施することができることもわかるであろう。
【００３４】
図９に示すコンピュータ・システム９０は、プロセッサ９１と、プロセッサ９１に結合された入力デバイス９２と、プロセッサ９１に結合された出力デバイス９３と、それぞれがプロセッサ９１に結合されたメモリ・デバイス９４および９５とを含む。入力デバイス９２は、特に、キーボード、マウス、カメラ、タッチスクリーンなどとすることができる。出力デバイス９３は、特に、プリンタ、プロッタ、コンピュータ画面、磁気テープ、取り外し可能ハード・ディスク、フロッピィ・ディスクなどとすることができる。メモリ・デバイス９４および９５は、特に、ハード・ディスク、フロッピィ・ディスク、磁気テープ、コンパクト・ディスク（ＣＤ）またはデジタル媒体ディスク（ＤＶＤ）などの光学ストレージ、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）などとすることができる。メモリ・デバイス９５は、コンピュータ・コード９７を含む。コンピュータ・コード９７は、テープ・ドライブ・メモリ・ストレージ・プロセスを改良するためのプロセスを可能にするアルゴリズム（例えば図７および図８のアルゴリズム）を含む。プロセッサ９１は、コンピュータ・コード９７を実行する。メモリ・デバイス９４は、入力データ９６を含む。入力データ９６は、コンピュータ・コード９７によって必要とされる入力を含む。出力デバイス９３は、コンピュータ・コード９７からの出力を表示する。メモリ・デバイス９４および９５の一方または両方（または読み取り専用メモリ・デバイス９６などの１つまたは複数の追加のメモリ・デバイス）が、アルゴリズム（例えば図７および図８のアルゴリズム）を含んでよく、内部に実現されたコンピュータ可読プログラム・コードを有するかまたは内部に記憶されたその他のデータを有するかあるいはその両方であるコンピュータ使用可能媒体（またはコンピュータ可読媒体またはプログラム・ストレージ・デバイス）として使用することができ、コンピュータ可読プログラム・コードはコンピュータ・コード９７を含む。一般に、コンピュータ・システム９０のコンピュータ・プログラム製品（あるいは製造品）は、コンピュータ使用可能媒体（またはプログラム・ストレージ・デバイス）を含み得る。
【００３５】
ある実施形態では、記憶コンピュータ・プログラム・コード８４（例えばアルゴリズムを含む）は、ハード・ドライブ、光ディスク、またはその他の書き込み可能、読み取り可能または取り外し可能ハードウェア・メモリ・デバイス９５に記憶され、アクセスされるのではなく、読み取り専用メモリ（ＲＯＭ）デバイス８５などの静的な取り外し不能読み取り専用記憶媒体に記憶してもよく、またはそのような静的な取り外し不能読み取り専用媒体８５から直接、プロセッサ９１によりアクセスされてもよい。同様に、ある実施形態では、記憶コンピュータ・プログラム・コード９７は、ハード・ドライブまたは光ディスクなどのより動的な、または取り外し可能なハードウェア・データ・ストレージ・デバイス９５からではなく、コンピュータ可読ファームウェア８５として記憶されてもよく、またはそのようなファームウェア８５から直接、プロセッサ９１によってアクセスされてもよい。
【００３６】
さらに、本発明の構成要素のいずれも、テープ・ドライブ・メモリ・ストレージ・プロセスの改良を申し出るサービス供給者によって、作成、組み込み、運営、維持、配備、管理、サービス提供されることなどが可能である。したがって、本発明は、コンピュータ・システム９０にコンピュータ可読コードを組み込むことを含む、コンピューティング・インフラストラクチャの配備、作成、組み込み、運営、維持、または組み込み、あるいはその組合せを行うためのプロセスを開示し、コードは、コンピュータ・システム９０と組み合わさって、テープ・ドライブ・メモリ・ストレージ・プロセスを改良する方法を実行することができる。別の実施形態では、本発明は、加入方式、広告料方式または料金方式あるいはその組合せの方式で、本発明のプロセス・ステップを実行するビジネス方法を提供する。すなわち、ソリューション・インテグレータなどのサービス供給者が、テープ・ドライブ・メモリ・ストレージ・プロセスの改良のためのプロセスを可能にすることを申し出ることも可能である。この場合、サービス供給者は、１件または複数件の顧客のために、本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャの作成、維持、サポートなどを行うことができる。その見返りとして、サービス供給者は、加入契約または料金契約あるいはその両方に従って顧客から支払いを受けることができるか、またはサービス供給者は１件または複数件の第三者への広告コンテンツの販売から支払いを受けることができるか、あるいはその両方の支払を受けることができる。
【００３７】
図９に、ハードウェアおよびソフトウェアの特定の構成としてコンピュータ・システム９０を示すが、当業者に知られているように、上述の目的のために、図９の特定のコンピュータ・システム９０と共にハードウェアおよびソフトウェアのどのような構成でも利用することができる。例えば、メモリ・デバイス９４および９５は、別々のメモリ・デバイスではなく、単一のメモリ・デバイスの部分であってもよい。
【００３８】
本明細書では、本発明の実施形態について例示のために説明したが、当業者には多くの修正および変更が明らかになるであろう。したがって、添付の特許請求の範囲は、そのようなすべての修正および変更を、本発明の真の思想および範囲に含まれるものとして包含することを意図している。
【図１】
2020533674.tif 000003
【図２】
2020533674.tif 000004
【図３】
2020533674.tif 000005
【図４】
2020533674.tif 000006
【図５】
2020533674.tif 000007
【図６】
2020533674.tif 000008
【図７】
2020533674.tif 000009
【図８】
2020533674.tif 000010
【図９】
2020533674.tif 000011
【手続補正書】
【提出日】令和2年9月4日(2020.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
テープ・ドライブ・メモリ・ストレージを改良する方法であって、
重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、データ・ストリームを受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記ＮＶＳ２に通すことと、
前記プロセッサが前記ＮＶＳ２において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記ＮＶＳ１に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
データ・チャンクの前記第１のグループが前記ＮＶＳ２内に残るように、前記プロセッサによって前記ＮＶＳ２から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記ＮＶＳ２から前記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第１のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクのための前記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記ＮＶＳ１内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記ＮＶＳ１から前記第１のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含む方法。
【請求項２】
前記第１のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記方法は、
前記プロセッサによって、前記ＮＶＳ１から前記ポインタを含む前記チャンク・リスト・ファイルを削除することと、
前記プロセッサによって、前記ＮＶＳ２からデータ・チャンクの前記第１のグループを削除することとをさらに含む、請求項１に記載の方法。
【請求項３】
前記ストレージ・テープ・ドライブ・ハードウェア・デバイス内に第２のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、前記第２のデータ・ストレージ・テープ・カートリッジから前記ＮＶＳ２に、重複排除されたデータ・チャンクの第２のグループを書き込むことと、
前記プロセッサによって、前記第２のデータ・ストレージ・テープ・カートリッジから前記ＮＶＳ１に、重複排除されたデータ・チャンクの前記第２のグループの各データ・チャンクと、関連付けられた記憶位置とを識別するポインタを含む追加のチャンク・リスト・ファイルを書き込むことと、
前記プロセッサによって、前記追加のチャンク・リスト・ファイルの解析に基づいて、重複排除されたデータ・チャンクの前記第２のグループに関して重複データを含む必要な重複データ・チャンクを特定することと、
重複排除されたデータ・チャンクの前記第２のグループが前記必要な重複データ・チャンクと組み合わさって実行のための完全なデータ・ファイルを含むように、前記プロセッサによって、重複排除されたデータ・チャンクの前記第２のグループに前記必要な重複データ・チャンクを追加することとをさらに含む、請求項２に記載の方法。
【請求項４】
前記第２のデータ・ストレージ・テープ・カートリッジが前記ストレージ・テープ・ドライブ・ハードウェア・デバイスから取り外され、前記ストレージ・テープ・ドライブ・ハードウェア・デバイスに第３のデータ・ストレージ・テープ・カートリッジが入れられ、前記方法は、
前記プロセッサによって、記憶のために第２のデータ・ストリームを受け取ることと、
前記プロセッサによって、前記ＮＶＳ２の重複排除されたデータ・チャンクの前記第２のグループと、前記ＮＶＳ１の前記追加のチャンク・リスト・ファイルとに基づいて前記第２のデータ・ストリームに関して重複排除プロセスを実行することであって、その結果として記憶のために、重複排除されたデータ・チャンクの第３のグループができる、前記重複排除プロセスを実行することと、
前記プロセッサによって、前記第３のデータ・ストレージ・テープ・カートリッジに、重複排除されたデータ・チャンクの前記第３のグループを記憶のために書き込むこととをさらに含む、請求項３に記載の方法。
【請求項５】
前記特定することは、前記データ・ストリームに関して指定データ記憶サイズ閾値を超えるまで実行される、請求項１に記載の方法。
【請求項６】
前記データ・ストリームが前記ＮＶＳ２の第１のパーティションに記憶され、データ・チャンクの前記第１のグループが前記ＮＶＳ２の第２のパーティションに記憶されるように、前記プロセッサによって前記ＮＶＳ２をパーティションに区分することをさらに含む、請求項１に記載の方法。
【請求項７】
前記ＮＶＳ１が第１の集積回路ベースのメモリ・デバイスを含み、前記ＮＶＳ２が第２の集積回路ベースのメモリ・デバイスを含む、請求項１に記載の方法。
【請求項８】
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスにおいてコンピュータ可読コードの作成と、組み込みと、運営と、維持と、配備とのうちの少なくとも１つのための少なくとも１つのサポート・サービスを提供することをさらに含み、前記コードが、前記受け取ることと、前記データ・ストリームを前記記憶することと、前記分割することと、前記チャンク・リスト・ファイルを前記生成することと、前記チャンク・リスト・ファイルを前記記憶することと、データ・チャンクの前記第１のグループを前記特定することと、前記削除することと、前記書き込むことと、前記ポインタを前記生成することと、前記ポインタを前記記憶することと、前記チャンク・リスト・ファイルを前記書き込むこととを実装するために前記プロセッサによって実行される、請求項１に記載の方法。
【請求項９】
テープ・ドライブ・メモリ・ストレージを改良する方法を実装するアルゴリズムを含むコンピュータ・プログラムであって、
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含み、前記プロセッサによってデータ・ストリームを記憶のために受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記ＮＶＳ２に通すことと、
前記プロセッサが前記ＮＶＳ２において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記ＮＶＳ１に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
データ・チャンクの前記第１のグループが前記ＮＶＳ２内に残るように、前記プロセッサによって前記ＮＶＳ２から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記ＮＶＳ２から前記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第１のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクのための前記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記ＮＶＳ１内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記ＮＶＳ１から前記第１のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含むアルゴリズムをプロセッサに実行させる、コンピュータ・プログラム。
【請求項１０】
テープ・ドライブ・メモリ・ストレージを改良する方法を実装する命令を含むストレージ・テープ・ドライブ・ハードウェア・デバイスであって、前記方法は、
前記ストレージ・テープ・ドライブ・ハードウェア・デバイスが重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含み、前記プロセッサによって記憶のために、データ・ストリームを受け取ることと、
前記プロセッサによって、前記データ・ストリームを前記ＮＶＳ２に通すことと、
前記プロセッサが前記ＮＶＳ２において前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ストリームを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのそれぞれに関連付けられた類似識別子を含むチャンク・リスト・ファイルを生成することと、
前記プロセッサによって、前記ＮＶＳ１に前記チャンク・リスト・ファイルを記憶することと、
前記プロセッサによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが、前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
データ・チャンクの前記第１のグループが前記ＮＶＳ２内に残るように、前記プロセッサによって前記ＮＶＳ２から前記重複データ・チャンクを削除することと、
前記プロセッサによって、記憶のために前記ＮＶＳ２から前記第１のデータ・ストレージ・テープ・カートリッジにデータ・チャンクの前記第１のグループを書き込むことと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクの、前記第１のデータ・ストレージ・テープ・カートリッジ内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって、前記ポインタを前記ＮＶＳ１内にある前記チャンク・リスト・ファイルに記憶することと、
前記プロセッサによって、記憶のために前記ＮＶＳ１から前記第１のデータ・ストレージ・テープ・カートリッジに前記ポインタを含む前記チャンク・リスト・ファイルを書き込むこととを含む、ストレージ・テープ・ドライブ・ハードウェア・デバイス。
【請求項１１】
テープ・ドライブ・メモリ・ストレージを改良する方法であって、
重複排除ソフトウェア・エンジンと、第１の不揮発性メモリ・デバイス（ＮＶＳ１）と、第２の不揮発性メモリ・デバイス（ＮＶＳ２）と、第１のデータ・ストレージ・テープ・カートリッジとを内部に含むストレージ・テープ・ドライブ・ハードウェア・デバイスのプロセッサによって、記憶のためにデータ・ファイルを受け取ることと、
前記プロセッサが前記重複排除ソフトウェア・エンジンを実行することによって、前記データ・ファイルを複数の隣接可変長データ・チャンクに分割することと、
前記プロセッサが前記重複排除ソフトウェア・エンジンを実行することによって、前記複数の隣接可変長データ・チャンクのうちの重複データ・チャンクを特定することであって、前記重複データ・チャンクが前記複数の隣接可変長データ・チャンクのうちのデータ・チャンクの第１のグループに関して重複データを含む、前記特定することと、
前記プロセッサによって前記ＮＶＳ２内の第１のデータベースにデータ・チャンクの前記第１のグループを記憶することと、
前記プロセッサによって、データ・チャンクの前記第１のグループの各データ・チャンクと、データ・チャンクの前記第１のグループの各前記データ・チャンクのための前記ＮＶＳ２の前記第１のデータベース内の関連付けられた記憶位置とを識別するポインタを生成することと、
前記プロセッサによって前記ＮＶＳ１内の第２のデータベースに前記ポインタを記憶することとを含む方法。
【国際調査報告】
2020533674.tif 000012
2020533674.tif 000013