JP2009533731A - データ圧縮技術およびデータ格納技術 - Google Patents

データ圧縮技術およびデータ格納技術 Download PDF

Info

Publication number
JP2009533731A
JP2009533731A JP2009504506A JP2009504506A JP2009533731A JP 2009533731 A JP2009533731 A JP 2009533731A JP 2009504506 A JP2009504506 A JP 2009504506A JP 2009504506 A JP2009504506 A JP 2009504506A JP 2009533731 A JP2009533731 A JP 2009533731A
Authority
JP
Japan
Prior art keywords
data set
hash
content
file
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009504506A
Other languages
English (en)
Other versions
JP2009533731A5 (ja
JP5309015B2 (ja
Inventor
ドッド、ブライアン
ムーア、マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Data Storage Group
Original Assignee
Data Storage Group
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Data Storage Group filed Critical Data Storage Group
Publication of JP2009533731A publication Critical patent/JP2009533731A/ja
Publication of JP2009533731A5 publication Critical patent/JP2009533731A5/ja
Application granted granted Critical
Publication of JP5309015B2 publication Critical patent/JP5309015B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

データアーカイビングで使用するシステムおよび方法。データセット(例えば、ファイル、フォルダなど)のより早期のバージョン(102)を圧縮エンジンの辞書(108)として利用して(106)、データセットの後続のバージョンを圧縮する(110)圧縮技術が提供される。この圧縮(110)は、データセット間の変化を識別し、それらのデータセットの多くの共通の部分を複製することなしに、これらの違いを格納すること(114)を可能にする。データセットの所与のバージョンに関して、新たな情報は、異なる時点で保存された個別の各セグメントから、そのバージョンを再構成するのに使用されるメタデータと共に格納される。より早期のデータセットおよび後続のデータセットの格納されたセグメントに対する1つまたは複数のリファレンスを利用して、後続のデータセットの再構成が可能となる。

Description

本出願は、デジタルデータを格納することに関する。より具体的には、本出願は、いくつかの態様が、データアーカイブにおいて応用されるデジタルデータのより効率的な格納に使用するためのユーティリティに関する。
(関連出願の相互参照)
本出願は、内容の全体を本明細書に援用する2006年4月7日の出願日を有する「Content Factoring for Long Term Digital Archiving」という名称の米国仮出願第60/744,477号からの優先権を主張する、2007年4月9日の出願日を有する「Data Compression and Storage Techniques」という名称の米国出願第11/733,086号の優先権を主張する。
組織は、長期のデータ保持要件を満たす際に新たな課題に直面しており、IT専門家は、州および連邦政府の多くの新たな規制およびガイドラインの遵守を維持する責任を有する。これらの規制は、組織が、過去に、使用可能な仕方で必要な情報を利用可能にしておくことに苦労したために存在する。この問題を悪化させているのが、デジタル情報の継続的な爆発的増加である。ドキュメントは、コンテンツがより豊かであり、しばしば、関連する仕事を参照し、管理されるべき途方もない量の情報をもたらす。
基礎をなすアクセスパターンをよりよく理解するため、デジタル情報の分類を最初に簡単に説明することが役立つ。すべてのデジタル情報のコレクションは、一般に、構造化されたもの、または構造化されていないものとして分類可能である。構造化された情報とは、リレーショナルデータベース内部に保持されるデータを指す。構造化されていない情報は、その他すべて、すなわちドキュメント、イメージ、映画などである。構造化されたデータと構造化されていないデータはともに、ユーザまたはアプリケーションによって活発に参照される、または将来の参照または遵守のために変更されないままに保たれる。構造化された情報、および構造化されていない情報のうち、活性の情報は、定常的に参照される、または変更されるのに対して、非活性の情報は、時々しか参照されない、または将来の何からの時点で参照される可能性を有するに過ぎない。情報が活性である、または非活性である特定の時間枠は、純粋に主観的である。
デジタル情報の下位分類が、動的または固定としてデータの可変性を表す。トランザクションデータベース内のレコードなどの動的コンテンツは、頻繁に、または継続的に変化する。スキャンされるチェックイメージまたは電子メールメッセージなどの固定のコンテンツは、静的な読み取り専用の情報であり、つまり、作成され、決して変更されない。長期アーカイビングに関して、構造化された、または構造化されていない非活性の情報は、常に固定コンテンツを有すると考えられ、変化しない。
時とともに、情報は、それほど頻繁にアクセスされなくなる傾向があり、アクセスパターンは、より読み取り専門になる傾向がある。固定コンテンツの読み取り専用情報は、アーカイビングの点で管理するのが比較的簡単明瞭である。もちろん、サブファイルレベルにおいてさえ、構造化された、または構造化されていない動的情報が、静的である大きいコンテンツセグメントを含む可能性がある。このタイプの情報の例には、コンテンツが追加されているデータベースファイル、および編集されるドキュメントが含まれる。
固定であれ、動的であれ、デジタル情報のタイプにかかわらず、多くの組織は、組織のデジタルデータを固定でバックアップする。例えば、多くの組織は、すべてのデジタルデータが複製される毎週のバックアップを実行する。さらに、これらの組織の多くは、毎日のインクリメンタルバックアップを実行して、日々のデジタルデータの変更が格納されるようにする。しかし、従来のバックアップシステムは、いくつかの欠点および非効率を有する。例えば、すべてのデジタルデータが複製される毎週のバックアップ中、変更されていない固定のファイルが、複製される。理解され得るとおり、このことは、デジタル情報の不必要な冗長性とともに、処理要件および/または帯域幅要件の増大をもたらす。毎週のバックアップとインクリメンタルバックアップの両方に関する別の問題は、動的ファイルのわずかな変更が、デジタルデータの非効率な複製をもたらす可能性があることである。例えば、10MBファイルの1文字の編集により、そのファイルのコンテンツ全体がバックアップされ、カタログされることが要求される。状況は、Outlook Personal Folders(.pstファイル)などのより大きいファイルに関してはるかに悪く、これらのファイルを開く動作そのものにより、これらのファイルが変更されることになり、すると、このことが、別のバックアップを要求する。
これらの欠点および非効率の通常の結果は、大量のバックアップデータの生成であり、最も一般的なバックアップシステムにおいて、複数のデータストレージテープの生成である。これに関して、非効率なバックアップは、複数のバックアップテープの生成をもたらし、次に、これらのテープが、格納されなければならない。通常、そのようなテープは、オフラインで格納される。つまり、それらのテープは、コンピュータ化されたアクセスが即時に利用可能でない場所に格納される。したがって、バックアップテープから情報を回復することは、アーカイビング施設と連絡をとり、テープを特定し、その施設が、そのテープを探し出して、ロードするのを待つことを要求する可能性がある。
ディスクストレージの価格が下がってきているなかで、ディスクバックアップを利用して、テープバックアップの問題を軽減しようとする試みが行われてきた。しかし、これらのディスクバックアップは、依然として、データの非効率な複製を見込む大量のストレージを要求する。したがって、デジタルデータの前のバックアップと現在のデジタルデータセットとの間に生じた動的変化を識別する試みが行われてきた。これに関して、目標は、前のデジタルデータセットに対して変更されているデータ(すなわち、動的データ)のバックアップに限って作成することである。
データバックアップの合間の動的変化を識別して、それらの動的変化だけを格納しようとする1つの試みが、COS(容量最適化ストレージ)によって代表される。COSの目標は、バックアップセット間の冗長性を重複除外することである。つまり、COSの目標は、現在のデータセットを以前に格納されたデータセットと比較して、新たなデータだけを格納することである。一般に、COS処理は、デジタルデータ(例えば、第1のバックアップコピー)のセット全体をデータチャンク(例えば、256kB)に分割して、それらのデータチャンクにハッシュアルゴリズムを適用することである。当分野の技術者によって理解されるとおり、このことは、ハッシュコード/アルゴリズムに従ってデータを表すキーアドレスをもたらす。バックアップのための新たなデータセット(例えば、第2のバックアップコピー)が受け取られると、データセットは、データチャンクに再び分割され、ハッシュアルゴリズムが適用される。理論上、第1のデータセットと第2のデータセットの間の対応するデータチャンクが同一である場合、バックアップの合間に変更は、全くなかったものと想定される。したがって、第1のバックアップセットとは異なるチャンクだけが、保存されて、後続のバックアップに関するストレージ要件が低減される。COSの主な欠点は、バックアップセット間の冗長性を大幅に減らすのに、ますます小さいデータチャンクを利用することが望ましいことである。しかし、データチャンクのサイズが縮小されるにつれ、キーアドレスの数は、増加する。したがって、より多くのキーアドレスの格納および索引付けが、より少ない量の重複データの利益を消すように作用する。
COS処理の使用により、ディスクアクセス可能なデータバックアップの作成が可能になり、バックアップされたデータセットへのより容易なアクセスが可能になる。これに関して、COSは、仮想テープライブラリVTLがテープストレージデバイスをエミュレートするように、仮想テープライブラリVTLに組み込まれる。システムは、ユーザが、バックアップのためにオフサイトのディスクストレージセンタにデータを送信することを可能にする。しかし、このことは、データセット全体が、VTLに伝送されることを要求し、VTLにおいて、このデータセット全体が、格納のために最適化される(例えば、COS)。さらに、後続の各バックアップに関して、そのデータセット全体が、オフサイトのストレージセンタに再び伝送されなければならない。理解され得るとおり、バックアップを要求する大きいデータセットを有する大きい組織に関して、データセット全体の伝送を要求するそのようなオフサイトのストレージシステムには、データを転送する大きい帯域幅要件、およびデータを最適化し、比較する高い処理要件がかかわる可能性がある。最後に、オフサイトVTLを利用する組織は、組織のデータの復元に関してバックアップアプリケーションに100%依存し、やはり、ユーザは、潜在的に、不慮の削除またはディスク破損の場合に情報が利用できない可能性にさらされたままとなる。
既存の短期データ保護ソリューションは、法外な費用がかかり、アーカイブされた情報への向上したアクセスを可能にすることにほとんど効果がない。本明細書で説明されるアーカイブ技術は、情報を管理することの長期ソリューションを提供するとともに、ディスクベースのアーカイブにおいて利用可能なソリューションを提供する。これらの技術は、既存のディスクリソースを使用して、アーカイブされた情報のコレクションへの容易なアクセスを提供する。この技術が、オープンアーキテクチャオブジェクトベースのコンテンツストアと相俟って、既存の短期データ保護手続きを全く変更することなしに、ディスクベースのシステムの有効容量の大幅な増加(例えば、20:1)を可能にする。
さらに、コンテンツの長期ストレージをよりうまく最適化するのに、これらの新たな技術は、所与のデータセットに関して格納される冗長な情報を減らす。適応コンテンツファクタリングは、固有のデータにキーが付けられ、1回格納される、本発明者らによって開発された技術である。従来のコンテンツファクタリング技術または適応差分技術とは異なり、適応コンテンツファクタリングは、発見的方法を使用して、格納される各データ量子のサイズを最適化する。適応コンテンツファクタリングは、データ圧縮と関係するが、局所化されたコンテンツに限定されない。データセットの所与のバージョンに関して、新たな情報が、異なる時点で保存された個別の各セグメントからのバージョンを再構成するのに使用されるメタデータと一緒に格納される。このメタデータ−再構成段階は、通常のファイルシステムがI/O要求に応える際に行うことと同様である。
本発明の第1の態様により、データを格納する方法およびシステム(ユーティリティ)が提供される。このユーティリティは、第1のデータセットを受け取ること、および辞書ベースの圧縮エンジンを使用して第1のデータセットを圧縮することが必然的に伴う。そのような圧縮により、第1のデータセットを表す第1の圧縮ファイルが生成される。次に、この第1の圧縮ファイルが格納される。次に、この第1の圧縮ファイルを利用して、第1のデータセットの後続のバージョンにおける変化が識別される。本明細書で利用される「データセット」には、限定なしに、個々のデータファイル、ならびに複数のデータファイルを含むフォルダ、および/または複数のフォルダを含むことが可能なドライブが含まれることが意図される。そのような事例においては、第1のデータセットを圧縮することにより、対応する複数の第1の圧縮ファイルが生成される。
一つの構成では、第1の圧縮ファイルを使用して変化を識別することは、辞書ベースの圧縮エンジンに第1の圧縮ファイルを事前ロードして、条件付き圧縮エンジンを定義することを含む。つまり、第1の圧縮ファイルは、圧縮エンジンにロードされることにより、圧縮エンジンのための辞書を定義する。第1のデータセットと後続のデータセットが実質的に同様である場合、圧縮エンジンに関する辞書として第1のデータセットを使用することは、圧縮率の高い第2のデータセットをもたらす。このため、ユーティリティは、第1のデータセットの後続のバージョンを、条件付き圧縮エンジンを使用して圧縮することを含む。これに関して、第1のデータセットの後続のバージョンを示す第2の圧縮ファイルが生成される。この第2の圧縮ファイルは、後続のデータセットと第1のデータセットの間の変化をやはり示す。さらに、第2の圧縮ファイルは、第1の圧縮ファイルに対する1つまたは複数のリファレンスを含む。第2の圧縮ファイルは、第1の圧縮ファイルよりも相当に小さくなる。より早期の1つまたは複数のデータセットを、辞書ベースの圧縮エンジンに関する辞書として利用することにより、複数の後続のデータセットを圧縮することが可能となる。
第1のデータセットの対応する部分を、第2のデータセットの対応する部分(例えば、対応するファイル)と同一視するため、ユーティリティは、データセットの個々の1つまたは複数の部分に関する識別子情報を生成することをさらに必然的に伴う。例えば、ハッシュコード情報(本明細書で「ハッシュ情報」および「ハッシュ」または「複数のハッシュ」とも呼ばれる)が、データセットの個々の部分に関して生成される。さらに、そのようなハッシュ情報が、データセットの個別の各部分の個々の構成要素に関して生成される。一つの構成において、1つまたは複数のハッシュコードが、所与のファイルに関連するメタデータに関連し、別のハッシュコードが、ファイルのコンテンツに関して生成される。したがって、そのようなハッシュコードを利用して、圧縮の目的で、第1のデータセットと後続のデータセットの対応する部分を識別することが可能である。対応するハッシュコードが、後続のデータセットのいくつかの部分に関して存在する場合、通常の圧縮方法が、後続のデータセットのそれらの部分に対して利用することが可能となる。
別の態様によれば、データを圧縮するためのシステムおよび方法(ユーティリティ)が提供される。ユーティリティは、ファイルを受け取ること、およびこのファイルの前のバージョンが以前に格納されていると判定することを含む。そのような判定が行われると、ファイルを、そのファイルの前のバージョンから生成された圧縮辞書語を使用して圧縮することが可能となる。こうして、受け取られたファイルに関する圧縮ファイルが生成される。次に、この圧縮ファイルが格納される。圧縮辞書語は、ファイルの前のバージョンから、またはファイルの前のバージョンの圧縮バージョンから生成される。いずれの構成においても、ユーティリティは、ファイルの前のバージョンを圧縮エンジンに事前ロードすること、および受け取られたファイルを、圧縮エンジンを使用していくつかの部分に分けてバッファリングすることを含むことが可能である。そうすることにより、受け取られたファイルのバッファリングされた部分と、前のファイルの同様のサイズの部分との実質的なマッチングが可能となる。
ファイルの前のバージョンが以前に格納されているという判定は、任意の適切な方法で行われる。例えば、ファイルは個別に保存されて、ユーザが、バックアップ手続き中にファイルの以前に格納されたバージョンを選択することが可能である。別の構成において、バージョンリファレンスに関連する(例えば、ファイルのメタデータに関連する)ハッシュを利用することで、ファイル間の関係を判定することが可能である。一つの構成において、第1のハッシュおよび第2のハッシュは、以前に格納されたファイルのメタデータ、および受け取られたファイルのメタデータに関連する。そのような構成において、ファイルの対応する第1のハッシュが合致する(例えば、ストレージロケーションに対応して)一方で、ファイルの第2の対応するハッシュ(例えば、バージョンリファレンス)は合致しない。これに関して、これらのファイルは、関係するが、これらのファイル間に変更があると判定される。したがって、バックアップ目的で量を減らすために、前のファイルを利用して後続のファイルを圧縮することが望ましい可能性がある。
別の発明の態様によれば、データをアーカイブする際、および/または格納する際に使用するシステムおよび方法(ユーティリティ)が提供される。ユーティリティは、データセットに関する個別のシグネチャを生成することが必然的に伴う。このシグネチャが、後続のデータセットと比較されることにより、対応する部分、または同様の部分が識別される。そのため、それらのデータセット間の違いを識別することが可能となる。したがって、データセットの同様の部分は、バックアップ手続きにおいてコピーされる必要がない。そうではなく、後続のデータセットの新たな部分(例えば、違い)だけが、アーカイビング/バックアップ目的でコピーされればよい。
一つの態様において、ユーティリティは、第1のデータセットに関連する第1のシグネチャを生成することを含む。第1のシグネチャを生成することは、第1のデータセットのメタデータに関連する第1のハッシュセット(例えば、ハッシュコード)を生成することを含む。さらに、第1のデータセットに関して、第1のデータセットのコンテンツに関連するコンテンツハッシュのセットが生成される。例えば、データセットの中の個別の各ファイルは、メタデータに関連する第1のハッシュ(例えば、識別子ハッシュ)と、そのファイルのコンテンツに関連する第2のハッシュ(例えば、コンテンツハッシュ)とを含む。これらが生成されると、第1のハッシュと、コンテンツハッシュとを含むシグネチャを個々に、および/または組み合わせで利用して、第1のデータセットと後続のデータセットとの間の変化が識別される。例えば、第1のデータセットの識別子ハッシュが、後続のデータセットの対応するハッシュと比較される。そのような比較に基づき、第1のデータセットと後続のデータセットの1つまたは複数の部分の間で変化が存在すると判定される。つまり、第1のデータセットと第2のデータセットの1つまたは複数の部分の間で変化が存在するかどうかが判定される。
一つの構成において、第2のデータセットの識別子ハッシュが、第1のデータセットの識別子ハッシュと合致しない場合、この合致しない識別子ハッシュに関連するコンテンツが、第1のデータセットのコンテンツと比較される。より詳細には、そのコンテンツをハッシュすることによって得られたコンテンツハッシュコードが、第1のデータセットに関連するコンテンツハッシュコードと比較される。これに関して、コンテンツの識別子が第1のデータセットにおける識別子と合致しない場合でさえ、そのコンテンツが第1のデータセットの中に既に存在するかどうかを判定する第2の検査が実行される。そのコンテンツハッシュコードが存在する場合、そのコンテンツは、ストレージロケーションに伝送されない、またはそれ以外で格納されない可能性がある。合致しない識別子ハッシュのコンテンツハッシュコードが、第1のデータセット内のコンテンツハッシュコードと合致しない場合、そのコンテンツは、ストレージロケーションに格納される。
一つの構成において、メタデータに関連する識別子ハッシュは、第1の識別子ハッシュと、第2の識別子ハッシュとを含む。これらのハッシュのそれぞれは、メタデータのいくつかの部分に関連する。例えば、これらのハッシュの1つは、他のハッシュの下位部分であり得る。これに関して、データセットの間で、より細かい比較が行われて、データセット間の変化が識別される。
さらなる発明の態様において、アーカイビング目的の分散処理を可能にするためのシステムおよび方法(ユーティリティ)が提供される。これに関して、データセット全体をアーカイブロケーションに転送するのではなく、アーカイブデータセットと現在のデータセットとの間の変化の識別が、現在のデータセットのロケーション(例えば、データ起源ロケーション)において実行される。したがって、アーカイブロケーションに送られる可能性がある情報は、以前に格納されたデータセットと現在のデータセットとの間の違いだけである。
一つの態様によれば、格納のための第1のデータセットが受け取られる(例えば、アーカイブ/バックアップロケーションにおいて)。したがって、第1のデータセットのメタデータに関連する識別子ハッシュのセットが生成される。また、同様に、第1のデータセットのコンテンツに関連するコンテンツハッシュのセットも生成される。第1のデータセットに関連する現在のデータセットをバックアップすることが必要になると、これらの識別子ハッシュおよびコンテンツハッシュが、第1のデータセットに関連するデータ起源ロケーションに供給される。データ起源ロケーションにおいて、これらのハッシュを利用して、第1のデータセットと後続のデータセットとの間の変化が特定されて、これらの変化が、ストレージロケーションに転送される。これに関して、ユーティリティには、供給された識別子ハッシュおよび/またはコンテンツハッシュのいずれか、または両方と合致しなかった後続のデータセットからデータを受け取ることも必然的に伴う。そのような時点で、新たに受け取られたデータがハッシュされ、そのハッシュ情報が、後続のバックアップの目的で既存のハッシュ情報に追加される。
別の態様によれば、以前に格納されたデータセットのメタデータに関連する識別子ハッシュのセットが受け取られるユーティリティが提供される。これらの識別子ハッシュは、現在のデータセットの識別子ハッシュと比較される。このデータセットの少なくとも一部分が、以前に格納されたデータセットの後続のバージョンを形成する。これらの識別子ハッシュを比較することにより、現在のデータセットの合致しない識別子ハッシュを識別することが可能になる。したがって、合致しない識別子ハッシュに関連するコンテンツの一部分または全部が、ストレージロケーションに送られる。
さらなる構成において、ユーティリティは、以前に格納されたデータセットのコンテンツに関連するコンテンツハッシュのセットを受け取ることをさらに含む。そのような構成において、現在のデータセットの合致しないハッシュのコンテンツに関連するコンテンツハッシュが、以前に格納されたデータセットのコンテンツハッシュと比較される。したがって、そのような構成において、識別子ハッシュも、コンテンツハッシュも、以前に格納されたデータセットのハッシュに対応しない場合、その合致しないコンテンツが、ストレージロケーションに送られる。
前述の2つの態様において、送信する/供給する工程、および/または受け取る工程は、例えば、コンピュータとストレージロケーション(例えば、直接に接続されたストレージ、取り外し可能なハードドライブ、または他のポータブルストレージデバイス)との間の直接接続によって、あるいはネットワーク接続によって実行される。ネットワーク接続によって実行される場合、そのようなネットワーク接続には、ワイドエリアネットワーク、インターネット、直接接続されたストレージネットワークおよび/またはピアコンピュータが含まれる。
さらなる態様において、データセットの複数の異なるバージョン(例えば、連続したバージョン)を格納するための、およびそのようなバージョンへのアクセスを提供するためのシステムおよび方法が提供される。このユーティリティには、異なる時点で異なるデータセットのカタログを生成することが含まれる。各カタログは、或る特定の時点における関連するデータセットを再構成するのに必要とされる情報を含む。つまり、或る時点に関する或る特定のデータセットの完全なコピーを生成するのではなく、このユーティリティは、所与のデータセットを再構成するのに要求されるデータのロケーションに対するリファレンスを有するカタログを生成する。
一つの構成において、カタログは、異なるデータストリーム(例えば、ファイルの構成要素)に関する様々なハッシュコードを含む。これらのハッシュコードは、カタログ内で所与のファイルの構成要素を識別し、探し出すことができるようにする。したがって、これらの構成要素は、カタログが生成された際に存在していた形態でファイルを形成するように再構成される。別の言い方をすると、所与のファイルのデータを格納するのではなく、カタログは、そのファイルに関連するデータのロケーションに対するリファレンスを格納して、ファイルの構成要素を複製することが、必ずしも必要でないようにする。さらに、所与のカタログの格納されたリファレンスは、異なる時点で保存されている所与のファイルの異なるセグメントを参照可能である。
例示的な実施形態が図に示される。本明細書で開示される実施形態および図は、限定するものではなく、例示的であるものと考えられることが意図されている。
次に、添付の図面を参照して、本発明の様々な特徴を説明する。本発明は、ここでは、主として、電子データのアーカイビング/バックアップストレージに関連して説明されるものの、本発明は、本明細書に含まれる発明の目的を実現することが所望される他の応用例にも適用可能である。つまり、本発明は、任意のデータストレージ環境において利用することが可能である。これに関して、アーカイビングのための使用の以下の説明は、例示および説明の目的で提示される。さらに、この説明は、本発明を、本明細書で開示される形態に限定することを意図していない。したがって、以下の教示、および当該技術分野の技能および知識に相応する変種および変形は、本発明の範囲に含まれる。本明細書で説明される実施形態は、本発明を実施する当業者が、本発明を、そのような実施形態において、または他の実施形態において、本発明の特定の応用例または用法によって要求される様々な変形とともに利用することができるようにすることをさらに意図している。
アーカイビングの目的でバックアップ工程および復元工程だけを厳密に使用することは、ほとんどの規制された環境に関して容認できない。ディスクベースのバックアップ環境に関して、従来の方法を使用することは、一般に、法外な費用がかかる。より高い利用可能性に対処し、ディスクストレージの費用を最小限に抑える2つの一般的な方法は、HBDL(ハードウェアベースのディスクライブラリ)またはVTL(仮想テープライブラリ)を組み込むことである。いずれのソリューションも、データ冗長性問題に対処せず、これらのソリューションは、全体的なTCO(総所有コスト)を低減することにほとんど効果がない。
IT組織によって採用される代替のアプローチは、ボリュームシャドウコピーサービスなどのブロックレベルスナップショット技術、または類似したハードウェアベンダによって提供されるスナップショット技術を使用することである。この場合、所与の回復ポイントに関して、変更されたブロックが記録される。しかし、これらのシステムは、通常、指定された数のスナップショットの後、またはボリューム容量閾値に達すると、リセットされる(ロールオーバする)。すべての場合において、ブロックが再使用された後、削除された情報は、もはや利用できない。さらに、スナップショット技術は、長期アーカイビングに適したデータを編成する能力を欠いている。
図1は、アーカイビング要件に対処するように毎月のボリュームイメージを保持することを含む通常の4週間ローテーションスキームを使用して、2年間にわたって1テラバイトのボリュームを管理するのに要求される容量を示す。この例は、50%の複合年間データ成長レートをモデル化する。バックアップされるべきデータの全体的な量が、50%増加する一方で、既存のバックアップ技術に基づいて1年の期間にわたってこのデータをバックアップするのに要求されるデータリソースは、元のコンテンツ/データのほぼ20倍である。やはり図示されるのが、本明細書で提供される技術(例えば、適応コンテンツファクタリング技術)に基づくディスクベースのアーカイビング方法を使用して達せられることが可能な、元のコンテンツ/データに対する、ほぼ線形のスケーリングである。バックエンドストレージ要件は、より多くの回復ポイント、およびアーカイブされた情報への向上したニアラインアクセスを提供しながら、ほぼ20分の1に低減される(有効容量比として表された軸を参照)。TCOは、低位ないし中位のディスクストレージ上に展開された場合の、従来のテープベースのバックアップシステムのTCOに近づく。
本明細書で開示されるアーカイブ技術は、リファレンス/格納された情報へのオンライン/動的アクセスも可能にし得る長期データ保持戦略として特徴付けられる。この技術は、適応コンテンツファクタリングを利用して、ディスクベースのストレージシステムの有効容量を増加させて、デジタルアーカイビングに関するTCOを大幅に低減する。従来のバックアップおよび回復とは異なり、管理されるすべてのデータは、オンラインであり、利用可能である。さらに、アーカイブ内のすべてのデータが、有効期限が切れるまで、アクセス可能なままである。統合された探索−アーカイブコレクション管理フィーチャが、アーカイブされた情報の全体的な編成および管理を向上させる。
コンテンツの長期ストレージをよりうまく最適化するのに、この新たなアーカイビング技術は、所与のデータセットに関して格納される冗長な情報を減らす。冗長な情報が減らされると、データの連続するバージョンを格納するのに要求されるストレージリソースが、より少なくなる。これに関して、適応コンテンツファクタリングは、固有のデータにキーが付けられ、1回、格納される技術である。従来のコンテンツファクタリング技術または適応差分技術とは異なり、適応コンテンツファクタリングは、発見的方法を使用して、格納されるデータの各量子のサイズを最適化する。適応コンテンツファクタリングは、データ圧縮と関係するが、局所化されたコンテンツに限定されない。データセットの所与のバージョンに関して、新たな情報は、異なる時点において保存された個別の各セグメントからのバージョンを再構成するのに使用されるメタデータと一緒に格納される。このメタデータ−再構成段階は、I/O要求に応じる際に通常のファイルシステムが行うことと同様である。
図2は、適応コンテンツファクタリングの背後の基本的概念を示す。Tにおいて、データセットV(ファイル、ボリューム、またはデータベース)がセグメント化され、個々の要素にキーが付けられ、このデータセットを再構成するのに使用されるセグメントおよび工程を記述するメタデータと一緒に格納される。TおよびTにおいて、このデータセットは、データセットが、それぞれ、VおよびVになるように更新される。しかし、データセットVおよびVの新たなバージョン全体を格納するのではなく、これらのデータセットの更新部分を表す変更だけが、バージョンVおよびVを再構成するのに使用されるメタデータと一緒に格納される。
本明細書でさらに説明されるとおり、新規な方法が、初期データセットVと後続のデータセットVとの間の変化(例えば、データブロック3’および10)を識別して、データチャンクのより大きいセット(例えば、ファイル、ディレクトリなど)が、そのファイル、またはそのディレクトリの前のバージョンと比較されて、後続のバージョンにおける変化だけがアーカイブされるようにすることが可能であるようにすることを提供する。これに関して、変化していない元のデータセットV(例えば、ベースラインバージョン)の部分(例えば、データブロック1、2、および4〜9)が、不必要に複製されない。そうではなく、変化のセットを含むファイルまたはディレクトリを再現する際、そのファイル/ディレクトリのベースラインバージョンが利用され、記録された変化(例えば、3’および10)、つまり、デルタが、回復された後続のバージョンに組み込まれる。これに関して、時刻TにおいてデータセットVをバックアップする際、データセットVを事実上、バックアップするのに初期データセットVに対する変更だけが保存されればよい。
データセットの後続のバージョン(例えば、VおよびV)の間の変化を識別するため、本発明は、新規な圧縮技術を利用する。理解されるとおり、データ圧縮は、データストリームの中のパターンの識別によって機能する。データ圧縮アルゴリズムが、同一の情報を表すより効率的な方法を選択する。基本的に、可能な限り多くの冗長性を取り除くためにデータにアルゴリズムが適用される。圧縮スキームの効率および有効性は、圧縮されたデータに対する圧縮されていないデータのサイズの比である、圧縮比によって測定される。2対1の圧縮比(標準の圧縮アルゴリズムにおいて比較的一般的である)は、元のデータのサイズの半分である圧縮されたデータを意味する。
様々な圧縮アルゴリズム/エンジンが、データを圧縮するために異なる方法を利用する。しかし、いくつかの損失のない圧縮アルゴリズムは、辞書ベースの圧縮アルゴリズムである。辞書ベースのアルゴリズムは、圧縮されているテキストの中で以前に見られたストリングの辞書を自動的に構築することが可能であるという洞察を中心に構築されている。これに関して、圧縮中に生成される辞書(例えば、もたらされる圧縮されたファイル)は、展開器が、圧縮器と同一の仕方で辞書を構築することができ、正しく符号化された場合、テキストにおける同一の箇所で圧縮器辞書が有するのと全く同一のストリングを有することになるので、圧縮されたテキストと一緒に伝送されなくてもよい。そのような構成において、辞書は、初期の圧縮に関連して、生成される。
本発明者らは、辞書を、圧縮中に生成する代わりに、データセットを圧縮する目的で圧縮器に与えることが可能であることを認識した。特に、本発明者らは、図2に示される第1の時刻Tに関連する元のデータセットVを辞書として利用することで、その後の時刻Tにおける後続の対応するデータセットVを圧縮可能であることを認識した。これに関して、圧縮器は、元のデータセットVを辞書として利用し、後続のデータセットVの中のデータの大きいストリングは、最初のセットにおけるストリングと完全に重複するものであり得る。例えば、図2に示されるとおり、時刻TにおけるVの実際の格納は、時刻TにおけるVのデータブロックに対応するいくつかのブロックを組み込む可能性がある。つまり、第2のデータセットVにおけるブロックのいくつかは、データセットの間で変化していない。したがって、変化していないデータブロックを格納する(例えば、そのデータブロックを複製する)のではなく、VOからの対応するデータブロックを参照する識別子が格納される。そのような識別子は、非常に小さい、例えば、10バイトのオーダである。例えば、識別子は、ベースラインの辞書ブロックを参照することが可能である。データのブロック、例えば、3’に変更があった事例において、圧縮器は、3’の変更を、ベースラインVとの違い、ならびにブロック3における変更を含むエントリに圧縮するように動作する。さらに、追加のテキストが、後続のバージョン(例えば、ブロック10’)に加えられた場合、このテキストが、後続のバージョンTの中に保存される。
データセットの後続のバージョンの間で非常にわずかな変更が行われた場合、非常に大きい圧縮比が達成される。これらの圧縮比は、50対1、100対1、200対1、またはそれより大きいものとなる。つまり、10ページのテキストドキュメント内で単一の文字が変更された事例において、元のバージョンと後続のバージョンとの間の圧縮は、その1つのわずかな変更を除いて、ほとんど完全である。理解されるとおり、圧縮アルゴリズムのための起源の辞書として元のデータセットを利用することは、後続のデータセットの間の変化を容易に識別して、ベースラインデータセットVからの後続の変化を格納するのに、非常に少しのストレージしか要求しないものになる。したがって、データセットの後続のバージョンを再現することになった際に、データセットの所望されるバージョンに関する辞書識別子が識別される。これに関して、変化が全く存在しない場合、辞書識別子は、ベースラインデータセットVの元のブロックをポイントする。変化が存在する(例えば、3’または6’)場合、識別子は、元のベースラインデータセットおよびデルタデータセットをポイントする。そのような構成は、限られたストレージリソースを利用して、データセットの複数の後続のバージョンを保存することを可能にする。
この方法は、データセットの後続のバージョンのバックアップの間でわずかな変化しか存在しない場合、特にうまく機能する。しかし、以前にバックアップされたデータセットと比べてデータセットに相当な変化が生じている場合においてさえ、データのサイズの大幅な縮小が、依然として達せられる。例えば、元のデータセットが、10ページのテキストドキュメントに相当し、後続の対応するドキュメントが、15の新たなページを組み込む(すなわち、合計で25ページ)場合、最初の10ページは、ほぼ完璧な圧縮(例えば、200対1)を実現する一方で、新たなテキストの15ページは、例えば、2対1という、より普通の圧縮オーダで圧縮され得る。しかし、さらなる後続のバックアップ(例えば、第3のバージョン)が、バージョン1および2の新たなテキストをベースラインリファレンスとして利用することができる。代替として、圧縮が、或る所定の圧縮比閾値に達しない場合、変化が、データの元のバージョンを、その後、ベースライン値となる後続のデータバージョンで置き換えることが妥当とされるだけ十分に大きいと判定される。
図3は、ベースラインデータセットを利用して、データセットの後続のバージョンが圧縮される工程100を示す。図示されるとおり、初期データセットが取得される(102)。このことには、この初期データセットを受け取り、格納すること、および/または、例えば、標準の圧縮技術を利用して、このデータセットを圧縮すること(104)が含まれる。これに関して、この初期データセットを表す圧縮ファイルが生成され、後の時点で、この初期データセットを利用することにより(106)、後続のデータセットにおける違いが識別される。そのような利用には、元のデータ(圧縮された、または圧縮されていない)で辞書ベースの圧縮エンジンを条件付けすること(108)、および元のデータセットを辞書として利用する圧縮エンジンを利用して、後続のデータセットを圧縮すること(110)が含まれる。このことにより、初期データセットと後続のデータセットとの間の変化を示す圧縮ファイルが生成される(112)。さらに、そのような圧縮ファイルは、圧縮辞書(例えば、元のデータセットおよび/または初期の圧縮ファイル)に対するリファレンスを含み得る。したがって、後続のデータセットを示す圧縮ファイルが、例えば、データ復元のために後でアクセス可能な、或る時点のアーカイブとして格納される(114)。後続の対応するデータセットの圧縮のための辞書としてベースラインデータセットを使用することにより、以下のアプリケーションのいくつかが、或る程度、容易になる。以下のアプリケーションは、それらの態様自体が新規である。
前述した圧縮技術を少なくとも或る程度、活用することが可能なアーカイビングサービスを提供するのに、初期データセットが、最初にカタログされなければならない。そのようなカタログは、データセットの様々な構成要素のロケーションのマップを形成し、後の時点におけるデータセットの再構成を可能にする。これに関して、データのセットが、そのデータのベースラインバージョンを生成するように初めてバックアップされる際に、そのデータが、1つまたは複数の知られているハッシュアルゴリズムを使用してハッシュされる。これに関して、初期カタログ工程は、主として、既存の工程と同様である。しかし、ハッシングを利用する他のアーカイビング工程とは異なり、このアプリケーションは、データセットの異なる部分に関して複数のハッシュを利用する。さらに、このアプリケーションは、共通の構成要素に関して2つ以上のハッシュを使用することが可能である。
例えば、データセットは、各々ハッシュされる異なる3つのデータストリームに分割される。これらのデータストリームは、異なるファイル、異なるフォルダ、および/または異なるデータセットに関するドライブ名/フォルダ名/ファイル名、および/またはサーバIDを含むベースラインリファレンスを含む。つまり、ベースラインリファレンスは、大きいデータセット/ブロックデータの識別と関係する。第2のハッシュが、ベースラインリファレンスのそれぞれに関するメタデータ(例えば、バージョンリファレンス)に対して実行される。この実施形態において、ベースラインリファレンス(例えば、ストレージロケーション)と関係する第1のハッシュは、第2のハッシュを形成するのに利用されるメタデータのサブセットである。これに関して、データセットの各ファイルに関連するメタデータは、いくつかの異なる特性を含み得る。例えば、そのような各バージョンリファレンスに関して12〜15のプロパティが存在する。これらのプロパティには、名前、パス、サーバおよびボリューム、最終変更時刻、ファイルリファレンスID、ファイルサイズ、ファイル属性、オブジェクトID、セキュリティID、および最終アーカイブ時刻が含まれる。最後に、各ベースラインリファレンスに関して、生のデータ、またはデータのBlob(バイナリラージオブジェクト)が存在する。一般に、データのそのようなBlobは、ファイルコンテンツおよび/またはセキュリティ情報を含む。データセットをこれら3つの構成要素に分離して、これらの構成要素のそれぞれをハッシュすることにより、各データセットに対して、後続のバージョンに関する変化を識別する複数の検査を実行することが可能である。
第1のハッシュ
ベースラインリファレンス−Bref
1次フィールド
パス/フォルダ/ファイル名
ボリュームコンテキスト
修飾子
最終アーカイブ時刻
第2のハッシュ
バージョンリファレンス−Vref(12〜15のプロパティ)
1次フィールド(変化標識)
パス/フォルダ/ファイル名
リファレンスコンテキスト(1つまたは3つのフィールド)
ファイル最終変更時刻(2つのフィールド)
ファイルリファレンスID
ファイルサイズ(2つのフィールド)
2次フィールド(変化標識)
ファイル属性
ファイルオブジェクトID
ファイルセキュリティID
修飾子
最終アーカイブ時刻
第3のハッシュ(データの大半)
Blob(個々のデータストリーム)
1次データストリーム
セキュリティデータストリーム
残りのデータストリーム(オブジェクトIDストリームを除く)
別の構成において、合成ハッシュが、2つ以上のハッシュコードから作られる。つまり、VRef識別子、BRef識別子、およびBlob識別子は、2つのハッシュコードから構成される。例えば、高周波数(強い)ハッシュアルゴリズムが、低周波数(弱い)ハッシュアルゴリズムと共に利用される。弱ハッシュコードは、強ハッシュがどれだけ良好であるかを示し、確度の高いハッシュコード衝突(すなわち、合致するハッシュ)に関する1次標識である。代替として、さらに強い(より多くのバイト数の)ハッシュコードも利用可能であるが、さらに強いハッシュコードを生成するのに要求される処理時間が問題となる可能性がある。合成ハッシュコードは、以下のとおり表される。すなわち、
ba=“01154943b7a6ee0e1b3db1ddf0996e924b60321d”
|強いハッシュ構成要素|弱|
|高周波数|低|
これに関して、より大きい単一のハッシュコードと比べて、要求する処理リソースが合算して、より少ない2つのハッシュコードが、スタックされる。これによりもたらされるコードは、データセットの一部分/ファイルに関するさらなる情報を提供する。
一般に、図4に示されるとおり、初期データセットが、そのデータセットに関連するシグネチャを作成する(122)ために、ハッシュされて異なるプロパティになる。このシグネチャは、データセットの個々の部分(例えば、ファイル)に関するいくつかの異なるハッシュコードを含む。さらに、データセットの各部分は、互いに索引付け可能な複数のハッシュ(例えば、ハッシュ1〜3)を含む。例えば、データセットの各部分に関するハッシュは、メタデータ(例えば、ベースラインリファレンスおよび/またはバージョンリファレンス)に関連する識別子ハッシュ、およびデータセットのその部分のコンテンツに関連するコンテンツハッシュを含む。バックアップが実行可能となるように後続のデータセットが獲得されると(124)、その後続のデータセットがハッシュされて、シグネチャハッシュコードと比較するためのハッシュコードが生成される。
しかし、すべてのデータをハッシュすることとは異なり、一般に、データBlobと比べて少ない量のデータを含む、後続のデータセットのメタデータおよびベースラインリファレンス、または識別子構成要素は、初期ベースライン格納以来、変更された、または追加されたファイル(例えば、合致しないハッシュ)を識別するために(128)、最初にハッシュされる(126)。これに関して、変更されているとして識別された合致しないハッシュのコンテンツ(例えば、ファイルのBlob)は、次に、ハッシュされて(130)、ベースラインデータセットの格納されたバージョンと比較される(132)。理解されるとおり、ファイルの名前が、第1のバックアップと第2のバックアップとの間で変わる場合がある。しかし、ファイルのテキストに全く変更が行われないことも珍しくない。そのような場合、バージョンリファレンス間のハッシュは、第1のバックアップと第2のバックアップとの間の変更時間における変化を示す。したがって、初期データセットに関連するコンテンツハッシュを識別し、これらのハッシュを、後続のデータセットのコンテンツハッシュと比較することが望ましい可能性がある。理解されるとおり、バックアップ間のドキュメントのテキストに全く変更が行われていない場合、コンテンツハッシュと、関連するデータ(例えば、Blob)とは、同一である。これに関して、名前が変更されたファイルに関連するデータを保存する(例えば、以前に保存されたデータを複製する)必要は全くない。したがって、新たなファイル名は、元のファイルのベースラインBlobに対するリファレンスを共有することが可能である。同様に、同一のコンテンツを有するファイルが、同一のサーバの異なるボリューム上、または異なるサーバ上に存在可能である。例えば、ワークグループ内の多くのシステムは、Microsoft Word(登録商標)に関するアプリケーションファイルの同一のコピー、またはMicrosoft Windows(登録商標)オペレーティングシステムを構成するファイルを含む。したがって、これらのファイルの各ファイルのファイルコンテンツは、同一である。これに関して、別のサーバ上で見られる同一のファイルに関連するデータを再保存する必要は全くない。したがって、ファイルは、別のボリューム、または別のサーバからの元のファイルのベースラインBlobに対するリファレンスを共有する。データセットのベースラインバージョンからのデータセットの後続のバージョンにおいて合致しないコンテンツが存在する場合、後続のBlobが、格納され(134)、および/または圧縮されて、格納される(134)。
重要なこととして、図4の工程120は、分散可能である。これに関して、格納されたデータに関連するハッシュコードは、データの起源ロケーションに供給される。つまり、初期データセットは、オフサイトのロケーションにおいて格納される。ハッシュコードをデータ起源ロケーションに供給することにより、何が新たなコンテンツであるかという判定が、データの起源ロケーションで行われる。したがって、新たなデータだけが、ストレージロケーションに転送されればよい。理解されるとおり、これにより、バックアップデータをオフサイトのストレージロケーションに転送するための帯域幅要件が低減される。
図5は、本発明のいくつかの態様に従ってデータをアーカイブするための工程の一実施形態を示す。最初、元のデータセットが、受け取られる(1)。このデータセットは、限定なしに、サーバ、データベース、またはファイルシステムから受け取られるデータを含む。このデータは、通常、このデータをバックアップする、またはアーカイブする目的で受け取られる。受け取られたデータ内の各アイテム/オブジェクト(例えば、ファイル、フォルダ、またはデータの任意のブロック)が処理され(2)、バージョンリファレンス(「Vref」)が計算される(3)。前述したとおり、Vrefは、オブジェクトのメタデータ3aと関係する多数のフィールドを含む。これらのフィールドには、1次フィールドおよび2次フィールドが含まれる。これらのフィールドは、データセットの第1のインスタンスのアーカイビング(すなわち、バックアップ)と、後続のインスタンスのアーカイビング(すなわち、バックアップ)との間の変化を識別するのに利用される。
このことは、最初、オブジェクトデータが、アーカイブシステム内に存在するかどうかを判定することを可能にする。Vrefが計算されると(3)、Vrefはオブジェクトストア4aに割り当てられる(4)。割り当てが行われると、共通コンテンツオブジェクトストアとの比較(5)が実行されて、そのVrefに関連するオブジェクトが既に存在する(すなわち、前のアーカイブ動作から)かどうかが判定される(6)。この判定は、リファレンスルックアサイドテーブル7を利用して実行される。リファレンスルックアサイドテーブル7は、VrefハッシュコードおよびBrefハッシュコードを含むテーブルである。いずれにしても、新たに受信されたデータからのオブジェクトのVrefが、以前にアーカイブされたオブジェクトのVrefと均等である場合、そのオブジェクトが、既に存在する可能性があるという判定が行われる。マッチが全く見出されない場合、処理は、本明細書で説明されるとおり進む。リファレンスルックアサイドテーブル7内でマッチが全く見出されない場合、オブジェクトの存在は、オブジェクトストアを探索することによってさらに判定される。マッチが見つかった場合、Vrefは、リファレンスルックアサイドテーブルにロードされる。
マッチが全く識別されない(例えば、オブジェクトが、新たなデータ、またはより早期のバックアップ以来、変更されているデータを表す)場合、データをアーカイブすることに関するストレージポリシーが選択される(8)。図示される実施形態では、汎用ポリシーが選択される。理解されるとおり、異なるデータタイプに関して異なるポリシーが選択される。例えば、知られていないデータに関して汎用ポリシーが選択される。これに対して、データの1つまたは複数の構成要素が知られているデータセットに関して、その特定のデータセットのニーズによりよく合致するポリシーを選択することが好ましい可能性がある。ポリシーが選択されると(9)、工程は、継続し、ベースラインリファレンス(「Bref」)9が、データソースの以前に合致しなかった各オブジェクト10aに関して計算される。Vrefデータのサブセットを利用して、ベースラインデータまたはBrefデータが計算される。具体的には、前段で概説されるメタデータを利用して、ベースラインリファレンスオブジェクトに関するハッシュが計算される。
オブジェクトに関してBref9が計算されると、Brefは、ストアに割り当てられる(11)。この割り当て(11)は、対応するVrefに関して行われた同一の割り当て(11)に基づく。通常、計算されるBrefは、最新のBrefである。しかしながら、メタデータは、第1の時点と第2の時点(例えば、第1のアーカイビング工程と第2のアーカイビング工程)に関して同一である一方で、オブジェクトデータは、変化する可能性がある。そのような場合、現在のBrefが、最新のBrefであるかどうかの判定(12)が、最終アーカイブ時刻修飾子を使用してオブジェクトストアの中の他のBrefデータと比較することによって行われる。これにより、異なるアーカイビング工程の対応するオブジェクトの間で変更があったかどうかを確かめる冗長性検査が可能になる。
次に、現在のBrefが、オブジェクトストア内に既に存在するかどうかの判定(13)が行われる。この場合も、リファレンスルックアサイドテーブル7が、この判定のために利用される。これに関して、現在のBrefデータのハッシュが、リファレンスルックアサイドテーブル7内の既存のハッシュと比較される。
オブジェクトが既に存在する場合、オブジェクトは、0と1の一連のバイナリデータを含むBlob(すなわち、バイナリラージオブジェクト)に解決される(14)。Brefを利用して、Vrefが調べられ、次に、Vrefを利用して、データの関連するBlobが調べられる。一部の事例において、データのBlobは、ルートベースラインBlobである、さらなるBlobを参照することが可能である。一部の事例において、共通のデータのBlobが、多くのオブジェクトに関して存在する。例えば、多数の別々のコンピュータのオペレーティングシステムは、同一のファイルの多くを有して、実質的に同一であり得る。したがって、そのような別々のコンピュータのバックアップが実行される際、それらの共通のファイルに関する、もたらされるBlobは、同一であることが可能である。したがって、異なるオブジェクトのVrefおよびBrefは、同一のBlobを参照することが可能である。
ベースラインBlobが探し出されると、このBlobは、圧縮アルゴリズムのための辞書としてロードされる(15)。Blobは、辞書にロードされると(15)、個々のデータチャンクに分割される。例えば、ベースラインBlobは、30KBのデータチャンクに分割されるか、または操作者の選択に基づく他の任意のサイズのデータチャンクに分割される。これらの個々のチャンクは、圧縮アルゴリズムに事前に条件付けをするように圧縮器にロードされる。
事前に条件付けされることが可能である限り、複数の既知の圧縮技術のいずれも利用することができる。この事例では、圧縮アルゴリズムは、Blobデータのいくつかの部分または全体で事前に条件付けられる。この時点まで、処理されたすべてのデータは、メタデータであった。しかし、この時点で、受け取られたオブジェクトは、ベースラインBlobで事前に条件付けされた圧縮アルゴリズムを使用して圧縮される(16)につれ、ハッシュされる。オブジェクトが、Brefを有する場合、新たなオブジェクトとベースラインオブジェクトとの間の変化が、デルタBlob17と呼ばれるアイテムのもたらされる圧縮によって特定される。オブジェクトが、Brefを有する場合、対応するデルタBlobは、しばしば、ベースラインBlobのサイズの数分の1に過ぎず、100:1という圧縮比が、珍しくない。
変化を識別する工程は、デルタBlob工程と呼ばれる。デルタBlob工程の出力は、ベースラインデータセットと新たなデータセットとの間の違いを表すバイナリデータセットであり、あるいはベースラインが存在しない場合、この出力が、将来の参照の目的でベースラインになることが可能である。いずれの場合でも、デルタBlobまたはベースラインBlobは、受け取られたデータのハッシュによって表され、現在、存在していない場合、オブジェクトストア5にコピー/格納される(18)。なお、任意で、Bref、および対応するVrefの、最終アーカイブ時刻修飾子によって特定される、より古いバージョン、およびベースラインBlobまたはデルタBlobデータが、オブジェクトストア内のスペースを空けるようにリサイクルされる。
理解されるとおり、前述したアーカイビングシステムは、完全に自己完結型であり、外部ストレージ要件を全く有さない。このため、オブジェクトストア5全体が、オフサイトの格納の目的で、単一の取り外し可能な媒体ユニット上でホストされる。すべての索引、すべてのリファレンス、およびすべてのコンテンツが、個々のアイテムとして単一のファイル構造内に保持されるため、さらに格納されたアイテムのいずれも、更新される必要がないので、オブジェクトストアを代替のロケーション、または遠隔ロケーションに複製するファシリティは、全く使用されない。この独特なストレージレイアウトは、任意の所与のディスク破損の影響を隔離する障害許容型の構造を提供する。さらに、アイテムの参照の完全性が、検証を可能にし、障害を隔離する。後続のアーカイビングジョブは、検出された破損を自己回復するのに使用可能である。取り外し可能な媒体に関して、ベースオブジェクトストアレイアウトおよびツリー深度が定義されると、同一の構造が、独立した時点をまたぐ媒体の連続的なローテーションを提供するような仕方で、任意の数の取り外し可能な媒体上に複製される。この工程は、テープ媒体ローテーションと同様であるが、共通のコンテンツが考慮に入れられるので、はるかに効率的である。この構造は、20:1以上で均等の媒体ユニットに関する要件を緩和する。
図7および図8は、オブジェクトストアからのデータの再構成を示す。前述したとおり、この工程は、データのリアルタイムの、つまり、動的な、または「オンザフライ」の再構成を可能にする。そのような動的再構成を提供するのに、アーカイブされたデータは、データを再構成しようと試みるユーザがアクセスすることができる仮想ファイルシステムの中で表される。データを再構成するのに、所望されるオブジェクトまたはファイルのアドレスが、知られなければならない。そのアドレスがどのように知られるようになるかについて、後段で説明する。
最初に、システム内のすべてのデータが、オブジェクトストア内に格納され、図6に示されるとおり、仮想ファイルシステムの中で表される。図6は、この仮想ファイルシステムを使用して、この実施形態では、ウェブクライアントネットワークを使用して、アーカイブされたデータにアクセスすることを示す。しかし、アーカイブされたデータへのアクセスは、アーカイビングが所望されるシステムに接続されたスタンドアロンのユニットを介することも可能である。VFS(仮想ファイルシステム)のいくつかの態様は、両方のシステムに適用可能である。ウェブクライアントネットワークの場合、アーカイブされたデータへのアクセスは、Windows WebClientサービスリダイレクタを使用してWebDAVを介して達せられる。このリダイレクタは、UNC(ユニバーサルネームコンベンション)パスを使用する、アーカイブされたデータへのアクセスを可能にする。この事例では、アーカイブされたデータを閲覧することへの入口点は、UNCパス、\\voyager\ObjectStoreを介してである。さらに、WebClientリダイレクタは、ドライブ名をUNCパスにマップすることをサポートする。例えば、ドライブ名L:が、\\voyager\ObjectStoreに割り当てられる。ドライブ名マッピングは、階層の任意のレベルに割り当てられることが可能であることに留意されたい。例えば、X:が、\\voyager\ObjectStore\Important Documentsに直接にマッピングされることも可能である。
図6は、VFS階層におけるオブジェクトストアエントリを示す。この例では、オブジェクトストアインスタンスは、ObjectStoreと呼ばれる。オブジェクトストアは、複数のリソースからプールされた、アーカイブされたデータ(例えば、複数のソースからの共通のコンテンツ)と、或る特定の/個別のデータセットまたはカタログをより厳密に定義するアーカイブをともに含む。つまり、個々のデータセットには、それらのデータセット独自のアーカイブ(例えば、重要なドキュメント)内で索引が付けられる。これに関して、知られているデータセットに関連するデータを再構成しようと試みる際、オブジェクトストアの索引全体を探索するのではなく、そのデータセットのアーカイブが探索される。これにより、所望される情報に関して、大域的な索引を探索するのではなく、個別のアーカイブを探索することが可能になる。これにより、索引に関する格納要件、探索に関する計算要件、ならびにコアメモリ要件が低減される。
データセットが、システムの中に移動されるたびに、そのデータセットの現在の状態、または時点カタログが作成され、システム内に記録される。理解されるとおり、このことに必然的に伴うのは、データセットの生のデータを格納するのではなく、データに関連する情報(例えば、メタデータ)を格納することだけである(例えば、そのデータが、システム内に既に存在するものと想定して)。いずれにしても、データセットがシステム内に格納された時点が保存される。これにより、時点カタログ(例えば、図6のアーカイブされたUTCエントリ)の生成がもたらされる。或る特定の時点に関するデータセットを表す各カタログは、或る特定のデータセットに関するすべてのメタデータの正確な表現を含む。しかし、或る特定の時点に関するデータセットに関連するすべての生のデータが、コピーされなければならない訳ではない。前述したとおり、前の時点と、現時点との間で変化したファイルだけが、システムの中にコピーされる。変化していないファイルに関して、時点カタログに関するメタデータは、前のカタログのデータに対する適切なリファレンスと一緒に格納される。
すべての情報、時点は、格納されなくてもよいので、多数のカタログが、多数の時点に関して生成され、保存される。つまり、限られた数の完全なバックアップデータセット(例えば、より新しいバックアップデータセットで定期的に置き換えられる)を提供し、データセットのそれぞれが、共通のデータの冗長なコピーを含むシステムではなく、比較的小さいカタログの使用が、データが再構成される時点の量を増加させることを可能にする。つまり、カタログは、ユーザに利用可能であるバックアップデータセットの細分性を大幅に高めることを可能にする。
つまり、各時点に関するデータを保存するのではなく、カタログは、所与の時点に関するデータを再現するためのコードを保存する。具体的には、或る時点に関するカタログは、仮想ファイルシステムによって、所与の時点に関するデータセットのレプリカを再現するのに使用される、各レコード(ファイル)に関する1つまたは複数のハッシュコードを含む。以下は、カタログの中の単一のレコードの例示的なサンプルであり、ca、sa、oa、ba、およびaaに関するエントリは、異なるデータストリームを表すハッシュコードである。例えば、<ca>は、レコードに関するVrefであり、或る特定のバージョンを識別するのに使用されるすべてのメタデータを組み込む。<sa>は、セキュリティストリームに対するBlobアドレス(ハッシュ)である。<oa>は、オプションのオブジェクト識別ストリームに対するBlobアドレスである。<ba>は、1次Blobアドレスである。<aa>は、代替の(または2次)Blobアドレスである。
<ref ty=“2” nm=“build.properties.sample” in=“\Little Test” on=“3162645303” ct=“128105391287968750” at=“128186364571718750” mt=“127483060790000000” sz=“1644” fl=“128” id=“5629499534488294” ca=“1d1649cb2b39816d69964c1c95a4a6ad79a41687” sa=“3af4ec95818bdc06a6f105123c2737be6ea288df” oa=“” ba=“01154943b7a6ee0e1b3db1ddf0996e924b60321d” aa=“” op=“1”/>
上記のとおり、カタログのこの部分は、所与のファイルのメタデータおよびコンテンツを探し出して、再現することを可能にするレコードを形成する。
図6を再び参照すると、カタログは、元のデータセットを表し、ボリューム、フォルダ、およびファイルを含む階層形態になっている。この階層におけるエントリのそれぞれは、エントリのプロパティを記述するメタデータを含む。さらに、フォルダレコードおよびファイルレコードは、Vrefアドレスを含み、タイムスタンプをアーカイブする。この階層は、バックアップされるデータセットの階層を模倣する。例えば、階層は、個々のユーザを含む。選択された特定のユーザ、例えば、マイク(Mike)に関して、そのユーザのコンピュータ、サーバなどのコンテンツが、そのユーザのコンピュータ、サーバなどと同一の仕方で格納される。
この階層は、前述したとおり、格納されたデータの任意のセットに遠隔でアクセスするのに使用可能であり、本明細書で説明されるアーカイビングシステム以外にも応用されるVFS(仮想ファイルシステム)の一部分として提示される。ユーザは、VFS階層にアクセスして、オブジェクトストアの適切なアーカイブからデータを再構成することができる。これに関して、ユーザは、ユーザのスクリーン上で、図6に示される表現を見ることができる。ユーザは、或る特定のアーカイブまでVFSの中を移動し、所望される時点カタログを選択して、そのフォルダを展開することができる。その時点で、その時点カタログより下の階層が提供されて、ユーザが、その時点カタログ内の所望されるドキュメントまで移動することができるようにする。つまり、ユーザは、ユーザが再構成したいと望むドキュメントを探し出すまで、ユーザの標準のストレージインタフェースを模倣するVFSの中を移動することができる。特に、特定の時点が、ユーザによって全く選択されなくてもよい。例えば、探索エンジンが、各時点アーカイブを、そのアーカイブの中の所望されるデータに関して探索する能力を有してもよい。重要なこととして、VFSにアクセスするのに、特化されたクライアントアプリケーションは、全く要求されない。これに関して、許可されたユーザが、ユーザ自身のコンピュータ上で所望されるファイルにアクセスする場合と同様に、アーカイブされたデータセットにアクセスするためにユーザの標準のオペレーティングシステムを利用することができる。
前述したとおり、図6は、アーカイブされたデータの表現である。この場合、データは、ファイルシステムの完全に閲覧可能なバージョンをユーザが利用できるように複数回のアーカイビング実行によって保っているWindowsファイルシステムからである。注目すべきこととして、VFSにおける遷移は、アーカイビング時点階層が、止まり、ソースからのデータの表現が始まるVFS階層において生じる。この例では、遷移またはピボットは、「Archived UTC−2006.04.03−23.57.01.125」と名付けられている。階層においてこのポイントより下のフォルダは、アーカイビングタスクのためのファイル/フォルダ基準として指定されるルートファイルシステムを表す。「’voyager’上のユーザ(U$)」は、Userというラベル、Uというドライブ名を有し、voyagerと名付けられたシステムからのファイルボリュームである。しかし、他のファイルシステム(例えば、非Windowsシステム)が表現されることも可能である。或る特定の時点に関してアーカイブ内で或るファイルレベルに到達すると、ユーザは、或る特定のファイルを選択することができる。すると、この選択により、バージョンリファレンスアドレス(Vref)が与えられ、アーカイブ時刻を利用して、その特定のファイルの再構成が始められる。
BlobアドレスをVrefと共に格納することの重要性は、そうすることにより、そのアドレスが、Blobであるか、またはデルタBlobであるかにかかわらず、Vrefが、オブジェクトストア5内の実際のコンテンツを参照することが可能になることである。アドレスがデルタBlobである場合、そのデルタBlobは、ベースラインBlobをさらに参照することが可能である。したがって、情報は、所望されるデータを再構成しようとして獲得される。この時点で、ベースラインBlob、および存在する場合、デルタBlobが識別されており、つまり、データが、この時点で再構成される。
ユーザは、或る特定の期間からの(例えば、或る特定のVrefに関する)データを再構成するために、アーカイブ時刻を指定することができる(32)。理解されるとおり、実際のアーカイブ時刻は、ユーザによって与えられる、所望される期間と同一ではない可能性がある。いずれにしても、システムは、最も妥当な再構成時刻(例えば、所望される時刻より前、または所望される時刻のすぐ後に実行されたバックアップからのデータ)を特定する(34)。初期VrefがデルタBlobを有するかどうかについての初期判定(36)が行われる。デルタBlobが、このVrefに関して存在する場合、そのデルタBlobがオブジェクトストアから獲得される(38)。また、対応するベースラインBlobがオブジェクトストアから獲得される(40)。デルタBlobが存在しない場合、ベースラインBlobだけが獲得される。Vrefが、圧縮されていないオブジェクト(例えば、個別のファイル)を参照する場合、その圧縮されていないオブジェクトが、後続の読み取りのために獲得される(44)。
Blob(または圧縮されていないオブジェクト)は、獲得されると、圧縮されていないデータの出力を生成するように再構成される。図8を参照すると、この工程において、Vref(すなわち、デルタBlobまたはベースラインBlobを参照する)が、獲得されたBlobからの個々のチャンクまたはバッファの中で再構成される。そのようなバッファの長さは、固定長であっても、可変長であってもよく、このことは、ユーザによって指定可能である。Vrefが、前述したとおり獲得されたデルタBlobを参照する事例において、そのデルタBlobが、次に、展開されて、Vrefデータが再構成される。オブジェクト(例えば、デルタBlob)が読み取られ(52)、バッファ54が一杯になるまで展開される。このことが、オブジェクト全体が展開されるまで、繰り返し反復される。デルタBlobの各展開に関して、そのデルタBlobの一部分が、バッファを埋めるのにベースラインの参照される部分を要求する可能性がある。これに関して、デルタBlobのその特定の部分を展開する展開情報を提供する新たな辞書(例えば、ベースラインBlobの部分)が要求されるかどうかの判定(56)が行われる。つまり、必要な場合、システムは、デルタBlobの現在の部分を展開する(62)ように展開アルゴリズムに事前に条件付けをする(60)開かれたベースラインBlobの一部分を獲得する(58)。
Vrefアドレスおよびアーカイブ時刻という2つのデータを所与として、これら2つのデータが、取り込まれ、正確なVrefおよびアーカイブ時刻マッチ、または1つ前のVrefアーカイブ時刻に関してオブジェクトストアを探索するのに利用される。図7を参照すると、例えば、再構成されるべき所望されるファイルが、より早期のバックアップ以来、変更されていない場合、Vrefアドレスは、そのファイルに関するデータが格納された実際の時刻を表す、より早期のVref時刻を参照する。このレベルまで解決されると、Vrefの属性が読み取られて、そのVrefが、デルタVrefであるか、またはベースラインVrefであるかが判定されるべきである。
デルタBlobが存在せず、ベースラインBlobだけが存在する場合(64)、工程は、オブジェクトストアからのVrefに基づいて、ベースラインBlobを獲得し(66)、バッファを埋めるようにベースラインBlobを展開する(68)。バッファが、展開されたデータで埋められると、データのこのバッファが、要求側ユーザに戻される。一つの構成では、オブジェクトは、圧縮されていないデータであることが可能である。この事例において、データセットが、圧縮されていない形態で存在し得る。そのような事例において、バッファは、展開工程を要求することなしに埋められる(70)。バッファを埋めること、および戻すことは、例えば、ファイルの終わりに達するまで、繰り返される。データセットから複数のファイル(例えば、複数のVref)を取得可能であることが理解される。さらに、データセット全体を取得することも可能である。
適応コンテンツファクタリング技術に関する一つの応用例は、従来のディスクベースのバックアップから情報を取り入れることである。ほとんどの場合において、相当な量の情報が2つの完全なバックアップデータセットの間で共通である。共通のデータを除外することにより、所与のストレージデバイスの有効容量が、機能の損失なしに、アーカイビングシステムの向上した性能を伴って、大幅に増加する。このことにより、長期のディスクベースのアーカイビングが、経済的に実現可能となる。そのようなアーカイビングは、ローカルで実行することも、ネットワークを介して実行することも可能である。例えば、図9を参照すると、当業者には理解されるとおり、ネットワーク帯域幅が低下するにつれ、所与のデータセットの共通のコンテンツを識別して、遠隔サーバから中央アーカイブに変更だけを送信することが有利である。これに関して、コンテンツが既に格納されているかどうかを判定するのに使用される索引が、ネットワーク80を介して効率的に格納され、分散されることから、前述した新規なアプローチは特にうまく機能する。所与のデータセット、または同様のデータセットに固有のコンテンツ索引を作成して、保持することにより、索引の対応するサイズが、局所化されたコンテンツに縮小される。例えば、索引におけるエントリが、1アイテム当たり8バイトである場合、データセットは、50000のアイテムを含む。索引の対応するサイズは、400000バイトに過ぎない。このことは、アーカイブされた数百万の離散的なアイテムに対する一体構造の索引を使用する他のシステムとは対照的である。このため、より小さい分散型の索引が、ローカルで、またはネットワークにおいて格納される。一部の場合において、索引をローカルで格納することが好ましい可能性がある。索引が、ネットワーク内に格納される場合、索引の小さいサイズにより、索引は、ローカルプログラムメモリに効率的にロードされて、ローカルコンテンツファクタリングを円滑にする。
説明される技術は、共通のコンテンツに対する索引のローカルでキャッシュ可能なネットワークを提供する。つまり、複数のサーバ/コンピュータ82が、共通のストレージファシリティ84を共有することが可能である。このコンテンツは、共通のコンテンツが共有されてストレージ要件を低減するように、アーカイビング機器88によって処理される。必要なカタログは、共通ストレージファシリティ84において、または2次ストレージ86において格納される。個々のサーバ/コンピュータをバックアップ可能にするのに、この技術は、データセットごとに分散型の索引を使用する。つまり、識別子とコンテンツハッシュの固有のセットが、特定のサーバ/コンピュータに提供される。一般に、索引内の情報は、データセット内の所与のアイテムに対するハッシュ(例えば、Vref)に対応する。しかし、理解されるとおり、データセットが、異なるホストシステムからのアイテムに対応する場合でさえ、異なるデータセット間のデータセット内のアイテムに共通する可能性があるファイルセキュリティ情報またはオブジェクトセキュリティ情報などの、非常によく参照されるコンテンツ索引またはBlob索引を格納して、これらのBlobが既に格納されていることを迅速に識別することも望ましい。これに関して、この技術は、元のデータセットコンテンツを、一連のBlobアドレスと、その後に続く0で埋められたバイトアレイで置き換えることによって、Blobに対する代替の索引を使用する。Blobアドレスと、これに加えられた、0で埋められたアレイは、元のコンテンツの各セグメントの論理サイズと完全に合致するようになっている。当業者には理解されるとおり、0で埋められたアレイは、いくつものデータ圧縮アルゴリズムによって極めて容易に圧縮可能である。本発明は、データセットをまず、離散的なオブジェクトデータストリームに分割し、各オブジェクトデータストリームを、後段で説明されるM3工程、または類似した工程を使用して以前にアーカイブされた、または同時にアーカイブされるコンテンツ(またはBlob)に対するストリームアドレスで置き換え、次に、再マップされたデータストリームの残りの部分を0で埋めることによって、任意の知られているファイルフォーマットで機能する。最後に、この再マップされたストリームが、圧縮され、これにより、0で埋められたアレイにおける冗長性が基本的に取り除かれる。もたらされるファイルが、データストリームコンテンツの再マッピングを除いて、オリジナルと区別ができないことが望ましい。これに関して、ビットフラグが、元のファイルのメタデータ内で使用されて、ストリームデータが置き換えられていることを示して、データストリームが再マップされていると、元のデータを作成した元のプログラムを判定することができる。本発明は、ヘッダチェックサムにこだわらずに、ストリームヘッダの中で予約フラグを設定する。起元プログラムは、データセットをカタログすることができるが、データストリームが読み取られると、チェックサムが検査される。予約フラグが設定されているため、チェックサム試験は、不合格となり、アプリケーションが、再マップされたストリームを間違って読み取ることが防止される。図10は、この工程を示す。ストリームアドレスの特定は、データセット内部に格納されたメタデータを使用する完全な工程を使用し、ストリームBlobアドレスを特定する逆ルックアップを含むこと、またはストリームデータに対してハッシュアルゴリズムを使用して、一意のストリームBlobアドレスを計算することが可能である。アンマップ工程は、動作の順序を単に逆にして、各Blobアドレスと0で埋められたアレイが、元のコンテンツで置き換えられ、予約フラグが設定解除されるようにする。このアンマップ再構成工程の結果は、元のデータセットと同一のコピーである。
以上の説明は、例示および説明の目的で提示されてきた。さらに、この説明は、本発明を、本明細書で開示される形態に限定することを意図していない。いくつかの例示的な態様および実施形態が、以上に説明されてきたが、これらの態様および実施形態の、いくつかの変種、変形、置換、追加、および部分的組み合わせが、当業者には認識される。したがって、添付の特許請求の範囲は、本発明の思想および範囲に含まれる、すべてのそのような変種、変形、置換、追加、および部分的組み合わせを含むように解釈されることが意図される。
データセットの長期格納要件を示す図。 バージョン間のデータセットに対する変更を示す図。 関連するデータセット間の違いを識別するための工程を示す図。 データセットに関するシグネチャを生成するための工程を示す図。 データを格納するための工程を示す図。 複数のアーカイブカタログのアクセス可能なカタログを示す図。 データを取得するための工程を示す図。 データを再構成するための工程を示す図。 ネットワークを介するデータの格納を示す図。 コンテンツデータと一緒にメタデータを格納することの一実施形態を示す図。

Claims (55)

  1. データをアーカイブする/格納する際に使用する方法であって、
    第1のデータセットを受け取ること、
    辞書ベースの圧縮エンジンを使用して前記第1のデータセットを圧縮し、前記第1のデータセットを表す第1の圧縮ファイルを生成すること、
    前記第1の圧縮ファイルを格納すること、
    前記第1の圧縮ファイルを使用して、前記第1のデータセットに関連する後続のデータセットにおける変化を識別すること、
    を備える方法。
  2. 前記第1の圧縮ファイルを使用して前記変化を識別することは、
    辞書ベースの圧縮エンジンを前記第1の圧縮ファイルで条件付けして、条件付けられた圧縮エンジンを定義すること、
    前記条件付けられた圧縮エンジンを使用して前記後続のデータセットを圧縮し、前記後続のデータセットを表す第2の圧縮ファイルを生成すること、
    を含む、請求項1に記載の方法。
  3. 前記第2の圧縮ファイルは、前記第1のデータセットと前記後続のデータセットとの間の変化部分と、前記第1の圧縮ファイルに対する1つまたは複数のリファレンス部分とからなる、請求項2に記載の方法。
  4. 前記第2の圧縮ファイルを格納することをさらに備える請求項3に記載の方法。
  5. 前記第1のデータセットに関連する少なくとも第1のハッシュを生成することを備える請求項1に記載の方法。
  6. 前記変化を識別することは、前記後続のデータセットの少なくとも1つのハッシュを、前記第1のデータセットの対応するハッシュと比較することをさらに含む、請求項5に記載の方法。
  7. 前記対応するハッシュ間の違いが前記比較によって識別され、当該方法はさらに、
    辞書ベースの圧縮エンジンを前記第1の圧縮ファイルで条件付けして、条件付けられた圧縮エンジンを定義すること、
    前記条件付けられた圧縮エンジンを使用して前記後続のデータセットを圧縮し、前記後続のデータセットを表す第2の圧縮ファイルを生成すること、
    を備える、請求項6に記載の方法。
  8. 前記少なくとも第1のハッシュを生成することは、前記第1のデータセットのメタデータに関連する第1のハッシュを生成することを含む、請求項5に記載の方法。
  9. 前記第1のデータセットのコンテンツに関連する第2のハッシュを生成することをさらに備える請求項8に記載の方法。
  10. 前記後続のデータセットを前記圧縮エンジンの部分内にバッファリングすること、
    前記後続のデータセットの前記バッファリングされた部分を、前記圧縮されたファイルが伸張された後に、前記圧縮されたファイルの同様のサイズの部分と実質的にマッチングさせること、
    をさらに備える請求項1に記載の方法。
  11. データを圧縮する方法であって、
    ファイルを受け取ること、
    前記ファイルの以前のバージョンが、以前に格納されていると判定すること、
    前記ファイルの以前のバージョンから生成された圧縮辞書語を使用して前記ファイルを圧縮し、圧縮ファイルを生成すること、
    前記圧縮ファイルを格納すること、
    を備える方法。
  12. 前記ファイルの前記以前に格納されたバージョンは、以前に圧縮されたファイルである、請求項11に記載の方法。
  13. 圧縮エンジンに、前記以前に圧縮されたファイルを事前ロードすること、
    受け取ったファイルを、前記圧縮エンジンの部分内にバッファリングすること、
    前記受け取ったファイルの前記バッファリングされた部分を、前記以前に圧縮されたファイルが伸張された後、前記以前に圧縮されたファイルの同様のサイズの部分と実質的にマッチングさせること、
    をさらに備える請求項12に記載の方法。
  14. 前記判定する工程には、前記ファイルに関するバージョンリファレンスをハッシュすることによって得られたバージョンリファレンスハッシュを、以前に格納されたバージョンリファレンスハッシュと合致させることに失敗すること、および前記ファイルに関する2次的リファレンスをハッシュすることによって得られた2次的リファレンスハッシュを、以前に格納された2次的リファレンスハッシュと合致させることに成功することが付随する、請求項11に記載の方法。
  15. 前記ファイルに関連するバージョンリファレンスを生成して格納することをさらに備える請求項11に記載の方法。
  16. 前記ファイルに関連する2次的リファレンスを生成して格納することをさらに備える請求項15に記載の方法。
  17. 前記バージョンリファレンスと前記2次的リファレンスはともにハッシュである、請求項16に記載の方法。
  18. データを圧縮する方法であって、
    初期データセットを格納すること、
    圧縮エンジンに、該圧縮エンジンに関する辞書を定義した前記初期データセットを事前ロードすること、
    前記事前ロード後の圧縮エンジンを使用して前記初期データセットに関連する後続のデータセットを圧縮し、圧縮ファイルを生成すること、
    前記圧縮ファイルを格納すること、
    を備える方法。
  19. 前記圧縮ファイルは、前記初期データセットと前記後続のデータセットとの間の変化部分と、前記初期データセットに対する1つまたは複数のリファレンス部分とからなる、請求項18に記載の方法。
  20. 前記初期データセットと前記後続のデータセットとの間の関連付けを少なくとも1つのメタデータ値に基づいて識別することをさらに備える請求項18に記載の方法。
  21. データをアーカイブする/格納する際に使用する方法であって、
    第1のデータセットに関連する第1のシグネチャを生成することであって、
    前記第1のデータセットのメタデータに関連する識別子ハッシュを生成すること、および
    前記第1のデータセットのコンテンツに関連するコンテンツハッシュを生成すること
    を含む、前記第1のデータセットに関連する第1のシグネチャを生成すること、
    前記第1のシグネチャを格納すること、
    前記第1のシグネチャのハッシュを、前記第1のデータセットに関連する後続のデータセットの対応するハッシュと比較すること、
    前記比較に基づき、前記第1のデータセットと前記後続のデータセットとの間に変化が存在するかどうかを判定すること、
    を備える方法。
  22. 前記比較することは、前記対応するハッシュの間に違いが存在するかどうかを判定することをさらに含む、請求項21に記載の方法。
  23. 前記対応するハッシュの間に違いが存在する場合、
    前記第1のデータセットの前記後続のデータセットのコンテンツをハッシュして、後続バージョンコンテンツハッシュを生成すること、
    前記後続バージョンコンテンツハッシュを、前記第1のデータセットの前記コンテンツハッシュと比較して、前記第1のデータセットと前記後続のデータセットとの間でコンテンツの変化が存在するかどうかを判定すること、
    をさらに備える請求項22に記載の方法。
  24. 前記各コンテンツハッシュの間に違いが存在する場合、前記後続のデータセットの前記コンテンツを格納することをさらに含む請求項23に記載の方法。
  25. 前記後続のデータセットの前記コンテンツを格納することは、
    辞書ベースの圧縮エンジンを前記第1のデータセットに関連するファイルで条件付けして、条件付けられた圧縮エンジンを定義すること、
    前記条件付けられた圧縮エンジンを使用して前記後続のデータセットを圧縮し、前記第1のデータセットと前記後続のデータセットとの間の変化を含む前記後続のデータセットを表す圧縮ファイルを生成すること、
    を含む、請求項23に記載の方法。
  26. 前記第1のシグネチャは第1のネットワークロケーションに格納され、前記後続のデータセットは第2のネットワークロケーションに位置づけられ、当該方法はさらに、
    前記第1のネットワークロケーションから前記第2のネットワークロケーションに前記シグネチャを転送すること、
    前記第1のシグネチャの少なくとも1つのハッシュを、前記第2のネットワークロケーションにおける前記後続のデータセットの対応するハッシュと比較すること、
    を備える、請求項21に記載の方法。
  27. 前記ハッシュ間の違いを前記比較によって識別した場合、前記後続のデータセットの少なくとも一部分を、格納のために前記第1のネットワークロケーションに転送することをさらに備える請求項26に記載の方法。
  28. 前記転送することは、ネットワークインタフェースを介して前記第1のシグネチャを転送することを含む、請求項26に記載の方法。
  29. 前記識別子ハッシュを生成することは、メタデータ構成要素の第1および第2のセットにそれぞれ関連する第1および第2の識別子ハッシュを生成することをさらに含み、前記メタデータ構成要素の前記第1のセットと前記第2のセットとは異なる、請求項21に記載の方法。
  30. 前記後続のデータセットが前記第1のデータセットに関連していると識別することは、前記第1のデータセットの前記第1の識別子ハッシュと前記第2の識別子ハッシュのうちの少なくとも1つを、前記後続のデータセットの対応するハッシュとマッチングさせることを含む、請求項29に記載の方法。
  31. 前記第1の識別子ハッシュおよび前記第2の識別子ハッシュのうちの一方は前記第1のデータセットのストレージロケーションに関連付けられ、前記第1の識別子ハッシュおよび前記第2の識別子ハッシュのうちの他方は、前記第1のデータセットのバージョンリファレンスに関連付けられる、請求項29に記載の方法。
  32. データ格納の際に使用する方法であって、
    初期データセットをストレージロケーションに転送すること、
    前記初期データセットに関連するシグネチャを生成することであって、
    前記初期データセットのメタデータに関連する識別子ハッシュセットを生成すること、および
    前記初期データセットのコンテンツに関連するコンテンツハッシュセットを生成すること
    を含む、前記初期データセットに関連するシグネチャを生成すること、
    前記初期データセットを転送することの後に続いて、前記初期データセットに関連する後続のデータセットのバックアップを実行することであって、
    前記後続のデータセットのメタデータに関連する識別子ハッシュセットを生成すること、
    前記初期データセットの識別子ハッシュセットと前記後続のデータセットの識別子ハッシュセットとを比較すること、
    前記比較に基づいて、前記後続のデータセットに関する合致しない識別子ハッシュを識別すること、および
    前記合致しない識別子ハッシュに関連するコンテンツの少なくとも一部分を前記ストレージロケーションに転送すること、
    を含む、前記初期データセットに関連する後続のデータセットのバックアップを実行すること、
    を備える方法。
  33. 前記初期データセットの識別子ハッシュと合致する前記後続のデータセットの識別子ハッシュに関連するコンテンツは、前記ストレージロケーションに転送されない、請求項32に記載の方法。
  34. 前記後続のデータセットの少なくとも1つの合致しないハッシュに関連するコンテンツに関するコンテンツハッシュを生成すること、
    前記初期データセットに関して、合致するコンテンツハッシュが存在するかどうかを判定すること、
    をさらに備える請求項32に記載の方法。
  35. 前記初期データセットに関して、前記合致するコンテンツハッシュが存在する場合、前記ストレージロケーションへの前記コンテンツの転送を差し控えること、
    前記初期データセットに関して、合致するコンテンツハッシュが存在しない場合、前記ストレージロケーションに前記コンテンツを転送すること、
    をさらに備える請求項34に記載の方法。
  36. 前記初期データセットは、ネットワークを介して起源ロケーションから前記ストレージロケーションに転送される、請求項32に記載の方法。
  37. 前記シグネチャは、前記ストレージロケーションに生成される、請求項36に記載の方法。
  38. 前記ストレージロケーションから前記後続のデータセットの起源ロケーションに前記シグネチャを転送することをさらに備え、前記ハッシュの比較は、前記起源ロケーションにおいて実行される、請求項36に記載の方法。
  39. データ格納の際に使用する方法であって、
    格納のために第1のデータセットを受け取ること、
    前記第1のデータセットのメタデータに関連する識別子ハッシュのセットを生成すること、
    前記第1のデータセットのコンテンツに関連するコンテンツハッシュのセットを生成すること、
    前記第1のデータセットに関連する後続のデータセットをバックアップする目的で、前記第1のデータセットに関連するデータ起源ロケーションに前記識別子ハッシュおよび前記コンテンツハッシュを供給すること、
    前記供給された識別子ハッシュおよびコンテンツハッシュと合致しなかった前記後続のデータセットからデータを受け取ること、
    を備える方法。
  40. 前記後続のデータセットからの前記データを格納することをさらに備える請求項39に記載の方法。
  41. 前記後続のデータセットに関する識別子ハッシュおよびコンテンツハッシュを生成することをさらに備える請求項40に記載の方法。
  42. 前記受け取る工程、および前記供給する工程は、直接データ接続を介して実行される、請求項39に記載の方法。
  43. 前記受け取る工程、および前記供給する工程は、ネットワーク接続を介して実行される、請求項39に記載の方法。
  44. データ格納の際に使用する方法であって、
    以前に格納されたデータセットのメタデータに関連する識別子ハッシュのセットを受け取ること、
    前記識別子ハッシュを現在のデータセットの識別子ハッシュと比較することであって、前記現在のデータセットの少なくとも一部分は、前記以前に格納されたデータセットの後続のバージョンである、比較すること、
    前記識別子ハッシュのセット内における識別子ハッシュと合致しない前記現在のデータセットの合致しない識別子ハッシュを識別すること、
    前記合致しない識別子ハッシュに関連するコンテンツの少なくとも一部分をストレージロケーションに送ること、
    を備える方法。
  45. 以前に格納されたデータセットのコンテンツに関連するコンテンツハッシュのセットを受け取ること、
    前記合致しないハッシュの前記コンテンツに関連するコンテンツハッシュを、前記以前に格納されたデータセットのコンテンツハッシュと比較すること、
    を備え、
    前記送ることは、合致しない識別子ハッシュと、合致しないコンテンツハッシュとを有するコンテンツを送ることを含む、請求項44に記載の方法。
  46. 前記受け取る工程、および前記送る工程は、直接データ接続を介して実行される、請求項44に記載の方法。
  47. 前記受け取る工程、および前記送る工程は、ネットワーク接続を介して実行される、請求項39に記載の方法。
  48. データ格納の際に使用する方法であって、
    関連するデータセットに関する複数のカタログを複数の時点において生成することであって、複数のカタログの各々は、メタデータが格納されたセグメントに対するメタデータリファレンスと、コンテンツが格納されたセグメントに対するコンテンツリファレンスとを含む、複数のカタログを生成すること、
    或る時点に関するカタログを選択し、前記或る時点に関連するファイルを識別すること、
    前記或る時点に関して、少なくとも前記ファイルに関する前記メタデータリファレンスおよび前記コンテンツリファレンスを識別すること、
    前記格納されたセグメントを獲得すること、
    前記ファイルを再構成すること、
    を備える方法。
  49. 前記ファイルは、少なくとも2つのコンテンツリファレンスを含む、請求項48に記載の方法。
  50. 前記コンテンツリファレンスは、異なる時点で格納されたコンテンツのリファレンスセグメントを参照する、請求項49に記載の方法。
  51. 仮想ファイルシステムの中の前記複数のカタログを表示することをさらに備える請求項48に記載の方法。
  52. 前記仮想ファイルシステムは、前記データセットのルートファイルシステムを模倣する前記ルートファイルシステムの中のファイルを表す、請求項51に記載の方法。
  53. 前記リファレンスは、ハッシュコードからなる、請求項48に記載の方法。
  54. 前記複数のカタログの少なくとも2つは、前記カタログ間で共通なコンテンツに関する共通のコンテンツセグメントを参照する、請求項48に記載の方法。
  55. データ格納の際に使用する方法であって、
    第1の時点において、第1のデータセットのメタデータの1つまたは複数のロケーションを識別するリファレンスと、前記第1のデータセットのコンテンツの1つまたは複数のロケーションを識別するリファレンスとを含む、前記第1のデータセットの第1のカタログを生成すること、
    第2の時点において、前記第1のデータセットのメタデータの1つまたは複数のロケーションを識別するリファレンスと、前記第1のデータセットのコンテンツの1つまたは複数のロケーションを識別するリファレンスとを含む、前記データセットの後続のバージョンの第2のカタログを生成すること、
    を備え、前記第1のカタログと前記第2のカタログは、共通のコンテンツに関する少なくとも1つのリファレンスを共有する、方法。
JP2009504506A 2006-04-07 2007-04-09 データ圧縮技術およびデータ格納技術 Expired - Fee Related JP5309015B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US74447706P 2006-04-07 2006-04-07
US60/744,477 2006-04-07
PCT/US2007/066263 WO2007118243A2 (en) 2006-04-07 2007-04-09 Data compression and storage techniques

Publications (3)

Publication Number Publication Date
JP2009533731A true JP2009533731A (ja) 2009-09-17
JP2009533731A5 JP2009533731A5 (ja) 2010-08-19
JP5309015B2 JP5309015B2 (ja) 2013-10-09

Family

ID=38581870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009504506A Expired - Fee Related JP5309015B2 (ja) 2006-04-07 2007-04-09 データ圧縮技術およびデータ格納技術

Country Status (7)

Country Link
US (2) US7860843B2 (ja)
EP (1) EP2013974B1 (ja)
JP (1) JP5309015B2 (ja)
AU (1) AU2007234696B2 (ja)
CA (1) CA2648428C (ja)
DK (1) DK2013974T3 (ja)
WO (1) WO2007118243A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014525058A (ja) * 2011-11-28 2014-09-25 株式会社日立製作所 ストレージシステムコントローラ、ストレージシステム及びアクセス制御方法
WO2017146338A1 (ko) * 2016-02-26 2017-08-31 주식회사 아미크 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
KR20190024201A (ko) * 2017-08-31 2019-03-08 주식회사 엘지유플러스 클라우드 서버의 이미지 데이터 제공 방법

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949824B2 (en) * 2006-04-11 2011-05-24 Emc Corporation Efficient data storage using two level delta resemblance
US7844652B2 (en) 2006-04-11 2010-11-30 Emc Corporation Efficient computation of sketches
JP5204099B2 (ja) 2006-05-05 2013-06-05 ハイバー インコーポレイテッド グループ・ベースの完全および増分コンピュータ・ファイル・バックアップ・システム、処理および装置
GB2439752B (en) * 2006-06-30 2011-11-02 Data Equation Ltd Storing and Modifying Data
US8416954B1 (en) 2008-09-30 2013-04-09 Emc Corporation Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management
US8261068B1 (en) 2008-09-30 2012-09-04 Emc Corporation Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit
GB2439575B (en) * 2006-06-30 2011-09-21 Data Equation Ltd A Method of Storing Data
US7962499B2 (en) * 2006-08-18 2011-06-14 Falconstor, Inc. System and method for identifying and mitigating redundancies in stored data
US7668880B1 (en) * 2007-05-15 2010-02-23 Jim Carroll Offsite computer file backup system providing rapid recovery and method thereof
US8156241B1 (en) * 2007-05-17 2012-04-10 Netapp, Inc. System and method for compressing data transferred over a network for storage purposes
US9002800B1 (en) * 2007-06-30 2015-04-07 Emc Corporation Archive and backup virtualization
US8170989B2 (en) * 2007-07-16 2012-05-01 International Business Machines Corporation Method and system for document management and exchange
US7941409B2 (en) * 2007-09-11 2011-05-10 Hitachi, Ltd. Method and apparatus for managing data compression and integrity in a computer storage system
US8238549B2 (en) * 2008-12-05 2012-08-07 Smith Micro Software, Inc. Efficient full or partial duplicate fork detection and archiving
CA2627672A1 (en) * 2007-10-25 2009-04-25 Her Majesty The Queen In Right Of Canada As Represented By The Solicitor Or General Of Canada, Royal Canadian Mounted Police Method and device for verifying integrity of data acquisition pathways
US7882069B2 (en) * 2008-02-19 2011-02-01 Oracle International Corp. Tag based backup and recovery
CA2720087C (en) 2008-04-09 2014-03-25 Level 3 Communications, Llc Content delivery in a network
US9426244B2 (en) * 2008-04-09 2016-08-23 Level 3 Communications, Llc Content delivery in a network
US8706745B1 (en) * 2008-05-30 2014-04-22 Symantec Corporation Systems and methods for determining a file set
US8527482B2 (en) * 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
US20090319547A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Compression Using Hashes
JP5391601B2 (ja) * 2008-07-18 2014-01-15 富士通株式会社 資源転送システム、資源転送方法、情報処理装置及びコンピュータプログラム
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8776038B2 (en) 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US9235577B2 (en) * 2008-09-04 2016-01-12 Vmware, Inc. File transfer using standard blocks and standard-block identifiers
US9152628B1 (en) * 2008-09-23 2015-10-06 Emc Corporation Creating copies of space-reduced files in a file server having a redundant data elimination store
US8364705B1 (en) 2008-09-24 2013-01-29 Symantec Corporation Methods and systems for determining a file set
US7925683B2 (en) * 2008-12-18 2011-04-12 Copiun, Inc. Methods and apparatus for content-aware data de-duplication
US8166314B1 (en) 2008-12-30 2012-04-24 Emc Corporation Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown
US8200923B1 (en) 2008-12-31 2012-06-12 Emc Corporation Method and apparatus for block level data de-duplication
US8458451B2 (en) * 2009-01-20 2013-06-04 New York University Database outsourcing with access privacy
JP5636635B2 (ja) * 2009-03-12 2014-12-10 日本電気株式会社 バックアップ装置、バックアップシステム、バックアップ方法、及びプログラム
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US9419801B2 (en) * 2009-05-12 2016-08-16 Infrascale Inc. System and method for transmitting needed portions of a data file between networked computers
US8762348B2 (en) * 2009-06-09 2014-06-24 Emc Corporation Segment deduplication system with compression of segments
US8401181B2 (en) * 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8731190B2 (en) * 2009-06-09 2014-05-20 Emc Corporation Segment deduplication system with encryption and compression of segments
US8180740B1 (en) * 2009-08-12 2012-05-15 Netapp, Inc. System and method for eliminating duplicate data by generating data fingerprints using adaptive fixed-length windows
US8200641B2 (en) * 2009-09-11 2012-06-12 Dell Products L.P. Dictionary for data deduplication
US8676759B1 (en) * 2009-09-30 2014-03-18 Sonicwall, Inc. Continuous data backup using real time delta storage
US8161077B2 (en) 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US8150808B2 (en) 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8819452B2 (en) * 2009-11-25 2014-08-26 Cleversafe, Inc. Efficient storage of encrypted data in a dispersed storage network
US8156306B1 (en) 2009-12-18 2012-04-10 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
US8140821B1 (en) 2009-12-18 2012-03-20 Emc Corporation Efficient read/write algorithms and associated mapping for block-level data reduction processes
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
JP2013517565A (ja) * 2010-01-12 2013-05-16 グーグル インコーポレイテッド オペレーティングシステム自動更新手順
US9104517B2 (en) 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US8959183B2 (en) 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US8407193B2 (en) * 2010-01-27 2013-03-26 International Business Machines Corporation Data deduplication for streaming sequential data storage applications
US9229748B2 (en) 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US9135264B2 (en) * 2010-03-12 2015-09-15 Copiun, Inc. Distributed catalog, data store, and indexing
CN102985911B (zh) 2010-03-16 2016-07-06 科派恩股份有限公司 高度可伸缩和分布式重复数据删除
US8499131B2 (en) * 2010-04-13 2013-07-30 Hewlett-Packard Development Company, L.P. Capping a number of locations referred to by chunk references
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US8805847B2 (en) 2010-05-06 2014-08-12 Ca, Inc. Journal event consolidation
US8407191B1 (en) 2010-06-29 2013-03-26 Emc Corporation Priority based data scrubbing on a deduplicated data store
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
US8548944B2 (en) 2010-07-15 2013-10-01 Delphix Corp. De-duplication based backup of file systems
GB2482128A (en) * 2010-07-19 2012-01-25 Quantum Corp Delta chunks and delta hashes
GB2483282B (en) * 2010-09-03 2017-09-13 Advanced Risc Mach Ltd Data compression and decompression using relative and absolute delta values
US9037547B1 (en) * 2010-09-15 2015-05-19 Symantec Corporation Backup time deduplication of common virtual disks from virtual machine backup images
US9235593B2 (en) * 2010-09-30 2016-01-12 Emc Corporation Transmitting filesystem changes over a network
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
US8468174B1 (en) 2010-11-30 2013-06-18 Jedidiah Yueh Interfacing with a virtual database system
US20120143824A1 (en) * 2010-12-02 2012-06-07 Microsoft Corporation Protecting files that include editable metadata
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
US8620894B2 (en) 2010-12-21 2013-12-31 Microsoft Corporation Searching files
JP5712609B2 (ja) * 2010-12-24 2015-05-07 富士通株式会社 データ処理装置及びデータ記録方法
EP2793130B1 (en) 2010-12-27 2015-12-23 Amplidata NV Apparatus for storage or retrieval of a data object on a storage medium, which is unreliable
JP5512570B2 (ja) * 2011-02-24 2014-06-04 株式会社日立ソリューションズ 文書処理装置、及びファイルサーバ管理支援方法、並びにファイルサーバ管理支援プログラム
US8904128B2 (en) 2011-06-08 2014-12-02 Hewlett-Packard Development Company, L.P. Processing a request to restore deduplicated data
US9553924B1 (en) * 2011-06-13 2017-01-24 Arris Enterprises, Inc. Load sharing among loosely coupled or independent video servers
US9229818B2 (en) 2011-07-20 2016-01-05 Microsoft Technology Licensing, Llc Adaptive retention for backup data
US9063822B2 (en) * 2011-09-02 2015-06-23 Microsoft Technology Licensing, Llc Efficient application-aware disaster recovery
US8930320B2 (en) 2011-09-30 2015-01-06 Accenture Global Services Limited Distributed computing backup and recovery system
US8370341B1 (en) * 2012-01-06 2013-02-05 Inkling Systems, Inc. Systems and methods for determining and facilitating content updates for a user device
US8990664B2 (en) * 2012-01-31 2015-03-24 Cleversafe, Inc. Identifying a potentially compromised encoded data slice
US9465861B2 (en) * 2012-01-31 2016-10-11 International Business Machines Corporation Retrieving indexed data from a dispersed storage network
US9891995B2 (en) * 2012-01-31 2018-02-13 International Business Machines Corporation Cooperative decentralized rebuild scanning
EP2829070B1 (en) * 2012-03-19 2017-07-19 P2S Media Group OY Method and apparatus for reducing duplicates of multimedia data items in service system
US20130262704A1 (en) * 2012-04-03 2013-10-03 Google Inc. System and method for improving delivery of content over a network
GB2515919A (en) * 2012-04-27 2015-01-07 Hewlett Packard Development Co Similarity score lookup and representation
US9129001B2 (en) * 2012-05-07 2015-09-08 Sybase, Inc. Character data compression for reducing storage requirements in a database system
US8984028B2 (en) 2012-05-29 2015-03-17 Recommind, Inc. Systems and methods for storing data and eliminating redundancy
TWI610166B (zh) 2012-06-04 2018-01-01 飛康國際網路科技股份有限公司 自動災難復原和資料遷移系統及方法
CN103810215A (zh) * 2012-11-14 2014-05-21 财团法人资讯工业策进会 云端文件存取系统及方法
TW201419005A (zh) * 2012-11-14 2014-05-16 Inst Information Industry 雲端檔案存取系統、方法及其電腦可讀取紀錄媒體
US9258767B2 (en) 2013-01-07 2016-02-09 Intel IP Corporation Methods and arrangements to compress identification
KR102072412B1 (ko) 2013-01-07 2020-02-04 삼성전자주식회사 데이터 압축 회로의 동작 방법과 상기 방법을 수행할 수 있는 장치들
US10019457B1 (en) 2013-01-22 2018-07-10 Amazon Technologies, Inc. Multi-level compression for storing data in a data store
US9558199B2 (en) * 2013-03-07 2017-01-31 Jive Software, Inc. Efficient data deduplication
US9606729B2 (en) * 2013-03-15 2017-03-28 Skyera, Llc Apparatus and method for insertion and deletion in multi-dimensional to linear address space translation
US9384204B2 (en) 2013-05-22 2016-07-05 Amazon Technologies, Inc. Efficient data compression and analysis as a service
US9122712B1 (en) 2013-06-28 2015-09-01 Emc Corporation Compressing container files
US10216754B1 (en) 2013-09-26 2019-02-26 EMC IP Holding Company LLC System and method for balancing compression and read performance in a storage system
US9514146B1 (en) 2013-09-26 2016-12-06 Emc Corporation System and method for improving data compression of a storage system in an online manner
US9411815B1 (en) * 2013-09-26 2016-08-09 Emc Corporation System and method for improving data compression in a deduplicated storage system
US10838990B1 (en) 2013-09-26 2020-11-17 EMC IP Holding Company LLC System and method for improving data compression of a storage system using coarse and fine grained similarity
CN103617215B (zh) * 2013-11-20 2017-02-08 上海爱数信息技术股份有限公司 一种利用数据差异算法生成多版本文件的方法
US10169394B2 (en) 2014-06-05 2019-01-01 International Business Machines Corporation Managing data sets of a storage system
US10802928B2 (en) 2015-09-10 2020-10-13 International Business Machines Corporation Backup and restoration of file system
US10359962B1 (en) * 2015-09-21 2019-07-23 Yellowbrick Data, Inc. System and method for storing a database on flash memory or other degradable storage
US10929246B2 (en) 2015-10-07 2021-02-23 International Business Machines Corporation Backup capability for object store used as primary storage
US11263171B2 (en) * 2015-12-09 2022-03-01 Druva Inc. Unified time-indexed catalogue for multiple archived snapshots
US10574751B2 (en) 2016-03-22 2020-02-25 International Business Machines Corporation Identifying data for deduplication in a network storage environment
US10684993B2 (en) 2016-06-15 2020-06-16 International Business Machines Corporation Selective compression of unstructured data
US20180018307A1 (en) * 2016-07-14 2018-01-18 Industrial Technology Research Institute Method of recording operations and method of automatically executing operations
US10169392B2 (en) 2017-03-08 2019-01-01 International Business Machines Corporation Persistent data structures on a dispersed storage network memory
US20180316936A1 (en) * 2017-04-26 2018-11-01 Newgen Software Technologies Limited System and method for data compression
US10592153B1 (en) 2017-09-05 2020-03-17 Amazon Technologies, Inc. Redistributing a data set amongst partitions according to a secondary hashing scheme
US11256667B2 (en) 2017-10-26 2022-02-22 Druva Inc. Deduplicated merged indexed object storage file system
US10128868B1 (en) * 2017-12-29 2018-11-13 Intel Corporation Efficient dictionary for lossless compression
US11012525B2 (en) * 2018-12-19 2021-05-18 Cisco Technology, Inc. In-flight building and maintaining dictionaries for efficient compression for IoT data
US11122095B2 (en) 2019-09-23 2021-09-14 Netapp, Inc. Methods for dictionary-based compression and devices thereof
US11366735B2 (en) 2020-08-20 2022-06-21 Bank Of America Corporation Dynamic data storage management
US11971857B2 (en) * 2021-12-08 2024-04-30 Cohesity, Inc. Adaptively providing uncompressed and compressed data chunks

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003524243A (ja) * 2000-02-18 2003-08-12 アヴァマー テクノロジーズ インコーポレイテッド 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法
JP2005107729A (ja) * 2003-09-29 2005-04-21 Toshiba Corp バックアップシステム、バックアップ方法およびプログラム
JP2005202918A (ja) * 2003-12-15 2005-07-28 Noboru Ikuta ネットワークを利用した携帯端末データ管理システム
JP2005292869A (ja) * 2004-03-31 2005-10-20 Japan Research Institute Ltd ファイル共有制御システムおよび共有制御プログラム
JP2006065424A (ja) * 2004-08-25 2006-03-09 Nec Corp データ記憶システム、データ記憶装置及びそれに用いる類似ファイル記録方法並びにそのプログラム
WO2006032049A1 (en) * 2004-09-15 2006-03-23 Diligent Technologies Corporation Systems and methods for searching and storage of data

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442350A (en) * 1992-10-29 1995-08-15 International Business Machines Corporation Method and means providing static dictionary structures for compressing character data and expanding compressed data
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5990810A (en) * 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US6374250B2 (en) * 1997-02-03 2002-04-16 International Business Machines Corporation System and method for differential compression of data from a plurality of binary sources
US6466999B1 (en) * 1999-03-31 2002-10-15 Microsoft Corporation Preprocessing a reference data stream for patch generation and compression
US6779003B1 (en) * 1999-12-16 2004-08-17 Livevault Corporation Systems and methods for backing up data files
US6704730B2 (en) * 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US6810398B2 (en) * 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
US7007141B2 (en) * 2001-01-30 2006-02-28 Data Domain, Inc. Archival data storage system and method
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US7310644B2 (en) * 2001-06-06 2007-12-18 Microsoft Corporation Locating potentially identical objects across multiple computers
WO2004047078A2 (en) * 2002-11-20 2004-06-03 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
US7143115B2 (en) * 2003-04-15 2006-11-28 Pocket Soft, Inc. Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files
US20050060643A1 (en) * 2003-08-25 2005-03-17 Miavia, Inc. Document similarity detection and classification system
US7680798B2 (en) * 2004-11-20 2010-03-16 International Business Machines Corporation Method, device and system for automatic retrieval of similar objects in a network of devices
FI20050590A0 (fi) * 2005-06-03 2005-06-03 Nokia Corp Sanakirjaperusteinen tiivistys ja lavennus
JP4456554B2 (ja) * 2005-10-31 2010-04-28 富士通株式会社 データ圧縮方法及び圧縮データ送信方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003524243A (ja) * 2000-02-18 2003-08-12 アヴァマー テクノロジーズ インコーポレイテッド 共通性ファクタリングシステムに用いられるハッシュファイルシステムおよび方法
JP2005107729A (ja) * 2003-09-29 2005-04-21 Toshiba Corp バックアップシステム、バックアップ方法およびプログラム
JP2005202918A (ja) * 2003-12-15 2005-07-28 Noboru Ikuta ネットワークを利用した携帯端末データ管理システム
JP2005292869A (ja) * 2004-03-31 2005-10-20 Japan Research Institute Ltd ファイル共有制御システムおよび共有制御プログラム
JP2006065424A (ja) * 2004-08-25 2006-03-09 Nec Corp データ記憶システム、データ記憶装置及びそれに用いる類似ファイル記録方法並びにそのプログラム
WO2006032049A1 (en) * 2004-09-15 2006-03-23 Diligent Technologies Corporation Systems and methods for searching and storage of data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7013001924; Fred,D., and Iyengnar,A.: 'Application-specific Delta-encoding via Resemblance Detection' Proc. of USENIX 2003 Annual Technical Conf. , 20030613 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014525058A (ja) * 2011-11-28 2014-09-25 株式会社日立製作所 ストレージシステムコントローラ、ストレージシステム及びアクセス制御方法
WO2017146338A1 (ko) * 2016-02-26 2017-08-31 주식회사 아미크 인덱스정보를 생성하는 데이터베이스의 아카이빙 방법 및 장치, 인덱스정보를 포함하는 아카이빙된 데이터베이스의 검색 방법 및 장치
US11030172B2 (en) 2016-02-26 2021-06-08 Armiq Co., Ltd. Database archiving method and device for creating index information and method and device of retrieving archived database including index information
KR20190024201A (ko) * 2017-08-31 2019-03-08 주식회사 엘지유플러스 클라우드 서버의 이미지 데이터 제공 방법
KR101990689B1 (ko) 2017-08-31 2019-10-01 주식회사 엘지유플러스 클라우드 서버의 이미지 데이터 제공 방법

Also Published As

Publication number Publication date
WO2007118243A3 (en) 2008-12-24
CA2648428C (en) 2017-11-21
CA2648428A1 (en) 2007-10-18
WO2007118243A2 (en) 2007-10-18
DK2013974T3 (en) 2018-10-29
EP2013974A4 (en) 2009-08-05
US20110087640A1 (en) 2011-04-14
US7860843B2 (en) 2010-12-28
EP2013974B1 (en) 2018-07-11
AU2007234696B2 (en) 2011-08-18
US20080034268A1 (en) 2008-02-07
EP2013974A2 (en) 2009-01-14
AU2007234696A1 (en) 2007-10-18
JP5309015B2 (ja) 2013-10-09

Similar Documents

Publication Publication Date Title
JP5309015B2 (ja) データ圧縮技術およびデータ格納技術
US8832045B2 (en) Data compression and storage techniques
US7478113B1 (en) Boundaries
US9740565B1 (en) System and method for maintaining consistent points in file systems
US8315985B1 (en) Optimizing the de-duplication rate for a backup stream
US8631052B1 (en) Efficient content meta-data collection and trace generation from deduplicated storage
US8788466B2 (en) Efficient transfer of deduplicated data
US9208031B2 (en) Log structured content addressable deduplicating storage
EP1640868B1 (en) Method and system for synthetic backup and restore
US8135748B2 (en) Virtual machine data replication
US8504529B1 (en) System and method for restoring data to a storage device based on a backup image
US8738668B2 (en) System and method for creating a de-duplicated data set
US20060218435A1 (en) Method and system for a consumer oriented backup
US20090006792A1 (en) System and Method to Identify Changed Data Blocks
US20110113016A1 (en) Method and Apparatus for Data Compression
US20130246726A1 (en) Method and device for a memory system
US10210169B2 (en) System and method for verifying consistent points in file systems
US9996540B2 (en) System and method for maintaining consistent points in file systems using a prime dependency list
US8943024B1 (en) System and method for data de-duplication
US8065277B1 (en) System and method for a data extraction and backup database

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100409

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100630

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121010

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130604

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130701

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5309015

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees