JP6293709B2 - ストレージシステムおよびストレージシステム用プログラム - Google Patents

ストレージシステムおよびストレージシステム用プログラム Download PDF

Info

Publication number
JP6293709B2
JP6293709B2 JP2015144515A JP2015144515A JP6293709B2 JP 6293709 B2 JP6293709 B2 JP 6293709B2 JP 2015144515 A JP2015144515 A JP 2015144515A JP 2015144515 A JP2015144515 A JP 2015144515A JP 6293709 B2 JP6293709 B2 JP 6293709B2
Authority
JP
Japan
Prior art keywords
tid
record
node
transaction
storage system
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
JP2015144515A
Other languages
English (en)
Other versions
JP2017027326A (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 JP2015144515A priority Critical patent/JP6293709B2/ja
Publication of JP2017027326A publication Critical patent/JP2017027326A/ja
Application granted granted Critical
Publication of JP6293709B2 publication Critical patent/JP6293709B2/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

本発明の実施形態は、ストレージシステムおよびストレージシステム用プログラムに関する。
複数の計算装置およびストレージ装置がネットワークで接続された分散データベースシステムにおいて、複数のユーザからストレージ装置に対して同時に処理要求が行われた場合、単位時間当たりに処理するスループットを向上させる方法として、多版同時実行制御(Multi Version Concurrency Control、以下MVCCと略称)を用いたトランザクション機構が広く利用されている。MVCC は、任意のレコードにおける変更状態(バージョン)を複数保持することで同時並行性を失わずに処理し、かつ情報の一貫性を保証しつつ、データアクセスの依存関係を解決する制御方法である。
従来、MVCC を用いたトランザクション機構では、同一レコードについて複数トランザクションIDによるバージョンを保持するために、同一レコードであっても異なるデータとして扱い、ファイルシステムを用いてブロック単位で複数バージョンを取得して必要なレコードを抽出している。このように、レコード群からなるブロック単位で転送するので、ネットワークへの負荷が大きい、という問題があった。
特開2011−204161号公報
本発明が解決しようとする課題は、ノード(計算装置)からのデータ転送量を大幅に削減することのできるストレージシステムおよびストレージシステム用プログラムを提供することである。
実施形態のストレージシステムは、計算装置であってそれぞれが分散データベースを備えている複数のノードと、前記ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持するトランザクション管理装置と、前記ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了を前記ノードに通知する不揮発性メモリ型ストレージと、を備える。
本発明の実施形態に係るストレージシステムの概略構成を示すブロック図である。 TID -論理アドレス変換リストを説明する図である。 新レコードの書き込み時の動作を説明する図である。 新レコードの書き込み時の動作の流れを示すフローチャートである。 レコードコミット時の動作を説明する図である。 レコードコミット時の動作の流れを示すフローチャートである。 既存レコードの更新時の動作を説明する図である。 既存レコードの更新時の動作の流れを示すフローチャートである。 既存レコードの削除時の動作を説明する図である。 既存レコードの読み出し時の動作を説明する図である。 既存レコードの読み出し時の動作の流れを示すフローチャートである。 ロールバック限界TID 登録時の動作を説明する図である。 ロールバック時の動作を説明する図である。 不要TID 削除時の動作を説明する図である。 既存レコードの更新時の動作の流れを示すフローチャートである。
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
まず、本実施形態で用いる主要な用語について説明する。
「データベース」とは、事前に定めた規則に従ってデータを書き込みや管理を行うことにより、容易に検索・抽出などの再利用を可能とするソフトウェアをいう。
「ストレージ」とは、データを格納する記憶装置をいう。
「ファイルシステム」とは、ストレージに格納されているデータを管理するソフトウェアをいう。
「NAND型フラッシュメモリ」とは、不揮発性の半導体記憶装置をいう。本実施形態では、NAND型フラッシュメモリによりストレージを構成するのが好適である。
「ブロック」とは、ファイルシステムのデータの読み出し/書き込みの単位をいう。
「レコード」とは、データベースにおけるデータ登録の単位をいう。
「レコードID」とは、レコード毎にシーケンシャルに付与される識別子をいう。
「トランザクション処理」とは、複数のデータ操作を不可分な一連の操作として扱う処理をいう。トランザクション処理は、トランザクションID(TID)、コミットおよびロールバックの要素を備える。
「トランザクションID(TID)」とは、トランザクション処理毎にシーケンシャルに付与される識別子である。TIDの数値が大きい方が新しいトランザクションであり、小さい方が古いトランザクションであることを示す。
「コミット」とは、トランザクション処理に関する一連の操作を確定することである。
「ロールバック」とは、トランザクション処理の単位で処理を巻き戻して以前の状態にすることである。
「トランザクション管理装置」とは、各ノードで実行されるトランザクションのTIDを発行し、トランザクションの開始と終了の情報を保持する装置をいう。
「スナップショット」とは、あるトランザクション開始時点において既にコミットが完了しているTIDの集合をいう。トランザクション管理装置が管理しており、都度データベースに渡される。
本実施形態においては、MVCCを備える分散データベースにおいて、ファイルシステムを用いることなく、アクセスするトランザクションに相応しいTIDのレコードを不揮発性メモリ型ストレージが判断して転送するものである。
図1は、本発明の実施形態に係るストレージシステムの概略構成を示すブロック図である。この装置は汎用のコンピュータ(例えばパーソナルコンピュータ(PC)等)と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、CAD(Computer Aided Design)やCAE(Computer Aided Engineering)に好適なエンジニアリングワークステーション(EWS)等も含む。本実施形態はこのようなコンピュータにおいて、計算装置であってそれぞれが分散データベースを備えている複数のノードと不揮発性メモリ型ストレージとを備えるストレージシステムに、ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持する機能と、ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了をノードに通知する機能と、を実現させるためのストレージシステム用プログラムとして実施することもできる。
図1に示すように、本実施形態に係るストレージシステム1は、主として、不揮発性メモリ型ストレージ10と、トランザクション管理装置20と、複数のノード30から構成されている。
不揮発性メモリ型ストレージ10は、ノード30からレコード書き込み等の操作要求を受け付け、当該処理を実行する。不揮発性メモリ型ストレージ10の構成およびノード30からの各操作要求に対する処理の詳細は後述する。
トランザクション管理装置20は、各ノード30で実行されるトランザクションのTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持する。
ノード30は、計算装置であって分散データベースを備えている。分散データベースは、複数の計算装置(ノード)およびストレージ装置がネットワークで接続されたハードウェア構成であり、すべてのノードがネットワーク経由で共有ストレージ装置内のレコードにアクセスできるシステムである。
不揮発性メモリ型ストレージ10は、トランザクションレコードアクセス部11、ロールバック限界TID保持部12、ノードアクセス情報保持部13、TID-論理アドレス変換リスト14、論物変換テーブル15、不揮発性メモリ16を備えている。
トランザクションレコードアクセス部11は、各ノード30に対して、以下の機能を提供する。(5)〜(7)の機能は、従来のファイルシステムを使用しない本実施形態における特徴的な機能である。
(1)レコード書き込み操作:レコードID、実行中のTIDを引数とする。
(2)レコードコミット操作:レコードID、実行中のTIDを引数とする。
(3)レコード読出し操作:レコードID、実行中のTIDを引数とする。
(4)レコード削除操作:レコードID、実行中のTIDを引数とする。
(5)ロールバック操作:コミット操作を取り消して、トランザクションの単位で以前の巻き戻し状態とする。以前の状態への巻き戻し先TIDを引数とする。
(6)ロールバック限界TID登録操作:巻き戻し限界となるTIDを引数とする。
(7)不要TID削除操作:不要なTIDを削除するもので、引数を伴わない。
これらの操作の要求をノード30から受けると、トランザクションレコードアクセス部11は、要求の送り元ノードアクセス情報をノードアクセス情報保持部13に送る。要求が完了すると、トランザクションレコードアクセス部11はノードアクセス情報保持部13に保持した要求の送り元ノードアクセス情報を用いて完了通知を送信する。
ロールバック限界TID保持部12は、トランザクション処理の巻き戻しの限界となるTIDを保持する。
ノードアクセス情報保持部13は、不揮発性メモリ型ストレージ10に対する操作要求元のノードに関し、ノード番号、レコードID、TIDを保持する。
TID-論理アドレス変換リスト14は、データ抽出の際に必要となる書き込んだデータとTIDとの関係を保持するために、レコードIDとTIDとの関係を論理アドレスを介して保持するもので、レコードID毎に、“操作したTID”、“論理アドレス”、“コミットフラグ”、“削除フラグ”の各要素をリスト形式で保持する。図2は、TID-論理アドレス変換リスト14を説明する図である。ここで、操作したTIDは、リストに要素を追加したTIDである。論理アドレスは、操作したTIDがレコードを書き込んだ論理アドレスである。コミットフラグは、コミットが完了したか否かを表す。コミット済みの状態を示す“True”と、コミットが済んでない状態を示す“False”がある。削除フラグは、データを削除したか否かを表す。削除済みの状態を示す“True”と、削除が済んでない状態を示す“False”がある。
論物変換テーブル15は、データを記憶する不揮発性メモリ16の記憶領域の物理アドレスと論理アドレスの対応関係を格納するものである。
不揮発性メモリ16としては、書き込みが高速で大容量化しやすいNAND型フラッシュメモリが好適である。NAND型フラッシュメモリは、電気的にデータを書き換えることが可能で、電力を供給しなくてもデータを保持することができる不揮発性の半導体メモリである。不揮発性メモリ16は、固有の物理アドレスを持っている。
次に、以上のように構成されたストレージシステム1における各操作要求に対する処理について詳述する。
<新レコードの書き込み>
図3は、新レコードの書き込み時の動作を説明する図である。図3では、ノードAからレコードID=1、 TID=100の書き込み要求を受けた場合を例として動作を説明する。新レコードの書き込み要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=100を登録する。
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID-論理アドレスを登録する。図2に示す例では、操作したTID=100、論理アドレス=1が登録され、この状態ではトランザクションが確定していないのでコミットフラグ=Fが登録され、書き込み要求なので削除フラグ=Fが登録される。
続いて、トランザクションレコードアクセス部11は、論物変換テーブル15の論理アドレス=1に不揮発性メモリ16の物理アドレスを登録する。
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスにレコードを書き込む。
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、書き込み完了通知をノードAに送信する。
図4は、新レコードの書き込み時の動作の流れを示すフローチャートである。
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、新レコードの書き込みの要求を受信する(ステップS41)。
次に、ノードアクセス情報保持部13に書き込みの要求があったノード番号、レコードID、TIDを登録する(ステップS42)。
次に、TID-論理アドレス変換リスト14に、レコードIDが合致するリストの有無を検索する(ステップS43)。
リストが存在しない場合には、レコードIDについて新規リストを作成(ステップS44)し、ステップS45に移行する。新レコード書き込み時は対象レコードIDのリストが存在していないため、ステップS44のフローを通る。
一方、リストが存在する場合には、TIDが昇順になるようリストに要素を追加し、TIDと論理アドレスを登録し、コミットフラグと削除フラグはFalseとして登録する(ステップS45)。
続いて、論物変換テーブル15の論理アドレスに物理アドレスを登録する(ステップS46)。
次に、不揮発性メモリ16の所定物理アドレスにレコードを書き込む(ステップS47)。
続いて、レコードIDとTIDに基づいてノードアクセス情報保持部13から要求のあったノードを検索する(ステップS48)。
次に、トランザクションレコードアクセス部11は、書き込み完了通知をノードに送信(ステップS49)し、新レコードの書き込み時の処理を終了する。
<レコードコミット>
図5は、レコードコミット時の動作を説明する図である。図5では、ノードAからレコードID=1、 TID=100のコミット要求を受けた場合を例にして動作を説明する。コミット要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=100を登録する。
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID-論理アドレスを登録する。図5に示す例では、コミットフラグ=Tへの変更が登録される。
次に、トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、レコードのコミット完了通知をノードAに送信する。
図6は、レコードコミット時の動作の流れを示すフローチャートである。
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、レコードのコミットの要求を受信する(ステップS61)。
次に、ノードアクセス情報保持部13にコミットの要求があったノード番号、レコードID、TIDを登録する(ステップS62)。
続いて、TID-論理アドレス変換リスト14から合致するレコードIDとTIDを検索し、コミットフラグをTrueに変更する(ステップS63)。
次に、レコードIDとTIDに基づいてノードアクセス情報保持部13からコミット要求のあったノードを検索する(ステップS64)。
次に、トランザクションレコードアクセス部11は、レコードのコミット完了通知をノードに送信(ステップS65)し、レコードのコミット時の処理を終了する。
<既存レコードの更新>
図7は、既存レコードの更新時の動作を説明する図である。図7では、ノードAからレコードID=1、TID=103の更新要求を受けた場合の動作を例にして説明する。更新の書き込み要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=103を登録する。
次に、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID順で昇順にソートしてTID-論理アドレスを登録する。図7に示す例では、操作したTID=103、論理アドレス=2が登録され、この状態ではトランザクションが確定していないのでコミットフラグ=Fが登録され、更新の書き込み要求なので削除フラグ=Fが登録される。
続いて、トランザクションレコードアクセス部11は、論物変換テーブル15の論理アドレス=2に不揮発性メモリ16の物理アドレスを登録する。
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスにレコードを書き込む。
次に、トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、更新の書き込み完了通知をノードAに送信する。
図8は、既存レコードの更新時の動作の流れを示すフローチャートである。
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、既存レコードの更新の要求を受信する(ステップS81)。
次に、ノードアクセス情報保持部13に既存レコードの更新の要求があったノード番号、レコードID、TIDを登録する(ステップS82)。
次に、TID-論理アドレス変換リスト14にレコードIDが合致するリストを検索する(ステップS83)。
リストが存在しない場合には、レコードIDについて新規リストを作成(ステップS84)し、ステップS85に移行するが、既存レコードの更新時は対象レコードIDのリストが存在するので、TIDが昇順になるようリストに要素を追加し、TIDと論理アドレスを登録、コミットフラグと削除フラグはFalseとして登録する(ステップS85)。
次に、論物変換テーブル15の論理アドレスに不揮発性メモリ16の物理アドレスを登録する(ステップS86)。
次に、不揮発性メモリ16の所定物理アドレスにレコードを書き込む(ステップS87)。
続いて、レコードIDとTIDに基づいてノードアクセス情報保持部13から既存レコードの更新要求のあったノードを検索する(ステップS88)。
次に、トランザクションレコードアクセス部11は、既存レコードの更新完了通知をノードに送信(ステップS89)し、既存レコードの更新時の処理を終了する。
<既存レコードの削除>
図9は、既存レコードの削除時の動作を説明する図である。図9では、ノードAからレコードID=1、TID=108の削除要求を受けた場合の動作を例にして説明する。既存レコードの削除要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=108を登録する。
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID順で昇順にソートしてTID-論理アドレスを登録する。図9に示す例では、操作したTID=108が登録され、この状態ではトランザクションが確定していないのでコミットフラグ=Fが登録され、削除要求なので削除フラグにTrueが登録される。
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、既存レコードの削除完了通知をノードAに送信する。
尚、既存レコードの削除操作の完了については、レコードコミット時と同様のコミット操作が適用される。
<既存レコードの読み出し>
図10は、既存レコードの読み出し時の動作を説明する図である。図10では、ノードBからレコードID=1、 TID=105の読み出し要求を受けた場合の動作を例にして説明する。既存レコードの読み出し要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードB、 レコードID=1、 TID=105を登録する。
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14のTID-論理アドレスを検索するが、読み出し要求のTID以下で最新のTIDを検索する。図10に示す例では、操作したTID=103、論理アドレス=2、コミットフラグ=T、削除フラグ=Fが抽出される。
そこで、トランザクションレコードアクセス部11は、論物変換テーブル15の論理アドレス=2の物理アドレスを取得する。
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスからレコードを読み出す。
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、既存レコードの読み出し完了通知をノードBに送信する。
図11は、既存レコードの読み出し時の動作の流れを示すフローチャートである。
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、既存レコードの読み出しの要求を受信する(ステップS1101)。
次に、ノードアクセス情報保持部13に既存レコードの読み出しの要求があったノード番号、レコードID、TIDを登録する(ステップS1102)。
次に、TID-論理アドレス変換リスト14にレコードIDが合致するリストの有無を検索する(ステップS1103)。
リストが存在しない場合(ステップS1104)には、エラーとなる。
一方、リストが存在する場合、リストから読み出しTID以下の操作TIDであってかつ最大の操作TIDの要素を検索する(ステップS1105)。
次に、コミットフラグについてTrueかつ削除フラグについてFalseか否かを判定する(ステップS1106)。
ステップS1106でNoであれば、1つ古いTIDの要素を読み出す(ステップS1107)。
次に、コミットフラグについてTrueかつ削除フラグについてFalseか否かを判定する(ステップS1108)。
ステップS1108でNoであれば、ステップS1107に戻り、ステップS1108でYesであれば、ステップS1109に移行する。
ステップS1106でYesであれば、リストから論理アドレスを読み出し、論物変換テーブルの該当論理アドレスから不揮発性メモリ16の物理アドレスを読み出す(ステップS1109)。
次に、不揮発性メモリ16の所定物理アドレスからレコードを読み出す(ステップS1110)。
続いて、レコードIDとTIDに基づいてノードアクセス情報保持部13から要求のあったノードを検索する(ステップS1111)。
次に、トランザクションレコードアクセス部11は、読み出し完了通知と読み出したレコードをノードに送信(ステップS1112)し、既存レコードの読み出し時の処理を終了する。
<ロールバック限界TID登録>
図12は、ロールバック限界TID登録時の動作を説明する図である。図12では、ノードAからロールバック限界TIDの登録要求を受けた場合の動作を例にして説明する。
ロールバック限界TIDの登録要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 ロールバック限界TIDを登録する。
続いて、トランザクションレコードアクセス部11は、ロールバック限界TID保持部12に、ロールバック限界TIDを登録する。
<ロールバック>
次に、トランザクションの単位で以前の巻き戻し状態とするロールバックについて説明する。図13は、ロールバック時の動作を説明する図である。図13では、ノードBからTID=105のロールバック要求を受けた場合の動作を例にして説明する。
ロールバックの要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードB、TID=105、 ロールバックを登録する。
続いて、トランザクションレコードアクセス部11は、ロールバック限界TID保持部12にアクセスし、ロールバック要求のあったTIDと登録されているロールバック限界TIDを比較する。
次に、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にロールバック要求のあったTIDが合致するリストを検索する。
巻き戻し状態となったので、図13に示す例では、操作したTID=108ではコミットフラグ=Fに変更となっている。
<不要TID削除>
図14は、不要TID削除時の動作を説明する図である。図14では、ノードAから不要TID削除要求を受けた場合の動作を例にして説明する。不要TID削除要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 不要TID削除を登録する。
次に、トランザクションレコードアクセス部11は、ロールバック限界TID保持部12から、ロールバック限界TIDを読み出す。
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14の中から不要データを選択する。
次に、トランザクションレコードアクセス部11は、論物変換テーブル15の不要データに該当する不揮発性メモリ16の物理アドレスを取得する。
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスからレコードを削除する。
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、不要TID削除完了通知をノードAに送信する。
図15は、既存レコードの更新時の動作の流れを示すフローチャートである。
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、不要TID削除の要求を受信する(ステップS1501)。
次に、ノードアクセス情報保持部13に不要TID削除の要求があったノード番号と不要TID削除の実施を登録する(ステップS1502)。
次に、ロールバック限界TIDを読み出す(ステップS1503)。
次に、TID-論理アドレス変換リスト14から最初に登録されているレコードIDのリストを読み出す(ステップS1504)。
続いて、リストから要素を読み出す(ステップS1505)。
次に、リストの要素のうちロールバック限界TIDから、ロールバック限界TID以下のTIDのうち1つ古いTIDを残して削除する(ステップS1506)。
次に、削除したTIDに含まれている論理アドレスが指す不揮発性メモリ16の物理アドレスのデータをメモリから削除する(ステップS1507)。
続いて、次のレコードIDがリストに存在するか否かを判定する(ステップS1508)。
次のレコードIDがリストに存在する場合(ステップS1508でYes)、次のレコードIDのリストを読み出し(ステップS1509)、ステップS1505に戻る。
一方、次のレコードIDがリストに存在しない場合(ステップS1508でNo)、ノードアクセス情報保持部13から不要TID削除の要求のあったノードを検索する(ステップS1510)。
次に、トランザクションレコードアクセス部11は、不要TID削除の完了通知をノードに送信(ステップS1511)し、不要TID削除時の処理を終了する。
以上説明したように、本実施形態によれば、計算装置からのデータ転送量を大幅に削減し、スループットを向上させ、ネットワークへの負荷を軽減させることができる。例えば、各レコードが平均10バージョンを持つとすると、各ノードからストレージへのデータ転送量が1/10に削減できるため、スループットは10倍に向上する。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1・・・ストレージシステム
10・・・不揮発性メモリ型ストレージ
11・・・トランザクションレコードアクセス部
12・・・ロールバック限界TID保持部
13・・・ノードアクセス情報保持部
14・・・TID-論理アドレス変換リスト
15・・・論物変換テーブル
16・・・不揮発性メモリ
20・・・トランザクション管理装置
30・・・ノード

Claims (7)

  1. 計算装置であってそれぞれが分散データベースを備えている複数のノードと、
    前記ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持するトランザクション管理装置と、
    前記ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了を前記ノードに通知する不揮発性メモリ型ストレージと、
    を備えるストレージシステム。
  2. 前記不揮発性メモリ型ストレージは、
    前記ノードに対して、レコード書き込み操作、トランザクションに係る操作を確定させるレコードコミット操作、レコード読出し操作、レコード削除操作、トランザクションの単位で以前の巻き戻し状態とするロールバック操作、巻き戻しの限界に係るロールバック限界TID登録操作、不要TID削除操作の機能を提供するトランザクションレコードアクセス部と、
    トランザクションの巻き戻しの限界となる前記TIDを保持するロールバック限界TID保持部と、
    前記不揮発性メモリ型ストレージに対する操作要求元のノードに関し、ノード番号、レコードの識別子であるレコードID、前記TIDを保持するノードアクセス情報保持部と、
    前記レコードIDと前記TIDとの関係を論理アドレスを介して保持するTID-論理アドレス変換リストと、
    前記レコードを記憶する不揮発性メモリと、
    前記不揮発性メモリの記憶領域の物理アドレスと前記論理アドレスの対応関係を格納する論物変換テーブルと、
    を備える請求項1に記載のストレージシステム。
  3. 前記トランザクションレコードアクセス部は、前記ノードから操作の要求を受け付けると、前記操作要求元のノードアクセス情報を前記ノードアクセス情報保持部に送り、要求が完了すると、前記ノードアクセス情報保持部に保持した前記操作要求元のノードアクセス情報を用いて完了通知を前記ノードに送信する請求項2に記載のストレージシステム。
  4. 前記不揮発性メモリは、固有の物理アドレスを持つNAND型フラッシュメモリである請求項2または請求項3に記載のストレージシステム。
  5. 前記TID-論理アドレス変換リストは、
    リストに要素を追加した前記TIDを表す操作したTIDと、この操作したTIDがレコードを書き込んだ論理アドレスと、コミットが完了したか否かを表すコミットフラグと、レコードを削除したか否かを表す削除フラグの各要素をリスト形式で保持する請求項2乃至請求項4のいずれか1項に記載のストレージシステム。
  6. 前記ロールバック操作は、以前の状態への巻き戻し先TID を引数とし、
    前記ロールバック限界TID 登録操作は、巻き戻し限界となるTID を引数とし、
    前記不要TID 削除操作は引数を伴わない請求項2乃至請求項5のいずれか1項に記載のストレージシステム。
  7. 計算装置であってそれぞれが分散データベースを備えている複数のノードと不揮発性メモリ型ストレージとを備えるストレージシステムに、
    前記ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持する機能と、
    前記ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了を前記ノードに通知する機能と、
    を実現させるためのストレージシステム用プログラム。
JP2015144515A 2015-07-22 2015-07-22 ストレージシステムおよびストレージシステム用プログラム Expired - Fee Related JP6293709B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015144515A JP6293709B2 (ja) 2015-07-22 2015-07-22 ストレージシステムおよびストレージシステム用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015144515A JP6293709B2 (ja) 2015-07-22 2015-07-22 ストレージシステムおよびストレージシステム用プログラム

Publications (2)

Publication Number Publication Date
JP2017027326A JP2017027326A (ja) 2017-02-02
JP6293709B2 true JP6293709B2 (ja) 2018-03-14

Family

ID=57946020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015144515A Expired - Fee Related JP6293709B2 (ja) 2015-07-22 2015-07-22 ストレージシステムおよびストレージシステム用プログラム

Country Status (1)

Country Link
JP (1) JP6293709B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101859090B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 통합 복제 시스템
KR101826827B1 (ko) * 2017-10-11 2018-02-09 (주)데이타뱅크시스템 데이터베이스 간의 실시간 통합 복제 시스템
KR101859094B1 (ko) * 2017-10-11 2018-05-18 (주)데이타뱅크시스템즈 복제 방식의 변경을 고려한 통합 복제 시스템
US10795877B2 (en) * 2017-12-04 2020-10-06 Sap Se Multi-version concurrency control (MVCC) in non-volatile memory
CN113961639A (zh) 2020-06-22 2022-01-21 金篆信科有限责任公司 一种分布式事务处理方法、终端及计算机可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01113805A (ja) * 1987-10-28 1989-05-02 Toshiba Corp トランザクション管理方式
JPH0457127A (ja) * 1990-06-27 1992-02-24 Toshiba Corp 版管理装置
JP2006040064A (ja) * 2004-07-28 2006-02-09 Matsushita Electric Ind Co Ltd データベースアクセス装置
US10284649B2 (en) * 2013-05-31 2019-05-07 Nec Corporation Distributed processing system
JP6289883B2 (ja) * 2013-11-27 2018-03-07 株式会社東芝 ストレージ装置

Also Published As

Publication number Publication date
JP2017027326A (ja) 2017-02-02

Similar Documents

Publication Publication Date Title
US10671642B2 (en) Copying data changes to a target database
JP6293709B2 (ja) ストレージシステムおよびストレージシステム用プログラム
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
CN109086388B (zh) 区块链数据存储方法、装置、设备及介质
US20140297592A1 (en) Computer-readable medium storing program and version control method
JP6361223B2 (ja) トランザクションシステム
WO2021046750A1 (zh) 数据重分布方法、装置及系统
CN106528338B (zh) 一种远程数据复制方法、存储设备及存储系统
JP5721056B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
JP6834715B2 (ja) 更新処理プログラム、装置、及び方法
US20140320498A1 (en) Terminal device, information processing method, and computer program product
US9015124B2 (en) Replication system and method of rebuilding replication configuration
US20110099347A1 (en) Managing allocation and deallocation of storage for data objects
CN108334333A (zh) 一种源代码库更新方法及装置
US20170177615A1 (en) TRANSACTION MANAGEMENT METHOD FOR ENHANCING DATA STABILITY OF NoSQL DATABASE BASED ON DISTRIBUTED FILE SYSTEM
US10452496B2 (en) System and method for managing storage transaction requests
JP2017167654A (ja) データ管理装置及びデータベースの管理方法
KR20160074587A (ko) 데이터 유닛들의 컬렉션 체크포인팅
US11132401B1 (en) Distributed hash table based logging service
US20140325271A1 (en) Terminal device, information processing method, and computer program product
JP5832592B1 (ja) データ管理装置
US20210248108A1 (en) Asynchronous data synchronization and reconciliation
US20230315577A1 (en) Protection Groups for Backing up Cloud-Based Key-Value Stores
WO2021189314A1 (en) Data server crash recovery in object storage system using enhanced meta structure
WO2021189315A1 (en) Proxy server crash recovery in object storage system using enhanced meta structure

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180214

R151 Written notification of patent or utility model registration

Ref document number: 6293709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees