JP5642198B2 - 重複排除データシステムから非参照データセグメントを除去するためのシステムおよび方法 - Google Patents

重複排除データシステムから非参照データセグメントを除去するためのシステムおよび方法 Download PDF

Info

Publication number
JP5642198B2
JP5642198B2 JP2012547226A JP2012547226A JP5642198B2 JP 5642198 B2 JP5642198 B2 JP 5642198B2 JP 2012547226 A JP2012547226 A JP 2012547226A JP 2012547226 A JP2012547226 A JP 2012547226A JP 5642198 B2 JP5642198 B2 JP 5642198B2
Authority
JP
Japan
Prior art keywords
data
data object
deduplication
object group
referenced
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.)
Expired - Fee Related
Application number
JP2012547226A
Other languages
English (en)
Other versions
JP2013516679A (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.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of JP2013516679A publication Critical patent/JP2013516679A/ja
Application granted granted Critical
Publication of JP5642198B2 publication Critical patent/JP5642198B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

重複排除データシステムは、冗長なデータパターンを認識することにより、ファイルを記憶するために必要な空き容量をしばしば減らすことができる。例えば重複排除データシステムは、ファイルをデータセグメントに分割し、固有のデータセグメントだけを記憶することにより、類似ファイルを記憶するために必要な空き容量を減らすことができる。この例では、それぞれの重複排除ファイルは、単純にそのファイルを構成するデータセグメントの一覧からなることができる。
従来の重複排除データシステムはファイルを記憶するために必要な空き容量を減らすことができるが、重複排除データを管理するためにそのような従来型システムが使用するメカニズムは、不所望の制限を示す場合がある。例えば、2つ以上のファイルが任意の所与のデータセグメントを参照する場合があるので、あるファイルを削除するとき、そのファイルを構成するデータセグメントを単純に全て除去することはできない。データセグメントを安全に削除するために、重複排除データシステムは参照データセグメントと非参照データセグメントとを区別しなければならない。
一部の例では従来の重複排除データシステムは、データセグメントを早まって除去しないことを確実にするために相互参照システムを使用することができる。例えば、従来の重複排除データシステム内の各ファイルは、そのファイルを構成するデータセグメントの一覧を含むことができる。同様に、重複排除データシステム内の各データセグメントは、そのデータセグメントを参照するシステム内の各ファイルを特定するリストを保持することができる。この例では、重複排除データシステムは、ファイルおよびデータセグメントの両方が保持するリストを使用して、システムから除去することができる非参照データセグメント(すなわち重複排除データシステム内のファイルのどれもがもはや参照しないデータセグメント)を特定することができる。
不都合なことに、多くの従来型の重複排除データシステムが使用する相互参照システムは、いくつかの不具合を抱える。例えば、従来の重複排除データシステム内のファイルが更新されるとき、システムはそのファイルが保持する参照リストと、そのファイルが参照する各データセグメントが保持する参照リストとの両方を更新しなければならないことがある。2つの参照リストを作成して更新するプロセスは、時間がかかるだけでなく、リソースを集約的に用いる可能性がある。
他の例では、従来の重複排除データシステムは、データセグメントを早まって除去しないことを確実にするためにマークアンドスイープシステムを使用することができる。例えば重複排除データシステムは、各データセグメントを検査してデータセグメントが重複排除データシステム内の任意のファイルによって参照されているかどうかを調べることができる。この例では、マークアンドスイープシステムがそのデータセグメントを含むファイルを見つけると、マークアンドスイープシステムは、そのデータセグメントを参照されているものとして印付けすることができる。次いで、マークアンドスイープシステムは印付けされていないデータセグメントについて重複排除データシステムをスイープし、印付けされていないデータセグメントを削除することができる。不都合なことに、各データセグメントを検査する力ずくのアプローチは、やはり時間がかかり、リソースを集約的に用いる可能性がある。したがって本開示は、重複排除データシステム内の非参照データセグメントを効率的に印付けし、スイープする必要性を確認する。
以下でより詳細に説明するように、本開示は一般に、データをグループに分割し、変更され、その結果非参照データセグメントを含み得るグループにマークアンドスイープ操作を集中させることにより、重複排除データシステムから非参照データセグメントを効率的に除去するためのシステムおよび方法に関する。一例では、本明細書に記載する様々なシステムのうちの1つまたは複数は、1)複数のデータオブジェクトを含む重複排除データシステムを特定し、2)その重複排除データシステム内のデータオブジェクトを複数のデータオブジェクトグループに分割し、3)重複排除データシステム内のデータオブジェクトによって参照されていなかったデータセグメントを除去した前のガーベッジコレクション操作の後に変更された、少なくとも1つのデータオブジェクトグループをそれらのデータオブジェクトグループ内で特定し、4)変更されたデータオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含む、重複排除データシステム内の少なくとも1つのコンテナを特定し、特定したコンテナごとに、5)重複排除データシステム内のデータオブジェクトによって参照されていないデータセグメントを特定したコンテナから除去することによりこの作業を達成することができる。
重複排除データシステム内のデータオブジェクトをデータオブジェクトグループに分割することは、任意の適切な方法または基準を含むことができる。一部の例では、データオブジェクトをデータオブジェクトグループに分割することは、そのデータオブジェクトを含む複数のバックアップを特定し、それらのバックアップの1つまたは複数を各データグループに追加することを含むことができる。
前のガーベッジコレクション操作の後に変更された1つまたは複数のデータオブジェクトグループを特定することは、データオブジェクトグループに追加されるデータオブジェクト、データオブジェクトグループから除去されるデータオブジェクト、および/またはデータオブジェクトグループ内で変更されたデータオブジェクトを含む、様々な変更を特定することを含むことができる。変更されたデータオブジェクトグループを特定することは、変更がないかどうか複数のデータオブジェクトグループをモニタすることなど、様々なステップを含むことができる。
一部の例では、特定したコンテナから非参照データセグメントを除去することは、非参照データセグメントがないかどうか、特定したコンテナだけを検査することを含むことができる。これらの例では、非参照データセグメントがないかどうか特定したコンテナだけを検査することは、少なくとも1つのデータセグメントを潜在的に非参照化した変更がないかどうか、特定したコンテナだけを検査することを伴うことができる。
特定したコンテナから非参照データセグメントを除去することは、任意の適切な方法で行うことができる。例えば、特定したコンテナから非参照データセグメントを除去することは、変更されたデータオブジェクトグループごとに、特定したコンテナ内の各非参照データセグメントを印付けし、特定したコンテナから印付けされていないデータセグメントを除去することを含むことができる。
一部の例では、変更されたデータグループごとに、特定したコンテナ内の各参照データセグメントを印付けすることは、変更されたデータオブジェクトグループごとに、特定したコンテナ内の参照データセグメントのマップを作成することを含むことができる。ある例では、変更されたデータグループごとに、特定したコンテナ内の各参照データセグメントを印付けすることは、特定したコンテナ内の参照データセグメントの各マップを、特定したコンテナに関する包括的なマップにマージすることをさらに含むことができる。
一部の実施形態では、特定したコンテナから印付けされていないデータセグメントを除去することは、少なくとも1つの変更されたデータオブジェクトグループが、特定したコンテナ内の影響を受けるデータセグメントを潜在的に非参照化する変更を経験したと判定することを含むことができる。影響を受けるデータセグメントを潜在的に非参照化する変更には、変更されるデータオブジェクトグループからデータオブジェクトが削除されること、および/または変更されるデータオブジェクトグループ内のデータオブジェクトが修正されることなど、様々な変更が含まれ得る。
以下に説明するように、非参照データセグメントをもたらし得る変更を経たデータオブジェクトグループからのデータセグメントを含むコンテナにマークアンドスイープ手続きを集中させることにより、本明細書に記載するシステムおよび方法は、非参照データセグメントを捜し出し、削除するために必要なコンピューティングリソースの量を効果的に減らすことができる。
本明細書に記載する全般的な原理に従い、上述の実施形態のうちの任意の実施形態の諸特徴を互いに組み合わせて使用することができる。以下の詳細な説明を添付図面および特許請求の範囲と併せて読むとき、これらのおよび他の実施形態、特徴、および利点がより完全に理解される。
添付図面はいくつかの例示的実施形態を示し、本明細書の一部である。以下の説明とともに、これらの図面は本開示の様々な原理を例証し説明する。
図面全体を通して、同一の参照文字および説明は、必ずしも全く同じとは限らないが同様の要素を示す。本明細書に記載する例示的実施形態は様々な修正および代替形態を許すが、特定の実施形態を例として図面に示し、本明細書で詳しく説明する。ただし、本明細書に記載する例示的実施形態が、開示する特定の形態に限定されることは意図しない。むしろ、本開示は特許請求の範囲に含まれるあらゆる修正形態、等価物、および代替物を範囲に含む。
重複排除データシステムから非参照データセグメントを除去するための例示的システムのブロック図を示す。 重複排除データシステムから非参照データセグメントを除去するための例示的システムのブロック図を示す。 重複排除データシステムから非参照データセグメントを除去するための例示的方法の流れ図を示す。 例示的な重複排除データシステムのブロック図を示す。 例示的な重複排除データシステムのブロック図を示す。 例示的な重複排除データシステムのブロック図を示す。 本明細書に記載しかつ/または図示する実施形態の1つもしくは複数を実装することができる、例示的コンピューティングシステムのブロック図を示す。 本明細書に記載しかつ/または図示する実施形態の1つもしくは複数を実装することができる、例示的コンピューティングネットワークのブロック図を示す。
以下でより詳細に説明するように、本開示は一般に、重複排除データシステムから非参照データセグメントを除去するためのシステムおよび方法に関する。本明細書で使用するとき、表現「重複排除データシステム」は、各データインスタンスをことによると複数回参照する、データのインスタンス(例えばデータセグメント)を1つだけ記憶することによって冗長データを減らす記憶システムを一般に指す。重複排除データシステムの例には、SYMANTECのNETBACKUP PUREDISKが含まれ得る。以下でより詳細に説明するように、単一のデータインスタンスは、重複排除データシステム内の単一のデータオブジェクト(例えばファイル)、または複数のデータオブジェクトによって参照され得る。
図1〜図2を参照して、以下の内容は、重複排除データシステムから非参照データセグメントを除去するための例示的システムの詳細な説明を提供する。図3〜図6に関連して、コンピュータによって実施される対応する方法についての詳細な説明も行う。さらに、図7および図8のそれぞれに関連して、本明細書に記載する実施形態の1つまたは複数を実装することができる例示的コンピューティングシステムおよびネットワークアーキテクチャについての詳細な説明を行う。
図1は、重複排除データシステムから非参照データセグメントを除去するための例示的システム100のブロック図である。この図に示すように、例示的システム100は、1つまたは複数のタスクを実行するための1つもしくは複数のモジュール102を含むことができる。例えば、および以下でより詳細に説明するように、例示的システム100は、複数のデータオブジェクトを含む重複排除データシステムを特定するようにプログラムされる特定モジュール104を含むことができる。例示的システム100は、重複排除データシステム内のデータオブジェクトを複数のデータオブジェクトグループに分割するようにプログラムされるグループ化モジュール106も含むことができる。
さらに、および以下でより詳細に説明するように、例示的システム100は、重複排除データシステム内のデータオブジェクトによって参照されていなかったデータセグメントを除去した前のガーベッジコレクション操作の後に変更された、少なくとも1つのデータオブジェクトグループをデータオブジェクトグループ内で特定するようにプログラムされるモニタリングモジュール108を含むことができる。例示的システム100は、変更されたデータオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含む、重複排除データシステム内の少なくとも1つのコンテナを特定するようにプログラムされるターゲティングモジュール110も含むことができる。例示的システム100は、重複排除データシステム内のデータオブジェクトによって参照されていないデータセグメントを、特定した各コンテナから除去するようにプログラムされるマークアンドスイープモジュール112をさらに含むことができる。別々の要素として図示したが、図1のモジュール102の1つまたは複数は、単一のモジュールまたはアプリケーションの一部を表すことができる。
特定の実施形態では、図1のモジュール102の1つまたは複数は、コンピューティングデバイスによって実行されるとき、そのコンピューティングデバイスに1つまたは複数のタスクを実行させることができる、1つまたは複数のソフトウェアアプリケーションもしくはプログラムを表し得る。例えば、以下でより詳細に説明するように、モジュール102の1つまたは複数は、図2のコンピューティングシステム202、図7のコンピューティングシステム710、および/または図8の例示的ネットワークアーキテクチャ800の一部など、1台または複数台のコンピューティングデバイス上に記憶され、実行されるように構成されるソフトウェアモジュールを表すことができる。図1のモジュール102の1つまたは複数は、1つまたは複数のタスクを実行するように構成される1台または複数台の専用コンピュータの全てもしくは一部を表すこともできる。
図1に示すように、例示的システム100は、重複排除データシステム120も含むことができる。重複排除データシステム120は、単一の記憶システムもしくはコンピューティングデバイスまたは複数の記憶システムもしくはコンピューティングデバイスの一部を表すことができる。例えば、重複排除データシステム120は、図2のコンピューティングシステム202の一部、図7のコンピューティングシステム710、および/または図8の例示的ネットワークアーキテクチャ800の一部を表すことができる。あるいは、図1の重複排除データシステム120は、図7のコンピューティングシステム710、および/または図8の例示的ネットワークアーキテクチャ800の一部などのコンピューティングデバイスによってアクセスできる、1つまたは複数の物理的に別個の装置を表すことができる。
図1の例示的システム100は、様々な方法で導入することができる。例えば、例示的システム100の全てまたは一部が、図2の例示的システム200の一部を表すことができる。図2に示すように、システム200は、図1の重複排除データシステム120を含むコンピューティングシステム202を含むことができる。一実施形態では、および以下でより詳細に説明するように、図1のモジュール102は、1)複数のデータオブジェクト(データオブジェクト222など)を含む重複排除データシステム(重複排除システム120など)を特定し、2)その重複排除データシステム内のデータオブジェクトを複数のデータオブジェクトグループに分割し、3)重複排除データシステム内のデータオブジェクトによって参照されていなかったデータセグメントを除去した前のガーベッジコレクション操作の後に変更された、少なくとも1つのデータオブジェクトグループをそれらのデータオブジェクトグループ内で特定し、4)変更されたデータオブジェクトグループ内のデータオブジェクトによって参照される(例えばデータセグメント224からの)データセグメントを含む、重複排除データシステム内の(例えばコンテナ226からの)少なくとも1つのコンテナを特定し、特定したコンテナごとに、5)(例えば特定したコンテナ内の非参照データセグメントを除去することにより)重複排除データシステム内のデータオブジェクトによって参照されていないデータセグメントを特定したコンテナから除去するように、コンピューティングシステム202をプログラムすることができる。
コンピューティングシステム202は、コンピュータ実行可能命令を読み取ることができる、任意の種類または形式のコンピューティングデバイスを概して表す。コンピューティングシステム202の例には、ラップトップ、デスクトップ、サーバ、携帯電話、携帯情報端末(PDA)、マルチメディアプレイヤ、埋め込みシステム、それらの1つまたは複数の組合せ、図7の例示的コンピューティングシステム710、または他の任意の適切なコンピューティングデバイスが制限なく含まれる。
図3は、重複排除データシステムから非参照データセグメントを除去するための、コンピュータによって実施される例示的方法300の流れ図である。図3に示すステップは、任意の適切なコンピュータ実行可能コードおよび/またはコンピューティングシステムによって実行することができる。一部の実施形態では、図3に示すステップは、図1のシステム100、図2のシステム200、および/または図7のシステム700のコンポーネントの1つもしくは複数によって実行することができる。
図3に示すように、ステップ302で、本明細書に記載するシステムの1つまたは複数が、複数のデータオブジェクトを含む重複排除データシステムを特定することができる。例えば、ステップ302で、図1の特定モジュール104が図2のコンピューティングシステム202の一部として、データオブジェクト222を含む重複排除システム120を特定することができる。本明細書で使用するとき、用語「データオブジェクト」は、ファイルなど、重複排除に適した任意のデータ集合を指すことができる。
特定モジュール104は、ステップ302を任意の適切な方法で実行することができる。一例では、特定モジュール104は、重複排除データシステムに関連する構成ファイルを読み取ることにより重複排除データシステムを特定することができる。それに加えて、またあるいは、特定モジュール104は、重複排除データシステムから非参照データセグメントを除去する要求を特定する(例えば傍受、受信、または取得する)ことにより重複排除データシステムを特定することができる。一部の状況では、特定モジュール104は重複排除データシステムの拡張機能および/またはコンポーネントとすることができ、単に特定モジュール104が実行される状況により重複排除データシステムを暗に特定することができる。
ステップ304で、本明細書に記載する1つまたは複数のシステムが、重複排除データシステム内のデータオブジェクトを複数のデータオブジェクトグループに分割する(例えばデータオブジェクトをグループに割り振る)ことができる。例えば、ステップ304で、図1のグループ化モジュール106が図2のコンピューティングシステム202の一部として、データオブジェクト222を複数のデータオブジェクトグループに分割することができる。
グループ化モジュール106は、様々な異なる方法を使用してデータオブジェクトをデータオブジェクトグループに分割することができる。一例では、グループ化モジュール106は、データオブジェクトをデータオブジェクトグループ間で無作為に割り振ることができる。別の例では、グループ化モジュール106は、関係するデータオブジェクト(例えば提携して変更される可能性が高いデータオブジェクト)をまとめることができる。同時にまたはほぼ同時に変更される可能性が高いデータオブジェクトをまとめる場合、本明細書に記載する方法およびシステムは、マークアンドスイープ操作中に分析するより少ないコンテナを有し、その結果コンピューティングリソースを潜在的に節約することができる。一部の例では、グループ化モジュール106は、データオブジェクトが同じアプリケーションによって管理されることを突き止めることにより、特定のデータオブジェクトが関係していると判断することができる。他の例では、グループ化モジュール106は、データオブジェクトのディレクトリ構造内での元の配置から、データオブジェクトが関係していると判断することができる。
一部の状況では、重複排除データシステムは、バックアップされたデータに対して操作を行うことができる。これらの状況では、グループ化モジュール106は、データオブジェクトを含む複数のバックアップを特定し、それらのバックアップを様々なデータオブジェクトグループに割り当てることにより、データオブジェクトをデータオブジェクトグループ間で分けることができる。バックアップごとにデータオブジェクトをグループ化することは、所与のグループ内のデータオブジェクトが同時にまたはほぼ同時に変更される可能性がより高いという尤度を高め得る。
図3に戻り、ステップ306で、本明細書に記載するシステムの1つまたは複数が、重複排除データシステム内のデータオブジェクトによって参照されていなかったデータセグメントを除去した前のガーベッジコレクション操作の後に変更された、少なくとも1つのデータオブジェクトグループをデータオブジェクトグループ内で特定することができる。例えば、ステップ306で、図1のモニタリングモジュール108が図2のコンピューティングシステム202の一部として、重複排除データシステム内のデータオブジェクト222によって参照されていなかったデータセグメント224の一部を除去した前のガーベッジコレクション操作の後に変更された、各データオブジェクトグループを特定することができる。本明細書で使用するとき、用語「データセグメント」は、データのセグメント、データのブロック、またはデータの重複排除に使用される他の任意の適切なデータ単位を指すことができる。本明細書で使用するとき、用語「ガーベッジコレクション操作」は、非参照データセグメントを削除するための任意の操作、および/または非参照データセグメントを除去しかつ/または除去するのを助けることにより記憶空間を回復するための任意の操作を指すことができる。
例として、および図3のステップの説明をさらに例示するために、図4は例示的な重複排除データシステム400を示す。図4に示すように、例示的な重複排除データシステム400は、データオブジェクト402〜412を含むことができる。これらのデータオブジェクトのそれぞれは、データセグメント(例えばデータセグメント422〜458の一部)への参照を含むことができる。例えばデータオブジェクト402は、データセグメント422、424、426、および428への参照を含むことができる。データセグメント422〜458は、コンテナ(例えばコンテナ460および470)内にまとめ、記憶し、または割り当てることができる。例えば、データセグメント422〜438をコンテナ460内に記憶することができ、データセグメント442〜458をコンテナ470内に記憶することができる。
一部のデータセグメントは、1つのデータオブジェクトによってのみ参照され得る(データオブジェクト402によってのみ参照されるデータセグメント424など)。他のデータセグメントは、2つ以上のデータオブジェクトによって参照され得る(データオブジェクト402、404、および406によって参照されるデータセグメント428など)。例えば、(別の状態にある例示的な重複排除データシステム400の説明図である)図5に示す例では、データオブジェクト402および404が削除されている可能性がある。この操作は、データオブジェクト402および404によって含まれるデータセグメントの全てではないが一部を非参照状態のままにしておく可能性がある。例えば、データオブジェクト402は、当初データセグメント422、424、426、および428を参照していた可能性がある。データオブジェクト402を除去した後、データセグメント422、426、および428は少なくとも1つのデータオブジェクト(この場合データオブジェクト406)によって引き続き参照され得る一方で、データセグメント424はいかなるデータオブジェクトによっても参照されない可能性があり、したがって、削除して重複排除データシステム上の記憶空間を回復すべきである。
モニタリングモジュール108は、様々な方法で図3のステップ306を実行することができる。一例では、モニタリングモジュール108は、データオブジェクトがデータオブジェクトグループに追加された場合(例えばデータオブジェクトが重複排除データシステムに追加され、データオブジェクトグループ内に配置される場合)、データオブジェクトがデータオブジェクトグループから除去された場合(例えばデータオブジェクトが重複排除データシステムから削除された場合)、および/またはデータオブジェクトグループ内のデータオブジェクトが変更された場合(例えば別のデータセグメントを参照するようにデータオブジェクトが変更される場合)、そのデータオブジェクトグループを変更されたものとして特定することができる。上記に記載し、図4〜図5に示した例を使用し、データオブジェクト402および404を削除することは、それらのデータオブジェクトが属するデータオブジェクトグループ(またはそれらのデータオブジェクトが異なるデータオブジェクトグループに属する場合、その各々のデータオブジェクトグループ)に対する変更を引き起こすことができる。したがって、データオブジェクト402および404のデータオブジェクトグループは、変更されたデータオブジェクトグループに相当し得る。
モニタリングモジュール108は、様々な方法で前のガーベッジコレクション操作の後に変更されたデータオブジェクトグループを特定することができる。例えば、モニタリングモジュール108は、(例えば重複排除データシステムへの変更を傍受し、影響を受けたデータオブジェクトグループを特定することにより)変更がないかどうか複数のデータオブジェクトグループをモニタすることができる。さらに、またあるいは、モニタリングモジュール108は、重複排除データシステム内のデータオブジェクトおよび/またはデータオブジェクトグループへの変更を明らかにするログファイルを読み取ることができる。
図3に戻り、ステップ308で、本明細書に記載するシステムの1つまたは複数が、変更されたデータオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含む、少なくとも1つのコンテナを重複排除データシステム内で特定することができる。例えば、ステップ308で、図1のターゲティングモジュール110が図2のコンピューティングシステム202の一部として、変更されたデータオブジェクトグループ内のデータオブジェクトによって参照される1つまたは複数のデータセグメント224を含むコンテナを、コンテナ226内で特定することができる。本明細書で使用するとき、用語「コンテナ」は、データセグメントのサブセットを記憶し、包含し、含み、かつ/または指し示す、任意のデータ構造、記憶システム、および/または位置を指すことができる。
ターゲティングモジュール110は、ステップ308を任意の適切な方法で実行することができる。例えば、ターゲティングモジュール110は、データオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含むコンテナのリストをデータオブジェクトグループごとに保持することにより、変更されたデータオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含むコンテナを特定することができる。ターゲティングモジュール110は、変更されたデータオブジェクトグループを求めてコンテナのリストを参照することができる。以下でより詳細に説明するように、変更された各データオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含むコンテナを特定することにより、ターゲティングモジュール110は、様々なマークアンドスイープ操作にかけるべきコンテナを特定することができる。
ステップ310で、本明細書に記載するシステムの1つまたは複数が、重複排除データシステム内のデータオブジェクトによって参照されていないデータセグメントを特定したコンテナから(例えば特定したコンテナごとに)除去することができる。例えば、ステップ310で、図1のマークアンドスイープモジュール112が図2のコンピューティングシステム202の一部として、データオブジェクト222のどれもが参照しないデータセグメントを特定したコンテナから除去することができる。
マークアンドスイープモジュール112は、ステップ310を任意の適切な方法で実行することができる。一例では、マークアンドスイープモジュール112は、コンテナに対してマークアンドスイープ操作を行うことにより、特定したコンテナから非参照データセグメントを除去することができる。例えばマークアンドスイープモジュール112は、データオブジェクトグループごとに、特定したコンテナ内の各参照データセグメントに印付けし、特定したコンテナから印付けされていないデータセグメントを除去することができる。
マークアンドスイープモジュール112は、いくつかの方法で、データオブジェクトグループごとに、特定したコンテナ内の各非参照データセグメントに印付けすることができる。例えば、マークアンドスイープモジュール112は、データオブジェクトグループごとに、特定したコンテナ内の参照データセグメントのマップを作成することができる。
例として、および図3のステップの説明をさらに例示するために、図6は例示的な重複排除データシステム600を示す。図6に示すように、例示的な重複排除データシステム600は、バックアップ602〜610を含むことができる。各バックアップは、バックアップされ、重複排除されているデータオブジェクトを含むことができる。これらのデータオブジェクトのデータセグメントは、コンテナ620〜628内に記憶することができる。バックアップ602〜610は、(ステップ304に関して上述したように)データオブジェクトグループに分割することができる。この図に示すように、バックアップ602および604をグループ630内に配置することができ、バックアップ606および608をグループ632内に配置することができ、バックアップ610をグループ634内に配置することができる。
マップセット640〜648は、データオブジェクトのそれぞれのコンテナ内に含まれるデータセグメントを参照するデータオブジェクトを含むデータオブジェクトグループごとに、参照データセグメントのマップを含むことができる。例えばコンテナ620は、グループ630および632内に含まれるデータオブジェクトによって参照されるデータセグメントを含むことができる。したがってマップセット640は、グループ630および632内のデータオブジェクトによって参照される、コンテナ620内のデータセグメントのマップ(例えば各グループにつき1つのマップ)を含むことができる。
上記に記載したマークアンドスイープモジュール112の例示的動作に戻り、マークアンドスイープモジュール112は、特定したコンテナ内の参照データセグメントの各マップを、特定したコンテナに関する包括的なマップにマージすることもできる。例えば、コンテナのマップセット内の任意のマップがデータセグメントを参照されているものとして印付けした場合、マークアンドスイープモジュール112は、コンテナに関する包括的なマップ内でそのデータセグメントを参照されているものとして印付けすることができる。図6に示す例を使用し、マークアンドスイープモジュール112は、マップセット640内に2つのマップ、つまりグループ630内のデータオブジェクトによって参照されるコンテナ620のデータセグメントについてのマップと、グループ632内のデータオブジェクトによって参照されるコンテナ620のデータセグメントについてのマップとを作成することができる。マークアンドスイープモジュール112は、グループ630についてのマップとグループ632についてのマップとを、データオブジェクトによって参照されるコンテナ620のデータセグメントに関する包括的なマップにマージすることができる。
ステップ310に戻り、先に述べたように、マークアンドスイープモジュール112は、特定したコンテナから印付けされていないデータセグメントを除去することができる。一部の例では、マークアンドスイープモジュール112は、少なくとも1つの変更されたデータオブジェクトグループが、特定したコンテナ内の影響を受けるデータセグメントを潜在的に非参照化する変更を経験したと判定するときにのみ、そのようなスイープ操作を実行することができる。コンテナ内のデータセグメントを潜在的に非参照化し得る変更の種類には様々な変更が含まれ得る。例えばそのような変更には、変更されるデータオブジェクトグループからデータオブジェクトが削除されること、および/または変更されるデータオブジェクトグループ内のデータオブジェクトが修正されることが含まれ得る。
マークアンドスイープモジュール112は、変更されたデータオブジェクトグループが、特定したコンテナ内の影響を受けるデータセグメントを潜在的に非参照化する変更を経験したと判定するために、任意の適切な方法を使用することができる。例えばマークアンドスイープモジュール112は、変更されたデータオブジェクトグループに関するインジケータを参考にして、そのデータオブジェクトグループが経験した変更の種類を突き止めることができる。図6に示す例を使用し、バックアップ602内のデータオブジェクトが除去されたことをモニタリングモジュール108が観察している可能性がある。その結果、モニタリングモジュール108は、グループ630に削除インジケータ650を追加している可能性がある。この例では、マークアンドスイープモジュール112が削除インジケータ650を特定し、その結果、グループ630に関するマップを有する各コンテナ(例えばコンテナ620および622)に対して(例えば非参照データセグメントを除去することにより)スイープ操作を実行することができる。グループ634は、グループ634に対する非削除変更(例えば634へのデータオブジェクトの追加)を示し得る、変更インジケータ652に関連することができる。したがってグループ634は、グループ634内に含まれるデータオブジェクトによって参照されるデータセグメントをたまたま含むコンテナに対し、マークアンドスイープモジュール112にスイープ操作を行わせることはできない。
ステップ310に戻り、一部の実施形態では、マークアンドスイープモジュール112は、非参照データセグメントがないかどうか、特定したコンテナだけを検査することができる。上記の例を使用し、特定したコンテナにはコンテナ620、622、および628が含まれる可能性があり、その理由はこれらのコンテナが、変更されたデータオブジェクトグループ(すなわちグループ630および634)内のデータオブジェクトによって参照されるデータセグメントを含み得るからである。非参照データセグメントがないかどうか、(例えば特定したコンテナのデータセグメントに対してのみ印付け操作を行うことにより)特定したコンテナだけを検査することにより、マークアンドスイープモジュール112はコンピューティングリソースを節約することができる。上記に記載したように、マークアンドスイープモジュール112は、少なくとも1つのデータセグメントを潜在的に非参照化した少なくとも1回の変更を経験したデータオブジェクトグループのデータセグメントを有するコンテナに、自らのスイープ操作を制限することができる。一部の実施形態によれば、特定したコンテナには潜在的な変更を伴うあらゆるコンテナが含まれ得るので、一部の実施形態では、マークアンドスイープモジュール112は、少なくとも1つのデータセグメントを潜在的に非参照化した少なくとも1回の変更がないかどうか、特定したコンテナだけを検査することができる(例えばマークアンドスイープモジュール112は、何らかの変更を伴うコンテナにおいて、潜在的に非参照化を行う変更に関してのみ検査することができる)。
本明細書に記載するシステムおよび方法がどのように動作し得るのかについてのさらなる例として、図6のマップセット640〜648は、各コンテナ内のグループごとに印付け結果(例えばデータセグメントについての印付けマップ)を含むことができる。印付け結果は、所与のグループ内のデータオブジェクトによって使用される、所与のコンテナ内のデータセグメントを特定するビットマップを含むことができる。単一のマークアンドスイープサイクルでは、本明細書に記載するシステムは、変更されたグループ(例えばグループ630および634)ごとにデータセグメントに印付けすることができる。グループ630および634が変更されている可能性があるので、これらのシステムはグループ630および634の前の印付け結果(例えばコンテナごとのグループ630および634についてのマップ)を消去することができる。次いでこれらのシステムは、グループ630および634内のデータオブジェクトによって使用されるデータセグメントを有する全てのコンテナ(例えばグループ630ではコンテナ620および622、ならびにグループ634ではコンテナ622および628)について、グループ630および634のための新たな印付け結果を生成することができる。
この印付け操作中、本明細書に記載するシステムは、データオブジェクトを削除されたグループから印付けされる全てのコンテナ(例えばグループ630から印付けされるコンテナ620および622)を追跡することができる。次いでこれらのシステムは、これらのコンテナをスイープリストに入れることができる。この例では、スイープリスト内のコンテナだけがデータオブジェクトを削除されたグループによって使用され得るので、スイープリスト内のコンテナだけがデータセグメントを除去されている可能性がある。次いで、本明細書に記載するシステムは、スイープリスト内のコンテナをスイープすることができる。コンテナをスイープするために、これらのシステムはコンテナ内の全てのグループについての印付け結果をマージすることができる。マージ済みの印付け結果内であるデータセグメントが参照されているものとして印付けされていない場合、本明細書に記載するシステムはそのデータセグメントを除去することができる。
上記に詳述したように、非参照データセグメントをもたらし得る変更を経たデータオブジェクトグループからのデータセグメントを含むコンテナにマークアンドスイープ手続きを集中させることにより、本明細書に記載するシステムおよび方法は、非参照データセグメントを捜し出し、削除するために必要なコンピューティングリソースの量を効果的に減らすことができる。さらに、非参照データセグメントを削除するタスクを重複排除データシステム上で実行するのに必要なリソースは、重複排除データシステムの規模にほぼ比例し得るので、これらのシステムおよび方法は、非参照データセグメントを削除するための拡張可能な解決策を提供することができる。その一方で、これらのシステムおよび方法は、従来のマークアンドスイープアプローチが相互参照アプローチを上回って有する利点を保つことができる。
図7は、本明細書に記載しかつ/または図示する実施形態の1つもしくは複数を実装することができる、例示的コンピューティングシステム710のブロック図である。コンピューティングシステム710は、コンピュータ可読命令を実行することができる、任意のシングルプロセッサのもしくはマルチプロセッサのコンピューティングデバイスまたはシステムを広く表す。コンピューティングシステム710の例には、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散コンピューティングシステム、携帯端末、または他の任意のコンピューティングシステムもしくはデバイスが制限なく含まれる。その最も基本的な構成では、コンピューティングシステム710は、少なくとも1個のプロセッサ714およびシステムメモリ716を含むことができる。
プロセッサ714は、データを処理し、または命令を解釈して実行することができる任意の種類もしくは形式の処理装置を概して表す。特定の実施形態では、プロセッサ714はソフトウェアアプリケーションまたはモジュールから命令を受け取ることができる。これらの命令は、本明細書に記載しかつ/または図示する例示的実施形態の1つもしくは複数の機能をプロセッサ714に実行させることができる。例えばプロセッサ714は、本明細書に記載の特定するステップ、分割するステップ、追加するステップ、モニタするステップ、印付けするステップ、除去するステップ、作成するステップ、マージするステップ、判定するステップ、および/または検査するステップのうちの1つもしくは複数を、単独でまたは他の要素とともに実行することができ、かつ/または実行するための手段となることができる。プロセッサ714は、本明細書に記載しかつ/または図示する他の任意のステップ、方法、もしくはプロセスも実行することができ、かつ/または実行するための手段となることができる。
システムメモリ716は、データおよび/または他のコンピュータ可読命令を記憶することができる、任意の種類または形式の揮発性/不揮発性記憶装置または記憶媒体を概して表す。システムメモリ716の例には、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、フラッシュメモリ、または他の任意の適切なメモリ装置が制限なく含まれる。必須ではないが、特定の実施形態ではコンピューティングシステム710は、揮発性メモリ装置(例えばシステムメモリ716など)および不揮発性記憶装置(例えば以下に詳しく説明する一次記憶装置732など)の両方を含むことができる。一例では、図1のモジュール102の1つまたは複数をシステムメモリ716内にロードすることができる。
特定の実施形態では、例示的コンピューティングシステム710は、プロセッサ714およびシステムメモリ716に加えて、1つまたは複数のコンポーネントもしくは要素も含むことができる。例えば図7に示すように、コンピューティングシステム710は、メモリコントローラ718、入出力(I/O)コントローラ720、および通信インターフェイス722を含むことができ、そのそれぞれは通信インフラ712を介して相互接続することができる。通信インフラ712は、コンピューティングデバイスの1つまたは複数のコンポーネントとの間の通信を助けることができる、任意の種類または形式のインフラを概して表す。通信インフラ712の例には、通信バス(ISA、PCI、PCIe、同様のバスなど)やネットワークが制限なく含まれる。
メモリコントローラ718は、メモリもしくはデータを処理することができ、またはコンピューティングシステム710の1つまたは複数のコンポーネント間の通信を制御することができる、任意の種類または形式の装置を概して表す。例えば特定の実施形態では、メモリコントローラ718は、通信インフラ712を介してプロセッサ714、システムメモリ716、およびI/Oコントローラ720間の通信を制御することができる。特定の実施形態では、メモリコントローラ718は、特定すること、分割すること、追加すること、モニタすること、印付けすること、除去すること、作成すること、マージすること、判定すること、および/または検査することなど、本明細書に記載しかつ/または図示するステップもしくは機能の1つまたは複数を、単独でまたは他の要素とともに実行することができ、かつ/または実行するための手段となることができる。
I/Oコントローラ720は、コンピューティングデバイスの入出力機能を調整しかつ/または制御することができる、任意の種類または形式のモジュールを概して表す。例えば特定の実施形態では、I/Oコントローラ720は、プロセッサ714、システムメモリ716、通信インターフェイス722、ディスプレイアダプタ726、入力インターフェイス730、記憶インターフェイス734など、コンピューティングシステム710の1つまたは複数の要素間のデータ転送を制御し、もしくは助けることができる。I/Oコントローラ720は、例えば本明細書に記載の特定するステップ、分割するステップ、追加するステップ、モニタするステップ、印付けするステップ、除去するステップ、作成するステップ、マージするステップ、判定するステップ、および/または検査するステップのうちの1つもしくは複数を、単独でまたは他の要素とともに実行するために使用することができ、かつ/または実行するための手段となることができる。I/Oコントローラ720は、本開示に記載の他のステップおよび機能を実行するために使用することもでき、かつ/または実行するための手段となることもできる。
通信インターフェイス722は、例示的コンピューティングシステム710と1つまたは複数のその他の装置との間の通信を助けることができる、任意の種類または形式の通信装置もしくはアダプタを広く表す。例えば特定の実施形態では、通信インターフェイス722は、コンピューティングシステム710と、その他のコンピューティングシステムを含む私設ネットワークまたは公衆ネットワークとの間の通信を助けることができる。通信インターフェイス722の例には、有線ネットワークインターフェイス(ネットワークインターフェイスカードなど)、無線ネットワークインターフェイス(無線ネットワークインターフェイスカードなど)、モデム、および他の任意の適切なインターフェイスが制限なく含まれる。少なくとも1つの実施形態では、通信インターフェイス722は、インターネットなどのネットワークへの直接リンクを介して、リモートサーバへの直接接続を提供することができる。通信インターフェイス722は、例えばローカルエリアネットワーク(イーサネット〔登録商標〕ネットワークなど)、パーソナルエリアネットワーク、電話またはケーブルネットワーク、携帯電話接続、衛星データ接続、または他の任意の適切な接続を介して間接的にそのような接続を提供することもできる。
特定の実施形態では、通信インターフェイス722は、外部バスまたは通信チャネルを介して、コンピューティングシステム710と1つまたは複数のその他のネットワーク装置または記憶装置との間の通信を助けるように構成される、ホストアダプタを表すこともできる。ホストアダプタの例には、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAホストアダプタ、ファイバチャネルインターフェイスアダプタ、イーサネットアダプタなどが制限なく含まれる。通信インターフェイス722は、コンピューティングシステム710が分散コンピューティングまたはリモートコンピューティングに携わることも可能にすることができる。例えば通信インターフェイス722は、実行するための命令を遠隔装置から受け取り、または遠隔装置に送ることができる。特定の実施形態では、通信インターフェイス722は、本明細書に開示する特定するステップ、分割するステップ、追加するステップ、モニタするステップ、印付けするステップ、除去するステップ、作成するステップ、マージするステップ、判定するステップ、および/または検査するステップのうちの1つもしくは複数を、単独でまたは他の要素とともに実行することができ、かつ/または実行するための手段となることができる。通信インターフェイス722は、本開示に記載の他のステップおよび機能を実行するために使用することもでき、かつ/または実行するための手段となることもできる。
図7に示すように、コンピューティングシステム710は、ディスプレイアダプタ726を介して通信インフラ712に結合される少なくとも1つのディスプレイ装置724も含むことができる。ディスプレイ装置724は、ディスプレイアダプタ726によって転送される情報を視覚的に表示することができる、任意の種類または形式の装置を概して表す。同様に、ディスプレイアダプタ726は、ディスプレイ装置724上で表示するために、通信インフラ712からの(または当技術分野で知られているフレームバッファからの)グラフィックス、テキスト、および他のデータを転送するように構成される、任意の種類または形式の装置を概して表す。
図7に示すように、例示的コンピューティングシステム710は、入力インターフェイス730を介して通信インフラ712に結合される少なくとも1つの入力装置728も含むことができる。入力装置728は、コンピュータまたは人間が発生させた入力を例示的コンピューティングシステム710に提供することができる、任意の種類または形式の入力装置を概して表す。入力装置728の例には、キーボード、ポインティングデバイス、音声認識装置、または他の任意の入力装置が制限なく含まれる。少なくとも1つの実施形態では、入力装置728は、本明細書に開示する特定するステップ、分割するステップ、追加するステップ、モニタするステップ、印付けするステップ、除去するステップ、作成するステップ、マージするステップ、判定するステップ、および/または検査するステップのうちの1つもしくは複数を、単独でまたは他の要素とともに実行することができ、かつ/または実行するための手段となることができる。入力装置728は、本開示に記載の他のステップおよび機能を実行するために使用することもでき、かつ/または実行するための手段となることもできる。
図7に示すように、例示的コンピューティングシステム710は、記憶インターフェイス734を介して通信インフラ712に結合される、一次記憶装置732およびバックアップ記憶装置733も含むことができる。記憶装置732および733は、データおよび/または他のコンピュータ可読命令を記憶することができる、任意の種類または形式の記憶装置もしくは記憶媒体を概して表す。例えば、記憶装置732および733は、磁気ディスクドライブ(例えば所謂ハードドライブ)、フロッピディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどとすることができる。記憶インターフェイス734は、記憶装置732および733とコンピューティングシステム710の他のコンポーネントとの間でデータを転送するための、任意の種類または形式のインターフェイスもしくは装置を概して表す。一例では、一次記憶装置732内に図2のデータオブジェクト222を記憶することができる。
特定の実施形態では、記憶装置732および733は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を記憶するように構成されるリムーバブル記憶装置との間で読取および/または書込みを行うように構成することができる。適切なリムーバブル記憶装置の例には、フロッピディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが制限なく含まれる。記憶装置732および733は、コンピュータソフトウェア、データ、または他のコンピュータ可読命令をコンピューティングシステム710内にロードできるようにするための他の同様の構造または装置も含むことができる。例えば記憶装置732および733は、ソフトウェア、データ、または他のコンピュータ可読情報を読み書きするように構成することができる。記憶装置732および733は、コンピューティングシステム710の一部とすることもでき、または他のインターフェイスシステムを介してアクセスされる別個の装置とすることもできる。
特定の実施形態では、記憶装置732および733は、例えば本明細書に開示する特定するステップ、分割するステップ、追加するステップ、モニタするステップ、印付けするステップ、除去するステップ、作成するステップ、マージするステップ、判定するステップ、および/または検査するステップのうちの1つもしくは複数を、単独でまたは他の要素とともに実行するために使用することができ、かつ/または実行するための手段となることができる。記憶装置732および733は、本開示に記載の他のステップおよび機能を実行するために使用することもでき、かつ/または実行するための手段となることもできる。
コンピューティングシステム710には、他の多くの装置またはサブシステムを接続することができる。逆に、本明細書に記載しかつ/または図示する実施形態を実施するために、図7に示すコンポーネントおよび装置の全てがある必要はない。上記で言及した装置およびサブシステムは、図7に示す方法とは別の方法で相互接続することもできる。コンピューティングシステム710は、任意の数のソフトウェア、ファームウェア、および/またはハードウェア構成を使用してもよい。例えば本明細書に開示する例示的実施形態の1つまたは複数を、コンピュータ可読媒体上にコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御ロジックとも呼ばれる)として符号化することができる。表現「コンピュータ可読媒体」は、一般にコンピュータ可読命令を記憶しまたは運ぶことができる、任意の形式の装置、キャリア、または媒体を指す。コンピュータ可読媒体の例には、搬送波などの伝送型媒体や磁気記憶媒体(例えばハードディスクドライブやフロッピディスク)などの物理媒体、光学的記憶媒体(例えばCD−ROMやDVD−ROM)、電子記憶媒体(例えば半導体ドライブやフラッシュ媒体)、および他の分配システムが制限なく含まれる。
コンピュータプログラムを含むコンピュータ可読媒体をコンピューティングシステム710内にロードすることができる。コンピュータ可読媒体上に記憶されるコンピュータプログラムの全てまたは一部を、システムメモリ716内にならびに/または記憶装置732および733の様々な部分に記憶することができる。プロセッサ714によって実行されるとき、コンピューティングシステム710内にロードされたコンピュータプログラムは、本明細書に記載しかつ/または図示する例示的実施形態の1つもしくは複数の機能をプロセッサ714に実行させることができ、かつ/またはプロセッサ714をそれらの機能を実行するための手段にすることができる。さらに、またあるいは、本明細書に記載しかつ/または図示する例示的実施形態の1つもしくは複数を、ファームウェアおよび/またはハードウェアによって実装することができる。例えば、コンピューティングシステム710は、本明細書に開示する例示的実施形態の1つまたは複数を実装するようになされる特定用途向け集積回路(ASIC)として構成することができる。
図8は、クライアントシステム810、820および830、ならびにサーバ840および845がネットワーク850に結合され得る例示的ネットワークアーキテクチャ800のブロック図である。クライアントシステム810、820および830は、図7の例示的コンピューティングシステム710など、任意の種類または形式のコンピューティングデバイスもしくはシステムを概して表す。一例では、クライアントシステム810は、図1のシステム100を含むことができる。
同様に、サーバ840および845は、様々なデータベースサービスを提供しかつ/または特定のソフトウェアアプリケーションを実行するように構成される、アプリケーションサーバやデータベースサーバなどのコンピューティングデバイスまたはシステムを概して表す。ネットワーク850は、例えばイントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはインターネットが含まれる、任意の電気通信網またはコンピュータネットワークを概して表す。
図8に示すように、1つまたは複数の記憶装置860(1)〜(N)をサーバ840に直接付加することができる。同様に、1つまたは複数の記憶装置870(1)〜(N)をサーバ845に直接付加することができる。記憶装置860(1)〜(N)および記憶装置870(1)〜(N)は、データおよび/または他のコンピュータ可読命令を記憶することができる、任意の種類または形式の記憶装置もしくは記憶媒体を概して表す。特定の実施形態では、記憶装置860(1)〜(N)および記憶装置870(1)〜(N)は、NFS、SMB、CIFSなどの様々なプロトコルを使用してサーバ840および845と通信するように構成されるネットワーク接続ストレージ(NAS)デバイスを表すことができる。
サーバ840および845は、ストレージエリアネットワーク(SAN)ファブリック880にも接続され得る。SANファブリック880は、複数の記憶装置間の通信を助けることができる任意の種類または形式のコンピュータネットワークもしくはアーキテクチャを概して表す。SANファブリック880は、サーバ840および845と、複数の記憶装置890(1)〜(N)および/またはインテリジェントストレージアレイ895との間の通信を助けることができる。SANファブリック880は、クライアントシステム810、820、および830にとって、装置890(1)〜(N)およびアレイ895がローカルに付加された装置のように見える方法で、クライアントシステム810、820、および830と、記憶装置890(1)〜(N)および/またはインテリジェントストレージアレイ895との間の通信を、ネットワーク850ならびにサーバ840および845を介して助けることもできる。記憶装置860(1)〜(N)および記憶装置870(1)〜(N)と同じように、記憶装置890(1)〜(N)およびインテリジェントストレージアレイ895は、データおよび/または他のコンピュータ可読命令を記憶することができる、任意の種類または形式の記憶装置もしくは記憶媒体を概して表す。
特定の実施形態では、および図7の例示的コンピューティングシステム710に関して、各クライアントシステム810、820、および830とネットワーク850との間の接続性を提供するために、図7の通信インターフェイス722などの通信インターフェイスを使用することができる。クライアントシステム810、820、および830は、例えばウェブブラウザや他のクライアントソフトウェアを使用してサーバ840または845上の情報にアクセスでき得る。そのようなソフトウェアは、クライアントシステム810、820、および830が、サーバ840、サーバ845、記憶装置860(1)〜(N)、記憶装置870(1)〜(N)、記憶装置890(1)〜(N)、またはインテリジェントストレージアレイ895によってホストされるデータにアクセスすることを可能にすることができる。図8ではデータをやり取りするためにネットワーク(インターネットなど)を使用することを示すが、本明細書に記載しかつ/または図示する実施形態はインターネットもしくはどんな特定のネットワークベース環境にも限定されない。
少なくとも1つの実施形態では、本明細書に開示する例示的実施形態の1つまたは複数の全てもしくは一部をコンピュータプログラムとして符号化し、サーバ840、サーバ845、記憶装置860(1)〜(N)、記憶装置870(1)〜(N)、記憶装置890(1)〜(N)、インテリジェントストレージアレイ895またはそれらの任意の組合せにロードし、実行することができる。本明細書に開示する例示的実施形態の1つまたは複数の全てもしくは一部をコンピュータプログラムとして符号化し、サーバ840内に記憶し、サーバ845によって実行し、ネットワーク850を介してクライアントシステム810、820、および830に配信することもできる。したがって、ネットワークアーキテクチャ800は、本明細書に開示する特定するステップ、分割するステップ、追加するステップ、モニタするステップ、印付けするステップ、除去するステップ、作成するステップ、マージするステップ、判定するステップ、および/または検査するステップのうちの1つもしくは複数を、単独でまたは他の要素とともに実行することができ、かつ/または実行するための手段となることができる。ネットワークアーキテクチャ800は、本開示に記載の他のステップおよび機能を実行するために使用することもでき、かつ/または実行するための手段となることもできる。
上記に詳述したように、コンピューティングシステム710および/またはネットワークアーキテクチャ800の1つもしくは複数のコンポーネントは、重複排除データシステムから非参照データセグメントを除去するための例示的方法の1つまたは複数のステップを、単独でまたは他の要素とともに実行することができ、かつ/または実行するための手段となることができる。
上述の開示は特定のブロック図、流れ図、および例を使用して様々な実施形態を示したが、本明細書に記載しかつ/または図示したそれぞれのブロック図のコンポーネント、流れ図のステップ、操作、および/またはコンポーネントは、広範囲にわたるハードウェア、ソフトウェア、またはファームウェア(あるいはそれらの任意の組合せ)の構成を使用して個別におよび/または集合的に実施することができる。さらに、他のコンポーネント内に含まれるコンポーネントについてのいかなる開示も、他の多くのアーキテクチャを実装して同じ機能を達成することができるので実際は例示的とみなすべきである。
一部の例では、図1の例示的システム100の全てまたは一部が、図2に示す例示的システム200などの、クラウドコンピューティング環境またはネットワークベース環境の一部に相当することができる。クラウドコンピューティング環境は、インターネットを介して様々なサービスおよびアプリケーションを提供することができる。これらのクラウドベースサービス(例えばサービス型ソフトウェア、サービス型プラットフォーム、サービス型インフラ等)は、ウェブブラウザまたは他のリモートインターフェイスによってアクセス可能であり得る。リモートデスクトップ環境または他の任意のクラウドベースコンピューティング環境により、本明細書に記載した様々な機能を提供することができる。
本明細書に記載しかつ/または図示したステップのプロセスパラメータおよび順序は、専ら例として示し、所望に応じて変えることができる。例えば、本明細書に図示しかつ/または記載したステップは特定の順序で図示しまたは解説したが、これらのステップは必ずしも図示しまたは解説した順序で実行する必要はない。本明細書に記載しかつ/または図示した様々な例示的方法は、本明細書に記載しまたは図示したステップの1つもしくは複数を省略してもよく、または開示したステップに加えて追加のステップを含むことができる。
完全に機能的なコンピューティングシステムとの関連で本明細書に様々な実施形態を記載しかつ/または図示してきたが、これらの例示的実施形態の1つまたは複数は、実際に配布するために用いられる特定の種類のコンピュータ可読媒体に関係なく、様々な形式のプログラム製品として配布することができる。本明細書に開示した実施形態は、特定のタスクを実行するソフトウェアモジュールを使用して実施することもできる。これらのソフトウェアモジュールには、コンピュータ可読記憶媒体またはコンピューティングシステム内に記憶することができるスクリプト、バッチ、または他の実行可能ファイルが含まれ得る。一部の実施形態では、これらのソフトウェアモジュールは、本明細書に開示した例示的実施形態の1つまたは複数を実行するためのコンピューティングシステムを構成することができる。
さらに、本明細書に記載したモジュールの1つまたは複数は、データ、物理装置、および/または物理装置の表現をある形態から別の形態に変えることができる。例えば本明細書に記載したモジュールの1つまたは複数は、重複排除データシステムから非参照データセグメントを除去するために必要なコンピューティングリソースの量を減らすことにより、重複排除データシステムを効率的な重複排除データシステムに変えることができる。別の例では、本明細書に記載したモジュールの1つまたは複数は、重複排除データシステムから非参照データセグメントを除去することによって重複排除データシステムを変えることができる。
前述の説明は、本明細書に開示した例示的実施形態の様々な側面を当業者が最大限に利用できるようにするために示した。この例示的説明は、網羅的であること、または開示した任意の厳密な形態に限定されることを意図しない。本開示の趣旨および範囲から逸脱することなく、多くの修正および改変が可能である。本明細書に開示した実施形態はあらゆる点で例示的であり、制限的ではないとみなすべきである。本開示の範囲を決定する際には、特許請求の範囲およびその等価物を参照すべきである。
特に断りのない限り、本明細書および特許請求の範囲で用いる語「a」または「an」は、「少なくとも1つの」を意味するものとして解釈すべきである。さらに、使いやすさのために、本明細書および特許請求の範囲で用いる「〜を含む」および「〜を有する」という語は、「〜を備える」という語と置き換えることができ、同じ意味を有する。

Claims (15)

  1. 重複排除データシステムから非参照データセグメントを除去するためのコンピュータによって実施される方法であって、前記方法の少なくとも一部は少なくとも1個のプロセッサを含むコンピューティングデバイスによって実行される、方法であり、
    複数のデータオブジェクトを含む重複排除データシステムを特定するステップであって、前記重複排除データシステムは、前記データオブジェクトによって参照される各データセグメントのインスタンスを1つだけ記憶することによって冗長データを減らす、重複排除データシステムを特定するステップと、
    前記重複排除データシステム内の前記データオブジェクトを複数のデータオブジェクトグループに分割するステップと、
    前記重複排除データシステム内のデータオブジェクトによって参照されていなかったデータセグメントを除去した前のガーベッジコレクション操作の後に変更された、少なくとも1つのデータオブジェクトグループを前記データオブジェクトグループ内で特定するステップと、
    前記変更されたデータオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含む、前記重複排除データシステム内の少なくとも1つのコンテナを特定するステップと、
    特定したコンテナごとに、前記重複排除データシステム内のデータオブジェクトによって参照されていないデータセグメントを前記特定したコンテナから除去するステップと
    を含む、コンピュータによって実施される方法。
  2. 前記変更されたデータオブジェクトグループを特定するために前記データオブジェクトグループをモニタするステップが、
    追加されたデータオブジェクト、
    除去されたデータオブジェクト、
    変更されたデータオブジェクト
    のうちの少なくとも1つを有するデータオブジェクトグループを特定するステップを含む、請求項1に記載のコンピュータによって実施される方法。
  3. 前記データオブジェクトを前記複数のデータオブジェクトグループに分割するステップが、
    前記複数のデータオブジェクトを含む複数のバックアップを特定するステップと、
    前記複数のバックアップからの少なくとも1つのバックアップを各データオブジェクトグループに追加するステップと
    を含む、請求項1に記載のコンピュータによって実施される方法。
  4. 前記特定したコンテナから非参照データセグメントを除去するステップが、
    変更されたデータオブジェクトグループごとに、前記特定したコンテナ内の各参照データセグメントを印付けするステップと、
    前記特定したコンテナから印付けされていないデータセグメントを除去するステップと
    を含む、請求項1に記載のコンピュータによって実施される方法。
  5. 前記特定したコンテナ内の各参照データセグメントを印付けするステップが、変更されたデータオブジェクトグループごとに、前記特定したコンテナ内の参照データセグメントのマップを作成するステップを含む、請求項4に記載のコンピュータによって実施される方法。
  6. 前記特定したコンテナ内の参照データセグメントの各マップを、前記特定したコンテナに関する包括的なマップにマージするステップをさらに含む、請求項5に記載のコンピュータによって実施される方法。
  7. 前記特定したコンテナから前記印付けされていないデータセグメントを除去するステップは、少なくとも1つの変更されたデータオブジェクトグループが、前記特定したコンテナ内の影響を受けるデータセグメントを潜在的に非参照化する変更を経験したと判定するステップを含む、請求項4に記載のコンピュータによって実施される方法。
  8. 前記特定したコンテナ内の前記影響を受けるデータセグメントを潜在的に非参照化する前記変更が、
    前記影響を受けるデータセグメントを潜在的に非参照化する、前記変更されるデータオブジェクトグループからデータオブジェクトが削除されること、
    前記影響を受けるデータセグメントを潜在的に非参照化する、前記変更されるデータオブジェクトグループ内のデータオブジェクトが修正されること
    のうちの少なくとも1つを含む、請求項7に記載のコンピュータによって実施される方法。
  9. 前記重複排除データシステム内の前記データオブジェクトによって参照されていないデータセグメントを前記特定したコンテナから除去するステップが、非参照データセグメントがないかどうか、各特定したコンテナだけを検査するステップを含む、請求項1に記載のコンピュータによって実施される方法。
  10. 非参照データセグメントがないかどうか、各特定したコンテナだけを検査するステップが、少なくとも1つのデータセグメントを潜在的に非参照化した少なくとも1回の変更がないかどうか、各特定したコンテナだけを検査するステップを含む、請求項9に記載のコンピュータによって実施される方法。
  11. 前記データオブジェクトを前記複数のデータオブジェクトグループに分割するステップが、関係するデータオブジェクトを少なくとも1つのデータオブジェクトグループにまとめるステップを含み、前記関係するデータオブジェクトは提携して変更される可能性が高い、請求項1に記載のコンピュータによって実施される方法。
  12. 重複排除データシステムから非参照データセグメントを除去するためのシステムであって、
    複数のデータオブジェクトを含む重複排除データシステムを特定するようにプログラムされる特定モジュールであって、前記重複排除データシステムは、前記データオブジェクトによって参照される各データセグメントのインスタンスを1つだけ記憶することによって冗長データを減らす、特定モジュールと、
    前記重複排除データシステム内の前記データオブジェクトを複数のデータオブジェクトグループに分割するようにプログラムされるグループ化モジュールと、
    前記重複排除データシステム内のデータオブジェクトによって参照されていなかったデータセグメントを除去した前のガーベッジコレクション操作の後に変更された、少なくとも1つのデータオブジェクトグループを前記データオブジェクトグループ内で特定するようにプログラムされるモニタリングモジュールと、
    前記変更されたデータオブジェクトグループ内のデータオブジェクトによって参照されるデータセグメントを含む、前記重複排除データシステム内の少なくとも1つのコンテナを特定するようにプログラムされるターゲティングモジュールと、
    特定したコンテナごとに、前記重複排除データシステム内のデータオブジェクトによって参照されていないデータセグメントを前記特定したコンテナから除去するようにプログラムされるマークアンドスイープモジュールと、
    前記特定モジュール、前記グループ化モジュール、前記モニタリングモジュール、前記ターゲティングモジュール、および前記マークアンドスイープモジュールを実行するように構成される少なくとも1個のプロセッサと
    を含む、システム。
  13. 前記モニタリングモジュールが、
    追加されたデータオブジェクト、
    除去されたデータオブジェクト、
    変更されたデータオブジェクト
    のうちの少なくとも1つを有するデータオブジェクトグループを特定することにより、前記変更されたデータオブジェクトグループを特定するために前記データオブジェクトグループをモニタするようにプログラムされる、請求項12に記載のシステム。
  14. 前記グループ化モジュールが、
    前記複数のデータオブジェクトを含む複数のバックアップを特定し、
    前記複数のバックアップからの少なくとも1つのバックアップを各データオブジェクトグループに追加する
    ことにより、前記データオブジェクトを前記複数のデータオブジェクトグループに分割するようにプログラムされる、請求項12に記載のシステム。
  15. 前記マークアンドスイープモジュールが、
    変更されたデータオブジェクトグループごとに、前記特定したコンテナ内の各参照データセグメントを印付けし、
    前記特定したコンテナから印付けされていないデータセグメントを除去する
    ことにより、前記特定したコンテナから非参照データセグメントを除去するようにプログラムされる、請求項12に記載のシステム。
JP2012547226A 2010-01-05 2010-12-28 重複排除データシステムから非参照データセグメントを除去するためのシステムおよび方法 Expired - Fee Related JP5642198B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/652,300 2010-01-05
US12/652,300 US8224874B2 (en) 2010-01-05 2010-01-05 Systems and methods for removing unreferenced data segments from deduplicated data systems
PCT/US2010/062183 WO2011084854A1 (en) 2010-01-05 2010-12-28 Systems and methods for removing unreferenced data segments from deduplicated data systems

Publications (2)

Publication Number Publication Date
JP2013516679A JP2013516679A (ja) 2013-05-13
JP5642198B2 true JP5642198B2 (ja) 2014-12-17

Family

ID=43734173

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012547226A Expired - Fee Related JP5642198B2 (ja) 2010-01-05 2010-12-28 重複排除データシステムから非参照データセグメントを除去するためのシステムおよび方法

Country Status (4)

Country Link
US (1) US8224874B2 (ja)
EP (1) EP2521966B1 (ja)
JP (1) JP5642198B2 (ja)
WO (1) WO2011084854A1 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5380695B2 (ja) * 2010-02-23 2014-01-08 株式会社日立製作所 メモリ管理方法、計算機システム及びメモリ管理プログラム
US8650159B1 (en) * 2010-08-26 2014-02-11 Symantec Corporation Systems and methods for managing data in cloud storage using deduplication techniques
US9087010B2 (en) 2011-12-15 2015-07-21 International Business Machines Corporation Data selection for movement from a source to a target
US10095616B2 (en) 2012-03-28 2018-10-09 Quantum Corporation Garbage collection for virtual environments
US20130282676A1 (en) * 2012-03-28 2013-10-24 Quantum Corporation Garbage collection-driven block thinning
US8676850B2 (en) 2012-04-06 2014-03-18 International Business Machines Corporation Prioritization mechanism for deletion of chunks of deduplicated data objects
US8972672B1 (en) * 2012-06-13 2015-03-03 Emc Corporation Method for cleaning a delta storage system
US8712978B1 (en) 2012-06-13 2014-04-29 Emc Corporation Preferential selection of candidates for delta compression
US9116902B1 (en) 2012-06-13 2015-08-25 Emc Corporation Preferential selection of candidates for delta compression
US9400610B1 (en) 2012-06-13 2016-07-26 Emc Corporation Method for cleaning a delta storage system
US9141301B1 (en) 2012-06-13 2015-09-22 Emc Corporation Method for cleaning a delta storage system
US10135462B1 (en) 2012-06-13 2018-11-20 EMC IP Holding Company LLC Deduplication using sub-chunk fingerprints
US9026740B1 (en) 2012-06-13 2015-05-05 Emc Corporation Prefetch data needed in the near future for delta compression
US8918390B1 (en) 2012-06-13 2014-12-23 Emc Corporation Preferential selection of candidates for delta compression
US9420058B2 (en) 2012-12-27 2016-08-16 Akamai Technologies, Inc. Stream-based data deduplication with peer node prediction
US9699231B2 (en) * 2012-12-27 2017-07-04 Akamai Technologies, Inc. Stream-based data deduplication using directed cyclic graphs to facilitate on-the-wire compression
US10275397B2 (en) * 2013-02-22 2019-04-30 Veritas Technologies Llc Deduplication storage system with efficient reference updating and space reclamation
US9361028B2 (en) 2013-05-07 2016-06-07 Veritas Technologies, LLC Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
US9256612B1 (en) 2013-06-11 2016-02-09 Symantec Corporation Systems and methods for managing references in deduplicating data systems
US9298724B1 (en) 2013-06-14 2016-03-29 Symantec Corporation Systems and methods for preserving deduplication efforts after backup-job failures
US10019323B1 (en) * 2014-03-25 2018-07-10 EMC IP Holding Company LLC Method and system for container data recovery in a storage system
US9703497B2 (en) 2014-06-23 2017-07-11 Hitachi, Ltd. Storage system and storage control method
CN107077456B (zh) 2014-09-25 2020-06-26 慧与发展有限责任合伙企业 用于存储数据的装置、方法和存储介质
CN107077399A (zh) * 2014-10-28 2017-08-18 慧与发展有限责任合伙企业 确定针对垃圾收集的去重复存储区中的未引用页面
US9940234B2 (en) * 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10248793B1 (en) * 2015-12-16 2019-04-02 Amazon Technologies, Inc. Techniques and systems for durable encryption and deletion in data storage systems
US10515009B1 (en) * 2016-03-31 2019-12-24 EMC IP Holding Company LLC Method and system for reducing memory requirements during distributed garbage collection of deduplicated datasets
US10235285B1 (en) 2016-03-31 2019-03-19 EMC IP Holding Company LLC Method and system for distributed garbage collection of deduplicated datasets
US10417202B2 (en) 2016-12-21 2019-09-17 Hewlett Packard Enterprise Development Lp Storage system deduplication
US11132128B2 (en) * 2017-03-24 2021-09-28 Veritas Technologies Llc Systems and methods for data placement in container-based storage systems
US10282127B2 (en) 2017-04-20 2019-05-07 Western Digital Technologies, Inc. Managing data in a storage system
US10809928B2 (en) 2017-06-02 2020-10-20 Western Digital Technologies, Inc. Efficient data deduplication leveraging sequential chunks or auxiliary databases
US10671525B2 (en) 2017-06-21 2020-06-02 International Business Machines Corporation Space reclamation in data deduplication storage systems
US10503608B2 (en) 2017-07-24 2019-12-10 Western Digital Technologies, Inc. Efficient management of reference blocks used in data deduplication
US11068390B2 (en) 2019-02-01 2021-07-20 EMC IP Holding Company LLC Scalable garbage collection for deduplicated storage
US11507305B2 (en) 2019-03-29 2022-11-22 EMC IP Holding Company LLC Concurrently performing normal system operations and garbage collection
US11392490B2 (en) * 2019-03-29 2022-07-19 EMC IP Holding Company LLC Marking impacted similarity groups in garbage collection operations in deduplicated storage systems
US11567913B2 (en) * 2019-04-10 2023-01-31 Veritas Technologies Llc Method and system for improving efficiency in the management of data references
US10872037B2 (en) 2019-04-19 2020-12-22 EMC IP Holding Company LLC Estimating worker nodes needed for performing garbage collection operations
JP7323801B2 (ja) * 2019-11-06 2023-08-09 富士通株式会社 情報処理装置および情報処理プログラム
US11537809B2 (en) * 2019-11-21 2022-12-27 Kyndryl, Inc. Dynamic container grouping
US11392547B2 (en) * 2020-04-09 2022-07-19 Micron Technology, Inc. Using prefix-delete operations for data containers
US11861169B2 (en) * 2020-06-26 2024-01-02 Netapp, Inc. Layout format for compressed data
US11481132B2 (en) 2020-09-18 2022-10-25 Hewlett Packard Enterprise Development Lp Removing stale hints from a deduplication data store of a storage system
US12061814B2 (en) * 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US12093686B2 (en) * 2022-09-26 2024-09-17 Sap Se Code maintenance system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577246A (en) * 1992-09-25 1996-11-19 Lucent Technologies Inc. Database memory compaction and reclamation method
US6304880B1 (en) * 1997-12-12 2001-10-16 International Business Machines Corporation Automated reclamation scheduling override in a virtual tape server
GB9906629D0 (en) * 1999-03-23 1999-05-19 Koninkl Philips Electronics Nv Memory reclamation method
GB9907283D0 (en) * 1999-03-31 1999-05-26 Koninkl Philips Electronics Nv Memory reclamation method
WO2001071506A1 (en) * 2000-03-24 2001-09-27 International Business Machines Corporation Method and apparatus for distinguishing reachable objects and non-reachable objects in an object-based application
US6823351B1 (en) * 2000-05-15 2004-11-23 Sun Microsystems, Inc. Work-stealing queues for parallel garbage collection
US6622226B1 (en) * 2000-07-31 2003-09-16 Microsoft Corporation Method and system for using a mark-list for garbage collection
JP4111881B2 (ja) * 2003-06-30 2008-07-02 エスアーペー アーゲー データ同期制御装置、データ同期制御方法及びデータ同期制御プログラム
US20060173939A1 (en) 2005-01-31 2006-08-03 Baolin Yin Garbage collection and compaction
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
US8650228B2 (en) 2008-04-14 2014-02-11 Roderick B. Wideman Methods and systems for space management in data de-duplication
US8078957B2 (en) * 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8108446B1 (en) * 2008-06-27 2012-01-31 Symantec Corporation Methods and systems for managing deduplicated data using unilateral referencing
US20100211753A1 (en) * 2009-02-19 2010-08-19 Tatu Ylonen Oy Ltd Parallel garbage collection and serialization without per-object synchronization
US8156093B2 (en) * 2009-03-10 2012-04-10 Microsoft Corporaton Memory object sharing for just in time compiled data

Also Published As

Publication number Publication date
US20110167096A1 (en) 2011-07-07
WO2011084854A1 (en) 2011-07-14
US8224874B2 (en) 2012-07-17
JP2013516679A (ja) 2013-05-13
EP2521966B1 (en) 2016-09-21
EP2521966A1 (en) 2012-11-14

Similar Documents

Publication Publication Date Title
JP5642198B2 (ja) 重複排除データシステムから非参照データセグメントを除去するためのシステムおよび方法
US8224875B1 (en) Systems and methods for removing unreferenced data segments from deduplicated data systems
US9336224B2 (en) Systems and methods for providing increased scalability in deduplication storage systems
JP5669867B2 (ja) 重複排除データシステムにおけるガーベジコレクション用のシステムおよび方法
US9298724B1 (en) Systems and methods for preserving deduplication efforts after backup-job failures
US9122692B1 (en) Systems and methods for reducing file-system fragmentation when restoring block-level backups utilizing an identification module, an optimization module, and a restore module
US8874522B2 (en) Managing backups of data objects in containers
US8200926B1 (en) Methods and systems for creating full backups
US9690666B1 (en) Incremental backup operations in a transactional file system
US8984027B1 (en) Systems and methods for migrating files to tiered storage systems
US8924353B1 (en) Systems and methods for copying database files
US8793222B1 (en) Systems and methods for indexing backup content
US8954398B1 (en) Systems and methods for managing deduplication reference data
US9946605B2 (en) Systems and methods for taking snapshots in a deduplicated virtual file system
US9128951B1 (en) Systems and methods for variable-length chunking for deduplication
US8572338B1 (en) Systems and methods for creating space-saving snapshots
US10409497B2 (en) Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
US9785641B2 (en) Reducing a backup time of a backup of data files
US10366076B1 (en) Systems and methods for repairing corrupted data segments in deduplicated data systems
US10635637B1 (en) Method to use previously-occupied inodes and associated data structures to improve file creation performance
US8281096B1 (en) Systems and methods for creating snapshots
US10002050B1 (en) Systems and methods for improving rehydration performance in data deduplication systems
US11847334B2 (en) Method or apparatus to integrate physical file verification and garbage collection (GC) by tracking special segments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131115

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140826

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141028

R150 Certificate of patent or registration of utility model

Ref document number: 5642198

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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