JP2012150792A - 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法 - Google Patents

重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法 Download PDF

Info

Publication number
JP2012150792A
JP2012150792A JP2011274072A JP2011274072A JP2012150792A JP 2012150792 A JP2012150792 A JP 2012150792A JP 2011274072 A JP2011274072 A JP 2011274072A JP 2011274072 A JP2011274072 A JP 2011274072A JP 2012150792 A JP2012150792 A JP 2012150792A
Authority
JP
Japan
Prior art keywords
database
partial
update operation
storage system
backed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011274072A
Other languages
English (en)
Other versions
JP6026738B2 (ja
Inventor
Xianbo Zhang
シーアンボ・チャン
Fanglu Guo
ファングル・グオ
Weibao Wu
ウェイバオ・ウー
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 JP2012150792A publication Critical patent/JP2012150792A/ja
Application granted granted Critical
Publication of JP6026738B2 publication Critical patent/JP6026738B2/ja
Expired - Fee Related 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques

Landscapes

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

Abstract

【課題】 重複排除記憶システムのスケーラビりティを向上させるシステムおよび方法を提供する。
【解決手段】 重複排除記憶システムのスケーラビリティを向上させるコンピュータ実装された方法は、(1)複数の参照オブジェクトを保存するデータベースを識別するステップと、(2)当該データベースの少なくとも1個のサイズ関連特徴が所定の閾値に達したと判定するステップと、(3)当該データベースを、互いに独立に更新可能な複数の部分データベースに分割するステップと、(4)少なくとも1個の部分データベースに保存されている1個以上の参照オブジェクトを更新する更新動作の実行を要求するリクエストを識別するステップと、(5)部分データベースの全数に対する更新動作の実行に伴う処理コストを回避すべく部分データベースの全数より少ない個数に対して更新動作を実行するステップとを含んでいてよい。他の各種システム、方法、およびコンピュータ可読媒体も開示する。
【選択図】なし

Description

重複排除記憶システムは一般に、類似ファイル内で冗長なデータパターンを識別することにより、ファイルの保存に必要な記憶空間の量を減らすために用いられる。例えば、重複排除記憶システムは、複数のファイルをファイルセグメントに分割して、別のファイルから得られた少なくとも1個のファイルセグメントと同一である1個のファイルから得られた少なくとも1個のファイルセグメントを識別し得る。重複排除記憶システムは、特定のファイルセグメントの複数のインスタンスを保存するのではなく、当該ファイルセグメントの単一のインスタンスを保存して、複数のファイルがファイルセグメントの当該インスタンスだけを参照することにより、ファイルの保存に必要な記憶空間の量を減らすことができる。このように、重複排除記憶システムは通常、一意の(すなわち非冗長な)ファイルセグメントだけを保存する。
保存されているファイルセグメントが時期尚早に、または誤って削除されるのを防止すべく、重複排除記憶システムは、1個以上のバックアップ済みファイルが現在特定のファイルセグメントを参照しているか否かを各々示す複数の参照オブジェクト(参照リストおよび/または参照カウント等)を保持し得る。参照オブジェクトが、現在特定のファイルセグメントを参照しているファイルが無いことを示す場合、重複排除記憶システムは当該ファイルセグメントを削除して、同セグメントにより占有されていた記憶空間を再利用し得る。
残念ながら、このような参照オブジェクトは通常、時間の経過に伴い極めて巨大化して扱い難くなり得る単一のデータベースに保存されている。更に、従来の重複排除記憶システムは、特定のファイルセグメントを現在参照しているファイルに対応するよう参照オブジェクトを更新すべく、データベース全体の更新動作を実行することが必要な場合があり得るため、不必要な処理遅延および計算資源の制約が生じる恐れがある。このように、本開示は、重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法の必要性を認識している。
以下に詳述するように、本開示は一般に、重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法に関する。一例において、データ重複排除ソフトウェアはそのような目的を、(1)複数の参照オブジェクト(参照リストおよび/または参照カウント等)を保存するデータベースを識別し、(2)データベースの少なくとも1個のサイズ関連特徴(当該データベースに保存されている参照オブジェクトの数または参照オブジェクトが占有する保存スペースの量等)が所定の閾値に達したと判定し、(3)当該データベースを、互いに独立に更新可能な複数の部分データベースに分割し、(4)少なくとも1個の部分データベースに保存されている1個以上の参照オブジェクトを更新する更新動作の実行を要求するリクエストを識別して、(5)当該部分データベースの全数より少ない個数に対して更新動作を実行することにより達成してもよい。本例では、各参照オブジェクトは、1個以上のバックアップ済みファイルが現在、重複排除記憶システムに保存されている特定の一意のファイルセグメントを参照しているか否かを示し得る。
一例において、データ重複排除ソフトウェアはデータベースを部分データベースに分割したならば、1個以上の新たに生成された参照オブジェクトを保存する有効な部分データベースとして特定の部分データベースを指定し得る。例えば、データ重複排除ソフトウェアは、分割時点においてデータベース内で識別された参照オブジェクトを1個の部分データベースに保存し、次いで別の部分データベースを有効な部分データベースとして指定し得る。本例では、データ重複排除ソフトウェアは、有効な部分データベース内で、分割時点以降に少なくとも1個のファイルが重複排除記憶システムに追加された結果として生成された1個以上の新たな参照オブジェクトを保存し得る。
いくつかの例において、各参照オブジェクトは、重複排除記憶システムに保存されている一意のファイルセグメントを現在参照している1個以上の特定のバックアップ済みファイルを識別する参照リストであってもよい。そのような例において、当該部分データベースの全数より少ない個数に対して実行される更新動作は、部分データベースに保存されている1個以上の参照リストに参照子(例:フィンガープリントまたはハッシュ等)を追加する、または部分データベースに保存されている1個以上の参照リストから参照を削除するステップを含んでいてもよい。1個以上の参照リストに対して追加または削除された参照は、重複排除記憶システムに保存されている特定のバックアップ済みファイルを識別し得る。追加的または代替的に、当該部分データベースの全数より少ない個数に対して実行される更新動作は、1個の部分データベース(有効な部分データベース等)内で、重複排除記憶システムに追加された新たな一意のファイルセグメントを参照する1個以上のバックアップ済みファイルを識別する新たな参照リストを生成するステップを含んでいてもよい。
他の例において、各参照オブジェクトは、重複排除記憶システムに保存されている一意のファイルセグメントを現在参照しているバックアップ済みファイルの数を単に識別する参照カウントであってもよい。これらの例において、当該部分データベースの全数より少ない個数に対して実行される更新動作は、少なくとも1個の参照カウントを増減させて、特定の一意のファイルセグメントを現在参照しているバックアップ済みファイルの数を更新するステップを含んでいてもよい。追加的または代替的に、当該部分データベースの全数より少ない個数に対して実行される更新動作は、重複排除記憶システムに追加された新たな一意ファイルを現在参照しているバックアップ済みファイルセグメントの数を識別する新たな参照カウントを、1個の部分データベース内に、生成するステップを含んでいてもよい。
特定の実施形態において、重複排除記憶システムは、部分データベースに対する更新動作の実行を要求するリクエストを待ち行列に入れるトランザクションキューを含んでいてもよい。一例において、データ重複排除ソフトウェアは、トランザクションキュー内で、少なくとも1個の異なる部分データベースに対する別の更新動作の実行を要求する別のリクエストを識別し得る。本例では、データ重複排除ソフトウェアは、重複排除記憶システムの効率および性能を向上させるべく、異なる部分データベースに対して当該更新動作およびもう一方の更新動作を同時に実行し得る。
別の例において、データ重複排除ソフトウェアは、別の更新動作を実行すべく所定の数の別のリクエストを識別するまで当該更新動作の実行を延期し得る。例えば、データ重複排除ソフトウェアは、トランザクションキュー内で、当該更新動作と同一の部分データベースに対して別の更新動作の実行を要求する別のリクエストを識別し得る。本例では、データ重複排除ソフトウェアは、トランザクションキュー内で識別される別のリクエストの数が所定の数に達したと判定されたならば、重複排除記憶システムの効率および性能を向上させるべく、同一の部分データベースに対して当該更新動作およびもう一方の更新動作を順次実行し得る。
以下に詳述するように、本明細書に記述するシステムおよび方法は、巨大で扱い難いデータベースをより小さい部分データベースに分割することにより、重複排除記憶システムのスケーラビリティを向上させてもよい。特に、本明細書に記述する各種のシステムおよび方法は、個数が制限された部分データベースに対して更新動作を実行することにより、重複排除記憶システムが、巨大で扱い難いデータベースに対してそのような更新動作を実行するのに伴う処理コストを回避可能にさせ得る。
本明細書に記述する一般的原理に従い、上述の実施形態の任意の特徴を互いに組み合わせて用い得る。これらおよび他の実施形態、特徴、および利点は、添付の図面および請求項と合わせて以下の詳細な説明を精査すればより完全に理解されよう。
添付の図面は、多くの例示的な実施形態を示すと共に、本明細書の一部をなす。これらの図面は、以下の説明と共に、本開示の各種の原理を例示および説明するものである。
重複排除記憶システムのスケーラビリティを向上させる例示的なシステムのブロック図である。 重複排除記憶システムのスケーラビリティを向上させる例示的なシステムのブロック図である。 重複排除記憶システムのスケーラビリティを向上させる例示的な方法のフロー図である。 少なくとも1個の部分データベースおよび例示的な参照リストに対して更新動作を実行する例示的なリクエストを示す図である。 本明細書に記述および/または図示する1個以上の実施形態を実装可能な例示的コンピュータシステムのブロック図である。 本明細書に記述および/または例示する1個以上の実施形態を実装可能な例示的な計算ネットワークのブロック図である。
これら図面全体を通じて、同一の参照符号および記述は同様の、しかし必ずしも同一ではない要素を示す。本明細書に記述する例示的な実施形態には各種の変型および代替方式があり得るが、特定の実施形態を例として図面に示して本明細書において詳述する。しかし、本明細書に記述する例示的な実施形態は、開示する特定の形式に限定することを意図していない。むしろ、本開示は、添付の請求範囲内で全ての変型、均等物、および代替物を包含している。
以下に詳述するように、本開示は一般に、重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法に関する。本明細書で用いる「重複排除記憶システム」という用語は一般に、バックアップ済みファイル内の冗長なデータパターンを識別してデータの単一インスタンスだけを保存することによりそのような冗長性を無くすことが可能な任意の種類または形式の記憶システムまたは装置に関する。以下に詳述するように、データの当該単一インスタンスは、重複排除記憶システムでバックアップされた単一のファイルまたは複数のファイルにより参照され得る。
図1、2を参照しながら、重複排除記憶システムのスケーラビリティを向上させる例示的なシステムについて以下に詳細に説明する。対応するコンピュータ実装された方法の詳細な説明もまた図3、4を参照しながら与える。また、本明細書に記述する1個以上の実施形態を実装可能な例示的コンピュータシステムおよびネットワークアーキテクチャの詳細について各々図5、6を参照しながら説明する。
図1は、重複排除記憶システムのスケーラビリティを向上させる例示的なシステム100のブロック図である。本図に示すように、例示的なシステム100は、1個以上のタスクを実行する1個以上のモジュール102を含んでいてもよい。例えば、以下に詳述するように、例示的なシステム100は、複数の参照オブジェクト(参照リストおよび/または参照カウント等)を保存するデータベースを識別すべくプログラムされた識別モジュール104を含んでいてもよい。各参照オブジェクトは、1個以上のバックアップ済みファイルが、重複排除記憶システムに保存されている特定の一意のファイルセグメントを現在参照しているか否かを示し得る。
また、以下に詳述するように、例示的なシステム100は、データベース(データベースに保存されている参照オブジェクトの数または参照オブジェクトにより占有される記憶空間の量等)の少なくとも1個のサイズ関連特徴が所定の閾値に達したと判定すべくプログラムされた分割モジュール106を含んでいてもよい。データベースのサイズ関連特徴が所定の閾値に達したと判定されたならば、分割モジュール106はデータベースを、互いに独立に更新可能な複数の部分データベースに分割し得る。
例示的なシステム100はまた、少なくとも1個の部分データベースに保存されている1個以上の参照オブジェクトを更新する更新動作の実行を要求するリクエストを識別し、次いで当該部分データベースの全数より少ない個数に対して要求された更新動作実行すべくプログラムされた更新モジュール108を含んでいてよい。別々の要素として例示されているが、図1の1個以上のモジュール102は単一のモジュールまたはアプリケーション(データ重複排除ソフトウェア(例:シマンテック社のNETBACKUP PUREDISK)等)の一部を表していてもよい。
特定の実施形態において、図1の1個以上のモジュール102は、計算装置により実行された際に、当該計算装置に1個以上のタスクを実行させ得る1個以上のソフトウェアアプリケーションまたはプログラムを表していてもよい。例えば、以下に詳述するように、1個以上のモジュール102は、図2に示す装置(例:計算装置202(1)〜(N)および/またはサーバ206)、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部等、1個以上の計算装置で動作すべく保存および構成されたソフトウエアモジュールを表していてもよい。図1の1個以上のモジュール102はまた、1個以上のタスクを実行すべく構成された1個以上の専用コンピュータの全体または一部を表していてもよい。
図1に示すように、例示的なシステム100はまた、1個以上のデータベース120を含んでいてもよい。データベース120は、単一のデータベースまたは計算装置の一部または複数のデータベースまたは計算装置を表していてもよい。いくつかの実施形態において、例示的なシステム100は、1個以上のバックアップ済みファイルが、重複排除記憶システムに保存されている特定の一意のファイルセグメントを現在参照しているか否かを各々示す参照オブジェクトを保存すべく構成された参照オブジェクトデータベース122を含んでいてもよい。
一実施形態において、例示的なシステム100はまた、参照オブジェクトデータベース122から分割された1個以上の部分データベース126(1)〜(N)を含んでいてもよい。また、例示的なシステム100は、重複排除記憶システムに保存されているバックアップ済みファイルの一部を表す一意のファイルセグメントを保存すべく構成されたファイルセグメントデータベース124を含んでいてもよい。図1には示していないが、一実施形態において、参照オブジェクトおよび対応するファイルセグメントは単一のデータベースに保存されていてもよい。
図1のデータベース120は、1個以上の計算装置の一部を表していてもよい。例えば、データベース120は、図2のサーバ206の一部、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部を表していてもよい。あるいは、図1のデータベース120は、図2のサーバ206、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部等の計算装置によりアクセス可能な1個以上の物理的に別々の装置を表していてもよい。
図1の例示的なシステム100は、各種の方法で実現し得る。例えば、例示的なシステム100の全体または一部が、図2の例示的な重複排除記憶システム200の一部を表していてもよい。図2に示すように、重複排除記憶システム200は、ネットワーク204を介してサーバ206と通信する1個以上の計算装置202(1)〜(N)を含んでいてもよい。重複排除記憶システム200はまた、1個以上のモジュール102および/またはデータベース120を含んでいてもよい。
一実施形態において、また以下に詳述するように、サーバ206は、(1)複数の参照オブジェクト(参照リストおよび/または参照カウント等)を保存するデータベース(例:参照オブジェクトデータベース122)を識別し、(2)データベースの少なくとも1個のサイズ関連特徴(データベースに保存されている参照オブジェクトの数または参照オブジェクトにより占有される記憶空間の量等)が所定の閾値に達したと判定し、(3)当該データベースを、互いに独立に更新可能な複数の部分データベース(部分データベース126(1)〜(N))に分割し、(4)少なくとも1個の部分データベースに保存されている1個以上の参照オブジェクトを更新する更新動作の実行を要求するリクエストを識別し、次いで(5)部分データベースの全数(すなわちデータベース全体)に対する更新動作の実行に伴う処理コストを回避すべく全数より少ない個数の部分データベースに対して更新動作を実行することにより、重複排除記憶システム200のスケーラビリティを向上させるべく1個以上のモジュール102によりプログラムされていてもよい。
計算装置202(1)〜(N)は一般に、コンピュータ実行可能命令の読出しおよびネットワーク204を介してサーバ206と通信可能な任意の種類または形式の計算装置を表していてよい。計算装置202(1)〜(N)の例として、ラップトップ、デスクトップ、サーバ、携帯電話、携帯情報端末(PDA)、マルチメディアプレーヤー、組み込みシステム、これらの1個以上の組合せ、図5の例示的な計算システム510、または他の任意の適当な計算装置が含まれるが、これらに限定されない。
サーバ206は一般に、重複排除記憶システム200の一部として重複排除およびデータ保存が可能な任意の種類または形式の計算装置を表していてよい。サーバ206の例として、各種のデータベースサービス、バックアップサービスを提供すべく、および/または特定のソフトウェアアプリケーションを実行すべく構成されたアプリケーションサーバ、バックアップサーバ、およびデータベースサーバが含まれるが、これらに限定されない。
ネットワーク204は一般に、通信またはデータ転送を容易にすることが可能な任意の媒体またはアーキテクチャを表す。ネットワーク204の例として、イントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、インターネット、電力線通信(PLC)、セルラネットワーク(例:GSMネットワーク)、図6の例示的なネットワークアーキテクチャ600等が含まれるが、これらに限定されない。ネットワーク204は、無線または有線接続を用いた通信またはデータ転送を容易にし得る。一実施形態において、ネットワーク204は計算装置202(1)〜(N)とサーバ206間の通信を容易にし得る。
図3は、重複排除記憶システムのスケーラビリティを向上させる例示的なコンピュータに実装された方法300のフロー図である。図3に示すステップは、任意の適当なコンピュータ実行可能コードおよび/または計算システムにより実行し得る。いくつかの実施形態において、図3に示すステップは、図1のシステム100の構成要素、図2の重複排除記憶システム200、図5の計算システム510、および/または図6の例示的なネットワークアーキテクチャ600の一部のうち1個以上により実行し得る。
図3に示すように、ステップ302において、本明細書に記述する各種システムの1個以上により、複数の参照オブジェクトを保存するデータベースを識別し得る。例えば、識別モジュール104は、図2のサーバ206の一部として、複数の参照オブジェクトを保存する参照オブジェクトデータベース122を識別し得る。本例では、参照オブジェクトデータベース122に保存されている各参照オブジェクトは、1個以上のバックアップ済みファイルが、重複排除記憶システム200(例えばファイルセグメントデータベース124内の)に保存されている特定の一意のファイルセグメントを現在参照しているか否かを示し得る。また、各参照オブジェクトに関連付けられた一意のファイルセグメントは、1個以上のバックアップ済みファイルの一部を表していてもよい。
本明細書に記述するシステムは、各種の方法でステップ302を実行し得る。一例において、識別モジュール104は、重複排除記憶システム200が構築、構成、または初期化されたならば、参照オブジェクトデータベース122を識別し得る。別の例において、識別モジュール104は、第1の参照オブジェクトが生成されて参照オブジェクトデータベース122に保存された際に参照オブジェクトデータベース122を識別し得る。
本明細書で用いる「参照オブジェクト」という用語は一般に、1個以上のバックアップ済みファイルが、重複排除記憶システム200に保存されている特定の一意のファイルセグメントを現在参照しているか否かを示すことが可能な任意の種類または形式の参照子または識別子を指す。そのような参照オブジェクトの例として、重複排除記憶システム200に保存されている一意のファイルセグメントを現在参照している1個以上の特定のバックアップ済みファイルを識別する参照リスト(図4の参照リスト402等)、重複排除記憶システム200に保存されている一意のファイルセグメントを現在参照しているバックアップ済みファイルの数を単に識別する参照カウント、あるいは1個以上のバックアップ済みファイルが、重複排除記憶システム200に保存されている特定の一意のファイルセグメントを現在参照しているか否かを識別可能な他の任意の適当な参照子が含まれるが、これらに限定されない。
再び図3を参照するに、ステップ304において、本明細書に記述する各種システムは、データベースの少なくとも1個のサイズ関連特徴が所定の閾値に達したと判定し得る。例えば、分割モジュール106は、図2のサーバ206の一部として、参照オブジェクトデータベース122に保存されている参照オブジェクトの数が所定の閾値に達したと判定し得る。別の例において、分割モジュール106は、参照オブジェクトデータベース122に保存されている参照オブジェクトが、重複排除記憶システム200の所定量の記憶空間を消費していると判定し得る。
本明細書に記述するシステムは、各種の方法でステップ304を実行し得る。一例において、分割モジュール106は、参照オブジェクトデータベース122を監視して所定の閾値に達した参照オブジェクトデータベース122のサイズ関連特徴を識別し得る。例えば、分割モジュール106は、参照オブジェクトデータベース122に保存されている参照オブジェクトの数をカウントして、カウントされた参照オブジェクトの数が所定の閾値に達したかまたは上回ったと判定し得る。別の例において、分割モジュール106は、参照オブジェクトデータベース122を監視すべく構成された別のソフトウェア構成要素から、参照オブジェクトデータベース122のサイズ関連特徴が所定の閾値に達したことを示す通知を受け取り得る。
再び図3を参照するに、ステップ306において、本明細書に記述する各種システムはデータベースを、互いに独立に更新可能な複数の部分データベースに分割し得る。例えば、分割モジュール106は、図2のサーバ206の一部として、参照オブジェクトデータベース122を部分データベース126(1)〜(N)に分割し得る。本例では、部分データベース126(1)〜(N)は各々、参照オブジェクトデータベース122に割り当てられた記憶空間の一部を表していてよく、各々の部分データベース126(1)〜(N)は互いに独立に更新できるため部分データベースの全数126(1)〜(N)(実質的に参照オブジェクトデータベース122に等価である)を同時に更新することに伴う処理コストを減らし得る。また、分割モジュール106は、局所性の原理に基づいて参照オブジェクトを保存すべく部分データベース126(1)〜(N)を構成し得る。
本明細書に記述するシステムは、各種の方法でステップ306を実行し得る。一例において、分割モジュール106は、分割時点において参照オブジェクトデータベース122内で識別された参照オブジェクトを部分データベース126(1)内に保存し得る。本例では、分割モジュール106は、参照オブジェクトデータベース122が分割された後で少なくとも1個のファイルが重複排除記憶システム200に追加された結果として生成された1個以上の新たな参照オブジェクトを保存する有効な部分データベースとして部分データベース126(N)を指定し得る。
いくつかの実施形態において、分割モジュール106は、参照オブジェクトデータベース122を2個の部分データベースに単に分割して、一方の部分データベースが分割時点において参照オブジェクトデータベース122内で識別された参照オブジェクトを保存し、もう一方の部分データベースが新たな参照オブジェクトを保存する有効な部分データベースであるようにしてもよい。そのような実施形態において、分割モジュール106は更に、必要に応じて(例えば、ある部分データベースの少なくとも1個のサイズ関連特徴が所定の閾値に達したと判定された場合)少なくとも1個の部分データベースを追加的な部分データベースに分割してもよい。
他の実施形態において、分割モジュール106は、参照オブジェクトデータベース122のサイズ関連特徴が所定の閾値に達したと判定されたならば直ちに、参照オブジェクトデータベース122を複数の部分データベース(例えば100個の部分データベース)に分割し得る。例えば、分割モジュール106は、参照オブジェクトデータベース122を100個の異なるデータベースに分割して、少なくとも1個の部分データベースが分割時点において参照オブジェクトデータベース122内で識別された参照オブジェクトを保存し、他の1個の部分データベースが新たな参照オブジェクトを保存する有効な部分データベースであるようしてもよい。本例では、いくつかの部分データベースは無効であって、分割モジュール106がそのような部分データベースを新たな参照オブジェクトを保存する有効な部分データベースとして指定するまで空のままであってもよい。
再び図3を参照するに、ステップ308において、本明細書に記述する各種システムは、少なくとも1個の部分データベース内で1個以上の参照オブジェクトを更新する更新動作の実行を要求するリクエストを識別し得る。例えば、更新モジュール108は、図2のサーバ206の一部として、部分データベース126(N)に保存されている複数の参照オブジェクトを更新する更新動作の実行を要求するリクエスト(図4のリクエスト400等)を識別し得る。以下に詳述するように、要求された更新動作は、重複排除記憶システム200を管理するための各種動作のいずれかを含んでいてもよい。
本明細書に記述するシステムは、各種の方法でステップ308を実行し得る。いくつかの実施形態において、図2の重複排除記憶システム200は、更新動作の実行を要求するリクエストを待ち行列に入れるトランザクションキューを含んでいてもよい。トランザクションキューは、要求された更新動作を、対応するリクエストがトランザクションキューに入れられた順序で実行するのを容易にすべく構成された先入れ先出し(FIFO)方式であってもよい。一例において、更新モジュール108は、計算装置202(1)がリクエストをネットワーク204を介してトランザクションキューに入れた際に更新動作の実行を要求するリクエストを識別してもよい。別の例において、更新モジュール108は、トランザクションキュー内で、リクエストが次に実行される場合に更新動作の実行を要求するリクエストを識別してもよい。
図4に示すように、リクエスト400は、実行したい更新動作(本例では、「ファイル参照子を参照リストに追加」)を識別する情報、更新したい参照オブジェクト(本例では「0xEF9A0349」)に関連付けられた一意のファイルセグメントを参照するバックアップ済みファイルの参照子(例:フィンガープリントまたはハッシュ)、更新したい参照オブジェクト(本例では「0xA2F1B921」)に関連付けられた一意のファイルセグメントの参照子(例:フィンガープリントまたはハッシュ)、参照オブジェクトが保存されている部分データベース(本例では「部分データベース126(N)」)を識別する部分データベース識別子、およびリクエスト400がトランザクションキューに入れられた時刻を示すタイムスタンプを含んでいてもよい。
1個以上の実施形態において、更新モジュール108は、タイムスタンプが示す時刻に基づいて、トランザクションキュー内で待ち行列に入れられたリクエストをソートし得る。複数のリクエストに含まれる複数のタイムスタンプが同一時刻を示す場合、更新モジュール108は更に、参照オブジェクトに関連付けられた一意のファイルセグメントの参照子に基づいてそれらのリクエストをソートし得る。また、更新モジュール108は、参照オブジェクトに関連付けられた一意のファイルセグメントの参照子に基づいて、データベース126(1)〜(N)に保存されている参照オブジェクトをソート(または部分データベース126(1)〜(N)に保存されている参照オブジェクトがソート済みであることを保証)し得る。以下に詳述するように、トランザクションキューおよび部分データベース126(1)〜(N)をこのようにソートすることにより、更新モジュール108は、トランザクションキューを部分データベース126(1)〜(N)の少なくとも1個(但し全部ではない)に保存されている参照オブジェクトと単にマージする(マージソートの一部として)ことにより、要求された更新動作を実行し得る。
再び図3を参照するに、ステップ310において、本明細書に記述する各種システムは、部分データベースの全数に対する更新動作の実行に伴う処理コストを回避すべく全数より少ない個数の部分データベースに対して更新動作を実行し得る。例えば、更新モジュール108は、図2のサーバ206の一部として、部分データベース126(N)に保存されている複数の参照オブジェクトに対して要求された更新動作を実行し得る。本例では、部分データベース126(N)に対して更新動作を処理するだけで、更新モジュール108は、更新動作の影響を受けない他の参照オブジェクト(例:部分データベース126(1)に保存されている参照オブジェクト)を検索することにより生じる処理コストを回避し得る。
本明細書に記述するシステムは、各種の方法でステップ310を実行し得る。一例において、重複排除記憶システム200にファイルが追加された場合、更新動作は、バックアップ済みファイルの一部を表すファイルセグメントに関連付けられた参照リストに、バックアップ済みファイルを識別する参照子を追加し得る。本例では、参照リストに追加される参照子は、バックアップ済みファイルのフィンガープリントまたはハッシュを含む任意の種類または形式のファイル参照子または識別子であってもよい。同様の例において、重複排除記憶システム200にファイルが追加された場合、更新動作は参照カウントを増やして、増加した数のバックアップ済みファイルが参照カウントに関連付けられたファイルセグメントを現在参照していることを示し得る。
別の例において、重複排除記憶システム200からファイルが削除された場合、更新動作は、前のバックアップ済みファイルの一部を表すファイルセグメントに関連付けられた参照リストから、前のバックアップ済みファイルを識別する参照子を削除し得る。本例では、参照リストから削除される参照子は、バックアップ済みファイルのフィンガープリントまたはハッシュを含む任意の種類または形式のファイル参照子または識別子であってもよい。更に別の例において、重複排除記憶システム200からファイルが削除された場合、更新動作は参照カウントを減らして、減少した数のバックアップ済みファイルが参照カウントに関連付けられたファイルセグメントを現在参照していることを示し得る。
更なる例において、重複排除記憶システム200に追加されたファイルが一意のファイルセグメントとして保存されなかったデータの少なくとも一部を含んでいる場合、更新動作はまた、重複排除記憶システム200に追加された新たな一意ファイルを参照する1個以上のバックアップ済みファイルを識別する新たな参照リストを有効な部分データベース内に生成し得る。まだ更なる例において、重複排除記憶システム200に追加されたファイルが一意のファイルセグメントとして保存されなかったデータの少なくとも一部を含んでいる場合、更新動作は、重複排除記憶システム200に追加された新たな一意ファイルを現在参照しているバックアップ済みファイルの数を識別する新たな参照カウントを部分データベース内に生成し得る。
1個以上の実施形態において、参照リストから前のバックアップ済みファイルを識別する参照子を削除したならば、あるいは参照カウントを減らしたならば、更新モジュール108は、参照リストまたは参照カウントが、どのバックアップ済みファイルも特定の一意のファイルセグメントを現在参照していないことを示していると判定し得る。このような実施形態において、更新モジュール108は、重複排除記憶システム200が再利用できるように参照リストまたは参照カウントに関連付けられた一意のファイルセグメントにマーク付けし得る。例えば、重複排除記憶システム200は、記憶再利用動作の一部として、マーク付けされたファイルセグメントを削除して、同セグメントが占有していた記憶空間を再利用し得る。
いくつかの実施形態において、更新動作が以前に生成された少なくとも1個の参照オブジェクトの更新を含んでいる場合、更新モジュール108は、更新動作の実行に先立って更新動作の影響を受ける参照オブジェクトを保存する部分データベースを識別し得る。例えば、更新モジュール108は、部分データベース126(N)が、重複排除記憶システム200内で修正されたバックアップ済みファイルの一部を表す特定の一意のファイルセグメントに関連付けられた参照リストを保存していると判定し得る。
一例において、更新モジュール108は、これらの参照リストに関連付けられた一意のファイルセグメントを識別して、局所性原理と合わせて一意のファイルセグメントを用いて、部分データベース126(N)がこれらの参照リストの保存場所であると識別することにより、これらの参照リストが部分データベース126(N)に保存されていると判定し得る。別の例において、更新モジュール108は、更新動作の実行を要求するリクエスト内で、部分データベース126(N)がこれらの参照リストの保存場所であると識別する部分データベース識別子(図4のリクエスト400に含まれる部分データベース識別子)を特定することにより、これらの参照リストが部分データベース126(N)に保存されていると判定し得る。
更に図4に示すように、参照リスト402は、参照リスト402(本例では「0xA2F1B921」)に関連付けられた一意のファイルセグメント参照子、および参照リスト402(本例では「0x1738F12A」、「0xD128B379」、および「0xEF9A0349」)に関連付けられた一意のファイルセグメントを参照するバックアップ済みファイルの参照リストを識別する情報を含んでいてもよい。本例では、参照子0xA2F1B921で表される一意のファイルセグメントは、参照子0x1738F12A、0xD128B379、および0xEF9A0349で表される各々のバックアップ済みファイルの一部を構成または生成することができる。このように、参照子0x1738F12A、0xD128B379、および0xEF9A0349で表されるバックアップ済みファイルは、互いに同一のデータの少なくとも一部を共有していてもよい。
1個以上の実施形態において、更新モジュール108は、重複排除記憶システム200の効率および性能の最適化を試みる各種の技術を実装し得る。一例において、更新モジュール108は、少なくとも1個の異なる部分データベースに保存されている1個以上の参照オブジェクトを更新する別の更新動作の実行を要求する別のリクエストを識別し得る。本例では、更新モジュール108は次いで、異なる部分データベースに対する更新動作およびもう一方の更新動作を同時に実行し得る。例えば、部分データベース126(1)に保存されている参照リストに対する別の更新動作の実行を要求する別のリクエストを識別したならば、更新モジュール108は、部分データベース126(N)に対する更新動作および部分データベース126(1)に対する別の更新動作を同時に実行し得る。
別の例において、更新モジュール108は、当該更新動作と同一の部分データベースに対する別の更新動作の実行を要求する所定の数の別のリクエストを識別するまで、更新動作の実行を延期(または遅延)し得る。例えば、更新動作の実行に先立って、更新モジュール108は、部分データベース126(N)に対する別の更新動作の実行を要求する各種の別のリクエストをトランザクションキュー内で識別し得る。本例では、更新モジュール108は次いで、トランザクションキュー内で識別された別のリクエストの数が、別のリクエスト所定数に達したと判定し得る。
トランザクションキュー内で識別された別のリクエストの数が別のリクエストの所定数に達したと判定された後で、更新モジュール108は、部分データベース126(N)に対して更新動作およびもう一方の更新動作を順次実行し得る。例えば、トランザクションキューおよび部分データベース126(N)が(上述の)マージソートの一環としてソートされている場合、更新モジュール108は、単にトランザクションキューを部分データベース126(N)に保存されている参照オブジェクトにマージすることにより、部分データベース126(N)に対する更新動作およびもう一方の更新動作を実行し得る。より具体的には、更新モジュール108は、トランザクションキューを部分データベース126(N)に保存されている参照オブジェクトにマージするために、トランザクションキューと部分データベース126(N)の単一パスすなわち比較を実行することにより、部分データベース126(N)に保存されている、影響を受けた参照オブジェクトを識別し得る。ステップ310が完了したならば、図3の例示的な方法300を終了し得る。
上述のように、本明細書に記述するシステムおよび方法は、巨大で扱い難いデータベースをより小さい部分データベースに分割することにより、重複排除記憶システムのスケーラビリティを向上させ得る。特に、本明細書に記述する各種システムおよび方法は、個数が制限された部分データベースに対して更新動作を実行することにより、重複排除記憶システムが、巨大で扱い難いデータベースに対してそのような更新動作を実行することに伴う処理コストを回避できるようにし得る。
図5は、本明細書に記述および/または例示する1個以上の実施形態を実装可能な例示的な計算システム510のブロック図である。計算システム510は概ね、任意のシングルまたはマルチプロセッサ計算装置、あるいはコンピュータ可読な命令を実行可能なシステムを表している。計算システム510の例として、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散計算システム、携帯機器、または他の任意の計算システムまたは装置が含まれるが、これらに限定されない。計算システム510は、その最も基本的な構成において、少なくとも1個のプロセッサ514およびシステムメモリ516を含んでいてもよい。
プロセッサ514は一般に、データの処理または命令の解釈および実行を行うことができる任意の種類または形式の処理ユニットを表している。特定の実施形態において、プロセッサ514は、ソフトウェアアプリケーションまたはモジュールから命令を受け取り得る。これらの命令はプロセッサ514に、本明細書に記述および/または図示する1個以上の例示的な実施形態の機能を実行させ得る。例えば、プロセッサ514は、単独で、または他の要素と組み合わせて、本明細書に記述するステップの識別、判定、分割、実行、保存、指定、追加、削除、生成、マーク付け、および延期のうち1個以上を実行可能および/または実行するための手段であってもよい。プロセッサ514はまた、本明細書に示す他の任意のステップ、方法、または処理を実行してもよく、および/または実行するための手段であってもよい。
システムメモリ516は一般に、データおよび/または他のコンピュータ可読な命令を保存ができる任意の種類または形式の揮発性または不揮発性記憶システム装置または媒体を表している。システムメモリ516の例として、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、フラッシュメモリ、または他の任意の適当なメモリ装置を含んでいるが、これらに限定されない。必須ではないが、特定の実施形態において、計算システム510は揮発性メモリ装置(システムメモリ516)および不揮発性記憶装置(以下に詳細に記載するように、例えば一次記憶装置532)を含んでいてもよい。一例において、図1のモジュール102の1個以上がシステムメモリ516に搭載されていてもよい。
特定の実施形態において、例示的な計算システム510はまた、プロセッサ514およびシステムメモリ516に加えて1個以上の構成要素または要素を含んでいてもよい。例えば、図5に示すように、計算システム510は、各々通信基盤512を介して相互接続し得る、メモリコントローラ518、入出力(I/O)コントローラ520、および通信インターフェース522を含んでいてもよい。通信基盤512は一般に、計算装置の1個以上の構成要素間の通信を容易にすることができる任意の種類または形式の基盤を表している。通信基盤512の例として、通信バス(ISA、PCI、PCIe等、または同様のバス)およびネットワークが含まれるが、これらに限定されない。
メモリコントローラ518は一般に、計算システム510の1個以上の構成要素間でメモリやデータの取り扱いまたは通信制御が行える任意の種類または形式の装置を表している。例えば、特定の実施形態において、メモリコントローラ518は通信基盤512を介して、プロセッサ514、システムメモリ516、および入出力コントローラ520の間の通信を制御し得る。特定の実施形態において、メモリコントローラ518は、単独で、または他の要素と組み合わせて、本明細書に記述および/または図示する1個以上のステップまたは特徴の識別、判定、分割、実行、保存、指定、追加、削除、生成、マーク付け、および延期を実行してもよく、および/または実行するための手段であってもよい。
入出力コントローラ520は一般に、計算装置の入出力機能の調整および/または制御を行うことができる任意の種類または形式のモジュールを表している。例えば、特定の実施形態において、入出力コントローラ520は、プロセッサ514、システムメモリ516、通信インターフェース522、ディスプレイアダプタ526、入力インターフェース530、および記憶ンターフェース534等、計算システム510の1個以上の要素間のデータ転送を制御または容易にし得る。入出力コントローラ520は、単独で、または他の要素と組み合わせて、例えば、本明細書に記述するステップを識別、判定、分割、実行、保存、指定、追加、削除、生成、マーク付け、および延期のうち1個以上を実行するために使用してもよく、および/または実行するための手段であってもよい。入出力コントローラ520はまた、本開示において記述した他のステップおよび特徴を実行するために使用してもよく、および/または実行するための手段であってもよい。
通信インターフェース522は概ね、例示的な計算システム510と1個以上の追加的な装置の間の通信を容易にすることができる任意の種類または形式の通信装置またはアダプタを表している。例えば、特定の実施形態において、通信インターフェース522は、計算システム510と追加的な計算システムを含む私的または公的ネットワーク間の通信およびを容易にし得る。通信インターフェース522の例として、有線ネットワークインターフェース(ネットワークインターフェースカード等)、無線ネットワークインターフェース(無線ネットワークインターフェースカード等)、モデム、および他の任意の適当なインターフェースを含んでいるが、これらに限定されない。少なくとも1個の実施形態において、通信インターフェース522は、インターネット等のネットワークへの直接的な接続を介して遠隔サーバに直接接続し得る。通信インターフェース522はまた、例えばローカルエリアネットワーク(イーサネットネットワーク等)、パーソナルエリアネットワーク、電話またはケーブルネットワーク、携帯電話接続、衛星データ接続、または他の任意の適当な接続を介してそのような接続を間接的に行い得る。
特定の実施形態において、通信インターフェース522はまた、外部バスまたは通信チャネルを介して計算システム510と1個以上の追加的なネットワークまたは記憶システムとの間の通信を容易にすべく構成されたホストアダプタを表していてもよい。ホストアダプタの例として、SCSIホストアダプタ、USBホストアダプタ、IEEE1394ホストアダプタ、SATAおよびeSATAホストアダプタ、ATAおよびPATAがホストアダプタ、ファイバーチャネルインターフェースアダプタ、イーサネット・アダプタ等が含まれるが、これらに限定されない。通信インターフェース522により、計算システム510が分散または遠隔計算に係わることも可能になり得る。例えば、通信インターフェース522は、実行のため遠隔装置から命令を受信、および遠隔装置に命令を送信し得る。特定の実施形態において、通信インターフェース522は、単独で、または他の要素と組み合わせて、本明細書に開示するステップの識別、判定、分割、実行、保存、指定、追加、削除、生成、マーク付け、および延期のうち1個以上を実行してもよく、および/または実行するための手段であってもよい。通信インターフェース522はまた、本開示に記述する他のステップおよび特徴を実行するために使用してもよく、および/または実行するための手段であってもよい。
図5に示すように、計算システム510はまた、ディスプレイアダプタ526を介して通信基盤512に接続された少なくとも1個のディスプレイ装置524を含んでいてもよい。ディスプレイ装置524は一般に、ディスプレイアダプタ526により転送された情報を視覚的に表示できる任意の種類または形式の装置を表している。同様に、ディスプレイアダプタ526は一般に、ディスプレイ装置524上で表示すべく通信基盤512から(または当分野で公知のフレームバッファから)のグラフィックス、テキスト、および他のデータを転送すべく構成された任意の種類または形式の装置を表している。
図5に示すように、例示的な計算システム510はまた、入力インターフェース530を介して通信基盤512に接続された少なくとも1個の入力装置528を含んでいてもよい。入力装置528は一般に、コンピュータまたは人間のいずれかにより生成された入力を例示的な計算システム510に与えることができる任意の種類または形式の入力装置を表している。入力装置528の例として、キーボード、位置指示装置、音声認識装置、または他の任意の入力装置を含んでいるが、これらに限定されない。少なくとも1個の実施形態において、入力装置528は、単独で、または他の要素と組み合わせて、本明細書に開示するステップの識別、判定、分割、実行、保存、指定、追加、削除、生成、マーク付け、および延期のうち1個以上を実行してもよく、および/または実行するための手段であってもよい。入力装置528はまた、本開示に記述する他のステップおよび特徴を実行するために使用してもよく、および/または実行するための手段であってもよい。
図5に示すように、例示的な計算システム510はまた、記憶ンターフェース534を介して通信基盤512に接続された一次記憶装置532およびバックアップ記憶装置533を含んでいてもよい。記憶装置532および533は一般に、データおよび/または他のコンピュータ可読な命令を保存できる任意の種類または形式の記憶システムまたは媒体を表している。例えば、記憶装置532および533は、磁気ディスクドライブ(例:いわゆるハードディスク)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブ等であってもよい。記憶ンターフェース534は一般に、記憶装置532および533と計算システム510の他の構成要素の間でデータを転送する任意の種類または形式のインターフェースまたは装置を表している。一例において、図1のデータベース120は一次記憶装置532に保存されていてもよい。
特定の実施形態において、記憶装置532および533は、コンピュータソフトウェア、データ、または他のコンピュータ可読情報を保存すべく構成された着脱可能記憶装置の読み出しおよび/または書き込みを行うべく構成されていてもよい。適当な着脱可能記憶装置の例として、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリ装置等が含まれるが、これらに限定されない。記憶装置532および533はまた、コンピュータソフトウェア、データ、または他のコンピュータ可読命令を計算システム510にロードできる他の類似構造または装置を含んでいてもよい。例えば、記憶装置532および533は、ソフトウェア、データ、または他のコンピュータ可読情報の読み出しおよび書き込みを行うべく構成されていてもよい。記憶装置532および533はまた、計算システム510の一部であってもよく、あるいは他のインターフェースシステムを介してアクセスされる別個の装置であってもよい。
特定の実施形態において、記憶装置532および533は例えば、単独で、または他の要素と組み合わせて、本明細書に開示するステップの識別、判定、分割、実行、保存、指定、追加、削除、生成、マーク付け、および延期のうち1個以上を実行するために使用してもよく、および/または実行するための手段であってもよい。記憶装置532および533はまた、本開示に記述するステップおよび特徴を実行するために使用してもよく、および/または実行するための手段であってもよい。
他の多くの装置またはサブシステムが計算システム510に接続されていてもよい。逆に、図5に示す全ての構成要素および装置は、本明細書に記述および/または図示する実施形態の実施に必要な訳ではない。上述の装置およびサブシステムはまた、図5に示すものとは異なる仕方で相互接続されていてもよい。計算システム510はまた、任意の数のソフトウェア、ファームウェア、および/またはハードウェア構成を採用してもよい。例えば、本明細書に開示する1個以上の例示的な実施形態は、コンピュータ可読媒体上のコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、またはコンピュータ制御ロジックとも称する)として符号化されてもよい。「コンピュータ可読媒体」という用語は一般に、任意の形式の装置、キャリア、またはコンピュータ可読命令を保存または搬送可能な媒体を指す。コンピュータ可読媒体の例として、搬送波等の伝送媒体、および磁気記録媒体(例:ハードディスクドライブおよびフロッピーディスク)、光記憶媒体(例:CD−またはDVD−ROM)、電子記憶媒体(例:固体ドライブおよびフラッシュ媒体)等の物理媒体、および他の配信システムが含まれるが、これらに限定されない。
コンピュータプログラムを収納しているコンピュータ可読媒体は、計算システム510にロードし得る。コンピュータ可読媒体に保存されているコンピュータプログラムの全部または一部は次いで、記憶装置532および533のシステムメモリ516および/または様々な部分に保存し得る。プロセッサ514により実行されたならば、計算システム510にロードされたコンピュータプログラムによりプロセッサ514に、本明細書に記述および/または図示する1個以上の例示的な実施形態の機能を実行してもよく、および/または実行するための手段であってもよい。追加的または代替的に、本明細書に記述および/または図示する1個以上の例示的な実施形態がファームウェアおよび/またはハードウェアに実装されていてもよい。例えば、計算システム510は、本明細書に開示する1個以上の例示的な実施形態を実装するのに適している特定用途向け集積回路(ASIC)として構成されていてもよい。
図6は、例示的なネットワークアーキテクチャ600のブロック図であり、クライアントシステム610、620、および630、並びにサーバ640、645がネットワーク650に接続されていてもよい。クライアントシステム610、620、および630は一般に、図5の例示的な計算システム510等、任意の種類または形式の計算装置またはシステムを表している。
同様に、サーバ640、645は一般に、各種のデータベースサービスを提供、および/または特定のソフトウェアアプリケーションを実行すべく構成された、アプリケーションサーバまたはデータベースサーバ等の計算装置またはシステムを表している。ネットワーク650は一般に、例えばイントラネット、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、またはインターネットを含む任意の電気通信またはコンピュータネットワークを表している。一例において、クライアントシステム610、620、および/または630および/またはサーバ640および/または645は、図1のシステム100を含んでいてもよい。
図6に示すように、1個以上の記憶システム660(1)〜(N)は、直接サーバ640に接続されていてもよい。同様に、1個以上の記憶システム670(1)〜(N)は、直接サーバ645に接続されていてもよい。記憶システム660(1)〜(N)および記憶システム670(1)〜(N)は一般に、データおよび/または他のコンピュータ可読命令を保存可能な任意の種類または形式の記憶装置または媒体を表している。特定の実施形態において、記憶装置660(1)〜(N)および記憶装置670(1)〜(N)は、NFS、SMBまたはCIFS等、各種のプロトコルを用いてサーバ640、645と通信すべく構成されたネットワーク接続記憶(NAS)装置を表していてもよい。
サーバ640、645はまた、記憶域ネットワーク(SAN)ファブリック680に接続されていてもよい。SANファブリック680は一般に、複数の記憶装置間の通信を容易にすることができる任意の種類または形式のコンピュータネットワークまたはアーキテクチャを表している。SANファブリック680は、サーバ640、645と複数の記憶装置690(1)〜(N)および/またはインテリジェント記憶アレイ695の間の通信を容易にし得る。SANファブリック680はまた、装置690(1)〜(N)およびアレイ695が、クライアントシステム610、620および630にローカル接続された装置であるように見えるような仕方で、ネットワーク650およびサーバ640、645を介して、クライアントシステム610、620、および630と記憶装置690(1)〜(N)および/またはインテリジェント記憶アレイ695の間の通信を容易にし得る。記憶装置660(1)〜(N)および記憶装置670(1)〜(N)と同様に、記憶装置690(1)〜(N)およびインテリジェント記憶アレイ695は一般に、データおよび/または他のコンピュータ可読命令を保存可能な任意の種類または形式の記憶装置または媒体を表している。
特定の実施形態において、かつ図5の例示的な計算システム510を参照するに、図5の通信インターフェース522等の通信インターフェースを用いて、各クライアントシステム610、620、および630とネットワーク650の間を接続させ得る。クライアントシステム610、620、および630は、例えばウェブブラウザその他のクライアントソフトウェアを用いてサーバ640または645上の情報にアクセスすることが可能であってもよい。そのようなソフトウェアにより、クライアントシステム610、620、および630は、サーバ640、サーバ645、記憶装置660(1)〜(N)、記憶装置670(1)〜(N)、記憶装置690(1)〜(N)、またはインテリジェント記憶アレイ695がホスティングするデータにアクセスできるようになり得る。図6に、データ交換のためにネットワーク(インターネット等)を利用している様子を示しているが、本明細書に記述および/または図示する実施形態は、インターネットまたは何らかの特定のネットワーク的環境に限定されない。
少なくとも1個の実施形態において、本明細書に開示する1個以上の例示的な実施形態の全部または一部は、コンピュータプログラムとして符号化し、サーバ640、サーバ645、記憶装置660(1)〜(N)、記憶装置670(1)〜(N)、記憶装置690(1)〜(N)、インテリジェント記憶アレイ695、またはこれらを任意に組合せたものにロードして実行し得る。本明細書に開示する1個以上の例示的な実施形態の全部または一部はまた、コンピュータプログラムとして符号化し、サーバ640に保存し、サーバ645により実行し、ネットワーク650を介してクライアントシステム610、620、および630に配信し得る。従って、ネットワークアーキテクチャ600は、単独で、または他の要素と組み合わせて、本明細書に開示するステップの識別判定、分割、実行、保存、指定、追加、削除、生成、マーク付け、および延期のうち1個以上を実行可能および/または実行するための手段であってもよい。ネットワークアーキテクチャ600はまた、本開示に記述する他のステップおよび特徴を実行するために使用可能および/または実行するための手段であってもよい。
上で詳述したように、計算システム510および/またはネットワークアーキテクチャ600の1個以上の構成要素は、単独で、または他の要素と組み合わせて、重複排除記憶システムのスケーラビリティを向上させる例示的な方法の1個以上のステップを実行可能および/または実行するための手段であってもよい。
上述の開示は特定のブロック図、フロー図、および例を用いて各種の実施形態を記述しているが、各々のブロック図の構成要素、フロー図のステップ、動作、および/または本明細書に記述および/または図示する構成要素は、広範なハードウェア、ソフトウェア、またはファームウェア(あるいはこれらの任意の組合せ)構成を用いて、個別および/または集合的に実装し得る。また、同じ機能を実現するために他の多くのアーキテクチャを実装可能であるため、他の構成要素内に含まれる構成要素のあらゆる開示は本質的に例示的であると考えるべきである。
いくつかの実施形態において、図1の例示的なシステム100の全部または一部は、クラウド計算またはネットワーク的環境の一部を表していてもよい。クラウド計算環境は、インターネットを介して各種のサービスおよびアプリケーションを提供し得る。これらのクラウド型サービス(例:サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、サービスとしての基盤(IaaS)等)は、ウェブブラウザまたは他の遠隔インターフェースを介してアクセス可能であり得る。本明細書に記述する各種の機能は、リモートデスクトップ環境または他の任意のクラウド型計算環境を介して提供し得る。
本明細書に記述および/または図示するステップの処理パラメータおよびシーケンスは単なる例として挙げたものであって、必要ならば変更することができる。例えば、本明細書に図示および/または記述するステップは特定の順序で図示または説明され得るが、これらのステップは必ずしも図示または説明された順序で実行する必要がある訳ではない。本明細書に記述および/または図示する各種の例示的な方法はまた、本明細書に記述または図示するステップのうち1個以上を省略しても、あるいは開示したものに更に追加ステップが含まれていてもよい。
完全に機能する計算システムを前提として本明細書に各種の実施形態を記述および/または図示しているが、これらの例示的な実施形態のうち1個以上を各種形式のプログラム製品として配信し得、実際に配信の実行に用いる特定の種類のコンピュータ可読媒体とは無関係である。本明細書に開示する実施形態はまた、特定のタスクを実行するソフトウエアモジュールを用いて実装し得る。これらのソフトウエアモジュールは、スクリプト、バッチ、またはコンピュータ可読記憶媒体または計算システム内に保存し得る他の実行可能ファイルを含んでいてもよい。いくつかの実施形態において、これらのソフトウエアモジュールは、本明細書に開示する1個以上の例示的な実施形態を実行すべく計算システムを構成し得る。
また、本明細書に記述する1個以上のモジュールは、データ、物理装置、および/または物理装置の表現をある形式から別の形式へ変換し得る。例えば、図1の1個以上のモジュール102は、少なくとも1個の部分データベースに保存されている1個以上の参照オブジェクトを更新する更新動作を実行することにより、物理装置(図2のサーバ206等)の特徴または特性を変換し得る。
上述の説明は、本明細書に開示する例示的な実施形態の各種の態様を他の当業者が最適に利用できるようにすべく提供している。この例示的な記述は、網羅的であることを意図しておらず、または開示したいかなる厳密な形式にも限定されることは意図していない。本開示の趣旨および範囲から逸脱することなく多くの変更や変型が可能である。本明細書に開示する実施形態は、あらゆる点で例示的であって限定的ではないと考えるべきである。本開示の範囲を確定するには、添付の請求項およびその等価物を参照されたい。
別途に注記しない限り、本明細書および請求項で用いる冠詞「a(1個の)」または「an(1個の)」は「少なくとも1個の」を意味するものと解釈されたい。また、使い易さを旨として、本明細書および請求項で用いる「含む(including)」および「有する(having)」という単語は、「含んでなる(comprising)」という単語と交換可能かつ同義である。
100 システム
102 モジュール
104 識別モジュール
106 分割モジュール
108 更新モジュール
120 データベース
122 参照オブジェクトデータベース
124 ファイルセグメントデータベース
126(1)〜(N) 部分データベース
200 重複排除記憶システム
202(1)〜(N) 計算装置
204 ネットワーク
206 サーバ
400 更新動作の実行を要求するリクエスト
402 参照リスト
512 通信基盤
514 プロセッサ
516 システムメモリ
518 メモリコントローラ
520 入出力コントローラ
522 通信インターフェース
524 ディスプレイ装置
526 ディスプレイアダプタ
528 入力装置
530 入力インターフェース
532 一次記憶装置
533 バックアップ記憶装置
534 記憶インターフェース
600 ネットワークアーキテクチャ
610,620,630 クライアント
645,740 サーバ
650 ネットワーク
660(1)〜(N),670(1)〜(N),690(1)〜(N) 装置
680 SANファブリック
695 インテリジェント記憶アレイ

Claims (15)

  1. 重複排除記憶システムのスケーラビリティを向上させるコンピュータ実装された方法であって、前記方法の少なくとも一部が少なくとも1個のプロセッサを含む計算装置により実行され、
    複数の参照オブジェクト、すなわち各々が1個以上のバックアップ済みファイルが重複排除記憶システムに保存されている特定の一意のファイルセグメントを現在参照しているか否かを示す参照オブジェクトを保存するデータベースを識別するステップと、
    前記データベースの少なくとも1個のサイズ関連特徴が所定の閾値に達したと判定するステップと、
    前記データベースを、互いに独立に更新可能な複数の部分データベースに分割するステップと、
    少なくとも1個の部分データベースに保存されている1個以上の参照オブジェクトを更新する更新動作の実行を要求するリクエストを識別するステップと、
    前記部分データベースの全数に対する前記更新動作の実行に伴う処理コストを回避すべく前記部分データベースの全数より少ない個数に対して更新動作を実行するステップと
    を含む方法。
  2. 前記データベースのサイズ関連特徴が前記所定の閾値に達していると決定するステップが、
    前記データベースに保存されている参照オブジェクトの数が所定の閾値に達したと判定するステップと、
    前記データベースに保存されている前記参照オブジェクトが所定量の記憶空間を消費していると判定するステップの少なくとも1個を含んでいる、請求項1に記載のコンピュータに実装された方法。
  3. 前記データベースを部分データベースに分割するステップが、
    前記分割時点において前記データベース内で識別された前記参照オブジェクトを1個の部分データベースに保存するステップと、
    別の部分データベースを、前記分割時点以降に少なくとも1個のファイルが前記重複排除記憶システムに追加された結果として生成された1個以上の新たな参照オブジェクトを保存する有効な部分データベースとして指定するステップとを含んでいる、請求項1〜2のいずれか1項に記載のコンピュータに実装された方法。
  4. 各参照オブジェクトが、
    前記重複排除記憶システムに保存されている一意のファイルセグメントを現在参照している1個以上のバックアップ済みファイルを識別する参照リストと、
    前記重複排除記憶システムに保存されている一意のファイルセグメントを現在参照しているバックアップ済みファイルの数を識別する参照カウント、のうち少なくとも1個を含んでいる、請求項1〜3のいずれか1項に記載のコンピュータに実装された方法。
  5. 前記更新動作が、
    部分データベースに保存されている1個以上の参照リストに、特定のバックアップ済みファイルを識別する参照子を追加するステップと、
    部分データベースに保存されている1個以上の参照リストから、特定のバックアップ済みファイルを識別する参照子を削除するステップと、
    部分データベース内に、前記重複排除記憶システムに追加された新たな一意のファイルセグメントを参照する1個以上のバックアップ済みファイルを識別する新たな参照リストを生成するステップ、のうち少なくとも1個を含んでいる、請求項4に記載のコンピュータに実装された方法。
  6. 前記更新動作が、
    少なくとも1個の参照カウントを増やして、増加した数のバックアップ済みファイルが特定の一意のファイルセグメントを現在参照していることを示すステップと、
    少なくとも1個の参照カウントを減らして、減少した数のバックアップ済みファイルが特定の一意のファイルセグメントを現在参照していることを示すステップと、
    部分データベース内に、前記重複排除記憶システムに追加された新たな一意のファイルセグメントを現在参照しているバックアップ済みファイルの数を識別する新たな参照カウントを生成するステップ、のうち少なくとも1個を含んでいる、請求項4に記載のコンピュータに実装された方法。
  7. 前記更新動作を実行したならば、前記更新動作により更新された前記参照オブジェクトのうち1個が、前記重複排除記憶システムに保存されている特定の一意のファイルセグメントを現在参照しているバックアップ済みファイルが無いことを示していると判定するステップと、
    前記重複排除記憶システムが再利用する前記参照オブジェクトに関連付けられた前記一意のファイルセグメントにマーク付けするステップとを更に含んでいる、請求項1〜6のいずれか1項に記載のコンピュータに実装された方法。
  8. 前記部分データベースの全数より少ない個数に対して前記更新動作を実行するステップが、
    少なくとも1個の異なる部分データベースに保存されている1個以上の参照オブジェクトを更新する別の更新動作の実行を要求する別のリクエストを識別するステップと、
    異なる部分データベースに対して前記更新動作および別の更新動作を同時に実行するステップとを含んでいる、請求項1〜7のいずれか1項に記載のコンピュータに実装された方法。
  9. 前記部分データベースの全数より少ない個数に対して前記更新動作を実行するステップが、
    前記更新動作と同一の部分データベースに対して別の更新動作の実行を要求する別のリクエストの所定数を識別するまで前記更新動作の実行を延期するステップと、
    前記更新動作と同一の部分データベースに対して別の更新動作の実行を要求する別のリクエストを識別するステップと、
    前記識別された別のリクエストの数が前記別のリクエストの前記所定数に達したと判定するステップと、
    前記同一の部分データベースに対して前記更新動作および前記別の更新動作を順次実行するステップを含んでいる、請求項1〜8に記載のコンピュータに実装された方法。
  10. 少なくとも1個の部分データベースの少なくとも1個のサイズ関連特徴が所定の閾値に達したと判定するステップと、
    前記部分データベースを、互いに独立に更新可能な複数の追加的な部分データベースに分割するステップとを更に含んでいる、請求項1〜9に記載のコンピュータに実装された方法。
  11. 重複排除記憶システムのスケーラビリティを向上させるシステムであって、
    複数の参照オブジェクト、すなわち各々が1個以上のバックアップ済みファイルが重複排除記憶システムに保存されている特定の一意のファイルセグメントを現在参照しているか否かを示す参照オブジェクトを保存するデータベースを識別する識別手段と、
    分割手段、すなわち、
    前記データベースの少なくとも1個のサイズ関連特徴が所定の閾値に達したと判定し、
    前記データベースを、互いに独立に更新可能な複数の部分データベースに分割する手段と、
    更新手段、すなわち、
    少なくとも1個の部分データベースに保存されている1個以上の参照オブジェクトを更新する更新動作の実行を要求するリクエストを識別し、
    前記部分データベースの全数に対する前記更新動作の実行に伴う処理コストを回避すべく前記部分データベースの全数より少ない個数に対して前記更新動作を実行する手段とを含むシステム。
  12. 前記識別手段が、
    前記データベースに保存されている参照オブジェクトの数が所定の閾値に達したと判定する、および/または、
    前記データベースに保存されている前記参照オブジェクトが所定量の記憶空間を消費していると判定する、請求項11に記載のシステム。
  13. 前記分割手段が、
    前記分割時点において前記データベース内で識別された前記参照オブジェクトを1個の部分データベースに保存し、
    別の部分データベースを、前記分割時点以降に少なくとも1個のファイルが前記重複排除記憶システムに追加された結果として生成された1個以上の新たな参照オブジェクトを保存する有効な部分データベースとして指定する、請求項11〜12のいずれか1項に記載のシステム。
  14. 各参照オブジェクトが、
    前記重複排除記憶システムに保存されている一意のファイルセグメントを現在参照している1個以上のバックアップ済みファイルを識別する参照リストと、
    前記重複排除記憶システムに保存されている一意のファイルセグメントを現在参照しているバックアップ済みファイルの数を識別する参照カウント、のうち少なくとも1個を含んでいる、請求項11〜13のいずれか1項に記載のシステム。
  15. 前記更新手段が、
    前記更新動作を実行したならば、前記更新動作により更新された前記参照オブジェクトのうち1個が、前記重複排除記憶システムに保存されている特定の一意のファイルセグメントを現在参照しているバックアップ済みファイルが無いことを示していると判定し、
    前記重複排除記憶システムが再利用する前記参照オブジェクトに関連付けられた前記一意のファイルセグメントにマーク付けする、請求項11〜14のいずれか1項に記載のシステム。
