Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5774742B2 - データ重複除去方法及び装置 - Google Patents
[go: Go Back, main page]

JP5774742B2 - データ重複除去方法及び装置 - Google Patents

データ重複除去方法及び装置 Download PDF

Info

Publication number
JP5774742B2
JP5774742B2 JP2014045770A JP2014045770A JP5774742B2 JP 5774742 B2 JP5774742 B2 JP 5774742B2 JP 2014045770 A JP2014045770 A JP 2014045770A JP 2014045770 A JP2014045770 A JP 2014045770A JP 5774742 B2 JP5774742 B2 JP 5774742B2
Authority
JP
Japan
Prior art keywords
data
deduplication
time
unit
unique identifier
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
JP2014045770A
Other languages
English (en)
Other versions
JP2014175008A (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.)
POSTECH Academy Industry Foundation
Original Assignee
POSTECH Academy Industry Foundation
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 POSTECH Academy Industry Foundation filed Critical POSTECH Academy Industry Foundation
Publication of JP2014175008A publication Critical patent/JP2014175008A/ja
Application granted granted Critical
Publication of JP5774742B2 publication Critical patent/JP5774742B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

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)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、データ重複除去技術に関し、より詳細には、低い入出力レイテンシ(latency)を提供するためのデータ重複除去方法及び装置に関する。
データ重複除去技術は、データ保存装置内に重複されたデータを除去してより多い保存空間を確保するための技術を意味する。現在、多い企業、公共機関などでデータの安全な保管のためにデータのバックアップ(backup)を周期的に実行している。バックアップデータは、その特性上多い重複的な要素を有し、これによって、バックアップデータの保存空間の効率を向上させるためにデータ重複除去技術が使われている。このようなデータ重複除去技術は、バックアップデータ保存装置の特性上、低い入出力レイテンシ(latency)を必要としないので、重複除去率を高める技術を中心として発展している。
しかし、このようなデータ重複除去技術は、重複除去のための複雑なアルゴリズム(algorithm)を基礎で実行されるため、ノート型PC(notebook)、スマートホン(smartphone)、タブレット型(tablet)PCなどのような携帯用端末に適用しにくい問題点がある。すなわち、このような携帯用端末にデータ重複除去技術を適用する場合、順次的に保存されたデータの物理的手順が変わるようになるのでデータの入出力速度が深刻に遅くなる問題点がある。
したがって、前記のような従来の諸問題点を解消するために提案されたものであって、本発明の目的は、データの入出力特性に応じて適応的に決定された重複除去率を基盤としてデータの重複を除去するためのデータ重複除去方法を提供することにある。
本発明の他の目的は、データの入出力特性に応じて適応的に決定された重複除去率を基盤としてデータの重複を除去するためのデータ重複除去装置を提供することにある。
前記目的を達成するための本発明の一実施例によるデータの重複除去方法は、データの入力要請または出力要請を基盤として前記データに対する接近特性を獲得する段階と、前記接近特性を基盤として前記データの重複除去単位を決定する段階と、前記重複除去単位を基盤として前記データに対する重複除去を実行する段階と、を含む。
ここで、前記接近特性は、前記データに対する接近時間、前記データに対する変更時間、前記データに対する順次的接近回数及び前記データに対する任意的接近回数の中で少なくとも一つを含むことができる。
ここで、前記接近特性を獲得する段階は、前記データの入力要請を受信した場合、前記データの入力要請に対する時間情報を基盤として前記接近時間及び前記変更時間を獲得する段階と、前記データの入力要請の連続性を基盤として前記順次的接近回数または前記任意的接近回数を獲得する段階と、を含むことができる。
ここで、前記接近特性を獲得する段階は、前記データの出力要請を受信した場合、前記データの出力要請に対する時間情報を基盤として前記接近時間を獲得する段階と、前記データの出力要請の連続性を基盤として前記順次的接近回数または前記任意的接近回数を獲得する段階と、を含むことができる。
ここで、前記重複除去単位を決定する段階は、前記データに対する現在接近時間と前記データに対する以前変更時間に対する第1の差を算出する段階と、前記第1の差が予め定義された第1の時間以下の場合、前記重複除去単位をデータに対する重複除去可能性が一番低い第4の重複除去単位で決定する段階と、前記第1の差が予め定義された第1の時間を超過する場合、前記データに対する現在接近時間と前記データに対する以前接近時間に対する第2の差を算出する段階と、前記第2の差が予め定義された第2の時間を超過する場合、前記重複除去単位をデータに対する重複除去可能性が一番高い第1の重複除去単位で決定する段階と、前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数以上であれば、前記重複除去単位を第1の重複除去単位より重複除去可能性が低い第2の重複除去単位で決定する段階と、前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数未満であれば、前記重複除去単位を第2の重複除去単位より重複除去可能性が低い第3の重複除去単位で決定する段階と、を含むことができる。
ここで、前記第4の重複除去単位は、前記データに対する重複除去を実行しないことを意味する。
ここで、前記データに対する重複除去を実行する段階は、前記重複除去単位を基盤として前記データに対する少なくても一つのデータブロックを生成する段階と、前記データブロックに対する固有の識別子を生成する段階と、前記固有の識別子がインデックステーブル内に存在するか否かを判断する段階と、前記固有の識別子が前記インデックステーブル内に存在する場合、前記固有の識別子に対応したデータブロックを除去する段階と、前記固有の識別子が前記インデックステーブル内に存在しない場合、前記固有の識別子と前記固有の識別子に対応したデータブロックを保存する段階と、を含むことができる。
ここで、前記固有の識別子を生成する段階は、ハッシュアルゴリズムを使用して前記データブロックに対する固有の識別子を生成することができる。
ここで、前記重複除去単位は、データに対する重複除去可能性を基盤として少なくとも一つの重複除去単位で分類されることができる。
本発明の他の目的を達成するための本発明の一実施例によるデータ重複除去装置は、データの入力要請または出力要請を基盤として前記データに対する接近特性を獲得し、前記接近特性を基盤として前記データの重複除去単位を決定し、前記重複除去単位を基盤として前記データに対する重複除去を実行する処理部と、前記処理部で処理される情報及び処理された情報を保存する保存部と、を含む。
ここで、前記接近特性は、前記データに対する接近時間、前記データに対する変更時間、前記データに対する順次的接近回数及び前記データに対する任意的接近回数の中で少なくとも一つを含むことができる。
ここで、前記処理部は、前記データの入力要請を受信した場合、前記データの入力要請に対する時間情報を基盤として前記接近時間及び前記変更時間を獲得し、前記データの入力要請の連続性を基盤として前記順次的接近回数または前記任意的接近回数を獲得することができる。
ここで、前記処理部は、前記データの出力要請を受信した場合、前記データの出力要請に対する時間情報を基盤として前記接近時間を獲得し、前記データの出力要請の連続性を基盤として前記順次的接近回数または前記任意的接近回数を獲得することができる。
ここで、前記処理部は、前記重複除去単位を決定する場合、前記データに対する現在接近時間と前記データに対する以前変更時間に対する第1の差を算出し、前記第1の差が予め定義された第1の時間以下の場合、前記重複除去単位をデータに対する重複除去可能性が一番低い第4の重複除去単位で決定し、前記第1の差が予め定義された第1の時間を超過する場合、前記データに対する現在接近時間と前記データに対する以前接近時間に対する第2の差を算出し、前記第2の差が予め定義された第2の時間を超過する場合、前記重複除去単位をデータに対する重複除去可能性が一番高い第1の重複除去単位で決定し、前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数以上であれば、前記重複除去単位を第1の重複除去単位より重複除去可能性が低い第2の重複除去単位で決定し、前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数未満であれば、前記重複除去単位を第2の重複除去単位より重複除去可能性が低い第3の重複除去単位で決定することができる。
ここで、前記第4の重複除去単位は、前記データに対する重複除去を実行しないことを意味する。
ここで、前記処理部は、前記データに対する重複除去を実行する場合、前記重複除去単位を基盤として前記データに対する少なくても一つのデータブロックを生成し、前記データブロックに対する固有の識別子を生成し、前記固有の識別子がインデックステーブル内に存在するか否かを判断し、前記固有の識別子が前記インデックステーブル内に存在する場合、前記固有の識別子に対応したデータブロックを除去し、前記固有の識別子が前記インデックステーブル内に存在しない場合、前記固有の識別子と前記固有の識別子に対応したデータブロックを保存することができる。
ここで、前記処理部は、前記固有の識別子を生成する場合、ハッシュアルゴリズムを使用して前記データブロックに対する固有の識別子を生成することができる。
ここで、前記重複除去単位は、データに対する重複除去可能性を基盤として少なくとも一つの重複除去単位で分類されることができる。
本発明によれば、データの入出力特性を基盤として重複除去率(すなわち、チャンク(chunk)のサイズ)を適応的に決定することができ、適応的に決定された重複除去率を基盤として重複を除去することができるので、低い入出力レイテンシ(latency)を提供することができる。
図1は、本発明の一実施例によるデータ重複除去方法を示したフローチャートである。 図2は、データに対する接近特性を示した表である。 図3は、本発明の一実施例によるデータ重複除去方法において接近特性獲得段階を示した図である。 図4は、本発明の一実施例によるデータ重複除去方法において重複除去単位決定段階を示したフローチャートである。 図5は、重複除去単位に対する特性を示した表である。 図6は、本発明の一実施例によるデータ重複除去方法において重複除去実行段階を示したフローチャートである。 図7は、データブロックに対する固有の識別子を生成する過程を示した概念図である。 図8は、本発明の一実施例によるデータ重複除去装置を示したブロック図である。
本発明は、多様に変更可能であり、さまざまな実施形態を有することができる。ここでは、特定の実施形態を図面に例示して詳細に説明する。
しかし、これは本発明の好ましい実施態様に過ぎず、本発明の実施の範囲を限定するものではなく、本発明の明細書及び図面内容に基づいてなされた均等な変更および付加は、いずれも本発明の特許請求の範囲内に含まれるものとする。
第1、第2などの用語は、多様な構成要素を説明するために使用することができるが、前記構成要素は前記用語により限定されものではない。前記用語は、一つの構成要素を他の構成要素から区別するための目的のみで使用される。例えば、本発明の権利範囲を脱しない範囲で、第1の構成要素は第2の構成要素と命名することができ、類似に第2の構成要素も第1の構成要素と命名することができる。及び/またはとの用語は、複数の関連された記載された項目の組み合わせまたは複数の関連された記載された項目の中のいずれか一項目を含む。
いかなる構成要素が他の構成要素に「連結されて」いるかあるいは「接続されて」いるとの用語は、ある構成要素が他の構成要素に直接的に連結されるかあるいは接続されることもできるが、中間に他の構成要素が介在することもできることを意味する。一方に、ある構成要素が他の構成要素に「直接連結されて」いるかあるいは「直接接続されて」いるとの用語は、中間に他の構成要素が存在しないことを意味する。
本明細書で使用した用語は、但し、特定の実施形態を説明するために使用されたもので、本発明はこれに限定されるものではない。単数の表現は、文脈上明白に相違に記載しない限り複数の表現を含む。本出願において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するのであって、一つまたはその以上の他の特徴や数字、ステップ、動作、構成要素、部品またはこれらを組み合わせたものなどの存在または付加可能性をあらかじめ排除することではない。
特定しない限り、技術的や科学的な用語を含んでここで使用されるすべての用語は、本発明が属する技術分野で通常の知識を有する者により一般的に理解される意味と同一な意味を有する。一般的に使用される辞典に定義された用語は、関連技術の文脈上有する意味と一致することと解でき、本出願において明白に定義しない限り、理想的や過度に形式的な意味を有することで解釈できない。
以下、添付図面を参照して実施例を詳しく説明するが、図面符号に関係なく同一であるか対応する構成要素には同一な参照番号を付与し、その重複説明は省略する。
図1は、本発明の一実施例によるデータ重複除去方法を示したフローチャートである。
図1を参照すれば、本発明の一実施例によるデータ重複除去方法は、データの入力要請または出力要請を基盤としてデータに対する接近特性を獲得する段階(ステップS100)と、接近特性を基盤としてデータの重複除去単位を決定する段階(ステップS200)と、重複除去単位を基盤としてデータに対する重複除去を実行する段階(ステップS300)と、を含む。
ここで、図1に示した各段階は、図8に示したデータ重複除去装置で実行することができ、データ重複除去装置の具体的な構成とその機能に対しては後述する。
図2は、データに対する接近特性を示した表である。
図2を参照すれば、データに対する接近特性は、データに対する接近時間(a_time)、データに対する変更時間(m_time)、データに対する順次的接近回数(seqCount)、データに対する任意的接近回数(randCount)などを含むことができる。ここで、データに対する接近特性は、前記情報などに限定されないで、データの入力または出力に対する特性を示すことができる情報であれば、いずれも含むことができる。
データに対する接近時間(a_time)は、データの入力要請(すなわち、データの書き込み要請)またはデータの出力要請(すなわち、データの読み取り要請)を受信した時間を意味する。データの入力要請を受けた場合、データ重複除去装置は、入力要請時間を該当データに対する接近時間で獲得することができ、獲得した接近時間を保存(すなわち、現在データに対するa_timeフィールドを現在時間で記録)することができる。一方、既に保存された接近時間がある場合、データ重複除去装置は、既に保存された接近時間を最近獲得した接近時間に更新することができる。
一方、データの出力要請を受けた場合、データ重複除去装置は、出力要請時間を該当データに対する接近時間で獲得することができ、獲得した接近時間を保存(すなわち、現在データに対するa_timeフィールドを現在時間で記録)することができる。一方、既に保存された接近時間がある場合、データ重複除去装置は、既に保存された接近時間を最近獲得した接近時間に更新することができる。
データに対する変更時間(m_time)は、データの入力要請を受信した時間を意味する。データの入力要請を受けた場合、データ重複除去装置は、入力要請時間を該当データに対する変更時間で獲得することができ、獲得した変更時間を保存(すなわち、現在データに対するm_timeフィールドを現在時間で記録)できる。一方、既に保存された変更時間がある場合、データ重複除去装置は、既に保存された変更時間を最近獲得した変更時間に更新することができる。
データに対する順次的接近回数(seqCount)は、現在のデータ要請と以前のデータ要請が連続された(すなわち、現在のデータ要請と以前のデータ要請の物理的または論理的ブロック番号が連続的な場合、またはその要請が連続的な形態を有する場合)回数を意味し、データに対する任意的接近回数(randCount)は、現在のデータ要請と以前データ要請が連続されない回数を意味する。ここで、順次的接近回数と任意的接近回数は、現在まで累積された回数を意味する。
現在のデータ要請と以前のデータ要請が連続される場合、データ重複除去装置は、現在データに対するseqCountフィールドの値を1増加させる。一方、現在のデータ要請と以前のデータ要請が連続されない場合、データ重複除去装置は、現在データに対するrandCountフィールドの値を1増加させる。
図3は、本発明の一実施例によるデータ重複除去方法において接近特性獲得段階を示したフローチャートである。
図3を参照すれば、データに対する接近特性を獲得する段階(ステップS100)は、受信された要請がデータの入力要請に該当するかデータの出力要請に該当するかを判断する段階(ステップS110)と、データの入力要請を受信した場合、データの入力要請に対する時間情報を基盤として接近時間及び変更時間を獲得する段階(ステップS120)と、データの入力要請の連続性を基盤として順次的接近回数または任意的接近回数を獲得する段階(ステップS130)と、を含む。
また、データに対する接近特性を獲得する段階(ステップS100)は、データの出力要請を受信した場合、データの出力要請に対する時間情報を基盤として接近時間を獲得する段階(ステップS140)と、データの出力要請の連続性を基盤として順次接近回数または任意的接近回数を獲得する段階(ステップS150)と、を含む。
ステップS110において、データ重複除去装置は、受信された要請がデータの入力要請に該当するかデータの出力要請に該当するかを判断する。受信された要請がデータの入力要請に該当する場合、データ重複除去装置は、次の段階として、ステップS120、ステップS130を実行する。一方、受信された要請がデータの出力要請に該当する場合、データ重複除去装置は、次の段階として、ステップS140、ステップS150を実行する。
ステップS120において、データ重複除去装置は、データの入力要請に対する時間情報を基盤として接近時間及び変更時間を獲得する。すなわち、データ重複除去装置は、データの入力要請を受信した時間を接近時間及び変更時間で獲得することができ、獲得した接近時間及び獲得した変更時間をデータベース(database)に保存する。この時、既に保存された接近時間が存在する場合、データ重複除去装置は、既に保存された接近時間を前記獲得した接近時間に更新することができ、既に保存された変更時間が存在する場合、データ重複除去装置は、既に保存された変更時間を前記獲得した変更時間に更新することができる。
ステップS130において、データ重複除去装置は、データの入力要請と該当データに対する以前要請の連続性を基盤として順次的接近回数または任意的接近回数を獲得することができる。すなわち、データ重複除去装置は、データの入力要請と該当データに対する以前要請が連続される場合、順次的接近回数を1増加させることができ、データの入力要請と該当データに対する以前要請が連続されない場合、任意的接近回数を1増加させることができる。
例えば、データベースに保存された接近特性の中で順次的接近回数が7であり、任意的接近回数が5である場合、データ重複除去装置は、データの入力要請と該当データに対する以前要請が連続される場合、順次接近回数を8に更新し、データの入力要請と該当データに対する以前要請が連続されない場合、任意的接近回数を6に更新する。
ここで、ステップS120を先に実行した後、ステップS130を実行することで説明したが、ステップS120とステップS130の実行順序は、これに限定されない。すなわち、ステップS130は、ステップS120と同時に実行するか、またはステップS120より先に実行してもよい。
ステップS140において、データ重複除去装置は、データの出力要請に対する時間情報を基盤として接近時間を獲得することができる。すなわち、データ重複除去装置は、データの出力要請を受信した時間を接近時間で獲得することができ、獲得した接近時間をデータベースに保存することができる。この時、既に保存された接近時間が存在する場合、データ重複除去装置は、既に保存された接近時間を前記獲得した接近時間に更新することができる。
ステップS150において、データ重複除去装置は、データの出力要請と該当データに対する以前要請の連続性を基盤として順次的接近回数または任意的接近回数を獲得することができる。すなわち、データ重複除去装置は、データの出力要請と該当データに対する以前要請が連続される場合、順次接近回数を1増加させることができ、データの入力要請と該当データに対する以前要請が連続されない場合、任意的接近回数を1増加させることができる。
例えば、データベースに保存された接近特性の中で順次的接近回数が7であり、任意的接近回数が5である場合、データ重複除去装置は、データの出力要請と該当データに対する以前要請が連続される場合、順次接近回数を8に更新し、データの出力要請と該当データに対する以前要請が連続されない場合、任意的接近回数を6に更新する。
ここで、ステップS140を先に実行した後、ステップS150を実行することで説明したが、ステップS140とステップS150の実行順序は、これに限定されない。すなわち、ステップS150は、ステップS140と同時に実行するか、またはステップS140より先に実行してもよい。
図4は、本発明の一実施例によるデータ重複除去方法において重複除去単位決定段階を示したフローチャートである。
図4を参照すれば、重複除去単位を決定する段階(ステップS200)は、データに対する現在接近時間とデータに対する以前変更時間に対する第1の差を算出する段階(ステップS210)と、第1の差が予め定義された第1の時間を超過するか否かを判断する段階(ステップS220)と、第1の差が予め定義された第1の時間以下の場合、重複除去単位をデータに対する重複除去可能性が一番低い第4の重複除去単位で決定する段階(ステップS230)と、第1の差が予め定義された第1の時間を超過する場合、データに対する現在接近時間とデータに対する以前接近時間に対する第2の差を算出する段階(ステップS240)と、第2の差が予め定義された第2の時間以下であるか否かを判断する段階(ステップS250)と、第2の差が予め定義された第2の時間を超過する場合、重複除去単位をデータに対する重複除去可能性が一番高い第1の重複除去単位で決定する段階(ステップS260)と、第2の差が予め定義された第2の時間以下の場合、データに対する任意的接近回数がデータに対する順次的接近回数以下であるか否かを判断する段階(ステップS270)と、第2の差が予め定義された第2の時間以下の場合、データに対する任意的接近回数が順次的接近回数以上であれば、重複除去単位を第1の重複除去単位より重複除去可能性が低い第2の重複除去単位で決定する段階(ステップS280)と、第2の差が予め定義された第2の時間以下の場合、データに対する任意的接近回数が順次的接近回数未満であれば、重複除去単位を第2の重複除去単位より重複除去可能性が低い第3の重複除去単位で決定する段階(ステップS290)と、を含むことができる。
以下、ステップS200で決定される重複除去単位に対して図5を参照して詳細に説明する。
図5は、重複除去単位に対する特性を示した表である。
図5を参照すれば、重複除去単位は、第1の重複除去単位、第2の重複除去単位、第3の重複除去単位、第4の重複除去単位で分類することができる。第1の重複除去単位は、よく使われないデータに適用することができ、よく使われないデータは、データに対する現在接近時間と以前接近時間の差が予め定義された臨界値より大きいデータを意味する。第1の重複除去単位は、全ての重複除去単位の中で一番小さいチャンク(chunk)を使用する。これによって、全ての重複除去単位の中で一番高いデータ重複除去率を提供することができる。すなわち、第1の重複除去単位は、低いレイテンシ(latency)より高いデータ重複除去率を提供するために使われることができる。
第2の重複除去単位は、順次的接近より任意的接近がよく発生するデータに適用することができる。第2の重複除去単位は、第1の重複除去単位より大きくて第3の重複除去単位より小さいサイズのチャンクを使用する。これによって、全ての重複除去単位の中で相対的に高いデータ重複除去率(すなわち、第1の重複除去単位より低く第3の重複除去単位より高い重複除去率)を提供することができる。すなわち、任意的接近がよく発生するデータの場合、物理的な歪みが発生しても任意的接近性能に問題が発生しないので、第2の重複除去単位は、高い重複除去率を提供するために相対的に小さいサイズのチャンクを使用することができる。
第3の重複除去単位は、任意的接近より順次的接近がよく発生するデータに適用することができる。第3の重複除去単位は、第2の重複除去単位より大きいサイズのチャンクを使用する。これによって、全ての重複除去単位の中で相対的に小さい重複除去率(すなわち、第2の重複除去単位より低い重複除去率)を提供することができる。すなわち、順次的な接近がよく発生するデータに対して低い入出力レイテンシを提供するため、第3の重複除去単位は、相対的に大きいサイズのチャンクを使用することができる。
第4の重複除去単位は、入力がよく発生するデータに適用することができる。第4の重複除去単位は、第3の重複除去単位より大きいサイズのチャンクを使用する。これによって、全ての重複除去単位の中で一番小さい重複除去率(すなわち、第3の重複除去単位より低い重複除去率)を提供することができる。一方、第4の重複除去単位は、データに対する重複除去を実行しないことを意味する。すなわち、データの重複除去は、出力を主とするデータに有利なので、入力を主とするデータの場合、重複除去を実行しないこともある。
ここで、重複除去単位の分類は、上述の説明に限定されないで、多様に構成することができる。例えば、重複除去単位を3個分類または5個分類で構成することができる。重複除去単位が3個分類で構成される場合、第1の重複除去単位は、一番高い重複除去率を提供することができ、第2の重複除去単位は、第1の重複除去単位より低い重複除去率を提供することができ、第3の重複除去単位は、第2の重複除去単位より低い重複除去率(すなわち、一番低い重複除去率)を提供することができる。
さらに、図4を参照すれば、ステップS210において、データ重複除去装置は、データに対する現在接近時間とデータに対する以前変更時間に対する第1の差を算出することができる。すなわち、データ重複除去装置は、データの入力要請または出力要請から獲得した現在接近時間と、同一なデータに対する以前変更時間(すなわち、データの以前入力要請から獲得した変更時間)の差である第1の差を算出することができる。ここで、第1の差は、該当データがどれくらいの頻度で変更されるか(すなわち、データの入力要請がどれくらい頻度で発生するか)を意味する。
ステップS220において、データ重複除去装置は、第1の差が予め定義された第1の時間を超過するか否かを判断することができる。ここで、予め定義された第1の時間は、データ重複除去を実行するために基準になる時間を意味し、ユーザの設定によって異なる値を有することができる。例えば、予め定義された第1の時間は、1時間、2時間、3時間などで設定することができる。第1の差が予め定義された第1の時間以下の場合、データ重複除去装置は、次の段階として、ステップS230を実行することができ、第1の差が予め定義された第1の時間を超過する場合、データ重複除去装置は、次の段階として、ステップS240を実行することができる。
ステップS230において、データ重複除去装置は、重複除去単位をデータに対する重複除去可能性が一番低い第4の重複除去単位で決定することができる。すなわち、第1の差が予め定義された第1の時間以下の場合、これは入力がよく発生するデータを意味するので、データ重複除去装置は、重複除去単位の中でデータ重複除去率が一番低い(または、データ重複除去を実行しない)第4の重複除去単位を選択することができる。
ステップS240において、データ重複除去装置は、データに対する現在接近時間とデータに対する以前接近時間に対する第2の差を算出することができる。すなわち、データ重複除去装置は、データの入力要請または出力要請から獲得した現在接近時間と、同一なデータに対する以前接近時間(すなわち、データの以前入力要請または以前出力要請から獲得した接近時間)の差である第2の差を算出することができる。ここで、第2の差は、該当データに対する接近がどれくらいの頻度で発生するかを意味する。
ステップS250において、データ重複除去装置は、第2の差が予め定義された第2の時間以下であるか否かを判断することができる。ここで、予め定義された第2の時間は、データに対する接近が発生する可能性が低いデータを区別するために基準になる時間を意味し、ユーザの設定によって異なる値を有することができる。例えば、予め定義された第2の時間は、1時間、2時間、3時間などで設定することができる。第2の差が予め定義された第2の時間を超過する場合、データ重複除去装置は、次の段階として、ステップS260を実行することができ、第2の差が予め定義された第2の時間以下の場合、データ重複除去装置は、次の段階として、ステップS270を実行することができる。
ステップS260において、データ重複除去装置は、重複除去単位をデータに対する重複除去可能性が一番高い第1の重複除去単位で決定することができる。すなわち、第2の差が予め定義された第2の時間を超過する場合、これはよく使われないデータ(すなわち、接近可能性が低いデータ)を意味するので、データ重複除去装置は、重複除去単位の中でデータ重複除去率が一番高い第1の重複除去単位を選択することができる。
ステップS270において、データ重複除去装置は、データに対する任意的接近回数がデータに対する順次的接近回数未満であるか否かを判断する。任意的接近回数が順次的接近回数以上の場合、データ重複除去装置は、次の段階として、ステップS280を実行することができ、任意的接近回数が順次的接近回数未満の場合、データ重複除去装置は、次の段階として、ステップS290を実行することができる。
ステップS280において、データ重複除去装置は、重複除去単位を第1の重複除去単位より重複除去可能性が低い第2の重複除去単位で決定することができる。すなわち、データに対する任意的接近回数が順次的接近回数以上の場合、これは任意的接近がよく発生するデータを意味するので、データ重複除去装置は、重複除去単位の中でデータ重複除去率が相対的に高い第2の重複除去単位を選択することができる。
ステップS290において、データ重複除去装置は、重複除去単位を第2の重複除去単位より重複除去可能性が低い第3の重複除去単位で決定することができる。すなわち、データに対する任意的接近回数が順次的接近回数未満の場合は、順次的接近がよく発生するデータを意味するので、データ重複除去装置は、重複除去単位の中でデータ重複除去率が相対的に低い第3の重複除去単位を選択することができる。
図6は、本発明の一実施例によるデータ重複除去方法において重複除去実行段階を示したフローチャートであり、図7は、データブロックに対する固有の識別子を生成する過程を示した概念図である。
以下、図6及び図7を参照して、重複除去を実行する段階(ステップS300)に対して詳細に説明する。
本発明の一実施例によるデータ重複除去方法において重複除去を実行する段階(ステップS300)は、重複除去単位を基盤としてデータに対する少なくても一つのデータブロックを生成する段階(ステップS310)と、データブロックに対する固有の識別子(identifier)を生成する段階(ステップS320)と、固有の識別子がインデックステーブル(index table)内に存在するか否かを判断する段階(ステップS330)と、固有の識別子がインデックステーブル内に存在しない場合、固有の識別子と固有の識別子に対応したデータブロックを保存する段階(ステップS340)と、固有の識別子がインデックステーブル内に存在する場合、固有の識別子に対応したデータブロックを除去する段階(ステップS350)と、を含む。
ステップS310において、データ重複除去装置は、重複除去単位を基盤としてデータに対する少なくても一つのデータブロックを生成することができ、重複除去単位は、チャンクのサイズを意味する。すなわち、データ重複除去装置は、第1の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができ、データ重複除去装置は、第2の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができ、データ重複除去装置は、第3の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができ、データ重複除去装置は、第4の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができる。一方、第4の重複除去単位がデータ重複除去を実行しないことを意味する場合、データ重複除去装置は、データに対するデータブロックを生成しないこともある。
上述したステップS310を基礎として、データ重複除去装置は、データ30(図7)から複数のデータブロック31(図7)を生成することができる。
ステップS320において、データ重複除去装置は、データブロックに対する固有の識別子を生成することができる。ここで、データ重複除去装置は、ハッシュアルゴリズム(例えば、SHA−1、SHA−2、SHA−3など)を使用してデータブロックに対する固有の識別子を生成することができる。データブロックに対する固有の識別子を生成する方法は、上述した方法に限定されなるものではなくて、公知の多様な方法を使用してデータブロックに対する固有の識別子を生成することができる。
上述のステップS320を基礎として、データ重複除去装置は、各々のデータブロック31(図7)から固有の識別子32(図7)を生成することができる。
ステップS330において、データ重複除去装置は、固有の識別子がインデックステーブル内に存在するか否かを判断する。インデックステーブルは、固有の識別子と固有の識別子に対応したデータブロックを含むことができる。ここで、固有の識別子がインデックステーブル内に存在する場合、これは固有の識別子に対応したデータブロックが既に保存されていることを示し、固有の識別子がインデックステーブル内に存在しない場合、これは固有の識別子に対応したデータブロックが保存されていないことを示す。固有の識別子がインデックステーブル内に存在しない場合、データ重複除去装置は、次の段階として、ステップS340を実行することができ、固有の識別子がインデックステーブル内に存在する場合、データ重複除去装置は、次の段階として、ステップS350を実行することができる。
ステップS340において、データ重複除去装置は、固有の識別子と固有の識別子に対応したデータブロックを保存することができる。すなわち、固有の識別子に対応したデータブロックが保存されていない状態であるので、データ重複除去装置は、重複除去を実行しないで固有の識別子とデータブロックをデータベース(または、インデックステーブル)に保存する。
ステップS350において、データ重複除去装置は、固有の識別子に対応したデータブロックを除去することができる。すなわち、固有の識別子に対応したデータブロックが既に保存されている状態であるので、データ重複除去装置は、重複除去(すなわち、固有の識別子に対応したデータブロック削除)を実行することができる。
本発明の一実施例によるデータ重複除去方法は、多様なコンピュータ手段を通じて実行できるプログラム命令の形態で具現してコンピュータ判読可能媒体に記録することができる。コンピュータ判読可能媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。コンピュータ判読可能媒体に記録されるプログラム命令は、本発明のために特別に設計されて構成されたものであるか、あるいはコンピュータソフトウェア分野の当業者に公知されて使用可能なものであってもよい。
コンピュータ判読可能媒体の例には、ROM(ReadOnlyMemory)、RAM、フラッシュメモリー(flash memory)などのようにプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例には、コンパイラー(compiler)により作られるもののような機械語コードだけではなくインタープリター(interpreter)などを使用してコンピュータにより実行できる高級言語コードを含む。上述したハードウェア装置は、本発明の動作を実行するために少なくとも一つのソフトウェアモジュールで作動するように構成されることができ、その逆も同様である。
図8は、本発明の一実施例によるデータ重複除去装置を示したブロック図である。
図8を参照すれば、本発明の一実施例によるデータ重複除去装置は、処理部10及び保存部20を含む。
処理部10は、データの入力要請または出力要請を基盤としてデータに対する接近特性を獲得することができ、接近特性を基盤としてデータの重複除去単位を決定することができ、重複除去単位を基盤としてデータに対する重複除去を実行することができる。
ここで、処理部10は、論理的構成である接近特性獲得部11と、重複除去単位決定部12と、重複除去実行部13と、インデックステーブル管理部14と、を含むことができる。一方、処理部10は、物理的構成であるプロセッサ(processor)及びメモリー(memory)を含む。プロセッサは、汎用のプロセッサ(例えば、CPU(Central Processing Unit)及び/またはGPU(Graphics Processing Unit)など)またはデータ重複除去方法の実行のための専用のプロセッサを意味する。メモリーには、データ重複除去方法の実行のためのプログラムコード(program code)が保存される。すなわち、プロセッサは、メモリーに保存されたプログラムコードを読み出すことができ、読み出されたプログラムコードを基盤としてデータ重複除去方法の各段階を実行することができる。
ここで、データに対する接近特性は、データに対する接近時間(a_time、図2参照)、データに対する変更時間(m_time、図2参照)、データに対する順次的接近回数(seqCount、図2参照)、データに対する任意的接近回数(randCount、図2参照)などを含むことができる。ここで、データに対する接近特性は、前記情報などに限定されないで、データの入力または出力に対する特性を示すことができる情報であれば、いずれも含むことができる。
データに対する接近時間(a_time)は、データの入力要請(すなわち、データの書き込み要請)またはデータの出力要請(すなわち、データの読み取り要請)を受信した時間を意味する。データに対する変更時間(m_time)は、データの入力要請を受信した時間を意味する。データに対する順次的接近回数(seqCount)は現在のデータ要請と以前のデータ要請が連続される(すなわち、現在のデータ要請と以前のデータ要請が同一である)回数を意味し、データに対する任意的接近回数(randCount)は、現在のデータ要請と以前のデータ要請が連続されない(すなわち、現在のデータ要請と以前のデータ要請が同一ではない)回数を意味する。
接近特性を獲得する場合、処理部10は、データの入力要請に対する時間情報を基盤として接近時間及び変更時間を獲得することができ、データの入力要請の連続性を基盤として順次的接近回数または任意的接近回数を獲得することができる。また、処理部10は、データの出力要請に対する時間情報を基盤として接近時間を獲得することができ、データの出力要請の連続性を基盤として順次的接近回数または任意的接近回数を獲得することができる。ここで、接近特性を獲得する過程は、処理部10内の接近特性獲得部11で実行することができる。
具体的に、処理部10は、受信された要請がデータの入力要請に該当するかデータの出力要請に該当するかを判断することができる。受信された要請がデータの入力要請に該当する場合、処理部10は、データの入力要請を受信した時間を接近時間及び変更時間で獲得することができ、獲得した接近時間及び獲得した変更時間を保存部20に保存することができる。さらに、処理部10は、データの入力要請と該当データに対する以前要請が連続される場合、順次的接近回数を1増加させることができ、データの入力要請と該当データに対する以前要請が連続されない場合、任意的接近回数を1増加させることができる。
一方、受信された要請がデータの出力要請に該当する場合、処理部10は、データの出力要請を受信した時間を接近時間で獲得することができ、獲得した接近時間をデータベースに保存することができる。さらに、処理部10は、データの出力要請と該当データに対する以前要請が連続される場合、順次的接近回数を1増加させることができ、データの入力要請と該当データに対する以前要請が連続されない場合、任意的接近回数を1増加させることができる。
重複除去単位を決定する場合、処理部10は、データに対する現在接近時間とデータに対する以前変更時間に対する第1の差を算出することができ、第1の差が予め定義された第1の時間以下の場合、重複除去単位をデータに対する重複除去可能性が一番低い第4の重複除去単位で決定することができる。一方、第1の差が予め定義された第1の時間を超過する場合、処理部10は、データに対する現在接近時間とデータに対する以前接近時間に対する第2の差を算出することができる。
ここで、処理部10は、第2の差が予め定義された第2の時間を超過する場合、重複除去単位をデータに対する重複除去可能性が一番高い第1の重複除去単位で決定することができ、第2の差が予め定義された第2の時間以下の場合、データに対する任意的接近回数が順次的接近回数以上であるか否かを判断することができる。
ここで、処理部10は、データに対する任意的接近回数が順次的接近回数以上の場合、重複除去単位を第1の重複除去単位より重複除去可能性が低い第2の重複除去単位で決定することができ、データに対する任意的接近回数が順次的接近回数未満の場合、重複除去単位を第2の重複除去単位より重複除去可能性が低い第3の重複除去単位で決定することができる。
上述した重複除去単位を決定する過程は、処理部10内の重複除去単位決定部12で実行することができる。
ここで、重複除去単位は、第1の重複除去単位、第2の重複除去単位、第3の重複除去単位、第4の重複除去単位で分類することができる。第1の重複除去単位は、よく使われないデータに適用することができ、第2の重複除去単位は、順次的接近より任意的接近がよく発生するデータに適用することができ、第3の重複除去単位は、任意的接近より順次的接近がよく発生するデータに適用することができ、第4の重複除去単位は、入力がよく発生するデータに適用することができる。
具体的に、処理部10は、データの入力要請または出力要請から獲得した現在接近時間と、同一なデータに対する以前変更時間(すなわち、データの以前入力要請から獲得した変更時間)の差である第1の差を算出することができる。ここで、第1の差は、該当データがどれくらいの頻度で変更されるか(すなわち、データの入力要請がどれくらいの頻度で発生するか)を意味する。
処理部10は、第1の差が予め定義された第1の時間を超過するか否かを判断することができる。ここで、予め定義された第1の時間は、データ重複除去を実行するために基準になる時間を意味し、ユーザの設定によって異なる値を有することができる。
第1の差が予め定義された第1の時間以下の場合、これは入力がよく発生するデータを意味するので、処理部10は、重複除去単位の中でデータ重複除去率が一番低い(または、データ重複除去を実行しない)第4の重複除去単位を選択することができる。
一方、第1の差が予め定義された第1の時間を超過する場合、処理部10は、データの入力要請または出力要請から獲得した現在接近時間と、同一なデータに対する以前接近時間(すなわち、データの以前入力要請または以前出力要請から獲得した接近時間)の差である第2の差を算出することができる。ここで、第2の差は、該当データに対する接近がどれいくらの頻度で発生するかを意味する。
処理部10は、第2の差が予め定義された第2の時間以下であるか否かを判断することができる。ここで、予め定義された第2の時間は、データに対する接近が発生する可能性が低いデータを区別するために基準になる時間を意味し、ユーザの設定によって異なる値を有することができる。
第2の差が予め定義された第2の時間を超過する場合、これはよく使われないデータ(すなわち、接近可能性が低いデータ)を意味するので、処理部10は、重複除去単位の中でデータ重複除去率が一番高い第1の重複除去単位を選択することができる。一方、第2の差が予め定義された第2の時間以下の場合、処理部10は、データに対する任意的接近回数がデータに対する順次接近回数未満であるか否かを判断することができる。
データに対する任意的接近回数が順次的接近回数以上の場合、これは任意的接近がよく発生するデータを意味するので、処理部10は、重複除去単位の中でデータ重複除去率が相対的に高い第2の重複除去単位を選択することができる。一方、データに対する任意的接近回数が順次的接近回数未満の場合は、順次的接近がよく発生するデータを意味するので、処理部10は、重複除去単位の中でデータ重複除去率が相対的に低い第3の重複除去単位を選択することができる。
データの重複除去を実行する場合、処理部10は、重複除去単位を基盤としてデータに対する少なくても一つのデータブロックを生成することができ、データブロックに対する固有の識別子を生成することができ、固有の識別子がインデックステーブル内に存在するか否かを判断することができ、固有の識別子がインデックステーブル内に存在する場合、固有の識別子に対応したデータブロックを除去することができ、固有の識別子がインデックステーブル内に存在しない場合、固有の識別子と固有の識別子に対応したデータブロックを保存することができる。
ここで、データの重複を除去する過程は、処理部10内の重複除去実行部13で実行することができ、インデックステーブル内に情報を保存、削除、更新する過程は、処理部10内のインデックステーブル管理部14で実行することができる。
具体的に、処理部10は、第1の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができ、第2の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができ、第3の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができ、第4の重複除去単位に対応したチャンクのサイズを基礎としてデータブロックを生成することができる。一方、第4の重複除去単位がデータ重複除去を実行しないことを意味する場合、処理部10は、データに対するデータブロックを生成しないこともある。
処理部10は、ハッシュアルゴリズム(例えば、SHA−1、SHA−2、SHA−3など)を使用してデータブロックに対する固有の識別子を生成することができる。データブロックに対する固有の識別子を生成する方法は、上述の説明に限定されるものではなくて、公知の多様な方法を使用してデータブロックに対する固有の識別子を生成することができる。
処理部10は、固有の識別子がインデックステーブル内に存在するか否かを判断することができる。固有の識別子がインデックステーブル内に存在しない場合、これは固有の識別子に対応したデータブロックが保存されていない状態であるので、処理部10は、重複除去を実行しないで固有の識別子とデータブロックを保存部20に保存することができる。一方、固有の識別子がインデックステーブル内に存在する場合、これは固有の識別子に対応したデータブロックが既に保存されている状態であるので、処理部10は、重複除去(すなわち、固有の識別子に対応したデータブロック削除)を実行することができる。
保存部20は、処理部10で処理される情報及び処理された情報を保存することができる。例えば、保存部20は、データの入力要請、データの出力要請、データに対する接近特性、第1の差、予め定義された第1の時間、第2の差、予め定義された第2の時間、インデックステーブル、重複除去単位情報などを保存することができる。
以上、添付した図面を参照して本発明の実施形態について説明したが、本発明が属する技術の分野における通常の知識を有する者であれば、本発明の技術的思想を逸脱しない範囲内で、様々な置換、変形及び変更が可能であるので、上述した実施例及び添付された図面に限定されるものではない。
10:処理部
11:接近特性獲得部
12:重複除去単位決定部
13:重複除去実行部
14:インデックステーブル管理部
20:保存部

