JP5347657B2 - データ記憶プログラム、方法、及び情報処理装置 - Google Patents

データ記憶プログラム、方法、及び情報処理装置 Download PDF

Info

Publication number
JP5347657B2
JP5347657B2 JP2009087385A JP2009087385A JP5347657B2 JP 5347657 B2 JP5347657 B2 JP 5347657B2 JP 2009087385 A JP2009087385 A JP 2009087385A JP 2009087385 A JP2009087385 A JP 2009087385A JP 5347657 B2 JP5347657 B2 JP 5347657B2
Authority
JP
Japan
Prior art keywords
data
user data
read
address
processing unit
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
JP2009087385A
Other languages
English (en)
Other versions
JP2010238107A (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 JP2009087385A priority Critical patent/JP5347657B2/ja
Priority to US12/625,965 priority patent/US8214620B2/en
Publication of JP2010238107A publication Critical patent/JP2010238107A/ja
Application granted granted Critical
Publication of JP5347657B2 publication Critical patent/JP5347657B2/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本件は、情報処理装置によってデータを記憶する技術に関する。
情報処理装置が、ストレージデバイスに記憶されているデータを更新する場合、アドレスによって当該データを特定し、当該アドレスのデータを新たなデータに書き直すのが一般的である。
なお、データベースを管理する情報処理装置は、データベースを更新する際、元データとは別に更新の内容をログとして順次追記するといったログ形式の記憶処理を採用するものもある。これにより、例えばデータベースに障害が生じた場合に、元データとログとに基づいて更新後のデータの復元が可能になる。
また、関連技術としては、下記の文献に開示の技術が挙げられる。
特開2004−062759号公報 特開2008−204287号公報 特開平09−330185号公報
情報処理装置は、ストレージデバイスにアクセスする場合、所定単位でアクセスする。例えば、ディスク状のストレージデバイスに対して情報処理装置は、最小記録単位であるセクタ毎に読み取りや書き込みを行う。
また、情報処理装置は、採用するOS(Operating System)の仕様によっては、複数のセクタをまとめたクラスタ単位や、ページサイズ(典型的には4KB)単位で読み書きを行う。
即ち、情報処理装置は、ストレージデバイスやOSの仕様によって決まる読み書き単位で、データの読み出しや書き込みを行う。このため、例えばページサイズを読み書き単位としたOSを用いて、このページサイズよりも小さい新データを書き込む場合、情報処理装置は、旧データをページサイズ単位でメモリ上に読み出す。そして情報処理装置は、メモリ上で旧データの一部を新データに変更し、ページサイズ単位でデータをストレージデバイスに書き込むといった一連の処理、所謂read-modify-writeを行う。
従って、ページサイズを読み書き単位とするOSを用いた情報処理装置が、ページサイズよりも小さなサイズのデータをログ形式でストレージデバイスに記憶する場合、read-modify-writeを行ってログを追記することになる。
即ち、ログ形式の記憶処理では、新規のデータが読み書き単位より小さなサイズであった場合でも、読み書き単位のログが追加されるので、新規のデータ以外にも冗長なデータの書き込みが行なわれることになるという問題があった。このため、冗長なデータが無駄に記憶領域を占有してしまい、ストレージデバイスの利用効率が悪化する。また、冗長なデータを書き込む時間が余分に必要になってしまう。
そこで、開示の情報処理装置は、ログ形式でデータを記憶する場合に冗長なデータの記憶を抑える技術を提供する。
前記課題を解決するため、本件の情報処理装置は、
アドレスを格納するアドレス領域と前記アドレスに対応するユーザデータを格納するユーザデータ領域とを有するキャッシュテーブルと、
指定されたアドレスのユーザデータをディスクから読み込む読み込み手段と、
読み込んだユーザデータが差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを読み込んだユーザデータとする差分伸長手段、
読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータを前記キャッシュテーブルのユーザデータ領域に書き込み、指定された論理アドレスを前記キャッシュテーブルの論理アドレス領域に書き込むキャッシュ書き込み手段と、
指定されたアドレスの更新されたユーザデータの大きさが閾値以下で、かつ、指定されたアドレスが前記キャッシュテーブル上にあるならば、前記指定されたアドレスの更新されたユーザデータと前記キャッシュテーブル上のユーザデータとの差分を圧縮して前記差分データを得る差分圧縮手段と、
得た差分データを前記ディスクに書き込む書き込み手段と、を有する。
開示の情報処理装置は、ログ形式でデータを記憶する場合に冗長なデータの記憶を抑える技術を提供できる。
実施形態1の情報処理装置の概略図 ブロックマップテーブルのデータ構造を示す図 キャッシュテーブルのデータ構造を示す図 ログのデータ構造を示す図 ログに付加するヘッダの説明図 情報処理装置によるデータの読み込みの説明図 情報処理装置によるデータの書き込みの説明図 情報処理装置によるガベージコレクションの説明図 本実施形態としての情報処理装置の概略図 SSDの書き込み方式の説明図
以下、図面を参照して本発明の実施形態について説明する。以下の実施の形態の構成は例示であり、本発明は実施の形態の構成に限定されない。
〈実施形態1〉
図1は、実施形態1の情報処理装置の概略図である。
本形態の情報処理装置10は、アプリケーション部1や、ストレージ制御部2、ストレージデバイス3を備えている。
アプリケーション部1は、ストレージデバイス3からのユーザデータの読み出しや、ストレージデバイス3へのユーザデータの読み出しを伴う処理を行う。例えば、アプリケーション部1は、文章の作成、表計算、データベースの運用、画像表示などの処理を行い、この処理に伴い文章、表、画像といったデータの読み書きをストレージデバイス3に対して指示する。なお、本例のアプリケーション部1は、4kBのページサイズを読み書き単
位としてデータの読み書きを要求する。
ストレージデバイス3は、記憶媒体を備え、当該記憶媒体へデータを書き込んで記憶したり、当該記憶媒体に記憶したデータを読み出したりする。ストレージデバイス3としては、例えば、HDD[Hard Disk Drive]、BD[Blue-ray Disk]ドライブ、DVD[Digital Versatile Disk]ドライブ、CD[Compact Disk]ドライブ、メモリーカード装置がある。また、記憶媒体としては、例えば、不揮発性半導体メモリ(フラッシュメモリ)、ハードディスク、BD、DVD、CD、メモリーカード、及び、フレキシブルディスクがある。以上に例示した記録媒体は、ストレージデバイス3に対して着脱自在であってもよいし、ストレージデバイス3内に固定的に装着されたものであってもよい。なお本形態における記憶媒体は、コンピュータ可読媒体である。
ストレージ制御部2は、アプリケーション部からの要求に基づき、ストレージデバイス3に対するデータの読み書きの制御を行う。本例のストレージ制御部2は、ログ形式でユーザデータをストレージデバイスに記憶させる。
即ち、データを更新する場合でも逐次ログが書き込まれ、書き込まれる毎にディスクの空きに応じて当該ログの書き込まれるアドレスが決まる。
一方、アプリケーション部1は、ログ形式ではなく、例えばデータを更新する場合、旧データと同じアドレスを指定して新データを上書きさせる一般的な手順で書き込みを要求する。
このため、ストレージ制御部2は、アプリケーション部1がユーザデータの記憶先として指定する論理的なアドレスと、実際にユーザデータがログとして書き込まれるディスク上のアドレスとの対応関係をブロックマップテーブルに記憶する。そして、ストレージ制御部2は、ブロックマップテーブルに基づいてユーザデータの読み書きを行う。
ストレージ制御部2は、I/Oインタフェース処理部21、読み込み処理部22、データ伸長処理部23、差分伸長処理部24、ブロックマップテーブル処理部25、キャッシュメモリ26、ディスクI/Oインタフェース27を備えている。また、ストレージ制御部2は、書き込み処理部28や、データ圧縮処理部29、差分圧縮処理部30、GC(garbage collection)処理部31、メモリ32を備えている。
I/Oインタフェース処理部21は、アプリケーション部1とのインタフェースであり、アプリケーション部1から受信した読込み要求を読み込み処理部22に送る。そして、I/Oインタフェース処理部21は、読込み要求に応じて読み込んだデータを読み込み処理部22から受信すると、当該データをアプリケーション部1へ送る。また、I/Oインタフェース処理部21は、アプリケーション部1から受信した書き込み要求を書き込み部28へ送る。ここで、読込み要求は、読込みを示すコードと、読み込み位置を指定するアドレスを含む信号である。また、書き込み要求は、書き込みを示すコードと、書き込みを行うアドレス、書き込むユーザデータを含む信号である。
メモリ32は、ブロックマップテーブル処理部25によって記憶されるブロックマップテーブルを有している。図2はブロックマップテーブルのデータ構造を示す図である。
図2に示すブロックマップテーブルは、ログ形式で逐次的に書き込まれたデータのディスク上での記憶位置やデータの種別を記憶する。即ち、ユーザデータがログ形式で書き込まれるので、ブロックマップテーブルは、アプリケーション部1がユーザデータの記憶先として指定する論理的なアドレスと、実際にユーザデータがログとして書き込まれるディ
スク上のアドレスとの対応関係を記憶する。
図2のブロックマップテーブルは、例えばLBA(Logical Block Addressing)及びそのデータ長、ディスクLBA及びそのデータ長、種別といった項目を有している。LBAは、アプリケーション部1で指定されるアドレス、ディスクLBAは指定されたデータのディスク上のアドレス、種別はログとして記憶されるデータが圧縮ログか差分ログかを示している。
キャッシュメモリ26は、読み込み処理部22によって記憶されるキャッシュテーブルを有する。図3はキャッシュテーブルのデータ構造を示す図である。
図3に示すキャッシュテーブルは、読み取りを行ったユーザデータとそのアドレスを対応付けて記憶し、読み取りが行われたデータであるか否か、即ちリード・モディファイ・ライトされるデータか否かの判断に用いられる。図3のキャッシュテーブルは、例えばLBA及びそのデータ長、ディスクLBA、ユーザデータといった項目を有している。
データ圧縮処理部29は、書き込み処理部28に送られた書き込み要求のユーザデータを圧縮する。データ圧縮処理部29は、圧縮アルゴリズムとして、LZ77やDeflateなど、
周知のアルゴリズムを採用している。この圧縮アルゴリズムは、可逆圧縮を行うものであれば如何なるアルゴリズムであっても良い。
差分圧縮処理部30は、書き込み処理部28に送られた書き込み要求のユーザデータがリード・モディファイ・ライトされる場合に、読み出したデータと書き込むデータの差分をとり、当該差分を書き込む。これにより書き込まれるデータが圧縮される。なお、差分圧縮処理部30は、書き込み要求のユーザデータの大きさが閾値以下、即ちページサイズ以下で、且つ指定されたアドレスが前記キャッシュテーブル上にあるならば、当該ユーザデータがリード・モディファイ・ライトされるデータと判断する。
書き込み処理部28は、データ圧縮処理部29で圧縮したデータや、差分圧縮処理部30で差分圧縮したデータをディスクI/Oインタフェース27を介してストレージデバイス3に書き込む書き込み手段である。また、書き込み処理部28は、ストレージデバイス3上のデータの消去も行う。
書き込み処理部28は、圧縮データや差分データをログ形式で書き込む。ここで書き込み処理部28は、ユーザデータにヘッダを付加してログとする。図4は、ログのデータ構造を示す。
図5は、ログに付加するヘッダの説明図である。図5に示すヘッダは、種別、データ長、アルゴリズム、圧縮パラメータ、元データ位置、LBA、チェックサム等を備えている。図5において、種別は、差分ログか、差分でないログかの区別を示す。なお、本例において差分でないログは、圧縮して記憶されるので圧縮ログと示す。
データ長は、ヘッダとユーザデータとを含むログのサイズを示す。アルゴリズムは、圧縮或いは差分処理する際のアルゴリズムの種類を示す。圧縮パラメータは、圧縮を行うか否かを判別するための閾値など、圧縮に用いる情報を示す。
元データ位置は、差分ログの差分をとる元となったデータのアドレスを示す。LBAは、アプリケーション部1によって指定されるアドレスを示す。チェックサムは、データの誤りを検出するためのコードである。なお、チェックサムに限らず、他の誤り訂正符号を用いても良い。
読み込み処理部22は、読み込み要求によって指定されたアドレスのユーザデータをディスクI/Oインタフェース27を介してストレージデバイス3から読み込む読み込み手段である。また、読み込み処理部22は、キャッシュメモリ26のキャッシュテーブルに読み込んだデータをキャッシュするキャッシュ書き込み手段としてのキャッシュ管理部22Aを備えている。キャッシュ管理部22Aは、読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータをキャッシュテーブルのユーザデータ領域に書き込み、指定されたアドレスをキャッシュテーブルのLBA領域に書き込む。
データ伸長処理部23は、データ圧縮処理部29で圧縮して記録された圧縮データを読み込み処理部22がストレージデバイス3から読み込んだ際に、当該圧縮データを伸長処理して圧縮前の状態に戻す。ここで伸長処理は、データ圧縮処理部29で採用した圧縮アルゴリズムに応じた処理、例えば圧縮と逆の手順で行えば良い。圧縮アルゴリズムは、LZ77やDeflateなど、周知のアルゴリズムであり、伸長の手順も周知であるので、詳細な説
明は省略する。
差分伸長処理部24は、読み込み処理部22で読み出したデータが差分データであった場合、差分をとった元データに当該差分データを加えることにより差分データを伸長してユーザデータとし、読み込み処理部22へ送る。
ブロックマップテーブル処理部25は、書き込み処理部28で書き込んだユーザデータの記憶位置と種別をブロックマップテーブルに記憶させる。本例のブロックマップテーブルは、記憶位置としてアプリケーション部が指定するLBAと、ディスクLBAとを記憶している。
GC処理部31は、ブロックマップテーブルに基づいて不要なデータを削除するなどのGC処理を行う。例えば 、GC(garbage collection)処理部31は、定期的にブロッ
クマップテーブルを検索し、差分データの参照元とならなくなったデータを検出して削除する。
本例の情報処理装置10の構成要素のうち、情報を処理する要素は、特定の動作を行う基本的な回路を組み合わせて各々の機能を実現したハードウェアである。また、これら情報を処理する要素の一部或いは全部は、汎用のプロセッサがソフトウェアとしてのプログラムを実行することによって各々の機能を実現するものでも良い。
情報処理装置10において、アプリケーション部1、I/Oインタフェース処理部21、読み込み処理部22、データ伸長処理部23、差分伸長処理部24、ブロックマップテーブル処理部25は、前記情報を処理する要素である。更に、ディスクI/Oインタフェース部27、書き込み処理部28、データ圧縮処理部29、差分圧縮処理部30、GC処理部31は、前記情報を処理する要素である。
これら情報を処理する要素であるハードウェアは、例えば、FPGA[Field Programmable Gate Array]、ASIC[Application Specific Integrated Circuit]、LSI[Large Scale Integration]といった基本的な回路を備える。また、当該ハードウェアは
、IC[Integrated Circuit]、ゲートアレイ、論理回路、信号処理回路、アナログ回路といった基本的な回路を備えても良い。
論理回路としては、例えば、AND、OR、NOT、NAND、NOR、フリップフロップ、カウンタ回路がある。信号処理回路には、信号値に対し、例えば、加算、乗算、除算、反転、積和演算、微分、積分を実行する回路が、含まれていてもよい。アナログ回路
には、例えば、信号値に対して、増幅、加算、乗算、微分、積分を実行する回路が、含まれていてもよい。
図6は、上記構成の情報処理装置10によるデータの読み込みの説明図である。
アプリケーション部1から読み込み要求を受けると、読み込み処理部22は読み込み処理を開始する(S1)。
読み込み処理部22は、ブロックマップテーブルを検索し、読み込み要求で指定されたLBAと対応するディスクLBAを求め(S2)、求めたディスクLBAからログデータを読み込む(S3)。
また、読み込み処理部22は、ブロックマップテーブルの種別を参照して読み込んだログが差分ログが否かを判定する(S4)。読み込んだデータが差分ログであった場合(S4,Yes)、差分ログのヘッダを参照して元データの記憶されている位置、本例ではアドレスを求める(S5)。そして読み込み処理部22は、S3の手順に戻り、元データを読み込み、差分ログか否かを判定する(S4)。ここで、差分ログであれば更にS5の手順へ進み、差分の元となった圧縮ログが得られるまでS5→S3→S4の手順を繰り返す。
読み込んだユーザデータが圧縮ログであった場合(S4,No)、データ伸長処理部23が、圧縮ログを伸長処理して非圧縮のユーザデータとする(S6)。
差分伸長処理部24は、読み出したログに差分ログが含まれているか否かを判定する(S7)。差分ログが含まれている場合(S7,Yse)、差分伸長処理部24は、差分ログを伸長処理、即ち差分元のユーザデータに差分ログの差分データを加えて更新後のユーザデータを得る(S8)。
読み込み処理部22のキャッシュ管理部22Aは、S6又はS8で伸長したユーザデータのサイズが所定の閾値以下か否かを判定する。本例では、ページサイズを閾値としている。そして、本例では、最小の読み書き単位がページサイズであるため、キャッシュ管理部22Aは、読み込んだデータが、ページサイズと同じか(S9,Yes)、ページサイズを越えたか(S9,No)を判定する。
ユーザデータが閾値以下であった場合(S9,Yes)、キャッシュ管理部22Aが当該ユーザデータ、LBA、ディスクLBAをキャッシュテーブルに記憶させる(S10)
。ここで、キャッシュ管理部22Aは、キャッシュテーブルが満杯であれば(S11,Yes)古いキャッシュデータを破棄する(S12)。
そして、読み込み処理部22は、読み込んだユーザデータをアプリケーション部1に返信し(S13)、読込み処理を終了する(S14)。
図7は、情報処理装置10によるデータの書き込みの説明図である。
アプリケーション部1から書き込み要求を受けると、書き込み処理部28は書き込み処理を開始する(S21)。
書き込み処理部28は、書き込み要求されたユーザデータのサイズが閾値以下か否かを判定する(S22)。ここで、ユーザデータが閾値以下の場合(S22,Yes)、書き込み処理部28は、キャッシュテーブルを検索し、書き込み要求されたユーザデータがキャッシュテーブルに保持されているか否かを判定する(S24)。
S24でユーザデータがキャッシュテーブルに保持されていた場合(S24,Yes)、差分圧縮処理部30は、キャッシュテーブルに保持されているユーザデータを元データとして、当該元データと書き込み要求されたユーザデータとの差分を求める(S25)。そして差分圧縮処理部30は、元データの位置や、差分ログであることを示す種別、データ長、差分アルゴリズム、チェックサムをヘッダとし、求めた差分に付加して差分ログを作成する(S26)。
一方、S22でユーザデータのサイズが閾値以下であった場合や(S22,No)、S24でユーザデータがキャッシュテーブルに保持されていない場合(S24,No)、データ圧縮処理部29が当該ユーザデータを圧縮処理する(S27)。そしてデータ圧縮処理部29は、圧縮ログであることを示す種別や、データ長、圧縮アルゴリズムを示す情報、圧縮パラメータ、チェックサムをヘッダとして、圧縮した前記ユーザデータに付加して圧縮ログを作成する(S28)。
書き込み処理部28は、S26で作成した差分ログ又はS28で作成した圧縮ログをディスクI/Oインタフェース部27を介してストレージデバイス3に記憶させる(S29)。なお、差分ログが閾値以下であった場合、書き込み処理部28は、差分ログを一旦、メモリ上に書き込み、差分ログが閾値に達した場合に、まとめてストレージデバイスに欠き込んでも良い。例えばストレージデバイス3の読み書き単位が512バイトの場合、閾値を400バイトとし、メモリ上に蓄積した差分ログが400バイトを超えた場合に、書き込み処理部28がストレージデバイス3に書き込みを行っても良い。
ブロックマップテーブル処理部25は、S29でログを書き込んだディスクLBAと当該ログの書き込み要求時にアプリケーション部が指定したLBAと、ログの種別とを対応つけてブロックマップテーブルに記憶させる(S30)。
図8は、情報処理装置10によるガベージコレクションの説明図である 。
GC処理部31は、ユーザによる指示を受けた場合や、ユーザデータの書き込みを行った後、所定のタイミング、或いは定期的にGC処理を開始する(S41)。まず、GC処理部31は、GCが必要か否か、即ちGCを行う条件を満たしているか否かを判定する。GCを行う条件としては、例えば、ストレージデバイスの空き容量が少なくなった場合や、前回のGCから所定期間以上経過した場合、ログの書き込み回数が所定数に達した場合、CPUの稼働率が所定値以下の場合などである。
GCが必要と判定した場合(S41,Yes)、GC処理部31は、読み込み処理部22にGC開始位置からログを読み込ませる(S42)。本例では、書き込み処理部28が、ディスクLBAの順にストレージデバイス3への書き込みを行う。このため、ストレージデバイスの記憶領域のうち、順番に書き込みを始めたディスクLBAから最新の書き込みを行ったディスクLBAまでが使用領域である。GC処理部31はディスクLBAの小さい順に処理を行うので、使用領域のディスクLBAのうち、最も小さいディスクLBAが最初のGC開始位置となる。なお、GC処理の順序及びGC開始位置は、ディスク上のログを順次処理できれば、どのように設定しても良い。
GC処理部31は、読み込んだログのヘッダの情報と、ブロックマップテーブルの情報とを照合し(S43)、一致しているか否かを判定する(S44)。本例のGC処理部31は、ディスク上から読み込んだログのヘッダに記録されているLBA及びそのデータ長、並びに当該ログを読み出したディスクLBAと、ブロックマップテーブル上の最新の情報とを比較する。これらの情報が一致すれば、GC処理部31は、読み込んだデータが最
新で、必要なデータであると判定する。
ここで、読み込んだデータが必要なデータであった場合(S44,Yes)、このまま次のログのGC処理に移っても良いが、本例のGC処理部31はデフラグメンテーションのため読み込んだデータを新たな領域に配置しなおす(S45−S49)。即ち本例のGC処理部31は所謂コピーGCを行う。
このためS45では、読み込んだログが差分ログか否かを判定し、差分ログであれば元データを読み込む(S46)。更にS46で読み込んだログが差分ログか否かを判定し、差分ログでなくなるまで読み込みを繰り返す(S46−S47)。
S46−S47で、差分ログでない元データが読み込まれた場合、データ伸長処理部23が、圧縮ログを伸長処理して非圧縮のユーザデータとする。そして、差分伸長処理部24が、差分ログを伸長処理、即ち差分元のユーザデータに差分ログの差分データを加えて更新後のユーザデータを得る(S48)。
GC処理部31は、差分伸長後のユーザデータを読み込み処理部22から得て、書き込み処理部28に送り、データ圧縮処理部29で圧縮してストレージデバイス3に書き込ませる(S49)。
また、読み込んだログがS45で差分ログでないと判定された場合(S45,No)、GC処理部31は、読み込み処理部22から読み込んだログを得て、書き込み処理部28に送りストレージデバイス3に書き込ませる(S49)。
このS49で新たに書き込みを行った場合、S41やS46で読み込んだログが不要になるため、GC処理部31は、使用領域の開始位置であるGC開始位置を次へ進める(S52)。即ち、GC開始位置を進めることで、不要になったログが書き込まれている個所は、使用領域から外れ、新たに書込みが可能な未使用領域となる。なお、ストレージデバイス3の使用領域をGC開始位置から最新の書込み位置までとするのではなく、例えばログをランダムに記憶させる方式を採用した場合、GC開始位置を進める際に不要となったログを書込み処理部28が削除すれば良い。
一方、S44で、読み込んだログの情報とブロックマップテーブルの情報とが一致しない場合(S44,No)、GC処理部31は、読み込んだログが差分ログか否かを判定する(S50)。S44で、この両情報が一致しないケースには、古くて不要なデータであるためブロックマップテーブルに登録されていない場合と、S41で読み出した差分ログから更に差分ログが作られ、ブロックマップテーブルの情報が最新の差分ログの情報となっている場合がある。即ち、更に差分が作られた差分ログは、最新の差分ログの差分元として必要なデータの可能性がある。従ってS50で差分データでないと判定した場合は(S50,No)、不要なデータであるので、書き込み処理を行わずにS51へ移行し、GC開始位置を進める。
一方、S50で差分ログと判定した場合(S50,Yes)、GC処理部31は、S42で読み出した差分ログのヘッダからLBAを読み出し、当該LBAと一致する最新のログをブロックマップテーブルから求める。即ち、GC処理部31は、当該LBAと対応するディスクLBAをブロックマップテーブルから求め、このディスクLBAに記録されている最新の差分ログを読み込み処理部22に読み込ませる(S52)。GC処理部31は、S52で読み込んだ差分データのヘッダに書き込まれた元データ位置がS42で読み込んだ差分ログの位置(ディスクLBA)と一致していれば(S53,Yes)、S42及びS52で読み込んだログが必要と判断する。即ちGC処理部31は、S42及びS52で読み込んだログを差分伸長処理部24で伸長処理させ、伸長したデータを書き込み処理
部28に送り、データ圧縮処理部29で圧縮処理して圧縮ログとしてストレージデバイス3に書き込ませる(S49)。
また、GC処理部31は、S53で両位置が一致していなければ(S53,No)、S52で読み出したログが差分データか否かを判定(S54)する。差分データであれば(S54,Yes)、S42で読み込んだ差分ログとS52で読み込んだ差分ログとの間に、更に差分ログが存在する可能性があるので、GC処理部31は、S52で読み込んだログのヘッダにおける元データ位置で示されるログを読み込み処理部22によって読み込ませる(S55)。GC処理部31は、S53で両位置が一致するまでS53からS55を繰り返し、一致すれば(S53,Yes)、前述のようにS42、S52及びS55で読み込んだログを伸長処理させ、圧縮ログとしてストレージデバイス3に書き込ませる(S49)。なお、S52又はS55で読み込んだログが、差分データで無かった場合(S54,No)、即ち、ブロックマップテーブルから求めた最新の差分ログの元データとしてS42で読み込んだログは必要無いので、書き込みを行わずにS51へ移行してGC開始位置を次へ進める。
GC処理部31は、GC開始位置を進めてS41からS55の処理を繰り返し、GCの必要が無くなった場合に(S41,No)、処理を終了する。
以上のように、本実施形態の情報処理装置は、ログ形式で書き込むデータが所定の閾値よりも小さい場合、差分データとして書き込むので、リード・モディファイ・ライトする場合と比べて記憶領域が少なくてすむ。このため本実施形態の情報処理装置は、ストレージデバイスの利用効率を向上させることができる。
また、本実施形態の情報処理装置は、ログ形式で書き込むデータが所定の閾値よりも小さい場合、差分データとして書き込むので、リード・モディファイ・ライトする場合と比べて書き込み時間を短縮することができる。
更に、本実施形態の情報処理装置は、読み込んだユーザデータが前記差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを前記ディスクに書き込んだ後に、前記ディスクをガベージコレクションする。これにより、本実施形態の情報処理装置は、ガベージコレクションと共にデフラグメンテーションを行うことができる。
また、本実施形態の情報処理装置は、前記閾値としてページサイズまたはセクタサイズを用いることにより、OSやストレージデバイスによって読み書き単位に制限を受ける環境であっても、閾値以下のデータを差分ログとして書き込むことができる。
〈実施形態2〉
図9は、本実施形態2としての情報処理装置の概略図である。本実施形態2の情報処理装置10は、ユーザ端末1からネットワークを介してユーザデータの読み書きの要求を受ける所謂データサーバである。本実施形態2において、前述の実施形態1と同じ要素は、同符号を付すなどにより再度の説明が省略される。
ユーザ端末1は、パーソナルコンピュータやワークステーションといったコンピュータであり、ファイやワイヤーやiSCSIといったネットワークを介してデータサーバ10と接続している。
データサーバ10は、ストレージデバイス3と、当該ストレージデバイスの制御装置2を備えている。
制御装置2は、CCU(communication control unit)21や、演算処理部40、記憶装置51、DA(ディスクアダプタ)27を備えている。
CCU21は、ユーザ端末1との通信を制御するインタフェースであり、ユーザ端末1から受信した読み込み要求及び書き込み要求を演算処理部40に送る。そして、I/Oインタフェース処理部21は、読込み要求に応じて読み込んだユーザデータを演算処理部40から受信してユーザ端末1へ送信する。
記憶部51には、オペレーティングシステム(OS)やファームウェア(制御プログラム等)がインストールされている。
メモリ32,26は、CPU41等から読み書き可能なメインメモリであり、ブロックマップテーブルを記憶するメモリ32と、キャッシュメモリ26に相当する。
DA27は、前述のディスクI/Oインタフェースに相当する。DA27は、バスを介してCPU41やメモリ32,26と接続し、CPU41からの読み書き要求を受信する。そしてDA27は、読み書き要求に応じてストレージデバイス3からの読み込み、書き込み要求に応じてストレージデバイス3への書き込みを行う。
演算処理部40は、CPU41やメインメモリを備え、前記OSやファームウェアを記憶部51から適宜読み出して実行し、CCU21、ディスクアダプタ27から入力された情報、及び記憶部51から読み出した情報を演算処理する。本例の演算処理部40は、ファームウェアに従う演算処理により、読み込み処理部22、データ伸長処理部23、差分伸長処理部24、ブロックマップテーブル処理部25としても機能する。更に、演算処理部40は、書き込み処理部28、データ圧縮処理部29、差分圧縮処理部30、GC処理部31としても機能する。
ユーザ端末1からCCU21を介して読み取り要求を受けると、演算処理部40は、読み込み処理部22、データ伸長部23、差分伸長処理部24、ブロックマップテーブル処理部25として図6と同様に読み込みを行う。即ち、読み込み処理部22等としてDA27を介してストレージデバイス3からユーザデータを読み込み、読み込んだデータをCCU21を介してユーザ端末1へ送信する。
また、ユーザ端末1からCCU21を介して書き込み要求を受けると、演算処理部40は、書き込み処理部28、データ圧縮処理部29、差分圧縮処理部30、ブロックマップテーブル処理部25等として図7と同様に書き込みを行う。即ち、書き込み処理部28としてDA27を介してストレージデバイス3へユーザデータを書き込む。
また、演算処理部40は、GC処理部31、ブロックマップテーブル処理部25等として図8と同様にGC処理を行う。
上述のようにデータサーバとした本実施形態2の構成であっても、実施形態1と同様の効果を奏する。即ち、データサーバ10は、ログ形式で書き込むデータが所定の閾値よりも小さい場合、差分データとして書き込むので、リード・モディファイ・ライトする場合と比べて記憶領域が少なくてすみ、ストレージデバイスの利用効率を向上させることができる。
なお、DA27がプロセッサを備え、ファームウェアに従う演算処理により、前述の演算処理部40の代わりに、読み込み処理部22、データ伸長処理部23、差分伸長処理部24、ブロックマップテーブル処理部25として機能する構成でも良い。更に、DA27
は、書き込み処理部28、データ圧縮処理部29、差分圧縮処理部30、GC処理部31として機能しても良い。
〈実施形態3〉
前述の実施形態1において、ストレージデバイス3は、SSD(Solid State Drive)
であっても良い。なお、SSDを用いた以外の構成は、前述の実施形態1と同じであるので、同一の要素には同符号を付すなどして再度の説明は省略する。
図10は、SSDの書き込み方式の説明図である。SSDでは、データを管理するための最小単位として「ページ」と「ブロック」という概念がある。SSDにファイルを記録する場合、例えば8KBのページ61を最小単位として、各ファイルに領域が割り当てられ
る。一方、データを消去する場合は、ページ61を64個ずつ集約した、512KBのブロック
62ごとに処理が行われる。
また、SSDにおいて、読み出したデータを同じアドレスに書き戻すように一般的な方式でリード・モディファイ・ライトを行う場合、更新するデータを読み出し、読み出したデータを変更し、SSD上の元データを消去して、変更後のデータを書き戻す。即ち、データを単に上書きするのではなく、データを消去してから書き戻す必要がある。従って、データを消去する最少単位であるブロック単位でリード・モディファイ・ライトする必要があった。
これに対し本実施形態3の情報処理装置10は、ログ形式でデータを書き込むので、書き込み毎に元データを消去する必要がなく、ページ単位で書き込みを行うことができる。
特に、本実施形態3の情報処理装置10は、図7と同様に、ページ単位以下の書き込みを行う場合には、差分ログとしてデータを書き込みので、データを記憶する領域が最小限で済む。
このため、本実施形態3の情報処理装置10は、ストレージデバイスとしてのSSD3の使用効率を向上させることができる。更に、本実施形態3の情報処理装置10は、SSD3のデータを消去する回数が減らせるので、SSD3の寿命を延ばすことができる。
なお、本実施形態3の情報処理装置10においても、読み込み処理は図6と同様、GC処理は図8と同様に行うことができる。
更に、前述の実施形態2において、ストレージデバイス3は、SSDであっても良い。実施形態2のデータサーバ10が、ストレージデバイス3としてSSDを採用した構成であっても、本実施形態3と同様の効果が得られる。
〈その他〉
本発明は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、前述の実施形態1〜3に関し、さらに以下の付記を開示する。これらの構成であっても上述の実施形態と同様の効果が得られる。また、これらの構成要素は可能な限り組み合わせることができる。
(付記1)
アドレスを格納するアドレス領域と前記アドレスに対応するユーザデータを格納するユーザデータ領域とを有するキャッシュテーブルを有する情報処理装置に、
指定されたアドレスのユーザデータを記録媒体から読み込む読み込み手順、
読み込んだユーザデータが差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを読み込んだユーザデータとする差分伸長手順、
読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータを前記キャッシュテーブルのユーザデータ領域に書き込み、指定されたアドレスを前記キャッシュテーブルのアドレス領域に書き込むキャッシュ書き込み手順、
指定されたアドレスの更新されたユーザデータの大きさが閾値以下で、かつ、指定されたアドレスが前記キャッシュテーブル上にあるならば、前記指定されたアドレスの更新されたユーザデータと前記キャッシュテーブル上のユーザデータとの差分データを得る差分手順、
得た差分データを前記ディスクに書き込む書き込み手順、
を実行させるためのデータ記憶プログラム。
(付記2)
前記情報処理装置に、
読み込んだユーザデータが前記差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを前記ディスクに書き込んだ後に、前記ディスクをガベージコレクションするガベージコレクション手順、
を更に実行させるための付記1記載のデータ記憶プログラム。
(付記3)
前記閾値はページサイズまたはセクタサイズである、付記1または2記載のデータ記憶プログラム。
(付記4)
アドレスを格納するアドレス領域と前記アドレスに対応するユーザデータを格納するユーザデータ領域とを有するキャッシュテーブルと、
指定されたアドレスのユーザデータをディスクから読み込む読み込み手段と、
読み込んだユーザデータが差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを読み込んだユーザデータとする差分伸長手段、
読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータを前記キャッシュテーブルのユーザデータ領域に書き込み、指定された論理アドレスを前記キャッシュテーブルの論理アドレス領域に書き込むキャッシュ書き込み手段と、
指定されたアドレスの更新されたユーザデータの大きさが閾値以下で、かつ、指定されたアドレスが前記キャッシュテーブル上にあるならば、前記指定されたアドレスの更新されたユーザデータと前記キャッシュテーブル上のユーザデータとの差分を圧縮して前記差分データを得る差分圧縮手段と、
得た差分データを前記ディスクに書き込む書き込み手段と、
を有する情報処理装置。
(付記5)
読み込んだユーザデータが前記差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを前記ディスクに書き込んだ後に、前記ディスクをガベージコレクションするガベージコレクション手段、
を更に有する付記4記載の情報処理装置。
(付記6)
前記閾値はページサイズまたはセクタサイズである、付記4または5記載の情報処理装置。
(付記7)
アドレスを格納するアドレス領域と前記アドレスに対応するユーザデータを格納するユーザデータ領域とを有するキャッシュテーブルを有する情報処理装置が、
指定されたアドレスのユーザデータを記録媒体から読み込む読み込み手順、
読み込んだユーザデータが差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを読み込んだユーザデータとする差分伸長手順、
読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータを前記キャッシュテーブルのユーザデータ領域に書き込み、指定されたアドレスを前記キャッシュテーブルのアドレス領域に書き込むキャッシュ書き込み手順、
指定されたアドレスの更新されたユーザデータの大きさが閾値以下で、かつ、指定されたアドレスが前記キャッシュテーブル上にあるならば、前記指定されたアドレスの更新されたユーザデータと前記キャッシュテーブル上のユーザデータとの差分データを得る差分手順、
得た差分データを前記ディスクに書き込む書き込み手順、
を実行するデータ記憶方法。
(付記8)
前記情報処理装置に、
読み込んだユーザデータが前記差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを前記ディスクに書き込んだ後に、前記ディスクをガベージコレクションするガベージコレクション手順、
を更に実行させる付記7記載のデータ記憶方法。
(付記9)
前記閾値はページサイズまたはセクタサイズである、付記7または8記載のデータ記憶方法。

Claims (6)

  1. アドレスを格納するアドレス領域と前記アドレスに対応するユーザデータを格納するユーザデータ領域とを有するキャッシュテーブルを有する情報処理装置に、
    指定されたアドレスのユーザデータを記録媒体から読み込む読み込み手順、
    読み込んだユーザデータが差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを読み込んだユーザデータとする差分伸長手順、
    読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータを前記キャッシュテーブルのユーザデータ領域に書き込み、指定されたアドレスを前記キャッシュテーブルのアドレス領域に書き込むキャッシュ書き込み手順、
    指定されたアドレスの更新されたユーザデータの大きさが閾値以下で、かつ、指定されたアドレスが前記キャッシュテーブル上にあるならば、前記指定されたアドレスの更新されたユーザデータと前記キャッシュテーブル上のユーザデータとの差分データを得る差分手順、
    得た差分データを前記記録媒体に書き込む書き込み手順、
    を実行させるためのデータ記憶プログラム。
  2. 前記情報処理装置に、
    読み込んだユーザデータが前記差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを前記記録媒体に書き込むガベージコレクション手順、
    を更に実行させるための請求項1記載のデータ記憶プログラム。
  3. 前記閾値はページサイズまたはセクタサイズである、請求項1または2記載のデータ記憶プログラム。
  4. アドレスを格納するアドレス領域と前記アドレスに対応するユーザデータを格納するユーザデータ領域とを有するキャッシュテーブルと、
    指定されたアドレスのユーザデータをディスクから読み込む読み込み手段と、
    読み込んだユーザデータが差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを読み込んだユーザデータとする差分伸長手段、
    読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータを前記キ
    ャッシュテーブルのユーザデータ領域に書き込み、指定された論理アドレスを前記キャッシュテーブルの論理アドレス領域に書き込むキャッシュ書き込み手段と、
    指定されたアドレスの更新されたユーザデータの大きさが閾値以下で、かつ、指定されたアドレスが前記キャッシュテーブル上にあるならば、前記指定されたアドレスの更新されたユーザデータと前記キャッシュテーブル上のユーザデータとの差分を圧縮して前記差分データを得る差分圧縮手段と、
    得た差分データを前記ディスクに書き込む書き込み手段と、
    を有する情報処理装置。
  5. 読み込んだユーザデータが前記差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを前記ディスクに書き込むことを特徴とするガベージコレクション手段、
    を更に有する請求項4記載の情報処理装置。
  6. アドレスを格納するアドレス領域と前記アドレスに対応するユーザデータを格納するユーザデータ領域とを有するキャッシュテーブルを有する情報処理装置が、
    指定されたアドレスのユーザデータを記録媒体から読み込む読み込み手順、
    読み込んだユーザデータが差分データならば、読み込んだ差分データを伸長して、伸長したユーザデータを読み込んだユーザデータとする差分伸長手順、
    読み込んだユーザデータの大きさが閾値以下ならば、読み込んだユーザデータを前記キャッシュテーブルのユーザデータ領域に書き込み、指定されたアドレスを前記キャッシュテーブルのアドレス領域に書き込むキャッシュ書き込み手順、
    指定されたアドレスの更新されたユーザデータの大きさが閾値以下で、かつ、指定されたアドレスが前記キャッシュテーブル上にあるならば、前記指定されたアドレスの更新されたユーザデータと前記キャッシュテーブル上のユーザデータとの差分データを得る差分手順、
    得た差分データを前記記録媒体に書き込む書き込み手順、
    を実行するデータ記憶方法。
JP2009087385A 2009-03-31 2009-03-31 データ記憶プログラム、方法、及び情報処理装置 Expired - Fee Related JP5347657B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009087385A JP5347657B2 (ja) 2009-03-31 2009-03-31 データ記憶プログラム、方法、及び情報処理装置
US12/625,965 US8214620B2 (en) 2009-03-31 2009-11-25 Computer-readable recording medium storing data storage program, computer, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009087385A JP5347657B2 (ja) 2009-03-31 2009-03-31 データ記憶プログラム、方法、及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2010238107A JP2010238107A (ja) 2010-10-21
JP5347657B2 true JP5347657B2 (ja) 2013-11-20

Family

ID=42785698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009087385A Expired - Fee Related JP5347657B2 (ja) 2009-03-31 2009-03-31 データ記憶プログラム、方法、及び情報処理装置

Country Status (2)

Country Link
US (1) US8214620B2 (ja)
JP (1) JP5347657B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5391422B2 (ja) * 2009-09-01 2014-01-15 株式会社日立製作所 メモリ管理方法、計算機システム及びプログラム
JP5380695B2 (ja) * 2010-02-23 2014-01-08 株式会社日立製作所 メモリ管理方法、計算機システム及びメモリ管理プログラム
US9170884B2 (en) * 2010-03-16 2015-10-27 Cleversafe, Inc. Utilizing cached encoded data slices in a dispersed storage network
US10135462B1 (en) 2012-06-13 2018-11-20 EMC IP Holding Company LLC Deduplication using sub-chunk fingerprints
US9400610B1 (en) 2012-06-13 2016-07-26 Emc Corporation Method for cleaning a delta storage system
US9026740B1 (en) 2012-06-13 2015-05-05 Emc Corporation Prefetch data needed in the near future for delta compression
US8918390B1 (en) 2012-06-13 2014-12-23 Emc Corporation Preferential selection of candidates for delta compression
US9116902B1 (en) 2012-06-13 2015-08-25 Emc Corporation Preferential selection of candidates for delta compression
US8712978B1 (en) 2012-06-13 2014-04-29 Emc Corporation Preferential selection of candidates for delta compression
US8972672B1 (en) 2012-06-13 2015-03-03 Emc Corporation Method for cleaning a delta storage system
US9141301B1 (en) * 2012-06-13 2015-09-22 Emc Corporation Method for cleaning a delta storage system
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
WO2015097739A1 (ja) * 2013-12-24 2015-07-02 株式会社日立製作所 ストレージ装置及びその制御方法
CN112100087B (zh) * 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130749B (zh) 2019-06-25 2023-12-22 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11481152B2 (en) * 2019-12-30 2022-10-25 Micron Technology, Inc. Execution of commands addressed to a logical block

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0818458A (ja) * 1994-06-28 1996-01-19 Hitachi Ltd データの処理方法及び装置
JP3426385B2 (ja) * 1995-03-09 2003-07-14 富士通株式会社 ディスク制御装置
JP3373360B2 (ja) 1996-06-13 2003-02-04 沖電気工業株式会社 ディスクアレイ装置
US6718444B1 (en) * 2001-12-20 2004-04-06 Advanced Micro Devices, Inc. Read-modify-write for partial writes in a memory controller
JP2004062759A (ja) 2002-07-31 2004-02-26 Hitachi Ltd データベースログの管理方法、その装置およびそのプログラム
JP4153324B2 (ja) * 2003-01-31 2008-09-24 松下電器産業株式会社 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム
KR100539251B1 (ko) * 2004-03-08 2005-12-27 삼성전자주식회사 독출-변경-기입 기능을 가지는 메모리 컨트롤러 및 이를구비하는 soc
US7328317B2 (en) * 2004-10-21 2008-02-05 International Business Machines Corporation Memory controller and method for optimized read/modify/write performance
JP4910360B2 (ja) * 2005-10-20 2012-04-04 ソニー株式会社 記憶装置、コンピュータシステム、およびデータ書き込み方法
JP4766240B2 (ja) * 2005-11-08 2011-09-07 日本電気株式会社 ファイル管理方法、装置、およびプログラム
JP2008009829A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd ストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法
JP4907380B2 (ja) 2007-02-21 2012-03-28 株式会社Access データ生成方法、データ復元方法、データ生成装置およびデータ復元装置
US8103903B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system

Also Published As

Publication number Publication date
US8214620B2 (en) 2012-07-03
JP2010238107A (ja) 2010-10-21
US20100250855A1 (en) 2010-09-30

Similar Documents

Publication Publication Date Title
JP5347657B2 (ja) データ記憶プログラム、方法、及び情報処理装置
JP5696118B2 (ja) 不揮発性メモリシステムのためのウィーブシーケンスカウンタ
US9343153B2 (en) De-duplication in flash memory module
US9927998B2 (en) Flash memory compression
KR102319657B1 (ko) 저장된 데이터 유닛들의 동작 관리
JP6134857B2 (ja) 記憶デバイス、記憶デバイスを有する装置、及び記憶制御方法
KR102275431B1 (ko) 저장된 데이터 유닛들의 동작 관리
JP2011511388A (ja) メモリマッピング技術
JP2009527847A (ja) Fatボリュームにおけるファイルベースの圧縮
US11379447B2 (en) Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller
KR101285900B1 (ko) 컨트롤러, 기억 장치, 및 컴퓨터 판독 가능한 매체
US11176033B2 (en) Data storage devices and data processing methods
JP2018169773A (ja) ストレージ装置、ストレージ装置の制御方法及びプログラム
KR102275240B1 (ko) 저장된 데이터 유닛들의 동작 관리
US11487428B2 (en) Storage control apparatus and storage control method
JP5002944B2 (ja) 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
CN110286850B (zh) 固态硬盘元数据的写入方法、恢复方法及固态硬盘
JP2008191797A (ja) ファイルシステム
KR101618999B1 (ko) 네트워크 부트 시스템
JP2018206161A (ja) 記憶装置および記憶装置のデータ管理方法
US20240086111A1 (en) Memory system and block management method
JP2021022324A (ja) 記憶制御装置および記憶制御プログラム
KR20170002279A (ko) 전원 손실 이후 효과적인 데이터 복구를 위한 메모리 복구 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130612

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130805

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees