JP7377305B2 - 分散トランザクション制御システム及び分散トランザクション制御方法 - Google Patents

分散トランザクション制御システム及び分散トランザクション制御方法 Download PDF

Info

Publication number
JP7377305B2
JP7377305B2 JP2022055670A JP2022055670A JP7377305B2 JP 7377305 B2 JP7377305 B2 JP 7377305B2 JP 2022055670 A JP2022055670 A JP 2022055670A JP 2022055670 A JP2022055670 A JP 2022055670A JP 7377305 B2 JP7377305 B2 JP 7377305B2
Authority
JP
Japan
Prior art keywords
participant
input
vote
distributed
determination
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
Application number
JP2022055670A
Other languages
English (en)
Other versions
JP2023147903A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2022055670A priority Critical patent/JP7377305B2/ja
Priority to US17/950,589 priority patent/US20230315754A1/en
Publication of JP2023147903A publication Critical patent/JP2023147903A/ja
Application granted granted Critical
Publication of JP7377305B2 publication Critical patent/JP7377305B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/54Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、分散トランザクション制御システム及び分散トランザクション制御方法に関するものである。
マイクロサービス・アーキテクチャの採用が始まりつつあり、分散トランザクションの手段として弱整合性のSagaが提唱されている。ところが、整合性の確保が課題となっている。一方、エンタープライズシステムでは強整合性が求められるため、強整合分散トランザクション技術における課題解決に向け、いくつかの技術開発等が進んでいる。
例えば、二相コミットの単一障害点の課題を解決する技術として、非特許文献1及び非特許文献2に示すものが存在する。これらが示す技術においては、トランザクション調停者を分散合意で冗長化することで、単一障害点の課題解決を試みている。
Generating Fast Atomic Commit from Hyperfast Consensus,F. Goncalves Pereira Jean-Pierre Le Narzul,Springer-VerlagBerlin, Heidelberg,Conference:Salvador Brazil October 25-28,2005 Consensus on Transaction Commit, Microsoft Research 1 January 2004 revised 19 April 2004, 8 September 2005, 5 July 2017 MSR-TR-2003-96
分散トランザクションではXA準拠の二相コミット技術が普及しているが、トランザクション調停者が単一障害点となることや、通信遅延によりヒューリスティック不整合や業務停滞が発生する課題があった。
また、分散アプリケーション呼出トポロジに沿って二相コミットを行うため、枝部分が単一障害点となる、通信時間増加によりDBロック期間が増加し並行性を阻害する、という課題も存在する。
従来技術にて例示したように、トランザクション調停者が単一障害点である課題については、分散合意によって解決する手法は存在する。ただし、そこで開示されているのは、トランザクションのコミット処理部分のみであり、XAやトポロジの扱いとの親和性がない。
そこで本発明の目的は、二相コミットに起因する不整合と業務停滞を適宜に抑制可能とする技術を提供することにある。
上記課題を解決する本発明の分散トランザクション制御システムは、トランザクションのコミット又はロールバックを決定するトランザクション決着に伴い、プリペア投票者たる参加者の参加者装置からの入力投票を待ち合わせて判定する判定部と、前記判定部の判定結果を決定する分散合意処理部と、前記決定の結果に基づいて当該トランザクションのコミットかロールバックかを決定する決着部とをそれぞれ有する、冗長化された調停者装置を含むシステムであって、前記判定部は、前記入力投票がタイムアウトした場合、プリペア失敗の投票に置換し、全ての入力投票がプリペア成功の投票の場合、コミットに判定し、各入力投票のうち一つでもプリペア失敗の投票を含む場合、ロールバックに判定し、当該判定の内容を分散合意処理部へ入力し、前記分散合意処理部は、複数の前記判定部からの入力である前記判定の内容を、分散合意にて一つに決定し、前記決着部は、前記分散合意処理部の出力を決着結果として前記参加者装置に通知するものである、ことを特徴とする。
また、本発明の分散トランザクション制御方法は、トランザクションのコミット又はロールバックを決定するトランザクション決着に伴い、プリペア投票者たる参加者の参加者装置からの入力投票を待ち合わせて判定する判定部と、前記判定部の判定結果を決定する分散合意処理部と、前記決定の結果に基づいて当該トランザクションのコミットかロールバックかを決定する決着部とをそれぞれ有する、冗長化された調停者装置を含むシステムにおいて、前記調停者装置における、前記判定部が、前記入力投票がタイムアウトした場合、プリペア失敗の投票に置換し、全ての入力投票がプリペア成功の投票の場合、コミットに判定し、各入力投票のうち一つでもプリペア失敗の投票を含む場合、ロールバックに判定し、当該判定の内容を分散合意処理部へ入力し、前記分散合意処理部が、複数の前記判定部からの入力である前記判定の内容を、分散合意にて一つに決定し、前記決着部が、前記分散合意処理部の出力を決着結果として前記参加者装置に通知する、ことを特徴とする。
本発明によれば、二相コミットに起因する不整合と業務停滞を適宜に抑制可能となる。
本実施形態の分散トランザクション制御システムの構成例を示す図である。 本実施形態における計算機のハードウェア構成例を示す図である。 本実施形態における枝情報の構成例を示す図である。 本実施形態の分散トランザクション制御方法における判定部の処理フロー例を示す図である。 本実施形態の参加者一覧テーブルの構成例を示す図である。 本実施形態の投票テーブルの構成例を示す図である。 本実施形態の分散トランザクション制御方法における参加者一覧登録の処理フロー例を示す図である。 本実施形態における参加者一覧テーブルの構成例を示す図である。 本実施形態における参加者の親子関係例を示す図である。 本実施形態における参加者の追加と登録の処理動作例を示す図である。 本実施形態における開始装置の処理例を示すフロー図である。 本実施形態における参加者装置の処理例を示すフロー図である。
<システム構成>
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の
分散トランザクション制御システム10を含むネットワーク構成図である。図1に示す分散トランザクション制御システム10は、二相コミットに起因する不整合と業務停滞を適宜に抑制可能とするコンピュータシステムである。
本実施形態の分散トランザクション制御システム10は、図1で示すように、ネットワーク1を介して、調停者装置100、参加者装置200、及び開始者装置300らが通信可能に接続され、構成されている。
このうち調停者装置100は、主に本実施形態の分散トランザクション制御システム10を構成する情報処理装置であり、判定部110、分散合意処理部111、及び決着部112の各機能を備えている。
また、判定部110は、開始者装置300から得た参加者一覧に基づく参加者一覧テー
ブル1101や、参加者装置200からの入力投票を集約する投票テーブル1102を保持、管理する。
なお、調停者装置100は冗長化されており、本実施形態における分散トランザクション制御システム10において複数配置されているものとする。
また、参加者装置200は、トランザクション管理部210、プリペア処理部211、合意確定部212、及びコミット・ロールバック処理部213の各機能を備えている。このうちトランザクション管理部210は、枝情報225を保持、管理している。
この枝情報225は、二相コミットを行うための、分散アプリケーション呼出のトポロジに関する情報となる(図3参照)。トランザクション管理部210は、いわゆるトランザクション・マネージャとも呼ばれ、XAリソース・インスタンスを使用して各トランザクションのブランチすなわち枝を準備して協調させ、すべてのブランチを適切にコミットまたはロールバックする存在である。こうしたトランザクション管理部210の機能自体は、開始者装置300におけるトランザクション管理部311も同様に備える。
一方、開始者装置300は、参加者一覧管理部310、及びトランザクション管理部311の各機能を有している。このうち参加者一覧管理部310は、本開始者装置300により発行されたトランザクションの処理を分担する、各参加者の情報に該当する。また、トランザクション管理部311は、枝情報325を有している。この枝情報325は、二相コミットを行うための、分散アプリケーション呼出のトポロジに関する情報となる(図3参照)。
<ハードウェア構成>
また、本実施形態の分散トランザクション制御システム10を構成する、各装置らのハードウェア構成例を図2に示す。ここで対象とする装置は、調停者装置100、参加者装置200、及び開始者装置300となる。
図2で例示するように、分散トランザクション制御システム10を構成する各装置、すなわち計算機50は、記憶装置51、メモリ53、演算装置54、および通信装置55、を備える。
このうち記憶装置51は、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される。
また、メモリ53は、RAMなど揮発性記憶素子で構成される。
また、演算装置54は、記憶装置51に保持されるプログラム512をメモリ53に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なうCPUである。
また、通信装置55は、ネットワーク1と接続して他装置との通信処理を担うネットワークインターフェイスカード等を想定する。
なお、計算機50は エンドユーザからのキー入力や音声入力を受け付ける入力装置、処理データの表示を行うディスプレイ等の出力装置、を更に備えるとすれば好適である。
また、記憶装置51内には、本実施形態の分散トランザクション制御システム10を構成する計算機50として必要な機能を実装する為のプログラム512に加えて、各種データ513が少なくとも記憶されている。
<前提となる概念や処理>
ここで、本実施形態における分散トランザクション制御の基本的な概念やその処理について説明しておく。既に述べたように、分散トランザクションではXA準拠の二相コミット技術が普及しているが、トランザクション調停者が単一障害点となることや、通信遅延によりヒューリスティック不整合や業務停滞が発生する課題があった。
また、分散アプリケーション呼出トポロジに沿って二相コミットを行うため、枝部分が単一障害点となる、通信時間増加によりDBロック期間が増加し並行性を阻害する、という課題も存在する。従来技術にて例示したように、トランザクション調停者が単一障害点である課題については、分散合意によって解決する手法は存在する。ただし、そこで開示されているのは、トランザクションのコミット処理部分のみであり、XAやトポロジの扱いとの親和性がない。
そこで本発明では、二相コミットに起因する不整合と業務停滞を適宜に抑制可能とすることを目的として、以下の構成を採用した。すなわち、まず、単一障害点を除去するため、トランザクションの調停者装置100を分散合意で冗長化した構成としている(図1参照)。
また、トランザクションのブランチすなわち枝に起因する単一障害点と、通信遅延の課題を除去するため、コミット処理のトポロジを平坦化する。この平坦化には、トランザクションのプリペア投票者一覧、すなわち参加者一覧の集積が必要である。そこで、本実施形態においては、アプリケーション呼出元たる開始者装置300が保持するXAの枝情報325(図3参照)を使用して参加者一覧を決定する。これにより、従来技術(Paxos Commit文献)で発生する、参加者側からの枝登録通信を抑える。また、アプリケーション呼出しが多段の場合、中間段(にあたる参加者装置200)から、トポロジ情報たる枝情報225を部分木として調停者装置100に送信し、判定部110で参加者全体を再構成する。
こうした前提の下、トランザクションの開始者装置300は、XAの枝情報325を使用して参加者一覧を生成し、調停者装置100に配信する。
また、参加者装置200は、当該トランザクションの枝に関して各々プリペアを実行する(または、開始者装置300から、各参加者装置200にプリペア要求を配信する)。参加者装置200は、そのプリペア成否を、冗長化された各調停者装置100へ送信することとなる。
各調停者装置100の判定部110は、開始者装置300から得ている参加者一覧と、参加者装置200から得たプリペア成否が配信されるのを、実時間タイムアウトで待ちつつ、決着結果を判定する。この判定は、参加者装置200それぞれから得たプリペア成否がすべて成功ならコミットに、一つでも失敗であればそれ以上待つことなくロールバックに決定する。
また、各調停者装置100の判定部110は、分散合意を使用して決着結果を決定し、参加者装置200に対し、決着結果を配送する。他方、参加者装置200は、決着結果に従い、コミット/ロールバックする。
<フロー例:調停者装置の判定部>
以下、本実施形態における分散トランザクション制御方法の実際手順について図に基づき説明する。以下で説明する分散トランザクション制御方法に対応する各種動作は、分散トランザクション制御システム10を構成する各装置らがメモリ等に読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
図4Aは、本実施形態における分散トランザクション制御方法のフロー例を示す図であり、具体的には、調停者装置100の判定部110における処理フロー例を示す。
この場合、調停者装置100の判定部110は、参加者装置200らからプリペア成否すなわち入力投票を受信したか、またはタイムアウトを検知する(s10)。このタイムアウトの時間長については、予め知見のある者が規定しているものとする。
上述のs10にて、タイムアウトを検知した場合(s11:Y)、調停者装置100の判定部110は、処理をs16に遷移させ、当該トランザクションについてはロールバックと判定し、その結果を分散合意処理部111に出力する(s21)。
一方、上述のs10にて、タイムアウトを検知しなかった場合(s11:N)、調停者装置100の判定部110は、参加者装置200からの受信メッセージが入力投票の棄権を示すものか判定する(s12)。
上述の判定の結果、受信メッセージが「棄権」を示すものであった場合(s12:Y)、調停者装置100の判定部110は、参加者一覧テーブル1101(図4B参照)から、当該参加者の情報を削除し(s13)、処理をs10に戻す。
一方、上述の判定の結果、受信メッセージが「棄権」を示すものでなかった場合(s12:N)、調停者装置100の判定部110は、受信メッセージが入力投票か判定する(s14)。
この判定の結果、受信メッセージが入力投票であった場合(s14:Y)、調停者装置100の判定部110は、入力投票が「失敗」を示すものであれば(s15:Y)、処理をs16に遷移させ、上述と同様、当該トランザクションについてはロールバックと判定し、その結果を分散合意処理部111に出力する(s21)。
一方、上述の判定の結果、入力投票が「失敗」を示すものでなければ(s15:N)、調停者装置100の判定部110は、参加者の情報と入力投票の内容を、投票テーブル1102(図4C参照)に登録し、処理をs19に遷移させる。
一方、s14の判定の結果、受信メッセージが入力投票でなかった場合(s14:N)、調停者装置100の判定部110は、s18に処理を遷移させ、参加者一覧を参加者一覧テーブル1101に登録し、その一覧状態を「完成」に設定する(図4B、図4C参照)。
続いて、調停者装置100の判定部110は、一覧状態が完成、かつ参加者一覧テーブル1101に対応する入力投票が全て「成功」となっているか判定する(s19)。
この判定の結果、一覧状態が完成し、かつ入力投票が全て「成功」となっている状態にはない場合(s19:N)、調停者装置100の判定部110は、処理をs10に戻す。
一方、上述の判定の結果、一覧状態が完成し、かつ入力投票が全て「成功」となっている場合(s19:Y)、調停者装置100の判定部110は、当該トランザクションはコミットと判定し(s20)、その結果を分散合意処理部111に出力する(s21)。
ここまでに示したように、本実施形態においては、動的なアプリケーション呼出トポロジに対応しつつ、トポロジに沿ったツリー形状二相コミットの課題を解決するため、コミ
ット処理はツリー形状ではなく、トランザクションの調停者装置100が行う。このために、調停者装置100は参加者一覧を入力情報として受取り使用することとなる。
<フロー例:動的なアプリケーション呼出しトポロジの場合における、調停者装置の判定部>
続いて、調停者装置100の判定部110における処理フローについて、図5A~図5Cに基づき説明する。動的なアプリケーション呼出しトポロジの場合、各枝は、枝の上側と直下のノードとの関係などの部分的な情報しか持たないため、調停者装置100に部分的な情報を集約して、トポロジ全体を再構築して、参加者一覧を得るものとする。
この場合、判定部110は、予め保持する枝情報325及び参加者装置200が保持する枝情報225を、それぞれ取得して(s30、s31、s32)、参加者一覧テーブル1101を生成する(s33、s34)。図5Aの処理は、動的なアプリケーション呼出しトポロジの場合における、図4Aのs18の処理を置き換えたものである。また、動的なアプリケーション呼出しトポロジの場合、図4Aのs10におけるメッセージ受信は、枝情報の断片の入力も含む。
なお、図5Cに示すように、ここで想定している開始者、参加者、子参加者の関係性は、開始者を起点として、開始者から直接にトランザクションを受けてプリペア成否を判定する参加者1、3と、この参加者1、3からの処理要求を受けて、当該トランザクションの全部または一部についてプリペア成否を判定する子参加者である、参加者2、4が存在する構成となっている。
なお、この場合の参加者一覧管理部310は、参加者のうち子参加者が確定していない状態、すなわち参加者一覧テーブル1101の「子確定状態」欄に「未確定」のものがないか判定する(s33)。この判定の結果、「子確定状態」欄に「未確定」のものがない場合(s33:Y)、参加者一覧管理部310は、一覧状態を「完成」にし(s34。図5B参照)、処理を終了する。
こうした参加者の追加と登録の処理動作の例を図6で示す。ここで示すように、開始者を含めた各参加者の親子関係は、状態(a)から、状態(b)、状態(c)、そして状態(d)と変化する。
このうち状態(a)では、参加者は開始者のみであり、参加者一覧テーブル1101も、この開始者の情報のみが登録される。
また、状態(b)では、上述の開始者の依頼を受けた参加者1、この参加者1から依頼を受けた参加者2が登場し、参加者一覧テーブル1101にも、開始者を含む各参加者の情報が登録されている。ただし、この時、開始者を含む参加者1、2のいずれも、トランザクションの処理中である。
また、状態(c)では、上述の状態(b)から参加者1,2における処理は完了し、開始者のみが処理中の状態である。当然ながら、その状態は、参加者一覧テーブル1101にも設定されている。
また、状態(d)では、上述の状態(c)における参加者構成に、参加者3、4が加わり、それぞれに皆、処理を完了した状態となっている。当然ながら、その状態は、参加者一覧テーブル1101にも設定されている。
<フロー例:開始者装置の参加者一覧送信>
上述のように参加者一覧テーブルを管理する開始者装置300は、それを図7で示すフローのように、最終的に調停者装置100に送信する。
この場合、開始者装置300の参加者一覧管理部310は、参加者の呼出の有無(例:参加者1→参加者2、など)を、例えば、参加者の最後の呼出であることの設定情報、あるいは、参加者装置200からの通知など所定のデータから感知し(s40)、呼出がこれ以上ないか判定する(s41)。
上述の判定の結果、呼出がこれ以上無いとなれば(s41:Y)、開始者装置300は、ここまでで得られた参加者一覧テーブルを調停者装置100に送信する(s42)。このように、開始者装置300は、トランザクション処理の完了を参加者一覧テーブルの確定にて認識し、当該参加者一覧を調停者装置100に送信して、決着投票を開始指示するものである。
一方、上述の判定の結果、呼出がまだあるとなれば(s41:N)、開始者装置300は、処理を続行するとして(s43)、処理をs40に戻す。
なお、開始者装置300や参加者装置200は、任意のタイミングと方法で判定部110へ情報を送信してよい。タイミングについては、開始者や参加者、親子関係が変化する都度、または、親子関係が確定したタイミングなどが可能である。送信方法については、判定部110へ直接送信する、親子関係にある呼出元への応答メッセージに重畳して呼出元に戻して、呼出元がまとめて判定部110へ送信する、などが可能である。
なお、これらのタイミングと方法に限定される訳ではなく、情報が判定部110へ到達すれば他のタイミングと方法でも構わない。
なお、開始者装置300は、コミットに必要な通信時間を低減するため、アプリケーション呼出しが全て完了して応答が返るまで待たず、参加者一覧が確定した最速タイミングで参加者一覧を調停者装置100に送信する。最速タイミングの決定方法は多岐の代替方法があるため、所定の情報から得ることとする。
<参加者装置のフロー>
続いて、参加者装置200における、プリペア成否の投票を行うフローについて、図8に基づき説明する。この場合、参加者装置200は、トランザクション処理の完了を、例えば、当該参加者装置と処理の入出力関係がある一連の参加者それぞれでの処理が完了したタイミングと認識し(s51、s52)、プリペア投票を調停者装置100に送信する(s53)。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、二相コミットに起因する不整合と業務停滞を適宜に抑制可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態の分散トランザクション制御システムにおいて、前記トランザクションの開始者装置は、前記トランザクション決着に参加する参加者一覧を管理する参加者一覧管理部を有し、前記参加者一覧管理部は、前記参加者一覧を前記調停者装置それぞれの判定部へ送信し、前記調停者装置それぞれにおける前記判定部は、前記入力投票について判定する際、タイムアウト前に完成している前記参加者一覧に基づき、全ての参加者からの入力投票が得られていることを前提に、前記判定を行うものである、としてもよい。
これによれば、動的なアプリケーション呼出トポロジに対応しつつ、トポロジに沿った
ツリー形状二相コミットの課題を解決するため、コミット処理はツリー形状ではなく、参加者一覧を入力情報としてトランザクション調停者が行うことが可能となる。
また、本実施形態の分散トランザクション制御システムにおいて、前記開始者装置の前記参加者一覧管理部は、予め保持する枝情報を取得して前記参加者一覧を生成するものである、としてもよい。
これによれば、呼出し元である開始者装置が、自身で保持する枝情報を使用し、結果として参加者一覧を得る通信時間とオーバヘッドが減少する。
また、本実施形態の分散トランザクション制御システムにおいて、前記判定部は、前記開始者装置にて予め保持する枝情報及び前記参加者装置が保持する枝情報を、それぞれ取得して前記参加者一覧を生成するものである、としてもよい。
これによれば、動的なアプリケーション呼出しトポロジにおいて、各枝は、枝の上側と直下のノードとの関係などの部分的な情報しか持たないが、調停者装置にて部分的な情報を集約してトポロジ全体を再構築して、参加者一覧を得ることが可能となる。ひいては、多段呼出構成で参加者一覧を得る通信時間が減少する。
また、本実施形態の分散トランザクション制御システムにおいて、前記開始者装置は、トランザクション処理の完了を前記参加者一覧の確定にて認識し、当該参加者一覧を前記調停者装置に送信して、決着投票を開始指示するものである、としてもよい。
これによれば、アプリケーション呼出しが全て完了して応答が返るまで待たず、参加者一覧が確定した最速タイミングで参加者一覧を調停者装置に提供可能となり、コミットに必要な通信時間を低減できる。
また、本実施形態の分散トランザクション制御システムにおいて、前記参加者装置は、トランザクション処理の完了を、当該参加者と処理の入出力関係がある一連の参加者それぞれでの処理が完了したタイミングと認識し、プリペア投票を行うものである、としてもよい。
これによれば、参加者の処理が完了したタイミングで、早期にプリペア投票を行うこととなり、コミットに必要な通信時間を低減可能となる。
また、本実施形態の分散トランザクション制御システムにおいて、前記参加者装置は、トランザクション処理の結果に関与しない場合、棄権投票を行い、前記調停者装置の判定部は、前記参加者装置からの入力投票が前記棄権投票の場合、当該参加者装置からの入力投票を前記判定から除外するものである、としてもよい。
これによれば、参加者がリードオンリだった場合や、データベースをアクセスしなかった場合など、トランザクションの結果に関与しない場合にも柔軟に対応可能となる。
また、本実施形態の分散トランザクション制御方法において、前記トランザクションの開始者装置において、前記トランザクション決着に参加する参加者一覧を管理する参加者一覧管理部が、前記参加者一覧を前記調停者装置それぞれの判定部へ送信し、前記調停者装置それぞれにおける前記判定部が、前記入力投票について判定する際、タイムアウト前に完成している前記参加者一覧に基づき、全ての参加者からの入力投票が得られていることを前提に、前記判定を行う、としてもよい。
また、本実施形態の分散トランザクション制御方法において、前記開始者装置の前記参加者一覧管理部が、予め保持する枝情報を取得して前記参加者一覧を生成する、としてもよい。
また、本実施形態の分散トランザクション制御方法において、前記判定部が、前記開始者装置にて予め保持する枝情報及び前記参加者装置が保持する枝情報を、それぞれ取得して前記参加者一覧を生成する、としてもよい。
また、本実施形態の分散トランザクション制御方法において、前記開始者装置が、トランザクション処理の完了を前記参加者一覧の確定にて認識し、当該参加者一覧を前記調停者装置に送信して、決着投票を開始指示する、としてもよい。
また、本実施形態の分散トランザクション制御方法において、前記参加者装置が、トランザクション処理の完了を、当該参加者と処理の入出力関係がある一連の参加者それぞれでの処理が完了したタイミングと認識し、プリペア投票を行う、としてもよい。
また、本実施形態の分散トランザクション制御方法において、前記参加者装置が、トランザクション処理の結果に関与しない場合、棄権投票を行い、前記調停者装置の判定部が、前記参加者装置からの入力投票が前記棄権投票の場合、当該参加者装置からの入力投票を前記判定から除外する、としてもよい。
1 ネットワーク
10 分散トランザクション制御システム
50 計算機
51 記憶装置
512 プログラム
513 各種データ
53 メモリ
54 演算装置
55 通信装置
100 調停者装置
110 判定部
1101 投票テーブル
111 分散合意処理部
112 決着部
200 参加者装置
210 トランザクション管理部
211 プリペア処理部
212 合意確定部
213 コミット・ロールバック処理部
225 枝情報
300 開始者装置
310 参加者一覧管理部
3101 参加者一覧
311 トランザクション管理部
325 枝情報

Claims (14)

  1. トランザクションのコミット又はロールバックを決定するトランザクション決着に伴い、プリペア投票者たる参加者の参加者装置からの入力投票を待ち合わせて判定する判定部と、前記判定部の判定結果を決定する分散合意処理部と、前記決定の結果に基づいて当該トランザクションのコミットかロールバックかを決定する決着部とをそれぞれ有する、冗長化された調停者装置を含むシステムであって、
    前記判定部は、前記入力投票がタイムアウトした場合、プリペア失敗の投票に置換し、全ての入力投票がプリペア成功の投票の場合、コミットに判定し、各入力投票のうち一つでもプリペア失敗の投票を含む場合、ロールバックに判定し、当該判定の内容を分散合意処理部へ入力し、
    前記分散合意処理部は、複数の前記判定部からの入力である前記判定の内容を、分散合意にて一つに決定し、
    前記決着部は、前記分散合意処理部の出力を決着結果として前記参加者装置に通知するものである、
    ことを特徴とする分散トランザクション制御システム。
  2. 前記トランザクションの開始者装置は、
    前記トランザクション決着に参加する参加者一覧を管理する参加者一覧管理部を有し、
    前記参加者一覧管理部は、前記参加者一覧を前記調停者装置それぞれの判定部へ送信し、
    前記調停者装置それぞれにおける前記判定部は、前記入力投票について判定する際、タイムアウト前に完成している前記参加者一覧に基づき、全ての参加者からの入力投票が得られていることを前提に、前記判定を行うものである、
    ことを特徴とする請求項1に記載の分散トランザクション制御システム。
  3. 前記開始者装置の前記参加者一覧管理部は、
    予め保持する枝情報を取得して前記参加者一覧を生成するものである、
    ことを特徴とする請求項2に記載の分散トランザクション制御システム。
  4. 前記判定部は、
    前記開始者装置にて予め保持する枝情報及び前記参加者装置が保持する枝情報を、それぞれ取得して前記参加者一覧を生成するものである、
    ことを特徴とする請求項2に記載の分散トランザクション制御システム。
  5. 前記開始者装置は、
    トランザクション処理の完了を前記参加者一覧の確定にて認識し、当該参加者一覧を前記調停者装置に送信して、決着投票を開始指示するものである、
    ことを特徴とする請求項2に記載の分散トランザクション制御システム。
  6. 前記参加者装置は、トランザクション処理の完了を、当該参加者と処理の入出力関係がある一連の参加者それぞれでの処理が完了したタイミングと認識し、プリペア投票を行うものである、
    ことを特徴とする請求項1に記載の分散トランザクション制御システム。
  7. 前記参加者装置は、トランザクション処理の結果に関与しない場合、棄権投票を行い、
    前記調停者装置の判定部は、前記参加者装置からの入力投票が前記棄権投票の場合、当該参加者装置からの入力投票を前記判定から除外するものである、
    ことを特徴とする請求項1に記載の分散トランザクション制御システム。
  8. トランザクションのコミット又はロールバックを決定するトランザクション決着に伴い、プリペア投票者たる参加者の参加者装置からの入力投票を待ち合わせて判定する判定部と、前記判定部の判定結果を決定する分散合意処理部と、前記決定の結果に基づいて当該トランザクションのコミットかロールバックかを決定する決着部とをそれぞれ有する、冗長化された調停者装置を含むシステムにおいて、
    前記調停者装置における、
    前記判定部が、前記入力投票がタイムアウトした場合、プリペア失敗の投票に置換し、全ての入力投票がプリペア成功の投票の場合、コミットに判定し、各入力投票のうち一つでもプリペア失敗の投票を含む場合、ロールバックに判定し、当該判定の内容を分散合意処理部へ入力し、
    前記分散合意処理部が、複数の前記判定部からの入力である前記判定の内容を、分散合意にて一つに決定し、
    前記決着部が、前記分散合意処理部の出力を決着結果として前記参加者装置に通知する、
    ことを特徴とする分散トランザクション制御方法。
  9. 前記トランザクションの開始者装置において、
    前記トランザクション決着に参加する参加者一覧を管理する参加者一覧管理部が、
    前記参加者一覧を前記調停者装置それぞれの判定部へ送信し、
    前記調停者装置それぞれにおける前記判定部が、
    前記入力投票について判定する際、タイムアウト前に完成している前記参加者一覧に基づき、全ての参加者からの入力投票が得られていることを前提に、前記判定を行う、
    ことを特徴とする請求項8に記載の分散トランザクション制御方法。
  10. 前記開始者装置の前記参加者一覧管理部が、
    予め保持する枝情報を取得して前記参加者一覧を生成する、
    ことを特徴とする請求項9に記載の分散トランザクション制御方法。
  11. 前記判定部が、
    前記開始者装置にて予め保持する枝情報及び前記参加者装置が保持する枝情報を、それぞれ取得して前記参加者一覧を生成する、
    ことを特徴とする請求項9に記載の分散トランザクション制御方法。
  12. 前記開始者装置が、
    トランザクション処理の完了を前記参加者一覧の確定にて認識し、当該参加者一覧を前記調停者装置に送信して、決着投票を開始指示する、
    ことを特徴とする請求項9に記載の分散トランザクション制御方法。
  13. 前記参加者装置が、
    トランザクション処理の完了を、当該参加者と処理の入出力関係がある一連の参加者それぞれでの処理が完了したタイミングと認識し、プリペア投票を行う、
    ことを特徴とする請求項8に記載の分散トランザクション制御方法。
  14. 前記参加者装置が、
    トランザクション処理の結果に関与しない場合、棄権投票を行い、
    前記調停者装置の判定部が、前記参加者装置からの入力投票が前記棄権投票の場合、当該参加者装置からの入力投票を前記判定から除外する、
    ことを特徴とする請求項8に記載の分散トランザクション制御方法。
