JPH06243072A - 分散処理システムの分散トランザクションコミット制御方式 - Google Patents
分散処理システムの分散トランザクションコミット制御方式Info
- Publication number
- JPH06243072A JPH06243072A JP5027731A JP2773193A JPH06243072A JP H06243072 A JPH06243072 A JP H06243072A JP 5027731 A JP5027731 A JP 5027731A JP 2773193 A JP2773193 A JP 2773193A JP H06243072 A JPH06243072 A JP H06243072A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- commit
- root
- sub
- subtransaction
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 分散トランザクションの整合性を保ちながら
計算機間の通信オーバヘッドを少なくしてトランザクシ
ョンのコミット制御を効率よく行う。 【構成】 トランザクションの実行状態を記憶するログ
ファイルを有する計算機にコミット制御プログラムを設
け、このコミット制御プログラムでルートサブトランザ
クションから連絡されたサブトランザクションの識別子
をもとに各サブトランザクション間の同期処理を行う。
計算機間の通信オーバヘッドを少なくしてトランザクシ
ョンのコミット制御を効率よく行う。 【構成】 トランザクションの実行状態を記憶するログ
ファイルを有する計算機にコミット制御プログラムを設
け、このコミット制御プログラムでルートサブトランザ
クションから連絡されたサブトランザクションの識別子
をもとに各サブトランザクション間の同期処理を行う。
Description
【0001】
【産業上の利用分野】本発明は、通信ネットワークで接
続された複数の計算機が協調してオンライントランザク
ション処理を遂行する分散処理システムにおける分散ト
ランザクションコミット制御方式に係り、特に分散トラ
ンザクションの整合性を保ちながら計算機間の通信オー
バヘッドを少なくして効率よくトランザクションのコミ
ット制御を行うのに好敵な分散処理システムの分散トラ
ンザクションコミット制御方式に関するものである。
続された複数の計算機が協調してオンライントランザク
ション処理を遂行する分散処理システムにおける分散ト
ランザクションコミット制御方式に係り、特に分散トラ
ンザクションの整合性を保ちながら計算機間の通信オー
バヘッドを少なくして効率よくトランザクションのコミ
ット制御を行うのに好敵な分散処理システムの分散トラ
ンザクションコミット制御方式に関するものである。
【0002】
【従来の技術】従来、通信ネットワークにより接続され
た複数の計算機による分散処理システムにおいて、オン
ライントランザクション処理を行う場合、理論的な仕事
の単位であるトランザクションは、部分的な処理、すな
わち、サブトランザクションに分割される。そして、各
々のサブトランザクションがネットワーク内のいずれか
の計算機上で実行される。
た複数の計算機による分散処理システムにおいて、オン
ライントランザクション処理を行う場合、理論的な仕事
の単位であるトランザクションは、部分的な処理、すな
わち、サブトランザクションに分割される。そして、各
々のサブトランザクションがネットワーク内のいずれか
の計算機上で実行される。
【0003】トランザクション処理においては、全ての
サブトランザクションが処理された場合に、トランザク
ション処理が完了するが、一つでもサブトランザクショ
ンが処理されない場合には、トランザクション処理は全
く実行されなかった状態とならなければならない。
サブトランザクションが処理された場合に、トランザク
ション処理が完了するが、一つでもサブトランザクショ
ンが処理されない場合には、トランザクション処理は全
く実行されなかった状態とならなければならない。
【0004】このようなトランザクション処理の原子性
(分割不可)を実現するためには、一つのトランザクシ
ョンに関連する全てのサブトランザクション間での同期
(コミット)制御が必要である。
(分割不可)を実現するためには、一つのトランザクシ
ョンに関連する全てのサブトランザクション間での同期
(コミット)制御が必要である。
【0005】そして、このような同期制御は、例えば電
子情報通信学会編「電子情報通信ハンドブック」(19
88年、オーム社発行)の第1925頁、またはシー、
ジェー、デート著「アン イントラダクション トゥ
データベース システムズ第2巻」(C.J.Date
「An Introduction to Datab
ase Systems Volume II」)(19
83年、Addison−Wesley社発行)の1.
6節に示されるように、二相コミット(Two−pha
se Commitment Hand−shake)
と呼ばれるプロトコルにより実現される。
子情報通信学会編「電子情報通信ハンドブック」(19
88年、オーム社発行)の第1925頁、またはシー、
ジェー、デート著「アン イントラダクション トゥ
データベース システムズ第2巻」(C.J.Date
「An Introduction to Datab
ase Systems Volume II」)(19
83年、Addison−Wesley社発行)の1.
6節に示されるように、二相コミット(Two−pha
se Commitment Hand−shake)
と呼ばれるプロトコルにより実現される。
【0006】二相コミットにおいては、一つのサブトラ
ンザクションがコミット制御の調停者、すなわちルート
サブトランザクションとなり、関連する全てのサブトラ
ンザクションがコミット準備状態になったことを確認し
てから(フェーズ(1))、コミットを全サブトランザ
クションに通知する(フェーズ(2))。
ンザクションがコミット制御の調停者、すなわちルート
サブトランザクションとなり、関連する全てのサブトラ
ンザクションがコミット準備状態になったことを確認し
てから(フェーズ(1))、コミットを全サブトランザ
クションに通知する(フェーズ(2))。
【0007】また、分散処理システムにおいては、トラ
ンザクション処理途中でシステムに何等かの障害が発生
して処理続行が不可能となった場合でも、後の回復処理
でトランザクションの状態を正しく判定することができ
るように、そのトランザクションの実行状態を安定な二
次記憶、例えば磁気ディスク上のファイルに書き出す。
ンザクション処理途中でシステムに何等かの障害が発生
して処理続行が不可能となった場合でも、後の回復処理
でトランザクションの状態を正しく判定することができ
るように、そのトランザクションの実行状態を安定な二
次記憶、例えば磁気ディスク上のファイルに書き出す。
【0008】二相コミットでは、図7に示すように、ル
ートサブトランザクションは関連する全てのサブトラン
ザクションにコミット準備を連絡する(ステップ7
0)。
ートサブトランザクションは関連する全てのサブトラン
ザクションにコミット準備を連絡する(ステップ7
0)。
【0009】これに対し、サブトランザクションはコミ
ット準備処理として、そのトランザクションが更新した
データベースの更新履歴をログファイルに出力する等、
トランザクションがコミット状態になるための準備処理
を行い(ステップ71)、その完了をルートサブトラン
ザクションに返す(ステップ72)。その後、ルートサ
ブトランザクションは当該トランザクションがコミット
した旨をログファイルに記憶した後(ステップ73)、
サブトランザクションにコミットを通知する(ステップ
74)。サブトランザクションはコミットの完了報告を
ルートサブトランザクションに返す(ステップ75)。
ット準備処理として、そのトランザクションが更新した
データベースの更新履歴をログファイルに出力する等、
トランザクションがコミット状態になるための準備処理
を行い(ステップ71)、その完了をルートサブトラン
ザクションに返す(ステップ72)。その後、ルートサ
ブトランザクションは当該トランザクションがコミット
した旨をログファイルに記憶した後(ステップ73)、
サブトランザクションにコミットを通知する(ステップ
74)。サブトランザクションはコミットの完了報告を
ルートサブトランザクションに返す(ステップ75)。
【0010】
【発明が解決しようとする課題】しかしながら、上記し
た従来の分散トランザクションコミット制御方式にあっ
ては、ルートサブトランザクションと該ルートサブトラ
ンザクションと異なる計算機で動作するサブトランザク
ション間で、コミット準備の連絡とその完了報告及びコ
ミット連絡とその完了報告といった2往復の通信が必ず
必要になる。
た従来の分散トランザクションコミット制御方式にあっ
ては、ルートサブトランザクションと該ルートサブトラ
ンザクションと異なる計算機で動作するサブトランザク
ション間で、コミット準備の連絡とその完了報告及びコ
ミット連絡とその完了報告といった2往復の通信が必ず
必要になる。
【0011】また、サブトランザクションが動作する各
計算機から当該トランザクションの実行状態を記憶する
ためのログファイルを有する計算機への通信が必ず必要
になる。
計算機から当該トランザクションの実行状態を記憶する
ためのログファイルを有する計算機への通信が必ず必要
になる。
【0012】そのため、サブトランザクションが動作す
る計算機の数が多い分散処理システムでは、ルートサブ
トランザクションが動作する計算機とその他の計算機及
びログファイルを有する計算機とその他の計算機との通
信に多くのオーバヘッドが生じるという問題があった。
る計算機の数が多い分散処理システムでは、ルートサブ
トランザクションが動作する計算機とその他の計算機及
びログファイルを有する計算機とその他の計算機との通
信に多くのオーバヘッドが生じるという問題があった。
【0013】本発明の目的は、トランザクションを分散
処理するに際しての計算機間の通信を効率良く行うこと
ができる分散処理システムの分散トランザクションコミ
ット制御方式を提供することである。
処理するに際しての計算機間の通信を効率良く行うこと
ができる分散処理システムの分散トランザクションコミ
ット制御方式を提供することである。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明の分散処理システムの分散トランザクション
コミット制御方式は、通信ネットワークで接続した複数
の計算機のそれぞれで、1つのトランザクションをコミ
ット制御の調停者となるルートサブトランザクションと
それ以外のサブトランザクションとに分散して実行する
分散処理システムにおいて、トランザクションの実行状
態を記憶するログファイルを有する計算機にコミット制
御プログラムを設け、前記ルートサブトランザクション
からコミット準備指示を受けたルートサブトランザクシ
ョンと異なる計算機上で動作するサブトランザクション
がコミット準備の完了を前記コミット制御プログラムに
連絡する第1の手段と、ルートサブトランザクション
が、ルートサブトランザクションのコミット準備の完了
とルートサブトランザクションと異なる計算機で動作す
るすべてのサブトランザクションの識別子を前記コミッ
ト制御プログラムに連絡する第2の手段と、前記コミッ
ト制御プログラムがルートサブトランザクションから連
絡されたサブトランザクションの識別子をもとに、ルー
トサブトランザクションと異なる計算機で動作するすべ
てのサブトランザクションのコミット準備が完了したこ
とを確認した後に、前記ログファイルに当該トランザク
ションがコミットした旨を記憶し、その後、ルートトラ
ンザクション及びルートトランザクションと異なる計算
機で動作するサブトランザクションに当該トランザクシ
ョンがコミットした旨を連絡する第3の手段とを有する
ことを特徴とするものである。
に、本発明の分散処理システムの分散トランザクション
コミット制御方式は、通信ネットワークで接続した複数
の計算機のそれぞれで、1つのトランザクションをコミ
ット制御の調停者となるルートサブトランザクションと
それ以外のサブトランザクションとに分散して実行する
分散処理システムにおいて、トランザクションの実行状
態を記憶するログファイルを有する計算機にコミット制
御プログラムを設け、前記ルートサブトランザクション
からコミット準備指示を受けたルートサブトランザクシ
ョンと異なる計算機上で動作するサブトランザクション
がコミット準備の完了を前記コミット制御プログラムに
連絡する第1の手段と、ルートサブトランザクション
が、ルートサブトランザクションのコミット準備の完了
とルートサブトランザクションと異なる計算機で動作す
るすべてのサブトランザクションの識別子を前記コミッ
ト制御プログラムに連絡する第2の手段と、前記コミッ
ト制御プログラムがルートサブトランザクションから連
絡されたサブトランザクションの識別子をもとに、ルー
トサブトランザクションと異なる計算機で動作するすべ
てのサブトランザクションのコミット準備が完了したこ
とを確認した後に、前記ログファイルに当該トランザク
ションがコミットした旨を記憶し、その後、ルートトラ
ンザクション及びルートトランザクションと異なる計算
機で動作するサブトランザクションに当該トランザクシ
ョンがコミットした旨を連絡する第3の手段とを有する
ことを特徴とするものである。
【0015】
【作用】上記手段によれば、トランザクションの実行状
態を記憶するログファイルを有する計算機で動作するコ
ミット制御プログラムは、ルートサブトランザクション
から連絡されたサブトランザクションの識別子をもとに
各サブトランザクション間の同期処理を行うため、ルー
トサブトランザクションとルートサブトランザクション
と異なる計算機で動作するサブトランザクションとの間
の連絡は、コミット準備フェーズとコミット処理フェー
ズを合わせて1往復だけになる。
態を記憶するログファイルを有する計算機で動作するコ
ミット制御プログラムは、ルートサブトランザクション
から連絡されたサブトランザクションの識別子をもとに
各サブトランザクション間の同期処理を行うため、ルー
トサブトランザクションとルートサブトランザクション
と異なる計算機で動作するサブトランザクションとの間
の連絡は、コミット準備フェーズとコミット処理フェー
ズを合わせて1往復だけになる。
【0016】そのため、従来に比べて、トランザクショ
ンコミット処理のオーバヘッドが1往復分だけ減少す
る。
ンコミット処理のオーバヘッドが1往復分だけ減少す
る。
【0017】
【実施例】以下、本発明の実施例を図面により詳細に説
明する。
明する。
【0018】図1は、本発明を適用した分散トランザク
ション処理システムの一実施例を示すブロック図であ
る。
ション処理システムの一実施例を示すブロック図であ
る。
【0019】本実施例の分散トランザクション処理シス
テムは、それぞれのサブトランザクション処理を行う計
算機10,11,12と、ログファイル60を備えた計
算機13と、これらの計算機10〜14を接続する通信
ネットワーク20とから構成されている。
テムは、それぞれのサブトランザクション処理を行う計
算機10,11,12と、ログファイル60を備えた計
算機13と、これらの計算機10〜14を接続する通信
ネットワーク20とから構成されている。
【0020】計算機10では、ルートサブトランザクシ
ョン30(図中のtr10)が実行中であり、計算機1
1,12ではサブトランザクション31,32(図中の
tr11,tr12)が実行中である。
ョン30(図中のtr10)が実行中であり、計算機1
1,12ではサブトランザクション31,32(図中の
tr11,tr12)が実行中である。
【0021】サブトランザクションが実行される各計算
機10,11,12は、それぞれサブトランザクション
のデータベース更新履歴等のトランザクション実行履歴
情報を蓄積しておくログ転送バッファ40,41,42
を備えている。
機10,11,12は、それぞれサブトランザクション
のデータベース更新履歴等のトランザクション実行履歴
情報を蓄積しておくログ転送バッファ40,41,42
を備えている。
【0022】ログファイル60を備えた計算機13は、
コミット制御プログラム50とログ出力プログラム51
およびログバッファ52を備え、コミット制御プログラ
ム50は計算機10,11,12で動作するそれぞれの
サブトランザクション30,31,32からコミット準
備の完了連絡を受ける。
コミット制御プログラム50とログ出力プログラム51
およびログバッファ52を備え、コミット制御プログラ
ム50は計算機10,11,12で動作するそれぞれの
サブトランザクション30,31,32からコミット準
備の完了連絡を受ける。
【0023】計算機13で動作するログ出力プログラム
51は、ログ出力要求を受けたデータをログバッファ5
2を使用してログファイル60に書込む。
51は、ログ出力要求を受けたデータをログバッファ5
2を使用してログファイル60に書込む。
【0024】図2は、ルートサブトランザクション30
のコミット処理の流れの例を示すフローチャートであ
る。
のコミット処理の流れの例を示すフローチャートであ
る。
【0025】ルートサブトランザクション30は、まず
最初に当該トランザクションの全サブトランザクション
31,32にコミット準備を連絡する(ステップ10
0)。
最初に当該トランザクションの全サブトランザクション
31,32にコミット準備を連絡する(ステップ10
0)。
【0026】これは通知のみでサブトランザクション3
1,32からの返答を待たない。
1,32からの返答を待たない。
【0027】ルートサブトランザクション30はサブト
ランザクション発生時にその事を記憶しているため、当
該トランザクションの各サブトランザクション31,3
2がどの計算機で実行中であるかを認識できている。
ランザクション発生時にその事を記憶しているため、当
該トランザクションの各サブトランザクション31,3
2がどの計算機で実行中であるかを認識できている。
【0028】次にルートサブトランザクション30は自
分自身のコミット準備処理をおこなう(ステップ10
1)。
分自身のコミット準備処理をおこなう(ステップ10
1)。
【0029】一般に、二相コミットにおけるコミット準
備処理では、データベース更新情報をログファイル60
に出力する準備を行う。それにより当該トランザクショ
ンがコミットした旨がログファイル60に書かれるのと
同時又は以前にデータベース更新情報をログファイル6
0に出力することができ、データベースの整合性を保証
している。
備処理では、データベース更新情報をログファイル60
に出力する準備を行う。それにより当該トランザクショ
ンがコミットした旨がログファイル60に書かれるのと
同時又は以前にデータベース更新情報をログファイル6
0に出力することができ、データベースの整合性を保証
している。
【0030】本実施例では、ログファイル60に出力す
る準備としてルートトランザクション30が動作する計
算機10のログ転送バッファ40にデータベース更新情
報等をセットする。ログファイル60に出力するデータ
量が多く、ログ転送バッファ40が満杯になる場合に
は、一旦ログ出力プログラム51に連絡してログファイ
ル60に書込み、残りのデータをログ転送バッファ40
にセットしておく。
る準備としてルートトランザクション30が動作する計
算機10のログ転送バッファ40にデータベース更新情
報等をセットする。ログファイル60に出力するデータ
量が多く、ログ転送バッファ40が満杯になる場合に
は、一旦ログ出力プログラム51に連絡してログファイ
ル60に書込み、残りのデータをログ転送バッファ40
にセットしておく。
【0031】データベースに異常が発生している等の原
因で当該トランザクションをコミットできない場合は、
コミット準備処理を失敗とする。
因で当該トランザクションをコミットできない場合は、
コミット準備処理を失敗とする。
【0032】そこで、コミット準備処理が正常であれば
(ステップ102)、全サブトランザクション30,3
1,32の識別子情報とログ転送バッファ40の内容を
コミット制御プログラム50に連絡する(ステップ10
3)。
(ステップ102)、全サブトランザクション30,3
1,32の識別子情報とログ転送バッファ40の内容を
コミット制御プログラム50に連絡する(ステップ10
3)。
【0033】しかし、コミット準備処理が失敗のとき
は、全サブトランザクション30,313,32の識別
子情報とルートサブトランザクション30がコミットで
きない旨をコミット制御プログラム50に連絡する(ス
テップ104)。
は、全サブトランザクション30,313,32の識別
子情報とルートサブトランザクション30がコミットで
きない旨をコミット制御プログラム50に連絡する(ス
テップ104)。
【0034】次に、このようなコミット準備の結果をコ
ミット制御プログラム50に連絡した後、その返答を待
つ(ステップ105)。
ミット制御プログラム50に連絡した後、その返答を待
つ(ステップ105)。
【0035】コミット制御プログラム50から返答が返
り、その結果が正常であれば(ステップ106)、ルー
トサブトランザクション30のコミット処理を行い(ス
テップ107)、異常であればロールバック処理を行う
(ステップ108)。
り、その結果が正常であれば(ステップ106)、ルー
トサブトランザクション30のコミット処理を行い(ス
テップ107)、異常であればロールバック処理を行う
(ステップ108)。
【0036】そして全サブトランザクション30,31
3,32の終了を待ち(ステップ109)、終了したら
当該トランザクションの処理を終了する。
3,32の終了を待ち(ステップ109)、終了したら
当該トランザクションの処理を終了する。
【0037】図3は、サブトランザクション31,32
のコミット処理の流れの例を示すフローチャートであ
る。
のコミット処理の流れの例を示すフローチャートであ
る。
【0038】ルートサブトランザクション30からコミ
ット準備の通知を受けると(ステップ200)、サブト
ランザクション31,32はコミット準備処理を行う
(ステップ201)。コミット準備処理の内容はルート
サブトランザクション30のコミット準備処理と同じで
ある。
ット準備の通知を受けると(ステップ200)、サブト
ランザクション31,32はコミット準備処理を行う
(ステップ201)。コミット準備処理の内容はルート
サブトランザクション30のコミット準備処理と同じで
ある。
【0039】そこで、コミット準備処理が正常であれば
(ステップ202)、自サブトランザクションの識別子
とログ転送バッファ41,42の内容とをコミット制御
プログラム50に連絡する(ステップ203)。
(ステップ202)、自サブトランザクションの識別子
とログ転送バッファ41,42の内容とをコミット制御
プログラム50に連絡する(ステップ203)。
【0040】コミット準備処理が失敗のときは、自サブ
トランザクションの識別子とコミットできない旨をコミ
ット制御プログラム50に連絡する(ステップ20
4)。
トランザクションの識別子とコミットできない旨をコミ
ット制御プログラム50に連絡する(ステップ20
4)。
【0041】このようにしてコミット準備の結果をコミ
ット制御プログラム50に連絡した後、その返答を待つ
(ステップ205)。
ット制御プログラム50に連絡した後、その返答を待つ
(ステップ205)。
【0042】そこで、コミット制御プログラム50から
返答が返り、その結果が正常であれば(ステップ20
6)、サブトランザクション31,32のコミット処理
を行い(ステップ207)、異常であればロールバック
処理を行う(ステップ208)。
返答が返り、その結果が正常であれば(ステップ20
6)、サブトランザクション31,32のコミット処理
を行い(ステップ207)、異常であればロールバック
処理を行う(ステップ208)。
【0043】そして、ルートサブトランザクション30
に終了を連絡し(ステップ209)、サブトランザクシ
ョン処理を終了する。
に終了を連絡し(ステップ209)、サブトランザクシ
ョン処理を終了する。
【0044】図4は、コミット制御プログラム50の処
理の流れの例を示すフローチャートである。
理の流れの例を示すフローチャートである。
【0045】コミット制御プログラム50は、ルートサ
ブトランザクション30又はサブトランザクション3
1,32からの連絡を待っている(ステップ300)。
ブトランザクション30又はサブトランザクション3
1,32からの連絡を待っている(ステップ300)。
【0046】この状態で、ルートサブトランザクション
30又はサブトランザクション31,32から正常連絡
を受けると(ステップ301)、送られてきたログ転送
バッファ40または41,42の内容をログ出力プログ
ラム51に対しバッファリング要求する(ステップ30
2)。
30又はサブトランザクション31,32から正常連絡
を受けると(ステップ301)、送られてきたログ転送
バッファ40または41,42の内容をログ出力プログ
ラム51に対しバッファリング要求する(ステップ30
2)。
【0047】しかし、ルートサブトランザクション30
又はサブトランザクション31,32から異常連絡の場
合は、コミットできなかったサブトランザクションが存
在したことを記憶する(ステップ303)。
又はサブトランザクション31,32から異常連絡の場
合は、コミットできなかったサブトランザクションが存
在したことを記憶する(ステップ303)。
【0048】この後、ルートサブトランザクション30
を含む全サブトランザクションがコミット制御プログラ
ム50に連絡済かを調べる(ステップ304)。
を含む全サブトランザクションがコミット制御プログラ
ム50に連絡済かを調べる(ステップ304)。
【0049】すべて連絡済でなければ(ステップ30
5)、残りのルートサブトランザクション30又はサブ
トランザクション31,32からの連絡を待つ。
5)、残りのルートサブトランザクション30又はサブ
トランザクション31,32からの連絡を待つ。
【0050】すべて連絡済になると、ルートサブトラン
ザクション30を含むすべてのサブトランザクション3
1,32が正常であれば(ステップ306)、当該トラ
ンザクションがコミットした旨の情報をログ出力プログ
ラム51に対して媒体出力要求を行い(ステップ30
7)、ルートサブトランザクション30及び全サブトラ
ンザクション31,32に正常応答を返す(ステップ3
08)。
ザクション30を含むすべてのサブトランザクション3
1,32が正常であれば(ステップ306)、当該トラ
ンザクションがコミットした旨の情報をログ出力プログ
ラム51に対して媒体出力要求を行い(ステップ30
7)、ルートサブトランザクション30及び全サブトラ
ンザクション31,32に正常応答を返す(ステップ3
08)。
【0051】コミットできなかったサブトランザクショ
ンが存在する場合は、当該トランザクションがコミット
に失敗した旨の情報をログ出力プログラム51に対して
媒体出力要求を行い(ステップ309)、ルートサブト
ランザクション30及び全サブトランザクション31,
32に異常応答を返す(ステップ310)。
ンが存在する場合は、当該トランザクションがコミット
に失敗した旨の情報をログ出力プログラム51に対して
媒体出力要求を行い(ステップ309)、ルートサブト
ランザクション30及び全サブトランザクション31,
32に異常応答を返す(ステップ310)。
【0052】図5は、ログ出力プログラム51の処理の
流れの例を示すフローチャートである。
流れの例を示すフローチャートである。
【0053】まず、要求データをログバッファ52にセ
ットし(ステップ400)、もし満杯になれば、ログバ
ッファ52の内容をログファイル60に書込み(ステッ
プ401)、要求データの残りをログバッファ52にセ
ットする(ステップ403)。
ットし(ステップ400)、もし満杯になれば、ログバ
ッファ52の内容をログファイル60に書込み(ステッ
プ401)、要求データの残りをログバッファ52にセ
ットする(ステップ403)。
【0054】バッファリング要求であれば、これで処理
を終了するが、媒体出力要求であれば(ステップ40
4)、ログバッファ52の内容をログファイル60に書
き込み(ステップ405)、この後に処理を終了する。
を終了するが、媒体出力要求であれば(ステップ40
4)、ログバッファ52の内容をログファイル60に書
き込み(ステップ405)、この後に処理を終了する。
【0055】従って、本実施例において、ルートサブト
ランザクション30とルートサブトランザクションと異
なる計算機で動作するサブトランザクション31,32
との間の連絡は、図6に示すように、コミット準備フェ
ーズ60とコミット処理フェーズ61を合わせて1往復
だけになる。
ランザクション30とルートサブトランザクションと異
なる計算機で動作するサブトランザクション31,32
との間の連絡は、図6に示すように、コミット準備フェ
ーズ60とコミット処理フェーズ61を合わせて1往復
だけになる。
【0056】そのため、従来に比べて、トランザクショ
ンコミット処理のオーバヘッドが1往復分だけ減少し、
トランザクションを分散処理するに際しての計算機間の
通信を効率良く行うことができ、分散処理の速度を大幅
に向上させることができる。
ンコミット処理のオーバヘッドが1往復分だけ減少し、
トランザクションを分散処理するに際しての計算機間の
通信を効率良く行うことができ、分散処理の速度を大幅
に向上させることができる。
【0057】
【発明の効果】以上説明したように本発明によれば、ト
ランザクションの実行状態を記憶するログファイルを有
する計算機にコミット制御プログラムを設け、前記ルー
トサブトランザクションからコミット準備指示を受けた
ルートサブトランザクションと異なる計算機上で動作す
るサブトランザクションがコミット準備の完了を前記コ
ミット制御プログラムに連絡する第1の手段と、ルート
サブトランザクションが、ルートサブトランザクション
のコミット準備の完了とルートサブトランザクションと
異なる計算機で動作するすべてのサブトランザクション
の識別子を前記コミット制御プログラムに連絡する第2
の手段と、前記コミット制御プログラムがルートサブト
ランザクションから連絡されたサブトランザクションの
識別子をもとに、ルートサブトランザクションと異なる
計算機で動作するすべてのサブトランザクションのコミ
ット準備が完了したことを確認した後に、前記ログファ
イルに当該トランザクションがコミットした旨を記憶
し、その後、ルートトランザクション及びルートトラン
ザクションと異なる計算機で動作するサブトランザクシ
ョンに当該トランザクションがコミットした旨を連絡す
る第3の手段とを設けたため、ルートサブトランザクシ
ョンと他のサブトランザクションとの間の通信はコミッ
ト準備フェーズとコミット処理フェーズを合わせて1往
復だけになる。この結果、分散トランザクションの整合
性を保ちながら計算機間の通信を効率良く行い、トラン
ザクションのコミット制御を効率よく行うことが可能と
なる。
ランザクションの実行状態を記憶するログファイルを有
する計算機にコミット制御プログラムを設け、前記ルー
トサブトランザクションからコミット準備指示を受けた
ルートサブトランザクションと異なる計算機上で動作す
るサブトランザクションがコミット準備の完了を前記コ
ミット制御プログラムに連絡する第1の手段と、ルート
サブトランザクションが、ルートサブトランザクション
のコミット準備の完了とルートサブトランザクションと
異なる計算機で動作するすべてのサブトランザクション
の識別子を前記コミット制御プログラムに連絡する第2
の手段と、前記コミット制御プログラムがルートサブト
ランザクションから連絡されたサブトランザクションの
識別子をもとに、ルートサブトランザクションと異なる
計算機で動作するすべてのサブトランザクションのコミ
ット準備が完了したことを確認した後に、前記ログファ
イルに当該トランザクションがコミットした旨を記憶
し、その後、ルートトランザクション及びルートトラン
ザクションと異なる計算機で動作するサブトランザクシ
ョンに当該トランザクションがコミットした旨を連絡す
る第3の手段とを設けたため、ルートサブトランザクシ
ョンと他のサブトランザクションとの間の通信はコミッ
ト準備フェーズとコミット処理フェーズを合わせて1往
復だけになる。この結果、分散トランザクションの整合
性を保ちながら計算機間の通信を効率良く行い、トラン
ザクションのコミット制御を効率よく行うことが可能と
なる。
【図1】本発明を適用した分散トランザクション処理シ
ステムの一実施例を示すブロック図である。
ステムの一実施例を示すブロック図である。
【図2】図1におけるルートサブトランザクションのコ
ミット処理の流れの一例を示すフローチャートである。
ミット処理の流れの一例を示すフローチャートである。
【図3】図1におけるサブトランザクションのコミット
処理の流れの一例を示すフローチャートである。
処理の流れの一例を示すフローチャートである。
【図4】図1におけるコミット制御プログラムの処理の
流れの一例を示すフローチャートである。
流れの一例を示すフローチャートである。
【図5】図1におけるログ出力プログラムの処理の流れ
の一例を示すフローチャートである。
の一例を示すフローチャートである。
【図6】図1におけるトランザクション間の通信内容の
概要を示すシーケンス図である。
概要を示すシーケンス図である。
【図7】従来におけるトランザクション間の通信内容の
概要を示すシーケンス図である。
概要を示すシーケンス図である。
10,11,12,13…計算機、20…通信ネットワ
ーク、30…ルートサブトランザクション、31,32
…サブトランザクション、40,41,42…ログ転送
バッファ、50…コミット制御プログラム、51…ログ
出力プログラム、52…ログバッファ、60…ログファ
イル。
ーク、30…ルートサブトランザクション、31,32
…サブトランザクション、40,41,42…ログ転送
バッファ、50…コミット制御プログラム、51…ログ
出力プログラム、52…ログバッファ、60…ログファ
イル。
Claims (1)
- 【請求項1】 通信ネットワークで接続した複数の計算
機のそれぞれで、1つのトランザクションをコミット制
御の調停者となるルートサブトランザクションとそれ以
外のサブトランザクションとに分散して実行する分散処
理システムにおいて、トランザクションの実行状態を記
憶するログファイルを有する計算機にコミット制御プロ
グラムを設け、前記ルートサブトランザクションからコ
ミット準備指示を受けたルートサブトランザクションと
異なる計算機上で動作するサブトランザクションがコミ
ット準備の完了を前記コミット制御プログラムに連絡す
る第1の手段と、ルートサブトランザクションが、ルー
トサブトランザクションのコミット準備の完了とルート
サブトランザクションと異なる計算機で動作するすべて
のサブトランザクションの識別子を前記コミット制御プ
ログラムに連絡する第2の手段と、前記コミット制御プ
ログラムがルートサブトランザクションから連絡された
サブトランザクションの識別子をもとに、ルートサブト
ランザクションと異なる計算機で動作するすべてのサブ
トランザクションのコミット準備が完了したことを確認
した後に、前記ログファイルに当該トランザクションが
コミットした旨を記憶し、その後、ルートトランザクシ
ョン及びルートトランザクションと異なる計算機で動作
するサブトランザクションに当該トランザクションがコ
ミットした旨を連絡する第3の手段とを有することを特
徴とする分散処理システムの分散トランザクションコミ
ット制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5027731A JPH06243072A (ja) | 1993-02-17 | 1993-02-17 | 分散処理システムの分散トランザクションコミット制御方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5027731A JPH06243072A (ja) | 1993-02-17 | 1993-02-17 | 分散処理システムの分散トランザクションコミット制御方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06243072A true JPH06243072A (ja) | 1994-09-02 |
Family
ID=12229172
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5027731A Pending JPH06243072A (ja) | 1993-02-17 | 1993-02-17 | 分散処理システムの分散トランザクションコミット制御方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06243072A (ja) |
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002507021A (ja) * | 1998-03-12 | 2002-03-05 | クロスワールズ ソフトウエア インコーポレイテッド | 情報システムの独立性レベル及びトランザクション補償 |
| JP2017531256A (ja) * | 2014-09-10 | 2017-10-19 | アマゾン・テクノロジーズ・インコーポレーテッド | 拡張縮小可能なログベーストランザクション管理 |
| US10346434B1 (en) | 2015-08-21 | 2019-07-09 | Amazon Technologies, Inc. | Partitioned data materialization in journal-based storage systems |
| US10373247B2 (en) | 2014-09-19 | 2019-08-06 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
| US10698767B1 (en) | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
| US10866865B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Storage system journal entry redaction |
| US10866968B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Compact snapshots of journal-based storage systems |
| JP2021068101A (ja) * | 2019-10-21 | 2021-04-30 | 日本電気株式会社 | 情報処理システム、情報処理装置、制御方法およびプログラム |
| US11048669B2 (en) | 2015-12-29 | 2021-06-29 | Amazon Technologies, Inc. | Replicated state management using journal-based registers |
| JP2022515949A (ja) * | 2019-12-03 | 2022-02-24 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | トランザクション処理方法、装置、機器並びにコンピュータプログラム |
| US11308127B2 (en) | 2015-03-13 | 2022-04-19 | Amazon Technologies, Inc. | Log-based distributed transaction management |
| US11341115B2 (en) | 2014-06-26 | 2022-05-24 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
| US11397709B2 (en) | 2014-09-19 | 2022-07-26 | Amazon Technologies, Inc. | Automated configuration of log-coordinated storage groups |
| US11544245B2 (en) | 2019-12-03 | 2023-01-03 | Tencent Technology (Shenzhen) Company Limited | Transaction processing method, apparatus, and device and computer storage medium |
| US11599520B1 (en) | 2015-06-29 | 2023-03-07 | Amazon Technologies, Inc. | Consistency management using query restrictions in journal-based storage systems |
| US11609890B1 (en) | 2015-06-29 | 2023-03-21 | Amazon Technologies, Inc. | Schema management for journal-based storage systems |
| US11625700B2 (en) | 2014-09-19 | 2023-04-11 | Amazon Technologies, Inc. | Cross-data-store operations in log-coordinated storage systems |
| US11960464B2 (en) | 2015-08-21 | 2024-04-16 | Amazon Technologies, Inc. | Customer-related partitioning of journal-based storage systems |
-
1993
- 1993-02-17 JP JP5027731A patent/JPH06243072A/ja active Pending
Cited By (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002507021A (ja) * | 1998-03-12 | 2002-03-05 | クロスワールズ ソフトウエア インコーポレイテッド | 情報システムの独立性レベル及びトランザクション補償 |
| US11995066B2 (en) | 2014-06-26 | 2024-05-28 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
| US11341115B2 (en) | 2014-06-26 | 2022-05-24 | Amazon Technologies, Inc. | Multi-database log with multi-item transaction support |
| JP2017531256A (ja) * | 2014-09-10 | 2017-10-19 | アマゾン・テクノロジーズ・インコーポレーテッド | 拡張縮小可能なログベーストランザクション管理 |
| JP2018163671A (ja) * | 2014-09-10 | 2018-10-18 | アマゾン・テクノロジーズ・インコーポレーテッド | 拡張縮小可能なログベーストランザクション管理 |
| US10373247B2 (en) | 2014-09-19 | 2019-08-06 | Amazon Technologies, Inc. | Lifecycle transitions in log-coordinated data stores |
| US11625700B2 (en) | 2014-09-19 | 2023-04-11 | Amazon Technologies, Inc. | Cross-data-store operations in log-coordinated storage systems |
| US11397709B2 (en) | 2014-09-19 | 2022-07-26 | Amazon Technologies, Inc. | Automated configuration of log-coordinated storage groups |
| US10698767B1 (en) | 2014-12-22 | 2020-06-30 | Amazon Technologies, Inc. | Decentralized management of multi-service workflows |
| US11308127B2 (en) | 2015-03-13 | 2022-04-19 | Amazon Technologies, Inc. | Log-based distributed transaction management |
| US11860900B2 (en) | 2015-03-13 | 2024-01-02 | Amazon Technologies, Inc. | Log-based distributed transaction management |
| US11599520B1 (en) | 2015-06-29 | 2023-03-07 | Amazon Technologies, Inc. | Consistency management using query restrictions in journal-based storage systems |
| US11609890B1 (en) | 2015-06-29 | 2023-03-21 | Amazon Technologies, Inc. | Schema management for journal-based storage systems |
| US10866968B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Compact snapshots of journal-based storage systems |
| US10866865B1 (en) | 2015-06-29 | 2020-12-15 | Amazon Technologies, Inc. | Storage system journal entry redaction |
| US12099486B2 (en) | 2015-06-29 | 2024-09-24 | Amazon Technologies, Inc. | Schema management for journal-based storage systems |
| US11960464B2 (en) | 2015-08-21 | 2024-04-16 | Amazon Technologies, Inc. | Customer-related partitioning of journal-based storage systems |
| US10346434B1 (en) | 2015-08-21 | 2019-07-09 | Amazon Technologies, Inc. | Partitioned data materialization in journal-based storage systems |
| US11048669B2 (en) | 2015-12-29 | 2021-06-29 | Amazon Technologies, Inc. | Replicated state management using journal-based registers |
| JP2021068101A (ja) * | 2019-10-21 | 2021-04-30 | 日本電気株式会社 | 情報処理システム、情報処理装置、制御方法およびプログラム |
| JP2022515949A (ja) * | 2019-12-03 | 2022-02-24 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | トランザクション処理方法、装置、機器並びにコンピュータプログラム |
| US11544245B2 (en) | 2019-12-03 | 2023-01-03 | Tencent Technology (Shenzhen) Company Limited | Transaction processing method, apparatus, and device and computer storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH06243072A (ja) | 分散処理システムの分散トランザクションコミット制御方式 | |
| EP0578406B1 (en) | Distributed transaction processing using two-phase commit protocol with presumed-commit without log force | |
| CN109739935B (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
| CN100435101C (zh) | 在软件环境中用于保持资源完整性的装置和方法 | |
| JP3790589B2 (ja) | 分散データベーストランザクションのコミットメント方法 | |
| US6161198A (en) | System for providing transaction indivisibility in a transaction processing system upon recovery from a host processor failure by monitoring source message sequencing | |
| EP0950955B1 (en) | Method and apparatus for correct and complete transactions in a fault tolerant distributed database system | |
| US5261089A (en) | Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary | |
| US5845117A (en) | Deadlock detecting device | |
| EP0319034B1 (en) | Method of recovering failure of online control program | |
| EP0457108A2 (en) | Coordinated sync point management of protected resources | |
| WO1995010805A1 (en) | Message transmission across a network | |
| US20120011100A1 (en) | Snapshot acquisition processing technique | |
| JP2000163372A (ja) | トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体 | |
| CN112182103A (zh) | 一种分布式数据库及其实现跨节点事务强一致性的方法 | |
| EP0834127B1 (en) | Reduction of logging in distributed systems | |
| US6330686B1 (en) | Handling protected conversation messages across IMS restart in shared queues environment | |
| US20060089975A1 (en) | Online system recovery system, method and program | |
| CN119066078A (zh) | 分布式锁的处理方法和装置 | |
| US6092084A (en) | One system of a multisystem environment taking over log entries owned by another system | |
| CN112559496B (zh) | 一种分布式数据库事务原子性实现方法及装置 | |
| JPH11161530A (ja) | トランザクション処理システム | |
| JPH11265322A (ja) | バックアップ機能付オンラインデータベース情報処理システム | |
| US6539434B1 (en) | UOWE's retry process in shared queues environment | |
| JP2001306380A (ja) | 二相コミット回避方式およびそのプログラム記録媒体 |