JP6289883B2 - ストレージ装置 - Google Patents

ストレージ装置 Download PDF

Info

Publication number
JP6289883B2
JP6289883B2 JP2013244857A JP2013244857A JP6289883B2 JP 6289883 B2 JP6289883 B2 JP 6289883B2 JP 2013244857 A JP2013244857 A JP 2013244857A JP 2013244857 A JP2013244857 A JP 2013244857A JP 6289883 B2 JP6289883 B2 JP 6289883B2
Authority
JP
Japan
Prior art keywords
database
conversion table
logical
transaction
processing
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
JP2013244857A
Other languages
English (en)
Other versions
JP2015103147A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2013244857A priority Critical patent/JP6289883B2/ja
Publication of JP2015103147A publication Critical patent/JP2015103147A/ja
Application granted granted Critical
Publication of JP6289883B2 publication Critical patent/JP6289883B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本明細書に記載の実施の形態は、ストレージ装置に関する。
近年、SSD(Solid State Drive)と呼ばれるフラッシュメモリ、特にNAND型フラッシュメモリを用いた記憶媒体を、データベースのストレージとして使う製品が増えている。従来はファイルシステム上にデータベースを保存していたが、今後は、ファイルシステムなしのデータベースが増加すると思われる。このようなファイルシステムなしのデータベースにおいては、トランザクション処理速度がデータベースの性能を左右する。そのため、コミット(反映)とロールバック(キャンセル)を速やかに実行する技術が求められている。
NAND型フラッシュメモリを用いた記憶媒体をデータベースのストレージとして使う従来のストレージ装置について説明する。
図15は、NAND型フラッシュメモリを用いた記憶媒体をデータベースのストレージとして使う、従来のストレージ装置の構成例を示す機能ブロック図である。
従来のストレージ装置1Aは、入出力装置10と、入出力装置10に接続されたデータ管理部60と、データ管理部60に接続された演算装置50と、データ管理部60に接続された不揮発性メモリ40と、データ管理部60に接続された揮発性メモリ30Aとを有している。
揮発性メモリ30Aは、キャッシュメモリ31と、消去済ページリスト32と、ブロック状態テーブル33と、論物変換テーブル34とを有している。
入出力装置10は、ストレージ装置1Aと、ストレージ装置1Aと接続されたコンピュータなどの装置とのインターフェイスであって、例えばシリアルATA(SATA)などである。
データ管理部60は、不揮発性メモリ40のブロックやページ状態を管理し、読み書きを制御する機能を有する。データ管理部60は、例えばNANDメモリコントローラチップを用いて実現される。データ管理部60は、全ページが無効のブロックを選択・消去し、消去済ページリスト32に追加し、データを書きこむ際は、消去済ページリスト32からページを取得する。
演算装置50は 、データ管理部60からの要求に従って演算を行い、演算結果を出力する機能を有する 。演算装置50では、データの格納先を取得したり、データの有効・無効などの状態を判断する処理を行う。
不揮発性メモリ40は、電源を供給しなくても記憶を保持するメモリであって、例えばNANDメモリチップである。
揮発性メモリ30Aは、電源を供給しないと記憶している情報を保持できないメモリであって、例えばDRAMなどである。揮発性メモリ30Aは、キャッシュメモリ31と、消去済ページリスト32と、ブロック状態テーブル33と、論物変換テーブル34とを有している。
キャッシュメモリ31は、データを一時的に保存するための記憶領域である。
消去済ページリスト32は、不揮発性メモリ40における書き込み可能なページのリスト(データ)を保存するための記憶領域である。データ管理部60は、不揮発性メモリ40にデータを書きこむ際は、この消去済ページリスト32から書き込み先ページを取得する。
ブロック状態テーブル33は、不揮発性メモリ40における各ブロックのページの状態を管理するデータを保存するための記憶領域である。ブロック状態テーブル33は、各ブロックについて「有効」「無効」「消去済」などの状態を持つ。
論物変換テーブル34は、不揮発性メモリ40における各ページの論理アドレスと物理アドレスの対応関係を保持するデータを保存するための記憶領域である。図16は、論物変換テーブル34の例を示す図である。図16に示す論物変換テーブル34は、論理アドレス「0」、論理アドレス「1」、論理アドレス「2」、論理アドレス「3」に対応するレコードを有している。論理アドレス「0」に対応するレコードは、対応する物理アドレスとしてブロック「1」のページ「3」を記憶している。論理アドレス「1」に対応するレコードは、対応する物理アドレスとしてブロック「4」のページ「0」を記憶している。論理アドレス「2」に対応するレコードは、対応する物理アドレスとしてブロック「1」のページ「2」を記憶している。論理アドレス「3」に対応するレコードは、対応する物理アドレスとしてブロック「2」のページ「1」を記憶している。
論物変換テーブル34の内容の通り、論理アドレス「0」に対応するデータは、不揮発性メモリ40のブロック「1」のページ「3」に書き込まれている。論理アドレス「1」に対応するデータは、不揮発性メモリ40のブロック「4」のページ「0」に書き込まれている。論理アドレス「2」に対応するデータは、不揮発性メモリ40のブロック「1」のページ「2」に書き込まれている。論理アドレス「4」に対応するデータは、不揮発性メモリ40のブロック「2」のページ「1」に書き込まれている。
なお、データが更新される時は、データ管理部60は、常に別の物理アドレスに更新データを書き込む。
[従来のストレージ装置の書込み処理(書込み動作)]
次に、従来のストレージ装置1Aの書込み処理(書込み動作)を説明する。図17は、従来のストレージ装置1Aの書込み処理の例を示すフローチャートである。
従来のストレージ装置1A、より詳しくはデータ管理部60は、コンピュータなどの装置から入出力装置10を介して、ある論理アドレスへの書き込み要求を取得する(S1710 )。
データ管理部60は、この書き込み要求に対応するデータ(更新データなど)を、揮発性メモリ30Aのキャッシュメモリ31上に書き込む(S1720)。
次に、データ管理部60は、揮発性メモリ30Aの消去済ページリスト32の先頭から書き込み先物理ページを取得する(S1730)。
次に、データ管理部60は、不揮発性メモリ40における、上記ステップS1730で取得した物理ページに、ステップS1720でキャッシュメモリ31に書き込んだデータを書き込む(S1740)。
次に、データ管理部60は、論物変換テーブル34の上記論理アドレスに対応するレコードの内容を、ステップS1740においてデータを書き込んだ物理ページに対応するブロック番号及びページ番号に書き換える(S1750)。
次に、データ管理部60は、論物変換テーブル34の、以前登録されていた物理アドレスに対応する、ブロック状態テーブル33の当該ページの状態を「有効」から「無効」に変更する(以前登録されていた物理アドレスが有効な値の場合)(S1760)。
次に、データ管理部60は、ブロック状態テーブル33の、ステップS1740において書き込んだ該当ページの状態を「消去済」から「有効」に変更する(S1770)。
以上で、従来のストレージ装置1Aは、書込み処理を終了する。
[従来のストレージ装置の消去処理(消去動作 )]
次に、従来のストレージ装置1Aの消去処理(消去動作)を説明する。図18は、従来のストレージ装置1Aの消去処理の例を示すフローチャートである。
従来のストレージ装置1A、より詳しくはデータ管理部60は、揮発性メモリ30Aの消去済ページリスト32に書き込まれている登録済ページの数が一定以下か否かを判定する(S1810)。消去済ページリスト32に書き込まれている登録済ページの数が一定以下ではないと判定した場合(S1810, No)、ストレージ装置1、より詳しくはデータ管理部60は消去処理を終了する。
一方、ステップS1810において、登録済ページの数が一定以下であると判定した場合(S1810, Yes)、従来のストレージ装置1A、より詳しくはデータ管理部60は、揮発性メモリ30のブロック状態テーブル33から、全ページが「無効」となっているブロックを選択する(S1820)。
次に、従来のストレージ装置1A、より詳しくはデータ管理部60は、ステップS1820で選択した、不揮発性メモリ40のブロックに書き込まれているデータを消去する(S1830)。
次に、従来のストレージ装置1A、より詳しくはデータ管理部60は、ステップS1820で選択したブロックの全ページについて、揮発性メモリ30のブロック状態テーブル33に記録されている状態を「消去済」に変更する(S1840)。
次に、ストレージ装置1、より詳しくはデータ管理部60は、揮発性メモリ30Aの消去済ページリスト32に、ステップS1830で消去したページを追加する(S1850)。
以上で従来のストレージ装置1Aは消去処理(消去動作)を終了する。
[従来のストレージ装置のトランザクション・コミット処理]
従来のストレージ装置1Aのトランザクション・コミット処理を説明する。図19は、従来のストレージ装置1Aのトランザクション・コミット処理の例を示すフロー図である。
まず、従来のストレージ装置1Aに接続されたコンピュータ(図略)にBEGIN文が入力される(S3010)。これによりトランザクションが開始する。BEGIN文の入力に対して、データベース内部の動作は特に行われない(S3110)。
次に、ステップS3010に続いて、データベースへの処理命令文(INSERT, UPDATEなど)がストレージ装置1Aに接続されたコンピュータ(図略)に入力される(S3020)。これらの処理命令文に応じて、データベース内部の動作として、データ管理部60は、キャッシュメモリ31上で、上記処理命令文に応じてデータベースを更新する(S3120)。
次にストレージ装置1Aに接続されたコンピュータ(図略)にCOMMIT文が入力される(S3030)。COMMIT文の入力に応じて、データベース内部の動作として、データ管理部60は、キャッシュメモリ31上のデータベースを不揮発性メモリ40に書き込む(S3130)。
以上で、従来のストレージ装置1Aのトランザクション・コミット処理は終了する。
[従来のストレージ装置のトランザクション・ロールバック処理]
従来のストレージ装置1Aのトランザクション・ロールバック処理を説明する。図20は、従来のストレージ装置1Aのトランザクション・ロールバック処理の例を示すフロー図である。
まず、従来のストレージ装置1Aに接続されたコンピュータ(図略)にBEGIN文が入力される(S4010)。これによりトランザクションが開始する。BEGIN文の入力に対して、データベース内部の動作は特に行われない(S4110)。
次に、ステップS4010に続いて、データベースへの処理命令文(INSERT, UPDATEなど)が従来のストレージ装置1Aに接続されたコンピュータ(図略)に入力される(S4020)。これらの処理命令文に応じて、データベース内部の動作として、データ管理部60は、キャッシュメモリ31上で、上記処理命令文に応じてデータベースを更新する(S4120)。
次に従来のストレージ装置1Aに接続されたコンピュータ(図略)に、ROLLBACK文が入力される(S4030)。ROLLBACK文に応じて、データベース内部の動作として、データ管理部60は、キャッシュメモリ31上のデータベースを破棄する(S4130)。
以上で、従来のストレージ装置1Aのトランザクション・ロールバック処理は終了する。
特開2006−209316号公報
NAND型フラッシュメモリを用いた記憶媒体をデータベースのストレージとして使う場合、トランザクション時にコミット操作をしてからデータをNAND型フラッシュメモリに書き込むと時間がかかるという問題がある。
本発明の目的は、トランザクション処理を、コミット(COMMIT)およびロールバック(ROLLBACK)共、高速に実行する技術を提供することにある。
本発明の実施の形態はストレージ装置として提案される。ストレージ装置は、不揮発性メモリと、キャッシュメモリと、第1の変換テーブルと、第2の変換テーブルと、第1の処理手段と、第2の処理手段とを有する。
不揮発性メモリは、データベースを記憶する。キャッシュメモリは、データベースを一時的に記憶する。第1の変換テーブル は、データの論理アドレスと、これに対応する不揮発性メモリの物理アドレスを対応付けて記憶する。第2の変換テーブルは、データの論理アドレスと、これに対応する不揮発性メモリの物理アドレスを対応付けて記憶する。第1の処理手段は、データベースを操作する命令であるコマンド文を受け取り、このコマンド文を解釈してデータベースの変更内容を決定し、このデータベースの変更内容に基づいて、キャッシュメモリ上のデータベースの内容を変更し、キャッシュメモリ上のデータベースの変更された内容に対応する論理アドレスと、この変更された内容のデータを記憶させることが可能な不揮発性メモリ上の物理アドレスとを対応付けて、第2の変換テーブルに書き込み、トランザクション処理の結果をデータベースに反映させること意味する命令を受け取ると、第2の変換テーブル内容を第1の変換テーブルに反映させる。第2の処理手段は、キャッシュメモリ上のデータベースの変更された内容を、不揮発性メモリへバックグラウンドで書き込む。
本実施の形態に係るストレージ装置の構成例を示す機能ブロック図 ストレージ装置のトランザクション・コミット処理の例を示すフロー図 ストレージ装置のトランザクション・ロールバック処理の例を示すフロー図 ストレージ装置のトランザクション処理の例を示すフローチャート BEGIN文処理の例を示すフローチャート コマンド文処理の例を示したフローチャート COMMIT処理の一例を示すフローチャート ROLLBACK処理の一例を示すフローチャート トランザクション処理前のトランザクション用論物変換テーブル、論物変換テーブル、不揮発性メモリの記憶内容例を示す 図9に続く時点の状態のトランザクション用論物変換テーブル、論物変換テーブル、不揮発性メモリの記憶内容例を示す図 図10に続く時点の状態のトランザクション用論物変換テーブル、論物変換テーブル、不揮発性メモリの記憶内容例を示す図 図11に続く時点の状態のトランザクション用論物変換テーブル、論物変換テーブル、不揮発性メモリの記憶内容例を示す図 図11に続く時点の状態のトランザクション用論物変換テーブル、論物変換テーブル、不揮発性メモリの記憶内容例を示す別の図 (A)は従来手法によるトランザクション処理のシーケンス図、(B)は本実施の形態にかかるストレージ装置によるトランザクション処理のシーケンス図 従来のストレージ装置の構成例を示す機能ブロック図 論物変換テーブルの例を示す図 従来のストレージ装置の書込み処理の例を示すフローチャート 従来のストレージ装置の消去処理の例を示すフローチャート 従来のストレージ装置のトランザクション・コミット処理の例を示すフロー図 従来のストレージ装置のトランザクション・ロールバック処理の例を示すフロー図
以下、図面を参照して本発明の実施の形態に係るストレージ装置を説明する。
[0.用語の定義]
本明細書中で使用する用語の定義を述べる。
[0.1.論物変換テーブル]
「論物変換テーブル」とは、論理アドレスをNAND型フラッシュメモリの物理アドレスに変換するためのテーブルをいう。
[0.2.トランザクション]
「トランザクション」とは、データベースにおいて、一連の処理を一つの作業としてまとめて行う処理をいう。
[0.3.コミット]
「コミット」とは、トランザクション処理の結果をデータベースに反映する処理をいう。
[0.4.ロールバック]
「ロールバック」とは、トランザクション処理の結果を取り消す処理をいう。
[1.本発明の実施の形態]
本発明の実施の形態は、ストレージ装置として提案される。このストレージ装置は、論物変換テーブルを利用してトランザクション処理のコミットやロールバックを実現することで、処理時間を短縮する装置である。
ストレージ装置は、情報処理装置であって、この情報処理装置は、演算処理装置(CPU)、主メモリ(RAM)、読み出し専用メモリ(ROM)、入出力装置(I/O)、及び必要な場合にはハードディスク装置等の外部記憶装置を具備している装置である。
[1.1.構成例]
本発明の実施の形態にかかるストレージ装置の構成について説明する。図1は、本実施の形態に係るストレージ装置の構成例を示す機能ブロック図である。なお、機能ブロック図中に示す構成要素は、ストレージ装置の機能を機能ごとにまとめてブロックとして捉えたものであり、ストレージ装置が各構成要素に対応する基板、装置、回路、部品などの物理的構成要素を備えていなければならないことを意味するわけではない。また、「接続されている」とは、データ、情報、命令などの送受信、受け取り、受け渡しなどが可能な状態になっていることをいい、互いに配線で連結されているような物理的な接続に限られる意味ではない。本明細書中の他の構成要素の機能ブロック図の説明についても同様である。
ストレージ装置1は、入出力装置10と、入出力装置10に接続されたデータベース処理部20と、データベース処理部20に接続された演算装置50と、演算装置50に接続されたデータ管理部60と、データベース処理部20及びデータ管理部60に接続された揮発性メモリ30と、データベース処理部20及びデータ管理部60に接続された不揮発性メモリ40とを有している。
データベース処理部20は、入出力装置10に接続された入出力部21と、入出力部21に接続されたコマンド解釈・処理部22と、コマンド解釈・処理部22に接続された保存・読み出し処理23とを有している。保存・読み出し処理23は不揮発性メモリ40に接続されており、不揮発性メモリ40へのデータ書き込み、不揮発性メモリ40からのデータ読み出しが可能である。
揮発性メモリ30は、キャッシュメモリ31と、消去済ページリスト32と、ブロック状態テーブル33と、論物変換テーブル34と、トランザクション用論物変換テーブル35とを有している。
データベース処理部20は 、外部からの命令に応じて、データベースの読出し、追加、変更を行う機能を有する。なお、不揮発性メモリ40へのデータの書き込みは、データ管理部60が行い、データベース処理部20は揮発性メモリ30上のキャッシュデータ等の書き換えを行う。
入出力部21は、入出力装置10からデータベース操作に関する命令文を受け取り、当該命令文の処理結果を入出力装置10へ出力する機能を有する。
コマンド解釈・処理部22は入出力部21からデータベース操作に関する命令文を受け取り、この命令文を解釈して、データベースの変更内容を出力する機能を有する。
保存・読み出し処理23は、データベースの変更内容を、揮発性メモリ30上のキャッシュメモリ31と、消去済ページリスト32と、ブロック状態テーブル33と、論物変換テーブル34と、トランザクション用論物変換テーブル35とに反映させる機能を有する。
トランザクション用論物変換テーブル35は、一つのトランザクションの開始から終了までの間に生じた論理アドレスと物理アドレスの対応関係を記述したデータを保存する記憶領域である。
ストレージ装置1のその他の構成要素は、図15に示した従来のストレージ装置1Aの構成要素と同様の機能を有する。同様の機能を有する構成要素には、同一の参照符号を付し、これらの機能の詳細な説明は省略する。なお、論物変換テーブル34は本実施の形態の第1の変換テーブルに相当し、トランザクション用論物変換テーブル35は本実施の形態の第2の変換テーブルに相当し、データベース処理部20は本実施の形態の第1の処理手段に相当し、データ管理部60は本実施の形態の第2の処理手段に相当する。
[2.動作例]
次に、ストレージ装置1の動作を説明する。
[2.1.ストレージ装置のトランザクション・コミット処理]
ストレージ装置1のトランザクション・コミット処理を説明する。図2は、ストレージ装置1のトランザクション・コミット処理の例を示すフロー図である。
まず、ストレージ装置1に接続されたコンピュータ(図略)にBEGIN文が入力される(S1010)。これによりトランザクションが開始する。BEGIN文の入力に対して、データベース内部の動作は特に行われない(S1110)。
次に、ステップS1010に続いて、データベースへのコマンド文(処理命令文;INSERT, UPDATEなど)がストレージ装置1に接続されたコンピュータ(図略)に入力される(S1020)。これらの処理命令文に応じて、データベース処理部20、より詳しくは入出力部21が入出力装置10を介してコンピュータ(図略)から処理命令文を受信する。コマンド解釈・処理部22は、入出力部21から処理命令文を受け取り、この処理命令文を解釈してデータベースの変更内容を決定する。保存・読み出し処理23は、データベースの変更内容に基づいて、キャッシュメモリ31上のデータベースを更新する(S1120)。なお、データ管理部60は、その後、バックグラウンドで、キャッシュメモリ31上のデータベースに基づいて、不揮発性メモリ40へデータベースの内容を書き込む。なお、不揮発性メモリ40へデータベースの内容を書き込む場合の物理アドレスは、消去済ページリスト32の先頭から書込み先物理アドレス(物理ページ)を取得する 。
また、データベース処理部20、より詳しくは保存・読み出し処理23は、キャッシュメモリ31、消去済ページリスト32、論物変換テーブル34を参照して、データベースの更新データに対応する論物変換情報をトランザクション用論物変換テーブル35に書き込む(S1120)。
次にストレージ装置1に接続されたコンピュータ(図略)にCOMMIT文が入力される(S1030)。入力されたCOMMIT文は入出力装置10を介してデータベース処理部20、より詳しくは入出力部21に渡される。コマンド解釈・処理部22は、入出力部21からCOMMIT文を受け取り、このCOMMIT文に応じて保存・読み出し処理23にトランザクション用論物変換テーブル35の内容を論物変換テーブル34に反映させるよう命令を送る。この命令を受け取った保存・読み出し処理23はトランザクション用論物変換テーブル35の内容を論物変換テーブル34に反映させる(S1130)。
以上で、ストレージ装置1のトランザクション・コミット処理は終了する。
[2.2.ストレージ装置のトランザクション・ロールバック処理]
ストレージ装置1のトランザクション・ロールバック処理を説明する。図3は、ストレージ装置1のトランザクション・ロールバック処理の例を示すフロー図である。
まず、ストレージ装置1に接続されたコンピュータ(図略)にBEGIN文が入力される(S2010)。これによりトランザクションが開始する。BEGIN文の入力に対して、データベース内部の動作は特に行われない(S2110)。
次に、ステップS2010に続いて、データベースへの処理命令文(INSERT, UPDATEなど)がストレージ装置1に接続されたコンピュータ(図略)に入力される(S2020)。これらの処理命令文に応じて、データベース処理部20、より詳しくは入出力部21が入出力装置10を介してコンピュータ(図略)から処理命令文を受信する。コマンド解釈・処理部22は、入出力部21から処理命令文を受け取り、この処理命令文を解釈してデータベースの変更内容を決定する。保存・読み出し処理23は、データベースの変更内容に基づいて、キャッシュメモリ31上のデータベースを更新する(S2120)。なお、データ管理部60は、その後、バックグラウンドで、キャッシュメモリ31上のデータベースに基づいて、不揮発性メモリ40へデータベースの内容を書き込む。
また、データベース処理部20、より詳しくは保存・読み出し処理23は、キャッシュメモリ31、消去済ページリスト32、論物変換テーブル34を参照して、データベースの更新データに対応する論物変換情報をトランザクション用論物変換テーブル35に書き込む(S2120)。
次にストレージ装置1に接続されたコンピュータ(図略)にROLLBACK文が入力される(S2030)。入力されたROLLBACK文は入出力装置10を介してデータベース処理部20、より詳しくは入出力部21に渡される。コマンド解釈・処理部22は、入出力部21からROLLBACK文を受け取り、このROLLBACK文に応じて保存・読み出し処理23にトランザクション用論物変換テーブル35の内容を削除するよう命令を送る。の命令を受け取った保存・読み出し処理23はトランザクション用論物変換テーブル35の内容を削除する(S2130)。
以上で、ストレージ装置1のトランザクション・ロールバック処理は終了する。
[2.3.トランザクション処理]
次に、ストレージ装置1のトランザクション処理について説明する。図4は、ストレージ装置1のトランザクション処理の例を示すフローチャートである。
トランザクション処理において、まずストレージ装置1はBEGIN文処理を実行する(S10)。図5に、BEGIN文処理の例を示すフローチャートを掲げる。BEGIN文処理では、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、BEGIN文の受け取りをトリガとして、トランザクション状態を「開始」にする(S110)。以上でBEGIN文処理は終了する。
図4に戻り、トランザクション処理の説明を続る。ステップS10に続いて、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、コマンド(命令文)入力を待ち受け、コマンド文入力を受信した場合には、当該コマンド文に応じた内容の処理(以下、「コマンド文処理」という)を実行する(S20)。図6に、コマンド文処理の例を示したフローチャートを掲げ、このフローチャートを参照しながらコマンド文処理を説明する。
コマンド文処理において、ストレージ装置1、より詳しくはデータベース処理部20は、データ登録の要求であるINSERT文、或いはデータベース更新の要求であるUPDATE文を、入出力装置10及び入出力部21を介して受信する(S210)。
ステップS210に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、受信した要求(INSERT文、或いはUPDATE文)を解釈し、書き込み先論理アドレスを決定する(S220)。
ステップS220に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、キャッシュメモリ31上に展開されたデータベースに、ステップS210で受信した要求に対応する登録データ、若しくは更新データを書き込む(S230)。なお、後に、不揮発性メモリ40の物理ページにキャッシュメモリ31上のデータがデータ管理部60によって書き込まれる。
ステップS230に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、消去済ページリスト32の先頭から書き込み先物理ページを取得する(S240)。
ステップS240に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、トランザクション状態であるか否かを判定する(S250)。
トランザクション状態であると判定した場合(S250, Yes)、ストレージ装置1、より詳しくはデータベース処理部20は、ステップS220で決定した当該論理アドレスと、この論理アドレスに対応する物理アドレスを対応付けて、トランザクション用論物変換テーブル35に登録する(S260)。ステップS260に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、ブロック状態テーブル33において、ステップS240で取得した物理ページの状態を「消去済」から「有効」に変更する(S270)。ステップS270の後、ストレージ装置1、より詳しくはデータベース処理部20はコマンド文処理を終了する。
一方、ステップS250においてトランザクション状態ではないと判定した場合(S250, No)、ストレージ装置1、より詳しくはデータベース処理部20は、論物変換テーブル34にステップS220で決定した当該論理アドレスに対応する物理アドレスを登録する(S280)。
ステップS280に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、論物変換テーブル34に、以前登録されていた物理アドレスに対応するブロック状態テーブル33のページの状態情報を「有効」から「無効」に変更する(S290)。なお、ページの状態情報を「有効」から「無効」に変更するのは、以前登録されていた物理アドレスが有効値の場合のみである。
ステップS290に続いて、ストレージ装置1、より詳しくはデータベース処理部20は前述のステップS270に進みコマンド文処理を続行する。
以上でコマンド文処理の説明を終了する。
図4に戻りトランザクション処理の説明を続る。ステップS20に続いて、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、コマンド入力が完了したか否かを判定する(S30)。具体的には、直近に受信したコマンド文がCOMMIT文若しくはROLLBACK文であるか否かを判定する。
ステップS30において、コマンド入力が完了していないと判定した場合(S30, No)、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、ステップS20に戻り、次のコマンド文入力を待ち受ける。
一方、ステップS30において、コマンド入力は完了したと判定した場合(S30, Yes)、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、トランザクション開始後の一連のコマンド文入力の内容に応じて、データベースに反映させるか否かを判定する(S40)。具体的には、直近に入力されたコマンド文がCOMMIT文である場合、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、データベースに反映させると判定する。一方、直近に入力されたコマンド文がROLLBACK文である場合、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、データベースに反映させないと判定する。
ステップS40においてデータベースに反映させると判定した場合(S40, Yes)、ストレージ装置1、より詳しくはデータベース処理部20は、COMMIT処理を実行する。図7に、COMMIT処理の一例を示すフローチャートを掲げる。COMMIT処理において、ストレージ装置1、より詳しくはデータベース処理部20は、論物変換テーブル34に、トランザクション用論物変換テーブル35の内容を反映(転記)し、その後トランザクション用論物変換テーブル35の内容を空 (削除)にする(S310)。
ステップS310に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、論物変換テーブル34に以前登録されていた物理アドレスに対応する、ブロック状態テーブル33のページの状態を、「有効」から「無効」に変更する(S320;以前登録されていた物理アドレスが有効な値の場合)。
ステップS320に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、トランザクション状態を終了する(S330)。
以上で、COMMIT処理は終了する。
図4に戻り、トランザクション処理の説明を続る。ステップS40においてデータベースに反映させないと判定した場合(S40, No)、ストレージ装置1、より詳しくはデータベース処理部20及びデータ管理部60は、ROLLBACK処理を実行する(S50)。図8に、ROLLBACK処理の一例を示すフローチャートを掲げる。ROLLBACK処理において、ストレージ装置1、より詳しくはデータベース処理部20は、トランザクション用論物変換テーブル35を空にする(S410)。
ステップS410に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、トランザクション用論物変換テーブル35に登録されていた物理アドレスに対応する、ブロック状態テーブル33のページの状態を、「有効」から「無効」に変更する(S420)。
ステップS420に続いて、ストレージ装置1、より詳しくはデータベース処理部20は、トランザクション状態を終了する(S430)。
以上で、ROLLBACK処理は終了する。
図4に戻り、トランザクション処理の説明を続る。ステップS50のCOMMIT処理、又はステップS60のROLLBACK処理を実行した後、ストレージ装置1、より詳しくはデータベース処理部20はトランザクション処理を終了する。
以上でトランザクション処理の説明を終了する。
[2.4.トランザクション処理におけるトランザクション用論物変換テーブル等の書き換え]
上述したトランザクション処理(S10〜S60)におけるトランザクション用論物変換テーブル35、論物変換テーブル34、不揮発性メモリの記憶内容の書き換えの例を述べる。
[2.4.1.トランザクション処理前]
図9に、トランザクション処理前のトランザクション用論物変換テーブル35、論物変換テーブル34、不揮発性メモリ40の記憶内容例を示す。トランザクション処理前において、図9に示す論物変換テーブル34は、論理アドレス「0」、論理アドレス「1」、論理アドレス「2」、論理アドレス「3」のそれぞれに対応するレコードを有している。論理アドレス「0」に対応するレコードは、対応する物理アドレスとして、不揮発性メモリ40のブロック「1」のページ「0」を記憶している。また、論理アドレス「1」に対応するレコードは、対応する物理アドレスとして、不揮発性メモリ40のブロック「2」のページ「1」を記憶している。論理アドレス「2」に対応するレコードは、対応する物理アドレスとして、不揮発性メモリ40のブロック「1」のページ「2」を記憶している。論理アドレス「3」に対応するレコードは、対応する物理アドレスとしてブロック「4」のページ「0」を記憶している。論物変換テーブル34の各レコードと、不揮発性メモリ40のブロック及びページとの対応関係を図中の矢印線で示す。
トランザクション処理前の時点では、トランザクション用論物変換テーブル35は、論理アドレスと物理アドレスとの対応関係はまだ記憶されていない。
[2.4.2.トランザクション処理開始後(1)]
図9に示した状態の後、ストレージ装置1が以下のコマンド文(SQL文)を受け取ったものとする。
BEGIN;
UPDATE table1 SET x1=n WHERE id=m;
上記BEGIN文を受け取ったストレージ装置1、より詳しくはデータベース処理部20は、トランザクション状態を開始するとともに、これに続くUPDATE文の内容を解釈して、書込み先論理アドレスを決定し、キャッシュメモリ31に更新データを書き込む。この例では、書込み先論理アドレスは「1」であるものとする。
次にストレージ装置1、より詳しくはデータベース処理部20は、消去済ページリスト32の先頭から書き込み先物理ページを取得する。この例では、消去済ページリスト32の先頭には、ブロック「3」のページ「0」が記述されているものとする。
上記に続いてストレージ装置1、より詳しくはデータベース処理部20は、トランザクション用論物変換テーブル35に前記書込み先論理アドレス「1」と、これに対応する物理アドレスである不揮発性メモリ40のブロック「3」のページ「0」を登録する。図10にこの時点の状態のトランザクション用論物変換テーブル35、論物変換テーブル34、不揮発性メモリの記憶内容例を示す。
ストレージ装置1、より詳しくはデータ管理部60は、上記処理のバックグラウンドで不揮発性メモリ40のブロック「3」のページ「0」に、論理アドレス「1」に対応するキャッシュメモリ31の更新データを書き込む処理を行う。
[2.4.3.トランザクション処理開始後(2)]
図10に示した状態の後、ストレージ装置1がさらに以下のコマンド文(SQL文)を受け取ったものとする。
UPDATE table1 SET x2=n WHERE id=b;
上記UPDATE文を受け取ったストレージ装置1、より詳しくはデータベース処理部20は、このUPDATE文の内容を解釈して、書込み先論理アドレスを決定し、キャッシュメモリ31に更新データを書き込む。この例では、書込み先論理アドレスは「2」であるものとする。
次にストレージ装置1、より詳しくはデータベース処理部20は、消去済ページリスト32の先頭から書き込み先物理ページを取得する。この例では、消去済ページリスト32の先頭には、ブロック「4」のページ「2」が記述されているものとする。
上記に続いてストレージ装置1、より詳しくはデータベース処理部20は、トランザクション用論物変換テーブル35に前記書込み先論理アドレス「2」と、これに対応する物理アドレスである不揮発性メモリ40のブロック「4」のページ「2」を新たに登録する。図11にこの時点の状態のトランザクション用論物変換テーブル35、論物変換テーブル34、不揮発性メモリの記憶内容例を示す。
ストレージ装置1、より詳しくはデータ管理部60は、上記処理のバックグラウンドで不揮発性メモリ40のブロック「4」のページ「2」に、論理アドレス「2」に対応するキャッシュメモリ31の更新データを書き込む処理を行う。
[2.4.4.トランザクション処理開始後(3)]
図11に示した状態の後、ストレージ装置1がさらにコマンド文(SQL文)であるCOMMIT文を受け取ったものとする。
上記COMMIT文を受け取ったストレージ装置1、より詳しくはデータベース処理部20は、論物変換テーブル34へトランザクション用論物変換テーブル35の内容を書き込む。この例では、ストレージ装置1、より詳しくはデータベース処理部20は、トランザクション用論物変換テーブル35に書き込まれている論理アドレス「1」に対応するブロック「3」、ページ番号「0」を、論物変換テーブル34の論理アドレス「1」に対応するブロック番号及びページ番号として書込み、トランザクション用論物変換テーブル35に書き込まれている論理アドレス「2」に対応するブロック「4」、ページ番号「2」を論物変換テーブル34の論理アドレス「1」に対応するブロック番号及びページ番号として書込む。
なお、不揮発性メモリ40へのデータの書き込みは、バックグラウンドでデータ管理部60が各コマンド文受領ごとに事前に実行しているため、COMMIT文を受け取った時点で新たに開始する不揮発性メモリ40への書込みは発生しない。
ストレージ装置1、より詳しくはデータベース処理部20は、トランザクション用論物変換テーブル35に書き込まれているデータをすべて削除する。
図12にこの時点の状態のトランザクション用論物変換テーブル35、論物変換テーブル34、不揮発性メモリの記憶内容例を示す。
[2.4.5.トランザクション処理開始後(4)]
図11に示した状態の後、ストレージ装置1がさらにコマンド文(SQL文)であるROLLBACK文を受け取った場合の動作を説明する。
ROLLBACK文を受け取ったストレージ装置1、より詳しくはデータベース処理部20は、トランザクション用論物変換テーブル35に書き込まれているデータをすべて削除する。なお、不揮発性メモリ40への更新データ、追加データの書き込みは、バックグラウンドでデータ管理部60が各コマンド文受領ごとに事前に実行しているが、論物変換テーブル34が指示しているブロック番号及びページ番号は、更新データ、追加データの書き込みが行われる前の内容のブロック番号及びページ番号であるため、不揮発性メモリ40への削除・書き換えを行う必要はない。
図13にこの時点の状態のトランザクション用論物変換テーブル35、論物変換テーブル34、不揮発性メモリの記憶内容例を示す。
[3.利点]
(1) 本実施の形態にかかるストレージ装置1によれば、トランザクション処理を、コミットおよびロールバック共、高速に実行することができる。
コミットおよびロールバック時点で、揮発性メモリの変更のみの場合、従来手法では、数百μs以上(NANDに保存する場合)が必要であるのに対して、本実施の形態にかかるストレージ装置1では、数μs以下(DRAMの場合)で完了する。
図14(A)に従来手法によるトランザクション処理のシーケンス図を示し、図14(B)に本実施の形態にかかるストレージ装置1によるトランザクション処理のシーケンス図を示して比較する。
図14(A)に示すように、従来手法によるトランザクション処理では、UPDATE文、INSERT文に応じてキャッシュメモリ31を更新し、その後COMMIT文の処理開始から、不揮発性メモリ40への更新データ、追加データ等の書き込みが行われる。
一方、図14(B)に示すように、本実施の形態にかかるストレージ装置1によるトランザクション処理では、UPDATE文、INSERT文に応じてキャッシュメモリ31を更新するとともに、不揮発性メモリ40への書き込みをバックグラウンドで実行する。また、COMMIT文の処理時ではキャッシュメモリ31上の論物変換テーブル34の書き換えのみで処理を終えることができる。すなわち、従来手法ではCOMMITまで不揮発性メモリ40への書き込みが行えなかったが、本実施の形態にかかるストレージ装置1は 裏(バックグラウンド)で不揮発性メモリ40の更新を行うため、トランザクション処理時間短縮が可能となる。
(2) 本実施の形態にかかるストレージ装置1によれば、揮発性メモリの使用量を少なく抑えることができるため、揮発性メモリ量に制約がある場合に有効である。
従来手法においては、レコードサイズ×件数分のメモリ使用量が必要であるのに対して、本実施の形態にかかるストレージ装置1では、論物変換テーブルの1エントリサイズ×件数分のメモリ使用量で足りる。
例をあげると、100バイト×10,000件、論物変換テーブル34の1エントリサイズ=4バイトとすると、必要な揮発性メモリ量は、従来手法では100×10,000 = 1,000Kバイトとなるのに対して、本実施の形態にかかるストレージ装置1では、4×10,000 = 40Kバイトとなり、大幅にメモリ使用量を低減させることが可能である。
[4.まとめ、その他]
以上、本発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加、組み合わせ等が可能である。
1,1A・・・ストレージ装置; 10・・・入出力装置; 20・・・データベース処理部; 30、30A・・・揮発性メモリ; 40・・・不揮発性メモリ; 50・・・演算装置; 60・・・データ管理部;

Claims (2)

  1. データベースを記憶する不揮発性メモリと、
    前記データベースを一時的に記憶するキャッシュメモリと、
    前記不揮発性メモリにおける書き込み可能なページの物理アドレスを記憶する消去済ページリストと、
    前記不揮発性メモリにおける各ブロックのページの状態を管理するデータを保存するブロック状態テーブルと、
    データの論理アドレスと、これに対応する前記不揮発性メモリの物理アドレスを対応付けて記憶する第1の変換テーブルと、
    データの論理アドレスと、これに対応する前記不揮発性メモリの物理アドレスを対応付けて記憶する第2の変換テーブルと、
    前記データベースを操作する命令であるコマンド文を受け取り、このコマンド文を解釈してデータベースの変更内容及び前記データの論理アドレスを決定し、前記データベースの変更内容に基づいて、前記キャッシュメモリ上のデータベースの内容を変更し、前記消去済ページリストから前記不揮発性メモリにおける書き込み先物理アドレスを取得し、前記キャッシュメモリ上のデータベースの変更された内容に対応する論理アドレスと、前記書き込み先物理アドレスとを対応付けて、前記第2の変換テーブルに書き込み、トランザクション処理の結果をデータベースに反映させること意味する命令を受け取ると、前記第2の変換テーブルの内容を前記第1の変換テーブルに反映させ、前記ブロック状態テーブルにおいて、前記書き込み先物理アドレスに対応するページの状態を有効とし、前記データベースの変更元の物理アドレスに対応するページの状態を無効とする第1の処理手段と、
    前記キャッシュメモリ上のデータベースの変更された内容を、前記不揮発性メモリの前記書き込み先物理アドレスへバックグラウンドで書き込む第2の処理手段と
    を有するストレージ装置。
  2. 前記第1の処理手段は、トランザクション処理の結果を取り消すことを意味する命令を受け取ると、前記第2の変換テーブル内容を前記第1の変換テーブルに反映させずに、前記第2の変換テーブル内容を取り消前記ブロック状態テーブルにおいて、前記書き込み先物理アドレスに対応するページの状態を無効とする
    請求項1に記載のストレージ装置。
JP2013244857A 2013-11-27 2013-11-27 ストレージ装置 Expired - Fee Related JP6289883B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013244857A JP6289883B2 (ja) 2013-11-27 2013-11-27 ストレージ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013244857A JP6289883B2 (ja) 2013-11-27 2013-11-27 ストレージ装置

Publications (2)

Publication Number Publication Date
JP2015103147A JP2015103147A (ja) 2015-06-04
JP6289883B2 true JP6289883B2 (ja) 2018-03-07

Family

ID=53378768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013244857A Expired - Fee Related JP6289883B2 (ja) 2013-11-27 2013-11-27 ストレージ装置

Country Status (1)

Country Link
JP (1) JP6289883B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6293709B2 (ja) * 2015-07-22 2018-03-14 株式会社東芝 ストレージシステムおよびストレージシステム用プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957236B1 (en) * 2002-05-10 2005-10-18 Oracle International Corporation Providing a useable version of a data item
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US8103822B2 (en) * 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory
US9104690B2 (en) * 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory

Also Published As

Publication number Publication date
JP2015103147A (ja) 2015-06-04

Similar Documents

Publication Publication Date Title
TWI670594B (zh) 資料儲存裝置
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US20150046670A1 (en) Storage system and writing method thereof
KR102275563B1 (ko) 호스트-관리 비휘발성 메모리
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
JP2011253251A (ja) データ記憶装置及びデータ書き込み方法
WO2017025039A1 (zh) 一种面向闪存存储的数据访问方法及其装置
TW202001573A (zh) 記憶系統
TWI671631B (zh) 記憶體管理方法以及儲存控制器
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
KR20140094278A (ko) 반도체 장치 및 이의 동작 방법
JP2018504692A (ja) トランザクション処理方法及び装置、並びにコンピュータシステム
WO2017113059A1 (zh) 一种差异数据备份方法、存储***和差异数据备份装置
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
KR20210050592A (ko) 저장 디바이스 상의 네임스페이스에서의 오류 검사
EP3385846B1 (en) Method and device for processing access request, and computer system
TW201734793A (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
TWI640864B (zh) 重疊輸入輸出記憶體管理單元映射及第二層記憶體讀取之二階命令緩衝器
US20140219041A1 (en) Storage device and data processing method thereof
US20210026763A1 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
KR20200056533A (ko) 맵 스케줄링을 수행하기 위한 스토리지 장치 및 그것을 포함하는 전자 장치
JP4242245B2 (ja) フラッシュrom制御装置
US20140218767A1 (en) Image forming apparatus, memory management method for image forming apparatus, and program
KR20100121389A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
JP6289883B2 (ja) ストレージ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160921

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180207

R151 Written notification of patent or utility model registration

Ref document number: 6289883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees