説明

非ディスク永続メモリを利用したチェックポイント方法およびシステム

【課題】トランザクションのコミットに必要な時間を削減するシステムおよび方法を提供する。
【解決手段】トランザクション処理システム800であって、トランザクション処理システム内の1つまたは複数のトランザクションに従ってデータを処理するように構成されたデータベースライタ802と、トランザクション処理システム内のトランザクションを監視するトランザクションモニタ804と、トランザクション処理システム内のトランザクションに関連する監査トレイルデータを保持するログライタ802と、1つまたは複数の非ディスク永続メモリユニット812、814とを備え、1つまたは複数の非ディスク永続メモリユニット812,814をチェックポインティングに使用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、トランザクション処理システムに関する。
【0002】
(関連出願)
本願は、参照により本明細書に援用される2004年3月9日出願の米国特許出願第10/797,258号の一部継続であり、その優先権を主張するものである。
本願はまた、米国特許出願第10/351,194号および同第10/737,374号に関連するものである。
【背景技術】
【0003】
トランザクション処理システムは、原子性、一貫性、隔離性、および耐久性を含むいわゆるACID特性の維持を保証しながら複数のトランザクションプログラムの並行実行をサポートするコンピュータハードウェアおよびソフトウェアシステムである。
トランザクションプログラムは、トランザクションを正しく実行するために動作を適用しなければならない順序および実施しなければならないあらゆる並行制御を含めた、アプリケーション状態に対して適用される動作の仕様である。
最も一般的な並行制御動作はロッキングであり、ロッキングにより、トランザクションプログラムに対応するプロセスは、読み出し、または書き込みを行うデータに対して共有ロックあるいは排他ロックを取得する。
トランザクションは、通常、データベースにおいて表される物理的および抽象的なアプリケーションの状態に対する動作の集まりを指す。
トランザクションは、トランザクションプログラムの実行を表す。
動作には、共有状態の読み書きが含まれる。
【0004】
ACID特性に関して、原子性は、トランザクションが完全に実行されるか、またはまったく実行されないかのいずれかであるという点で、全か無かの振る舞いを示すトランザクションを指す。
完了したトランザクションはコミットされたと言え、実行中に放棄されたものはアボートされたと言え、実行が開始されたがコミットもアボートもされなかったものはインフライトと言える。
【0005】
一貫性は、アプリケーション状態を指定されたいずれの保全性制約とも矛盾しない状態のままに保つトランザクションの成功した完了を指す。
【0006】
隔離性は、直列化可能性としても知られ、トランザクションストリームをいずれも正しく並行実行することが、ストリームを成す各トランザクションを或る全体順序で実行することと一致することを保証する。
この意味では、実行済みトランザクションに関して、ストリーム内の他のあらゆるトランザクションの影響は、このトランザクションの完全に前に実行された場合の影響も、また完全に後で実行された場合の影響も同じである。
強力な直列化可能性は、トランザクションの並行実行が制約される程度を指し、トランザクション処理システムにおいて異なる隔離レベルを作り出す。
本明細書の文脈の中では、トランザクションによって行われた更新が決して失われず、トランザクション内での再読み出し動作の結果が同じである最強の形態の隔離性を示すトランザクション処理システムを最重視する。
【0007】
耐久性は、トランザクションが一度コミットされると、アプリケーション状態に対するその諸変更が、トランザクション処理システムに対して影響する障害に耐え抜くような特性を指す。
【発明の開示】
【発明が解決しようとする課題】
【0008】
トランザクション処理システムに伴う一問題は、トランザクションのコミットに必要な時間の削減に関する。
したがって、本発明は、トランザクションのコミットに必要な時間を削減するシステムおよび方法を提供することに関連する問題から生じたものである。
【発明を実施するための最良の形態】
【0009】
(概観)
本明細書において説明する各種実施形態は、トランザクション処理システムと併せて非ディスク永続メモリを利用する。
非ディスク永続メモリをトランザクションのコミットに使用することにより、トランザクションのコミットに関連する時間を削減することができ、ひいては、トランザクション処理システム内の資源に対する需要を低減するとともに、トランザクション処理のスループットを増大させることができる。
各種実施形態は、非ディスク永続メモリをチェックポインティングプロセスおよびライトアサイド(write-aside)バッファリングプロセスの両方に利用する統一バッファリング方式を提供する。
【0010】
(例示的な一般トランザクション処理システム)
図1は、構成要素を本明細書において説明する本発明の原理の実施に利用することのできる例示的なトランザクション処理システム100を示す。
説明する実施形態では、トランザクション処理システム100は、データベースライタ102、トランザクションモニタ104、およびログライタ106を備える。
【0011】
データベースライタ102は、トランザクションプログラムによって指定された動作を実行する際に、データボリューム(すなわち、ディスクまたはディスクの集まり)に記憶されているデータを変異させるように構成される。
耐久性以外のACID特性をどのように維持するかは、本明細書における考察にあまり関係がない。
【0012】
耐久性に関しては、データベースライタが、データベースに対して行った変更が耐久性媒体に記録されるように保証する。
オンライントランザクション処理では、こういった変更によって影響を受けたデータは、各データボリュームにランダムに分散しがちである。
複数のディスクドライブへのランダムアクセスはかなり効率が悪いため、こういった変更はディスクにすぐには書き込まれない。
すぐにではなく、データベースライタ102は、それぞれの変更を以下に述べるログライタ106に送り、それによって変更がトランザクションコミットに間に合うような耐久性のあるものになる。
【0013】
トランザクションモニタ104は、トランザクションがシステムに入退出する際にトランザクションをトラッキングする。
トランザクションモニタは、トランザクションを受けてデータベースを変異させるデータベースライタ102をトラッキングし、データベースライタ102によってログライタ106に送られたそのトランザクションに関連するいずれのデータボリュームの変更も、トランザクションがコミットされる前に永久媒体にフラッシュされることを保証する。
トランザクションモニタ104はまた、トランザクションの状態(たとえば、コミットまたはアボート)をトランザクションログに書き留める。
【0014】
ログライタ106はデータベース監査トレイルを保持し、データベース監査トレイルは、各トランザクションによりデータベースに対して行われた変更を明示的に記録するとともに、トランザクションがコミットされた逐次順序を暗黙的に記録する。
ここでも耐久性特性に注目すると、トランザクションのコミットを可能にするには、それに先立って、そのトランザクションによって行われた変更を耐久性媒体に記録しなければならない。
ログライタ106はこの制約を実施し、データベースライタ102から、状態の変更を記述した監査記録を受け取り、後述の残りのトランザクションコミットメントインフラストラクチャと記録動作を連携させる。
【0015】
当業者により理解されるように、上記エンティティのうちの1つまたは複数は、スケーラビリティまたは耐故障性を目的として複数のプロセスまたはスレッドを使用して実現することが可能である。
たとえば、データベースを、1つまたは複数のデータベースライタエンティティによってそれぞれ管理される複数のディスク「ボリューム」に分割することができる。
同様に、監査トレイルを書き込むタスクも、それぞれ、データベースライタの特定のサブセットによって行われた変更を記録する専用の複数のログライタに分割することも可能である。
トランザクション処理システムの連続動作を保証するために、各データベースライタは、セット中の1つのエンティティが万が一故障した場合に、セットからの生き残ったエンティティが、トランザクションストリームの処理を邪魔することなく「引き継ぐ」ことができるように、状態を常に同期させた2つ以上の冗長エンティティのセットを使用して実現することもできる。
【0016】
図2は、図1のトランザクション処理システムの実施態様の全体を200で示し、データベースライタ202、トランザクションモニタ204、およびログライタ206を含む。
【0017】
この例では、上述のエンティティのそれぞれは、一対のプロセスを使用して実施される。
こうして、各プロセス対には、プライマリプロセス(「pri」と記される)およびバックアッププロセス(「bak」と記される)が含まれる。
この例では、トランザクション処理システムの他のいずれの構成要素とも通信する前に、各プライマリプロセスが、その状態の関係部分をバックアッププロセスにチェックポイントし、プライマリプロセスが故障した場合に、バックアッププロセスが素早く引き継ぐことができる。
引き継ぎ間隔はかなり短く(数ミリ秒から数秒続く)、この間に、インフライトトランザクションはアボートされ、おそらく再度開始される。
図2におけるトランザクション処理アーキテクチャの各要素を実現するプロセスおよびライブラリは、複数のCPUに分散させることができる。
【0018】
この例では、データベースライタ202は「DP2」(「ディスクプロセス2」)と記され、ログライタ206は「ADP」(「監査ディスクプロセス」)と記される。
トランザクションモニタ204は、TMF(「トランザクションモニタリング機能」)と呼ばれる分散したプロセスおよびシステムライブラリの集まりを使用して実施される。
トランザクションモニタ204は「TMP」(「トランザクションモニタプロセス」)と記され、トランザクションの開始およびコミットを調整する。
TMFは、TMFlib(TMFライブラリ)と呼ばれるオペレーティングシステム機能を、クラスタ中の各CPUにおいて使用する。
このライブラリは、DP2プロセスが、任意所与のトランザクションに関するそれぞれの作業を開始・終了する際にTMFに登録できるようにする。
TMFlibインスタンスは、当該インスタンス間で通信するともに、TMPプロセス対と通信して、「トランザクションのコミット」というタイトルのセクションにおいて後述するようにトランザクションコミットメントを調整する。
【0019】
(トランザクションのコミット)
図2を参照して、以下に、単一のログボリューム(または監査トレイルディスクボリューム)208がトランザクション処理システムに存在する場合でのトランザクションコミットに関わる例示的なステップについて説明する。
通常、クライアント210が、トランザクションの開始を示すBegin_Transactionまたは同様の動作に直面する。
クライアントプロセスを実行しているCPU上のTMFlibは、新しいトランザクションにトランザクションID(TID)を割り当てる。
TIDは次いで、データベースライタ202、特に、トランザクションを受けて作業するすべてのディスクプロセスDP2に伝搬される。
図2に示す単純な場合では、単一のデータベースライタ(一対のDP2プロセスを含む)のみが関与する。
より一般的な場合では、複数のDP2プロセス対がトランザクションの処理に関わり得る。
【0020】
データベースライタ202がデータベースの状態を変更すると、プライマリDP2プロセス210がまず、状態変更をバックアッププロセス212にチェックポイントし、次いで状態変更の記録をログライタ206、特にADPプライマリプロセス218に伝搬する。
ADPプライマリプロセスは、バッファリング監査データ量に対するしきい値を超える(いわゆる優遇書き込み(courtesy write)になる)まで、あるいはトランザクションモニタプロセス(TMP)204からのメッセージによって強制的にコミットする(いわゆる強制書き込みになる)場合はそれよりも早く、状態変更をメモリにバッファリングする。
DP2とまったく同様に、ADPプライマリプロセス218も、いずれのディスク動作またはメッセージも発行する前に状態変更をバックアッププロセス220にチェックポイントする。
【0021】
次の瞬間において、クライアントは次いで、特定のトランザクションの終了を示すEnd_Transactionまたは同様の動作に直面する。
トランザクションモニタプロセス204は、トランザクションのコミットに先立って、上に説明したように、トランザクションを受けてログライタ206に送られたデータベースの状態変更が耐久性を持ったことを保証する必要がある。
これを実現するために、TMPはその特定のトランザクションの2相フラッシュメッセージをシステム内の各ログライタまたはADPに送り、次いで、各ADPから、求められる状態変更が非耐久性システムバッファからディスクドライブに書き込まれたことを確認する返信を待つ。
トランザクションモニタ204は、すべての返信メッセージを受け取ると、トランザクションコミット記録を特に指定されたマスタADPに送る。
マスタADPが、コミット記録を耐久性媒体に書き込んだことを承認すると、TMPはクライアントに、トランザクションがコミットされたことを通知する。
【0022】
上記から、当業者により理解されるように、状態変更およびコミット記録がディスクにフラッシュされるのを待つことが、TMFトランザクションのコミットに際しての遅延の大部分を占めることは明らかである。
さらに、データベースライタ、トランザクションモニタ、およびログライタによるチェックポインティングにより、トランザクションをコミットするオーバーヘッドが増す。
ディスクは回転する機械的媒体であるため、ディスクの待ち時間は、プロセッサおよびメモリの速度ほど急速には向上していない。
さらに、メッセージの受け渡しを介しての信頼性の高いチェックポインティングには、データ転送オーバーヘッドのみならず、一対のプロセスを完全に同期させることのオーバーヘッドも伴う。
こういった要因により、TMFトランザクションコミット時間は、数ミリ秒から数秒の範囲になることが多い。
【0023】
用途によっては遅い応答時間に耐え得るものもあるが、多くの用途では遅い応答時間は耐えることができない。
TMFトランザクション応答時間が遅い場合、平均的なトランザクションがシステムに留まる時間が長くなり、ひいてはトランザクション処理システム内の資源に対する需要が高くなり、これによって有限資源下でのトランザクション処理スループットが間接的に制限されることにより、トランザクション処理スループットに対して二次的な不利な影響を及ぼす。
トランザクションがシステムに留まる時間が長くなった場合に容量を超えることになる可能性がある資源の例としては、データベースロック、ソケット、および他の接続資源が挙げられる。
【0024】
(永続メモリ一般)
本明細書において説明する実施形態によれば、非ディスク永続メモリがトランザクション処理システムと併せて採用されて、一般にトランザクション応答時間を削減し、特にトランザクションコミット時間およびプロセス対チェックポインティング時間を削減する。
以下述べる各種実施形態では、非ディスク永続メモリを、ディスク書き込みの際のライトアサイドバッファ、およびプロセス状態チェックポイントのためのバッファの両方として使用することができる。
【0025】
永続メモリは、当業者により理解される構造的概念である。
説明する実施形態によれば、利用可能な非ディスク永続メモリには多くの可能な実施態様がある。
したがって、非ディスク永続メモリの特定の一実施形態への限定は本明細書の意図するところではない。
【0026】
読み手による非ディスク永続メモリに関連する構造的原理の理解を助けるために、以下の考察において、本発明のトランザクション処理システムで非ディスク永続メモリシステムを使用しやすくするために、非ディスク永続メモリシステムが有することのできる特徴について述べる。
この考察全体を通して、非ディスク永続メモリシステムの少数の非限定的な例を提供する。
本明細書において述べる原理は、特許請求する主題の精神および範囲から逸脱することなく、他の非ディスク永続メモリ構造でも採用することが可能なことを認識し理解されたい。
【0027】
本明細書において定義する非ディスク永続メモリは、以下の特性、すなわち、耐久性、接続性、およびアクセスを示すべきである。
【0028】
耐久性は、リフレッシュなしで耐久性があり、システムの電源が失われても耐え抜くことができる非ディスク永続メモリを指す。
さらに、電源が失われた後、またはソフト故障後に非ディスク永続メモリに記憶されているデータへの継続的なアクセスを保証するために、耐久性のある自己無矛盾のメタデータを提供すべきである。
【0029】
接続性に関しては以下を考慮する。
非ディスク永続メモリは、市販のチップセットを使用して利用可能なメモリコントローラへの接続が可能である。
専用メモリコントローラは、最終的に、一意に非ディスク永続メモリの耐久性を利用するように設計することができるが、それらが存在する必要はない。
おそらく耐故障性との関わり合い、パッケージングの問題、物理的なスロットの制約、または電気負荷限度により、CPUのメモリコントローラへの直接接続性が望ましくない場合では、非ディスク永続メモリの第1レベルI/Oが許される。
たとえば、非ディスク永続メモリは、PCI、およびPCI Express、RDMA over IP、InfiniBand、FC−VI(Virtual Interface over Fibre Channel)またはServerNet等の他の第1レベルI/O相互接続に取り付けることができる。
このような相互接続は、メモリマッピングおよびメモリセマンティックアクセスの両方をサポートする。
非ディスク永続メモリの本実施形態を通信リンク接続永続メモリユニット(CPMU)と呼ぶ。
【0030】
記憶装置接続性(たとえば、SCSI)または実際には他のいずれの第2レベルI/O接続性も、以下明らかにするパフォーマンス考慮事項により永続メモリには望ましくない。
【0031】
アクセスに関しては以下を考慮する。
非ディスク永続メモリは、特に指定されたプロセス仮想アドレスにおいてであるが、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を介して通信される。
【0032】
RDMAデータ移動動作に加えて、CPMU310は、様々な管理コマンドに応答するように構成されることができる。
たとえば、プロセッサノード302によって開始された書き込み動作では、データが一旦CPMUに首尾良く記憶されてしまえば、そのデータは耐久性を持つようになり、停電またはプロセッサノード302の故障を耐え抜く。
特に、メモリ内容は、CPMUが正しく機能し続ける限り、電源が長い時間期間にわたって切断された後、またはプロセッサノード302上のオペレーティングシステムがリブートした後であっても保持される。
この例では、プロセッサノード302は、少なくとも1つの中央演算処理装置(CPU)およびメモリからなるコンピュータシステムであり、CPUはオペレーティングシステムを実行するように構成される。
プロセッサノード302は、データベース等のアプリケーションソフトウェアを実行するようにさらに構成される。
プロセッサノード302は、SAN306を使用して他のプロセッサノード302ならびにCPMU310およびI/Oコントローラ(図示せず)等の装置と通信する。
【0033】
この例の一実施態様では、RDMA対応SANは、イニシエータプロセッサノード302とターゲットプロセッサノード302の間で、あるいはイニシエータプロセッサノード302と装置310の間で、ターゲットプロセッサノード302のCPUに通知することなく、コピー動作等のメモリ動作をバイトレベルで実行可能なネットワークである。
この場合、SAN306は、仮想アドレスから物理アドレスへの変換を行い、連続したネットワーク仮想アドレス空間から不連続の物理アドレス空間へのマッピングを可能にするように構成される。
このタイプのアドレス変換により、CPMU310の動的管理が可能になる。
市販のRDMA機能付きSAN306としては、ServerNet、RDMA over IP、InfiniBand、および仮想インタフェースアーキテクチャに準拠したすべてのSANが挙げられるがこれらに限定されるものではない。
【0034】
プロセッサノード302は一般に、NI304を通してSAN306に接続されるが、多くの変形が可能である。
しかし、より一般には、プロセッサノードは、読み出し動作および書き込み動作を通信する装置に接続する必要があるだけである。
たとえば、本例の別の実施態様では、プロセッサノード302はマザーボード上の様々なCPUであり、SANを使用する代わりに入出力バス、たとえばPCIバスが使用される。
本教示は必要に応じて、より大きな、またはより小さな実施態様に対応するようにスケールアップまたはスケールダウンすることが可能なことに留意されたい。
【0035】
ネットワークインタフェース(NI)308は、CPMU310に通信可能に結合されて、CPMU310内に収容された非ディスク永続メモリにアクセスできるようにする。
図3の各種構成要素には、CPMU310内に使用されるメモリ技術のタイプを含め、多くの技術を利用することが可能である。
したがって、図3の実施形態ならびに本明細書において説明するその他の実施形態は、非ディスク永続メモリを実現する特定の技術に限定されない。
実際には、様々な磁気ランダムアクセスメモリ(MRAM)、磁気抵抗ランダムアクセスメモリ(MRRAM)、ポリマー強誘電性ランダムアクセスメモリ(PFRAM)、OUM(Ovonics unified memory)、バッテリバックアップダイナミックランダムアクセスメモリ(BBDRAM)、およびフラッシュメモリを含め、多くのメモリ技術が適している。
【0036】
SAN306が使用される場合、メモリはRDMAアクセスに十分に高速であるべきである。
このようにして、RDMA読み出し動作および書き込み動作がSAN306を介して可能になる。
別のタイプの通信装置が使用される場合、使用されるメモリのアクセス速度もまた、通信装置に対応するに十分に高速であるべきである。
永続情報は、使用中の非ディスク永続メモリがデータを保持することができる程度まで提供されることに留意されたい。
たとえば、多くの用途において、非ディスク永続メモリは、電源が失われる時間量に関わりなくデータを記憶することが求められる場合もあれば、別の用途では、数分または数時間だけデータを記憶すればよい場合もある。
【0037】
本手法と併せて、単一または複数の独立した間接的にアドレス指定されるメモリ領域を作成するメモリ管理機能が提供される。
さらに、電源が失われた後、またはプロセッサが故障した後にメモリを復元するために、CPMUメタデータが提供される。
メタデータまたは情報には、たとえば、CPMU内の保護メモリ領域の内容およびレイアウトが含まれる。
このようにして、CPMUは、データおよびデータ使用方法を記憶する。
必要が生じたときに、CPMUは電源またはシステムの故障から復元できるようにする。
【0038】
図4においては、CPMU400は、バス等のデータ通信リンクを介して共に結合された非ディスク不揮発性メモリ402およびネットワークインタフェースまたはNI404を備える。
ここでは、非ディスク不揮発性メモリ402は、たとえば、MRAMまたはフラッシュメモリであることができる。
NI404は、それ自体はRDMA要求を開始せず、そうする代わりにネットワークから管理コマンドを受け取り、要求された管理動作を実行する。
具体的には、CPMU400は、各入力メモリアクセス要求上のアドレスを変換し、次いで、NI404と不揮発性メモリ402の間のデータ通信リンクを介して要求されたメモリ動作を内部で開始する。
【0039】
図5においては、CPMU500の別の実施形態は、バッテリ510を有する非ディスク揮発性メモリ502と不揮発性補助記憶装置508の組み合わせを使用する。
この実施形態では、電源が落ちると、非ディスク揮発性メモリ502内のデータは、係るデータを不揮発性補助記憶装置508に保存することができるまでバッテリ510の電源を使用して保持される。
不揮発性補助記憶装置は、たとえば、磁気ディスクまたは低速フラッシュメモリであることができる。
CPMU500が適宜動作するには、揮発性メモリ502から不揮発性補助メモリ記憶装置508へのデータの転送は、外部介入またはバッテリ510からの電源以外のさらなる電源をいずれも必要とすることなく行われるべきである。
したがって、要求されたタスクはいずれも、バッテリ510が切れる前に完了されるべきである。
図示のように、CPMU500は、埋め込みオペレーティングシステムを実行するオプションのCPU504を備える。
【0040】
したがって、バックアップタスク(すなわち、非ディスク揮発性メモリ502から不揮発性補助メモリ記憶装置508へのデータ転送)は、CPU504上で実行されているソフトウェアによって行うことができる。
CPU504上で実行されているソフトウェアは、備えられているNI506を使用して、RDMA要求を開始し、またはメッセージをSAN306上の他のエンティティに送ることができる。
ここでも、CPU504は、NI506を通してネットワークから管理コマンドを受け取り、要求された管理動作を実行する。
【0041】
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はこうして復元し、電源の故障またはオペレーティングシステムのクラッシュが発生したメモリの状態から動作を再開することができる。
【0042】
処理ノード302のLoadおよびStoreメモリ命令を使用して、SAN306を介してRDMAデータ転送を直接または間接的に開始することが実行不可能なシステム300では、CPMU310の内容の読み書きには、処理ノード302上で実行されているアプリケーションが、アプリケーションプログラミングインタフェースまたはAPIを使用してRDMAを開始する必要がある。
【0043】
明らかなはずであるように、非ディスク永続メモリが魅力的である理由の1つは、ディスクドライブよりも、耐久性のある記憶データに対して細かい粒度(アクセスサイズがより小さいことを意味する)での読み書き動作をサポートすることである。
この粒度の細かさは、アクセスサイズ(読み出す、または書き込むバイトの数)およびアクセスアラインメント(読み出される、または書き込まれる最初のバイトの、非ディスク永続メモリ領域内のオフセット)の両方に当てはまる。
非ディスク永続メモリ領域内のデータ構造は自由に並べることができるため、ディスクを使用する場合よりも容量を効率的かつ有効に使用することができる。
ブロック指向ディスク記憶装置およびフラッシュメモリに関連する別の利点は、小さなデータを変更して再び書き込む際に、それに先立って大きなデータブロックをまず読み出す必要がなく、そうする代わりに、書き込み動作により、単純に、変更する必要のあるバイトのみを変更することができることである。
非ディスク永続メモリのそれ自体の速度(raw speed)も魅力的である。
アクセス待ち時間は、ディスクドライブのアクセス待ち時間よりも1桁良好である。
ディスクドライブと比較した非ディスク永続メモリの相対的な使用しやすさも、まずすべてのポインタを書き込み時に相対バイトアドレスに変換し、次いで読み出し時に相対バイトアドレスを元のポインタに再変換する必要なく、ポインタが豊富なデータ構造を非ディスク永続メモリに記憶することが可能であるということにより、相当なものである。
いわゆるマーシャリング−マーシャリング解除オーバーヘッドは、複雑なデータ構造の場合にかなり大きくなり得る。
上記要因はすべて、アプリケーションプログラマが、すでに永続的にしたデータ構造のアクセスおよび動作を加速化できるようにするだけでなく、ディスクドライブおよびフラッシュメモリ等のより低速の記憶装置において、永続性を持たせることを考えていなかった特定のデータ構造に永続性を持たせることを考えられるようにする。
情報処理システムにおける永続性の程度が高いほど、情報の損失が少ないため、故障からの復元は容易で素早い。
復元がより素早いことは、システムの可用性が高いことを含意する。
したがって、説明する実施形態の純利益は、単にパフォーマンスだけではく、可用性の増大にもある。
システム可用性の欠如に関連するコストが高い、極めて重要なトランザクション処理システムでは、説明する実施形態の可用性の恩恵は、実際には、パフォーマンスの恩恵よりもさらに大きな価値を持つ可能性がある。
さらに、説明する実施形態を使用して、メモリ内動作等の新しい、または改良されたデータベース機能を可能にすることができる。
データベース以外の用途も、システム300の向上したパフォーマンスおよび可用性を利用して、新たな顧客機能を生むことができる。
ここに列挙するには数が多すぎるが、こういった用途の多くは当業者に明らかであろう。
このような1つの用途について次に説明する。
【0044】
(非ディスク永続メモリを使用してのトランザクションコミット時間の削減)
図1のトランザクション処理システム100に関して、非ディスク永続メモリがない場合、トランザクションモニタ104がデータベーストランザクションをコミットするには、それに先立って2つのことが行われなければならない。
第1に、ログライタ106は、データベースライタ102から受け取ったそのトランザクションに関連するいずれの監査情報も耐久性媒体にフラッシュアウト(すなわち、完全に書き込む)しなければならない。
その後、トランザクションモニタ104はまた、耐久性媒体にそのトランザクションのコミット記録を書き込まなければならない。
説明する実施形態によれば、非ディスク永続メモリを利用することにより、こういった情報項目を非ディスク永続メモリにのみ書き込んだ後で、トランザクションのコミットを可能にすることができる。
非ディスク永続メモリがディスク記憶装置よりも低い待ち時間を書き込み動作に示す程度まで、トランザクション待ち時間をそれに従って短縮する(またおそらく、TMFトランザクションスループットを向上させる)ことができる。
【0045】
トランザクション処理の一実施形態では、永続メモリが使用されて、トランザクションコミットが加速化される。
具体的には、図2に関連して、プライマリADP218は、DP2 202から状態変更メッセージを受け取るとすぐに、確認メッセージをDP2に送る前に、これら状態変更を永続メモリに同期して記録する。
TMP204からの2相フラッシュメッセージは、ADP206が「常にフラッシュ」されるため、削減するか、あるいは完全に省くことが可能である。
こうして、いくつかのプロセス間通信ステップおよびディスク動作が、トランザクションコミットのクリティカルパスからなくなると、TMP204は、ADP206が、ディスクを使用する場合よりも非ディスク永続メモリを使用する場合にトランザクションをはるかに高速にコミットすることができる。
本発明者らによって行われた1つの実験では、トランザクション応答時間は、永続メモリを使用した場合には、永続メモリを使用しない場合よりも3.5倍高速であることが分かった。
【0046】
一例として、一実施形態によるトランザクション処理システムの全体を600で示す図6を考える。
システム600は、データベースライタ602、トランザクションモニタ604、およびログライタ606を備える。
【0047】
説明する実施形態によれば、ログライタ606は、プライマリ監査ディスクプロセス608およびバックアップディスクプロセス610を含む。
一対の非ディスク永続メモリユニットが設けられ、これにはプライマリ非ディスク永続メモリユニット612(「CPMU」とも呼ぶ)およびミラー非ディスク永続メモリユニット614(「CPMU」とも呼ぶ)が含まれる。
プライマリ監査ログディスク616およびミラー監査ディスクログ618は、以下で明らかになる目的で設けられる。
【0048】
図示し説明する実施形態では、データはプライマリ非ディスク永続メモリユニット612およびミラー非ディスク永続メモリユニット614の両方に書き込まれる。
実施形態によっては、データはプライマリおよびミラーユニットに同時に書き込むことができる。
別法として、実施形態によっては、データをプライマリユニットおよびミラーユニットに同時に書き込む必要がない。
システムが完全に機能している場合、実施形態によっては、情報はプライマリ非ディスク永続メモリユニット612またはミラー非ディスク永続メモリユニット614から読み出される。
万が一、非ディスク永続メモリユニット(612、614)の一方のみが故障した場合、データは生き残った非ディスク永続メモリユニットから読み出されることになる。
故障したプライマリ非ディスク永続メモリユニットが正常に機能する準備ができると、内容を生き残った非ディスク永続メモリユニットから復元することができる。
【0049】
図示し説明する実施形態では、監査トレイルごとに1つの領域が、各非ディスク永続メモリユニット612、614内で割り振られ、監査ディスクプロセス対608、610が、各領域内のライトアサイドバッファ(「WAB」として示す)を保持する。
任意の適したライトアサイドバッファ構成を使用することができるが、本例では、ライトアサイドバッファは、当業者に理解される循環バッファとして構成される。
プライマリ監査ディスクプロセス608は、データベースライタ602から変更のセットを受け取ると、非ディスク永続メモリユニット612、614を使用して、これら変更を非常に素早くコミットする。
具体的には、図示の例では、ADP608は、変更のセットを受け取ると、その情報をCPMU612のWABに、そのWABの末尾アドレスに追加し、次いで、WABの末尾アドレスを、一番新しく書き込まれた情報の末尾の先を指すように進める。
次いで、CPMU614のWABに関して動作が繰り返される。
当業者は、CPMU612、614への書き込み動作間の同時性の程度を変更することが可能である。
【0050】
説明する実施形態によれば、要求された書き込み動作の完了により、末尾ポインタがWABの先頭アドレスの先を指す場合、非ディスク永続メモリ領域への書き込み動作は保留され、WABは満杯であるとマークされる。
WABの先頭アドレスおよび末尾アドレスを進めるアルゴリズムは、当業者により理解されるように、WABの先頭アドレスおよび末尾アドレスが両方とも、WABの循環バッファを含む同じ非ディスク永続メモリ領域内に記憶され更新されることを除き、循環キューデータ構造を実施する典型的な手法に類似する。
【0051】
費用効率的な非ディスク永続メモリを使用する場合、ログボリュームの全体がディスクではなくより高速の永続メモリ装置を使用して実現されるため、より低速なディスクI/Oをトランザクションコミットメントプロセスから完全になくすことができる。
しかし、現在、および近い将来では、ディスクの容量が引き続き非ディスク永続メモリ容量よりもはるかに大きく、ディスク記憶装置の1バイトあたりのコストは引き続き、非ディスク永続メモリの1バイトあたりのコストよりもかなり低いと思われる。
その場合、相対的により小さな容量の非ディスク永続メモリユニットを使用して、相対的により大きな容量のディスクドライブのWABが実施される。
このような構成では、また同様の設計では、監査情報の同期書き込みは、遅延して非同期にディスクに書き込まれる。
非ディスク永続メモリにどの情報を保持し、どの情報をディスクにフラッシュするかを選択する様々な技法が、メモリ階層設計分野の当業者にとって明らかであろう。
たとえば、トランザクション復元のファジー制御ポイントシステムによれば、システムがクラッシュしたときに、インフライトトランザクションをアンドゥしてからリドゥするという通常の復元プロセスをすべて永続メモリから適用することができるように、ログ情報に値する2つの「制御ポイント」を永続メモリに保持することができる。
【0052】
さらに、今述べた、このような費用制約付き非ディスク永続メモリ技術を使用する場合、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に書き込まれた後にコミットすることができる。
【0053】
監査ディスク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オーバーヘッドを大幅に低減することができる。
【0054】
同量の設計変更を用いて、ディスク書き込み動作を待つことによってパフォーマンスが悪影響を受ける他のいずれのアプリケーションにも非ディスク永続メモリを使用するライトアサイドバッファを作成することができる。
【0055】
設計に対する他の変形が当業者に明らかであろう。
たとえば、プライマリ非ディスクおよびミラー非ディスク永続メモリユニットに対して交互に順次書き込むのではなく、アプリケーションは同時書き込みを選ぶことも可能である。
【0056】
(例示的な方法)
図7は、一実施形態による方法におけるステップを示す。
図示し説明する実施形態では、方法は、任意の適したハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせにおいて実施することができる。
さらに、方法は、任意の適宜構成された非ディスク永続メモリ構造を使用して実施することができる。
非ディスク永続メモリ構造の具体的で非限定的な例を、本明細書全体を通して図示し説明する。
【0057】
ステップ700が、トランザクションによって誘発された状態変更に関連するデータを受け取る。
このようなデータは、トランザクションに起因するデータベース状態変更を記述することができる。
図示し説明する実施形態では、このデータは上述したもの等のデータベースライタ構成要素から受け取られる。
ステップ702が、データを非ディスク永続メモリに書き込む。
記したように、任意の適した非ディスク永続メモリ構造を利用することが可能である。
たとえば、図6の例では、プライマリ非ディスク永続メモリユニットおよびミラー非ディスク永続メモリユニットが利用される。
ステップ704が、非ディスク永続メモリユニットしきい値に達したか否かを確認する。
達していない場合、方法はステップ700に戻る。
一方、非ディスク永続メモリユニットしきい値に達した場合、ステップ706が、非ディスク永続メモリ中のデータを、図6における監査ログディスク616等の監査ログディスクに書き込む。
図6の例では、このようにして監査ログを書き込むことは、遅延して行われるものとして言及している。
【0058】
(非ディスク永続メモリのログライタチェックポインティングへの使用)
これより、一実施形態によるトランザクション処理システムの全体を800で示す図8を考える。
システム800は、データベースライタ802、トランザクションモニタ804、およびログライタ806を備える。
少なくとも1つの実施形態によれば、システム800は、すぐ上で述べたようなトランザクションコミットプロセスにおいて利用することができる。
さらに、システム800は、以下述べるように、ログライタチェックポインティングに利用することができる。
この例では、システム800の構成要素は図6の構成要素と同じであるか、または同様である。
したがって、簡潔にするために、これら構成要素についてはここで再び説明しない。
【0059】
図8のシステムでは、データベースライタ802は、監査記録または状態変更をログライタ806に送る。
ログライタ806は、監査記録を受け取って永続メモリ812、814に書き込み、監査データをメモリにバッファリングする。
ここで、コミット時に、トランザクションモニタ804は、トランザクションをコミットすべきであることをログライタ806に示す。
したがって、ログライタ806はコミット記録を受け取って永続メモリ812、814に書き込み、メモリにバッファリングする。
システム800を使用してトランザクションをコミットするプロセスにおける最終ステップは、ログライタ806が監査記録およびコミット記録を監査ログディスク816、818に「遅延して」書き込むことである。
この例では、ログライタ806による書き込み動作は、コミットプロセスと非同期に行われるため「遅延」と言及される。
この実施形態では、ADPバックアッププロセス810は、ADPプライマリプロセスが故障した場合に、永続メモリを読み出す必要があるだけである(ADPバックアッププロセスから永続メモリ812、814への点線によって線図で示される)。
【0060】
この特定の例では、ライトアサイドバッファとして採用された同じ永続メモリユニットが、ログライタチェックポインティングにも採用される。
したがって、永続メモリ内のまったく同じ循環バッファを両方の目的で使用することができる。
さらに、ADPバックアッププロセスが、ADPプライマリプロセスが故障するまで、永続メモリチェックポイント情報を読み出す必要がないという点で利点が得られる。
【0061】
当業者に理解されるように、この手法は処理オーバーヘッドを低減するとともに、データコピーを削減する。
具体的には、従来では、ADPバックアッププロセスにチェックポイントするには、状態変更とともにメッセージをADPバックアッププロセスに送る必要があり、その後、このような変更が監査ディスクログ816、818に書き込まれた。
上記手法の場合、ADPバックアッププロセスはチェックポインティングループから取り出され、それによって処理オーバーヘッドが低減する。
【0062】
(非ディスク永続メモリのすべてのチェックポインティングへの使用)
一実施形態によれば、非ディスク永続メモリは、上に述べたようにトランザクションのコミットに使用することができるとともに、データベースライタチェックポインティングおよびログライタチェックポインティングの両方にも使用することができる。
この手法では、トランザクションコミットプロセスは、データフローでの2つのステップ、すなわち、DP2バックアッププロセスおよびADPバックアッププロセスにそれぞれチェックポイントする各ステップ、をなくすことによって簡素化される。
【0063】
一例として、一実施形態によるトランザクション処理システムの全体を900で示す図9を考える。
システム900は、データベースライタ902、トランザクションモニタ904、およびログライタ906を備える。
この例では、システム900の構成要素は図6の構成要素と同じであるか、または同様である。
したがって、簡潔にするために、これら構成要素についてはここで再び説明しない。
【0064】
この実施形態では、データベースライタが監査情報または状態変更をログライタ906に送るのではなく、監査情報または状態変更は永続メモリ912、914に書き込まれる。
こうすることにより、監査情報をDP2バックアッププロセスにチェックポイントすることが事実上なくなる。
したがって、DP2バックアッププロセス(特に図示せず)は、DP2プライマリプロセスが故障した場合に、永続メモリからこの情報を読み出す必要があるだけである。
【0065】
引き続き、監査情報が永続メモリ912、914に書き込まれると、ログライタ906は、情報をディスクにコミットすることに備えて、監査情報を読み出してメモリにバッファリングすることができる。
このプロセス段階が完了すると、トランザクションモニタ904は、情報をディスクにコミットさせるコミットプロセスの次の段階を開始することができる。
このために、トランザクションモニタは、コミット記録を永続メモリ912、914に書き込み、ログライタ906はコミット記録を永続メモリ912、914から読み出してメモリにバッファリングし、ディスクに書き込む。
有利なことに、データベースライタ(DP2)およびログライタ(ADP)のそれぞれのバックアッププロセスは、それぞれのプライマリプロセスが故障した場合、永続メモリ912、914を読み出す必要があるだけである。
【0066】
この実施形態によれば、ログライタ906はここで、監査情報およびコミット記録を非同期でディスクに遅延して書き込むことができる。
このプロセスは事実上、ログライタをコミットプロセスから切り離す。
【0067】
有利なことに、図6に関連して上述したように永続メモリをチェックポインティングプロセスならびにトランザクションコミットメントプロセスに使用することにより、トランザクションに関連するデータは、従来よりもはるかに素早く永続的にすることができる。
したがって、更新は、記録が永続メモリに書き込まれるときに耐久性を持ち、コミットプロセスは他のいずれのステップの完了も待つ必要がないため、トランザクションコミットプロセスははるかに高速になる。
【0068】
(例示的なコンピューターシステム)
一実施形態では、上記システムは、図10に示すもの等のコンピュータシステム1000において実施することができる。
コンピュータシステム1000、またはコンピュータシステム1000を成す構成要素の様々な組み合わせを利用して、プロセッサノードならびに様々な非ディスク永続メモリユニットを含む上記システムを実施することができる。
【0069】
図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は、当業者に理解されるように、上記実施形態のいずれを備えてもよく、また上記振る舞いを示す他の非ディスク永続メモリ構造を備えてもよい。
【0070】
(結論)
上記の各種実施形態は、非ディスク永続メモリをトランザクション処理システムと併せて利用する。
非ディスク永続メモリを使用してトランザクションをコミットすることにより、トランザクションのコミットに関連する時間を削減することができる。
したがって、トランザクション処理システム内の資源に対する需要を低減することができ、これによってトランザクション処理システムのスループットを向上させることができる。
【0071】
本発明について構造的特徴および/または方法ステップに固有の言葉で説明したが、添付の特許請求の範囲において規定される本発明は、説明した特定の特徴またはステップに必ずしも限定されるものではないことを理解されたい。
より正確に言えば、特定の特徴およびステップは、特許請求する本発明を実施する好ましい形態として開示されたものである。
【図面の簡単な説明】
【0072】
【図1】構成要素を1つまたは複数の実施形態と併せて利用することのできる例示的なトランザクション処理システムを示す。
【図2】図1のトランザクション処理システムの一実施態様を示す。
【図3】非ディスク永続メモリユニットの例示的な一実施形態を示す。
【図4】非ディスク永続メモリユニットの例示的な一実施形態を示す。
【図5】非ディスク永続メモリユニットの別の例示的な実施形態を示す。
【図6】1つまたは複数の実施形態による、非ディスク永続メモリユニットを利用する例示的なトランザクション処理システムを示す。
【図7】一実施形態による方法におけるステップを説明する流れ図である。
【図8】1つまたは複数の実施形態による、非ディスク永続メモリユニットを利用する例示的なトランザクション処理システムを示す。
【図9】1つまたは複数の実施形態による、非ディスク永続メモリユニットを利用する例示的なトランザクション処理システムを示す。
【図10】本明細書において説明する実施形態のうちの1つまたは複数の実施形態に利用することのできる例示的なコンピュータシステムを示す。
【符号の説明】
【0073】
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・・・非ディスク永続メモリユニット,

【特許請求の範囲】
【請求項1】
トランザクション処理システム(800)であって、
前記トランザクション処理システム内の1つまたは複数のトランザクションに従ってデータを処理するように構成されたデータベースライタ(802)と、
前記トランザクション処理システム内のトランザクションを監視するトランザクションモニタ(804)と、
前記トランザクション処理システム内のトランザクションに関連する監査トレイルデータを保持するログライタ(802)と、
1つまたは複数の非ディスク永続メモリユニット(812、814)と
を備え、
前記1つまたは複数の非ディスク永続メモリユニット(812、814)をチェックポインティングに使用するように構成された
トランザクション処理システム。
【請求項2】
前記1つまたは複数の非ディスク永続メモリユニットは、
プライマリ非ディスク永続メモリユニット(812)およびミラー非ディスク永続メモリユニット(814)
を含む
請求項1記載のトランザクション処理システム。
【請求項3】
前記ログライタ(806)は、前記1つまたは複数の非ディスク永続メモリユニット(812,814)をチェックポインティングに使用するように構成される
請求項1記載のトランザクション処理システム。
【請求項4】
前記ログライタ(906)および前記データベースライタ(902)は、前記1つまたは複数の非ディスク永続メモリユニットをチェックポインティングに使用するように構成される
請求項1記載のトランザクション処理システム。
【請求項5】
前記1つまたは複数の非ディスク永続メモリユニット(812、814)は、
循環バッファとして構成されたライトアサイドバッファ
を含み、
前記ログライタ(906)および前記データベースライタ(902)は、前記循環バッファをチェックポインティングに使用するように構成される
請求項1記載のトランザクション処理システム。
【請求項6】
トランザクションによって誘発された状態変更に関連するデータを受け取ること(700)と、
前記受け取ったデータを非ディスク永続メモリに書き込むことによってチェックポイントを行うこと(702)と
を含むコンピュータにより実施される方法。
【請求項7】
前記チェックポイントを行うことは、ログライタによって行われる
請求項6記載のコンピュータにより実施される方法。
【請求項8】
前記チェックポイントを行うことは、データベースライタによって行われる
請求項6記載のコンピュータにより実施される方法。
【請求項9】
前記チェックポイントを行うことは、少なくともログライタおよびデータベースライタによって行われる
請求項6記載のコンピュータにより実施される方法。
【請求項10】
前記チェックポイントを行うことは、
前記受け取ったデータを第1および第2の非ディスク永続メモリユニットに書き込むこと
を含み、
前記第1の非ディスク永続メモリユニットは、
プライマリ非ディスク永続メモリユニット
を含み、
前記第2の非ディスク永続メモリユニットは、
ミラー非ディスク永続メモリユニット
を含む
請求項6記載のコンピュータにより実施される方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−12142(P2006−12142A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2005−166402(P2005−166402)
【出願日】平成17年6月7日(2005.6.7)
【出願人】(503003854)ヒューレット−パッカード デベロップメント カンパニー エル.ピー. (1,145)
【Fターム(参考)】