特許第6242711号(P6242711)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社東芝の特許一覧
<>
  • 特許6242711-ストレージ装置及びデータ管理方法 図000002
  • 特許6242711-ストレージ装置及びデータ管理方法 図000003
  • 特許6242711-ストレージ装置及びデータ管理方法 図000004
  • 特許6242711-ストレージ装置及びデータ管理方法 図000005
  • 特許6242711-ストレージ装置及びデータ管理方法 図000006
  • 特許6242711-ストレージ装置及びデータ管理方法 図000007
  • 特許6242711-ストレージ装置及びデータ管理方法 図000008
  • 特許6242711-ストレージ装置及びデータ管理方法 図000009
  • 特許6242711-ストレージ装置及びデータ管理方法 図000010
  • 特許6242711-ストレージ装置及びデータ管理方法 図000011
  • 特許6242711-ストレージ装置及びデータ管理方法 図000012
  • 特許6242711-ストレージ装置及びデータ管理方法 図000013
  • 特許6242711-ストレージ装置及びデータ管理方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6242711
(24)【登録日】2017年11月17日
(45)【発行日】2017年12月6日
(54)【発明の名称】ストレージ装置及びデータ管理方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20171127BHJP
【FI】
   G06F12/00 501B
   G06F12/00 517
   G06F12/00 542J
【請求項の数】5
【全頁数】21
(21)【出願番号】特願2014-33162(P2014-33162)
(22)【出願日】2014年2月24日
(65)【公開番号】特開2015-158797(P2015-158797A)
(43)【公開日】2015年9月3日
【審査請求日】2016年9月23日
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110001737
【氏名又は名称】特許業務法人スズエ国際特許事務所
(72)【発明者】
【氏名】佐藤 義永
(72)【発明者】
【氏名】高橋 健治
(72)【発明者】
【氏名】金松 基孝
【審査官】 田中 啓介
(56)【参考文献】
【文献】 特表2003−513357(JP,A)
【文献】 特表2007−501468(JP,A)
【文献】 特表2013−541743(JP,A)
【文献】 特開2008−159013(JP,A)
【文献】 米国特許出願公開第2011/0252000(US,A1)
【文献】 特開2008−181297(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/06−3/08
G06F12/00−12/12
G06F13/16−13/18
(57)【特許請求の範囲】
【請求項1】
各種データを記憶する不揮発性の半導体記憶装置を備え、当該半導体記憶装置を使用したデータベースへの多版同時実行制御を実行するデータベースシステムが実装されるストレージ装置において、
前記半導体記憶装置に記憶されているデータのバージョンを管理し、ガベージコレクションの実行時に不要なバージョンのデータを自動的に消去するコントローラと、
前記データベースシステムにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレスを保持する論物変換テーブル及び更新履歴リストを記憶するメモリと
を具備し、
前記半導体記憶装置は、NAND型フラッシュメモリを含み、
前記物理アドレスは、前記NAND型フラッシュメモリにおけるブロックを構成するページを特定し、
前記データの消去は、複数のページから構成されるブロック単位で行われ、
前記コントローラは、
ユーザによって指定された論理アドレスに対応する第1のデータを第2のデータに更新するためのデータ更新要求が前記データベースシステムから入力された場合、当該第2のデータを当該第1のデータの第1の物理アドレスとは異なる第2の物理アドレスによって特定されるページに書き込むデータ更新手段と、
前記ユーザによって指定された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第1の物理アドレスを、前記第1のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録する登録手段と、
前記ユーザによって指定された論理アドレスに対応づけて前記論物変換テーブルに保持されている第1の物理アドレスを前記第2の物理アドレスに更新するテーブル更新手段と、
前記更新履歴リストに登録されたバージョン情報に基づいて、当該バージョン情報に対応づけて前記更新履歴リストに登録された第1の物理アドレスによって特定されるページの状態を無効とする無効化手段と、
前記状態が無効とされたページを含む第1のブロックを構成する複数のページのうち、状態が無効であるページの割合が閾値以上である場合、当該複数のページのうち状態が有効であるページに書き込まれている第3のデータを前記第1のブロック以外の第2のブロックを構成するページにコピーするコピー手段と、
前記第1のブロックを構成する複数のページに書き込まれているデータを消去する消去手段と
を含む
ことを特徴とするストレージ装置。
【請求項2】
前記無効化手段は、ユーザによって指定されたバージョンより過去のバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録された第1の物理アドレスによって特定されるページの状態を無効とすることを特徴とする請求項1記載のストレージ装置。
【請求項3】
前記コントローラは、ユーザによって指定されたバージョンを示すバージョン情報を含む復元要求が入力された場合、当該復元要求に含まれるバージョン情報に対応づけて前記更新履歴リストに登録された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに登録された第2の物理アドレスを、前記第2のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録するとともに、当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第2の物理アドレスを、前記復元要求に含まれるバージョン情報に対応づけて前記更新履歴リストに登録された第1の物理アドレスに変更する復元手段を更に含むことを特徴とする請求項1記載のストレージ装置。
【請求項4】
前記コントローラは、バージョン確定手段を更に含み、
前記登録手段は、ユーザの指示に基づくバージョン確定要求が入力されるまでは同一のバージョンを示すバージョン情報に対応づけて前記論理アドレス及び前記第1の物理アドレスを前記更新履歴リストに登録し、
前記バージョン確定手段は、前記バージョン確定要求が入力された場合に前記更新履歴リストに登録された論理アドレス及び第1の物理アドレスを前記同一のバージョンとして確定する
ことを特徴とする請求項1記載のストレージ装置。
【請求項5】
各種データを記憶する不揮発性の半導体記憶装置を使用したデータベースへの多版同時実行制御を実行するデータベースシステムが実装されるストレージ装置であって、前記半導体記憶装置に記憶されているデータのバージョンを管理し、ガベージコレクションの実行時に不要なバージョンのデータを自動的に消去するコントローラと、前記データベースシステムにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレスを保持する論物変換テーブル及び更新履歴リストを記憶するメモリとを備え、前記半導体記憶装置はNAND型フラッシュメモリを含み、前記物理アドレスは前記NAND型フラッシュメモリにおけるブロックを構成するページを特定し、前記データの消去は複数のページから構成されるブロック単位で行われるストレージ装置において、前記コントローラが実行するデータ管理方法であって、
ユーザによって指定された論理アドレスに対応する第1のデータを第2のデータに更新するためのデータ更新要求が前記データベースシステムから入力された場合、当該第2のデータを当該第1のデータの第1の物理アドレスとは異なる第2の物理アドレスによって特定されるページに書き込むステップと、
前記ユーザによって指定された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第1の物理アドレスを、前記第1のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録するステップと、
前記ユーザによって指定された論理アドレスに対応づけて前記論物変換テーブルに保持されている第1の物理アドレスを前記第2の物理アドレスに更新するステップと、
前記更新履歴リストに登録されたバージョン情報に基づいて、当該バージョン情報に対応づけて前記更新履歴リストに登録された第1の物理アドレスによって特定されるページの状態を無効とするステップと、
前記状態が無効とされたページを含む第1のブロックを構成する複数のページのうち、状態が無効であるページの割合が閾値以上である場合、当該複数のページのうち状態が有効であるページに書き込まれている第3のデータを前記第1のブロック以外の第2のブロックを構成するページにコピーするステップと、
前記第1のブロックを構成する複数のページに書き込まれているデータを消去するステップと
を具備することを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ストレージ装置及びデータ管理方法に関する。
【背景技術】
【0002】
近年では、例えばNAND型フラッシュメモリのような不揮発性の半導体記憶装置を備えたストレージ装置(NAND型フラッシュメモリストレージ)が知られている。このストレージ装置には、例えばNAND型フラッシュメモリを使用したデータベースへのアクセスを制御するデータベースシステムが実装される。
【0003】
ところで、このようなストレージ装置に実装されるデータベースシステムにおいては、マルチユーザ環境におけるデータベースの性能を向上させるために、多版同時実行制御(MVCC:MultiVersion Concurrency Control)が実行される。このMVCCによれば、例えばデータベースに格納される任意のデータにおける変更状態を複数保持しておくことで、データアクセスの依存関係を解決することができる。
【0004】
しかしながら、上記したMVCCを実行するデータベースシステムでは、データが更新される度に、当該更新前後の複数のデータを格納しておく必要がある。このため、データベース内では、不要なデータが大量に発生する。これは、データベースの性能の低下を招く。
【0005】
そこで、データベースシステムにおいては、データベース動作の効率性を上げるための不要データ領域の回収やデータ再編成のためにバキューム処理が実行される。このバキューム処理によれば、データベース内の不要データの消去等が行われる。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2011−180831号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上記したようにMVCCを実行するデータベースシステムにおいてはバキューム処理が必須であるが、当該バキューム処理が実行されている間はデータベースをロックする必要がある。
【0008】
この場合、バキューム処理中はデータベースへのアクセスができないため、データベースの運用上好ましくない。
【0009】
したがって、バキューム処理を実行することなく不要データの消去等を行う仕組みが望まれている。
【0010】
そこで、本発明が解決しようとする課題は、バキューム処理を実行することなく不要データの消去を行うことが可能なストレージ装置及びデータ管理方法を提供することにある。
【課題を解決するための手段】
【0011】
実施形態によれば、各種データを記憶する不揮発性の半導体記憶装置を備え、当該半導体記憶装置を使用したデータベースへの多版同時実行制御を実行するデータベースシステムが実装されるストレージ装置が提供される。実施形態に係るストレージ装置は、前記半導体記憶装置に記憶されているデータのバージョンを管理し、ガベージコレクションの実行時に不要なバージョンのデータを自動的に消去するコントローラと、前記データベースシステムにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレスを保持する論物変換テーブル及び更新履歴リストを記憶するメモリとを具備する。前記半導体記憶装置は、NAND型フラッシュメモリを含み、前記物理アドレスは、前記NAND型フラッシュメモリにおけるブロックを構成するページを特定し、前記データの消去は、複数のページから構成されるブロック単位で行われる。前記コントローラは、データ更新手段と、登録手段と、テーブル更新手段と、無効化手段と、コピー手段と、消去手段とを含む。前記データ更新手段は、ユーザによって指定された論理アドレスに対応する第1のデータを第2のデータに更新するためのデータ更新要求が前記データベースシステムから入力された場合、当該第2のデータを当該第1のデータの第1の物理アドレスとは異なる第2の物理アドレスによって特定されるページに書き込む。前記登録手段は、前記ユーザによって指定された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第1の物理アドレスを、前記第1のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録する。前記テーブル更新手段は、前記ユーザによって指定された論理アドレスに対応づけて前記論物変換テーブルに保持されている第1の物理アドレスを前記第2の物理アドレスに更新する。前記無効化手段は、前記更新履歴リストに登録されたバージョン情報に基づいて、当該バージョン情報に対応づけて前記更新履歴リストに登録された第1の物理アドレスによって特定されるページの状態を無効とする。前記コピー手段は、前記状態が無効とされたページを含む第1のブロックを構成する複数のページのうち、状態が無効であるページの割合が閾値以上である場合、当該複数のページのうち状態が有効であるページに書き込まれている第3のデータを前記第1のブロック以外の第2のブロックを構成するページにコピーする。前記消去手段は、前記第1のブロックを構成する複数のページに書き込まれているデータを消去する。
【図面の簡単な説明】
【0012】
図1】実施形態に係るストレージ装置のハードウェア構成を示すブロック図。
図2図1に示す論物変換テーブル141のデータ構造の一例を示す図。
図3図1に示すページ状態テーブル142のデータ構造の一例を示す図。
図4図1に示す更新履歴リスト144のデータ構造の一例を示す図。
図5】ストレージ装置10において実行されるデータ更新処理の処理手順を示すフローチャート。
図6】データ更新処理が実行された場合における論物変換テーブル141及び更新履歴リスト144の遷移について説明するための図。
図7】ストレージ装置10において実行される保存バージョン設定処理の処理手順を示すフローチャート。
図8】保存バージョン設定処理が実行される前の論物変換テーブル141、ページ状態テーブル142及び更新履歴リスト144のデータ構造の一例を示す。
図9】保存バージョン設定処理が実行された後の論物変換テーブル141、ページ状態テーブル142及び更新履歴リスト144のデータ構造の一例を示す。
図10】ストレージ装置10において実行されるバージョン確定処理の処理手順を示すフローチャート。
図11】ストレージ装置10において実行されるバージョン復元処理の処理手順を示すフローチャート。
図12】バージョン復元処理が実行された場合における論物変換テーブル141及び更新履歴リスト144の遷移について説明するための図。
図13】データ消去部135によって実行されるガベージコレクションの処理手順を示すフローチャート。
【発明を実施するための形態】
【0013】
以下、図面を参照して、実施形態について説明する。
【0014】
図1は、本実施形態に係るストレージ装置のハードウェア構成を示すブロック図である。ストレージ装置10は、各種データを記憶する不揮発性の半導体記憶装置を備えている。図1においては、不揮発性の半導体記憶装置の一例としてNAND型フラッシュメモリ11が示されている。
【0015】
このNAND型フラッシュメモリ11に対しては、ページと称される単位でデータの書き込み及び読み出しが行われる。また、NAND型フラッシュメモリ11に記憶されたデータの消去は、ブロックと称される単位で行われる。このブロックは、複数のページから構成されるものとする。
【0016】
また、NAND型フラッシュメモリ11においては、データを上書きすることはできない。このため、NAND型フラッシュメモリ11に記憶されているデータが更新される場合には、常に別のページ(物理アドレス)にデータが書き込まれる。また、データの更新によって不要となったデータの領域(ページ)に対する他のデータの書き込みを可能とするためには、当該ページ(のデータ)を一旦消去する必要がある。上記したようにNAND型フラッシュメモリ11におけるデータ消去は、複数のページから構成されるブロック単位で行われる。
【0017】
なお、本実施形態に係るストレージ装置10には、NAND型フラッシュメモリ11を使用したデータベースへのアクセスを制御するデータベースシステムが実装されているものとする。このデータベースシステム上では、データベースに格納される各データは、例えばLBA(Logical Block Address)のような論理アドレスを用いて管理される。なお、データベースにおけるデータ登録はレコードと称されるが、本実施形態においては、便宜的に、レコードと上記したページのサイズは同一であるものとする。また、データベースシステムにおいては、マルチユーザ環境におけるデータベースの性能向上のために、多版同時実行制御(MVCC)が実行される。
【0018】
更に、ストレージ装置10は、図1に示すように、入出力部12、コントローラ13及びメモリ14を備える。
【0019】
入出力部12は、ストレージ装置10に実装されているデータベースシステムとの入出力処理を行う。
【0020】
コントローラ(NANDコントローラ)13は、メモリ14に記憶されている各種情報に基づいて、NAND型フラッシュメモリ11に記憶されているデータを管理し、当該NAND型フラッシュメモリ11へのデータの書き込み及び読み込みを制御する。
【0021】
コントローラ13は、データ更新部131、保存バージョン設定部132、バージョン確定部133、バージョン復元部134及びデータ消去部135を含む。また、メモリ14には、論物変換テーブル141、ページ状態テーブル142、消去済みページリスト143、更新履歴リスト144及び設定テーブル145が記憶される。
【0022】
なお、メモリ14は揮発性メモリであり、例えばストレージ装置10の起動時等に他の不揮発性メモリ領域に記憶されていた論物変換テーブル141、ページ状態テーブル142、消去済みページリスト143、更新履歴リスト144及び設定テーブル145がメモリ14に記憶されるものとする。
【0023】
論物変換テーブル141には、データベースシステムにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレス(当該データが記憶されているNAND型フラッシュメモリ11上の位置)が保持される。なお、物理アドレスは、NAND型フラッシュメモリ11におけるブロックに割り当てられた番号(以下、ブロック番号と表記)及び当該ブロックを構成するページに割り当てられた番号(以下、ページ番号と表記)を含む。このブロック番号及びページ番号により、NAND型フラッシュメモリ11上の一意の位置(特定のブロックを構成する特定のページ)を特定することができる。
【0024】
ページ状態テーブル142は、NAND型フラッシュメモリ11における各ブロックを構成するページの状態を管理するためのテーブルである。
【0025】
消去済みページリスト143は、NAND型フラッシュメモリ11における各ページのうち、データを消去済みのページ(つまり、データを書き込み可能なページ)のリストである。
【0026】
データ更新部131は、入出力部12を介して入力されたデータ更新要求(書き込み要求)に基づいて、NAND型フラッシュメモリ11に記憶されているデータを更新する。なお、データ更新要求は、例えばユーザによって指定された論理アドレスに対応するデータ(第1のデータ)を他のデータ(第2のデータ)に更新する際にデータベースシステムから入力される。以下の説明では、便宜的に、ユーザによって指定された論理アドレスに対応するデータを更新前データと称し、当該更新前データを更新するための他のデータを更新後データと称する。データ更新要求には、ユーザによって指定された論理アドレス及び更新後データが含まれる。
【0027】
データ更新部131は、データ更新要求が入力された場合、NAND型フラッシュメモリ11の更新前データの物理アドレス(第1の物理アドレス)とは異なる物理アドレス(第2の物理アドレス)に更新後データを書き込む。この場合、データ更新部131は、上記した消去済みページリストからページ(書き込み可能なページ)を取得し、当該ページに対して書き込み処理を実行する。
【0028】
更新後データがNAND型フラッシュメモリ11に書き込まれると、データ更新部131は、データ更新要求に含まれる論理アドレス及び当該論理アドレスに対応づけて論物変換テーブル141に保持されている物理アドレス(つまり、更新前データの物理アドレス)を取得する。データ更新部131は、取得された論理アドレス及び物理アドレスを、更新前データに割り当てられたバージョンを示すバージョン情報(例えば、当該バージョンを表すバージョン番号)に対応づけて更新履歴リスト144に登録する。
【0029】
また、データ更新部131は、データ更新要求に含まれる論理アドレスに対応づけて論物変換テーブル141に保持されている物理アドレス(ブロック番号及びページ番号)を、更新後データが書き込まれた物理アドレスに更新する。
【0030】
このようにデータ更新部131によってデータの更新が行われると、論物変換テーブル141には最新のデータに関する論理アドレスと物理アドレスとの対応関係が保持される。一方、更新履歴リスト144には、古いバージョンの論理アドレスと物理アドレスとの対応関係が登録される。すなわち、更新履歴リスト144によれば、各バージョンのデータを管理することができる。
【0031】
なお、データ更新部131は、データの更新処理に応じて、上記したページ状態テーブル及び消去済みページリストを更新する。
【0032】
保存バージョン設定部132は、データを保存すべきバージョンを設定テーブル145に設定する。データを保存すべきバージョンが設定テーブル145に設定された場合、保存バージョン設定部132は、当該バージョンより過去の(古い)バージョンを示すバージョン情報に対応づけて更新履歴リスト144に登録された物理アドレスによって特定されるページ(の状態)を無効とする。このページの無効は、ページ状態テーブル142に登録される。
【0033】
バージョン確定部133は、更新履歴リスト144において同一のバージョンとして管理される範囲を確定(設定)する。具体的には、バージョン確定部133は、入出力部12を介してユーザの指示に基づくバージョン確定要求が入力された場合、当該バージョン確定要求が入力されるまでに更新履歴リスト144に登録された論理アドレス及び物理アドレスを同一のバージョンとして確定する。
【0034】
バージョン復元部134は、入出力部12を介して入力されたバージョン復元要求に基づいて、更新履歴リスト144に登録された論理アドレスと物理アドレスを論物変換テーブル141に復元する。なお、バージョン復元要求は、ユーザによって指定されたバージョンを示すバージョン情報を含む。
【0035】
具体的には、バージョン復元部134は、バージョン復元要求に含まれるバージョン情報に対応づけて更新履歴リスト144に登録された論理アドレスを取得する。バージョン復元部134は、取得された論理アドレス及び当該論理アドレスに対応づけて論物変換テーブル141に登録された物理アドレスを、当該物理アドレスに記録されているデータに割り当てられたバージョンを示すバージョン情報に対応づけて更新履歴リストに登録する。また、バージョン復元部134は、バージョン復元要求に含まれるバージョン情報に対応づけて更新履歴リスト144に登録された論理アドレス及び物理アドレスを、論物変換テーブル141に復元する。
【0036】
データ消去部135は、例えば上記したように保存バージョン設定部132によって設定テーブル145に設定されたバージョンに基づいて無効にされたページから構成されるブロック(のデータ)を消去する。この場合、データ消去部135は、NAND型フラッシュメモリ11における書き込み領域の確保処理であるガベージコレクション(GC)を実行する。なお、ガベージコレクションの詳細については後述する。
【0037】
図2は、図1に示す論物変換テーブル141のデータ構造の一例である。図2に示すように、論物変換テーブル141には、論理アドレス及び物理アドレスが対応づけて保持される。なお、論理アドレスは、データベースシステムにおいて用いられるアドレスである。一方、物理アドレスは、当該物理アドレスに対応づけられている論理アドレスに対応するデータが記憶されているNAND型フラッシュメモリ11上のアドレスである。物理アドレスは、NAND型フラッシュメモリ11におけるブロックに割り当てられたブロック番号及び当該ブロックを構成するページに割り当てられたページ番号を含む。
【0038】
図2に示す例では、論物変換テーブル141には、論理アドレス「1」とブロック番号「1」及びページ番号「4」を含む物理アドレスとが対応づけて保持されている。これによれば、論理アドレス「1」に対応するデータが、ブロック番号「1」が割り当てられたブロックを構成する複数のページのうちページ番号「4」が割り当てられたページ(の領域)に記憶されていることが示されている。
【0039】
同様に、論物変換テーブル141には、論理アドレス「2」とブロック番号「1」及びページ番号「5」を含む物理アドレスとが対応づけて保持されている。これによれば、論理アドレス「2」に対応するデータが、ブロック番号「1」が割り当てられたブロックを構成する複数のページのうちページ番号「5」が割り当てられたページ(の領域)に記憶されていることが示されている。
【0040】
ここでは論理アドレス「1」及び「2」についてのみ説明したが、他の論理アドレスについても同様であるため、その詳しい説明を省略する。
【0041】
図3は、図1に示すページ状態テーブル142のデータ構造の一例を示す。ページ状態テーブル142はNAND型フラッシュメモリ11におけるブロック毎に用意されているが、図3においてはブロック番号「1」が割り当てられたブロックのページ状態テーブル142が示されている。
【0042】
図3に示すように、ページ状態テーブル142には、ブロックを構成するページ毎に、当該ページに割り当てられたページ番号及び当該ページの状態が対応づけて保持される。なお、ページの状態には、当該ページのデータが有効であることを示す「00」、当該ページのデータが無効であることを示す「01」及び当該ページのデータが消去済みであることを示す「10」が含まれる。
【0043】
図3に示すページ状態テーブル142の例では、ブロック番号「1」が割り当てられたブロックがページ番号「1」〜「8」の各々が割り当てられた複数のページから構成されていることが示されている。また、この複数のページのうち、ページ番号「1」〜「5」が割り当てられたページの状態が有効(つまり、「00」)であり、ページ番号「6」〜「8」が割り当てられたページの状態が消去済み(つまり、「10」)であることが示されている。
【0044】
ここではブロック番号「1」が割り当てられたブロックのページ状態テーブル142についてのみ説明したが、他のブロックのページ状態テーブル142についても同様であるため、その詳しい説明を省略する。
【0045】
なお、上述した消去済みページリスト143には、NAND型フラッシュメモリ11におけるブロック毎に、ページ状態テーブル142において状態「10」に対応づけられているページ番号が登録(追加)される。図3に示すページ状態テーブル142の場合には、ページ番号「1」〜「8」のうち、ページ番号「6」〜「8」が消去済みページリスト143に登録される。なお、消去済みページリスト143へのページ番号の登録処理は、ページ状態テーブル142の更新に伴って実行される。
【0046】
図4は、図1に示す更新履歴リスト144のデータ構造の一例を示す。図4に示すように、更新履歴リスト144には、バージョン情報に対応づけて、論理アドレス及び物理アドレスが登録される。バージョン情報は、当該バージョン情報に対応づけられている物理アドレスに記憶されているデータ(つまり、更新前データ)に割り当てられたバージョンを表す例えばバージョン番号を含む。なお、バージョン番号は、例えば値が大きいほど新しいバージョンであることを示すものとする。
【0047】
図4に示す例では、更新履歴リスト144には、バージョン番号「2」に対応づけて、論理アドレス「2」とブロック番号「1」及びページ番号「3」を含む物理アドレスとが登録されている。これによれば、論理アドレス「2」に対応するバージョンが2であるデータが、ブロック番号「1」が割り当てられたブロックを構成するページ番号「3」が割り当てられたページ(の領域)に格納されていることが示されている。
【0048】
また、更新履歴リスト144には、バージョン番号「2」に対応づけて、論理アドレス「1」とブロック番号「1」及びページ番号「1」を含む物理アドレスとが登録されている。これによれば、論理アドレス「1」に対応するバージョンが2であるデータが、ブロック番号「1」が割り当てられたブロックを構成するページ番号「1」が割り当てられたページ(の領域)に格納されていることが示されている。
【0049】
このように同一のバージョン(番号)に対して異なる複数の論理アドレス(及び物理アドレス)が登録されても構わない。
【0050】
また、図4に示す例では、更新履歴リスト144には、バージョン番号「1」に対応づけて、論理アドレス「2」とブロック番号「1」及びページ番号「2」を含む物理アドレスとが登録されている。これによれば、論理アドレス「2」に対応するバージョンが1であるデータが、ブロック番号「1」が割り当てられたブロックを構成するページ番号「2」が割り当てられたページ(の領域)に格納されていることが示されている。
【0051】
なお、ブロック番号「1」が割り当てられたブロックを構成するページ番号「2」が割り当てられたページに格納されているデータ(つまり、論理アドレス「2」に対応するバージョンが1であるデータ)は、上記したブロック番号「1」が割り当てられたブロックを構成するページ番号「3」が割り当てられたページに格納されているデータ(つまり論理アドレス「2」に対応するバージョンが2であるデータ)より古いバージョンのデータである。
【0052】
次に、図5のフローチャートを参照して、本実施形態に係るストレージ装置10において実行されるデータ更新処理の処理手順について説明する。このデータ更新処理は、ユーザによって指定された論理アドレスに対応するデータを更新する際の処理であり、データベースシステムからデータ更新要求が入力された場合に実行される。なお、データ更新要求には、ユーザによって指定された論理アドレス(更新前データに対応する論理アドレス)及び更新後データが含まれる。
【0053】
まず、データ更新部131は、入出力部12を介して入力されたデータ更新要求を取得する(ステップS1)。
【0054】
データ更新要求が取得されると、データ更新部131は、消去済みページリスト143から更新後データを書き込み可能なページ(の物理アドレス)を取得する(ステップS2)。以下の説明では、ステップS2において取得されたページを便宜的に書き込み先物理ページと称する。
【0055】
データ更新部131は、NAND型フラッシュメモリ11にアクセスし、更新後データを書き込み先物理ページに書き込む(ステップS3)。
【0056】
次に、データ更新部131は、データ更新要求に含まれる論理アドレス(以下、対象論理アドレスと表記)及び当該対象論理アドレスに対応づけて論物変換テーブル141に保持されている物理アドレス(つまり、更新前データの物理アドレス)を更新履歴リスト144に追加(登録)する(ステップS4)。この場合における対象論理アドレス及び更新前データの物理アドレスは、当該更新前データに割り当てられたバージョンを表すバージョン番号に対応づけて登録される。これにより、更新履歴リスト144において、更新前データのバージョンが管理される。
【0057】
データ更新部131は、対象論理アドレスに対応づけて論物変換テーブル141に保持されている物理アドレスを更新後データが書き込まれたページ(つまり、書き込み先物理ページ)の物理アドレス(ブロック番号及びページ番号)に更新することによって、当該論物変換テーブル141を更新する(ステップS5)。
【0058】
また、データ更新部131は、ページ状態テーブル142に保持されている書き込み先物理ページの状態を消去済みから有効に変更することによって、ページ状態テーブル142を更新する(ステップS6)。具体的には、データ更新部131は、更新後データが書き込まれたページの物理アドレスに含まれるブロック番号が割り当てられたブロックのページ状態テーブル142において、当該物理アドレスに含まれるページ番号に対応づけられている状態を「10」から「00」に変更する。なお、書き込み先物理ページ(に割り当てられたページ番号)は、消去済みページリスト143から削除される。
【0059】
ここで、図6を参照して、上記したデータ更新処理が実行された場合における論物変換テーブル141及び更新履歴リスト144の遷移について具体的に説明する。
【0060】
図6に示すように、データ更新処理が実行される前の論物変換テーブル141xには、論理アドレス「1」とブロック番号「1」及びページ番号「4」を含む物理アドレスとが対応づけて保持されているものとする。同様に、論物変換テーブル141xには、論理アドレス「2」とブロック番号「1」及びページ番号「3」を含む物理アドレスとが対応づけて保持されているものとする。
【0061】
また、データ更新処理が実行される前の更新履歴リスト144xには、バージョン番号「1」に対応づけて、論理アドレス「2」とブロック番号「1」及びページ番号「2」を含む物理アドレスとが登録されているものとする。
【0062】
この場合において、論理アドレス「2」を含むデータ更新要求が入出力部12を介して入力された場合を想定する。このとき、消去済みページリスト143から取得された書き込み先物理ページの物理アドレスにはブロック番号「1」及びページ番号「5」が含まれているものとする。
【0063】
データ更新要求に含まれる更新後データが書き込み先物理ページに書き込まれると、更新履歴リスト144xには、論物変換テーブル141xに保持されている論理アドレス「2」及び物理アドレス(ブロック番号「1」及びページ番号「3」)がバージョン番号「2」に対応づけて登録される。これによれば、更新履歴リスト144xは、更新履歴リスト144yに遷移する。
【0064】
一方、論物変換テーブル141xに保持されている論理アドレス「2」に対応づけられている物理アドレス(ブロック番号「1」及びページ番号「3」)は、書き込み物理ページの物理アドレス(ブロック番号「1」及びページ番号「5」)に更新される。これによれば、論物変換テーブル141xは、論物変換テーブル141yに遷移する。
【0065】
上記したようなデータ更新処理によれば、データの更新時に、更新前データが記憶されている物理アドレスを当該データが更新された論理アドレスとともに更新履歴リスト144に登録することができる。
【0066】
次に、図7のフローチャートを参照して、本実施形態に係るストレージ装置10において実行される保存バージョン設定処理の処理手順について説明する。この保存バージョン設定処理は、データを保存すべきバージョンを設定する際の処理であり、保存バージョン設定要求が入力された場合に実行される。なお、保存バージョン設定要求(Version_set(int ver_num))には、データを保存すべきバージョンを示す値(以下、保存バージョン数と表記)が含まれる。この保存バージョン数は、ユーザによって指定される。
【0067】
ここでは、上述したデータ更新処理が実行されることによって、更新履歴リスト144には各バージョン番号に対応づけて論理アドレス及び物理アドレスが登録されているものとする。
【0068】
まず、保存バージョン設定部132は、入出力部12を介して入力された保存バージョン設定要求を取得する(ステップS11)。
【0069】
次に、保存バージョン設定部132は、保存バージョン設定要求に含まれる保存バージョン数を設定テーブル145に設定する(ステップS12)。
【0070】
保存バージョン設定部132は、設定テーブル145に設定された保存バージョン数に基づいてページ状態テーブル142を更新する(ステップS13)。この場合、保存バージョン設定部132は、バージョン番号の大きい順に保存バージョン数分のバージョンを残し、当該バージョンより過去のバージョンの物理アドレスによって特定されるページの状態を無効とするようにページ状態テーブル142を更新する。これにより、保存バージョン数分のバージョン以外のバージョンのデータが無効とされる。
【0071】
ここで、図8及び図9を参照して、ステップS13におけるページ状態テーブル142の更新処理について具体的に説明する。
【0072】
まず、図8は、保存バージョン設定処理が実行される前の論物変換テーブル141、ページ状態テーブル142及び更新履歴リスト144のデータ構造の一例を示す。
【0073】
図8に示すように、履歴更新リスト144には、バージョン番号「1」及び「2」に対応づけて、論理アドレス及び物理アドレスが登録されているものとする。また、論物変換テーブル141に保持されている物理アドレスによって特定されるページ及び更新履歴リスト144に登録されている物理アドレスによって特定されるページの状態は、ページ状態テーブル142において全て「00」(つまり、有効)であるものとする。
【0074】
ここで、保存バージョン数「1」を含む保存バージョン設定要求が入出力部12を介して入力された場合を想定する。この場合には、バージョン番号が最も大きい1つのバージョン以外のバージョンの物理アドレスによって特定されるページの状態は無効とする。
【0075】
具体的には、図9に示すように、バージョン番号「1」に対応づけて履歴更新リスト144に登録されている物理アドレス(ブロック番号「1」及びページ番号「2」)によって特定されるページの状態は「01」(つまり、無効)に変更される。
【0076】
なお、論物変換テーブル141に保持されている物理アドレスによって特定されるページ及びバージョン番号「2」に対応づけて履歴更新リスト144に登録されている物理アドレスによって特定されるページの状態は「00」(つまり、有効)のままとする。
【0077】
上記したような保存バージョン設定処理によれば、ユーザによって指定されたバージョン(つまり、保存バージョン数分のバージョン)のデータを残し、当該バージョンより過去のバージョンのデータについては無効とすることができる。このように過去のバージョンのデータが無効とされたことは、例えば入出力部12を介してデータベースシステムに通知されることにより、当該データベースシステム側で認識することができる。
【0078】
なお、上記した保存バージョン数としては0を指定することも可能である。この場合には、更新履歴リスト144に登録されている物理アドレスによって特定されるページの全ての状態が無効とされる(つまり、論物変換テーブル141に保持されている物理アドレスに対応するページのみが有効とされる)。
【0079】
本実施形態においては保存バージョン数がユーザによって指定されるものとして説明したが、データを保存すべきバージョンまたはデータを保存すべきでない(つまり、データを無効とすべき)バージョンを表すバージョン番号がユーザによって直接指定されても構わない。
【0080】
次に、図10のフローチャートを参照して、本実施形態に係るストレージ装置10において実行されるバージョン確定処理の処理手順について説明する。このバージョン確定処理は、同一のバージョンとして管理される範囲を確定させる際の処理であり、バージョン確定要求が入力された場合に実行される。なお、バージョン確定要求(version_commit())はユーザの指示に応じて入力される。
【0081】
なお、以下の説明においては、更新履歴リスト144に対応づけて登録されている論理アドレス及び物理アドレスの組を便宜的に論物アドレスと称する。
【0082】
まず、バージョン確定部133は、入出力部12を介して入力されたバージョン確定要求を取得する(ステップS21)。
【0083】
バージョン確定要求が取得されると、バージョン確定部133は、バージョンが確定されていない論物アドレスが更新履歴リスト144に存在する(つまり、バージョン未確定の論物アドレスがある)か否かを判定する(ステップS22)。
【0084】
バージョン未確定の論物アドレスがあると判定された場合(ステップS22のYES)、バージョン確定部133は、更新履歴リスト144に登録されている当該論物アドレスを同一のバージョンとして確定する(ステップS23)。つまり、複数のバージョン未確定の論物アドレス(論理アドレス及び物理アドレスの組)が更新履歴リスト144に登録されている場合には、当該論物アドレスの全てが同一のバージョンとして確定される。
【0085】
上記したようにデータ更新処理が実行されることによって更新履歴リスト144には、バージョン番号に対応づけて論理アドレス及び物理アドレスが登録されるが、当該データ更新処理(更新履歴リスト144への登録処理)の後にバージョン確定部133によってバージョンが確定されることによって、当該バージョンの論物アドレスが有効なものとなる。なお、バージョン確定処理によって確定されたバージョンを表すバージョン番号は、入出力部12を介して出力され、ユーザに対して通知される。これにより、ユーザは、更新履歴リスト144に登録されているバージョンについて把握することができる。
【0086】
上記したステップS23の処理によれば、更新履歴リスト144において新たなバージョンが追加されることになる(つまり、バージョンが増える)。このため、バージョン確定部133は、上記したように設定テーブル145に設定された保存バージョン数に基づいてページ状態テーブル142を更新する(ステップS24)。なお、このステップS24の処理は、上述した図7に示すステップS13の処理と同様であるため、その詳しい説明を省略する。
【0087】
上記したようなバージョン確定処理によれば、バージョン確定要求が入力されるまでに更新履歴リスト144に登録される論物アドレスを同一のバージョンとして管理することができる(つまり、同一のバージョン番号に対応づけられる)。なお、バージョン確定処理が実行された後にデータ更新処理が実行された場合には、次のバージョンを示すバージョン情報に対応づけて論物アドレスが更新履歴リストに登録されることになる。
【0088】
また、バージョン確定要求が入力されるまでに論理アドレスが共通する複数の論物アドレスが更新履歴リスト144に登録される場合には、後に実行されるデータ更新処理による論物アドレスのみが登録される。
【0089】
また、上記したバージョン確定処理(つまり、バージョン確定要求の入力)は、例えば一連の処理(トランザクション)単位で行われるものとする。
【0090】
次に、図11のフローチャートを参照して、本実施形態に係るストレージ装置10において実行されるバージョン復元処理の処理手順について説明する。このバージョン復元処理は、特定のバージョンの状態に論物変換テーブル141を復元する際の処理であり、バージョン復元要求が入力された場合に実行される。なお、バージョン復元要求(version_restore(int ver_num))には、復元の対象となるバージョンを表すバージョン番号が含まれる。このバージョン番号は、ユーザによって指定される。
【0091】
ここでは、上述したデータ更新処理及びバージョン確定処理が実行されることによって、更新履歴リスト144には各バージョン情報に対応づけて論物アドレス(論理アドレス及び物理アドレス)が登録されているものとする。
【0092】
まず、バージョン復元部134は、入出力部12を介して入力されたバージョン復元要求を取得する(ステップS31)。
【0093】
次に、バージョン復元部134は、バージョン復元要求に含まれるバージョン番号に対応づけて更新履歴リスト144に登録されている論理アドレスを取得する(ステップS32)。以下の説明においては、ステップS32において取得された論理アドレスを対象論理アドレスと称する。
【0094】
バージョン復元部134は、対象論理アドレスに対応づけて論物変換テーブル141に保持されている物理アドレスを取得する(ステップS33)。
【0095】
バージョン復元部134は、対象論理アドレス及びステップS33において取得された物理アドレスを更新履歴リスト144に追加する(ステップS34)。
【0096】
次に、バージョン復元部134は、バージョン復元要求に含まれるバージョン番号に対応づけて更新履歴リスト144に登録されている論理アドレス(対象論理アドレス)及び物理アドレスを取得する(ステップS35)。
【0097】
バージョン復元部134は、ステップS35において取得された論理アドレスに対応づけて論物変換テーブル141に保持されている物理アドレスを、ステップS35において取得された物理アドレスに変更する(ステップS36)。これによって、ユーザによって指定されたバージョンの論物アドレスが論物変換テーブル141に復元される。
【0098】
ここで、図12を参照して、上記したバージョン復元処理が実行された場合における論物変換テーブル141及び更新履歴リスト144の遷移について具体的に説明する。
【0099】
ここでは、図12に示すように、バージョン復元処理が実行される前の論物変換テーブル141aには、論理アドレス「1」とブロック番号「1」及びページ番号「4」を含む物理アドレスとが対応づけて保持されているものとする。同様に、論物変換テーブル141aには、論理アドレス「2」とブロック番号「1」及びページ番号「5」を含む物理アドレスとが対応づけて保持されているものとする。
【0100】
また、バージョン復元処理が実行される前の更新履歴リスト144aには、バージョン番号「2」に対応づけて、論理アドレス「2」とブロック番号「1」及びページ番号「3」を含む物理アドレスとが登録されているものとする。同様に、更新履歴リスト144aには、バージョン番号「2」に対応づけて、論理アドレス「1」とブロック番号「1」及びページ番号「1」を含む物理アドレスとが登録されているものとする。更に、更新履歴リスト144aには、バージョン番号「1」に対応づけて、論理アドレス「2」とブロック番号「1」及びページ番号「2」を含む物理アドレスとが登録されているものとする。
【0101】
ここで、バージョン番号「2」を含むバージョン復元要求が入出力部12を介して入力された場合を想定する。この場合、バージョン復元部134は、バージョン復元要求に含まれるバージョン番号「2」に対応づけて更新履歴リスト144aに登録されている論理アドレスを取得する。図12に示す例では、論理アドレス「1」及び論理アドレス「2」が更新履歴リスト144aから取得される。
【0102】
このように複数の論理アドレスが取得された場合には、当該論理アドレスの各々について上述した図11に示すステップS32以降の処理が実行される。
【0103】
まず、論理アドレス「1」に関する処理について説明する。この場合、バージョン復元部134は、論理アドレス「1」に対応づけて論物変換テーブル141aに保持されている物理アドレスを取得する。図12に示す論物変換テーブル141aによれば、ブロック番号「1」及びページ番号「4」を含む物理アドレスが取得される。
【0104】
この場合、バージョン復元部134は、論理アドレス「1」及び取得された物理アドレス(ブロック番号「1」及びページ番号「4」)を更新履歴リスト144aに追加する。この場合における論理アドレス及び物理アドレスは、バージョン番号「3」(つまり、新しいバージョン)に対応づけて更新履歴リスト144に登録される。これによれば、更新履歴リスト144aは、更新履歴リスト144bに遷移する。
【0105】
一方、バージョン復元部134は、バージョン復元要求に含まれるバージョン番号「2」に対応づけて更新履歴リスト144bに登録されている論物アドレスを取得する。ここでは、論理アドレス「1」とブロック番号「1」及びページ番号「1」を含む物理アドレスとが取得される。
【0106】
この場合、バージョン復元部134は、ブロック番号「1」及びページ番号「1」を含む物理アドレスを、論理アドレス「1」に対応づけて論物変換テーブル141aに書き込む。これによれば、論物変換テーブル141aは、論物変換テーブル141bに遷移する。
【0107】
次に、論理アドレス「2」に関する処理について説明する。この場合、バージョン復元部134は、論理アドレス「2」に対応づけて論物変換テーブル141bに保持されている物理アドレスを取得する。図12に示す論物変換テーブル141bによれば、ブロック番号「1」及びページ番号「5」を含む物理アドレスが取得される。
【0108】
この場合、バージョン復元部134は、論理アドレス「2」及び取得された物理アドレス(ブロック番号「1」及びページ番号「5」)を更新履歴リスト144bに追加する。この場合における論理アドレス及び物理アドレスは、バージョン番号「3」に対応づけて更新履歴リスト144bに登録される。これによれば、更新履歴リスト144bは、更新履歴リスト144cに遷移する。
【0109】
一方、バージョン復元部134は、バージョン復元要求に含まれるバージョン番号「2」に対応づけて更新履歴リスト144bに登録されている論物アドレスを取得する。ここでは、論理アドレス「2」とブロック番号「1」及びページ番号「3」を含む物理アドレスとが取得される。
【0110】
この場合、バージョン復元部134は、ブロック番号「1」及びページ番号「3」を含む物理アドレスを、論理アドレス「2」に対応づけて論物変換テーブル141bに書き込む。これによれば、論物変換テーブル141bは、論物変換テーブル141cに遷移する。
【0111】
上記したようなバージョン復元処理によれば、ユーザによって指定されたバージョン番号(によって表されるバージョン)の論物アドレスが論物変換テーブル141に復元されるとともに、当該論物変換テーブル141に保持されていた論物アドレスが更新履歴リスト144に登録される。
【0112】
なお、バージョン復元要求に含まれるバージョン番号が更新履歴リスト144に存在しない場合、または上述した保存バージョン設定処理及びバージョン確定処理によって当該バージョン番号に対応づけて更新履歴リスト144に登録されている物理アドレスによって特定されるページの状態が無効とされている場合には、エラーがユーザに対して通知されるものとする。
【0113】
次に、図13のフローチャートを参照して、前述したデータ消去部135によって実行されるガベージコレクション(GC)の処理手順について説明する。なお、ガベージコレクションは、NAND型フラッシュメモリ11における書き込み領域の確保処理であり、例えば予め定められた期間毎に実行される。
【0114】
ガベージコレクションにおいては、NAND型フラッシュメモリ11における各ブロックについて以下のステップS41〜S45の処理が実行される。以下、この処理の対象となるブロックを対象ブロックと称する。
【0115】
まず、データ消去部135は、対象ブロックのページ状態テーブル142を参照して、当該対象ブロックを構成する複数のページのうち、状態が無効であるページ(以下、無効ページと表記)の割合が閾値以上であるか否かを判定する(ステップS41)。
【0116】
無効ページの割合が閾値以上であると判定された場合(ステップS41のYES)、データ消去部135は、対象ブロック以外の各ブロックのページ状態テーブル142を参照して、消去済みブロックを特定する(ステップS42)。なお、消去済みブロックは、状態が消去済みであるページのみから構成されるブロックである。
【0117】
次に、データ消去部135は、対象ブロックのページ状態テーブル142を参照して、当該対象ブロックを構成する複数のページのうち、状態が有効であるページ(以下、有効ページと表記)のデータをNAND型フラッシュメモリ11から取得する。なお、このデータは、対象ブロックに割り当てられたブロック番号及び有効ページに割り当てられたページ番号(つまり、物理アドレス)に基づいて取得される。データ消去部135は、取得されたデータを、上記した消去済みブロック(を構成するページ)にコピーする(ステップS43)。以下、有効ページのデータがコピーされたページをコピー先ページと称する。
【0118】
なお、ページ状態テーブル142において、上記したように消去済みブロックを構成する各ページの状態は消去済みである。したがって、上記したステップS44の処理が実行された場合には、ページ状態テーブル142におけるコピー先ページの状態(当該ページに割り当てられたページ番号に対応づけてページ状態テーブル142に保持されている状態)は、消去済みから有効に更新される。
【0119】
また、有効ページの物理アドレスが論物変換テーブル141に保持されている場合、当該論物変換テーブル141において、当該有効ページの物理アドレスは、コピー先ページの物理アドレスに更新される。同様に、有効ページの物理アドレスが更新履歴リスト144に登録されている場合には、当該更新履歴リスト144において、当該有効ページの物理アドレスは、コピー先ページの物理アドレスに更新される。
【0120】
次に、データ消去部135は、対象ブロック(を構成する複数のページ)のデータを消去する(ステップS44)。これによれば、対象ブロックは、消去済みブロックとなり、データの書き込みが可能となる。
【0121】
このように対象ブロックが消去済みブロックとなる場合、当該対象ブロックのページ状態テーブル142における各ページの状態は消去済みに更新される。
【0122】
ここで、NAND型フラッシュメモリ11における全てのブロックについてステップS41〜S44の処理が実行されたか否かが判定される(ステップS45)。
【0123】
全てのブロックについて処理が実行されていないと判定された場合(ステップS45のNO)、上述したステップS41に戻って処理が繰り返される。この場合、ステップS41〜S44の処理が実行されていないブロックを対象ブロックとして処理が実行される。
【0124】
一方、全てのブロックについて処理が実行されたと判定された場合(ステップS45のYES)、ガベージコレクションは終了される。
【0125】
なお、上記したステップS41において無効ページの割合が閾値以上でないと判定された場合には、ステップS45の処理が実行される。
【0126】
上記したようなガベージコレクションによれば、保存バージョン設定処理及びバージョン確定処理によって状態が無効とされたページ(から構成されるブロック)がコントローラ13側で自動的に削除される。
【0127】
上記したように本実施形態においては、NAND型フラッシュメモリ(不揮発性の半導体記憶装置)11に記憶されているデータを管理するコントローラ(NANDコントローラ)13が、データの更新時に論物変換テーブル141に保持されている論理アドレス及び物理アドレスをバージョン情報に対応づけて更新履歴リスト144に登録し、当該更新履歴リスト144に登録されたバージョン情報に基づいて当該バージョン情報に対応づけて更新履歴リスト144に登録された物理アドレスに記憶されているデータを消去する。
【0128】
すなわち、本実施形態においては、ストレージ装置10が備えるコントローラ(NANDコントローラ)13がデータのバージョン管理を行い、当該コントローラ13によるガベージコレクションの実行時に不要なバージョンのデータが自動的に消去される。このため、本実施形態においては、データベースのロックを伴うバキューム処理等がデータベースシステム側で実行されることなく不要データの消去を行うことが可能となる。
【0129】
また、本実施形態においては、ユーザによって指定されたバージョン(つまり、保存バージョン数分のバージョン)より過去のバージョンのデータが消去されるため、ユーザの意図するバージョンのデータを消去することができる。
【0130】
更に、本実施形態においては、ユーザによって指定されたバージョン番号に対応づけて更新履歴リスト144に登録されている論物アドレスを論物変換テーブル141に復元することにより、例えば誤ってデータが書き込まれた場合や最新のデータ(つまり、論物変換テーブル141に保持されている物理アドレスに記憶されているデータ)が破損したような場合に、必要に応じて過去のバージョンのデータを利用することが可能となる。
【0131】
また、本実施形態においては、バージョン確定要求が入力されるまでに更新履歴リストに登録された論物アドレスが同一のバージョンとして管理されることにより、例えば一連の処理(トランザクション)単位でのバージョン管理、データの復元及び消去等が可能となる。
【0132】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0133】
10…ストレージ装置、11…NAND型フラッシュメモリ、12…入出力部、13…コントローラ、14…メモリ、131…データ更新部、132…保存バージョン設定部、133…バージョン確定部、134…バージョン復元部、135…データ消去部、141…論物変換テーブル、142…ページ状態テーブル、143…消去済みページリスト、144…更新履歴リスト、145…設定テーブル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13