JP2006012142A - Checkpoint method and system utilizing non-disk persistent memory - Google Patents
Checkpoint method and system utilizing non-disk persistent memory Download PDFInfo
- Publication number
- JP2006012142A JP2006012142A JP2005166402A JP2005166402A JP2006012142A JP 2006012142 A JP2006012142 A JP 2006012142A JP 2005166402 A JP2005166402 A JP 2005166402A JP 2005166402 A JP2005166402 A JP 2005166402A JP 2006012142 A JP2006012142 A JP 2006012142A
- Authority
- JP
- Japan
- Prior art keywords
- disk
- persistent memory
- transaction
- writer
- disk persistent
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 193
- 230000002085 persistent effect Effects 0.000 title claims abstract description 143
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000008569 process Effects 0.000 claims abstract description 74
- 238000012545 processing Methods 0.000 claims abstract description 63
- 238000013474 audit trail Methods 0.000 claims abstract description 8
- 239000000872 buffer Substances 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000012550 audit Methods 0.000 description 39
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 5
- 230000002829 reductive effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000002955 isolation Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 239000002253 acid Substances 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 229920000638 styrene acrylonitrile Polymers 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Landscapes
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本発明は、トランザクション処理システムに関する。 The present invention relates to a transaction processing system.
(関連出願)
本願は、参照により本明細書に援用される2004年3月9日出願の米国特許出願第10/797,258号の一部継続であり、その優先権を主張するものである。
本願はまた、米国特許出願第10/351,194号および同第10/737,374号に関連するものである。
(Related application)
This application is a continuation-in-part of US patent application Ser. No. 10 / 797,258, filed Mar. 9, 2004, which is incorporated herein by reference, and claims its priority.
This application is also related to US patent application Ser. Nos. 10 / 351,194 and 10 / 737,374.
トランザクション処理システムは、原子性、一貫性、隔離性、および耐久性を含むいわゆるACID特性の維持を保証しながら複数のトランザクションプログラムの並行実行をサポートするコンピュータハードウェアおよびソフトウェアシステムである。
トランザクションプログラムは、トランザクションを正しく実行するために動作を適用しなければならない順序および実施しなければならないあらゆる並行制御を含めた、アプリケーション状態に対して適用される動作の仕様である。
最も一般的な並行制御動作はロッキングであり、ロッキングにより、トランザクションプログラムに対応するプロセスは、読み出し、または書き込みを行うデータに対して共有ロックあるいは排他ロックを取得する。
トランザクションは、通常、データベースにおいて表される物理的および抽象的なアプリケーションの状態に対する動作の集まりを指す。
トランザクションは、トランザクションプログラムの実行を表す。
動作には、共有状態の読み書きが含まれる。
A transaction processing system is a computer hardware and software system that supports the parallel execution of multiple transaction programs while ensuring the maintenance of so-called ACID characteristics including atomicity, consistency, isolation, and durability.
A transaction program is a specification of operations that are applied to an application state, including the order in which operations must be applied to correctly execute a transaction and any concurrency control that must be performed.
The most common concurrency control operation is locking, and the process corresponding to the transaction program acquires a shared lock or an exclusive lock for data to be read or written.
A transaction usually refers to a collection of actions on the state of physical and abstract applications represented in a database.
A transaction represents the execution of a transaction program.
The operation includes reading and writing the shared state.
ACID特性に関して、原子性は、トランザクションが完全に実行されるか、またはまったく実行されないかのいずれかであるという点で、全か無かの振る舞いを示すトランザクションを指す。
完了したトランザクションはコミットされたと言え、実行中に放棄されたものはアボートされたと言え、実行が開始されたがコミットもアボートもされなかったものはインフライトと言える。
With respect to the ACID property, atomicity refers to a transaction that exhibits all or nothing behavior in that the transaction is either executed completely or not executed at all.
A completed transaction can be said to be committed, an abandoned during execution can be said to have been aborted, and an execution that has started but not committed or aborted can be said to be in flight.
一貫性は、アプリケーション状態を指定されたいずれの保全性制約とも矛盾しない状態のままに保つトランザクションの成功した完了を指す。 Consistency refers to the successful completion of a transaction that keeps the application state in a state consistent with any specified integrity constraints.
隔離性は、直列化可能性としても知られ、トランザクションストリームをいずれも正しく並行実行することが、ストリームを成す各トランザクションを或る全体順序で実行することと一致することを保証する。
この意味では、実行済みトランザクションに関して、ストリーム内の他のあらゆるトランザクションの影響は、このトランザクションの完全に前に実行された場合の影響も、また完全に後で実行された場合の影響も同じである。
強力な直列化可能性は、トランザクションの並行実行が制約される程度を指し、トランザクション処理システムにおいて異なる隔離レベルを作り出す。
本明細書の文脈の中では、トランザクションによって行われた更新が決して失われず、トランザクション内での再読み出し動作の結果が同じである最強の形態の隔離性を示すトランザクション処理システムを最重視する。
Isolation, also known as serializability, ensures that correctly executing all transaction streams in parallel is consistent with executing each transaction that makes up the stream in some overall order.
In this sense, for an executed transaction, the effect of any other transaction in the stream is the same if it is executed completely before this transaction, or if it is executed completely later. .
Strong serializability refers to the extent to which concurrent execution of transactions is constrained and creates different isolation levels in a transaction processing system.
Within the context of the present specification, the highest priority is given to transaction processing systems that exhibit the strongest form of isolation in which updates made by a transaction are never lost and the result of a re-read operation within the transaction is the same.
耐久性は、トランザクションが一度コミットされると、アプリケーション状態に対するその諸変更が、トランザクション処理システムに対して影響する障害に耐え抜くような特性を指す。 Durability refers to the property that once a transaction is committed, its changes to the application state can survive failures that affect the transaction processing system.
トランザクション処理システムに伴う一問題は、トランザクションのコミットに必要な時間の削減に関する。
したがって、本発明は、トランザクションのコミットに必要な時間を削減するシステムおよび方法を提供することに関連する問題から生じたものである。
One problem with transaction processing systems relates to reducing the time required to commit a transaction.
Accordingly, the present invention stems from the problems associated with providing a system and method that reduces the time required to commit a transaction.
(概観)
本明細書において説明する各種実施形態は、トランザクション処理システムと併せて非ディスク永続メモリを利用する。
非ディスク永続メモリをトランザクションのコミットに使用することにより、トランザクションのコミットに関連する時間を削減することができ、ひいては、トランザクション処理システム内の資源に対する需要を低減するとともに、トランザクション処理のスループットを増大させることができる。
各種実施形態は、非ディスク永続メモリをチェックポインティングプロセスおよびライトアサイド(write-aside)バッファリングプロセスの両方に利用する統一バッファリング方式を提供する。
(Overview)
Various embodiments described herein utilize non-disk persistent memory in conjunction with a transaction processing system.
Using non-disk persistent memory for transaction commits can reduce the time associated with transaction commits, thus reducing the demand for resources in the transaction processing system and increasing transaction processing throughput. be able to.
Various embodiments provide a unified buffering scheme that utilizes non-disk persistent memory for both the checkpointing process and the write-aside buffering process.
(例示的な一般トランザクション処理システム)
図1は、構成要素を本明細書において説明する本発明の原理の実施に利用することのできる例示的なトランザクション処理システム100を示す。
説明する実施形態では、トランザクション処理システム100は、データベースライタ102、トランザクションモニタ104、およびログライタ106を備える。
(Exemplary general transaction processing system)
FIG. 1 illustrates an exemplary
In the described embodiment, the
データベースライタ102は、トランザクションプログラムによって指定された動作を実行する際に、データボリューム(すなわち、ディスクまたはディスクの集まり)に記憶されているデータを変異させるように構成される。
耐久性以外のACID特性をどのように維持するかは、本明細書における考察にあまり関係がない。
The
How to maintain ACID characteristics other than durability has little to do with the discussion herein.
耐久性に関しては、データベースライタが、データベースに対して行った変更が耐久性媒体に記録されるように保証する。
オンライントランザクション処理では、こういった変更によって影響を受けたデータは、各データボリュームにランダムに分散しがちである。
複数のディスクドライブへのランダムアクセスはかなり効率が悪いため、こういった変更はディスクにすぐには書き込まれない。
すぐにではなく、データベースライタ102は、それぞれの変更を以下に述べるログライタ106に送り、それによって変更がトランザクションコミットに間に合うような耐久性のあるものになる。
For durability, the database writer ensures that changes made to the database are recorded on the durable medium.
In online transaction processing, data affected by such changes tends to be randomly distributed across each data volume.
Because random access to multiple disk drives is quite inefficient, these changes are not immediately written to disk.
Rather than immediately, the
トランザクションモニタ104は、トランザクションがシステムに入退出する際にトランザクションをトラッキングする。
トランザクションモニタは、トランザクションを受けてデータベースを変異させるデータベースライタ102をトラッキングし、データベースライタ102によってログライタ106に送られたそのトランザクションに関連するいずれのデータボリュームの変更も、トランザクションがコミットされる前に永久媒体にフラッシュされることを保証する。
トランザクションモニタ104はまた、トランザクションの状態(たとえば、コミットまたはアボート)をトランザクションログに書き留める。
Transaction monitor 104 tracks transactions as they enter and leave the system.
The transaction monitor tracks the
ログライタ106はデータベース監査トレイルを保持し、データベース監査トレイルは、各トランザクションによりデータベースに対して行われた変更を明示的に記録するとともに、トランザクションがコミットされた逐次順序を暗黙的に記録する。
ここでも耐久性特性に注目すると、トランザクションのコミットを可能にするには、それに先立って、そのトランザクションによって行われた変更を耐久性媒体に記録しなければならない。
ログライタ106はこの制約を実施し、データベースライタ102から、状態の変更を記述した監査記録を受け取り、後述の残りのトランザクションコミットメントインフラストラクチャと記録動作を連携させる。
The
Again, paying attention to the durability characteristics, changes made by the transaction must be recorded on the durable medium before the transaction can be committed.
The
当業者により理解されるように、上記エンティティのうちの1つまたは複数は、スケーラビリティまたは耐故障性を目的として複数のプロセスまたはスレッドを使用して実現することが可能である。
たとえば、データベースを、1つまたは複数のデータベースライタエンティティによってそれぞれ管理される複数のディスク「ボリューム」に分割することができる。
同様に、監査トレイルを書き込むタスクも、それぞれ、データベースライタの特定のサブセットによって行われた変更を記録する専用の複数のログライタに分割することも可能である。
トランザクション処理システムの連続動作を保証するために、各データベースライタは、セット中の1つのエンティティが万が一故障した場合に、セットからの生き残ったエンティティが、トランザクションストリームの処理を邪魔することなく「引き継ぐ」ことができるように、状態を常に同期させた2つ以上の冗長エンティティのセットを使用して実現することもできる。
As will be appreciated by those skilled in the art, one or more of the above entities can be implemented using multiple processes or threads for purposes of scalability or fault tolerance.
For example, a database may be divided into multiple disk “volumes” each managed by one or more database writer entities.
Similarly, the task of writing audit trails can also be divided into dedicated log writers, each recording changes made by a particular subset of database writers.
To ensure continuous operation of the transaction processing system, each database writer will “take over” the surviving entities from the set without disturbing the processing of the transaction stream should one entity in the set fail. It can also be implemented using a set of two or more redundant entities whose states are always synchronized.
図2は、図1のトランザクション処理システムの実施態様の全体を200で示し、データベースライタ202、トランザクションモニタ204、およびログライタ206を含む。
FIG. 2 illustrates an overall implementation of the transaction processing system of FIG. 1 at 200 and includes a
この例では、上述のエンティティのそれぞれは、一対のプロセスを使用して実施される。
こうして、各プロセス対には、プライマリプロセス(「pri」と記される)およびバックアッププロセス(「bak」と記される)が含まれる。
この例では、トランザクション処理システムの他のいずれの構成要素とも通信する前に、各プライマリプロセスが、その状態の関係部分をバックアッププロセスにチェックポイントし、プライマリプロセスが故障した場合に、バックアッププロセスが素早く引き継ぐことができる。
引き継ぎ間隔はかなり短く(数ミリ秒から数秒続く)、この間に、インフライトトランザクションはアボートされ、おそらく再度開始される。
図2におけるトランザクション処理アーキテクチャの各要素を実現するプロセスおよびライブラリは、複数のCPUに分散させることができる。
In this example, each of the entities described above is implemented using a pair of processes.
Thus, each process pair includes a primary process (denoted “pri”) and a backup process (denoted “bak”).
In this example, before communicating with any other component of the transaction processing system, each primary process checkpoints the relevant part of its state to the backup process, and if the primary process fails, the backup process Can take over.
The takeover interval is fairly short (lasting from a few milliseconds to a few seconds), during which time the in-flight transaction is aborted and possibly started again.
The processes and libraries that implement each element of the transaction processing architecture in FIG. 2 can be distributed over multiple CPUs.
この例では、データベースライタ202は「DP2」(「ディスクプロセス2」)と記され、ログライタ206は「ADP」(「監査ディスクプロセス」)と記される。
トランザクションモニタ204は、TMF(「トランザクションモニタリング機能」)と呼ばれる分散したプロセスおよびシステムライブラリの集まりを使用して実施される。
トランザクションモニタ204は「TMP」(「トランザクションモニタプロセス」)と記され、トランザクションの開始およびコミットを調整する。
TMFは、TMFlib(TMFライブラリ)と呼ばれるオペレーティングシステム機能を、クラスタ中の各CPUにおいて使用する。
このライブラリは、DP2プロセスが、任意所与のトランザクションに関するそれぞれの作業を開始・終了する際にTMFに登録できるようにする。
TMFlibインスタンスは、当該インスタンス間で通信するともに、TMPプロセス対と通信して、「トランザクションのコミット」というタイトルのセクションにおいて後述するようにトランザクションコミットメントを調整する。
In this example, the
TMF uses an operating system function called TMFlib (TMF library) in each CPU in the cluster.
This library allows the DP2 process to register with the TMF when starting and ending each work for any given transaction.
The TMFlib instance communicates between the instances and communicates with the TMP process pair to coordinate transaction commitments as described below in the section titled “Transaction Commit”.
(トランザクションのコミット)
図2を参照して、以下に、単一のログボリューム(または監査トレイルディスクボリューム)208がトランザクション処理システムに存在する場合でのトランザクションコミットに関わる例示的なステップについて説明する。
通常、クライアント210が、トランザクションの開始を示すBegin_Transactionまたは同様の動作に直面する。
クライアントプロセスを実行しているCPU上のTMFlibは、新しいトランザクションにトランザクションID(TID)を割り当てる。
TIDは次いで、データベースライタ202、特に、トランザクションを受けて作業するすべてのディスクプロセスDP2に伝搬される。
図2に示す単純な場合では、単一のデータベースライタ(一対のDP2プロセスを含む)のみが関与する。
より一般的な場合では、複数のDP2プロセス対がトランザクションの処理に関わり得る。
(Commit transaction)
With reference to FIG. 2, the following describes exemplary steps involved in transaction commit when a single log volume (or audit trail disk volume) 208 is present in the transaction processing system.
Typically, the
The TMFlib on the CPU executing the client process assigns a transaction ID (TID) to the new transaction.
The TID is then propagated to the
In the simple case shown in FIG. 2, only a single database writer (including a pair of DP2 processes) is involved.
In the more general case, multiple DP2 process pairs may be involved in processing a transaction.
データベースライタ202がデータベースの状態を変更すると、プライマリDP2プロセス210がまず、状態変更をバックアッププロセス212にチェックポイントし、次いで状態変更の記録をログライタ206、特にADPプライマリプロセス218に伝搬する。
ADPプライマリプロセスは、バッファリング監査データ量に対するしきい値を超える(いわゆる優遇書き込み(courtesy write)になる)まで、あるいはトランザクションモニタプロセス(TMP)204からのメッセージによって強制的にコミットする(いわゆる強制書き込みになる)場合はそれよりも早く、状態変更をメモリにバッファリングする。
DP2とまったく同様に、ADPプライマリプロセス218も、いずれのディスク動作またはメッセージも発行する前に状態変更をバックアッププロセス220にチェックポイントする。
When the
The ADP primary process is forced to commit (so-called forced write) until the threshold for the amount of buffering audit data is exceeded (becomes so-called courtesy write) or by a message from the transaction monitor process (TMP) 204. If so, buffer state changes in memory sooner.
Just like DP2, ADP
次の瞬間において、クライアントは次いで、特定のトランザクションの終了を示すEnd_Transactionまたは同様の動作に直面する。
トランザクションモニタプロセス204は、トランザクションのコミットに先立って、上に説明したように、トランザクションを受けてログライタ206に送られたデータベースの状態変更が耐久性を持ったことを保証する必要がある。
これを実現するために、TMPはその特定のトランザクションの2相フラッシュメッセージをシステム内の各ログライタまたはADPに送り、次いで、各ADPから、求められる状態変更が非耐久性システムバッファからディスクドライブに書き込まれたことを確認する返信を待つ。
トランザクションモニタ204は、すべての返信メッセージを受け取ると、トランザクションコミット記録を特に指定されたマスタADPに送る。
マスタADPが、コミット記録を耐久性媒体に書き込んだことを承認すると、TMPはクライアントに、トランザクションがコミットされたことを通知する。
At the next moment, the client then encounters End_Transaction or similar action indicating the end of a particular transaction.
Prior to committing a transaction, the
To accomplish this, TMP sends a two-phase flush message for that particular transaction to each log writer or ADP in the system, and then from each ADP, the requested state change is written from the non-durable system buffer to the disk drive. Wait for a reply to confirm.
When the
If the master ADP approves that the commit record has been written to the durable medium, the TMP notifies the client that the transaction has been committed.
上記から、当業者により理解されるように、状態変更およびコミット記録がディスクにフラッシュされるのを待つことが、TMFトランザクションのコミットに際しての遅延の大部分を占めることは明らかである。
さらに、データベースライタ、トランザクションモニタ、およびログライタによるチェックポインティングにより、トランザクションをコミットするオーバーヘッドが増す。
ディスクは回転する機械的媒体であるため、ディスクの待ち時間は、プロセッサおよびメモリの速度ほど急速には向上していない。
さらに、メッセージの受け渡しを介しての信頼性の高いチェックポインティングには、データ転送オーバーヘッドのみならず、一対のプロセスを完全に同期させることのオーバーヘッドも伴う。
こういった要因により、TMFトランザクションコミット時間は、数ミリ秒から数秒の範囲になることが多い。
From the above, it is clear that waiting for state changes and commit records to be flushed to disk accounts for the majority of the delay in committing a TMF transaction, as will be appreciated by those skilled in the art.
Further, checkpointing by the database writer, transaction monitor, and log writer increases the overhead of committing the transaction.
Because the disk is a rotating mechanical medium, disk latency has not improved as quickly as processor and memory speeds.
Furthermore, reliable checkpointing via message passing involves not only data transfer overhead but also the overhead of fully synchronizing a pair of processes.
Due to these factors, the TMF transaction commit time often ranges from several milliseconds to several seconds.
用途によっては遅い応答時間に耐え得るものもあるが、多くの用途では遅い応答時間は耐えることができない。
TMFトランザクション応答時間が遅い場合、平均的なトランザクションがシステムに留まる時間が長くなり、ひいてはトランザクション処理システム内の資源に対する需要が高くなり、これによって有限資源下でのトランザクション処理スループットが間接的に制限されることにより、トランザクション処理スループットに対して二次的な不利な影響を及ぼす。
トランザクションがシステムに留まる時間が長くなった場合に容量を超えることになる可能性がある資源の例としては、データベースロック、ソケット、および他の接続資源が挙げられる。
Some applications can withstand slow response times, but many applications cannot withstand slow response times.
If the TMF transaction response time is slow, the average transaction stays longer in the system, which in turn increases the demand for resources in the transaction processing system, which indirectly limits transaction processing throughput under finite resources. This has a secondary adverse effect on transaction processing throughput.
Examples of resources that can exceed capacity if a transaction stays in the system for a long time include database locks, sockets, and other connection resources.
(永続メモリ一般)
本明細書において説明する実施形態によれば、非ディスク永続メモリがトランザクション処理システムと併せて採用されて、一般にトランザクション応答時間を削減し、特にトランザクションコミット時間およびプロセス対チェックポインティング時間を削減する。
以下述べる各種実施形態では、非ディスク永続メモリを、ディスク書き込みの際のライトアサイドバッファ、およびプロセス状態チェックポイントのためのバッファの両方として使用することができる。
(Permanent memory in general)
According to the embodiments described herein, non-disk persistent memory is employed in conjunction with a transaction processing system to generally reduce transaction response time, particularly transaction commit time and process vs. checkpointing time.
In the various embodiments described below, non-disk persistent memory can be used as both a write-aside buffer for disk writes and a buffer for process status checkpoints.
永続メモリは、当業者により理解される構造的概念である。
説明する実施形態によれば、利用可能な非ディスク永続メモリには多くの可能な実施態様がある。
したがって、非ディスク永続メモリの特定の一実施形態への限定は本明細書の意図するところではない。
Persistent memory is a structural concept understood by those skilled in the art.
According to the described embodiment, there are many possible implementations of available non-disk persistent memory.
Thus, the limitation of a non-disk persistent memory to a particular embodiment is not intended herein.
読み手による非ディスク永続メモリに関連する構造的原理の理解を助けるために、以下の考察において、本発明のトランザクション処理システムで非ディスク永続メモリシステムを使用しやすくするために、非ディスク永続メモリシステムが有することのできる特徴について述べる。
この考察全体を通して、非ディスク永続メモリシステムの少数の非限定的な例を提供する。
本明細書において述べる原理は、特許請求する主題の精神および範囲から逸脱することなく、他の非ディスク永続メモリ構造でも採用することが可能なことを認識し理解されたい。
In order to assist readers in understanding the structural principles associated with non-disk persistent memory, in the discussion that follows, non-disk persistent memory systems are used to facilitate the use of non-disk persistent memory systems in the transaction processing system of the present invention. The features that can be possessed are described.
Throughout this discussion, a few non-limiting examples of non-disk persistent memory systems are provided.
It should be appreciated and understood that the principles described herein may be employed in other non-disk persistent memory structures without departing from the spirit and scope of the claimed subject matter.
本明細書において定義する非ディスク永続メモリは、以下の特性、すなわち、耐久性、接続性、およびアクセスを示すべきである。 A non-disk persistent memory as defined herein should exhibit the following characteristics: durability, connectivity, and access.
耐久性は、リフレッシュなしで耐久性があり、システムの電源が失われても耐え抜くことができる非ディスク永続メモリを指す。
さらに、電源が失われた後、またはソフト故障後に非ディスク永続メモリに記憶されているデータへの継続的なアクセスを保証するために、耐久性のある自己無矛盾のメタデータを提供すべきである。
Durability refers to non-disk persistent memory that is durable without refreshing and can survive a system power loss.
In addition, durable self-consistent metadata should be provided to ensure continuous access to data stored in non-disk persistent memory after power loss or after a soft failure .
接続性に関しては以下を考慮する。
非ディスク永続メモリは、市販のチップセットを使用して利用可能なメモリコントローラへの接続が可能である。
専用メモリコントローラは、最終的に、一意に非ディスク永続メモリの耐久性を利用するように設計することができるが、それらが存在する必要はない。
おそらく耐故障性との関わり合い、パッケージングの問題、物理的なスロットの制約、または電気負荷限度により、CPUのメモリコントローラへの直接接続性が望ましくない場合では、非ディスク永続メモリの第1レベルI/Oが許される。
たとえば、非ディスク永続メモリは、PCI、およびPCI Express、RDMA over IP、InfiniBand、FC−VI(Virtual Interface over Fibre Channel)またはServerNet等の他の第1レベルI/O相互接続に取り付けることができる。
このような相互接続は、メモリマッピングおよびメモリセマンティックアクセスの両方をサポートする。
非ディスク永続メモリの本実施形態を通信リンク接続永続メモリユニット(CPMU)と呼ぶ。
Consider the following regarding connectivity.
Non-disk persistent memory can be connected to available memory controllers using commercially available chipsets.
Dedicated memory controllers can ultimately be designed to take advantage of the durability of non-disk persistent memory uniquely, but they need not be present.
The first level I of non-disk persistent memory, if direct connectivity to the memory controller of the CPU is not desirable, possibly due to fault tolerance, packaging issues, physical slot constraints, or electrical load limits. / O is allowed.
For example, non-disk persistent memory can be attached to PCI and other first level I / O interconnects such as PCI Express, RDMA over IP, InfiniBand, Virtual Interface over Fiber Channel (FC-VI) or ServerNet.
Such interconnects support both memory mapping and memory semantic access.
This embodiment of non-disk persistent memory is called a communication link connected persistent memory unit (CPMU).
記憶装置接続性(たとえば、SCSI)または実際には他のいずれの第2レベルI/O接続性も、以下明らかにするパフォーマンス考慮事項により永続メモリには望ましくない。 Storage device connectivity (e.g., SCSI) or indeed any other second level I / O connectivity is not desirable for persistent memory due to the performance considerations set forth below.
アクセスに関しては以下を考慮する。
非ディスク永続メモリは、特に指定されたプロセス仮想アドレスにおいてであるが、CPUのメモリ命令(LoadおよびStore)を使用して普通の仮想メモリのようにユーザプログラムからアクセスすることが可能である。
メモリセマンティック動作をサポートする特定のシステムエリアネットワーク(すなわち、SAN)では、非ディスク永続メモリは、リモートDMA(RDMA)または同様のセマンティックを使用してアクセスされるネットワーク資源として実施することができる。
たとえば、図3は、RDMA対応システムエリアネットワーク(SAN)306を通して1つまたは複数のプロセッサノード302によりアクセス可能な通信リンク接続非ディスク永続メモリユニット(CPMU)310を含むネットワーク接続非ディスク永続メモリを使用したシステム300を示す。
CPMU310の非ディスク永続メモリにアクセスするために、プロセッサノード302で実行されているソフトウェアが、プロセッサノードのネットワークインタフェース(NI)304を通して遠隔読み出し動作または遠隔書き込み動作を開始する。
このようにして、読み出しコマンドまたは書き込みコマンドは、RDMA対応SAN306を介してCPMUのネットワークインタフェース(NI)308に運ばれる。
したがって、処理後、適切なデータがRDMA対応SAN306を介して通信される。
Regarding access, consider the following.
Non-disk persistent memory, particularly at specified process virtual addresses, can be accessed from a user program like normal virtual memory using CPU memory instructions (Load and Store).
In certain system area networks (ie, SANs) that support memory semantic operations, non-disk persistent memory can be implemented as network resources that are accessed using remote DMA (RDMA) or similar semantics.
For example, FIG. 3 uses network attached non-disk persistent memory that includes a communication link attached non-disk persistent memory unit (CPMU) 310 that is accessible by one or
To access the
In this way, a read command or a write command is carried to the CPMU network interface (NI) 308 via the RDMA
Thus, after processing, the appropriate data is communicated via the RDMA enabled
RDMAデータ移動動作に加えて、CPMU310は、様々な管理コマンドに応答するように構成されることができる。
たとえば、プロセッサノード302によって開始された書き込み動作では、データが一旦CPMUに首尾良く記憶されてしまえば、そのデータは耐久性を持つようになり、停電またはプロセッサノード302の故障を耐え抜く。
特に、メモリ内容は、CPMUが正しく機能し続ける限り、電源が長い時間期間にわたって切断された後、またはプロセッサノード302上のオペレーティングシステムがリブートした後であっても保持される。
この例では、プロセッサノード302は、少なくとも1つの中央演算処理装置(CPU)およびメモリからなるコンピュータシステムであり、CPUはオペレーティングシステムを実行するように構成される。
プロセッサノード302は、データベース等のアプリケーションソフトウェアを実行するようにさらに構成される。
プロセッサノード302は、SAN306を使用して他のプロセッサノード302ならびにCPMU310およびI/Oコントローラ(図示せず)等の装置と通信する。
In addition to RDMA data movement operations,
For example, in a write operation initiated by the
In particular, the memory contents are retained even after the power supply is disconnected for a long period of time or after the operating system on
In this example,
The
この例の一実施態様では、RDMA対応SANは、イニシエータプロセッサノード302とターゲットプロセッサノード302の間で、あるいはイニシエータプロセッサノード302と装置310の間で、ターゲットプロセッサノード302のCPUに通知することなく、コピー動作等のメモリ動作をバイトレベルで実行可能なネットワークである。
この場合、SAN306は、仮想アドレスから物理アドレスへの変換を行い、連続したネットワーク仮想アドレス空間から不連続の物理アドレス空間へのマッピングを可能にするように構成される。
このタイプのアドレス変換により、CPMU310の動的管理が可能になる。
市販のRDMA機能付きSAN306としては、ServerNet、RDMA over IP、InfiniBand、および仮想インタフェースアーキテクチャに準拠したすべてのSANが挙げられるがこれらに限定されるものではない。
In one implementation of this example, the RDMA enabled SAN may notify the CPU of the
In this case, the
This type of address translation allows dynamic management of the
Commercially
プロセッサノード302は一般に、NI304を通してSAN306に接続されるが、多くの変形が可能である。
しかし、より一般には、プロセッサノードは、読み出し動作および書き込み動作を通信する装置に接続する必要があるだけである。
たとえば、本例の別の実施態様では、プロセッサノード302はマザーボード上の様々なCPUであり、SANを使用する代わりに入出力バス、たとえばPCIバスが使用される。
本教示は必要に応じて、より大きな、またはより小さな実施態様に対応するようにスケールアップまたはスケールダウンすることが可能なことに留意されたい。
The
More generally, however, the processor node only needs to be connected to a device that communicates read and write operations.
For example, in another implementation of this example, the
It should be noted that the present teachings can be scaled up or down as needed to accommodate larger or smaller implementations.
ネットワークインタフェース(NI)308は、CPMU310に通信可能に結合されて、CPMU310内に収容された非ディスク永続メモリにアクセスできるようにする。
図3の各種構成要素には、CPMU310内に使用されるメモリ技術のタイプを含め、多くの技術を利用することが可能である。
したがって、図3の実施形態ならびに本明細書において説明するその他の実施形態は、非ディスク永続メモリを実現する特定の技術に限定されない。
実際には、様々な磁気ランダムアクセスメモリ(MRAM)、磁気抵抗ランダムアクセスメモリ(MRRAM)、ポリマー強誘電性ランダムアクセスメモリ(PFRAM)、OUM(Ovonics unified memory)、バッテリバックアップダイナミックランダムアクセスメモリ(BBDRAM)、およびフラッシュメモリを含め、多くのメモリ技術が適している。
A network interface (NI) 308 is communicatively coupled to the
A number of technologies can be used for the various components in FIG. 3, including the type of memory technology used within
Accordingly, the embodiment of FIG. 3 as well as the other embodiments described herein are not limited to a particular technique for implementing non-disk persistent memory.
Actually, various magnetic random access memory (MRAM), magnetoresistive random access memory (MRRAM), polymer ferroelectric random access memory (PFRAM), OUM (Ovonics unified memory), battery backup dynamic random access memory (BBDRAM) Many memory technologies are suitable, including flash memory.
SAN306が使用される場合、メモリはRDMAアクセスに十分に高速であるべきである。
このようにして、RDMA読み出し動作および書き込み動作がSAN306を介して可能になる。
別のタイプの通信装置が使用される場合、使用されるメモリのアクセス速度もまた、通信装置に対応するに十分に高速であるべきである。
永続情報は、使用中の非ディスク永続メモリがデータを保持することができる程度まで提供されることに留意されたい。
たとえば、多くの用途において、非ディスク永続メモリは、電源が失われる時間量に関わりなくデータを記憶することが求められる場合もあれば、別の用途では、数分または数時間だけデータを記憶すればよい場合もある。
If
In this way, RDMA read and write operations are enabled via the
If another type of communication device is used, the access speed of the memory used should also be fast enough to accommodate the communication device.
Note that persistent information is provided to the extent that the non-disk persistent memory in use can hold the data.
For example, in many applications non-disk persistent memory may be required to store data regardless of the amount of time that power is lost, while in other applications it may store data for minutes or hours. Sometimes it's fine.
本手法と併せて、単一または複数の独立した間接的にアドレス指定されるメモリ領域を作成するメモリ管理機能が提供される。
さらに、電源が失われた後、またはプロセッサが故障した後にメモリを復元するために、CPMUメタデータが提供される。
メタデータまたは情報には、たとえば、CPMU内の保護メモリ領域の内容およびレイアウトが含まれる。
このようにして、CPMUは、データおよびデータ使用方法を記憶する。
必要が生じたときに、CPMUは電源またはシステムの故障から復元できるようにする。
In conjunction with this approach, a memory management function is provided that creates a single or multiple independent and indirectly addressed memory regions.
In addition, CPMU metadata is provided to restore memory after power is lost or a processor fails.
The metadata or information includes, for example, the contents and layout of the protected memory area in CPMU.
In this way, CPMU stores data and data usage.
When a need arises, the CPMU enables recovery from a power supply or system failure.
図4においては、CPMU400は、バス等のデータ通信リンクを介して共に結合された非ディスク不揮発性メモリ402およびネットワークインタフェースまたはNI404を備える。
ここでは、非ディスク不揮発性メモリ402は、たとえば、MRAMまたはフラッシュメモリであることができる。
NI404は、それ自体はRDMA要求を開始せず、そうする代わりにネットワークから管理コマンドを受け取り、要求された管理動作を実行する。
具体的には、CPMU400は、各入力メモリアクセス要求上のアドレスを変換し、次いで、NI404と不揮発性メモリ402の間のデータ通信リンクを介して要求されたメモリ動作を内部で開始する。
In FIG. 4,
Here, the non-disk
The
Specifically,
図5においては、CPMU500の別の実施形態は、バッテリ510を有する非ディスク揮発性メモリ502と不揮発性補助記憶装置508の組み合わせを使用する。
この実施形態では、電源が落ちると、非ディスク揮発性メモリ502内のデータは、係るデータを不揮発性補助記憶装置508に保存することができるまでバッテリ510の電源を使用して保持される。
不揮発性補助記憶装置は、たとえば、磁気ディスクまたは低速フラッシュメモリであることができる。
CPMU500が適宜動作するには、揮発性メモリ502から不揮発性補助メモリ記憶装置508へのデータの転送は、外部介入またはバッテリ510からの電源以外のさらなる電源をいずれも必要とすることなく行われるべきである。
したがって、要求されたタスクはいずれも、バッテリ510が切れる前に完了されるべきである。
図示のように、CPMU500は、埋め込みオペレーティングシステムを実行するオプションのCPU504を備える。
In FIG. 5, another embodiment of
In this embodiment, when the power is turned off, the data in the non-disk
The non-volatile auxiliary storage device can be, for example, a magnetic disk or a low-speed flash memory.
In order for
Thus, any requested task should be completed before the
As shown,
したがって、バックアップタスク(すなわち、非ディスク揮発性メモリ502から不揮発性補助メモリ記憶装置508へのデータ転送)は、CPU504上で実行されているソフトウェアによって行うことができる。
CPU504上で実行されているソフトウェアは、備えられているNI506を使用して、RDMA要求を開始し、またはメッセージをSAN306上の他のエンティティに送ることができる。
ここでも、CPU504は、NI506を通してネットワークから管理コマンドを受け取り、要求された管理動作を実行する。
Thus, the backup task (ie, data transfer from the non-disk
Software running on the
Again, the
CPMU400または500等、CPMUのいずれの実施形態も、永続メモリの割り振りおよび共有のために管理する必要がある。
この例では、CPMU管理は、永続メモリマネージャ(PMM)によって実行される。
PMMは、CPMU内にあってもよく、また上記プロセッサノード302の1つ等、CPMU外にあってもよい。
プロセッサノード302がCPMU310における非ディスク永続メモリを割り振る、もしくは割り振り解除する必要がある場合、または非ディスク永続メモリの既存領域の使用を開始する、もしくは止める必要がある場合、プロセッサノードはまず、PMMと通信して、要求された管理タスクを行うべきである。
CPMU310のメモリ内容は耐久性を有する(ディスクドライブとまったく同じように)ため、そのCPMU内の非ディスク永続メモリ領域に関連するメタデータも耐久性を有し、これら領域との整合性を保たなければならず、好ましくは、CPMUそれ自体内に記憶される(ディスクドライブ上のファイルシステムメタデータとまったく同じように)ことに留意されたい。
したがって、PMMは、CPMU310のメタデータを非ディスク永続メモリの内容との整合性を常に保つように管理タスクを行わなければならない。
したがって、CPMU310に記憶されているデータは、発生し得る電源の損失、システムのシャットダウン、またはPMM、CPMU310、およびプロセッサノード302の1つまたは複数に影響する他の故障の後であっても、記憶されているメタデータを使用して有意味に検索することができる。
復元の必要が生じると、CPMU310を使用するシステム300はこうして復元し、電源の故障またはオペレーティングシステムのクラッシュが発生したメモリの状態から動作を再開することができる。
Any embodiment of CPMU, such as
In this example, CPMU management is performed by a persistent memory manager (PMM).
The PMM may be in the CPMU, or may be outside the CPMU, such as one of the
When
Since the memory content of
Therefore, the PMM must perform administrative tasks to always keep the
Thus, data stored in
When a need for restoration occurs,
処理ノード302のLoadおよびStoreメモリ命令を使用して、SAN306を介してRDMAデータ転送を直接または間接的に開始することが実行不可能なシステム300では、CPMU310の内容の読み書きには、処理ノード302上で実行されているアプリケーションが、アプリケーションプログラミングインタフェースまたはAPIを使用してRDMAを開始する必要がある。
In a
明らかなはずであるように、非ディスク永続メモリが魅力的である理由の1つは、ディスクドライブよりも、耐久性のある記憶データに対して細かい粒度(アクセスサイズがより小さいことを意味する)での読み書き動作をサポートすることである。
この粒度の細かさは、アクセスサイズ(読み出す、または書き込むバイトの数)およびアクセスアラインメント(読み出される、または書き込まれる最初のバイトの、非ディスク永続メモリ領域内のオフセット)の両方に当てはまる。
非ディスク永続メモリ領域内のデータ構造は自由に並べることができるため、ディスクを使用する場合よりも容量を効率的かつ有効に使用することができる。
ブロック指向ディスク記憶装置およびフラッシュメモリに関連する別の利点は、小さなデータを変更して再び書き込む際に、それに先立って大きなデータブロックをまず読み出す必要がなく、そうする代わりに、書き込み動作により、単純に、変更する必要のあるバイトのみを変更することができることである。
非ディスク永続メモリのそれ自体の速度(raw speed)も魅力的である。
アクセス待ち時間は、ディスクドライブのアクセス待ち時間よりも1桁良好である。
ディスクドライブと比較した非ディスク永続メモリの相対的な使用しやすさも、まずすべてのポインタを書き込み時に相対バイトアドレスに変換し、次いで読み出し時に相対バイトアドレスを元のポインタに再変換する必要なく、ポインタが豊富なデータ構造を非ディスク永続メモリに記憶することが可能であるということにより、相当なものである。
いわゆるマーシャリング−マーシャリング解除オーバーヘッドは、複雑なデータ構造の場合にかなり大きくなり得る。
上記要因はすべて、アプリケーションプログラマが、すでに永続的にしたデータ構造のアクセスおよび動作を加速化できるようにするだけでなく、ディスクドライブおよびフラッシュメモリ等のより低速の記憶装置において、永続性を持たせることを考えていなかった特定のデータ構造に永続性を持たせることを考えられるようにする。
情報処理システムにおける永続性の程度が高いほど、情報の損失が少ないため、故障からの復元は容易で素早い。
復元がより素早いことは、システムの可用性が高いことを含意する。
したがって、説明する実施形態の純利益は、単にパフォーマンスだけではく、可用性の増大にもある。
システム可用性の欠如に関連するコストが高い、極めて重要なトランザクション処理システムでは、説明する実施形態の可用性の恩恵は、実際には、パフォーマンスの恩恵よりもさらに大きな価値を持つ可能性がある。
さらに、説明する実施形態を使用して、メモリ内動作等の新しい、または改良されたデータベース機能を可能にすることができる。
データベース以外の用途も、システム300の向上したパフォーマンスおよび可用性を利用して、新たな顧客機能を生むことができる。
ここに列挙するには数が多すぎるが、こういった用途の多くは当業者に明らかであろう。
このような1つの用途について次に説明する。
As should be apparent, one of the reasons that non-disk persistent memory is attractive is that it provides finer granularity for durable stored data than disk drives (meaning smaller access size). To support read / write operations in
This granularity applies to both access size (number of bytes read or written) and access alignment (offset in the non-disk persistent memory area of the first byte read or written).
Since the data structures in the non-disk persistent memory area can be freely arranged, the capacity can be used more efficiently and effectively than when the disk is used.
Another advantage associated with block-oriented disk storage and flash memory is that when small data is modified and rewritten, there is no need to first read a large block of data first, but instead a write operation makes it simpler. In other words, only the bytes that need to be changed can be changed.
The raw speed of non-disk persistent memory is also attractive.
The access latency is an order of magnitude better than the disk drive access latency.
The relative ease of use of non-disk persistent memory compared to disk drives also means that all pointers need to be first converted to relative byte addresses on write, and then read without relative byte addresses needing to be converted back to original pointers. Is substantial due to the fact that it is possible to store rich data structures in non-disk persistent memory.
The so-called marshalling-unmarshalling overhead can be quite large for complex data structures.
All of the above factors not only allow application programmers to accelerate the access and operation of data structures that have already been made permanent, but also make them persistent in slower storage devices such as disk drives and flash memory. Make it possible to think about making certain data structures that you didn't think about to be persistent.
The higher the degree of permanence in the information processing system, the less loss of information, and the easier and quicker it is to recover from a failure.
Faster restoration implies higher system availability.
Thus, the net benefits of the described embodiments are not just performance, but also increased availability.
In a critical transaction processing system that is costly associated with a lack of system availability, the availability benefits of the described embodiments may actually be of greater value than the performance benefits.
Furthermore, the described embodiments can be used to enable new or improved database functions such as in-memory operations.
Applications other than databases can also take advantage of the improved performance and availability of the
There are too many to list here, but many of these applications will be apparent to those skilled in the art.
One such application is described next.
(非ディスク永続メモリを使用してのトランザクションコミット時間の削減)
図1のトランザクション処理システム100に関して、非ディスク永続メモリがない場合、トランザクションモニタ104がデータベーストランザクションをコミットするには、それに先立って2つのことが行われなければならない。
第1に、ログライタ106は、データベースライタ102から受け取ったそのトランザクションに関連するいずれの監査情報も耐久性媒体にフラッシュアウト(すなわち、完全に書き込む)しなければならない。
その後、トランザクションモニタ104はまた、耐久性媒体にそのトランザクションのコミット記録を書き込まなければならない。
説明する実施形態によれば、非ディスク永続メモリを利用することにより、こういった情報項目を非ディスク永続メモリにのみ書き込んだ後で、トランザクションのコミットを可能にすることができる。
非ディスク永続メモリがディスク記憶装置よりも低い待ち時間を書き込み動作に示す程度まで、トランザクション待ち時間をそれに従って短縮する(またおそらく、TMFトランザクションスループットを向上させる)ことができる。
(Reducing transaction commit time using non-disk persistent memory)
With respect to the
First, the
Thereafter, the transaction monitor 104 must also write a commit record for the transaction on the durable medium.
According to the described embodiment, non-disk persistent memory can be used to allow transactions to be committed after such information items are written only to non-disk persistent memory.
To the extent that non-disk persistent memory exhibits lower latency for write operations than disk storage, transaction latency can be reduced accordingly (and possibly increase TMF transaction throughput).
トランザクション処理の一実施形態では、永続メモリが使用されて、トランザクションコミットが加速化される。
具体的には、図2に関連して、プライマリADP218は、DP2 202から状態変更メッセージを受け取るとすぐに、確認メッセージをDP2に送る前に、これら状態変更を永続メモリに同期して記録する。
TMP204からの2相フラッシュメッセージは、ADP206が「常にフラッシュ」されるため、削減するか、あるいは完全に省くことが可能である。
こうして、いくつかのプロセス間通信ステップおよびディスク動作が、トランザクションコミットのクリティカルパスからなくなると、TMP204は、ADP206が、ディスクを使用する場合よりも非ディスク永続メモリを使用する場合にトランザクションをはるかに高速にコミットすることができる。
本発明者らによって行われた1つの実験では、トランザクション応答時間は、永続メモリを使用した場合には、永続メモリを使用しない場合よりも3.5倍高速であることが分かった。
In one embodiment of transaction processing, persistent memory is used to accelerate transaction commit.
Specifically, in conjunction with FIG. 2, as soon as the
Two-phase flush messages from the
Thus, when some inter-process communication steps and disk operations are removed from the transaction commit critical path,
In one experiment conducted by the inventors, it was found that the transaction response time was 3.5 times faster with persistent memory than without persistent memory.
一例として、一実施形態によるトランザクション処理システムの全体を600で示す図6を考える。
システム600は、データベースライタ602、トランザクションモニタ604、およびログライタ606を備える。
As an example, consider FIG. 6 where the overall transaction processing system according to one embodiment is shown at 600.
The
説明する実施形態によれば、ログライタ606は、プライマリ監査ディスクプロセス608およびバックアップディスクプロセス610を含む。
一対の非ディスク永続メモリユニットが設けられ、これにはプライマリ非ディスク永続メモリユニット612(「CPMU」とも呼ぶ)およびミラー非ディスク永続メモリユニット614(「CPMU」とも呼ぶ)が含まれる。
プライマリ監査ログディスク616およびミラー監査ディスクログ618は、以下で明らかになる目的で設けられる。
According to the described embodiment, the
A pair of non-disk persistent memory units is provided, including a primary non-disk persistent memory unit 612 (also referred to as “CPMU”) and a mirrored non-disk persistent memory unit 614 (also referred to as “CPMU”).
The primary
図示し説明する実施形態では、データはプライマリ非ディスク永続メモリユニット612およびミラー非ディスク永続メモリユニット614の両方に書き込まれる。
実施形態によっては、データはプライマリおよびミラーユニットに同時に書き込むことができる。
別法として、実施形態によっては、データをプライマリユニットおよびミラーユニットに同時に書き込む必要がない。
システムが完全に機能している場合、実施形態によっては、情報はプライマリ非ディスク永続メモリユニット612またはミラー非ディスク永続メモリユニット614から読み出される。
万が一、非ディスク永続メモリユニット(612、614)の一方のみが故障した場合、データは生き残った非ディスク永続メモリユニットから読み出されることになる。
故障したプライマリ非ディスク永続メモリユニットが正常に機能する準備ができると、内容を生き残った非ディスク永続メモリユニットから復元することができる。
In the illustrated and described embodiment, data is written to both the primary non-disk
In some embodiments, data can be written to the primary and mirror units simultaneously.
Alternatively, in some embodiments, it is not necessary to write data to the primary unit and mirror unit simultaneously.
If the system is fully functional, in some embodiments the information is read from the primary non-disk
Should only one of the non-disk persistent memory units (612, 614) fail, data will be read from the surviving non-disk persistent memory unit.
When the failed primary non-disk persistent memory unit is ready to function properly, the contents can be restored from the surviving non-disk persistent memory unit.
図示し説明する実施形態では、監査トレイルごとに1つの領域が、各非ディスク永続メモリユニット612、614内で割り振られ、監査ディスクプロセス対608、610が、各領域内のライトアサイドバッファ(「WAB」として示す)を保持する。
任意の適したライトアサイドバッファ構成を使用することができるが、本例では、ライトアサイドバッファは、当業者に理解される循環バッファとして構成される。
プライマリ監査ディスクプロセス608は、データベースライタ602から変更のセットを受け取ると、非ディスク永続メモリユニット612、614を使用して、これら変更を非常に素早くコミットする。
具体的には、図示の例では、ADP608は、変更のセットを受け取ると、その情報をCPMU612のWABに、そのWABの末尾アドレスに追加し、次いで、WABの末尾アドレスを、一番新しく書き込まれた情報の末尾の先を指すように進める。
次いで、CPMU614のWABに関して動作が繰り返される。
当業者は、CPMU612、614への書き込み動作間の同時性の程度を変更することが可能である。
In the illustrated and described embodiment, one area for each audit trail is allocated within each non-disk
In this example, the write-aside buffer is configured as a circular buffer as understood by those skilled in the art, although any suitable write-aside buffer configuration can be used.
When primary
Specifically, in the example shown, when the
The operation is then repeated for the
One skilled in the art can change the degree of simultaneity between write operations to CPMUs 612, 614.
説明する実施形態によれば、要求された書き込み動作の完了により、末尾ポインタがWABの先頭アドレスの先を指す場合、非ディスク永続メモリ領域への書き込み動作は保留され、WABは満杯であるとマークされる。
WABの先頭アドレスおよび末尾アドレスを進めるアルゴリズムは、当業者により理解されるように、WABの先頭アドレスおよび末尾アドレスが両方とも、WABの循環バッファを含む同じ非ディスク永続メモリ領域内に記憶され更新されることを除き、循環キューデータ構造を実施する典型的な手法に類似する。
According to the described embodiment, if the end of the requested write operation causes the tail pointer to point beyond the head address of the WAB, the write operation to the non-disk persistent memory area is suspended and the WAB is marked full. Is done.
The algorithm for advancing the WAB start and end addresses is, as will be understood by those skilled in the art, both the WAB start and end addresses are stored and updated in the same non-disk persistent memory area containing the WAB circular buffer. Except that it is similar to a typical approach to implementing a circular queue data structure.
費用効率的な非ディスク永続メモリを使用する場合、ログボリュームの全体がディスクではなくより高速の永続メモリ装置を使用して実現されるため、より低速なディスクI/Oをトランザクションコミットメントプロセスから完全になくすことができる。
しかし、現在、および近い将来では、ディスクの容量が引き続き非ディスク永続メモリ容量よりもはるかに大きく、ディスク記憶装置の1バイトあたりのコストは引き続き、非ディスク永続メモリの1バイトあたりのコストよりもかなり低いと思われる。
その場合、相対的により小さな容量の非ディスク永続メモリユニットを使用して、相対的により大きな容量のディスクドライブのWABが実施される。
このような構成では、また同様の設計では、監査情報の同期書き込みは、遅延して非同期にディスクに書き込まれる。
非ディスク永続メモリにどの情報を保持し、どの情報をディスクにフラッシュするかを選択する様々な技法が、メモリ階層設計分野の当業者にとって明らかであろう。
たとえば、トランザクション復元のファジー制御ポイントシステムによれば、システムがクラッシュしたときに、インフライトトランザクションをアンドゥしてからリドゥするという通常の復元プロセスをすべて永続メモリから適用することができるように、ログ情報に値する2つの「制御ポイント」を永続メモリに保持することができる。
When using cost-effective non-disk persistent memory, the slower log I / O is completely removed from the transaction commitment process because the entire log volume is achieved using faster persistent memory devices rather than disks. Can be eliminated.
However, now and in the near future, disk capacity will continue to be much larger than non-disk persistent memory capacity, and the cost per byte of disk storage will continue to be significantly higher than the cost per byte of non-disk persistent memory. It seems to be low.
In that case, a relatively larger capacity disk drive WAB is implemented using a relatively smaller capacity non-disk persistent memory unit.
In such a configuration and in a similar design, the synchronous writing of audit information is asynchronously written to the disk with a delay.
Various techniques for selecting what information to keep in non-disk persistent memory and what information to flush to disk will be apparent to those skilled in the art of memory hierarchy design.
For example, the fuzzy control point system for transaction restore logs information so that in the event of a system crash, all normal restore processes of undoing in-flight transactions and then redoing can be applied from persistent memory. Two “control points” worthy can be kept in persistent memory.
さらに、今述べた、このような費用制約付き非ディスク永続メモリ技術を使用する場合、ADP608は引き続きディスク書き込み動作を使用することができるが、TMP604にトランザクションのコミットを許すために、それに先立ってこれらディスク動作の完了を待つ必要がない。
代わりに、ADP608は、データベースライタ602から受け取ったすべての監査情報を意欲的に、また同期して非ディスク永続メモリ装置612、614に書き込むが、適宜選択された時間間隔内に受け取った複数のメッセージからの情報を組み合わせるという選択肢を行使する。
ディスク動作はもはや上に述べたように完了が待たれないため、ADP608はこの場合、ディスク動作につきより多くのデータを書き込むことができ、それにより、同量の監査トレイルデータに対して行われる動作の総数が少ないため、発生するI/O関連オーバーヘッドは小さくなる。
これにより、監査ディスク616、618からのディスクスループットが向上するとともに、ADP608を実行するCPUのCPU利用率が向上する。
したがって、ADP608は、TMP604から監査トレイルフラッシュ要求を受け取ると、保留中の変更をいずれもCPMU612、614内のWABにフラッシュする。
ADP608はまた、その情報をバッファリングし、情報をいわゆる遅延して監査ログディスク616、618に書き込めるようにする。
所定の条件が満たされると、たとえば、バッファリングされる情報に対する特定のしきい値が超える、または最大固定時間間隔になると、ADP608は、フラッシュメッセージをTMP604から受け取ったか否かに関わらず、ディスク書き込み動作を発行する。
しかし、従来の場合と異なり、本発明のシステムでのトランザクションは、監査情報がディスク616、618に書き込まれる前であるが、CPMU612、614に書き込まれた後にコミットすることができる。
In addition, when using such a cost-constrained non-disk persistent memory technology just described, the
Instead, the
Since the disk operation no longer waits for completion as described above, the
As a result, the disk throughput from the
Thus, when the
When a predetermined condition is met, for example, when a certain threshold for buffered information is exceeded or the maximum fixed time interval is reached,
However, unlike the conventional case, the transaction in the system of the present invention can be committed before the audit information is written to the
監査ディスク616、618に遅延して発行された順次書き込み動作が完了すると、CPMU WABに記憶されていた情報のいくらかが、上書き可能になる。
次いで、CPMU612、614の適切な領域内の先頭アドレスが、ライトバックに成功した最後のバイトの先に進められる。
ディスクI/Oの完了をADP608が受け取る前に非ディスク永続メモリユニットが「満杯」とマークされていた場合、非ディスク永続メモリユニットは「非満杯」とマークされる。
次いで、ADP608はWABの使用をもう一度再開することができる。
ADP608は、WABの使用を保留するときは常に、トランザクションをコミットする前に、ログボリューム616、618への未処理ディスクI/Oを待つことに戻る。
このような状況では、書き込みI/O動作のサイズは通常、トランザクション応答時間に対するディスクI/O待ち時間の影響を制限するために、最適なディスクスループット(たとえば、128KB〜1MB)をもたらす値よりも小さな値(たとえば、コミット記録間に収集される監査の量に応じて4KB〜128KB)に設定される。
非ディスク永続メモリを使用する場合、トランザクションはディスクI/Oの完了を待たないため、ADP608は、書き込みのためにバッファリングされる監査データがより多くなるまで待つことができる。
したがって、より大きなディスク書き込みI/Oサイズ(たとえば、512KB)を使用して、ログボリューム616、618に対して最適に近いスループットを得ることができるとともに、ADP608を実行するCPUに対するディスクI/Oオーバーヘッドを大幅に低減することができる。
When the sequential write operations issued delayed to the
The leading address in the appropriate area of
If a non-disk persistent memory unit is marked “full” before
The
Whenever
In such situations, the size of the write I / O operation is usually more than the value that results in optimal disk throughput (eg, 128 KB to 1 MB) to limit the impact of disk I / O latency on transaction response time. Set to a small value (eg, 4 KB to 128 KB depending on the amount of audit collected between commit records).
When using non-disk persistent memory,
Thus, a larger disk write I / O size (eg, 512 KB) can be used to obtain near optimal throughput for
同量の設計変更を用いて、ディスク書き込み動作を待つことによってパフォーマンスが悪影響を受ける他のいずれのアプリケーションにも非ディスク永続メモリを使用するライトアサイドバッファを作成することができる。 With the same amount of design changes, a write-aside buffer can be created that uses non-disk persistent memory for any other application whose performance is adversely affected by waiting for a disk write operation.
設計に対する他の変形が当業者に明らかであろう。
たとえば、プライマリ非ディスクおよびミラー非ディスク永続メモリユニットに対して交互に順次書き込むのではなく、アプリケーションは同時書き込みを選ぶことも可能である。
Other variations to the design will be apparent to those skilled in the art.
For example, rather than alternately writing sequentially to the primary non-disk and mirror non-disk persistent memory units, the application can choose to write simultaneously.
(例示的な方法)
図7は、一実施形態による方法におけるステップを示す。
図示し説明する実施形態では、方法は、任意の適したハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにおいて実施することができる。
さらに、方法は、任意の適宜構成された非ディスク永続メモリ構造を使用して実施することができる。
非ディスク永続メモリ構造の具体的で非限定的な例を、本明細書全体を通して図示し説明する。
(Example method)
FIG. 7 illustrates steps in a method according to one embodiment.
In the illustrated and described embodiment, the method can be implemented in any suitable hardware, software, firmware, or combination thereof.
Further, the method can be implemented using any suitably configured non-disk persistent memory structure.
Specific, non-limiting examples of non-disk persistent memory structures are shown and described throughout this specification.
ステップ700が、トランザクションによって誘発された状態変更に関連するデータを受け取る。
このようなデータは、トランザクションに起因するデータベース状態変更を記述することができる。
図示し説明する実施形態では、このデータは上述したもの等のデータベースライタ構成要素から受け取られる。
ステップ702が、データを非ディスク永続メモリに書き込む。
記したように、任意の適した非ディスク永続メモリ構造を利用することが可能である。
たとえば、図6の例では、プライマリ非ディスク永続メモリユニットおよびミラー非ディスク永続メモリユニットが利用される。
ステップ704が、非ディスク永続メモリユニットしきい値に達したか否かを確認する。
達していない場合、方法はステップ700に戻る。
一方、非ディスク永続メモリユニットしきい値に達した場合、ステップ706が、非ディスク永続メモリ中のデータを、図6における監査ログディスク616等の監査ログディスクに書き込む。
図6の例では、このようにして監査ログを書き込むことは、遅延して行われるものとして言及している。
Step 700 receives data related to a state change induced by a transaction.
Such data can describe database state changes resulting from transactions.
In the illustrated and described embodiment, this data is received from a database writer component such as those described above.
Step 702 writes the data to non-disk persistent memory.
As noted, any suitable non-disk persistent memory structure can be utilized.
For example, in the example of FIG. 6, a primary non-disk persistent memory unit and a mirror non-disk persistent memory unit are utilized.
Step 704 checks to see if a non-disk persistent memory unit threshold has been reached.
If not, the method returns to step 700.
On the other hand, if the non-disk persistent memory unit threshold is reached, step 706 writes the data in the non-disk persistent memory to an audit log disk such as the
In the example of FIG. 6, it is mentioned that writing the audit log in this way is performed with a delay.
(非ディスク永続メモリのログライタチェックポインティングへの使用)
これより、一実施形態によるトランザクション処理システムの全体を800で示す図8を考える。
システム800は、データベースライタ802、トランザクションモニタ804、およびログライタ806を備える。
少なくとも1つの実施形態によれば、システム800は、すぐ上で述べたようなトランザクションコミットプロセスにおいて利用することができる。
さらに、システム800は、以下述べるように、ログライタチェックポインティングに利用することができる。
この例では、システム800の構成要素は図6の構成要素と同じであるか、または同様である。
したがって、簡潔にするために、これら構成要素についてはここで再び説明しない。
(Use of non-disk persistent memory for log writer checkpointing)
Consider now FIG. 8 which shows the entire transaction processing system at 800 according to one embodiment.
The
According to at least one embodiment, the
Further, the
In this example, the components of
Therefore, for the sake of brevity, these components will not be described again here.
図8のシステムでは、データベースライタ802は、監査記録または状態変更をログライタ806に送る。
ログライタ806は、監査記録を受け取って永続メモリ812、814に書き込み、監査データをメモリにバッファリングする。
ここで、コミット時に、トランザクションモニタ804は、トランザクションをコミットすべきであることをログライタ806に示す。
したがって、ログライタ806はコミット記録を受け取って永続メモリ812、814に書き込み、メモリにバッファリングする。
システム800を使用してトランザクションをコミットするプロセスにおける最終ステップは、ログライタ806が監査記録およびコミット記録を監査ログディスク816、818に「遅延して」書き込むことである。
この例では、ログライタ806による書き込み動作は、コミットプロセスと非同期に行われるため「遅延」と言及される。
この実施形態では、ADPバックアッププロセス810は、ADPプライマリプロセスが故障した場合に、永続メモリを読み出す必要があるだけである(ADPバックアッププロセスから永続メモリ812、814への点線によって線図で示される)。
In the system of FIG. 8, the
The
Here, at the time of commit, the
Accordingly, the
The final step in the process of committing a
In this example, the write operation by the
In this embodiment, the
この特定の例では、ライトアサイドバッファとして採用された同じ永続メモリユニットが、ログライタチェックポインティングにも採用される。
したがって、永続メモリ内のまったく同じ循環バッファを両方の目的で使用することができる。
さらに、ADPバックアッププロセスが、ADPプライマリプロセスが故障するまで、永続メモリチェックポイント情報を読み出す必要がないという点で利点が得られる。
In this particular example, the same persistent memory unit employed as the write-aside buffer is also employed for log writer checkpointing.
Thus, the exact same circular buffer in persistent memory can be used for both purposes.
Furthermore, an advantage is obtained in that the ADP backup process does not have to read persistent memory checkpoint information until the ADP primary process fails.
当業者に理解されるように、この手法は処理オーバーヘッドを低減するとともに、データコピーを削減する。
具体的には、従来では、ADPバックアッププロセスにチェックポイントするには、状態変更とともにメッセージをADPバックアッププロセスに送る必要があり、その後、このような変更が監査ディスクログ816、818に書き込まれた。
上記手法の場合、ADPバックアッププロセスはチェックポインティングループから取り出され、それによって処理オーバーヘッドが低減する。
As will be appreciated by those skilled in the art, this approach reduces processing overhead as well as data copy.
Specifically, conventionally, to checkpoint to the ADP backup process, it was necessary to send a message to the ADP backup process along with a state change, after which such changes were written to the audit disk logs 816, 818.
For the above approach, the ADP backup process is taken from the checkpointing group, thereby reducing processing overhead.
(非ディスク永続メモリのすべてのチェックポインティングへの使用)
一実施形態によれば、非ディスク永続メモリは、上に述べたようにトランザクションのコミットに使用することができるとともに、データベースライタチェックポインティングおよびログライタチェックポインティングの両方にも使用することができる。
この手法では、トランザクションコミットプロセスは、データフローでの2つのステップ、すなわち、DP2バックアッププロセスおよびADPバックアッププロセスにそれぞれチェックポイントする各ステップ、をなくすことによって簡素化される。
(Use of non-disk persistent memory for all checkpointing)
According to one embodiment, non-disk persistent memory can be used for transaction commit as described above, and can be used for both database writer checkpointing and log writer checkpointing.
In this approach, the transaction commit process is simplified by eliminating two steps in the data flow, each step that checkpoints into the DP2 backup process and the ADP backup process, respectively.
一例として、一実施形態によるトランザクション処理システムの全体を900で示す図9を考える。
システム900は、データベースライタ902、トランザクションモニタ904、およびログライタ906を備える。
この例では、システム900の構成要素は図6の構成要素と同じであるか、または同様である。
したがって、簡潔にするために、これら構成要素についてはここで再び説明しない。
As an example, consider FIG. 9 where the entire transaction processing system according to one embodiment is shown at 900.
The
In this example, the components of
Therefore, for the sake of brevity, these components will not be described again here.
この実施形態では、データベースライタが監査情報または状態変更をログライタ906に送るのではなく、監査情報または状態変更は永続メモリ912、914に書き込まれる。
こうすることにより、監査情報をDP2バックアッププロセスにチェックポイントすることが事実上なくなる。
したがって、DP2バックアッププロセス(特に図示せず)は、DP2プライマリプロセスが故障した場合に、永続メモリからこの情報を読み出す必要があるだけである。
In this embodiment, rather than the database writer sending audit information or state changes to the
This virtually eliminates checkpointing audit information into the DP2 backup process.
Thus, the DP2 backup process (not specifically shown) only needs to read this information from permanent memory if the DP2 primary process fails.
引き続き、監査情報が永続メモリ912、914に書き込まれると、ログライタ906は、情報をディスクにコミットすることに備えて、監査情報を読み出してメモリにバッファリングすることができる。
このプロセス段階が完了すると、トランザクションモニタ904は、情報をディスクにコミットさせるコミットプロセスの次の段階を開始することができる。
このために、トランザクションモニタは、コミット記録を永続メモリ912、914に書き込み、ログライタ906はコミット記録を永続メモリ912、914から読み出してメモリにバッファリングし、ディスクに書き込む。
有利なことに、データベースライタ(DP2)およびログライタ(ADP)のそれぞれのバックアッププロセスは、それぞれのプライマリプロセスが故障した場合、永続メモリ912、914を読み出す必要があるだけである。
Subsequently, as audit information is written to
When this process phase is complete, the transaction monitor 904 can begin the next phase of the commit process that causes the information to be committed to disk.
For this purpose, the transaction monitor writes the commit record to the
Advantageously, each backup process of the database writer (DP2) and log writer (ADP) only needs to read the
この実施形態によれば、ログライタ906はここで、監査情報およびコミット記録を非同期でディスクに遅延して書き込むことができる。
このプロセスは事実上、ログライタをコミットプロセスから切り離す。
According to this embodiment, the
This process effectively decouples the log writer from the commit process.
有利なことに、図6に関連して上述したように永続メモリをチェックポインティングプロセスならびにトランザクションコミットメントプロセスに使用することにより、トランザクションに関連するデータは、従来よりもはるかに素早く永続的にすることができる。
したがって、更新は、記録が永続メモリに書き込まれるときに耐久性を持ち、コミットプロセスは他のいずれのステップの完了も待つ必要がないため、トランザクションコミットプロセスははるかに高速になる。
Advantageously, by using persistent memory for the checkpointing process as well as the transaction commitment process as described above in connection with FIG. 6, the data associated with the transaction can be made much more permanent than before. it can.
Thus, the update is durable when the record is written to persistent memory, and the transaction commit process is much faster because the commit process does not have to wait for any other steps to complete.
(例示的なコンピューターシステム)
一実施形態では、上記システムは、図10に示すもの等のコンピュータシステム1000において実施することができる。
コンピュータシステム1000、またはコンピュータシステム1000を成す構成要素の様々な組み合わせを利用して、プロセッサノードならびに様々な非ディスク永続メモリユニットを含む上記システムを実施することができる。
(Exemplary computer system)
In one embodiment, the system can be implemented in a
The
図10を参照すると、例示的なコンピュータシステム1000(たとえば、パーソナルコンピュータ、ワークステーション、メインフレーム等)には、様々な構成要素を通信可能に結合するデータバス1014が構成される。
図10に示すように、プロセッサ1002はバス1014に結合されて、情報および命令を処理する。
RAM1004等のコンピュータ可読揮発性メモリもバス1014に結合され、プロセッサ1002のために情報および命令を記憶する。
さらに、コンピュータ可読読み取り専用メモリ(ROM)1006もバス1014に結合され、プロセッサ1002のために静的な情報および命令を記憶する。
磁気ディスク媒体または光ディスク媒体等のデータ記憶装置1008もバス1014に結合される。
データ記憶装置1008は、大量の情報および命令の記憶に使用される。
英数字キーおよび機能キーを備えた英数字入力装置1010がバス1014に結合され、情報およびコマンド選択をプロセッサ1002に伝達する。
マウス等のカーソル制御装置1012がバス1014に結合され、ユーザ入力情報およびコマンド選択を中央プロセッサ1002に伝達する。
入出力通信ポート1016がバス1014に結合され、たとえば、ネットワーク、他のコンピュータ、または他のプロセッサと通信する。
ディスプレイ1018がバス1014に結合され、情報をコンピュータユーザに対して表示する。
表示装置1018は、液晶装置、陰極線管、またはユーザが認識可能なグラフィック画像および英数字文字の作成に適した他の表示装置であることができる。
英数字入力1010およびカーソル制御装置1012は、コンピュータユーザがディスプレイ1018上の可視シンボル(ポインタ)の二次元の動きを動的に通知できるようにする。
非ディスク永続メモリユニット1020が設けられ、非ディスク永続メモリユニット1020は、当業者に理解されるように、上記実施形態のいずれを備えてもよく、また上記振る舞いを示す他の非ディスク永続メモリ構造を備えてもよい。
With reference to FIG. 10, an exemplary computer system 1000 (eg, personal computer, workstation, mainframe, etc.) is configured with a
As shown in FIG. 10,
Computer readable volatile memory, such as
In addition, a computer readable read only memory (ROM) 1006 is also coupled to the
A
An
A
An input /
A
A non-disk
(結論)
上記の各種実施形態は、非ディスク永続メモリをトランザクション処理システムと併せて利用する。
非ディスク永続メモリを使用してトランザクションをコミットすることにより、トランザクションのコミットに関連する時間を削減することができる。
したがって、トランザクション処理システム内の資源に対する需要を低減することができ、これによってトランザクション処理システムのスループットを向上させることができる。
(Conclusion)
The various embodiments described above utilize non-disk persistent memory in conjunction with a transaction processing system.
By committing the transaction using non-disk persistent memory, the time associated with committing the transaction can be reduced.
Therefore, the demand for resources within the transaction processing system can be reduced, thereby improving the throughput of the transaction processing system.
本発明について構造的特徴および/または方法ステップに固有の言葉で説明したが、添付の特許請求の範囲において規定される本発明は、説明した特定の特徴またはステップに必ずしも限定されるものではないことを理解されたい。
より正確に言えば、特定の特徴およびステップは、特許請求する本発明を実施する好ましい形態として開示されたものである。
Although the invention has been described in language specific to structural features and / or method steps, the invention as defined in the appended claims is not necessarily limited to the specific features or steps described. I want you to understand.
Rather, the specific features and steps are disclosed as preferred forms of implementing the claimed invention.
100・・・トランザクション処理システム,
102・・・データベースライタ,
104・・・トランザクションモニタ,
106・・・ログライタ,
202・・・データベースライタ,
204・・・トランザクションモニタ,
206・・・ログライタ,
208・・・監査ログディスク,
210・・・クライアント,
222・・・データベースディスク,
302・・・プロセッサノード,
306・・・RDMA対応システムエリアネットワーク(SAN),
310・・・通信リンク接続永続メモリユニット(CPMU),
400・・・通信リンク接続永続メモリユニット,
402・・・不揮発性メモリ,
500・・・通信リンク接続永続メモリユニット,
502・・・揮発性メモリ,
508・・・不揮発性補助記憶装置,
510・・・バッテリ,
600・・・トランザクション処理システム,
602・・・データベースライタ,
604・・・トランザクションモニタ,
606・・・ログライタ,
608・・・監査ディスクプロセス(プライマリ),
610・・・監査ディスクプロセス(バックアップ),
612,614・・・永続メモリ,
616,618・・・監査ログディスク,
800・・・トランザクション処理システム,
802・・・データベースライタ,
804・・・トランザクションモニタ,
806・・・ログライタ,
808・・・監査ディスクプロセス(プライマリ),
810・・・監査ディスクプロセス(バックアップ),
812,814・・・永続メモリ,
816,818・・・監査ログディスク,
900・・・トランザクション処理システム,
902・・・データベースライタ,
904・・・トランザクションモニタ,
906・・・ログライタ,
912,914・・・永続メモリ,
1002・・・プロセッサ,
1008・・・データ記憶装置,
1010・・・英数字入力装置,
1012・・・カーソル制御装置,
1016・・・通信ポート,
1018・・・ディスプレイ,
1020・・・非ディスク永続メモリユニット,
100 ... Transaction processing system,
102 ... Database writer,
104 ... Transaction monitor,
106: Log writer,
202 ... Database writer,
204 ... Transaction monitor,
206: Log writer,
208: Audit log disk,
210 ... Client,
222 ... database disk,
302 ... Processor node,
306 ... RDMA compatible system area network (SAN),
310 ... Communication link connection permanent memory unit (CPMU),
400... Communication link connection permanent memory unit,
402... Non-volatile memory,
500... Communication link connection permanent memory unit,
502 ... volatile memory,
508... Non-volatile auxiliary storage device,
510... Battery
600 ... transaction processing system,
602: Database writer,
604 ... Transaction monitor,
606: Log writer,
608 ... Audit disk process (primary),
610: Audit disk process (backup),
612, 614 ... persistent memory,
616, 618 ... Audit log disk,
800 ... transaction processing system,
802 ... Database writer,
804 ... Transaction monitor,
806: Log writer,
808: Audit disk process (primary),
810: Audit disk process (backup),
812, 814 ... persistent memory,
816, 818 ... audit log disk,
900 ... transaction processing system,
902: Database writer,
904 ... Transaction monitor,
906: Log writer,
912, 914 ... persistent memory,
1002... Processor,
1008 ... Data storage device,
1010 ... Alphanumeric input device,
1012 ... Cursor control device,
1016: Communication port,
1018 ... display,
1020... Non-disk persistent memory unit,
Claims (10)
前記トランザクション処理システム内の1つまたは複数のトランザクションに従ってデータを処理するように構成されたデータベースライタ(802)と、
前記トランザクション処理システム内のトランザクションを監視するトランザクションモニタ(804)と、
前記トランザクション処理システム内のトランザクションに関連する監査トレイルデータを保持するログライタ(802)と、
1つまたは複数の非ディスク永続メモリユニット(812、814)と
を備え、
前記1つまたは複数の非ディスク永続メモリユニット(812、814)をチェックポインティングに使用するように構成された
トランザクション処理システム。 A transaction processing system (800) comprising:
A database writer (802) configured to process data in accordance with one or more transactions in the transaction processing system;
A transaction monitor (804) for monitoring transactions in the transaction processing system;
A log writer (802) for holding audit trail data relating to transactions in the transaction processing system;
One or more non-disk persistent memory units (812, 814), and
A transaction processing system configured to use the one or more non-disk persistent memory units (812, 814) for checkpointing.
プライマリ非ディスク永続メモリユニット(812)およびミラー非ディスク永続メモリユニット(814)
を含む
請求項1記載のトランザクション処理システム。 The one or more non-disk persistent memory units are:
Primary non-disk persistent memory unit (812) and mirrored non-disk persistent memory unit (814)
The transaction processing system according to claim 1.
請求項1記載のトランザクション処理システム。 The transaction processing system of claim 1, wherein the log writer (806) is configured to use the one or more non-disk persistent memory units (812, 814) for checkpointing.
請求項1記載のトランザクション処理システム。 The transaction processing system of claim 1, wherein the log writer (906) and the database writer (902) are configured to use the one or more non-disk persistent memory units for checkpointing.
循環バッファとして構成されたライトアサイドバッファ
を含み、
前記ログライタ(906)および前記データベースライタ(902)は、前記循環バッファをチェックポインティングに使用するように構成される
請求項1記載のトランザクション処理システム。 The one or more non-disk persistent memory units (812, 814) are:
Including a write-aside buffer configured as a circular buffer,
The transaction processing system of claim 1, wherein the log writer (906) and the database writer (902) are configured to use the circular buffer for checkpointing.
前記受け取ったデータを非ディスク永続メモリに書き込むことによってチェックポイントを行うこと(702)と
を含むコンピュータにより実施される方法。 Receiving data related to a state change induced by the transaction (700);
Performing a checkpoint by writing the received data to a non-disk persistent memory (702).
請求項6記載のコンピュータにより実施される方法。 The computer-implemented method of claim 6, wherein performing the checkpoint is performed by a log writer.
請求項6記載のコンピュータにより実施される方法。 The computer-implemented method of claim 6, wherein performing the checkpoint is performed by a database writer.
請求項6記載のコンピュータにより実施される方法。 The computer-implemented method of claim 6, wherein performing the checkpoint is performed by at least a log writer and a database writer.
前記受け取ったデータを第1および第2の非ディスク永続メモリユニットに書き込むこと
を含み、
前記第1の非ディスク永続メモリユニットは、
プライマリ非ディスク永続メモリユニット
を含み、
前記第2の非ディスク永続メモリユニットは、
ミラー非ディスク永続メモリユニット
を含む
請求項6記載のコンピュータにより実施される方法。 Performing the checkpoint is
Writing the received data to first and second non-disk persistent memory units;
The first non-disk persistent memory unit is:
Including a primary non-disk persistent memory unit,
The second non-disk persistent memory unit is
The computer-implemented method of claim 6, comprising a mirror non-disk persistent memory unit.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/864,267 US20050203974A1 (en) | 2004-03-09 | 2004-06-09 | Checkpoint methods and systems utilizing non-disk persistent memory |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2006012142A true JP2006012142A (en) | 2006-01-12 |
Family
ID=35779276
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2005166402A Pending JP2006012142A (en) | 2004-06-09 | 2005-06-07 | Checkpoint method and system utilizing non-disk persistent memory |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2006012142A (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106104511A (en) * | 2014-03-11 | 2016-11-09 | 亚马逊科技公司 | Page cache entry for block-based storage |
| US10489422B2 (en) | 2014-03-11 | 2019-11-26 | Amazon Technologies, Inc. | Reducing data volume durability state for block-based storage |
-
2005
- 2005-06-07 JP JP2005166402A patent/JP2006012142A/en active Pending
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106104511A (en) * | 2014-03-11 | 2016-11-09 | 亚马逊科技公司 | Page cache entry for block-based storage |
| JP2017515193A (en) * | 2014-03-11 | 2017-06-08 | アマゾン・テクノロジーズ・インコーポレーテッド | Page cache write logging in block-based storage |
| US10055352B2 (en) | 2014-03-11 | 2018-08-21 | Amazon Technologies, Inc. | Page cache write logging at block-based storage |
| US10489422B2 (en) | 2014-03-11 | 2019-11-26 | Amazon Technologies, Inc. | Reducing data volume durability state for block-based storage |
| US10503650B2 (en) | 2014-03-11 | 2019-12-10 | Amazon Technologies, Inc. | Page cache write logging at block-based storage |
| US11188469B2 (en) | 2014-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Page cache write logging at block-based storage |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7383290B2 (en) | Transaction processing systems and methods utilizing non-disk persistent memory | |
| US8954385B2 (en) | Efficient recovery of transactional data stores | |
| US11243708B2 (en) | Providing track format information when mirroring updated tracks from a primary storage system to a secondary storage system | |
| US11875060B2 (en) | Replication techniques using a replication log | |
| JP6362685B2 (en) | Replication method, program, and apparatus for online hot standby database | |
| CN107408070B (en) | Multiple transaction logging in a distributed storage system | |
| US7181581B2 (en) | Method and apparatus for mirroring data stored in a mass storage system | |
| USRE37601E1 (en) | Method and system for incremental time zero backup copying of data | |
| JP4800056B2 (en) | Storage system and control method thereof | |
| CN103562878B (en) | Memory check point in mirror image dummy machine system is set | |
| US20040148360A1 (en) | Communication-link-attached persistent memory device | |
| US20140208012A1 (en) | Virtual disk replication using log files | |
| JP2005276208A (en) | Communication-link-attached permanent memory system | |
| US20110283045A1 (en) | Event processing in a flash memory-based object store | |
| US8650471B2 (en) | System and method for look-aside parity based raid | |
| JP6652647B2 (en) | Storage system | |
| US20050203974A1 (en) | Checkpoint methods and systems utilizing non-disk persistent memory | |
| WO2012049036A1 (en) | Multiple incremental virtual copies | |
| WO2022033269A1 (en) | Data processing method, device and system | |
| JP2006323826A (en) | System for log writing in database management system | |
| US10210060B2 (en) | Online NVM format upgrade in a data storage system operating with active and standby memory controllers | |
| US10140183B2 (en) | Efficient state tracking for clusters | |
| US12086445B1 (en) | Maintaining partition-level parity data for improved volume durability | |
| US10656867B2 (en) | Computer system, data management method, and data management program | |
| JP2006012142A (en) | Checkpoint method and system utilizing non-disk persistent memory |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080812 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081111 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081216 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090311 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090410 |