JP2017027326A - Storage system and program for the same - Google Patents
Storage system and program for the same Download PDFInfo
- Publication number
- JP2017027326A JP2017027326A JP2015144515A JP2015144515A JP2017027326A JP 2017027326 A JP2017027326 A JP 2017027326A JP 2015144515 A JP2015144515 A JP 2015144515A JP 2015144515 A JP2015144515 A JP 2015144515A JP 2017027326 A JP2017027326 A JP 2017027326A
- Authority
- JP
- Japan
- Prior art keywords
- tid
- record
- transaction
- node
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明の実施形態は、ストレージシステムおよびストレージシステム用プログラムに関する。 Embodiments described herein relate generally to a storage system and a storage system program.
複数の計算装置およびストレージ装置がネットワークで接続された分散データベースシステムにおいて、複数のユーザからストレージ装置に対して同時に処理要求が行われた場合、単位時間当たりに処理するスループットを向上させる方法として、多版同時実行制御(Multi Version Concurrency Control、以下MVCCと略称)を用いたトランザクション機構が広く利用されている。MVCC は、任意のレコードにおける変更状態(バージョン)を複数保持することで同時並行性を失わずに処理し、かつ情報の一貫性を保証しつつ、データアクセスの依存関係を解決する制御方法である。 In a distributed database system in which multiple computing devices and storage devices are connected via a network, when multiple users request processing simultaneously from the storage device, there are many methods for improving the throughput processed per unit time. Transaction mechanisms using multi-version concurrency control (MVCC) are widely used. MVCC is a control method that resolves data access dependencies while maintaining multiple concurrency by maintaining multiple changes (versions) in an arbitrary record and ensuring consistency of information. .
従来、MVCC を用いたトランザクション機構では、同一レコードについて複数トランザクションIDによるバージョンを保持するために、同一レコードであっても異なるデータとして扱い、ファイルシステムを用いてブロック単位で複数バージョンを取得して必要なレコードを抽出している。このように、レコード群からなるブロック単位で転送するので、ネットワークへの負荷が大きい、という問題があった。 Conventionally, in the transaction mechanism using MVCC, in order to hold versions with multiple transaction IDs for the same record, even the same record is handled as different data, and it is necessary to acquire multiple versions in block units using the file system Naive records are being extracted. As described above, since data is transferred in units of blocks consisting of record groups, there is a problem that the load on the network is large.
本発明が解決しようとする課題は、ノード(計算装置)からのデータ転送量を大幅に削減することのできるストレージシステムおよびストレージシステム用プログラムを提供することである。 The problem to be solved by the present invention is to provide a storage system and a storage system program capable of greatly reducing the amount of data transferred from a node (computing device).
実施形態のストレージシステムは、計算装置であってそれぞれが分散データベースを備えている複数のノードと、前記ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持するトランザクション管理装置と、前記ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了を前記ノードに通知する不揮発性メモリ型ストレージと、を備える。 The storage system according to the embodiment issues a plurality of nodes each of which is a computing device and each having a distributed database, and a TID that is an identifier of a transaction executed on the node, and information on transaction start and transaction end And a non-volatile memory type storage that accepts a transaction operation request from the node and notifies the node of the completion of the operation after executing the transaction.
以下、本発明の一実施の形態について、図面を参照して説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings. In the drawings, the same portions are denoted by the same reference numerals, and redundant description is omitted.
まず、本実施形態で用いる主要な用語について説明する。 First, main terms used in the present embodiment will be described.
「データベース」とは、事前に定めた規則に従ってデータを書き込みや管理を行うことにより、容易に検索・抽出などの再利用を可能とするソフトウェアをいう。 “Database” refers to software that enables easy reuse, such as search and extraction, by writing and managing data in accordance with predetermined rules.
「ストレージ」とは、データを格納する記憶装置をいう。 “Storage” refers to a storage device that stores data.
「ファイルシステム」とは、ストレージに格納されているデータを管理するソフトウェアをいう。 “File system” refers to software that manages data stored in a storage.
「NAND型フラッシュメモリ」とは、不揮発性の半導体記憶装置をいう。本実施形態では、NAND型フラッシュメモリによりストレージを構成するのが好適である。 “NAND flash memory” refers to a nonvolatile semiconductor memory device. In the present embodiment, it is preferable to configure the storage with a NAND flash memory.
「ブロック」とは、ファイルシステムのデータの読み出し/書き込みの単位をいう。 A “block” is a unit for reading / writing data of a file system.
「レコード」とは、データベースにおけるデータ登録の単位をいう。 “Record” means a unit of data registration in a database.
「レコードID」とは、レコード毎にシーケンシャルに付与される識別子をいう。 “Record ID” refers to an identifier that is sequentially assigned to each record.
「トランザクション処理」とは、複数のデータ操作を不可分な一連の操作として扱う処理をいう。トランザクション処理は、トランザクションID(TID)、コミットおよびロールバックの要素を備える。 “Transaction processing” refers to processing that handles a plurality of data operations as an inseparable series of operations. Transaction processing includes elements of transaction ID (TID), commit, and rollback.
「トランザクションID(TID)」とは、トランザクション処理毎にシーケンシャルに付与される識別子である。TIDの数値が大きい方が新しいトランザクションであり、小さい方が古いトランザクションであることを示す。 The “transaction ID (TID)” is an identifier that is assigned sequentially for each transaction process. A larger TID indicates a new transaction, and a smaller TID indicates an old transaction.
「コミット」とは、トランザクション処理に関する一連の操作を確定することである。 “Commit” is to confirm a series of operations related to transaction processing.
「ロールバック」とは、トランザクション処理の単位で処理を巻き戻して以前の状態にすることである。 “Rollback” refers to rewinding the processing in units of transaction processing to the previous state.
「トランザクション管理装置」とは、各ノードで実行されるトランザクションのTIDを発行し、トランザクションの開始と終了の情報を保持する装置をいう。 The “transaction management device” is a device that issues TIDs of transactions executed at each node and holds information on the start and end of transactions.
「スナップショット」とは、あるトランザクション開始時点において既にコミットが完了しているTIDの集合をいう。トランザクション管理装置が管理しており、都度データベースに渡される。 “Snapshot” refers to a set of TIDs that have already been committed at the start of a transaction. It is managed by the transaction management device and is passed to the database each time.
本実施形態においては、MVCCを備える分散データベースにおいて、ファイルシステムを用いることなく、アクセスするトランザクションに相応しいTIDのレコードを不揮発性メモリ型ストレージが判断して転送するものである。 In this embodiment, in a distributed database having MVCC, a non-volatile memory storage determines and transfers a TID record suitable for a transaction to be accessed without using a file system.
図1は、本発明の実施形態に係るストレージシステムの概略構成を示すブロック図である。この装置は汎用のコンピュータ(例えばパーソナルコンピュータ(PC)等)と、同コンピュータ上で動作するソフトウェアとを用いて実現される。コンピュータとしては、CAD(Computer Aided Design)やCAE(Computer Aided Engineering)に好適なエンジニアリングワークステーション(EWS)等も含む。本実施形態はこのようなコンピュータにおいて、計算装置であってそれぞれが分散データベースを備えている複数のノードと不揮発性メモリ型ストレージとを備えるストレージシステムに、ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持する機能と、ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了をノードに通知する機能と、を実現させるためのストレージシステム用プログラムとして実施することもできる。 FIG. 1 is a block diagram showing a schematic configuration of a storage system according to an embodiment of the present invention. This apparatus is realized using a general-purpose computer (for example, a personal computer (PC) or the like) and software operating on the computer. The computer includes an engineering workstation (EWS) suitable for CAD (Computer Aided Design) and CAE (Computer Aided Engineering). In this computer, in this embodiment, a TID that is an identifier of a transaction executed in a node is added to a storage system that is a computing device and each includes a plurality of nodes each including a distributed database and a nonvolatile memory type storage. To store the transaction start information and transaction end information, and to receive the transaction operation request from the node, execute the transaction, and notify the node of the operation completion. It can also be implemented as a storage system program.
図1に示すように、本実施形態に係るストレージシステム1は、主として、不揮発性メモリ型ストレージ10と、トランザクション管理装置20と、複数のノード30から構成されている。
As shown in FIG. 1, the
不揮発性メモリ型ストレージ10は、ノード30からレコード書き込み等の操作要求を受け付け、当該処理を実行する。不揮発性メモリ型ストレージ10の構成およびノード30からの各操作要求に対する処理の詳細は後述する。
The nonvolatile
トランザクション管理装置20は、各ノード30で実行されるトランザクションのTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持する。
The
ノード30は、計算装置であって分散データベースを備えている。分散データベースは、複数の計算装置(ノード)およびストレージ装置がネットワークで接続されたハードウェア構成であり、すべてのノードがネットワーク経由で共有ストレージ装置内のレコードにアクセスできるシステムである。
The
不揮発性メモリ型ストレージ10は、トランザクションレコードアクセス部11、ロールバック限界TID保持部12、ノードアクセス情報保持部13、TID-論理アドレス変換リスト14、論物変換テーブル15、不揮発性メモリ16を備えている。
The nonvolatile
トランザクションレコードアクセス部11は、各ノード30に対して、以下の機能を提供する。(5)〜(7)の機能は、従来のファイルシステムを使用しない本実施形態における特徴的な機能である。
The transaction
(1)レコード書き込み操作:レコードID、実行中のTIDを引数とする。
(2)レコードコミット操作:レコードID、実行中のTIDを引数とする。
(3)レコード読出し操作:レコードID、実行中のTIDを引数とする。
(4)レコード削除操作:レコードID、実行中のTIDを引数とする。
(5)ロールバック操作:コミット操作を取り消して、トランザクションの単位で以前の巻き戻し状態とする。以前の状態への巻き戻し先TIDを引数とする。
(6)ロールバック限界TID登録操作:巻き戻し限界となるTIDを引数とする。
(7)不要TID削除操作:不要なTIDを削除するもので、引数を伴わない。
(1) Record write operation: The record ID and the TID being executed are used as arguments.
(2) Record commit operation: The record ID and the TID being executed are used as arguments.
(3) Record read operation: The record ID and the TID being executed are used as arguments.
(4) Record deletion operation: The record ID and the TID being executed are used as arguments.
(5) Rollback operation: Cancels the commit operation and returns to the previous rewind state in units of transactions. The argument is the TID to which to rewind to the previous state.
(6) Rollback limit TID registration operation: TID that is the rewind limit is used as an argument.
(7) Unnecessary TID deletion operation: An unnecessary TID is deleted without an argument.
これらの操作の要求をノード30から受けると、トランザクションレコードアクセス部11は、要求の送り元ノードアクセス情報をノードアクセス情報保持部13に送る。要求が完了すると、トランザクションレコードアクセス部11はノードアクセス情報保持部13に保持した要求の送り元ノードアクセス情報を用いて完了通知を送信する。
When receiving these operation requests from the
ロールバック限界TID保持部12は、トランザクション処理の巻き戻しの限界となるTIDを保持する。
The rollback limit
ノードアクセス情報保持部13は、不揮発性メモリ型ストレージ10に対する操作要求元のノードに関し、ノード番号、レコードID、TIDを保持する。
The node access
TID-論理アドレス変換リスト14は、データ抽出の際に必要となる書き込んだデータとTIDとの関係を保持するために、レコードIDとTIDとの関係を論理アドレスを介して保持するもので、レコードID毎に、“操作したTID”、“論理アドレス”、“コミットフラグ”、“削除フラグ”の各要素をリスト形式で保持する。図2は、TID-論理アドレス変換リスト14を説明する図である。ここで、操作したTIDは、リストに要素を追加したTIDである。論理アドレスは、操作したTIDがレコードを書き込んだ論理アドレスである。コミットフラグは、コミットが完了したか否かを表す。コミット済みの状態を示す“True”と、コミットが済んでない状態を示す“False”がある。削除フラグは、データを削除したか否かを表す。削除済みの状態を示す“True”と、削除が済んでない状態を示す“False”がある。
The TID-logical
論物変換テーブル15は、データを記憶する不揮発性メモリ16の記憶領域の物理アドレスと論理アドレスの対応関係を格納するものである。
The logical-physical conversion table 15 stores a correspondence relationship between a physical address and a logical address in a storage area of the
不揮発性メモリ16としては、書き込みが高速で大容量化しやすいNAND型フラッシュメモリが好適である。NAND型フラッシュメモリは、電気的にデータを書き換えることが可能で、電力を供給しなくてもデータを保持することができる不揮発性の半導体メモリである。不揮発性メモリ16は、固有の物理アドレスを持っている。
As the
次に、以上のように構成されたストレージシステム1における各操作要求に対する処理について詳述する。
Next, processing for each operation request in the
<新レコードの書き込み>
図3は、新レコードの書き込み時の動作を説明する図である。図3では、ノードAからレコードID=1、 TID=100の書き込み要求を受けた場合を例として動作を説明する。新レコードの書き込み要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=100を登録する。
<Write new record>
FIG. 3 is a diagram for explaining the operation when writing a new record. In FIG. 3, the operation will be described by taking as an example a case where a write request of record ID = 1 and TID = 100 is received from the node A. The transaction
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID-論理アドレスを登録する。図2に示す例では、操作したTID=100、論理アドレス=1が登録され、この状態ではトランザクションが確定していないのでコミットフラグ=Fが登録され、書き込み要求なので削除フラグ=Fが登録される。
Subsequently, the transaction
続いて、トランザクションレコードアクセス部11は、論物変換テーブル15の論理アドレス=1に不揮発性メモリ16の物理アドレスを登録する。
Subsequently, the transaction
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスにレコードを書き込む。
Subsequently, the transaction
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、書き込み完了通知をノードAに送信する。
The transaction
図4は、新レコードの書き込み時の動作の流れを示すフローチャートである。 FIG. 4 is a flowchart showing the flow of operations when writing a new record.
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、新レコードの書き込みの要求を受信する(ステップS41)。
First, the transaction
次に、ノードアクセス情報保持部13に書き込みの要求があったノード番号、レコードID、TIDを登録する(ステップS42)。 Next, the node number, record ID, and TID requested to be written are registered in the node access information holding unit 13 (step S42).
次に、TID-論理アドレス変換リスト14に、レコードIDが合致するリストの有無を検索する(ステップS43)。
Next, the TID-logical
リストが存在しない場合には、レコードIDについて新規リストを作成(ステップS44)し、ステップS45に移行する。新レコード書き込み時は対象レコードIDのリストが存在していないため、ステップS44のフローを通る。 If the list does not exist, a new list is created for the record ID (step S44), and the process proceeds to step S45. Since the list of target record IDs does not exist when writing a new record, the process goes through the flow of step S44.
一方、リストが存在する場合には、TIDが昇順になるようリストに要素を追加し、TIDと論理アドレスを登録し、コミットフラグと削除フラグはFalseとして登録する(ステップS45)。 On the other hand, if the list exists, elements are added to the list so that the TIDs are in ascending order, the TID and logical address are registered, and the commit flag and the deletion flag are registered as False (step S45).
続いて、論物変換テーブル15の論理アドレスに物理アドレスを登録する(ステップS46)。 Subsequently, the physical address is registered in the logical address of the logical-physical conversion table 15 (step S46).
次に、不揮発性メモリ16の所定物理アドレスにレコードを書き込む(ステップS47)。 Next, a record is written at a predetermined physical address in the nonvolatile memory 16 (step S47).
続いて、レコードIDとTIDに基づいてノードアクセス情報保持部13から要求のあったノードを検索する(ステップS48)。
Subsequently, the requested node is retrieved from the node access
次に、トランザクションレコードアクセス部11は、書き込み完了通知をノードに送信(ステップS49)し、新レコードの書き込み時の処理を終了する。
Next, the transaction
<レコードコミット>
図5は、レコードコミット時の動作を説明する図である。図5では、ノードAからレコードID=1、 TID=100のコミット要求を受けた場合を例にして動作を説明する。コミット要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=100を登録する。
<Record commit>
FIG. 5 is a diagram for explaining the operation at the time of record commit. In FIG. 5, the operation will be described by taking as an example a case where a commit request of record ID = 1 and TID = 100 is received from the node A. The transaction
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID-論理アドレスを登録する。図5に示す例では、コミットフラグ=Tへの変更が登録される。
Subsequently, the transaction
次に、トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、レコードのコミット完了通知をノードAに送信する。
Next, the transaction
図6は、レコードコミット時の動作の流れを示すフローチャートである。 FIG. 6 is a flowchart showing the flow of operations at the time of record commit.
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、レコードのコミットの要求を受信する(ステップS61)。
First, the transaction
次に、ノードアクセス情報保持部13にコミットの要求があったノード番号、レコードID、TIDを登録する(ステップS62)。 Next, the node number, record ID, and TID for which a commit request is made are registered in the node access information holding unit 13 (step S62).
続いて、TID-論理アドレス変換リスト14から合致するレコードIDとTIDを検索し、コミットフラグをTrueに変更する(ステップS63)。
Subsequently, the record ID and TID that match are searched from the TID-logical
次に、レコードIDとTIDに基づいてノードアクセス情報保持部13からコミット要求のあったノードを検索する(ステップS64)。 Next, based on the record ID and TID, the node that made the commit request is searched from the node access information holding unit 13 (step S64).
次に、トランザクションレコードアクセス部11は、レコードのコミット完了通知をノードに送信(ステップS65)し、レコードのコミット時の処理を終了する。
Next, the transaction
<既存レコードの更新>
図7は、既存レコードの更新時の動作を説明する図である。図7では、ノードAからレコードID=1、TID=103の更新要求を受けた場合の動作を例にして説明する。更新の書き込み要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=103を登録する。
<Updating existing records>
FIG. 7 is a diagram for explaining the operation when updating an existing record. In FIG. 7, an operation when an update request of record ID = 1 and TID = 103 is received from the node A will be described as an example. Upon receiving the update write request, the transaction
次に、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID順で昇順にソートしてTID-論理アドレスを登録する。図7に示す例では、操作したTID=103、論理アドレス=2が登録され、この状態ではトランザクションが確定していないのでコミットフラグ=Fが登録され、更新の書き込み要求なので削除フラグ=Fが登録される。
Next, the transaction
続いて、トランザクションレコードアクセス部11は、論物変換テーブル15の論理アドレス=2に不揮発性メモリ16の物理アドレスを登録する。
Subsequently, the transaction
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスにレコードを書き込む。
Subsequently, the transaction
次に、トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、更新の書き込み完了通知をノードAに送信する。
Next, the transaction
図8は、既存レコードの更新時の動作の流れを示すフローチャートである。 FIG. 8 is a flowchart showing the flow of operations when updating an existing record.
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、既存レコードの更新の要求を受信する(ステップS81)。
First, the transaction
次に、ノードアクセス情報保持部13に既存レコードの更新の要求があったノード番号、レコードID、TIDを登録する(ステップS82)。 Next, the node number, record ID, and TID for which an existing record update request has been made are registered in the node access information holding unit 13 (step S82).
次に、TID-論理アドレス変換リスト14にレコードIDが合致するリストを検索する(ステップS83)。
Next, a list whose record ID matches the TID-logical
リストが存在しない場合には、レコードIDについて新規リストを作成(ステップS84)し、ステップS85に移行するが、既存レコードの更新時は対象レコードIDのリストが存在するので、TIDが昇順になるようリストに要素を追加し、TIDと論理アドレスを登録、コミットフラグと削除フラグはFalseとして登録する(ステップS85)。 If the list does not exist, a new list is created for the record ID (step S84), and the process proceeds to step S85. When the existing record is updated, the list of target record IDs exists, so that the TID is in ascending order. An element is added to the list, a TID and a logical address are registered, and a commit flag and a deletion flag are registered as False (step S85).
次に、論物変換テーブル15の論理アドレスに不揮発性メモリ16の物理アドレスを登録する(ステップS86)。
Next, the physical address of the
次に、不揮発性メモリ16の所定物理アドレスにレコードを書き込む(ステップS87)。 Next, a record is written at a predetermined physical address in the nonvolatile memory 16 (step S87).
続いて、レコードIDとTIDに基づいてノードアクセス情報保持部13から既存レコードの更新要求のあったノードを検索する(ステップS88)。
Subsequently, the node that requested the update of the existing record is searched from the node access
次に、トランザクションレコードアクセス部11は、既存レコードの更新完了通知をノードに送信(ステップS89)し、既存レコードの更新時の処理を終了する。
Next, the transaction
<既存レコードの削除>
図9は、既存レコードの削除時の動作を説明する図である。図9では、ノードAからレコードID=1、TID=108の削除要求を受けた場合の動作を例にして説明する。既存レコードの削除要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 レコードID=1、 TID=108を登録する。
<Delete existing record>
FIG. 9 is a diagram for explaining the operation when deleting an existing record. In FIG. 9, the operation when receiving a deletion request of record ID = 1 and TID = 108 from the node A will be described as an example. The transaction
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にTID順で昇順にソートしてTID-論理アドレスを登録する。図9に示す例では、操作したTID=108が登録され、この状態ではトランザクションが確定していないのでコミットフラグ=Fが登録され、削除要求なので削除フラグにTrueが登録される。
Subsequently, the transaction
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、既存レコードの削除完了通知をノードAに送信する。
The transaction
尚、既存レコードの削除操作の完了については、レコードコミット時と同様のコミット操作が適用される。 Note that the same commit operation as that at the time of record commit is applied to the completion of the delete operation of the existing record.
<既存レコードの読み出し>
図10は、既存レコードの読み出し時の動作を説明する図である。図10では、ノードBからレコードID=1、 TID=105の読み出し要求を受けた場合の動作を例にして説明する。既存レコードの読み出し要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードB、 レコードID=1、 TID=105を登録する。
<Read existing record>
FIG. 10 is a diagram for explaining the operation when reading an existing record. In FIG. 10, the operation when a read request of record ID = 1 and TID = 105 is received from the node B will be described as an example. The transaction
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14のTID-論理アドレスを検索するが、読み出し要求のTID以下で最新のTIDを検索する。図10に示す例では、操作したTID=103、論理アドレス=2、コミットフラグ=T、削除フラグ=Fが抽出される。
Subsequently, the transaction
そこで、トランザクションレコードアクセス部11は、論物変換テーブル15の論理アドレス=2の物理アドレスを取得する。
Therefore, the transaction
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスからレコードを読み出す。
Subsequently, the transaction
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、既存レコードの読み出し完了通知をノードBに送信する。
The transaction
図11は、既存レコードの読み出し時の動作の流れを示すフローチャートである。 FIG. 11 is a flowchart showing the flow of operations when reading an existing record.
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、既存レコードの読み出しの要求を受信する(ステップS1101)。
First, the transaction
次に、ノードアクセス情報保持部13に既存レコードの読み出しの要求があったノード番号、レコードID、TIDを登録する(ステップS1102)。 Next, the node number, the record ID, and the TID for which the request for reading the existing record is requested are registered in the node access information holding unit 13 (step S1102).
次に、TID-論理アドレス変換リスト14にレコードIDが合致するリストの有無を検索する(ステップS1103)。
Next, the presence / absence of a list whose record ID matches the TID-logical
リストが存在しない場合(ステップS1104)には、エラーとなる。 If the list does not exist (step S1104), an error occurs.
一方、リストが存在する場合、リストから読み出しTID以下の操作TIDであってかつ最大の操作TIDの要素を検索する(ステップS1105)。 On the other hand, if the list exists, the element of the maximum operation TID that is not more than the operation TID read from the list and is TID is searched (step S1105).
次に、コミットフラグについてTrueかつ削除フラグについてFalseか否かを判定する(ステップS1106)。 Next, it is determined whether the commit flag is true and the delete flag is false (step S1106).
ステップS1106でNoであれば、1つ古いTIDの要素を読み出す(ステップS1107)。 If No in step S1106, the element of the one older TID is read (step S1107).
次に、コミットフラグについてTrueかつ削除フラグについてFalseか否かを判定する(ステップS1108)。 Next, it is determined whether the commit flag is true and the delete flag is false (step S1108).
ステップS1108でNoであれば、ステップS1107に戻り、ステップS1108でYesであれば、ステップS1109に移行する。 If No in step S1108, the process returns to step S1107. If Yes in step S1108, the process proceeds to step S1109.
ステップS1106でYesであれば、リストから論理アドレスを読み出し、論物変換テーブルの該当論理アドレスから不揮発性メモリ16の物理アドレスを読み出す(ステップS1109)。
If Yes in step S1106, the logical address is read from the list, and the physical address of the
次に、不揮発性メモリ16の所定物理アドレスからレコードを読み出す(ステップS1110)。 Next, a record is read from a predetermined physical address in the nonvolatile memory 16 (step S1110).
続いて、レコードIDとTIDに基づいてノードアクセス情報保持部13から要求のあったノードを検索する(ステップS1111)。
Subsequently, the requested node is searched from the node access
次に、トランザクションレコードアクセス部11は、読み出し完了通知と読み出したレコードをノードに送信(ステップS1112)し、既存レコードの読み出し時の処理を終了する。
Next, the transaction
<ロールバック限界TID登録>
図12は、ロールバック限界TID登録時の動作を説明する図である。図12では、ノードAからロールバック限界TIDの登録要求を受けた場合の動作を例にして説明する。
<Rollback limit TID registration>
FIG. 12 is a diagram for explaining the operation when registering the rollback limit TID. In FIG. 12, the operation when a registration request for the rollback limit TID is received from the node A will be described as an example.
ロールバック限界TIDの登録要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 ロールバック限界TIDを登録する。
Upon receiving the rollback limit TID registration request, the transaction
続いて、トランザクションレコードアクセス部11は、ロールバック限界TID保持部12に、ロールバック限界TIDを登録する。
Subsequently, the transaction
<ロールバック>
次に、トランザクションの単位で以前の巻き戻し状態とするロールバックについて説明する。図13は、ロールバック時の動作を説明する図である。図13では、ノードBからTID=105のロールバック要求を受けた場合の動作を例にして説明する。
<Rollback>
Next, a description will be given of a rollback for making a previous rewind state in a transaction unit. FIG. 13 is a diagram for explaining the operation during rollback. In FIG. 13, the operation when receiving a rollback request of TID = 105 from the node B will be described as an example.
ロールバックの要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードB、TID=105、 ロールバックを登録する。
Upon receiving the rollback request, the transaction
続いて、トランザクションレコードアクセス部11は、ロールバック限界TID保持部12にアクセスし、ロールバック要求のあったTIDと登録されているロールバック限界TIDを比較する。
Subsequently, the transaction
次に、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14にロールバック要求のあったTIDが合致するリストを検索する。
Next, the transaction
巻き戻し状態となったので、図13に示す例では、操作したTID=108ではコミットフラグ=Fに変更となっている。 Since the rewind state has been entered, in the example shown in FIG. 13, when the operated TID = 108, the commit flag is changed to F.
<不要TID削除>
図14は、不要TID削除時の動作を説明する図である。図14では、ノードAから不要TID削除要求を受けた場合の動作を例にして説明する。不要TID削除要求を受け付けたトランザクションレコードアクセス部11は、ノードアクセス情報保持部13にノードアクセス情報として、ノードA、 不要TID削除を登録する。
<Delete unnecessary TID>
FIG. 14 is a diagram for explaining the operation when deleting unnecessary TIDs. In FIG. 14, an operation when an unnecessary TID deletion request is received from the node A will be described as an example. The transaction
次に、トランザクションレコードアクセス部11は、ロールバック限界TID保持部12から、ロールバック限界TIDを読み出す。
Next, the transaction
続いて、トランザクションレコードアクセス部11は、TID-論理アドレス変換リスト14の中から不要データを選択する。
Subsequently, the transaction
次に、トランザクションレコードアクセス部11は、論物変換テーブル15の不要データに該当する不揮発性メモリ16の物理アドレスを取得する。
Next, the transaction
続いて、トランザクションレコードアクセス部11は、不揮発性メモリ16の所定物理アドレスからレコードを削除する。
Subsequently, the transaction
トランザクションレコードアクセス部11は、ノードアクセス情報保持部13に登録されたノードアクセス情報を参照して、不要TID削除完了通知をノードAに送信する。
The transaction
図15は、既存レコードの更新時の動作の流れを示すフローチャートである。 FIG. 15 is a flowchart showing the flow of operations when updating an existing record.
まず、不揮発性メモリ型ストレージ10のトランザクションレコードアクセス部11は、不要TID削除の要求を受信する(ステップS1501)。
First, the transaction
次に、ノードアクセス情報保持部13に不要TID削除の要求があったノード番号と不要TID削除の実施を登録する(ステップS1502)。 Next, the node number for which unnecessary TID deletion was requested and the execution of unnecessary TID deletion are registered in the node access information holding unit 13 (step S1502).
次に、ロールバック限界TIDを読み出す(ステップS1503)。 Next, the rollback limit TID is read (step S1503).
次に、TID-論理アドレス変換リスト14から最初に登録されているレコードIDのリストを読み出す(ステップS1504)。 Next, a list of record IDs registered first is read from the TID-logical address conversion list 14 (step S1504).
続いて、リストから要素を読み出す(ステップS1505)。 Subsequently, an element is read from the list (step S1505).
次に、リストの要素のうちロールバック限界TIDから、ロールバック限界TID以下のTIDのうち1つ古いTIDを残して削除する(ステップS1506)。 Next, from the rollback limit TID among the elements of the list, one old TID is deleted from the TID less than or equal to the rollback limit TID (step S1506).
次に、削除したTIDに含まれている論理アドレスが指す不揮発性メモリ16の物理アドレスのデータをメモリから削除する(ステップS1507)。
Next, the data of the physical address of the
続いて、次のレコードIDがリストに存在するか否かを判定する(ステップS1508)。 Subsequently, it is determined whether or not the next record ID exists in the list (step S1508).
次のレコードIDがリストに存在する場合(ステップS1508でYes)、次のレコードIDのリストを読み出し(ステップS1509)、ステップS1505に戻る。 If the next record ID exists in the list (Yes in step S1508), the list of the next record ID is read (step S1509), and the process returns to step S1505.
一方、次のレコードIDがリストに存在しない場合(ステップS1508でNo)、ノードアクセス情報保持部13から不要TID削除の要求のあったノードを検索する(ステップS1510)。 On the other hand, if the next record ID does not exist in the list (No in step S1508), the node that requested the unnecessary TID deletion is searched from the node access information holding unit 13 (step S1510).
次に、トランザクションレコードアクセス部11は、不要TID削除の完了通知をノードに送信(ステップS1511)し、不要TID削除時の処理を終了する。
Next, the transaction
以上説明したように、本実施形態によれば、計算装置からのデータ転送量を大幅に削減し、スループットを向上させ、ネットワークへの負荷を軽減させることができる。例えば、各レコードが平均10バージョンを持つとすると、各ノードからストレージへのデータ転送量が1/10に削減できるため、スループットは10倍に向上する。 As described above, according to the present embodiment, the amount of data transferred from the computing device can be greatly reduced, the throughput can be improved, and the load on the network can be reduced. For example, assuming that each record has an average of 10 versions, the data transfer amount from each node to the storage can be reduced to 1/10, so that the throughput is improved 10 times.
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1・・・ストレージシステム
10・・・不揮発性メモリ型ストレージ
11・・・トランザクションレコードアクセス部
12・・・ロールバック限界TID保持部
13・・・ノードアクセス情報保持部
14・・・TID-論理アドレス変換リスト
15・・・論物変換テーブル
16・・・不揮発性メモリ
20・・・トランザクション管理装置
30・・・ノード
DESCRIPTION OF
Claims (7)
前記ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持するトランザクション管理装置と、
前記ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了を前記ノードに通知する不揮発性メモリ型ストレージと、
を備えるストレージシステム。 A plurality of nodes each of which is a computing device and each has a distributed database;
A transaction management device that issues a TID, which is an identifier of a transaction executed in the node, and holds transaction start information and transaction end information;
A non-volatile memory type storage that accepts a transaction operation request from the node and notifies the node of the completion of the operation after executing the transaction;
A storage system comprising:
前記ノードに対して、レコード書き込み操作、トランザクションに係る操作を確定させるレコードコミット操作、レコード読出し操作、レコード削除操作、トランザクションの単位で以前の巻き戻し状態とするロールバック操作、巻き戻しの限界に係るロールバック限界TID登録操作、不要TID削除操作の機能を提供するトランザクションレコードアクセス部と、
トランザクションの巻き戻しの限界となる前記TIDを保持するロールバック限界TID保持部と、
前記不揮発性メモリ型ストレージに対する操作要求元のノードに関し、ノード番号、レコードの識別子であるレコードID、前記TIDを保持するノードアクセス情報保持部と、
前記レコードIDと前記TIDとの関係を論理アドレスを介して保持するTID-論理アドレス変換リストと、
前記レコードを記憶する不揮発性メモリと、
前記不揮発性メモリの記憶領域の物理アドレスと前記論理アドレスの対応関係を格納する論物変換テーブルと、
を備える請求項1に記載のストレージシステム。 The nonvolatile memory storage is
For the node, a record write operation, a record commit operation for confirming an operation related to a transaction, a record read operation, a record delete operation, a rollback operation for setting a previous rewind state in a transaction unit, and a rewind limit Transaction record access part that provides functions for rollback limit TID registration operation and unnecessary TID deletion operation,
A rollback limit TID holding unit for holding the TID which is a limit of rewinding a transaction;
Regarding the operation request source node for the nonvolatile memory type storage, a node number, a record ID that is an identifier of the record, a node access information holding unit that holds the TID,
A TID-logical address conversion list that holds the relationship between the record ID and the TID via a logical address;
A non-volatile memory for storing the record;
A logical-physical conversion table storing a correspondence relationship between a physical address of the storage area of the nonvolatile memory and the logical address;
The storage system according to claim 1.
リストに要素を追加した前記TIDを表す操作したTIDと、この操作したTIDがレコードを書き込んだ論理アドレスと、コミットが完了したか否かを表すコミットフラグと、レコードを削除したか否かを表す削除フラグの各要素をリスト形式で保持する請求項2乃至請求項4のいずれか1項に記載のストレージシステム。 The TID-logical address conversion list is
The operated TID representing the TID with the element added to the list, the logical address at which the operated TID has written the record, the commit flag indicating whether or not the commit has been completed, and whether or not the record has been deleted The storage system according to any one of claims 2 to 4, wherein each element of the deletion flag is held in a list format.
前記ロールバック限界TID 登録操作は、巻き戻し限界となるTID を引数とし、
前記不要TID 削除操作は引数を伴わない請求項2乃至請求項5のいずれか1項に記載のストレージシステム。 The rollback operation takes as an argument the TID to which to rewind to the previous state,
The rollback limit TID registration operation takes the TID as the rewind limit as an argument,
The storage system according to any one of claims 2 to 5, wherein the unnecessary TID deletion operation does not involve an argument.
前記ノードで実行されるトランザクションの識別子であるTIDを発行し、トランザクションの開始の情報およびトランザクションの終了の情報を保持する機能と、
前記ノードからトランザクションの操作要求を受け付け、当該トランザクションを実行後、操作完了を前記ノードに通知する機能と、
を実現させるためのストレージシステム用プログラム。 A storage system comprising a plurality of nodes each having a distributed database and a non-volatile memory type storage.
A function for issuing a TID that is an identifier of a transaction executed in the node, and holding information on the start of a transaction and information on the end of a transaction;
A function of accepting a transaction operation request from the node and executing the transaction and notifying the node of the completion of the operation;
Storage system program for realizing
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015144515A JP6293709B2 (en) | 2015-07-22 | 2015-07-22 | Storage system and storage system program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015144515A JP6293709B2 (en) | 2015-07-22 | 2015-07-22 | Storage system and storage system program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017027326A true JP2017027326A (en) | 2017-02-02 |
JP6293709B2 JP6293709B2 (en) | 2018-03-14 |
Family
ID=57946020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015144515A Expired - Fee Related JP6293709B2 (en) | 2015-07-22 | 2015-07-22 | Storage system and storage system program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6293709B2 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101826827B1 (en) * | 2017-10-11 | 2018-02-09 | (주)데이타뱅크시스템 | Integrated replication system in real time |
KR101859094B1 (en) * | 2017-10-11 | 2018-05-18 | (주)데이타뱅크시스템즈 | Integrated replication system considering change of replication method |
WO2019074154A1 (en) * | 2017-10-11 | 2019-04-18 | (주) 데이타뱅크시스템즈 | Integrated replication system |
JP2019102059A (en) * | 2017-12-04 | 2019-06-24 | エスアーペー エスエー | Multi-version concurrency control (MVCC) in non-volatile memory |
JP7458512B2 (en) | 2020-06-22 | 2024-03-29 | 中興通訊股▲ふん▼有限公司 | Distributed transaction processing method, terminal and computer readable storage medium |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01113805A (en) * | 1987-10-28 | 1989-05-02 | Toshiba Corp | Transaction control system |
JPH0457127A (en) * | 1990-06-27 | 1992-02-24 | Toshiba Corp | Version managing device |
JP2006040064A (en) * | 2004-07-28 | 2006-02-09 | Matsushita Electric Ind Co Ltd | Database access apparatus |
WO2014192213A1 (en) * | 2013-05-31 | 2014-12-04 | 日本電気株式会社 | Distributed processing system |
JP2015103147A (en) * | 2013-11-27 | 2015-06-04 | 株式会社東芝 | Storage device |
-
2015
- 2015-07-22 JP JP2015144515A patent/JP6293709B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01113805A (en) * | 1987-10-28 | 1989-05-02 | Toshiba Corp | Transaction control system |
JPH0457127A (en) * | 1990-06-27 | 1992-02-24 | Toshiba Corp | Version managing device |
JP2006040064A (en) * | 2004-07-28 | 2006-02-09 | Matsushita Electric Ind Co Ltd | Database access apparatus |
WO2014192213A1 (en) * | 2013-05-31 | 2014-12-04 | 日本電気株式会社 | Distributed processing system |
JP2015103147A (en) * | 2013-11-27 | 2015-06-04 | 株式会社東芝 | Storage device |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101826827B1 (en) * | 2017-10-11 | 2018-02-09 | (주)데이타뱅크시스템 | Integrated replication system in real time |
KR101859094B1 (en) * | 2017-10-11 | 2018-05-18 | (주)데이타뱅크시스템즈 | Integrated replication system considering change of replication method |
WO2019074154A1 (en) * | 2017-10-11 | 2019-04-18 | (주) 데이타뱅크시스템즈 | Integrated replication system |
WO2019074155A1 (en) * | 2017-10-11 | 2019-04-18 | (주) 데이타뱅크시스템즈 | Inter-database real time integrated replication system |
JP2019102059A (en) * | 2017-12-04 | 2019-06-24 | エスアーペー エスエー | Multi-version concurrency control (MVCC) in non-volatile memory |
JP7101566B2 (en) | 2017-12-04 | 2022-07-15 | エスアーペー エスエー | Multiversion Concurrency Control (MVCC) in non-volatile memory |
JP7458512B2 (en) | 2020-06-22 | 2024-03-29 | 中興通訊股▲ふん▼有限公司 | Distributed transaction processing method, terminal and computer readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
JP6293709B2 (en) | 2018-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754875B2 (en) | Copying data changes to a target database | |
JP6293709B2 (en) | Storage system and storage system program | |
US8874515B2 (en) | Low level object version tracking using non-volatile memory write generations | |
CN112789606B (en) | Data redistribution method, device and system | |
CN109086388B (en) | Block chain data storage method, device, equipment and medium | |
US20140297592A1 (en) | Computer-readable medium storing program and version control method | |
CN110019469B (en) | Distributed database data processing method and device, storage medium and electronic device | |
EP2870548A1 (en) | Distributed, transactional key-value store | |
JP6361223B2 (en) | Transaction system | |
US20120284244A1 (en) | Transaction processing device, transaction processing method and transaction processing program | |
JP5721056B2 (en) | Transaction processing apparatus, transaction processing method, and transaction processing program | |
CN112068992A (en) | Remote data copying method, storage device and storage system | |
JP6834715B2 (en) | Update processing program, device, and method | |
CN114297196A (en) | Metadata storage method and device, electronic equipment and storage medium | |
US9015124B2 (en) | Replication system and method of rebuilding replication configuration | |
JP2017167654A (en) | Data management device and management method for database | |
KR20160074587A (en) | Checkpointing a collection of data units | |
US11132401B1 (en) | Distributed hash table based logging service | |
CN112631741A (en) | Transaction processing method, device and storage medium | |
US20140325271A1 (en) | Terminal device, information processing method, and computer program product | |
JP5832592B1 (en) | Data management device | |
US20210248108A1 (en) | Asynchronous data synchronization and reconciliation | |
US12111734B2 (en) | Protection groups for backing up cloud-based key-value stores | |
JP6044363B2 (en) | Computer, NAS access method and NAS access program | |
WO2021189314A1 (en) | Data 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 |