JP5821744B2 - データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム - Google Patents

データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム Download PDF

Info

Publication number
JP5821744B2
JP5821744B2 JP2012074855A JP2012074855A JP5821744B2 JP 5821744 B2 JP5821744 B2 JP 5821744B2 JP 2012074855 A JP2012074855 A JP 2012074855A JP 2012074855 A JP2012074855 A JP 2012074855A JP 5821744 B2 JP5821744 B2 JP 5821744B2
Authority
JP
Japan
Prior art keywords
data
hash
value
calculated
hash values
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
JP2012074855A
Other languages
English (en)
Other versions
JP2013206154A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012074855A priority Critical patent/JP5821744B2/ja
Priority to US13/772,744 priority patent/US8903804B2/en
Publication of JP2013206154A publication Critical patent/JP2013206154A/ja
Application granted granted Critical
Publication of JP5821744B2 publication Critical patent/JP5821744B2/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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables

Landscapes

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

Description

本発明は、データ有無判定装置、データ有無判定方法及びデータ有無判定プログラムに関する。
データの有無のテストに使用できるデータ構造として、ブルームフィルタ(Bloom Filter)とカウンティングブルームフィルタ(Counting Bloom Filter)とが知られている。
まず、図1A及び図1Bを用いて、ブルームフィルタについて説明する。
図1Aに示したように、ブルームフィルタは、例えば、m(図1Aでは、m=18)ビットのビット配列である。ブルームフィルタを用いる場合、k個(図1Aではk=3)のハッシュ関数も用意(定義)される。また、各ハッシュ関数により得られる各ハッシュ値が、ブルームフィルタのいずれかのビットに対応付けられる。そして、各既存データについて、k個のハッシュ関数を用いてその既存データについてのk個のハッシュ値を算出し、算出した各ハッシュ値に対応付けられているブルームフィルタのビット(初期値は“0”)に“1”を設定する処理が行われる。
或るデータ(以下、判定対象データと表記する)の有無のテスト時には、k個のハッシュ関数を用いて、判定対象データについてのk個のハッシュ値が算出される。そして、算出したいずれかのハッシュ値に対応付けられているブルームフィルタのビット値が“0”であった場合に、判定対象データが、新規データであると判定される。また、そうでなかった場合には、判定対象データが、新規データ又は既存データであると判定される。
このように、ブルームフィルタを用いれば、判定対象データの有無(判定対象データが、新規データであるか新規データである可能性があるものであるかの別)を、高速且つ必要とされる記憶容量が少ない形で判定できる。ただし、ブルームフィルタは、登録した情報を削除できないものとなっている。
具体的には、図1Aにおいて、データxの存在を示しているブルームフィルタのビットは、左から2、6、14番目のビットである。そのため、データ集合{x、y、z}からデータxを削除するために、ブルームフィルタの左から2、6、14番目のビットの値を“0”に変えることが考えられる。しかしながら、そのようにブルームフィルタの内容を更新した場合、図1Bに示したように、データ集合に含まれるデータzと同じデータwが新規データであると判定されてしまうことになる。このような現象が生じてしまうと、偽陰性がないというブルームフィルタの特徴が失われてしまうので、ブルームフィルタから登録した情報を削除することができないのである。
次に、図2A及び図2Bを用いて、カウンティングブルームフィルタについて説明する。
登録情報の削除が可能なように、ブルームフィルタを改良したものが、カウンティングブルームフィルタである。図2Aに模式的に示してあるように、カウンティングブルームフィルタ(以下、CBFと表記する)は、ハッシュ値毎に、n (≧2)ビットの情報を記憶可能な構成を有している。
そして、CBFは、以下のような形でその内容が更新されるものとなっている。
既存データに関する情報の登録時:既存データから算出された各ハッシュ値に対応する記憶領域上の値に“1”を加算
集合データからのデータの削除時:削除データに関するk個のハッシュ値に対応する記憶領域上の値から“1”を減算
具体例を挙げれば、図2Aにおいて、データxの存在を示しているブルームフィルタのビットは、左から2、6、14番目のビットである。従って、データ集合{x、y、z}からデータxを削除する場合、CBFの左から2、6、14番目の各記憶領域の値が“1”デクリメントされる。そして、その結果として、CBFの状態は、図2Bに示した状態、つまり、データ集合{y、z}内の各データと一致するデータ(図2Bにおけるw等)を、新規データであると誤判定することがない状態、となる。
特開2011−171995号公報
上記したように、CBFは、登録情報を削除することが出来るものとなっている。ただし、CBFは、その実現(実装)に、ブルームフィルタの実現に必要なメモリ量のn倍のメモリ量が必要とされるものとなっている。
1つの側面では、本発明は、入力データが或るデータ集合内に含まれていない新規データであるか否かの判定を、CBFを用いた場合よりも使用する記憶容量が少なく行え、及び/又は、データ集合からのデータの削除が可能な形で行える技術を提供することにある。
一態様のデータ有無判定装置は、
それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、
それぞれ、L個のハッシュ値の中の互いに異なる1つ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域と、
或るデータ集合に含まれるデータ毎に、そのデータについてのk個のハッシュ値をL個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶する情報設定部と、
k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、入力データが、データ集合に含まれていない新規データであると判定する判定部と、
を備える。
また、一態様のデータ有無判定方法は、
メモリ上に確保された、それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、それぞれ、L個のハッシュ値の中の互いに異なる1つ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域とを用いて、入力データが、既存のデ
ータ集合に含まれていない新規データであるか否かを判定するデータ有無判定方法であって、
コンピュータが、
データ集合に含まれるデータ毎に、そのデータについてのk個のハッシュ値をL個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶し、
k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、入力データが、データ集合に含まれていない新規データであると判定する。
また、一態様のデータ有無判定プログラムは、
コンピュータを、
それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、
それぞれ、L個のハッシュ値の中の互いに異なる1つ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域と、
或るデータ集合に含まれるデータ毎に、そのデータについてのk個のハッシュ値をL個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶する情報設定部と
k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、入力データが、データ集合に含まれていない新規データであると判定する判定部と、
を備える装置として動作させる。
入力データが或るデータ集合内に含まれていない新規データであるか否かの判定を、CBFを用いた場合よりも使用する記憶容量が少なく、及び/又は、データ集合からのデータの削除が可能な形で行える。
図1Aは、ブルームフィルタの説明図である。 図1Bは、ブルームフィルタから登録情報を削除できない理由の説明図である。 図2Aは、カウンティングブルームフィルタの説明図である。 図2Bは、データxに関する情報を削除したカウンティングブルームフィルタの説明図である。 図3は、実施形態に係る重複除去ストレージ装置のハードウェア構成図である。 図4は、実施形態に係る重複除去ストレージ装置の機能ブロック図である。 図5は、実施形態に係る重複除去ストレージ装置の書込処理部が実行する書込処理の流れ図である。 図6は、実施形態に係る重複除去ストレージ装置が備える上位ビット共有カウンティングブルームフィルタの説明図である。 図7は、実施形態に係る重複除去ストレージ装置が備える上位ビット共有カウンティングブルームフィルタの説明図である。 図8は、図5の書込処理中で実行されるテスト処理の流れ図である。 図9は、図5の書込処理中で実行される追加処理の流れ図である。 図10は、図5の書込処理中で実行される削除処理の流れ図である。 図11Aは、書込処理による上位ビット共有カウンティングブルームフィルタの更新内容の説明図(その1)である。 図11Bは、書込処理による上位ビット共有カウンティングブルームフィルタの更新内容の説明図(その2)である。 図11Cは、書込処理による上位ビット共有カウンティングブルームフィルタの更新内容の説明図(その3)である。 図11Dは、書込処理による上位ビット共有カウンティングブルームフィルタの更新内容の説明図(その4)である。 図11Eは、図11Dに示した上位ビット共有カウンティングブルームフィルタの状態の意味を説明するための図である。 図12は、実施形態に係る重複除去ストレージ装置の読込処理部が実行する読込処理の流れ図である。 図13は、実施形態に係る重複除去ストレージ装置の書込処理部が実行する再構築処理の流れ図である。 図14は、再構築処理時に生成される上位ビット値フィルタの説明図である。 図15は、図13の再構築処理の代わりに使用できる再構築処理の流れ図である。 図16Aは、上位ビット共有カウンティングブルームフィルタの変形例の説明図である。 図16Bは、上位ビット共有カウンティングブルームフィルタの変形例の説明図である。 nビットのカウンタ値を記憶できる上位ビット共有カウンティングブルームフィルタを用いる場合に採用される追加処理の流れ図である。 nビットのカウンタ値を記憶できる上位ビット共有カウンティングブルームフィルタを用いる場合に採用される削除処理の流れ図である。
以下、本発明の実施形態について、図面を参照して詳細に説明する。尚、以下で説明する実施形態は、本発明の一例に過ぎず、本発明は、実施形態とは具体的な構成/手順が異なる形でも実現することができるものである。
発明者が開発したデータ有無判定技術は、さまざまな装置/システムに利用できるものなのであるが、以下では、重複除去ストレージ装置に利用した場合を例に、発明者が開発したデータ有無判定技術の一実施形態を説明することにする。
図3に、実施形態に係るデータ有無判定技術を利用した重複除去ストレージ装置(以下、実施形態に係る重複除去ストレージ装置と表記する)10のハードウェア構成を示す。また、図4に、実施形態に係る重複除去ストレージ装置10の機能ブロック図を示す。
図3に示してあるように、本実施形態に係る重複除去ストレージ装置10は、記憶装置30及びホスト100と接続されるコンピュータ50のHDD(Hard Disk Drive)13
に、OS(Operating System)、ストレージ制御プログラム20等をインストールした装置である。
ストレージ制御プログラム20は、コンピュータ50を、図4に示したような各種ユニ
ット(機能ブロック)を備えた重複除去ストレージ装置10として動作させるプログラムである。
すなわち、CPU11がストレージ制御プログラム20を実行すると、コンピュータ5
0は、プロトコル処理部21、読込処理部22、ブロックマップ23、書込処理部24及びハッシュ値検索テーブル25を備えた重複除去ストレージ装置10として動作する。
プロトコル処理部21は、ホスト100からI/O要求を受信し、当該I/O要求を解
析することにより、I/O要求を読込要求、書込要求に分け、読込要求を読込処理部22に供給し、書込要求を書込処理部24に供給するユニット(機能ブロック)である。尚、このプロトコル処理部21が受信するI/O要求は、アクセス先(リード/ライト先)をLBA(論理ブロックアドレス;logical Block Address)で指定する要求である。
ブロックマップ23は、データが既に記憶されている各LBAについては、記憶されているデータの検証用ハッシュ値を記憶し、データが記憶されていない各LBAについて、その旨を示す空領域情報を記憶しているように、内容が更新される情報である。このブロックマップ23に記憶される検証用ハッシュ値の詳細については後述するが、ブロックマップ23は、メモリ12上に用意される情報(テーブル)であると共に、随時、記憶装置30にバックアップされる情報となっている。
ハッシュ値検索テーブル25は、ブロックマップ23に記憶されている各検証用ハッシュ値について、その検証用ハッシュ値に対応付けられているデータの記憶装置内30でのデータ位置(物理アドレス)を記憶しておくためのテーブルである。より具体的には、このハッシュ値検索テーブル25は、検証用ハッシュ値とデータ位置とが設定されたレコードを複数個記憶可能なテーブルとなっている。
書込処理部24は、プロトコル処理部21から書込要求が供給されると、図5に示した手順の書込処理を行うユニット(機能ブロック)である。この書込処理の内容を説明する前に、書込処理時に参照・更新される上位ビット共有カウンティングブルームフィルタ28(以下、フィルタ28又は上位ビット共有CBF28とも表記する)の構成を説明する。
図6に模式的に示してあるように、フィルタ28は、3M個の下位ビットと、3個の下位ビット毎に設けられた上位ビットとを含む。図6においては、第1記憶領域の個数Lは18個、第2記憶領域の個数Mは6個、カウント値nは1ビットの例を示している。尚、図6には、18個の下位ビットしか示していないが、通常、フィルタ28としては、より多くの下位ビットを含むものが使用される。また、フィルタ28が図6に示したような状態(値が“1”のビットがある状態)を取るのは、幾つかのデータの記憶装置30への書込が完了している場合である。換言すれば、フィルタ28は、データが初めて記憶装置30へ書き込まれるまでは、各ビットの値が全て“0”となっているものである。
また、重複除去ストレージ装置10は、メモリ12(図3)上の一記憶領域が、このフィルタ28として機能する装置として構成(プログラミング)されている。さらに、重複除去ストレージ装置10は、フィルタ28の各ビットを、図7に示したように、A〜Hと表記すると、メモリ12上の1バイトのデータを読み出せば、ABCDEFGHの順に各ビット値が並んだデータが読み出せるように、フィルタ28の各ビット値のメモリ12上での位置を定めた装置となっている。
図5に戻って、書込処理の内容を説明する。尚、以下の説明において、処理対象LBA
とは、プロトコル処理部21から供給された書込要求中のLBAのことであり、書込データとは、書込要求で書込が要求されているデータのことである。また、新規/既存データとは、新規データである可能性があるデータのことである。
図5に示してあるように、この書込処理を開始した書込処理部24は、まず、処理対象LBAに対応付けられている情報(ハッシュ値群、又は、空領域情報)をブロックマップ23から読み込む(ステップS21)。
ブロックマップ23から読み込んだ情報が空領域情報であった場合、すなわち、今回の書込要求が上書き要求ではなかった場合(ステップS22;NO)、書込処理部24は、テスト処理(ステップS24)を行う。
ステップS24で行われるテスト処理は、図8に示した手順の処理である。すなわち、このテスト処理を開始した書込処理部24は、まず、書込データの検証用ハッシュ値を算出し、予め用意されているk個のハッシュ関数を用いて検証用ハッシュ値についてのk個のハッシュ値を算出する(ステップS101)。尚、k個のハッシュ関数により得られる各ハッシュ値は、上記したフィルタ28のいずれかの下位ビットに対応づけられている。また、フィルタ28の各上位ビットは、配下の各下位ビットに対応付けられている各ハッシュ値に対応づけられている。
ステップS101の処理を終えた書込処理部24は、全ハッシュ値に対する、ステップS103及びS104の処理が完了したか否かを判断する(ステップS102)。
全ハッシュ値に対する処理が完了していなかった場合(ステップS102;NO)、書込処理部24は、算出済みのk個のハッシュ値の中の最初(又は次)のハッシュ値に対応づけられている下位ビットの値をフィルタ28から読み出す(ステップS103)。
そして、書込処理部24は、読み出した下位ビット値が“0”であった場合(ステップS104;YES)には、書込対象データが新規データであると判定(ステップS105)してから、このテスト処理を終了する。
一方、読み出した下位ビット値が“0”でなかった場合(ステップS104;YES)、書込処理部24は、ステップS102以降の処理を再び実行する。
書込処理部24は、或るハッシュ値に関する下位ビット値として“0”が読み出されるか、全ハッシュ値に対する処理が完了するまで、上記した処理を繰り返す。そして、書込処理部24は、2〜k番目のいずれかのハッシュ値に関する下位ビット値として“0”が読み出された場合には、書込データが新規データであると判定して(ステップS105)、このテスト処理を終了する。一方、いずれのハッシュ値に関する下位ビット値としても“0”が読み出されることなく、全てのハッシュ値に対する処理が完了した場合(ステップS102;YES)、書込処理部24は、書込データが新規/既存データであると判定して(ステップS106)、このテスト処理を終了する。
テスト処理(図6;ステップS24)を終えた書込処理部24は、テスト処理により書込データが新規データであると判定した場合(ステップS25;YES)には、記憶装置30内の空きブロックに書込データを書き込む(ステップS28)。
続くステップS29にて、書込処理部24は、図9に示した手順の追加処理を行う。
すなわち、この追加処理を開始した書込処理部24は、まず、ステップS101(図8
)の処理で算出したk個のハッシュ値に対するステップS203〜S205の処理が完了しているか否かを判断する(ステップS202)。
全ハッシュ値に対する処理が完了していなかった場合(ステップS202;NO)、書込処理部24は、k個のハッシュ値の中の最初(又は次)のハッシュ値(以下、処理対象ハッシュ値と表記する)に対応づけられている下位ビット値をフィルタ28から読み出す(ステップS203)。
そして、書込処理部24は、処理対象ハッシュ値に対応付けられている下位ビット値が“0”であった場合(ステップS204;YES)には、当該下位ビット値を“1”に変更(ステップS206)してから、ステップS202以降の処理を再び開始する。
一方、処理対象ハッシュ値に対応付けられている下位ビット値が“1”であった場合(ステップS204;NO)、書込処理部24は、処理対象ハッシュ値に対応付けられているフィルタ28の上位ビットに“1”を設定する(ステップS205)。尚、この処理は、上位ビットの値が変わらない場合がある処理である。
その後、書込処理部24は、ステップS202以降の処理を再び開始し、全ハッシュ値に対する処理が完了したとき(ステップS202;YES)に、この追加処理を終了する。
追加処理(図6;ステップ29)を終えた書込処理部24は、続くステップS30にて、まず、予め定められているハッシュ関数を用いて、書込データについての検証用ハッシュ値を算出する。ここで、検証用ハッシュ値とは、既存データの検証用ハッシュ値と書込データの検証用ハッシュ値とが一致していれば、既存データと書込データとが一致していると見なせるハッシュ値のことである。
次いで、書込処理部24は、算出した検証用ハッシュ値とステップS28の処理時に書込データを書き込んだデータ位置とを設定したレコードをハッシュ値検索テーブル25に追加する。そして、書込処理部24は、ステップS30の処理を終了する。
その後、書込処理部24は、ブロックマップ23上の、処理対象LBAに関する情報を更新する(ステップS31)。具体的には、このステップS31にて、書込処理部24は、処理対象LBAに対応づけられているブロックマップ23上の情報を、書込データの検証用ハッシュ値に書き換える処理を行う。
また、書込処理部24は、書込データが新規/既存データであると判定した場合(ステップS25;NO)には、書込データの検証用ハッシュ値を算出し、算出した検証用ハッシュ値でハッシュ値検索テーブル25を検索する(ステップS26)。
算出した検証用ハッシュ値を含むレコードがハッシュ値検索テーブル25内に存在していなかった場合には、書込データが新規データであることになる(ステップS27;YES)。そのため、書込処理部24は、ステップS28以降の処理を開始する。尚、この場合に実行されるステップS30では、検証用ハッシュ値を算出することなく、ステップS26の処理で算出した検証用ハッシュ値を用いてハッシュ値検索テーブル25へレコードが追加される。
一方、算出した検証用ハッシュ値を含むレコードがハッシュ値検索テーブル25から検索できた場合には、書込データと同じデータが既に存在している(ステップS27;NO)ことになる。そのため、書込処理部24は、処理対象LBAに対応づけられているブロ
ックマップ23上の情報を、書込データの検証用ハッシュ値及びステップ24で算出したk個のハッシュ値に変更する(ステップS31)。そして、書込処理部24は、この書込処理を終了する。
また、ブロックマップ23から読み出された情報が空領域情報でなかった場合、すなわち、今回の書込要求が上書き要求であった場合(ステップS22;YES)、書込処理部24は、削除処理(ステップS23)を行う。
この削除処理は、図10に示した手順の処理である。すなわち、削除処理を開始した書込処理部24は、まず、ブロックマップ23から読み出した検証用ハッシュ値についてのk個のハッシュ値を算出し、それぞれのハッシュ値に対する処理が完了したか否かを判断する(ステップS302)。
全ハッシュ値に対する処理が完了していなかった場合(ステップS302;NO)、書込処理部24は、k個のハッシュ値の中の最初(又は次)のハッシュ値(処理対象ハッシュ値と表記する)に対応づけられている上位ビットの値をフィルタ28から読み出す(ステップS303)。
そして、書込処理部24は、処理対象ハッシュ値に対応付けられている上位ビットの値が“0”であった場合(ステップS305;YES)には、処理対象ハッシュ値に対応付けられているフィルタ28の下位ビットの値を“0”に変更する(ステップS305)。そして、書込処理部24は、ステップS302以降の処理を再び開始する。
一方、処理対象ハッシュ値に対応付けられている上位ビットの値が“1”であった場合(ステップS304;NO)、書込処理部24は、フィルタ28内のいずれのビット値も変更することなく、ステップS302以降の処理を開始する。
そして、書込処理部24は、全ハッシュ値に対する処理が完了したときに(ステップS302;YES)に、この削除処理を終了して、図6のステップS24以降の処理を開始する。
ここで、ここまで説明した重複除去ストレージ装置10の動作内容を、図11A〜図11Eを用いて、さらに具体的に説明しておくことにする。尚、以下の説明では、k(ハッシュ関数の数)は、“3”であるとする。また、図11A等に示したフィルタ28の左側からi番目の下位ビットのことを下位ビットiと表記し、下位ビットiに対応づけられているハッシュ値をHiと表記する。さらに、H3j+1〜H3j+3(下位ビット3j+1〜下位ビット3j+3)に対応づけられている上位ビットのことを、上位ビット〔3j+1〜3j+3〕(上位ビット〔1〜3〕等)と表記する。
フィルタ28の全ビットが“0”となっている状況下、3個のハッシュ関数により算出される3個のハッシュ値(以下、単に、3個のハッシュ値と表記する)が、H2、H6、H14となるデータxの書込要求がホスト100から送信されてきた場合を考える。
この場合、書込処理(図5)のステップS22で“NO”側への分岐が行われる。従って、削除処理が行われることなく、テスト処理(図8)が行われる。そして、最初のハッシュ値(H2であるとする)に対応づけられている下位ビット2の値が“0”である(図8、ステップS104;YES)ため、テスト処理によりデータxが新規データであると判断される。
従って、ステップS25(図5)では、“YES”側への分岐が行われ、記憶装置30
に書込データが書き込まれてから、追加処理(図9)が行われる。
そして、この時点における下位ビット2の値、下位ビット6の値、下位ビット14の値は、いずれも“0”である(ステップS204;YES)。そのため、データxに関する追加処理時には、下位ビット2の値、下位ビット6の値、下位ビット14の値が“1”に変更(ステップS206)され、フィルタ28が図11Aに示した状態となる。
フィルタ28が図11Aに示した状態になった後に、3個のハッシュ値が、H5、H12、H17となるデータyの書込要求がホスト100から送信されてきた場合にも、テスト処理と追加処理とが行われる。そして、その結果として、フィルタ28は、図11Bに示した状態となる。
フィルタ28が図11Bに示した状態にある状況下、3個のハッシュ値が、H4、H6、H12となるデータzの書込要求がホスト100から送信されてきた場合にも、テスト処理と追加処理とが行われる。ただし、この場合、下位ビット4の値は“0”であるが、下位ビット6、下位ビット12の値が、“1”となっている。そのため、H4についてのステップS204(図9)では、“YES”側への分岐が行われ、H6、H12についてのステップS204では、“NO”側への分岐が行われる。そして、その結果として、フィルタ28は、図11Cに示した状態となる。
次に、フィルタ28が図11Cに示した状態にある状況下、データxの書換要求(データxと同じLBAへのデータx′の書込要求)がホスト100から送信されてきた場合を考える。この場合、ステップS21にて、データxの3個のハッシュ値H2、H6、H14がブロックマップ23から読み出される。そして、ステップS22で“YES”側への分岐が行われて、削除処理(図10)が開始される。
この時点における上位ビット〔1〜3〕の値は、“0”である(ステップS304;YES)ため、H2については、下位ビット2の値が“0”に変更される(ステップS305)。また、H14についても、上位ビット〔13〜15〕の値が、“0”である(ステップS304;YES)ため、下位ビット14の値が“0”に変更される(ステップS305)。ただし、上位ビット〔4〜6〕の値が“1”である(ステップS304;NO)ため、下位ビット6の値は変更されない。
従って、削除処理が完了すると、フィルタ28の状態は図11Dに示したものとなる。この状態は、図11Eに示した状態、すなわち、フィルタ28の全ビットが“0”となっている状況下、データyの書込要求とデータzの書込要求がホスト100から送信されてきた場合の状態と同じ状態である。
そして、流れ図(図9)から明らかなように、追加処理にてフィルタ28の下位ビットに対して行われている処理は、通常のブルームフィルタ(図1A、図1B参照)に対して行われているものと同じ処理である。
従って、フィルタ28は、下位ビットの値を用いれば、通常のブルームフィルタと同様の判定を行えるもの(図8参照)であることになる。また、フィルタ28は、CBFと同様に登録情報の削除が可能なもの(図11C〜図11E参照)であるにも拘わらず、上位ビットを共通化している分、CBFよりもメモリの消費量が少ないものともなっていることになる。
図4に戻って、読込処理部22の機能を説明する。
読込処理部22は、ホスト100からの読込要求を処理するユニット(機能ブロック)である。この読込処理部22は、プロトコル処理部21から読込要求が供給されると、図12に示した手順の読込処理を開始し、まず、ブロックマップ23から処理対象LBA(読込要求中のLBA)に対応付けられている検証用ハッシュ値(図12では、“ハッシュ値”)を読み込む(ステップS11)。
次いで、読込処理部22は、読み込んだハッシュ値に対応づけられているデータ位置をハッシュ値検索テーブル25から読み込む(ステップS12)。そして、読込処理部22は、読み込んだデータ位置のデータを記憶装置30から読み込んで、ホスト100に返送(ステップS13)してから、この読込処理を終了する。
また、上記した書込処理部24は、値が“1”となっている上位ビットの数が所定数を超えた場合等に再構築処理を実行する機能も有している。
書込処理部24が実行可能な再構築処理は、図13に示した手順の処理である。
すなわち、この再構築処理を開始した書込処理部24は、まず、フィルタ28の上位ビット値を並べた上位ビット値フィルタをメモリ12上に生成する(ステップS401)。より具体的には、書込処理部24は、図14に模式的に示したように、フィルタ28の各上位ビット値を、対応している下位ビットの数と同数ずつ並べた上位ビット値フィルタを生成する。
次いで、書込処理部24は。フィルタ28の上位ビットが“1”である場所を“0”クリアする(ステップS402)。ここで、フィルタ28の上位ビットが“1”である場所とは、“1”である上位ビット、及び、その上位ビットに対応している3個の下位ビットのことである。
その後、書込処理部24は。記憶装置30内の全データについての、ステップS404以降の処理が完了しているか否かを判断する(ステップS403)。そして、書込処理部24は。全データについての処理が完了していなかった場合(ステップS403;NO)には、まず、記憶装置30内の最初/次のデータについてのk個のハッシュ値を算出する(ステップS404)。
次いで、書込処理部24は、算出した各ハッシュ値について(ステップS405;NO)、ステップS406以降の処理を行う。
或るハッシュ値(以下、処理対象ハッシュ値と表記する)についてのステップS406以降の処理を開始した書込処理部24は、まず、処理対象ハッシュ値に対応づけられているビット値を、上位ビット値フィルタから読み出す(ステップS406)。
そして、書込処理部24は、読み出したビット値が“0”であった場合(ステップS407;YES)には、特に処理を行うことなく、ステップS405に戻って、次のハッシュ値に対する処理を開始する。
一方、読み出したビット値が“1”であった場合(ステップS407;NO)、書込処理部24は、処理対象ハッシュ値に対応付けられている下位ビットの値をフィルタ28から読み出す(ステップS408)。そして、書込処理部24は、読み出した値が“0”であった場合(ステップS409;YES)には、処理対象ハッシュ値に対応付けられている下位ビットの値を“1”に変更(ステップS411)してから、ステップS405に戻って、次のハッシュ値に対する処理を開始する。
また、書込処理部24は、読み出した値が“1”であった場合(ステップS409;NO)には、処理対象ハッシュ値に対応付けられている上位ビットに“1”を設定する(ステップS410)。その後、書込処理部24は、ステップS405に戻って、次のハッシュ値に対する処理を開始する。
書込処理部24は、このような処理を、算出した各ハッシュ値について行ってから(ステップS405;YES)、残りの各データについても同様の処理を行う。そして、書込処理部24は、全データに対する処理が完了したときに(ステップS403;YES)、この再構築処理を終了する。
要するに、本実施形態に係るフィルタ28は、上記更新手順から明らかなように、上位ビットの値が“0”となっている下位ビットの値(“0”又は“1”)は、常に正確なものとなっている。そのため、再構築処理を、上位ビットの値が“0”となっている下位ビットの値(“0”又は“1”)の再構築を省略する処理としてあるのである。
《変形形態》
上記した重複除去ストレージ装置10については、各種の変形を行うことが出来る。例えば、重複除去ストレージ装置10を、上記した再構築処理(図13)の代わりに、図15に示した手順の再構築処理を実行する装置に変形することが出来る。すなわち、重複除去ストレージ装置10を、フィルタ28がクリアされてから、記憶装置30内の各データについて追加処理(図9)が行われる再構築処理(ステップS501〜503)を実行する装置に変形することが出来る。
また、上位ビット共有CBF28として、図16Aに示したように、2個の下位ビット毎に1個の上位ビットを備えたものや、図16Bに示したように、各上位ビット配下の下位ビット数が異なるものを用いることも出来る。
さらに、上位ビット共有CBF28として、“下位ビット”に相当する部分にnビットの情報(以下、カウンタ値と表記する)が記憶できるものを採用することも出来る。尚、そのような上位ビット共有CBF28を用いる場合、図17に示した手順の追加処理、図18に示した手順の削除処理が行われるようにしておけば良い。
すなわち、nビットのカウンタ値を記憶できる上位ビット共有CBF28を用いる場合、以下の点が、上記したものとは異なる追加処理が行われるようにしておけば良い。
ステップS203に相当するステップS203′にて、最初/次のハッシュ値に対応づけられているカウンタ値(以下、対応カウント値と表記する)がフィルタ28から読み出される。
ステップS204に相当するステップS204′にて、『対応カウンタ値<2−1』が成立するか否かが判断される。
ステップS206に相当するステップS206′にて、フィルタ28の対応カウンタ値に“1”が加算される。
また、nビットのカウンタ値を記憶できる上位ビット共有CBF28を用いる場合、以下の点が、上記したものとは異なる削除処理が行われるようにしておけば良い。
ステップS305に相当するステップS305′にて、フィルタ28の対応カウンタ値が“1”デクリメントされる。
重複除去ストレージ装置10を、上記したものとは異なる構成のブロックマップ23やハッシュ値検索テーブル25を備えた装置に変形することも出来る。さらに、ストレージ
制御プログラム20から、上位ビット共有CBF28の参照/更新によるデータの有無判定に関する部分のみを取り出したプログラムを作成しても良いことや、上記内容のデータの有無判定を、重複除去ストレージ装置10以外の装置に適用しても良いことなどは、当然のことである。
以上開示した技術に関し、更に以下の付記を開示する。
(付記1) それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、
それぞれ、前記L個のハッシュ値の中の互いに異なる1つ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域と、
或るデータ集合に含まれるデータ毎に、そのデータについてのk個のハッシュ値を前記L個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶する情報設定部と、
前記k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、入力データが、前記データ集合に含まれていない新規データであると判定する判定部と、
を備えることを特徴とするデータ有無判定装置。
(付記2) 前記L個の第1記憶領域と前記M個の第2記憶領域とが、同一のメモリ上に、同一のハッシュ値に対応づけられている前記第1記憶領域に記憶されたカウント値と前記第2記憶領域に記憶された値とが1回のメモリアクセスで読み出せるように確保されている
ことを特徴とする付記1に記載のデータ有無判定装置。
(付記3) 前記データ集合から取り除くデータについてのk個のハッシュ値を前記k個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応付けられている第2記憶領域上の値が“0”であった場合に限り、そのハッシュ値に対応付けられている第1記憶領域上のカウンタ値を“1”デクリメントする登録情報削除部を、さらに備える
ことを特徴とする付記1又は2のいずれか一項に記載のデータ有無判定装置。
(付記4) n=1である
ことを特徴とする付記1乃至3のいずれか一項に記載のデータ有無判定装置。
(付記5) 各第2記憶領域が同数のハッシュ値に対応付けられている
ことを特徴とする付記1乃至3のいずれか一項に記載のデータ有無判定装置。
(付記6) メモリ上に確保された、それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、それぞれ、前記L個のハッシュ値の中の互いに異なる1つ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域とを用いて、入力データが、既存のデータ集合に含まれていない新規データであるか否かを判定するデータ有無判定方法であって、
コンピュータが、
前記データ集合に含まれるデータ毎に、そのデータについてのk個のハッシュ値を前記
L個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶し、
前記k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、入力データが、前記データ集合に含まれていない新規データであると判定する
ことを特徴とするデータ有無判定方法。
(付記7) コンピュータを、
それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、
それぞれ、前記L個のハッシュ値の中の互いに異なる1つ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域と、
或るデータ集合に含まれるデータ毎に、そのデータについてのk個のハッシュ値を前記L個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶する情報設定部と
前記k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、入力データが、前記データ集合に含まれていない新規データであると判定する判定部と、
を備える装置として動作させることを特徴とするデータ有無判定プログラム。
(付記8) コンピュータを、
それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、
それぞれ、前記L個のハッシュ値の中の互いに異なる1つ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域と、
或るデータ集合に含まれるデータ毎に、そのデータについてのk個のハッシュ値を前記L個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、そのハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶する情報設定部と
前記k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、入力データが、前記データ集合に含まれていない新規データであると判定する判定部と、
を備える装置として動作させるデータ有無判定プログラムを記録したコンピュータ可読媒体。
10 重複除去ストレージ装置
11 CPU
12 メモリ
13 HDD
20 ストレージ制御プログラム
21 プロトコル処理部
22 読込処理部
23 ブロックマップ
24 書込処理部
25 ハッシュ値検索テーブル
28 上位ビット共有カウンティングブルームフィルタ
30 記憶装置
50 コンピュータ
100 ホスト

Claims (6)

  1. それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、
    それぞれ、前記L個のハッシュ値の中の互いに異なるつ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域と、
    データ集合に含まれるデータ毎に、前記データについてのk個のハッシュ値を前記L個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、前記算出した各ハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶する情報設定部と、
    前記k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、前記入力データが、前記データ集合に含まれていない新規データであると判定する判定部と
    を備えることを特徴とするデータ有無判定装置。
  2. 前記L個の第1記憶領域と前記M個の第2記憶領域とが、同一のメモリ上に、同一のハッシュ値に対応づけられている前記第1記憶領域に記憶されたカウント値と前記第2記憶領域に記憶された値とが1回のメモリアクセスで読み出せるように確保されている
    ことを特徴とする請求項1に記載のデータ有無判定装置。
  3. 前記第1記憶領域に記憶されるカウント値は1ビットである、
    請求項1または2に記載のデータ有無判定装置。
  4. 前記k個のハッシュ関数を用いて、前記データ集合から削除される削除データのk個のハッシュ値を算出し、算出した前記削除データのk個のハッシュ値に含まれるあるハッシュ値に対応付けられている第2記憶領域上のカウント値が“0”である場合に、前記あるハッシュ値に対応付けられている第1記憶領域上のカウント値を“0”に変更する、
    請求項1から3のいずれか一項に記載のデータ有無判定装置。
  5. メモリ上に確保された、それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、それぞれ、前記L個のハッシュ値の中の互いに異なるつ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域とを用いて、入力データが、既存のデータ集合に含まれていない新規データであるか否かを判定するデータ有無判定方法であって、
    コンピュータが、
    データ集合に含まれるデータ毎に、前記データについてのk個のハッシュ値を前記L個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、前記算出した各ハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶し、
    前記k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、前記入力データが、前記データ集合に含まれていない新規データであると判定する
    ことを特徴とするデータ有無判定方法。
  6. コンピュータを、
    それぞれ、L個のハッシュ値の中の互いに異なるハッシュ値に対応づけられた、n(≧1)ビットのカウント値を記憶するL個の第1記憶領域と、
    それぞれ、前記L個のハッシュ値の中の互いに異なるつ以上のハッシュ値に対応付けられた、1ビットの値を記憶するM(<L)個の第2記憶領域と、
    データ集合に含まれるデータ毎に、前記データについてのk個のハッシュ値を前記L個のハッシュ値のいずれかが算出されるk個のハッシュ関数を用いて算出し、算出した各ハッシュ値について、前記算出した各ハッシュ値に対応づけられている第1記憶領域上のカウント値が、2−1よりも少ない場合には、当該カウント値をカウントアップし、当該カウント値が、2−1であった場合には、そのハッシュ値に対応づけられている第2記憶領域に“1”を記憶する情報設定部と、
    前記k個のハッシュ関数を用いて、入力データのk個のハッシュ値を算出し、算出したいずれかのハッシュ値に対応付けられている第1記憶領域上のカウント値が“0”であった場合に、前記入力データが、前記データ集合に含まれていない新規データであると判定する判定部と、
    を備える装置として動作させることを特徴とするデータ有無判定プログラム。
JP2012074855A 2012-03-28 2012-03-28 データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム Expired - Fee Related JP5821744B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012074855A JP5821744B2 (ja) 2012-03-28 2012-03-28 データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム
US13/772,744 US8903804B2 (en) 2012-03-28 2013-02-21 Data existence judging device and data existence judging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012074855A JP5821744B2 (ja) 2012-03-28 2012-03-28 データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム

Publications (2)

Publication Number Publication Date
JP2013206154A JP2013206154A (ja) 2013-10-07
JP5821744B2 true JP5821744B2 (ja) 2015-11-24

Family

ID=49236459

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012074855A Expired - Fee Related JP5821744B2 (ja) 2012-03-28 2012-03-28 データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム

Country Status (2)

Country Link
US (1) US8903804B2 (ja)
JP (1) JP5821744B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10838990B1 (en) * 2013-09-26 2020-11-17 EMC IP Holding Company LLC System and method for improving data compression of a storage system using coarse and fine grained similarity
US10216754B1 (en) 2013-09-26 2019-02-26 EMC IP Holding Company LLC System and method for balancing compression and read performance in a storage system
KR101648317B1 (ko) * 2015-12-09 2016-08-16 성균관대학교산학협력단 항목 삭제를 지원하는 분할 블룸 필터를 이용한 데이터 검색 방법, 이를 이용한 캐시 메모리 장치 및 스토리지 장치
JP6916442B2 (ja) 2017-11-21 2021-08-11 富士通株式会社 データ処理装置およびデータ処理プログラム
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
US11210280B2 (en) * 2019-06-04 2021-12-28 Alibaba Group Holding Limited Systems and methods for fast bloom filter operations
US11366879B2 (en) * 2019-07-08 2022-06-21 Microsoft Technology Licensing, Llc Server-side audio rendering licensing

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937535B2 (en) * 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US8032529B2 (en) * 2007-04-12 2011-10-04 Cisco Technology, Inc. Enhanced bloom filters
JP5051061B2 (ja) * 2008-08-20 2012-10-17 富士通株式会社 情報検索装置
JP2011159102A (ja) * 2010-02-01 2011-08-18 Nippon Telegr & Teleph Corp <Ntt> アクセス履歴情報収集方法、広告情報配信方法、アクセス履歴情報収集システム、広告情報配信システム、トラヒックインタワーク装置、アクセス履歴情報蓄積装置、広告情報配信制御装置、広告情報配信サーバ装置、および、プログラム
JP2011171995A (ja) 2010-02-18 2011-09-01 Nippon Telegr & Teleph Corp <Ntt> データ判別装置、データ判別方法およびデータ判別プログラム

Also Published As

Publication number Publication date
JP2013206154A (ja) 2013-10-07
US8903804B2 (en) 2014-12-02
US20130262472A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
JP5821744B2 (ja) データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム
EP3436953B1 (en) Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
KR101599177B1 (ko) 복합식 비휘발성 저장 디바이스를 위한 데이터 이송
EP3361409B1 (en) Data deduplication method and apparatus
US8117377B2 (en) Flash memory device having secure file deletion function and method for securely deleting flash file
CN105718221B (zh) 一种数据存储的方法、装置和系统
US8478933B2 (en) Systems and methods for performing deduplicated data processing on tape
JP2022500759A (ja) 不揮発性メモリエクスプレスデバイスのネットワークをサニタイズするときに使用する方法および装置
JP6098301B2 (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
KR20170023734A (ko) 플래시 메모리 플러싱을 개선하는 방법 및 시스템
JP6089890B2 (ja) ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム
JP2015001909A (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
US10019198B2 (en) Method and apparatus for processing sequential writes to portions of an addressable unit
CN116860170A (zh) 一种数据处理方法、装置、设备、介质及固态硬盘
EP2669806A1 (en) Storage system
JP6812826B2 (ja) 格納方法、格納装置及び格納プログラム
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
CN105389128A (zh) 一种固态硬盘数据存储方法及存储控制器
US9977599B2 (en) Data deduplication with support for both thick and thin provisioning of storage objects
WO2014038016A1 (ja) 制御プログラム、制御方法及び制御装置
CN105930534B (zh) 一种基于云存储服务价格的数据碎片减少方法
JP2024017667A (ja) 情報処理装置および試験方法
CN107329702B (zh) 一种自精简元数据管理方法及装置
KR100932096B1 (ko) 낸드 플래시 메모리의 데이터 저장방법
CN112567327A (zh) 非易失性存储装置、主机装置和数据存储系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150724

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150921

R150 Certificate of patent or registration of utility model

Ref document number: 5821744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees