JP6089890B2 - ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム - Google Patents

ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム Download PDF

Info

Publication number
JP6089890B2
JP6089890B2 JP2013074642A JP2013074642A JP6089890B2 JP 6089890 B2 JP6089890 B2 JP 6089890B2 JP 2013074642 A JP2013074642 A JP 2013074642A JP 2013074642 A JP2013074642 A JP 2013074642A JP 6089890 B2 JP6089890 B2 JP 6089890B2
Authority
JP
Japan
Prior art keywords
storage
data
target data
storage device
information
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
JP2013074642A
Other languages
English (en)
Other versions
JP2014199573A (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 JP2013074642A priority Critical patent/JP6089890B2/ja
Priority to PCT/JP2014/058352 priority patent/WO2014157243A1/ja
Publication of JP2014199573A publication Critical patent/JP2014199573A/ja
Priority to US14/861,159 priority patent/US10007436B2/en
Application granted granted Critical
Publication of JP6089890B2 publication Critical patent/JP6089890B2/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • G06F3/0674Disk device

Description

本発明は、ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラムに関する。
記憶装置(ストレージ)の記憶容量の有効活用を図る技術として、データ重複除去、重複排除等と呼ばれている、重複したデータを記憶装置内に記憶しない技術が知られている。そして、データ重複除去を行う装置では、データが重複しているか否かの判定に、通常、ブルームフィルタや多段ブルームフィルタ(例えば、特許文献1、2参照)が用いられている。
ブルームフィルタや多段ブルームフィルタ(以下、単に、ブルームフィルタと表記する)は、そのサイズを、管理対象となるデータ数に応じたものとしておかないと、所望の擬陽性発生確率が得られないデータ構造である。そして、ブルームフィルタが、重複の有無を判定するために使用される管理データであることを考えると、重複除去を行う技術には、単位管理データ量当たりのデータの削減量(管理データを用いて重複除去されたデータの総サイズ)が大きいことが望まれることになる。
特開2011−186954号公報 特開2010−114480号公報
開示の技術の課題は、単位管理データ量当たりのデータの削減量を大きくすることが出来る技術を提供することにある。
開示の技術の一態様の、記憶装置を制御するストレージ制御装置は、
入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを保持する保持部と、
前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納し、前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納し、前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行わない格納処理部と、
前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除する後処理部と、
を有する。
また、一態様の、記憶装置を制御するストレージ制御装置の制御方法は、
前記ストレージ制御装置が、
入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを、前記ストレージ制御装置が有する保持部に保持し、
前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納し、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納し、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行なわず、
前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除する。
また、一態様の、記憶装置を制御するストレージ制御装置の制御プログラムは、
前記ストレージ制御装置に、
入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを、前記ストレージ制御装置が有する保持部に保持させ、
前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納させ、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納させ、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行なわさせず、
前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除させる。
上記技術によれば、単位管理データ量当たりのデータの削減量を大きくすることが出来る。
図1は、実施形態に係るストレージ制御装置の構成及び使用形態の説明図である。 図2は、ストレージ制御装置が記憶装置内に格納することを想定している情報の説明図である。 図3は、ストレージ制御装置の機能ブロック図である。 図4は、ストレージ制御装置(格納処理部)が実行する格納処理の流れ図である。 図5は、重複数カウンタの説明図である。 図6は、重複数計数処理の流れ図である。 図7は、ブロックマップの説明図である。 図8は、ハッシュログの説明図である。 図9は、多段ブルームフィルタの説明図である。 図10は、ストレージ制御装置(読込処理部)が実行する読込処理の流れ図である。 図11Aは、従来装置による情報の格納・管理形態の説明図である。 図11Bは、ストレージ制御装置による情報の格納・管理形態の説明図である。 図12は、ストレージ制御装置(後処理部)が実行する後処理の流れ図である。 図13は、ストレージ制御装置による情報の格納・管理形態及び後処理時における各部のデータの重複数の説明図である。 図14は、後処理の内容の説明図である。 図15は、通常の重複除去時と、ストレージ制御装置による重複除去時における管理データ量、削減量、削減量/管理データ量の関係の説明図である。
以下、開示の技術の一実施形態に係るストレージ制御装置10について、図面を参照して詳細に説明する。
まず、図1を用いて、ストレージ制御装置10の構成及び使用形態を説明する。
図1に示してあるように、本実施形態に係るストレージ制御装置10は、コンピュータ50のHDD(Hard Disk Drive)13に、OS(Operating System)、ストレージ制御
プログラム18等をインストールした装置である。換言すれば、CPU11が、OS、ストレージ制御プログラム18等をRAM(Random Access Memory)12上にロードして実行しているコンピュータ50が、ストレージ制御装置10である。
ストレージ制御プログラム18がインストールされるコンピュータ50は、通常のコンピュータである。そのため、各構成要素の詳細説明は省略するが、ストレージ制御装置10(コンピュータ50)は、IPL(Initial Program Loader)等のファームウェアを記憶したフラッシュROM(Read Only Memory;図1では、“ROM”)を備える。また、ストレージ制御装置10は、各構成要素間を接続するチップセット(つまり、1つの集積回路又はバスで接続された複数の集積回路)を備える。
さらに、ストレージ制御装置10は、記憶装置30との間で通信を行うための通信インタフェース(“I/F”)、及び、少なくとも1台のユーザ端末100との間で通信を行うための通信インタフェース(“I/F”)を備える。
ストレージ制御装置10に接続される記憶装置30は、データを格納するための複数の物理ブロック(単位記憶領域)を有し、データをリード/ライトする物理ブロックを、物理ブロックアドレス(PBA:Physical Block Address)で指定できる装置である。ストレージ制御装置10には、この記憶装置30として、HDDや、SSD(Solid State Drive)や、HDD及び/又はSSDを複数台組み合わせた装置が接続される。
次に、ストレージ制御装置10の、想定している使用環境と、ストレージ制御装置10
の基本的な機能とを、説明する。尚、以下の説明において、データとは、原則として、記憶装置30の1個の物理ブロックに記憶できるサイズのデータのことである。
ストレージ制御装置10は、記憶装置30内に、一部の内容しか異ならない多数の情報が格納される環境で使用されることを想定して開発した装置である。ここで、“一部の内容しか異ならない多数の情報”とは、図2に模式的に示したL個の情報、すなわち、割合Pの部分の内容が一致し、割合1−Pの部分の内容が異なるL個の情報のような情報のことである。
そして、ストレージ制御装置10は、基本的には、多段ブルームフィルタ(MBF;Multi Blume Filter)を利用して記憶装置30内にどのようなデータが格納されているかを管理することにより、データの重複除去を行う装置となっている。
ただし、ストレージ制御装置10は、データの記憶装置30への格納時、N−1(N≧2)個目までの重複データは、重複除去を行うことなく記憶装置30内に格納してしまい、N個目以降の重複データに対して、重複除去を行う装置として構成されている。
ここで、n(nは自然数)個目の重複データとは、記憶装置30内にn−1個の同内容のデータが格納されているデータのことである。すなわち、1個目の重複データとは、記憶装置30内に初めて格納される新規な内容のデータのことである。
以上のことを前提に、以下、ストレージ制御装置10の構成及び動作をさらに具体的に説明する。
図3に、ストレージ制御装置10の機能ブロック図を示す。
この図3に示してあるように、ストレージ制御装置10は、格納処理部41、読込処理部42及び後処理部43を備える。またストレージ制御装置10は、RAM12上に、重複数カウンタ20、ブロックマップ21、MBF22、第1〜第mハッシュログ23が存在する状態で動作する。
格納処理部41、読込処理部42及び後処理部43は、ストレージ制御プログラム18をCPU11が実行することにより実現されるユニット(機能ブロック)である。
RAM12上の各情報は、ユーザ(ストレージ制御装置10の管理者等)の設定に従い、CPU11(ストレージ制御プログラム18)が、RAM12上に用意し、適宜、記憶装置30内に保存(バックアップ)する情報である。
具体的には、ストレージ制御装置10のセットアップ時には、m値、N(≧1)値、各データ記憶領域を記憶装置30内のいずれの記憶領域とするか等を設定する作業がユーザにより行われる。ここで、データ記憶領域とは、各ハッシュログ23に対応づけられる、ストレージ制御装置10の記憶領域(ストレージ制御装置10の全記憶領域の一部)のことである。以下、第i(i=1〜m)ハッシュログ23に対応づけられるデータ記憶領域を、第iデータ記憶領域と表記する。
尚、上記作業時には、後処理部43による後処理の開始条件も設定される。後処理の詳細については後述するが、後処理の開始条件としては、“毎日、X時に開始する”、“毎日曜のX時に開始する”、“ガベージコレクションの前に開始する”といったような条件が設定される。
m値等が設定されると、CPU11は、設定に従い、RAM12上に、重複数カウンタ
20、ブロックマップ21、MBF22、第1〜第mハッシュログ23を用意する。この際、CPU11が用意する各情報は、有意なデータを保持していない状態にあるものである。また、MBF22は、設定されたm値に応じた構成を有するものを、CPU11が生成する情報となっている。そして、CPU11(ストレージ制御プログラム18)がMBF22を生成できるm値は限られているため、ストレージ制御装置10のセットアップ時には、ストレージ制御プログラム18がMBF22を生成できるm値の中から、m値が選択される。
以下、RAM12上の重複数カウンタ20、ブロックマップ21、MBF22、各ハッシュログ23の構成を、格納処理部41、読込処理部42及び後処理部43が行う処理の内容と共に説明する。
格納処理部41は、通常は、記憶装置30に対するライト要求が、ユーザ端末100用の通信インタフェースによって受信されるのを待機(監視)している。
ユーザ端末100から或る情報のライト要求が送信されてきた場合、格納処理部41は、当該情報(以下、格納対象情報と表記する)が、記憶装置30の1個の物理ブロックに記憶できるサイズの情報であるか否かを判断する。そして、格納処理部41は、格納対象情報が、1個の物理ブロックに記憶できるサイズの情報であった場合には、格納対象情報自体を格納対象データとして取り扱う形で、図4に示した手順の格納処理を実行する。
一方、格納対象情報が、1個の物理ブロックに記憶できるサイズの情報でなかった場合、格納処理部41は、格納対象情報を、物理ブロックに記憶可能なサイズの複数のデータに分割する。そして、格納処理部41は、分割により得られたデータ毎に、そのデータを格納対象データとした格納処理を実行する。
図4に示してあるように、或る格納対象データに対する格納処理時、格納処理部41は、まず、重複数計数処理(ステップS101)を行う。
この重複数計数処理は、その時点(重複数計数処理の実行時点)において、記憶装置30内に実際に/重複除去された形で格納されている、格納対象データの重複データの数を、“格納対象データの重複数”として算出する処理である。
重複数計数処理は、RAM12上の重複数カウンタ20を利用する処理となっている。そのため、重複数計数処理の内容を説明する前に、重複数カウンタ20の構成を説明する。
図5に、重複数カウンタ20の概略構成を示す。
この図5に模式的に示してあるように、重複数カウンタ20は、第1ブルームフィルタ(第1−BF)31から第Nブルームフィルタ(第N−BF)31までのN個のBF31を含む。尚、重複数カウンタ20は、ユーザにより設定されたN値に基づきRAM12上に用意されるものである。従って、N値として、“1”が設定された場合には、重複数カウンタ20は、1つのブルームフィルタとなるのであるが、以下では、N≧2であるとして、重複数カウンタ20の構成を説明する。
重複数カウンタ20に含まれる第1−BF〜第N−BFは、いずれも、通常のブルームフィルタである。ここで、通常のブルームフィルタとは、各ビットにハッシュ値が対応づけられており、或るデータの登録時に、当該データから算出されたk(≧2)個のハッシュ値に対応づけられているk個のビットに“1”がセットされるデータ構造(ビット列)のことである。
重複数カウンタ20の各BF31のビット数は、図5中に点線で模式的に示しあるように、第1−BF31、第2−BF31(図示略)、…、第N−BF31の順に少なくなっている。各BF31のビット数をそのように定めている理由については、後述する。
重複数計数処理は、図6に示した手順の処理である。尚、この図6に示した重複数計数処理は、N値が2以上の値である場合に行われるものであり、N値が1である場合には、ステップS207及びS208の処理がない重複数計数処理が行われる。
すなわち、この重複数計数処理を開始した格納処理部41は、まず、変数iに“1”をセットする(ステップS201)。
次いで、格納処理部41は、重複数カウンタ20用のものとして用意されているk個のハッシュ関数を用いて格納対象データについてのk個のハッシュ値を算出する(ステップS202)。
格納対象データについてのk個のハッシュ値を算出した格納処理部41は、各ハッシュ値(以下、算出ハッシュ値とも表記する)に対応づけらている,第i−BF31のビットの値に基づき、格納対象データが新規データであるか否かを判定する(ステップS203)。
具体的には、このステップS203にて、格納処理部41は、まず、各算出ハッシュ値に対応づけらているビットの値を第i−BF31から読み出す。そして、格納処理部41は、或る算出ハッシュ値に対応づけらているビットの値が“0”であった場合には、格納対象データが新規データであると判定してステップS203の処理を終了する。また、格納処理部41は、k個の算出ハッシュ値に対応づけらているk個のビットの値が全て“1”であった場合には、格納対象データが新規データではないと判定してステップS203の処理を終了する。
尚、ステップS203で行われる判定は、正確には、格納対象データが、i個目の重複データであるか否かの判定である。換言すれば、重複数計数処理(図5)の説明において、新規データとは、i個目の重複データのことである。
格納対象データが新規データであると判定した場合(ステップS204;YES)、格納処理部41は、第i−BFの、各算出ハッシュ値に対応付けられている各ビットに、“1”を設定する(ステップS205)。そして、格納処理部41は、格納対象データの重複数が、i−1であることを記憶(ステップS206)してから、この重複数計数処理を終了する。
一方、格納対象データが新規データではないと判定した場合(ステップS204;NO)、格納処理部41は、変数iに“1”を加算する(ステップS207)。そして、格納処理部41は、“i>N”が成立しているか否かを判断(ステップS208)し、“i>N”が成立していなかった場合(ステップS208;NO)には、ステップS203以降の処理を再び実行する。
格納処理部41は、このような処理を繰り返しているうちに、“i>N”が成立した場合(ステップS208;YES)には、格納対象データの重複数がNであることを記憶(ステップS209)してから、重複数計数処理を終了する。
以上の説明した重複数計数処理の処理手順から明らかなように、重複数カウンタ20の
第i−BF31(i=1〜N)には、格納対象データと同内容のデータが記憶装置30内にi−1個格納されていた場合に、格納対象データが登録される。換言すれば、重複数カウンタ20の第i−BF31には、i個目の重複データが登録される。従って、第(j+1)−BF31(j=1〜N−1)に登録されるデータ数は、第j−BF31に登録されるデータ数よりも確実に少ない。そして、BFは、登録されるデータ数が少ない場合には、ビット数を少なくできるデータ構造であるし、重複数カウンタ20の記憶/保持に要する記憶容量は少ない方が良い。そのため、上記したように、重複数カウンタ20の各BF31のビット数を、第1−BF31、第2−BF31、…、第N−BF31の順に少なくなるようにしているのである。
図4に戻って、格納処理の説明を続ける。
重複数計数処理(ステップS101)を終えた格納処理部41は、重複数計数処理で求めた格納対象データの重複数が、N未満であるか否かを判断する(ステップS102)。
重複数がN未満であった場合(ステップS102;YES)、格納処理部41は、格納対象データを記憶装置30内に書き込む(ステップS110)。
より具体的には、格納処理部41は、このステップS110にて、まず、格納対象データの実際の書込先とする記憶装置30の物理ブロックのPBAを決定する。PBAは、格納対象データの書込先LBA(Logical Block Address)を考慮して、LBAが近いデー
タが同じデータ記憶領域に書き込まれることになるように決定される。尚、格納対象データの書込先LBAとは、受信したライト要求に含まれるLBA、又は、当該LBAと格納対象データの格納対象情報(ライト要求で書き込みが指示されている情報)内での位置とから算出されるLBAのことである。
次いで、格納処理部41は、決定したPBA(以下、書込先PBAと表記する)が割り当てられている物理ブロックに格納対象データを書き込む。そして、格納処理部41は、ステップS110の処理を終了する。
ステップS110の処理を終えた格納処理部41は、書込先LBAと書込先PBAとを設定したレコードをブロックマップ21に追加する(ステップS111)。
ブロックマップ21は、図7に示したように、LBAフィールドと、格納位置情報フィールドとを有している。このブロックマップ21の格納位置情報フィールドは、PBA又はハッシュ値を格納位置情報として設定されるフィールドとなっている。ステップS111の処理時、格納処理部41は、LBAフィールド、格納位置情報フィールドに、それぞれ、書込先LBA、書込先PBAを設定したレコードをブロックマップ21に追加する。
そして、ステップS111の処理を終えた格納処理部41は、この格納処理(図4)を終了する。
一方、格納対象データの重複数がN未満ではなかった場合(ステップS102;NO)、格納処理部41は、MBF22を用いて、更新対象データの重複データの有無をチェックする(ステップS103)。
このステップS103の処理の詳細についてはMBF22の構成と共に後ほど説明するが、ステップS103の処理は、更新対象データと同内容のデータがMBF22に登録されているか否かをチェックする処理である。そして、既に説明したように(ステップS102、S110及びS111参照)、重複数がN未満のデータはMBF22に登録されない。従って、更新対象データと同内容のデータが記憶装置30内に既に格納されていても
、格納処理部41が、ステップS103の処理時に更新対象データの重複データが存在していないと判定する場合がある。
格納対象データの重複データが存在していなかった場合(ステップS104;NO)、格納処理部41は、格納対象データを記憶装置30内に書き込む(ステップS105)。このステップS105の処理は、上記したステップS110の処理と同じものである。すなわち、格納処理部41は、書込先PBAを決定し、書込先PBAに格納対象データを書き込む処理を、ステップS105にて、行う。
次いで、格納処理部41は、書込先PBAに応じたハッシュログ23に、格納対象データの検証用ハッシュ値と書込先PBAとを設定したレコードを追加する(ステップS106)。
ハッシュログ23は、図8に示したように、ハッシュ値フィールドとPBAフィールドとを有するテーブルである。
既に説明したように、RAM12上の第i(i=1〜m)ハッシュログ23は、第iデータ記憶領域と対応づけられている。上記した“書込先PBAに応じたハッシュログ23”とは、書込先PBAが割り当てられている論理ブロックを含むデータ記憶領域に対応づけられているハッシュログ23のことである。
また、検証用ハッシュ値とは、2データが同一であるか否かの判定に使用できるハッシュ値のことである。検証用ハッシュ値としては、通常、MD5(Message-Digest 5)、SHA(Secure Hash Algorithm)−1、SHA−256等のアルゴリズムにより算出され
るセキュアハッシュ値が使用される。
ステップS106(図4)の処理を終えた格納処理部41は、格納対象データをMBF22に登録する(ステップS107)。このステップの処理の詳細についても後述するが、MBF22に実際に登録されるデータ(MBF22に追加される要素)は、格納対象データ自体ではなく、格納対象データの検証用ハッシュ値である。
ステップS107の処理を終えた格納処理部41は、LBA、格納位置情報として、それぞれ、書込先LBA、格納対象データの検証用ハッシュ値を設定したレコードをブロックマップ21(図7)に追加する(ステップS108)。そして、格納処理部41は、この格納処理を終了する。
以下、MBF22の構成と、ステップS102、S107の処理の詳細とを、説明する。
図9に、MBF22の構成例を示す。この図9に示したMBF22が使用できるのは、m=16である場合である。そのため、以下の説明では、記憶装置30の記憶領域が第1〜第16データ記憶領域に分割されており、RAM12上に第1〜第16ハッシュログ23が存在しているものとする。
図9に示したMBF22に含まれる各BFは、通常のブルームフィルタである。ただし、MBF22の最下段のBF5−1〜BF5−16は、それぞれ、記憶装置30の第1〜第16データ記憶領域に対応づけられている。
MBF22の1段目から4段目までの各BFは、図9において各BFの下方に位置している最下段の各BFが対応づけられているデータ記憶領域と対応づけられている。すなわ
ち、BF4−1は、BF5−1、5−2がそれぞれ対応付けられている第1、第2データ記憶領域と対応づけられている。BF4−2は、BF5−3、5−4がそれぞれ対応付けられている第3、第4データ記憶領域と対応づけられている。BF3−1は、BF5−1〜5−4がそれぞれ対応づけられている第1〜第4データ記憶領域と対応づけられている。1段目から4段目までの他の各BFも、同様に、各BFの下方に位置している最下段のBFが対応づけられているデータ記憶領域と対応づけられている。
そして、或る格納対象データをMBF22に登録する際には、その格納対象データを書き込んだ論理ブロックを含むデータ記憶領域に対応づけられている各BFに、格納対象データが登録される。尚、既に説明したように、MBF22(MBF22の各BF)に実際に登録されるデータは、格納対象データ自体ではなく、格納対象データの検証用ハッシュ値である。ただし、説明の便宜上、MBF22に対する処理については、格納対象データの検証用ハッシュ値のことを、原則として、格納対象データと表記する。
すなわち、ステップS105にて、格納対象データが第1記憶領域に書き込まれていた場合には、ステップS107にて、BF5−1、BF4−1、BF3−1、BF2−1及びBF1−1のそれぞれに格納対象データが登録される。また、ステップS105にて、格納対象データが第11記憶領域に書き込まれていた場合には、ステップS107にて、BF5−11、BF4−6、BF3−3、BF2−2及びBF1−1のそれぞれに格納対象データが登録される。
また、ステップS103では、例えば、以下の手順の処理が行われる。尚、以下の説明において、或るBFの下位BFとは、図9において、或るBFの真下に示されている各BFのことである。すなわち、例えば、BF1−1の下位BFとは、BF2−1とBF2−2のことであり、BF2−2の下位BFとは、BF3−3とBF3−4のことである。
・BF1−1に格納対象データが登録されているか否かをチェック
・BF1−1に格納対象データが登録されていなかった場合には、格納対象データが存在しないことを記憶して処理を終了
・BF1−1に格納対象データが登録されていた場合には、BF1−1の各下位BFに格納対象データが登録されているか否かを順々にチェック
・格納対象データが登録されている下位BFが見出せなかった場合には、格納対象データが存在しないことを記憶して処理を終了
・格納対象データが登録されている下位BFを見出せた場合には、当該下位BFの各下位BFに格納対象データが登録されているか否かを順々にチェック
・格納対象データが登録されている下位BFが見出せなかった場合には、格納対象データが存在しないことを記憶して処理を終了
・同様の処理を繰り返すことによって格納対象データが登録されている再下段のBFを特定できた場合には、当該BFに対応付けられているハッシュログ23に、格納対象データの検証用ハッシュ値が記憶されているか否かをチェック
・ハッシュログ23に格納対象データの検証用ハッシュ値が記憶されていた場合には、格納対象データの重複データが存在することを記憶して処理を終了
尚、周知のように、BFによるデータの有無の判定時には、実際には存在していないデータが存在していると判定されてしまう場合がある。そのため、格納対象データが登録されている下位BFが見出せなかった場合、1段上の未チェックのBFをチェックしなおすようにしておくことが好ましい。
次に、読込処理部42(図3)の機能を説明する。
読込処理部42は、記憶装置30からのデータの読み込みを行うユニット(機能ブロック)である。
図10に、読込処理部42が、或るデータを記憶装置30から読み込む際に行う読込処理の流れ図を示す。尚、この流れ図及び以下の説明において、読込対象データとは、記憶装置30から読み込もうとしているデータのことであり、読込対象LBAとは、読込対象データのLBAのことである。また、格納処理部41は、記憶装置30に対するリード要求が、ユーザ端末100から送信されてきた場合、この読込処理を何回か実行することにより要求されたデータを用意して、ユーザ端末100に返送する。
図10に示してあるように、この読込処理を開始した読込処理部42は、まず、読込対象LBAが設定されているレコードをブロックマップ21から検索する(ステップS301)。
そして、読込処理部42は、読込対象LBAが設定されているレコードを検索できなかった場合(ステップS302;NO)には、ブロックサイズのALL0データを読込対象LBAのデータの読込結果として(ステップS307)、この読込処理を終了する。
一方、読込対象LBAが設定されているレコードを検索できた場合(ステップS302;YES)、読込処理部42は、検索したレコード上の格納位置情報(格納位置情報フィールドの値)がハッシュ値であるか否かを判断する(ステップS303)。
検索したレコード上の格納位置情報がハッシュ値ではなかった場合、当該格納位置情報は、読込対象データが記憶されている物理ブロックのPBAである(図4のステップS111、図7参照)。
そのため、この場合(ステップS303;NO)には、ブロックマップ21から読み出したPBAが示している物理ブロックのデータを、読込対象データとして記憶装置30から読み込む処理(ステップS306)が行われる。
一方、検索したレコード上の格納位置情報がハッシュ値であった場合、当該格納位置情報は、読込対象データの検証用ハッシュ値である(図4のステップS108参照)。また、読込対象データ又は読込対象データと同内容のデータが記憶されている物理ブロックのPBA(以下、読込対象PBAと表記する)は、読込対象データの検証用ハッシュ値に対応づけられていずれかのハッシュログ23(図8)に記憶されている。
そして、上記したように、MBF22は、或るデータが記憶されているデータ記憶領域を検索できるものとなっている。
そのため、検索したレコード上の格納位置情報がハッシュ値であった場合(ステップS303;YES)、ステップS304〜S306の処理が行われる。
すなわち、格納位置情報がハッシュ値であった場合、読込処理部42は、まず、格納位置情報(読込対象データの検証用ハッシュ値)を用いて、MBF22から、読込対象データ等が記憶されているデータ記憶領域を検索する(ステップS304)。尚、読込対象データ等とは、読込対象データ又は読込対象データと同内容のデータのことである。
次いで、読込処理部42は、検索したデータ記憶領域に対応づけられているハッシュログ23から、読込対象データの検証用ハッシュ値を検索キーとして用いて読込対象PBAを検索する(ステップS305)。その後、読込処理部42は、検索した読込対象PBAが示している物理ブロックのデータを、読込対象データとして記憶装置30から読み込む
(ステップS306)。そして、読込処理部42は、この読込処理を終了する。
以下、後処理部43について説明する。
まず、N−1個目までの重複データをMBF22に登録していない理由と、後処理部43が行う後処理の目的とを、説明する。
既に説明したように、ストレージ制御装置10は、“割合Pの部分の内容が一致し、割合1−Pの部分の内容が異なるL個の情報”(図2)のような多数の情報が記憶装置30内に格納される環境で使用されることを想定して開発した装置である。
図2に示したL個の情報が、1個目のデータからMBFに登録するストレージ制御装置(以下、従来装置と表記する。)により記憶装置30に格納された場合と、ストレージ制御装置10により記憶装置30に格納された場合とを、考える。
上記L個の情報の従来装置による記憶装置30への格納時には、新規データが全てMBFに登録される。従って、最初に記憶装置30への格納が指示された情報中の全データと、2〜L番目に記憶装置30への格納が指示された各情報中の割合Pの部分のデータとが、MBFに登録されることになる。そして、2〜L番目に記憶装置30への格納が指示された各情報中の割合Pの部分のデータは、記憶装置30内に書き込まれないので、結局、上記L個の情報の従来装置による格納・管理形態は、図11Aのように表せることになる。尚、この図11Aにおいて、網掛けが付してある部分のデータが、MBFに登録され、記憶装置30内に実際に書き込まれているデータである。また、網掛けが付してない部分のデータが、記憶装置30内に書き込まれていないデータである。
一方、同じL個の情報のストレージ制御装置10による記憶装置30への格納時には、N−1個目までの重複データは、MBF22に登録されることなく、記憶装置30内に書き込まれる。従って、例えば、N=3であった場合、上記L個の情報のストレージ制御装置10による格納・管理形態を、図11Bのように表せることになる。尚、この図11Bにおいて、濃い網掛けが付してある部分のデータが、N−1個目までの重複データであるが故に、MBF22に登録されることなく記憶装置30内に書き込まれたデータである。また、薄い網掛けが付してある部分のデータは、図11Aにおける網掛けが付してある部分のデータと同様に、MBFに登録され、記憶装置30内に実際に書き込まれているデータである。さらに、網掛けが付してない部分のデータは、図11Aにおける網掛けが付してない部分のデータと同様に、記憶装置30内に書き込まれていないデータである。
図11Aと図11Bとを比較すれば明らかなように、N−1個目までの重複データをMBF22に登録せずに記憶装置30内に書き込むようにしておけば、MBFの管理対象となるデータ量(薄い網掛けが付してある部分の総データ量)を少なくすることが出来る。そして、MBFの管理対象となるデータ量が少なければ、MBFのサイズを小さくすることが出来る。そのため、ストレージ制御装置10を、N−1個目までの重複データをMBF22に登録せずに記憶装置30内に書き込む装置として構成(プログラミング)しているのである。
ただし、図11Aと図11Bとから明らかなように、ストレージ制御装置10による情報記憶容量の削減量(記憶装置30への書き込みが省略される総データ量、網掛けが付してない部分の総データ量)は、従来装置のそれよりも少なくなっている。
ストレージ制御装置10による情報記憶容量の削減量を、従来装置のそれと同様のものとするための処理が、後処理である。
以下、後処理の内容を具体的に説明する。
図12に、後処理の流れ図を示す。尚、既に説明したように、後処理部43は、この後処理を、設定されている開始条件(“毎日、X時に開始する”等)が満たされたときに、開始する。
図12に示してあるように、後処理を開始した後処理部43は、まず、ブロックマップ21の最初のレコードに設定されている格納位置情報を取得する(ステップS401)。次いで、後処理部43は、取得した格納位置情報がPBAであるか否かを判断する(ステップS402)。
格納位置情報がPBAではなかった場合(ステップS402;NO)、後処理部43は、ブロックマップ21の全てのレコードを処理したか否かを判断する(ステップS409)。そして、後処理部43は、未処理のレコードが残っていた場合(ステップS409;NO)には、ステップS401に戻って、ブロックマップ21の次のレコード上の格納位置情報を取得する。
一方、格納位置情報がPBAであった場合(ステップS402;YES)、後処理部43は、その格納位置情報(PBA)のデータを処理対象データとして記憶装置30から読み出す(ステップS403)。そして、後処理部43は、処理対象データに対する重複数特定処理を実行する(ステップS404)。
ステップS404にて実行される重複数特定処理は、ステップS205の処理が行われない点を除けば重複数計数処理(図6)と同内容の処理である。そのため、重複数特定処理の詳細説明は省略する。
重複数計数処理を終えた後処理部43は、重複数計数処理により得られた処理対象データの重複数がN未満であるか否かを判断する(ステップS405)。重複数がN未満ではなかった場合(ステップS405;NO)、後処理部43は、処理対象データの重複データ(MBF22により管理されているもの)が実際に記憶装置30内に格納されているか否かを判断する(ステップS406)。このステップで行われる処理は、上記したステップS103(図4)の処理と同じものである。
処理対象データの重複データが実際に記憶装置30内に格納されていた場合(ステップS406;YES)、後処理部43は、ブロックマップ21の処理中レコードの格納位置情報を、格納対象データの検証用ハッシュ値に変更する(ステップS407)。そして、後処理部43は、記憶装置30内の格納対象データを削除(ステップS408)してから、ステップS409の処理(判断)を行う。
一方、重複数がN未満であった場合(ステップS405;YES)、後処理部43は、ステップS407及びS408の処理を行うことなく、ステップS408の処理(判断)を行う。また、処理対象データの重複データが記憶装置30内に格納されていなかった場合(ステップS406;NO)も、後処理部43は、ステップS407及びS408の処理を行うことなく、ステップS408の処理を行う。
そして、後処理部43は、ブロックマップ21の全てのレコードの処理が完了したとき(ステップS409;YES)に、後処理を終了する。
以下、この後処理の内容をさらに具体的に説明する。
ストレージ制御装置10による記憶装置30内への情報の格納・管理形態が、図11Bに示したものとなっている状態で、後処理が行われた場合を考える。尚、ストレージ制御装置10のN値は、3であるとする。
この場合、図13に模式的に示したように、各情報の共通部分(割合Pの部分)を構成している各データの重複数は、3となっている。また、各情報の共通部分の固有部分(割合1−Pの部分)を構成している各データの重複数は、1となっている。
そして、濃い網掛けが付してある部分の各データは、N−1個目までの重複データであるが故に、MBF22に登録されることなく記憶装置30内に書き込まれたデータである。すなわち、濃い網掛けが付してある部分の各データの格納位置情報は、PBAとなっている。
従って、共通部分(割合Pの部分)を構成している各データについては、ステップS402で“YES”側への分岐が行われ、ステップS405で“NO”側への分岐が行われる結果として、ステップS407、S408の処理が行われないことになる。
そして、濃い網掛けが付してある共通部分の各データは、N個目の重複データであるが故に(図4参照)、格納位置情報として検証用ハッシュ値を設定したレコードがブロックマップ21に追加されて記憶装置30内に書き込まれたデータである。従って、濃い網掛けが付してある共通部分の各データについては、ステップS402で“NO”側への分岐が行われる結果として、ステップS407、S408の処理が行われないことになる。
網掛けが付していない各共通部分の各データも、その格納時に、格納位置情報として検証用ハッシュ値を設定したレコードがブロックマップ21に追加されたデータである。従って、網掛けが付していない共通部分の各データについても、ステップS407、S408の処理が行われない。
そして、ステップS407及び408では、ステップS406等の判断により処理対象とされたデータに関するレコードの格納位置情報を当該データの検証用ハッシュ値に変更する処理と、当該データを記憶装置30から削除する処理とが行われる。
従って、情報の格納・管理形態が図13(図11B)に示したものとなっている状態で、後処理が行われた場合、図14に示したように、N(図14では、“3”)個、書き込まれている重畳データ中の1〜Nー1個目の重畳データを、それらの読出が不可能にならない形で、記憶装置30から削除できることになる。
そして、図14の右側に示してある形態でL個の情報が格納・管理されている場合における情報記憶容量の削減量は、従来装置により図11Aに示してある形態で同じL個の情報が格納・管理されている場合の削減量と等しい。また、既に説明したように、N−1個目までの重複データをMBF22に登録せずに記憶装置30内に書き込むようにしておけば、MBF22のサイズ、すなわち、管理データ量を、小さく(少なく)することが出来る。
そのため、図15に示してあるように、上記内容の重複除去(図15では拡張重複除去)の、単位管理データ量当たりの情報記憶容量の削減量(“削減量/管理データ量”)は、従来装置による通常重複除去のそれよりも大きくなる。従って、ストレージ制御装置10は、同じ管理データ量の従来装置よりも情報記憶容量の削減量が大きな装置や、従来装置と情報記憶容量の削減量が等しく、管理データ量が従来装置よりも少ない装置となっていると言うことが出来る。
《変形形態》
上記したストレージ制御装置10は、各種の変形が行えるものである。例えば、ストレージ制御装置10を、MBF22の代わりに、通常のBFが用いられ、ブロックマップ21及びm個のハッシュログ23の代わりに、LBA、PBA、検証用ハッシュ値間の対応関係を管理するためのテーブルが用いられた装置に変形することが出来る。ただし、そのように変形した場合、格納対象データの重複データの有無の判定時に、m個のハッシュログ23に相当する当該テーブルから格納対象データの検証用ハッシュ値と同じ検証用ハッシュ値を検索することになる。そして、上記構成(MBF22、ブロックマップ21及びm個のハッシュログ23を使用する構成)を採用しておけば、より少ない量のデータ(1個のハッシュログ23)からの検索で所望の情報を得ることが出来る。従って、ストレージ制御装置10には、上記構成を採用しておくことが望ましい。
後処理により削除されるデータは、記憶装置30内から削除しても同内容のデータが記憶装置30内に残るデータでありさえすれば良い。従って、後処理を、図13における1番目の情報の共通部分を残し、2,3番目の共通部分を削除する処理とすることも出来る。ただし、後処理をそのような処理とする場合、処理内容が複雑にならざるを得ない。そのため、後処理は、上記したように、MBF22によって管理されているデータを残す処理としておくことが好ましい。
また、後処理を、ブロックマップ21の一部のレコードを処理対象とする処理に変形し、後処理部43を、処理対象をレコードを変更しなから、適宜、後処理を行うユニットに変形することも出来る。
また、格納処理(図4)のステップS105〜S108が行われる度に、後処理相当の処理(以下、格納毎後処理と表記する)が行われるようにしておくことも出来る。ここで、格納毎後処理とは、ステップS105の処理により書き込まれた格納対象データの重複データを検索して記憶装置30内から削除し、削除データの読出時に格納対象データが読み出されるようにブロックマップ21の内容を更新する処理のことである。ただし、上記したブロックマップ21では、格納対象データの重複データを簡単に検索することが出来ない。そのため、格納処理のステップS105〜S108が行われる度に、格納毎後処理が行われるようにする場合には、ブロックマップ21を、各レコードに検証用ハッシュ値が記憶されるものとしておくことが望ましい。
そのようなブロックマップ21としては、LBAフィールドと、検証用ハッシュ値フィールドと、N−1番目までの格納対象データである場合にPBAが設定されるPBAフィールドとを有するブロックマップを例示できる。PBAフィールドの代わりに、N−1番目までの格納対象データであるか否かを示すフラグを記憶するためのフラグフィールドを設けておくことも出来る。尚、LBAフィールドと、検証用ハッシュ値フィールドと、PBA/フラグフィールドとを有するブロックマップ21は、格納処理のステップS105〜S108が行われる度に格納毎後処理が行われるようにしない場合にも採用することも出来る。
N−1番目までの格納対象データであるか否かを示すフラグを、記憶装置30内に書き込む各データの先頭等に付加しておくことも出来る。具体的には、ブロックサイズを、N−1番目までの格納対象データであるか否かを示すフラグを、記憶できるよう大きくしておくと共に、ステップS105及びS110(図4)の処理を、格納対象データがフラグと共に書き込まれる処理としておく。さらに、ステップS306(図10)の処理を、記憶装置30(ストレージ)から読み出したデータのフラグを取り除いた部分を読込対象データとして取り扱う処理としておく。そのようにしておけば、後処理(図12)を、ブロ
ックマップ21から情報から読み出ことなくN−1番目までの格納対象データであるか否かを判定して重複除去を行う処理とすることができる。より具体的には、後処理を、記憶装置30から順々にデータを読み出し、N−1番目までの格納対象データであるか否かを示すフラグが付けられているデータに対してステップS404以降の処理が行われる処理とすることができる。
ストレージ制御装置10を、専用の装置や、記憶装置30と一体化された装置に変形することも出来る。ストレージ制御装置10を、論理ブロックアドレスでアクセスすべき記憶装置30(内部で論理ブロックアドレスが物理ブロックアドレスに変換される記憶装置30)に接続して使用する装置に変形することも出来る。尚、この変形は、PBAの代わりに記憶装置30のLBAが使用されるようにするだけで実現できる。
重複数カウンタ20を、幾つかのBF以外のもの、例えば、検証用ハッシュ値と重複数とを記憶するテーブル、に変形することも出来る。また、ストレージ制御プログラム18を、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)等の可搬
型記録媒体に記録して配布することが出来る。
以上、開示した技術に関し、更に以下の付記を開示する。
(付記1)
記憶装置を制御するストレージ制御装置において、
入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを保持する保持部と、
前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納し、前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納し、前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行わない格納処理部と、
前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除する後処理部と、
を有することを特徴とするストレージ制御装置。
(付記2)
前記格納処理部はさらに、
前記格納対象データを前記記憶装置内に格納する場合、格納した前記格納対象データを読み出せるように前記対応関係情報を更新することを特徴とする付記1記載のストレージ制御装置。
(付記3)
Nが、2以上の値であり、
前記重複数管理情報は、
第1のブルームフィルタから第NのブルームフィルタまでのN個のブルームフィルタを含み、
前記格納処理部は、
前記格納対象データが前記第1のブルームフィルタに登録されていないデータであった場合に、前記格納対象データが、前記重複数が0の前記第1のデータ種別であると判別し、
前記格納対象データが前記第1のブルームフィルタから第K(1≦K<N−1)のブルームフィルタまでのK個のブルームフィルタに登録されており、且つ、第K+1のブルームフィルタに登録されていないデータであった場合に、前記格納対象データが、前記重複数がKの前記第1のデータ種別であると判別し、
前記格納対象データが、前記第1のブルームフィルタから第N−1のブルームフィルタまでのN−1個のブルームフィルタに登録されており、且つ、前記第Nのブルームフィルタに登録されていないデータであった場合に、前記格納対象データが前記第2のデータ種別であると判別し、
前記格納対象データが、前記第1乃至第Nのブルームフィルタの全てに登録されており、且つ、前記フィルタ情報の管理対象となっているデータであった場合に、前記格納対象データが前記第3のデータ種別であると判別し、
重複数がJ(1≦J<N)の前記第1のデータ種別である前記格納対象データの重複数を1だけ増分する際、前記格納対象データを前記第J+1のブルームフィルタに登録する
ことを特徴とする付記1に記載のストレージ制御装置。
(付記4)
Nが、1であり、
前記重複数管理情報が、1つのブルームフィルタであり、
前記格納処理部は、
前記格納対象データが前記重複数管理情報に登録されていないか登録されているかを判断することより、前記格納対象データが、重複数が0の前記第1のデータ種別であるか否かを判別し、
前記格納対象データが前記第1のデータ種別ではないと判別した場合には、さらに、前記格納対象データが前記フィルタ情報の管理対象となっているか否かを判断することにより、前記格納対象データが、重複数が1の前記第2のデータ種別であるか、前記第3のデータ種別であるかを判別し、
前記格納対象データの重複数を1だけ増分する際、前記格納対象データを前記重複数管理情報に登録する
ことを特徴とする付記1に記載のストレージ制御装置。
(付記5)
前記後処理部は、
前記格納処理部により前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納する処理が行われる度に、行われた当該処理で前記記憶装置内に書き込まれた前記格納対象データと同内容の、重複数がN未満ではないことを前記重複数管理情報が示しているデータを、前記削除可データとして取り扱う
ことを特徴とする付記1から4のいずれか一項に記載のストレージ制御装置。
(付記6)
前記対応関係情報は、
或るデータに関する前記第1のアドレスと、当該データに関する前記第2のアドレス、又は、当該データについての、当該データから所定アルゴリズムにて算出されたハッシュ値である検証用ハッシュ値とが設定されたレコードを複数個記憶できるマップテーブルと、
前記記憶装置内の互いに異なるデータ記憶領域に対応づけられたm(≧2)個のログテーブルであって、それぞれ、或るデータについての前記検証用ハッシュ値と当該データが
書き込まれている前記記憶装置の単位記憶領域の前記第2のアドレスとが設定されたレコードを複数個記憶できるm個のログテーブルと、を含み、
前記フィルタ情報は、
前記m個のログテーブルに対応づけられたm個の前記データ記憶領域の中の、互いに異なる前記データ記憶領域に対応づけられたm個のブルームフィルタを、含み
前記格納処理部は、
前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記格納対象データに関する前記第1種アドレスと前記格納対象データが書き込まれた単位記憶領域の前記第2のアドレスとが設定されたレコードを前記マップテーブルに追加し、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを、前記m個のブルームフィルタの中の、前記格納対象データが書き込まれた単位記憶領域を含む前記データ記憶領域に対応づけられているブルームフィルタに登録し、前記格納対象データに関する前記第1種アドレスと前記格納対象データについての前記検証用ハッシュ値とを設定したレコードを前記マップテーブルに追加し、前記格納対象データが書き込まれた単位記憶領域を含む前記データ記憶領域に対応づけられている前記ログテーブルに前記格納対象データについての前記検証用ハッシュ値と前記格納対象データが書き込まれた当該単位記憶領域の前記第2のアドレスとが設定されたレコードを追加し、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データに関する第1種アドレスと前記格納対象データについての前記検証用ハッシュ値とを設定したレコードを前記マップテーブルに追加する
ことを特徴とする付記1から5のいずれか一項に記載のストレージ制御装置。
(付記7)
前記後処理部は、
前記マップテーブルに前記第2のアドレスが設定されたレコードが記憶されており、且つ、重複数がN未満ではないことを前記重複数管理情報が示しているデータを、前記削除可データとして特定する
ことを特徴とする付記6に記載のストレージ制御装置。
(付記8)
前記フィルタ情報が、
前記m個のブルームフィルタを、最下段のブルームフィルタとして含む多段ブルームフィルタである
ことを特徴とする付記6又は7に記載のストレージ制御装置。
(付記9)
前記後処理部は、
設定されている条件が満たされたときに、前記削除可データが特定できなくなるまで、前記削除処理を繰り返す
ことを特徴とする付記1から4のいずれか一項に記載のストレージ制御装置。
(付記10)
記憶装置を制御するストレージ制御装置の制御方法において、
前記ストレージ制御装置が、
入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを、前
記ストレージ制御装置が有する保持部に保持し、
前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納し、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納し、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行なわず、
前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除する
ことを特徴とするストレージ制御装置の制御方法。
(付記11)
記憶装置を制御するストレージ制御装置の制御プログラムにおいて、
前記ストレージ制御装置に、
入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを、前記ストレージ制御装置が有する保持部に保持させ、
前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納させ、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納させ、
前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行なわさせず、
前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除させる
ことを特徴とするストレージ制御装置の制御プログラム。
10 ストレージ制御装置
11 CPU
12 RAM
13 HDD
18 ストレージ制御プログラム
20 重複数カウンタ
21 ブロックマップ
22 MBF
23 第1〜第mハッシュログ
30 記憶装置
31 ブルームフィルタ
41 格納処理部
42 読込処理部
43 後処理部
50 コンピュータ
100 ユーザ端末

Claims (10)

  1. 記憶装置を制御するストレージ制御装置において、
    入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを保持する保持部と、
    前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納し、前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納し、前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行わない格納処理部と、
    前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除する後処理部と、
    を有することを特徴とするストレージ制御装置。
  2. 前記格納処理部はさらに、
    前記格納対象データを前記記憶装置内に格納する場合、格納した前記格納対象データを読み出せるように前記対応関係情報を更新する
    ことを特徴とする請求項1記載のストレージ制御装置。
  3. Nが、2以上の値であり、
    前記重複数管理情報は、
    第1のブルームフィルタから第NのブルームフィルタまでのN個のブルームフィルタを含み、
    前記格納処理部は、
    前記格納対象データが前記第1のブルームフィルタに登録されていないデータであった場合に、前記格納対象データが、前記重複数が0の前記第1のデータ種別であると判別し、
    前記格納対象データが前記第1のブルームフィルタから第K(1≦K<N−1)のブルームフィルタまでのK個のブルームフィルタに登録されており、且つ、第K+1のブルームフィルタに登録されていないデータであった場合に、前記格納対象データが、前記重複数がKの前記第1のデータ種別であると判別し、
    前記格納対象データが、前記第1のブルームフィルタから第N−1のブルームフィルタまでのN−1個のブルームフィルタに登録されており、且つ、前記第Nのブルームフィルタに登録されていないデータであった場合に、前記格納対象データが前記第2のデータ種別であると判別し、
    前記格納対象データが、前記第1乃至第Nのブルームフィルタの全てに登録されており、且つ、前記フィルタ情報の管理対象となっているデータであった場合に、前記格納対象データが前記第3のデータ種別であると判別し、
    重複数がJ(1≦J<N)の前記第1のデータ種別である前記格納対象データの重複数を1だけ増分する際、前記格納対象データを前記第J+1のブルームフィルタに登録する
    ことを特徴とする請求項1に記載のストレージ制御装置。
  4. Nが、1であり、
    前記重複数管理情報が、1つのブルームフィルタであり、
    前記格納処理部は、
    前記格納対象データが前記重複数管理情報に登録されていないか登録されているかを判断することより、前記格納対象データが、重複数が0の前記第1のデータ種別であるか否かを判別し、
    前記格納対象データが前記第1のデータ種別ではないと判別した場合には、さらに、前記格納対象データが前記フィルタ情報の管理対象となっているか否かを判断することにより、前記格納対象データが、重複数が1の前記第2のデータ種別であるか、前記第3のデータ種別であるかを判別し、
    前記格納対象データの重複数を1だけ増分する際、前記格納対象データを前記重複数管理情報に登録する
    ことを特徴とする請求項1に記載のストレージ制御装置。
  5. 前記後処理部は、
    前記格納処理部により前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納する処理が行われる度に、行われた当該処理で前記記憶装置内に書き込まれた前記格納対象データと同内容の、重複数がN未満ではないことを前記重複数管理情報が示しているデータを、前記削除可データとして取り扱う
    ことを特徴とする請求項1から4のいずれか一項に記載のストレージ制御装置。
  6. 前記対応関係情報は、
    或るデータに関する前記第1のアドレスと、当該データに関する前記第2のアドレス、又は、当該データについての、当該データから所定アルゴリズムにて算出されたハッシュ値である検証用ハッシュ値とが設定されたレコードを複数個記憶できるマップテーブルと、
    前記記憶装置内の互いに異なるデータ記憶領域に対応づけられたm(≧2)個のログテーブルであって、それぞれ、或るデータについての前記検証用ハッシュ値と当該データが書き込まれている前記記憶装置の単位記憶領域の前記第2のアドレスとが設定されたレコードを複数個記憶できるm個のログテーブルと、を含み、
    前記フィルタ情報は、
    前記m個のログテーブルに対応づけられたm個の前記データ記憶領域の中の、互いに異
    なる前記データ記憶領域に対応づけられたm個のブルームフィルタを、含み
    前記格納処理部は、
    前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記格納対象データに関する前記第1アドレスと前記格納対象データが書き込まれた単位記憶領域の前記第2のアドレスとが設定されたレコードを前記マップテーブルに追加し、
    前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを、前記m個のブルームフィルタの中の、前記格納対象データが書き込まれた単位記憶領域を含む前記データ記憶領域に対応づけられているブルームフィルタに登録し、前記格納対象データに関する前記第1アドレスと前記格納対象データについての前記検証用ハッシュ値とを設定したレコードを前記マップテーブルに追加し、前記格納対象データが書き込まれた単位記憶領域を含む前記データ記憶領域に対応づけられている前記ログテーブルに前記格納対象データについての前記検証用ハッシュ値と前記格納対象データが書き込まれた当該単位記憶領域の前記第2のアドレスとが設定されたレコードを追加し、
    前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データに関する第1アドレスと前記格納対象データについての前記検証用ハッシュ値とを設定したレコードを前記マップテーブルに追加する
    ことを特徴とする請求項1から5のいずれか一項に記載のストレージ制御装置。
  7. 前記後処理部は、
    前記マップテーブルに前記第2のアドレスが設定されたレコードが記憶されており、且つ、重複数がN未満ではないことを前記重複数管理情報が示しているデータを、前記削除可データとして特定する
    ことを特徴とする請求項6に記載のストレージ制御装置。
  8. 前記フィルタ情報が、
    前記m個のブルームフィルタを、最下段のブルームフィルタとして含む多段ブルームフィルタである
    ことを特徴とする請求項6又は7に記載のストレージ制御装置。
  9. 記憶装置を制御するストレージ制御装置の制御方法において、
    前記ストレージ制御装置が、
    入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを、前記ストレージ制御装置が有する保持部に保持し、
    前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納し、
    前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納し、
    前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行なわず、
    前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除する
    ことを特徴とするストレージ制御装置の制御方法。
  10. 記憶装置を制御するストレージ制御装置の制御プログラムにおいて、
    前記ストレージ制御装置に、
    入力された第1のアドレスに対応するハッシュ値と、前記記憶装置のアドレスである第2のアドレスとの対応関係を管理する対応関係情報と、ブルームフィルタを含むフィルタ情報と、前記記憶装置に格納された各データの重複数を管理する重複数管理情報とを、前記ストレージ制御装置が有する保持部に保持させ、
    前記記憶装置に格納が指示された格納対象データが、前記重複数管理情報が示す重複数がN(Nは自然数)未満のデータである第1のデータ種別である場合、前記重複数を1だけ増分し、前記格納対象データを前記フィルタ情報に登録することなく前記記憶装置に格納させ、
    前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報に登録されていないデータである第2のデータ種別である場合、前記格納対象データを前記フィルタ情報に登録するとともに前記記憶装置内に格納させ、
    前記重複数管理情報が示している重複数がN以上、且つ、前記フィルタ情報の管理対象のデータである第3のデータ種別である場合、前記格納対象データの前記フィルタ情報への登録及び前記格納対象データの前記記憶装置内への格納のいずれも行なわさせず、
    前記記憶装置に格納されたデータの中から特定した前記記憶装置から削除しても同内容のデータが前記記憶装置内に残る削除可能データを、前記記憶装置から削除させる
    ことを特徴とするストレージ制御装置の制御プログラム。
JP2013074642A 2013-03-29 2013-03-29 ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム Active JP6089890B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013074642A JP6089890B2 (ja) 2013-03-29 2013-03-29 ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム
PCT/JP2014/058352 WO2014157243A1 (ja) 2013-03-29 2014-03-25 ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム
US14/861,159 US10007436B2 (en) 2013-03-29 2015-09-22 Storage control apparatus and control method of storage control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013074642A JP6089890B2 (ja) 2013-03-29 2013-03-29 ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2014199573A JP2014199573A (ja) 2014-10-23
JP6089890B2 true JP6089890B2 (ja) 2017-03-08

Family

ID=51624212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013074642A Active JP6089890B2 (ja) 2013-03-29 2013-03-29 ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム

Country Status (3)

Country Link
US (1) US10007436B2 (ja)
JP (1) JP6089890B2 (ja)
WO (1) WO2014157243A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6685334B2 (ja) * 2016-02-15 2020-04-22 株式会社日立製作所 ストレージ装置
CN108604165B (zh) * 2016-02-29 2021-09-24 株式会社日立制作所 存储装置
JP6805816B2 (ja) * 2016-12-27 2020-12-23 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
US10635654B2 (en) * 2017-06-12 2020-04-28 Samsung Electronics Co., Ltd. Data journaling for large solid state storage devices with low DRAM/SRAM
US11494755B2 (en) * 2017-08-21 2022-11-08 First Performance Corporation Systems and methods for providing low-latency access to cardholder location data and determining merchant locations and types
JP6916442B2 (ja) 2017-11-21 2021-08-11 富士通株式会社 データ処理装置およびデータ処理プログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934802B2 (en) * 2002-04-19 2005-08-23 Seagate Technology Llc Band detection and performance optimization for a data storage device
US6751707B2 (en) * 2002-05-06 2004-06-15 Sony Computer Entertainment Inc. Methods and apparatus for controlling a cache memory
US7290092B2 (en) * 2003-12-10 2007-10-30 International Business Machines Corporation Runtime register allocator
US7836226B2 (en) * 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US8527482B2 (en) * 2008-06-06 2013-09-03 Chrysalis Storage, Llc Method for reducing redundancy between two or more datasets
JP5127670B2 (ja) 2008-11-04 2013-01-23 三菱電機株式会社 フィルタ装置及びフィルタ方法及びプログラム
US8200857B2 (en) * 2009-11-30 2012-06-12 Lsi Corporation Coalescing multiple contexts into a single data transfer in a media controller architecture
JP4838878B2 (ja) * 2009-12-04 2011-12-14 富士通株式会社 データ管理プログラム、データ管理装置、およびデータ管理方法
JP5359941B2 (ja) 2010-03-10 2013-12-04 富士通株式会社 データ管理装置及びデータ管理方法
JP5664467B2 (ja) * 2011-06-13 2015-02-04 富士通株式会社 検索プログラム、検索方法、検索装置、およびノード
JP6179093B2 (ja) * 2012-12-03 2017-08-16 富士通株式会社 演算処理装置、演算処理方法
JP6098301B2 (ja) * 2013-03-29 2017-03-22 富士通株式会社 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Also Published As

Publication number Publication date
WO2014157243A1 (ja) 2014-10-02
JP2014199573A (ja) 2014-10-23
US20160011789A1 (en) 2016-01-14
US10007436B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
JP6089890B2 (ja) ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム
US10402091B1 (en) Managing data in log-structured storage systems
CN108459826B (zh) 一种处理io请求的方法及装置
US8838875B2 (en) Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon
US8856469B2 (en) Apparatus and method for logging optimization using non-volatile memory
JP6098301B2 (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
JP5881859B2 (ja) ストレージ装置
CN105843551B (zh) 高性能和大容量储存重复删除中的数据完整性和损耗电阻
KR101813786B1 (ko) Ssd 상의 기록-시-복사를 위한 시스템 및 방법
US11782632B2 (en) Selective erasure of data in a SSD
US8572309B2 (en) Apparatus and method to protect metadata against unexpected power down
US10108503B2 (en) Methods and systems for updating a recovery sequence map
WO2015145647A1 (ja) ストレージ装置とデータ処理方法及びストレージシステム
KR101933766B1 (ko) 플래시 메모리 플러싱을 개선하는 방법 및 시스템
JP6161721B2 (ja) ホストからストレージ装置への削除されたデータの示唆
JP6724534B2 (ja) 情報処理装置、重複除去プログラム、及び重複除去方法
US20160110107A1 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
JP5821744B2 (ja) データ有無判定装置、データ有無判定方法及びデータ有無判定プログラム
KR20210076828A (ko) 키-값 장치 및 이의 블록 인터페이스 에뮬레이션 방법
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
CN109408416B (zh) 一种地址映射表项页管理方法及装置
KR101153688B1 (ko) 데이터 페이지들에 대해 무효화 기회를 부여하는 방법 및 이를 위한 낸드 플래시 메모리 시스템
US20110153674A1 (en) Data storage including storing of page identity and logical relationships between pages
KR101379161B1 (ko) 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템
KR101341995B1 (ko) 공유 데이터 저장소 관리 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6089890

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150