Claims (14)

  1. データ重複除去装置で実行するデータ重複除去方法であって、
    データの入力要請または出力要請を基盤として前記データに対する接近特性を獲得する段階と、
    前記接近特性を基盤として前記データの重複除去単位を決定する段階と、
    前記重複除去単位を基盤として前記データに対する重複除去を実行する段階とを含み
    前記接近特性は、前記データに対する接近時間、前記データに対する変更時間、前記データに対する順次的接近回数及び前記データに対する任意的接近回数の中で少なくとも一つを含み、
    前記重複除去単位を決定する段階は、
    前記データに対する現在接近時間と前記データに対する以前変更時間に対する第1の差を算出する段階と、
    前記第1の差が予め定義された第1の時間以下の場合、前記重複除去単位をデータに対する重複除去可能性が一番低い第4の重複除去単位で決定する段階と、
    前記第1の差が予め定義された第1の時間を超過する場合、前記データに対する現在接近時間と前記データに対する以前接近時間に対する第2の差を算出する段階と、
    前記第2の差が予め定義された第2の時間を超過する場合、前記重複除去単位をデータに対する重複除去可能性が一番高い第1の重複除去単位で決定する段階と、
    前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数以上であれば、前記重複除去単位を第1の重複除去単位より重複除去可能性が低い第2の重複除去単位で決定する段階と、
    前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数未満であれば、前記重複除去単位を第2の重複除去単位より重複除去可能性が低い第3の重複除去単位で決定する段階と、
    を含むことを特徴とするデータ重複除去方法。
  2. 前記接近特性を獲得する段階は、
    前記データの入力要請を受信した場合、前記データの入力要請に対する時間情報を基盤として前記接近時間及び前記変更時間を獲得する段階と、
    前記データの入力要請の連続性を基盤として前記順次的接近回数または前記任意的接近回数を獲得する段階と、を含むことを特徴とする請求項に記載のデータ重複除去方法。
  3. 前記接近特性を獲得する段階は、
    前記データの出力要請を受信した場合、前記データの出力要請に対する時間情報を基盤として前記接近時間を獲得する段階と、
    前記データの出力要請の連続性を基盤として前記順次接近回数または前記任意的接近回数を獲得する段階と、を含むことを特徴とする請求項に記載のデータ重複除去方法。
  4. 前記第4の重複除去単位は、前記データに対する重複除去を実行しないことを意味することを特徴とする請求項に記載のデータ重複除去方法。
  5. 前記データに対する重複除去を実行する段階は、
    前記重複除去単位を基盤として前記データに対する少なくても一つのデータブロック(block)を生成する段階と、
    前記データブロックに対する固有の識別子を生成する段階と、
    前記固有の識別子がインデックステーブル(index table)内に存在するか否かを判断する段階と、
    前記固有の識別子が前記インデックステーブル内に存在する場合、前記固有の識別子に対応したデータブロックを除去する段階と、
    前記固有の識別子が前記インデックステーブル内に存在しない場合、前記固有の識別子と前記固有の識別子に対応したデータブロックを保存する段階と、を含むことを特徴とする請求項1に記載のデータ重複除去方法。
  6. 前記固有の識別子を生成する段階は、ハッシュアルゴリズム(hash algorithm)を使用して前記データブロックに対する固有の識別子を生成することを特徴とする請求項に記載のデータ重複除去方法。
  7. 前記重複除去単位は、データに対する重複除去可能性を基盤として少なくとも一つの重複除去単位で分類されることを特徴とする請求項1に記載のデータ重複除去方法。
  8. データの入力要請または出力要請を基盤として前記データに対する接近特性を獲得し、前記接近特性を基盤として前記データの重複除去単位を決定し、前記重複除去単位を基盤として前記データに対する重複除去を実行する処理部と、
    前記処理部で処理される情報及び処理された情報を保存する保存部と、を含み、
    前記接近特性は、前記データに対する接近時間、前記データに対する変更時間、前記データに対する順次的接近回数及び前記データに対する任意的接近回数の中で少なくとも一つを含み、
    前記処理部は、
    前記重複除去単位を決定する場合、前記データに対する現在接近時間と前記データに対する以前変更時間に対する第1の差を算出し、前記第1の差が予め定義された第1の時間以下の場合、前記重複除去単位をデータに対する重複除去可能性が一番低い第4の重複除去単位で決定し、前記第1の差が予め定義された第1の時間を超過する場合、前記データに対する現在接近時間と前記データに対する以前接近時間に対する第2の差を算出し、前記第2の差が予め定義された第2の時間を超過する場合、前記重複除去単位をデータに対する重複除去可能性が一番高い第1の重複除去単位で決定し、
    前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数以上であれば、前記重複除去単位を第1の重複除去単位より重複除去可能性が低い第2の重複除去単位で決定し、
    前記第2の差が予め定義された第2の時間以下の場合、前記データに対する任意的接近回数が順次的接近回数未満であれば、前記重複除去単位を第2の重複除去単位より重複除去可能性が低い第3の重複除去単位で決定することを特徴とするデータ重複除去装置。
  9. 前記処理部は、前記データの入力要請を受信した場合、前記データの入力要請に対する時間情報を基盤として前記接近時間及び前記変更時間を獲得し、前記データの入力要請の連続性を基盤として前記順次的接近回数または前記任意的接近回数を獲得することを特徴とする請求項に記載のデータ重複除去装置。
  10. 前記処理部は、前記データの出力要請を受信した場合、前記データの出力要請に対する時間情報を基盤として前記接近時間を獲得し、前記データの出力要請の連続性を基盤として前記順次的接近回数または前記任意的接近回数を獲得することを特徴とする請求項に記載のデータ重複除去装置。
  11. 前記第4の重複除去単位は、前記データに対する重複除去を実行しないことを意味することを特徴とする請求項に記載のデータ重複除去装置。
  12. 前記処理部は、前記データに対する重複除去を実行する場合、前記重複除去単位を基盤として前記データに対する少なくても一つのデータブロック(block)を生成し、前記データブロックに対する固有の識別子を生成し、前記固有の識別子がインデックステーブル(index table)内に存在するか否かを判断し、前記固有の識別子が前記インデックステーブル内に存在する場合、前記固有の識別子に対応したデータブロックを除去し、前記固有の識別子が前記インデックステーブル内に存在しない場合、前記固有の識別子と前記固有の識別子に対応したデータブロックを保存することを特徴とする請求項に記載のデータ重複除去装置。
  13. 前記処理部は、前記固有の識別子を生成する場合、ハッシュアルゴリズム(hash algorithm)を使用して前記データブロックに対する固有の識別子を生成することを特徴とする請求項12に記載のデータ重複除去装置。
  14. 前記重複除去単位は、データに対する重複除去可能性を基盤として少なくとも一つの重複除去単位で分類されることを特徴とする請求項に記載のデータ重複除去装置。
JP2014045770A 2013-03-07 2014-03-07 データ重複除去方法及び装置 Expired - Fee Related JP5774742B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020130024356A KR101505263B1 (ko) 2013-03-07 2013-03-07 데이터 중복 제거 방법 및 장치
KR10-2013-0024356 2013-03-07

Publications (2)

Publication Number Publication Date
JP2014175008A JP2014175008A (ja) 2014-09-22
JP5774742B2 true JP5774742B2 (ja) 2015-09-09

Family

ID=51489363

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014045770A Expired - Fee Related JP5774742B2 (ja) 2013-03-07 2014-03-07 データ重複除去方法及び装置

Country Status (3)

Country Link
US (1) US9851917B2 (ja)
JP (1) JP5774742B2 (ja)
KR (1) KR101505263B1 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5881859B2 (ja) * 2012-04-13 2016-03-09 株式会社日立製作所 ストレージ装置
US10061725B2 (en) 2014-04-03 2018-08-28 Strato Scale Ltd. Scanning memory for de-duplication using RDMA
WO2016046911A1 (ja) * 2014-09-24 2016-03-31 株式会社日立製作所 ストレージシステム及びストレージシステムの管理方法
US20160132523A1 (en) * 2014-11-12 2016-05-12 Strato Scale Ltd. Exploiting node-local deduplication in distributed storage system
CN104778193B (zh) * 2014-12-23 2018-03-23 北京锐安科技有限公司 数据去重方法及装置
US9912748B2 (en) 2015-01-12 2018-03-06 Strato Scale Ltd. Synchronization of snapshots in a distributed storage system
WO2016121024A1 (ja) * 2015-01-28 2016-08-04 富士通株式会社 通信方法、プログラム及び通信装置
EP3126987A4 (en) 2015-02-26 2017-11-22 Strato Scale Ltd. Using access-frequency hierarchy for selection of eviction destination
US10387374B2 (en) 2015-02-27 2019-08-20 Exagrid Systems, Inc. Scalable grid deduplication
US10073855B2 (en) * 2015-05-21 2018-09-11 Exagrid Systems, Inc. Dynamic and optimized management of grid system resources
US10303656B2 (en) 2015-08-13 2019-05-28 Exagrid Systems, Inc. Parallelizing and deduplicating backup data
US11150997B2 (en) 2015-08-19 2021-10-19 Exagrid Systems, Inc. Adaptive bandwidth management of a replication process
KR102450295B1 (ko) 2016-01-04 2022-10-04 한국전자통신연구원 암호 데이터의 중복 제거 방법 및 장치
JP6406283B2 (ja) * 2016-03-01 2018-10-17 日本電気株式会社 ストレージ装置およびストレージ方法
US10162554B2 (en) * 2016-08-03 2018-12-25 Samsung Electronics Co., Ltd. System and method for controlling a programmable deduplication ratio for a memory system
JP6794782B2 (ja) 2016-11-02 2020-12-02 富士通株式会社 情報処理装置、情報処理プログラム、及び情報処理方法
JP6781377B2 (ja) 2016-11-21 2020-11-04 富士通株式会社 情報処理装置、情報処理方法およびプログラム
US10509733B2 (en) * 2017-03-24 2019-12-17 Red Hat, Inc. Kernel same-page merging for encrypted memory
US10209917B2 (en) 2017-04-20 2019-02-19 Red Hat, Inc. Physical memory migration for secure encrypted virtual machines
US10379764B2 (en) 2017-05-11 2019-08-13 Red Hat, Inc. Virtual machine page movement for encrypted memory
US12153526B2 (en) 2017-07-21 2024-11-26 Red Hat, Inc. Re-duplication of de-duplicated encrypted memory
US11354420B2 (en) 2017-07-21 2022-06-07 Red Hat, Inc. Re-duplication of de-duplicated encrypted memory
US11614956B2 (en) 2019-12-06 2023-03-28 Red Hat, Inc. Multicast live migration for encrypted virtual machines
US12353887B2 (en) 2021-11-15 2025-07-08 Google Llc Programmable accelerator for data-dependent, irregular operations
WO2023086271A1 (en) 2021-11-15 2023-05-19 Google Llc Sparse simd cross-lane processing unit
US11966745B2 (en) 2021-11-15 2024-04-23 Google Llc Sparse SIMD cross-lane processing unit
WO2023091289A1 (en) 2021-11-22 2023-05-25 Google Llc Cooperative instruction prefetch on multicore system
US11972263B2 (en) * 2021-11-22 2024-04-30 Google Llc Cooperative instruction prefetch on multicore system
JP7772936B2 (ja) 2022-03-22 2025-11-18 グーグル エルエルシー ストリーミング転送および順序付けモデル
US11977499B2 (en) 2022-03-22 2024-05-07 Google Llc Streaming transfers and ordering model

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4252102B2 (ja) 1993-06-21 2009-04-08 株式会社日立製作所 計算機システムおよび二次記憶装置
JPH0855049A (ja) * 1994-08-11 1996-02-27 Sony Corp データ蓄積装置
US20060129745A1 (en) * 2004-12-11 2006-06-15 Gunther Thiel Process and appliance for data processing and computer program product
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US7747584B1 (en) * 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
US8214517B2 (en) * 2006-12-01 2012-07-03 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US8799595B1 (en) * 2007-08-30 2014-08-05 American Megatrends, Inc. Eliminating duplicate data in storage systems with boot consolidation
US7870105B2 (en) 2007-11-20 2011-01-11 Hitachi, Ltd. Methods and apparatus for deduplication in storage system
JP2011515727A (ja) * 2008-02-12 2011-05-19 ネットアップ,インコーポレイテッド ハイブリッド媒体ストレージシステムアーキテクチャ
US7873619B1 (en) * 2008-03-31 2011-01-18 Emc Corporation Managing metadata
US20100088296A1 (en) * 2008-10-03 2010-04-08 Netapp, Inc. System and method for organizing data to facilitate data deduplication
US20100161929A1 (en) * 2008-12-18 2010-06-24 Lsi Corporation Flexible Memory Appliance and Methods for Using Such
US8140491B2 (en) * 2009-03-26 2012-03-20 International Business Machines Corporation Storage management through adaptive deduplication
US8812874B1 (en) * 2009-03-31 2014-08-19 Symantec Corporation Content deduplication in enterprise rights management
US8285681B2 (en) * 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8281105B2 (en) 2010-01-20 2012-10-02 Hitachi, Ltd. I/O conversion method and apparatus for storage system
US8805968B2 (en) * 2010-05-03 2014-08-12 Panzura, Inc. Accessing cached data from a peer cloud controller in a distributed filesystem
US8954669B2 (en) * 2010-07-07 2015-02-10 Nexenta System, Inc Method and system for heterogeneous data volume
US8645636B2 (en) * 2010-09-29 2014-02-04 International Business Machines Corporation Methods for managing ownership of redundant data and systems thereof
JP5494817B2 (ja) 2010-10-19 2014-05-21 日本電気株式会社 ストレージシステム、データ管理装置、方法及びプログラム
US10394757B2 (en) * 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US8682873B2 (en) 2010-12-01 2014-03-25 International Business Machines Corporation Efficient construction of synthetic backups within deduplication storage system
US9081771B1 (en) * 2010-12-22 2015-07-14 Emc Corporation Encrypting in deduplication systems
KR101350132B1 (ko) * 2010-12-28 2014-01-09 한양대학교 산학협력단 Nvram을 맵핑 테이블 저장 장치로 사용하는 중복 데이터 제거 시스템 및 방법
US9823981B2 (en) 2011-03-11 2017-11-21 Microsoft Technology Licensing, Llc Backup and restore strategies for data deduplication
US9916258B2 (en) * 2011-03-31 2018-03-13 EMC IP Holding Company LLC Resource efficient scale-out file systems
JP5649508B2 (ja) 2011-05-09 2015-01-07 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
US8806160B2 (en) * 2011-08-16 2014-08-12 Pure Storage, Inc. Mapping in a storage system
US8825605B2 (en) * 2011-10-11 2014-09-02 Netapp, Inc. Deduplication aware scheduling of requests to access data blocks
US20130282672A1 (en) * 2012-04-18 2013-10-24 Hitachi Computer Peripherals Co., Ltd. Storage apparatus and storage control method

Also Published As

Publication number Publication date
US20140258655A1 (en) 2014-09-11
US9851917B2 (en) 2017-12-26
JP2014175008A (ja) 2014-09-22
KR20140110288A (ko) 2014-09-17
KR101505263B1 (ko) 2015-03-24

Similar Documents

Publication Publication Date Title
JP5774742B2 (ja) データ重複除去方法及び装置
JP5732536B2 (ja) 重複排除に基づくストレージシステムにおけるスケーラブル参照管理のためのシステム、方法及び非一時的なコンピュータ可読ストレージ媒体
CN104008064B (zh) 用于多级存储器压缩的方法和系统
US9116936B2 (en) Inline learning-based selective deduplication for primary storage systems
US9164688B2 (en) Sub-block partitioning for hash-based deduplication
CN103189867B (zh) 重复数据检索方法及设备
CN104239518B (zh) 重复数据删除方法和装置
US20140304464A1 (en) Methods and systems for performing deduplication in a data storage system
CN103020255A (zh) 分级存储方法和装置
CN106020722A (zh) 一种云存储系统的重复数据去重方法、装置及系统
CN111159130A (zh) 一种小文件合并方法及电子设备
CN102467458B (zh) 建立数据区块的索引方法
KR20150035876A (ko) 데이터 중복 제거 방법 및 장치
WO2015035343A1 (en) Electronic device data distribution
US10007436B2 (en) Storage control apparatus and control method of storage control apparatus
CN107391761A (zh) 一种基于重复数据删除技术的数据管理方法及装置
CN111522502A (zh) 数据去重方法、装置、电子设备及计算机可读存储介质
CN105468644B (zh) 一种用于在数据库中进行查询的方法与设备
JP2024514448A (ja) ディープニューラルネットワーク重みのための圧縮技法
CN108093024B (zh) 一种基于数据频度的分类路由方法及装置
US20140156607A1 (en) Index for deduplication
JP2013218636A (ja) クラスタリング処理装置、クラスタリング処理方法、及びプログラム
CN110597461B (zh) 块链式账本中的数据存储方法、装置及设备
CN107783990B (zh) 一种数据压缩方法及终端
US10073657B2 (en) Data processing apparatus, data processing method, and computer program product, and entry processing apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150303

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150518

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150701

R150 Certificate of patent or registration of utility model

Ref document number: 5774742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees