JP6045590B2 - 部分的重複排除ファイルの最適化 - Google Patents

部分的重複排除ファイルの最適化 Download PDF

Info

Publication number
JP6045590B2
JP6045590B2 JP2014528459A JP2014528459A JP6045590B2 JP 6045590 B2 JP6045590 B2 JP 6045590B2 JP 2014528459 A JP2014528459 A JP 2014528459A JP 2014528459 A JP2014528459 A JP 2014528459A JP 6045590 B2 JP6045590 B2 JP 6045590B2
Authority
JP
Japan
Prior art keywords
file
chunk
deduplicated
deduplication
partially
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.)
Active
Application number
JP2014528459A
Other languages
English (en)
Other versions
JP2014525631A5 (ja
JP2014525631A (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.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2014525631A publication Critical patent/JP2014525631A/ja
Publication of JP2014525631A5 publication Critical patent/JP2014525631A5/ja
Application granted granted Critical
Publication of JP6045590B2 publication Critical patent/JP6045590B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

[0001] データーの重複排除(deduplication)(データー最適化と呼ばれることもある)とは、記憶システムにおいて冗長なデーターを検出し、一意に識別し、排除することによって、元のデーターの忠実度または完全性を阻害することなく、ディスク上に格納するまたはネットワークを通じて送信する必要があるデーターの物理的バイト量を削減することを言う。このように、データーを格納および/または送信するために必要とされるリソースを削減することによって、データー重複排除は、ハードウェアおよび電力コスト(格納のため)ならびにデーター管理コスト(例えば、バックアップ・コストを低減する)の節約に至る。ディジタル的に格納されるデーター量が増大するにしたがって、これらのコスト節約は重要になる。
[0002] データー重複排除は、通例、永続的に格納されるファイル内部およびこれらのファイル間における冗長性を排除する技法の組み合わせを用いる。このような技法の1つは、1つまたは多数のファイルにおいて同じデーター領域を識別し、1つの一意の領域(チャンク)だけを物理的に格納しつつ、このデーターの繰り返し出現全てについてファイルと関連付けてこのチャンクへの参照を維持するように動作する。他の技法では、例えば、圧縮したチャンクを格納することによって、データー重複排除を圧縮と混合する。
[0003] データー重複排除には、多くの困難、妥協(tradeoff)、および選択肢があり、環境によっては、利用可能な時間およびリソースを考えると、1回の動作では重複排除するデーターが多すぎる場合が含まれる。以前に重複排除されたファイルが、新たなデーターまたは既存データーの変更に応答して部分的にディスクにリコールされるというように、部分的に重複排除されたファイルに、特定的な課題がある。部分的に重複排除されたファイルを全体的に重複排除するには、ファイル全体を読み取ってチャンキングし(chunking)、チャンクをチャンク・ストアに書き込むために大量の入力/出力リソースが必要となり、更にはこのチャンキングおよび圧縮を実行するためのCPUリソースも必要となる。
[0004] この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を限定するように使用されることは全く意図していない。
[0005] 端的に言うと、本明細書において記載する主題の種々の態様は、1つ以上の重複排除部分を有するファイルを完全に重複排除したファイルに変換することによって、部分的に重複排除されたファイルを最適化することを目的とする。一態様では、重複排除メカニズムは、重複排除されていない部分に渡る(encompass)1つ以上のチャンクを識別し、これら1つ以上のチャンクに関連付けられたファイル・オフセット間に1つ以上の新たなチャンクを定義することによって、非重複排除部分(undeduplicated portion)に対して重複排除プロセスを実行する。1つ以上の新たなチャンクに関連付けられたチャンク境界は、ファイルのリコールされない重複排除部分のチャンクとは重複しない。リコールされない重複排除部分との整合(alignment)を維持することによって、1つ以上の新たなチャンクは、他のいずれのチャンクも変更することなく、チャンク・ストアにコミットする(commit)ことができる。他の態様では、ファイルに関連付けられた重複排除メタデーターが、チャンク境界および1つ以上の新たなチャンクに関連付けられた他の情報を含むように変更され、1つ以上のチャンクと関連付けられたメタデーターはいずれも置き換えることができる。
[0006] 他の態様では、重複排除プロセスを簡素化するために、ファイルをサブファイル・パーティションに区分することもできる。重複排除メカニズムは、各重複排除プロセスの間に一度に1つのサブファイル・パーティションをチャンクに纏め、コミットする。次いで、重複排除メカニズムは、次のサブファイル・パーティションを重複排除する前に、このサブファイル・パーティションをファイルから切り捨てる(truncate)。サブファイル・パーティションの重複排除を完了する前に重複排除プロセスが中断された場合、重複排除プロセスは、コミットされた最後のチャンクの後の位置で再開することができる。
[0007] 本発明は、添付図面において、一例としてそして限定ではなく、例示される。図面において、同様の参照番号は同様のエレメントを示す。
図1は、一実施態様例にしたがって、部分的に重複排除されたファイルを最適化するシステム例を示すブロック図である。 図2は、一実施態様例による重複排除メカニズムのコンポーネント/フェーズ例を表すブロック図である。 図3Aは、一実施態様例にしたがって、完全重複排除ファイルに変換される、部分的リコール・ファイルの種々の例を示す。 図3Bは、一実施態様例にしたがって、完全重複排除ファイルに変換される、部分的リコール・ファイルの種々の例を示す。 図3Cは、一実施態様例にしたがって完全重複排除ファイルに変換される、部分的重複排除ファイルの一例を示す。 図4Aは、一実施態様例による重複排除メタデーターを示す。 図4Bは、一実施態様例による重複排除メタデーターを示す。 図5は、一実施態様例にしたがって、少なくとも1つの重複排除されていない部分を有するファイルを完全重複排除ファイルに変換するステップを示す流れ図である。 図6は、一実施態様例にしたがって、サブファイル・パーティションに区分されたファイルを重複排除するステップを示す流れ図である。 図7は、本明細書において説明する種々の実施形態を実現することができる、非限定的なネットワーク接続環境の一例を表すブロック図である。 図8は、本明細書において説明する種々の実施形態の1つ以上の態様を実現することができる、非限定的な計算システムまたは動作環境の一例を表すブロック図である。
[0017] 本明細書において説明する技術の種々の態様は、一般に、1つ以上の重複排除されていない部分を有するファイルを完全重複排除ファイルに変換することによって、部分的に重複排除されたファイルを最適化することを目的とする。一実施態様例では、部分的に重複排除されたファイルは、部分的にリコールされたファイルを含んでもよく、ファイル全体の代わりにリコールされたファイルの範囲を重複排除し、以前に重複排除された部分に関連付けられた重複排除メタデーターを、新たに重複排除されたファイルの範囲と組み合わせることによって、部分的にリコールされたファイルを最適化する。以前に重複排除された部分は再度重複排除されないので、I/OおよびCPUリソースのかなりの容量が節約される。同様に、部分的に重複排除されたファイル内にある一部は、その部分内にある新たなチャンクが、周囲にある以前に重複排除された部分のチャンクと整合するように重複排除することができる。
[0018] 他の実施態様例では、重複排除メカニズムは、大きなファイルを段階的に最適化し、このファイルをサブファイル・パーティションに区分し、各サブファイル・パーティション内にあるチャンクをチャンク・ストアにコミットし、ファイルを構成するファイル・ストリームからこのサブファイル・パーティションを切り捨てる。このような実施態様は、ファイル全体を最適化する前に記憶空間を解放し、ファイルが完全に重複排除される前にクラッシュまたはアボート(abortion)があった場合にメモリー・リークの可能性を低減する。
[0019] 他の実施態様例では、重複排除メカニズムは、中断命令(pause instruction)をサポートする。中断命令は、次の再開命令まで、重複排除プロセスを保留にする。重複排除メカニズムは、第1非重複排除部分において重複排除プロセスを再開する。第1非重複排除部分は、チャンキングされずチャンク・ストアにコミットされなかった最後の部分である。これによって、システム・リソースが他の作業負荷に必要とされる場合に、主システムが重複排除プロセスを中断することが可能になり、既に重複排除したデーターに対して重複排除プロセスを繰り返す必要はない。
[0020] 更に他の実施態様例では、チャンクおよび対応するファイル範囲の多レベル区分によって、大型ファイル上における高速入力/出力を可能にする。ファイル範囲の大きな集合体を含む重複排除メタデーターは検索が難しくなるので、ファイルを、多数の連続する、もっと小さなサブファイル・パーティションに区分し、これらを再度区分することによって、重複排除メカニズムは、これらのサブファイル・パーティション内において、仮想ファイル・オブセット(ファイルの先頭に対する)を特定のチャンク・オフセットに効率的に変換することが可能になる。ファイル・オフセット変換は、ファイルとの入力/出力(I/O)動作(即ち、リード/ライト)の間に実行することができる。この変換の適した実行は、I/O動作に対する影響を抑えて、行うことができる。
[0021] 図1は、一実施態様例にしたがって、部分的に重複排除されたファイルを最適化するシステム例を示すブロック図である。このシステム例は、ファイル102のような、部分的に重複排除されたファイルを完全重複排除ファイルに変換する種々の重複排除または最適化メカニズムをサポートすることができる。一実施態様例では、ファイル102は、非重複排除データー104および重複排除部分(即ち、チャンク)の組み合わせを含む。非重複排除データー104は、部分的にリコールされたデーター、および/または未だ重複排除されていないデーターを含むことがある。例えば、アプリケーション114は、部分的にリコールされたデーターを変更すること、および/または新たなデーターをファイル102に追加することもできる。
[0022] 一般に、ファイルが完全に重複排除されると、そのファイルにはメタデーター106が関連付けられる。このメタデーター106は、チャンク・ストア110におけるファイルのチャンク(例えば、C3、C6、およびC7)を、ファイルの論理表現に逆方向にマッピングする重複排除(ディダプ(dedup))メタデーターを含む。重複排除プロセスの間にファイル102がサブファイル・パーティションに区分されると、ファイル102はパーティション表118も含む。このパーティション表118は、サブファイル・パーティション毎にファイル・オフセットを維持し、更にサブファイル・パーティション内のあらゆるパーティションに対するファイル・オフセットを維持する。本明細書において記載する場合、パーティション表118は、サブファイル・パーティションと対応するファイル範囲の階層を含むことができる。
[0023] チャンク・ストア・メタデーター112は、チャンク・ストア110が重複チャンクを格納しないことを保証するためにハッシュ・インデックスを含む。一般に、アプリケーション114が既存のデーターを変更するときまたは新たなデーターをファイルに書き込むとき、重複排除メカニズム116(例えば、ファイル・システム・フィルタに実装される)は、チャンク・ストア110内において1つ以上の被参照チャンクにアクセスし、これら1つ以上の被参照チャンクを、リコールされたファイル・データーとして戻し、必要に応じていずれかの解凍の後、リコールされたファイル・データーを被重複排除データー104に格納する。
[0024] ファイル102が完全重複排除状態から非重複排除/部分的重複排除状態に変化する原因となる種々の動作がある。これは、ユーザーまたはプロセスがファイルに書き込みを行ったときに、書き込まれたファイルのオフセット位置において変更されたファイル・データーが、もはや、以前にデーターを収容していた1つ以上のチャンクと一致しなくなったという場合を含む。このようなファイル変更をサポートするためにファイル全体を完全にリコールするのは、非効率的であることが多い(例えば、非常に大きなファイルに対する小さな変更の場合)。
[0025] 関連のあるチャンクのみをリコールすると、ファイル102が部分的に重複排除された状態になり、ファイル102は一部のリコールされたファイルのデーターと、リコールされていないチャンクに対する参照とを含むことになる。例えば、図1において、アプリケーション114がチャンクC7のみをリコールし、その対応するデーターに書き込んだ場合について検討する。ファイル102は、リコールされたチャンク・データーを、ライト動作によって変更されたものとして、非重複配著データー104に収容する。ファイル102がリコールされたデーターを収容することが分かり、今では古くなったチャンクC7にはもはやマッピングしないように、重複排除メタデーター108は、この部分的リコール状態を反映するように更新される。
[0026] 一実施態様例では、重複排除メタデーター108は、ファイル102のどの部分(portion or portions)がリコールされたのか、そしてどの部分が重複排除されたチャンクとしてチャンク・ストア110に残っているのか追跡する。このように、ファイル102は非重複排除状態、部分的重複排除(部分的リコール)状態、または完全重複排除(即ち、最適化された)状態で存在する可能性がある。ファイルは、種々のシナリオにおいて、部分的重複排除状態になり得る。例えば、ユーザーがあるファイル範囲をインプレースで(in-place)変更したことが考えられる。また、重複排除メカニズム116が、ユーザー・ライトをチャンク境界、疎ファイル境界(sparse file boundaries)(一実施態様では、各々64KBの固定ブロックである)、または他の何らかの境界に整合させるために、もっと多くのデーターをリコールすることも考えられる。他の例として、重複排除メカニズム116は、サブファイル・パーティションを最適化し、関連するファイル範囲を切り詰め、中断命令のためまたはシステムがクラッシュしたために、重複排除プロセスの間に停止しなければならなかったという場合もある。更に他の例では、重複排除メカニズム116が、ファイルの以前のバージョンを重複排除し、次いでユーザーがこのファイルを新たなデーターで拡張したという場合もある。
[0027] 一実施態様では、重複排除メカニズム116は、種々の追跡動作を実行する。この動作には、ファイル102のどの部分がリコールされ、どの部分がチャンク・ストア110に残っているかについて、重複排除メタデーター108においてデーターを追跡し続けることを含む。一実施態様例では、Microsoft(登録商標)NTFS構成に対応して、追跡データーはNTSFリパース・ポイント(reparse point)に維持される。これも、ファイルが部分的に重複排除されていることを重複排除メカニズム116に知らせる役割を果たす。リパース・ポイントは、他の使用シナリオでも周知であり、ここでは詳しく説明しない。尚、リパース・ポイントは単に代用品の1つであり、追跡の目的に他のメタデーター/ストリームを代わりに用いてもよいことを注記しておく。
[0028] 一実施態様例では、重複排除メカニズム116は、重複排除方針120にしたがって重複排除プロセスを実行する。このような方針は、ファイル102に対する重複排除プロセスをいつ開始、停止、および/または再開するか判断するために種々の判断基準を含む。例えば、重複排除メカニズム116は、ファイル102に対する変更後にある時間期間が経過したとき、またはホスト機械がアイドルになったときに、重複排除プロセスを開始するのでもよい。他の例として、重複排除メカニズム116は、新しいチャンクがあるサイズを超過したとき、あるいはホスト機械がアイドルでなくなったときまたは遮断する必要があるときに、重複排除プロセスを停止し、新たなチャンクをコミットするのでもよい。更に他の例として、重複排除メカニズム116は、非重複排除データー104のチャンキングが完了した後、またはサブファイル・パーティションの内1つのチャンキングを完了した後に、新たなチャンクをチャンク・ストア112にコミットするのでもよい。
[0029] 図2は、一実施態様例による重複排除メカニズム116のコンポーネント例を表すブロック図である。この実施態様例では、コンポーネント例は、ファイル202に対する重複排除プロセスの実行中に、順次行われるフェーズとして動作する。
[0030] 重複排除プロセスは、本明細書において説明するように、部分的に重複排除されたファイルまたは重複排除されていないファイルを、完全に重複排除されたファイルに変換する。これは、ファイル202をスキャンし、どれが部分的に重複排除されているか判断する識別フェーズ204を含む。一実施態様例では、重複排除メカニズム116は、種々の重複排除メタデーターを検査し、部分的にリコールされた状態のファイルを検出する。重複排除メタデーターは、1つ以上のストリーム・マップを指し示すリパース・データーを含むことができる。チャンク・ストアにおけるチャンクの総サイズ(combined size)がファイル・サイズ未満である場合、またはファイル範囲ビットマップが1つ以上の重複排除されていない部分を示す場合、このファイルは部分的に重複排除された状態にある。すると、重複排除メカニズム116は、重複排除された部分および重複排除されていない部分に対するファイル範囲を定義するストリーム・マップを引き出す。各部分は、開始ファイル・オフセットおよびサイズに対応することができ、重複排除メカニズム116はこれらから終了ファイル・オフセット(ending file offset)を計算する。ファイル範囲は、先頭から終端までファイル全体と重複せず、そしてファイル全体を内包しない。
[0031] 一実施態様例では、重複排除メカニズム116は、非重複排除部分のファイル範囲に渡るチャンクを識別する。例えば、アプリケーションがこれらのチャンクをリコールし、1つ以上の種々の部分を変更して、部分的にリコールされた状態にファイルを置いたということがあり得る。整合フェーズ206は、これらのチャンクに関連付けられたチャンク境界を変更して、これらの新たなチャンクと、重複排除部分に関連付けられたチャンク境界との間における重複を防止する。また、本明細書において説明するように、整合フェーズ206は、特定のファイル・オフセットにおいてチャンキング・フェーズ208を開始し、他のファイル・オフセットにおいてチャンキング・フェーズ208を終了するように、チャンキング・コンポーネントに指示する。
[0032] チャンキング・フェーズ208の間、経験則(heuristics)に応じて、ChA1〜ChAmのようなチャンキング・アルゴリズムを選択することができる。経験則は、ファイル拡張子、ヘッダ情報等というような、ファイル属性を伴うことができる。例えば、包括的チャンキング・アルゴリズムを1つのファイルに選択し、一方他のファイルには、そのファイル拡張子(ZIP部分に対するチャンキング・アルゴリズムのような)に特定的なチャンキング・アルゴリズムを有する場合がある。また、チャンキング・アルゴリズムは、識別フェーズ204からのヒントに基づいて、あるいは内部フィードバック220または外部フィードバック222に基づいて選択されるのでもよい。
[0033] チャンキング・フェーズ208(所与の実施態様において必要とされるファイル解凍を含むまたはそれの後に行われることもある)は、選択されたアルゴリズムにしたがって、ファイル・コンテンツをチャンクに解凍する。このアルゴリズムは、各チャンクの内容が他のファイルに重複される確率を高める可能性があり、これらのチャンクは後に圧縮されることもある。チャンキングは、ファイルの構造、コンテンツ・ドリブン・アルゴリズム(例えば、メディア・ファイルをメディア・ヘッダおよびメディア本体に区分し、次いでメディア本体を一連のパートに階層的に分割することができる)にしたがって、あるいは高速ハッシング技法(このような高速ハッシュ関数は、CRCおよびRabin関数ファミリーを含む)に基づいてファイル内容をチャンクするアルゴリズムを用いることによって実行することができる。これは、スライディング・ウィンドウ上で繰り返し計算され、ハッシュ関数および現在のチャンク・サイズ/内容が一定の判断基準を満たすときに、チャンクが選択される。
[0034] チャンキング・フェーズ208の結果は、チャンクのリスト(ファイル毎)を含み、1組の「チャンク・レコード」を用いてチャンクが受け渡される。各チャンク・レコードは、チャンク内にあるデーターのタイプを記述する関連メタデーターを収容する。このようなメタデーターの一例は、チャンク・アルゴリズムの実行の一部として計算される任意の(any)ローリング・ハッシュである。他の例は、チャンク内にある実際のデーターの圧縮レベルのインディケーターである(例えば、ZIPチャンキング・モジュールは、圧縮選択モジュールに、既に圧縮されていそうなチャンクを圧縮しないように命令する)。尚、ホストされたプロセス実行では、チャンクは処理のためにしかるべき「出力キュー」に挿入され、次いで一括して重複排除プロセスに送られることを注記しておく。
[0035] チャンクは、一括して処理することができ、次のフェーズ、即ち、重複排除検出フェーズ210によって消費される。重複排除検出フェーズ210は、ハッシングによって各チャンクを一意に識別し、重複排除検出のためにハッシュを使用する。チャンキングの後、重複排除検出フェーズ210は、チャンク・ストア内に既にそのチャンクが存在するか否か判断する。ハッシュ・インデックス・サービスにおいて参照動作を呼び出すために、チャンクに対して計算される(calculated)強いハッシュが算出される(computed)。ハッシュ・インデックス・サービスは、既に重複排除システムには知られているまたは既にチャンク・ストア218に格納されている一意のチャンクの一部または全部のハッシュにインデックスを付ける。
[0036] チャンク・ストア218は、実際のチャンクの永続的データーベースを維持する。チャンキング・フェーズ208は、新たなチャンクをチャンク・ストア218に挿入すること(未だこのようなチャンクがない場合)、チャンク・ストアにおける既存のチャンクに参照データーを追加すること(以前から存続していたチャンクを検出したとき)、ならびに1組のチャンク挿入および/またはチャンク参照追加をコミットすることをサポートする。また、チャンク・ストア218は、ガベージ・コレクション、データー/メタデーター・チェック等を含む、種々の背景/保守ジョブも実施することができる。
[0037] メタデーター作成フェーズ212は、チャンキング・フェーズ208によって定義された新たなチャンクを説明するために、重複排除メタデーターおよびチャンク・ストア・メタデーターを生成する。ファイル毎に、ストリーム・マップのような、チャンク・ストア・メタデーターを維持する実施態様例では、重複排除メカニズム116は、元のチャンク・ストア・メタデーターおよび新たなチャンク・メタデーターを組み合わせることによって、このようなメタデーターを構築し直す。加えて、メタデーター作成フェーズ212は、新たなチャンクに関連付けられたチャンク・ストア・メタデーターにマッピングするように、重複メタデーターを更新する。
[0038] 一実施態様例では、重複排除メカニズム116は、無変化のチャンク定義を古いストリーム・マップから保持し、これらの定義を新たなストリーム・マップに追加する。整合された非重複排除部分に対応する新たなチャンクに対して、重複排除メカニズム116は対応する定義を新たなストリーム・マップに追加し、続いて、古いストリーム・マップの古くなった定義をいずれもスキップする。本質的に、新たなストリーム・マップは、古いストリーム・マップおよび新たなチャンク・メタデーターを縫合する(stitching)ことによって作成される。重複排除メカニズム116は、新たなストリーム・マップをチャンク・ストア・メタデーターに追加し、古いストリーム・マップを削除する。あるいは、重複排除メカニズム116は、新たなストリーム/マップを作成し古いストリーム・マップを削除するのではなく、新たなチャンク・メタデーターで古いストリーム・マップを更新する。
[0039] 他の実施態様例では、重複排除メタデーターがパーティション表を含むこともできる。このパーティション表は、チャンクおよびサブファイル・パーティションに関連付けられたファイル範囲の階層を構成する。この階層は、直接1組のサブファイル・パーティションにマッピングすることができる。一例では、1組の第2レベル・ストリーム・マップを指し示す最上位ストリーム・マップを含む。他の例では、ストリーム・マップの多レベル編成を含む。他の例では、予め定義された、固定サイズのサブファイル・パーティションを使用することを含み、最上位ストリーム・マップを調べることなく、ファイル・オフセットを固定サブファイル・パーティション・サイズで除算することによって、ファイル・オフセットと特定のサブファイル・パーティションとの間の変換を可能にする。
[0040] 他の実施態様例では、重複排除メカニズム116は、ストリーム・マップの代わりに参照カウント(reference count)をメタデーターの一部として使用する。重複排除メカニズム116は、もはや所与のファイルによって参照されないチャンク毎に参照カウントを減分し、整合された非重複排除部分に対応する、新たに参照されたチャンク毎に参照カウントを増分する。
[0041] 同じ重複排除プロセスにおいて1つの段階から次の段階に移行するとき、重複排除メカニズム116は、本明細書において説明するように新たなストリーム・マップを作成する代わりに、新たなチャンク定義を元のストリーム・マップに追加することもできる。一実施態様例では、重複排除メカニズム116は新たなチャンク定義をファイルの元のストリーム・マップに添付する。他の実施態様例では、重複排除メカニズム116は、元のストリーム・マップを一連の部分的ストリーム・マップに分割する。各部分的ストリーム・マップは、コミット・フェーズ216の間に処理されたサブファイル・パーティションに対応する。
[0042] 重複排除プロセスが、サブファイル・パーティションを最適化しつつ中断命令を扱う場合、重複排除メカニズム116は、新たなストリーム・マップを作成する。このストリーム・マップは、新たなチャンク・メタデーター、および重複排除部分に関連付けられた定義を含む。チャンキング・フェーズ208が非重複排除部分のチャンキングを再開するとき、新たなストリーム・マップは元のストリーム・マップに置き換わる。コミット・フェーズ216の間、このときリパース・データーが新たなストリーム・マップを参照して、元のストリーム・マップを取り戻すことができる。
[0043] ファイルが部分的にリコールされた状態にあり、重複排除プロセスが中断された場合、再開命令後に作成された新たなストリーム・マップは、元のストリーム・マップに置き換わらない。一実施態様例では、部分的にリコールされたファイルは、双方のストリーム・マップを参照する。他の実施態様例では、部分的にリコールされたファイルは、古いストリーム・マップのみを参照し続ける。重複排除メカニズム116は、コミット・フェーズ216の間はファイル切り詰めを回避する。最後のサブファイル・パーティションが重複排除されるときに、新たなストリーム・マップが元のストリーム・マップに置き換わる。
[0044] 新たなチャンクをチャンク・ストア218に追加する前に、これら新たなチャンクを、圧縮フェーズ214に関して処理することもできる。圧縮アルゴリズム・セレクタが、ファイルおよびチャンク・メタデーターを処理し、圧縮アルゴリズムCA1〜CAn(該当する場合)の内どれが、このタイプのデーターに対して最良に作用するか判断しようとすることができる。いずれかの圧縮が実行された後、ランタイム(runtime)は大幅な節約が得られたか否か検証することができる。例えば、圧縮されたチャンクがその未圧縮形態よりも大きい場合、新たなチャンクは圧縮されずに格納される(または、異なるアルゴリズムで圧縮を再度試すこともできる)。圧縮アルゴリズムは、方針、ファイル・タイプ等に基づいて選択することができる。
[0045] コミット・フェーズ216は、各ファイルを、チャンク・ストア218内にある重複排除データーを指し示す参照と置き換える。このために、重複排除メカニズム116は、チャンクが既にチャンク・ストアに挿入されたファイルのリストを受け取る。一実施態様では、各チャンク・リストはチャンクIDストリーム(一意のストリームIDで識別される)にカプセル化される。このチャンクIDストリームは、ファイルに関連付けられたリパース・ポイント内に存続する。コミット・フェーズ216の間、重複排除メカニズム116は、ファイルを、リパース・ポイントのような追跡データーと置き換える。この追跡データーは、IDおよびチャンク・ストリームIDのロケーターを収容する。即ち、ストリーム・マップを収容するチャンクは、現在のファイルを組み立てるために用いられたチャンク、およびその論理オフセットのリストを含む。
[0046] 図3A〜図3Cは、実施態様例にしたがって、完全重複排除ファイルに変換される少なくとも1つの非重複排除部分を含む種々のファイル例を示す。
[0047] 図3Aは、部分的にリコールされたファイルを示す。このファイルは、ファイル・オフセット302にて開始しファイル・オフセット304にて終了し、ファイル・オフセット308にて開始する非重複排除部分306を含むチャンクを有する。各チャンクは等しく64KBの大きさになっているが、他のサイズも本開示の範囲内に該当する。一実施態様例では、重複排除メカニズム116は、ファイル・オフセット302においてチャンキング・フェーズを開始する。他の実施態様例では、重複排除メカニズム116はファイル・オフセット308においてチャンキング・フェーズを開始し、この場合、64KBよりも小さい新たなチャンク310を定義する。重複排除メカニズム116は、既に重複排除されている部分に関連付けられたチャンク境界と整合するように、新たなチャンクのチャンク境界を変更する。
[0048] 図3Bは、部分的にリコールされたファイルを示す。このファイルは、ファイル・オフセット312にて開始しファイル・オフセット312において終了し、ファイル・オフセット318にて終了する非重複排除部分316を含むチャンクを有する。一実施態様例では、重複排除メカニズム116は、ファイル・オフセット318においてチャンキング・フェーズを終了し、この場合、64KBよりも小さい新たなチャンク316を定義する。他の実施態様例では、重複排除メカニズム116は、新たなチャンクが、後続の重複排除部分に関連付けられたチャンク境界と整合するように、ファイル・オフセット314においてチャンク・フェーズを終了する。重複排除メカニズム116は、他の実施態様によれば、後続の重複排除部分を有するチャンクと整合するまで、ファイル・オフセット314を超えてチャンキング・フェーズを継続することもできる。
[0049] 更に他の実施態様では、重複排除メカニズム116は、ファイル・オフセット314を超えてチャンキング・フェーズを継続するが、チャンキング・フェーズをいつ終了するか判断するために閾値を使用する。この閾値以内に、後続の重複排除部分を有するチャンクとの整合ができない場合、重複排除メカニズム116は、チャンク320と同様の新たなチャンクを定義する。このチャンクは、64KBよりも小さく、要求される整合が得られる結果となる。一実施態様例では、重複排除メカニズムは、固定チャンク・サイズ(例えば、64KBから128KB)またはチャンクの総数に基づいて、閾値を計算する。
[0050] 図3Cは、部分的に重複排除されたファイルを示す。このファイルは、サブファイル・パーティション322、サブファイル・パーティション324、およびサブファイル・パーティション326に区分されている。重複排除メタデーターは、これらのサブファイル・パーティションに対してファイル・オフセットを維持する。この部分的に重複排除されたファイルの重複排除は、段階的に実行され、各サブファイル・パーティションがチャンキングされ、別の段階においてチャンク・ストアにコミットされる。次いで、重複排除メカニズムは、重複排除メタデーターを更新し、特定のサブファイル・パーティションの2つのコピーを保持することを回避するために、部分的に重複排除されたファイルを切り詰める。各段階の後、非重複排除部分はサイズを縮小する。最後のサブファイル・パーティションがコミットされたときに、部分的に重複排除されたファイルは、完全重複排除ファイルに変換される。
[0051] 一実施態様例では、重複排除メカニズム116は、サブファイル・パーティション322を重複排除しつつ、中断命令を処理し、ファイル・オフセット328において重複排除プロセスを停止する。再開命令を受けたときに、重複排除メカニズム116は、ファイル・オフセット328において重複排除プロセスを再開する。サブファイル・パーティション322を形成するチャンクをチャンク・ストアにコミットし、メタデーターを更新した後、重複排除メカニズム116は、サブファイル・パーティション322を削除し、サブファイル・パーティション324を重複排除する処理に移る。本明細書において説明したように、一旦サブファイル・パーティション324が重複排除されたなら、それ以上非重複排除部分は残っていないので、重複排除プロセスは終了する。
[0052] 図4Aおよび図4Bは、一実施態様例による重複排除メタデーターを示す。図4Aに表される一実施態様例では、重複排除メタデーターは、ファイル402およびファイル404を含む。ファイル402は、ストリーム・マップ408を参照する追跡データー406を含む。同様に、ファイル404は、ストリーム・マップ412を参照する追跡データー410を含む。これらのストリーム・マップの双方は、チャンク・ストア414内にあるチャンクに対応する。図示のように、ストリーム・マップ408はチャンクC2〜C4、およびチャンクC6を定義する。これらのチャンクは、ファイル402を形成する。同様に、ストリーム・マップ412は、ファイル404を形成するチャンクC1〜C5を定義する。
[0053] チャンクC5のような特定のチャンクがリコールされその後アプリケーションによって一部が変更されて(重複排除されない)、ファイル404が部分的に重複排除されたファイルになった場合、重複排除メカニズム116は、チャンクC5を包含する(encompass)1つ以上の新たなチャンクを定義する。次いで、重複排除メカニズム116は、ストリーム・マップ412を更新するか、またはストリーム・マップ412と置き換える新たなストリーム・マップを作成する。いずれの実施態様でも、重複排除メタデーターは、この時点では、チャンクC5の代わりに、1つ以上の新たなチャンクにマッピングする。例えば、重複排除メカニズム116が、チャンクC6と一致する(match)新たなチャンクを作成する場合、更新されたストリーム・マップ即ち新たなストリーム・マップは、チャンク・ストア414においてチャンクC6にマッピングする新たな定義を含む。
[0054] 図4Bに概略的に表される一実施態様では、NTFSリパース・ポイント440が、ストリーム・マップを参照するためのポインター442と、非重複排除部分を有するチャンクを追跡するためのビットマップ構造444とを含む。リパース・ポイント440は、追跡データー406または追跡データー410の実施形態であってもよい。更に具体的には、ファイルを部分的にリコールするために、重複排除メカニズム116は、このファイルの仮想ビューを作成し、64KB境界においてというように、所定の境界においてチャンキング・フェーズを実行する。重複排除メカニズム116は、リパース・ポイント440においてビットマップ構造444にこのビューを維持する。一実施態様では、ビットマップ構造444におけるセット・ビットが、チャンクが重複排除ファイルにリコールされたことを示し、ゼロ・ビットが、チャンクがチャンク・ストア内に存在することを示す。リパース・ポイントを設定する間に、チャンクのサイズを追加することができる。
[0055] 尚、あるときにデーターがリコールされ、他のときにビットマップ構造444が更新されると、クラッシュに関連する不一致(inconsistency)を生ずる可能性があることを注記しておく。本明細書において説明するように、データーを安定したストレージ(例えば、ディスク等)にコミットする(例えば、フラッシュ(flush)する)とき、動作の順序付けがシステム・クラッシュを矛盾のないもの(consistent)にする。更に具体的には、ビットマップ構造444に対する変更は、それが表す対応データーがディスクにフラッシュされた後でないと、ディスクにフラッシュされない。このように、ビットマップ構造444は、データーが安全にディスクにフラッシュされたことが分かるまで、データーが部分的にリコールされたことを決して示さない。尚、ディスクおよびファイル・システムがライト・スルー(write-through)をサポートする場合、フラッシュの代わりにライト・スルーを使用してもよいことを注記しておく。尚、ファイル・データー/メタデーターをディスクにフラッシュすることは、通例、本明細書では一例として用いられるが、これは一例に過ぎないことを注記しておく。つまり、「安定したディスクにコミットする」ことは、ファイル・システムおよび記憶媒体のライト・スルーの概念、ならびにファイル・システムおよび記憶媒体のフラッシュまたはデーターが確実に安定したストレージに書き込まれることを保証するための他のあらゆる手段を用いる概念も含む。
[0056] 一実施態様例では、ビットマップ構造444は、部分的にリコールされたファイルを逆に完全重複排除ファイルに効率的に変換するために使用することもできる。このために、重複排除のためにファイルをスキャンしているとき、部分的にリコールされたファイルの範囲(即ち、非重複排除部分)だけが重複排除のために重複排除メカニズム116に供給されるように、追跡データーを使用することができる。これらの部分的にリコールされたファイルの範囲を含む新たなチャンクがチャンク・ストアに追加されるに連れて、部分的にリコールされたファイルの範囲がここでは最適化されたチャンクとなり、もはや部分的にリコールされた範囲ではないことを反映するために、リパース・ポイント440を含む重複排除メタデーターを調節する。
[0057] 図5は、一実施態様例にしたがって少なくとも1つの非重複排除部分を有するファイルを完全重複排除ファイルに変換するステップを示す流れ図である。図5に示すステップは、ステップ502において開始し、ステップ504に進み、ここで重複排除メカニズム116が、部分的にリコールされたファイルを識別する。この部分的にリコールされたファイルは、チャンクに区分される。ステップ506は、重複排除メタデーターおよびチャンク・ストア・メタデーターというような、ファイルに関連付けられたメタデーターを用いた、1つ以上の非重複排除部分の識別を示す。本明細書において説明したように、重複排除メカニズム116は、一実施態様例にしたがって、リパース・ポイント内にあるリコール・ビットマップを調べて、リコールされたファイルの範囲、およびこれらのファイル範囲に及ぶチャンクの位置を判定する。
[0058] ステップ508は、いずれかの重複排除部分に対してチャンク境界を取り去るか否かについての判断を表す。一実施態様例では、非重複排除部分は、重複排除部分を構成するチャンクのチャンク境界と整合される必要があるので、2つの非重複排除部分の間に小さな重複排除部分があると、チャンキング・フェーズの間に小さなチャンクが定義される。部分的にリコールされたファイルが小さな重複排除部分を含む場合、図5に示す方法はステップ510に進む。一方、取り去るべき重複排除部分がない場合、図5において説明する方法はステップ512に進む。
[0059] ステップ510は、2つ以上の非重複排除部分を組み合わせて、1つの非重複排除部分にすることを目的とし、この1つの非重複排除部分は1つのファイル範囲のリコールされたデーターとして重複排除される。これは、チャンク・ストアからチャンクを読み出して、非重複排除部分間のギャップを埋めることが必要になる場合がある。ステップ510を実行した後、図5において説明する方法はステップ512に進む。
[0060] ステップ512は、非重複排除部分を検査することを目的とする。一実施態様例では、重複排除メカニズム116は、非重複排除部分を構成するまたは包含するチャンクを識別する。一実施態様例では、重複排除メカニズム116はファイル内における第1のまたは最も早い非重複排除部分を識別し、少なくとも1つの重複排除部分内にある周囲のチャンクのチャンク境界と整合する新たなチャンクを定義する。ステップ514は、少なくとも1つのチャンクの定義を表す。このチャンクは、非重複部分に関連付けられた開始ファイル・オフセットよりも前またはこれに等しいファイル・オフセットにて開始し、非重複排除部分と関連付けられた終了ファイル・オフセットの後またはこれに等しいファイル・オフセットにおいて終了する。
[0061] ステップ516は、部分的にリコールされたファイルの次の非重複排除部分を重複排除するか否かについての判断を目的とする。他に非重複排除部分がない場合、図5において説明する方法はステップ518に進む。一方、追加の非重複排除部分がある場合、図5において説明する方法はステップ512に戻る。ステップ518は、部分的にリコールされたファイルの少なくとも1つの重複排除部分のファイル・オフセットと整合するチャンク境界の判定を示す。一実施態様例では、少なくとも1つのチャンクの最後のチャンクは、少なくとも1つの重複排除部分の後続するチャンクのチャンク境界と重複しないチャンク境界を有する。同様に、少なくとも1つのチャンクの第1チャンクは、この少なくとも1つの重複排除部分の直前にあるチャンクのチャンク境界と重複しないチャンク境界を有する。
[0062] ステップ520は、少なくとも1つのチャンクについてのメタデーターを作成し、少なくとも1つのチャンクをチャンク・ストアにコミットすることに言及する。一実施態様例では、重複排除メカニズム116は、部分的にリコールされたファイルのファイル・オフセットと少なくとも1つのチャンクのチャンク境界との間におけるマッピングを作成する。次いで、重複排除メカニズム116は、これらのマッピングを、少なくとも1つの重複排除部分のチャンク境界と組み合わせ、チャンク・ストア・メタデーターを作成する。このチャンク・ストア・メタデーターは、そのファイルについての以前のチャンク・ストア・メタデーターと置き換わる。代替実施態様では、重複排除メカニズム116は重複排除メタデーター(例えば、リパース・ポイント、ストリームid、ビットマップ等)およびチャンク・ストア・メタデーター(例えば、ストリーム・マップ)を、これらのマッピングを用いて更新する。少なくとも1つのチャンクを格納する前に、重複排除メカニズム116はチャンク・ストアに関連付けられたハッシュ・インデックスを調べて、チャンクの中に既にチャンク・ストアに格納されているものがあるか否か判断する。
[0063] 他の代替実施態様では、重複排除メカニズム116は、次の重複排除部分をチャンキングする前に、ステップ518およびステップ520を実行する。例えば、ステップ516を実行する前に、重複排除メカニズム116は重複排除プロセスを停止させ、チャンク境界でチャンク・ストア・メタデーターを更新し、少なくとも1つのチャンクをチャンク・ストアにコミットし、非重複排除部分を削除することによって、部分的にリコールされたファイルを切り詰める。重複排除メカニズム116は、図6に示すような中断命令に応答して、重複排除プロセスを停止させるのでもよい。
[0064] 更に他の代替実施態様では、重複排除メカニズム116は、重複排除方針に基づいて重複排除プロセスを停止させるのでもよい。一例として、重複排除メカニズム116は、種々の判断基準を用いて、次の非重複排除部分を識別しこのような部分で少なくとも1つのチャンクを定義する前に、非重複排除部分に関連付けられた少なくとも1つのチャンクをコミットする。
[0065] ステップ522は、参照されないチャンク(unreferenced chunk)をチャンク・ストアから削除することを目的とする。例えば、これらのチャンクは、部分的にリコールされたファイルを含むいずれのファイルに対しても、ストリーム・マップともはや関連付けられていない。参照カウントを採用する実施態様では、重複排除メカニズムは少なくとも1つのチャンクに対して参照カウントを減数する。結果的に得られた参照カウントがゼロに等しい場合はいずれも、対応する各チャンクを取り戻して削除する。ステップ524は、図5によって説明した方法のステップを終了する。
[0066] 図6は、一実施態様例にしたがって、サブファイル・パーティションに区分されたファイルを重複排除するステップを示す流れ図である。図6に示すステップは、ステップ602において開始し、重複排除メカニズム116がファイルを処理するときに、ステップ604に進む。ステップ606は、ファイルをサブファイル・パーティションに区分することを目的とする。一実施態様例では、ファイルを全て直ちに重複排除するには、大量の時間を必要とする。したがって、重複排除メカニズム116はファイルを等しいサイズのサブファイル・パーティションに分割し、一緒に行う代わりに、1回に1つずつ重複排除する。
[0067] ステップ608は、第1重複排除部分を有するサブファイル・パーティションを識別することを目的とする。ファイルが全く重複排除されていない場合、重複排除プロセスは、第1サブファイル・パーティションにおいて開始する。ファイルが部分的に重複排除されている場合、重複排除プロセスは、非重複排除部分を含む第1サブファイル・パーティションに関連付けられた開始オフセットにおいて開始する。本明細書において説明したように、サブファイル・パーティションを完了する前に重複排除プロセスが中断された場合、重複排除プロセスは、第1非重複排除部分に関連付けられた開始オフセットにおいて再開する。何故なら、ここは、重複排除プロセスが停止した場所であるからである。更に、第1非重複排除部分の直前にあるチャンクは、チャンク・ストアにコミットされた最後のチャンクであったことになる。
[0068] ステップ610は、サブファイル・パーティションによって少なくとも1つのチャンクを定義することを目的とする。ステップ612は、重複排除メカニズム116が、第1非重複排除部分のチャンキングを停止させる中断命令を受けたか否かについての判定に言及する。代替実施態様によれば、システム・クラッシュが重複排除プロセスを同様に事実上中断させる。重複排除メカニズム116が中断すると、図6において説明する方法はステップ614に進む。ステップ614は、重複排除プロセスが第1非重複排除部分のチャンキングを再開するまで待つことを目的とする。一実施態様例では、重複排除メカニズム116はファイル・システムから命令を受け、第1非重複排除部分の開始オフセットにおいて少なくとも1つの定義を再開する。一方、重複排除メカニズム116が重複排除プロセスの間に中断しない場合、図6において説明する方法はステップ616に進む。
[0069] ステップ616は、重複排除メタデーターおよびチャンク・ストア・メタデーターを更新することを目的とする。一実施態様例では、重複排除メカニズム116はストリーム・マップにおけるマッピングを新たなチャンク定義によって更新する。他の実施態様例では、重複排除メカニズム116は、既に重複排除されているチャンクに対する元のマッピング、および新たなチャンク定義に関連付けられた新たなマッピングを用いて、新たなストリーム・マップを作成する。
[0070] ステップ618は、ファイルを切り詰め、少なくとも1つのチャンクをチャンク・ストアにコミットすることを目的とする。第1非重複排除部分を含むサブファイル・パーティションをファイルから除去する。何故なら、対応するファイル・データーのコピーがチャンク・ストアに格納されるからである。ステップ620は、次のサブファイル・パーティションを重複排除するか否かについての決定を目的とする。ファイル内に他のサブファイル・パーティションがない場合、図6において説明する方法はステップ622に進む。一方、追加のサブファイル・パーティションがある場合、図6において説明する方法はステップ608に戻る。ステップ622は、図6によって説明した方法のステップを終了する。
ネットワーク接続および分散型環境の例
[0071] 当業者は、本明細書において説明した種々の実施形態および方法は、あらゆるコンピューターあるいは他のクライアントまたはサーバー・デバイスに関して実現できることを認めることができよう。これらは、コンピューター・ネットワークの一部としてまたは分散型計算環境において展開することができ、あらゆる種類の1つ以上のデーター・ストアに接続することができる。これに関して、本明細書において説明した種々の実施形態は、任意の数のメモリーまたは記憶ユニット、ならびに任意の数の記憶ユニットにまたがって実行する任意の数のアプリケーションおよびプロセスを有する任意のコンピューター・システムまたは環境において実現することができる。これは、リモートおよびローカル・ストレージを有するネットワーク環境または分散型計算環境において展開されるサーバー・コンピューおよびクライアント・コンピューターを含むが、これに限定されるのではない。
[0072] 分散型計算は、計算デバイスおよびシステム間における通信交換によって、コンピューター・リソースおよびサービスの共有を図る。これらのリソースおよびサービスは、情報の交換、キャッシュ・ストレージ、およびファイルのような、オブジェクトのディスク・ストレージを含む。また、これらのリソースおよびサービスは、負荷均衡のための多数の処理ユニットに跨がる処理パワーの共有、リソースの拡大、処理の特殊化等も含む。分散型計算は、ネットワーク接続を利用し、クライアントがそれらの集合的パワーを利用し企業(enterprise)全体が恩恵を得ることを可能にする。これに関して、種々のデバイスがアプリケーション、オブジェクト、またはリソースを有することができ、本開示の種々の実施形態について説明したようなリソース管理メカニズムに関与することができる。
[0073] 図7は、ネットワーク接続または分散型計算環境例の模式図を示す。この分散型計算環境は、計算オブジェクト710、712等、および計算オブジェクトまたはデバイス720、722、724、726、728等を備える。計算オブジェクトまたはデバイスは、アプリケーション例730、732、734、736、738によって表されるように、プログラム、方法、データー・ストア、プログラマブル・ロジック等を含むことができる。尚、計算オブジェクト710,712等、および計算オブジェクトまたはデバイス720、722、724、726、728等が、パーソナル・ディジタル・アシスタント(PDA)、オーディオ/ビデオ・デバイス、移動体電話機、MP3プレーヤー、パーソナル・コンピューター、ラップトップ等のような、異なるデバイスを備えてもよいことは認めることができよう。
[0074] 各計算オブジェクト710、712等、および計算オブジェクトまたはデバイス720、722、724、726、728等は、1つ以上の他の計算オブジェクト710、712等および計算オブジェクトまたはデバイス720、722、724、726、728等と、通信ネットワーク740を通じて直接または間接的に通信することができる。図7では1つのエレメントとして図示されているが、通信ネットワーク740は、図7のシステムにサービスを提供する他の計算オブジェクトおよび計算デバイスを備えてもよく、および/または図示されていない多数の相互接続されたネットワークを表すこともできる。各計算オブジェクト710、712等、あるいは計算オブジェクトまたはデバイス720、722、724、726、728等は、アプリケーション730、732、734、736、738というようなアプリケーションを収容することもできる。このアプリケーションは、本開示の種々の実施形態にしたがって設けられるアプリケーションとの通信、あるいはその実現に適したAPI、あるいは他のオブジェクト、ソフトウェア、ファームウェア、および/またはハードウェアを利用することもできる。
[0075] 分散型計算環境をサポートする種々のシステム、コンポーネント、およびネットワーク構成がある。例えば、有線システムまたはワイヤレス・システムによって、ローカル・ネットワークまたは広く分散されたネットワークによって、計算システムを互いに接続することができる。現在、多くのネットワークがインターネットに接続されており、広域分散型計算のためのインフラストラクチャーを提供し、多くの異なるネットワークを包含するが、種々の実施形態において説明したようなシステムに付随する通信例には、あらゆるネットワーク・インフラストラクチャーを使用することができる。
[0076] つまり、クライアント/サーバー、ピア・ツー・ピア、または混成アーキテクチャーというような、ネットワーク・トポロジーおよびネットワーク・インフラストラクチャーのホストを利用することができる。「クライアント」とは、それが関係しない他のクラスまたはグループのサービスを使用するクラスまたはグループのメンバーのことである。クライアントは、他のプログラムまたはプロセスによって提供されるサービスを要求するプロセス、例えば、大まかに1組の命令またはタスクとすることができる。クライアント・プロセスは、他のプログラムまたはサービス自体についての作業詳細を全く「知る」必要なく、要求したサービスを利用する。
[0077] クライアント/サーバー・アーキテクチャーでは、特にネットワーク接続システムでは、クライアントは、通常、他のコンピューター、例えば、サーバーによって提供される共有ネットワーク・リソースにアクセスするコンピューターである。図7の例示では、非限定的な例として、計算オブジェクトまたはデバイス720、722、724、726、728等は、クライアントと考えることができ、計算オブジェクト710、712等は、サーバーと考えることができる。サーバーとして機能する計算オブジェクト710、712等は、クライアント計算オブジェクトまたはデバイス720、722、724、726、728等からのデーター受信、データーの格納、データーの処理、クライアント計算オブジェクトまたはデバイス720、722、724、726、728等へのデーター送信というような、データー・サービスを提供するが、いずれのコンピューターであっても、状況に応じて、クライアント、サーバー、または双方と見なすことができる。
[0078] サーバーは、通例、インターネットまたはワイヤレス・ネットワーク・インフラストラクチャーのような、リモートまたはローカル・ネットワークを通じてアクセス可能なリモート・コンピューター・システムである。クライアント・プロセスは、第1コンピューター・システムにおいてアクティブであることができ、サーバー・プロセスは第2コンピューター・システムにおいてアクティブになることができ、通信媒体を介して互いに通信し、こうして分散型機能を設け、多数のクライアントがサーバーの情報収集能力を利用することを可能にする。
[0079] 通信ネットワーク740またはバスがインターネットであるネットワーク環境では、例えば、計算オブジェクト710、712等はウェブ・サーバーであることができ、このウェブ・サーバーによって、他の計算オブジェクトまたはデバイス720、722、724、726、728等は、ハイパーテキスト・トランスファ・プロトコル(HTTP)のような、多数の既知のプロトコルの内いずれかにしたがって通信する。サーバーとして機能する計算オブジェクト710、712等が、クライアントとして、例えば、計算オブジェクトまたはデバイス720、722、724、726、728等として役割を果たすこともできる。これは分散型計算環境の特徴と言える。
計算デバイス例
[0080] 前述のように、本明細書において説明した技法はいずれのデバイスにも応用できるという利点がある。したがって、全ての種類のハンドヘルド、携帯用、およびその他の計算デバイスならびに計算オブジェクトが、種々の実施形態に関連する使用に想定されることは言うまでもない。このことから、図8において以下に説明する次の汎用リモート・コンピューターは、計算デバイスの一例に過ぎない。
[0081] 実施形態は、デバイスまたはオブジェクトのためのサービスの開発者による使用のために、部分的にオペレーティング・システムを通じて実現することができ、および/または本明細書において説明した種々の実施形態の1つ以上の機能的態様を実行するように動作するアプリケーション・ソフトウェア内に含むことができる。ソフトウェアは、クライアント・ワークステーション、サーバー、または他のデバイスというような、1つ以上のコンピューターによって実行される、プログラム・モジュールのような、コンピューター実行可能命令という一般的なコンテキストで説明することができる。コンピューター・システムがデーターを伝達するために用いることができる種々の構成およびプロトコルを有し、したがって特定の構成もプロトコルも限定とは見なされないことは、当業者には認められよう。
[0082] したがって、図8は、本明細書において説明した実施形態の1つ以上の態様を実現することができる、適した計算システム環境の一例を示す。しかしながら、先に明確にしたように、計算システム環境800は適した計算環境の一例に過ぎず、使用範囲や機能に関して何ら限定を示唆する意図はない。加えて、計算システム環境800は、例示の計算システム環境800に示されるコンポーネントのいずれの1つまたはその組み合わせに関しても、何らかの依存性を有するように解釈されることは意図していない。
[0083] 図8を参照すると、1つ以上の実施形態を実現するリモート・デバイスの一例は、コンピューター810の形態とした汎用計算デバイスを含む。コンピューター810のコンポーネントは、処理ユニット820、システム・メモリー830、およびシステム・バス822を含むことができるが、これらに限定されるのではない。システム・バス822は、システム・メモリーから処理ユニット820までを含む種々のシステム・コンポーネントを結合する。
[0084] コンピューター810は、通例、種々のコンピューター読み取り可能媒体を含み、コンピューター810によってアクセスすることができる入手可能な媒体であればいずれでも可能である。システム・メモリー830は、リード・オンリー・メモリー(ROM)および/またはランダム・アクセス・メモリー(RAM)というような、揮発性および/または不揮発性メモリーの形態としたコンピューター記憶媒体を含むことができる。一例として、そして限定ではなく、システム・メモリー830は、オペレーティング・システム、アプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データーを含むことができる。
[0085] ユーザーは、入力デバイス840を通じて、コマンドおよび情報をコンピューター810に入力することができる。また、モニターまたは他のタイプのディスプレイ・デバイスも、出力インターフェース850のようなインターフェースを通じて、システム・バス822に接続される。モニターに加えて、コンピューターは、スピーカーおよびプリンターのような他の周辺出力デバイスも含むことができ、これらは出力インターフェース850を通じて接続することができる。
[0086] コンピューター810は、リモート・コンピューター870のような、1つ以上の他のリモート・コンピューターへの論理接続を用いて、ネットワーク接続または分散型環境において動作することもできる。リモート・コンピューター870は、パーソナル・コンピューター、サーバー、ルーター、ネットワークPC、ピア・デバイスまたは他の共通ネットワーク・ノード、あるいは他のいずれのメディア消費または送信デバイスであってもよく、コンピューター810に関して以上で説明したエレメントのいずれかまたは全てを含むことができる。図8に示す論理接続は、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)のようなネットワーク872を含むが、他のネットワーク/バスを含んでもよい。このようなネットワーク接続環境は、家庭、事務所、企業規模のコンピューター・ネットワーク、イントラネット、およびインターネットでは極普通である。
[0087] 前述のように、種々の計算デバイスおよびネットワーク・アーキテクチャーに関連付けて実施形態例について説明したが、基礎となる概念は、リソース使用の効率を高めることが望ましいネットワーク・システムおよび計算デバイスまたはシステムであればいずれにでも応用することができる。
[0088] また、アプリケーションおよびサービスが本明細書において提供された技法を利用することを可能にする同じ機能または同様の機能、例えば、しかるべきAPI、ツール・キット、ドライバー・コード、オペレーティング・システム、制御手段、単独のまたはダウンロード可能なソフトウェア・オブジェクト等を実現するには多数の方法がある。つまり、本明細書における実施形態は、API(または他のソフトウェア・オブジェクト)の観点から、更には本明細書において説明した1つ以上の実施形態を実現するソフトウェアまたはハードウェア・オブジェクトの観点からも考えられる。このため、本明細書において説明した種々の実施形態は、全体的にハードウェア、部分的にハードウェアであり部分的にソフトウェア、およびソフトウェアである態様を有することができる。
[0089] 「一例」(exemplary)という用語は、本明細書では、例(example)、実例(instance)、または例示(illustration)としての役割を果たすとことを意味するために用いられる。疑惑回避のために、本明細書において開示する主題は、このような例によって限定されることはない。加えて、本明細書において「一例」として説明されたいずれの態様または設計も、必ずしも、他の態様または設計に対して優先されるまたは有利であると解釈されるとは限らず、当業者には知られている同等の構造および技法例を除外することを意味するのではない。更に、「含む」(includes)、「有する」(has)、「収容する」(contains)という用語、およびその他の同様の単語が使用される限りにおいて、疑惑回避のために、このような用語は、「含む」(comprising)が請求項において使用されるときに、いずれの追加のエレメントまたは他のエレメントも排除しない、開いた移行単語(transition word)として解釈するのと同様に、内包的である(inclusive)ことを意図するものとする。
[0090] 前述のように、本明細書において説明した種々の技法は、ハードウェアまたはソフトウェアで実現することができ、あるいはしかるべきときには、双方の組み合わせで実現することもできる。本明細書において用いる場合、「コンポーネント」、「モジュール」、「システム」等の用語は、同様に、コンピューター関係エンティティに言及することを意図しており、ハードウェア、またはハードウェアおよびソフトウェアの組み合わせ、またはソフトウェア、または実行中のソフトウェアのいずれでもよい。例えば、コンポーネントは、プロセッサー上で実行するプロセス、プロセッサー、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、および/またはコンピューターであってもよいが、これらに限定されるのではない。一例として、コンピューター上で実行するアプリケーション、およびそのコンピューターの双方がコンポーネントであることができる。1つ以上のコンポーネントがプロセス内に存在することができ、および/または実行のスレッドおよびコンポーネントが1つコンピューター上に局在(localize)してもよく、および/または2つ以上のコンポーネント間で分散されてもよい。
[0091] 前述のシステムは、様々なコンポーネント間における相互作用に関して説明した。尚、このようなシステムおよびコンポーネントは、それらのコンポーネントまたは指定されたサブコンポーネント、指定されたコンポーネントまたはサブコンポーネントの一部、および/または追加のコンポーネントを、以上のことの種々の置換(permutation)および組み合わせにしたがって、含むことができることを認めることができよう。また、サブコンポーネントは、親コンポーネント内に含まれる代わりに(階層的)、他のコンポーネントに通信可能に結合されるコンポーネントとして実現することもできる。加えて、1つ以上のコンポーネントを組み合わせて1つのコンポーネントにして、総合的な機能を設けること、または数個の別個のサブコンポーネントに分割することもでき、そして統合機能を得るためにこのようなサブコンポーネントに通信可能に結合する、管理レイヤーのようないずれの1つ以上の中間レイヤーも設けられることも特筆することができる。本明細書において説明したいずれのコンポーネントも、本明細書では具体的に説明しなかったが当業者には一般に知られている1つ以上の他のコンポーネントと相互作用することもできる。
[0092] 本明細書において説明したシステム例に関して、説明した主題にしたがって実現することができる方法は、種々の図のフローチャートを参照しても認める(appreciate)こともできる。説明を簡素化するために、これらの方法を一連のブロックで示し説明したが、種々の実施形態はそのブロックの順序には限定されないことは言うまでもないことであり認められてしかるべきである。何故なら、一部のブロックは、本明細書において図示および説明したものとは異なる順序で出て来ても、および/または他のブロックと同時に出てきてもよいからである。連続しない、または分岐するフローがフローチャートによって示される場合、同じまたは同様の結果が得られる種々の他の分岐、フロー・パス、およびブロックの順序も実現できることは、認めることができよう。更に、図示したブロックの一部は、以下で説明する方法を実現するときには任意である。
結論
[0093] 本発明には種々の変更および代替構造が可能であるが、その内ある種の例示実施形態を図面に示し、以上で詳細に説明した。しかしながら、開示した具体的な形態に本発明を限定する意図はなく、逆に、本発明の主旨および範囲に該当する全ての変更、代替構造、および均等物を内包することを意図していることは理解されてしかるべきである。
[0094] 本明細書において説明した種々の実施形態に加えて、本発明から逸脱することなく、他の同様の実施形態も用いることができ、または対応する実施形態(1つまたは複数)の同じ機能または同等の機能を実行するために、説明した実施形態(1つまたは複数)に変更および追加を行うことができることは言うまでもない。その上更に、多数の処理チップまたは多数のデバイスが、本明細書において説明した1つ以上の機能の実行を共有することができ、そして同様に、複数のデバイスに跨がって格納を実行することができる。したがって、本発明はいずれの1つの実施形態にも限定されず、逆に、添付した請求項にしたがう広さ、主旨、および範囲で解釈することとする。

Claims (16)

  1. 計算環境において、少なくとも1つのプロセッサー上で少なくとも部分的に実行される方法であって、少なくとも1つの非重複排除部分を有する部分的に重複排除されたファイルを完全重複排除ファイルに最適化し直すステップを含み、前記部分的に重複排除されたファイルは更に、チャンク・ストアに維持され前記部分的に重複排除されたファイルに関連付けられたメタデーターによって参照される少なくとも1つの重複排除部分を有し、前記最適化し直すステップは、前記ファイルの各非重複排除部分を処理して少なくとも1つのチャンクを決定するステップと、前記少なくとも1つのチャンクをチャンク・ストアにコミットするステップと、前記チャンク・ストアにコミットされた各チャンクへの参照を含むように、前記ファイルに関連付けられたメタデーターを変更するステップと、を含む、方法。
  2. 前記チャンク・ストアから重複排除部分をリコールするステップと、前記リコールされた重複排除部分によって分離された前記ファイルの2つの非重複排除部分を、各非重複排除部分および前記重複排除部分を含む1つの非重複排除部分に組み合わせ、その後前記1つの非重複排除部分を処理するステップと、を更に含む、請求項1に記載の方法。
  3. 少なくとも1つの非重複排除部分を処理するステップは、前記非重複排除部分に関連付けられた開始ファイル・オフセットよりも前またはこれに等しいファイル・オフセットから開始するチャンクを定義するステップを含む、請求項1に記載の方法。
  4. 直前の重複排除部分に完全に含まれる最後のチャンクと整合させることによって前記ファイル・オフセットを決定するステップを更に含む、請求項3に記載の方法。
  5. 少なくとも1つの非重複排除部分を処理するステップは、前記非重複排除部分に関連付けられた終了ファイル・オフセットよりも後またはこれに等しいファイル・オフセットにおいて前記部分のチャンキングを終了することによってチャンクを定義するステップを含む、請求項1に記載の方法。
  6. 前記非重複排除部分の前記チャンキングが直前の重複排除部分に関連付けられた1つまたは複数の既存のチャンクと整合する場所に基づいて前記終了ファイル・オフセットを決定するステップを更に含む、請求項5に記載の方法。
  7. チャンキングは、前記非重複排除部分の終端を超えて継続し、更に、サイズに基づく閾値またはチャンク数に基づく閾値内でチャンク整合が得られるか否か判断するステップと、前記閾値内で整合が得られない場合、チャンキングを停止するステップと、を含む、請求項5に記載の方法。
  8. 前記ファイルを複数のサブファイル・パーティションに区分するステップを更に含み、前記ファイルを最適化し直すステップは、各サブファイル・パーティションを別々に処理するステップを含む、請求項1に記載の方法。
  9. 前記メタデーターを変更するステップは、少なくとも1つの最適化し直されたチャンクをコミットするステップと一緒に行われ、前記メタデーターを変更するステップは、重複排除部分のチャンク定義を前記少なくとも1つの最適化し直されたチャンクのチャンク定義と組み合わせるステップを含む、請求項1に記載の方法。
  10. 前記ファイルの最適化し直しを中断し、その後再開するステップを更に含む、請求項1に記載の方法。
  11. 中断する前に少なくとも1つのチャンクを前記チャンク・ストアにコミットするステップを更に含む、請求項10に記載の方法。
  12. 前記少なくとも1つのチャンクを前記チャンク・ストアにコミットして中断するステップは、1つまたは複数の判断基準に基づいて行われ、前記判断基準は、ファイル・サイズ、前記最適化し直しを実行する機械が非アイドルになったとき、または前記機械が停止されようとしているときを含む、請求項11に記載の方法。
  13. 前記ファイルのどの部分が重複排除されたかを追跡するメタデーターを維持するステップと、重複排除された前記ファイルの部分を切り捨てるステップと、を更に含む、請求項11に記載の方法。
  14. 前記チャンクは、チャンク・ストアにコミットされ、更に、前記ファイルを最適化し直した結果としてもはや参照されない少なくとも1つのチャンクを前記チャンク・ストアから解放する(garbage collecting)ステップを含む、請求項1に記載の方法。
  15. 少なくとも1つのプロセッサーと、前記少なくとも1つのプロセッサーに通信可能に結合され、少なくとも1つの非重複排除部分を有する部分的に重複排除されたファイルを完全重複排除ファイルに最適化し直すように構成された重複排除メカニズムを含むコンポーネントを含んだメモリーと、を備える、計算環境におけるシステムであって、前記部分的に重複排除されたファイルは更に、チャンク・ストアに維持され前記部分的に重複排除されたファイルに関連付けられたメタデーターによって参照される少なくとも1つの重複排除部分を有し、前記重複排除メカニズムは、各非重複排除部分を少なくとも1つの最適化し直されたチャンクにチャンキングし、少なくとも1つの最適化し直されたチャンクを前記チャンク・ストアにコミットし、前記チャンク・ストアにコミットされた前記ファイルの各チャンクを参照するように前記メタデーターを変更する、ように構成される、システム。
  16. コンピューター実行可能命令を有する1つまたは複数のコンピューター読み取り可能記憶媒体であって、前記コンピューター実行可能命令は、実行されると、
    部分的に重複排除されたファイルの非重複排除部分に対してチャンクを定義するステップであって、前記部分的に重複排除されたファイルは更に、チャンク・ストアに維持され前記部分的に重複排除されたファイルに関連付けられたメタデーターによって参照される少なくとも1つの重複排除部分を有する、ステップと、
    前記チャンクのチャンク境界を、前記ファイルの少なくとも1つの重複排除部分と関連付けられたファイル・オフセットと整合させるステップと、
    前記チャンク境界に基づいて、前記ファイルに関連付けられた前記メタデーターを更新するステップと、
    前記チャンクをチャンク・ストアにコミットするステップと、
    を含むステップを実施する、1つまたは複数のコンピューター読み取り可能記憶媒体。
JP2014528459A 2011-09-01 2012-08-23 部分的重複排除ファイルの最適化 Active JP6045590B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/223,484 2011-09-01
US13/223,484 US8990171B2 (en) 2011-09-01 2011-09-01 Optimization of a partially deduplicated file
PCT/US2012/051953 WO2013032825A2 (en) 2011-09-01 2012-08-23 Optimization of a partially deduplicated file

Publications (3)

Publication Number Publication Date
JP2014525631A JP2014525631A (ja) 2014-09-29
JP2014525631A5 JP2014525631A5 (ja) 2015-10-08
JP6045590B2 true JP6045590B2 (ja) 2016-12-14

Family

ID=47481989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014528459A Active JP6045590B2 (ja) 2011-09-01 2012-08-23 部分的重複排除ファイルの最適化

Country Status (6)

Country Link
US (1) US8990171B2 (ja)
EP (1) EP2751693A4 (ja)
JP (1) JP6045590B2 (ja)
KR (1) KR101988683B1 (ja)
CN (1) CN102880663B (ja)
WO (1) WO2013032825A2 (ja)

Families Citing this family (207)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US20130054919A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file
US8719234B2 (en) * 2012-01-25 2014-05-06 International Business Machines Corporation Handling rewrites in deduplication systems using data parsers
US8688652B2 (en) * 2012-04-05 2014-04-01 International Business Machines Corporation Increased in-line deduplication efficiency
GB201212878D0 (en) 2012-07-20 2012-09-05 Pike Justin Authentication method and system
CN103577278B (zh) * 2012-07-30 2016-12-21 国际商业机器公司 用于数据备份的方法和系统
US9262430B2 (en) * 2012-11-22 2016-02-16 Kaminario Technologies Ltd. Deduplication in a storage system
US9087086B1 (en) * 2012-12-18 2015-07-21 Emc Corporation Method and system for handling object boundaries of a data stream to optimize deduplication
US9063664B1 (en) 2012-12-18 2015-06-23 Emc Corporation Method and system for processing checksum of a data stream to optimize deduplication
US9244937B2 (en) 2013-03-15 2016-01-26 International Business Machines Corporation Efficient calculation of similarity search values and digest block boundaries for data deduplication
US9116941B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Reducing digest storage consumption by tracking similarity elements in a data deduplication system
US9678975B2 (en) * 2013-03-15 2017-06-13 International Business Machines Corporation Reducing digest storage consumption in a data deduplication system
US9547662B2 (en) 2013-03-15 2017-01-17 International Business Machines Corporation Digest retrieval based on similarity search in data deduplication
US11100051B1 (en) * 2013-03-15 2021-08-24 Comcast Cable Communications, Llc Management of content
US9342525B1 (en) * 2013-08-05 2016-05-17 Quantum Corporation Multi-deduplication
US10001993B2 (en) * 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
US9875162B1 (en) 2013-12-16 2018-01-23 Emc Corporation Recovering corrupt storage systems
US10255137B1 (en) 2013-12-16 2019-04-09 EMC IP Holding Company LLC Point-in-time recovery on deduplicated storage
US9720618B1 (en) 2013-12-16 2017-08-01 EMC IP Holding Company LLC Maintaining backup snapshots using continuous replication from multiple sources
US9846698B1 (en) 2013-12-16 2017-12-19 Emc Corporation Maintaining point-in-time granularity for backup snapshots
US10157014B1 (en) 2013-12-16 2018-12-18 EMC IP Holding Company LLC Maintaining backup snapshots on deduplicated storage using continuous replication
US10031690B1 (en) 2013-12-16 2018-07-24 EMC IP Holding Company LLC Initializing backup snapshots on deduplicated storage
US9424269B1 (en) * 2013-12-19 2016-08-23 Veritas Technologies Llc Systems and methods for deduplicating archive objects
US10761944B2 (en) * 2014-02-11 2020-09-01 Netapp, Inc. Techniques for deduplication of media content
US10229056B1 (en) 2014-03-25 2019-03-12 EMC IP Holding Company LLC Alignment fixing on a storage system during continuous data replication to deduplicated storage
US9772789B1 (en) * 2014-03-25 2017-09-26 EMC IP Holding Company LLC Alignment fixing on a data protection system during continuous data replication to deduplicated storage
US9588847B1 (en) 2014-03-25 2017-03-07 EMC IP Holding Company LLC Recovering corrupt virtual machine disks
US9389800B1 (en) 2014-03-27 2016-07-12 Emc Corporation Synthesizing virtual machine disk backups
CN105094688B (zh) * 2014-05-14 2019-11-22 卡米纳利欧技术有限公司 存储系统中的去重方法和系统以及计算机可读介质
EP2945050B1 (en) * 2014-05-14 2021-05-05 The Silk Technologies Ilc Ltd. Deduplication in a storage system
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9753955B2 (en) * 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US10061834B1 (en) * 2014-10-31 2018-08-28 Amazon Technologies, Inc. Incremental out-of-place updates for datasets in data stores
US9385749B1 (en) * 2015-03-06 2016-07-05 Oracle International Corporation Dynamic data compression selection
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US9684569B2 (en) * 2015-03-30 2017-06-20 Western Digital Technologies, Inc. Data deduplication using chunk files
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US9639274B2 (en) 2015-04-14 2017-05-02 Commvault Systems, Inc. Efficient deduplication database validation
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9665534B2 (en) * 2015-05-27 2017-05-30 Red Hat Israel, Ltd. Memory deduplication support for remote direct memory access (RDMA)
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
GB201520741D0 (en) 2015-05-27 2016-01-06 Mypinpad Ltd And Licentia Group Ltd Authentication methods and systems
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US9998788B1 (en) 2015-07-01 2018-06-12 Comcast Cable Communications, Llc Methods and systems for content storage
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
CN106982165A (zh) * 2016-01-15 2017-07-25 厦门雅迅网络股份有限公司 数据压缩方法及其系统
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9690701B1 (en) * 2016-09-27 2017-06-27 International Business Machines Corporation Probabilistic, parallel collection of memory no longer in use
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
CN106348135B (zh) * 2016-10-09 2018-09-11 德森克电梯(中国)有限公司 一种静音电梯
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10209892B2 (en) 2016-11-28 2019-02-19 Hewlett Packard Enterprise Development Lp Storage of format-aware filter format tracking states
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10614037B2 (en) 2017-03-31 2020-04-07 International Business Machines Corporation Optimized deduplicated object storage system
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10795859B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC Micro-service based deduplication
US10795860B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC WAN optimized micro-service based deduplication
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US10860212B1 (en) 2017-07-21 2020-12-08 EMC IP Holding Company LLC Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier
US10459633B1 (en) 2017-07-21 2019-10-29 EMC IP Holding Company LLC Method for efficient load balancing in virtual storage systems
US10949088B1 (en) 2017-07-21 2021-03-16 EMC IP Holding Company LLC Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system
US11113153B2 (en) 2017-07-27 2021-09-07 EMC IP Holding Company LLC Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US10481813B1 (en) 2017-07-28 2019-11-19 EMC IP Holding Company LLC Device and method for extending cache operational lifetime
US20190034282A1 (en) * 2017-07-28 2019-01-31 EMC IP Holding Company LLC Offline repopulation of cache
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10929382B1 (en) 2017-07-31 2021-02-23 EMC IP Holding Company LLC Method and system to verify integrity of a portion of replicated data
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
TWI689832B (zh) 2018-03-29 2020-04-01 威聯通科技股份有限公司 檔案去重處理系統及其檔案處理方法
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10922281B2 (en) * 2018-10-25 2021-02-16 EMC IP Holding Company LLC Application aware deduplication
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
CN109766317B (zh) * 2019-01-08 2022-04-22 浪潮电子信息产业股份有限公司 一种文件的删除方法、装置、设备及存储介质
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11341106B2 (en) 2019-07-19 2022-05-24 Commvault Systems, Inc. Deduplication system without reference counting
US11461229B2 (en) 2019-08-27 2022-10-04 Vmware, Inc. Efficient garbage collection of variable size chunking deduplication
US11372813B2 (en) 2019-08-27 2022-06-28 Vmware, Inc. Organize chunk store to preserve locality of hash values and reference counts for deduplication
US11775484B2 (en) 2019-08-27 2023-10-03 Vmware, Inc. Fast algorithm to find file system difference for deduplication
US11669495B2 (en) * 2019-08-27 2023-06-06 Vmware, Inc. Probabilistic algorithm to check whether a file is unique for deduplication
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
CN112749137B (zh) * 2019-10-31 2024-05-24 阿里巴巴集团控股有限公司 数据处理方法、装置、设备及存储介质
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11507273B2 (en) * 2020-09-29 2022-11-22 EMC IP Holding Company LLC Data reduction in block-based storage systems using content-based block alignment
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US20220237191A1 (en) * 2021-01-25 2022-07-28 Salesforce.Com, Inc. System and method for supporting very large data sets in databases
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US5813008A (en) 1996-07-12 1998-09-22 Microsoft Corporation Single instance storage of information
US5845297A (en) * 1997-06-30 1998-12-01 Intel Corporation Disk block relocation de-optimization detection methodology and applications
US6389433B1 (en) 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
US6477544B1 (en) 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
DE60131900T2 (de) 2000-10-26 2008-12-04 Flood, James C. jun., Portland Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten
US6993520B2 (en) 2002-01-15 2006-01-31 International Business Machines Corporation Integrated content management and block layout technique
US7203713B2 (en) 2002-09-20 2007-04-10 International Business Machines Corporation Method and apparatus for optimizing extent size
US6910106B2 (en) 2002-10-04 2005-06-21 Microsoft Corporation Methods and mechanisms for proactive memory management
US7222119B1 (en) 2003-02-14 2007-05-22 Google Inc. Namespace locking scheme
US7107419B1 (en) 2003-02-14 2006-09-12 Google Inc. Systems and methods for performing record append operations
US7246254B2 (en) 2003-07-16 2007-07-17 International Business Machines Corporation System and method for automatically and dynamically optimizing application data resources to meet business objectives
CN1846265A (zh) 2003-09-05 2006-10-11 皇家飞利浦电子股份有限公司 在存储介质中的虚拟链接
US7669032B2 (en) 2003-11-26 2010-02-23 Symantec Operating Corporation Host-based virtualization optimizations in storage environments employing off-host storage virtualization
US7340494B1 (en) 2004-03-12 2008-03-04 Sun Microsystems, Inc. Garbage-first garbage collection
US7624021B2 (en) 2004-07-02 2009-11-24 Apple Inc. Universal container for audio data
US7899796B1 (en) * 2004-11-23 2011-03-01 Andrew Borthwick Batch automated blocking and record matching
CN101228523B (zh) 2005-04-25 2012-06-06 网络装置公司 用于高速缓存网络文件系统的系统和方法
US7636801B1 (en) 2005-06-20 2009-12-22 Symantec Operating Corporation Coordination of quality of service in a multi-layer virtualized storage environment
US7401080B2 (en) 2005-08-17 2008-07-15 Microsoft Corporation Storage reports duplicate file detection
US7930508B2 (en) 2006-03-07 2011-04-19 Apple Inc. File systems for data processing systems
US7921077B2 (en) 2006-06-29 2011-04-05 Netapp, Inc. System and method for managing data deduplication of storage systems utilizing persistent consistency point images
CN100565512C (zh) * 2006-07-10 2009-12-02 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
US7640280B2 (en) 2006-10-31 2009-12-29 Rebit, Inc. System for automatically shadowing data and file directory structures that are recorded on a computer memory
US8117409B2 (en) 2006-11-22 2012-02-14 Hitachi, Ltd. Method and apparatus for backup and restore in a dynamic chunk allocation storage system
US8165177B2 (en) 2006-12-22 2012-04-24 Lenovo (Singapore) Pte. Ltd. System and method for hybrid virtual machine monitor file system operations
JP4951331B2 (ja) 2006-12-26 2012-06-13 株式会社日立製作所 ストレージシステム
US8825718B2 (en) 2006-12-28 2014-09-02 Oracle America, Inc. Methods and apparatus for marking objects for garbage collection in an object-based memory system
US7774389B2 (en) 2007-01-17 2010-08-10 Microsoft Corporation Optimized garbage collection techniques
US8677351B2 (en) 2007-03-29 2014-03-18 Vmware, Inc. System and method for delivering software update to guest software on virtual machines through a backdoor software communication pipe thereof
US8166012B2 (en) 2007-04-11 2012-04-24 Emc Corporation Cluster storage using subsegmenting
US7853759B2 (en) 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US7739312B2 (en) 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
US7685182B2 (en) 2007-05-08 2010-03-23 Microsoft Corporation Interleaved garbage collections
US7856437B2 (en) 2007-07-31 2010-12-21 Hewlett-Packard Development Company, L.P. Storing nodes representing respective chunks of files in a data store
US7870409B2 (en) 2007-09-26 2011-01-11 Hitachi, Ltd. Power efficient data storage with data de-duplication
JP5026213B2 (ja) 2007-09-28 2012-09-12 株式会社日立製作所 ストレージ装置及びデータ重複排除方法
GB2466580B (en) 2007-10-25 2013-01-02 Hewlett Packard Development Co Data processing apparatus and method of processing data
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US7882160B2 (en) 2007-10-30 2011-02-01 International Business Machines Corporation Low latency optimization for generational garbage collection
US20090204650A1 (en) 2007-11-15 2009-08-13 Attune Systems, Inc. File Deduplication using Copy-on-Write Storage Tiers
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
US7962452B2 (en) * 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US8300823B2 (en) 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
US8219534B2 (en) 2008-02-27 2012-07-10 Dell Products L.P. Multiple file compaction for network attached storage
US7814074B2 (en) 2008-03-14 2010-10-12 International Business Machines Corporation Method and system for assuring integrity of deduplicated data
US7519635B1 (en) 2008-03-31 2009-04-14 International Business Machines Corporation Method of and system for adaptive selection of a deduplication chunking technique
US8751561B2 (en) 2008-04-08 2014-06-10 Roderick B. Wideman Methods and systems for improved throughput performance in a distributed data de-duplication environment
US7567188B1 (en) 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
KR101553532B1 (ko) 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치
US8515909B2 (en) 2008-04-29 2013-08-20 International Business Machines Corporation Enhanced method and system for assuring integrity of deduplicated data
US8645333B2 (en) 2008-05-29 2014-02-04 International Business Machines Corporation Method and apparatus to minimize metadata in de-duplication
US8108353B2 (en) 2008-06-11 2012-01-31 International Business Machines Corporation Method and apparatus for block size optimization in de-duplication
US8788466B2 (en) 2008-08-05 2014-07-22 International Business Machines Corporation Efficient transfer of deduplicated data
US8086799B2 (en) * 2008-08-12 2011-12-27 Netapp, Inc. Scalable deduplication of stored data
US10642794B2 (en) 2008-09-11 2020-05-05 Vmware, Inc. Computer storage deduplication
US20100070544A1 (en) 2008-09-12 2010-03-18 Microsoft Corporation Virtual block-level storage over a file system
US8290915B2 (en) 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
US20100082700A1 (en) 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
US8301672B2 (en) 2008-09-22 2012-10-30 Advanced Micro Devices, Inc. GPU assisted garbage collection
US8452731B2 (en) 2008-09-25 2013-05-28 Quest Software, Inc. Remote backup and restore
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8495032B2 (en) 2008-10-01 2013-07-23 International Business Machines Corporation Policy based sharing of redundant data across storage pools in a deduplicating system
US20100088296A1 (en) 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
US8694466B2 (en) 2008-10-07 2014-04-08 Dell Products L.P. Object deduplication and application aware snapshots
WO2010045262A1 (en) 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
US8131687B2 (en) 2008-11-13 2012-03-06 International Business Machines Corporation File system with internal deduplication and management of data blocks
US8447740B1 (en) 2008-11-14 2013-05-21 Emc Corporation Stream locality delta compression
US8589455B2 (en) 2008-12-18 2013-11-19 Copiun, Inc. Methods and apparatus for content-aware data partitioning
US8161255B2 (en) 2009-01-06 2012-04-17 International Business Machines Corporation Optimized simultaneous storing of data into deduplicated and non-deduplicated storage pools
US8762642B2 (en) * 2009-01-30 2014-06-24 Twinstrata Inc System and method for secure and reliable multi-cloud data replication
US20100199065A1 (en) * 2009-02-04 2010-08-05 Hitachi, Ltd. Methods and apparatus for performing efficient data deduplication by metadata grouping
WO2010103569A1 (en) 2009-03-11 2010-09-16 Hitachi, Ltd. Storage system and control method for the same, and program
US8346736B2 (en) 2009-03-16 2013-01-01 International Business Machines Corporation Apparatus and method to deduplicate data
WO2010111312A2 (en) * 2009-03-23 2010-09-30 Riverbed Technology, Inc. Virtualized data storage system architecture
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8401181B2 (en) 2009-06-09 2013-03-19 Emc Corporation Segment deduplication system with encryption of segments
US8612439B2 (en) 2009-06-30 2013-12-17 Commvault Systems, Inc. Performing data storage operations in a cloud storage environment, including searching, encryption and indexing
US9058298B2 (en) 2009-07-16 2015-06-16 International Business Machines Corporation Integrated approach for deduplicating data in a distributed environment that involves a source and a target
GB2472072B (en) * 2009-07-24 2013-10-16 Hewlett Packard Development Co Deduplication of encoded data
US8453257B2 (en) 2009-08-14 2013-05-28 International Business Machines Corporation Approach for securing distributed deduplication software
JP4960417B2 (ja) * 2009-09-15 2012-06-27 株式会社東芝 可変長のデータ断片の開始・終了オフセットを決定する方法及び装置
US8510275B2 (en) 2009-09-21 2013-08-13 Dell Products L.P. File aware block level deduplication
US8321648B2 (en) * 2009-10-26 2012-11-27 Netapp, Inc Use of similarity hash to route data for improved deduplication in a storage server cluster
US8423520B2 (en) 2009-11-23 2013-04-16 Dell Products L.P. Methods and apparatus for efficient compression and deduplication
US8554743B2 (en) * 2009-12-08 2013-10-08 International Business Machines Corporation Optimization of a computing environment in which data management operations are performed
US9401967B2 (en) * 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8612699B2 (en) 2010-06-25 2013-12-17 International Business Machines Corporation Deduplication in a hybrid storage environment
CA2810991C (en) * 2010-09-09 2016-06-21 Nec Corporation Storage system
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US10216759B2 (en) 2010-11-22 2019-02-26 Microsoft Technology Licensing, Llc Heterogeneous file optimization
US8959293B2 (en) 2010-12-14 2015-02-17 Microsoft Corporation Data deduplication in a virtualization environment
US8380681B2 (en) 2010-12-16 2013-02-19 Microsoft Corporation Extensible pipeline for data deduplication
US8645335B2 (en) 2010-12-16 2014-02-04 Microsoft Corporation Partial recall of deduplicated files
US20120159098A1 (en) 2010-12-17 2012-06-21 Microsoft Corporation Garbage collection and hotspots relief for a data deduplication chunk store
US9823981B2 (en) 2011-03-11 2017-11-21 Microsoft Technology Licensing, Llc Backup and restore strategies for data deduplication
US20130054919A1 (en) * 2011-08-30 2013-02-28 International Business Machines Corporation Methods and physical computer storage media for transferring de-duplicated data organized in virtual volumes to a target set of physical media
US8990171B2 (en) 2011-09-01 2015-03-24 Microsoft Corporation Optimization of a partially deduplicated file

Also Published As

Publication number Publication date
US8990171B2 (en) 2015-03-24
EP2751693A4 (en) 2016-06-01
KR20140068919A (ko) 2014-06-09
CN102880663A (zh) 2013-01-16
CN102880663B (zh) 2016-06-01
KR101988683B1 (ko) 2019-06-12
US20130060739A1 (en) 2013-03-07
WO2013032825A2 (en) 2013-03-07
WO2013032825A3 (en) 2013-04-25
JP2014525631A (ja) 2014-09-29
EP2751693A2 (en) 2014-07-09

Similar Documents

Publication Publication Date Title
JP6045590B2 (ja) 部分的重複排除ファイルの最適化
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
US9529551B2 (en) Systems and methods for instantaneous cloning
US8380681B2 (en) Extensible pipeline for data deduplication
US8694469B2 (en) Cloud synthetic backups
US8645335B2 (en) Partial recall of deduplicated files
JP6129416B2 (ja) ファイル・システムの仮想化のための方法および装置、ファイル・システムの仮想化のためのデータ・ストレージ・システム、ならびにデータ・ストレージ・システム内で使用するためのファイル・サーバ
EP3036616B1 (en) Management of extent based metadata with dense tree structures within a distributed storage architecture
US8484161B2 (en) Live file system migration
US9824092B2 (en) File storage system including tiers
US9274716B2 (en) Systems and methods for hierarchical reference counting via sibling trees
JP2021508879A (ja) 追加専用記憶デバイスを使用するデータベース管理のためのシステム及び方法
WO2017079181A1 (en) Object storage system with a distributed namespace and snapshot and cloning features
US10108644B1 (en) Method for minimizing storage requirements on fast/expensive arrays for data mobility and migration
US10437682B1 (en) Efficient resource utilization for cross-site deduplication
JP2015534684A (ja) ファイルストレージシステムにおけるチェックポイントを用いて重複排除を管理するシステムおよび方法
US10229127B1 (en) Method and system for locality based cache flushing for file system namespace in a deduplicating storage system
US9690809B1 (en) Dynamic parallel save streams
US20170124107A1 (en) Data deduplication storage system and process
US9626332B1 (en) Restore aware cache in edge device

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150821

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160909

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: 20161017

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161115

R150 Certificate of patent or registration of utility model

Ref document number: 6045590

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