JP2009520253A - 分散型システムにおけるトランザクションのコミットメントのための方法、コンピュータ・プログラム製品、およびシステム - Google Patents

分散型システムにおけるトランザクションのコミットメントのための方法、コンピュータ・プログラム製品、およびシステム Download PDF

Info

Publication number
JP2009520253A
JP2009520253A JP2008544985A JP2008544985A JP2009520253A JP 2009520253 A JP2009520253 A JP 2009520253A JP 2008544985 A JP2008544985 A JP 2008544985A JP 2008544985 A JP2008544985 A JP 2008544985A JP 2009520253 A JP2009520253 A JP 2009520253A
Authority
JP
Japan
Prior art keywords
transaction
node
participating
nodes
sequence number
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
Application number
JP2008544985A
Other languages
English (en)
Inventor
フラス、マシュー、アルバート
ヴィンセント、ティモシー、ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009520253A publication Critical patent/JP2009520253A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

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

Abstract

【課題】分散型システムにおいてトランザクションをコミットするための方法、コンピュータ・プログラム、およびシステムを提供すること。
【解決手段】方法は、システムのコーディネータ・ノードでトランザクションのコミット要求をクライアントから受信するステップと、システムにおける他のノードについて、テール・ログ・シーケンス番号をトラッキングするステップと、システムにおける各関与ノードについてトランザクションに関連付けられた最大ログ・シーケンス番号を決定するステップと、各関与ノードについてのテール・ログ・シーケンス番号が、それぞれの関与ノードでのトランザクションに関連する最大ログ・シーケンス番号よりも大きいかまたは等しいことを条件に、コーディネータ・ノードでのトランザクションをコミットするステップを含む。
【選択図】 図1

Description

本発明は、一般に分散型システムに関する。とりわけ本発明は、分散型システムにおけるトランザクションのコミットメントを対象とする。
分散型システムとは、データが様々なデータベースに格納されるマルチノード・システムのことである。ノードは、コンピュータ・システムなどの任意のデータ処理システムとすることができる。各データベースへは1つのノードを介してのみアクセス可能であるが、分散型システムでは1つのノードを介して複数のデータベースにアクセスすることができる。分散型システムのノードは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)などのネットワークを介して、互いに接続することができる。加えて分散型システムのノードは、1箇所にあるものとするか、複数の場所にわたって分散させることができる。分散型システムの例には、データベース・システム、メール・サーバ・システムなどが含まれる。
結果として単一の論理アクションを生じさせる要求セットからなるトランザクションは、分散型システムにおける複数のデータベース上のデータを修正することができるため、分散型システムは、障害(たとえば、電源異常、ハードウェア・クラッシュなど)が発生するか否かにかかわらず、データの整合性が維持されることを保証しなければならない。したがって、トランザクションで要求された各動作は「コミット」されなければならず、すなわちデータへの変更が永続的になり、その後トランザクションをコミットすることができる。データの変更は、データ変更のログ・レコードが「フラッシュ」された場合、すなわち、不揮発性ストレージ(たとえばディスク・ドライブ)に書き込まれた場合に、永続的になる。ログ・レコードにより、ノードは、障害以前にコミットされた動作を再生することによって、データベースをその障害前の状態に復元することができる。
従来、分散型システムは、2フェーズ・コミット(2PC)プロトコルを使用して、データの整合性を保持してきた。2PCシステムでは、各トランザクションのコーディネータ・ノード、すなわち、クライアント(たとえばアプリケーション)がトランザクションをサブミットしたノードが、トランザクションの各要求について、要求を処理する責務を負う分散型システム内のノードを識別する。トランザクションにおいて要求を処理するように割り当てられた各ノードが、関与ノード(participant node)と呼ばれる。
2フェーズ・コミット・プロトコルの各関与ノードは、トランザクションをコミットするか打ち切るかを断定し、その断定をコーディネータ・ノードに送信する。次にコーディネータ・ノードは、各関与ノードからの断定に基づいて、トランザクションをコミットするか打ち切るかを最終的に決定する。トランザクションは、すべての関与ノードがトランザクションをコミットすることを断定した場合にのみ、コーディネータ・ノードによってコミットされることになる。そうでない場合、コーディネータ・ノードはトランザクションを打ち切ることになる。
しかしながら、フェーズ1の間、コーディネータ・ノードは、トランザクションをコミットする準備をするように各関与ノードにメッセージを送信するため、2フェーズ・コミット・プロトコルはあまりメッセージ効率が良くない。次に各関与ノードは、要求された動作をコミットできるかどうかを決定し、トランザクションをコミットするか打ち切るかに関するその断定と共に、コーディネータ・ノードにメッセージを返送する。第2のフェーズでは、コーディネータ・ノードが、関与ノードから受け取ったすべての断定に基づいてトランザクションをコミットするか打ち切るかを決定し、トランザクションをコミットするかまたは打ち切るようにとのメッセージを、各関与ノードに送信する。
分散型システムによって使用される他のコミット・プロトコルは、「Method of Commitment in a Distributed Database Transaction」という名称の米国特許第5799305号明細書に記載された、2インターバル・コミット(2IC)である。2ICシステムは、インターバル・コーディネータから連続して送信されるインターバル・メッセージを使用して、トランザクションをコミットするか打ち切るかを決定する。したがって、2ICシステムがメッセージを発行する必要は2PCシステムよりも少ないが、依然として必要以上にメッセージを多用する。
米国特許第5799305号明細書
したがって、現在のコミットメント・プロトコルよりもメッセージ効率の良い分散型トランザクション・コミットメント・プロトコルが求められている。本発明は、こうしたニーズを追及する。
分散型システムにおいてトランザクションをコミットするための方法、コンピュータ・プログラム製品、およびシステムが提供される。この方法、コンピュータ・プログラム製品、およびシステムは、分散型システムのコーディネータ・ノードでトランザクションをコミットするようにとの要求をクライアントから受信することであって、この分散型システムが1つまたは複数の関与ノードを備える、受信することと、分散型システムにおけるすべての他のノードそれぞれについて、テール・ログ(tail log)シーケンス番号をトラッキングすることであって、各テール・ログ・シーケンス番号はそれぞれのノードによってフラッシュされた最新のトランザクション・ログ・レコードを近似し、すべての他のノードのうちの少なくとも1つが関与ノードである、トラッキングすることと、1つまたは複数の関与ノードのそれぞれについてトランザクションに関連付けられた最大ログ・シーケンス番号を決定することであって、各最大ログ・シーケンス番号がそれぞれの関与ノードでのトランザクションに必要な最高のトランザクション・ログ・レコードに対応する、決定することと、1つまたは複数の関与ノードのそれぞれについてのテール・ログ・シーケンス番号が、それぞれの関与ノードでのトランザクションに関連付けられた最大ログ・シーケンス番号よりも大きいかまたは等しい場合、コーディネータ・ノードでのトランザクションをコミットすること、に備える。
次に本発明について、添付の図面を参照しながら、単なる例として説明する。
本発明は、一般に分散型システムに関し、とりわけ分散型システムにおけるトランザクションのコミットメントに関する。以下の説明は、当業者の1人が本発明を作成および使用できるようにするために提示され、特許出願およびその要件に関連して提供される。当業者であれば、本明細書に記載された好ましい実装および一般的な原理および機能に対する様々な修正が容易に明らかとなろう。したがって、本発明は、図示された実装に限定されることを意図するものではなく、本明細書に記載された原理および機能に適合する最も広い範囲が認められる。
図1は、本発明の態様に従った、分散型システムにおいてトランザクションをコミットするためのプロセス100を示す。102で、トランザクションをコミットするようにとの要求が、クライアントから分散型システムのコーディネータ・ノードで受信される。クライアントは、アプリケーションまたはプロセスとすることが可能であり、コーディネータ・ノードまたは何らかの他のノード上に配置することができる。コーディネータ・ノードは、通常、トランザクションが初期化された場所、すなわち、トランザクションを開始する要求をクライアントがサブミットした場所である。分散型システムはトランザクションに関与しているすべての関与ノードを含み、分散型システム内には1つまたは複数の関与ノードが存在することができる。いくつかの実施形態では、コーディネータ・ノードが関与ノードである場合もある。
104で、分散型システムのあらゆる他のノードに関するテール・ログ・シーケンス番号が(コーディネータ・ノードで)トラッキングされる。分散型システムにおいて、少なくとも1つの他のノードが関与ノードであることは明らかである。分散型システム内の各ノードが、そのノードによって実行されるすべての要求のログを維持する。ログ・レコードは、通常、最初にランダム・アクセス・メモリ(RAM)などの揮発性メモリ、すなわち、障害の影響を受けやすいメモリ内に作成される。要求された動作をノードがコミットする準備が整った場合、ノードは、要求された動作に関連付けられたログ・レコードを、ハード・ディスクなどの不揮発性メモリに「フラッシュ」、すなわち書き込む。ログ・レコードのフラッシュにより、その後しばらくして障害が発生した場合、ノードは要求された動作を再実行することができる。各テール・ログ・シーケンス番号は、それぞれのノードによってフラッシュされた最新のトランザクション・ログ・レコードを近似する。
その後、106で、1つまたは複数の関与ノードのそれぞれについて、トランザクションに関連付けられた最大ログ・シーケンス番号が決定される。通常、単一トランザクション内に複数の要求が存在する。各関与ノードは複数の要求を処理するために割り当てることが可能であり、各要求は別々のログ・レコードを有することから、各最大ログ・シーケンス番号は、それぞれの関与ノードでトランザクションに要求された最高トランザクション・ログ・レコードに対応する(すなわち、トランザクション・ログ・レコードのログ・シーケンス番号は、そのトランザクションについてそれぞれの関与ノードによって実行された最終の要求動作に対応する)。各ノードのログはそのログに固有であるため、1つのノードでのログ・シーケンス番号は、通常、他のノードでの同じログ・シーケンス番号と異なるトランザクションに対応することになる。
トランザクションは、1つまたは複数の関与ノードそれぞれについてのテール・ログ・シーケンス番号が、それぞれの関与ノードでのトランザクションに関連付けられた最大ログ・シーケンス番号よりも大きいかまたは等しい場合に、コーディネータ・ノードでコミットされる(108)。これにより、コーディネータ・ノードでトランザクションがコミットされる前に、各関与ノードがそのそれぞれのトランザクション要求をコミットしたことが保証され、データの整合性を保持する。
図2〜図3には、本発明の実施形態に従った、分散型システムにおいてトランザクションをコミットするためのプロセス200が示される。202で、トランザクションをコミットする要求が、分散型システムのコーディネータ・ノードで、クライアントから受信される。コミット要求がサブミットされた場合、クライアントは通常、データを修正、削除、または挿入する要求などの多くの他の要求をすでにコーディネータ・ノードにサブミットしており、その後、それらの要求はトランザクションに関与している分散型システム内の1つまたは複数の関与ノードに転送されている。
分散型システム内の他のノードそれぞれについてのエントリを備える第1のアレイが、コーディネータ・ノードで維持される(204)。各エントリは、それぞれの他のノードについてテール・ログ・シーケンス番号を格納するように動作可能である。206で、他のノードのうちの1つからのメッセージに新しいテール・ログ・シーケンス番号が結合(piggyback)された場合、第1のアレイは更新される。メッセージは、1つまたは複数の応答、1つまたは複数の要求、あるいはそれら2つの組み合わせを含むことができる。その結果、テール・ログ・シーケンス番号は、新しい別のメッセージで送信されるのではなく、1つのノードがすでに他のノードに送る予定であったメッセージと共に含められるため、メッセージング・トラフィックが大幅に低減されることになる。加えて、テール・ログ・シーケンス番号を既存のメッセージに追加するコストは非常に低く、通常は数バイト余分なだけである。
いくつかの実装では、ノードによって送信されるテール・ログ・シーケンス番号は、ノードによってフラッシュされた実際の最新のトランザクション・ログ・レコードではなく、何らかの以前のトランザクション・ログ・レコードである。これにより、他のトランザクションに割り振られたリソースをアンロックまたはアンラッチする時間がより多く与えられるため、メモリなどの、ノード上のリソースに関する競合を最小限にする一助となる。
トランザクションに対する第2のアレイが、208で作成される。第2のアレイは、1つまたは複数の関与ノードのそれぞれに関するエントリを備え、各エントリは、それぞれの関与ノードについてのトランザクションに関連付けられた最大ログ・シーケンス番号を格納するように動作可能である。210で、1つまたは複数の関与ノードのうちの1つからの応答に、トランザクションに関連付けられた最大ログ・シーケンス番号が結合された場合、第2のアレイは更新される。1つまたは複数の関与ノードがすでにコーディネータ・ノードに送信する予定であった応答に、最大ログ・シーケンス番号を結合することによって、メッセージング・トラフィックはさらに低減される。
次に、第2のアレイが第1のアレイと比較され、1つまたは複数の関与ノードのそれぞれが、それぞれの関与ノードでトランザクションに要求された最高トランザクション・ログ・レコードをフラッシュしたかどうかが判別される(212)。1つまたは複数の関与ノードのそれぞれが、それぞれの関与ノードでトランザクションに要求された最高トランザクション・ログ・レコードをフラッシュした場合、コーディネータ・ノードでトランザクションに関するコミット・ログ・レコードが書き込まれ(214)、それぞれの関与ノードに送信されるようにすでにスケジューリングされた他のメッセージと共に、1つまたは複数の関与ノードのそれぞれにコミット要求が送信されるようにスケジューリングされ(216)、正常コミット・メッセージがクライアントに戻される(218)。
メッセージング・トラフィックは、それぞれの関与ノードに送信されるようにすでにスケジューリングされた他のメッセージを介して、各関与ノードにコミット要求を送信することによって、再度改善される。関与ノードがコミット要求を受信すると、関与ノードは、トランザクション用に予約されたリソースのアンロック、およびトランザクションに関するコミット・ログ・レコードの書き込みなどの、ローカル・コミット処理を実行することになる。関与ノードがローカル・コミット処理を完了すると、関与ノードは、トランザクションをローカルにコミットした旨の応答をコーディネータ・ノードに送信することになる。この応答が、関与ノードからコーディネータ・ノードへと送信される無関係なメッセージと結合され、メッセージング・トラフィックをさらに低減させることができる。コーディネータ・ノードが各関与ノードからの返答を受信すると、コーディネータ・ノードは、トランザクションの状態に関する情報を保持するために、割り当てられたコーディネータ・ノードのログ・スペースを再利用(reclaim)することになる(220)。この情報は、各関与ノードの識別などを含むことができる。
1つまたは複数の関与ノードのうちの少なくとも1つに関するテール・ログ・シーケンス番号が、少なくとも1つの関与ノードのトランザクションに関連付けられた最大ログ・シーケンス番号よりも小さい場合、他のチェックがすでに実行されたかどうかに関して判別される(222)。他のチェックが何も実行されていない場合、コーディネータ・ノードはタイムアウトまで待機した後、再度チェックすることができる。他方で、他のチェックがすでに実行されている場合、少なくとも1つの関与ノードで1つまたは複数のトランザクション・ログ・レコードをフラッシュするためのメッセージが、少なくとも1つの関与ノードに送信される(224)。
いくつかの実施形態では、コーディネータ・ノードは、1つまたは複数のトランザクション・ログ・レコードをフラッシュするためのメッセージを送信した後に再度チェックするまで、単に待機することになる。他の実施形態では、メッセージは、フラッシュされるログ・シーケンス番号および応答要求を含むことができる。次にコーディネータ・ノードは、次に進むまで応答を待つことになる。テール・ログ・シーケンス番号を頻繁に更新できるようにノード間で多数のメッセージが送信されるため、分散型システムは一般に多くのトランザクションを処理することから、1つまたは複数のトランザクション記録をフラッシュするための要求を関与ノードに積極的に送信する必要性は、ほとんど生じないはずである。
クラッシュ・リカバリを実行する関与ノードは、たとえトランザクションがコミットされていても、いかなるコミット要求も見ない可能性がある。そうした環境の下では、クラッシュ・リカバリを実行する関与ノードは、トランザクションの状態を決定し、適宜コミットするかまたは打ち切るために、コーディネータ・ノードと通信することになる。コーディネータ・ノードは、それぞれの関与ノードがトランザクションをローカルにコミットした旨の返答を各関与ノードから受信するまで、トランザクションの状態に関する情報を保持するために、割り当てられたログ・スペースを再利用しないことになるため、トランザクションの状態を依然として記憶していることになる。
特定のトランザクションは、プリフェッチ(すなわち、先読み)要求などの、データを修正、削除、または挿入しない要求を含むことができる。これらの要求は、通常非同期であり、時には、ロック・タイムアウトまたはデッドロックに遭遇する。デッドロックは、第1のトランザクションにリソースAが割り振られており、リソースBの割り振りを待機しているが、同時に、第2のトランザクションにはリソースBが割り振られており、リソースAの割り振りを待機している場合に、発生する可能性がある。
あるノードでデッドロックが発生した場合、そのノードは、通常、ロック・タイムアウト後にトランザクションのうちの1つのロールバックを試行することになる。しかしながら、分散トランザクションでは、ノードが関与ノードである場合、コーディネータ・ノードにロールバックのための許可を求めなければならない。いくつかの実施形態では、コーディネータ・ノードは、前述のようにすでにコミットを処理していない場合はロールバックの許可を認め、任意の他の関与ノードにロールバックを通知することになる。そうでなければ、コーディネータ・ノードは、関与ノードがロールバックを実行しないようにすることになる。
図4〜図5は、本発明の実装に従った分散型システム300を示す。分散型システム300は、ノード302aおよび302bを含む。ノード302aは、データベース304aに結合され、ノード302bはデータベース304bおよび304cに結合される。トランザクション・ログ306aおよび306bは、それぞれノード302aおよび302b上で維持される。トランザクション・ログ306aの例を図5に見ることができる。例示的トランザクション・ログ306aは、ログ・シーケンス番号(LSN)列314a、トランザクションID列314b、動作列314c、および複数の行(すなわち記録)316を含む。他の実施形態では、トランザクション・ログは、より多いかまたはより少ない列、異なる列、異なる情報などを備えた、異なるものとすることができる。
ノード302aおよび302bは、アレイ308aおよび308cも含む。図4で、分散型システム300はノード302aおよび302bのみを備えるように示されているため、図5に示されるように、アレイ308aおよび308cは、それぞれが唯一のエントリ318aおよび318cを備えたテールLSNアレイである。この実施形態では、エントリ318aは、ノード302bによってフラッシュされた最新のトランザクション・ログ・レコードの近似であり、エントリ318cは、ノード302aによってフラッシュされた最新のトランザクション・ログ・レコードの近似である。
クライアント310がノード302aにトランザクションをサブミットしたため、最大トランスLSNアレイ308bがノード302aに含まれる、ここでノード302bは関与ノードである。クライアント310は、ノード302a、ノード302b、あるいは、分散型システム300の内部または外部にある何らかの他のノード(図示せず)に常駐する、アプリケーションまたはプロセスとすることができる。最大トランスLSNアレイ 308bは、ノード302bでトランザクションに要求された最高トランザクション・ログ・レコードに関するエントリ318bを含む。メッセージ312a〜hは、クライアント310、ノード302a、およびノード302bの間でのメッセージングを示すために、図4に示されている。
本発明の他の態様に従った分散型システム400が、図6に示される。分散型システム400は、ノード402a〜dおよびデータベース404a〜kを含む。クライアント・アプリケーション406はノード402a上で動作する。ノード402aはログ・レコードを格納するためのログ・スペース410と、トランザクションを調整するためのエージェント408a〜bも含む。エージェント408a〜bは、ノード402a上で実行中のタスクまたはプロセスとすることができる。本発明のいくつかの実施形態では、一方のエージェントを使用してトランザクションの実行を処理し、他方のエージェントを使用してトランザクションのコミットメントを処理することができる。
本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはハードウェア要素およびソフトウェア要素の両方を含む実施形態、の形を取ることができる。一態様では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むが、これらに限定されることのない、ソフトウェア内で実装される。
さらに、本発明は、コンピュータまたは任意の命令実行システムによって、またはこれらに関連して使用するための、プログラム・コードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能媒体からアクセス可能な、コンピュータ・プログラム製品の形を取ることもできる。本説明では、コンピュータ使用可能またはコンピュータ読み取り可能媒体は、命令実行のシステム、装置、またはデバイスによって、あるいはそれらに関連して使用するための、プログラムの包含、格納、通信、伝播、または移送が可能な、任意の装置とすることができる。
媒体は、電子、磁気、光、電磁、赤外線、または半導体のシステム(あるいは装置またはデバイス)、あるいは伝播媒体とすることができる。コンピュータ読み取り可能媒体の例には、半導体またはソリッド・ステート・メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、剛体磁気ディスク、および光ディスクが含まれる。光ディスクの現行例には、DVD、コンパクト・ディスク読み取り専用メモリ(CD−ROM)、およびコンパクト・ディスク読み取り/書き込み(CD−R/W)が含まれる。
図7は、プログラム・コードの格納または実行、あるいはその両方に好適な、データ処理システム500を示す。データ処理システム500は、システム・バス506を介してメモリ要素504a〜bに結合された、プロセッサ502を含む。他の実施形態では、データ処理システム500は、複数のプロセッサを含むことが可能であり、各プロセッサは、1つまたは複数のメモリ要素に直接、またはシステム・バスを介して間接的に結合することができる。
メモリ要素504a〜bは、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量ストレージと、実行中に大容量ストレージからコードを取り出さなければならない回数を減らすために、少なくともいくつかのプログラム・コードの一時ストレージを提供するキャッシュ・メモリとを、含むことができる。図に示されるように、入力/出力すなわちI/Oデバイス508a〜b(キーボード、ディスプレイ、ポインティング・デバイスなどを含むがこれらに限定されない)が、データ処理システム500に結合される。I/Oデバイス508a〜bは、直接、または介在するI/Oコントローラ(図示せず)を介して間接的に、データ処理システム500に結合することができる。
この実施形態では、データ処理システム500を、通信リンク512を介して他のデータ処理システムあるいはリモートのプリンタまたはストレージ・デバイスに結合できるようにするために、ネットワーク・アダプタ510がデータ処理システム500に結合される。通信リンク512は、専用ネットワークまたは公衆ネットワークとすることができる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在使用可能なネットワーク・アダプタ・タイプの数例に過ぎない。
テール・ログ・シーケンス番号、最大ログ・シーケンス番号、コミット要求、あるいはローカル・コミット確認、またはそれらのすべてに関するノード間での通信を、他の既存のメッセージと結合することによって、分散型システムにおけるメッセージング・トラフィックを大幅に低減させることができる。このメッセージング・トラフィックの低減の結果、トランザクションのコミット時間がより迅速になり、同程度の性能を維持しながらも、それほど強力でないネットワークなどの、低コストのシステムを使用することができる。
以上、分散型システムにおいてトランザクションをコミットするための様々な実装について説明してきた。しかしながら、当業者であれば、この実装に対する様々な修正が可能であること、ならびに、任意の変形が本発明の趣旨および範囲内であることを、容易に理解されよう。たとえば、前述のプロセス流れは、特定順序のプロセス動作を参照しながら説明されている。しかしながら、前述のプロセス動作の多くの順序は、本発明の範囲または動作に影響を与えることなく変更することができる。したがって、当業者であれば、添付の特許請求の範囲の趣旨および範囲を逸脱することなく、多くの修正が実行可能である。
本発明の態様に従った、分散型システムにおいてトランザクションをコミットするための方法を示すプロセス流れ図である。 本発明の一実施に従った、分散型システムにおいてトランザクションをコミットするための方法を示す流れ図である。 本発明の一実施に従った、分散型システムにおいてトランザクションをコミットするための方法を示す流れ図である。 本発明の実施形態に従った、分散型システムを示す図である。 本発明の実施形態に従った、分散型システムを示す図である。 本発明の他の態様に従った、分散型システムを示す図である。 本発明の実施形態が実装可能なデータ処理システムを示すブロック図である。

Claims (20)

  1. 分散型システムのコーディネータ・ノードでトランザクションをコミットするようにとの要求をクライアントから受信するステップであって、前記分散型システムが1つまたは複数の関与ノードを備える、受信するステップと、
    前記分散型システムにおけるすべての他のノードそれぞれについて、テール・ログ・シーケンス番号をトラッキングするステップであって、各テール・ログ・シーケンス番号は前記それぞれのノードによってフラッシュされた最新のトランザクション・ログ・レコードを近似し、前記すべての他のノードのうちの少なくとも1つが関与ノードである、トラッキングするステップと、
    前記1つまたは複数の関与ノードのそれぞれについて前記トランザクションに関連付けられた最大ログ・シーケンス番号を決定するステップであって、各最大ログ・シーケンス番号が前記それぞれの関与ノードでの前記トランザクションに必要な最高のトランザクション・ログ・レコードに対応する、決定するステップと、
    前記1つまたは複数の関与ノードのそれぞれについての前記テール・ログ・シーケンス番号が、前記それぞれの関与ノードでの前記トランザクションに関連付けられた前記最大ログ・シーケンス番号よりも大きいかまたは等しい場合、前記コーディネータ・ノードで前記トランザクションをコミットするステップと、
    を有する、分散型システムにおいてトランザクションをコミットするための方法。
  2. 前記分散型システムにおける前記すべての他のノードそれぞれについて、前記テール・ログ・シーケンス番号をトラッキングするステップが、
    前記分散型システム内の前記すべての他のノードそれぞれについてのエントリを備える第1のアレイを維持するステップであって、各エントリは、前記それぞれの他のノードについて前記テール・ログ・シーケンス番号を格納するように動作可能である、維持するステップと、
    前記すべての他のノードのうちの1つからのメッセージに新しいテール・ログ・シーケンス番号が結合された場合、前記第1のアレイを更新するステップと、
    を有する、請求項1に記載の方法。
  3. 前記新しいテール・ログ・シーケンス番号が、前記ノードによってフラッシュされた最も新しいトランザクション・ログ・レコードではなく、前記メッセージが、1つまたは複数の応答、1つまたは複数の要求、あるいは、少なくとも1つの応答および少なくとも1つの要求を備える、請求項2に記載の方法。
  4. 前記1つまたは複数の関与ノードのそれぞれについて前記トランザクションに関連付けられた前記最大ログ・シーケンス番号を決定するステップが、
    前記トランザクションに対する第2のアレイを作成するステップであって、前記第2のアレイは、前記1つまたは複数の関与ノードのそれぞれに関するエントリを備え、各エントリは、前記それぞれの関与ノードについての前記トランザクションに関連付けられた前記最大ログ・シーケンス番号を格納するように動作可能である、作成するステップと、
    前記1つまたは複数の関与ノードのうちの1つからの応答に、前記トランザクションに関連付けられた前記最大ログ・シーケンス番号が結合された場合、前記第2のアレイを更新するステップと、
    を有する、請求項2に記載の方法。
  5. 前記コーディネータ・ノードで前記トランザクションをコミットするステップが、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュしたかどうかを判別するために、前記第2のアレイを前記第1のアレイと比較するステップと、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、前記コーディネータ・ノードで前記トランザクションに関するコミット・ログ・レコードを書き込むステップと、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、前記それぞれの関与ノードに送信されるようにすでにスケジューリングされた他のメッセージと共に、前記1つまたは複数の関与ノードのそれぞれにコミット要求が送信されるようにスケジューリングするステップと、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、正常コミット・メッセージを前記クライアントに戻すステップと、
    を有する、請求項4に記載の方法。
  6. 前記トランザクションが前記それぞれの関与ノードでコミットされていることを指定する応答が、前記1つまたは複数の関与ノードそれぞれから受信された場合、前記トランザクションの状態に関する情報を保持するために、割り当てられた前記コーディネータ・ノードのログ・スペースを再利用するステップをさらに有する、請求項5に記載の方法。
  7. 各応答が、前記それぞれの関与ノードから前記コーディネータ・ノードへと送信されている無関係なメッセージと結合される、請求項6に記載の方法。
  8. 前記コーディネータ・ノード上の第1のエージェントが前記トランザクションの実行を処理し、前記コーディネータ・ノード上の第2のエージェントが前記トランザクションのコミットメントを処理する、請求項1に記載の方法。
  9. 前記少なくとも1つの関与ノードに関する前記テール・ログ・シーケンス番号が、前記少なくとも1つの関与ノードの前記トランザクションに関連付けられた前記最大ログ・シーケンス番号よりも小さい場合、前記少なくとも1つの関与ノードで1つまたは複数のトランザクション・ログ・レコードをフラッシュするためのメッセージを少なくとも1つの関与ノードに送信するステップをさらに有する、請求項1に記載の方法。
  10. コンピュータ読み取り可能媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ読み取り可能媒体は、分散型システムにおいてトランザクションをコミットするためのコンピュータ読み取り可能プログラムを含み、前記コンピュータ読み取り可能プログラムは、コンピュータ上で実行された場合、
    分散型システムのコーディネータ・ノードでトランザクションをコミットするようにとの要求をクライアントから受信する動作であって、前記分散型システムが1つまたは複数の関与ノードを備える、受信する動作と、
    前記分散型システムにおけるすべての他のノードそれぞれについて、テール・ログ・シーケンス番号をトラッキングする動作であって、各テール・ログ・シーケンス番号は前記それぞれのノードによってフラッシュされた最新のトランザクション・ログ・レコードを近似し、前記すべての他のノードのうちの少なくとも1つが関与ノードである、トラッキングする動作と、
    前記1つまたは複数の関与ノードのそれぞれについて前記トランザクションに関連付けられた最大ログ・シーケンス番号を決定する動作であって、各最大ログ・シーケンス番号が前記それぞれの関与ノードでの前記トランザクションに必要な最高のトランザクション・ログ・レコードに対応する、決定する動作と、
    前記1つまたは複数の関与ノードのそれぞれについての前記テール・ログ・シーケンス番号が、前記それぞれの関与ノードでの前記トランザクションに関連付けられた前記最大ログ・シーケンス番号よりも大きいかまたは等しい場合、前記コーディネータ・ノードで前記トランザクションをコミットする動作と、
    を、前記コンピュータに実行させる、コンピュータ・プログラム製品。
  11. 前記分散型システムにおける前記すべての他のノードそれぞれについて、前記テール・ログ・シーケンス番号をトラッキングする動作が、
    前記分散型システム内の前記すべての他のノードそれぞれについてのエントリを備える第1のアレイを維持する動作であって、各エントリは、前記それぞれの他のノードについて前記テール・ログ・シーケンス番号を格納するように動作可能である、維持する動作と、
    前記すべての他のノードのうちの1つからのメッセージに新しいテール・ログ・シーケンス番号が結合された場合、前記第1のアレイを更新する動作と、
    を有し、
    前記1つまたは複数の関与ノードのそれぞれについて前記トランザクションに関連付けられた前記最大ログ・シーケンス番号を決定する動作が、
    前記トランザクションに対する第2のアレイを作成する動作であって、前記第2のアレイは、前記1つまたは複数の関与ノードのそれぞれに関するエントリを備え、各エントリは、前記それぞれの関与ノードについての前記トランザクションに関連付けられた前記最大ログ・シーケンス番号を格納するように動作可能である、作成する動作と、
    前記1つまたは複数の関与ノードのうちの1つからの応答に、前記トランザクションに関連付けられた前記最大ログ・シーケンス番号が結合された場合、前記第2のアレイを更新する動作と、
    を有し、
    前記コーディネータ・ノードで前記トランザクションをコミットする動作が、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュしたかどうかを判別するために、前記第2のアレイを前記第1のアレイと比較する動作と、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、前記コーディネータ・ノードで前記トランザクションに関するコミット・ログ・レコードを書き込む動作と、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、前記それぞれの関与ノードに送信されるようにすでにスケジューリングされた他のメッセージと共に、前記1つまたは複数の関与ノードのそれぞれにコミット要求が送信されるようにスケジューリングする動作と、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、正常コミット・メッセージを前記クライアントに戻す動作と、
    を有する、請求項10に記載のコンピュータ・プログラム製品。
  12. 前記新しいテール・ログ・シーケンス番号が、前記ノードによってフラッシュされた最も新しいトランザクション・ログ・レコードではなく、前記メッセージが、1つまたは複数の応答、1つまたは複数の要求、あるいは、少なくとも1つの応答および少なくとも1つの要求を備える、請求項11に記載のコンピュータ・プログラム製品。
  13. 前記コンピュータ読み取り可能プログラムは、前記コンピュータ上で実行された場合、
    前記トランザクションが前記それぞれの関与ノードでコミットされていることを指定する応答が、前記1つまたは複数の関与ノードそれぞれから受信された場合、前記トランザクションの状態に関する情報を保持するために、割り当てられた前記コーディネータ・ノードのログ・スペースを再利用する動作を、さらに前記コンピュータに実行させ、各応答は、前記それぞれの関与ノードから前記コーディネータ・ノードへと送信されている無関係なメッセージと結合される、請求項10に記載のコンピュータ・プログラム製品。
  14. 前記コーディネータ・ノード上の第1のエージェントが前記トランザクションの実行を処理し、前記コーディネータ・ノード上の第2のエージェントが前記トランザクションのコミットメントを処理する、請求項10に記載のコンピュータ・プログラム製品。
  15. 前記コンピュータ読み取り可能プログラムは、前記コンピュータ上で実行された場合、
    前記少なくとも1つの関与ノードに関する前記テール・ログ・シーケンス番号が、前記少なくとも1つの関与ノードの前記トランザクションに関連付けられた前記最大ログ・シーケンス番号よりも小さい場合、前記少なくとも1つの関与ノードで1つまたは複数のトランザクション・ログ・レコードをフラッシュするためのメッセージを少なくとも1つの関与ノードに送信する動作を、さらに前記コンピュータに実行させる、請求項10に記載のコンピュータ・プログラム製品。
  16. 複数のデータベースと、
    互いに接続された複数のノードと、
    を備える分散型システムであって、前記複数のノードそれぞれが前記複数のデータベースのうちの1つまたは複数に結合され、前記複数のノードのうちの少なくとも1つが、
    前記少なくとも1つのノードでトランザクションをコミットするようにとの要求をクライアントから受信する動作であって、前記少なくとも1つのノードが前記トランザクションのコーディネータ・ノードであり、前記複数のノードのうちの1つまたは複数が関与ノードである、受信する動作と、
    前記分散型システムにおけるすべての他のノードそれぞれについて、テール・ログ・シーケンス番号をトラッキングする動作であって、各テール・ログ・シーケンス番号は前記それぞれのノードによってフラッシュされた最新のトランザクション・ログ・レコードを近似し、前記すべての他のノードのうちの少なくとも1つが関与ノードである、トラッキングする動作と、
    前記1つまたは複数の関与ノードのそれぞれについて前記トランザクションに関連付けられた最大ログ・シーケンス番号を決定する動作であって、各最大ログ・シーケンス番号が前記それぞれの関与ノードでの前記トランザクションに必要な最高のトランザクション・ログ・レコードに対応する、決定する動作と、
    前記1つまたは複数の関与ノードのそれぞれについての前記テール・ログ・シーケンス番号が、前記それぞれの関与ノードでの前記トランザクションに関連付けられた前記最大ログ・シーケンス番号よりも大きいかまたは等しい場合、前記コーディネータ・ノードで前記トランザクションをコミットする動作と、
    を、実行するように動作可能な、分散型システム。
  17. 前記分散型システムにおける前記すべての他のノードそれぞれについて、前記テール・ログ・シーケンス番号をトラッキングする動作が、
    前記分散型システム内の前記すべての他のノードそれぞれについてのエントリを備える第1のアレイを維持する動作であって、各エントリは、前記それぞれの他のノードについて前記テール・ログ・シーケンス番号を格納するように動作可能である、維持する動作と、
    前記すべての他のノードのうちの1つからのメッセージに新しいテール・ログ・シーケンス番号が結合された場合、前記第1のアレイを更新する動作と、
    を有し、
    前記1つまたは複数の関与ノードのそれぞれについて前記トランザクションに関連付けられた前記最大ログ・シーケンス番号を決定する動作が、
    前記トランザクションに対する第2のアレイを作成する動作であって、前記第2のアレイは、前記1つまたは複数の関与ノードのそれぞれに関するエントリを備え、各エントリは、前記それぞれの関与ノードについての前記トランザクションに関連付けられた前記最大ログ・シーケンス番号を格納するように動作可能である、作成する動作と、
    前記1つまたは複数の関与ノードのうちの1つからの応答に、前記トランザクションに関連付けられた前記最大ログ・シーケンス番号が結合された場合、前記第2のアレイを更新する動作と、
    を有し、
    前記コーディネータ・ノードで前記トランザクションをコミットする動作が、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュしたかどうかを判別するために、前記第2のアレイを前記第1のアレイと比較する動作と、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、前記コーディネータ・ノードで前記トランザクションに関するコミット・ログ・レコードを書き込む動作と、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、前記それぞれの関与ノードに送信されるようにすでにスケジューリングされた他のメッセージと共に、前記1つまたは複数の関与ノードのそれぞれにコミット要求が送信されるようにスケジューリングする動作と、
    前記1つまたは複数の関与ノードのそれぞれが、前記それぞれの関与ノードで前記トランザクションに要求された前記最高トランザクション・ログ・レコードをフラッシュした場合、正常コミット・メッセージを前記クライアントに戻す動作と、
    を有する、請求項16に記載の分散型システム。
  18. 前記新しいテール・ログ・シーケンス番号が、前記ノードによってフラッシュされた最も新しいトランザクション・ログ・レコードではなく、前記メッセージが、1つまたは複数の応答、1つまたは複数の要求、あるいは、少なくとも1つの応答および少なくとも1つの要求を備える、請求項17に記載の分散型システム。
  19. さらに前記コーディネータ・ノードが、
    前記トランザクションが前記それぞれの関与ノードでコミットされていることを指定する応答が、前記1つまたは複数の関与ノードそれぞれから受信された場合、前記トランザクションの状態に関する情報を保持するために、割り当てられた前記コーディネータ・ノードのログ・スペースを再利用する動作を、実行するように動作可能であり、各応答は、前記それぞれの関与ノードから前記コーディネータ・ノードへと送信されている無関係なメッセージと結合される、請求項17に記載の分散型システム。
  20. 前記コーディネータ・ノード上の第1のエージェントが前記トランザクションの実行を処理し、前記コーディネータ・ノード上の第2のエージェントが前記トランザクションのコミットメントを処理し、さらに前記コーディネータ・ノードが、
    前記少なくとも1つの関与ノードに関する前記テール・ログ・シーケンス番号が、前記少なくとも1つの関与ノードの前記トランザクションに関連付けられた前記最大ログ・シーケンス番号よりも小さい場合、前記少なくとも1つの関与ノードで1つまたは複数のトランザクション・ログ・レコードをフラッシュするためのメッセージを少なくとも1つの関与ノードに送信する動作を、実行するように動作可能な、請求項16に記載の分散型システム。
JP2008544985A 2005-12-19 2006-12-12 分散型システムにおけるトランザクションのコミットメントのための方法、コンピュータ・プログラム製品、およびシステム Pending JP2009520253A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/312,994 US7725446B2 (en) 2005-12-19 2005-12-19 Commitment of transactions in a distributed system
PCT/EP2006/069587 WO2007071592A2 (en) 2005-12-19 2006-12-12 Commitment of transactions in a distributed system

Publications (1)

Publication Number Publication Date
JP2009520253A true JP2009520253A (ja) 2009-05-21

Family

ID=38024130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008544985A Pending JP2009520253A (ja) 2005-12-19 2006-12-12 分散型システムにおけるトランザクションのコミットメントのための方法、コンピュータ・プログラム製品、およびシステム

Country Status (7)

Country Link
US (2) US7725446B2 (ja)
EP (1) EP1963972A2 (ja)
JP (1) JP2009520253A (ja)
CN (1) CN101341466A (ja)
CA (1) CA2633309A1 (ja)
TW (1) TW200805162A (ja)
WO (1) WO2007071592A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018449A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd スナップショット取得処理プログラム、スナップショット取得処理方法、スナップショット・パティシパント・コンピュータ、スナップショット・コーディネータ・コンピュータ
KR20170013319A (ko) * 2014-05-30 2017-02-06 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765361B2 (en) * 2006-11-21 2010-07-27 Microsoft Corporation Enforced transaction system recoverability on media without write-through
US8527454B2 (en) * 2007-08-29 2013-09-03 Emc Corporation Data replication using a shared resource
CN101706811B (zh) * 2009-11-24 2012-01-25 中国科学院软件研究所 一种分布式数据库系统事务提交方法
US8356007B2 (en) * 2010-10-20 2013-01-15 Microsoft Corporation Distributed transaction management for database systems with multiversioning
US20110178984A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Replication protocol for database systems
US8825601B2 (en) 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US10198463B2 (en) 2010-04-16 2019-02-05 Salesforce.Com, Inc. Methods and systems for appending data to large data volumes in a multi-tenant store
CN102571850B (zh) * 2010-12-24 2014-08-06 中国移动通信集团山东有限公司 事务提交系统、方法及设备
US8442962B2 (en) * 2010-12-28 2013-05-14 Sap Ag Distributed transaction management using two-phase commit optimization
US9047331B2 (en) * 2011-04-21 2015-06-02 International Business Machines Corporation Scalable row-store with consensus-based replication
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
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
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
US9465648B2 (en) * 2012-07-31 2016-10-11 Hewlett Packard Enterprise Development Lp Distributed transaction processing through commit messages sent to a downstream neighbor
CN103257987A (zh) * 2012-12-30 2013-08-21 北京讯鸟软件有限公司 基于规则的分布式日志服务实现方法
US9195542B2 (en) * 2013-04-29 2015-11-24 Amazon Technologies, Inc. Selectively persisting application program data from system memory to non-volatile data storage
US9201919B2 (en) * 2013-05-07 2015-12-01 Red Hat, Inc. Bandwidth optimized two-phase commit protocol for distributed transactions
CN103294479A (zh) * 2013-06-19 2013-09-11 成都市欧冠信息技术有限责任公司 分布式事务处理方法与系统
CN106997305B (zh) * 2013-10-29 2020-09-29 华为技术有限公司 一种事务处理方法与装置
KR102271265B1 (ko) 2014-01-21 2021-07-01 오라클 인터내셔날 코포레이션 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법
US10348822B2 (en) * 2014-01-21 2019-07-09 Oracle International Corporation System and method for clustering in a multitenant application server environment
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
US10296371B2 (en) * 2014-03-17 2019-05-21 International Business Machines Corporation Passive two-phase commit system for high-performance distributed transaction execution
TWI556612B (zh) * 2014-04-29 2016-11-01 鼎捷軟件股份有限公司 適用於遠端程序呼叫的逾時控制單元與遠端程序呼叫方法
US9613078B2 (en) 2014-06-26 2017-04-04 Amazon Technologies, Inc. Multi-database log with multi-item transaction support
EP3198431A1 (en) 2014-09-24 2017-08-02 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10430402B2 (en) * 2015-01-16 2019-10-01 Red Hat, Inc. Distributed transaction with dynamic form
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
EP3326065B1 (en) * 2015-07-23 2023-05-31 Telefonaktiebolaget LM Ericsson (publ) Leaderless consistency protocol
CN107797850B (zh) * 2016-08-30 2021-09-21 阿里巴巴集团控股有限公司 分布式事务处理的方法、装置与系统
US10552409B2 (en) 2016-11-30 2020-02-04 International Business Machines Corporation Dynamically optimizing flows in a distributed transaction processing environment
CN109002462B (zh) * 2018-06-04 2020-11-27 北京明朝万达科技股份有限公司 一种实现分布式事务的方法及系统
US11120006B2 (en) * 2018-06-21 2021-09-14 Amazon Technologies, Inc. Ordering transaction requests in a distributed database according to an independently assigned sequence
CN109377215B (zh) 2018-08-06 2020-04-21 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
US10700850B2 (en) 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection
RU2719423C1 (ru) 2018-11-27 2020-04-17 Алибаба Груп Холдинг Лимитед Система и способ защиты информации
ES2879855T3 (es) 2018-11-27 2021-11-23 Advanced New Technologies Co Ltd Sistema y método para la protección de información
PL3545644T3 (pl) 2018-11-27 2021-06-28 Advanced New Technologies Co., Ltd. System i sposób ochrony informacji
KR102139897B1 (ko) 2018-11-27 2020-07-31 알리바바 그룹 홀딩 리미티드 정보 보호를 위한 시스템 및 방법
PL3552158T3 (pl) 2018-11-27 2021-07-26 Advanced New Technologies Co., Ltd. System i sposób ochrony informacji
CN109783204A (zh) * 2018-12-28 2019-05-21 咪咕文化科技有限公司 一种分布式事务处理方法、装置及存储介质
US11681657B2 (en) * 2019-07-31 2023-06-20 EMC IP Holding Company, LLC System and method for parallel flushing with bucketized data
CN111124635B (zh) * 2019-12-06 2024-07-12 北京达佳互联信息技术有限公司 任务处理方法、装置、电子设备和存储介质
US11392614B2 (en) * 2020-01-15 2022-07-19 EMC IP Holding Company LLC Techniques for performing offload copy operations
CN113934737A (zh) * 2020-06-29 2022-01-14 华为技术有限公司 一种数据库系统、管理事务的方法及装置
CN111858171B (zh) * 2020-07-10 2024-03-12 上海达梦数据库有限公司 一种数据备份方法、装置、设备及存储介质
CN113377502B (zh) * 2021-06-10 2024-06-14 上海达梦数据库有限公司 事务处理方法、装置、服务器、数据库管理系统及介质
US11768741B2 (en) * 2021-07-30 2023-09-26 International Business Machines Corporation Replicating changes written by a transactional virtual storage access method
JP7377305B2 (ja) * 2022-03-30 2023-11-09 株式会社日立製作所 分散トランザクション制御システム及び分散トランザクション制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168169A (ja) * 1992-07-06 1994-06-14 Digital Equip Corp <Dec> ログフォースなしに仮定コミットを持つ2相コミットプロトコルを使用する分散トランザクション処理
US6510421B1 (en) * 1998-12-29 2003-01-21 Oracle Corporation Performing 2-phase commit with presumed prepare

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799305A (en) 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US6564215B1 (en) * 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
DE60111072T2 (de) * 2000-10-26 2006-01-26 Prismedia Networks, Inc., San Jose Verfahren und vorrichtung zur parallelen nachrichtenübermittlung in echtzeit von dateisegmentierten
US7100076B2 (en) * 2003-05-09 2006-08-29 Hewlett-Packard Development Company, L.P. Minimum latency reinstatement of database transaction locks
US6845384B2 (en) 2003-08-01 2005-01-18 Oracle International Corporation One-phase commit in a shared-nothing database system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06168169A (ja) * 1992-07-06 1994-06-14 Digital Equip Corp <Dec> ログフォースなしに仮定コミットを持つ2相コミットプロトコルを使用する分散トランザクション処理
US6510421B1 (en) * 1998-12-29 2003-01-21 Oracle Corporation Performing 2-phase commit with presumed prepare

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN7008005828; James W. Stamos et al.: 'A Low-Cost Atomic Commit Protocol' Proceedings of the Ninth Symposium on Reliable Distributed Systems , 19901009, p. 66-75, IEEE Computer Society Press *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012018449A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd スナップショット取得処理プログラム、スナップショット取得処理方法、スナップショット・パティシパント・コンピュータ、スナップショット・コーディネータ・コンピュータ
KR20170013319A (ko) * 2014-05-30 2017-02-06 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템
US10379977B2 (en) 2014-05-30 2019-08-13 Huawei Technologies Co., Ltd. Data management method, node, and system for database cluster
KR101983208B1 (ko) 2014-05-30 2019-08-28 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템
US10860447B2 (en) 2014-05-30 2020-12-08 Huawei Technologies Co., Ltd. Database cluster architecture based on dual port solid state disk

Also Published As

Publication number Publication date
WO2007071592A3 (en) 2007-08-09
US7725446B2 (en) 2010-05-25
US20070143299A1 (en) 2007-06-21
EP1963972A2 (en) 2008-09-03
CA2633309A1 (en) 2007-06-28
CN101341466A (zh) 2009-01-07
TW200805162A (en) 2008-01-16
WO2007071592A2 (en) 2007-06-28
WO2007071592B1 (en) 2007-10-04
US20080235245A1 (en) 2008-09-25

Similar Documents

Publication Publication Date Title
JP2009520253A (ja) 分散型システムにおけるトランザクションのコミットメントのための方法、コンピュータ・プログラム製品、およびシステム
EP2877942B1 (en) Automatic transaction retry after session failure
US7284151B2 (en) Conditional data access after database system failure
US6889253B2 (en) Cluster resource action in clustered computer system incorporation prepare operation
JP2531881B2 (ja) 並行制御方法
US7260589B2 (en) High performance support for XA protocols in a clustered shared database
US20050283658A1 (en) Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
US8103643B2 (en) System and method for performing distributed transactions using global epochs
US9189303B2 (en) Shadow queues for recovery of messages
CN1842789A (zh) 用于在数据库恢复期间快照查询的系统和方法
US6944635B2 (en) Method for file deletion and recovery against system failures in database management system
WO2020025049A1 (zh) 数据同步的方法、装置、数据库主机及存储介质
US20090193286A1 (en) Method and System for In-doubt Resolution in Transaction Processing
US7165061B2 (en) Transaction optimization of read-only data sources
CN110121694B (zh) 一种日志管理方法、服务器和数据库系统
US6490595B1 (en) Method, system and program products for providing efficient syncpoint processing of distributed transactions
US20130318059A1 (en) Transfer of data from transactional data sources to partitioned databases in restartable environment
US20040153349A1 (en) Delayed creation of global transactions
CN109919768B (zh) 区块生成方法、装置、介质和计算设备
WO2023274409A1 (zh) 在区块链系统中执行交易的方法和区块链节点
JP4664931B2 (ja) データベースへのアクセスを制御するための異なったデータベースサーバ間のデータベースのオーナーシップのパーティション化
CN111104070A (zh) 分布式系统中数据一致性的实现方法及系统
JP4604032B2 (ja) 非共有データベースシステムにおける1段階コミット
JP2005506598A (ja) 分散共有ディスクシステムにおけるディスク書込
CN116149575B (zh) 面向服务器无感知计算的磁盘冗余阵列写入方法及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120220

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120220

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121017

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20121017

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20121017