JP2022055670A 2022-03-30 2022-03-30 分散トランザクション制御システム及び分散トランザクション制御方法 Active JP7377305B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022055670A JP7377305B2 (ja) 2022-03-30 2022-03-30 分散トランザクション制御システム及び分散トランザクション制御方法
US17/950,589 US20230315754A1 (en) 2022-03-30 2022-09-22 Distributed transaction control system and distributed transaction control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022055670A JP7377305B2 (ja) 2022-03-30 2022-03-30 分散トランザクション制御システム及び分散トランザクション制御方法

Publications (2)

Publication Number Publication Date
JP2023147903A JP2023147903A (ja) 2023-10-13
JP7377305B2 true JP7377305B2 (ja) 2023-11-09

Family

ID=88194546

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022055670A Active JP7377305B2 (ja) 2022-03-30 2022-03-30 分散トランザクション制御システム及び分散トランザクション制御方法

Country Status (2)

Country Link
US (1) US20230315754A1 (ja)
JP (1) JP7377305B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884327A (en) 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US6138143A (en) 1999-01-28 2000-10-24 Genrad, Inc. Method and apparatus for asynchronous transaction processing
JP2016071526A (ja) 2014-09-29 2016-05-09 Necソリューションイノベータ株式会社 分散データベースシステムおよびレプリケーション方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271448B2 (en) * 2005-01-28 2012-09-18 Oracle International Corporation Method for strategizing protocol presumptions in two phase commit coordinator
US9159050B2 (en) * 2005-04-12 2015-10-13 International Business Machines Corporation Providing atomicity for a unit of work
US7725446B2 (en) * 2005-12-19 2010-05-25 International Business Machines Corporation Commitment of transactions in a distributed system
US9384229B2 (en) * 2012-11-29 2016-07-05 International Business Machines Corporation Data readiness using initiator region last commit selection
US20150149344A1 (en) * 2013-11-26 2015-05-28 International Business Machines Corporation Synchronous split payment transaction management
US11314544B2 (en) * 2015-02-09 2022-04-26 Red Hat, Inc. Transaction log for audit purposes
US10108632B2 (en) * 2016-05-02 2018-10-23 Google Llc Splitting and moving ranges in a distributed system
CN115244526A (zh) * 2019-08-16 2022-10-25 泽乌科技公司 用于去中心化事务通信协议的方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884327A (en) 1996-09-25 1999-03-16 International Business Machines Corporation System, method and program for performing two-phase commit with a coordinator that performs no logging
US6138143A (en) 1999-01-28 2000-10-24 Genrad, Inc. Method and apparatus for asynchronous transaction processing
JP2016071526A (ja) 2014-09-29 2016-05-09 Necソリューションイノベータ株式会社 分散データベースシステムおよびレプリケーション方法

Also Published As

Publication number Publication date
JP2023147903A (ja) 2023-10-13
US20230315754A1 (en) 2023-10-05

Similar Documents

Publication Publication Date Title
CN105573828B (zh) 一种操作处理方法及装置
US11620277B2 (en) Transaction processing at non-relational databases
CN100452707C (zh) 一种保持数据一致性的方法及系统
US20080209416A1 (en) Workflow Definition and Management System
JP2001084320A (ja) ワークフロー管理システム
US9582314B2 (en) Managing data consistency between loosely coupled components in a distributed computing system
CN108701157A (zh) 分布式事务处理系统中有保证的提交结果
JPH1069418A (ja) 階層化トランザクション処理方法
JP4694610B2 (ja) 承認者決定装置及び当該承認者決定装置を有するファクシミリ装置
CN108845866B (zh) 处理分布式事务的方法和装置
US5706500A (en) Selective transaction oriented recovery and restart for message-driven business applications
US6330686B1 (en) Handling protected conversation messages across IMS restart in shared queues environment
CN112527901A (zh) 数据存储系统、方法、计算设备及计算机存储介质
JP7377305B2 (ja) 分散トランザクション制御システム及び分散トランザクション制御方法
CN102413166A (zh) 分布式交易方法及其系统
US20080040729A1 (en) Method for Resolving a Unit of Work
CN108924240B (zh) 基于一致性协议的分布式处理方法、装置及存储介质
JP2000132625A (ja) ワークフロー管理システム
US9635135B1 (en) Systems and methods for handling replies to transaction requests
CN112598520B (zh) 交易管理的方法、装置、电子设备以及存储介质
CN114579260A (zh) 一种事务处理方法及系统
CN107045453A (zh) 用于分布式事务的两阶段提交协议混合
WO2017094096A1 (ja) トランザクション処理システムおよびトランザクション制御方法
CN108572959B (zh) 一种与数据库交互数据的方法和装置
JP2011039626A (ja) ワークフローシステム、制御方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230627

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230809

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: 20231003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231027

R150 Certificate of patent or registration of utility model

Ref document number: 7377305

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150