JP5223457B2 - 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法 - Google Patents
分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法 Download PDFInfo
- Publication number
- JP5223457B2 JP5223457B2 JP2008134840A JP2008134840A JP5223457B2 JP 5223457 B2 JP5223457 B2 JP 5223457B2 JP 2008134840 A JP2008134840 A JP 2008134840A JP 2008134840 A JP2008134840 A JP 2008134840A JP 5223457 B2 JP5223457 B2 JP 5223457B2
- Authority
- JP
- Japan
- Prior art keywords
- log
- commit
- group
- log group
- participant
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Description
2相コミットプロトコルにおいては、分散トランザクションに関与する複数のコンポーネント(例えば、データベース管理装置)を、1つの調整者(coordinator)とその他の参加者(participants)に分ける。2相コミットプロトコルは、以下のようにして行われる。
1)調整者は、各参加者に「準備要求」を送る。
2)調整者は、準備要求を送った全ての参加者からの応答を待つ。
3)調整者から準備要求を受け取った参加者は、「準備完了ログ」を記憶装置に書き込む。そして、「準備完了」または「拒否」を調整者に回答する。この回答は、一般に、「投票」と呼ばれる。
1)調整者は、全ての参加者からの投票結果を基に、「コミット」か「アボート」を決定し、「コミットログ」を記憶装置に書き込む。この場合、調整者は、全ての参加者から「準備完了」の投票を受け取った場合にのみ、「コミット」を決定する。
2)調整者は、上記決定結果(コミットまたはアボート)を全ての参加者に送る。
3)参加者は、上記決定結果を受け取ると、調整者に「完了」を返し、「トランザクション完了ログ」を記憶装置に書き込む。
(1)トランザクションの最終結果の通知先(トランザクション完了ログ)
(2)トランザクションの最終結果の問い合せ先(準備完了ログ)
インダウト状態の期間中に参加者がダウンした場合、参加者がその障害から復旧したとき、ログ記憶装置には準備完了ログは書き込まれているがトランザクション完了ログ(コミットまたはアボートのログ)は書き込まれていない状態となっている。このため、参加者はブロックされる。このため、参加者は、ブロックされたトランザクションを解決すするために「終了プロトコル」を実行する。
終了プロトコルの一例においては、参加者は、調整者に再び投票を送る。参加者は、この投票を調整者に送るために、準備完了ログから「トランザクションの最終結果の通知先」を取得する。トランザクションの最終結果の通知先は、調整者の通信アドレス(例えば、IPアドレス)となっているからである。
ところで、分散トランザクションに関連する技術としては、2相コミット機能を持たないデータベース管理システムにおいて、擬似的な2相コミットを応用プログラムレベルで実現する発明が知られている(特許文献2参照)。
(1)複数のロググループを更新するような分散トランザクションの実行中に、その分散トランザクションに参加している、あるデータベース管理装置がダウンし、そのデータベース管理装置が管理していたロググループの管理権が別のデータベース管理装置に移動した場合、分散トランザクションの復旧処理を行うことができなかった。ここで、管理権とは、ロググループの記憶装置に対するデータの参照/更新の権利のことである。
参加者がインダウト状態となっている期間中に発生した場合、参加者のログ記憶装置に記録されている準備完了ログに格納されている「トランザクションの最終結果の問い合せ先」は無効となる。何故ならば、そのトランザクションの最終結果の問い合せ先は、上記ダウンした調整者の通信アドレスなので、参加者が、その通信アドレスを用いて、トランザクションの最終結果を問い合せても、トランザクションの最終結果を受け取ることはできないからである。このため、参加者はインダウト状態を解決することが不可能となり、分散トランザクションの復旧が行えなかった。
ザクション完了ログに格納されている「トランザクションの最終結果の通知先」は、そのダウンした参加者の通信アドレスとなっている。しかし、この通信アドレスは無効である。何故ならば、上記ダウンした参加者が管理していたロググループの管理権の移動先のデータベース管理装置の通信アドレスは、上記トランザクションの最終結果の通知先に格納されている通信アドレスではないからである。したがって、上記ロググループの管理権を引き継いだデータベース管理装置は、トランザクションの最終結果を知ることが不可能となり、インダウト状態を解決することができなくなる。
(2)上記(1)の問題を解決したとしても、次のような問題が残る。
各ロググループに一意の識別子を付与し、各ロググループの管理権を持つデータベース管理装置に関する情報を第1のテーブルに登録するステップと、
複数のロググループが参加する分散トランザクションの2相コミットにおいて調整者となるデータベース管理装置が管理するロググループの中で代表となるロググループ(グローバル代表ロググループ)のログ記憶装置に出力される準備完了ログ(第1の準備完了ログ)に、該分散トランザクションの参加者となっているデータベース管理装置が管理するロググループの識別子のリスト(参加ロググループリスト)を記憶するステップと、
前記2相コミットにおいて参加者となるデータベース管理装置が管理するロググループのログ記憶装置に出力する準備完了ログ(第2の準備完了ログ)に、前記グローバル代表ロググループの識別子を記憶するするステップと、
2相コミットのインダウト状態期間中に、前記グローバル代表ロググループの管理権が別のデータベース管理装置に移動した場合に、該グローバル代表ロググループの管理権を該別のデータベース管理装置が持つように、前記第1のテーブルを書き換えるステップと、
2相コミットのインダウト状態期間中に、前記グローバル代表ロググループ以外のロググループの管理権が別のデータベース管理装置に移動した場合に、該ロググループの管理権を該別のデータベース管理装置が持つように前記第1のテーブルを書き換えるステップと、
インダウト状態となっている参加者は、前記第2の準備完了ログに記憶されているグローバル代表ロググループの識別子と前記第1のテーブルを参照して、該グローバル代表ロググループの管理権を持つデータベース管理装置に、トランザクション結果の問合せを送信するステップと、
前記調整者は、インダウト状態となっている参加者からトランザクション結果の問合せを受信した場合に、前記第1の準備完了ログに記憶されているロググループの識別子のリストと前記第1のテーブルを参照して、前記参加者に該トランザクション結果を返信するステップとを備える。
前記2相コミットにおいて参加者となるデータベース管理装置が管理するロググループのログ記憶装置に出力する準備完了ログ(第2の準備完了ログ)に、前記グローバル代表ロググループの識別子を記憶するようにしたので、2相コミットのインダウト状態期間中にロググループの管理権が別のデータベース管理装置に移動する事態が発生しても、調整者と参加者は互いに通信可能となる。したがって、参加者はトランザクション結果の問合せを調整者に送信し、調整者は該参加者からのトランザクション結果の問合せに対して、トランザクション結果を返信することが可能となる。このため、2相コミットのインダウト期間中に、ロググループの管理権が別のデータベース管理装置に移動しても、インダウト状態となっているロググループを、インダウト状態から解決することができる。
[構成]
{システム構成}
図1と図2は、本発明を適用した実施形態の構成を示す図である。
図1は、本発明を適用した分散トランザクションシステムの一形態を示す図である。
図1に示す分散トランザクションシステム1は、クラスタ管理装置10、複数のデータベース管理装置100(100−1〜100−n)を備えている。クラスタ管理装置10は、各データベース管理装置100を管理する装置であり、各データベース管理装置100と通信回線により接続されている。クラスタ管理装置10は、各データベース管理装置100に起動や停止を指示する機能や、各データベース管理装置100の稼動状況を監視する機能を備えている。クラスタ管理装置10は、ダウンしたデータベース管理装置100を検知すると、そのダウンしたデータベース管理装置100を他のデータベース管理装置100に通知する。クラスタ管理装置10は、上記各データベース管理装置100に対する指示や通知を、例えば、メッセージにより行う。
、そのダウンしたデータベース管理装置100が管理していたロググループ200を知ると、次に、管理権の優先順位定義ファイル300を参照し、ダウンしたデータベース管理装置100が管理していたロググループ200を自分が管理する必要があるか調べる。この場合、自分が管理する必要があれば、ダウンしたデータベース管理装置100が管理していたロググループ200の管理を引き受ける。
管理権の優先順位定義ファイル300は、各ロググループGikに対するDBMSの管理権の優先順位を定義している表である。ここで、管理権とは、ロググループikを管理する権利である。管理権の優先順位定義ファイル300は、各ロググループikに割り当てられた識別子Gikと各データベース管理装置iに割り当てられた装置名DBMSiを利用して、各ロググループikに対するデータベース管理装置iの管理権の優先順位を定義している。図1に示す管理権の優先順位定義ファイル300は、ロググループ11に対するデータベース管理装置iの管理権の優先順位を、ロググループ11に割り当てられた識別子G11を用いて、DBMS1、DBMS2、・・・の順であると定義している。また、ロググループ21に対するデータベース管理装置iの管理権の優先順位を、ロググループ21に割り当てられた識別子G21を用いて、DBMS2、DBMS3、・・・の順であると定義している。管理権の優先順位定義ファイル300は、他のロググループikに対するデータベース管理装置iの管理権の優先順位についても、同様な手法により定義している。
備えるロググループ200の個数は皆同一となっているが、個々のデータベース管理装置100毎に、管理するロググループ200の個数が異なっていてもよい。これは、図2に示す分散トランザクションシステムについても同様である。
図2は、本発明を適用した分散トランザクションシステムの別の形態を示す図である。図2において、図1に示す構成要素と同一の構成要素には同じ符号を付与しており、これらの構成要素についての詳しい説明は省略する。
図3は、データベース管理装置がダウンした場合のロググループの管理権の移動によるシステム構成の変化を示す図である。尚、図3において、図1に示す構成要素と同じ構成要素には同じ符号を付与している。また、ロググループを簡略化して示している。
分散トランザクションシステム3の初期状態においては、データベース管理装置1はロググループ11(識別子G11)、12(識別子G12)を管理し、データベース管理装置2はロググループ21(識別子G21)、22(識別子G22)を管理している。また、データベース管理装置3は、ロググループ31(識別子G31)、32(識別子G32)を管理している。このロググループ11、12、21、22、31、32に対するデータベース管理装置1、2、3の管理情報は、不図示の管理権の優先順位定義ファイル300に定義されている。すなわち、分散トランザクションシステム3の初期状態においては、ロググループ11、12、21、22、31、32は、管理権の優先順位が最も高いデータベース管理装置iよって管理される。この管理状態は、データベース管理装置1〜3のいずれかがダウンするまで継続される。
本実施形態の分散トランザクションシステム1または2において、各データベース管理装置i(i=1〜n)は、図4に示すように、主記憶装置内に、トランザクション完了ログ出力先の優先順位定義表120を記憶している。このトランザクション完了ログ出力先の優先順位定義表120は、システム内の各ロググループik(i=1〜n、k=1〜m)の重要度を定義している表である。図4に示すトランザクション完了ログ出力先の優先順位定義表120においては、重要度の高いロググループikから順に、その識別子Gikが記述されている。このトランザクション完了ログ出力先の優先順位定義表120は、後述するように、調整者や参加者となったデータベース管理装置iが「ローカル代表ロググループ」などを決定するために用いられる。
次に、上記構成の分散トランザクションシステムの動作を説明する。
公知のように、分散トランザクションにおける2相コミット(2相コミットプロトコル)においては、データベース管理装置は1つの「調整者」とその他の「参加者」に分かれる。ソフトウェア処理の観点では、アプリケーションの接続先のプロセスを「調整者」と呼び、間接的な接続先のプロセスを「参加者」と呼ぶ。換言すると、分散トランザクションを開始するデータベース管理装置(のプロセス)が「調整者」であり、調整者からの要求を受けて該分散トランザクションに関与するデータベース管理装置(のプロセス)が「参加者」である。
調整者は、アプリケーションから要求待ちとなっているときに、アプリケーションから要求を受けると(ステップS11)、その要求がセッションの終了指示であるかどうかを判別する(ステップS12)。ステップS12において、セッションの終了指示でない(データ更新指示である)と判別すると(ステップS12、NO)ステップS13に進み、セッションの終了指示であると判別するとステップS24に進む。
ステップS23の処理が終了すると、ステップS12に戻る。
参加者は、調整者からの要求を受信する(ステップS31)。次に、その要求が「調整者との接続解除」であるか判断する(ステップS32)。そして、調整者との接続解除でない(データ更新である)と判断すると(ステップS32、NO)ステップS33に進み、調整者との接続解除であると判断すると(ステップS32、YES)ステップS39に進む。
図7に示す分散トランザクションシステム4は、図1に示す分散トランザクションシステム1において、データベース管理装置のクラスタが3台のデータベース管理装置1、2、3から構成される場合に該等している。データベース管理装置1は2つのロググループ11(識別子G11)、12(識別子G12)を備え、データベース管理装置2は1つのロググループ21(識別子G21)を備えている。データベース管理装置3は、2つのロググループ31(識別子G31)、32(識別子G32)を備えている。
るデータベース管理装置iの主記憶装置内に作成される。参加者リスト150に登録された各データベース管理装置i(DBMSi)には、各DBMSiで決定されたローカル代表ロググループが関連付けられる。
データベース管理装置1は、アプリケーション410からの要求を受け付けると、ロググループ11、12のデータを更新する(ステップS12〜S14)。そして、更新ロググループリスト130(130−1)に上記ロググループ11、12の識別子G11、G12を登録する(ステップS15)。そして、更新ログを、ロググループ11、12のログ記憶装置201(不図示)に出力する(ステップS16)。次に、トランザクション完了ログ出力先の優先順位定義表120を参照して、ロググループ11(G11)をローカル代表ロググループとして選択し、ロググループ11の識別子G11をローカル代表ロググループ記憶表140(140−1)に設定する(ステップS17)。また、参加者リスト150にデータベース管理装置2、3の装置名DBMS2、DBMS3を登録する(ステップS18)。そして、データベース管理装置2に対して、ロググループ21(G21)のデータ(更新対象のデータ)を指定した更新依頼パケット501を送信する(ステップS19)。また、データベース管理装置3に対して、更新依頼パケット502、503を送信する(ステップS19)。更新依頼パケット502にはロググループ31(G31)のデータが指定されており、更新依頼パケット503にはロググループ32(G32)のデータが指定されている。
図9は、本実施形態における2相コミット処理の全体の流れを示すフローチャートである。この2相コミット処理の全体の流れを説明する。
者でロググループの更新がある場合のコミット処理」を行い(ステップS55)、アプリケーションへ「コミット成功」を応答し(ステップS61)、本フローチャートの処理を終了する。ステップS55の処理の詳細は後述する。
{調整者で更新が有る場合の調整者の準備処理}
図10は、調整者で更新が有る場合の調整者の準備処理を示すフローチャートである。このフローチャートに示す処理は、図9のステップS53における調整者の処理に該等する。
S)、または、ステップS77において「準備処理失敗」と判断すると(ステップS77、YES)、本フローチャートの処理を異常終了する。この異常終了は、図9のフローチャートのステップS54において、「準備処理が不成功した」と判断される。
調整者は、まず、更新ロググループリストの現在のエントリが終端であるか判断し(ステップS81)、終端でないと判断すれば(ステップS81、NO)ステップS82に進み、終端であると判断すれば(ステップS81、YES)ステップS87に進む。
図11は、調整者でロググループの更新が有る場合の参加者の準備処理を示すフローチャートである。
03で取り出したロググループのログ記憶装置に出力する(ステップS105)。その後、該準備完了ログの出力処理に失敗したか判断し(ステップS106)、その出力処理が成功であったと判断すれば(ステップS106、NO)、ステップS107に進み、失敗したと判断すれば(ステップS106、YES)ステップS109に進む。
参加者は、ステップS109において、「トランザクション準備処理が行われた全てのロググループの識別子」と「該トランザクション準備処理の処理結果」を通信パケット(準備応答パケット)に設定し(ステップS109)、その準備応答パケットを調整者に送信し(ステップS110)、本フローチャートの処理を終了する。該準備応答パケットは、図10のステップS76において調整者に受信される。
図12は、図7に示す分散トランザクションシステムにおいて、2相コミットのトランザクション準備処理が行われた場合のシステムの構成状態を示す図である。図12において、図7と同一の構成要素には同じ符号を付与している。
図13は、調整者で更新がある場合の調整者のコミット処理を示すフローチャートである。
図12を参照すれば分かるように、2相コミットの準備処理終了後には、調整者の参加者リスト150には、分散トランザクションに参加(関与)した参加者の一覧が登録されており、各参加者における更新ロググループ(更新が行われたロググループ)の一覧も登録されている。したがって、調整者は、2相コミットのコミット処理において、参加者にコミットを依頼する場合には、参加者リスト150を参照する。また、調整者が管理するロググループの中で、分散トランザクションにおいて更新がなされたロググループは更新ロググループリスト130に登録されている。
調整者は、参加者リストの現在のエントリが終端であるか判断し(ステップS121)、参加者リストの終端でなければ(ステップS121、NO)ステップS122に進み、参加者リストの終端であればステップS128に進む。参加者リストの現在のエントリが終端であるということは、参加者リストに登録されている全ての参加者についてコミット依頼の送信が終了しているということを意味する。
ケット)を送信する。その後、該コミット依頼の送信に失敗したか判断し(ステップS123)、送信成功であると判断すれば(ステップS123、NO)ステップS124に進み、送信失敗であると判断すれば(ステップS123、YES)ステップS126に進む。
このようにして、調整者は、ステップS121において、参加者リストの現在のエントリが終端であると判断する(ステップS121、YES)まで、ステップS121〜S127の処理を繰り返す。以上の処理により、調整者は、参加者リストに登録されている全ての参加者に対してコミット依頼パケットを送信する。この場合、調整者は、コミット依頼パケットの送信に失敗するか、または、コミット処理に失敗した参加者については、その全ての更新ロググループをログ記憶装置内のコミット再送信リストに登録する。
調整者は、ステップS128において、更新ロググループリストの現在のエントリが終端であるか判断する。そして、更新ロググループリストの終端であれば(ステップS128、YES)ステップS136に進み、更新ロググループリストの終端でなければ(ステップS129、NO)ステップS129に進む。
ロググループを、主記憶装置内のコミット再送信リストに登録する。その後、ステップS135に進む。調整者は、ステップS135において、更新ロググループリストの現在のエントリを次のエントリに位置づける。そして、ステップS128に戻る。
以上の処理により、参加者の更新ロググループリストに登録されている全てのロググループについて「トランザクションコミット処理」と「コミットログの出力」が成功した場合には、調整者に前記コミット完了応答が返信される。それ以外の場合には、調整者に前記コミット失敗応答が返信される。また、更新ロググループリストに登録されているロググループの内、「トランザクションコミット処理」と「コミットログの出力」に成功したロググループは、インダウト状態リストから削除される。
図15は、図12に示すインダウト状態にある分散トランザクションシステムにおいて、上述した図13及び図14のフローチャートに示すコミット処理が行われた場合における、該分散トランザクションシステムの状態の遷移を示すシステム構成図(その1)である。図15は、分散トランザクションの全ての参加者(この場合、調整者も含む)がコミット処理に成功した場合の例を示している。図15において、図12に示す構成要素と同一の構成要素には同じ符号を付与している。
ミット処理を行い、そのコミット処理が成功すると、コミットログ230(230−21)をログ記憶装置201−21に格納する。また、インダウト状態リスト170−2からロググループ21の識別子G21を削除する。図15は、インダウト状態リスト170−2からこの識別子G21が削除された状態を示している。第1の参加者は、次に、「処理結果(成功)」が格納されたコミット応答パケット751を調整者に送信する。調整者は、このコミット応答パケット751を受信すると、それに格納されている「処理結果」を参照して、第1の参加者がコミット処理に成功したと判断する。
2がコミット処理に失敗したと判断し(ステップS125、YES)、データベース管理装置2の全ての更新ロググループ(G21)を主記憶装置内のコミット再送信リスト170に登録する(ステップS126)。このコミット再送信リスト170は、コミット処理が完了しなかった参加者のロググループを記憶するリストである。このような参加者には、データベース管理装置iがダウン(障害)から復旧した場合に、分散トランザクションが「コミット」で終了したこと(2相コミットの投票結果)を通知する必要がある。コミット再送信リスト170は、このようなコミット処理が失敗した参加者の全更新ロググループを記憶しておくためのリストである。調整者は、主記憶装置内のコミット再送信リスト170を、最終的に、グローバル代表ロググループ(G11)のロググループ11のログ記憶装置201に書き込む(ステップS137)。したがって、調整者のコミット処理が終了した場合、コミット処理に失敗した参加者の全更新ロググループに関する情報は、グローバル代表ロググループのロググループのログ記憶装置201にコミット再送信リスト240として保存される。尚、図16は参加者であるデータベース管理装置においてコミット処理に失敗した例であるが、調整者の更新ロググループのコミット処理に失敗する場合もありうる。この場合には、グローバル代表ロググループのロググループのコミット再送信リストに、そのコミット処理に失敗した更新ロググループの識別子が記録される。
図17は、図12に示すように、参加者がインダウト状態であるときに、調整者が障害によりダウンした場合の参加者の処理を示すフローチャートである。参加者は、クラスタ管理装置10から「調整者となっているデータベース管理装置iがダウンした旨」を通知されることによって、図17のフローチャートの処理を開始する。
ったロググループをインダウト状態リストから削除する。そして、インダウト状態リストの現在のエントリを次のエントリに位置付け(ステップS181)、ステップS171に戻る。
2相コミット中に、その2相コミットに関係するデータベース管理装置がダウンした場合、そのデータベース管理装置が管理していたロググループの管理は他の正常動作しているデータベース管理装置に委譲される。この場合、ダウンしたデータベース管理装置が調整者であった場合には、グローバル代表ロググループの管理権が他のデータベース管理装置に移る。また、調整者がグローバル代表ロググループ以外のロググループも管理していた場合には、そのロググループの管理権も他のデータベース管理装置に移ることになる。また、ダウンしたデータベース管理装置が参加者であった場合には、そのデータベース管理装置が管理していたロググループの管理権が、他のデータベース管理装置に移ることになるが、この場合は、グローバル代表ロググループの管理権の移動は無い。
図18は、グローバル代表ロググループ以外のロググループの管理権を取得したデータベース管理装置(DBMS)のトランザクション解決処理を示すフローチャートである。
データベース管理装置は、管理権を取得したロググループのログ記憶装置に「準備完了ログ」が格納されているか判断し(ステップS191)、準備完了ログだけが格納されている、つまり、管理権を取得したロググループに対して準備完了ログだけが出力されていれば(ステップS191、YES)、インダウト状態リストにそのロググループの識別子を登録し(ステップS192)、ステップS193に進む。一方、データベース管理装置は、ステップS191において、準備完了ログだけでなく2相コミットの投票結果に関するログ(コミットログまたはロールバックログ)もログ記憶装置に格納されていれば(ステップS191、NO)、本フローチャートの処理を終了する。
図19は、グローバル代表ロググループの管理権を取得したデータベース管理装置のトランザクション解決処理を示すフローチャートである。このグローバル代表ロググループの管理権を取得したデータベース管理装置は、元のグローバル代表ロググループの管理権の取得者である調整者に代わって、調整者の役割を果たす必要がある。図13のフローチャートを参照して説明したように、調整者は、コミット依頼を再送信すべきロググループに関する情報を、グローバル代表ロググループのログ記憶装置にコミット再送信リストとして記録している。このコミット再送信リストには、調整者が管理していたロググループの中でコミットが完了していない(コミット処理とコミットログ出力の両方が終了していないロググループ)ロググループも含まれている。以上を前提にして、図19のフローチャートを説明する。
以上のようにして、データベース管理装置は、ステップS215でコミット再送信リストの現在のエントリが終端であると判断するまで(ステップS215、YES)、ステップS215〜S222の処理を繰り返す。
図20は、調整者(データベース管理装置1)で更新が有る場合に、調整者がダウンした場合のシステム状況の一例を示す図である。図20において、図15に示す構成要素と同じ構成要素には同一の符号を付与している。
調整者で更新がない場合、すなわち、調整者が分散トランザクションにおいて更新すべきロググループ(更新ロググループ)を管理していない場合には、分散トランザクションに参加する参加者の中から一人の「代表参加者」を選ぶ。この場合、代表参加者以外の参加者を「一般参加者」と呼ぶ。代表参加者は、調整者が決定する。代表参加者は、通常の2相コミットにおける調整者の機能の一部を代行する。一般に分散トランザクションの最終結果をログに記録する責務を担うプロセスは、2相コミットの各フェーズの最後にログ出力を行うため、代表参加者は、第1フェーズの最後に準備処理を、第2フェーズの最後にコミット処理を行う。
図21は、調整者で更新が無い場合の調整者の準備処理を示すフローチャートである。
この準備処理において、調整者は、まず、代表参加者を決定し、その代表参加者を主記憶装置内に記憶する(ステップS371)。この決定は、「トランザクション完了ログ出力先の優先順位定義表」と「ロググループ偏在表」を参照することにより行われる。調整者は、まず、トランザクション完了ログ出力先の優先順位定義表を参照し、その中で最も優先順位が高く設定されているロググループ(の識別子Gik)を取得する。次に、ロググループ偏在表を参照して、その取得したロググループの管理権を有するデータベース管理装置i(DBMSi)を取得し、そのデータベース管理装置iを「代表参加者」に決定する。尚、調整者で更新が無い場合の分散トランザクションシステムの「ロググループ偏在表及びロググループ偏在表」と「ロググループ偏在表」の内容は、上述した調整者で更新が有る場合の分散トランザクションシステムの「トランザクション完了ログ出力先の優先順位定義表ロググループ偏在表」と「ロググループ偏在表」の内容とは異なっている。これは、前者の場合、調整者が更新されるロググループ(更新ロググループ)を備えていないからである。
該一般参加者のDBMSiが登録されているエントリに関連付ける。このようにして、参加者リストには、準備処理に成功した一般参加者の更新ロググループが登録される。
図22は、調整者で更新が無い場合の代表参加者の準備処理を示すフローチャートである。
この準備処理において、代表参加者は、まず、調整者が送信した準備依頼(準備依頼パケット)を受信する(ステップS401)。次に、ローカル代表ロググループをグローバル代表ロググループ表に設定し、該準備依頼パケットに設定されている代表参加者の指定(代表参加者フラグ)を主記憶装置に記憶する(ステップS402)。
図23は、上述した図21及び図22のフローチャートの処理が実行された場合の分散トランザクションシステムの状況の一例を示す図である。図23において、図8に示す分散トランザクションシステム5が備える構成要素と同一の構成要素には同じ符号を付与している。
調整者(データベース管理装置1)は、主記憶装置内に代表参加者のDBMSiを記憶する領域である代表参加者記憶表190を備える。また、グローバル代表ロググループ表160も主記憶装置内に有している。
代表参加者(データベース管理装置2)は、主記憶装置内に自装置が「代表参加者」に指定されたことを記憶するためのフラグである代表参加者フラグ1010を備える。また、全一般参加者の全更新ロググループリスト1020を備える。この全一般参加者の全更新ロググループリスト1020には、調整者から通知される全ての一般参加者の全ての更新ロググループが登録される。また、グローバル代表ロググループ表160を主記憶装置内に有している。代表参加者に管理されるロググループ21内には準備完了ログ220−21が記録されている。ロググループ21は、グローバル代表ロググループであり、その識別子G21が上記グローバル代表ロググループ表160に設定されている。
図23を参照しながら、上述した図21と図22のフローチャートに示す処理の概要を説明する。
一般参加者(データベース管理装置3)は、該準備応答パケット1602を受信すると、そのパケット1602に設定されているグローバル代表ロググループ21の識別子G21を、主記憶装置内のグローバル代表ロググループ表160−3に記憶する。そして、更新ロググループリスト130−3に識別子が登録されているロググループ31、32についてトランザクション準備処理を行う。そして、該トランザクション準備処理に成功すると、ロググループ31の準備完了ログ220−31をロググループ31のログ記憶装置に出力・記録する。また、ロググループ32の準備完了ログ220−32をロググループ32のログ記憶装置に出力・記録する。準備完了ログ220−31、220−32には、2相コミットの投票結果の問合せ先情報として、グローバル代表ロググループ21の識別子G21が設定されている。一般参加者は、該準備完了ログ220−31、220−32の出力処理に成功すると、トランザクション準備処理の処理結果と更新ロググループ31、32の識別子G31、G32が設定された準備応答パケット1652を調整者に送信する。
図24は、調整者で更新が無い場合の調整者のコミット処理を示すフローチャートである。
調整者は、参加者リストの現在のエントリが終端であるか判断し(ステップS431)、終端であると判断すれば(ステップS431、YES)ステップS439に進み、終端でないと判断すれば(ステップS431、NO)ステップS432に進む。
このようにして、調整者は、ステップS431において、参加者リストの現在のエントリが終端であると判断するまで、ステップS431〜S438の処理を繰り返す。以上の処理により、調整者は、一般参加者に対してコミット依頼(コミット依頼パケット)を送信する。そして、一般参加者に対する該コミット依頼の送信に失敗するか、または、該コミット依頼に対する一般参加者からの応答(コミット応答パケット)に設定された処理結果に基づき、該一般参加者がコミット処理に失敗したと判断した場合には、該一般参加者の全更新ロググループのリストを主記憶装置内に記憶する。
図25は、調整者で更新が無い場合の代表参加者のコミット処理を示すフローチャートである。
代表参加者は、調整者から通信パケット(コミット依頼パケット)を受信すると、該コミット依頼パケットに設定されている「コミットに失敗したロググループ(更新ロググループ)のリスト」を取得する(ステップS451)。そして、その取得したロググループのリストを、主記憶装置内にコミット再送信リストとして記憶する(ステップS452)。この場合、上記コミット依頼パケットにロググループが設定されていなければ、該コミット再送信リストは“空”となる。
を次のエントリに位置づけ、ステップS453に戻る。
このようにして、代表参加者は、ステップS453において、更新ロググループリストの現在のエントリが終端であると判断するまで、ステップS453〜S460の処理を繰り返す。
図26は、調整者で更新が無い分散トランザクションシステムにおいてのコミット処理が行われた場合のシステム状況(その1)を示す図である。図26において、図23の分散トランザクションシステムが備える構成要素と同一の構成要素には同じ符号を付与している。
置内の全一般参加者の全更新ロググループリスト1020を削除して、「コミット完了応答」であるコミット応答パケット1751を調整者に送信する。調整者は、そのコミット応答パケット1751を受信する。
図27は、調整者で更新が無い分散トランザクションシステムにおいてのコミット処理が行われた場合のシステム状況(その2)を示す図である。図27において、図23の分散トランザクションシステムが備える構成要素と同一の構成要素には同じ符号を付与している。
図27に示すシステムは、調整者(データベース管理装置1)から一般参加者(データベース管理装置3)にコミット依頼パケット1712が送信され、一般参加者はそのパケット1712を受信したが、ロググループ31のログ記憶装置にコミットログを出力する前にダウンした例を示している。
図28は、調整者で更新が無い分散トランザクションにおいて、調整者がダウンした時の一般参加者の処理を示すフローチャートである。
調整者で更新が無い分散トランザクションの2相コミットにおいて調整者がダウンした場合には、一般参加者は、インダウト状態となっている更新ロググループのインダウト状態を解決するために、代表参加者にトランザクション状態(トランザクション結果)を問い合わせ、代表参加者からコミットまたはロールバックの指示を受ける必要がある。
一般参加者は、インダウト状態リストの現在のエントリが終端であるか判断し(ステップS481)、終端であれば(ステップS481、YES)ステップS492に進み、終
端でなければ(ステップS481、NO)ステップS482に進む。
一般参加者は、ステップS492において調整者との接続環境を解除し、本フローチャートの処理を終了する。
図29は、調整者で更新が無い分散トランザクションにおいて、調整者がダウンした時の代表参加者の処理を示すフローチャートである。
調整者で更新が無い分散トランザクションの2相コミットにおいて調整者がダウンした場合には、代表参加者は、調整者に代わって、一般参加者に対して「コミット依頼」または「ロールバック依頼」を送信する必要がある。また、自装置が管理する更新ロググループについて、「コミット処理」または「ロールバック処理」を行う必要がある。代表参加者は、グローバル代表ロググループのログ記憶装置に「準備完了ログ」が記録されていれ
ば「コミット」を、準備完了ログが記録されていなければ「ロールバック」を決定する。
代表参加者は、全一般参加者の全更新ロググループリストの現在のエントリが終端であるか判断し(ステップS501)、終端であると判断すれば(ステップS501、YES)ステップS512に進み、終端でないと判断すれば(ステップS501、NO)ステップS502に進む。
このようにして、代表参加者は、ステップS501において、全一般参加者の全更新ロググループリストの現在のエントリが終端であると判断するまで、ステップS501〜S511の処理を繰り返す。以上の処理により、代表参加者の全一般参加者の全更新ロググループリストに登録されている全てのロググループについて「コミット」または「ロールバック」の指示が決定され、各ロググループの管理権を持つ一般参加者に対して「コミット依頼」または「ロールバック依頼」が送信される。そして、コミット依頼を受信した一般参加者が指定されたロググループのコミットに成功した場合には、そのロググループが全一般参加者の全更新ロググループリストから削除される。該ロググループはコミットが完了し、インダウト状態が解決されたからである。また、ロールバック依頼を送信した一般参加者から応答を受信した場合にも、該ロールバック依頼で指定したロググループを、全一般参加者の全更新ロググループリストから削除する。
このようにして、代表参加者は、ステップS513において、代表参加者の更新ロググループの現在のエントリが終端であると判断するまで、ステップS5512〜S517の処理を繰り返す。以上の処理により、代表参加者の更新ロググループリストに登録されている代表ロググループ以外のロググループ(更新ロググループ)について、トランザクションコミット処理とコミットログの出力が行われる。これにより、これらのロググループはコミットされる。つまり、インダウト状態が解決される。
の更新ロググループのコミットが完了する。
図30は、調整者で更新が無い場合に、調整者がダウンした場合のシステム状況を示す図である。図30において、図26の分散トランザクションシステムが備える構成要素と同一の構成要素には同じ符号を付与している。
−21が記録されていることを確認すると、代表参加者の更新ロググループリスト130−21を参照して、グローバル代表ロググループ21のトランザクションコミット処理を行い、グローバル代表ロググループ21のログ記憶装置にコミットログ230−21を出力・記録する。
図31は、クラスタ管理装置がシステム内の、あるデータベース管理装置のダウンを検知した場合の他のデータベース管理装置の動作を示すフローチャートである。
図31のフローチャートを説明する。
図32は、調整者(データベース管理装置1)、第1の参加者(データベース管理装置2)及び第2の参加者(データベース管理装置3)を備える分散トランザクションシステムにおいて、調整者がダウンした場合のシステム復旧処理を説明するシステム構成図である。図32に示すシステム状況は図20に類似しており、図20に示す構成要素と同一の構成要素には同じ符号を付与している。
タベース管理装置1(調整者)のダウンを検知すると、データベース管理装置1の装置名「DBMS1」が設定されたダウン通知2002を、データベース管理装置2(第1の参加者)とデータベース管理装置3(第2の参加者)に送信する。
図33は、グローバル代表ロググループのトランザクション復旧プロセス(図32のトランザクション復旧プロセス2112に該当)の処理を示すフローチャートである。
図34は、グローバル代表ロググループ以外のロググループのトランザクション復旧プロセスの処理を示すフローチャートである。
プをロールバックし(ステップS639)、ステップS642に進む。
図35は、インダウト状態復旧プロセスの処理を示すフローチャートである。
インダウト状態復旧プロセスは、まず、終了指示であるか判断し(ステップS651)、終了指示であると判断すれば、本フローチャートの処理を終了する。一方、終了指示でないと判断すれば(ステップS651、NO)、コミット再送信リストの現在のエントリが終端であるか、または、コミット再送信リストが無いか判断する(ステップS652)。そして、コミット再送信リストの終端であると判断するか、または、コミット再送信リストが無いと判断すると(ステップS652、YES)ステップS659に進み、コミット再送信リストの終端でないと判断すると(ステップS652、NO)ステップS653に進む。
このようして、インダウト状態復旧プロセスは、ステップS652において、コミット再送信リストの現在のエントリが終端となるまで、ステップS652〜S658の処理を繰り返す。以上の処理により、コミット再送信リストに登録されている全てのロググループについて、コミット依頼が、ロググループの管理権を持つデータベース管理装置に送信される。そして、コミットが成功したロググループについては、コミット再送信リストからそのエントリが削除される。また、コミットに失敗したロググループについては、コミット再送信リストのそのエントリは残ったままとまる。
(1)インダウト状態であるときに、調整者のダウンを、クラスタ管理装置からの通知により検知した参加者からのトランザクション結果問合せ
(2)参加者ダウンによって、コミット処理の失敗を検知した調整者からのコミット依頼(3)他のデータベース管理装置(DBMS)のトランザクション復旧プロセスからのトランザクション結果問合せ
(4)他のデータベース管理装置(DBMS)のトランザクション復旧プロセスからのコ
ミット依頼
(5)他のデータベース管理装置(DBMS)のインダウト状態復旧プロセスからのトランザクション結果問合せ
(6)他のデータベース管理装置(DBMS)のインダウト状態復旧プロセスからのコミット依頼
ググループのトランザクション復旧プロセスからは「インダウト状態の復旧」を依頼される。グローバル代表ロググループのトランザクション復旧プロセスは、グローバル代表ロググループの管理権が別のデータベース管理装置(DBMS)に移動するたびに生成・起動される。また、グローバル代表ロググループ以外のロググループのトランザクション復旧プロセスは、グローバル代表ロググループ以外のロググループの管理権が別のデータベース管理装置(DBMS)に移動するたびに生成・起動される。したがって、インダウト状態復旧プロセスは、システム内で、バックグラウンドで自動的に実行されながら、ステップS648において終了指示があったと判断するまで、システム内に常駐し、ステップS648〜S679の処理を繰り返し実行し続け、コミット再送信リスト及びインダウト状態リストの状態を常時監視する。また、参加者や調整者、及び他のデータベース管理装置(DBMS)からの「トランザクション結果問合せ」や「コミット依頼」に常時対応する。
ープ12の識別子G12が登録されていると判断すると、グローバル代表ロググループの管理権を持つデータベース管理装置(この場合、データベース管理装置2)へトランザクションの最終結果を問い合わせる。そして、データベース管理装置2から「コミット指示」を受信すると、ロググループ12をコミットし、ロググループ12のログ記憶装置に「コミットログ(不図示)」を出力・記録する。また、「ロールバック指示」を受信すると、ロググループ12をロールバックし、ロググループ12のログ記憶装置に「ロールバックログ(不図示)」を出力・記録する。
尚、上記実施形態では、主に、トランザクション結果が“コミット”である場合について説明したが、本発明は、トランザクション結果が“ロールバック”である場合も、コミットの場合とほぼ同様にして実施することが可能である。また、分散トランザクションシステムの構成例として、データベース管理装置を3台備えるシステムを取上げて説明したが、本発明は、4台以上のデータベース管理装置を備える分散トランザクションシステム1にも適用可能である。
(付記1)
データを記憶するデータ記憶装置と該データのログを記憶するログ記憶装置のパッケージであるロググループを備え、該ロググループの管理権がシステム内のデータベース管理装置間で移動可能な分散トランザクションシステムの2相コミットプロトコルにおけるインダウト状態の解決方法であって、
各ロググループに一意の識別子を付与し、各ロググループの管理権を持つデータベース管理装置に関する情報を第1のテーブルに登録するステップと、
複数のロググループが参加する分散トランザクションの2相コミットにおいて調整者となるデータベース管理装置が管理するロググループの中で代表となるロググループ(グローバル代表ロググループ)のログ記憶装置に出力される準備完了ログ(第1の準備完了ログ)に、該分散トランザクションの参加者となっているデータベース管理装置が管理するロググループの識別子のリスト(参加ロググループリスト)を記憶するステップと、
前記2相コミットにおいて参加者となるデータベース管理装置が管理するロググループのログ記憶装置に出力する準備完了ログ(第2の準備完了ログ)に、前記グローバル代表ロググループの識別子を記憶するステップと、
2相コミットのインダウト状態期間中に、前記グローバル代表ロググループの管理権が別のデータベース管理装置に移動した場合に、該グローバル代表ロググループの管理権を該別のデータベース管理装置が持つように、前記第1のテーブルを書き換えるステップと、
2相コミットのインダウト状態期間中に、前記グローバル代表ロググループ以外のロググループの管理権が別のデータベース管理装置に移動した場合に、該ロググループの管理権を該別のデータベース管理装置が持つように書き換えるステップと、
インダウト状態となっている参加者は、前記第2の準備完了ログに記憶されているグローバル代表ロググループの識別子と前記第1のテーブルを参照して、該グローバル代表ロググループの管理権を持つデータベース管理装置に、トランザクション結果の問合せを送信するステップと、
前記調整者は、インダウト状態となっている参加者からトランザクション結果の問合せを受信した場合に、前記第1の準備完了ログに記憶されているロググループの識別子のリストと前記第1のテーブルを参照して、前記参加者に該トランザクション結果を返信するステップと、
を備えることを特徴とする分散トランザクションの2相コミットにおけるインダウト状態の解決方法。
(付記2)
付記1記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者は、
前記第1の準備完了ログに記憶されている識別子のリストと前記第1のテーブルを基に、該識別子とコミット指示またはロールバック指示が設定された通知を、該識別子を有するロググループを管理している参加者に送信し、該参加者に該ロググループのコミットまたはロールバックを依頼するステップと、
前記コミット依頼通知を受信した参加者がコミットに失敗した場合には、該参加者が管理している全ての更新ロググループの識別子のリスト(コミット再送信リスト)を記憶するステップを備え、
参加者は、調整者から前記コミットまたはロールバック依頼の通知を受信した場合には、前記第1のテーブルを参照して、該依頼に対する処理結果の応答を、該調整者に送信するステップを備える。
(付記3)
付記1記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者が分散トランザクションにおいて自装置のロググループのデータを更新する場合の2相コミットの準備処理において、
調整者は、
参加者に対して、前記グローバル代表ロググループの識別子が設定された準備処理依頼の通知を送信するステップと、
該準備処理依頼通知を送信した参加者から準備処理成功の応答を受信した場合には、該応答から該参加者が更新したロググループの識別子を取得し、該識別子を該参加者に関連付けて記憶するステップと、
調整者が管理するグローバル代表ロググループ以外のロググループについてトランザクション準備処理を行い、グローバル代表ロググループの識別子が設定された準備完了ログを、該ロググループのログ記憶装置に出力するステップと、
を備え、
参加者は、
調整者から前記準備依頼の通知を受信すると、前記準備依頼通知から前記グローバル代表ロググループを取り出すステップと、
自装置が管理するロググループの準備処理を行い、該準備処理に成功したロググループのログ記憶装置には、前記取り出したグローバル代表ロググループの識別子を設定した準備完了ログを、自装置が管理しているロググループのログ記憶装置に出力するステップと
、
該準備完了ログを前記ログ記憶装置に出力する処理に成功した場合には、前記準備処理に成功したロググループの識別子をインダウト状態リストに登録し、調整者に準備成功した全ロググループ識別子を送信するステップを備える。
(付記4)
付記3記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
前記準備処理終了後の2相コミットのコミット処理において、
調整者は、
参加者にコミット依頼を送信するステップと、
該コミット依頼を送信した参加者のコミットが失敗したと判断した場合には、該参加者が管理している全ての更新ロググループの識別子を、前記グローバル代表ロググループのログ記憶装置に出力するステップと、
自装置が管理するグローバル代表ロググループ以外の更新ロググループのコミット処理を実行するステップと、
コミットに成功した更新ロググループについては、その更新ロググループのログ記憶装置にコミットログを出力し、コミットに失敗した更新ロググループについては、その更新ロググループの識別子をグローバル代表ロググループのログ記憶装置に出力するステップと、
グローバル代表ロググループのコミット処理を実行するステップと、
該グローバル代表ロググループのコミットログを、該グローバル代表ロググループのログ記憶装置に出力するステップを備え、
参加者は、
調整者から前記コミット依頼をすると、自装置が管理する全ての更新ロググループについてコミット処理を実行するステップと、
コミットに成功した更新ロググループについては、その識別子を前記インダウト状態リストから削除し、コミット完了の応答を調整者に送信するステップと、
コミットに失敗した更新ロググループについては、コミット失敗の応答を調整者に送信するステップを備える。
(付記5)
付記3記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者がダウンした場合、
参加者は、
前記インダウト状態リストに更新ロググループの識別子が登録されている場合には、グローバル代表ロググループの管理権を持つ参加者に対して、トランザクション結果の問合せ通知を送信するステップと、
該トランザクション結果の問合せに対する調整者の応答を受信し、該応答がコミット指示であれば、前記インダウト状態リストに登録されている更新ロググループについてコミット処理と該更新ロググループのログ記憶装置へのコミットログの出力を行い、該応答がロールバック指示であれば、前記インダウト状態リストに登録されている更新ロググループについてロールバック処理該更新ロググループのログ記憶装置へのロールバックログの出力を行うステップと、
を備える。
(付記6)
付記1記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者が分散トランザクションにおいて自装置のロググループのデータを更新しない場合の2相コミットの準備処理において、
調整者は
参加者の中から代表参加者を決定するステップと、
該代表参加者が管理するロググループの中からグローバル代表ロググループを決定するステップと、
代表参加者以外の参加者である一般参加者に準備処理依頼の通知を送信する際に、該通知に前記グローバル代表ロググループの識別子を設定するステップと、
代表参加者に準備処理依頼の通知を送信する際に、該通知に全ての前記一般参加者が管理する全てのロググループの識別子と、代表参加者に決定された旨を示す情報を設定するステップを備え、
一般参加者は、
調整者から前記準備依頼の通知を受信すると、前記準備依頼通知から前記グローバル代表ロググループの識別子を取得するステップと、
自装置が管理するロググループの準備処理を行い、該準備処理に成功したロググループについては、そのログ記憶装置に、前記取得したグローバル代表ロググループの識別子を設定した準備完了ログを出力するステップと、
該準備完了ログを前記ログ記憶装置に出力する処理に成功した場合には、前記準備処理に成功したロググループの識別子をインダウト状態リストに登録するステップを備え、
代表参加者は、
前記調整者から前記準備依頼通知を受信すると、該通知から前記全ての一般参加者の全ロググループの識別子を取得・記憶するステップと、
自装置が管理するグローバル代表ロググループ以外のロググループの準備処理を行い、該準備処理に成功したロググループについては、そのログ記憶装置に、前記取得したグローバル代表ロググループの識別子を設定した準備完了ログを出力するステップと、
グローバル代表ロググループの準備処理を行い、該準備処理に成功した場合には、グローバル代表ロググループのログ記憶装置に、前記取得した全ての一般参加者の全ロググループの識別子を設定した準備完了ログを出力し、調整者に準備成功した全ロググループ識別子を送信するステップと、
調整者に対して、上記準備処理の結果を通知する応答を送信するステップを備える。
(付記7)
付記6記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
前記準備処理終了後の2相コミットのコミット処理において、
調整者は
一般参加者にコミット依頼の通知を送信するステップと、
該コミット依頼の通知を送信した一般参加者がコミットに失敗したか判断するステップと、
コミットに失敗した全ての一般参加者の全更新ロググループの識別子を設定したコミット依頼の通知を、代表参加者に送信するステップを備え、
一般参加者は、
調整者から前記コミット依頼の通知を受信すると、自装置が管理する全ての更新ロググループについてコミット処理を実行するステップと、
コミットに成功した更新ロググループについては、その識別子を前記インダウト状態リストから削除し、コミット完了の応答を調整者に送信するステップと、
コミットに失敗した更新ロググループについては、コミット失敗の応答を調整者に送信するステップを備え、
代表参加者は、
調整者から前記コミット依頼通知を受信すると、そのコミット依頼通知に設定されてい
る全ての識別子を取得するステップと、
該取得した全ての識別子を、グローバル代表ロググループのログ記憶装置に出力するステップと、
自装置の全ての更新ロググループについてコミット処理を実行し、コミットに失敗した更新ロググループの識別子の一覧を、グローバル代表ロググループのログ記憶装置にコミット再送信リストとして記憶するステップと、
グローバル代表ロググループのコミット処理を実行し、そのコミットログをグローバル代表ロググループのログ記憶装置に出力するステップと、
調整者に、コミット完了の応答を送信するステップを備える。
(付記8)
付記6記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者がダウンした場合、
一般参加者は、
前記インダウト状態リストに更新ロググループの識別子が登録されている場合には、グローバル代表ロググループの管理権を持つ参加者に対して、トランザクション結果の問合せ通知を送信するステップと、
該トランザクション結果の問合せに対する調整者の応答を受信し、該応答がコミット指示であれば、前記インダウト状態リストに登録されている更新ロググループについてコミット処理と該更新ロググループのログ記憶装置へのコミットログの出力を行い、該応答がロールバック指示であれば、前記インダウト状態リストに登録されている更新ロググループについてロールバック処理該更新ロググループのログ記憶装置へのロールバックログの出力を行うステップと、
を備える。
(付記9)
付記6記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者がダウンした場合、
代表参加者は、
グローバル代表ロググループが準備完了ログ後の状態である場合には、更新ロググループの管理権を持つ一般参加者に対してコミット依頼を送信するステップと、
グローバル代表ロググループが準備完了後の状態でない場合には、更新ロググループの管理権を持つ一般参加者にロールバック依頼を送信するステップと、
グローバル代表ロググループが準備完了後の状態であるときは、代表参加者の更新ロググループのコミット処理とコミットログの該更新ロググループのログ記憶装置への出力を行うステップと、
グローバル代表ロググループが準備完了後の状態の状態でないときは、代表参加者の更新ロググループについてロールバック処理とロールバックログの該更新ロググループのログ記憶装置に対する出力を行うステップと、
を備える。
(付記10)
付記3または6記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
グローバル代表ロググループ以外のロググループの管理権を取得したデータベース管理装置は、
前記管理権を取得したロググループのログ記憶装置に準備完了ログだけが記憶されているか判断し、該準備完了ログだけが記憶されていれば、該ロググループを前記インダウト
状態リストに登録するステップと、
前記準備完了ログからグローバル代表ロググループを取得し、該グローバル代表ロググループの管理権を持つデータベース管理装置に対してトランザクション結果の問合せを送信するステップと、
該グローバル代表ロググループの管理権を持つデータベース管理装置から該トランザクション結果の問合せに対する応答を受信し、その応答がコミット指示であれば、前記管理権を取得したロググループについてコミット処理と該ロググループのログ記憶装置へのコミットログの出力を行い、上記応答がロールバック指示であれば、前記管理権を取得したロググループについてロールバック処理と該ロググループのログ記憶装置へのロールバックログの出力を行うステップと、
前記管理権を取得したロググループを前記インダウト状態リストから削除するステップと、
備える。
(付記11)
付記3また6記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
グローバル代表ロググループの管理権を取得したデータベース管理装置は、
該グローバル代表ロググループのログ記憶装置にコミット再送信リストが存在すれば、そのコミット再送信リストをログ記憶装置から読み込み・記憶するステップと、
該グローバル代表ロググループのログ記憶装置にコミット再送信リストが存在せず、かつ、準備完了ログのみが記憶されていれば、該準備完了ログに設定されている識別子を取得して、該識別子の一覧をコミット再送信リストとして記憶するステップと、
インダウト状態リストから削除するステップと、
を備える。
(付記12)
付記1記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
各データベース管理装置は、
他のデータベース管理装置がダウンしたこと旨の通知を受信するステップと、
前記第1のテーブルを参照して、該ダウンしたデータベース管理装置が管理していたロググループの識別子を取得するステップと、
該取得したロググループの識別子と該ロググループの管理権を持つデータ記憶装置の優先順位を基に、該ダウンしたデータ記憶装置は管理していたロググループの中から自装置が引き継ぐべきロググループを特定するステップと、
前記ダウンしたデータ記憶装置が管理していたロググループの管理権を引き継いだ場合には、該ロググループを復旧するステップと、
を備える。
(付記13)
付記1記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者となるデータベース管理装置は、参加者となるデータベース管理装置の識別情報が登録されたリスト(参加者リスト)を備える。
100、100´ データベース管理装置
110、110´、110A ロググループ偏在表
120 トランザクション完了ログ出力先の優先順位定義表
130 更新ロググループリスト
140 ローカル代表ロググループ記憶表
150 参加者リスト
170 インダウト状態リスト
180 コミット再送信リスト
190 代表参加者記憶表
1010 代表参加者フラグ
1020 全一般参加者の全更新ロググループリスト
2010 トランザクション復旧同期タイム時間
2111 インダウト状態復旧プロセス
2112 トランザクション復旧プロセス(グローバル代表ロググループのトランザクション復旧プロセス)
2113 トランザクション復旧プロセス(グローバル代表ロググループ以外のロググループのトランザクション復旧プロセス)
200 ロググループ
201 ログ記憶装置
220 準備完了ログ
230 コミットログ
202 データ記憶装置
300、300´ 管理権の優先順位定義ファイル
310 トランザクション完了ログ出力先の優先順位定義ファイル
320 トランザクション復旧同期タイム時間設定ファイル
501〜503、601、602 更新依頼パケット
551〜553、651、652 更新応答パケット
701、702、1711、1712、2001、2002 コミット依頼パケット
751、752、1751、1752、1761、2051、2052 コミット応答パケット
1601、1602 準備依頼パケット
1651、1652 準備完了応答パケット
1701、1801、1802 トランザクション結果の問合せ依頼パケット
1751、1851、1852 コミット指示の応答パケット
2002 DBMS1ダウン通知
Claims (7)
- データを記憶するデータ記憶装置と該データのログを記憶するログ記憶装置のパッケージであるロググループを備え、該ロググループの管理権がシステム内のデータベース管理装置間で移動可能な分散トランザクションシステムの2相コミットプロトコルにおけるインダウト状態の解決方法であって、
各ロググループに一意の識別子を付与し、各ロググループの管理権を持つデータベース管理装置に関する情報を第1のテーブルに登録するステップと、
複数のロググループが参加する分散トランザクションの2相コミットにおいて調整者となるデータベース管理装置が管理するロググループの中で代表となるロググループ(グローバル代表ロググループ)のログ記憶装置に出力される準備完了ログ(第1の準備完了ログ)に、該分散トランザクションの参加者となっているデータベース管理装置が管理するロググループの識別子のリスト(参加ロググループリスト)を記憶するステップと、
前記2相コミットにおいて参加者となるデータベース管理装置が管理するロググループのログ記憶装置に出力する準備完了ログ(第2の準備完了ログ)に、前記グローバル代表ロググループの識別子を記憶するステップと、
2相コミットのインダウト状態期間中に、前記グローバル代表ロググループの管理権が別のデータベース管理装置に移動した場合に、該グローバル代表ロググループの管理権を該別のデータベース管理装置が持つように、前記第1のテーブルを書き換えるステップと、
2相コミットのインダウト状態期間中に、前記グローバル代表ロググループ以外のロググループの管理権が別のデータベース管理装置に移動した場合に、該ロググループの管理権を該別のデータベース管理装置が持つように書き換えるステップと、
インダウト状態となっている参加者は、前記第2の準備完了ログに記憶されているグローバル代表ロググループの識別子と前記第1のテーブルを参照して、該グローバル代表ロググループの管理権を持つデータベース管理装置に、トランザクション結果の問合せを送信するステップと、
前記調整者は、インダウト状態となっている参加者からトランザクション結果の問合せを受信した場合に、前記第1の準備完了ログに記憶されているロググループの識別子のリストと前記第1のテーブルを参照して、前記参加者に該トランザクション結果を返信するステップと、
を備えることを特徴とする分散トランザクションの2相コミットにおけるインダウト状態の解決方法。 - 請求項1記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者は、
前記第1の準備完了ログに記憶されている識別子のリストと前記第1のテーブルを基に、該識別子とコミット指示が設定されたコミット依頼通知、または、前記識別子とロールバック指示が設定されたロールバック依頼通知を、該識別子を有するロググループを管理している参加者に送信し、該参加者に該ロググループのコミットまたはロールバックを依頼するステップと、
前記コミット依頼通知を受信した参加者がコミットに失敗した場合には、該参加者が管理している全ての更新ロググループの識別子のリスト(コミット再送信リスト)を記憶するステップを備え、
参加者は、調整者から前記コミット依頼通知または前記ロールバック依頼通知を受信した場合には、前記第1のテーブルを参照して、該依頼に対する処理結果の応答を、該調整者に送信するステップを備える。 - 請求項1記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者が分散トランザクションにおいて自装置のロググループのデータを更新する場合の2相コミットの準備処理において、
調整者は、
参加者に対して、前記グローバル代表ロググループの識別子が設定された準備処理依頼の通知を送信するステップと、
該準備処理依頼通知を送信した参加者から準備処理成功の応答を受信した場合には、該応答から該参加者が更新したロググループの識別子を取得し、該識別子を該参加者に関連付けて記憶するステップと、
調整者が管理するグローバル代表ロググループ以外のロググループについてトランザクション準備処理を行い、グローバル代表ロググループの識別子が設定された準備完了ログを、該ロググループのログ記憶装置に出力するステップと、
を備え、
参加者は、
調整者から前記準備依頼の通知を受信すると、前記準備依頼通知から前記グローバル代表ロググループを取り出すステップと、
自装置が管理するロググループの準備処理を行い、該準備処理に成功したロググループのログ記憶装置には、前記取り出したグローバル代表ロググループの識別子を設定した準備完了ログを、自装置が管理しているロググループのログ記憶装置に出力するステップと、
該準備完了ログを前記ログ記憶装置に出力する処理に成功した場合には、前記準備処理に成功したロググループの識別子をインダウト状態リストに登録し、調整者に準備成功した全ロググループ識別子を送信するステップを備える。 - 請求項3記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
前記準備処理終了後の2相コミットのコミット処理において、
調整者は、
参加者にコミット依頼を送信するステップと、
該コミット依頼を送信した参加者のコミットが失敗したと判断した場合には、該参加者が管理している全ての更新ロググループの識別子を、前記グローバル代表ロググループのログ記憶装置に出力するステップと、
自装置が管理するグローバル代表ロググループ以外の更新ロググループのコミット処理を実行するステップと、
コミットに成功した更新ロググループについては、その更新ロググループのログ記憶装置にコミットログを出力し、コミットに失敗した更新ロググループについては、その更新ロググループの識別子をグローバル代表ロググループのログ記憶装置に出力するステップと、
グローバル代表ロググループのコミット処理を実行するステップと、
該グローバル代表ロググループのコミットログを、該グローバル代表ロググループのログ記憶装置に出力するステップを備え、
参加者は、
調整者から前記コミット依頼をすると、自装置が管理する全ての更新ロググループについてコミット処理を実行するステップと、
コミットに成功した更新ロググループについては、その識別子を前記インダウト状態リストから削除し、コミット完了の応答を調整者に送信するステップと、
コミットに失敗した更新ロググループについては、コミット失敗の応答を調整者に送信するステップを備える。 - 請求項3記載の分散トランザクションの2相コミットにおけるインダウト状態の解決方法であって、
さらに、
調整者がダウンした場合、
参加者は、
前記インダウト状態リストに更新ロググループの識別子が登録されている場合には、グローバル代表ロググループの管理権を持つ参加者に対して、トランザクション結果の問合せ通知を送信するステップと、
該トランザクション結果の問合せに対する調整者の応答を受信し、該応答がコミット指示であれば、前記インダウト状態リストに登録されている更新ロググループについてコミット処理と該更新ロググループのログ記憶装置へのコミットログの出力を行い、該応答がロールバック指示であれば、前記インダウト状態リストに登録されている更新ロググループについてロールバック処理該更新ロググループのログ記憶装置へのロールバックログの出力を行うステップと、
を備える。 - データを記憶するデータ記憶装置と該データのログを記憶するログ記憶装置の組を複数備え、かつ、複数の前記組を管理する管理装置を複数備えた分散トランザクションシステムのインダウト状態の解決方法であって、
分散トランザクションにおいて、トランザクションの開始要求を受けた管理装置が管理する組の中に含まれる代表の組のログ記憶装置に出力される第1のログに、該分散トランザクションに関与する管理装置それぞれが管理する組を識別する識別情報を対応付けて記憶し、
関与する前記管理装置のうち、前記要求を受けた管理装置以外の管理装置が管理する組のログ記憶装置に出力する第2のログに、前記代表の組の識別情報を対応付けて記憶し、
インダウト状態期間中に、前記代表の組を管理する管理装置が前記要求を受けた管理装置と異なる管理装置に変更された場合、複数の前記組それぞれについて当該組を管理する管理装置に関する情報が登録された第1のテーブルを、前記代表の組の管理を前記異なる管理装置が行なう旨に更新し、
インダウト状態の前記関与する管理装置は、前記第2のログに記憶されている前記代表の組の識別情報と前記第1のテーブルとに基づいて、前記代表の組を管理する前記異なる管理装置に、トランザクション結果の問合せを送信し、
前記要求受けた管理装置は、前記第1のログに記憶されている識別情報と前記第1のテーブルとに基づいて、トランザクション結果の問合せを送信したインダウト状態の前記関与する管理装置にトランザクション結果を送信する、
ことを特徴とする解決方法。 - 前記解決方法は、
インダウト状態期間中に、前記代表の組以外の組を管理する管理装置が変更された場合に、前記第1のテーブルを、当該組を管理していた管理装置と異なる管理装置が行なう旨に更新する、
ことを特徴とする請求項6記載の解決方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008134840A JP5223457B2 (ja) | 2008-05-22 | 2008-05-22 | 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法 |
US12/389,979 US8185493B2 (en) | 2008-05-22 | 2009-02-20 | Solution method of in-doubt state in two-phase commit protocol of distributed transaction |
US13/466,558 US8433676B2 (en) | 2008-05-22 | 2012-05-08 | Solution method of in-doubt state in two-phase commit protocol of distributed transaction |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008134840A JP5223457B2 (ja) | 2008-05-22 | 2008-05-22 | 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009282790A JP2009282790A (ja) | 2009-12-03 |
JP5223457B2 true JP5223457B2 (ja) | 2013-06-26 |
Family
ID=41342855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008134840A Active JP5223457B2 (ja) | 2008-05-22 | 2008-05-22 | 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8185493B2 (ja) |
JP (1) | JP5223457B2 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266126B2 (en) * | 2010-03-24 | 2012-09-11 | Matrixx Software, Inc. | System with multiple conditional commit databases |
US9665392B2 (en) | 2012-03-16 | 2017-05-30 | Oracle International Corporation | System and method for supporting intra-node communication based on a shared memory queue |
US9760584B2 (en) | 2012-03-16 | 2017-09-12 | Oracle International Corporation | Systems and methods for supporting inline delegation of middle-tier transaction logs to database |
US9146944B2 (en) * | 2012-03-16 | 2015-09-29 | Oracle International Corporation | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls |
EP2926252B1 (en) * | 2012-11-28 | 2020-02-26 | Telefonaktiebolaget LM Ericsson (publ) | Method and apparatus for managing distributed transactions |
US9384229B2 (en) | 2012-11-29 | 2016-07-05 | International Business Machines Corporation | Data readiness using initiator region last commit selection |
US9473545B2 (en) * | 2013-09-13 | 2016-10-18 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Administering group identifiers of processes in a parallel computer |
US10203981B2 (en) * | 2014-02-28 | 2019-02-12 | Red Hat, Inc. | Systems and methods for prepare list communication to participants in two-phase commit protocol transaction processing |
CN105893395B (zh) * | 2015-01-26 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 分布式事务的消息回查方法及其系统 |
US10289444B2 (en) | 2015-10-05 | 2019-05-14 | International Business Machines Corporation | Client controlled transaction processing involving a plurality of participants |
US10795881B2 (en) * | 2015-12-18 | 2020-10-06 | Sap Se | Table replication in a database environment |
US10235440B2 (en) * | 2015-12-21 | 2019-03-19 | Sap Se | Decentralized transaction commit protocol |
US10572510B2 (en) | 2015-12-21 | 2020-02-25 | Sap Se | Distributed database transaction protocol |
CN106302995A (zh) * | 2016-07-29 | 2017-01-04 | 维沃移动通信有限公司 | 一种注册信息的获取方法及移动终端 |
CN107182041A (zh) * | 2017-05-09 | 2017-09-19 | 王恩惠 | 通过短信管理手机号绑定与注册过网站或应用方法及装置 |
US10977227B2 (en) | 2017-06-06 | 2021-04-13 | Sap Se | Dynamic snapshot isolation protocol selection |
US11112970B2 (en) * | 2017-06-12 | 2021-09-07 | Sap Se | Software system logging based on runtime analysis |
US10666495B2 (en) * | 2017-08-22 | 2020-05-26 | International Business Machines Corporation | Transaction processing |
RU2718215C2 (ru) | 2018-09-14 | 2020-03-31 | Общество С Ограниченной Ответственностью "Яндекс" | Система обработки данных и способ обнаружения затора в системе обработки данных |
RU2714219C1 (ru) | 2018-09-14 | 2020-02-13 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования передачи операций ввода/вывода |
RU2731321C2 (ru) | 2018-09-14 | 2020-09-01 | Общество С Ограниченной Ответственностью "Яндекс" | Способ определения потенциальной неисправности запоминающего устройства |
RU2714602C1 (ru) | 2018-10-09 | 2020-02-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки данных |
RU2721235C2 (ru) | 2018-10-09 | 2020-05-18 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для маршрутизации и выполнения транзакций |
RU2711348C1 (ru) | 2018-10-15 | 2020-01-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для обработки запросов в распределенной базе данных |
US11874816B2 (en) * | 2018-10-23 | 2024-01-16 | Microsoft Technology Licensing, Llc | Lock free distributed transaction coordinator for in-memory database participants |
RU2714373C1 (ru) | 2018-12-13 | 2020-02-14 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования выполнения операций ввода/вывода |
RU2749649C2 (ru) | 2018-12-21 | 2021-06-16 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для планирования обработки операций ввода/вывода |
RU2720951C1 (ru) | 2018-12-29 | 2020-05-15 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и распределенная компьютерная система для обработки данных |
US11314623B2 (en) * | 2019-01-23 | 2022-04-26 | Red Hat, Inc. | Software tracing in a multitenant environment |
RU2746042C1 (ru) | 2019-02-06 | 2021-04-06 | Общество С Ограниченной Ответственностью "Яндекс" | Способ и система для передачи сообщения |
CN111858629B (zh) | 2020-07-02 | 2023-08-22 | 北京奥星贝斯科技有限公司 | 二阶段提交分布式事务更新数据库的实现方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS638845A (ja) | 1986-06-28 | 1988-01-14 | Fujitsu Ltd | 更新処理方式 |
US5333303A (en) * | 1991-03-28 | 1994-07-26 | International Business Machines Corporation | Method for providing data availability in a transaction-oriented system during restart after a failure |
JP3594248B2 (ja) | 1993-03-30 | 2004-11-24 | 富士通株式会社 | ログデータの分類取得システム |
JP3094888B2 (ja) * | 1996-01-26 | 2000-10-03 | 三菱電機株式会社 | 採番機構、データ整合性確認機構、トランザクション再実行機構及び分散トランザクション処理システム |
US7076508B2 (en) * | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
-
2008
- 2008-05-22 JP JP2008134840A patent/JP5223457B2/ja active Active
-
2009
- 2009-02-20 US US12/389,979 patent/US8185493B2/en active Active
-
2012
- 2012-05-08 US US13/466,558 patent/US8433676B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US8185493B2 (en) | 2012-05-22 |
JP2009282790A (ja) | 2009-12-03 |
US20090292744A1 (en) | 2009-11-26 |
US8433676B2 (en) | 2013-04-30 |
US20120221537A1 (en) | 2012-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5223457B2 (ja) | 分散トランザクションの2相コミットプロトコルにおけるインダウト状態の解決方法 | |
JP6564026B2 (ja) | マルチテナントアプリケーションサーバ環境におけるトランザクション回復のためのシステムおよび方法 | |
JP5841177B2 (ja) | マルチサーバ予約システムにおける同期化メカニズムのための方法及びシステム | |
US6934247B2 (en) | Recovery following process or system failure | |
US10942823B2 (en) | Transaction processing system, recovery subsystem and method for operating a recovery subsystem | |
US8055735B2 (en) | Method and system for forming a cluster of networked nodes | |
JP6220851B2 (ja) | 2フェーズコミットコールの厳密な順序付けに基づいたトランザクションリカバリをサポートするためのシステムおよび方法 | |
US20170177617A1 (en) | Three phase commit for a distributed file system | |
CN103297268A (zh) | 基于p2p技术的分布式数据一致性维护系统和方法 | |
CN108958984B (zh) | 基于ceph的双活同步在线热备方法 | |
US20190258646A1 (en) | Distributed transactions across multiple consensus groups | |
US9760529B1 (en) | Distributed state manager bootstrapping | |
CN111538763A (zh) | 一种确定集群中主节点的方法、电子设备和存储介质 | |
CN107919977A (zh) | 一种基于Paxos协议的分布式一致性系统的在线扩容、在线缩容的方法和装置 | |
WO2022037268A1 (zh) | 一种容器管理方法、设备以及介质 | |
CN110825763B (zh) | 基于共享存储的MySQL数据库高可用系统及其高可用方法 | |
CN109144748B (zh) | 一种服务器、分布式服务器集群及其状态驱动方法 | |
JP2006012004A (ja) | ホットスタンバイシステム | |
JP3846852B2 (ja) | 分散コンピューティング環境の処理グループを管理する方法、システム、およびプログラム製品 | |
JP5900094B2 (ja) | データ整合システム、データ整合方法およびデータ整合プログラム | |
JP2005502957A (ja) | 厳密に一回のキャッシュフレームワーク | |
JP5480046B2 (ja) | 分散トランザクション処理システム、装置、方法およびプログラム | |
CN114363350B (zh) | 一种服务治理系统及方法 | |
US20220138177A1 (en) | Fault tolerance for transaction mirroring | |
JP2011002970A (ja) | 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130115 |
|
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: 20130212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130225 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5223457 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160322 Year of fee payment: 3 |