JP3088109B2 - 分散トランザクションのコミットプロトコル - Google Patents

分散トランザクションのコミットプロトコル

Info

Publication number
JP3088109B2
JP3088109B2 JP02083444A JP8344490A JP3088109B2 JP 3088109 B2 JP3088109 B2 JP 3088109B2 JP 02083444 A JP02083444 A JP 02083444A JP 8344490 A JP8344490 A JP 8344490A JP 3088109 B2 JP3088109 B2 JP 3088109B2
Authority
JP
Japan
Prior art keywords
node
phase
distributed
coordinator
transaction
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
JP02083444A
Other languages
English (en)
Other versions
JPH03282764A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP02083444A priority Critical patent/JP3088109B2/ja
Publication of JPH03282764A publication Critical patent/JPH03282764A/ja
Application granted granted Critical
Publication of JP3088109B2 publication Critical patent/JP3088109B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は分散トランザクションの(コミットメント)
方法に関し、特に分散処理型コンピュータネットワーク
の各ノードに記憶されている分散共用データの内容等を
更新する際に、各ノードのコンピュータの共用データ更
新をデータ伝送回線の障害およびノード障害に影響され
ることなく、確実に行うことができる分散トランザクシ
ョンのアトミック更新方法に関する。ここでアトミック
更新方法とは、分散環境にまたがるアトミックアクショ
ンを保証するプロトコルであり、アトミックアクション
とは論理的にトランザクションすなわち実行が分割され
てはならない1業務区切り単位を全て実行するか、又
は、まったく実行しない動作をいう。
〔従来の技術〕
従来、この種の分散トランザクションのアトミック更
新方法において、2相更新方法が提案されてきた。この
方法は分散トランザクションのデータの更新結果を永久
化するときに、まず第1相目でデータ更新を主導する調
整者として指定されたノードが、関係するすべての分散
ノードにコミットメントの受け入れ準備通知を送る。各
分散ノードは自分がコミットメントを受け入れるかどう
かを調整者に応答する。第2相目では調整者がコミット
メントの可否を決定して、その結果を1相目で受け入れ
可能応答、および無応答だった分散ノードに通知する。
各分散ノードでは決定通知に従って自分の更新されたデ
ータを永久化するかロールバックする。したがって全て
のノードでデータの更新が矛盾なくアトミックに行われ
る。
このような2相更新方法では、伝送回線障害やノード
障害のような更新処理の伝送中断がなく、プロトコルが
連続して正常に完了した場合にはデータの更新が矛盾な
くアトミックに行われる。
一方、分散ノードが2相更新方法にしたがって1相目
の受け入れ可能応答を行った後は、2相目の調整者の決
定通知を待ち受ける状態となるが、この待ち受けを続け
る状態を2相更新方法のブロッキングという。このブロ
ッキング中に分散ノードが前述のような障害でシステム
ダウンすると、分散ノードはシステム動作再開始後にロ
ールバック回復処理を行ってはならないが、障害ノード
は更新データをロールバックしてしまう可能性があっ
た。
〔発明が解決しようとする課題〕
上述した従来の分散トランザクションの更新方法は、
このブロッキング中にデータ伝送回線の障害およびノー
ド障害が発生した場合に、障害ノードのみはロールバッ
クしてしまうので、分散環境全体では結果的に矛盾した
トランザクションの実行が行われる欠点がある。また、
調整者が1相目と2相目の間でダウンした後の再開始処
理で通常の集中システムのようにロールバック回復処理
を行うと、更新処理の2相目以降が中断されるので、分
散ノード側は永遠に2相更新処理をブロッキングされる
欠点がある。
[課題を解決するための手段] 本発明の分散トランザクションの更新方法は、調整者
となる調整ノードと前記調整者に関係する分散ノードと
の間における分散トランザクションの更新方法であっ
て、調整者ノードが該当する更新処理の1相目を開始す
る直前のトランザクション情報を不揮発性記憶部に記録
する第1のステップと、各分散ノードからの1相目の応
答が返って後で2相目を開始する前に更新処理の可否を
不揮発性記憶部に記録する第2のステップと、2相目の
開始後、調整者自身のトランザクションの更新の確定を
行うか、又は、ロールバックした後に第1のステップの
記録を消去する3のステップと、各分散ノードからの2
相目の正常応答が返った後に前記第2のステップの記録
を消去する第4のステップとを含む調整者側の更新方法
を有している。一方、各分散ノードが調整者からの実行
処理の第1相目に受け入れ可能応答を返す直前に該トラ
ンザクションの受け入れ可を示す状態値を不揮発性記憶
部に記録する第5のステップと、調整者からの更新処理
の第2相目に対して自ノードの処理を完了し前記調整者
に正常終了応答を返した後に該自ノードの前記第5のス
テップで記録した受け入れ可を示す状態値を消去する第
6のステップとを含む分散ノード側の処理方法を有して
いることを特徴としている。
[実施例] 次に本発明について図面を参照して説明する。
第1図は本発明の一実施例の動作説明図である。第1
図において、左側の列から順次調整ノードの動作手順、
調整ノードのインタフェース、分散ノードのインタフェ
ースの手順を示している。
最初、更新データの発信者である調整ノードが動作を
開始し、分散トランザクションの開始通知(ステップS
1)を調整ノードのインタフェースの開始信号送信11を
介して、複数個(図は1個を示す)の分散ノードの開始
(ステップS1A)を起動させ分散ノードの立上げを行
う。次に更新すべきデータの送信指示(ステップS2)を
インタフェースのデータ信号送信12を通して分散ノード
に更新データ受信(ステップS2A)を行わせる。この動
作の直後に調整ノードは1相目のの開始を不揮発性記憶
部(書き換え可能で電源を落しても内容が消えない)に
記録する。(ステップS3)所定の更新データ送出後に調
整ノードは複数分散ノードに対してそれぞれ、分散ノー
ドのコミットが受け入れられるかどうか(ステップS4)
を間合せ信号14を通して問い合わせる。各分散ノードは
この送信信号を1相目の開始と認識して更新コミットの
受け入れ可否に関する応答決定(ステップS3A)を判定
する。可の場合には受け入れ可を示す状態値と更新デー
タとを不揮発性記憶部に記録し(ステップS4A)、受入
れ可の応答(ステップS5A)を回答信号15を通して調整
ノードに回答する。調整ノードでは、すべての分散ノー
ドからの受入れ可又は否応答を受信し、コミットの可否
決定(ステップS5)を行い、コミットメントの可否決定
結果だけを不揮発性記憶部に記録する(ステップS6)。
なお、分散ノードは応答決定(S3A)が不可の場合には
受入れ不可応答を送出する(ステップS6A)とともに、
自ノードのデータの更新が全くなかったように回復する
ために自ノードのデータのロールバック(ステップS7
A)を行いトランザクションを終了する。
次に前述のように分散ノードが調整ノードのコミット
メントを待ち受けるブロッキング後の2相目の動作を説
明する。調整ノードがコミットの2相目開始時点(ステ
ップS7)でコミットメントが可の場合には、コミット信
号送信18を通して、各分散ノードにコミット可能通知
(ステップS8)を送る。各分散ノードはこのコミット可
能通知を受け通知の判断(ステップS8A)を行い可であ
るので自ノードデータベースのコミットメント(ステッ
プS9A)で更新結果を確定し、最終応答(ステップS12
A)で応答信号受信19を通して調整ノードに正常終了応
答(ステップS12)を通知する。また、最終応答のステ
ップ12Aの送出後にステップ4Aの暫定状態の記憶を消去
する(ステップS14A)。一方、調整ノードはステップS8
後に自ノードのデータベースのコミット(ステップS1
0)を行い、確認した後に1相目のステップS3のコミッ
ト開始記録を消去する(ステップS11)。また、前述の
ステップS12ですべての分散ノードの2相目応答信号が
正常であれば1相目のステップS6における決定された1
相目のコミットメント記録の消去を行う(ステップS1
6)。
次に、調整ノードのステップS7におけるコミットの2
相目開始時点でコミットメントが不可であれば、ステッ
プS13により分散ノードにコミットの不可を通知すると
ともに、自ノードのデータベースをロールバックして、
更新が全くなかったように回復(ステップS14)した後
にS11に制御を渡す。
一方、分散ノードのステップS8Aにおいてコミット信
号18にもとづいて不可の判定が出た場合には自ノードの
データをロールバックして当トランザクションが全くな
かった状態にもどることになる(ステップS10A)。その
後ステップS12Aに制御を渡す。
以上説明した動作は分散データベースのアトミック更
新方法として実施した例であり、本発明の正常時の手順
を示している。このときの前提条件として本発明手順を
実現する論理的実体が、データベースマネジメントシス
テムに対してトランザクションの再実行と永久化が制御
可能であるとする。又このときの通信障害の検出は不可
能であると仮定した場合の障害回復例を示す。
もし、1相目ステップS2以前に調整者がダウンした場
合には調整者は再開始後に自分のデータベースをロール
バックする。分散ノードは問合信号14がこないことか
ら、コミットメントの1相目が来ないことをタイムアウ
トで検出し自分のデータベースをロールバックする。又
このときの分散ノード側のタイムアウトが調整者の処理
の遅れを異常と誤解して自ノードのデータベースをロー
ルバックしてしまった場合には、調整者側は1相目の無
応答をステップS5でタイムアウトで検出しコミットメン
ト不可と判断すれば良い。
もし、1相目以前に回線障害が発生した場合には調整
者は1相目の応答15が無いことをタイムアウトで検出し
コミットメント不可と判断する。分散ノードはコミット
メントの1相目の問合せ14が無いことをタイムアウトで
検出し自分のデータベースをロールバックする。
もし、1相目ステップS3A以前に分散ノードがダウン
した場合には分散ノードは再開始後に自分のデータベー
スをロールバックする。調整者は1相目の応答が無いこ
とをタイムアウトで検出しコミットメント不可と判断す
る。
もし、調整者が自分のステップS3とステップS6の間で
ダウンした場合には調整者は再開始後、当該トランザク
ションのステップS3で受け入れ可を示す状態値を不揮発
性記憶部に記録した時点まで回復しコミットメントの第
1相目の問合せ14の送信から再実行する。このとき対向
する分散ノードは1相目に受け入れ可能と応答して待っ
ている場合に再び1相目の問合せ14がくることがあり得
る。このような場合に分散ノードは繰り返し受け入れ可
能応答をする必要がある。
もし、分散ノードがステップS4AとステップS14Aの間
でダウンした場合には分散ノードは当該トランザクショ
ンのステップS4Aで受け入れ可を示す状態値を不揮発性
記憶部に記録した時点まで回復しコミットメントの1相
目の受け入れ可能応答から再実行する。このとき対向す
る調整者はコミットメントの2相目の応答を待っている
ときに1相目の受入可能応答を受信する可能性がある。
この場合に調整者はステップS12で自ノードのトランザ
クションの更新結果の確定とは非同期に、2相目の指示
18を再び該当分散ノードに送信するようにする(ステッ
プS15)。
もし、調整者が自分のステップS6とステップS11の間
でダウンした場合には調整者の再開始後にステップS3に
おいて記録された1相目の開始を示す状態値とステップ
S6において記録されたそのコミットメントの可否決定結
果とに基づいてステップS7から再実行される。このと
き、対向する分散ノードではS12Aで2相目の終了応答を
返す前に2相目の決定通知を重複して受け取る可能性が
有るが、これは無視して終了応答を返す。又、対向する
分散ノードが2相目の終了応答を返した後に2相目の決
定通知を重複して受け取る可能性もあるが、このときは
読み捨てる。
もし、調整者が自分のステップS11とステップS16の間
でダウンした場合には調整者はステップS6で記録されて
いた分散トランザクションのコミットメントの決定結果
があることから、ステップS3の記録がなく、かつ、ステ
ップS11の直後の状態から再実行される。
なお、上記例では、あたかも調整者ノードと分散ノー
ドが1対1の関係であるかのような記述であるが、これ
は説明を簡略化するための便宜であり、実際の分散環境
では調整者ノードと分散ノードの関係は1対複数であ
り、更に各分散ノードは自分に従属する分散ノードに対
してネストして2相コミットプロトコルを伝播させるこ
とができる。
〔発明の効果〕 以上説明したように、本発明は、各ステップの状態値
を記録する不揮発性記憶部の可用性が保たれる限りにお
いて2相更新方法のブロッキング中の分散ノードのダウ
ンを正確に回復し、かつ、いかなるタイミングの基で発
生したノード障害や回線障害に対しても永遠に待ち続け
る2相更新方法のブロッキングの発生を防止できる効果
がある。
【図面の簡単な説明】
第1図は本発明の一実施例の動作説明図である。
フロントページの続き (56)参考文献 特開 平1−200457(JP,A) 特開 平1−194040(JP,A) 特開 昭59−111564(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/177 678

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】調整者となる調整ノードと前記調整者に関
    係する分散ノードとの間における分散トランザクション
    の更新方法であって、 前記調整者ノードが該当する更新処理の1相目を開始す
    る直前のトランザクション情報を不揮発性記憶部に記録
    する第1のステップと、 前記各分散ノードからの1相目の応答が返って後で2相
    目を開始する前に更新処理の可否を前記不揮発性記憶部
    に記録する第2のステップと、 前記2相目の開始後、前記調整者自身のトランザクショ
    ンの更新の確定を行うか、又は、ロールバックした後に
    前記第1のステップの記録を消去する第3のステップ
    と、 前記各分散ノードからの2相目の正常応答が返った後に
    前記第2のステップの記録を消去する第4のステップと を含む調整者側の更新方法を有し、 前記各分散ノードが前記調整者からの実行処理の第1相
    目に受け入れ可能応答を返す直前に該トランザクション
    の受け入れ可を示す状態値を前記不揮発性記憶部に記録
    する第5のステップと、 前記調整者からの更新処理の第2相目に対して自ノード
    の処理を完了し前記調整者に正常終了応答を返した後に
    該自ノードの前記第5のステップで記録した受け入れ可
    を示す状態値を消去する第6のステップと を含む分散ノード側の処理方法を有する ことを特徴とする分散トランザクションの更新方法。
JP02083444A 1990-03-30 1990-03-30 分散トランザクションのコミットプロトコル Expired - Fee Related JP3088109B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02083444A JP3088109B2 (ja) 1990-03-30 1990-03-30 分散トランザクションのコミットプロトコル

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02083444A JP3088109B2 (ja) 1990-03-30 1990-03-30 分散トランザクションのコミットプロトコル

Publications (2)

Publication Number Publication Date
JPH03282764A JPH03282764A (ja) 1991-12-12
JP3088109B2 true JP3088109B2 (ja) 2000-09-18

Family

ID=13802607

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02083444A Expired - Fee Related JP3088109B2 (ja) 1990-03-30 1990-03-30 分散トランザクションのコミットプロトコル

Country Status (1)

Country Link
JP (1) JP3088109B2 (ja)

Also Published As

Publication number Publication date
JPH03282764A (ja) 1991-12-12

Similar Documents

Publication Publication Date Title
CN100375048C (zh) 将储存库还原到先前状态的方法
US6202067B1 (en) Method and apparatus for correct and complete transactions in a fault tolerant distributed database system
JP5689507B2 (ja) ストレージ・デバイス上のデータ書き込みを実行する方法、システム、及びコンピュータ・プログラム
US6434555B1 (en) Method for transaction recovery in three-tier applications
CN100492307C (zh) 用于故障解决的系统和方法
JP3094888B2 (ja) 採番機構、データ整合性確認機構、トランザクション再実行機構及び分散トランザクション処理システム
US20060095478A1 (en) Consistent reintegration a failed primary instance
JPH09251412A (ja) 分散データベーストランザクションのコミットメント方法
TW497054B (en) A transaction processing system, method and computer program product
US20090193280A1 (en) Method and System for In-doubt Resolution in Transaction Processing
US20090193286A1 (en) Method and System for In-doubt Resolution in Transaction Processing
EP0839350B1 (en) Optimized synchronisation procedure
JPH06243072A (ja) 分散処理システムの分散トランザクションコミット制御方式
JP3088109B2 (ja) 分散トランザクションのコミットプロトコル
JP3967509B2 (ja) 最後に処理を行っていたサーバ計算機を判定するプログラムを記録した記録媒体、及び高可用性計算機システム
JPH08286964A (ja) 分散トランザクション処理方法
JP3290182B2 (ja) 共用環境におけるデータ・セットのバックアップ方法及び装置
CN113297134A (zh) 数据处理系统及数据处理方法、装置、电子设备
CN113238892B (zh) 一种分布式系统全局一致性的时间点恢复方法及装置
JP2001306380A (ja) 二相コミット回避方式およびそのプログラム記録媒体
JP2003050720A (ja) オンラインシステムにおける情報取得方法およびプログラムおよび該プログラムを記録した計算機で読み取り可能な記録媒体
JP2007501456A (ja) 非共有データベースシステムにおける1段階コミット
JP2609625B2 (ja) 複合サブシステム型分散データベースシステムの障害回復方法
JPH02122362A (ja) 分散データ管理システム
CN114840365A (zh) 异常状态的双活卷扩容方法、系统、终端及存储介质

Legal Events

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