JPWO2015121938A1 - データ管理装置及び方法 - Google Patents

データ管理装置及び方法 Download PDF

Info

Publication number
JPWO2015121938A1
JPWO2015121938A1 JP2015562598A JP2015562598A JPWO2015121938A1 JP WO2015121938 A1 JPWO2015121938 A1 JP WO2015121938A1 JP 2015562598 A JP2015562598 A JP 2015562598A JP 2015562598 A JP2015562598 A JP 2015562598A JP WO2015121938 A1 JPWO2015121938 A1 JP WO2015121938A1
Authority
JP
Japan
Prior art keywords
file
data
key
management unit
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015562598A
Other languages
English (en)
Other versions
JP6140311B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2015121938A1 publication Critical patent/JPWO2015121938A1/ja
Application granted granted Critical
Publication of JP6140311B2 publication Critical patent/JP6140311B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/0643Management of files
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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

Abstract

【課題】ガベージコレクションの発生を低減し、SSDへのデータ書込み性能の低下を防止するデータ管理装置及び方法を提案する。【解決手段】SSDに保存したキー・バリューデータを管理するデータ管理部と、データ管理部からの要求に応じてSSDの記憶領域上に所定サイズのファイルを適宜作成し、作成したファイルを管理するファイル管理部とをデータ管理装置に設け、ファイル管理部がSSDにおけるブロックの整数倍のサイズでファイルを作成し、データ管理部が、保存対象のキー・バリューデータをファイルに追記的に書き込むようファイル管理部に要求すると共に、各ファイルにおける有効なキー・バリューデータの数を管理し、有効なキー・バリューデータが存在しなくなったファイルについては、当該ファイルを削除するようファイル管理部に要求するようにした。

Description

本発明は、データ管理装置及び方法に関し、特にKVS(Key-Value Store)方式によりデータをSSD(Solid State Drive)に格納して管理するデータ管理装置に適用して好適なものである。
近年、記憶装置としてSSDが広く用いられるようになってきた。SSDは、フラッシュメモリ等の半導体メモリを記憶媒体として利用した記憶装置であり、ハードディスク装置と比べてアクセス性能及び省電力性に優れ、かつ振動及び衝撃に強いという利点がある。
SSDでは、記憶領域が所定サイズ(例えば2〔MB〕)のブロックと呼ばれる単位領域に分けて管理される。この場合、SSDへのデータの書き込みは、ブロックよりもサイズが小さい(例えば4〔kB〕)ページと呼ばれる単位で行われるが、書き込まれたデータの消去はブロック単位でしか行うことができない。
このためSSDでは、あるブロックに書き込まれたデータの更新又は消去を、そのブロックのデータを一旦他のブロックに移動させ、移動元のブロックに格納されているデータをすべて消去する、いわゆるガベージコレクションと呼ばれる処理により行っている。
一方、近年、データの保存・管理方式の1つとして、KVSと呼ばれる方式が注目されている。KVSは、保存対象のデータ(値:value)に対してキー(Key)と呼ばれる固有の文字列や数値を付加し、データをそのキーとセットで保存する方式であり、対応するキーを指定することで所望するデータを記憶装置から読み出すことができる。なお、以下においては、保存対象のデータをValue(バリュー)、キーをKey、ValueにKeyが付加されたデータをKey-Value(キー・バリュー)データと呼ぶものとする。
下記特許文献1には、SSD向けのKVSによるデータ管理方式として、ログ構造の追記式でデータをSSDに格納する方式が開示されている。このデータ管理方式によれば、SSDの特性であるランダムアクセスによる性能の低下を軽減できるという利点がある。
米国特許公開第2012/0265924号明細書
ところが、かかる特許文献1に開示されたデータ管理方式によると、SSDに対するデータの書き込みを続け、書込み処理がSSDの記憶領域を周回し、既にデータが格納されているブロックにデータを書き込む必要が生じた場合に上述のガベージコレクションが発生し、その分書込み性能が低下するという問題があった。
一方、KVS機能が搭載されたサーバ装置の中には、Key-Valueデータを一時的にサーバ装置内のメモリ上に保持し、メモリに保持したKey-Valueデータを所定のタイミングでハードディスク装置やSSD等の記憶装置に書き込む構成のものがある。
このようなサーバ装置では、装置がダウンした場合に、メモリに保持しているKey-Valueデータのうちの未だ記憶装置に書き込んでいないKey-Valueデータをロストするおそれがあるため、当該Key-Valueデータをメモリへの書き込みと同期して記憶装置に書き込むなどしてデータのロストを防止する必要がある。
従って、かかるサーバ装置における記憶装置としてSSDを適用するに際しては、上述のようなガベージコレクションに起因するSSDのデータ書込み特性の低下の発生をできる限り低減し得る工夫が必要となる。
本発明は以上の点を考慮してなされたもので、ガベージコレクションの発生を低減し、SSDへのデータ書込み性能の低下を防止するデータ管理装置及び方法を提案しようとするものである。
かかる課題を解決するため本発明においては、保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理装置において、前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部とを設け、前記ファイルは、前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、前記データ管理部が、保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理し、有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求するようにした。
また本発明においては、保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理方法において、前記データ管理装置は、前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部とを有し、前記ファイルは、前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、前記データ管理部が、保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理する第1のステップと、前記データ管理部が、有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求する第2のステップとを設けるようにした。
かかるデータ管理装置及びデータ管理方法によれば、ファイルがSSDのブロックの整数倍のファイルサイズを有するため、有効なキー・バリューデータが存在しなくなったファイルを削除する際に、SSDにおいてガベージコレクションが発生しない。また本データ管理装置及びデータ管理方法によれば、有効なキー・バリューデータが存在しなくなったファイルが逐次削除されるためキー・バリューデータの書き込みがSSDの記憶領域を周回することに起因するガベージコレクションの発生を低減させることができる。
本発明によれば、SSDにおけるガベージコレクションの発生を極力抑えることができ、かくしてガベージコレクションの発生を低減し、SSDへのデータ書込み性能の低下を防止するデータ管理装置及び方法を実現できる。
第1〜第5の実施の形態によるデータ管理装置のハードウェア構成を示すブロック図である。 第1〜第5の実施の形態によるデータ管理装置のKVS機能に関する論理構成を示すブロック図である。 Key-Value管理テーブル及びファイル管理テーブルの構成と、SSDに格納されるKey-Valueデータのデータフォーマットとを示す概念図である。 第1の実施の形態によるデータ書込み処理の処理手順を示すフローチャートである。 第2の実施の形態によるKey-Value管理テーブルの構成を示す概念図である。 第2の実施の形態によるファイル管理テーブルの構成を示す概念図である。 第2〜第5の実施の形態によるデータ書込み処理の処理手順を示すフローチャートである。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態によるデータ管理装置の構成
図1において、1は全体として本実施の形態によるデータ管理装置を示す。このデータ管理装置1は、パーソナルコンピュータや、ワークステーション又はメインフレームなどから構成されるコンピュータ装置であり、内部バス2を介して相互に接続されたCPU(Central Processing Unit)3、メモリ4、SSD5、通信制御部6、入力装置7及び表示装置8を備えて構成される。
CPU3は、データ管理装置1全体の動作制御を司るプロセッサである。またメモリ4は、主記憶装置として用いられる半導体メモリであり、CPU3のワークメモリとして利用されるほか、SSD5に読書きするKey-Valueデータを一時的に記憶するキャッシュメモリとしても用いられる。
SSD5は、フラッシュメモリ等の不揮発性の半導体メモリからなる二次記憶装置であり、各種プログラム及び各種データを長期的に保存するために利用される。通信制御部6は、例えばNIC(Network Interface Card)から構成され、外部機器との通信時におけるプロトコル制御を行う。
入力装置7は、例えばキーボード及びマウスなどから構成され、ユーザがデータ管理装置1に対する各種の操作入力を行う際に利用される。また表示装置8は、液晶ディスプレイなどから構成され、各種画面や各種情報を表示するために利用される。
図2は、本データ管理装置1に搭載されたKVS機能に関するデータ管理装置1の論理構成を示す。この図2から明らかなように、データ管理装置1は、機能としてKVS10及びファイルシステム11を備えて構成される。
KVS10は、CPU3がメモリ4に格納された図示しないKVSプログラムを実行することにより具現化される機能である。KVS10は、SSD5に保存したKey-ValueデータDAを管理する機能を有するデータ管理部12を備える。データ管理部12は、入力装置7を介して入力されたユーザからの書込み要求に応じて、要求されたKey-ValueデータDAのSSD5への書き込みをファイルシステム11に要求すると共に、SSD5における当該Key-Valueデータの保存場所を管理する。またデータ管理部12は、ユーザからのKeyを指定したValueの読出し要求に応じて、指定されたKeyに対応するValueのSSD5上の保存場所を特定し、当該ValueのSSD5からの読み出しをファイルシステム11に要求する。
ファイルシステム11は、CPU3がメモリ4に格納された図示しないファイルシステムプログラムを実行することにより具現化される機能であり、ファイル管理部14を備える。ファイル管理部14は、KVS10のデータ管理部12からの要求に応じてSSD5の記憶領域15上に所定サイズのファイルを適宜作成し、作成したファイルを管理する。そしてファイル管理部14は、データ管理部12からの要求に応じて、要求されたKey-ValueデータDAをファイルFLに書き込むようにしてSSD5に保存する。
SSD5は、フラッシュメモリ等の半導体メモリが提供する記憶領域15と、記憶領域15に対するデータの読み書きを制御するコントローラ16とから構成される。記憶領域15は、コントローラ16により、所定サイズの複数のブロックBLに分けて管理されると共に、各ブロックBLはさらに複数のページPGに分割されて管理される。上述のようにSSD5に対するデータの書き込みはページPG単位で行われ、SSD5からのデータの消去はブロックBL単位で行われる。
(1−2)本実施の形態のデータ管理方式
次に、本実施の形態のデータ管理装置1におけるデータ管理方式について説明する。本データ管理装置1は、SSD5の記憶領域15上に当該SSD5のブロックBLの整数倍のファイルサイズを有するファイルFLを作成し、保存対象のKey-ValueデータDAを追記的にこのファイルFLに書き込むと共に、各ファイルFLにおける有効なKey-ValueデータDAの数を管理し、当該有効なKey-ValueデータDAが存在しなくなったファイルFLについては逐次削除する点を特徴の1つとしている。
実際上、本データ管理装置1の場合、KVS10のデータ管理部12は、初期時、ファイルシステム11に対してKey-ValueデータDAを書き込むためのファイルFLの作成を要求する一方、この後、ユーザからの書込み要求があったKey-ValueデータDAについては、そのファイルFLに追記的に書き込むようファイルシステム11のファイル管理部14に要求する。
またデータ管理部12は、かかるファイルFLに新たなKey-ValueデータDAを追記できなくなった場合には、Key-ValueデータDAを書き込むための新たなファイルFLの作成をファイル管理部14に要求する一方、この後、ユーザからの書込み要求があったKey-ValueデータDAについては、その新たなファイルFLに追記的に書き込むようファイル管理部14に要求する。そしてデータ管理部12は、これ以降、同様の処理を繰り返す。
この際、データ管理部12は、更新されたKey-ValueデータDAの更新前のデータや削除されたKey-ValueデータDAについては無効化されたデータとして、無効化されていないKey-ValueデータDA(有効なKey-ValueデータDA)については、どのファイルFLのどの位置に格納されているかをメモリ4(図1)上に作成したデータ管理テーブル13を用いて管理する。
またデータ管理部12は、各ファイルFLに格納されている有効なKeyの数(有効なKey-ValueデータDAの数)及び各ファイルFLの空き容量についても、かかるデータ管理テーブル13を用いて管理する。この場合において、データ管理部12は、新たなファイルFLの作成をファイル管理部14に要求した場合、それまでKey-ValueデータDAの書き込みに利用していたファイルFLについては、その空き容量を「0」として管理する。
そしてデータ管理部12は、空き容量が「0」のファイル(つまり新たなKey-ValueデータDAの書込み先としては使用されなくなったファイル)FLであって、格納されたすべてのKey-ValueデータDAが更新又は削除等により無効化されたファイルFL(つまり有効なKey-Valueデータの数が「0」となったファイルFL)については、そのファイルFLの削除をファイルシステムのファイル管理部14に要求する。
この場合において、本データ管理装置1では、上述のようにかかるファイルFLのサイズはSSD5のブロックBLの整数倍に選定されているため、ファイルシステム11のファイル管理部14がSSD5からファイルFLを削除する際もSSD5においてガベージコレクションは発生しない。また本データ管理装置1では、上述のように有効なKey-Valueデータが存在しなくなったファイルFLを逐次削除するため、Key-ValueデータDAの書き込みがSSD5の記憶領域15を周回することに起因するガベージコレクションの発生を低減させることができる。従って、本データ管理装置1によれば、SSD5におけるガベージコレクションの発生を極力抑えることができる。
図3は、上述したデータ管理テーブル13の構成と、SSD5に格納されたKey-ValueデータDAのデータフォーマットとを示す。この図3の上段に示すように、データ管理テーブル13は、Key-Value管理テーブル20及びファイル管理テーブル21から構成される。
Key-Value管理テーブル20は、Key及びValueの関係を管理するために利用されるテーブルであり、図3に示すように、Key欄20A、ファイル名欄20B及びオフセット欄20Cから構成される。
そしてKey欄20Aには、SSD5に書き込まれた各Key-ValueデータDAにそれぞれ付与されたKeyがそれぞれ格納され、ファイル名欄20Bには、対応するKeyが関連付けられたValueが書き込まれたファイルFLのファイル名が格納される。またオフセット欄20Cには、対応するKeyが関連付けられたValueの対応するファイルFLの先頭からのオフセット量(例えばキロバイト単位)が格納される。
従って、図3の場合、「Key1」というKeyが付与されたKey-ValueデータDAは「File1」というファイルFLの先頭から「128」の位置に格納されており、「Key2」というKeyが付与されたKey-ValueデータDAは「File2」というファイルFLの先頭から「16」の位置に格納されていることが示されている。
またファイル管理テーブル21は、SSD5に格納された各ファイルFLに格納されているKeyの数(正確にはKey-ValueデータDAの数)と、各ファイルFLの空き容量とを管理するために利用されるテーブルであり、ファイル名欄21A、Key数欄21B及び空き容量欄21Cから構成される。
そしてファイル名欄21Aには、SSD5上に作成された各ファイルFLのファイル名がそれぞれ格納され、Key数欄21Bには、対応するファイルFLに格納されている有効なKeyの数(正確には有効なKey-ValueデータDAの数)が格納される。また空き容量欄21Cには、対応するファイルFLの現在の空き容量(例えばメガバイト単位)が格納される。
従って、図3の場合、「File1」というファイルFLについては、有効なKey数(有効なKey-ValueデータDAの数)が「1」、空き容量が「0」であり、「File2」というファイルFLについては、有効なKey数が「2」、空き容量が「32」であることが示されている。
一方、図3の下段に示すように、Key-ValueデータDAは、SSD5の記憶領域15(図2)においてページPG、ひいてはブロックBLを跨がないようにするため、必要に応じてパディングデータPDが付加されてファイルFLに格納される。従って、パディングデータPDのデータサイズは、当該パディングデータPDを付加したKey-ValueデータDAのデータサイズが全体としてSSD5におけるページPGのサイズ(ページサイズ)の直近の整数倍となるように選定される。
例えばKey-ValueデータDAのデータサイズがページサイズの0.8倍の場合、そのKey-ValueデータDAにはページサイズの0.2倍のデータ量を有するパディングデータPDが付加され、Key-ValueデータDAのデータサイズがページサイズの2.3倍の場合、そのKey-ValueデータDAにはページサイズの0.7倍のデータ量を有するパディングデータPDが付加される。
なお図3は、ファイル管理テーブル21の最上段のエントリ(行)と対応する「File1」というファイルFLには、「Key1」というKey及び「Value1」というValueデータからなるKey-ValueデータDAの更新前のデータと、「Key2」というKey及び「Value2」というValueデータからなるKey-ValueデータDAの更新前のデータと、「Key1」というKey及び「Value1」というValueデータからなるKey-ValueデータDAの更新後のデータとが格納されていることを示している場合の一例である。
また図3では、ファイル管理テーブル21の2段目のエントリと対応する「File2」というファイルFLには、「Key3」というKey及び「Value3」というValueデータからなるKey-ValueデータDAと、「Key2」というKey及び「Value2」というValueデータからなるKey-ValueデータDAの更新後のデータとが格納されていたが、「Value2」というKey-ValueデータDAがその後削除(「Deleted」)されたことが示されている。
図4は、Key-ValueデータDAをSSD5上のファイルFLに書き込む際にKVS10のデータ管理部12により実行されるデータ書込み処理の処理手順を示す。データ管理部12は、この図4に示す処理手順に従って、要求されたKey-ValueデータDAをSSD5上の対応するファイルFLに書き込むようファイルシステム11のファイル管理部14に指示を与える。
実際上、データ管理部12は、ユーザからデータ書込み要求及び保存対象のKey-ValueデータDAが与えられると、このデータ書込み処理を開始し、まず、ファイル管理テーブル21(図3)を参照して、現在、Key-ValueデータDAの書込みに使用しているファイル(以下、適宜、これをデータ書込み先ファイルと呼ぶ)FLに、保存対象のKey-ValueデータDAを書き込むだけの空き容量があるかを判断する(SP1)。
そしてデータ管理部12は、この判断で肯定結果を得るとステップSP3に進む。これに対してデータ管理部12は、ステップSP1の判断で否定結果を得ると、ファイル管理テーブル21における現在のデータ書込み先ファイルFLの空き容量を「0」に変更すると共に、新たなデータ書込み先ファイルFLの作成をファイルシステム11のファイル管理部14に要求する(SP2)。
かくしてファイル管理部14は、この要求に応じて、SSD5におけるブロックサイズの整数倍の所定サイズを有するファイルFLをSSD5上に作成する。そしてファイル管理部14は、この後、次のデータ書込み先ファイルFLを作成するまで、このとき作成したファイルFLを新たなデータ書込み先ファイルFLとして取り扱う。
続いて、データ管理部12は、保存対象のKey-ValueデータDA及びそのデータ書込み要求をファイルシステム11のファイル管理部14に送信する(SP3)。かくして、ファイル管理部14は、データ管理部12から与えられたKey-ValueデータDAに対して合計データ量がSSD5のページサイズの直近の整数倍となるようにパディングデータPDを付加した後、このKey-ValueデータDA及びその書込み要求をSSD16のコントローラ16に与えることにより、当該Key-ValueデータDAをデータ書込み先ファイルFLに書き込ませる。
次いで、データ管理部12は、ファイル管理テーブル21におけるデータ書込み先ファイルFLに対応するエントリのKey数欄21B及び空き容量欄21Cを更新する(SP4)。具体的に、データ管理部12は、かかるエントリのKey数欄21Bに格納されているKey数を「1」増加させると共に、空き容量欄21Cに格納されている空き容量を、そのときデータ書込み先ファイルFLに書き込んだKey-ValueデータDAを差し引いた値に更新する。
この後、データ管理部12は、ステップSP3においてデータ書込み先ファイルFLに書き込ませたKey-ValueデータDAがKVS10において新規に追加されたものであるか否かを判断する(SP5)。そしてデータ管理部12は、この判断で肯定結果を得るとステップSP9に進む。
これに対して、ステップSP5の判断で否定結果を得ることは、かかるKey-ValueデータDAの書き込みが既に書き込まれたKey-ValueデータDAの更新であることを意味する。かくして、このときデータ管理部12は、かかるKey-ValueデータDAにおける更新前のKey-ValueデータDAを無効にするため、Key-Value管理テーブル20における対応するエントリを参照して、ファイル管理テーブル21における更新前のKey-ValueデータDAが格納されているファイル(以下、これを更新前データ格納ファイルと呼ぶ)FLと対応するエントリのKey数欄21Bに格納されているKey数を「1」だけ減少させる。
続いて、データ管理部12は、ファイル管理テーブル21を参照して、ステップSP6の処理の結果、更新前データ格納ファイルFL内の有効なKeyの数(有効なKey-ValueデータDAの数)が「0」となり、かつ当該ファイルFLの空き容量が「0」であるか否かを判断する(SP7)。そしてデータ管理部12は、この判断で否定結果を得るとステップSP9に進む。
これに対して、データ管理部12は、ステップSP7の判断で肯定結果を得ると、ファイルシステム11に対してかかる更新前データ格納ファイルFLの削除を要求する(SP8)。
かくして、この要求を受信したファイルシステム11のファイル管理部14は、SSD5のコントローラ16(図2)に対して既存のTRMIコマンドを送信することにより、その更新前データ格納ファイルFLに含まれるすべてのページを無効化するよう指示を与える。また、このTRMIコマンドを受信したSSD5のコントローラ16は、SSD5における対応するページに格納されたKey-Valueデータを消去する。これにより、上述の更新前データ格納ファイルFLがSSD5から削除される。
次いで、データ管理部12は、Key-Value管理テーブル20の内容を更新する(SP9)。具体的に、データ管理部12は、保存対象のKey-ValueデータDAが新規にSSD5に格納された場合には、Key-Value管理テーブル20にそのKey-ValueデータDAを登録する。またデータ管理部12は、そのKey-ValueデータDAの書き込みが、既にSSD5に格納されているKey-ValueデータDAの更新等であった場合には、Key-Value管理テーブル20のエントリのうち、そのKey-ValueデータDAに対応するエントリのファイル名欄20B(図3)に格納されているファイル名や、オフセット欄20C(図3)に格納されているオフセット量を必要に応じて更新する。そしてデータ管理部12は、この後、このデータ書込み処理を終了する。
(1−3)本実施の形態の効果
以上のように本実施の形態のデータ管理装置1では、SSD5の記憶領域15上にブロックの整数倍のファイルサイズを有するファイルFLを作成し、当該ファイルFLに保存対象のKey-ValueデータDAを追記的に書き込む一方、各ファイルFLにおける有効なKeyの数(有効なKey-ValueデータDAの数)を管理し、有効なKeyの数が「0」となったファイルFLについては逐次削除するため、SSD5におけるガベージコレクションの発生を極力抑えることができる。かくするにつき、本データ管理装置1によれば、ガベージコレクションの発生を低減し、SSD5へのデータ書込み性能の低下を防止することができる。
(2)第2の実施の形態
上述した第1の実施の形態によるデータ管理装置1では、上述のようにデータ書込み先ファイルFLに追記的にKey-ValueデータDAを書き込み、ガベージコレクションの発生を抑制するため、更新又は削除により無効化されたKey-ValueデータDAについても、そのKey-ValueデータDA単独での更新前データ格納ファイルFLからの削除は行わない。このため、第1の実施の形態によるデータ管理装置1では、無効化されたKey-ValueデータDAを多く含んだファイルFLがSSD5内に存在する可能性があり、SSD5の利用効率が低くなるおそれがあるという課題がある。
そこで、本実施の形態のデータ管理装置30では、SSD5に格納されているKey-ValueデータDAが更新された場合、当該Key-ValueデータDAの更新前のデータが書き込まれている更新前データ格納ファイルFLにおける有効なKey-ValueデータDAの合計データ量が予め定められた閾値(例えばファイルサイズの50〔%〕)よりも小さくなったときには、その更新前データ格納ファイルFLにおける有効なKey-ValueデータDAをすべてデータ書込み先ファイルFLにコピーした後に、そのファイルFLをSSD5から削除する。
図5は、このようなデータ管理装置30において、図3について上述した第1の実施の形態のKey-Value管理テーブル20に代えて利用される本実施の形態のKey-Value管理テーブル31を示す。このKey-Value管理テーブル31は、Key欄31A、ファイル名欄31B、オフセット欄31C及びデータサイズ欄31Dから構成される。
そしてKey欄31A、ファイル名欄31B及びオフセット欄31Cには、それぞれ第1の実施の形態のKey-Value管理テーブル20のKey欄20A、ファイル名欄20B及びオフセット欄20Cと同様の情報が格納される。またデータサイズ欄31Dには、対応するKey-ValueデータDAのパディングデータPD(図3)を含むデータサイズが格納される。
また図6は、図3について上述した第1の実施の形態のファイル管理テーブル21に代えて適用される本実施の形態のファイル管理テーブル32を示す。このファイル管理テーブル32は、ファイル名欄32A、Key数欄32B、空き容量欄32C及び合計有効データ量欄32Dから構成される。
そして、ファイル名欄32A、Key数欄32B、空き容量欄32Cには、それぞれ第1の実施の形態のファイル管理テーブル21のファイル名欄21A、Key数欄21B及び空き容量欄21Cと同様の情報が格納される。また合計有効データ量欄32Dには、対応するファイルFL内の有効なKey-Valueデータ(パディングデータPDを含む)DAの合計データ量(以下、これを合計有効データ量と呼ぶ)が格納される。
図7は、Key-ValueデータDAをSSD5上のファイルFLに書き込む際に本実施の形態のKVS33(図2)のデータ管理部34(図2)により実行される本実施の形態のデータ書込み処理手順を示す。本実施の形態のデータ書込み処理は、ステップSP13における処理が異なる点と、ステップSP16〜ステップSP19の処理が付け加えられている点を除いて第1の実施の形態のデータ書込み処理と同様に行われる。
実際上、データ管理部34は、ユーザからのデータ書込み要求及び保存対象のKey-Valueデータが与えられると、このデータ書込み処理を開始し、ステップSP10〜ステップSP12を図4のステップSP1〜ステップSP3と同様に処理する。
続いて、データ管理部34は、ファイル管理テーブル32におけるデータ書込み先ファイルFLと対応するエントリのファイル名欄32A、Key数欄32B、空き容量欄32C及び合計有効データ量欄32Dをそれぞれ更新する(SP13)。
次いで、データ管理部34は、かかるKey-ValueデータDAがKVS33において新規に追加されたものであるか否かを判断する(SP14)。この判断は、保存対象のKey-ValueデータDAのKeyがKey-Value管理テーブル31に未だ登録されていないか否かを判断することにより行われる。そしてデータ管理部34は、この判断で肯定結果を得るとステップSP22に進む。
これに対して、データ管理部34は、ステップSP14の判断で否定結果を得ると、かかるKey-ValueデータDAの更新前のデータを無効にするため、Key-Value管理テーブル31における保存対象のKey-ValueデータDAのKeyと同じKeyがKey欄31Aに格納されているエントリのファイル名欄31Bを参照して、そのKey-ValueデータDAの更新前のデータが格納されているファイル(更新前データ格納ファイル)FLを特定し、ファイル管理テーブル32における更新前データ格納ファイルFLと対応するエントリのKey数欄32Bに格納されているKey数を「1」だけ減少させる。さらに、前述のKey-Value管理テーブル31の同エントリのデータサイズ欄31Dを参照して、そのKey-ValueデータDAの更新前のデータサイズを特定し、前述のファイル管理テーブル32の同エントリの有効データ量欄32Dを更新前のデータサイズだけ減少させる。
次いで、データ管理部34は、かかる更新前データ格納ファイルFLにおける有効なKey-ValueデータDAの合計有効データ量をファイル管理テーブル32から読み出し、読み出した合計有効データ量と、予め設定されている閾値とを比較する(SP16)。そしてデータ管理部34は、この比較結果に基づいて、かかる合計有効データ量が閾値よりも小さいか否かを判断する(SP17)。
データ管理部34は、この判断で否定結果を得るとステップSP22に進む。これに対して、データ管理部34は、ステップSP17の判断で肯定結果を得ると、かかる更新前データ格納ファイルFLにおける有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーするようファイルシステム11のファイル管理部14に指示を与える(SP18)。かくしてファイル管理部14は、この指示に従って、かかる更新前データ格納ファイルFLから有効なKey-ValueデータDAをすべてデータ書込み先ファイルFLにコピーする。
またデータ管理部34は、ステップSP18において行われたデータコピーの内容に応じてKey-Value管理テーブル31及びファイル管理テーブル32をそれぞれ更新する(SP19)。この結果、ファイル管理テーブル32における更新前データ格納ファイルFLと対応するエントリのKey数欄42Bに格納されている有効なKey数(Key-Valueデータ数)が「0」に更新されることになる。
この後、データ管理部34は、ファイル管理テーブル21を参照して、ステップSP19の処理の結果、更新前データ格納ファイルFLのKey数(Key-Valueデータ数)が「0」となり、かつ当該更新前データ格納ファイルFLの空き容量が「0」であるか否かを判断する(SP20)。なお、データ管理部34は、この判断では常に肯定結果を得ることになる。
かくしてデータ管理部34は、この後、ステップSP21及びステップSP22を図4のデータ書込み処理のステップSP8及びステップSP9と同様に処理する。ただしデータ管理部34は、ステップSP22において、ステップSP9の処理に加えて、Key-Value管理テーブル31のデータサイズ欄31も更新する。そしてデータ管理部34は、この後、このデータ書込み処理を終了する。
以上の本実施の形態のデータ管理装置30によれば、格納されたKey-ValueデータDAの更新等により合計有効データ量が閾値未満となったファイルFLをその都度削除することができる。かくするにつき、本データ管理装置30によれば、第1の実施の形態のデータ管理装置1により得られる効果に加えて、SSD5の利用効率を向上できるという効果をも得ることができる。
(3)第3の実施の形態
上述の第1及び第2の実施の形態によるデータ管理装置30では、Key-ValueデータDAをSSD5に書き込む際、Key-ValueデータDAがページを跨がないようにするため、合計サイズがページサイズの整数倍となるようにKey-ValueデータDAにパディングデータPD(図3)を付加している。このため、かかるデータ管理装置30によると、かかるパディングデータPDの分だけSSD5の利用効率が低下することになる。
そこで本実施の形態のデータ管理装置40(図2)では、図7について上述した第2の実施の形態によるデータ書込み処理のステップSP18において、KVS41(図2)のデータ管理部42(図2)が、更新前データ格納ファイルFLに書き込まれている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際に、これらのKey-ValueデータDAからパディングデータPDをそれぞれ除去するようファイルシステム11のファイル管理部14(図2)に要求する。
かくして、かかる指示が与えられたファイル管理部14は、元のファイルFLに書き込まれている個々の有効なKey-ValueデータDAに付加されたパディングデータPDを削除し、これらKey-ValueデータDAの合計のデータサイズがページPG(図2)の直近の整数倍となるようにパディングデータPDを付加した上で、これら有効なKey-ValueデータDAをデータ書込み先ファイルFLに纏めて書き込む。
以上の本実施の形態のデータ管理装置40によれば、更新前データ格納ファイルFLに書き込まれている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際に余分なパディングデータPDを削除することができるため、第1の実施の形態のデータ管理装置1により得られる効果に加えて、SSD5の利用効率をより一層と向上できるという効果をも得ることができる。
(4)第4の実施の形態
一般的なSSDでは、ファイルシステムで取り扱う論理的なアドレスをSSDのコントローラで内部の物理アドレスに変換している。この変換処理の内容はファイルシステムからは認識できないため、ファイル作成時にファイルサイズを指定してファイルシステム上で連続領域を確保したとしても、SSDのブロック内のページが連続領域として確保されない場合がある。一般的には、逐次的な書き込みであれば、連続したSSDのページが割り当てられるが、既にランダムにデータが書き込まれた状態であれば、連続領域が割り当てられるかは確実なものではない。
そこで本実施の形態では、第1〜第3の実施の形態によるデータ管理装置1,30,40)に対して、SSD5がブロックBL(図2)内の連続したページPG(図2)をファイルFLに割り当て、ファイルFLの先頭が連続したブロックBL内のページPGの先頭になるようにするインタフェース(コマンド)を設ける。
そして本実施の形態のデータ管理装置50では、KVS51(図2)のデータ管理部52(図2)が、図4について上述したデータ書込み処理のステップSP2や、図7について上述したデータ書込み処理のステップSP11において、かかるコマンド(以下、これを連続領域割当て指定コマンドと呼ぶ)をファイルシステム63(図2)に送信する。
また、この連続領域割当て指定コマンドを受信したファイルシステム53(図2)のファイル管理部54(図2)は、当該連続領域割当て指定コマンドに応じた要求をSSD5のコントローラ16に送信する。これによりファイルシステム53のファイル管理部54によりファイルシステム53上で連続した領域のファイルFLが作成されると共に、SSD5内において、かかるファイルFL用の記憶領域として、連続した記憶領域がコントローラ16により確保される。
以上の本実施の形態のデータ管理装置50によれば、ファイルFLがSSD5の連続した記憶領域上に形成されるため、図4について上述したデータ書込み処理のステップSP8や、図7について上述したデータ書込み処理のステップSP21におけるファイルFLの削除時において、ブロック単位でのデータ削除が行われる。かくするにつき、本データ管理装置50によれば、第1〜第3の実施の形態のデータ管理装置1,30,40により得られる効果に加えて、ファイルFLの削除処理を高速化させることができるという効果をも得ることができる。
(5)第5の実施の形態
第2の実施の形態のデータ管理装置40では、図7について上述したデータ書込み処理のステップSP18において、更新前データ格納ファイルFL内の有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際、更新前データ格納ファイルFLからデータ書込み先ファイルFLにコピーしている。
この場合において、KVS31がインメモリ型の場合、コピー対象のKey-ValueデータDAがメモリ4(図1)上に存在する場合があり、このような場合、コピー対象のKey-ValueデータDAを更新前データ格納ファイルFLからデータ書込み先ファイルFLにコピーするよりも、メモリ4からデータ書込み先ファイルFLにコピーした方がコピー速度を向上させることができる。
そこで本実施の形態のデータ管理装置60(図2)では、図7について上述したデータ書込み処理のステップSP18において、更新前データ格納ファイルFLに格納されている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際、そのKey-ValueデータDAがメモリ4上に存在する場合には、当該Key-ValueデータDAをメモリ4からデータ書込み先ファイルFLにコピーする。
実際上、本データ管理装置60の場合、図7について上述したデータ書込み処理のステップSP18において、KVS61(図2)のデータ管理部62(図2)は、更新前データ格納ファイルFLにおける有効なKey-ValueデータDAがメモリ4上に存在するか否かをそれぞれ判断する。
そしてデータ管理部62は、かかる有効なKey-ValueデータDAのうち、メモリ4上に存在するKey-ValueデータDAについては、そのKey-ValueデータDAをメモリ4から読み出し、読み出したKey-ValueデータDAを、データ書込み先ファイルFLに書き込むべき旨のデータ書込み要求と共にファイルシステム11のファイル管理部14に送信する。かくしてファイル管理部14は、データ管理部62からデータ書込み要求と共に与えられたKey-ValueデータDAをデータ書込み先ファイルFLに書き込む。
またデータ管理部62は、かかる有効なKey-ValueデータDAのうち、メモリ4上に存在しないKey-ValueデータDAについては、当該Key-ValueデータDAの更新前のデータが格納されている更新前データ格納ファイルFLからデータ書込み先ファイルFLにコピーするようファイル管理部14に指示を与える。かくしてファイル管理部14は、この指示に従って、かかる更新前データ格納ファイルFLに書き込まれているKey-ValueデータDAをデータ書込み先ファイルFLにコピーする。
以上の本実施の形態のデータ管理装置60によれば、図7について上述したデータ書込み処理のステップSP18において、Key-ValueデータDAの更新前のデータが格納されていた更新前データ格納ファイルFLからデータ書込み先ファイルFLに有効なKey-Valueデータをコピーする際、更新前データ格納ファイルFLからコピー対象のKey-ValueデータDAを読み出すための処理負荷を低減することができる。かくするにつき、本実施の形態のデータ管理装置60によれば、第2の実施の形態のデータ管理装置30により得られる効果に加えてコピー速度を向上させることができるという効果をも得ることができる。
(6)他の実施の形態
なお上述の第1〜第5の実施の形態においては、データ管理装置1,40,50,60,70がSSD5を内部記憶装置として保持する場合について述べたが、本発明はこれに限らず、データ管理装置1,40,50,60,70がSSD5を外部記憶装置として利用する場合にも本発明を適用することができる。
また上述の第2、第3及び第5の実施の形態においては、更新前データ格納ファイルFLやメモリ4に格納されている有効なKey-ValueデータDAをデータ書込み先ファイルFLにコピーする際に、各Key-ValueデータDAからパディングデータPDをそれぞれ除去した上で、これらをKey-ValueデータDAまとめてデータ書込み先ファイルFLにコピーするようにした場合について述べたが、本発明はこれに限らず、これらの有効なKey-ValueデータDAのうちの少なくともValueをデータ圧縮した上でデータ書込み先ファイルFLにコピーするようにしても良い。このようにすることによって、SSD5の利用効率をより一層と向上できるという効果を得ることができる。
1,30,40,50,60……データ管理装置、3……CPU、4……メモリ、5……SSD、10,33,41,51,61……KVS、11……ファイルシステム、12,34,42,52,62……データ管理部、13……データ管理テーブル、14,54……ファイル管理部、15……記憶領域、16……コントローラ、20,31……Key-Value管理テーブル、21,32……ファイル管理テーブル、DA……Key-Valueデータ、FL……ファイル、BL……ブロック、PG……ページ、PD……パディングデータ。

Claims (12)

  1. 保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理装置において、
    前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、
    前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部と
    を備え、
    前記ファイルは、
    前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、
    前記データ管理部は、
    保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理し、
    有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求する
    ことを特徴とするデータ管理装置。
  2. 前記ファイル管理部は、
    保存対象の前記キー・バリューデータを、全体として前記SSDにおけるデータの書込み単位であるページのサイズの直近の整数倍となるようにパディングデータを付加して前記ファイルに書き込む
    ことを特徴とする請求項1に記載のデータ管理装置。
  3. 前記データ管理部は、
    前記ファイル内の有効な前記キー・バリューデータのデータ量が予め設定された閾値よりも小さい場合に、当該ファイル内の有効な前記キー・バリューデータをすべて他の前記ファイルにコピーするよう前記ファイル管理部に要求すると共に、コピー元の前記ファイルにおける他の前記ファイルにコピーした各前記キー・バリューデータをすべて無効化する
    ことを特徴とする請求項2に記載のデータ管理装置。
  4. 前記データ管理部は、
    削除対象の前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、各前記キー・バリューデータから前記パディングデータをそれぞれ削除するよう前記ファイル管理部に要求する
    ことを特徴とする請求項3に記載のデータ管理装置。
  5. 前記データ管理部は、
    前記ファイルの作成を前記ファイル管理部に要求する際、前記SSD内の連続した記憶領域を確保するよう前記ファイル管理部に要求する
    ことを特徴とする請求項1に記載のデータ管理装置。
  6. 前記SSDに書き込む前記キー・バリューデータを一時的に記憶するメモリを備え、
    前記データ管理部は、
    前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、前記メモリに記憶されている前記キー・バリューデータについては、当該キー・バリューデータを前記メモリから読み出してコピー先の他の前記ファイルに書き込むよう前記ファイル管理部に要求する
    ことを特徴とする請求項3に記載のデータ管理装置。
  7. 保存対象のデータであるバリューと、当該バリューに固有のキーとからなるキー・バリューデータをSSD(Solid State Drive)に保存するデータ管理装置によるデータ管理方法において、
    前記データ管理装置は、
    前記SSDに保存した前記キー・バリューデータを管理するデータ管理部と、
    前記データ管理部からの要求に応じて前記SSDの記憶領域上に所定サイズのファイルを適宜作成し、作成した前記ファイルを管理するファイル管理部と
    を有し、
    前記ファイルは、
    前記SSDにおけるデータの消去単位であるブロックの整数倍のファイルサイズを有し、
    前記データ管理部が、保存対象の前記キー・バリューデータを前記ファイルに追記的に書き込むよう前記ファイル管理部に要求すると共に、前記ファイルにおける更新された前記キー・バリューデータの更新前のデータ及び削除された前記キー・バリューデータを無効化して、各前記ファイルにおける有効な前記キー・バリューデータの数をそれぞれ管理する第1のステップと、
    前記データ管理部が、有効な前記キー・バリューデータが存在しなくなった前記ファイルについては、当該ファイルを削除するよう前記ファイル管理部に要求する第2のステップと
    ことを特徴とするデータ管理方法。
  8. 前記第1のステップにおいて、
    前記ファイル管理部は、保存対象の前記キー・バリューデータを、全体として前記SSDにおけるデータの書込み単位であるページのサイズの直近の整数倍となるようにパディングデータを付加して前記ファイルに書き込む
    ことを特徴とする請求項7に記載のデータ管理方法。
  9. 前記第2のステップにおいて、データ管理部は、
    前記ファイル内の有効な前記キー・バリューデータのデータ量が予め設定された閾値よりも小さい場合に、当該ファイル内の有効な前記キー・バリューデータをすべて他の前記ファイルにコピーするよう前記ファイル管理部に要求すると共に、コピー元の前記ファイルにおける他の前記ファイルにコピーした各前記キー・バリューデータをすべて無効化する
    ことを特徴とする請求項8に記載のデータ管理方法。
  10. 前記第2のステップにおいて、前記データ管理部は、
    削除対象の前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、各前記キー・バリューデータから前記パディングデータをそれぞれ削除するよう前記ファイル管理部に要求する
    ことを特徴とする請求項9に記載のデータ管理方法。
  11. 前記第1のステップにおいて、前記データ管理部は、
    前記ファイルの作成を前記ファイル管理部に要求する際、前記SSD内の連続した前記記憶領域を確保するよう前記ファイル管理部に指示を与える
    ことを特徴とする請求項7に記載のデータ管理方法。
  12. 前記データ管理装置は、
    前記SSDに書き込む前記キー・バリューデータを一時的に記憶するメモリを備え、
    前記第2のステップにおいて、前記データ管理部は、
    前記ファイル内の有効な前記キー・バリューデータを他の前記ファイルにコピーする際、前記メモリに記憶されている前記キー・バリューデータについては、当該キー・バリューデータを前記メモリから読み出してコピー先の他の前記ファイルに書き込むよう前記ファイル管理部に要求する
    ことを特徴とする請求項9に記載のデータ管理方法。
JP2015562598A 2014-02-13 2014-02-13 データ管理装置及び方法 Active JP6140311B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/053276 WO2015121938A1 (ja) 2014-02-13 2014-02-13 データ管理装置及び方法

Publications (2)

Publication Number Publication Date
JPWO2015121938A1 true JPWO2015121938A1 (ja) 2017-03-30
JP6140311B2 JP6140311B2 (ja) 2017-05-31

Family

ID=53799707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015562598A Active JP6140311B2 (ja) 2014-02-13 2014-02-13 データ管理装置及び方法

Country Status (3)

Country Link
US (1) US9785547B2 (ja)
JP (1) JP6140311B2 (ja)
WO (1) WO2015121938A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9804787B2 (en) * 2015-11-03 2017-10-31 Samsung Electronics Co., Ltd. Mitigating GC effect in a raid configuration
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center
JP6724766B2 (ja) * 2016-12-22 2020-07-15 京セラドキュメントソリューションズ株式会社 情報処理装置及びプログラム
US10845866B2 (en) * 2017-06-22 2020-11-24 Micron Technology, Inc. Non-volatile memory system or sub-system
US10922011B2 (en) * 2018-04-12 2021-02-16 Samsung Electronics Co., Ltd. Controllers configured to perform secure deletion, key-value storage devices including said controllers, and methods of operation thereof
JP2019194780A (ja) * 2018-05-01 2019-11-07 富士通株式会社 情報処理装置、データ管理プログラム及びデータ管理方法
US11372812B2 (en) * 2018-10-08 2022-06-28 Silicon Motion, Inc. Mobile device and method capable of earlier determining that a number of files in a directory of an external connected storage device is about to full
US11188231B2 (en) * 2019-03-01 2021-11-30 International Business Machines Corporation Data placement on storage devices
KR20210075731A (ko) 2019-12-13 2021-06-23 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
KR20210081888A (ko) 2019-12-24 2021-07-02 삼성전자주식회사 키-밸류 기반으로 데이터를 저장하는 스토리지 장치 및 이의 동작 방법
CN112925745B (zh) * 2021-03-25 2023-08-08 北京奇艺世纪科技有限公司 数据的清理方法及装置、电子设备和计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188701A (ja) * 1999-10-21 2001-07-10 Matsushita Electric Ind Co Ltd 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、初期化方法、及び半導体メモリカード
WO2012020544A1 (ja) * 2010-08-11 2012-02-16 日本電気株式会社 データ処理システム、データ処理方法、およびプログラム
JP2013200839A (ja) * 2012-03-26 2013-10-03 Toshiba Corp 半導体記憶装置、情報処理システムおよび制御方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621143B2 (en) 2011-04-15 2013-12-31 Oracle International Corporation Elastic data techniques for managing cache storage using RAM and flash-based memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001188701A (ja) * 1999-10-21 2001-07-10 Matsushita Electric Ind Co Ltd 半導体メモリカードについてのアクセス装置、コンピュータ読取可能な記録媒体、初期化方法、及び半導体メモリカード
WO2012020544A1 (ja) * 2010-08-11 2012-02-16 日本電気株式会社 データ処理システム、データ処理方法、およびプログラム
JP2013200839A (ja) * 2012-03-26 2013-10-03 Toshiba Corp 半導体記憶装置、情報処理システムおよび制御方法

Also Published As

Publication number Publication date
WO2015121938A1 (ja) 2015-08-20
US20160188461A1 (en) 2016-06-30
US9785547B2 (en) 2017-10-10
JP6140311B2 (ja) 2017-05-31

Similar Documents

Publication Publication Date Title
JP6140311B2 (ja) データ管理装置及び方法
US11573701B2 (en) Memory device and host device
US9798655B2 (en) Managing a cache on storage devices supporting compression
US20160283124A1 (en) Multi-streamed solid state drive
RU2642349C1 (ru) Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных
KR100874702B1 (ko) 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
WO2017000658A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
JP2020035300A (ja) 情報処理装置および制御方法
US7673096B2 (en) Control apparatus for controlling virtual storage
WO2020038186A1 (zh) 数据迁移方法、装置及存储设备
DE102010013389A1 (de) Verfahren und System zum Durchführen von Caching, basierend auf der Heuristik auf Dateiebene
JPWO2015076354A1 (ja) ストレージ装置と方法並びにプログラム
US20160132270A1 (en) Information processing device, information procesing method, and program
US20210344752A1 (en) Method and apparatus for performing simple storage service seamless migration using index objects
US20180307426A1 (en) Storage apparatus and storage control method
JP2005316635A (ja) データ処理システムおよび方法並びにその処理プログラム
WO2021068517A1 (zh) 一种存储数据整理方法与装置
WO2017000821A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
WO2015145667A1 (ja) ストレージシステム
KR101936364B1 (ko) 플래시 메모리를 이용한 메모리 관리 시스템 및 메모리 관리 방법
WO2024108939A1 (zh) 一种多级映射框架、数据操作请求处理方法及系统
US11132134B2 (en) Flexible over-provisioning of storage space within solid-state storage devices (SSDs)
JP6988445B2 (ja) ストレージシステム、制御装置及び制御方法
CN115168317B (zh) 一种lsm树存储引擎构建方法和系统
JP6243884B2 (ja) 情報処理装置、プロセッサ、および情報処理方法

Legal Events

Date Code Title Description
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: 20170411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170428

R150 Certificate of patent or registration of utility model

Ref document number: 6140311

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150