JP2011274072A 2011-01-14 2011-12-15 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法 Expired - Fee Related JP6026738B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/007,301 2011-01-14
US13/007,301 US8954401B2 (en) 2011-01-14 2011-01-14 Systems and methods for providing increased scalability in deduplication storage systems

Publications (2)

Publication Number Publication Date
JP2012150792A true JP2012150792A (ja) 2012-08-09
JP6026738B2 JP6026738B2 (ja) 2016-11-16

Family

ID=45495657

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011274072A Expired - Fee Related JP6026738B2 (ja) 2011-01-14 2011-12-15 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法

Country Status (5)

Country Link
US (2) US8954401B2 (ja)
EP (1) EP2477128B1 (ja)
JP (1) JP6026738B2 (ja)
CN (1) CN102591909B (ja)
AU (1) AU2011256912B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014087508A1 (ja) * 2012-12-05 2014-06-12 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8700634B2 (en) 2011-12-29 2014-04-15 Druva Inc. Efficient deduplicated data storage with tiered indexing
US8996467B2 (en) * 2011-12-29 2015-03-31 Druva Inc. Distributed scalable deduplicated data backup system
US9633032B2 (en) * 2012-04-30 2017-04-25 Quantum Corporation Object synthesis
US9819728B2 (en) * 2012-04-30 2017-11-14 Google Inc. System and method for facilitating deduplication of operations to be performed
US9424314B2 (en) * 2012-10-19 2016-08-23 Oracle International Corporation Method and apparatus for joining read requests
CN103873506A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 存储集群中的数据块去重系统及方法
US9396502B2 (en) 2013-01-23 2016-07-19 Facebook, Inc. Enabling delayed interactions with content items presented by a social networking system
US9639577B1 (en) * 2013-03-27 2017-05-02 Symantec Corporation Systems and methods for determining membership of an element within a set using a minimum of resources
CN110097492A (zh) * 2013-09-26 2019-08-06 想象技术有限公司 原子存储器更新单元和方法
US9466091B2 (en) * 2013-09-26 2016-10-11 Imagination Technologies Limited Atomic memory update unit and methods
US11257271B2 (en) 2013-09-26 2022-02-22 Imagination Technologies Limited Atomic memory update unit and methods
US9619479B1 (en) * 2014-06-26 2017-04-11 Veritas Technologies Llc Autonomous deduplication for efficient recovery for a deduplication system
US10430421B2 (en) 2014-12-29 2019-10-01 Facebook, Inc. Recommending content items in a social network using delayed interaction
US10042854B2 (en) 2015-06-18 2018-08-07 International Business Machines Corporation Detection of data affected by inaccessible storage blocks in a deduplication system
US9965487B2 (en) 2015-06-18 2018-05-08 International Business Machines Corporation Conversion of forms of user data segment IDs in a deduplication system
US10248656B2 (en) 2015-06-18 2019-04-02 International Business Machines Corporation Removal of reference information for storage blocks in a deduplication system
US9965488B2 (en) 2015-06-18 2018-05-08 International Business Machines Corporation Back referencing of deduplicated data
US10838827B2 (en) 2015-09-16 2020-11-17 Richard Banister System and method for time parameter based database restoration
US10990586B2 (en) 2015-09-16 2021-04-27 Richard Banister System and method for revising record keys to coordinate record key changes within at least two databases
US10747447B1 (en) 2015-09-30 2020-08-18 EMC IP Holding LLC Storing de-duplicated data with minimal reference counts
US10003634B2 (en) 2016-05-14 2018-06-19 Richard Banister Multi-threaded download with asynchronous writing
CN107066463A (zh) * 2016-10-28 2017-08-18 阿里巴巴集团控股有限公司 数据处理方法、装置和服务器
US10725974B2 (en) * 2016-11-22 2020-07-28 Huawei Technologies Co., Ltd. Systems, devices and methods for managing file system replication
CN108153614B (zh) * 2016-12-02 2021-08-20 中科星图股份有限公司 一种数据库的备份及恢复方法
US10409736B2 (en) * 2017-05-15 2019-09-10 Seagate Technology Llc Multi-host Intelligent block level provisioning
CN110750517B (zh) * 2019-10-12 2022-06-10 浪潮电子信息产业股份有限公司 一种本地存储引擎系统的数据处理方法、装置以及设备
US20210133167A1 (en) * 2019-11-04 2021-05-06 Commvault Systems, Inc. Efficient implementation of multiple deduplication databases in a heterogeneous data storage system
CN111078670B (zh) * 2019-12-19 2023-06-20 上海达梦数据库有限公司 数据库执行计划清除方法、装置、设备和存储介质
US11194769B2 (en) 2020-04-27 2021-12-07 Richard Banister System and method for re-synchronizing a portion of or an entire source database and a target database
CN111831223B (zh) * 2020-06-19 2021-06-11 华中科技大学 提高数据去重系统可扩展性的容错编码方法、装置及系统
CN114466387B (zh) * 2022-01-13 2024-04-09 三维通信股份有限公司 基站的配置文件的更新方法、装置、存储介质和电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080294696A1 (en) * 2007-05-22 2008-11-27 Yuval Frandzel System and method for on-the-fly elimination of redundant data
US20100198792A1 (en) * 2007-10-25 2010-08-05 Peter Thomas Camble Data processing apparatus and method of processing data
US20100274983A1 (en) * 2009-04-24 2010-10-28 Microsoft Corporation Intelligent tiers of backup data

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996025801A1 (en) 1995-02-17 1996-08-22 Trustus Pty. Ltd. Method for partitioning a block of data into subblocks and for storing and communicating such subblocks
US7571156B1 (en) * 2003-03-28 2009-08-04 Netlogic Microsystems, Inc. Network device, storage medium and methods for incrementally updating a forwarding database
US7447839B2 (en) * 2005-09-13 2008-11-04 Yahoo! Inc. System for a distributed column chunk data store
DE602006021217D1 (de) 2005-10-12 2011-05-19 Datacastle Corp Verfahren und system zur datensicherung
US8204866B2 (en) 2007-05-18 2012-06-19 Microsoft Corporation Leveraging constraints for deduplication
US8782368B2 (en) 2007-10-25 2014-07-15 Hewlett-Packard Development Company, L.P. Storing chunks in containers
US8650228B2 (en) 2008-04-14 2014-02-11 Roderick B. Wideman Methods and systems for space management in data de-duplication
US8108446B1 (en) 2008-06-27 2012-01-31 Symantec Corporation Methods and systems for managing deduplicated data using unilateral referencing
US8335208B2 (en) * 2009-06-02 2012-12-18 Telefonaktiebolaget L M Ericsson (Publ) Method, system and traffic node for measuring a load capacity in a management system
US9239843B2 (en) * 2009-12-15 2016-01-19 Symantec Corporation Scalable de-duplication for storage systems
US8732133B2 (en) * 2010-03-16 2014-05-20 Commvault Systems, Inc. Extensible data deduplication system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080294696A1 (en) * 2007-05-22 2008-11-27 Yuval Frandzel System and method for on-the-fly elimination of redundant data
US20100198792A1 (en) * 2007-10-25 2010-08-05 Peter Thomas Camble Data processing apparatus and method of processing data
US20100274983A1 (en) * 2009-04-24 2010-10-28 Microsoft Corporation Intelligent tiers of backup data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014087508A1 (ja) * 2012-12-05 2014-06-12 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US9952936B2 (en) 2012-12-05 2018-04-24 Hitachi, Ltd. Storage system and method of controlling storage system

Also Published As

Publication number Publication date
US8954401B2 (en) 2015-02-10
US20120185447A1 (en) 2012-07-19
EP2477128A1 (en) 2012-07-18
US9336224B2 (en) 2016-05-10
CN102591909B (zh) 2017-04-12
CN102591909A (zh) 2012-07-18
AU2011256912A1 (en) 2012-08-02
EP2477128B1 (en) 2017-11-08
US20150112950A1 (en) 2015-04-23
JP6026738B2 (ja) 2016-11-16
AU2011256912B2 (en) 2014-03-06

Similar Documents

Publication Publication Date Title
JP6026738B2 (ja) 重複排除記憶システムのスケーラビリティを向上させるシステムおよび方法
US9977718B1 (en) System and method for smart throttling mechanisms for virtual backup appliances
US11132338B1 (en) Sharing services between deduplication systems
US8108446B1 (en) Methods and systems for managing deduplicated data using unilateral referencing
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
JP5955870B2 (ja) 仮想ディスクの最適圧縮のための方法、コンピュータ可読記憶媒体及びシステム
EP2521966B1 (en) Systems and methods for removing unreferenced data segments from deduplicated data systems
US9128948B1 (en) Integration of deduplicating backup server with cloud storage
US20130110784A1 (en) Managing backups of data objects in containers
US10380074B1 (en) Systems and methods for efficient backup deduplication
US10241871B1 (en) Fragmentation mitigation in synthetic full backups
US11392545B1 (en) Tracking access pattern of inodes and pre-fetching inodes
JP6774971B2 (ja) データアクセスアクセラレータ
US11663166B2 (en) Post-processing global deduplication algorithm for scaled-out deduplication file system
US10761760B2 (en) Duplication between disparate deduplication systems
US20170228370A1 (en) Performing nearline storage of a file
CN110352410B (zh) 跟踪索引节点的访问模式以及预提取索引节点
US8549223B1 (en) Systems and methods for reclaiming storage space on striped volumes
US10049116B1 (en) Precalculation of signatures for use in client-side deduplication
EP3449372B1 (en) Fault-tolerant enterprise object storage system for small objects
US11392546B1 (en) Method to use previously-occupied inodes and associated data structures to improve file creation performance
US10235293B2 (en) Tracking access pattern of inodes and pre-fetching inodes
US8495026B1 (en) Systems and methods for migrating archived files
US11429491B2 (en) Source-side accelerated indexing for data protection search
CN114365093A (zh) 用于有效地备份大数据集的系统和方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160405

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160630

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161013

R150 Certificate of patent or registration of utility model

Ref document number: 6026738

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

LAPS Cancellation because of no payment of annual fees