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

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

Info

Publication number
JP2675968B2
JP2675968B2 JP5202200A JP20220093A JP2675968B2 JP 2675968 B2 JP2675968 B2 JP 2675968B2 JP 5202200 A JP5202200 A JP 5202200A JP 20220093 A JP20220093 A JP 20220093A JP 2675968 B2 JP2675968 B2 JP 2675968B2
Authority
JP
Japan
Prior art keywords
coordinator
machine
communication manager
operating system
subscriber
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
Application number
JP5202200A
Other languages
English (en)
Other versions
JPH06202996A (ja
Inventor
ロジャー・ライル・ブロックマイヤー
リチャード・ダイベンドルフ
ダニエル・エドワード・ハウス
アール・エイチ・ジェナー
マーガレット・ケリー・ラベル
マイケル・ジェラルド・モール
スチュアート・ルイス・サイレン
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)

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の出口に特別処理ステージが追加され
る。この特別ステージは第1相終了出口機能を遂行する
第1相終了処理(EPOP)であり、多様な通信メカニ
ズムを使用するシステム全体に亙ってコーディネータ機
能を分散させることができる。特別ステージのお陰で、
コーディネータがその分散事実を認識する必要が無くて
恰も分散コーディネータ機能の無いシステムのように動
作することが可能になる。第1相終了処理は、主に、前
記2相プロセスの被制御リソースである加入者が制御権
を有する特別ステージである。この特別ステージでは、
加入者が2相コミット・プロトコルのプロセス・シーケ
ンスを分散したシステムに送る。通信メカニズムは、分
散コーディネータ機能の一部となるように用いられる。
したがって、コーディネータ自体は、通信プロトコル、
分散ネットワーク・トポロジなどの通信メカニズムない
し通信システムを認識せずに動作できる。特別処理ステ
ージは、第1相終了(出口)処理イネーブル(EEPO
EP)と呼ばれるオペレーティング・システムの新規な
サービスの呼び出しによってイネーブルされる。特別ス
テージは、EEPOEPを出した分散システムに関して
使用可能になる。これにより、分散データベースをサポ
ートできるだけでなく、分散したユーザと分散した汎用
リソース・マネジャ(障害に耐える保護リソースを所有
するプロセスであるリソース・マネジャなど)もサポー
トされる。
【0012】本発明による2相コミット・プロトコルの
分散加入者への拡張方法は、次の通りの構成を有する。
第1のコーディネータを有する第1のシステムおよび第
2のコーディネータを有する第2のシステムを少なくと
も含む分散データ処理システムにおける更新を調整する
2相コミット・プロトコルの分散加入者への拡張方法に
おいて、2相コミット・プロトコル・プロセスの第1相
の終了後に追加的に遂行すべく前記第1システムに関連
づけられている機能である第1相終了出口機能を前記第
2コーディネータが所定時刻に呼び出しできるように前
記第1システムから第2コーディネータに対して通報す
るステップと、前記第2コーディネータを前記第1コー
ディネータのサブコーディネータに変換し機能させるよ
うに、前記第2システム内で前記第1相終了出口機能を
イネーブルにするステップと、前記サブコーディネータ
が、前記第2システム上の2相コミット・プロセスの被
制御リソースである加入者(以下、加入者と略称する)
に対してPREPARE信号を送信し、その信号に対す
る前記加入者からの応答を収集し、全応答が収集された
時点で第2システム応答の第1相終了レコードを第2シ
ステム・ログに書き込み、そして、該ログ書き込みに応
答して、制御を前記第1相終了出口機能へ引き渡すステ
ップと、より成り、前記応答は、加入者が作業単位に継
続して関与することを希望するが作業単位の最終決定に
影響を与えることを希望しない場合にPREPARE信
号に対する応答としてABSTAIN応答を含む方法。
さらに、本発明による拡張2相コミット・プロトコルを
実現する分散データ処理システムの構成は、次の通りで
ある。第1オペレーティング・システムを実行し、第1
通信マネジャを含む複数の第1加入者をサポートする第
1マシンと、第2オペレーティング・システムを実行
し、第2通信マネジャを含む複数の第2加入者をサポー
トする第2マシンと、前記第1および第2の通信マネジ
ャを相互接続する通信手段とを含み、前記第1オペレー
ティング・システムが前記第1通信マネジャを含む前記
第1マシン上の複数の前記第1加入者に対してPREP
ARE信号を送信し、その信号を該第1通信マネジャが
前記第2通信マネジャに通信する拡張2相コミット・プ
ロトコルを実現する分散データ処理システムにおいて、
前記第2オペレーティング・システムは、前記PREP
ARE信号に応答して、前記第2通信マネジャに対し
て、第1相終了出口機能をイネーブルにして前記第2オ
ペレーティング・システムを前記第1オペレーティング
・システムのコーディネータ機能のサブコーディネータ
として機能させるように通報し、該サブコーディネータ
機能の下に前記第2マシン上の加入者に対して2相コミ
ット・プロセスのうちの第1相の処理を指示し、加入者
から応答を収集し、全応答の収集結果の第1相終了レコ
ードを第2マシン・ログに書き込む機能を有し、前記第
1相終了処理は、前記第2オペレーティング・システム
が前記第1オペレーティング・システムのコーディネー
タ機能のサブコーディネータであることを前記第2通信
マネジャへ通知すると共に前記第2マシン上の加入者か
らの応答結果を前記第2通信マネジャへ通知する機能を
有し、前記第2オペレーティング・システムは、さら
に、前記第1相終了レコードの前記ログへの書き込みの
後、第1相終了出口機能を用いて、制御を前記第2通信
マネジャに引き渡す機能を有し、前記第2通信マネジャ
が前記応答結果を前記第1通信マネジャへ送信する機能
を有し、前記応答は、加入者または通信マネジャが作業
単位に継続して関与することを希望するが作業単位の最
終決定に影響を与えることを希望しない場合にPREP
ARE信号に対する応答としてABSTAIN応答を含
む分散データ処理システム。
【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などの通信
マネジャ)で分散することに決める。使用している通信
メカニズムに依存して、ユーザはコミット・プロセスを
コーディネータまたは通信マネジャに直接要求する。E
POPは、ユーザが何らかの手段によってコミットした
いという希望をコーディネータが知らせている場合は、
それに従う。
【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に示した例の場合、CMGR_
Bはステップ7でPREPARE信号にYESを投じ、
2 は、ステップ8でPREPARE信号にYESを投
じる。これらの投票は図13では判定ブロック208で
検出される。
【0061】次にAOCは、(1)その投票をすべての
加入者(CMGR_BとP2 )から受信し、(2)図1
1のステップ5で出されたEEPOEPサービス・コー
ルによって、それがAOCであることがこのオペレーテ
ィング・システム・インスタンスに通知されたので、機
能ブロック209で第1相終了(E01)レコードをログ
に書込む。このレコードを書込むのはAOCだけであ
る。このレコードは図11のステップ9のタイミングチ
ャートに"*"で示した。次にAOCは、CMGR_Bが
先に第1相終了処理イネーブル(EEPOEP)サービ
ス・コールを出していたので、ステップ10で制御をC
MGR_Bに渡す。これは、第1相終了処理、すなわ
ち、フェーズ1の出口処理機能、と呼ばれる新しい処理
ステージである。CMGR_Bは、PREPARE信号
の結果を通知される。第1相終了では、CMGR_Bが
次にCMGR_AにYESを返す(図13の機能ブロッ
ク210)。図11のステップ11を参照されたい。こ
れは、ステップ4でCMGR_AがCMGR_Bに送っ
たPREPAREへの応答である。図の例では、すべて
の投票がYESであり、PREPAREの結果はYES
だった(すなわちコミット処理に進む)。PREPAR
E信号は他の結果もあり得るが、本発明の説明を補足す
るものではないので省略する。
【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投票により、図11の次の
ステップは生じない。 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 (56)参考文献 特開 昭61−145660(JP,A) 特開 平4−230541(JP,A) 特開 平4−229335(JP,A)

Claims (11)

    (57)【特許請求の範囲】
  1. 【請求項1】第1のコーディネータを有する第1のシス
    テムおよび第2のコーディネータを有する第2のシステ
    ムを少なくとも含む分散データ処理システムにおける更
    新を調整する2相コミット・プロトコルの分散加入者へ
    の拡張方法において、 2相コミット・プロトコル・プロセスの第1相の終了後
    に追加的に遂行すべく前記第1システムに関連づけられ
    ている機能である第1相終了出口機能を前記第2コーデ
    ィネータが所定時刻に呼び出しできるように前記第1シ
    ステムから第2コーディネータに対して通報するステッ
    プと、 前記第2コーディネータを前記第1コーディネータのサ
    ブコーディネータへ変換し機能させるように、前記第2
    システム内で前記第1相終了出口機能をイネーブルにす
    るステップと、 前記サブコーディネータが、前記第2システム上の2相
    コミット・プロセスの被制御リソースである加入者(以
    下、加入者と略称する)に対してPREPARE信号を
    送信し、その信号に対する前記加入者からの応答を収集
    し、全応答が収集された時点で第2システム応答の第1
    相終了レコードを第2システム・ログに書き込み、そし
    て、該ログ書き込みに応答して、制御を前記第1相終了
    出口機能へ引き渡すステップと、 より成り、前記応答は、加入者が作業単位に継続して関
    与することを希望するが作業単位の最終決定に影響を与
    えることを希望しない場合にPREPARE信号に対す
    る応答としてABSTAIN応答を含む方法。
  2. 【請求項2】前記第1コーディネータおよび前記サブコ
    ーディネータが、それぞれ、前記第2システム上の加入
    者および前記第1システム上の加入者を認識することな
    しに動作する請求項1に記載の方法。
  3. 【請求項3】前記第1コーディネータの機能および前記
    サブコーディネータとしての前記第2コーディネータの
    機能は、それぞれ、第1システム内の第1オペレーティ
    ング・システムおよび第2システム内の第2オペレーテ
    ィング・システムに組み込まれ、かつ、それぞれ、第1
    システム内の第1通信マネジャおよび該通信マネジャと
    通信する第2システム内の第2通信マネジャから分離さ
    れている請求項1に記載の方法。
  4. 【請求項4】第1および第2のオペレーティング・シス
    テムならびに第1および第2の通信マネジャをそれぞれ
    組み込んでいる第1および第2のマシンを含み2相コミ
    ット・プロトコル・プロセスを使用する分散データ処理
    システムにおける更新を調整する2相コミット・プロト
    コルの分散加入者への拡張方法において、 前記第1オペレーティング・システムが前記第1通信マ
    ネジャを含む前記第1マシン上の加入者にPREPAR
    E信号を送り、そして、前記第1通信マネジャが受信し
    た前記PREPARE信号を前記第2通信マネジャに送
    るステップと、 前記第1通信マネジャからの前記PREPARE信号に
    応答して、前記第2通信マネジャが、前記第2オペレー
    ティング・システムに対して、第1相終了出口機能をイ
    ネーブルにして該第2オペレーティング・システムを前
    記第1オペレーティング・システムのコーディネータ機
    能のサブコーディネータへ変換し機能するように通報す
    るステップと、 前記サブコーディネータ機能が前記第2マシン上の加入
    者に対して第1相の処理を遂行するように通報し、各加
    入者から応答を収集し、そして全応答が収集された時点
    で第2マシン応答の第1相終了レコードを第2マシン・
    ログに書き込む機能を具備する一方、前記第1相終了出
    口機能が前記第1相の処理結果を前記第2通信マネジャ
    へ通知する機能を具備しており、 前記第2オペレーティング・システムが、前記サブコー
    ディネータ機能の下に、PREPARE信号を前記第2
    マシン上の加入者へ送信し、該加入者から応答を受信す
    るステップと、 前記第1相終了出口機能を用いて、制御を前記第2オペ
    レーティング・システムから前記第2通信マネジャへ引
    き渡し、該第2通信マネジャが前記第2マシン上の前記
    応答結果を前記第1通信マネジャへ返送するステップ
    と、 より成り、前記応答は、加入者または通信マネジャが作
    業単位に継続して関与することを希望するが作業単位の
    最終決定に影響を与えることを希望しない場合にPRE
    PARE信号に対する応答としてABSTAIN応答を
    含む方法。
  5. 【請求項5】PREPARE信号に対する前記応答が、
    前記ABSTAIN応答の他に、加入者が作業単位の変
    更をCOMMITする準備が出来たことを示すYES応
    答および加入者が作業単位の変更をBACKOUTしよ
    うとすることを示すNO応答を含む請求項4に記載の方
    法。
  6. 【請求項6】前記第2マシン上の加入者からの前記応答
    の少なくとも一部がYESである場合、 前記第2オペレーティング・システムが前記第2マシン
    上の加入者による応答の第1相終了レコードを第2マシ
    ン・ログに書込むステップを含み、かつ、前記第2通信
    マネジャへ制御を引き渡す前記ステップが前記第2マシ
    ン・ログへの書き込み後に前記第1相終了出口機能によ
    って遂行される請求項5に記載の方法。
  7. 【請求項7】前記第2マシン上の加入者による前記応答
    のすべてがFORGETまたはABSTAINである場
    合、 前記第1オペレーティング・システムが、前記第1マシ
    ン上の加入者からの応答および前記第1通信マネジャに
    より受信された前記第2通信マネジャからの応答に基づ
    いてコーディネータによるCOMMIT/BACKOU
    T決定のレコード(以下、アトミック・インスタント・
    レコードと呼ぶ)を第1マシン・ログに書き込むステッ
    プと、 前記第1オペレーティング・システムが、前記COMM
    IT/BACKOUT決定に対応する実行信号を前記第
    1マシン上の加入者に送るが、前記第2通信マネジャに
    は送られないステップと、 を含む請求項5に記載の方法。
  8. 【請求項8】前記第1マシン上の加入者によるPREP
    ARE信号への応答がすべてFORGETまたはABS
    TAINである場合、 前記第2オペレーティング・システムが、前記第2マシ
    ン上の加入者による応答の第1相終了レコードを第2マ
    シン・ログに書き込むステップと、 前記第2マシン・ログへの書き込みの後、前記第2通信
    マネジャへ制御権を引き渡し、該第2通信マネジャが前
    記応答結果を前記記第1通信マネジャへ送るステップ
    と、 前記第1オペレーティング・システムが、前記第1通信
    マネジャにより受信された前記第2通信マネジャからの
    応答結果に基づいて、アトミック・インスタント・レコ
    ードを第1マシン・ログに書き込むステップと、 上記第1オペレーティング・システムが、実行信号を前
    記第1マシン上の加入者へ送らずに、前記第1通信マネ
    ジャへ送り、次に前記第1通信マネジャが前記第2通信
    マネジャに前記実行信号を送るステップと、 前記第2オペレーティング・システムが、前記第2通信
    マネジャによって受信された前記実行信号に応答して前
    記第2マシン・ログに実行レコードを書き込むステップ
    と、 前記第2通信マネジャが、実行が完了したとの通知を前
    記第1通信マネジャに送るステップと、 を含む請求項5に記載の方法。
  9. 【請求項9】前記第1オペレーティング・システムのう
    ちの前記コーディネータ機能および第2オペレーティン
    グ・システムのうちの前記サブコーディネータ機能が、
    それぞれ、前記第1通信マネジャおよび前記第2通信マ
    ネジャから分離されており、前記第1オペレーティング
    ・システムが、前記第2マシン上の加入者を認識せずに
    動作する一方、前記第2オペレーティング・システムが
    前記第1マシン上の加入者を認識せずに動作する請求項
    4に記載の方法。
  10. 【請求項10】第1オペレーティング・システムを実行
    し、第1通信マネジャを含む複数の第1加入者をサポー
    トする第1マシンと、 第2オペレーティング・システムを実行し、第2通信マ
    ネジャを含む複数の第2加入者をサポートする第2マシ
    ンと、 前記第1および第2の通信マネジャを相互接続する通信
    手段とを含み、 前記第1オペレーティング・システムが前記第1通信マ
    ネジャを含む前記第1マシン上の複数の前記第1加入者
    に対してPREPARE信号を送信し、その信号を該第
    1通信マネジャが前記第2通信マネジャに通信する拡張
    2相コミット・プロトコルを実現する分散データ処理シ
    ステムにおいて、 前記第2オペレーティング・システムは、前記PREP
    ARE信号に応答して、前記第2通信マネジャに対し
    て、第1相終了出口機能をイネーブルにして前記第2オ
    ペレーティング・システムを前記第1オペレーティング
    ・システムのコーディネータ機能のサブコーディネータ
    として機能させるように通報し、該サブコーディネータ
    機能の下に前記第2マシン上の加入者に対して2相コミ
    ット・プロセスのうちの第1相の処理を指示し、加入者
    から応答を収集し、全応答の収集結果の第1相終了レコ
    ードを第2マシン・ログに書き込む機能を有し、 前記第1相終了処理は、前記第2オペレーティング・シ
    ステムが前記第1オペレーティング・システムのコーデ
    ィネータ機能のサブコーディネータであることを前記第
    2通信マネジャへ通知すると共に前記第2マシン上の加
    入者からの応答結果を前記第2通信マネジャへ通知する
    機能を有し、 前記第2オペレーティング・システムは、さらに、前記
    第1相終了レコードの前記ログへの書き込みの後、第1
    相終了出口機能を用いて、制御を前記第2通信マネジャ
    に引き渡す機能を有し、 前記第2通信マネジャが前記応答結果を前記第1通信マ
    ネジャへ送信する機能を有し、 前記応答は、加入者または通信マネジャが作業単位に継
    続して関与することを希望するが作業単位の最終決定に
    影響を与えることを希望しない場合にPREPARE信
    号に対する応答としてABSTAIN応答を含む分散デ
    ータ処理システム。
  11. 【請求項11】上記第1および第2のマシンが、仮想マ
    シン・オペレーティング・システムの制御の下に、単一
    コンピュータ上を走行する仮想マシンであり、前記第1
    および第2のオペレーティング・システムが、前記仮想
    マシン・オペレーティング・システムのゲスト・オペレ
    ーティング・システムである請求項10に記載の分散デ
    ータ処理システム。
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 JPH06202996A (ja) 1994-07-22
JP2675968B2 true 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)

Families Citing this family (61)

* 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
US6226678B1 (en) 1995-09-25 2001-05-01 Netspeak Corporation Method and apparatus for dynamically defining data communication utilities
US6185184B1 (en) 1995-09-25 2001-02-06 Netspeak Corporation Directory server for providing dynamically assigned network protocol addresses
US6108704A (en) * 1995-09-25 2000-08-22 Netspeak Corporation Point-to-point internet protocol
US6009469A (en) * 1995-09-25 1999-12-28 Netspeak Corporation Graphic user interface for internet telephony application
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
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
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
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
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
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
US6088771A (en) * 1997-10-24 2000-07-11 Digital Equipment Corporation Mechanism for reducing latency of memory barrier operations on a multiprocessor system
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
US6895472B2 (en) * 2002-06-21 2005-05-17 Jp Morgan & Chase System and method for caching results
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
US7103628B2 (en) * 2002-06-20 2006-09-05 Jp Morgan Chase & Co. System and method for dividing computations
WO2004034173A2 (en) * 2002-10-08 2004-04-22 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
US7260589B2 (en) 2003-12-04 2007-08-21 International Business Machines Corporation High performance support for XA protocols in a clustered shared 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
US7922899B2 (en) * 2005-06-09 2011-04-12 Gambro Lundia Ab Medical apparatus and method for setting up a medical apparatus
CN101248412B (zh) * 2005-08-25 2012-04-25 甘布罗伦迪亚股份公司 医疗设备和实现该设备的设置的方法和装置
EP1917053B8 (en) * 2005-08-25 2011-01-19 Gambro Lundia AB 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
CN101341489B (zh) * 2005-12-19 2012-10-03 甘布罗伦迪亚股份公司 具有改进用户界面的医疗设备
US20080005291A1 (en) * 2006-06-01 2008-01-03 International Business Machines Corporation Coordinated information dispersion in a distributed computing system
US8661120B2 (en) * 2010-09-21 2014-02-25 Amazon Technologies, Inc. Methods and systems for dynamically managing requests for computing capacity
US20160063029A1 (en) 2014-08-29 2016-03-03 Netapp, Inc. Clustered storage system synchronization
CN108762895B (zh) * 2018-05-17 2021-11-19 创新先进技术有限公司 处理分布式事务的方法及装置

Family Cites Families (15)

* 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
JPS61145660A (ja) * 1984-12-18 1986-07-03 Fujitsu Ltd 分散デ−タベ−ス制御処理方式
JP2691081B2 (ja) * 1990-05-16 1997-12-17 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・ネットワーク
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
JP2837288B2 (ja) * 1990-09-17 1998-12-14 インターナショナル・ビジネス・マシーンズ・コーポレイション 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法
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

Also Published As

Publication number Publication date
US5546582A (en) 1996-08-13
JPH06202996A (ja) 1994-07-22

Similar Documents

Publication Publication Date Title
JP2675968B2 (ja) 加入者分散2相コミット・プロトコルの拡張機能
US6868442B1 (en) Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment
US7548973B2 (en) Managing a high availability framework by enabling and disabling individual nodes
US6081826A (en) System using environment manager with resource table in each computer for managing distributed computing resources managed for each application
JP2691081B2 (ja) コンピュータ・ネットワーク
US6338146B1 (en) Method and apparatus for fault-tolerant, scalable and non-blocking three-phase flushing for committing database transactions in a cluster of multiprocessors
US20040083225A1 (en) Method and apparatus for handling failures of resource managers in a clustered environment
US7146532B2 (en) Persistent session and data in transparently distributed objects
JPH09171502A (ja) マルチプロセッサ・クラスタ・メンバシップ・マネージャ・フレームワーク
JPH0831043B2 (ja) コミット手順の非同期的再同期化実行装置および方法
JPH0793272A (ja) 資源の同期点管理を実行する装置および方法
JPH087690B2 (ja) コミット手順におけるエラー・コードおよびエラー記述情報の処理装置および方法
WO2001090886A2 (en) Local transaction management
JPH06214969A (ja) 情報通信方法および装置
JPH0793271A (ja) 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム
US6038664A (en) Method for selecting communication access method for local area networks
JP4885342B2 (ja) クラスタコンピュータシステムにおける高度に利用可能な非同期i/o
US20040249921A1 (en) System, method and program for coordinating timeouts for distributed servers
JP3809858B2 (ja) 分散トランザクションの効率的同期点処理を実現する方法、システム、及びプログラム・プロダクト
JPH03206542A (ja) 割込み方法
JP2568033B2 (ja) ルーズにつないだコンピュータ装置におけるプロセッサ間セッション経路指定用のシステム及び方法
EP1654650B1 (en) Transparent session migration across servers
JP2000047890A (ja) 分散オブジェクト管理システムとそのオブジェクト選択方法およびその処理プログラムを記録した記録媒体
JPH06274432A (ja) 分散計算機システム管理方式およびその管理方法
JP2820942B2 (ja) 通信プロトコル処理方法

Legal Events

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