JP3809858B2 - 分散トランザクションの効率的同期点処理を実現する方法、システム、及びプログラム・プロダクト - Google Patents

分散トランザクションの効率的同期点処理を実現する方法、システム、及びプログラム・プロダクト Download PDF

Info

Publication number
JP3809858B2
JP3809858B2 JP2001092379A JP2001092379A JP3809858B2 JP 3809858 B2 JP3809858 B2 JP 3809858B2 JP 2001092379 A JP2001092379 A JP 2001092379A JP 2001092379 A JP2001092379 A JP 2001092379A JP 3809858 B2 JP3809858 B2 JP 3809858B2
Authority
JP
Japan
Prior art keywords
synchronization point
child
point processing
parent
recovery unit
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 - Lifetime
Application number
JP2001092379A
Other languages
English (en)
Other versions
JP2001306381A (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 JP2001306381A publication Critical patent/JP2001306381A/ja
Application granted granted Critical
Publication of JP3809858B2 publication Critical patent/JP3809858B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般には分散トランザクション処理に関し、特に分散トランザクションの同期点処理を行うとき、分散トランザクションのリカバリ単位間でのメッセージの受け渡しを避けることに関する。
【0002】
【従来の技術】
1つのトランザクション監視サブシステム環境で実行されるトランザクション・プログラムは、他のサブシステム環境で実行されるトランザクション・プログラムによるリソースの更新を必要とすることがある。他のサブシステム環境は、元のサブシステムと似ていることもあり異なることもある。いずれの場合でも、分散トランザクション・プロトコルにより、別々のプログラムが1つのトランザクションで結びつけられることが多い。
【0003】
分散トランザクション・プロトコルでは、1つのトランザクション・プログラムが、開始側のトランザクション・プログラムから見てローカルまたは非ローカルの他のトランザクション・プログラムを起動することができる。開始側トランザクション・サブシステムはイニシエータと呼ばれ、開始されるトランザクション・サブシステムはエージェントと呼ばれる。トランザクションにおけるイニシエータと全てのエージェントを、ここでは調整グループと呼ぶ。
【0004】
更に分散トランザクション・プロトコルでは、通常、参加する各サブシステムは同期点処理に参加する必要があり、同期点処理は、コミットされたトランザクションに関するトランザクション・ロギングを含む。開始側のシステムは通常、コミット・レコードを"硬化"する(永続的媒体に格納する)必要があり、各エージェントは少なくとも疑わしいレコード及びコミット・レコードを硬化する必要がある。一部のプロトコルでは、ログ書込みの追加さえ必要である。イニシエータとエージェントが別々のシステムにあるとき、システムまたはシステム間の通信に障害が発生した場合に、トランザクション・リカバリの効果を上げるには、これらのログ書込みが必要である。イニシエータとエージェントが同じシステムにある場合も、これらのログ格納は実行され、リカバリに用いられる。
【0005】
1例として、同期点処理は、同期点処理の間に互いに通信するため、調整グループに様々なメンバを必要とする方法により実行される。この通信は、調整グループの各メンバが同じトランザクション監視サブシステムにより制御されるときでも必要である。これは、分散トランザクションにおいては、調整グループの各メンバが個別に動作することによる。従って、調整グループ・メンバが同じトランザクション・サブシステムであっても、メンバ間でメッセージの受け渡しが行われることは変わらない。
【0006】
同期点処理の間のこの通信はかなり高コストである。従って、分散トランザクションの同期点処理を効率的に実行する方法が求められる。特に、同期点処理の間に調整グループ・メンバ間の通信を少なくする方法が求められる。
【0007】
【発明が解決しようとする課題】
従来技術の欠点は、コンピューティング環境の分散トランザクションで同期点処理を実行する方法を通して克服され、また他の利点も得られる。
【0008】
【課題を解決するための手段】
方法は、例えば、複数のリカバリ単位を含む分散トランザクションを実行するステップと、複数のリカバリ単位の少なくとも一部について同期点処理を実行するステップを含む。同期点処理は、複数のリカバリ単位の少なくとも一部間でメッセージの受け渡しをせずに実行される。
【0009】
同期点処理の実行は、例えば複数のリカバリ単位のうち1つのリカバリ単位を用いて、同期点処理で複数のリカバリ単位の少なくとも一部を表すステップを含む。
【0010】
例えば複数のリカバリ単位のうち少なくとも一部のインタレストが、同期点処理の間に用いられる1つのリカバリ単位にコピーされる。また例えば1つのリカバリ単位から1つまたは1つ以上の出口が活動化され、複数のリカバリ単位のうち少なくとも一部の同期点処理のフェーズが少なくとも1つまたは1つ以上開始される。また他の例では、複数のリカバリ単位のうち少なくとも一部に対する1つまたは1つ以上の投票が1つのリカバリ単位側で集められる。1つまたは1つ以上の投票は1つまたは1つ以上の出口に対応する。
【0011】
本発明の他の態様では、コンピューティング環境の分散トランザクションに関して同期点処理の方法が得られる。方法は、例えば、複数のリカバリ単位を含む分散トランザクションを実行するステップと、複数のリカバリ単位のうち少なくとも複数の単位に対して同期点処理を実行するステップを含む。その場合、コンピューティング環境の1つの同期点マネージャが、複数のリカバリ単位の少なくとも複数の単位に関して同期点処理を制御する。
【0012】
ここで、先に要約した方法に対応するシステム及びコンピュータ・プログラム・プロダクトについて説明する。
【0013】
【発明の実施の形態】
本発明の態様に従い、分散トランザクションの少なくとも一部について、分散トランザクションのその部分に関連付けられたリカバリ単位(またはノード)間でメッセージの受け渡しを必要とせず、同期点処理(2フェーズ・コミット処理等)が実行される。例えば分散トランザクションは複数のリカバリ単位を含み、単位それぞれに同期点マネージャが関連付けられる。マネージャの1つが選択されて、分散トランザクションの他の1つまたは1つ以上の同期点マネージャのため、これら他のマネージャが同期点処理を制御するため互いに通信することなく、同期点処理(トランザクション・ロギングを含む)が制御される。これにより分散トランザクションの効率的同期点処理が、特にコンピューティング環境の1つのシステム上にトランザクションの少なくとも一部があるとき可能になる。
【0014】
本発明の機能を組み入れて利用するコンピューティング環境の1例を図1に示し、ここで詳しく説明する。1例のコンピューティング環境100は、IBMのESA(エンタプライズ・システム・アーキテクチャ)/390にもとづき、接続機構104に接続されたシステム102を含む。システム102はそれぞれオペレーティング・システム106とリソース・マネージャ(RM)108を含む。以下にそれぞれについて説明する。
【0015】
実施例のオペレーティング・システム106は、例えばIBMのOS/390、またはMVS(多重仮想記憶)オペレーティング・システムであり、例えば同期点マネージャ110を含む。
【0016】
例を示す。データの変更を全て完了またはアンドゥするため用いられる2フェーズ・コミット・プロトコルで、同期点マネージャが参加者(リソース・マネージャ等)を調整する。同期点マネージャの1例として、IBMのRRS(リソース・リカバリ・サービス)がある。同期点マネージャは、後述するように、本発明の様々な態様に関与する。
【0017】
リソース・マネージャ108はそれぞれ、コンピューティング環境内のリソース群を所有し制御する。例えばリソース・マネージャは、IBMのIMS、DB2等のデータベース管理機構でもある。
【0018】
システム102はそれぞれ接続機構104に接続される。接続機構104は、システムによりアクセスできるストレージを含み、リソース・マネージャやシステム内で動作するプログラムに必要な操作を実行する共有可能な機構である。実施例の接続機構104は、SES(structured-external storage processor、構造化外部ストレージ・プロセッサ)である。接続機構の例は、Elkoらによる1994年5月31日付米国特許第5317739号、"Method and Apparatus for Coupling Data Processing Systems"、及びGeinerらによる1998年4月7日付米国特許第5737600号、"Method and System For Log Management In A Coupled Data Processing System"に詳しい。
【0019】
接続機構104はログ112を含む。ログは、例えばリカバリ状況で使用できるトランザクション情報を維持し、コンピューティング環境の複数のシステム1つまたは1つ以上からアクセスできる。
【0020】
ここに示す実施例では、ログに入れられる情報は接続機構内に位置するが、これは1例にすぎない。ロギング情報はまた、1つまたは1つ以上のシステムのメモリ、DASD等の外部ストレージ内、或いはその組み合わせにも格納できる。更に本発明は、マルチシステム環境に用いる必要はない。本発明は、接続機構の有無にかかわらず1つのシステムに適用することができる。
【0021】
コンピューティング環境は1つまたは1つ以上の分散トランザクションを実行するのに用いられる。分散トランザクションは通常、それぞれ、トランザクションの原子性、一貫性、独立性、及び耐久性を保証するため、2フェーズ・コミット・プロセスを使用する複数のリソース・マネージャを伴う。分散トランザクションは、1組のリカバリ単位(UR)として表される。リカバリ単位はそれぞれ、トランザクションの一部としてコミットまたはバックアウトされる1ノード(後述)上の1組の変更内容である。URは明示的に開始されるか、またはリソース・マネージャが初めてノード上の保護リソースに接触したとき暗黙に開始され、それを変更するトランザクションの2フェーズ・コミット・プロセスが完了したとき終了する。分散トランザクションには複数のリカバリ単位があるが、それらのリカバリ単位の全てまたは一部は、1つのシステム(システム1等)内で実行することができる。
【0022】
リカバリ単位はそれぞれ、サブシステム環境内で実行されている1つの作業単位に関連付けられ、作業単位はそれぞれ作業コンテキストにより表される。リカバリ単位とこれに関連付けられる作業コンテキストは、同じ作業マネージャまたは異なる作業マネージャが所有し管理することができる。(作業マネージャは少なくとも1つのアプリケーション・プログラムの実行を制御するリソース・マネージャである。)これにより異なる作業マネージャが1つのトランザクションを代表して別々のプログラムを管理することができる。更に、リカバリ単位はそれぞれ同期点マネージャにより制御または管理される。リカバリ単位毎に複数の同期点マネージャがあってもよく、1つまたは1つ以上のリカバリ単位の同期点マネージャが同じでもよい。分散トランザクションのリカバリ単位は全てグループとしてコミットまたはバックアウトされる。
【0023】
ノードは、1つの実行環境で1つの作業リクエストにより加えられた1組の保護リソース変更内容である。RRSでは、リカバリ単位が作業コンテキストに関連付けられ、1つのトランザクション・ノードが形成される。分散トランザクション・プロトコルを通して複数のノードを接続することができる。本発明の態様に従って、1組のリカバリ単位(またはノード)が、カスケード・リカバリ単位ファミリとして表される。カスケードURファミリは、1つの分散トランザクションの全体または一部を表す。
【0024】
カスケードURファミリの関係により、別々のアプリケーション・プログラムによって変更が加えられた保護リソースが1つのトランザクションとして調整される。この種のトランザクションをここではカスケード・トランザクションという。カスケード・リカバリ単位ファミリの例を図2に示す。
【0025】
図2を参照する。カスケードURファミリ200は、最上位UR202(UR001等)と他の1つまたは1つ以上のUR203(UR002、UR003等)を含む。最上位URは、親を持たない親URである。最上位URは、トランザクションのローカル環境で動作する作業マネージャにより開始される。最上位マネージャは、作業リクエストを表す初期作業コンテキスト204を取得し、同期点マネージャに、作業リクエストにより行われているトランザクションの一部を表すURを作成するよう伝える。URの作成については、IBM出版物、OS/390 MVS Programming:Resource Recovery(GC28-1739-04、September 1999)を参照されたい。
【0026】
作業リクエストが元の作業マネージャの実行環境から他のマネージャの環境に移動すると、第2作業マネージャは新しい作業コンテキストを取得し、同期点マネージャに、(元のURからカスケード接続される)新しい作業コンテキストの新しいURを作成するよう伝えることができる。新しいURは、親URの子UR206である。子URはここではカスケードURという。複数のURを同じ親URからカスケード接続することができる。これらのURは兄弟と呼ばれる。図2の例で、UR002とUR003は兄弟である。
【0027】
URそれぞれにインタレスト・キュー208が関連付けられる。このキューは、その特定のURについて、存在する場合にはどのリソース・マネージャがそのリカバリ単位に"関心"を持つかを示す。インタレストは、リソース・マネージャが管理対象の保護リソースを、作業リクエストによって調べ変更を加えたことを示す。また最上位URには同期点インタレスト・キュー210(図3)が関連付けられる。このキューは、後述するように、リカバリ単位の全てのインタレストを保持する。
【0028】
最上位URとその全ての子はともにカスケードURファミリと呼ばれる。1例として、カスケード・ファミリは、図2に示すように階層型ツリーにより表される。ツリーは、例えば深さを基準にした順序に維持される。(実施例では深さ基準順序は不要である。)すなわち、子URはそれぞれその親URの下に表示され、ツリーは最初、ツリーの1レグを下がってたどられる。次にツリーの最初の分岐まで戻り、ツリーの次のレグを下がる。以下同様である。
【0029】
カスケードUR及びおそらくは他の上位(祖先)が連結されてカスケードURデータ構造が作られる。例えばこのデータ構造は、最上位URでのみインスタンス化されたキューである。そのようなキューの例を図4に示す。
【0030】
カスケードURファミリ・キュー300は、例えばカスケードURファミリのリカバリ単位を1つまたは1つ以上含む。例えばキュー300はUR002、UR004、UR005、及びUR003を含む。UR002はキューのヘッドとみなされ、UR003はキューのテールとみなされる。UR001(最上位UR)はキューのヘッダ302とみなされる。キューのヘッダはキューのヘッドを指し示すが、このインスタンスでは、キューの一部とみなされない。(他の実施例では、ヘッダを含むファミリ全体をキューに配置することができる。更に、キューは1つまたは1つ以上のキューを含むことができる。)キューのカスケードURはそれぞれ、順方向ポインタ304により、存在する場合は次のカスケードURを指し示し、その親URを親ポインタ306を介して指し示す。
【0031】
キューを作成するとき、ファミリ・ツリー構造の深さ優先順序が維持される。従ってキューを作成するため、ツリーの1レグにある全ての子がキューに入れられ、処理は次にツリーの最初の分岐(この例では最上位UR)に戻る。次にツリーの他のレグがたどられる。従って前記の例では、UR001からの順序はUR002、UR004、UR005である。UR005は特定のレグの最後の子なので、処理は分岐に達するまでツリーを上がっていく。分岐はUR001で見つかり、従ってツリーの他のレグがたどられる。これによりキューにUR003が加わる。
【0032】
カスケードURファミリ・キューの作成に関連付けられるロジックの実施例について、図5、図6を参照して説明する。特に図5は、カスケードURをカスケードURキューに追加するプロセスを示す。このプロセスは、最上位URがキューのヘッダであり、カスケードURとみなされないので最上位URの下のURから始まる。図6は、後述するように、キューに入った上位を見つけるロジックを示す。例えばこれらの図のロジックはRRSにより実行される。
【0033】
図5を参照する。最初、親URが最上位URかどうかが確認される(問い合わせ400)。言い換えると、キューに追加するUR(UR002等)の親は最上位URかどうか。親URが最上位URなら、カスケードURキューのテールにUR(UR002等)が追加される(ステップ402)。キューのヘッダ(UR001等)はキューのヘッド(UR002等)を指し示し、キュー・ヘッドはその親UR(UR001等)に対する親ポインタを持つ。
【0034】
ただし、親UR(子UR004に対するUR002等)が最上位URではない場合、処理は次のように続く。例えば、親UR(UR002等)がキューに入っているかどうかが確認される(問い合わせ404)。キューに入っている場合、UR(UR004等)がカスケードURキューに追加される(ステップ406)。特にURはその最後の兄弟の直後に追加されるか、兄弟がない場合はその親の後に追加される。他方、URの親がキューに入っていない場合、URをカスケードURキューに追加することはこの時点ではできない。従ってURは一時キューに追加される(ステップ408)。またURの直接の上位も全て一時キューに追加される(ステップ410)。上位を一時キューに追加する実施例については、図6を参照して説明する。
【0035】
図6を参照する。最初、一時キューに追加するURに親がないかどうか、または親が最上位URかどうかが確認される(問い合わせ500)。URに親がないか親が最上位の場合、上位を一時キューに追加する必要はなく、処理は完了する(ステップ502)。他方、URに最上位の親ではない親があるとき、親URがキューに入っているかどうかが確認される(問い合わせ504)。親URがキューにある場合、処理は完了する(ステップ502)。親URがキューにない場合、親URは一時キューのヘッドに追加される(ステップ506)。この親URには、その子URへの順方向ポインタが与えられ、子URにはその親URへの親ポインタが与えられる。その後、すぐ隣の親が調べられ(ステップ508)、処理が続く。
【0036】
図5に戻る。URとその直接の上位(カスケードURキューではない)が一時キューに追加された後、カスケードURキューの一時キューの最上位にあるURに兄弟があるかどうかが確認される(問い合わせ412)。ある場合、URの一時キューがカスケードURキューの最後の兄弟の後に追加される(ステップ414)。ない場合、URのキューは、一時キューのヘッドにあるURの親の後のカスケードURキューに追加される(ステップ416)。これによりカスケードURファミリ・データ構造の作成が完了する。
【0037】
前記のキュー作成処理により、特にURがパラレルに作成されている場合に深さ優先順序を維持しやすい。例えばUR002がUR004を、UR004がUR005をパラレルに作成している場合、UR004がUR002によりキューに入る前にUR005の作成を完了することが可能である。深さ優先順序を維持するため、前記の通り、まだキューに入っていない直接の上位を全て保持するため一時キューが用いられる。
【0038】
カスケードURキューは、本発明の態様に従い、同期点処理のときに用いられる。カスケード・トランザクションでの同期点処理の1例について、図7乃至図11を参照して説明する。特に初期同期点処理については図7、同期点準備フェーズについては図8、同期点不確定フェーズ処理については図9、同期点コミット・フェーズ処理については図10、及び同期点バックアウト処理については図11を参照して説明する。この処理は、例えばトランザクションを実行するシステムの同期点マネージャ(例えばRRS)により実行される。カスケードURファミリ同期点のRRSの処理は、本発明の少なくとも1つの態様に従い、余分なロギングが避けられるので、インタレストの表現の総数が近い1つのUR同期点の処理と同様に実行することができる。
【0039】
図7を参照する。同期点処理を始める前、リカバリ単位の状態は未完了である(ステップ600)。これは、アプリケーションが保護リソースにアクセスするときのUR状態である。リソース・マネージャはリカバリ単位に対する関心を表す。次に、同期点処理を始めるため、最上位URのインタレストとそのカスケードURのインタレストの全てが、最上位URに連なる同期点インタレスト・キュー(図3参照)にコピーされる(ステップ601)。特にRRSは、トランザクション・ツリーを平坦にするため、カスケードURファミリの全てのURに対するリソース・マネージャのインタレストの全てを深さ優先順で最上位URにコピーする。
【0040】
この時点で、リカバリ単位の状態は状態確認、つまりアプリケーションがコミット・リクエストを発行し、それらのリソースが正しい状態にあるかどうかをリソース・マネージャが確認する状態である(ステップ602)。本発明の態様に従い、最上位URの同期点マネージャは、カスケード・ファミリ・ツリーの全てのURのインタレストについて最上位URから状態確認出口を活動化する(ステップ603)。URは最初にカスケード・ツリーの順序で作成されたので、出口活動化機構により、親URに属する全ての出口がその子URの前で活動化され、従ってツリーの順序が維持される。
【0041】
最上位URは、カスケードURファミリの全ての状態確認出口から投票を集める。戻りコード全体が許容できることが集められた投票により示される場合(問い合わせ604)、次の状態は準備である(ステップ606)。このUR状態は、アプリケーションがコミット・リクエストを発行し、同期点マネージャが各リソース・マネージャに、コミットまたはバックアウトのためそのリソースを準備することを伝えることを示す。
【0042】
ただし、戻りコード全体が問題を示す場合、バックアウトが必要かどうかが確認される(問い合わせ608)。バックアウトが必要な場合、次の状態はバックアウトに設定される(ステップ610)。バックアウト状態は、1つまたは1つ以上のリソース・マネージャがコミット・リクエストに否定的に応答したときに示される。同期点マネージャは各リソース・マネージャに変更内容をバックアウトすることを伝える。従ってリソースは、URが処理される前の値に戻される。全リソース・マネージャが変更内容をバックアウトすると、同期点マネージャがアプリケーションに通知を送る。
【0043】
問い合わせ608に戻る。バックアウトが必要ない場合、次の状態は未完了であり、アプリケーション処理が続く(ステップ612)。
【0044】
URの様々な状態に関連付けられる処理について説明する。例えば状態が準備に等しいときは、同期点準備フェーズ処理が実行される。この処理の1例について図8を参照して説明する。最初、URファミリに非仮定(PN、presume nothing)保護インタレストがあるかどうかが確認される(問い合わせ700)。RRSの場合、非仮定インタレストは、準備レコードがログに入れられることを示す。この確認を行うため、ファミリに対する動的インタレスト・キューにあるインタレストが調べられ、インタレストのリソース・マネージャが非仮定を示したかどうかが確認される。
【0045】
URファミリに非仮定保護インタレストがある場合、準備レコード(PRP)がログに入れられる(ステップ702)。特に準備レコードはログに書込まれる。例えばこのレコードは、URのID、ログ・レコードの種類(準備状態等)、及びカスケードのURに関心のある非仮定リソース・マネージャに関する情報を示す。その後、またはURファミリに非仮定インタレストがない場合、準備出口が最上位URからURのリソース・マネージャに活動化される。更に最上位URは、カスケードURファミリにある全ての準備出口から投票を集める(ステップ704)。
【0046】
出口からバックアウトが返された場合(問い合わせ706)、次の状態はバックアウトに等しく設定される(ステップ710)。出口がバックアウトを示さない場合、最上位URに関心のあるリソース・マネージャに分散同期点リソース・マネージャ(DSRM)の役割があるかどうかが確認される。すなわち、対等プロトコルを使用し、比較的大きい分散トランザクションのエージェントとして最上位URが作成されたかどうかが確認される。最上位リソース・マネージャにDSRMの役割がある場合、次の状態は不確定に等しく設定される(ステップ714)。分散リクエストの場合、カスケードの全てのURの状態が、エージェントシステム上では、2フェーズ・コミットの準備フェーズの終わりから、DSRMによりコミットまたはバックアウトのリクエストが返され、そのリクエストがログに入れられるまで不確定である。
【0047】
問い合わせ712に戻る。最上位リソース・マネージャにDSRMの役割がない場合、戻りコード全体が許容できるかどうかが確認される(問い合わせ716)。戻りコード全体が許容できない場合、次の状態はバックアウトに等しく設定される(ステップ718)。戻りコード全体がOKに等しい場合、次の状態はコミットに等しく設定される(ステップ720)。このUR状態は、全てのリソース・マネージャがコミット・リクエストに対して肯定的に応答したとき示される。同期点マネージャは各リソース・マネージャに、その変更内容を永続的にすることを伝える。リソース・マネージャが変更を加えた後、同期点マネージャはアプリケーションに通知を送る。
【0048】
同期点不確定フェーズ処理に関連付けられるロジックの実施例について、図9を参照して説明する。最初、不確定(DBT)ログ・レコードがログに書込まれる(ステップ800)。その後リソース・マネージャの分散同期点出口が最上位URから、そのURの同期点マネージャを使用して活動化され、出口結果が処理される(ステップ802)。出口結果が許容できる場合、次の状態はコミットに等しい(ステップ806)。許容できない場合、次の状態はバックアウトに等しい(ステップ808)。
【0049】
同期点コミット・フェーズ処理の実施例について、図10を参照して説明する。最初、コミット(CMT)ログ・レコードがログに書込まれる(ステップ900)。その後、最上位URから出口が(同期点マネージャにより)活動化され、カスケードURファミリの全てのコミット出口から投票が集められる(ステップ902)。次にURがクリーンアップされる(ステップ904)。URをクリーンアップするため、例えばURに関連付けられた制御ブロックが削除される。例えば、Clarkらによる1999年7月6日付米国特許第5920875号、"Tail Compression Of A Sparse Log Stream Of A Computer System"及び同Clarkらによる1999年12月7日付米国特許第5999935号、"Tail Compression Of A Sparse Log Stream Of A Multisystem Environment"に述べられているように、ログからエントリが論理的に削除される。
【0050】
コミット処理の前に問題が発生した場合はバックアウト処理が実行される。バックアウト処理に関連付けられるロジックの実施例について、図11を参照して説明する。最初、不確定レコードが先にログに入れられたかどうかが確認される(問い合わせ1000)。不確定レコードがログに入れられた場合、この例ではバックアウト(BAK)レコードもログに書込まれる(ステップ1002)。その後、または不確定レコードが先にログに入れられていない場合、カスケードURファミリの最上位URからバックアウト出口が活動化される(ステップ1004)。その後URはクリーンアップされる(ステップ1006)。これによりバックアウト処理が完了する。
【0051】
本発明の態様に従い、カスケードURファミリのURは全て、1つのシステム上のRRSによりグループとして管理されているので、RRSは、同期点処理のため、カスケードURファミリ全体をあたかも1つのURであるかのように扱うことができる。従ってRRSがファミリのUR毎に、独立したログ・レコードをログに入れる必要はない。RRSはファミリに対するURの全てのインタレストに対する全ての出口から応答を全て集めることができる。最上位URにDSRMまたはサーバ分散同期点リソース・マネージャ(SDSRM)の役割がない場合(言い換えると不確定にはならない場合)、RRSはコミットまたはバックアウトをすぐに決定し、最終結果を記録する必要のあるレコードのみロギングすることができる。(SDSRM−クライアント/サーバ・プロトコルを使用して開始された比較的大きい分散トランザクションでエージェントとして作成された最上位URだったかどうか。)最上位URにDSRMまたはSDSRMの役割を持つリソース・マネージャがある場合、RRSは不確定レコードをログに入れるが、カスケードURファミリ全体でロギングする不確定レコードは1つのみでよい。
【0052】
更に、例えばファミリに関係する全てのURのデータが、1つのログ・レコードの一部としてRRSにより全てログに入れられるので、複数のログ・ブロックを使用してデータのブロックを書込むことができる。
【0053】
前記の同期点処理とロギング機能には、ツリーの各レベルを降りていくことなく、RRSがツリーを1つの論理的トランザクションにすることができ、ツリーの様々なリソース・マネージャを起動できる(例えば全部または一部を並列に)という利点がある。トランザクションの同期点マネージャ間で通信して同期点処理を制御する必要がない。これは特に、例えば同期点処理を制御する同期点マネージャは1つのみで、共通ログが共有され、共通ストレージにアクセスできるからである。従ってこのプロトコルは、分散トランザクションのリカバリ単位(またはノード)間のメッセージレス・プロトコルと呼ばれる。本発明の機能により、メッセージ処理のオーバヘッドが少なくなり、書込まれるログ・レコードも少なくなるので、2フェーズ・コミット・プロセスの性能が改良される。
【0054】
本発明は、例えばコンピュータで使用できる媒体を備えた製品(1つまたは1つ以上のコンピュータ・プログラム・プロダクト等)に加えることができる。媒体は、本発明の機能を提供し使いやすくするため、例えばコンピュータ可読プログラム・コード手段を組み入れる。製品はコンピュータシステムの一部として追加でき、別売りにすることもできる。
【0055】
また、本発明の機能を実行するため、機械で実行可能な命令の、少なくとも1つのプログラムを実体として組み入れた、少なくとも1つの機械可読プログラム・ストレージ・デバイスを提供することができる。
【0056】
ここに示したフローチャートは例にすぎない。前記の図やステップ(または操作)に関しては、本発明の主旨から逸脱することなく様々な変形が可能である。例えばステップは、異なる順序で実行することもでき、追加、削除、変更も可能である。そのような変更は全て特許請求の範囲の一部とみなされる。
【0057】
ここでは好適実施例について述べたが、当業者には明らかなように、様々な変形、追加、代用等が、本発明の主旨から逸脱することなく可能であり、従ってそれらは、特許請求の範囲に定義している通り、本発明の範囲内にあるとみなされる。
【0058】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0059】
(1)コンピューティング環境の分散トランザクションで同期点処理を実行する方法であって、
複数のリカバリ単位を含む分散トランザクションを実行するステップと、
前記複数のリカバリ単位のうち少なくとも一部の同期点処理を実行するステップとを含み、該同期点処理は、前記複数のリカバリ単位のうち該少なくとも一部間でメッセージの受け渡しなく実行される、
方法。
(2)前記同期点処理の実行は、前記複数のリカバリ単位のうち1つのリカバリ単位を用いて、同期点処理で前記複数のリカバリ単位のうち前記少なくとも一部を表すステップを含む、前記(1)記載の方法。
(3)前記1つのリカバリ単位に関連付けられた1つの同期点マネージャが、前記複数のリカバリ単位のうち前記少なくとも一部について前記同期点処理を制御する、前記(2)記載の方法。
(4)前記1つのリカバリ単位を用いるステップは、前記同期点処理の間に用いられるよう、前記複数のリカバリ単位のうち前記少なくとも一部のインタレストを前記1つのリカバリ単位にコピーするステップを含む、前記(2)記載の方法。
(5)前記1つのリカバリ単位を用いるステップは、前記1つのリカバリ単位から11つまたはつ以上の出口を活動化し、前記複数のリカバリ単位のうち前記少なくとも一部について、前記同期点処理の、少なくとも1つまたは1つ以上のフェーズを開始するステップを含む、前記(2)記載の方法。
(6)前記1つまたは1つ以上の出口は、状態確認出口、準備出口、同期点出口、コミット出口、及びバックアウト出口のうち少なくとも1つを含む、前記(5)記載の方法。
(7)前記1つのリカバリ単位を用いるステップは更に、前記1つのリカバリ単位において、前記複数のリカバリ単位のうち前記少なくとも一部に対する1つまたは1つ以上の投票を収集するステップを含み、該1つまたは1つ以上の投票は前記1つまたは1つ以上の出口に対応する、前記(5)記載の方法。
(8)前記複数のリカバリ単位のうち前記少なくとも一部は、カスケード・リカバリ単位ファミリを含み、前記1つのリカバリ単位は該カスケード・リカバリ単位ファミリの最上位リカバリ単位である、前記(2)記載の方法。
(9)前記カスケード・リカバリ単位ファミリを表すデータ構造を作成するステップを含む、前記(8)記載の方法。
(10)前記データ構造は深さ優先順序で維持される、前記(9)記載の方法。
(11)前記同期点処理は、前記複数のリカバリ単位のうち前記少なくとも一部について1つのログ・レコードを書込むステップを含む、前記(1)記載の方法。
(12)前記複数のリカバリ単位のうち前記少なくとも一部は、前記コンピューティング環境の1つのシステム上にローカルに配置される、前記(1)記載の方法。
(13)コンピューティング環境の分散処理で同期点処理を実行する方法であって、
複数のリカバリ単位を含む分散トランザクションを実行するステップと、
前記複数のリカバリ単位のうち少なくとも複数の単位について同期点処理を実行するステップとを含み、前記コンピューティング環境の1つの同期点マネージャが、前記複数のリカバリ単位のうち該少なくとも複数の単位について前記同期点処理を制御する、
方法。
(14)前記1つの同期点マネージャは、前記複数のリカバリ単位のうち1つのリカバリ単位を使用して前記同期点処理を制御し、該1つのリカバリ単位は前記複数のリカバリ単位のうち前記少なくとも複数の単位を表す、前記(13)記載の方法。
(15)コンピューティング環境の分散トランザクションで同期点処理を実行するシステムであって、
複数のリカバリ単位を含む分散トランザクションを実行する手段と、
前記複数のリカバリ単位のうち少なくとも一部について、前記複数のリカバリ単位のうち該少なくとも一部間でのメッセージの受け渡しなく同期点処理を実行する手段と、
を含む、システム。
(16)前記同期点処理を実行する手段は、前記複数のリカバリ単位のうち1つのリカバリ単位を用いて、同期点処理で前記複数のリカバリ単位のうち前記少なくとも一部を表す手段を含む、前記(15)記載のシステム。
(17)前記1つのリカバリ単位に関連付けられ、前記複数のリカバリ単位のうち前記少なくとも一部について前記同期点処理を制御する同期点マネージャを含む、前記(16)記載のシステム。
(18)前記1つのリカバリ単位を用いる手段は、前記複数のリカバリ単位のうち前記少なくとも一部のインタレストを、同期点処理の間に用いられる前記1つのリカバリ単位にコピーする手段を含む、前記(16)記載のシステム。
(19)前記1つのリカバリ単位を用いる手段は、前記1つのリカバリ単位から1つまたは1つ以上の出口を活動化し、前記複数のリカバリ単位のうち前記少なくとも一部について前記同期点処理の少なくとも1つまたは1つ以上のフェーズを開始する手段を含む、前記(16)記載のシステム。
(20)前記1つまたは1つ以上の出口は、状態確認出口、準備出口、同期点出口、コミット出口、及びバックアウト出口のうち少なくとも1つを含む、前記(19)記載のシステム。
(21)前記1つのリカバリ単位を用いる手段は、前記1つのリカバリ単位において、前記複数のリカバリ単位のうち前記少なくとも一部に関する1つまたは1つ以上の投票を集める手段を含み、該1つまたは1つ以上の投票は前記1つまたは1つ以上の出口に対応する、前記(19)記載のシステム。
(22)前記複数のリカバリ単位のうち前記少なくとも一部は、カスケード・リカバリ単位ファミリを含み、前記1つのリカバリ単位は該カスケード・リカバリ単位ファミリの最上位リカバリ単位である、前記(16)記載のシステム。
(23)前記カスケード・リカバリ単位ファミリを表すデータ構造を作成する手段を含む、前記(22)記載のシステム。
(24)前記データ構造は深さ優先順序で維持される、前記(23)記載のシステム。
(25)前記同期点処理実行手段は、前記複数のリカバリ単位のうち前記少なくとも一部に関する1つのログ・レコードを書込む手段を含む、前記(15)記載のシステム。
(26)前記複数のリカバリ単位のうち前記少なくとも一部は、前記コンピューティング環境の1つのシステム上にローカルに配置された、前記(15)記載のシステム。
(27)コンピューティング環境の分散トランザクションで同期点処理を制御するシステムであって、
複数のリカバリ単位を含む分散トランザクションを実行するようにされたコンピューティング・システムと、
前記複数のリカバリ単位のうち少なくとも複数の単位について同期点処理を制御するようにされた前記コンピューティング環境の1つの同期点マネージャと
を含む、システム。
(28)前記1つの同期点マネージャは、前記複数のリカバリ単位のうち1つのリカバリ単位を使用して前記同期点処理を制御し、前記1つのリカバリ単位は前記複数のリカバリ単位のうち前記少なくとも複数の単位を表す、前記(27)記載のシステム。
(29)コンピューティング環境の分散トランザクションで同期点処理を実行する方法を実行するため、機械で実行可能な命令の、少なくとも1つのプログラムを実体として組み入れた、少なくとも1つの機械可読プログラム・ストレージ・デバイスであって、該方法は、
複数のリカバリ単位を含む分散トランザクションを実行するステップと、
前記複数のリカバリ単位のうち少なくとも一部について同期点処理を実行するステップとを含み、該同期点処理は、前記複数のリカバリ単位のうち該少なくとも一部間でのメッセージの受け渡しなく実行される、
プログラム・ストレージ・デバイス。
(30)前記同期点処理を実行するステップは、前記複数のリカバリ単位のうち前記1つのリカバリ単位を用いて、同期点処理で前記リカバリ単位のうち前記少なくとも一部を表す、前記(29)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(31)前記1つのリカバリ単位に関連付けられた同期点マネージャが、前記複数のリカバリ単位のうち前記少なくとも一部について前記同期点処理を制御する、前記(30)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(32)前記1つのリカバリ単位を用いるステップは、前記複数のリカバリ単位のうち前記少なくとも一部のインタレストを、前記同期点処理の間に用いられる前記1つのリカバリ単位にコピーするステップを含む、前記(30)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(33)前記1つのリカバリ単位を用いるステップは、前記1つのリカバリ単位から1つまたは1つ以上の出口を活動化し、前記複数のリカバリ単位のうち前記少なくとも一部について前記同期点処理の少なくとも1つまたは1つ以上のフェーズを開始する手段を含む、前記(30)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(34)前記1つまたは1つ以上の出口は、状態確認出口、準備出口、同期点出口、コミット出口、及びバックアウト出口のうち少なくとも1つを含む、前記(33)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(35)前記1つのリカバリ単位を用いるステップは、前記1つのリカバリ単位において、前記複数のリカバリ単位のうち前記少なくとも一部に関する1つまたは1つ以上の投票を集めるステップを含み、該1つまたは1つ以上の投票は前記1つまたは1つ以上の出口に対応する、前記(33)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(36)前記複数のリカバリ単位のうち前記少なくとも一部は、カスケード・リカバリ単位ファミリを含み、前記1つのリカバリ単位は該カスケード・リカバリ単位ファミリの最上位リカバリ単位である、前記(30)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(37)前記カスケード・リカバリ単位ファミリを表すデータ構造を作成するステップを含む、前記(36)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(38)前記データ構造は深さ優先順序で維持される、前記(37)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(39)前記同期点処理は、前記複数のリカバリ単位のうち前記少なくとも一部に関する1つのログ・レコードを書込むステップを含む、前記(29)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(40)前記複数のリカバリ単位のうち前記少なくとも一部は、前記コンピューティング環境の1つのシステム上にローカルに配置された、前記(29)記載の少なくとも1つのプログラム・ストレージ・デバイス。
(41)コンピューティング環境の分散トランザクションで同期点処理を実行するため、コンピュータ可読プログラム・コード手段が組み入れられた、少なくとも1つのコンピュータで使用可能な媒体を含む製品であって、該コンピュータ可読プログラム・コード手段は、
複数のリカバリ単位を含む分散トランザクションをコンピュータが実行するようにするコンピュータ可読プログラム・コード手段と、
前記複数のリカバリ単位のうち少なくとも複数の単位について同期点処理をコンピュータが実行するようにするコンピュータ可読プログラム・コード手段とを含み、前記コンピューティング環境の1つの同期点マネージャが前記複数のリカバリ単位のうち該少なくとも複数の単位について前記同期点処理を制御する、
製品。
(42)前記1つの同期点マネージャは、前記複数のリカバリ単位のうち1つのリカバリ単位を使用して前記同期点処理を制御し、該1つのリカバリ単位は前記複数のリカバリ単位のうち前記少なくとも複数の単位を表す、前記(41)記載の製品。
【図面の簡単な説明】
【図1】本発明の態様を取り入れ利用するコンピューティング環境の例を示す図である。
【図2】本発明の態様に従ってカスケード・リカバリ単位(UR)の例を示す図である。
【図3】本発明の態様に従い、様々なキューが関連付けられた図2のツリーのノード例を示す図である。
【図4】本発明の態様に従ったリカバリ・ファミリ・データ構造のカスケード単位例を示す図である。
【図5】本発明の態様に従い、カスケードURツリーの作成に関連付けられたロジックの実施例を示す図である。
【図6】本発明の態様に従い、キューに入っていない上位の発見に関連付けられたロジックの実施例を示す図である。
【図7】本発明の態様に従い、カスケード・トランザクション同期点処理に関連付けられたロジックの実施例を示す図である。
【図8】本発明の態様に従い、同期点準備処理に関連付けられたロジックの実施例を示す図である。
【図9】本発明の態様に従い、同期点疑問フェーズ処理に関連付けられたロジックの実施例を示す図である。
【図10】本発明の態様に従い、同期点コミット・フェーズ処理に関連付けられたロジックの実施例を示す図である。
【図11】本発明の態様に従い、同期点バックアウト処理に関連付けられたロジックの実施例を示す図である。
【符号の説明】
100 コンピューティング環境
102 システム
104 接続機構
106 オペレーティング・システム
108 リソース・マネージャ(RM)
110 同期点マネージャ
112 ログ
200 カスケードURファミリ
208 インタレスト・キュー
210 同期点インタレスト・キュー
300 カスケードURファミリ・キュー

Claims (12)

  1. コンピュータが分散トランザクションを行う際、同期点処理を行う方法において、
    リソース変更内容であるリカバリ単位を、最上位の親リカバリ単位と最上位以外の複数の子リカバリ単位とにカスケード化するステップと、
    前記親リカバリ単位のインタレスト及び前記複数の子リカバリ単位のインタレストの全てを、前記親リカバリ単位に連なる同期点インタレスト・キューに深さ優先順でコピーするステップと、
    前記複数の子リカバリ単位のインタレストの全てについて、前記深さ優先順を維持して前記親リカバリ単位から状態確認出口を活動化し、この状態確認出口を通じて、前記複数の子リカバリ単位が前記親リカバリ単位に向けて応答し、この応答により戻りコード全体が許容できることが示される場合には、準備出口を活動化し、この準備出口を通じて、前記複数の子リカバリ単位が前記親リカバリ単位に向けて応答するステップと、
    前記準備出口を通じて行われる応答によって、前記親リカバリ単位が同期点処理を行うか否か判断するステップと、
    前記親リカバリ単位が同期点処理を行うことにより、前記複数の子リカバリ単位が同期点処理を行うステップと、を含む同期点処理を行う方法。
  2. 前記複数の子リカバリ単位が同期点処理を行うステップにおいて、
    前記親リカバリ単位に関連付けられた同期点マネージャが前記複数の子リカバリ単位を制御することにより、前記複数の子リカバリ単位が同期点処理を行う請求項1記載の同期点処理を行う方法。
  3. 前記複数の子リカバリ単位が同期点処理を行うステップにおいて、
    前記複数の子リカバリ単位のためにログの記録を書き込むことにより、前記複数の子リカバリ単位が同期点処理を行う請求項1記載の同期点処理を行う方法。
  4. 分散トランザクションを行う際、同期点処理を行うコンピュータを用いたシステムにおいて、
    リソース変更内容であるリカバリ単位を、最上位の親リカバリ単位と最上位以外の複数の子リカバリ単位とにカスケード化する手段と、
    前記親リカバリ単位のインタレスト及び前記複数の子リカバリ単位のインタレストを、前記親リカバリ単位に連なる同期点インタレスト・キューに深さ優先順でコピーする手段と、
    前記複数の子リカバリ単位のインタレストの全てについて、前記深さ優先順を維持して前記親リカバリ単位から状態確認出口を活動化し、この状態確認出口を通じて、前記複数の子リカバリ単位が前記親リカバリ単位に向けて応答し、この応答により戻りコード全体が許容できることが示される場合には、準備出口を活動化し、この準備出口を通じて、前記複数の子リカバリ単位が前記親リカバリ単位に向けて応答する手段と、
    前記準備出口を通じて行われる応答によって、前記親リカバリ単位が同期点処理を行うか否か判断する手段と、
    前記親リカバリ単位が同期点処理を行うことにより、前記複数の子リカバリ単位が同期点処理を行う手段と、を含む同期点処理を行うコンピュータを用いたシステム。
  5. 前記複数の子リカバリ単位が同期点処理を行う手段は、前記親リカバリ単位に関連付けられた同期点マネージャが前記複数の子リカバリ単位を制御することにより、前記複数の子リカバリ単位が同期点処理を行う請求項記載の同期点処理を行うコンピュータを用いたシステム。
  6. 前記複数の子リカバリ単位が同期点処理を行う手段は、前記複数の子リカバリ単位のためにログの記録を書き込むことにより、前記複数の子リカバリ単位が同期点処理を行う請求項記載の同期点処理を行うコンピュータを用いたシステム。
  7. コンピュータが分散トランザクションを行う際、同期点処理を行う命令を少なくとも1つプログラムに組み込んだ、機械で読み込み可能な少なくとも1つのプログラム・ストレージ・デバイスにおいて、
    リソース変更内容であるリカバリ単位を、最上位の親リカバリ単位と最上位以外の複数の子リカバリ単位とにカスケード化するステップと、
    前記親リカバリ単位のインタレスト及び前記複数の子リカバリ単位のインタレストの全てを、前記親リカバリ単位に連なる同期点インタレスト・キューに深さ優先順でコピーするステップと、
    前記複数の子リカバリ単位のインタレストの全てについて、前記深さ優先順を維持して前記親リカバリ単位から状態確認出口を活動化し、この状態確認出口を通じて、前記複数の子リカバリ単位が前記親リカバリ単位に向けて応答し、この応答により戻りコード全体が許容できることが示される場合には、準備出口を活動化し、この準備出口を通じて、前記複数の子リカバリ単位が前記親リカバリ単位に向けて応答するステップと、
    前記準備出口を通じて行われる応答によって、前記親リカバリ単位が同期点処理を行うか否か判断するステップと、
    前記親リカバリ単位が同期点処理を行うことにより、前記複数の子リカバリ単位が同期点処理を行うステップと、を含む同期点処理を行う命令をプログラムに組み込んだ、機械で読み込み可能なプログラム・ストレージ・デバイス。
  8. 前記複数の子リカバリ単位が同期点処理を行うステップにおいて、
    前記親リカバリ単位に関連付けられた同期点マネージャが前記複数の子リカバリ単位を制御することにより、前記複数の子リカバリ単位が同期点処理を行う請求項記載の同期点処理を行う命令をプログラムに組み込んだ、機械で読み込み可能なプログラム・ストレージ・デバイス。
  9. 前記複数の子リカバリ単位が同期点処理を行うステップにおいて、
    前記複数の子リカバリ単位のためにログの記録を書き込むことにより、前記複数の子リカバリ単位が同期点処理を行う請求項記載の同期点処理を行う命令をプログラムに組み込んだ、機械で読み込み可能なプログラム・ストレージ・デバイス。
  10. コンピュータが分散トランザクションを行う際、同期点処理を行う命令を少なくとも1つプログラムに組み込んだ、機械で読み込み可能な少なくとも1つのプログラムを記録した記録媒体において、
    リソース変更内容であるリカバリ単位を、最上位の親リカバリ単位と最上位以外の複数の子リカバリ単位とにカスケード化するステップと、
    前記親リカバリ単位のインタレスト及び前記複数の子リカバリ単位のインタレストの全てを、前記親リカバリ単位に連なる同期点インタレスト・キューに深さ優先順でコピーするステップと、
    前記複数の子リカバリ単位のインタレストの全てについて、前記深さ優先順を維持して前記親リカバリ単位から状態確認出口を活動化し、この状態確認出口を通じて、前記複数の子リカバリ単位が前記親リカバリ単位に向けて応答し、この応答により戻りコード全体が許容できることが示される場合には、準備出口を活動化し、この準備出口を通じて、前記複数の子リカバリ単位が親リカバリ単位に向けて応答するステップと、
    前記準備出口を通じて行われる応答によって前記親リカバリ単位が同期点処理を行うか否か判断するステップと、
    前記親リカバリ単位が同期点処理を行うことにより、前記複数の子リカバリ単位が同期点処理を行うステップと、を含む同期点処理を行う命令をプログラムに組み込んだ、機械で読み込み可能なプログラムを記録した記録媒体。
  11. 前記複数の子リカバリ単位が同期点処理を行うステップにおいて、
    前記親リカバリ単位に関連付けられた同期点マネージャが前記複数の子リカバリ単位を制御することにより、前記複数の子リカバリ単位が同期点処理を行う請求項10記載の同期点処理を行う命令をプログラムに組み込んだ、機械で読み込み可能なプログラムを記録した記録媒体。
  12. 前記複数の子リカバリ単位が同期点処理を行うステップにおいて、
    前記複数の子リカバリ単位のためにログの記録を書き込むことにより、前記複数の子リカバリ単位が同期点処理を行う請求項10記載の同期点処理を行う命令をプログラムに組み込んだ、機械で読み込み可能なプログラムを記録した記録媒体。
JP2001092379A 2000-03-30 2001-03-28 分散トランザクションの効率的同期点処理を実現する方法、システム、及びプログラム・プロダクト Expired - Lifetime JP3809858B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/538920 2000-03-30
US09/538,920 US6490595B1 (en) 2000-03-30 2000-03-30 Method, system and program products for providing efficient syncpoint processing of distributed transactions

Publications (2)

Publication Number Publication Date
JP2001306381A JP2001306381A (ja) 2001-11-02
JP3809858B2 true JP3809858B2 (ja) 2006-08-16

Family

ID=24148986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001092379A Expired - Lifetime JP3809858B2 (ja) 2000-03-30 2001-03-28 分散トランザクションの効率的同期点処理を実現する方法、システム、及びプログラム・プロダクト

Country Status (2)

Country Link
US (1) US6490595B1 (ja)
JP (1) JP3809858B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003532B2 (en) * 2002-11-27 2006-02-21 Microsoft Corporation System and method for scaleable multiplexed transactional log recovery
WO2004055674A1 (ja) * 2002-12-18 2004-07-01 Fujitsu Limited 分散トランザクション処理装置、分散トランザクション処理プログラム、分散トランザクション処理方法および分散トランザクション処理システム
US7107293B2 (en) * 2003-04-30 2006-09-12 International Business Machines Corporation Nested recovery scope management for stateless recovery agents
US7346905B2 (en) * 2003-06-10 2008-03-18 International Business Machines Corporation Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment
US7305583B2 (en) * 2003-08-08 2007-12-04 International Business Machines Corporation Command initiated logical dumping facility
US7478400B1 (en) 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
US7203712B2 (en) * 2004-02-26 2007-04-10 International Business Machines Corporation Algorithm to find LOB value in a relational table after key columns have been modified
US8688634B2 (en) * 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US7490083B2 (en) * 2004-02-27 2009-02-10 International Business Machines Corporation Parallel apply processing in data replication with preservation of transaction integrity and source ordering of dependent updates
GB0606226D0 (en) * 2006-03-29 2006-05-10 Ibm A method for resolving a unit of work
TW201032535A (en) * 2008-10-14 2010-09-01 Ibm A method of handling a message
US8341134B2 (en) 2010-12-10 2012-12-25 International Business Machines Corporation Asynchronous deletion of a range of messages processed by a parallel database replication apply process
US10044835B1 (en) 2013-12-11 2018-08-07 Symantec Corporation Reducing redundant transmissions by polling clients
US9727625B2 (en) 2014-01-16 2017-08-08 International Business Machines Corporation Parallel transaction messages for database replication

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2667818B2 (ja) 1986-10-09 1997-10-27 株式会社日立製作所 トランザクション処理方法
US5327532A (en) * 1990-05-16 1994-07-05 International Business Machines Corporation Coordinated sync point management of protected resources
US5317739A (en) 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
US5469562A (en) 1992-06-26 1995-11-21 Digital Equipment Corporation Durable atomic storage update manager
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
US5737600A (en) 1994-09-12 1998-04-07 International Business Machines Corporation Method and system for log management in a coupled data processing system
JP3593366B2 (ja) * 1994-09-19 2004-11-24 株式会社日立製作所 デ−タベ−ス管理方法
GB2301909A (en) 1995-06-07 1996-12-18 Ibm Reduction of logging in distributed transaction processing systems
US5870757A (en) 1995-09-11 1999-02-09 Sun Microsystems, Inc. Single transaction technique for a journaling file system of a computer operating system
US5832508A (en) 1996-09-18 1998-11-03 Sybase, Inc. Method for deallocating a log in database systems
US5999935A (en) 1997-03-28 1999-12-07 International Business Machines Corporation Tail compression of a sparse log stream of a multisystem environment
US5920875A (en) 1997-03-28 1999-07-06 International Business Machines Corporation Tail compression of a sparse log stream of a computer system
US5890154A (en) 1997-06-06 1999-03-30 International Business Machines Corp. Merging database log files through log transformations
US6092086A (en) * 1998-03-31 2000-07-18 Bmc Software System and method for handling backout processing during capture of changed data in an enterprise computer system

Also Published As

Publication number Publication date
US6490595B1 (en) 2002-12-03
JP2001306381A (ja) 2001-11-02

Similar Documents

Publication Publication Date Title
JP3675802B2 (ja) 計算の状態を再構成する方法ならびにシステム
JP2505070B2 (ja) デ―タ処理システムにおけるファイル状態の回復方法
US6449734B1 (en) Method and system for discarding locally committed transactions to ensure consistency in a server cluster
US6360331B2 (en) Method and system for transparently failing over application configuration information in a server cluster
JP2948496B2 (ja) データ処理システム内で複写データ一貫性を維持するためのシステムおよび方法
US7594138B2 (en) System and method of error recovery for backup applications
US7206964B2 (en) Consistent asynchronous checkpointing of multithreaded application programs based on semi-active or passive replication
US8135674B2 (en) Providing a simulated dynamic image of a file system
JP3809858B2 (ja) 分散トランザクションの効率的同期点処理を実現する方法、システム、及びプログラム・プロダクト
CA2583650C (en) Oplogging for online recovery in direct connection client server systems
US8615578B2 (en) Using a standby data storage system to detect the health of a cluster of data storage servers
JP5425922B2 (ja) ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム
US20050283658A1 (en) Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
JPH09171502A (ja) マルチプロセッサ・クラスタ・メンバシップ・マネージャ・フレームワーク
JPH086840A (ja) サーバ回復のためのディレクトリ操作の完了を判定する機構
JPH09251412A (ja) 分散データベーストランザクションのコミットメント方法
JP2003532190A (ja) コンピュータシステムにおいてボリュームスナップショット依存関係を提供する方法および装置
JP2002229837A (ja) 共有ディスク・パラレル・データ・ファイル内のデータに対するアクセスを制御する方法
WO1993018454A1 (en) Distributed transaction processing system
WO2011158387A1 (ja) データ処理の障害回復方法、システムおよびプログラム
US5734897A (en) Reduction of logging in distributed systems
JP2006508459A (ja) nウェイ共用ストレージ・システムにおけるフラッシュ・コピーのためのハイパフォーマンス・ロック管理
US6092084A (en) One system of a multisystem environment taking over log entries owned by another system
US20030191918A1 (en) Data processing arrangement and method
US6076095A (en) Method of one system of a multisystem environment taking over log entries owned by another system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040406

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040705

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20040705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040705

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040816

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041004

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051109

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060315

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060418

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20060419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3809858

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100602

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110602

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120602

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120602

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130602

Year of fee payment: 7

EXPY Cancellation because of completion of term