(57)【要約】【課題】バキューム処理を実行することなく不要データの消去を行うことが可能なストレージ装置を提供することにある。【解決手段】実施形態に係るストレージ装置は、データ更新手段、登録手段、テーブル更新手段及び消去手段を含むコントローラを具備する。データ更新手段は、第１のデータを第２のデータに更新するためのデータ更新要求が入力された場合、第２のデータを第２の物理アドレスに書き込む。登録手段は、指定された論理アドレス及び当該論理アドレスに対応づけられている論物変換テーブルの第１の物理アドレスをバージョン情報に対応づけて更新履歴リストに登録する。テーブル更新手段は、論物変換テーブルの第１の物理アドレスを第２の物理アドレスに更新する。消去手段は、バージョン情報に基づいて、更新履歴リストに登録された第１の物理アドレスに記憶されている第１のデータを消去する。【選択図】図１
2015158797.tif 000002
【特許請求の範囲】
【請求項１】
各種データを記憶する不揮発性の半導体記憶装置を備え、当該半導体記憶装置を使用したデータベースへのアクセスを制御するデータベースシステムが実装されるストレージ装置において、
前記半導体記憶装置に記憶されているデータを管理するコントローラと、
前記データベースシステムにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレスを保持する論物変換テーブル及び更新履歴リストを記憶するメモリと
を具備し、
前記コントローラは、
ユーザによって指定された論理アドレスに対応する第１のデータを第２のデータに更新するためのデータ更新要求が前記データベースシステムから入力された場合、当該第２のデータを当該第１のデータの第１の物理アドレスとは異なる第２の物理アドレスに書き込むデータ更新手段と、
前記ユーザによって指定された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第１の物理アドレスを、前記第１のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録する登録手段と、
前記ユーザによって指定された論理アドレスに対応づけて前記論物変換テーブルに保持されている第１の物理アドレスを前記第２の物理アドレスに更新するテーブル更新手段と、
前記更新履歴リストに登録されたバージョン情報に基づいて、当該バージョン情報に対応づけて前記更新履歴リストに登録された第１の物理アドレスに記憶されている第１のデータを消去する消去手段と
を含む
ことを特徴とするストレージ装置。
【請求項２】
前記半導体記憶装置は、ＮＡＮＤ型フラッシュメモリを含むことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記消去手段は、ユーザによって指定されたバージョンより過去のバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録された第１の物理アドレスに記憶されている第１のデータを消去することを特徴とする請求項１記載のストレージ装置。
【請求項４】
前記コントローラは、ユーザによって指定されたバージョンを示すバージョン情報を含む復元要求が入力された場合、当該復元要求に含まれるバージョン情報に対応づけて前記更新履歴リストに登録された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに登録された第２の物理アドレスを、前記第２のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録するとともに、当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第２の物理アドレスを、前記復元要求に含まれるバージョン情報に対応づけて前記更新履歴リストに登録された第１の物理アドレスに変更する復元手段を更に含むことを特徴とする請求項１記載のストレージ装置。
【請求項５】
前記コントローラは、バージョン確定手段を更に含み、
前記登録手段は、ユーザの指示に基づくバージョン確定要求が入力されるまでは同一のバージョンを示すバージョン情報に対応づけて前記論理アドレス及び前記第１の物理アドレスを前記更新履歴リストに登録し、
前記バージョン確定手段は、前記バージョン確定要求が入力された場合に前記更新履歴リストに登録された論理アドレス及び第１の物理アドレスを前記同一のバージョンとして確定する
ことを特徴とする請求項１記載のストレージ装置。
【請求項６】
各種データを記憶する不揮発性の半導体記憶装置を使用したデータベースへのアクセスを制御するデータベースシステムが実装されるストレージ装置であって、前記半導体記憶装置に記憶されているデータを管理するコントローラと、前記データベースシステムにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレスを保持する論物変換テーブル及び更新履歴リストを記憶するメモリとを備えるストレージ装置において、前記コントローラが実行するデータ管理方法であって、
ユーザによって指定された論理アドレスに対応する第１のデータを第２のデータに更新するためのデータ更新要求が前記データベースシステムから入力された場合、当該第２のデータを当該第１のデータの第１の物理アドレスとは異なる第２の物理アドレスに書き込むステップと、
前記ユーザによって指定された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第１の物理アドレスを、前記第１のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録するステップと、
前記ユーザによって指定された論理アドレスに対応づけて前記論物変換テーブルに保持されている第１の物理アドレスを前記第２の物理アドレスに更新するステップと、
前記更新履歴リストに登録されたバージョン情報に基づいて、当該バージョン情報に対応づけて前記更新履歴リストに登録された第１の物理アドレスに記憶されている第１のデータを消去するステップと
を具備することを特徴とするデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ストレージ装置及びデータ管理方法に関する。
【背景技術】
【０００２】
近年では、例えばＮＡＮＤ型フラッシュメモリのような不揮発性の半導体記憶装置を備えたストレージ装置（ＮＡＮＤ型フラッシュメモリストレージ）が知られている。このストレージ装置には、例えばＮＡＮＤ型フラッシュメモリを使用したデータベースへのアクセスを制御するデータベースシステムが実装される。
【０００３】
ところで、このようなストレージ装置に実装されるデータベースシステムにおいては、マルチユーザ環境におけるデータベースの性能を向上させるために、多版同時実行制御（ＭＶＣＣ：MultiVersion Concurrency Control）が実行される。このＭＶＣＣによれば、例えばデータベースに格納される任意のデータにおける変更状態を複数保持しておくことで、データアクセスの依存関係を解決することができる。
【０００４】
しかしながら、上記したＭＶＣＣを実行するデータベースシステムでは、データが更新される度に、当該更新前後の複数のデータを格納しておく必要がある。このため、データベース内では、不要なデータが大量に発生する。これは、データベースの性能の低下を招く。
【０００５】
そこで、データベースシステムにおいては、データベース動作の効率性を上げるための不要データ領域の回収やデータ再編成のためにバキューム処理が実行される。このバキューム処理によれば、データベース内の不要データの消去等が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１８０８３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記したようにＭＶＣＣを実行するデータベースシステムにおいてはバキューム処理が必須であるが、当該バキューム処理が実行されている間はデータベースをロックする必要がある。
【０００８】
この場合、バキューム処理中はデータベースへのアクセスができないため、データベースの運用上好ましくない。
【０００９】
したがって、バキューム処理を実行することなく不要データの消去等を行う仕組みが望まれている。
【００１０】
そこで、本発明が解決しようとする課題は、バキューム処理を実行することなく不要データの消去を行うことが可能なストレージ装置及びデータ管理方法を提供することにある。
【課題を解決するための手段】
【００１１】
実施形態によれば、各種データを記憶する不揮発性の半導体記憶装置を備え、当該半導体記憶装置を使用したデータベースへのアクセスを制御するデータベースシステムが実装されるストレージ装置が提供される。実施形態に係るストレージ装置は、前記半導体記憶装置に記憶されているデータを管理するコントローラと、前記データベースにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレスを保持する論物変換テーブル及び更新履歴リストを記憶するメモリとを具備する。前記コントローラは、データ更新手段と、登録手段と、テーブル更新手段と、消去手段とを含む。前記データ更新手段は、ユーザによって指定された論理アドレスに対応する第１のデータを第２のデータに更新するためのデータ更新要求が前記データベースシステムから入力された場合、当該第２のデータを当該第１のデータの第１の物理アドレスとは異なる第２の物理アドレスに書き込む。前記登録手段は、前記ユーザによって指定された論理アドレス及び当該論理アドレスに対応づけて前記論物変換テーブルに保持されている第１の物理アドレスを、前記第１のデータに割り当てられたバージョンを示すバージョン情報に対応づけて前記更新履歴リストに登録する。前記テーブル更新手段は、前記ユーザによって指定された論理アドレスに対応づけて前記論物変換テーブルに保持されている第１の物理アドレスを前記第２の物理アドレスに更新する。前記消去手段は、前記更新履歴リストに登録されたバージョン情報に基づいて、当該バージョン情報に対応づけて前記更新履歴リストに登録された第１の物理アドレスに記憶されている第１のデータを消去する。
【図面の簡単な説明】
【００１２】
【図１】実施形態に係るストレージ装置のハードウェア構成を示すブロック図。
【図２】図１に示す論物変換テーブル１４１のデータ構造の一例を示す図。
【図３】図１に示すページ状態テーブル１４２のデータ構造の一例を示す図。
【図４】図１に示す更新履歴リスト１４４のデータ構造の一例を示す図。
【図５】ストレージ装置１０において実行されるデータ更新処理の処理手順を示すフローチャート。
【図６】データ更新処理が実行された場合における論物変換テーブル１４１及び更新履歴リスト１４４の遷移について説明するための図。
【図７】ストレージ装置１０において実行される保存バージョン設定処理の処理手順を示すフローチャート。
【図８】保存バージョン設定処理が実行される前の論物変換テーブル１４１、ページ状態テーブル１４２及び更新履歴リスト１４４のデータ構造の一例を示す。
【図９】保存バージョン設定処理が実行された後の論物変換テーブル１４１、ページ状態テーブル１４２及び更新履歴リスト１４４のデータ構造の一例を示す。
【図１０】ストレージ装置１０において実行されるバージョン確定処理の処理手順を示すフローチャート。
【図１１】ストレージ装置１０において実行されるバージョン復元処理の処理手順を示すフローチャート。
【図１２】バージョン復元処理が実行された場合における論物変換テーブル１４１及び更新履歴リスト１４４の遷移について説明するための図。
【図１３】データ消去部１３５によって実行されるガベージコレクションの処理手順を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、実施形態について説明する。
【００１４】
図１は、本実施形態に係るストレージ装置のハードウェア構成を示すブロック図である。ストレージ装置１０は、各種データを記憶する不揮発性の半導体記憶装置を備えている。図１においては、不揮発性の半導体記憶装置の一例としてＮＡＮＤ型フラッシュメモリ１１が示されている。
【００１５】
このＮＡＮＤ型フラッシュメモリ１１に対しては、ページと称される単位でデータの書き込み及び読み出しが行われる。また、ＮＡＮＤ型フラッシュメモリ１１に記憶されたデータの消去は、ブロックと称される単位で行われる。このブロックは、複数のページから構成されるものとする。
【００１６】
また、ＮＡＮＤ型フラッシュメモリ１１においては、データを上書きすることはできない。このため、ＮＡＮＤ型フラッシュメモリ１１に記憶されているデータが更新される場合には、常に別のページ（物理アドレス）にデータが書き込まれる。また、データの更新によって不要となったデータの領域（ページ）に対する他のデータの書き込みを可能とするためには、当該ページ（のデータ）を一旦消去する必要がある。上記したようにＮＡＮＤ型フラッシュメモリ１１におけるデータ消去は、複数のページから構成されるブロック単位で行われる。
【００１７】
なお、本実施形態に係るストレージ装置１０には、ＮＡＮＤ型フラッシュメモリ１１を使用したデータベースへのアクセスを制御するデータベースシステムが実装されているものとする。このデータベースシステム上では、データベースに格納される各データは、例えばＬＢＡ（Logical Block Address）のような論理アドレスを用いて管理される。なお、データベースにおけるデータ登録はレコードと称されるが、本実施形態においては、便宜的に、レコードと上記したページのサイズは同一であるものとする。また、データベースシステムにおいては、マルチユーザ環境におけるデータベースの性能向上のために、多版同時実行制御（ＭＶＣＣ）が実行される。
【００１８】
更に、ストレージ装置１０は、図１に示すように、入出力部１２、コントローラ１３及びメモリ１４を備える。
【００１９】
入出力部１２は、ストレージ装置１０に実装されているデータベースシステムとの入出力処理を行う。
【００２０】
コントローラ（ＮＡＮＤコントローラ）１３は、メモリ１４に記憶されている各種情報に基づいて、ＮＡＮＤ型フラッシュメモリ１１に記憶されているデータを管理し、当該ＮＡＮＤ型フラッシュメモリ１１へのデータの書き込み及び読み込みを制御する。
【００２１】
コントローラ１３は、データ更新部１３１、保存バージョン設定部１３２、バージョン確定部１３３、バージョン復元部１３４及びデータ消去部１３５を含む。また、メモリ１４には、論物変換テーブル１４１、ページ状態テーブル１４２、消去済みページリスト１４３、更新履歴リスト１４４及び設定テーブル１４５が記憶される。
【００２２】
なお、メモリ１４は揮発性メモリであり、例えばストレージ装置１０の起動時等に他の不揮発性メモリ領域に記憶されていた論物変換テーブル１４１、ページ状態テーブル１４２、消去済みページリスト１４３、更新履歴リスト１４４及び設定テーブル１４５がメモリ１４に記憶されるものとする。
【００２３】
論物変換テーブル１４１には、データベースシステムにおいて用いられる論理アドレスの各々に対応づけて当該論理アドレスに対応するデータの物理アドレス（当該データが記憶されているＮＡＮＤ型フラッシュメモリ１１上の位置）が保持される。なお、物理アドレスは、ＮＡＮＤ型フラッシュメモリ１１におけるブロックに割り当てられた番号（以下、ブロック番号と表記）及び当該ブロックを構成するページに割り当てられた番号（以下、ページ番号と表記）を含む。このブロック番号及びページ番号により、ＮＡＮＤ型フラッシュメモリ１１上の一意の位置（特定のブロックを構成する特定のページ）を特定することができる。
【００２４】
ページ状態テーブル１４２は、ＮＡＮＤ型フラッシュメモリ１１における各ブロックを構成するページの状態を管理するためのテーブルである。
【００２５】
消去済みページリスト１４３は、ＮＡＮＤ型フラッシュメモリ１１における各ページのうち、データを消去済みのページ（つまり、データを書き込み可能なページ）のリストである。
【００２６】
データ更新部１３１は、入出力部１２を介して入力されたデータ更新要求（書き込み要求）に基づいて、ＮＡＮＤ型フラッシュメモリ１１に記憶されているデータを更新する。なお、データ更新要求は、例えばユーザによって指定された論理アドレスに対応するデータ（第１のデータ）を他のデータ（第２のデータ）に更新する際にデータベースシステムから入力される。以下の説明では、便宜的に、ユーザによって指定された論理アドレスに対応するデータを更新前データと称し、当該更新前データを更新するための他のデータを更新後データと称する。データ更新要求には、ユーザによって指定された論理アドレス及び更新後データが含まれる。
【００２７】
データ更新部１３１は、データ更新要求が入力された場合、ＮＡＮＤ型フラッシュメモリ１１の更新前データの物理アドレス（第１の物理アドレス）とは異なる物理アドレス（第２の物理アドレス）に更新後データを書き込む。この場合、データ更新部１３１は、上記した消去済みページリストからページ（書き込み可能なページ）を取得し、当該ページに対して書き込み処理を実行する。
【００２８】
更新後データがＮＡＮＤ型フラッシュメモリ１１に書き込まれると、データ更新部１３１は、データ更新要求に含まれる論理アドレス及び当該論理アドレスに対応づけて論物変換テーブル１４１に保持されている物理アドレス（つまり、更新前データの物理アドレス）を取得する。データ更新部１３１は、取得された論理アドレス及び物理アドレスを、更新前データに割り当てられたバージョンを示すバージョン情報（例えば、当該バージョンを表すバージョン番号）に対応づけて更新履歴リスト１４４に登録する。
【００２９】
また、データ更新部１３１は、データ更新要求に含まれる論理アドレスに対応づけて論物変換テーブル１４１に保持されている物理アドレス（ブロック番号及びページ番号）を、更新後データが書き込まれた物理アドレスに更新する。
【００３０】
このようにデータ更新部１３１によってデータの更新が行われると、論物変換テーブル１４１には最新のデータに関する論理アドレスと物理アドレスとの対応関係が保持される。一方、更新履歴リスト１４４には、古いバージョンの論理アドレスと物理アドレスとの対応関係が登録される。すなわち、更新履歴リスト１４４によれば、各バージョンのデータを管理することができる。
【００３１】
なお、データ更新部１３１は、データの更新処理に応じて、上記したページ状態テーブル及び消去済みページリストを更新する。
【００３２】
保存バージョン設定部１３２は、データを保存すべきバージョンを設定テーブル１４５に設定する。データを保存すべきバージョンが設定テーブル１４５に設定された場合、保存バージョン設定部１３２は、当該バージョンより過去の（古い）バージョンを示すバージョン情報に対応づけて更新履歴リスト１４４に登録された物理アドレスによって特定されるページ（の状態）を無効とする。このページの無効は、ページ状態テーブル１４２に登録される。
【００３３】
バージョン確定部１３３は、更新履歴リスト１４４において同一のバージョンとして管理される範囲を確定（設定）する。具体的には、バージョン確定部１３３は、入出力部１２を介してユーザの指示に基づくバージョン確定要求が入力された場合、当該バージョン確定要求が入力されるまでに更新履歴リスト１４４に登録された論理アドレス及び物理アドレスを同一のバージョンとして確定する。
【００３４】
バージョン復元部１３４は、入出力部１２を介して入力されたバージョン復元要求に基づいて、更新履歴リスト１４４に登録された論理アドレスと物理アドレスを論物変換テーブル１４１に復元する。なお、バージョン復元要求は、ユーザによって指定されたバージョンを示すバージョン情報を含む。
【００３５】
具体的には、バージョン復元部１３４は、バージョン復元要求に含まれるバージョン情報に対応づけて更新履歴リスト１４４に登録された論理アドレスを取得する。バージョン復元部１３４は、取得された論理アドレス及び当該論理アドレスに対応づけて論物変換テーブル１４１に登録された物理アドレスを、当該物理アドレスに記録されているデータに割り当てられたバージョンを示すバージョン情報に対応づけて更新履歴リストに登録する。また、バージョン復元部１３４は、バージョン復元要求に含まれるバージョン情報に対応づけて更新履歴リスト１４４に登録された論理アドレス及び物理アドレスを、論物変換テーブル１４１に復元する。
【００３６】
データ消去部１３５は、例えば上記したように保存バージョン設定部１３２によって設定テーブル１４５に設定されたバージョンに基づいて無効にされたページから構成されるブロック（のデータ）を消去する。この場合、データ消去部１３５は、ＮＡＮＤ型フラッシュメモリ１１における書き込み領域の確保処理であるガベージコレクション（ＧＣ）を実行する。なお、ガベージコレクションの詳細については後述する。
【００３７】
図２は、図１に示す論物変換テーブル１４１のデータ構造の一例である。図２に示すように、論物変換テーブル１４１には、論理アドレス及び物理アドレスが対応づけて保持される。なお、論理アドレスは、データベースシステムにおいて用いられるアドレスである。一方、物理アドレスは、当該物理アドレスに対応づけられている論理アドレスに対応するデータが記憶されているＮＡＮＤ型フラッシュメモリ１１上のアドレスである。物理アドレスは、ＮＡＮＤ型フラッシュメモリ１１におけるブロックに割り当てられたブロック番号及び当該ブロックを構成するページに割り当てられたページ番号を含む。
【００３８】
図２に示す例では、論物変換テーブル１４１には、論理アドレス「１」とブロック番号「１」及びページ番号「４」を含む物理アドレスとが対応づけて保持されている。これによれば、論理アドレス「１」に対応するデータが、ブロック番号「１」が割り当てられたブロックを構成する複数のページのうちページ番号「４」が割り当てられたページ（の領域）に記憶されていることが示されている。
【００３９】
同様に、論物変換テーブル１４１には、論理アドレス「２」とブロック番号「１」及びページ番号「５」を含む物理アドレスとが対応づけて保持されている。これによれば、論理アドレス「２」に対応するデータが、ブロック番号「１」が割り当てられたブロックを構成する複数のページのうちページ番号「５」が割り当てられたページ（の領域）に記憶されていることが示されている。
【００４０】
ここでは論理アドレス「１」及び「２」についてのみ説明したが、他の論理アドレスについても同様であるため、その詳しい説明を省略する。
【００４１】
図３は、図１に示すページ状態テーブル１４２のデータ構造の一例を示す。ページ状態テーブル１４２はＮＡＮＤ型フラッシュメモリ１１におけるブロック毎に用意されているが、図３においてはブロック番号「１」が割り当てられたブロックのページ状態テーブル１４２が示されている。
【００４２】
図３に示すように、ページ状態テーブル１４２には、ブロックを構成するページ毎に、当該ページに割り当てられたページ番号及び当該ページの状態が対応づけて保持される。なお、ページの状態には、当該ページのデータが有効であることを示す「００」、当該ページのデータが無効であることを示す「０１」及び当該ページのデータが消去済みであることを示す「１０」が含まれる。
【００４３】
図３に示すページ状態テーブル１４２の例では、ブロック番号「１」が割り当てられたブロックがページ番号「１」〜「８」の各々が割り当てられた複数のページから構成されていることが示されている。また、この複数のページのうち、ページ番号「１」〜「５」が割り当てられたページの状態が有効（つまり、「００」）であり、ページ番号「６」〜「８」が割り当てられたページの状態が消去済み（つまり、「１０」）であることが示されている。
【００４４】
ここではブロック番号「１」が割り当てられたブロックのページ状態テーブル１４２についてのみ説明したが、他のブロックのページ状態テーブル１４２についても同様であるため、その詳しい説明を省略する。
【００４５】
なお、上述した消去済みページリスト１４３には、ＮＡＮＤ型フラッシュメモリ１１におけるブロック毎に、ページ状態テーブル１４２において状態「１０」に対応づけられているページ番号が登録（追加）される。図３に示すページ状態テーブル１４２の場合には、ページ番号「１」〜「８」のうち、ページ番号「６」〜「８」が消去済みページリスト１４３に登録される。なお、消去済みページリスト１４３へのページ番号の登録処理は、ページ状態テーブル１４２の更新に伴って実行される。
【００４６】
図４は、図１に示す更新履歴リスト１４４のデータ構造の一例を示す。図４に示すように、更新履歴リスト１４４には、バージョン情報に対応づけて、論理アドレス及び物理アドレスが登録される。バージョン情報は、当該バージョン情報に対応づけられている物理アドレスに記憶されているデータ（つまり、更新前データ）に割り当てられたバージョンを表す例えばバージョン番号を含む。なお、バージョン番号は、例えば値が大きいほど新しいバージョンであることを示すものとする。
【００４７】
図４に示す例では、更新履歴リスト１４４には、バージョン番号「２」に対応づけて、論理アドレス「２」とブロック番号「１」及びページ番号「３」を含む物理アドレスとが登録されている。これによれば、論理アドレス「２」に対応するバージョンが２であるデータが、ブロック番号「１」が割り当てられたブロックを構成するページ番号「３」が割り当てられたページ（の領域）に格納されていることが示されている。
【００４８】
また、更新履歴リスト１４４には、バージョン番号「２」に対応づけて、論理アドレス「１」とブロック番号「１」及びページ番号「１」を含む物理アドレスとが登録されている。これによれば、論理アドレス「１」に対応するバージョンが２であるデータが、ブロック番号「１」が割り当てられたブロックを構成するページ番号「１」が割り当てられたページ（の領域）に格納されていることが示されている。
【００４９】
このように同一のバージョン（番号）に対して異なる複数の論理アドレス（及び物理アドレス）が登録されても構わない。
【００５０】
また、図４に示す例では、更新履歴リスト１４４には、バージョン番号「１」に対応づけて、論理アドレス「２」とブロック番号「１」及びページ番号「２」を含む物理アドレスとが登録されている。これによれば、論理アドレス「２」に対応するバージョンが１であるデータが、ブロック番号「１」が割り当てられたブロックを構成するページ番号「２」が割り当てられたページ（の領域）に格納されていることが示されている。
【００５１】
なお、ブロック番号「１」が割り当てられたブロックを構成するページ番号「２」が割り当てられたページに格納されているデータ（つまり、論理アドレス「２」に対応するバージョンが１であるデータ）は、上記したブロック番号「１」が割り当てられたブロックを構成するページ番号「３」が割り当てられたページに格納されているデータ（つまり論理アドレス「２」に対応するバージョンが２であるデータ）より古いバージョンのデータである。
【００５２】
次に、図５のフローチャートを参照して、本実施形態に係るストレージ装置１０において実行されるデータ更新処理の処理手順について説明する。このデータ更新処理は、ユーザによって指定された論理アドレスに対応するデータを更新する際の処理であり、データベースシステムからデータ更新要求が入力された場合に実行される。なお、データ更新要求には、ユーザによって指定された論理アドレス（更新前データに対応する論理アドレス）及び更新後データが含まれる。
【００５３】
まず、データ更新部１３１は、入出力部１２を介して入力されたデータ更新要求を取得する（ステップＳ１）。
【００５４】
データ更新要求が取得されると、データ更新部１３１は、消去済みページリスト１４３から更新後データを書き込み可能なページ（の物理アドレス）を取得する（ステップＳ２）。以下の説明では、ステップＳ２において取得されたページを便宜的に書き込み先物理ページと称する。
【００５５】
データ更新部１３１は、ＮＡＮＤ型フラッシュメモリ１１にアクセスし、更新後データを書き込み先物理ページに書き込む（ステップＳ３）。
【００５６】
次に、データ更新部１３１は、データ更新要求に含まれる論理アドレス（以下、対象論理アドレスと表記）及び当該対象論理アドレスに対応づけて論物変換テーブル１４１に保持されている物理アドレス（つまり、更新前データの物理アドレス）を更新履歴リスト１４４に追加（登録）する（ステップＳ４）。この場合における対象論理アドレス及び更新前データの物理アドレスは、当該更新前データに割り当てられたバージョンを表すバージョン番号に対応づけて登録される。これにより、更新履歴リスト１４４において、更新前データのバージョンが管理される。
【００５７】
データ更新部１３１は、対象論理アドレスに対応づけて論物変換テーブル１４１に保持されている物理アドレスを更新後データが書き込まれたページ（つまり、書き込み先物理ページ）の物理アドレス（ブロック番号及びページ番号）に更新することによって、当該論物変換テーブル１４１を更新する（ステップＳ５）。
【００５８】
また、データ更新部１３１は、ページ状態テーブル１４２に保持されている書き込み先物理ページの状態を消去済みから有効に変更することによって、ページ状態テーブル１４２を更新する（ステップＳ６）。具体的には、データ更新部１３１は、更新後データが書き込まれたページの物理アドレスに含まれるブロック番号が割り当てられたブロックのページ状態テーブル１４２において、当該物理アドレスに含まれるページ番号に対応づけられている状態を「１０」から「００」に変更する。なお、書き込み先物理ページ（に割り当てられたページ番号）は、消去済みページリスト１４３から削除される。
【００５９】
ここで、図６を参照して、上記したデータ更新処理が実行された場合における論物変換テーブル１４１及び更新履歴リスト１４４の遷移について具体的に説明する。
【００６０】
図６に示すように、データ更新処理が実行される前の論物変換テーブル１４１ｘには、論理アドレス「１」とブロック番号「１」及びページ番号「４」を含む物理アドレスとが対応づけて保持されているものとする。同様に、論物変換テーブル１４１ｘには、論理アドレス「２」とブロック番号「１」及びページ番号「３」を含む物理アドレスとが対応づけて保持されているものとする。
【００６１】
また、データ更新処理が実行される前の更新履歴リスト１４４ｘには、バージョン番号「１」に対応づけて、論理アドレス「２」とブロック番号「１」及びページ番号「２」を含む物理アドレスとが登録されているものとする。
【００６２】
この場合において、論理アドレス「２」を含むデータ更新要求が入出力部１２を介して入力された場合を想定する。このとき、消去済みページリスト１４３から取得された書き込み先物理ページの物理アドレスにはブロック番号「１」及びページ番号「５」が含まれているものとする。
【００６３】
データ更新要求に含まれる更新後データが書き込み先物理ページに書き込まれると、更新履歴リスト１４４ｘには、論物変換テーブル１４１ｘに保持されている論理アドレス「２」及び物理アドレス（ブロック番号「１」及びページ番号「３」）がバージョン番号「２」に対応づけて登録される。これによれば、更新履歴リスト１４４ｘは、更新履歴リスト１４４ｙに遷移する。
【００６４】
一方、論物変換テーブル１４１ｘに保持されている論理アドレス「２」に対応づけられている物理アドレス（ブロック番号「１」及びページ番号「３」）は、書き込み物理ページの物理アドレス（ブロック番号「１」及びページ番号「５」）に更新される。これによれば、論物変換テーブル１４１ｘは、論物変換テーブル１４１ｙに遷移する。
【００６５】
上記したようなデータ更新処理によれば、データの更新時に、更新前データが記憶されている物理アドレスを当該データが更新された論理アドレスとともに更新履歴リスト１４４に登録することができる。
【００６６】
次に、図７のフローチャートを参照して、本実施形態に係るストレージ装置１０において実行される保存バージョン設定処理の処理手順について説明する。この保存バージョン設定処理は、データを保存すべきバージョンを設定する際の処理であり、保存バージョン設定要求が入力された場合に実行される。なお、保存バージョン設定要求（Version_set(int ver_num)）には、データを保存すべきバージョンを示す値（以下、保存バージョン数と表記）が含まれる。この保存バージョン数は、ユーザによって指定される。
【００６７】
ここでは、上述したデータ更新処理が実行されることによって、更新履歴リスト１４４には各バージョン番号に対応づけて論理アドレス及び物理アドレスが登録されているものとする。
【００６８】
まず、保存バージョン設定部１３２は、入出力部１２を介して入力された保存バージョン設定要求を取得する（ステップＳ１１）。
【００６９】
次に、保存バージョン設定部１３２は、保存バージョン設定要求に含まれる保存バージョン数を設定テーブル１４５に設定する（ステップＳ１２）。
【００７０】
保存バージョン設定部１３２は、設定テーブル１４５に設定された保存バージョン数に基づいてページ状態テーブル１４２を更新する（ステップＳ１３）。この場合、保存バージョン設定部１３２は、バージョン番号の大きい順に保存バージョン数分のバージョンを残し、当該バージョンより過去のバージョンの物理アドレスによって特定されるページの状態を無効とするようにページ状態テーブル１４２を更新する。これにより、保存バージョン数分のバージョン以外のバージョンのデータが無効とされる。
【００７１】
ここで、図８及び図９を参照して、ステップＳ１３におけるページ状態テーブル１４２の更新処理について具体的に説明する。
【００７２】
まず、図８は、保存バージョン設定処理が実行される前の論物変換テーブル１４１、ページ状態テーブル１４２及び更新履歴リスト１４４のデータ構造の一例を示す。
【００７３】
図８に示すように、履歴更新リスト１４４には、バージョン番号「１」及び「２」に対応づけて、論理アドレス及び物理アドレスが登録されているものとする。また、論物変換テーブル１４１に保持されている物理アドレスによって特定されるページ及び更新履歴リスト１４４に登録されている物理アドレスによって特定されるページの状態は、ページ状態テーブル１４２において全て「００」（つまり、有効）であるものとする。
【００７４】
ここで、保存バージョン数「１」を含む保存バージョン設定要求が入出力部１２を介して入力された場合を想定する。この場合には、バージョン番号が最も大きい１つのバージョン以外のバージョンの物理アドレスによって特定されるページの状態は無効とする。
【００７５】
具体的には、図９に示すように、バージョン番号「１」に対応づけて履歴更新リスト１４４に登録されている物理アドレス（ブロック番号「１」及びページ番号「２」）によって特定されるページの状態は「０１」（つまり、無効）に変更される。
【００７６】
なお、論物変換テーブル１４１に保持されている物理アドレスによって特定されるページ及びバージョン番号「２」に対応づけて履歴更新リスト１４４に登録されている物理アドレスによって特定されるページの状態は「００」（つまり、有効）のままとする。
【００７７】
上記したような保存バージョン設定処理によれば、ユーザによって指定されたバージョン（つまり、保存バージョン数分のバージョン）のデータを残し、当該バージョンより過去のバージョンのデータについては無効とすることができる。このように過去のバージョンのデータが無効とされたことは、例えば入出力部１２を介してデータベースシステムに通知されることにより、当該データベースシステム側で認識することができる。
【００７８】
なお、上記した保存バージョン数としては０を指定することも可能である。この場合には、更新履歴リスト１４４に登録されている物理アドレスによって特定されるページの全ての状態が無効とされる（つまり、論物変換テーブル１４１に保持されている物理アドレスに対応するページのみが有効とされる）。
【００７９】
本実施形態においては保存バージョン数がユーザによって指定されるものとして説明したが、データを保存すべきバージョンまたはデータを保存すべきでない（つまり、データを無効とすべき）バージョンを表すバージョン番号がユーザによって直接指定されても構わない。
【００８０】
次に、図１０のフローチャートを参照して、本実施形態に係るストレージ装置１０において実行されるバージョン確定処理の処理手順について説明する。このバージョン確定処理は、同一のバージョンとして管理される範囲を確定させる際の処理であり、バージョン確定要求が入力された場合に実行される。なお、バージョン確定要求（version_commit()）はユーザの指示に応じて入力される。
【００８１】
なお、以下の説明においては、更新履歴リスト１４４に対応づけて登録されている論理アドレス及び物理アドレスの組を便宜的に論物アドレスと称する。
【００８２】
まず、バージョン確定部１３３は、入出力部１２を介して入力されたバージョン確定要求を取得する（ステップＳ２１）。
【００８３】
バージョン確定要求が取得されると、バージョン確定部１３３は、バージョンが確定されていない論物アドレスが更新履歴リスト１４４に存在する（つまり、バージョン未確定の論物アドレスがある）か否かを判定する（ステップＳ２２）。
【００８４】
バージョン未確定の論物アドレスがあると判定された場合（ステップＳ２２のＹＥＳ）、バージョン確定部１３３は、更新履歴リスト１４４に登録されている当該論物アドレスを同一のバージョンとして確定する（ステップＳ２３）。つまり、複数のバージョン未確定の論物アドレス（論理アドレス及び物理アドレスの組）が更新履歴リスト１４４に登録されている場合には、当該論物アドレスの全てが同一のバージョンとして確定される。
【００８５】
上記したようにデータ更新処理が実行されることによって更新履歴リスト１４４には、バージョン番号に対応づけて論理アドレス及び物理アドレスが登録されるが、当該データ更新処理（更新履歴リスト１４４への登録処理）の後にバージョン確定部１３３によってバージョンが確定されることによって、当該バージョンの論物アドレスが有効なものとなる。なお、バージョン確定処理によって確定されたバージョンを表すバージョン番号は、入出力部１２を介して出力され、ユーザに対して通知される。これにより、ユーザは、更新履歴リスト１４４に登録されているバージョンについて把握することができる。
【００８６】
上記したステップＳ２３の処理によれば、更新履歴リスト１４４において新たなバージョンが追加されることになる（つまり、バージョンが増える）。このため、バージョン確定部１３３は、上記したように設定テーブル１４５に設定された保存バージョン数に基づいてページ状態テーブル１４２を更新する（ステップＳ２４）。なお、このステップＳ２４の処理は、上述した図７に示すステップＳ１３の処理と同様であるため、その詳しい説明を省略する。
【００８７】
上記したようなバージョン確定処理によれば、バージョン確定要求が入力されるまでに更新履歴リスト１４４に登録される論物アドレスを同一のバージョンとして管理することができる（つまり、同一のバージョン番号に対応づけられる）。なお、バージョン確定処理が実行された後にデータ更新処理が実行された場合には、次のバージョンを示すバージョン情報に対応づけて論物アドレスが更新履歴リストに登録されることになる。
【００８８】
また、バージョン確定要求が入力されるまでに論理アドレスが共通する複数の論物アドレスが更新履歴リスト１４４に登録される場合には、後に実行されるデータ更新処理による論物アドレスのみが登録される。
【００８９】
また、上記したバージョン確定処理（つまり、バージョン確定要求の入力）は、例えば一連の処理（トランザクション）単位で行われるものとする。
【００９０】
次に、図１１のフローチャートを参照して、本実施形態に係るストレージ装置１０において実行されるバージョン復元処理の処理手順について説明する。このバージョン復元処理は、特定のバージョンの状態に論物変換テーブル１４１を復元する際の処理であり、バージョン復元要求が入力された場合に実行される。なお、バージョン復元要求（version_restore(int ver_num)）には、復元の対象となるバージョンを表すバージョン番号が含まれる。このバージョン番号は、ユーザによって指定される。
【００９１】
ここでは、上述したデータ更新処理及びバージョン確定処理が実行されることによって、更新履歴リスト１４４には各バージョン情報に対応づけて論物アドレス（論理アドレス及び物理アドレス）が登録されているものとする。
【００９２】
まず、バージョン復元部１３４は、入出力部１２を介して入力されたバージョン復元要求を取得する（ステップＳ３１）。
【００９３】
次に、バージョン復元部１３４は、バージョン復元要求に含まれるバージョン番号に対応づけて更新履歴リスト１４４に登録されている論理アドレスを取得する（ステップＳ３２）。以下の説明においては、ステップＳ３２において取得された論理アドレスを対象論理アドレスと称する。
【００９４】
バージョン復元部１３４は、対象論理アドレスに対応づけて論物変換テーブル１４１に保持されている物理アドレスを取得する（ステップＳ３３）。
【００９５】
バージョン復元部１３４は、対象論理アドレス及びステップＳ３３において取得された物理アドレスを更新履歴リスト１４４に追加する（ステップＳ３４）。
【００９６】
次に、バージョン復元部１３４は、バージョン復元要求に含まれるバージョン番号に対応づけて更新履歴リスト１４４に登録されている論理アドレス（対象論理アドレス）及び物理アドレスを取得する（ステップＳ３５）。
【００９７】
バージョン復元部１３４は、ステップＳ３５において取得された論理アドレスに対応づけて論物変換テーブル１４１に保持されている物理アドレスを、ステップＳ３５において取得された物理アドレスに変更する（ステップＳ３６）。これによって、ユーザによって指定されたバージョンの論物アドレスが論物変換テーブル１４１に復元される。
【００９８】
ここで、図１２を参照して、上記したバージョン復元処理が実行された場合における論物変換テーブル１４１及び更新履歴リスト１４４の遷移について具体的に説明する。
【００９９】
ここでは、図１２に示すように、バージョン復元処理が実行される前の論物変換テーブル１４１ａには、論理アドレス「１」とブロック番号「１」及びページ番号「４」を含む物理アドレスとが対応づけて保持されているものとする。同様に、論物変換テーブル１４１ａには、論理アドレス「２」とブロック番号「１」及びページ番号「５」を含む物理アドレスとが対応づけて保持されているものとする。
【０１００】
また、バージョン復元処理が実行される前の更新履歴リスト１４４ａには、バージョン番号「２」に対応づけて、論理アドレス「２」とブロック番号「１」及びページ番号「３」を含む物理アドレスとが登録されているものとする。同様に、更新履歴リスト１４４ａには、バージョン番号「２」に対応づけて、論理アドレス「１」とブロック番号「１」及びページ番号「１」を含む物理アドレスとが登録されているものとする。更に、更新履歴リスト１４４ａには、バージョン番号「１」に対応づけて、論理アドレス「２」とブロック番号「１」及びページ番号「２」を含む物理アドレスとが登録されているものとする。
【０１０１】
ここで、バージョン番号「２」を含むバージョン復元要求が入出力部１２を介して入力された場合を想定する。この場合、バージョン復元部１３４は、バージョン復元要求に含まれるバージョン番号「２」に対応づけて更新履歴リスト１４４ａに登録されている論理アドレスを取得する。図１２に示す例では、論理アドレス「１」及び論理アドレス「２」が更新履歴リスト１４４ａから取得される。
【０１０２】
このように複数の論理アドレスが取得された場合には、当該論理アドレスの各々について上述した図１１に示すステップＳ３２以降の処理が実行される。
【０１０３】
まず、論理アドレス「１」に関する処理について説明する。この場合、バージョン復元部１３４は、論理アドレス「１」に対応づけて論物変換テーブル１４１ａに保持されている物理アドレスを取得する。図１２に示す論物変換テーブル１４１ａによれば、ブロック番号「１」及びページ番号「４」を含む物理アドレスが取得される。
【０１０４】
この場合、バージョン復元部１３４は、論理アドレス「１」及び取得された物理アドレス（ブロック番号「１」及びページ番号「４」）を更新履歴リスト１４４ａに追加する。この場合における論理アドレス及び物理アドレスは、バージョン番号「３」（つまり、新しいバージョン）に対応づけて更新履歴リスト１４４に登録される。これによれば、更新履歴リスト１４４ａは、更新履歴リスト１４４ｂに遷移する。
【０１０５】
一方、バージョン復元部１３４は、バージョン復元要求に含まれるバージョン番号「２」に対応づけて更新履歴リスト１４４ｂに登録されている論物アドレスを取得する。ここでは、論理アドレス「１」とブロック番号「１」及びページ番号「１」を含む物理アドレスとが取得される。
【０１０６】
この場合、バージョン復元部１３４は、ブロック番号「１」及びページ番号「１」を含む物理アドレスを、論理アドレス「１」に対応づけて論物変換テーブル１４１ａに書き込む。これによれば、論物変換テーブル１４１ａは、論物変換テーブル１４１ｂに遷移する。
【０１０７】
次に、論理アドレス「２」に関する処理について説明する。この場合、バージョン復元部１３４は、論理アドレス「２」に対応づけて論物変換テーブル１４１ｂに保持されている物理アドレスを取得する。図１２に示す論物変換テーブル１４１ｂによれば、ブロック番号「１」及びページ番号「５」を含む物理アドレスが取得される。
【０１０８】
この場合、バージョン復元部１３４は、論理アドレス「２」及び取得された物理アドレス（ブロック番号「１」及びページ番号「５」）を更新履歴リスト１４４ｂに追加する。この場合における論理アドレス及び物理アドレスは、バージョン番号「３」に対応づけて更新履歴リスト１４４ｂに登録される。これによれば、更新履歴リスト１４４ｂは、更新履歴リスト１４４ｃに遷移する。
【０１０９】
一方、バージョン復元部１３４は、バージョン復元要求に含まれるバージョン番号「２」に対応づけて更新履歴リスト１４４ｂに登録されている論物アドレスを取得する。ここでは、論理アドレス「２」とブロック番号「１」及びページ番号「３」を含む物理アドレスとが取得される。
【０１１０】
この場合、バージョン復元部１３４は、ブロック番号「１」及びページ番号「３」を含む物理アドレスを、論理アドレス「２」に対応づけて論物変換テーブル１４１ｂに書き込む。これによれば、論物変換テーブル１４１ｂは、論物変換テーブル１４１ｃに遷移する。
【０１１１】
上記したようなバージョン復元処理によれば、ユーザによって指定されたバージョン番号（によって表されるバージョン）の論物アドレスが論物変換テーブル１４１に復元されるとともに、当該論物変換テーブル１４１に保持されていた論物アドレスが更新履歴リスト１４４に登録される。
【０１１２】
なお、バージョン復元要求に含まれるバージョン番号が更新履歴リスト１４４に存在しない場合、または上述した保存バージョン設定処理及びバージョン確定処理によって当該バージョン番号に対応づけて更新履歴リスト１４４に登録されている物理アドレスによって特定されるページの状態が無効とされている場合には、エラーがユーザに対して通知されるものとする。
【０１１３】
次に、図１３のフローチャートを参照して、前述したデータ消去部１３５によって実行されるガベージコレクション（ＧＣ）の処理手順について説明する。なお、ガベージコレクションは、ＮＡＮＤ型フラッシュメモリ１１における書き込み領域の確保処理であり、例えば予め定められた期間毎に実行される。
【０１１４】
ガベージコレクションにおいては、ＮＡＮＤ型フラッシュメモリ１１における各ブロックについて以下のステップＳ４１〜Ｓ４５の処理が実行される。以下、この処理の対象となるブロックを対象ブロックと称する。
【０１１５】
まず、データ消去部１３５は、対象ブロックのページ状態テーブル１４２を参照して、当該対象ブロックを構成する複数のページのうち、状態が無効であるページ（以下、無効ページと表記）の割合が閾値以上であるか否かを判定する（ステップＳ４１）。
【０１１６】
無効ページの割合が閾値以上であると判定された場合（ステップＳ４１のＹＥＳ）、データ消去部１３５は、対象ブロック以外の各ブロックのページ状態テーブル１４２を参照して、消去済みブロックを特定する（ステップＳ４２）。なお、消去済みブロックは、状態が消去済みであるページのみから構成されるブロックである。
【０１１７】
次に、データ消去部１３５は、対象ブロックのページ状態テーブル１４２を参照して、当該対象ブロックを構成する複数のページのうち、状態が有効であるページ（以下、有効ページと表記）のデータをＮＡＮＤ型フラッシュメモリ１１から取得する。なお、このデータは、対象ブロックに割り当てられたブロック番号及び有効ページに割り当てられたページ番号（つまり、物理アドレス）に基づいて取得される。データ消去部１３５は、取得されたデータを、上記した消去済みブロック（を構成するページ）にコピーする（ステップＳ４３）。以下、有効ページのデータがコピーされたページをコピー先ページと称する。
【０１１８】
なお、ページ状態テーブル１４２において、上記したように消去済みブロックを構成する各ページの状態は消去済みである。したがって、上記したステップＳ４４の処理が実行された場合には、ページ状態テーブル１４２におけるコピー先ページの状態（当該ページに割り当てられたページ番号に対応づけてページ状態テーブル１４２に保持されている状態）は、消去済みから有効に更新される。
【０１１９】
また、有効ページの物理アドレスが論物変換テーブル１４１に保持されている場合、当該論物変換テーブル１４１において、当該有効ページの物理アドレスは、コピー先ページの物理アドレスに更新される。同様に、有効ページの物理アドレスが更新履歴リスト１４４に登録されている場合には、当該更新履歴リスト１４４において、当該有効ページの物理アドレスは、コピー先ページの物理アドレスに更新される。
【０１２０】
次に、データ消去部１３５は、対象ブロック（を構成する複数のページ）のデータを消去する（ステップＳ４４）。これによれば、対象ブロックは、消去済みブロックとなり、データの書き込みが可能となる。
【０１２１】
このように対象ブロックが消去済みブロックとなる場合、当該対象ブロックのページ状態テーブル１４２における各ページの状態は消去済みに更新される。
【０１２２】
ここで、ＮＡＮＤ型フラッシュメモリ１１における全てのブロックについてステップＳ４１〜Ｓ４４の処理が実行されたか否かが判定される（ステップＳ４５）。
【０１２３】
全てのブロックについて処理が実行されていないと判定された場合（ステップＳ４５のＮＯ）、上述したステップＳ４１に戻って処理が繰り返される。この場合、ステップＳ４１〜Ｓ４４の処理が実行されていないブロックを対象ブロックとして処理が実行される。
【０１２４】
一方、全てのブロックについて処理が実行されたと判定された場合（ステップＳ４５のＹＥＳ）、ガベージコレクションは終了される。
【０１２５】
なお、上記したステップＳ４１において無効ページの割合が閾値以上でないと判定された場合には、ステップＳ４５の処理が実行される。
【０１２６】
上記したようなガベージコレクションによれば、保存バージョン設定処理及びバージョン確定処理によって状態が無効とされたページ（から構成されるブロック）がコントローラ１３側で自動的に削除される。
【０１２７】
上記したように本実施形態においては、ＮＡＮＤ型フラッシュメモリ（不揮発性の半導体記憶装置）１１に記憶されているデータを管理するコントローラ（ＮＡＮＤコントローラ）１３が、データの更新時に論物変換テーブル１４１に保持されている論理アドレス及び物理アドレスをバージョン情報に対応づけて更新履歴リスト１４４に登録し、当該更新履歴リスト１４４に登録されたバージョン情報に基づいて当該バージョン情報に対応づけて更新履歴リスト１４４に登録された物理アドレスに記憶されているデータを消去する。
【０１２８】
すなわち、本実施形態においては、ストレージ装置１０が備えるコントローラ（ＮＡＮＤコントローラ）１３がデータのバージョン管理を行い、当該コントローラ１３によるガベージコレクションの実行時に不要なバージョンのデータが自動的に消去される。このため、本実施形態においては、データベースのロックを伴うバキューム処理等がデータベースシステム側で実行されることなく不要データの消去を行うことが可能となる。
【０１２９】
また、本実施形態においては、ユーザによって指定されたバージョン（つまり、保存バージョン数分のバージョン）より過去のバージョンのデータが消去されるため、ユーザの意図するバージョンのデータを消去することができる。
【０１３０】
更に、本実施形態においては、ユーザによって指定されたバージョン番号に対応づけて更新履歴リスト１４４に登録されている論物アドレスを論物変換テーブル１４１に復元することにより、例えば誤ってデータが書き込まれた場合や最新のデータ（つまり、論物変換テーブル１４１に保持されている物理アドレスに記憶されているデータ）が破損したような場合に、必要に応じて過去のバージョンのデータを利用することが可能となる。
【０１３１】
また、本実施形態においては、バージョン確定要求が入力されるまでに更新履歴リストに登録された論物アドレスが同一のバージョンとして管理されることにより、例えば一連の処理（トランザクション）単位でのバージョン管理、データの復元及び消去等が可能となる。
【０１３２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。  
【符号の説明】
【０１３３】
１０…ストレージ装置、１１…ＮＡＮＤ型フラッシュメモリ、１２…入出力部、１３…コントローラ、１４…メモリ、１３１…データ更新部、１３２…保存バージョン設定部、１３３…バージョン確定部、１３４…バージョン復元部、１３５…データ消去部、１４１…論物変換テーブル、１４２…ページ状態テーブル、１４３…消去済みページリスト、１４４…更新履歴リスト、１４５…設定テーブル
【図１】
2015158797.tif 000003
【図２】
2015158797.tif 000004
【図３】
2015158797.tif 000005
【図４】
2015158797.tif 000006
【図５】
2015158797.tif 000007
【図６】
2015158797.tif 000008
【図７】
2015158797.tif 000009
【図８】
2015158797.tif 000010
【図９】
2015158797.tif 000011
【図１０】
2015158797.tif 000012
【図１１】
2015158797.tif 000013
【図１２】
2015158797.tif 000014
【図１３】
2015158797.tif 000015