JP3672208B2 - 階層化トランザクション処理方法 - Google Patents
階層化トランザクション処理方法 Download PDFInfo
- Publication number
- JP3672208B2 JP3672208B2 JP16757197A JP16757197A JP3672208B2 JP 3672208 B2 JP3672208 B2 JP 3672208B2 JP 16757197 A JP16757197 A JP 16757197A JP 16757197 A JP16757197 A JP 16757197A JP 3672208 B2 JP3672208 B2 JP 3672208B2
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- transactions
- processing
- hierarchy
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims description 22
- 238000012545 processing Methods 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 30
- 239000002253 acid Substances 0.000 claims description 25
- 230000009466 transformation Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 11
- 230000002085 persistent effect Effects 0.000 description 9
- 238000011084 recovery Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 206010000210 abortion Diseases 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013517 stratification Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、コンピュータ化トランザクション処理方法に関する。より詳細には、本発明は、トランザクションの総体のアトミック性を保証する、潜在的に分散した多数のトランザクションの総体のコンピュータ化処理に関する。
【0002】
【従来の技術】
トランザクション・アプリケーションとも呼ばれるトランザクションは、回復可能なリソースおよびデータ、たとえばデータベースを一つの整合状態から別の整合状態に変化させる一連の処理を含む。トランザクション処理システムは、あるトランザクションが回復可能なリソースまたはデータに対して何らかの更新を実行し、そのトランザクションがその正常な終了または整合性の中間点に達する前に障害が起こるならば、そのような更新が取り消されること(ロールバック)を保証する。新たな整合性の点に達し、トランザクションによって実施されたすべての更新が永久的にされなければならないとき、トランザクションはコミットする。
【0003】
このトランザクション回復保証を履行するためには、システムは、システム動作不能状態の間、進行中のトランザクションおよびそれらの更新動作の両方を、システムが再起動したとき、回復可能データに対するそれらの効果を正しく反映させることができるよう、記憶することができなければならない。一般に、システムは、トランザクション回復保証を履行するために、ログ・マネージャによって記録され、維持される、各トランザクションの進行状態ならびにリソースおよびデータに対する変更に関するログを維持する。ログ・レコードとして知られるログ・データを審査すると、トランザクションのコミットした動作が、データベースに反映されているか、取り消されたかのいずれかであることを保証することができる。また、ログ・レコードが実データを含むときには、ログ・レコードを利用して、たとえば記憶装置の障害によって損傷または損失したデータを再構成することもできる。ログは、常に成長する順次アクセス・ファイルと考えることができる。
【0004】
ログは、システム障害の際にも無傷で利用可能な状態にとどまる安定な記憶装置、たとえばディスク・ファイル上に永久的に記憶されている。ログ・レコードは、まず、コンピュータのメモリの中の一時的な揮発性ログ・ファイル・バッファに書き込まれたのち、一定の時機(たとえば、トランザクションがコミットされたとき)に安定な記憶装置に移される。
【0005】
ロック・マネージャによってサポートされる「ロッキング」は、共用リソースおよび共用データに対して同時に実行される(すなわち、並行な)トランザクションのアクセスを制御するのに使用され、特に、並行トランザクションが同じリソースおよびデータを不整合に変更してしまうことを防ぐのに使用される。ロッキングを適切に使用すると、トランザクションが操作するリソースおよびトランザクションが読み出すデータが整合状態にあり、リソースおよびデータが他のトランザクションのコミットしていない更新を含まないことをトランザクションに保証することができる。
【0006】
トランザクションが操作する回復可能なリソースおよびデータはさらに、リソース・マネージャによってサポートされることもできる。リソース・マネージャとは、一定のタイプのトランザクション・オブジェクトを管理するサブシステムである。リソース・マネージャは通常、システム全体で利用可能であるかもしれないサービスを、アプリケーションまたは他のリソース・マネージャに提供する。トランザクション・データベース・システム、トランザクション待ち行列マネージャ、トランザクション・セッション・マネージャなどはすべてリソース・マネージャとして働くことができる。
【0007】
トランザクション・マネージャは、コンピュータ・システムの中で並行に処理が起こる多数のトランザクションの流れを統制し、管理し、協調させる。これは、トランザクションのコミットおよび取り消し、すなわちロールバックならびにそれらが失敗したのちのオブジェクト、リソース・マネージャまたはサイトの回復を命令する。
【0008】
局所または分散トランザクション・システム中での一定のトランザクションおよび他すべての並行に処理が起こるトランザクションに関する上述の整合性要件は、ACID要件としてより正確に表現される。実際、ACID性とは、以下に説明する4種の異なる部分的要件を組み合わせたものである。
【0009】
・アトミック性(Atomicity)
システム全体の状態に対するトランザクションの変更はアトミック性である。すなわち、すべてが起こるか、何も起こらないかである。これらの変更は、データベース変更、メッセージ、変換器に対する動作などをはじめとする、リソースに対するすべての変更を含む。
【0010】
・整合性(Consistency)
トランザクションは、システム状態の正確な変換である。一つのグループとして受け取られる動作は、状態に関連する整合性制約のいずれをも侵害しない。これには、トランザクションが正しいプログラムであることを要する。
【0011】
・隔離(Isolation)
トランザクションが並行に実行されるとしても、それぞれのトランザクションTにとっては、他のトランザクションがTの前またはTの後のいずれか(前後両方ではない)で実行されるように見える。
【0012】
・耐性(Durability)
ひとたびトランザクションが正常に完了し、その作業をコミットするならば、状態に対するその変更は障害に耐えて存続する。すなわち、状態変化は永久的になる。
【0013】
コンピュータ科学の分野では、大域トランザクションのアトミック性を保証する機構が公知である。詳細は、たとえば、「J. Gray, A. Reute, Transaction Processing: Concepts and Techniques, Morgan Kaufmann Publishers, San Francisco(CA)」に見いだすことができる。焦点は、トランザクションの総体が整合性のある共通のトランザクション結果、すなわち整合性のシステム状態(すなわちコミットまたはアボートのいずれか)に達することを許す同期プロトコルである、いわゆるアトミック・コミット・プロトコル(ACP)にある。もっとも普及し、開発されているACPは、多数の異なる商業用システムにおいて幾度も実現され、使用されてきた、いわゆる2相コミット(2PC)プロトコルである。
【0014】
その重要性から、2PCは、企業連合によって標準化された。たとえば、手続き可変要素は、X/OPENによって標準化された。X/OPENの詳細は、「X/OPEN Guide, Distributed Transaction Processing Reference Model(Version 2), X/OPEN Company Ltd., U.K. 1993」に見いだすことができる。オブジェクト指向可変要素は、オブジェクト管理グループ(OMG)によって標準化された。オブジェクト管理グループの詳細は、「Object Management Group, Object Transaction Services(OTS), OMG Document TC 94.8.4(1994)」に見いだすことができる。対応するX/OPEN規格の多くの規格準拠インプリメンテーションが存在し、対応するOMG規格の多くの準拠インプリメンテーションが進行中であるか、最近リリースされたばかりである。
【0015】
もう一つの公知のACPは、いわゆる3相コミット・プロトコルである。
【0016】
一つのアトミック作業だけからなる標準的なトランザクションの表現力は非常に限られている。標準的なトランザクションが提供するよりも融通性のある制御手段が求められるであろう多くの状況が存在する。特に実世界の応用の場合には、大域トランザクションと呼ばれるトランザクションの総体が協力して所望の処理目標を達成しなければならない。
【0017】
そのような複雑なトランザクションのために、種々の異なるモデルが開発されている。例は、セーブポイント技術、入れ子トランザクション、連鎖トランザクションなどである。種々のモデルの概説は、たとえば、「J. Gray, A. Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann Publishers, San Francisco(CA)」に見いだすことができる。
【0018】
これらすべてのトランザクション・モデルは、局所または分散トランザクションの総体、すなわち大域トランザクションのためのアトミック性を保証するための媒体として単独に考慮されるとき、根本的な問題を抱えている。これらの問題に共通の根源は、一方でのアトミック性と他方での並行性との間で適切なバランスを見いだすことの難しさである。一方でアプリケーション全体の整合性を危険にさらさないようにすることは、大域トランザクションの終了までホールドされるロックの数を増すことを意味する。これは、結果として、アトミック性を保証する協調制御努力の途方もない増大をもたらし、それにより、特に分散処理環境において、性能劣化および並行性における深刻な損失を同時にもたらすであろう。他方、現在の技術水準によると、協調制御努力の減少ならびに性能および並行性における改善は整合性の危険を伴う。
【0019】
大域トランザクションの連鎖トランザクション・モデルは、トランザクションの総体に包含されるトランザクションが最終的に成功することを保証する。この結果は、トランザクションの総体が2PC処理に包含されると仮定することなく達成され、それにより、上述の問題のいくつかを回避することができる。
【0020】
トランザクション連鎖によると、一つの、すなわち第一のトランザクションをコミットして、もはや必要とされないすべてのオブジェクトを解放し、なおも必要とされる処理コンテキストを、暗黙に開始される次の、すなわち第二のトランザクションに渡すことができる。第一のトランザクションのコミットメントと、次のトランザクションの開始とは、一つのアトミック操作にいっしょに包み込まれる。これは、逆に、他のどのトランザクションも、一方のトランザクションから他方のトランザクションに渡されるコンテキスト・データを見た(または変更した)はずがないことを意味する。連鎖トランザクション・モデルの欠点は、その固有の非同期モードの処理によるものである。第一のトランザクションは、第二のトランザクションの処理の要求を開始するだけであり、第二のトランザクションがすでに始まったかどうかに関して何らかの情報を同期的に戻すこともなく、その処理の結果に関する情報を戻すこともない。連鎖トランザクションのまさにその定義により、このトランザクションは、最終的には、すべての包含されたトランザクションがそれらのサービス要求を受けるということを保証するが、保証された時間枠の中で受けるということは保証できない。したがって、作業単位の概念を提供しながらも、そのような単位はしばしば、ユーザ(エンドユーザとプログラマの両方)がこの作業単位があるべきとみなすものとは対照的である。より理解しやすい(たとえば結合最大期間を有する)作業単位の概念を実現することはやっかいである。
【0021】
【発明が解決しようとする課題】
本発明は、潜在的に分散した多数のトランザクションの総体を処理して、その総体のトランザクション挙動を保証する、すなわちそのアトミック性を保証する課題に基づく。アトミック処理挙動を提供することと同時に、本発明の課題は、前記トランザクションの協調のために通信量を最適化することである。さらに同時に、本発明の課題は、並行性挙動および前記トランザクションの総体の処理能力を最適化することである。
【0022】
【課題を解決するための手段】
本発明の課題は、請求項1によって解決される。大域トランザクションに包含される潜在的に分散したトランザクションの総体を処理するための本発明の根本的な手法は、メンバ・トランザクションの総体をトランザクションのグループに分割する手法に基づく。それぞれのグループは「トランザクション階層」または単に「階層」と呼ばれる。各階層は、アトミック・コミット・プロトコルを介して処理され、同期化され、それにより、個々の階層ごとにACID処理結果が保証される。したがって、得られたトランザクションのグループの総体として、すなわち階層の総体として構成される大域トランザクションは、連鎖トランザクション処理の原理にしたがって、連鎖階層のセットとして処理される。連鎖階層実行は大域トランザクションのアトミック実行を保証する。
【0023】
本発明によって提案される技法は、トランザクション挙動をメンバ・トランザクションの総体に提供するために本来求められる協調および同期化の努力を有意に減らす。アトミック・コミット・プロトコルによる処理集約的な協調および同期化の努力は、同じ階層に属する比較的少数のメンバ・トランザクション(大域トランザクション全体の一部である潜在的に多数のメンバ・トランザクションに比較して)についてしか求められない。そのような比較的小さなメンバ・トランザクションのグループについてだけ、ACID性を保証するための処理の負担が求められる。
【0024】
そのうえ、大域トランザクションを多数の階層に分割する結果として、環境全体の並行性挙動および処理能力が増大する。理由は、各階層は、2PCを介して協調された、より少数のトランザクションしか含まず、したがって、階層一つあたりにホールドされるロックがより少ないからである。さらには、各階層は、並行に動作中である他の階層から独立してコミットして、ロックを解除するまでに必要な時間を減らす。換言するならば、要するに、階層化トランザクション処理が粒度を下げ、したがって、並行性およびシステム処理能力を増大させるのである。
【0025】
階層を形成しているメンバ・トランザクションは、それらのACID性保証結果により、作業の単位とみなすことができるため、階層手法は「作業単位」という新たな概念を実現することができる。たとえば、作業単位は、ユーザとの対話に関して定義することもできる。ユーザの要求によって開始された階層は、コミットしたのち、それによって生じた他の階層の正常な完了を待つ必要なく、ただちに戻ることができる。その結果、ユーザの応答時間は一般に短縮される。
【0026】
連鎖トランザクション処理の概念による階層の連鎖処理により、トランザクションの総体のアトミック性が保証され、したがって、大域トランザクションのトランザクション挙動が提供される。
【0027】
さらなる利点が請求項2によって達成される。本発明のさらなる実施態様によると、第一のトランザクション階層と第二のトランザクション階層とを連鎖するための処理作業は、第一および第二のトランザクション階層の一部である。本発明によると、階層の連鎖は、実行要求を待ち行列に挿入し、それを待ち行列から取り出すことによって達成される。
【0028】
階層の一部としてのこれらの実行要求の扱いは、ACID操作に参加するための扱いを許し、階層をコミットした時点で、実行要求の扱いが正常に完了することを保証する。
【0029】
さらなる利点が請求項3によって達成される。本発明のこのさらなる実施態様は、非同期トランザクション処理をサポートする待ち行列を教示している。すなわち、トランザクション実行要求を待ち行列に挿入したのち、制御は、要求されたトランザクションがその処理を開始または終了することを待たずに、挿入作業に戻る。
【0030】
非同期トランザクション処理は、特にユーザ対話が関連する場合に多大な応答時間を有意に減らす。
【0031】
さらなる利点が請求項4によって達成される。本発明のさらなる実施態様によると、前記待ち行列は、リソース・マネージャによって管理される耐性保護リソースを表している。
【0032】
保護リソースである待ち行列は、トランザクション実行要求が、ひとたび正常に待ち行列に挿入されると、システムのクラッシュなどの場合でさえ、システムによって常に記憶されることを保証する。最後に、この技術により、一つの階層のアトミック性だけでなく、大域トランザクション全体のアトミック性が保証される。
【0033】
各メンバ・トランザクション、ひいては各階層を任意の巨大で複雑なコンピュータ・ネットワーク内のどこででも処理できるようにすることにより、さらなる利点が達成される。したがって、メンバ・トランザクションおよび階層が多数のコンピュータ・システムの中に分散していてもよい。
【0034】
多数の異なるポリシーが、階層内で処理されるメンバ・トランザクションを定義することを許すことにより、さらなる利点が達成される。したがって、個々の階層をアセンブルするメンバ・トランザクションの選択のための完全な自由が提供される。
【0035】
たとえば、あるポリシーによると、同じコンピュータ・システム上で実行されるメンバ・トランザクションを組み合わせて、個々のトランザクション階層を形成する。このようなポリシーは、潜在的に分散したトランザクションの総体を協調させるのに必要なネットワーク通信量を減らすことができる。一つの同じ物理的機械上で処理されるすべてのメンバ・トランザクションを、必要なトランザクション・マネージャのインスタンスとともに、一つのトランザクション階層の中で処理することができるため、これは、2PCに準拠するために必要なメッセージを機械境界を越えて送ることを回避させ、階層あたりの協調処理の性能を高める。
【0036】
【発明の実施の形態】
本明細書の記載がトランザクションを引用しているならば、局所トランザクションまたは分散トランザクションには限定されない。通常、本明細書の記載によると、トランザクションは、そのようなタイプのいかなるものであってもよい。
【0037】
導入
すでに概説したように、トランザクション・アプリケーションとも呼ばれるトランザクションは、回復可能なリソースおよびデータ、たとえばデータベースを一つの整合状態から別の整合状態に変化させる一連の処理を含む。トランザクション処理システムは、トランザクションが回復可能なリソースおよびデータに対して何らかの更新を実行し、そのトランザクションがその正常な終了または整合性のインテリム・ポイントに達する前に障害が起こるならば、そのような更新が取り消されること(ロールバック)を保証する。新たな整合性の点に達し、トランザクションによって実施されたすべての更新が永久的にされなければならないとき、トランザクションはコミットされる。
【0038】
図1は、疑似コードで表記されたトランザクション・プログラムの全体構造の概要を示す。当然、トランザクション・アプリケーション・プログラムは、いかなる従来の、または特殊なプログラム言語で書くこともできる。このトランザクション・アプリケーション・プログラムは、1行目でBEGIN WORK()を呼び出すことにより、新たなトランザクションの開始を宣言する。その後、プログラムによって実行されるすべての操作は、このトランザクションの一部になる。また、トランザクション・アプリケーション・プログラムの使用中に他のプログラムによって実行されるすべての操作(2〜3行目のプログラム有効範囲の中)もまた、トランザクションの一部になる。プログラムは、図1の5行目のCOMMIT WORK()を呼び出すことにより、トランザクションがシステム状態の完全で正しい変換であることを宣言する。ひとたびトランザクションが正常にコミットすると、トランザクションの効果は耐性かつ持続性になる。トランザクション中に何かがおかしくなるならば、トランザクション・アプリケーションは、7行目でROLLBACK WORK()を呼び出すことにより、すべての操作を取り消すことができる。トランザクションの実行中に障害が出るならば、システムは、トランザクションを一方向的にロールバックさせることができる。そして、BEGIN-COMMITまたはBEGIN-ROLLBACKを使用して、ACID変換をブラケットすることができる。
【0039】
トランザクション・アプリケーションの基本制御の流れおよびトランザクション処理システム中の主要部品を図2に示す。図2は以下のものを表している。
【0040】
・トランザクション・プログラム200
【0041】
・潜在的に多数のリソース・マネージャ210の一つ。リソース・マネージャとは、一定のタイプのトランザクション・オブジェクトを管理するサブシステムである。リソース・マネージャは通常、システム全体で利用できるかもしれないサービスをアプリケーションまたは他のリソース・マネージャに提供する。
【0042】
・トランザクション・マネージャ220。これは、トランザクションのコミットおよびロールバックならびに障害後のオブジェクト、リソース、リソース・マネージャまたは局所もしくは遠隔サイトの回復を命令する。
【0043】
・ログ・マネージャ230。これは、障害時にすべてのオブジェクトおよびリソースの整合性のあるバージョンを再構成することができるよう、トランザクションによって実施された変更のログを記録する。
【0044】
・ロック・マネージャ240。これは、オブジェクトおよびリソースに対する並行アクセスを規制して、リソース・マネージャがトランザクション隔離を提供するのに役立つ汎用機構を提供する。
【0045】
・トランザクション回復機能250。これは、トランザクション・プログラムのコミット有効範囲内で障害の場合に起動される。
【0046】
図2を参照すると、BEGIN WORK()201がトランザクションを開始し、それをトランザクション・マネージャに登録し(202)、固有のトランザクション識別名203を作り出す。ひとたびアプリケーションがトランザクションを開始すると、アプリケーションは、リソース・マネージャ204および205を呼び出し始め、データベースに対して読み書きを行ったり、局所および遠隔サイトに要求を送付したり、他のタイプのリソースを操作したりすることができる。
【0047】
リソース・マネージャ210がそのトランザクションに関連する最初の要求を受け取ると、それはトランザクションに加わり(211)、局所トランザクション・マネージャ220に対し、それがトランザクションのコミットメントおよびロールバック操作に参与したいことを伝える。いくつかのリソース・マネージャがトランザクションに加わることは通常のことである。これらのリソース・マネージャがトランザクションを代表して作業を実行するとき、リソース・マネージャは、オブジェクトに対して加えた変更のリストを維持する。原則として、リソース・マネージャは、オブジェクトまたはリソースの旧値および新値の両方を記録する。トランザクション処理システムは、そのような変更を記録するためのロギング・サービス212を提供する。ログ・マネージャ230は、オブジェクトおよびリソースに対するトランザクションのすべての更新の順アクセス・ファイルを効率的に実現する。当然、リソース・マネージャは、これらの更新が何であるかをログ・マネージャに伝えなければならない。
【0048】
隔離を提供するため、リソース・マネージャは、トランザクションによってアクセスされるオブジェクトおよびリソースをロックする(213)。これは、他のトランザクションがこのトランザクションのコミットされていない更新を見ることを防ぎ、他のトランザクションが、このコミットされていないトランザクションによって読み書きされるデータを変更することを防ぐ。トランザクション処理システムは、他のリソース・マネージャが使用することができるロック・マネージャ240を提供する。
【0049】
トランザクション200がCOMMIT WORK()206を発すると、トランザクション・マネージャは、アトミック・コミット・プロトコル、すなわち、この場合では、2相コミット・プロトコル260を実行する。まず、トランザクションに加わったすべてのリソース・マネージャに問い合わせて、トランザクションが整合性のある完全な変換であると思うかどうか尋ねる。いずれかのリソース・マネージャがNoと答えると(262)、その場合、コミットは失敗する。すべてのリソース・マネージャがYesと答えるならば(262)、トランザクションは正しい変換であり、トランザクション・マネージャはこの事実をログに記録し、各リソース・マネージャに対し、トランザクションが完了したことを知らせる。この時点で、リソース・マネージャは、ロックを解除し、トランザクションを完了するのに必要な他の操作を実行することができる。実行中にトランザクションが失敗するか、あるいは、2PCの相1の間にリソース・マネージャがNoと答えるならば、トランザクション・マネージャはトランザクション・ロールバックを命令する。この場合、トランザクション・マネージャは、トランザクションのログを読み、ログ・レコードごとに、そのログ・レコードを書いたリソース・マネージャを呼び出して、そのリソース・マネージャに対し、操作を取り消すよう求める。ひとたび取り消しスキャンが完了すると、トランザクション・マネージャは、トランザクションに加わった各リソース・マネージャを呼び出し、トランザクションがアボートされたことを伝える。
【0050】
トランザクション・マネージャはまた、ノードまたはサイトが障害を起こした場合にもトランザクション回復を命令する。トランザクション・マネージャは、一つのオブジェクトの障害、リソース・マネージャの障害およびサイト全体の障害のための汎用サービスを提供する。
【0051】
以下、トランザクション・マネージャがシステムの回復に役立つ方法を説明する。
【0052】
サイトが障害を起こしたのち、トランザクション処理(TP)システムがすべてのリソース・マネージャを再起動する。いくつかのトランザクションは障害発生時に進行中であったかもしれない。リソース・マネージャは、それらの再起動ロジックの一部としてトランザクション・マネージャに接触する。そのとき、トランザクション・マネージャは、障害が起きたときに作業中であった各トランザクションの結果をリソース・マネージャに知らせる。いくつかはコミットしていたかもしれず、いくつかはアボートされていたかもしれず、いくつかはコミットする過程にあったかもしれない。リソース・マネージャは、そのコミットした状態を独立して回復することもできるし、トランザクション・マネージャによるログの取り消しおよび繰り返しスキャンに参与することもできる。
【0053】
リソース・マネージャは障害を起こすが、TPシステムの残りが動作を続けるならば、トランザクション・マネージャは、そのリソース・マネージャに関連するすべてのトランザクションをアボートする。リソース・マネージャがサービスに戻ると、トランザクション・マネージャは、それらのトランザクションの結果をリソース・マネージャに知らせる。リソース・マネージャは、この情報およびトランザクション・ログを使用して、その状態を再構成することができる。
【0054】
特定のオブジェクトは損失したが、リソース・マネージャが他の方法で動作しているならば、リソース・マネージャは、他のオブジェクトに関してサービスを提供し続け、その間、失敗したオブジェクトがアーカイブ・コピーおよびそのコピーに対してコミットしたすべての変更のログから再構成される。トランザクション・マネージャおよびログ・マネージャは、アーカイブコピーからのオブジェクトの回復を支援する。
【0055】
各サイトは普通、別個のトランザクション・マネージャを有している。これが、各サイトが互いに独立して動作することを許して、局所自律性を提供する。トランザクションの実行がいくつかのサイトの中に分散しているとき、それは、いくつかのトランザクション・マネージャの中に分散する。その場合、多数のトランザクション・マネージャの中で2PCプロトコルが使用される。
【0056】
リソース・マネージャによって維持、制御される、トランザクション・オブジェクトとも呼ばれるリソースは、保護リソースまたは回復可能リソースである。保護リソースに対して向けられる動作は、それらの動作が完全に終了する前にそれらの結果を外部に出すことはない。これらの更新はコミットメント制御され、正常に終了する前に何かがおかしくなるならばロールバックすることができ、ひとたび正常終了に達すると、一方向のロールバックはなくなる。このように、保護リソースに向けられる動作はACIDの性質を有する。
【0057】
図3は、分散TPシステムの側面により焦点を当てたTPシステムを示す。さらに、図2に概略したモデルとは異なるいくつかの変更を示す。図3のモデルは、X/OPEN企業連合の観点のラインに沿っている。
【0058】
図は、コンピュータ・ネットワーク303を介して接続された二つのTPシステム301および302を示す。両TPシステムは、それらの間の通信を司る特定のリソース・マネージャ、すなわち通信マネージャ304および305を含む。さらにこのモデルでは、各リソース・マネージャ306および307が専用のログおよび専用のロック・マネージャを有するものと仮定する。トランザクションがアボートする場合、リソース・マネージャは、トランザクション・マネージャからの一回のロールバック呼び出しに基づいて、それ自身のロールバックを実行すると考えられる。
【0059】
大域トランザクション
一つのアトミック作業だけからなる標準的なトランザクションの表現力は非常に限られている。標準的なトランザクションが提供するよりも融通性のある制御手段が求められるであろう多くの状況が存在する。特に実世界の応用の場合には、トランザクションの総体が協力して所望の処理目的を達成しなければならない。そのような伝統的なACIDトランザクションの総体は、そのアトミック性が保証されるならば、「大域トランザクション」と呼ばれる。
【0060】
コンピュータ科学の分野では、大域トランザクションのアトミック性を保証する機構が公知である。大域トランザクションの問題を扱う一つの手法は、いわゆる「連鎖トランザクション(Chained Transactions)」である。連鎖トランザクションは、ACID性を保証するための同期アトミック・コミット・プロトコル(ACP)に関する処理努力をある程度減らすための特別な手法を提供する。
【0061】
CTが、標準的なメンバ・トランザクションT1〜Tnからなる連鎖トランザクションであると仮定する。連鎖トランザクションの概念は、長く続く大域トランザクションCTに対して順副階層構造を課すことを許す。この概念は、メンバ・トランザクションTiの中から、「CHAIN」実行要求により、メンバ・トランザクションTjのトランザクション処理要求を出すことを許す。二種類の連鎖トランザクションが可能である。同期連鎖トランザクション・モデルによると、メンバ・トランザクションTiのコミットメントは、結果的に、連鎖トランザクションTjの実行を同期的にもたらす。他方、非同期連鎖トランザクション・モデルでは、メンバ・トランザクションTiのコミットメントの後には、連鎖トランザクションTjの非同期実行が続く。以下、はっきりと必要ではない限り、連鎖トランザクション原理に関するこれらの異なる表現を区別しない。
【0062】
Tiの処理に拘束された潜在的な実行コンテキスト、たとえばデータベース・カーソルなどを包含するデータベース・コンテキストは、保存し、Tjの処理に渡すことができる。したがって、トランザクション連鎖を用いると、一つのトランザクションTiをコミットして、もはや必要ではないすべてのリソースおよびオブジェクトを解放し、なおも必要とされる処理コンテキストを、TP処理システムによって暗黙に開始される次のトランザクションTjに渡すことができる。第一のトランザクションTiのコミットメントと、次のトランザクションTjの開始とは、一つのアトミック操作にいっしょに包み込まれる。これは逆に、他のトランザクションが、一方のトランザクションTiから他方のトランザクションTjに渡されるコンテキスト・データを見た、または変更したはずがないことを意味する。
【0063】
連鎖ステップはトランザクション(Ti)を取り消し不能に完了するため、ロールバックは、連鎖トランザクションCTの中の現在作業中のメンバ・トランザクション(Tj)に限定される。Tiのコミットは、トランザクション・アプリケーションCTが、その後は必要としないロックを解除することを許す。連鎖トランザクション方式による再起動の扱いは、最新のコミット、すなわち、もっとも最近にコミットされたメンバ・トランザクションのコミットの状態を再び確立することによって実行される。
【0064】
メンバ・トランザクションTiの中で次のメンバ・トランザクションTjを連鎖するとき、この処理要求が、呼び出し側トランザクションTiのコミット有効範囲の一部として、要求待ち行列に挿入される。この要求待ち行列は当然、回復可能、すなわち耐性のリソースであり、この挿入処理はACID性の要件を満たす。したがって、これらの多数の回復可能な要求待ち行列は、持続性のある回復可能なメッセージングをサポートする。次のメンバ・トランザクションTjの処理要求を待ち行列から取り出すことは、Tjのコミット有効範囲の一部である。
【0065】
CTの中でメンバ・トランザクションTiから次のメンバ・トランザクションTjを連鎖する処理が本質的に非同期的であるならば、これらの非同期トランザクション処理要求は、結果として、次のメンバ・トランザクションTjの処理を同時にはもたらさない。その代わりに、処理要求は、呼び出し側トランザクションTiのコミット有効範囲の一部として要求待ち行列に挿入される。この処理要求が、結果として、要求された次のメンバ・トランザクションTjの実行をいつもたらすかは、TPシステムしだいである。
【0066】
図4は、メンバ・トランザクションT1、T2、T3、すなわち401、402、403を包含する連鎖トランザクションCTの簡単な例を示す図である。そのコミット有効範囲の中で、T1は、ACID性が保証される特定の作業を実行する。特定のデータベースのアクセス407は一つの例である。同じくそのコミット有効範囲の中で、すなわちその作業をコミットする前に、T1は、連鎖トランザクションCTの一部である次のメンバ・トランザクションT2の実行要求を出す(404)。ひとたびメンバ・トランザクションT2が制御を得ると、それは、同様な方法で、それが司る作業を実行する。特定の時点で、それは、連鎖トランザクションCTの一部である最後のメンバ・トランザクションT3の実行要求を出す(405)。この例によると、メンバ・トランザクションT3は、制御を得たのち、そのコミット有効範囲の中でさらなるデータベースにアクセスする(406)。
【0067】
本発明はまた、トランザクションがネットワーク中に分散している場合をも取り扱う。そこで、本発明はまた、分散トランザクション処理の分野にも関連する。これは、メンバ・トランザクションそれぞれが、ホストのオペレーティング・システムの別個のスレッドまたはプロセスの中で、またはネットワーク中の異なる物理的機械上で実行するかもしれないことを意味する。したがって、概念的に、一定のトランザクションがネットワーク中のどのコンピュータ・システム上で処理されるのかを区別することはもはや必要ではない。
【0068】
ネットワーク内のコンピュータ・システム間の通信目的のためのメッセージ指向性ミドルウェア(MOM)の出現により、分散トランザクションの処理のための新たな概念が可能になった。過去数年間、メッセージ指向性ミドルウェア(MOM)はその重要性を増した。MQシリーズをもって、IBM社は、現在、MQシリーズのプロトコルを主に採用するISOおよびOMGのような公の標準化機関で進行中の作業によって示される、この分野における事実上の基準を確立した。IBM社のMQシリーズに関しては、たとえば「MQSeries Planning Guide, Document Number GC33-1349-01」を参照されたい。メッセージ指向性ミドルウェアは、リソース・マネージャによって管理される保護リソースの意味での回復可能リソースとして扱われる持続性の回復可能待ち行列を提供する。すなわち、そのような待ち行列の操作をトランザクション内で実施して、メッセージ待ち行列を扱うためのACID性サポートを保証することができる。
【0069】
図5は、MOMを利用して、連鎖トランザクション・モデルにしたがって分散大域トランザクションを処理する方法を例示する。MOMの利用は、二つの連鎖トランザクションの同じ結果を保証するため、非同期プロトコルを考慮している。トランザクション・アプリケーションが二つのメンバ・トランザクションT1(501)およびT3(503)に分割され、関連の分散アプリケーションの意味的に正しい実行を結果的にもたらすためには、T1およびT3がいずれも起こらなければならない(すなわち、コミットしなければならない)と仮定する。この場合、T1は、それがメッセージを出して(504)、その局所的な持続性回復可能待ち行列Q1(505)の中でT3を開始したものと同じ局所トランザクションの中でその対象の回復可能リソースを操作しなければならない。Q1からQ2(506)(T3に局所的な待ち行列)へのメッセージの伝達は、利用されるメッセージング・ミドルウェア層によって保証され、したがって、第三の独立したトランザクションT2(502)として認められることができる。T3は逆に、この要求を、それがその対象の回復可能リソースを操作したものと同じ局所トランザクションの中でその局所待ち行列Q2から得なければならない。その結果、T1がその作業をコミットするならば、T3は、最終的に、その関連の作業を正常に実行する。
【0070】
現在の技術水準によって処理される大域トランザクションは、潜在的に分散したトランザクションの総体のアトミック性を保証する根本的な課題を抱えている。
【0071】
たとえば分散トランザクション・アプリケーションは、それぞれがネットワーク中のどこかで実行している二つ以上の意味的に関連した実行スレッドからなることができる。この場合、スレッドの概念は、そのもっとも一般的な意味で、実行中の1片のコードのOS表現として使用され、オペレーティング・システムのディスパッチまたはスワップの単位の厳密な意味では使用されない。このスレッドの総体のサブセットがトランザクションからなるとき、これらのトランザクションの結果は同期化されなければならない。普通、すべての参与するトランザクションがコミットするか、すべてがアボートされるかのいずれかであることが保証されなければならない。2PCは、このアトミック性の課題の解決方法である反面、トランザクションの総体が同じトランザクション結果(すなわち、コミットまたはアボートのいずれか)に達することを許す同期プロトコルであるACPプロトコルのファミリーの一つの代表として、いくつか周知の欠点を抱えている。たとえば、大域トランザクションの最後まで保持されるロックによるシステム全体の中での並行性の低下や、2PCに固有の、環境全体の性能の低下を招く高いメッセージ複雑性である。
【0072】
これらの欠点は、結果的に、多くの場合、2PCの利用を回避させるインプリメンテーションをもたらす。その結果、アプリケーション全体の整合性が危うくなる。クラッシュの場合には、多くの状況では、やっかいであり、しばしば誤りを起こしやすい手作業によって全体の整合性を再び確立しなければならない。
【0073】
一見すると、連鎖トランザクション処理方式が代替となりうるかもしれない。連鎖トランザクション・モデルは、包含されたトランザクションが最終的には成功するということを保証する。これは、トランザクションの総体が2PC処理に包含されるものと仮定せずにそれを保証し、したがって、上述の問題を回避させる。
【0074】
連鎖トランザクション・モデルの欠点は、非同期であることに基づく。まさにその定義により、連鎖トランザクション・モデルは、最終的には、すべての包含されたメンバ・トランザクションがそれらのサービス要求を受けることを保証するが、保証された時間枠の中で受けるということは保証できない。したがって、作業単位の概念を提供しながらも、そのような単位はしばしば、ユーザ(エンドユーザとプログラマの両方)がこの作業単位があるべきとみなすものとは対照的である。より理解しやすい(たとえば結合最大期間を有する)作業単位の概念を実現することはやっかいである。
【0075】
そのうえ、連鎖トランザクション・モデルは、完全なACID機能性を連鎖トランザクションに全体では提供することができないという欠点を抱えている。ACID性は、個々のメンバ・トランザクションだけに利用できる。
【0076】
階層化大域トランザクション
大域トランザクションに含まれる潜在的に分散したトランザクションの総体を処理するための本発明の根本的な概念は、以下の技術に基づく。
【0077】
・トランザクションの総体をトランザクションのグループに分割する。各グループは「トランザクション階層」または単に「階層」と呼ばれる。
【0078】
・各階層をACP(たとえば2PC)プロトコルによって処理し、同期化し、それにより、個々の階層ごとのACID処理結果を保証する。
【0079】
・得られるトランザクションのグループの総体として、すなわち階層の総体として構成された大域トランザクションを、連鎖トランザクションの原理にしたがって、連鎖階層のセットとして処理する。連鎖階層実行は、大域トランザクションのアトミック実行を保証する。
【0080】
階層、すなわちグループに分割されたメンバ・トランザクションの総体を包含する大域トランザクションを処理する手法は、多くの実際の状況で、すべての参加するトランザクションがデフォルトでそれらの終了に同期的に達する必要がないという憶測に基づく。それでも存続することは、すべての参加するトランザクションが同じ判定、すなわちコミットまたはアボートのいずれかに達するということである。この状況では、すべての参加するトランザクションの結果が2PCを介して同期化される必要はない。そのうえ、大域トランザクションを階層の総体に分割する処理は、異なるポリシーにしたがって起こることができる。たとえば、分割方法の例は、ネットワークの同じTPシステムで処理されるトランザクションどうしを同じ階層に分類するものでもよい。この手法は、ACPを介する分散同期化努力を有意に減らす。もう一つの分割ポリシーによると、もっとも重要な回復可能リソースを実施するようなメンバ・トランザクション同士が同じ階層の中で処理される。一般に、参加するトランザクションの総体は、トランザクション結果をACPを介して同期化しなければならない(たとえば、利用者による作業単位の認識を満たすために)ような、直接協力するトランザクション同士のグループに分割される。利用者の視点からは、階層の構造は見えない。すなわち、それは単に一体のトランザクションとして認識される。同じ物理的機械上で動作する参加するトランザクションのセットまたはエンドユーザによって直接認識される作業単位を実行する参加するトランザクションのセットは当然、階層としての候補である。
【0081】
階層間のトランザクション依存性は、一つの階層の中のトランザクションが一斉にコミットしたならば、他の階層もまたコミットするということである。この状況は、協力するトランザクションのグループ(すなわち階層)が協力するトランザクションの他のグループ(すなわち階層)からサービスを要求する場合に頻繁に見ることができる。各個々の階層のトランザクション結果は、2PCによって管理される。この手法は、各階層の処理に対するACID性を保証する。階層のセットそのものは、連鎖トランザクション(上記に概説したような連鎖トランザクションの意味で)の総体として管理され、したがって、「非同期トランザクション束」または「連鎖階層」と呼ばれる。非同期トランザクション束を処理するための連鎖手法はアトミック性を保証する。
【0082】
非同期トランザクション束は、そのインプリメンテーションのために、持続性の回復可能メッセージングに依存する。このような持続性の回復可能待ち行列は、TPシステムの一部であるかもしれず、根底のメッセージング・ミドルウェアによって促進されるかもしれない。MQシリーズは、使用することができる持続性の回復可能待ち行列の一例である。このため、非同期トランザクション束に参加する各階層は、その回復可能リソースを操作して、その適切なビジネス機能を、それが独立型のトランザクションであるかのように実行する。これに加えて、階層内の各トランザクションは、根底のメッセージング層の持続性の回復可能待ち行列にメッセージを入れて、包含する分散アプリケーションの意味的成功のために、前者のトランザクションが確かに実行されなければならない、他の階層のトランザクションからのサービスを要求することを司る。アトミック性を達成するためには、これらの要求を待ち行列に入れる動作が適切な各トランザクションの一部として起こるということが決定的である。代わって、同じ理由から、待ち行列中の要求によって開始される階層内の各トランザクションは、要求そのものを取り出すことがその適切なトランザクションの一部であることを確かめなければならない。その結果、階層の中でトランザクションによって実行されるすべての「PUT」および「GET」は、包含する階層がコミットする場合にコミットされるか、包含する階層がコミットする場合にしかコミットされない。
【0083】
潜在的に分散したトランザクションの総体を階層に分類し、階層のセットを非同期トランザクションの束として構成すると、得られたトランザクション・モデルを「階層化トランザクション(Stratified Transaction)」と呼ぶ。
【0084】
「PUT」および「GET」を適切なトランザクションに参与させるためには、根底の待ち行列インプリメンテーションは、それ自体がリソース・マネージャとして働かなければならない。特に、ACP(たとえば2PC)プロトコルに参加しなければならない。さらには、待ち行列インプリメンテーションの運搬機構は、ひとたび待ち行列システムが「PUT」を待ち行列にコミットすると、その送達が保証されなければならないという意味において処理されなければならない。
【0085】
分散トランザクションの総体を協調させるのに要するネットワーク通信量は、2PCに参加するトランザクションを制限して、すべてを一つの同じ物理的機械上で動作させることによって減らすことができる。これは、特定の階層に関連するすべてのトランザクションが(理想的には)同じ機械上で動作するということを意味する。当然、特定の機械またはTPシステムが多数の階層のホストであってもよい。連鎖トランザクション・モデルを利用して、階層そのものを参加するトランザクションとして協調させることにより、階層化トランザクション全体の整合性のある結果が達成される。
【0086】
図6は、二つのトランザクション階層S1(610)およびS2(620)に分割された(何らかのタイプのポリシーにしたがって)簡単な階層化トランザクションSTの例を示す。階層S1は、S1のコミット有効範囲で処理され、したがって、階層S1の結果にACID性を保証するn個のメンバ・トランザクションT11(611)〜T1n(612)を含む。S1のコミット有効範囲の一部としての階層レベル上の連鎖機構613を介して、S1は、階層S2の非同期処理を出す。ひとたび階層S2が制御を取得し、処理を開始すると、そのm個のメンバ・トランザクションT21(621)〜T2m(622)は、S2のコミット有効範囲で処理されて、ACID性を保証する。上記の説明によると、メンバ・トランザクションT11〜T1nおよびT21〜T2mのグループの中でだけ、ACPプロトコルは処理結果を同期化する。
【0087】
図7は、図6の場合を、ただし、個々のトランザクション階層を連鎖するのにMOMを使用する形態で示す。階層S1の中では、「PUT」701によって階層S2の処理要求を挿入することにより、さらなる階層S2が開始される。分散階層化トランザクションSTの意味的に正しい実行をもたらすためには、S1は、S1のコミット有効範囲の中でその対象の回復可能リソースを操作しなければならない。したがって、S2を開始するメッセージをその局所的な持続性の回復可能待ち行列に挿入することは、S1のコミットの一部である。Q1からQ2へのメッセージの伝達は、利用されるメッセージング・ミドルウェア層によって保証される。S2は、逆に、S2のコミット有効範囲の中でこの要求をその局所待ち行列Q2から「GET」(702)しなければならない。
【0088】
最後に、図8は、本発明による、より複雑な階層化トランザクションを示す。この例の大域トランザクションは、4個のトランザクション階層S1(810)、S2(820)、S3(830)、S4(840)に分割されている。各トランザクション階層は、そのコミット有効範囲の中に、メンバ・トランザクションの総体を含む。保護メッセージ待ち行列の中にメッセージを挿入することにより、メンバ・トランザクションT11が階層S2の処理を要求し(811)、メンバ・トランザクションT12が階層S2およびS3の処理を要求し(812、813)、さらにメンバ・トランザクションT14が階層S3の処理を要求する。そのうえ、トランザクション階層S2の処理の間、メンバ・トランザクションT21が階層S4の処理を要求し(821)、メンバ・トランザクションT23が階層S4の処理を要求する(822)。
【0089】
利点
トランザクションの階層化は、潜在的に分散したトランザクションの総体を協調させるのに必要なネットワーク通信量を減らすことができる。これは、種々のポリシーにしたがって、特定の階層に関して含まれるメンバ・トランザクションをグループ分けすることによって達成される。たとえば、一つのグループ分けポリシーによると、一つの同じ物理的機械上で処理されるすべてのメンバ・トランザクションを、必要なトランザクション・マネージャのインスタンスとともに、一つのトランザクション階層の中で処理することもできる。これが、2PCに準拠するために必要なメッセージを機械境界を越えて送ることを回避させ、階層あたりの協調処理の性能を高める。
【0090】
大域トランザクションを多数の階層に分割する結果として、環境全体の並行性挙動および処理能力が増大する。理由は、各階層は、2PCを介して協調された、より少数のトランザクションしか含まず、各階層内のトランザクションの数の減少のため、階層一つあたりにホールドされるロックがより少ないからである。さらには、各階層は、並行に動作中である他の階層から独立してコミットして、ロックを解除するまでに必要な時間を減らす。
【0091】
ユーザの応答時間は一般に短縮される。理由は、ユーザの要求によって開始された階層は、コミットしたのち、それによって生じた他の階層の正常な完了を待つ必要なく、ただちに戻ることができるからである。
【0092】
ネットワーク中心のコンピューティング・パラダイムおよびオブジェクト要求ブローカ・パラダイムがますます採用されると、結果的にトランザクションの拡散が起こる。これらのトランザクションは、アプリケーションに組み合わせなければならない別々のサービスを提供する。この組み合わせは、しばしば、包含されるトランザクションの協調した結果を保証しなければならない。本発明は、現在の技術水準の機構に比較して、概説した利点を有することにより、これを提供する。
【0093】
したがって、意味的な整合性を危うくすることなく、上述のパラダイムの中でアプリケーションの性能を調整するように努力する、分散アプリケーションの実現者は、本教示を利用するための候補者である。
【0094】
略号
2PC 2相コミット・プロトコル
ACP アトミック・コミット・プロトコル
ISO 国際標準化機構
MOM メッセージ指向性ミドルウェア
OMG オブジェクト管理グループ
TM トランザクション・マネージャ
TP トランザクション処理
【0095】
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)アプリケーション・プログラム定義コミット有効範囲に関してアトミック・コミット・プロトコルによってアプリケーション・プログラムにACID性機能を提供する少なくとも一つのコンピュータ・システムによるトランザクション処理方法において、
それぞれが少なくとも一つのメンバ・トランザクションを含む、第一のトランザクション階層および第二のトランザクション階層を少なくとも含むことと、
第一のステップにおいて、コミット有効範囲をもつ前記第一のトランザクション階層を処理して、前記アトミック・コミット・プロトコルによって処理結果のACID性を保証し、さらに、前記第一のステップにおいて、前記第二のトランザクション階層の処理を要求するトランザクション実行要求を待ち行列に挿入することと、
連鎖トランザクションの概念にしたがって、前記第一のステップを、前記第一のトランザクション階層がその処理を正常にコミットする場合にのみ処理される第二のステップと連鎖させることと、
前記第二のステップにおいて、前記待ち行列から前記トランザクション実行要求を取り出すことを含み、さらに、前記第二のステップにおいて、コミット有効範囲をもつ前記第二のトランザクション階層を処理して、前記アトミック・コミット・プロトコルによって処理結果のACID性を保証することと、
を特徴とする方法。
(2)前記待ち行列への前記トランザクション実行要求の挿入が、前記第一のトランザクション階層の前記コミット有効範囲の一部であり、前記待ち行列からの前記トランザクション実行要求の取り出しが、前記第二のトランザクション階層の前記コミット有効範囲の一部である上記(1)記載のトランザクション処理方法。
(3)前記待ち行列が多数の異なるコンピュータ・システムに分散している、かつ/または、前記待ち行列に挿入される前記要求がトランザクション保護によって扱われる上記(1)または(2)記載のトランザクション処理方法。
(4)前記待ち行列が、前記トランザクション実行要求を非同期に処理することによって非同期トランザクション処理をサポートしている上記(1)〜(3)のいずれか1項記載のトランザクション処理方法。
(5)前記待ち行列が、リソース・マネージャによって管理される耐性保護リソースを表している上記(1)〜(4)のいずれか1項記載のトランザクション処理方法。
(6)前記第一のトランザクション階層および/または前記第二のトランザクション階層によって構成される前記メンバ・トランザクションまたは前記メンバ・トランザクションの一部が、何らかの種類のコンピュータ・ネットワークによって接続された多数のコンピュータ・システムによって処理される上記(1)〜(5)のいずれか1項記載のトランザクション処理方法。
(7)前記アトミック・コミット・プロトコルが2相コミット・プロトコルまたは3相コミット・プロトコルとして実現されている上記(1)〜(6)のいずれか1項記載のトランザクション処理方法。
(8)多数の異なるポリシーが、前記階層それぞれの中で処理されるメンバ・トランザクションを定義する上記(1)〜(7)のいずれか1項記載のトランザクション処理方法。
(9)局所ノード・ポリシーが、同じトランザクション階層の中で処理すべき、同じコンピュータ・システム上で実行されるすべてのメンバ・トランザクションを定義する上記(8)記載のトランザクション処理方法。
【図面の簡単な説明】
【図1】 疑似コードで書かれたトランザクション・プログラムの全体構造を示す図である。
【図2】 トランザクション・アプリケーションの基本制御の流れおよびトランザクション処理システム内の主要構成部品を示す図である。
【図3】 分散トランザクション・モデルを示す図である。
【図4】 連鎖トランザクションの簡単な例を示す図である。
【図5】 分散大域トランザクションを連鎖トランザクション・モデルによって処理するためにMOMを利用する方法を例示する図である。
【図6】 本発明の階層化トランザクションの簡単な例を示す図である。
【図7】 個々のトランザクション階層を連鎖するためにMOMを使用する本発明の階層化トランザクションの簡単な例を示す図である。
【図8】 多数のトランザクション階層を用いる本発明の階層化トランザクションのより複雑な例を示す図である。
【符号の説明】
210、306、307 リソース・マネージャ
220 トランザクション・マネージャ
230 ログ・マネージャ
240 ロック・マネージャ
304、305 通信マネージャ
Claims (9)
- アプリケーション・プログラム定義コミット有効範囲に関してアトミック・コミット・プロトコルによってアプリケーション・プログラムにACID性機能を提供する、大域トランザクションに包含され、階層と呼ばれるトランザクションのグループに分割された潜在的に分散したトランザクションの総体のトランザクション処理方法であって、
第一のステップにおいて、トランザクションが整合性のある完全な変換である場合にトランザクション・ログとして記憶させ、前記アトミック・コミット・プロトコルによって処理結果のACID性を保証するコミット有効範囲を有する、前記トランザクションの少なくとも一つをメンバとして含む第一のトランザクション階層を処理するステップと、
前記トランザクションの少なくとも他の一つをメンバとして含む第二のトランザクション階層の処理を要求するトランザクション実行要求を、トランザクション・ログを使用して回復可能に構成された待ち行列に挿入するステップと、
前記待ち行列から前記トランザクション実行要求を取り出すステップと、
連鎖トランザクションの概念にしたがって前記第一のステップと連鎖される、前記第一のトランザクション階層が処理をコミットするか否かのみを処理する第二のステップにおいて、前記アトミック・コミット・プロトコルによって前記処理結果のACID性を保証するコミット有効範囲を有する前記第二のトランザクション階層を処理するステップと
を含む、方法。 - 前記待ち行列への前記トランザクション実行要求の挿入が、前記第一のトランザクション階層の前記コミット有効範囲の一部であり、前記待ち行列からの前記トランザクション実行要求の取り出しが、前記第二のトランザクション階層の前記コミット有効範囲の一部である請求項1記載のトランザクション処理方法。
- 前記待ち行列が多数の異なるコンピュータ・システムに分散している、かつ/または、前記待ち行列に挿入される前記要求がトランザクション保護によって扱われる請求項1または2記載のトランザクション処理方法。
- 前記待ち行列が、前記トランザクション実行要求を非同期に処理することによって非同期トランザクション処理をサポートしている請求項1〜3のいずれか1項記載のトランザクション処理方法。
- 前記待ち行列が、リソース・マネージャによって管理される耐性保護リソースを表している請求項1〜4のいずれか1項記載のトランザクション処理方法。
- 前記第一のトランザクション階層および/または前記第二のトランザクション階層によって構成される前記メンバ・トランザクションまたは前記メンバ・トランザクションの一部が、何らかの種類のコンピュータ・ネットワークによって接続された多数のコンピュータ・システムによって処理される請求項1〜5のいずれか1項記載のトランザクション処理方法。
- 前記アトミック・コミット・プロトコルが2相コミット・プロトコルまたは3相コミット・プロトコルとして実現されている請求項1〜6のいずれか1項記載のトランザクション処理方法。
- 多数の異なるポリシーが、前記階層それぞれの中で処理されるメンバ・トランザクションを定義する請求項1〜7のいずれか1項記載のトランザクション処理方法。
- 局所ノード・ポリシーが、同じトランザクション階層の中で処理すべき、同じコンピュータ・システム上で実行されるすべてのメンバ・トランザクションを定義する請求項8記載のトランザクション処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP96110649 | 1996-07-02 | ||
DE96110649.9 | 1996-07-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1069418A JPH1069418A (ja) | 1998-03-10 |
JP3672208B2 true JP3672208B2 (ja) | 2005-07-20 |
Family
ID=8222968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16757197A Expired - Fee Related JP3672208B2 (ja) | 1996-07-02 | 1997-06-24 | 階層化トランザクション処理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6012094A (ja) |
JP (1) | JP3672208B2 (ja) |
DE (1) | DE69718715T2 (ja) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2313524A (en) * | 1996-05-24 | 1997-11-26 | Ibm | Providing communications links in a computer network |
GB2321540A (en) * | 1997-01-25 | 1998-07-29 | Ibm | Automatic transactional locking using object request broker |
GB2330923A (en) * | 1997-10-28 | 1999-05-05 | Ibm | Transaction manager |
US6233585B1 (en) * | 1998-03-12 | 2001-05-15 | Crossworlds Software, Inc. | Isolation levels and compensating transactions in an information system |
US6529932B1 (en) * | 1998-04-01 | 2003-03-04 | Microsoft Corporation | Method and system for distributed transaction processing with asynchronous message delivery |
US6119129A (en) * | 1998-05-14 | 2000-09-12 | Sun Microsystems, Inc. | Multi-threaded journaling in a configuration database |
US6247023B1 (en) * | 1998-07-21 | 2001-06-12 | Internationl Business Machines Corp. | Method for providing database recovery across multiple nodes |
GB2343020A (en) * | 1998-10-19 | 2000-04-26 | Ibm | Handling transaction failures in a transaction processing system |
US6446087B1 (en) * | 1998-11-04 | 2002-09-03 | Lucent Technologies Inc. | System for maintaining the integrity of application data |
JP4094752B2 (ja) * | 1998-11-27 | 2008-06-04 | 株式会社日立製作所 | トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体 |
US6625601B1 (en) * | 1999-01-07 | 2003-09-23 | Compaq Information Technologies Group, L.P. | Escrow-locking multithreaded process-pair resource manager dictionary |
US6138143A (en) * | 1999-01-28 | 2000-10-24 | Genrad, Inc. | Method and apparatus for asynchronous transaction processing |
US7206805B1 (en) * | 1999-09-09 | 2007-04-17 | Oracle International Corporation | Asynchronous transcription object management system |
US6918053B1 (en) * | 2000-04-28 | 2005-07-12 | Microsoft Corporation | Compensation framework for long running transactions |
US6625602B1 (en) * | 2000-04-28 | 2003-09-23 | Microsoft Corporation | Method and system for hierarchical transactions and compensation |
US6651073B1 (en) * | 2000-05-23 | 2003-11-18 | International Business Machines Corporation | Method and apparatus for insuring database data integrity without data recovery logging |
US7328263B1 (en) * | 2001-01-30 | 2008-02-05 | Cisco Technology, Inc. | Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach |
JP3732113B2 (ja) * | 2001-05-14 | 2006-01-05 | 株式会社八十二銀行 | トランザクション制御システム、方法及びプログラム |
US7191337B2 (en) * | 2001-06-30 | 2007-03-13 | International Business Machines Corporation | Apparatus for wildcarded security policy and method therefor |
GB0130399D0 (en) * | 2001-12-19 | 2002-02-06 | Ibm | Message ordering in a messaging system |
US7181489B2 (en) * | 2002-01-10 | 2007-02-20 | International Business Machines Corporation | Method, apparatus, and program for distributing a document object model in a web server cluster |
US7526519B2 (en) * | 2002-05-01 | 2009-04-28 | Bea Systems, Inc. | High availability application view deployment |
US7222148B2 (en) * | 2002-05-02 | 2007-05-22 | Bea Systems, Inc. | System and method for providing highly available processing of asynchronous service requests |
GB0215808D0 (en) * | 2002-07-09 | 2002-08-14 | Ibm | A system and method for managing transactions in a messaging system |
US20040068479A1 (en) * | 2002-10-04 | 2004-04-08 | International Business Machines Corporation | Exploiting asynchronous access to database operations |
GB0225733D0 (en) * | 2002-11-05 | 2002-12-11 | Ibm | Persistent messaging in a transaction processing environment |
US20040133458A1 (en) * | 2002-12-23 | 2004-07-08 | Sap Aktiengesellschaft | Distribution scheduling system and method |
US7730046B2 (en) * | 2002-12-23 | 2010-06-01 | Sap Ag | Nomination locking system and method |
US7584474B2 (en) * | 2003-02-25 | 2009-09-01 | Bea Systems, Inc. | Systems and methods for transaction chaining |
US7346905B2 (en) * | 2003-06-10 | 2008-03-18 | International Business Machines Corporation | Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment |
US7409587B2 (en) * | 2004-08-24 | 2008-08-05 | Symantec Operating Corporation | Recovering from storage transaction failures using checkpoints |
GB0324961D0 (en) * | 2003-10-25 | 2003-11-26 | Ibm | Invocation of a follow on unit of work |
US7730489B1 (en) * | 2003-12-10 | 2010-06-01 | Oracle America, Inc. | Horizontally scalable and reliable distributed transaction management in a clustered application server environment |
KR100659971B1 (ko) * | 2003-12-26 | 2006-12-22 | 한국전자통신연구원 | 웹서비스 트랜잭션의 자동중단 처리시스템 및 방법 |
US7523088B2 (en) * | 2004-03-31 | 2009-04-21 | International Business Machines Corporation | Method for increasing system resource availability in database management systems |
GB0424489D0 (en) * | 2004-11-05 | 2004-12-08 | Ibm | A method apparatus computer program and computer program product for reducing the number of operations performed by a persistence manager against a persistent |
GB0426847D0 (en) * | 2004-12-08 | 2005-01-12 | Ibm | Method and system of committing operations of a synchronised transaction |
US7603363B2 (en) * | 2005-01-05 | 2009-10-13 | Microsoft Corporation | Systems and methods for controlling transaction participation for groups of steps in a workflow |
US7350034B2 (en) * | 2005-06-20 | 2008-03-25 | International Business Machines Corporation | Architecture support of best-effort atomic transactions for multiprocessor systems |
US7877350B2 (en) | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
US8078588B2 (en) * | 2005-10-10 | 2011-12-13 | Oracle International Corporation | Recoverable execution |
JPWO2007088728A1 (ja) * | 2006-01-31 | 2009-06-25 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | 多層分散処理システム |
DE102006014909A1 (de) * | 2006-03-30 | 2007-10-18 | Siemens Ag | Verfahren zum rechnergestützten Betrieb eines verteilten Netzsystems |
US8538931B2 (en) * | 2006-04-28 | 2013-09-17 | International Business Machines Corporation | Protecting the integrity of dependent multi-tiered transactions |
US8015570B2 (en) * | 2006-06-30 | 2011-09-06 | Microsoft Corporation | Arbitration mechanisms to deal with conflicting applications and user data |
EP2050013A4 (en) | 2006-08-10 | 2010-01-06 | Ab Initio Software Llc | DISTRIBUTION SERVICES IN DIAGRAM-BASED CALCULATIONS |
US20080082761A1 (en) * | 2006-09-29 | 2008-04-03 | Eric Nels Herness | Generic locking service for business integration |
US7921075B2 (en) * | 2006-09-29 | 2011-04-05 | International Business Machines Corporation | Generic sequencing service for business integration |
US9514201B2 (en) * | 2006-10-13 | 2016-12-06 | International Business Machines Corporation | Method and system for non-intrusive event sequencing |
US9274857B2 (en) | 2006-10-13 | 2016-03-01 | International Business Machines Corporation | Method and system for detecting work completion in loosely coupled components |
US7805420B2 (en) * | 2006-11-20 | 2010-09-28 | Microsoft Corporation | Versioning and concurrency control for multiple client access of data |
US7921189B2 (en) * | 2006-11-20 | 2011-04-05 | Microsoft Corporation | Single virtual client for multiple client access and equivalency |
US8140479B2 (en) * | 2006-12-21 | 2012-03-20 | International Business Machines Corporation | Logical classification of objects on a computer system |
US9449047B2 (en) * | 2007-06-19 | 2016-09-20 | Sybase, Inc. | Dynamic modification of schemas in streaming databases |
US7899999B2 (en) * | 2007-06-27 | 2011-03-01 | Microsoft Corporation | Handling falsely doomed parents of nested transactions |
KR101758670B1 (ko) * | 2007-07-26 | 2017-07-18 | 아브 이니티오 테크놀로지 엘엘시 | 에러 핸들링이 가능한 그래프 기반의 트랜잭션 연산 처리 방법 및 시스템 |
US7890472B2 (en) | 2007-09-18 | 2011-02-15 | Microsoft Corporation | Parallel nested transactions in transactional memory |
US9027030B2 (en) | 2007-11-29 | 2015-05-05 | Red Hat, Inc. | Commit-one-phase distributed transactions with multiple starting participants |
US8073962B2 (en) * | 2008-03-03 | 2011-12-06 | Oracle International Corporation | Queued transaction processing |
JP5385545B2 (ja) * | 2008-04-17 | 2014-01-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トランザクションの実行を制御する装置及び方法 |
US8352421B2 (en) * | 2008-05-28 | 2013-01-08 | Red Hat, Inc. | Recording distributed transactions using probabalistic data structures |
US7873604B2 (en) * | 2008-05-29 | 2011-01-18 | Red Hat, Inc. | Batch recovery of distributed transactions |
US9418005B2 (en) | 2008-07-15 | 2016-08-16 | International Business Machines Corporation | Managing garbage collection in a data processing system |
US20100017583A1 (en) * | 2008-07-15 | 2010-01-21 | International Business Machines Corporation | Call Stack Sampling for a Multi-Processor System |
TW201032535A (en) * | 2008-10-14 | 2010-09-01 | Ibm | A method of handling a message |
US9818118B2 (en) * | 2008-11-19 | 2017-11-14 | Visa International Service Association | Transaction aggregator |
NO332009B1 (no) * | 2008-12-12 | 2012-05-21 | Cisco Systems Int Sarl | Fremgangsmate for a igangsette kommunikasjonsforbindelser |
KR20150038758A (ko) * | 2009-02-13 | 2015-04-08 | 아브 이니티오 테크놀로지 엘엘시 | 태스크 실행 관리 |
US20100333071A1 (en) * | 2009-06-30 | 2010-12-30 | International Business Machines Corporation | Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines |
US8667329B2 (en) * | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
US8626705B2 (en) * | 2009-11-05 | 2014-01-07 | Visa International Service Association | Transaction aggregator for closed processing |
US9176783B2 (en) | 2010-05-24 | 2015-11-03 | International Business Machines Corporation | Idle transitions sampling with execution context |
US8843684B2 (en) | 2010-06-11 | 2014-09-23 | International Business Machines Corporation | Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration |
EP2583168B1 (en) | 2010-06-15 | 2017-11-08 | Ab Initio Technology LLC | Dynamically loading graph-based computations |
US8799872B2 (en) | 2010-06-27 | 2014-08-05 | International Business Machines Corporation | Sampling with sample pacing |
US8799904B2 (en) | 2011-01-21 | 2014-08-05 | International Business Machines Corporation | Scalable system call stack sampling |
US9055065B2 (en) * | 2011-11-21 | 2015-06-09 | Red Hat, lnc. | Managing participant order in distributed transactions |
US20130160022A1 (en) * | 2011-12-19 | 2013-06-20 | International Business Machines Corporation | Transaction manager for negotiating large transactions |
US9760584B2 (en) * | 2012-03-16 | 2017-09-12 | Oracle International Corporation | Systems and methods for supporting inline delegation of middle-tier transaction logs to database |
US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
US9274926B2 (en) | 2013-01-03 | 2016-03-01 | Ab Initio Technology Llc | Configurable testing of computer programs |
FR3001816B1 (fr) * | 2013-02-05 | 2015-03-06 | Thales Sa | Systeme de processeur multi-utilisateurs de traitement d'informations |
GB2512086A (en) | 2013-03-20 | 2014-09-24 | Ibm | Transaction capable queuing |
US9304839B2 (en) | 2013-04-30 | 2016-04-05 | Hewlett Packard Enterprise Development Lp | Resending messages |
US9524510B2 (en) * | 2013-10-02 | 2016-12-20 | Turn Inc. | Adaptive fuzzy fallback stratified sampling for fast reporting and forecasting |
WO2015085152A1 (en) | 2013-12-05 | 2015-06-11 | Ab Initio Technology Llc | Managing interfaces for dataflow graphs composed of sub-graphs |
WO2016155002A1 (en) | 2015-04-03 | 2016-10-06 | Yahoo! Inc. | Method and system for data recovery in a data system |
US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
AU2016377516B2 (en) | 2015-12-21 | 2020-01-30 | Ab Initio Technology Llc | Sub-graph interface generation |
CN110300984B (zh) | 2017-02-17 | 2024-03-26 | 诺基亚技术有限公司 | 改变在区块链中记录的智能合约 |
CN111143746B (zh) * | 2019-12-27 | 2023-10-20 | 支付宝(杭州)信息技术有限公司 | 一种灰度任务的发布方法、装置及设备 |
US20220321567A1 (en) * | 2021-03-31 | 2022-10-06 | Netapp, Inc. | Context Tracking Across a Data Management Platform |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5170480A (en) * | 1989-09-25 | 1992-12-08 | International Business Machines Corporation | Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time |
US5247664A (en) * | 1991-03-28 | 1993-09-21 | Amoco Corporation | Fault-tolerant distributed database system and method for the management of correctable subtransaction faults by the global transaction source node |
GB2263988B (en) * | 1992-02-04 | 1996-05-22 | Digital Equipment Corp | Work flow management system and method |
SE9300671D0 (sv) * | 1993-03-01 | 1993-03-01 | Sven Nauckhoff | Work flow management |
-
1997
- 1997-06-24 JP JP16757197A patent/JP3672208B2/ja not_active Expired - Fee Related
- 1997-06-30 US US08/884,954 patent/US6012094A/en not_active Expired - Fee Related
- 1997-07-01 DE DE69718715T patent/DE69718715T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6012094A (en) | 2000-01-04 |
DE69718715T2 (de) | 2003-09-18 |
DE69718715D1 (de) | 2003-03-06 |
JPH1069418A (ja) | 1998-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3672208B2 (ja) | 階層化トランザクション処理方法 | |
CN104793988B (zh) | 跨数据库分布式事务的实现方法和装置 | |
US5452445A (en) | Two-pass multi-version read consistency | |
US4868744A (en) | Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log | |
JP5296615B2 (ja) | 分散トランザクション回復システムおよび方法 | |
EP1341088B1 (en) | Rebuilding "in-doubt" states reliably after multiple system failures in a transaction processing system | |
Mueller et al. | A nested transaction mechanism for LOCUS | |
US20040158549A1 (en) | Method and apparatus for online transaction processing | |
JPH05197604A (ja) | マルチプロセッサ・コンピュータ及びその動作方法 | |
Samaras et al. | Two-phase commit optimizations and tradeoffs in the commercial environment | |
JPH0784815A (ja) | フォールト・トレラント・トランザクション指向データ処理システムおよび方法 | |
US6625601B1 (en) | Escrow-locking multithreaded process-pair resource manager dictionary | |
EP0834122B1 (en) | Synchronisation procedure in a routing node | |
Pandey et al. | LIFT-A new linear two-phase commit protocol | |
Satyanarayanan et al. | Efficient execution of read-only transactions in replicated multiversion databases | |
CN110532069A (zh) | 一种分布式事务提交方法及装置 | |
US20070038569A1 (en) | Inherited transactions in asynchronous messaging | |
US20030191918A1 (en) | Data processing arrangement and method | |
EP0817019B1 (en) | Method of stratified transaction processing | |
WO2023103340A1 (zh) | 一种区块数据提交的方法及装置 | |
Liskov et al. | Issues in process and communication structure for distributed programs | |
Rawashdeh et al. | An optimistic approach in distributed database concurrency control | |
Kiviniemi et al. | Transaction processing in the RODAIN real-time database system | |
Siek et al. | Atomic RMI 2: Highly parallel pessimistic distributed transactional memory | |
Patiño-Martínez et al. | Synchronizing group transaction with rendezvous in a distributed Ada environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040406 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040705 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040708 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050405 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20050405 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050415 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |