JPH06202996A - 加入者分散2相コミット・プロトコルの拡張機能 - Google Patents

加入者分散2相コミット・プロトコルの拡張機能

Info

Publication number
JPH06202996A
JPH06202996A JP5202200A JP20220093A JPH06202996A JP H06202996 A JPH06202996 A JP H06202996A JP 5202200 A JP5202200 A JP 5202200A JP 20220093 A JP20220093 A JP 20220093A JP H06202996 A JPH06202996 A JP H06202996A
Authority
JP
Japan
Prior art keywords
machine
communication manager
subscriber
operating system
phase
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5202200A
Other languages
English (en)
Other versions
JP2675968B2 (ja
Inventor
Roger L Brockmeyer
ロジャー・ライル・ブロックマイヤー
Richard Dievendorff
リチャード・ダイベンドルフ
Daniel E House
ダニエル・エドワード・ハウス
Earle H Jenner
アール・エイチ・ジェナー
Margaret K Labelle
マーガレット・ケリー・ラベル
Michael G Mall
マイケル・ジェラルド・モール
Stuart L Silen
スチュアート・ルイス・サイレン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06202996A publication Critical patent/JPH06202996A/ja
Application granted granted Critical
Publication of JP2675968B2 publication Critical patent/JP2675968B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 データ処理システムで用いられている通信メ
カニズムに依存せずに、物理的に離れたエージェント間
で分散加入を可能にする2相コミット・プロトコルの拡
張機能を提供する。 【構成】 任意の通信メカニズムを使用してコーディネ
ータ機能を分散させることができる第1相終了処理(E
POP)と呼ばれる特別処理ステージが2相コミット・
プロトコルに追加される。加入者が制御権を得られる特
別ステージで、2相コミット・プロトコル・シーケンス
を分散システムに送る。通信メカニズムは、それが分散
コーディネータの一部になるように用いられる。コーデ
ィネータそれ自体は他のシステムの知識を要しない。特
別処理ステージは、第1相終了処理イネーブル(EEP
OEP)と呼ばれるオペレーティング・システム・サー
ビスによって有効になる。EEPOEPにより、2相コ
ミット・プロトコルの拡張機能が実行側システム上で使
用できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にはデータ処理
システムに関し、特に加入者が遠隔加入者と相談するた
めに決定プロセスを拡張できるように、或いは他のロー
カル操作が実行できるようにする2相コミット・プロト
コルの拡張機能に関する。本発明は、通信マネジャを用
いて、分散したコミット・スコープを実現できるシステ
ムの開発に用いることができる。ユーザは分散可能であ
り、加入者も同様に分散可能である。
【0002】
【従来の技術】標準的な2相コミット・プロトコルは、
集中管理プロセス(すなわちコーディネータ)がサテラ
イト・プロセス(すなわち加入者)によるデータ変更の
結果の"硬化"を同期化することができる周知の方法であ
る。2相とは"投票"相(すなわちPREPARE信号を
加入者に送ること)と"実行"相(すなわちCOMMIT
またはBACKOUT信号を加入者に送ること)であ
る。
【0003】加入者は、復元可能なデータを変更した時
はコーディネータに通知しなければならない。データが
コミットされる準備が出来ると(すなわちユーザがCO
MMITまたはBACKOUTを要求していると)、コ
ーディネータは、2相コミット・プロトコルを使用し
て、すべての加入者が前へ進む(すなわちデータをコミ
ットする)かまたは後へ進む(すなわちデータの変更を
バックアウトする)ようにしなければならない。コーデ
ィネータは、全加入者の実行が同じになるようにしなけ
ればならない。ある加入者がコミットしてある加入者が
バックアウトすることは全く許されない。現在の2相コ
ミット・プロトコルでは、複数の加入者間でデータの保
全性が維持されるのは、データに変更を加える前に全加
入者の同意をとりつけることによる。
【0004】2相コミット・プロトコルの詳細について
は下記の文献を参照されたい。 Cruz、R.、Data Recovery in IBM Database 2、IBM Sy
stems Journal、vol.23、no.2、1984。 Date、C.J.、An Introduction to Database System
s、vol.II、Addison-Wesley(1983)。 Gray、J.N.、Notes on Data Base Operating System
s、IBM ReaserchReport RJ2188、Feb.1978。 Haerder、T.、and A.Reuter、Principles of Transac
tion-OrientedDatabase Recovery、ACM Computing Serv
eys、vol.15、no.4、December 1983。 Lindsay、B.、and C.Mohan、Efficient Commit Proto
cols for the Tree ofProcesses Model of Distributed
Transactions、IBM Research Report RJ3881、June
2、1983。
【0005】2相コミット・プロトコルは分散データベ
ースに応用されているが、その成果は限られる。従来技
術では、分散データベースを扱うために集中管理とリニ
アの両方式の2相コミット・プロトコルが検討されてい
る。一例として、C.J.Date、B.J.LindsayらによるN
otes on Distributed Databases、IBM ResearchReport
RJ2571、July 1979を参照されたい。この文献では323
ページ以降で分散データベースに用いるコミット・プロ
トコルが解説されている。
【0006】システム上の遠隔加入者がさまざまな通信
媒体によって接続された分散データ処理システムに、2
相コミット・プロトコルを応用する際には1つ問題があ
る。分散環境の場合、コーディネータの実行は、各種の
通信媒体によって接続できるシステム全体に行き渡るよ
うにしなければならない。現在、このような環境の2相
コミット・プロトコルは実現が容易ではない。既存の分
散コミット・スコープ・システムは通常、1つの通信マ
ネジャに依存してコーディネータとして機能するか、ま
たは分散データベース・マネジャに限定される。また、
分散処理システムの各サイトのコーディネータは、シス
テム内の全サイトのIDを認識する必要があり、コーデ
ィネータが更に複雑になる。
【0007】分散システムの2相コミット・プロトコル
に関しては、より柔軟なアプローチも望まれる。リソー
ス・マネジャは、コーディネータからのPREPARE
信号にある方法でしか応答しない。これらはCOMMI
Tへの投票を示すYESか、BACKOUTへの投票を
示すNO、または、基本的な2相コミット・プロトコル
に対して最適化された場合は、ファイルがREAD O
NLYであることを示すFORGETである。しかしコ
ーディネータが、通信リソース・マネジャ(APPC/
MVSなど)に依存しない時は、これらの応答は適切で
はないことがある。YES/COMMIT応答により、
コーディネータはコミットするリソースが他にない場合
でも、作業単位についてログ・レコードの書込みを余儀
なくされる。これにより性能は落ち、システム・スルー
プットが下がり、システム再開時間が長くなる。NO/
COMMIT応答では、作業単位がバックアウトされ
る。FORGET/READ ONLY応答では、通信
リソース・マネジャが、その必要があっても作業単位に
関係しなくなる。
【0008】
【発明が解決しようとする課題】本発明の目的は、通信
マネジャを使用して、同種または異種オペレーティング
・システム間に分散コミット・スコープを提供すること
である。
【0009】本発明の目的は、データ処理システムで用
いられている通信メカニズムに依存せずに、物理的に離
れたエージェント間で分散加入を可能にする2相コミッ
ト・プロトコルの拡張機能を提供することである。
【0010】本発明の目的は、物理的に離れたエージェ
ントが存在する時に、2相コミット・プロトコルの性能
を最適化することである。
【0011】
【課題を解決するための手段】本発明に従って、2相コ
ミット・プロトコルに特別処理ステージが追加される。
この特別ステージは第1相終了処理(EPOP)と呼ば
れ、任意の通信メカニズムを使用してシステム全体にコ
ーディネータ機能を分散させることができる。第1相終
了処理は加入者が制御権を得られる特別ステージであ
る。この特別ステージでは、加入者が2相コミット・プ
ロトコルのシーケンスを分散システムに送る。通信メカ
ニズムは、これが分散コーディネータの一部になるよう
に用いられる。コーディネータ自体は他のシステムの知
識を要しない。
【0012】特別処理ステージは、第1相終了処理イネ
ーブル(EEPOEP)と呼ばれるオペレーティング・
システムのサービスによって有効になる。特別ステージ
は、EEPOEPにより実行側システム上で使用でき
る。これにより、分散データベースをサポートできるだ
けでなく、分散したユーザと分散した汎用リソース・マ
ネジャ(障害に耐える保護リソースを所有するプロセス
であるリソース・マネジャなど)もサポートされる。
【0013】本発明の態様に従って、コーディネータか
らのPREPARE信号に応答して新しい応答がリソー
ス・マネジャによって使用できる。この新しい応答はA
BSTAINと呼ばれる。リソース・マネジャからコー
ディネータへのこの応答は、リソース・マネジャが作業
単位の2相コミット・プロセスに関係し続けようとする
が、作業単位の最終決定(すなわちCOMMITまたは
BACKOUT)には影響を与えようとしないことを示
す。ABSTAIN応答を使用することで、本発明に従
った分散された2相コミット・プロトコルの性能が更に
最適化される。
【0014】
【実施例】各図を参照する。図1乃至図4は、仮想端末
アクセス方式(VTAM)12とジョブ入力システム
(JES)13がインストールされたメインフレーム・
コンピュータ11から成るトランザクション処理システ
ムを示す。図に示したVTAM12はアドレス空間であ
り、そのアドレス空間内に、直接アクセス記憶装置(D
ASD)15と通信するアクセス方式ルーチンがある。
DASDにはデータベースとプログラム・ライブラリが
格納される。VTAM12はローカル端末16とリモー
ト端末17を伴う。システムのオンライン・ユーザは、
複数のローカル端末16とリモート端末17を介してデ
ータにアクセスする。ジョブ入力システム(JES)1
3は、ローカル・ジョブ入力/出力(I/O)装置18
とリモート・ジョブI/O装置19の両方と通信する。
【0015】VTAM12とJES13はいずれも、コ
ンピュータ11にインストールされる基本オペレーティ
ング・システムと通信する。オペレーティング・システ
ムは、システム・リソースを中央コンソール22や、機
能コンソール23、及びJES13と共有するマスタ・
スケジューラ21を含む。JES13は、オペレーティ
ング・システムの一部であるジョブ・スケジューラ24
に入力されるジョブ・キューを生成する。このキューは
VTAM12に入力される。
【0016】オペレーティング・システムは、たとえば
IBMの多重仮想記憶(MVS)オペレーティング・シ
ステムである。MVSオペレーティング・システムは、
タスク・スーパバイザ25、プログラム・マネジャ2
6、タイマ・スーパバイザ27、仮想記憶マネジャ2
8、実記憶マネジャ29、補助(またはページ)記憶マ
ネジャ30、復元終了マネジャ31、入力/出力システ
ム(IOS)機能32などを含む。これらはすべて、各
種の割込みハンドラ34からの入力を受信するシステム
状態機能33と通信し、出力をシステム・リソース・マ
ネジャ35に提供する。また、タスク・スーパバイザ2
5は、ジョブ・スケジューラ24及びディスパッチャ3
6の両方と通信する。ディスパッチャ36は、中央処理
装置(CPU)サービスのためにキューイングされたリ
クエストを持つ。
【0017】以上は、MVSオペレーティング・システ
ムの概略である。MVSオペレーティング・システムの
詳細についてはH.Lorin及びH.M.DeitelによるOperat
ingSystems、Addison-Wesley(1981)、並びにH.M.De
itelによるOperatingSystems、Addison-Wesley(1984)
の21章を参照されたい。
【0018】従来の2相コミット・プロトコル図5は、
従来の2相コミット・プロトコルの代表例を示すタイミ
ングチャートである。このタイミングチャートは、2つ
のリソース・マネジャP1、P2を想定している。ユーザ
はそのいずれかまたは両方を呼出すことができる。リソ
ース・マネジャP1、P2は、DB2、IMS/DL1な
どのプログラムである。DB2はIBMデータベース製
品で、IMS/DL1はIBM情報管理システム製品で
あり、このトランザクション処理システムにDL/1デ
ータベースへのアクセスを与えるサービス・プログラム
を含む。ただDB2とIMS/DL1は一例にすぎず、
他のトランザクション処理システムも使用できる。コー
ディネータは図5ではCOORと呼ばれ、図1乃至図4
に関して挙げたIBMのMVS(多重仮想記憶)オペレ
ーティング・システムなど適切なオペレーティング・シ
ステムのモジュールでもある。
【0019】ここで図5と図8を参照する。この例のプ
ロセスは図8の機能ブロック101から始まり、ここで
ユーザがデータを変更するかコミット/バックアウトす
るかを決定する。決定がデータの変更であれば、(この
例では)変更されるデータがP1データかP2データかが
ブロック102で判定される。P1データなら、P1デー
タが機能ブロック103で変更される。これは図5では
ステップ1として示した。データが変更されるとP1
独自にこれらデータ変更結果をログする(図8の機能ブ
ロック104)。次に図8の機能ブロック105と図5
のステップ2で、P1 がコーディネータ(COOR)
に、このユーザがそのデータ変更結果を何時コミットま
たはバックアウトしようとするかの通知を受けなければ
ならないことを伝える。ここで処理がユーザに戻る。
【0020】ここでユーザがあるP2 データを変更する
とする。その場合、プロセスは判定ブロック101、1
02から機能ブロック106に進み、そこでP2 データ
が変更される。図5ではこれをステップ3として示し
た。P1 のデータ変更と同様にデータが変更された時、
2 は独自にこれらデータ変更結果をログする(図8の
機能ブロック107)。次に図8の機能ブロック108
と図5のステップ4で、P2 はコーディネータ(COO
R)に、このユーザが何時そのデータ変更結果をコミッ
トまたはバックアウトするかという通知を受けなければ
ならないことを伝える。この点で処理はユーザに戻る。
【0021】2相コミット・プロセスは図5のステップ
5から始まる。例ではこの時、ユーザが2つの加入者P
1、P2でそのデータ変更結果をすべてコミットすること
に決める。これは、適切なコマンドをコーディネータ
(COOR)に対して直接実行することによって行なわ
れる(図5のステップ5)。コーディネータは、このコ
マンドを受信してから、データ変更結果の硬化を2つの
加入者P1、P2と同期化しなければならない。2相コミ
ット・プロトコルの第1ステップとして、コーディネー
タは機能ブロック110でPREPARE信号をP2
1に送る(図5のステップ6、7)。コーディネータ
は次に、P2、P1からの投票を待つ(図8の判定ブロッ
ク111)。
【0022】図5でP1 はPREPARE信号にYES
を投じる(ステップ8)。これは、P1 がデータ変更結
果を硬化するか、またはバックアウトするかのいずれ
か、コーディネータが指示したとおりに準備が整ってい
ることを示す。図5のステップ9でP2も同様にPRE
PARE信号にYESを投じる。すなわちP2はここで
前または後に進む準備が出来ている。この時、コーディ
ネータは加入者から期待していた投票をすべて受信して
いる。コーディネータは、判定ブロック112で投票を
もとにして(すべての投票がYESなら)前へ進むか、
(すべての投票がYESでなければ)後に進むかを決定
する。これはアトミック・インスタントとして知られて
いる。
【0023】この例では、いずれの投票もYESなの
で、コーディネータは前へ進み、レコードを保証された
硬化媒体上のログに書込むことを決定する(機能ブロッ
ク113)。図5ではこれをステップ10に"*"で示し
ている。これは決定が行なわれたという意味である。ロ
グに書込みをすることによって、システムが障害を起こ
すか、またはたとえリソース・マネジャでも障害を起こ
した時は、コーディネータは再び同期をとり、各加入者
に前または後に進むかどうかを伝えることができる。再
開時にログにアトミック・インスタント・レコードがあ
る場合、コーディネータは加入者に、ログ・レコードに
記録された決定事項に応じて前または後に進むことを伝
える。ログにアトミック・インスタント・レコードがな
い場合、決定が行なわれる前に障害が発生している。そ
の場合の処理はすべてのデータ変更結果をバックアウト
することである。
【0024】図の例の場合、コーディネータは前進する
(すなわちコミットする)という信号をP2 に送り(図
5のステップ11)、図5のステップ12で後進すると
いう信号をP1 に送る。このコミット機能は図8の機能
ブロック114に示した。コーディネータは、前進する
ことを加入者に通知した後、各加入者がそのデータ変更
結果を硬化したことを確認応答するまで待たなければな
らない(図8の機能ブロック115)。図5ではP1
コーディネータに、そのデータ変更結果の硬化を終えた
ことを通知し(ステップ13)、P2 はコーディネータ
に、そのデータ変更結果の硬化を終えたことをステップ
14で通知する。これら確認応答が受信されると、コー
ディネータはユーザP1とP2の関係を忘れることができ
る。従って、コーディネータは別のログ・レコードに書
込みをし(図5のステップ15の"#")、先に書込みを
したアトミック・インスタント・レコードを取消す。こ
れによりコーディネータは、再開時にログを読取る際に
作業単位が終了したかどうかを知ることができる。図8
の機能ブロック116でログが変更された後、処理はユ
ーザに戻る。
【0025】図5、図8について説明したプロセスは従
来の2相コミット・プロトコルの応用である。本発明の
背景を説明するためにのみここに記した。加入者P1
2の独自のログ処理の詳細は図5、図8には示してい
ない。ただし、これら"加入者"ログの詳細は分散コミッ
トの流れを理解するうえで大切である。P1、P2のログ
は、図5のステップ10のコーディネータ・ログに示す
ように、アトミック・インスタント・ログ・レコードを
含まない。このレコードを持つのはコーディネータだけ
である。加入者は代わりに他の一連のエントリ・ログを
使用する。これらの加入者のログ・エントリの詳細は、
重要ではあるが本発明には含まれない。
【0026】図5のタイミングチャートに示した基本的
な2相コミット・プロトコルは、PREPARE信号に
別の応答を与えることによって最適化されている。この
応答はFORGETまたはREAD ONLYである。
図6に、図5のタイミングチャートをもとにし、加入者
1、P2の両方がコーディネータからのPREPARE
信号に応答してFORGETを投じる場合のタイミング
チャートを示す。ステップ10乃至14は省略してい
る。すなわちコーディネータは、FORGET応答をす
べて受信した後、前後に進む決定はせず、記録されるア
トミック・インスタントはなく、コーディネータはただ
ユーザと加入者P1、P2の関係を忘れるだけである(ス
テップ15)。図7も図5のタイミングチャートをもと
にし、P1がコーディネータからのPREPARE信号
にFORGETを投じるが、P2 はYESを投じる場合
のタイミングチャートを示す。このケースでは加入者P
1 に関係するステップ12、13を略しているが、他の
ステップはステップ10のアトミック・インスタントを
含めてすべて実行される。図9は、図8の流れ図をもと
にし、図6、図7に示した例についてREAD ONL
Y最適化をサポートする変更例を示す流れ図である。図
9で判定ブロック112aは図8の判定ブロック112
に代わる。すべての投票がYESかどうか判定されるの
ではなく、少なくとも1つの投票がYESで、NO投票
がないという条件がチェックされる。つまり、1つの投
票がFORGETである可能性はあるが(図7)、YE
S応答があるため、機能ブロック113でのログへの書
込みに続いて、機能ブロック114aでCOMMIT信
号が、FORGETを投じた加入者を除く全加入者に送
られる。一方、判定ブロック112aで判定された条件
が見つからない場合、更に判定ブロック117で、全投
票がFORGETかどうか判定される(このケースは図
6)。FORGETの場合、プロセスは直接に機能ブロ
ック116に進み、処理がユーザに戻る前にログが更新
される。
【0027】従来の2相コミット・プロトコルは、分散
システムにうまく適合しないことが知られている。先に
挙げたDateの文献を参照されたい。問題はシステムがど
のようなタイプの通信媒体とも接続可能なので(APP
C−拡張プログラム間通信、TCP/IP−伝送制御プ
ロトコル/インタネット・プロトコル、OSI/CSな
ど)、コーディネータの実行結果をシステム全体に行き
渡らさせるのは簡単ではないということである。コーデ
ィネータの役割を拡張し、加入者と通信するためのメカ
ニズムから切り離さなければならない。これは本発明に
従って、システム間に用いられる通信メカニズムに依存
せずにコーディネータの役割を分散させることができる
2相コミット・プロトコルの拡張機能によって行なわれ
る。
【0028】本発明に従った2相コミット・プロトコル
の拡張:2相コミット・プロトコルに特別処理ステージ
が追加される。この特別処理ステージは第1相終了処理
(EPOP)と呼ばれ、コーディネータ機能を任意の通
信メカニズムを用いるシステム全体に分散させることが
できる。第1相終了処理は加入者が制御権を得られる特
別ステージである。このステージで加入者は、2相コミ
ット・プロトコルのシーケンスを分散システムに送る。
通信メカニズムは、どのようなタイプのものでも、それ
が分散コーディネータの一部になるように用いられる。
コーディネータそれ自体は他のシステムの知識を要しな
い。
【0029】本発明の実施例についての以下の説明に用
いる用語は最初に定義しておく必要がある。新しい用語
は(本発明に関係する場合は)「」で示す。
【0030】「PREPAREに対するABSTAIN
応答」第1相で送られたPREPARE信号にABST
AINを返す加入者は、第1相の終わりに収集された投
票に影響を与えない。ABSTAINを返す加入者には
なお、第2相でCOMMITまたはCOMMIT信号が
送られ、加入者が第1相終了処理を有効にした場合には
第1相終了処理が駆動される。
【0031】「コーディネータのエージェント(AO
C)」コーディネータの代理を務めるサブコーディネー
タ。AOCは、加入者の一部またはユーザの分散の度合
いに応じて多くなる。AOCの主な役割は、分散したコ
ーディネータ機能を実行することである。
【0032】「アトミック」アトミックは"ただ1つ"の
意味で用いられる。一連のデータ変更がアトミックに行
なわれるのは、すべて行なわれるか、または全く行なわ
れない場合である。ある変更を加えて別の変更を加えな
い状態は、それらがアトミックに行なわれた時には存在
しない。
【0033】「アトミック・インスタント」データ変更
結果をすべてコミットするか、またはデータ変更結果を
すべてバックアウトするかの決定が成された時の時間点
をいう。
【0034】「アトミック・インスタント・レコード
(T02ともいう)」コーディネータが決定をコミットま
たはバックアウトしたことを示すために硬化媒体に書込
まれるレコード。コーディネータしかこのレコードを書
込めない。
【0035】「第2相開始ログ・レコード(B02ともい
う)」AOCがコーディネータからコミットまたはバッ
クアウトの決定を受信してログしたことを示すために硬
化媒体に書込まれるレコード。これは、以下に定義する
01と同様にAOCまたは加入者の活動である。
【0036】「コミット・スコープ」データの変更がす
べて1つのシステムで行なわれた場合、コミット・スコ
ープはローカルである。いくつかのデータ変更が2つ以
上のシステムで行なわれ、ユーザがこれらの変更をアト
ミックに行なおうとした場合、コミット・スコープは分
散する。
【0037】「コーディネータ」2相コミット・プロセ
スのコントローラ。分散プロセスでは1つのコーディネ
ータしかない。
【0038】「分散」プロセスは、独立してはいるが関
係のあるコンピュータ・システムに存在するいくつかの
プロセスから成る場合は、分散している。
【0039】「第1相終了処理イネーブル(EEPOE
P)」ローカル・システムに、それがいまコーディネー
タのエージェント(AOC)であることを通知する(ロ
ーカル・コーディネータに通知する)新しいオペレーテ
ィング・システム・サービス・コール。すなわちローカ
ル・コーディネータには、それが実際に、分散したコミ
ット・スコープの一部でしかないことが伝えられる。コ
ミット・スコープにはコーディネータが1つしかなく、
このサービスにより、ローカル・オペレーティング・シ
ステムは、コーディネータが別のシステムに存在し、ロ
ーカル・システムがそのコーディネータのエージェント
であることを認識する。このサービスはローカル・オペ
レーティング・システムをコーディネータからAOCに
変換する。
【0040】「第1相終了ログ・レコード(E01ともい
う)」2相コミットの第1相が完了したことを示すため
に硬化媒体に書込まれるレコード。これはAOCまたは
加入者の活動である。すなわちこのレコードがコーディ
ネータによって書込まれることはない。これは、AOC
または加入者がコーディネータまたはコーディネータと
信じられるエージェントからのPREPARE信号(別
のAOCから来ることもある)に応答して投票したこと
を示す。
【0041】「第1相終了処理(EPOP)」第1相終
了レコードがログに書込まれた後に生起する新しい処理
ステージ。これは、ローカル加入者がすべて投票を終え
たことを示す。更に投票(コミットまたはバックアウ
ト)の結果も示す。これは2相コミット・プロセスを保
留し、加入者が投票の結果を分散システムに通信できる
ようにし、これにより分散コミット・スコープの一部に
なることができる。
【0042】「ログ」重要データが格納された硬化媒体
(通常は磁気ディスク装置)。
【0043】「加入者」2相コミット・プロセスの"コ
ントローリ"(被制御装置)。加入者は、ユーザが使用
しているリソース(データベース内のデータや別ユーザ
への通信パスなど)を所有する。ユーザは加入者をいく
つでも関係させることができる。加入者は分散させるこ
とができる。
【0044】「第1相(2相コミットの)」VOTE
(投票)相ともいう。これはPREPARE信号を加入
者に送る相から成る。
【0045】「第2相(2相コミットの)」ACTIO
N(実行)相ともいう。これはCOMMITまたはBA
CKOUT信号を加入者に送る相から成る。
【0046】「プロセス」プロセスはコンピュータ・シ
ステム内の作業単位であり、ユーザ、プログラム製品、
単一スレッド、複数のスレッドなどを含む。
【0047】「ユーザ」いくつかのシステムに分散して
いるか分散していないアプリケーション・プログラム。
【0048】「読取り専用最適化」2相コミット・プロ
トコルに対する最適化。加入者は第1相で送られたPR
EPARE信号にFORGETまたはREAD ONL
Yを返す。FORGETを返す加入者には、第2相でC
OMMITまたはBACKOUT信号は送られない。コ
ミット・スコープの全加入者がPREPARE信号にF
ORGETを返した場合、アトミック・インスタントは
ログされず、第1相終了(E01)または第2相開始(B
02)のレコードを実行する必要がある。
【0049】図10にマルチプロセッサ・システムを示
す。第1コンピュータ51(マシンA)は通信装置53
を介して第2コンピュータ52(マシンB)に接続され
る。装置53は、銅、光ファイバ・ケーブルなど適切な
通信リンクの通信媒体を含むことができる。コンピュー
タ51、52はそれぞれ図1乃至図4のコンピュータ・
ライクなコンピュータ11とみることもでき、従って図
1乃至図4の詳細はここでは簡単のため省略しているの
で、図10のブロック図はハイレベルなブロック図であ
る。
【0050】図10に示した2マシン・システムは、本
発明に従った分散システムとは何かを理解するうえで役
立つ基礎概念を示すが、分散システムを1つのマシン上
で実現することも可能である。たとえばIBMの仮想マ
シン(VM)オペレーティング・システム、VM/37
0はIBMシステム370コンピュータを管理し、端末
から操作する数人のユーザそれぞれが完全なシステム3
70を持っているかのように見せる。また、各ユーザは
異なるオペレーティング・システム(OS)を選択する
ことができる。つまり、VMは一度に複数のオペレーテ
ィング・システムを(その仮想マシン上で1つを)実行
することができる。VMの詳細については先に挙げたDe
itelの文献の第22章を参照されたい。
【0051】以下の説明では、マシンAとマシンBは物
理的に独立したマシン(すなわち実マシン)とみること
ができ、或いは、仮想マシン・オペレーティング・シス
テム上で走る1つのコンピュータ上の仮想マシンでもよ
い。もちろん図10よりも複雑なシステムでは、実マシ
ンと仮想マシンを組合わせて、本発明に従った分散コミ
ット・プロトコルが実現できる分散システムをサポート
することができる。
【0052】図10を参照する。コンピュータ51は、
ユーザA、通信マネジャ(すなわちCMGR_A)、及
びリソース・マネジャRM(すなわち加入者P1 )をサ
ポートするオペレーティング・システム(OS)54を
実行する。ユーザAのアドレス空間55、P1 のアドレ
ス空間56、及びCMGR_Aのアドレス空間57はす
べて、OS54と通信する。コンピュータ51には、そ
れぞれCMGR_A、OS、及びP1 のログが書込まれ
るDASD58、59、60が接続される。同様にコン
ピュータ52は、第2ユーザB、通信マネジャ(すなわ
ちCMGR_B)、及びリソース・マネジャRM(すな
わち加入者P2 )をサポートするOS61を実行する。
ユーザBのアドレス空間62、P2 のアドレス空間6
3、及びCMGR_Bのアドレス空間64はすべてOS
61と通信する。コンピュータ52には、それぞれCM
GR_B、OS61、及びP2 のログが書込まれるDA
SD65、66、67が接続される。各システム上に示
した3つのログは同じ物理記憶装置でも異なる物理記憶
装置でもよい。
【0053】動作時、マシンAのユーザAはCMGR_
Aと対話し(破線矢印68)、それ自体の分散した部分
をマシンBで実行するよう要求する。CMGR_Aはオ
ペレーティング・システム54に、ユーザAが何時コミ
ットまたはバックアウトするか通知を受ける必要がある
と通知する。これは破線69で示した。CMGR_Aは
次に、通信装置またはリンク53を介してマシンB上の
CMGR_Bと通信する。CMGR_AとCMGR_B
のいずれかまたは両方は、このトランザクションでプレ
イベート・データをそれぞれDASD58、65にログ
することができる。次にCMGR_BはマシンBでユー
ザBプログラムを起動し(起動されていなかった場
合)、オペレーティング・システム61に、ユーザBが
何時コミットまたはバックアウトしたか通知を受ける必
要があることを伝える(破線矢印70)。マシンAのユ
ーザAとマシンBのユーザBは、APPCを用いる際に
は必要に応じて逆にしてもよい。
【0054】2つのマシンで処理されるトランザクショ
ンの一例として、マシンBのユーザBがデータベースP
2 のローカル・データを変更することを破線矢印71に
示す。その時、P2 はオペレーティング・システム61
に、マシンAのユーザAまたはマシンBのユーザBが何
時コミットまたはバックアウトするかの通知を受ける必
要があることを伝える(破線矢印72)。破線矢印73
は、マシンAのユーザAが次にデータベースP1 のロー
カル・データを変更することを示す。破線矢印73、7
1で示したデータベースP1、P2の変更は任意の順序で
繰返し生じ得る。破線矢印75はユーザAがすべての変
更結果をコミットしたいことを示す。
【0055】図11乃至図13を参照する。図11はユ
ーザ、コーディネータ(COOR)、加入者(P1
2)、コーディネータのエージェント(AOC)、及
び通信マネジャ(CMGR)の役割を、図10のマシン
例について示す。加入者P1、P2 は、たとえば図5乃至
図8の例のようにDB2、IMS/DL1などのデータ
ベースである。ただし本発明はどのような用途にも限定
されない。CMGRは実際には加入者にすぎないが、コ
ーディネータ及びAOCと協同して分散コミット・プロ
セスを実現するので区別される。図12、図13は、E
POPサービスによって有効になった時に行なえる新し
いオペレーティング・システム・サービス(EEPOE
P)と終了処理を示す。
【0056】図の例でユーザは分散している。プロセス
は、データをリソース・マネジャ(加入者P1 など)で
変更するマシンA上で実行される。また、データをリソ
ース・マネジャ(加入者P2 など)で変更するマシンB
上でもプロセスが実行される。ユーザは次に、すべての
データ変更結果をコミットするよう要求する。両システ
ムのデータ変更結果はアトミックにコミットされなけれ
ばならない。ユーザは、その処理を通信マネジャCMG
R(APPC、TCP/IP、OSI/CSなどの通信
マネジャ)で分散することに決める。用いられるメカニ
ズムによって、ユーザはコミット・プロセスをコーディ
ネータからか、または通信マネジャから直接要求する。
EPOPは、ユーザが何らかの手段によってコミットし
たいという希望をコーディネータが知らされる場合は、
これに依存しない。
【0057】上記のとおり、ユーザは図11乃至図13
の例ではそれ自体をすでに分散している。すなわち関係
のある2つのマシン上でプロセスを実行している。ここ
でも、これらのマシンは実マシン(図10)か、仮想マ
シンすなわち仮想マシン・オペレーティング・システム
により1つのコンピュータ上で動作するマシンである。
図11乃至図13には、処理の流れのうちコミットの部
分しか示していない。これが本発明の新規性の元になる
部分である。また加入者(P1、P2、CMGR_A、及
びCMGR_B)はすべて、ユーザが何時データ変更結
果すべてをコミットまたはバックアウトすることを決定
したかの通知を受けたいとコーディネータまたはAOC
に伝えている。実現形態によるが、図11のタイミング
チャートに示した時点よりも後に、処理が正常終了した
こと(すなわち変更結果がすべてバックアウトされたこ
と)を示す戻りコードをユーザが受取ることがある。図
に示したログ・レコードはすべて、オペレーティング・
システムが所有するログにある。加入者は、プライベー
ト・ログを持つこともできるが、これらプライベート・
ログは図示していない。
【0058】図12のプロセスはマシンAで始まり、判
定ブロック201で、ユーザが変更結果をコミットした
いかどうか検出される。図11のステップ1では、ユー
ザがデータ変更結果をすべてコミットしたことを示す。
図12でコーディネータは、PREPARE信号を加入
者P1 と通信マネジャCMGR_Aの両方に同報する
(機能ブロック202)。これは図11のステップ2で
ある。図12でCMGR_Aは、図10の通信68か
ら、分散コミット・シーケンスで別のシステムと通信し
ていることを認識し、機能ブロック203(図11のス
テップ4)でPREPARE信号をCMGR_Bに送
る。これは、用いられている通信マネジャに依存しな
い。
【0059】図13で、プロセスは判定ブロック204
のマシンBから始まり、CMGR_Aからのメッセージ
が検出される。判定ブロック205でPREPARE信
号が検出される。CMGR_Bは、PREPARE信号
を受取った時、これ(すなわちマシンB)がコーディネ
ータのホームではないことを認識する。これが分かるの
はPREPARE信号を受信したからである。これはコ
ーディネータの"領域"ではないので、コーディネータの
エージェント(AOC)でなければならない。図11の
ステップ5を参照されたい。CMGR_Bはそこで第1
相終了処理イネーブル(EEPOEP)と呼ばれる新し
いオペレーティング・システム・サービスを機能ブロッ
ク206で実行する。これでオペレーティング・システ
ムに、これがAOCであることが通知される。またこれ
により、第1相終了ログ・レコード(E01)が書込まれ
た後(図11のステップ10の後)制御がCMGR_B
に渡る。次に処理はCMGR_Bに戻る。
【0060】ここでAOCは、PREPARE信号をP
2 とCMGR_Bに同報する(機能ブロック207)。
これは、(1)ユーザがコミット・リクエストを実行す
ることを通信マネジャによって指示されたか、または
(2)AOCが、新しいEEPOEPサービス・コール
を受信した時がコミット・プロセスを開始する時と仮定
したことのいずれかに応じて行なわれる。図11のステ
ップ6を参照されたい。図11に示した例の場合、CM
GR_Bはステップ7でPREPARE信号にYESを
投じ、P2 は、ステップ8でPREPARE信号にYE
Sを投じる。これらの投票は図13では判定ブロック2
08で検出される。
【0061】次にAOCは、(1)その投票をすべての
加入者(CMGR_BとP2 )から受信し、(2)図1
1のステップ5で実行されたEEPOEPサービスによ
って、それがAOCであることがこのオペレーティング
・システム・インスタンスに通知されたので、機能ブロ
ック209で第1相終了(E01)レコードをログに書込
む。このレコードを書込むのはAOCだけである。この
レコードは図11のステップ9のタイミングチャート
に"*"で示した。次にAOCは、CMGR_Bが先に第
1相終了処理イネーブル(EEPOEP)サービスを実
行していたので、ステップ10で制御をCMGR_Bに
渡す。これは、第1相終了と呼ばれる新しい処理ステー
ジである。CMGR_Bは、PREPARE信号の結果
を通知される。第1相終了では、CMGR_Bが次にC
MGR_AにYESを返す(図13の機能ブロック21
0)。図11のステップ11を参照されたい。これは、
ステップ4でCMGR_AがCMGR_Bに送ったPR
EPAREへの応答である。図の例では、すべての投票
がYESであり、PREPAREの結果はYESだった
(すなわちコミット処理に進む)。PREPARE信号
は他の結果もあり得るが、本発明の説明を補足するもの
ではないので省略する。
【0062】図11のステップ3でP1 は、それが準備
を選択することを示し(この例ではYES)、これは、
それが行なったデータ変更の結果をすべてコミットまた
はバックアウトする準備が出来ていることを示す。P1
による投票とCMGR_Bによって返った投票は、図1
2の判定ブロック211で検出される。CMGR_Aは
また、ステップ2でそれにローカルに送られたPREP
ARE信号にYESを投じる。これは、全加入者(他の
マシンに分散することもある)がいまPREPARED
STATEにあることを認識して行なう。この知識は
ステップ11から得られる。すなわち全加入者が前か後
に進む準備が出来ている。これは図11のステップ12
で生じる。
【0063】マシンAのコーディネータはここで、それ
が予測していたすべての投票を受取っており、この例で
は全投票がYESである(判定ブロック212)。そこ
でコーディネータは、前進してアトミック・インスタン
ト・レコード(T02)をログに書込むことを決定する
(機能ブロック213)。このT02レコードは、図11
のステップ13に"*"で示した。コーディネータはステ
ップ14でコミット・オーダをローカル加入者P1 とC
MGR_Aに同報する。これは図12では機能ブロック
214に示した。CMGR_Aは、コミット・オーダを
受信した時、コミット・オーダをCMGR_Bに送る
(機能ブロック215)。これは図11のステップ15
である。
【0064】図13で、CMGR_Aからのメッセージ
が再び判定ブロック204で検出される。ただこの時の
メッセージはCOMMITである(判定ブロック20
5)。CMGR_Bは、決定(例ではYESなど)をA
OCに返すことによってその第1相終了処理を終えてい
る。図11ではこれはステップ17である。ここでAO
Cは第1相終了処理が完了し、コーディネータ領域から
の決定は前進(すなわちコミット)であることを認識す
る。AOCは第2相開始(B02)レコードをローカル・
ログに書込む(図13の機能ブロック216)。復元シ
ナリオのこの時点から以降、ローカル・システムはコー
ディネータとの通信を再確立してコミット/バックアウ
ト決定を得る必要がない。決定はB02ログ・レコードに
記録される。このレコードが書込まれるのは、ローカル
・システムがEEPOEPサービスによってAOCにな
ったからである。B02レコードは、コーディネータによ
って書込まれることはなく、AOCだけが書込む。この
02レコードは図11では "*" で示した。
【0065】AOCは、コミット・オーダをマシンBの
ローカル加入者P2 とCMGR_Bに同報する(図13
の機能ブロック217)。図11ではこれをステップ1
9に示した。AOCは、ログ・レコードの書込みと第1
相終了処理(EPOP)以外はコーディネータと同じよ
うに機能する。CMGR_Bは機能ブロック218でC
MGR_Aに、データ変更結果のコミットを終えたこと
(すなわちB02レコードがログ上で安全であること)を
通知する(図11のステップ20)。CMGR_Bは図
11のステップ22で、ステップ29のコミット同報か
らAOCに戻る。これによりAOCは、CMGR_Bが
そのコミット処理を終えたとの通知を受ける。またP2
は、ある点で(図11のステップ23など)ステップ1
9のコミット同報からAOCに戻る。これは図13の判
定ブロック219で検出され、CMGR_BとP2 がデ
ータ変更結果のコミットを終えたことがAOCに通知さ
れる。AOCは、全加入者がそのデータ変更を終えたこ
とを認識した後はいつでも(図11のステップ25な
ど)、これを機能ブロック220でログに記録する。こ
れは性能の改良であり、再開処理を高速化する。マシン
BのAOCは、それが分散コミット・スコープに加わっ
たことを認識していたが、用いられた通信メカニズムま
たはプロトコルは認識しなかった。書込まれたレコード
は図11のステップ25では"X"で示した。
【0066】P1 は、ある点で(図11のステップ1
6)、それがデータ変更結果のコミットを終えたことを
マシンAのコーディネータに通知する。図11のステッ
プ21でCMGR_Aもステップ14のコミット同報か
らコーディネータに戻る。これは、図12の判定ブロッ
ク221で検出される。全加入者がそのデータ変更を終
えたことをコーディネータが認識した後はいつでも(図
11のステップ24など)、コーディネータはこれをロ
グに記録する(機能ブロック222)。これは性能の改
良であり再開処理を高速化する。
【0067】コーディネータは、それが分散コミット・
スコープに加わったことを認識していなかった。このレ
コードは図11のステップ24には"X"で示した。図1
1の例のキーポイントは、処理シーケンスを示し、デー
タが常に調整されるようにすることである。すなわちユ
ーザのデータの一部だけを更新することは常に許されな
い。変更はすべて要求に応じて行なわれるか、または、
何か問題がある場合はすべての変更が逆にされる。この
新しいステップ(EPOPとEEPOEP)はデータの
保全性を保つ。図11の例では、前進する判定が成され
た。バックアウト判定も行なえる。これもログに記録さ
れ同様の処理が続く。
【0068】図11に示した例の処理により、障害が発
生した場合にはいつでもすべてのデータが調整されるよ
うになる。これは、データの一貫性が保たれると表現さ
れることもある。
【0069】ここで説明を簡単にするために、障害は図
11に示した分散システムの両方が共に障害を起こした
ものとする。これより簡単なケースで、システムが1つ
だけ障害を起こした場合は、両方が同時に障害を起こし
た最悪のシナリオに含まれる。同様に、両方が故障した
が同時にではない場合も、用いられているログ・レコー
ドが特定の時間順で書込まれるという事実により扱え
る。また、分散コミット・スコープに参加している分散
システムが2つ以上の場合も同様である。これと同じロ
ジックは、高さが3以上、幅が2以上のツリーに展開さ
れる。図11の例では、ツリーの高さは2で、親である
マシンAの子は1つ、幅は1になる。
【0070】下記の障害例では図11を参照する。
【0071】例1:E01ログ・レコードがログに書込ま
れる前に障害が発生する(すなわちAとした時間より
前)。再開時に、マシンAで、P1 がそのプライベート
・ログ(図示なし)を読取り、ユーザのためにデータを
変更していたことを発見する。P1 は、オペレーティン
グ・システムにコミットまたはバックアウトの決定を依
頼する。オペレーティング・システム(すなわちコーデ
ィネータ)は、"ユーザ"に関係するそのログでT02また
はB02を発見せず、これをP1に通知する。P1はそこで
すべてのデータ変更結果をバックアウトする。CMGR
_Aはそのプライベート・ログを読取り、それがユーザ
のためにデータを変更していたことを発見する。CMG
R_Aはオペレーティング・システムにコミットまたは
バックアウトの決定を依頼する。オペレーティング・シ
ステム(すなわちコーディネータ)は、ユーザに関する
そのログでT02またはB02を見つけず、これをCMGR
_Aに通知する。CMGR_Aは次に、ある場合はすべ
てのデータ変更結果をバックアウトするか、またはこの
ユーザを無視する。マシンBで、P2 はマシンAの場合
と同様、このステップの処理を同じ実行結果で行なう。
CMGR_Aは、マシンAの場合と同様、このステップ
の処理を同じ実行結果で行なう。
【0072】例2:T02ログ・レコードが時間Bに書込
まれる前の時間AにE01ログ・レコードが書込まれた後
に障害が発生する。再開時、マシンAで、P1 は例1の
ように処理を実行する。CMGR_Aは例1のように処
理を実行する。マシンBで、P2 は、例1のように処理
を実行し、オペレーティング・システムによって、ユー
ザの状態がIN_DOUBTであると通知される。P2
はこれを、コーディネータが(別のマシンで)T02レコ
ードを書込んだかどうかをローカル・システムがまだ認
識していないと解釈する。すなわちコーディネータが決
定をコミットまたはバックアウトしたかどうか認識しな
い。その後P2 は通知を受ける。すなわちコーディネー
タとの再同期化が完了した後である。P2 は、それがま
だすべての変更をコミットまたはバックアウトする準備
を整えた状態のままでななければならないことを覚えて
おく必要がある。CMGR_Aは例1のように処理を実
行し、オペレーティング・システムによって、ユーザの
状態がIN_DOUBTであると通知される。CMGR
_Aは、それがログに格納した情報から、コーディネー
タ(またはおそらくは単に他のAOC)がマシンAにあ
ることを認識する。そのログから、CMGR_Aとの通
信を再確立するのに充分な情報を読取る。次にCMGR
_Aに、コミットまたはバックアウトの判定を求める。
CMGR_Aは、それが再開操作を終えている場合は、
02またはB02ログ・レコードが見つからなかったこと
を認識する。CMGR_AはCMGR_Bに、判定がバ
ックアウトであることを通知する。CMGR_BはAO
Cにこれを通知し、AOCは、対象加入者に判定がバッ
クアウトであることを通知する。例でAOCはP2 に通
知する。
【0073】例3:B02ログ・レコードが時間Cに書込
まれる前に(時間Bなどに)T02ログ・レコードが書込
まれた後で障害が発生する。再開時、マシンAで、P1
は例1のように処理を実行し、ユーザが状態IN_CO
MMITにあることをオペレーティング・システムによ
って通知される。P1 はこれを、ユーザのためのデータ
変更をコミットしなければならないと解釈し、そう実行
する。CMGR_Aは、例1のように処理を実行し、ユ
ーザが状態IN_COMMITにあるという通知を受け
る。CMGR_Aはこの情報を、(1)CMGR_Aが
CMGR_Bと再同期化するか、または(2)CMGR
_BがCMGR_Aにユーザの判定を求めた時に、CM
GR_Aに引渡す。CMGR_AはこれをAOCに通知
し、AOCはそこで、すべての対象加入者に判定がコミ
ットであることを通知する。例でAOCはP2に通知す
る。マシンBで、P2 は、例2のように処理を実行す
る。CMGR_Bは例2のように処理を実行するが、T
02レコードが見つかったことをCMGR_AがCMGR
_Bに通知する。従って、判定はすべての変更をコミッ
トすることである。CMGR_BはこれをAOCに通知
し、AOCはそこですべての対象加入者(例ではP2
に通知する。
【0074】例4:最終レコードのいずれか(図11の
ステップ24、25)が書込まれる前にB02レコードが
(時間Cで)書込まれた後に障害が発生する。その場合
1 、またはP2 は例1のように処理を実行し、ユーザ
の状態がIN_COMMITであることをオペレーティ
ング・システムから通知される。従ってP1、P2はすべ
てのデータ変更結果をコミットする。一方、CMGR_
AとCMGR_Bは例1のように処理を実行し、ユーザ
の状態がIN_COMMITであることをオペレーティ
ング・システムから通知される。用いられているプロト
コルによるが、CMGR_AとCMGR_Bは、それら
が再同期化した時にこの情報を交換する。ただし、コミ
ットまたはバックアウトの判定は、各システムで使用で
きるログ・レコードから個別に推定できるので、再同期
化時に交換された情報は用いられない。
【0075】例5:最終レコードのいずれかまたは両方
が時間D、Eで書込まれた後に障害が発生する。その場
合P1、P2は、(1)ユーザの状態がIN_COMMI
Tであることをオペレーティング・システムから通知さ
れ、すべてのデータ変更結果をコミットするか、または
(2)ユーザの代わりに行なわれたすべての作業がすで
に終わっており、何の実行も必要ないことが通知される
(または推定することができる)。一方、CMGR_A
とCMGR_Bは、(1)ユーザの状態がIN_COM
MITであることをオペレーティング・システムから通
知され、例4のように処理を実行するか、または(2)
ユーザの代わりに行なわれたすべての作業がすでに終わ
っており、何の実行も必要ないことが通知される(また
は推定することができる)。
【0076】以上、復元フローについて説明したが、こ
れは加入者がここに示したプロシジャに従う際、データ
の保全性が常に保たれることを示すものである。それ以
上のデータ保全性は、標準的な2相コミットについては
明らかにされていない。EEPOEPサービスと第1相
終了処理により、分散コミット・スコープが有効にな
り、分散コーディネータが必要でなくなる。すなわちコ
ーディネータは、特定の通信プロトコルまたは分散ネッ
トワーク・トポロジを認識もせず、それに対応もしなか
ったということである。EEPOEPサービスでコーデ
ィネータのエージェント(AOC)領域を形成すること
によって、システムの数にかかわらずにコミット・スコ
ープの分散を維持できる。例では2つのシステムしかコ
ミット・スコープに参加していないが、この機構を用い
ることで、参加できるシステムの数は制限されない。
【0077】コーディネータの機能はデフォルトである
が、AOCの機能は、新しいオペレーティング・システ
ム・コール(すなわちEEPOEP)1つで実現でき
る。それでもシステム間通信の流れは標準的な2相コミ
ットである。すなわち例では、マシンAとマシンB間の
流れは拡張機能がなく2相コミットとみられる。コーデ
ィネータ・システムはなお標準的な2相コミットとみら
れる。すなわち例では、マシンAの流れは標準的とみら
れる。マシンAのコーディネータは、コミット・スコー
プが分散していることを認識さえしない。適切な時間に
EEPOEPサービスによって、マシンBがコーディネ
ータからコーディネータのエージェント(AOC)に変
換される。
【0078】上記の内容から明らかなように、本発明
は、コーディネータを効率よく分散させるが、コーディ
ネータはこの事実の知識をもっている必要はなく、大幅
に簡素化される。コーディネータ機能は、任意の通信メ
カニズムを使用して分散される。ユーザは分散コーディ
ネータ機能を意識する必要がない。更に、汎用リソース
・マネジャは、それに合った通信マネジャを使い、この
新しいプロトコル拡張機能を認識し、オペレーティング
・システム同期点マネジャ(すなわちコーディネータ)
と通信することによって分散させることができる。この
方法の新規性は、コーディネータ機能が通信媒体に依存
せずに分散されることである。コーディネータにより、
特定の通信製品の知識がないまま分散コミット・スコー
プ(すなわち拡張2相コミット)が有効になる。第1相
終了処理という拡張機能では、この分散を、分散してい
るコーディネータ機能をオペレーティング・システムが
認識しないままに実現することができる。
【0079】このほか、分散加入者に対する2相コミッ
ト・プロトコルの拡張機能として、コーディネータから
のPREPARE信号に対してリソース・マネジャが新
しい応答を使用することができる。この応答は、PRE
PARE信号に応答してコーディネータのエージェント
に応答するために通信リソース・マネジャ(CMGR_
A)が使用できるABSTAIN応答である。この新し
い応答により、性能向上、システム・スループットの向
上、及び分散システム上の再開時間の短縮が可能にな
る。
【0080】図14に、全加入者がマシンBでFORG
ETまたはABSTAINを、マシンAでFORGET
を選択する場合について、分散2相コミットのタイミン
グチャートを示す。図14は図11をもとにしており、
ステップはいくつか削除している。
【0081】従来の2相コミット・プロトコルでは、リ
ソース・マネジャがコーディネータからのPREPAR
Eリクエストにある方法で応答する必要がある。加入者
はそのリクエストに対して、コミット・コーディネータ
へのYES/COMMIT、NO/BACKOUT、ま
たはFORGET/READ ONLYで応答しなけれ
ばならない。しかし、コーディネータのエージェント
が、YES/COMMIT、NO/BACKOUT、ま
たはFORGET/READ ONLYの応答を可能に
するだけであれば、読取り専用最適化を行なうことはで
きない。これは、CMGR_Bが図11のステップ7で
PREPAREにYESと応答しなければならないとい
う事実による。これによりAOC_Bは、更新されたコ
ミット可能なリソースがマシンBにあるとみなし、従っ
て、加入者P2 がPREPARE信号にFORGET/
READ ONLYを返した場合でも、2相コミット・
プロセスを完全に実行しなければならない。図14のス
テップ7では、CMGR_BがAOC_BからのPRE
PARE信号にABSTAINを選択する。CMGR_
BからのこのABSTAIN投票により、図10の次の
ステップは生じない。 1.ステップ9でAOC_Bによって第1相終了
(E01)がログに書込まれる。 2.ステップ11で通信応答YESがマシンAに送られ
る。 3.ステップ15で通信応答COMMITオーダがCM
GR_Bに送られる。 4.ステップ18でマシンBのAOC_Bによって第2
相開始(B02)が書込まれる。 5.ステップ19、22、23のCOMMIT信号と応
答。 これらのイベントはすべて、マシンBが実際に、図11
の加入者P2 のように、2相コミット・プロトコル・リ
ソースを持っている時に必要である。
【0082】加入者P2が作業単位に関係しないか、加
入者P2しか読取り専用リソースを持っていない場合、
これらのステップすべてが必要なわけではない。こうし
た状況で性能を向上させる2相コミット・プロセスのR
EAD ONLY最適化がある。図14のタイミングチ
ャートはREAD ONLY最適化を示す。不要なプロ
セスは上記のログへの書込みと通信イベントなどであ
る。CMGR_Bはステップ7でPREPARE信号に
NOを返すことができない。これにより作業単位がバッ
クアウトされる。CMGR_Bは、CMGR_Bが作業
単位に関わろうとしなくなったとAOC_Bがみなすこ
とになるので、FORGETを返すことができない。
【0083】ABSTAINは、本発明によって提供さ
れる新しい応答であり、CMGR_BはこれをPREP
ARE信号への応答に使用することができる。この応答
は、ABSTAINで応答する加入者(例ではCMGR
_B)が、PREPAREリクエストの最終結果に影響
を与えようとしないこと、どのような結果(YES、N
O、またはFORGET)も受入れようとすること、及
び、現在の作業単位の2相コミットに関係し続けようと
すること、を示す。図14のステップ7では、CMGR
_Bは、PREPARE信号にYESと答えるのではな
く、ABSTAINを返す。加入者P2 がPREPAR
E信号にYESと答えた場合、AOC_BのPREPA
RE信号の最終結果はYESであり、イベントは上記の
ように進む。加入者P2 がFORGETと答えるか、加
入者P2 が存在しない場合、AOC_B PREPAR
E信号の最終結果はFORGETである。AOC_B
は、図14のステップ10でFORGETの結果をCM
GR_Bの第1相終了処理に返す。CMGR_Bはここ
で、ステップ11でのYES投票ではなく、通信応答F
ORGETをマシンA送る(ステップ20)。これによ
りマシンAは、作業単位についてマシンBと接触しなく
なる。CMGR_Bは次にAOC_Bに戻り、AOC_
Bはステップ25で"単位復元終了"レコードをログに書
込み、作業単位についてのその処理を終える。
【0084】図14のタイミングチャートを図11と比
較すると、マシンBに読取り専用リソースがある場合、
マシンBの以下のステップはなくなる。 9)第1相終了(E01)をログする。 11)PREPAREに対してマシンAにYES応答を
返す。 15)マシンAからコミット・オーダを通信する。 18)第1相開始(B02)をログする。 19)コミット・オーダをマシンBの加入者に引渡す。 22)CMGR_Bのコミット終了をAOC_Bに返
す。 ステップ20はステップ10の後、ステップ12の前に
移動する。以下のマシンA上のイベントは、マシンBが
読取り専用リソースを持っている時にはなくなる。 14)コーディネータからCMGR_Aへコミット終了
コールを出す。 21)CMGR_Aのコミット終了から復帰する。
【0085】図16は、図12の流れ図にもとづく流れ
図で、図14のタイミングチャートに示したマシンAで
の操作の変更を示す。判定ブロック212aで、YES
投票が1つ以上でNO投票がないという条件がチェック
される。これはもちろん図9の判定ブロック112aで
行なわれるチェックと同様である。また機能ブロック2
15はなくなり、機能ブロック214aは変更され、C
OMMITが加入者P1 にしか送られない。これは例で
CMGR_AがFORGETを選択したからである。
【0086】図17は、図13の流れ図にもとづく流れ
図で、図14のタイミングチャートに示したマシンBに
おける操作の変更を示す。この流れ図で判定ブロック2
05と機能ブロック209、210、216、217は
なくなっている。これらのブロックの代わりに新しい判
定ブロック224がある。ここで受信された投票がすべ
てFORGETかABSTAINかが判定される。その
場合、プロセスは機能ブロック218に進み、ACK信
号がCMGR_Aに送られる。他の場合は処理がユーザ
に戻る。
【0087】マシンA、Bが、コミット対象の更新され
たリソース(すなわち読取り専用)を持たない場合、マ
シンAから削除できるイベントがある。
【0088】13)"アトミック・インスタント"コミッ
ト・レコードT02の強制ログ書込み、これにより性能が
更に向上する。図15のタイミングチャートにこのイベ
ントを示す。図18は、図12の流れ図にもとづく流れ
図で、図15のタイミングチャートに示すマシンAにお
ける操作の変更を示す。判定ブロック212bは、すべ
ての投票がFORGETかABSTAINかをチェック
し、機能ブロック213、214、215、及び判定ブ
ロック221はなくなっている。マシンBにおける操作
は、図15に示したタイミングチャートについての図1
7の流れ図と同じである。
【0089】本発明は、分散データベースに、或いはマ
ルチプロセッサ・システムにも限定されない。どのよう
なリソース・マネジャでも、或いはユーザでも、1つの
マシン或いは任意個数のマシン上で分散させることがで
き、1つの大きなコミット・スコープに参加することが
できる。
【図面の簡単な説明】
【図1】本発明を実現できるトランザクション処理シス
テムのブロック図である。
【図2】本発明を実現できるトランザクション処理シス
テムのブロック図である。
【図3】本発明を実現できるトランザクション処理シス
テムのブロック図である。
【図4】本発明を実現できるトランザクション処理シス
テムのブロック図である。
【図5】現在の2相コミット・プロトコルの基本操作を
示すタイミングチャートである。
【図6】2相コミット・プロトコルのREAD ONL
Y最適化の操作を示すタイミングチャートである。
【図7】2相コミット・プロトコルのREAD ONL
Y最適化の操作を示すタイミングチャートである。
【図8】図5に示した現在の基本的な2相コミット・プ
ロトコルの流れ図である。
【図9】図6、図7に示したREAD ONLY最適化
を実現する2相コミット・プロトコル・プロセスの流れ
図である。
【図10】本発明に従った拡張2相コミット・プロトコ
ルの操作を説明するのに役立つマルチプロセッサ・シス
テムのブロック図である。
【図11】本発明に従った、図10の2マシン環境にお
ける2相コミット・プロトコルの拡張機能の操作を示す
タイミングチャートである。
【図12】2相コミット・プロトコル・プロセスの拡張
機能について、マシンAにおけるプロセスを示す流れ図
である。
【図13】2相コミット・プロトコル・プロセスの拡張
機能について、マシンBにおけるプロセスを示す流れ図
である。
【図14】マシンBにおいて投票がすべてFORGET
またはABSTAINであり、マシンAにおいてCMG
R_AがFORGETを選択した場合について、REA
DONLY最適化と新しいABSTAIN応答をサポー
トする2相コミット・プロトコルの拡張操作を示すタイ
ミングチャートである。
【図15】マシンA、Bの両方において投票がすべてF
ORGETまたはABSTAINである場合について、
READ ONLY最適化と新しいABSTAIN応答
をサポートする2相コミット・プロトコルの拡張操作を
示すタイミングチャートである。
【図16】図14に示した例について、2相コミット・
プロトコル・プロセスの拡張機能を改良するマシンAに
おけるプロセスの流れ図である。
【図17】図14に示した例について、2相コミット・
プロトコル・プロセスの拡張機能を改良するマシンBに
おけるプロセスの流れ図である。
【図18】図15に示した例について、2相コミット・
プロトコル・プロセスの拡張機能を改良するマシンAに
おけるプロセスの流れ図である。
【符号の説明】
11 メインフレーム・コンピュータ 12 仮想端末アクセス方式(VTAM) 13 ジョブ入力システム(TES) 15 直接アクセス記憶装置(DASD) 16 ローカル端末 17 リモート端末 18 ローカル・ジョブ入力/出力(I/O)装置 19 リモート・ジョブI/O装置 21 マスタ・スケジューラ 22 中央コンソール 23 機能コンソール 24 ジョブ・スケジューラ 25 タスク・スーパバイザ 26 プログラム・マネジャ 27 タイマ・スーパバイザ 28 仮想記憶マネジャ 29 実記憶マネジャ 30 補助(またはページ)記憶マネジャ 31 復元終了マネジャ 34 割込みハンドラ 35 システム・リソース・マネジャ 36 ディスパッチャ 51 第1コンピュータ 52 第2コンピュータ 53 通信装置 54 オペレーティング・システム(OS) 55 ユーザAのアドレス空間 56 P1 のアドレス空間 57 CMGR_Aのアドレス空間 62 ユーザBのアドレス空間 63 P2 のアドレス空間
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・ダイベンドルフ アメリカ合衆国94040、カリフォルニア州 マウンテン・ビュー、チャタム・ウェイ 345 (72)発明者 ダニエル・エドワード・ハウス カナダ国、オンタリオ州スカボロ、ナンバ ー1907、グレイストーン・ウォーク・ドラ イブ 5 (72)発明者 アール・エイチ・ジェナー アメリカ合衆国95135、カリフォルニア州 サン・ホセ、ガロウェイ・ドライブ 7688 (72)発明者 マーガレット・ケリー・ラベル アメリカ合衆国12603、ニューヨーク州ポ キプシ、フッカー・アベニュー 310 (72)発明者 マイケル・ジェラルド・モール アメリカ合衆国12540、ニューヨーク州ラ グレーンジビル、スクエア・ウッズ・ドラ イブ 20 (72)発明者 スチュアート・ルイス・サイレン アメリカ合衆国95037、カリフォルニア州 モーガン・ヒル、グリフィス・ウェイ 15630

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】分散データ処理システムにおける更新調整
    方法であって、 上記分散データ処理システム内の第1システム上で第1
    相終了処理を有効にし、上記第1システム上の第1コー
    ディネータ機能が、上記分散データ処理システム内の第
    2システム上の第2コーディネータ機能のエージェント
    になるようにするステップと、 上記第1システム上のすべての加入者からの投票がすべ
    て受信された時に、第1システムの投票の第1相終了レ
    コードを上記第1コーディネータがログに書込むステッ
    プと、 上記書込みに応答して制御を上記第1相終了処理に引渡
    すステップと、 を含む更新調整方法。
  2. 【請求項2】準備のための上記投票が、加入者が作業単
    位の変更をCOMMITする準備が出来たことを示すY
    ES、加入者が作業単位の変更をバックアウトしようと
    することを示すNO、または加入者が作業単位に継続し
    て関わることを望み、作業単位の最終決定には影響を与
    えようとしないことを示すABSTAINを含む、請求
    項1記載の分散データ処理システムにおける更新調整方
    法。
  3. 【請求項3】少なくとも第1オペレーティング・システ
    ムを実行する第1マシンと、第2オペレーティング・シ
    ステムを実行する第2マシンとを含む分散データ処理シ
    ステムにおける更新調整方法であって、 上記第1オペレーティング・システムが、上記第2マシ
    ン上の第2通信マネジャと通信する第1通信マネジャを
    含む上記第1マシン上の加入者に準備信号を送り、上記
    第1通信マネジャが上記準備信号を上記第2通信マネジ
    ャに送るステップと、 上記第2通信マネジャが、上記第1通信マネジャからの
    準備信号に応答して、上記第2オペレーティング・シス
    テムに対して第1相終了イネーブル・コールを生成し、
    上記第2オペレーティング・システムが上記第1オペレ
    ーティング・システムのコーディネータ機能のエージェ
    ントになるようにするステップと、 上記第2オペレーティング・システムが、上記第2通信
    マネジャを含む上記第2マシン上の加入者に準備信号を
    送るステップと、 上記第2マシン上の上記加入者から投票を受信するステ
    ップと、 第1相終了処理により、上記第1通信マネジャに上記投
    票を送る上記第2通信マネジャに制御を渡すステップ
    と、 を含む更新調整方法。
  4. 【請求項4】準備に応答する上記投票が、加入者が作業
    単位の変更をCOMMITする準備が出来たことを示す
    YES、加入者が作業単位の変更をバックアウトしよう
    とすることを示すNO、または加入者が作業単位に継続
    して関わることを望み、作業単位の最終決定には影響を
    与えようとしないことを示すABSTAINを含む、請
    求項3記載の分散データ処理システムにおける更新調整
    方法。
  5. 【請求項5】上記第2マシン上の上記加入者からの上記
    投票の少なくとも一部がYESであり、上記第2オペレ
    ーティング・システムが、上記第2マシン上の上記加入
    者による投票の第1相終了レコードを第2マシン・ログ
    に書込むステップを含み、上記第2通信マネジャに制御
    を引渡す上記ステップが、上記第2マシンログへの書込
    み後に第1相終了処理によって実行される、請求項4記
    載の分散データ処理システムにおける更新調整方法。
  6. 【請求項6】上記第2マシン上の加入者による上記投票
    のすべてがFORGETまたはABSTAINであり、 上記第1オペレーティング・システムが、上記第1通信
    マネジャによって上記第2通信マネジャから受信された
    投票を含むすべての投票を上記第1マシン上の加入者か
    ら受信して、アトミック・インスタント・レコードを第
    1マシン・ログに書込むステップと、 上記第1オペレーティング・システムが、上記投票の結
    果によって決定された実行信号を上記第1マシン上の加
    入者に送り、上記第2マシン上の上記加入者による上記
    FORGETまたはABSTAINの投票により上記第
    2通信マネジャには実行信号が送られないステップと、 を含む請求項4記載の分散データ処理システムにおける
    更新調整方法。
  7. 【請求項7】上記第1マシン上の加入者による準備のた
    めの投票がすべてFORGETまたはABSTAINで
    あり、 上記第2オペレーティング・システムが、上記第2マシ
    ン上の上記加入者による投票の第1相終了レコードを第
    2マシン・ログに書込むステップと、 上記第2マシン・ログへの書込みの後、上記第1通信マ
    ネジャに上記投票を送る上記第2通信マネジャに制御を
    渡すステップと、 上記第1オペレーティング・システムが、上記第1通信
    マネジャによって上記第2通信マネジャから受信された
    投票を受信して、アトミック・インスタント・レコード
    を第1マシン・ログに書込むステップと、 上記第1オペレーティング・システムが、FORGET
    またはABSTAINを投票した、上記第1マシン上の
    加入者には実行信号を送らず、上記第1通信マネジャに
    送り、上記第1通信マネジャが上記第2通信マネジャに
    上記実行信号を送るステップと、 上記第2オペレーティング・システムが、上記第2通信
    マネジャによって受信された上記実行信号に応答して上
    記第2マシン・ログに実行レコードを書込むステップ
    と、 上記第2通信マネジャが、実行が完了したとの通知を上
    記第1通信マネジャに送るステップと、 を含む更新調整方法。
  8. 【請求項8】上記第1オペレーティング・システムが、
    上記第1通信マネジャによって上記第2通信マネジャか
    ら受信された投票を含む上記第1マシン上の加入者から
    の投票をすべて受信して、アトミック・インスタント・
    レコードを第1マシン・ログに書込むステップと、 上記第1オペレーティング・システムが、上記投票の結
    果によって決定された実行信号を上記第1マシン上の加
    入者に送り、上記第1通信マネジャが上記実行信号を上
    記第2通信マネジャに送るステップと、 上記第2オペレーティング・システムが、上記第2通信
    マネジャによって受信された上記実行信号に応答して上
    記第2マシン・ログに実行レコードを書込むステップ
    と、 実行が完了したことの通知を上記第2通信マネジャが上
    記第1通信マネジャに送るステップと、 を含む請求項4記載の分散データ処理システムにおける
    更新調整方法。
  9. 【請求項9】上記第2オペレーティング・システムが、
    上記第2マシン上の加入者から実行が完了したとの確認
    応答を受信して、上記第2マシン上の加入者に上記実行
    信号を送り、上記第2マシン・ログを更新し、上記第1
    オペレーティング・システムが、上記第1通信マネジャ
    を含む上記第1マシン上の加入者から実行が完了したと
    の確認応答を受信して、上記第1マシン・ログを更新す
    るステップを含む請求項8記載の分散データ処理システ
    ムにおける更新調整方法。
  10. 【請求項10】拡張2相コミット・プロトコルを実現す
    る分散データ処理システムであって、 第1オペレーティング・システムを実行し、第1通信マ
    ネジャを含む複数の第1加入者をサポートする少なくと
    も第1マシンと、 第2オペレーティング・システムを実行し、第2通信マ
    ネジャを含む複数の第2加入者をサポートする少なくと
    も第2マシンと、 上記第1及び第2の通信マネジャを相互接続する通信手
    段とを含み、 上記第1オペレーティング・システムが、上記第1マシ
    ン上の上記複数の第1加入者に準備信号を送り、上記第
    1通信マネジャが上記準備信号を上記第2通信マネジャ
    に送り、上記第2通信マネジャが、上記第1通信マネジ
    ャからの準備信号に応答して、上記第2オペレーティン
    グ・システムに対して第1相終了イネーブル・コールを
    生成し、上記第2オペレーティング・システムが上記第
    1オペレーティング・システムのコーディネータ機能の
    エージェントになるようにし、上記第2オペレーティン
    グ・システムが、上記第2マシン上の加入者に準備信号
    を送り、上記第2オペレーティング・システムが、上記
    第2マシン上の上記加入者による投票の第1相終了レコ
    ードを第2マシン・ログに書込み、上記第2マシン・ロ
    グへの書込みの後、第1相終了処理により制御を上記第
    2通信マネジャに渡し、上記第2通信マネジャが上記投
    票を上記第1通信マネジャに送る、 分散データ処理システム。
  11. 【請求項11】上記第1及び第2のマシンが、仮想マシ
    ン・オペレーティング・システム上で1つのコンピュー
    タを実行する仮想マシンであり、上記第1及び第2のオ
    ペレーティング・システムが、上記仮想マシン・オペレ
    ーティング・システムのゲスト・オペレーティング・シ
    ステムである、請求項10記載の分散データ処理システ
    ム。
  12. 【請求項12】上記第1及び第2のマシンが物理的に離
    れたコンピュータ上に実現され、上記通信装置が上記コ
    ンピュータを相互接続する通信リンクを含む、請求項1
    0記載の分散データ処理システム。
JP5202200A 1992-08-20 1993-08-16 加入者分散2相コミット・プロトコルの拡張機能 Expired - Fee Related JP2675968B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US93283592A 1992-08-20 1992-08-20
US932835 1992-08-20

Publications (2)

Publication Number Publication Date
JPH06202996A true JPH06202996A (ja) 1994-07-22
JP2675968B2 JP2675968B2 (ja) 1997-11-12

Family

ID=25463024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5202200A Expired - Fee Related JP2675968B2 (ja) 1992-08-20 1993-08-16 加入者分散2相コミット・プロトコルの拡張機能

Country Status (2)

Country Link
US (1) US5546582A (ja)
JP (1) JP2675968B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260589B2 (en) 2003-12-04 2007-08-21 International Business Machines Corporation High performance support for XA protocols in a clustered shared database
JP2013543171A (ja) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド コンピューティング能力に対する要求を動的に管理するための方法およびシステム

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553234A (en) * 1994-09-23 1996-09-03 International Business Machines Corporation System and method for including stored procedures, user-defined functions, and trigger processing in an existing unit of work
US5680610A (en) * 1995-01-19 1997-10-21 Unisys Corporation Method and apparatus for testing recovery scenarios in global transaction processing systems
GB2301909A (en) * 1995-06-07 1996-12-18 Ibm Reduction of logging in distributed transaction processing systems
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
GB2303474A (en) * 1995-07-19 1997-02-19 Ibm Optimized synchronisation procedure
US6009469A (en) * 1995-09-25 1999-12-28 Netspeak Corporation Graphic user interface for internet telephony application
US6108704A (en) * 1995-09-25 2000-08-22 Netspeak Corporation Point-to-point internet protocol
US6185184B1 (en) 1995-09-25 2001-02-06 Netspeak Corporation Directory server for providing dynamically assigned network protocol addresses
US6226678B1 (en) 1995-09-25 2001-05-01 Netspeak Corporation Method and apparatus for dynamically defining data communication utilities
US6052712A (en) * 1996-04-30 2000-04-18 International Business Machines Corporation System for barrier synchronization wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each subsequent phase
US5768538A (en) * 1996-04-30 1998-06-16 International Business Machines Corporation Barrier synchronization method wherein members dynamic voting controls the number of synchronization phases of protocols and progression to each new phase
US6016505A (en) * 1996-04-30 2000-01-18 International Business Machines Corporation Program product to effect barrier synchronization in a distributed computing environment
US6031978A (en) 1996-06-28 2000-02-29 International Business Machines Corporation System, method and program for enabling a client to reconnect to a same server in a network of computer systems after the server has moved to a different network address
US5781739A (en) * 1996-12-31 1998-07-14 International Business Machines Corp. IMS/WWW mapping system
US6446125B1 (en) * 1997-03-28 2002-09-03 Honeywell International Inc. Ripple scheduling for end-to-end global resource management
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US6058379A (en) * 1997-07-11 2000-05-02 Auction Source, L.L.C. Real-time network exchange with seller specified exchange parameters and interactive seller participation
US5953719A (en) * 1997-09-15 1999-09-14 International Business Machines Corporation Heterogeneous database system with dynamic commit procedure control
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
US6209065B1 (en) 1997-10-24 2001-03-27 Compaq Computer Corporation Mechanism for optimizing generation of commit-signals in a distributed shared-memory system
US6108737A (en) * 1997-10-24 2000-08-22 Compaq Computer Corporation Method and apparatus for reducing latency of inter-reference ordering in a multiprocessor system
US6088771A (en) * 1997-10-24 2000-07-11 Digital Equipment Corporation Mechanism for reducing latency of memory barrier operations on a multiprocessor system
US6085263A (en) * 1997-10-24 2000-07-04 Compaq Computer Corp. Method and apparatus for employing commit-signals and prefetching to maintain inter-reference ordering in a high-performance I/O processor
US6128622A (en) * 1997-11-26 2000-10-03 International Business Machines Corporation IMS web studio taskguide
US6185662B1 (en) 1997-12-22 2001-02-06 Nortel Networks Corporation High availability asynchronous computer system
US6128611A (en) * 1998-04-30 2000-10-03 International Business Machines Corporation Internet-enabled generic application program for accessing hierarchical data
US6286090B1 (en) 1998-05-26 2001-09-04 Compaq Computer Corporation Mechanism for selectively imposing interference order between page-table fetches and corresponding data fetches
US6430571B1 (en) 1998-07-16 2002-08-06 International Business Machines Corporation Multi-frame output form that facilitates internet search and update in a hierarchical database
US6438582B1 (en) * 1998-07-21 2002-08-20 International Business Machines Corporation Method and system for efficiently coordinating commit processing in a parallel or distributed database system
US7159005B1 (en) 1998-10-16 2007-01-02 International Business Machines Corporation Methods, systems and computer program products for restartable multiplexed file transfers
US6243715B1 (en) 1998-11-09 2001-06-05 Lucent Technologies Inc. Replicated database synchronization method whereby primary database is selected queries to secondary databases are referred to primary database, primary database is updated, then secondary databases are updated
US6401136B1 (en) 1998-11-13 2002-06-04 International Business Machines Corporation Methods, systems and computer program products for synchronization of queue-to-queue communications
US6279041B1 (en) 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6209038B1 (en) 1999-01-13 2001-03-27 International Business Machines Corporation Technique for aggregate transaction scope across multiple independent web requests
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US7290056B1 (en) 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US6701387B1 (en) 2000-08-31 2004-03-02 Hewlett-Packard Development Company, L.P. Adaptive data fetch prediction algorithm
US20020124083A1 (en) * 2000-09-06 2002-09-05 Sun Microsystems, Inc. Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment
US7103628B2 (en) * 2002-06-20 2006-09-05 Jp Morgan Chase & Co. System and method for dividing computations
US7376693B2 (en) * 2002-02-08 2008-05-20 Jp Morgan Chase & Company System architecture for distributed computing and method of using the system
US7640547B2 (en) * 2002-02-08 2009-12-29 Jpmorgan Chase & Co. System and method for allocating computing resources of a distributed computing system
US6895472B2 (en) * 2002-06-21 2005-05-17 Jp Morgan & Chase System and method for caching results
AU2003299454A1 (en) * 2002-10-08 2004-05-04 Koninklijke Philips Electronics N.V. Integrated circuit and method for exchanging data
US20040230862A1 (en) * 2003-05-16 2004-11-18 Arif Merchant Redundant data assigment in a data storage system
US7152077B2 (en) * 2003-05-16 2006-12-19 Hewlett-Packard Development Company, L.P. System for redundant storage of data
US7761421B2 (en) * 2003-05-16 2010-07-20 Hewlett-Packard Development Company, L.P. Read, write, and recovery operations for replicated data
US7526489B2 (en) * 2003-11-18 2009-04-28 International Business Machines Corporation Methods to integrate user-defined operations into a database
US20050262494A1 (en) * 2004-05-18 2005-11-24 Bea Systems, Inc. Production redeployment through application versioning
US20050262495A1 (en) * 2004-05-18 2005-11-24 Bea Systems, Inc. Administration mode for server applications
US7660879B2 (en) * 2004-05-20 2010-02-09 Ananthan Bala Srinivasan System and method for application deployment service
DE602005020697D1 (de) * 2005-06-09 2010-05-27 Gambro Lundia Ab Medizinische vorrichtung und verfahren zum einrichten einer medizinischen vorrichtung
ATE481994T1 (de) 2005-08-25 2010-10-15 Gambro Lundia Ab Medizinisches gerät
WO2007023329A1 (en) * 2005-08-25 2007-03-01 Gambro Lundia Ab Medical apparatus and user interface for a medical apparatus
US9047306B1 (en) 2005-10-17 2015-06-02 Hewlett-Packard Development Company, L.P. Method of writing data
US7827144B1 (en) 2005-11-17 2010-11-02 Hewlett-Packard Development Company, L.P. Methods of reading and writing data
ES2388503T3 (es) * 2005-12-19 2012-10-16 Gambro Lundia Ab Aparato médico con interfaz de usuario mejorada
US20080005291A1 (en) * 2006-06-01 2008-01-03 International Business Machines Corporation Coordinated information dispersion in a distributed computing system
US20160063029A1 (en) 2014-08-29 2016-03-03 Netapp, Inc. Clustered storage system synchronization
CN108762895B (zh) * 2018-05-17 2021-11-19 创新先进技术有限公司 处理分布式事务的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61145660A (ja) * 1984-12-18 1986-07-03 Fujitsu Ltd 分散デ−タベ−ス制御処理方式
JPH04229335A (ja) * 1990-05-16 1992-08-18 Internatl Business Mach Corp <Ibm> コミット手順の最適化方法
JPH04230541A (ja) * 1990-09-17 1992-08-19 Internatl Business Mach Corp <Ibm> 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648031A (en) * 1982-06-21 1987-03-03 International Business Machines Corporation Method and apparatus for restarting a computing system
JP2691081B2 (ja) * 1990-05-16 1997-12-17 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・ネットワーク
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5329626A (en) * 1990-10-23 1994-07-12 Digital Equipment Corporation System for distributed computation processing includes dynamic assignment of predicates to define interdependencies
US5390302A (en) * 1991-02-21 1995-02-14 Digital Equipment Corporation Transaction control
US5258982A (en) * 1991-05-07 1993-11-02 International Business Machines Corporation Method of excluding inactive nodes from two-phase commit operations in a distributed transaction processing system
JPH0797782B2 (ja) * 1991-09-18 1995-10-18 インターナショナル・ビジネス・マシーンズ・コーポレイション 異種トランザクションの調整方法
US5241675A (en) * 1992-04-09 1993-08-31 Bell Communications Research, Inc. Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US5432926A (en) * 1992-12-04 1995-07-11 International Business Machines Corporation Method and apparatus for improving database reliability and response time in a distributed transaction processing system
US5325528A (en) * 1993-04-22 1994-06-28 Digital Equipment Corporation Distributed computation recovery management system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61145660A (ja) * 1984-12-18 1986-07-03 Fujitsu Ltd 分散デ−タベ−ス制御処理方式
JPH04229335A (ja) * 1990-05-16 1992-08-18 Internatl Business Mach Corp <Ibm> コミット手順の最適化方法
JPH04230541A (ja) * 1990-09-17 1992-08-19 Internatl Business Mach Corp <Ibm> 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260589B2 (en) 2003-12-04 2007-08-21 International Business Machines Corporation High performance support for XA protocols in a clustered shared database
US7743036B2 (en) 2003-12-04 2010-06-22 International Business Machines Corporation High performance support for XA protocols in a clustered shared database
JP2013543171A (ja) * 2010-09-21 2013-11-28 アマゾン テクノロジーズ インコーポレーテッド コンピューティング能力に対する要求を動的に管理するための方法およびシステム
US9268584B2 (en) 2010-09-21 2016-02-23 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity

Also Published As

Publication number Publication date
JP2675968B2 (ja) 1997-11-12
US5546582A (en) 1996-08-13

Similar Documents

Publication Publication Date Title
JP2675968B2 (ja) 加入者分散2相コミット・プロトコルの拡張機能
JP3759410B2 (ja) クラスタ化された計算処理環境において実行する分散ネットワークアプリケーションの管理用リクエストを処理するための方法および装置
US7552218B2 (en) Transparent session migration across servers
US6243825B1 (en) Method and system for transparently failing over a computer name in a server cluster
US6081826A (en) System using environment manager with resource table in each computer for managing distributed computing resources managed for each application
JP2691081B2 (ja) コンピュータ・ネットワーク
US6266698B1 (en) Logging of transaction branch information for implementing presumed nothing and other protocols
US7475127B2 (en) Real composite objects for providing high availability of resources on networked systems
US20040083225A1 (en) Method and apparatus for handling failures of resource managers in a clustered environment
US20020059306A1 (en) Method and system for advanced restart of application servers processing time-critical requests
US20020035590A1 (en) Guaranteed end-to-end transaction execution in a client/server environment
JPH0831043B2 (ja) コミット手順の非同期的再同期化実行装置および方法
JPH09171502A (ja) マルチプロセッサ・クラスタ・メンバシップ・マネージャ・フレームワーク
JPH0793272A (ja) 資源の同期点管理を実行する装置および方法
JP2001147901A (ja) ローカル・ジョブ制御システムを有する分散処理システム内での外部ジョブ・スケジューリング方法及びシステム
WO2001090886A2 (en) Local transaction management
JPH087690B2 (ja) コミット手順におけるエラー・コードおよびエラー記述情報の処理装置および方法
JPH10143381A (ja) 遊休ワークステーションを共用するための装置および方法
JPH0793271A (ja) 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US6038664A (en) Method for selecting communication access method for local area networks
US20040249921A1 (en) System, method and program for coordinating timeouts for distributed servers
KR20030072579A (ko) 에이전트 시스템과 그 정보 처리 방법
JP2000194678A (ja) クラスタコンピュ―タシステムにおける高度に利用可能な非同期i/o
JP3809858B2 (ja) 分散トランザクションの効率的同期点処理を実現する方法、システム、及びプログラム・プロダクト
KR100403659B1 (ko) 서버 프로세스 장치 및 서버 프로세스 방법 및 컴퓨터 판독가능한 기록 매체

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees