JP7087070B2 - 分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための方法、コンピュータ・プログラム製品、および装置 - Google Patents

分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための方法、コンピュータ・プログラム製品、および装置 Download PDF

Info

Publication number
JP7087070B2
JP7087070B2 JP2020519732A JP2020519732A JP7087070B2 JP 7087070 B2 JP7087070 B2 JP 7087070B2 JP 2020519732 A JP2020519732 A JP 2020519732A JP 2020519732 A JP2020519732 A JP 2020519732A JP 7087070 B2 JP7087070 B2 JP 7087070B2
Authority
JP
Japan
Prior art keywords
memory area
owner
predetermined number
memory
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020519732A
Other languages
English (en)
Other versions
JP2021500643A5 (ja
JP2021500643A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021500643A publication Critical patent/JP2021500643A/ja
Publication of JP2021500643A5 publication Critical patent/JP2021500643A5/ja
Application granted granted Critical
Publication of JP7087070B2 publication Critical patent/JP7087070B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • 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
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • G06F16/1752De-duplication implemented within the file system, e.g. based on file segments based on file chunks
    • 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/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]
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

本出願は、一般に、改良されたデータ処理装置および方法に関し、より詳細には、分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための機構に関する。
ストレージ・システムにおいて、重複排除は、システムにわたる重複データを、そのデータの単一のインスタンスに対するポインタ、リファレンス、またはそれに類するもので置き換え、それ故、全体的なストレージ要件を低減するプロセスである。通常、重複排除リファレンスは、データ自体、またはデータを代表するメタデータである所有者をポイントするメタデータ・エントリである。データを記憶するための主要な2つのスキーム、すなわち、コンテンツ・ベースの重複排除、およびロケーション・ベースの重複排除が存在する。コンテンツ・ベースの重複排除において、ストレージ内に配置されたデータは、データのフィンガプリント(fingerprint)、ハッシュ値、またはそれに類するものによって特定される。ロケーション・ベースの重複排除において、ストレージ内に配置されたデータは、データのユーザ空間ロケーション(ボリューム・オフセット(volume-offset))によって特定される。
ロケーション・ベースの重複排除の重要な1つの利点は、多くの読取り、または順次の読取りを実行する際のデータの局所性である。ロケーション・ベースの重複排除は、より少ない回数のディスク入出力(I/O)しか要求しない。他方、コンテンツ・ベースの重複排除は、システムにおけるI/Oが少ない場合、リソースのより良好な平衡化を得る。重複排除は、相当な量のランダム・アクセス・メモリ(RAM)を要求するので、一部の実施例は、管理またはスワップ、あるいはその両方の簡略化のために、メタデータを、所有者領域および参照者領域(referrer region)などの領域(空間の分割)に分割する。
分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための方法、コンピュータ・プログラム、および装置を提供する。
この概要は、本明細書の詳細な説明においてさらに説明される選定された概念を簡略化された形態で概説すべく与えられる。この概要は、主張される主題の重要な要素もしくは不可欠な特徴を特定することは意図しておらず、主張される主題の範囲を限定するのに使用されることも意図していない。
1つの例示的な実施形態において、分散ロケーション・ベースのデータ・ストレージのための、データ処理システムにおける方法が提供される。例示的な実施形態は、ホスト・システムから、メモリ領域のセットの中の参照者メモリ領域にデータ・ファイルを書き込む要求を受け取る。データ・ファイルの各データ・チャンクに関して、例示的な実施形態は、データ・チャンクに関するハッシュ値の、参照者メモリ領域において参照される記憶された他のデータ・チャンクに関する他のハッシュ値に対する比較が、そのデータ・チャンクが参照者メモリ領域に存在しないことを示すことに応答して、データがメモリ領域のセットの中の別のメモリ領域に存在するかどうかを判定する。例示的な実施形態は、データ・チャンクがメモリ領域のセットの中の別のメモリ領域に存在することに応答して、メモリ領域が、参照者メモリ領域に関連付けられた所定の数Nの所有者メモリ領域のうちの1つであるかどうかを判定する。例示的な実施形態は、メモリ領域が、参照者メモリ領域に関連付けられた所定の数Nの所有者メモリ領域のうちの1つではないことに応答して、所定の数Nの所有者メモリ領域の中の所有者メモリ領域の数に達しているかどうかを判定する。例示的な実施形態は、所定の数Nの所有者メモリ領域に達していないことに応答して、参照者メモリ領域にデータ・チャンクに対するリファレンスを記憶する。
他の例示的な実施形態において、コンピュータ可読プログラムを有するコンピュータ使用可能媒体またはコンピュータ可読媒体を備えるコンピュータ・プログラム製品が、提供される。コンピュータ可読プログラムは、コンピューティング・デバイス上で実行されたとき、コンピューティング・デバイスに、方法を例示する実施形態に関して前段で概略が述べられる動作のうちの様々な動作、およびその組合せを実行させる。
さらに別の例示的な実施形態において、システム/装置が提供される。システム/装置は、1つまたは複数のプロセッサと、その1つまたは複数のプロセッサに結合されたメモリとを備えてよい。メモリは、1つまたは複数のプロセッサによって実行されたとき、1つまたは複数のプロセッサに、方法を例示する実施形態に関して前段で概略が述べられる動作のうちの様々な動作、およびその組合せを実行させる命令を備えてもよい。
本発明のこれら、およびその他の特徴および利点が、本発明の例示的な実施形態の後段の詳細な説明に記載され、それに鑑みて、当業者には明白となろう。
本発明とともに、本発明の使用の好ましい様態、ならびにさらなる目的および利点は、添付の図面と併せて読まれるとき、例示的な実施形態の後段の詳細な説明を参照して理解されるのが最良である。
例示的な実施形態による、40KBファイルを、多くのタイプのオーバヘッドにつながる異なる8つの所有者領域における5つの8KBチャンクとして書き込むことを示す図である。 例示的な実施形態の態様が実施されてよい分散データ処理システムを例示する図である。 例示的な実施形態の態様が実施されてよいコンピューティング・デバイスを例示するブロック図である。 例示的な実施形態による、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるストレージ機構を示す機能ブロック図である。 例示的な実施形態による、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるストレージ機構によって実行される動作を示すフローチャートである。 例示的な実施形態による、重複排除が、メモリ領域のサブセット、すなわち、参照者メモリ領域、および関連付けられた1つまたは複数の所有者メモリ領域の間で実施されることになる場合、ストレージ機構によって実行される動作を示すフローチャートである。
前述したとおり、データを記憶するための主要な2つのスキーム、すなわち、コンテンツ・ベースの重複排除、およびロケーション・ベースの重複排除が存在する。コンテンツ・ベースの重複排除において、ストレージ内に配置されたデータは、データのフィンガプリント、ハッシュ値、またはそれに類するものによって特定される。ロケーション・ベースの重複排除において、ストレージ内に配置されたデータは、データのユーザ空間ロケーション(ボリューム・オフセット)によって特定される。メタデータ領域に基づくシステムにおけるロケーション・ベースの重複排除を一例として利用すると、局所性のいずれの利点も、データ(または所有側のメタデータ(owning metadata))がストレージ全体にわたって分散される多数の重複排除が行われる場合、問題を抱える可能性がある。例えば、64KBファイルが8つの8KBチャンクとして記憶される場合、64KBファイルの読取りは、異なる8つの所有者領域にアクセスすることを要求する可能性があり、このことが、例示的な実施形態による図1に示されるとおり、多くのタイプのオーバヘッドにつながる可能性がある。
すなわち、図1に示されるとおり、ホスト・システム102が、メモリ領域108からのファイルに関する読取りを実行する。メモリ領域108において、そのファイルに関連付けられたメタデータが、読み取られ、異なる5つの所有者メモリ領域、メモリ領域104、106、110、112、および114が、そのファイルの少なくとも一部分を備えるものとして識別される。このため、メモリ領域108が、メモリ領域104上に存在するそのファイルの部分に関する読取りを実行し、メモリ領域108が、メモリ領域106上に存在するそのファイルの部分に関する読取りを実行し、メモリ領域108が、メモリ領域110上に存在するそのファイルの部分に関する読取りを実行し、メモリ領域108が、メモリ領域112上に存在するそのファイルの部分に関する読取りを実行し、かつメモリ領域108が、メモリ領域114上に存在するそのファイルの部分に関する読取りを実行する。それらの読取りに基づいて、メモリ領域108が、メモリ領域104から、メモリ領域104上に存在するそのファイルの部分に関する応答H1を受信し、メモリ領域108が、メモリ領域106から、メモリ領域106上に存在するそのファイルの部分に関する応答H2を受信し、メモリ領域108が、メモリ領域110から、メモリ領域110上に存在するそのファイルの部分に関する応答H3を受信し、メモリ領域108が、メモリ領域112から、メモリ領域112上に存在するそのファイルの部分に関する応答H4を受信し、かつメモリ領域108が、メモリ領域114から、メモリ領域114上に存在するそのファイルの部分に関する応答H5を受信する。応答H1、H2、H3、H4、およびH5を受信すると、メモリ領域108は、H1、H2、H3、H4、およびH5を含む応答でホスト・システム102に応答する。したがって、異なる5つの所有者メモリ領域にわたってファイルのチャンクが記憶されているため、1つのメモリ領域(メモリ領域108)に対する1回の読取りが、他の所有者メモリ領域からのより多くの読取り、クラスタ・メモリ領域の間のより多くの通信、ならびにすべてのメタデータが最初に読み取られるメモリ領域に包含されているわけではない場合、メモリ領域の間のメタデータのスワップインを含んでいた。これらのさらなる読取りにまで及ぶこのオーバヘッドが、システムの深刻なパフォーマンス低下につながる。
したがって、例示的な実施形態は、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させる機構を提供する。例示的な実施形態は、参照者メモリ領域内の所有者メモリ領域選択に対して動的管理ロジックを適用することによって、異なる参照者メモリ領域および所有者メモリ領域の間で重複リンクをインテリジェントに作成する。このことは、2つの基本的な機構によって実現される。第1の機構は、以下の方法のうちの1つにおいて所与の参照者に結び付けられてよい所有者メモリ領域の数を(最大で所定の数Nの所有者メモリ領域に)制限する。すなわち、
- データが所定の数Nの所有者メモリ領域上に記憶されることを可能にする「先着順」ポリシーを利用すること。
- データが、参照者メモリ領域における所有者メモリ領域の人気度に基づいて記憶されることを可能にする「人気度」ポリシーを利用すること。
所有者メモリ領域の人気度は、単一の書込み内で決定されてよい。
所有者メモリ領域の人気度は、複数の書込みにわたって決定されてよい。
- 最初、データが、M<Nである第2の所定の数Mの所有者メモリ領域上に記憶される「先着順」で記憶されることを可能にし、次に、データが、最大で所定の数Nの所有者メモリ領域までに限って、参照者メモリ領域における所有者メモリ領域の人気度に基づいて記憶されることを可能にするハイブリッド・ポリシーを利用すること。
第2の機構は、人気度のより低い所有者メモリ領域を、人気度のより高い所有者メモリ領域で置き換えて、より有益な所有者メモリ領域が識別されたとき、人気度のより低い所有者メモリ領域の使用を中止して、好ましい所有者メモリ領域とするようにする。
例示的な実施形態の様々な態様の説明を始める前に、この説明全体にわたって、「機構」という用語は、様々な動作、機能、およびそれに類するものを実行する本発明の要素を指すように使用されることを認識されたい。本明細書において使用される「機構」という用語は、装置、手続き、またはコンピュータ・プログラム製品の形態における例示的な実施形態の機能または態様の実施例であることが可能である。手続きである場合、その手続きは、1つまたは複数のデバイス、装置、コンピュータ、データ処理システム、またはそれに類するものによって実装される。コンピュータ・プログラム製品である場合、コンピュータ・プログラム製品として、またはコンピュータ・プログラム製品上に実現されたコンピュータ・コードまたはコンピュータ命令によって表される論理が、その機能を実施すべく、または特定の「機構」に関連付けられた動作を実行すべく1つまたは複数のハードウェア・デバイスによって実行される。このため、本明細書において説明される機構は、専用ハードウェアとして、汎用ハードウェア上で実行されるソフトウェアとして、それらの命令が専用ハードウェアもしくは汎用ハードウェアによって直ちに実行可能であるように媒体上に記憶されたソフトウェア命令として、機能を実行するための手続きもしくは方法として、または以上のいずれかの組合せとして実装されてよい。
本説明および特許請求の範囲は、例示的な実施形態の特定の特徴および要素に関して、「1つの」、「のうちの少なくとも1つの」および「のうちの1つまたは複数の」という用語を利用する可能性がある。これらの用語および句は、その特定の例示的な実施形態に存在する特定の特徴または要素のうちの少なくとも1つが存在するが、複数が存在することも可能であることを述べることを意図していることを認識されたい。すなわち、これらの用語/句は、本説明もしくは特許請求の範囲を単一の特徴/要素が存在することに限定することも、複数のそのような特徴/要素が存在することを要求することも意図していない。それどころか、これらの用語/句は、複数のそのような特徴/要素が本説明および特許請求の範囲に含まれる可能性を伴って、少なくとも単一の特徴/要素を要求することしかしない。
さらに、「エンジン」という用語の使用は、本発明の実施形態および特徴について説明することに関して本明細書において使用される場合、そのエンジンに帰せられる、またはそのエンジンによって実行される、あるいはその両方である、アクション、ステップ、プロセス、その他を実現するため、または実行するため、あるいはその両方のためのいずれの特定の実装形態に限定することも意図してはいないことを認識されたい。エンジンは、汎用プロセッサまたは専用プロセッサ、あるいはその両方を、マシン可読メモリにロードされ、もしくは記憶されて、そのプロセッサによって実行される適切なソフトウェアと組み合わせて使用することを含めた、ただし、それには限定されない、指定された機能を実行するソフトウェア、ハードウェア、またはファームウェア、あるいはその任意の組合せであってよいが、それには限定されない。さらに、特定のエンジンに関連付けられたいずれの名前も、特に明記しない限り、参照の便宜のためであり、特定の実装形態に限定することは意図していない。さらに、1つのエンジンに帰せられるいずれの機能も、複数のエンジンによって同様に実行されることが可能であり、同一のタイプもしくは異なるタイプの別のエンジンの機能に組み込まれること、またはそのような機能と組み合わされること、あるいはその両方が可能であり、あるいは様々な構成の1つまたは複数のエンジンにわたって分散されることが可能である。
さらに、後段の説明は、例示的な実施形態の例示的な実装形態をさらに例示して、例示的な実施形態の機構の理解を助けるべく、例示的な実施形態の様々な要素に関する複数の様々な実施例を使用することを認識されたい。これらの実施例は、非限定的であり、例示的な実施形態の機構を実装するための様々な可能性を網羅するものではないことが意図される。本説明に鑑みて、本発明の思想および範囲を逸脱することなく、本明細書において提供される実施例に加えて、またはそれらの代わりに利用されてよい、これらの様々な要素に関する他の多くの代替の実装形態が存在することが、当業者には明白であろう。
このため、例示的な実施形態は、異なる多くのタイプのデータ処理環境において利用されることが可能である。例示的な実施形態の特定の要素および機能の説明に関する脈絡を提供するために、図2および図3が、例示的な実施形態の態様が実施されてよい例示的な環境として以下に与えられる。図2および図3は、実施例に過ぎず、本発明の実施形態の態様が実施されてよい環境に関する限定を主張することも、暗示することも意図していないことを認識されたい。本発明の思想および範囲を逸脱することなく、説明される環境に多くの変形が加えられてよい。
図2は、例示的な実施形態の態様が実施されてよい例示的な分散データ処理システムの図的表現を示す。分散データ処理システム200は、例示的な実施形態の態様が実施されてよいコンピュータのネットワークを含んでよい。分散データ処理システム200は、分散データ処理システム200と一緒に接続された様々なデバイスおよびコンピュータの間で通信リンクをもたらすのに使用される媒体である、少なくとも1つのネットワーク202を含む。ネットワーク202は、有線通信リンク、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでよい。
図示される実施例において、サーバ204およびサーバ206が、ストレージ・ユニット208とともにネットワーク202に接続される。さらに、クライアント210、212、および214もネットワーク202に接続される。これらのクライアント210、212、および214は、例えば、パーソナル・コンピュータ、ネットワーク・コンピュータ、またはそれに類するものであってよい。図示される実施例において、サーバ204は、クライアント210、212、および214に起動ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを提供する。クライアント210、212、および214は、図示される実施例においてサーバ204に対するクライアントである。分散データ処理システム200は、図示されないさらなるサーバ、クライアント、およびその他のデバイスを含んでよい。
図示される実施例において、分散データ処理システム200は、互いに通信すべく伝送制御プロトコル/インターネット・プロトコル(TCP/IP)プロトコル・スイートを使用するネットワークおよびゲートウェイの世界的な集まりを表すネットワーク202を有するインターネットである。インターネットの中核には、データおよびメッセージをルーティングする数千の民間、政府、教育、およびその他のコンピュータ・システムから成る、主要なノードまたはホスト・コンピュータの間の高速データ通信線のバックボーンがある。無論、分散データ処理システム200は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、またはそれに類するものなどの、いくつもの異なるタイプのネットワークを含むように実施されてもよい。前述したとおり、図2は、本発明の様々な実施形態に関するアーキテクチャ上の限定ではなく、実施例であることが意図されており、したがって、図2に示される特定の要素は、本発明の例示的な実施形態が実施されてよい環境に関して限定するものと見なされるべきではない。
図2に示されるとおり、コンピューティング・デバイスのうちの1つまたは複数、例えば、サーバ204が、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための機構を実装するように特別に構成されてよい。コンピューティング・デバイスの構成は、例示的な実施形態に関して本明細書において説明される動作の実行、および出力の生成を容易化すべく特定用途向けハードウェア、ファームウェア、またはそれに類するものを提供することを含んでよい。コンピューティング・デバイスの構成は、コンピューティング・デバイスの1つまたは複数のハードウェア・プロセッサに、例示的な実施形態に関して本明細書において説明される動作を実行するように、かつ出力を生成するようにプロセッサを構成するソフトウェア・アプリケーションを実行させるために、1つまたは複数のストレージ・デバイスに記憶され、サーバ204などのコンピューティング・デバイスのメモリにロードされるソフトウェア・アプリケーションを提供することをさらに、または代替として、含んでよい。さらに、ハードウェア上で実行される特定用途向けハードウェア、ファームウェア、ソフトウェア・アプリケーション、またはそれに類するものの任意の組合せが、例示的な実施形態の思想および範囲を逸脱することなく使用されてよい。
コンピューティング・デバイスが、これらの様態のうちの1つにおいて構成されると、コンピューティング・デバイスは、例示的な実施形態の機構を実装するように特別に構成された専用コンピューティング・デバイスとなり、汎用コンピューティング・デバイスではないことを認識されたい。さらに、後段で説明されるとおり、例示的な実施形態の機構の実装形態は、コンピューティング・デバイスの機能を向上させ、かつ重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させることを容易化する有用で具体的な結果をもたらす。
前述したとおり、例示的な実施形態の機構は、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための動作を実行すべく、特別に構成されたコンピューティング・デバイス、またはデータ処理システムを利用する。これらのコンピューティング・デバイス、またはデータ処理システムは、本明細書において説明されるシステム/サブシステムのうちの1つまたは複数を実装すべく、ハードウェア構成、ソフトウェア構成、またはハードウェア構成とソフトウェア構成の組合せを通じて特別に構成された様々なハードウェア要素を備えてよい。図3は、例示的な実施形態の態様が実施されてよい単に1つの例示的なデータ処理システムのブロック図である。データ処理システム300は、本明細書において説明される例示的な実施形態の動作、出力、および外部効果を実現するように、本発明の例示的な実施形態のプロセスおよび態様を実施するコンピュータ使用可能コードまたはコンピュータ使用可能命令が配置されること、または実行されること、あるいはその両方が可能である、図2におけるサーバ204などのコンピュータの実施例である。
図示される実施例において、データ処理システム300は、ノースブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)302と、サウスブリッジおよび入出力(I/O)コントローラ・ハブ(SB/ICH)304とを含むハブ・アーキテクチャを使用する。処理ユニット306、メイン・メモリ308、およびグラフィックス・プロセッサ310が、NB/MCH302に接続される。グラフィックス・プロセッサ310は、アクセラレーテッド・グラフィックス・ポート(AGP)を通じてNB/MCH302に接続されてよい。
図示される実施例において、ローカル・エリア・ネットワーク(LAN)アダプタ312がSB/ICH304に接続される。オーディオ・アダプタ316、キーボードおよびマウス・アダプタ320、モデム322、読取り専用メモリ(ROM)324、ハードディスク・ドライブ(HDD)326、CD-ROMドライブ330、ユニバーサル・シリアル・バス(USB)ポートおよびその他の通信ポート332、ならびにPCI/PCIeデバイス334が、バス338およびバス340を通じてSB/ICH304に接続される。PCI/PCIeデバイスは、例えば、ノートブック・コンピュータのためのイーサネット(R)・アダプタ、アドイン・カード、およびPCカードを含んでよい。PCIは、カード・バス・コントローラを使用する一方で、PCIeは、それを使用しない。ROM324は、例えば、フラッシュ基本入出力システム(BIOS)であってよい。
HDD326およびCD-ROMドライブ330は、バス340を通じてSB/ICH304に接続される。HDD326およびCD-ROMドライブ330は、例えば、インテグレーティド・ドライブ・エレクトロニクス(IDE)またはシリアル・アドバンスト・テクノロジ・アタッチメント(SATA)インターフェースを使用してよい。スーパ入出力(SIO)デバイス336が、SB/ICH304に接続されてよい。
オペレーティング・システムが、処理ユニット306上で実行される。オペレーティング・システムは、図3におけるデータ処理システム300内の様々な構成要素を調整し、それらの構成要素の制御を提供する。クライアントとして、オペレーティング・システムは、Microsoft(R)Windows(R) 7(R)などの市販のオペレーティング・システムであってよい。Java(R)(TM)プログラミング・システムなどのオブジェクト指向プログラミング・システムが、オペレーティング・システムと連携して実行されてよく、データ処理システム300上で実行されるJava(R)(TM)プログラムまたはJava(R)(TM)アプリケーションからのオペレーティング・システムに対する呼出しをもたらす。
サーバとして、データ処理システム300は、アドバンスト・インタラクティブ・エグゼクティブ(AIX(R))オペレーティング・システムまたはLinux(R)オペレーティング・システムを実行する、例えば、IBM(R)eServer(TM)システム p(R)コンピュータ・システム、Power(TM)プロセッサ・ベースのコンピュータ・システム、またはそれに類するものであってよい。データ処理システム300は、処理ユニット306における複数のプロセッサを含む対称型マルチプロセッサ(SMP)システムであってよい。代替として、シングル・プロセッサ・システムが使用されてもよい。
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションもしくはプログラムのための命令は、HDD326などのストレージ・デバイス上に配置され、処理ユニット306によって実行されるようにメイン・メモリ308にロードされてよい。本発明の例示的な実施形態のためのプロセスは、例えば、メイン・メモリ308、ROM324などのメモリに、または、例えば、1つもしくは複数の周辺デバイス326および330に配置されてよい、コンピュータ使用可能プログラム・コードを使用して処理ユニット306によって実行されてよい。
図3に示されるバス338またはバス340などのバス・システムは、1つまたは複数のバスから成ってよい。無論、バス・システムは、そのファブリックまたはアーキテクチャに付加された様々な構成要素またはデバイスの間でデータの転送を可能にする任意のタイプの通信ファブリックまたは通信アーキテクチャを使用して実装されてよい。図3のモデム322またはネットワーク・アダプタ312などの通信ユニットは、データを送受信するのに使用される1つまたは複数のデバイスを含んでよい。メモリは、例えば、図3におけるNB/MCH302に見られるようなメイン・メモリ308、ROM324、またはキャッシュであってよい。
前述したとおり、一部の例示的な実施形態において、例示的な実施形態の機構は、特定用途向けハードウェア、ファームウェア、もしくはそれに類するもの、HDD326などのストレージ・デバイスに記憶され、処理ユニット306などの1つまたは複数のハードウェア・プロセッサによって実行されるように、メイン・メモリ308などのメモリにロードされるアプリケーション・ソフトウェア、またはそれに類するものとして実装されてよい。このため、図3に示されるコンピューティング・デバイスは、例示的な実施形態の機構を実装するように特別に構成され、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための機構に関して後段で説明される動作を実行するように、かつ出力を生成するように特別に構成される。
図2および図3におけるハードウェアは、実装形態に依存して異なってよいことが当業者には認識されよう。フラッシュ・メモリ、均等の不揮発性メモリ、または光ディスク・ドライブ、およびそれに類するものなどの他の内部ハードウェアまたは周辺デバイスが、図2および図3に示されるハードウェアに加えて、またはその代わりに使用されてよい。また、例示的な実施形態のプロセスは、本発明の思想および範囲を逸脱することなく、前述したSMPシステム以外のマルチプロセッサ・データ処理システムに適用されてもよい。
さらに、データ処理システム300は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話機もしくは他の通信デバイス、携帯情報端末(PDA)、またはそれに類するものを含む、いくつもの異なるデータ処理システムのいずれかの形態をとってよい。一部の説明的な例において、データ処理システム300は、例えば、オペレーティング・システム・ファイルまたはユーザによって生成されたデータ、あるいはその両方を記憶するための不揮発性メモリを提供すべく、フラッシュ・メモリを備えて構成されたポータブル・コンピューティング・デバイスであってよい。基本的に、データ処理システム300は、アーキテクチャ上の限定なしに任意の知られている、または今後、開発されるデータ処理システムであってよい。
図4は、例示的な実施形態による、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるストレージ機構の機能ブロック図を示す。前述したとおり、ストレージ機構は、参照者メモリ領域内の所有者メモリ領域選択に対して動的管理ロジックを適用することによって、異なる参照者メモリ領域および所有者メモリ領域の間で重複リンクをインテリジェントに作成する。例示的な実施形態によれば、参照者領域は、データが最初に書き込まれ、かつデータを記憶する他のメモリ領域(すなわち、所有者領域)に対するリファレンスを有する、または、参照者メモリ領域がデータを記憶することも可能であるので、参照者領域自体に対するリファレンスを有するメモリ領域である。第1の実施形態において、ストレージ機構406は、データが所定の数Nの所有者メモリ領域上に記憶されることを可能にする「先着順」ポリシーを利用して、所与の参照者メモリ領域(最大で所定の数Nの所有者メモリ領域まで)に結び付けられてよい所有者メモリ領域の数を制限する。
この第1の実施形態において、データ処理システム400におけるホスト・システム402が、メモリ領域にデータを書き込むとき、ストレージ機構406が、そのデータを、例えば、8KBデータ・チャンク単位で書き込む/記憶する。このため、ホスト・システム402が、メモリ領域、例えば、メモリ領域404a~404maxにおけるメモリ領域404aに16KBデータ・ファイルを書き込むとき、書き込まれるメモリが、破線のボックスで示される参照者メモリ領域408となる。ストレージ機構406が、16KBデータ・ファイルの2つの8KBデータ・チャンクのそれぞれに関してハッシュ値を生成し、各8KBデータ・チャンクに関するハッシュ値を、参照されるメモリ領域404a~404maxにおける記憶された他のデータ・チャンクに関するハッシュ値と比較する。ストレージ機構406は、ホスト402に、メモリ領域404a~404maxのうちの1つまたは複数に、またはスタンドアロンの機構として存在することが可能なデバイスである。参照者メモリ領域408が、一方、または両方の合致するデータ・チャンクが参照者メモリ領域408、または所有者メモリ領域410a~410nのうちの1つもしくは複数に既に存在することを示す場合、8KBデータ・チャンクを記憶するのではなく、ストレージ機構406は、それらのデータ・チャンクに対する後のリファレンスが、参照者メモリ領域408、または所有者メモリ410a~410nのうちの1つもしくは複数に対するハッシュ値比較によって識別されることを認識する。しかし、メモリ領域404a~404maxに対する比較が、データ・チャンクのうちの一方が、またはいずれもが参照者メモリ領域408にも、関連付けられた所有者メモリ410a~410nにも既に存在するのではないことを示す場合、ストレージ機構406は、その存在しないデータ・チャンクを参照者メモリ領域408に記憶する。
「先着順」ポリシーにおいて、前に記憶されてはいないデータ・チャンクが、参照者メモリ領域408に書き込まれる。しかし、参照者メモリ領域408の上で、または参照者メモリ領域408に関連付けられた所有者メモリ領域410a~410nのうちの関連する1つまたは複数の上で、あるいはその組合せの上でデータがアクセスされるたびに、ストレージ機構406は、データが存在するメモリ領域をロードする。このため、64KBデータ・ファイルが、異なる8つの所有者メモリ領域上に記憶された8つの8KBデータ・チャンクを有する場合、ストレージ機構406は、64KBデータ・ファイルの8KBチャンクを備える異なる8つすべてのメモリ領域をロードする。問題は、8KBデータ・チャンクが異なる32の所有者メモリ領域にわたって記憶されている256KBデータ・ファイルの場合、より重大である。このため、例示的な実施形態によれば、ストレージ機構406は、所定の数Nだけの所有者メモリ領域の上に8KBデータ・チャンクを記憶する。このため、データが分散された様態で記憶されるにつれ、ストレージ機構406は、データ構造、データ・リスト、データ・テーブル、またはそれに類するものなどの追跡機構を使用して、データ・チャンクがどこに記憶されるかを常に把握している。したがって、参照者メモリ領域408および関連する所有者メモリ領域410a~410nのグループの中の特定の所有者メモリ領域の上にデータが記憶されるにつれ、その特定のメモリ領域が、所定の数Nの所有者メモリ領域に追加される。数Nの所有者メモリ領域に達すると、ストレージ機構406は、データ・ブロックの将来の記憶のためにその所定の数Nの所有者メモリ領域における所有者メモリ領域だけを利用する。
ストレージ機構406が、参照者メモリ領域408または所定の数Nの所有者メモリ領域における所有者メモリ領域410a~410n、あるいはその両方とは異なる所有者メモリ領域上に存在する8KBデータ・チャンクを書き込む、または読み取る場合、ストレージ機構406は、その所有者メモリ領域が、所定の数Nの所有者メモリ領域における所有者メモリ領域のうちの1つではないことを認識する。このことが生じた場合、ストレージ機構406は、8KBデータ・チャンクを参照者メモリ領域408に書き込む。このことは、参照者メモリ領域408内、および関連付けられた所有者メモリ領域410a~410n内で重複する8KBチャンクを生成する可能性がある一方で、重複する8KBチャンクを生成することは、所定の数Nを超える所有者メモリ領域をロードしないことによってストレージ機構406によって経験されるオーバヘッドを低減する。このため、「先着順」ポリシーを使用して、ストレージ機構406は、メモリまたは処理におけるオーバヘッドを低減し、ユーザ入力/出力サイズに依存しない。
第2の実施形態において、ストレージ機構406は、参照者メモリ領域408、および参照者メモリ領域408によって識別される関連付けられた所有者メモリ領域410a~410nの人気度に基づいて重複排除が作成されることを可能にする「人気度」ポリシーを利用する。この場合も、データ処理システム400におけるホスト・システム402が、参照者メモリ領域408、および関連付けられた所有者メモリ領域410a~410nのうちの1つまたは複数にデータを記憶するとき、データは、例えば、8KBデータ・チャンク単位で記憶される。このため、ホスト・システム402が、参照者メモリ領域408に16KBデータ・ファイルを書き込む場合、ストレージ機構406は、16KBデータ・ファイルの2つの8KBデータ・チャンクのそれぞれに関してハッシュ値を生成し、各8KBデータ・チャンクに関するハッシュ値を、メモリ領域404a~404maxにおいて参照される記憶された他のデータ・チャンクに関するハッシュ値と比較する。参照者メモリ領域408が、一方、または両方の合致するデータ・チャンクが参照者メモリ領域408、または所有者メモリ領域410a~410nのうちの1つもしくは複数に既に存在することを示す場合、8KBデータ・チャンクを記憶するのではなく、ストレージ機構406は、それらのデータ・チャンクに対する後のリファレンスが、参照者メモリ領域408、または所有者メモリ領域410a~410nのうちの1つもしくは複数に対するハッシュ値比較によって識別されることを認識する。しかし、メモリ領域404a~404maxに対する比較が、データ・チャンクのうちの一方が、またはいずれもが参照者メモリ領域408にも、関連付けられた所有者メモリ領域410a~410nにも既に存在するのではないことを示す場合、ストレージ機構406は、その存在しないデータ・チャンクを参照者メモリ領域408に記憶する。
「人気度」ポリシーにおいて、データ・チャンクが、メモリ領域404a~404maxに書き込まれるのにつれても、メモリ領域404a~404maxから読み取られるのにつれても、ストレージ機構406が、カウンタ、データ構造、またはそれに類するものを介して、各所有者メモリ領域の人気度を追跡する。追跡の値が、特定の所有者メモリ領域が閾値を超えていることを示すとき、その特定の所有者メモリ領域が、所定の数Nの所有者メモリ領域に追加される。このため、所定の数Nの所有者メモリ領域における所有者メモリ領域に対する読取りおよび書込みの頻度は、これらの所有者領域が、新たな書込みが向けられる所有者領域であることを示す。この場合も、参照者メモリ領域408の上で、または関連付けられた所有者メモリ領域410a~410nの上で、あるいはその両方の上でデータがアクセスされるたびに、ストレージ機構406は、データが存在する所有者メモリ領域をロードする。このため、例示的な実施形態によれば、ストレージ機構406は、人気度が最も高い所有者メモリ領域を識別し、それらの所有者メモリ領域を所定の数Nの所有者メモリ領域に追加し、データ・ブロックの将来の記憶のために所定の数Nの所有者メモリ領域におけるそれらの所有者メモリ領域を利用する。
ストレージ機構406が、参照者メモリ領域408または所定の数Nの所有者メモリ領域における所有者メモリ領域410a~410n、あるいはその両方とは異なる所有者メモリ領域上に存在する8KBデータ・チャンクを書き込む、または読み取る場合、ストレージ機構406は、その所有者メモリ領域が、所定の数Nの所有者メモリ領域における所有者メモリ領域のうちの1つではないことを認識する。このことが生じた場合、ストレージ機構406は、8KBデータ・チャンクを参照者メモリ領域408に書き込む。このことは、参照者メモリ領域408内、および関連付けられた所有者メモリ領域410a~410n内で重複する8KBチャンクを生成する可能性がある一方で、重複する8KBチャンクを生成することは、所定の数Nを超える所有者メモリ領域をロードしないことによってストレージ機構406によって経験されるオーバヘッドを低減する。このため、「先着順」ポリシーを使用して、ストレージ機構406は、メモリまたは処理におけるオーバヘッドを低減し、ユーザ入力/出力サイズに依存しない。
さらに第3の実施形態において、ストレージ機構406は、「先着順」ポリシーと「人気度」ポリシーの両方の組合せを利用する。例えば、ストレージ機構406は、「先着順」ポリシーの下で所有者メモリ領域が所定の数Nの所有者メモリ領域に追加されることを可能にする。次に、「人気度」ポリシーに関連付けられた閾値を使用して、所定の数N+Mの所有者メモリ領域が存在するまで、他の所有者メモリ領域Mが、所有者領域の人気度に基づいて追加されてよい。しかし、ストレージ機構406は、所定の数Nの所有者メモリ領域だけを使用するように構成される場合、「先着順」ポリシーの下で所定の数Nの所有者メモリ領域に達すると、ストレージ機構406は、(新たな)潜在的所有者メモリ領域が、所定の数Nの所有者メモリ領域に既にある既存の所有者メモリ領域の置換として追加されるのに十分なだけの利益をもたらすかどうかを判定すべく、「人気度」ポリシーに関連付けられた閾値を使用してよい。
すなわち、人気度のより低い所有者が、人気度のより高い所有者によって置き換えられることを可能にすべく、ストレージ機構406は、人気度がより高い、またはより有益な所有者メモリ領域のためのスペースを空けるように人気度のより低い所有者メモリ領域の結び付きを解くことをもたらす。このことは、所有者の数が所定の数Nの所有者メモリ領域に近づいているとき、または既に達しているとき、特に価値がある。この場合も、ストレージ機構406は、所有者メモリ領域が所定の数Nの所有者メモリ領域の一部であるか否かにかかわらず、各所有者メモリ領域の人気度の追跡値を、カウンタ、データ構造、またはそれに類するものを介して保持する。
この情報に基づいて、所定の数Nの所有者メモリ領域の一部ではないが、所定の数Nの所有者メモリ領域の一部である所有者メモリ領域より高い人気度値を有することが見出される場合。人気度のより高い所有者メモリ領域が識別された場合、所定の数Nの所有者メモリ領域における人気度の最も低い所有者領域が除去され、所定の数Nの所有者メモリ領域に現在、入っていない人気度のより高い所有者領域が追加される。除去された所有者メモリ領域上のデータ・ブロックは、所定の数Nの所有者メモリ領域における所有者メモリ領域のうちの1つに書き込まれなければならない場合もあることに留意されたい。すなわち、ストレージ機構406は、所定の数Nの所有者メモリ領域に現在、入っている所有者メモリ領域のうちの1つに、除去された所有者メモリ領域上に存在した8KBデータ・チャンクの重複するコピーを書き込むことになる可能性がある。このことは、参照者メモリ領域408内、および関連付けられた所有者メモリ領域410a~410n内で重複する8KBチャンクを生成する可能性がある一方で、重複する8KBチャンクを生成することは、所定の数Nを超える所有者メモリ領域をロードしないことによってストレージ機構406によって経験されるオーバヘッドを低減する。このため、「先着順」ポリシーと「人気度」ポリシーの組合せを使用して、ストレージ機構406は、メモリまたは処理におけるオーバヘッドをさらに低減し、ユーザ入力/出力サイズに依存しない。
本発明は、システム、方法、またはコンピュータ・プログラム製品、あるいはその組合せであることが可能である。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有する1つ(または複数の)コンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるように命令を保持すること、および記憶することができる有形のデバイスであることが可能である。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または以上の任意の適切な組合せであってよいが、これらには限定されない。コンピュータ可読記憶媒体のより具体的な例の網羅的でないリストは、以下、すなわち、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能なプログラマブル読取り専用メモリ(EPROMもしくはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、命令が記録されているパンチカードもしくは溝の中の隆起構造などの機械的に符号化されたデバイス、および以上の任意の適切な組合せを含む。本明細書において使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝達媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または配線を介して伝送される電気信号などの一過性の信号そのものであると解釈されるべきではない。
本明細書において説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、または無線ネットワーク、あるいはその組合せを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされることが可能である。ネットワークは、銅伝送ケーブル、伝送光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組合せを備えてよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶されるようにコンピュータ可読プログラム命令を転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、またはJava(R)、Smalltalk(R)、C++、もしくはそれに類するものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくはそれに類似したプログラミング言語などの従来の手続き型プログラミング言語を含め、1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードであってよい。コンピュータ可読プログラム命令は、全体がユーザのコンピュータ上で実行されても、一部がユーザのコンピュータ上で実行されても、スタンドアロンのソフトウェア・パッケージとして実行されても、一部がユーザのコンピュータ上で、かつ一部が遠隔コンピュータ上で実行されても、全体が遠隔コンピュータもしくは遠隔サーバの上で実行されてもよい。全体が遠隔コンピュータもしくは遠隔サーバの上で実行されるシナリオにおいて、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてよく、または接続は、外部コンピュータに対して行われてもよい(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)。一部の実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、本発明の態様を実行するために、電子回路をカスタマイズするようにコンピュータ可読プログラム命令の状態情報を利用することによってコンピュータ可読プログラム命令を実行することが可能である。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャートまたはブロック図あるいはその両方を参照して本明細書において説明される。フローチャートまたはブロック図あるいはその両方の各ブロック、ならびにフローチャートまたはブロック図あるいはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施されることが可能であることが理解されよう。
これらのコンピュータ可読プログラム命令は、そのコンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行されるそれらの命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すべく、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含む製造品を備えるべく、コンピュータ可読記憶媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイス、あるいはその組合せに特定の様態で機能するように指示することができるものであってもよい。
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータによって実施されるプロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ上、他のプログラマブル装置上、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図5は、例示的な実施形態による、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるストレージ機構によって実行される動作のフローチャートを示す。動作が始まると、ストレージ機構が、メモリ領域のセット内のメモリ領域にデータ・ファイルを書き込む要求を受け取る(ステップ502)。データ・ファイルの各データ・チャンクに関して、ストレージ機構が、データ・チャンクに関するハッシュ値を生成し(ステップ504)、そのハッシュ値を、メモリ領域のセットにおいて参照される記憶された他のデータ・チャンクに関するハッシュ値と比較する(ステップ506)。ステップ506において、比較が、参照者メモリ領域、または参照者メモリ領域に関連付けられた所有者メモリ領域のうちの1つにそのデータ・チャンクが既に存在することを示す場合、ストレージ機構は、そのデータ・チャンクに対するポインタを記憶して(ステップ508)、動作は、その後、終了する。ステップ506において、比較が、書き込まれるメモリ領域、すなわち、参照者メモリ領域にも、関連付けられた1つまたは複数の所有者メモリ領域にもそのデータ・チャンクが存在しないことを示す場合、ストレージ機構は、そのデータ・チャンクを参照者メモリ領域に記憶して(ステップ510)、動作は、その後、終了する。
図6は、例示的な実施形態による、重複排除が、メモリ領域のサブセット、すなわち、参照者メモリ領域、および関連付けられた1つまたは複数の所有者メモリ領域の間で実施されることになる場合にストレージ機構によって実行される動作のフローチャートを示す。データ・ファイルのデータ・チャンクを、ホスト・システムによってデータが書き込まれる1つの参照者領域に記憶する前に、ストレージ機構は、メモリ領域のセットの中の別のメモリ領域にそのデータが存在するかどうかを判定する(ステップ602)。ステップ602において、メモリ領域のセットの中の別のメモリ領域にそのデータが存在しない場合、ストレージ機構は、参照者メモリ領域にそのデータを記憶して(ステップ604)、動作は、その後、終了する。
ステップ602において、メモリ領域のセットの中の別のメモリ領域にそのデータが存在する場合、ストレージ・コントローラは、所定の数Nの所有者メモリ領域に達しているどうかを判定する(ステップ606)。ステップ606において、所定の数Nの所有者メモリ領域に達している場合、ストレージ機構は、所定の数Nの所有者メモリ領域における参照者メモリ領域にそのデータ・チャンクを記憶して(ステップ608)、動作は、その後、終了する。ステップ606において、所定の数Nの所有者メモリ領域に達していない場合、ストレージ機構は、参照者メモリ領域にそのデータ・チャンクに対するリファレンスを記憶する(ステップ610)。次に、ストレージ機構は、ストレージ機構がいずれのポリシーの下で現在、動作しているかに依存して、所定の数Nの所有者メモリ領域にそのメモリ領域を追加してよく(ステップ612)、動作は、その後、終了する。
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備える、命令のモジュール、セグメント、または部分を表すことが可能である。一部の代替の実装形態において、ブロックに記載される機能は、図に記載される順序を外れて生じてよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてよく、またはそれらのブロックが、ときとして、関与する機能に依存して、逆の順序で実行されてよい。また、ブロック図またはフローチャートあるいはその両方の各ブロック、ならびにブロック図またはフローチャートあるいはその両方におけるブロックの組合せは、指定された機能もしくは動作を実行する、または専用ハードウェア命令とコンピュータ命令の組合せを実行する専用ハードウェア・ベースのシステムによって実施されることが可能であることにも留意されたい。
このように、例示的な実施形態は、重複排除効率に最小限の影響しか及ぼさずに分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための機構を提供する。異なる参照者メモリ領域および所有者メモリ領域の間で重複リンクをインテリジェントに作成することによって、重複排除比(dedupe ratio)に最小限の影響しか及ぼさずに参照されるすべてのデータを読み取るためのメモリ要件が最小限に抑えられ、重複排除比に最小限の影響しか及ぼさずにスワップするためのメタデータ領域の量が最小限に抑えられ、重複排除比に最小限の影響しか及ぼさずにストレージ機構と所有者メモリ領域の間の通信の量が最小限に抑えられ、またはシステムのメタデータ領域にわたる重複排除リンクの分散に対する粒度の細かい制御が提供され、あるいはその組合せがもたらされる。
前述したとおり、例示的な実施形態は、完全にハードウェアの実施形態の形態をとっても、完全にソフトウェアの実施形態の形態をとっても、またはハードウェア要素とソフトウェア要素をともに包含する実施形態の形態をとってもよいことを認識されたい。1つの例示的な実施形態において、例示的な実施形態の機構は、ファームウェア、常駐ソフトウェア、マイクロコード、その他を含むが、以上には限定されないソフトウェア・コードまたはプログラム・コードとして実装される。
プログラム・コードを記憶するのに、または実行するのに、あるいはその両方を行うのに適したデータ処理システムが、例えば、システム・バスなどの通信バスを通じてメモリ要素に直接に、または間接的に結合された少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量ストレージと、実行中にコードが大容量ストレージから取り出されなければならない回数を減らすために少なくともいくらかのプログラム・コードの一時的記憶を提供するキャッシュ・メモリとを含むことが可能である。メモリは、ROM、PROM、EPROM、EEPROM、DRAM、SRAM、フラッシュ・メモリ、ソリッドステート・メモリ、およびそれに類するものを含むが、以上には限定されない様々なタイプであってよい。
入出力デバイス、またはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、その他を含むが、以上には限定されない)が、システムに直接に、または介在する有線もしくは無線のI/OインターフェースもしくはI/Oコントローラ、またはその両方、あるいはそれに類するものを介して結合されることが可能である。I/Oデバイスは、例えば、スマートフォン、タブレット・コンピュータ、タッチスクリーン・デバイス、音声認識デバイス、およびそれに類するものを含むが、以上には限定されない有線接続または無線接続を通じて結合された通信デバイスなどの、従来のキーボード、ディスプレイ、ポインティング・デバイス、およびそれに類するもの以外の、異なる多くの形態をとってよい。任意の知られている、または今後、開発されるI/Oデバイスが、例示的な実施形態の範囲に含まれることが意図される。
また、ネットワーク・アダプタが、データ処理システムが、介在するプライベート・ネットワークまたはパブリック・ネットワークを通じて他のデータ処理システムまたは遠隔プリンタまたはストレージ・デバイスに結合されるようになることを可能にすべくシステムに結合されてもよい。モデム、ケーブル・モデム、およびイーサネット(R)・カードは、有線通信のための現在、利用可能なタイプのネットワーク・アダプタのうちのいくつかに過ぎない。また、IEEE802.11a/b/g/n無線通信アダプタ、Bluetooth(R)無線アダプタ、およびそれに類するものを含むが、以上には限定されない無線通信ベースのネットワーク・アダプタが利用されてもよい。任意の知られている、または今後、開発されるネットワーク・アダプタが、本発明の思想および範囲に含まれることが意図される。
本発明の説明は、例示および説明の目的で提示されており、網羅的であることも、本発明を開示される形態に限定することも意図していない。説明される実施形態の範囲および思想を逸脱することなく、多くの変形形態および変更形態が、当業者には明白となろう。実施形態は、本発明の原理、実際的な応用を最もよく説明するように、かつ企図される特定の用途に適する様々な変形を伴って様々な実施形態に関して本発明を当業者が理解することを可能にするように選択され、説明されている。本明細書において使用される用語は、実施形態の原理、実際的な応用、または市場において見られる技術に優る技術的改良を最もよく説明するように、あるいは本明細書において開示される実施形態を当業者が理解することを可能にするように選択されている。

Claims (16)

  1. 分散ロケーション・ベースのデータ・ストレージのための、データ処理システムにおける方法であって、
    ストレージ機構によって、ホスト・システムから、メモリ領域のセットの中の参照者メモリ領域にデータ・ファイルを書き込む要求を受け取ること、ならびに
    前記データ・ファイルの各データ・チャンクに関して、
    前記データ・チャンクに関するハッシュ値の、前記参照者メモリ領域において参照される記憶された他のデータ・チャンクに関する他のハッシュ値に対する比較が、前記データ・チャンクが前記参照者メモリ領域に存在しないことを示すことに応答して、前記ストレージ機構によって、前記データ・チャンクがメモリ領域の前記セットの中の別のメモリ領域に存在するかどうかを判定すること、
    前記データ・チャンクがメモリ領域の前記セットの中の別のメモリ領域に存在することに応答して、前記ストレージ機構によって、前記メモリ領域が、前記参照者メモリ領域に関連付けられた所定の数Nの所有者メモリ領域のうちの1つであるかどうかを判定すること、
    前記メモリ領域が、前記参照者メモリ領域に関連付けられた前記所定の数Nの所有者メモリ領域のうちの1つではないことに応答して、前記ストレージ機構によって、前記所定の数Nの所有者メモリ領域の中の所有者メモリ領域の数に達しているかどうかを判定すること、および
    前記所定の数Nの所有者メモリ領域に達していないことに応答して、前記ストレージ機構によって、前記参照者メモリ領域に前記データ・チャンクに対するリファレンスを記憶すること
    を含む、方法。
  2. 前記所定の数Nの所有者メモリ領域に達したことに応答して、前記ストレージ機構によって、前記参照者メモリ領域に前記データ・チャンクを記憶することをさらに含む、請求項1に記載の方法。
  3. 前記所定の数Nの所有者メモリ領域に達していないことに応答して、前記ストレージ機構によって、前記データ・チャンクが記憶された前記メモリ領域が人気度閾値を満たしているかどうかを判定すること、および
    前記データ・チャンクが記憶されている前記メモリ領域が前記人気度閾値を満たすことに応答して、前記ストレージ機構によって、前記所定の数Nの所有者メモリ領域に前記メモリ領域を追加すること
    をさらに含む、請求項1に記載の方法。
  4. 前記所定の数Nの所有者メモリ領域に達していないことに応答して、前記ストレージ機構によって、前記所定の数Nの所有者メモリ領域に前記メモリ領域を追加することをさらに含む、請求項1に記載の方法。
  5. 前記所定の数Nの所有者メモリ領域内の前記所有者メモリ領域が、先着順ポリシーまたは人気度ポリシーのいずれかに基づいて決定される、請求項1に記載の方法。
  6. 前記先着順ポリシーの下で、データが前記メモリ領域に記憶されるにつれ、前記所定の数Nの所有者メモリ領域に前記メモリ領域が追加される、請求項5に記載の方法。
  7. 前記人気度ポリシーの下で、前記メモリ領域の前記人気度が所定の閾値を満たすとき、前記所定の数Nの所有者メモリ領域に前記メモリ領域が追加され、前記所定の閾値を満たすのが、前記メモリ領域に対する読取りもしくは書込み、またはその両方の回数が、前記閾値に達するとき、または前記閾値を超えるときである、請求項5に記載の方法。
  8. 前記人気度ポリシーの下で、前記所定の数Nの所有者メモリ領域が一杯である場合に、別のメモリ領域の人気度が、前記所定の数Nの所有者メモリ領域に既に入っている人気度の最も低い所有者メモリ領域の人気度を超えたとき、前記所定の数Nの所有者メモリ領域から所有者メモリ領域が除去される、請求項7に記載の方法。
  9. コンピュータ・プログラムであって、請求項1ないし8のいずれか1項に記載の方法の各ステップをコンピュータに実行させるための、コンピュータ・プログラム。
  10. 請求項9に記載のコンピュータ・プログラムを記録した、コンピュータ可読記憶媒体。
  11. 装置であって、
    プロセッサと、
    前記プロセッサに結合されたメモリと
    を備え、
    前記メモリが、前記プロセッサによって実行されたとき、前記プロセッサに、
    ホスト・システムから、メモリ領域のセットの中の参照者メモリ領域にデータ・ファイルを書き込む要求を受け取ること、ならびに
    前記データ・ファイルの各データ・チャンクに関して、
    前記データ・チャンクに関するハッシュ値の、前記参照者メモリ領域において参照される記憶された他のデータ・チャンクに関する他のハッシュ値に対する比較が、前記データ・チャンクが前記参照者メモリ領域に存在しないことを示すことに応答して、前記データ・チャンクがメモリ領域の前記セットの中の別のメモリ領域に存在するかどうかを判定すること、
    前記データ・チャンクがメモリ領域の前記セットの中の別のメモリ領域に存在することに応答して、前記メモリ領域が、前記参照者メモリ領域に関連付けられた所定の数Nの所有者メモリ領域のうちの1つであるかどうかを判定すること、
    前記メモリ領域が、前記参照者メモリ領域に関連付けられた前記所定の数Nの所有者メモリ領域のうちの1つではないことに応答して、前記所定の数Nの所有者メモリ領域の中の所有者メモリ領域の数に達しているかどうかを判定すること、および
    前記所定の数Nの所有者メモリ領域に達していないことに応答して、前記参照者メモリ領域に前記データ・チャンクに対するリファレンスを記憶すること
    を行わせる命令を備える、装置。
  12. 前記命令が、前記プロセッサに、前記所定の数Nの所有者メモリ領域に達したことに応答して、前記参照者メモリ領域に前記データ・チャンクを記憶することをさらに行わせる、請求項11に記載の装置。
  13. 前記命令が、前記プロセッサに、
    前記所定の数Nの所有者メモリ領域に達していないことに応答して、前記データ・チャンクが記憶された前記メモリ領域が人気度閾値を満たしているかどうかを判定すること、
    および
    前記データ・チャンクが記憶されている前記メモリ領域が前記人気度閾値を満たすことに応答して、前記所定の数Nの所有者メモリ領域に前記所有者メモリ領域を追加すること
    をさらに行わせる、請求項11に記載の装置。
  14. 前記命令が、前記プロセッサに、前記所定の数Nの所有者メモリ領域に達していないことに応答して、前記所定の数Nの所有者メモリ領域に前記メモリ領域を追加することをさらに行わせる、請求項11に記載の装置。
  15. 前記所定の数Nの所有者メモリ領域内の前記所有者メモリ領域が、先着順ポリシーまたは人気度ポリシーのいずれかに基づいて決定される、請求項11に記載の装置。
  16. 前記先着順ポリシーの下で、データが前記メモリ領域に記憶されるにつれ、前記所定の数Nの所有者メモリ領域に前記メモリ領域が追加され、
    前記人気度ポリシーの下で、前記メモリ領域の前記人気度が所定の閾値を満たすとき、
    前記所定の数Nの所有者メモリ領域に前記メモリ領域が追加され、前記所定の閾値を満たすのが、前記メモリ領域に対する読取りもしくは書込み、またはその両方の回数が、前記閾値に達するとき、または前記閾値を超えるときである、あるいは
    前記人気度ポリシーの下で、前記所定の数Nの所有者メモリ領域が一杯である場合に、別のメモリ領域の人気度が、前記所定の数Nの所有者メモリ領域に既に入っている人気度の最も低い所有者メモリ領域の人気度を超えたとき、前記所定の数Nの所有者メモリ領域から所有者メモリ領域が除去される、請求項15に記載の装置。
JP2020519732A 2017-10-25 2018-10-12 分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための方法、コンピュータ・プログラム製品、および装置 Active JP7087070B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/793,109 US11269531B2 (en) 2017-10-25 2017-10-25 Performance of dispersed location-based deduplication
US15/793,109 2017-10-25
PCT/IB2018/057924 WO2019082016A1 (en) 2017-10-25 2018-10-12 IMPROVED DEDUPLICATION PERFORMANCE BASED ON DISPERSED LOCATIONS

Publications (3)

Publication Number Publication Date
JP2021500643A JP2021500643A (ja) 2021-01-07
JP2021500643A5 JP2021500643A5 (ja) 2021-04-22
JP7087070B2 true JP7087070B2 (ja) 2022-06-20

Family

ID=66169951

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020519732A Active JP7087070B2 (ja) 2017-10-25 2018-10-12 分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための方法、コンピュータ・プログラム製品、および装置

Country Status (6)

Country Link
US (2) US11269531B2 (ja)
JP (1) JP7087070B2 (ja)
CN (1) CN111213130B (ja)
DE (1) DE112018004402B4 (ja)
GB (1) GB2580276B (ja)
WO (1) WO2019082016A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455110B1 (en) * 2021-09-08 2022-09-27 International Business Machines Corporation Data deduplication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159142A (ja) 2010-02-02 2011-08-18 Nec Corp ストレージシステム
US20140237202A1 (en) 2013-02-19 2014-08-21 Hitachi, Ltd. System for preventing duplication of autonomous distributed files, storage device unit, and data access method
JP2014527672A (ja) 2011-08-16 2014-10-16 ピュア・ストレージ・インコーポレイテッド ストレージシステムにおけるマッピングテーブルを効果的に管理するコンピューターシステムおよびその方法
JP2017526084A (ja) 2014-09-04 2017-09-07 エディファイアー・エルエルシーEdifire LLC 分散データの同期および対立解消

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825617B2 (en) 2008-03-14 2014-09-02 International Business Machines Corporation Limiting deduplication based on predetermined criteria
US7979658B2 (en) * 2008-03-25 2011-07-12 Spansion Llc Secure management of memory regions in a memory
US7567188B1 (en) * 2008-04-10 2009-07-28 International Business Machines Corporation Policy based tiered data deduplication strategy
US10642794B2 (en) 2008-09-11 2020-05-05 Vmware, Inc. Computer storage deduplication
CN101706825B (zh) 2009-12-10 2011-04-20 华中科技大学 一种基于文件内容类型的重复数据删除方法
US8156306B1 (en) 2009-12-18 2012-04-10 Emc Corporation Systems and methods for using thin provisioning to reclaim space identified by data reduction processes
US20110218967A1 (en) 2010-03-08 2011-09-08 Microsoft Corporation Partial Block Based Backups
US8364652B2 (en) * 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US9244967B2 (en) 2011-08-01 2016-01-26 Actifio, Inc. Incremental copy performance between data stores
US9063864B2 (en) * 2012-07-16 2015-06-23 Hewlett-Packard Development Company, L.P. Storing data in presistent hybrid memory
CA2912394A1 (en) 2013-05-14 2014-11-20 Actifio, Inc. Efficient data replication and garbage collection predictions
GB2518158A (en) * 2013-09-11 2015-03-18 Ibm Method and system for data access in a storage infrastructure
CN103559143A (zh) * 2013-11-08 2014-02-05 华为技术有限公司 数据拷贝管理装置及其数据拷贝方法
US9965182B2 (en) 2015-10-21 2018-05-08 International Business Machines Corporation Optimization of data deduplication
US9817865B2 (en) * 2015-12-07 2017-11-14 International Business Machines Corporation Direct lookup for identifying duplicate data in a data deduplication system
US10013201B2 (en) * 2016-03-29 2018-07-03 International Business Machines Corporation Region-integrated data deduplication
US10592348B2 (en) * 2016-06-17 2020-03-17 Acronis International Gmbh System and method for data deduplication using log-structured merge trees

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159142A (ja) 2010-02-02 2011-08-18 Nec Corp ストレージシステム
JP2014527672A (ja) 2011-08-16 2014-10-16 ピュア・ストレージ・インコーポレイテッド ストレージシステムにおけるマッピングテーブルを効果的に管理するコンピューターシステムおよびその方法
US20140237202A1 (en) 2013-02-19 2014-08-21 Hitachi, Ltd. System for preventing duplication of autonomous distributed files, storage device unit, and data access method
JP2014160311A (ja) 2013-02-19 2014-09-04 Hitachi Ltd 自律分散重複排除ファイルシステム、記憶装置ユニット及びデータアクセス方法
JP2017526084A (ja) 2014-09-04 2017-09-07 エディファイアー・エルエルシーEdifire LLC 分散データの同期および対立解消

Also Published As

Publication number Publication date
CN111213130A (zh) 2020-05-29
JP2021500643A (ja) 2021-01-07
DE112018004402T5 (de) 2020-05-20
GB2580276B (en) 2020-12-09
US20220155987A1 (en) 2022-05-19
GB202007041D0 (en) 2020-06-24
DE112018004402B4 (de) 2022-11-03
US20190121563A1 (en) 2019-04-25
CN111213130B (zh) 2024-03-01
GB2580276A (en) 2020-07-15
WO2019082016A1 (en) 2019-05-02
US11269531B2 (en) 2022-03-08

Similar Documents

Publication Publication Date Title
US10831654B2 (en) Cache management using multiple cache history lists
US9606748B2 (en) Importing pre-existing data of a prior storage solution into a storage pool for use with a new storage solution
CN111949605A (zh) 用于实现文件系统的方法、设备和计算机程序产品
US11243717B2 (en) Method, electronic device and computer program product for processing data
CN110737399B (zh) 用于管理存储系统的方法、设备和计算机程序产品
US9104839B2 (en) De-duplication aware secure delete
US20170371581A1 (en) Opportunistic Handling of Freed Data in Data De-Duplication
US11599595B2 (en) Determining whether to process identified uniform resource locators
US10901631B2 (en) Efficient adaptive read-ahead in log structured storage
US20210192046A1 (en) Resource Management Unit for Capturing Operating System Configuration States and Managing Malware
US10467190B2 (en) Tracking access pattern of inodes and pre-fetching inodes
US20160077851A1 (en) Optimizing a file system interface in a virtualized computing environment
JP2019537097A (ja) Iノードのアクセスパターンの追跡及びiノードの先取り
JP7087070B2 (ja) 分散ロケーション・ベースの重複排除のパフォーマンスを向上させるための方法、コンピュータ・プログラム製品、および装置
US20240211154A1 (en) Method, device, and computer program product for de-duplicating data
US10372622B2 (en) Software controlled cache line replacement within a data property dependent cache segment of a cache using a cache segmentation enablement bit and cache segment selection bits
US10901895B2 (en) Data file handling in a volatile memory
US11144459B2 (en) Cache coherency adopted GPU shared memory
US11662927B2 (en) Redirecting access requests between access engines of respective disk management devices
US9626121B2 (en) De-duplication as part of other routinely performed processes
US20180089086A1 (en) Tracking access pattern of inodes and pre-fetching inodes
US9857979B2 (en) Optimizing page boundary crossing in system memory using a reference bit and a change bit
US10558680B2 (en) Efficient data retrieval in big-data processing systems
US10929793B2 (en) Utilizing analytic data to generate crowd-based custom logic units
US10621160B2 (en) Storage management inconsistency tracker

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211223

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220608

R150 Certificate of patent or registration of utility model

Ref document number: 7087070

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150