(57)【要約】【課題】  トランザクションがコミットするのに必要な時間を削減するシステムおよび方法を提供する。【解決手段】  本発明にかかるシステムは、トランザクション処理システムと共に非ディスク永続メモリを利用する。非ディスク永続メモリを使用してトランザクションをコミットすることにより、トランザクションをコミットすることに関連した時間を削減することができ、したがって、トランザクション処理システム内部の資源の需要を小さくでき、かつ、トランザクション処理のスループットを増加させることができる。【選択図】図６
2005259136.tif 000002
【特許請求の範囲】
【請求項１】
トランザクション処理システム（６００）であって、
前記トランザクション処理システム内の１つ以上のトランザクションに従って、データを処理するように構成されたデータベースライタ（６０２）と、
前記トランザクション処理システム内のトランザクションを監視するトランザクションモニタ（６０４）と、
前記トランザクション処理システム内のトランザクションに関連した監査証跡データを保持するログライタ（６０６）と、
前記ログライタに関連付けられ、前記ログライタから前記監査証跡データを受信するように構成された１つ以上の非ディスク永続メモリユニット（６１２，６１４）と
を備えるトランザクション処理システム。
【請求項２】
前記ログライタ（６０６）は、
主監査ディスクプロセス（６０８）およびバックアップ監査ディスクプロセス（６１０）
を備える
請求項１に記載のトランザクション処理システム。
【請求項３】
前記１つ以上の非ディスク永続メモリユニット（６１２、６１４）は、
主非ディスク永続メモリユニットおよびミラー非ディスク永続メモリユニット
を備える
請求項１または２に記載のトランザクション処理システム。
【請求項４】
前記１つ以上の非ディスク永続メモリユニット（６１２、６１４）は、
主非ディスク永続メモリユニットおよびミラー非ディスク永続メモリユニット
を備え、
前記ログライタ（６０６）は、前記監査証跡データを前記主非ディスク永続メモリユニットに書き込み、前記監査証跡データを前記ミラー非ディスク永続メモリユニットに書き込む
請求項１または２に記載のトランザクション処理システム。
【請求項５】
前記１つ以上の非ディスク永続メモリユニット（６１２、６１４）は、
前記監査証跡データを受信するライトアサイドバッファ
を備え、
前記ライトアサイドバッファは、循環バッファとして構成される
請求項１、２または４に記載のトランザクション処理システム。
【請求項６】
トランザクションが誘発した状態変更に関連したデータを受信する（７００）ことと、
前記受信したデータを、関連したトランザクションをコミットするために十分な非ディスク永続メモリに書き込む（７０２）ことと
を含む方法。
【請求項７】
前記書き込む（７０２）動作は、
前記受信したデータを第１の非ディスク永続メモリユニットおよび第２の非ディスク永続メモリユニットに書き込むこと
を含み、
前記第１の非ディスク永続メモリユニットは、
主非ディスク永続メモリユニット
を備え、
前記第２の非ディスク永続メモリユニットは、
ミラー非ディスク永続メモリユニット
を備える
請求項６に記載の方法。
【請求項８】
前記書き込む（７０２）動作は、
前記受信したデータを第１の非ディスク永続メモリユニットおよび第２の非ディスク永続メモリユニットに書き込むこと
を含み、
前記第１の非ディスク永続メモリユニットは、
主非ディスク永続メモリユニット
を備え、
前記第２の非ディスク永続メモリユニットは、
ミラー非ディスク永続メモリユニット
を備え、
前記書き込む動作は、
前記受信したデータを前記主非ディスク永続メモリユニットに書き込むことと、
前記受信したデータを前記ミラー非ディスク永続メモリユニットに書き込むことと
を含む
請求項６に記載の方法。
【請求項９】
前記書き込む（７０２）動作は、
前記受信したデータを第１の非ディスク永続メモリユニットおよび第２の非ディスク永続メモリユニットに書き込むこと
を含み、
前記第１の非ディスク永続メモリユニットは、
主非ディスク永続メモリユニット
を備え、
前記第２の非ディスク永続メモリユニットは、
ミラー非ディスク永続メモリユニット
を備え、
前記書き込む動作は、
前記受信したデータを、前記主非ディスク永続メモリユニットおよび前記ミラー非ディスク永続メモリユニットに並行して書き込むこと
を含む
請求項６に記載の方法。
【請求項１０】
前記受信したデータを、前記非ディスク永続メモリに書き込み、前記トランザクションが誘発した状態変更のデータを、１つ以上の監査ログディスクに書き込むこと
をさらに含む請求項６〜９のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非ディスク永続メモリを利用したトランザクション処理システムおよび方法に関する。
【背景技術】
【０００２】
トランザクション処理システムは、複数のトランザクションプログラムの並行実行をサポートすると同時に、原始性（Atomicity）、一貫性（Consistency）、隔離性（Isolation）、および耐久性（Durability）から成るいわゆるＡＣＩＤ特性の維持を確保するコンピュータハードウェアおよびソフトウェアのシステムである。
トランザクションプログラムは、オペレーションを適用しなければならない順序およびトランザクションを正しく実行するために実施しなければならないあらゆる並行制御を含めて、アプリケーションの状態に対して適用されるオペレーションを指定したものである。
最も一般的な並行制御オペレーションはロッキングである。
このロッキングによって、トランザクションプログラムに対応するプロセスは、自身が読み出すかまたは書き込むデータに対する共有ロックまたは排他ロックのいずれかを取得する。
トランザクションは、通常はデータベースにおいて表現される物理的で抽象的なアプリケーションの状態に対するオペレーションの集まりを指す。
トランザクションは、トランザクションプログラムを実行することを表す。
オペレーションは、共有状態の読み出しおよび書き込みを含む。
【０００３】
ＡＣＩＤ特性について、原始性は、トランザクションが完全に実行されるか、または、全く実行されないという点で、全か無かの振る舞いを示すトランザクションを指す。
完了するトランザクションはコミットしたと言われる。
実行中に放棄されたトランザクションはアボートされたと言われる。
実行を開始したがコミットもアボートもしなかったトランザクションはインフライト（in-flight）であると言われる。
【０００４】
一貫性は、指定されているあらゆる完全性の制約に関してアプリケーションの状態が一貫性を保ったままトランザクションの完了が成功することを指す。
【０００５】
隔離性は、直列化可能性としても知られており、トランザクションのストリームのどの適正な並行実行も、そのストリームを構成するトランザクションの或る全順序に対応することを保証するものである。
その意味で、実行された或るトランザクションについて、そのストリームの他のあらゆるトランザクションが当該或るトランザクションの直前に実行されても直後に実行されても、他のあらゆるトランザクションの影響は同じである。
強い直列化可能性は、並行トランザクションの実行が制約される程度を指し、トランザクション処理システムの隔離性の異なるレベルを生成する。
本文書の文脈では、最も強い形式の隔離性を示すトランザクション処理システムに関する問題が最も大きい。
このシステムでは、トランザクションが行う更新が決して無駄になることはなく、トランザクション内で繰り返される読み出しオペレーションは同じ結果を生成する。
【０００６】
耐久性は、トランザクションが一旦コミットすると、トランザクション処理システムに影響を与える障害に対しても、アプリケーションの状態に対するトランザクションの変更が存続するような特性を指す。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
トランザクション処理システムに関連する１つの課題は、トランザクションがコミットするのに必要な時間を削減することに関するものである。
したがって、この発明は、トランザクションがコミットするのに必要な時間を削減するシステムおよび方法を提供することに関連した問題から生じたものである。
【課題を解決するための手段】
【０００８】
［概要］
本明細書で説明するさまざまな実施の形態は、トランザクション処理システムと共に非ディスク永続メモリを利用する。
非ディスク永続メモリを使用してトランザクションをコミットすることにより、トランザクションをコミットすることに関連した時間を削減することができ、したがって、トランザクション処理システム内部の資源の需要を小さくでき、かつ、トランザクション処理のスループットを増加させることができる。
【発明を実施するための最良の形態】
【０００９】
［例示の一般的なトランザクション処理システム］
図１は、本明細書で説明する本発明の原理を実施するのにそのコンポーネントを利用することができる例示のトランザクション処理システム１００を示している。
この説明する実施の形態では、トランザクション処理システム１００は、データベースライタ１０２、トランザクションモニタ１０４、およびログライタ１０６を備える。
【００１０】
データベースライタ１０２は、トランザクションプログラムが指定するオペレーションを実行すると、データボリューム（すなわち、ディスクまたはディスクの集まり）に記憶されたデータを変化させるように構成される。
データベースライタ１０２が耐久性以外のＡＣＩＤ特性をどのように維持するかは、本明細書の説明には特に関連しない。
【００１１】
耐久性について、データベースライタは、自身がデータベースに対して行った変更が、耐久性のある媒体に確実に記録されるようにする。
オンライントランザクション処理では、これらの変更によって影響を受けたデータは、データボリュームにおいてランダムに分散される傾向がある。
ディスクドライブへのランダムアクセスは非常に非効率的であるので、これらの変更は、ディスクにすぐには書き込まれない。
その代わり、データベースライタ１０２は、自身の変更を後述するログライタ１０６に送信し、ログライタ１０６が、トランザクションのコミットに間に合うように、それら変更を耐久性のあるものにする。
【００１２】
トランザクションモニタ１０４は、トランザクションがシステムに出入りする際にトランザクションを追跡する。
トランザクションモニタは、データベースライタ１０２がトランザクションに代わってデータベースを変更することを追跡し、データベースライタ１０２がログライタ１０６に送信したそのトランザクションに関係したあらゆるデータボリュームの変更が、トランザクションのコミット前に永久媒体に確実にフラッシュされるようにする。
また、トランザクションモニタ１０４は、トランザクションログにトランザクションの状態（例えば、コミットまたはアボート）も記録する。
【００１３】
ログライタ１０６はデータベース監査証跡を保持する。
データベース監査証跡は、各トランザクションがデータベースに行った変更を明示的に記録し、トランザクションがコミットした連続番号を暗黙的に記録する。
再び耐久性特性に注目して、トランザクションがコミットできる前に、そのトランザクションが行った変更を耐久性のある媒体に記憶しなければならない。
ログライタ１０６はこの制約を強制する。
ログライタ１０６は、データベースライタ１０２から、状態の変更を記載した監査記録を受信し、その記録動作を、後述するトランザクションコミット基盤の残りの部分と調整する。
【００１４】
当業者に理解されるように、上記エンティティの１つまたは２つ以上のものは、複数のプロセスまたはスレッドを使用して実現することができる。
【００１５】
図２は、図１のトランザクション処理システムの一実施の形態を包括して２００で示し、データベースライタ２０２、トランザクションモニタ２０４、およびログライタ２０６を備える。
【００１６】
この例では、上述したコンポーネントのそれぞれが、１対のプロセスを使用して実施される。
したがって、各プロセス対は、（「ｐｒｉ」のラベルが付けられた）主プロセスおよび（「ｂａｋ」のラベルが付けられた）バックアッププロセスを含む。
この例では、各主プロセスは、トランザクション処理システムの他のいずれかのコンポーネントと通信する前に、自身の状態のバックアッププロセスに関連する部分をチェックポイントする。
主プロセスが故障している場合には、バックアッププロセスが迅速に引き継ぐことができる。
この引き継ぎ間隔はかなり短く（数ミリ秒から数秒続く）、この期間中に、インフライトのトランザクションがアボートされ、場合によっては再開される。
図２のトランザクション処理アーキテクチャのエレメントを実現するプロセスおよびライブラリは、複数のＣＰＵにわたって分散させることができる。
【００１７】
この例では、データベースライタ２０２には「ＤＰ２」（「ディスクプロセス（Disk Process）２」の略）のラベルが付けられ、ログライタ２０６には「ＡＤＰ」（「監査ディスクプロセス（Audit Disk Process）」の略）のラベルが付けられている。
トランザクションモニタ２０４は、ＴＭＦ（「トランザクション監視機構（Transaction Monitoring Facility）」の略）と呼ばれる、分散したプロセスおよびシステムのライブラリの集まりを使用して実施される。
トランザクションモニタ２０４には「ＴＭＰ」（「トランザクションモニタプロセス（Transaction Monitor Process）」の略）のラベルが付けられている。
トランザクションモニタ２０４は、トランザクションの開始およびコミットを調整する。
ＴＭＦは、クラスタの各ＣＰＵにおけるＴＭＦｌｉｂ（ＴＭＦライブラリ）と呼ばれるオペレーティングシステム機構を使用する。
このライブラリによって、ＤＰ２プロセスは、任意の所与のトランザクションに対して自身の作業の開始および終了を行う際にＴＭＦに登録を行うことが可能になる。
「トランザクションのコミット」というタイトルの節で後述するように、ＴＭＦｌｉｂインスタンスは、相互におよびＴＭＰプロセス対と通信して、トランザクションのコミットを調整する。
【００１８】
［トランザクションのコミット］
図２を参照して、以下では、トランザクション処理システムに単一のログボリューム（または監査証跡ディスクボリューム）２０８が存在する場合のトランザクションのコミットに必要な例示のステップを説明する。
通常、クライアント２１０は、トランザクションの開始を示すＢｅｇｉｎ＿Ｔｒａｎｓａｃｔｉｏｎ（トランザクション開始）または類似のオペレーションに遭遇する。
クライアントプロセスを実行しているＣＰＵ上のＴＭＦｌｉｂは、トランザクションモニタプロセス、すなわちＴＭＰにＢｅｇｉｎ＿Ｔｒａｎｓａｃｔｉｏｎイベントを通知する。
ＴＭＰは、その新しいトランザクションにトランザクションＩＤ（ＴＩＤ）を割り当てる。
ＴＩＤは、次に、データベースライタ２０２に伝えられ、特に、トランザクションに代わって作業を行うディスクプロセスＤＰ２のすべてに伝えられる。
図２に示す簡単なケースでは、単一のデータベースライタ（１対のＤＰ２プロセスを備える）のみが必要とされる。
より一般的なケースでは、複数のＤＰ２プロセス対がトランザクションの処理に必要とされる可能性がある。
【００１９】
データベースライタ２０２がデータベースの状態を変更すると、ＤＰ２プロセスは、状態変更の記録をログライタ２０６に伝え、特にＡＤＰプロセスに伝える。
ＡＤＰプロセスは、状態変更をメモリにバッファリングする。
このバッファリングは、バッファリングされた監査データ量が、当該監査データ量についてのしきい値を超えるまでか（その結果、いわゆる儀礼書き込み（courtesy write）になる）、または、トランザクションモニタプロセス２０４からのメッセージによってコミットを強制された場合にはそれよりも先に（その結果、いわゆる強制書き込みになる）行われる。
【００２０】
その後、クライアントは、さらにＥｎｄ＿Ｔｒａｎｓａｃｔｉｏｎ（トランザクション終了）または類似のオペレーションに遭遇する。
このＥｎｄ＿Ｔｒａｎｓａｃｔｉｏｎは、特定のトランザクションの終了を示す。
トランザクションモニタプロセス２０４がトランザクションをコミットできる前に、上述したように、そのトランザクションに代わってログライタ２０６に送信されたデータベースの状態変更を確実に耐久性のあるものにしておく必要がある。
これを行うために、ＴＭＰは、その特定のトランザクションのＦｌｕｓｈ（フラッシュ）メッセージをログライタまたはＡＤＰに送信し、次いで、必要な状態変更およびコミット記録が耐久性のないシステムバッファからディスクドライブにフラッシュされたことを確認するメッセージをＡＤＰから待つ。
トランザクションモニタ２０４は、この確認を受信すると、トランザクションコミット記録をＡＤＰに送信し、コミット記録が耐久性のある媒体に書き込まれると、トランザクションがコミットしたことをクライアントに通知する。
【００２１】
上記から、当業者には理解されるように、状態変更およびコミット記録をディスクにフラッシュするのを待つことは、ＴＭＦトランザクションをコミットする際の遅延のかなりの部分を占めることは明らかである。
ディスクは機械的な媒体であり、ディスク待ち時間はプロセッサ速度およびメモリ速度ほど急速に改善されることはないので、ＴＭＦトランザクションのコミット時間は、数ミリ秒から何秒もの時間に及ぶことが多い。
【００２２】
いくつかのアプリケーションは高速の応答時間を許容できる一方、他の多くのものは許容できない。
ＴＭＦトランザクションの応答時間が高速の場合、平均的なトランザクションがシステムに長く留まり、したがって、トランザクション処理システム内部の資源の需要が大きくなることによって、トランザクション処理のスループットに対して２次的な逆の効果がある。
これは、有限個の資源の下ではトランザクション処理のスループットを間接的に制限する。
【００２３】
［一般の永続メモリ］
本明細書で説明する実施の形態によると、非ディスク永続メモリが、トランザクション処理システムと共に使用され、トランザクションのコミット時間を削減する。
【００２４】
永続メモリは、当業者に理解されるように、アーキテクチャの概念である。
説明する実施の形態によると、利用できる非ディスク永続メモリの多くの可能な実施態様がある。
したがって、非ディスク永続メモリの１つの特定の実施の形態に限定することは、この文書の意図するところではない。
【００２５】
読み手が非ディスク永続メモリに関連したアーキテクチャの原理を理解するのを助けるために、以下の説明では、非ディスク永続メモリシステムが本発明のトランザクション処理システムにおけるその使用を容易にするために有することができる特徴を説明する。
この説明全体を通じて、非ディスク永続メモリシステムの限定的でない２、３の例を提供する。
【００２６】
非ディスク永続メモリは、この文書で定義されるように、次の特性、すなわち耐久性、接続性、およびアクセスを示すべきである。
【００２７】
耐久性は、リフレッシュすることなく耐久性があり、かつ、システム電力の損失に対しテーブル存続できる非ディスク永続メモリを指す。
耐久性は、これに加えて、電力損失後またはソフト障害後に非ディスク永続メモリに記憶されたデータへのアクセスを確実に継続するようにするために、耐久性のある自己一貫性のあるメタデータを提供すべきである。
【００２８】
接続性について、以下を検討する。
非ディスク永続メモリは、市販のチップセットと共に利用可能なメモリコントローラに取り付けることができる。
専用メモリコントローラは、最終的には、固有の方法で非ディスク永続メモリの耐久性を活用するように設計することができるが、専用メモリコントローラが存在する必要はない。
おそらくフォールトトレランスの意味、パッケージの考慮、物理スロットの制限、または電気負荷の制限の理由から、ＣＰＵのメモリコントローラへの直接接続が望ましくない場合には、非ディスク永続メモリの第１レベルのＩ／Ｏの取り付けが許可される。
例えば、非ディスク永続メモリをＰＣＩおよび他の第１レベルＩ／Ｏ相互接続に取り付けることができる。
他の第１レベルＩ／Ｏ相互接続は、ＰＣＩエクスプレス（PCI Express）、ＩＰを介したＲＤＭＡ（RDMA over IP）、インフィニバンド（InfiniBand）、ファイバチャネルを介した仮想インタフェース（ＦＣ−ＶＩ（Virtual Interface over Fibre Channel））、サーバネット（ServerNet）等である。
このような相互接続は、メモリマッピングおよびメモリセマンティックアクセス（memory-semantic access）の双方をサポートする。
非ディスク永続メモリのこの実施の形態は、通信リンク接続型永続メモリユニット（ＣＰＭＵ（Communication-link Attached Persistent Memory Unit））と呼ばれる。
【００２９】
ストレージ接続性（例えば、ＳＣＳＩ）、または、実際には他のあらゆる第２レベルＩ／Ｏ接続性は、以下で特定する性能考慮の理由から永続メモリには望ましくない。
【００３０】
アクセスについて、以下を検討する。
非ディスク永続メモリは、特別に指定されたプロセス仮想アドレスにおいてではあるが、ＣＰＵのメモリ命令（ロードおよびストア）を使用して、通常の仮想メモリのようにユーザプログラムからアクセスすることができる。
メモリセマンティックオペレーションをサポートする一定のシステムエリアネットワーク（すなわち、ＳＡＮ）では、非ディスク永続メモリは、リモートＤＭＡ（ＲＤＭＡ）または類似のセマンティクスを使用してアクセスされるネットワーク資源として実施することができる。
例えば、図３は、ネットワーク接続型非ディスク永続メモリを使用するシステム３００を示している。
このシステム３００は、ＲＤＭＡ使用可能システムエリアネットワーク（ＳＡＮ）３０６を通じて１または２つ以上のプロセッサノード３０２がアクセスできる通信リンク接続型非ディスク永続メモリユニット（ＣＰＭＵ）３１０を備える。
ＣＰＭＵ３１０の非ディスク永続メモリにアクセスするために、プロセッサノード３０２で実行されているソフトウェアは、そのプロセッサノードのネットワークインタフェース（ＮＩ）３０４を通じて読み出しオペレーションまたは書き込みオペレーションを開始する。
このように、読み出しコマンドまたは書き込みコマンドは、ＲＤＭＡ使用可能ＳＡＮ３０６上を、ＣＰＭＵのネットワークインタフェース（ＮＩ）３０８に運ばれる。
したがって、処理後、適切なデータがＲＤＭＡ使用可能ＳＡＮ３０６を介して通信される。
【００３１】
ＲＤＭＡデータ移動オペレーションに加えて、ＣＰＭＵ３１０は、さまざまな管理コマンドに応答するように構成することができる。
プロセッサノード３０２が開始した書き込みオペレーションでは、例えば、データのＣＰＭＵへの記憶が成功すると、データは、耐久性を有し、停電またはプロセッサノード３０２の障害に対して存続する。
特に、電力が長時間切断されていたり、プロセッサノード３０２のオペレーティングシステムが再ブートされていたりしても、ＣＰＭＵが正しく機能し続けている限り、メモリの内容は維持される。
この例では、プロセッサノード３０２は、少なくとも１つの中央処理装置（ＣＰＵ）およびメモリから成るコンピュータシステムであり、このコンピュータシステムでは、ＣＰＵがオペレーティングシステムを実行するように構成される。
プロセッサノード３０２は、さらに、データベース等のアプリケーションソフトウェアを実行するようにも構成される。
プロセッサノード３０２は、ＳＡＮ３０６を使用して、ＣＰＭＵ３１０およびＩ／Ｏコントローラ（図示せず）などのデバイスだけでなく、他のプロセッサノード３０２とも通信する。
【００３２】
この例の一実施の形態では、ＲＤＭＡ使用可能ＳＡＮは、ターゲットプロセッサノード３０２のＣＰＵに通知することなく、バイトレベルのメモリオペレーションを実行できるネットワークである。
このバイトレベルのメモリオペレーションは、イニシエータプロセッサノード３０２とターゲットプロセッサノード３０２との間のコピーオペレーションや、イニシエータプロセッサノード３０２とデバイス３１０との間のコピーオペレーション等である。
この場合、ＳＡＮ３０６は、連続したネットワーク仮想アドレス空間を不連続な物理アドレス空間にマッピングすることを可能にするために、仮想アドレス物理アドレス化変換を実行するように構成される。
このタイプのアドレス変換によって、ＣＰＭＵ３１０の動的管理が可能になる。
ＲＤＭＡ機能を有する市販のＳＡＮ３０６には、サーバネット、ＩＰを介したＲＤＭＡ、インフィニバンド、および仮想インタフェースアーキテクチャに準拠したすべてのＳＡＮが含まれるが、これらに限定されるものではない。
【００３３】
プロセッサノード３０２は、一般に、ＮＩ３０４を通じてＳＡＮ３０６に取り付けられるが、多くの変形が可能である。
一方、より一般的には、読み出しオペレーションおよび書き込みオペレーションを通信する装置にプロセッサノードを接続することだけが必要である。
例えば、この例の別の実施態様では、プロセッサノード３０２は、マザーボード上のさまざまなＣＰＵであり、ＳＡＮを使用する代わりに、例えばＰＣＩバスといった入出力バスが使用される。
本教示は、必要に応じて、より大きな実施態様またはより小さな実施態様に適合するように拡大縮小できることに留意されたい。
【００３４】
ネットワークインタフェース（ＮＩ）３０８は、ＣＰＭＵ３１０と通信接続され、それによって、ＣＰＭＵ３１０内に含まれる非ディスク永続メモリへのアクセスが可能になる。
ＣＰＭＵ３１０の内部で使用されるタイプのメモリ技術を含めて、図３のさまざまなコンポーネントに対して多くの技術が利用可能である。
したがって、図３の実施の形態およびこの文書で説明するそれ以外のものは、非ディスク永続メモリを実現する特定の技術に限定されるものではない。
実際に、複数のメモリ技術が適しており、この複数のメモリ技術には、磁気ランダムアクセスメモリ（ＭＲＡＭ）、磁気抵抗ランダムアクセスメモリ（ＭＲＲＡＭ）、ポリマ強誘電体ランダムアクセスメモリ（ＰＦＲＡＭ）、オボニクス統合メモリ（ＯＵＭ（ovonics unified memory））、バッテリバックアップ動的アクセスメモリ（ＢＢＤＲＡＭ）、およびすべての種類のフラッシュメモリが含まれる。
【００３５】
ＳＡＮ３０６が使用される場合、メモリは、ＲＤＭＡアクセスのために十分高速であるべきである。
このように、ＲＤＭＡ読み出しオペレーションおよび書き込みオペレーションは、ＳＡＮ３０６を介して可能にされる。
別のタイプの通信装置が使用される場合も、使用されるメモリのアクセス速度は、その通信装置に適合するだけ十分高速であるべきである。
永続的な情報は、使用される非ディスク永続メモリがデータを保持できる程度まで設けられることに留意すべきである。
例えば、多くのアプリケーションでは、非ディスク永続メモリは、電力が損失する時間の量にかかわらず、データを記憶するのに必要とされる場合がある。
一方、別のアプリケーションでは、非ディスク永続メモリは、数分または数時間の間のみ必要とされる場合がある。
【００３６】
この手法と併せて、単一または複数の独立した間接アドレス指定メモリ領域を作成するために、メモリ管理機能が設けられる。
さらに、電力損失後またはプロセッサ障害後にメモリ回復を行うために、ＣＰＭＵメタデータが設けられる。
メタデータまたは情報は、例えば、ＣＰＭＵ内の保護されたメモリ領域の内容およびレイアウトを含む。
このように、ＣＰＭＵは、データおよびデータの使用方法を記憶する。
必要があれば、ＣＰＭＵは、さらに、電力障害またはシステム障害からの回復を可能にすることができる。
【００３７】
図４では、ＣＰＭＵ４００は、バス等のデータ通信リンクを介して相互接続された非ディスク不揮発性メモリ４０２およびネットワークインタフェース、すなわちＮＩ４０４を備える。
ここで、非ディスク不揮発性メモリ４０２は、例えば、ＭＲＡＭまたはフラッシュメモリとすることができる。
ＮＩ４０４は、それ自身のＲＤＭＡ要求を開始せず、その代わり、ネットワークから管理コマンドを受信し、要求された管理オペレーションを実行する。
具体的には、ＣＰＭＵ４００は、入力した各メモリアクセス要求のアドレスを変換し、次いで、ＮＩ４０４と不揮発性メモリ４０２との間のデータ通信リンクを介して、要求されたメモリオペレーションを内部で開始する。
【００３８】
図５では、ＣＰＭＵ５００の別の実施の形態が、バッテリ５１０を有する非ディスク揮発性メモリ５０２と不揮発性２次ストア５０８とを組み合わせたものを使用する。
この実施の形態では、電力障害になると、非ディスク揮発性メモリ５０２内のデータが、このようなデータを不揮発性２次ストア５０８に保存できるまで、バッテリ５１０の電力を使用して維持される。
不揮発性２次ストアは、例えば、磁気ディスクまたは低速フラッシュメモリとすることができる。
ＣＰＭＵ５００が適切に動作するために、揮発性メモリ５０２から不揮発性２次メモリストア５０８へのデータの転送は、外部からの介入もなく、バッテリ５１０からの電力以外のさらなる電力もなく行われるべきである。
したがって、必要なあらゆるタスクは、バッテリ５１０が放電する可能性がある前に完了すべきである。
図示するように、ＣＰＭＵ５００は、組み込まれたオペレーティングシステムを実行するオプションのＣＰＵ５０４を含む。
【００３９】
したがって、バックアップタスク（すなわち、非ディスク揮発性メモリ５０２から不揮発性２次メモリストア５０８へのデータ転送）は、ＣＰＵ５０４で実行されるソフトウェアによって行うことができる。
含まれるＮＩ５０６は、ＣＰＵ５０４で実行されるソフトウェアにより使用されて、ＲＤＭＡ要求を開始することもできるし、ＳＡＮ３０６上の他のエンティティにメッセージを送信することもできる。
ここでも再び、ＣＰＵ５０４は、ＮＩ５０６を通じてネットワークから管理コマンドを受信し、要求された管理オペレーションを実行する。
【００４０】
ＣＰＭＵ４００や５００等のＣＰＭＵのどの実施の形態も、永続メモリの割り当ておよび共有の目的で管理を受けなければならない。
この例では、ＣＰＭＵ管理は、永続メモリマネージャ（ＰＭＭ（persistent memory manager））によって実行される。
ＰＭＭは、ＣＰＭＵ内に配置することもできるし、先に説明したプロセッサノード３０２の１つ等のＣＰＭＵの外部に配置することもできる。
プロセッサノード３０２が、ＣＰＭＵ３１０の非ディスク永続メモリの割り当てもしくは割り当て解除を行う必要がある場合、または、ＣＰＭＵ３１０の非ディスク永続メモリの既存の領域の使用を開始もしくは停止する必要がある場合に、プロセッサノードは、まずＰＭＭと通信して、要求された管理タスクを実行すべきである。
ＣＰＭＵ３１０のメモリの内容は（ディスクドライブと同様に）耐久性を有するので、そのＣＰＭＵ内の非ディスク永続メモリ領域に関係したメタデータも、耐久を有しなければならず、それらの領域との一貫性を保って保持されなければならず、好ましくは、（ディスクドライブのファイルシステムメタデータと同様に）ＣＰＭＵ自体の内部に記憶されなければならないことに留意されたい。
したがって、ＰＭＭは、ＣＰＭＵ３１０のメタデータを、その非ディスク永続メモリの内容と常に一貫性のある状態に保つように、管理タスクを実行しなければならない。
このように、ＰＭＭ、ＣＰＭＵ３１０、およびプロセッサノード３０２の１つまたは２つ以上に影響を与える、起こり得る電力損失、システムシャットダウン、または他の障害の後であっても、記憶されたメタデータを使用して、ＣＰＭＵ３１０に記憶されたデータを有意義に取り出すことができる。
回復の必要があると、ＣＰＭＵ３１０を使用するシステム３００は、このように、電力障害またはオペレーティングシステムのクラッシュが発生したメモリ状態からそのオペレーションを回復して再開することができる。
【００４１】
処理ノード３０２のＬＯＡＤ（ロード）メモリ命令およびＳＴＯＲＥ（ストア）メモリ命令を使用して、ＳＡＮ３０６を介したＲＤＭＡデータ転送を直接または間接に開始できないシステム３００では、アプリケーションプログラミングインタフェース、すなわちＡＰＩを使用してＲＤＭＡを開始するために、ＣＰＭＵ３１０の内容の読み出しおよび書き込みは、処理ノード３０２で実行されるアプリケーションを必要とする。
【００４２】
明らかなように、非ディスク永続メモリが魅力的である理由の１つは、このメモリが、耐久性をもって記憶されたデータに対して、ディスクドライブよりもきめの細かい（アクセスサイズが意味のあるより小さな）読み出しオペレーションおよび書き込みオペレーションをサポートするからである。
そのきめの細かさは、アクセスサイズ（読み出しまたは書き込みが行われるバイト数）と、アクセスアラインメント（読み出しまたは書き込みが行われる最初のバイトの非ディスク永続メモリ領域内のオフセット）との双方に適用される。
非ディスク永続メモリ領域内のデータ構造体は、自由にアラインすることができ、それによって、ディスクを用いるよりも効率的で効果的な容量の使用が可能になる。
ブロック指向のディスクストレージおよびフラッシュメモリに対する別の利点は、データの小さな部分を変更してライトバックできる前に、まずデータの大きなブロックを読み出す必要がなく、その代わり、書き込みオペレーションは、変更が必要なバイトのみを単純に変更できるということである。
非ディスク永続メモリの生の速度も魅力的である。
アクセス待ち時間は、ディスクドライブのアクセス待ち時間よりも概ね良好である。
ディスクドライブと比較して、非ディスク永続メモリの相対的な使いやすさも重要である。
その理由は、書き込み時に、まず、すべてのポインタを相対的なバイトアドレスに変換し、次いで、読み出し時に相対的なバイトアドレスをポインタに再変換して戻す必要なく、ポインタリッチ（pointer-rich）データ構造体を非ディスク永続メモリに記憶できるからである。
これらのいわゆるマーシャル・アンマーシャルオーバーヘッドは、複雑なデータ構造体ではかなり大きくなる可能性がある。
上記ファクタのすべてによって、アプリケーションプログラマは、すでに永続化したデータ構造体のアクセスおよび操作を高速化することができるだけでなく、ディスクドライブやフラッシュメモリ等の低速のストレージデバイスを用いて永続化することを考慮していなかった一定のデータ構造体の永続化を考慮することもできる。
情報処理システムにおける永続性の程度が大きくなるほど、情報の損失が小さくなるので、障害からの回復がより簡単で高速になる。
回復が高速化することは、システムの可用性が大きくなることを意味する。
したがって、説明した実施の形態の正味の利点は、性能にあるだけでなく、可用性がより大きくなることにもある。
ミッションクリティカルなトランザクション処理システムでは、システムの可用性がないことに関連してコストが高くなる場合に、説明した実施の形態の可用性の利点は、実際には、性能の利点よりもさらに大きな価値を有する可能性がある。
さらに、新しいまたは改良されたデータベースの特徴は、メモリ内オペレーション等の説明した実施の形態を使用することによって可能になり得る。
データベース以外のアプリケーションも、システム３００の改善された性能および可用性を活用して、新たな顧客の可能性を生み出すことができる。
それらのアプリケーションは本明細書で列挙するにはあまりにも多すぎるが、それらのアプリケーションの多くは、当業者に明らかであろう。
このような１つのアプリケーションを次に説明する。
【００４３】
［非ディスク永続メモリを使用したトランザクションコミット時間の削減］
図１のトランザクション処理システム１００に関して、非ディスク永続メモリがない場合に、トランザクションモニタ１０４がデータベーストランザクションをコミットできる前に、２つのことを行わなければならない。
まず、ログライタ１０６は、データベースライタ１０２から受信したそのトランザクションに関するあらゆる監査情報を耐久性のある媒体にフラッシュ（または完全に読み出す）しなければならない。
その後、トランザクションモニタ１０４も、そのトランザクションのコミット記録を耐久性のある媒体に書き込まなければならない。
説明した実施の形態によると、非ディスク永続メモリを利用することによって、それら情報項目を非ディスク永続メモリのみに書き込んだ後に、トランザクションをコミットすることを許可することができる。
非ディスク永続メモリがディスクストレージよりも低い書き込みオペレーション待ち時間を示す程度まで、それに応じて、トランザクション待ち時間を短くすることができる（また、ＴＭＦトランザクションスループットが改善され得る）。
【００４４】
具体的には、図２を参照して、ＡＤＰ２０６は、ＴＭＰ２０４からフラッシュメッセージを受信すると、ディスクストレージに書き込む場合よりも非ディスク永続メモリに書き込む場合の方が概ね高速に、書き込まれていない状態変更およびトランザクションコミット記録を同期してフラッシュすることができる。
書き込みオペレーションが高速になることよって、ＡＤＰ２０６がディスクを使用した場合よりも非ディスク永続メモリを使用する場合の方が高速に、ＴＭＰはトランザクションをコミットすることが可能になる。
【００４５】
一例として、一実施の形態によるトランザクション処理システムを包括して６００で示す図６を検討する。
システム６００は、データベースライタ６０２、トランザクションモニタ６０４、およびログライタ６０６を備える。
【００４６】
説明する実施の形態によると、ログライタ６０６は、主監査ディスクプロセス６０８およびバックアップディスクプロセス６１０を備える。
１対の非ディスク永続メモリユニットが設けられる。
この１対の非ディスク永続メモリユニットは、主非ディスク永続メモリユニット６１２（「ＣＰＭＵ」とも呼ばれる）およびミラー非ディスク永続メモリユニット６１４（「ＣＰＭＵ」とも呼ばれる）から成る。
主監査ログディスク６１６およびミラー監査ディスクログ６１８が、以下で明らかになる目的で設けられる。
【００４７】
図示して説明する実施の形態では、データは、主非ディスク永続メモリユニット６１２およびミラー非ディスク永続メモリユニット６１４の双方に書き込まれる。
いくつかの実施の形態では、データは、主ユニットおよびミラーユニットに並行して書き込むことができる。
あるいは、いくつかの実施の形態では、データは、主ユニットおよびミラーユニットに並行して書き込む必要はない。
システムが十分に機能している場合に、いくつかの実施の形態では、情報は、主非ディスク永続メモリユニット６１２またはミラー非ディスク永続メモリユニット６１４のいずれかから読み出される。
非ディスク永続メモリユニット（６１２、６１４）の一方のみが障害になると、データは、存続している非ディスク永続メモリユニットから読み出される。
障害になった主非ディスク永続メモリユニットが使用状態に復帰する準備ができると、その内容を、存続している非ディスク永続メモリユニットから復元することができる。
【００４８】
図示して説明する実施の形態では、監査証跡ごとに１つの領域が、非ディスク永続メモリユニット６１２、６１４のそれぞれ内に割り当てられ、監査ディスクプロセス対６０８、６１０は、それらの領域のそれぞれ内にライトアサイドバッファ（「ＷＡＢ（write-aside buffer）」として示す）を保持する。
任意の適切なライトアサイドバッファ構成を使用できるが、この例では、ライトアイサドバッファは、当業者に理解されるような循環バッファとして構成される。
主監査ディスクプロセス６０８は、データベースライタ６０２から１組の変更を受信すると、非ディスク永続メモリユニット６１２、６１４を使用して、それら変更を非常に高速にコミットする。
具体的には、図示した例では、ＡＤＰ６０８は、１組の変更を受信すると、その情報を、ＣＰＭＵ６１２のＷＡＢにおけるそのＷＡＢの末尾アドレスに追加し、次いで、ＷＡＢの末尾アドレスを、最も近時に書き込まれた情報の終端を過ぎた点に進める。
次いで、ＡＤＰ６０８は、ＣＰＭＵ６１４のＷＡＢに対してそのオペレーションを繰り返す。
当業者は、ＣＰＭＵ６１２、６１４への書き込みオペレーション間の並行性の程度を変更することができる。
【００４９】
説明した実施の形態によると、要求された書き込みオペレーションの完了により、末尾ポインタが進められてＷＡＢの先頭アドレスを過ぎると、非ディスク永続メモリ領域への書き込みオペレーションは一時中断され、ＷＡＢはフルにマーキングされる。
ＷＡＢの先頭アドレスおよび末尾アドレスを進めるアルゴリズムは、当業者に理解されるように、ＷＡＢの先頭アドレスおよび末尾アドレスが、双方共に、ＷＡＢの循環バッファを収容する同じ非ディスク永続メモリ領域内に記憶されて更新される点を除いて、循環キューデータ構造体を実施する教科書の手法に類似している。
【００５０】
コスト効率の良い非ディスク永続メモリでは、ログボリュームが、ディスクの代わりにより高速な永続メモリデバイスを全面的に使用して実現されるので、低速ディスクＩ／Ｏをトランザクションコミットプロセスから完全に省くことができる。
一方、現在および近い将来では、ディスク容量は、引き続き非ディスク永続メモリ容量を大きく上回る可能性があり、ディスクストレージのバイトあたりのコストは、引き続き非ディスク永続メモリのバイトあたりのコストよりもかなり低い可能性がある。
その場合、相対的に小さな容量の非ディスク永続メモリユニットは、相対的に大きな容量のディスクドライブに代わってＷＡＢを実施するのに使用されることになる。
このような構成および類似の設計では、同期して書き込まれた監査情報は、レイジーかつ非同期にディスクに書き込まれることになる。
非ディスク永続メモリにどの情報を保持するのか、および、ディスクにどれをフラッシュするかを選択するさまざまな技法が、メモリ階層設計の技術分野の当業者には明らかであろう。
【００５１】
さらに、今説明したこのようなコスト制約を受ける非ディスク永続メモリ技術では、ＡＤＰ６０８は、引き続きディスク書き込みオペレーションを使用することができるが、ＡＤＰ６０８は、ＴＭＰ６０４のトランザクションのコミットを可能にすることができる前に、それらディスクオペレーションの完了を待つ必要はない。
その代わり、ＡＤＰ６０８は、適切に選択された時間間隔内で受信された複数のメッセージから情報を組み合わせるオプションを実行したとしても、データベースライタ６０２から非ディスク永続メモリデバイス６１２、６１４に受信されたすべての監査情報を集中かつ同期して書き込む。
上述したように、ディスクオペレーションをもはや待たせることはないので、ＡＤＰ６０８は、ディスクオペレーションごとにより多くのデータを書き込むことができ、それによって、同じ量の監査証跡データに対して実行されるオペレーションの総数を少なくすることにより、Ｉ／Ｏ関係のオーバーヘッドを少なくすることが得られる。
これは、監査ディスク６１６、６１８からのディスクスループットを改善するだけでなく、ＡＤＰ６０８を実行するＣＰＵのＣＰＵ稼働率も改善する。
したがって、ＡＤＰ６０８は、ＴＭＰ６０４から、その監査証跡をフラッシュする要求を受信すると、まず、その情報をＣＰＭＵ６１２、６１４に書き込む。
また、ＡＤＰ６０８は、いわゆるレイジー方法でその情報を監査ログディスク６１６、６１８に書き込むことができるように、その情報をＷＡＢにバッファリングする。
フラッシュメッセージがＴＭＰ６０４から受信されたかどうかにかかわらず、例えば、バッファリングされた情報が一定のしきい値を超えるといった所定の条件が満たされるか、または、一定の最大時間間隔で、ＡＤＰ６０８はディスク書き込みオペレーションを発行する。
しかしながら、従来の場合と異なり、監査情報がディスク６１６、６１８に書き込まれる前であって、ＣＰＭＵ６１２、６１４に書き込まれた後に、トランザクションをコミットすることができる。
【００５２】
監査ディスク６１６、６１８に対するレイジーに発行された連続的な書き込みオペレーションが完了すると、ＷＡＢに記憶されていた情報の一部は上書きの対象になる。
次に、ＣＰＭＵ６１２、６１４の適切な領域の先頭アドレスが、ライトバックが成功した最後のバイトを過ぎた位置に進められる。
ディスクＩ／Ｏの完了がＡＤＰ６０８によって受信される前に、非ディスク永続メモリユニットが「フル」にマーキングされていると、非ディスク永続メモリユニットは、その後、「非フル」にマーキングされる。
ＡＤＰ６０８は、その後、再度、ＷＡＢの使用を再開することができる。
ＡＤＰ６０８は、自身がＷＡＢの使用を中断する時は常に、トランザクションをコミットする前に、ログボリューム６１６、６１８に対する未処理のディスクＩ／Ｏの待ち状態に戻る。
このような状況では、トランザクション応答時間に対するディスクＩ／Ｏ待ち時間の影響を制限するために、書き込みＩ／Ｏオペレーションのサイズは、通常、最適なディスクスループットを生じる値（例えば、１２８ＫＢ〜１ＭＢ）よりも小さな値（例えば、コミット記録間に収集された監査量に応じて、４ＫＢ〜１２８ＫＢ）に設定される。
非ディスク永続メモリでは、トランザクションは、ディスクＩ／Ｏが完了するのを待たず、したがって、ＡＤＰ６０８は、より多くの監査データが書き込みのためにバッファリングされるまで待つことができる。
したがって、より大きなディスク書き込みＩ／Ｏサイズ（例えば、５１２ＫＢ）を使用して、ログボリューム６１６、６１８の最適に近いスループットを得ることができ、ＡＤＰ６０８を実行するＣＰＵのディスクＩ／Ｏオーバーヘッドを大幅に削減することができる。
【００５３】
ディスク書き込みオペレーションを待つことにより性能に悪影響を与える他の任意のアプリケーションに、非ディスク永続メモリを使用してライトアサイドバッファを作成するのに、類似の設計変更を使用することができる。
【００５４】
設計に対する他の変形は当業者に明らかであろう。
例えば、主非ディスク永続メモリユニットおよびミラー非ディスク永続メモリユニットに連続して交互に書き込む代わりに、アプリケーションは、並行してそれらユニットに書き込むことを選ぶことができる。
【００５５】
［例示の方法］
図７は、一実施の形態による方法のステップを示している。
図示して説明する実施の形態では、この方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせで実施することができる。
さらに、この方法は、任意の適切に構成された非ディスク永続メモリアーキテクチャを使用して実施することができる。
非ディスク永続メモリアーキテクチャの限定的でない特定の例を示し、この文書を通じて説明する。
【００５６】
ステップ７００は、トランザクションが誘発する状態変更に関連したデータを受信する。
このようなデータは、トランザクションの結果として引き起こされたデータベースの状態変更を記述することができる。
図示して説明する実施の形態では、このデータは、上述したようなデータベースライタのコンポーネントから受信される。
ステップ７０２は、非ディスク永続メモリにデータを書き込む。
上述したように、任意の適切な非ディスク永続メモリアーキテクチャを利用することができる。
例えば、図６の例では、主非ディスク永続メモリユニットおよびミラー非ディスク永続メモリユニットが利用される。
ステップ７０４は、非ディスク永続メモリユニットのしきい値に到達したかどうかを確認する。
到達していない場合には、この方法はステップ７０２に戻る。
他方、非ディスク永続メモリユニットのしきい値に到達した場合には、ステップ７０６が、非ディスク永続メモリのデータを、図６の監査ログディスク６１６等の監査ログディスクに書き込む。
図６の例では、このような方法で監査ログディスクに書き込むことは、レイジー方法で行われたと呼ばれる。
【００５７】
［例示のコンピュータシステム］
一実施の形態では、上述したシステムは、図８に示すようなコンピュータシステム８００において実施することができる。
コンピュータシステム８００またはその構成コンポーネントのさまざまな組み合わせは、さまざまな非ディスク永続メモリユニットだけでなく、プロセッサノードをも含む上述したシステムを実施するのに利用することができる。
【００５８】
図８を参照して、例示のコンピュータシステム８００（例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等）は、さまざまなコンポーネントを通信接続するデータバス８１４で構成される。
図８に示すように、情報および命令を処理するプロセッサ８０２がバス８１４に接続される。
プロセッサ８０２の情報および命令を記憶するＲＡＭ８０４等のコンピュータ可読揮発性メモリもバス８１４に接続される。
さらに、プロセッサ８０２の静的な情報および命令を記憶するコンピュータ可読読み出し専用メモリ（ＲＯＭ）８０６もバス８１４に接続される。
磁気ディスク媒体や光ディスク媒体等のデータストレージデバイス８０８もバス８１４に接続される。
このデータストレージデバイス８０８は、大量の情報および命令を記憶するのに使用される。
英数字キーおよびファンクションキーを備え、情報およびコマンドの選択したものをプロセッサ８０２に通信する英数字入力デバイス８１０がバス８１４に接続される。
ユーザが入力した情報およびコマンドの選択したものを中央プロセッサ８０２に通信するマウス等のカーソル制御デバイス８１２がバス８１４に接続される。
例えば、ネットワーク、他のコンポーネント、または他のプロセッサと通信する入出力通信ポート８１６がバス８１４に接続される。
コンピュータユーザに情報を表示する表示装置８１８がバス８１４に接続される。
この表示デバイス８１８は、液晶デバイスであってもよいし、陰極線管であってもよいし、ユーザが認識可能な図形画像および英数字文字を作成するのに適した他の表示デバイスであってもよい。
英数字入力８１０およびカーソル制御デバイス８１２によって、コンピュータユーザは、表示装置８１８上における可視シンボル（ポインタ）の二次元移動を信号で動的に送ることが可能になる。
非ディスク永続メモリユニット８２０が設けられ、上述した実施の形態のいずれをも含むことができるだけでなく、当業者には理解されるように、上述した振る舞いを示す他の非ディスク永続メモリアーキテクチャをも含むことができる。
【００５９】
［結論］
上述したさまざまな実施の形態は、トランザクション処理システムと共に非ディスク永続メモリを利用する。
非ディスク永続メモリを使用してトランザクションをコミットすることにより、トランザクションのコミットに関連した時間を削減することができる。
したがって、トランザクション処理システム内部の資源の需要を削減することができ、これによって、トランザクション処理システムのスループットを増大させることができる。
【００６０】
構造的な特徴および／または方法のステップに特有の文言で本発明を説明してきたが、添付の特許請求の範囲に規定される本発明は、必ずしも、説明した特定の特徴にもステップにも限定されるものではない。
それとは逆に、特定の特徴およびステップは、特許請求の範囲に記載した発明を実施する好ましい形態として開示されたものである。
【図面の簡単な説明】
【００６１】
【図１】１つまたは２つ以上の実施の形態と共にそのコンポーネントを利用できる例示のトランザクション処理システムを示す図である。
【図２】図１のトランザクション処理システムの一実施の形態を示す図である。
【図３】非ディスク永続メモリユニットの一例示の実施の形態を示す図である。
【図４】非ディスク永続メモリユニットの一例示の実施の形態を示す図である。
【図５】非ディスク永続メモリユニットの別の例示の実施の形態を示す図である。
【図６】１つまたは２つ以上の実施の形態による非ディスク永続メモリユニットを利用する一例示のトランザクション処理システムを示す図である。
【図７】一実施の形態による方法のステップを説明する流れ図である。
【図８】本明細書で説明する１つまたは２つ以上の実施の形態を実施するのに利用できる一例示のコンピュータシステムを示す図である。
【符号の説明】
【００６２】
１００・・・トランザクション処理システム，
１０２・・・データベースライタ，
１０４・・・トランザクションモニタ，
１０６・・・ログライタ，
２００・・・トランザクション処理システム，
２０２・・・データベースライタ，
２０４・・・トランザクションモニタ，
２０６・・・ログライタ，
２０８・・・監査ログディスク，
２１０・・・クライアント，
３０２・・・プロセッサノード，
３０６・・・ＲＤＭＡ使用可能システムエリアネットワーク（ＳＡＮ），
３１０・・・通信リンク接続型永続メモリユニット（ＣＰＭＵ），
４００・・・通信リンク接続型永続メモリユニット，
４０２・・・不揮発性メモリ，
５００・・・通信リンク接続型永続メモリユニット，
５０２・・・揮発性メモリ，
５０８・・・不揮発性２次ストア，
５１０・・・バッテリ，
６００・・・トランザクション処理システム，
６０２・・・データベースライタ，
６０４・・・トランザクションモニタ，
６０６・・・ログライタ，
６０８，６１０・・・監査ディスクプロセス，
６１２，６１４・・・永続メモリ，
６１６，６１８・・・監査ログディスク，
８０２・・・プロセッサ，
８０８・・・データストレージ，
８１０・・・英数字入力，
８１２・・・カーソル制御，
８１６・・・通信ポート，
８１８・・・表示装置，
８２０・・・非ディスク永続メモリユニット，
【図１】
2005259136.tif 000003
【図２】
2005259136.tif 000004
【図３】
2005259136.tif 000005
【図４】
2005259136.tif 000006
【図５】
2005259136.tif 000007
【図６】
2005259136.tif 000008
【図７】
2005259136.tif 000009
【図８】
2005259136.tif 000010