JP5088734B2 - 耐障害性トランザクション処理システム及び処理方法 - Google Patents

耐障害性トランザクション処理システム及び処理方法 Download PDF

Info

Publication number
JP5088734B2
JP5088734B2 JP2007303105A JP2007303105A JP5088734B2 JP 5088734 B2 JP5088734 B2 JP 5088734B2 JP 2007303105 A JP2007303105 A JP 2007303105A JP 2007303105 A JP2007303105 A JP 2007303105A JP 5088734 B2 JP5088734 B2 JP 5088734B2
Authority
JP
Japan
Prior art keywords
transaction
processing
replica
processing result
replicas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007303105A
Other languages
English (en)
Other versions
JP2009129169A (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.)
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
Priority to JP2007303105A priority Critical patent/JP5088734B2/ja
Priority to US12/234,811 priority patent/US8364634B2/en
Publication of JP2009129169A publication Critical patent/JP2009129169A/ja
Application granted granted Critical
Publication of JP5088734B2 publication Critical patent/JP5088734B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • 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
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component

Landscapes

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

Description

本発明はトランザクション処理システムに関し、特に、耐障害性能を向上するためのレプリケーション(複製)・システム及び管理方法に関する。
従来より、データベースシステムの耐障害性能を保証することを目的として、データベースへの処理要求発生に応答してバックアップを作成することが実施されている。耐障害性の高いサービスを提供するために、災害等が発生した場合でも少なくとも1のサイトでトランザクションを実行可能にするため、十分距離が離れた場所にバックアップを配置することが一般的である。そのため、バックアップはデータベース装置とネットワーク通信により接続され、データベース装置の記憶が更新されることを契機としてバックアップの記憶を更新する、いわゆる同期が実施される。
一般的に、バックアップが利用されるシステムにおいて原初の処理結果を生成して保存するサーバ装置をアクティブサーバと呼称し、既に作成された複製元データを受信して保存するサーバ装置をバックアップ・サーバと呼称する。バックアップ方法の例としては、(A)プライマリ・バックアップ方式、(B)アクティブ・アクティブ方式等が知られている。
(A)プライマリ・バックアップ方式は、クライアントが送信したトランザクション処理要求をプライマリと呼ばれるデータベースサーバが処理し保存した時点で、バックアップ・サーバに向かって前記保存データを送信して複製を要求し、バックアップ・サーバが複製終了をプライマリ・サーバに通知し、この通知後にプライマリ・サーバがクライアントに処理結果を報告するものである(非特許文献1参照)。プライマリ・サーバは前述のアクティブサーバに相当するので、(A)をアクティブ・バックアップ構成等と呼称することがある。
図1に、前記(A)プライマリ・バックアップ方式の経時的処理過程を線図として示す。この線図は上から下に向かって時間又は段階の処理経過を示す。クライアント、プライマリ・サーバ(図1のレプリカ1)、バックアップ・サーバ(図1のレプリカ2)の各コンピュータを構成要素としてトランザクションを処理する過程は、次のように順序づけられる。
(ステップS21)プライマリ・サーバは処理要求を受信する。
(ステップS22)プライマリ・サーバは要求された処理を所定の手順で実行する。
(ステップS23)プライマリ・サーバは前記処理の終了後にバックアップ・サーバに複製を更新する要求を送信する。
(ステップS24)バックアップ・サーバは前記更新を反映する複製を作成する。
(ステップS25)バックアップ・サーバは複製の更新が終了したことを送信する。
(ステップS26)プライマリ・サーバはバックアップ・サーバが複製を更新したことを記憶し、これによってバックアップの目的が達せられる。
(ステップS27)プライマリ・サーバはクライアントに処理終了を送信する。
(ステップS28)クライアントはトランザクション処理の終了を認識する。
図1における、クライアントの処理要求から処理結果受信までの時間LPBはレイテンシと呼ばれ、リクエストを発してからリクエストの結果が返ってくるまでの遅延時間を指し、長いほど高レイテンシという。(A)プライマリ・バックアップ方式における時間LPBは、トランザクション処理に係るクライアント〜プライマリ間の1往復の通信及び処理の時間、及びプライマリ〜バックアップ間の1往復の通信及び処理の時間を含む。
(B)アクティブ・アクティブ方式は、相互に複製関係にある複数のデータベースサーバを用意し、クライアントからのトランザクションがこれらのデータベースサーバに送信され、クライアントはこれら2のデータベースサーバから処理結果の報告を受けるものである(非特許文献2参照)。(B)におけるデータベースサーバはいずれも自らの処理データを保存する点においてアクティブサーバである。
図2に、前記(B)アクティブ・アクティブ方式の経時的処理過程を、相互に複製(レプリカ)である2のデータベースサーバを構成要素に含む線図として示し、それぞれをレプリカ−1、レプリカ−2と呼ぶ。各コンピュータの間でトランザクションを処理する過程は、次のように順序づけられる。
(ステップS31)各レプリカはトランザクション処理要求を受信する。
(ステップS32)各レプリカは要求された処理を所定の手順で実行する。レプリカ1及びレプリカ2の処理はそれぞれS32−1、S32−2である。
(ステップS33)各レプリカは処理結果をクライアントに送信する。各レプリカの処理はそれぞれS33−1、S33−2である。
(ステップS34)クライアントは1つの処理結果を受信した時点で、要求した処理の終了を認識する。図2においては、S34のタイミングにおいてS33−1の処理結果を受信し、処理終了を認識する。
図2の(B)アクティブ・アクティブ方式においては、少なくとも1のレプリカが障害の発生なく処理結果をクライアントに送信できればトランザクション処理が可能となる。また、クライアントの処理要求から処理結果の受信までの時間LAAの期間は、トランザクション処理に係る複数の1往復の通信及び処理の時間のうち最短のものである。すなわち、2往復の通信の時間を要する(A)プライマリ・バックアップ方式よりも、(B)アクティブ・アクティブ方式は低レイテンシでありうる。
J. Gray and A. Reuter、 "Transaction Processing: concepts and techniques" in "Data Management Systems Series"、米国、 Morgan Kaufmann Publishers, Inc.、(1993) F. B. Schneider、 "Implementing Fault-Tolerant Services Using the State Machine Approach: A tutorial"、 Vol.22、 No.4、米国、 ACM Computing Surveys (CSUR)、(1990)、 pp.299-319
従来の(A)プライマリ・バックアップ方式においては、通信がクライアント〜プライマリ間の往復、プライマリ〜バックアップ間の往復の2往復に直列して渡り、この期間中にクライアントは待機状態になる。すなわち、クライアントが処理結果を受け取るまでのレイテンシが高いという課題がある。さらに、処理能力がレプリカ間の通信の最大パフォーマンスに依存するという課題がある。
また、従来の(B)アクティブ・アクティブ方式においては、クライアントからみた処理経路が1往復であることから(A)よりも低レイテンシでありうる。しかし、(B)は複数のデータベースサーバ装置の間に同期、すなわち相互に更新を反映する複製の作成が実施されない。具体的には、クライアント要求の時間的順序に結果が依存する場合に、トランザクションの整合性が取れなくなるという課題がある。(B)には、1のクライアントのみを受け付けて処理の時間的順序が固定された既知の過程、いわゆる「決定的なトランザクション」に処理が限られるという課題がある。より具体的には、他のクライアントからのトランザクション処理要求が同じ期間に発生した場合等に問題が生じる。
図2において、上述のクライアントからのトランザクション処理要求に加えて、他のクライアントからのトランザクション処理要求が発生した場合には、処理過程に次のステップが追加される。
(ステップS41)他のクライアントが各レプリカにトランザクション処理要求を送信する。
(ステップS42)各レプリカは要求された処理を所定の手順で実行する。各レプリカの処理はS42−1、S42−2である。
(ステップS43)各レプリカは処理結果を他のクライアントに送信する。
(ステップS44)他のクライアントは1つの処理結果を受信した時点で、要求した処理の終了を認識する。
ここで、先のレプリカ2における処理に注目すると、クライアントからの処理要求をS32−1において受信した後、S33−1において処理結果を送信するまでの間に、他のクライアントからの処理要求をS42−1において受信し、レプリカ1における処理の更新内容が実行順序に依存する場合には、レプリカ1の更新内容はレプリカ2の更新内容と相違する結果となりうる。
例えば、在庫が残り1個の商品に対して複数の消費者からの購入申し込みを受け付ける場合、トランザクションの更新結果は、どの消費者を先に受け付けるかという、要求の処理順序に依存しうる。
すなわち、(B)においては同一のトランザクション処理要求に対してレプリカ同士が異なる状態になりうる。換言すれば、(B)はトランザクションの整合性を保てない可能性がある。
上記課題に鑑み、本発明は、トランザクション処理のアトミシティ(単一性)を保証できるレプリケーションシステムにおいて、複数クライアント要求に基づくトランザクション処理を低レイテンシに実施することを目的とする。
また、本発明は、個々のサーバ装置の負荷を増大することなく、耐障害性を向上するためのレプリケーション(複製)の方法を提供することを目的とする。
さらに、本発明は、障害発生時にトランザクションを引き継げることを目的とする。
前記課題を解決するため、本発明は次の手段を有する。
本発明の第1の実施形態においては、複数のデータベースサーバ装置をコンピュータ・ネットワークを介して接続し相互にデータを複製するレプリケーションシステムを提供する。
このレプリケーションシステムにおいて、データベースサーバ装置は相互にレプリカであり、全てのレプリカは1の同一のトランザクション処理要求を受信する手段を備える。レプリカは、さらに、それぞれトランザクション処理を実行し、トランザクションの処理終了認識条件、コミット済みトランザクションの部分集合、及び処理結果を第1の処理結果として記憶する手段を備える。レプリカは、さらに、第1の処理結果を記憶する時点の後にトランザクションログを通信し合うことで、コミット可能な1のトランザクションログを決定する手段を備える。レプリカは、前記決定したトランザクションログをコミットした後、他の全てのレプリカにコミット完了を通知する手段を備え、各レプリカは前記コミットしたトランザクションに対応する処理結果を第2の処理結果として記憶する手段を備える。
本発明の別の実施形態においては、複数のデータベースサーバをコンピュータ・ネットワークを介して接続してデータを複製するレプリケーションの方法を提供する。
このレプリケーションの方法において、前記データベースサーバは相互にレプリカである。
このレプリケーションの方法は、レプリカが1の同一のトランザクション処理要求を受信するステップと、前記レプリカがそれぞれトランザクション処理を実行し、トランザクションの処理終了認識条件、コミット済みトランザクションの部分集合、及び処理結果を第1の処理結果として記憶するステップと、前記第1の処理結果を記憶する時点の後に全てのレプリカがトランザクションログを通信し合うことで、コミット可能な1のトランザクションログを決定するステップと、各レプリカが前記決定したトランザクションログをコミットした後、他の全てのレプリカにコミット完了を通知するステップと、各レプリカは前記コミットしたトランザクションに対応する処理結果を第2の処理結果として記憶するステップを含む。
本発明のレプリケーションシステムにおいては、コミット条件又はロールバック条件のいずれかを択一して処理終了認識条件とすることによりトランザクション処理のアトミシティ(単一性)を保証し、第1の処理結果を記憶してクライアントに送信しうる手段を備えることにより、トランザクション処理において低レイテンシであるという効果がある。換言すれば、クライアントが要求したトランザクション処理の終了を認識できるまでの時間を短縮することが可能になる。
さらに、第2の処理結果を生成するためのデータベースサーバ装置間の通信は非同期で実施されることにより、レプリカ間の複製の間隔を大きくすることが可能になり、個々のサーバ装置の負荷を増大することがなく、耐障害性を向上するためのレプリケーション(複製)のシステム及び方法を提供することができる。
以下、本発明の実施形態に係るレプリケーションシステム及び方法として、トランザクション処理の整合性を保ちながら、レイテンシの低い構成のシステム及び方法について説明する。
本発明の実施形態に係るレプリケーションシステムにおける第1の処理結果は、他のクライアントからの処理要求等によるトランザクションの衝突が発生しなければ矛盾のない処理結果である。この処理結果は、当業において楽観的処理結果(又は投機的処理結果)と呼ばれる技術用語の範囲に含まれる。
一方、本発明の実施形態に係るレプリケーションシステムにおける第2の処理結果は、全てのレプリカが同じ処理結果を保存した後の結果であり、他のトランザクション処理の影響を受けることはない。この処理結果はクライアントの待機時間が前記楽観的処理結果よりも長く、当業において前記楽観的処理結果と対照して悲観的処理結果と呼ばれる技術用語の範囲に含まれる。
これらの楽観的処理結果及び悲観的処理結果は、処理結果を生成したレプリカが記憶し、他のレプリカ又はクライアントに対して送信しうる。
第1の処理結果に含まれるトランザクションの処理終了認識条件について示す。以後、第n番目のトランザクション処理要求Tを契機として処理されるトランザクションを、トランザクションTと呼ぶ。また、前記レプリケーションシステムにおける第1の処理結果の生成からコミット可能な1のトランザクションログ決定までの中間の状態にあるトランザクションを、Unresolvedの状態、コミット可能な1のトランザクションログ決定後から全レプリカにコミット完了が通知されるまでの中間の状態にあるトランザクションをCommittingの状態、全レプリカがCommittingの状態であることを認識した状態をConfirmedの状態と呼ぶことにする。
(コミット条件の集合、ロールバック条件の集合)
トランザクションの処理終了認識条件は、コミット条件の集合と、ロールバック条件の集合から構成される。ある特定のレプリカAに注目して、これらの条件を次のように定義する。
コミット条件とは、「レプリカAが生成したトランザクションTiの更新ログがコミットされるには,レプリカAが生成したトランザクションTjの更新ログと同じ更新ログがコミットされる(Ti⇒Tj)」である。レプリカAの処理終了認識条件に含まれるコミット条件の集合をCで表す。
ロールバック条件とは、「レプリカAが生成したトランザクションTiの更新ログがコミットされるには,レプリカAが生成したトランザクションTjの更新ログと同じ更新ログがコミットされない(Ti⇔Tj)」である。レプリカAの処理終了認識条件に含まれるロールバック条件の集合をRで表す。
(レプリカAによるコミット条件の生成)
レプリカAにおいて、トランザクションTiが処理のためにデータを更新し、このデータをトランザクションTjが参照する時に、レプリカAは論理式(Ti⇒Tj)で表されるコミット条件を生成する。より具体的には、この論理式は、「レプリカAが生成したTjの更新ログがコミットされるには、レプリカAが生成したトランザクションTiの更新ログと同じ更新ログがコミットされる」というコミット条件である。このコミット条件の生成時においてトランザクションTiは、Unresolved、Committing、Confirmedのいずれの状態でもよい。
なお、トランザクションは複数のデータを参照する可能性があるため、レプリカAは任意の1のトランザクション処理において複数のコミット条件を生成して処理終了認識条件としうる。
(レプリカAによるロールバック条件の生成)
レプリカAにおいて、Unresolvedの状態のトランザクションTkが処理のためにデータを更新し、このデータと競合するデータをトランザクションTiが参照する時に、レプリカAは論理式(Ti⇔Tk)で表されるロールバック条件を生成する。より具体的には、この論理式は、「レプリカAで生成されたTiの更新ログがコミットされるには、レプリカAが処理したトランザクションTkの更新ログと同じ更新ログがコミットされない」というロールバック条件である。
なお、トランザクションは複数のデータを参照する可能性があるため、レプリカAは任意の1のトランザクション処理において複数のロールバック条件を生成して処理終了認識条件としうる。
(コミット条件及び/又はロールバック条件の一部からの条件生成)
前記レプリカAによるコミット条件の生成(Ti⇒Tj)の一部を構成する「レプリカAが生成したTjの更新ログがコミットされる」ことに関し、レプリカAは、この部分の処理終了認識条件も生成しうる。生成した処理終了認識条件は、Tiの処理終了認識条件としてのコミット条件の集合及び/又はロールバック条件の集合である。これらのコミット条件の集合及び/又はロールバック条件の集合はそれぞれC、Rに含めることができる。
(コミット済みトランザクションの部分集合の生成方法)
トランザクションTに対するコミット済みトランザクションの部分集合は、処理終了認識条件内のコミット条件に含まれるトランザクションの内のCommitting状態及び/又はConfirmed状態にあるトランザクションの集合である。それぞれのレプリカは、トランザクションTの処理終了認識条件を生成後、処理終了認識条件内のコミット条件に含まれるトランザクションの集合と、レプリカA内のCommitting状態及び/又はConfirmed状態にあるトランザクションの集合の積から求められる、コミット済みトランザクションの部分集合Sを生成する。
(クライアントによるトランザクション処理終了の判断)
クライアントは、全てのレプリカから受信した、トランザクションの処理終了認識条件と、コミット済みトランザクションの部分集合から、トランザクションの処理終了を判断する。
まず、全てのコミット済みトランザクションの部分集合の和集合を生成する。
次に、全てのトランザクションの処理終了認識条件のロールバック条件(Ti⇔Tj)のうち、Tiがコミット済みトランザクションの和集合に含まれているか調べ、もし含まれる場合はTjをロールバック確定トランザクションの集合Rに含める。そして、全てのロールバック条件(Ti⇔Tj)の内、もし1つでもTjがRに含まれない(Ti⇔Tj)が存在する場合は、トランザクションが処理終了していないと判断する。
次に、2つのトランザクションの処理終了認識条件のコミット条件の集合C、Cを選択する。ここに、コミット条件Cの要素は(Ti⇒Tj)であり、Cの要素は(Ti⇒Tk)であるとする。
例えば、Cを用いて説明する。Cの全てのコミット条件(Ti⇒Tj)のうち、TiがSに含まれないコミット条件の集合Uを生成する。
に関してもコミット条件(Ti⇒Tk)から同様にしてUを生成する。
そして、差集合(U−U)の要素(Ti⇒Tj)の全Tiに対し、C内の全ての(Ti⇒Tk)がC内に存在することを確認し、存在しない場合は、処理終了と判断しない。
全てのC、Cについて調べ、「処理終了判断不可」と判断されなかった場合は、トランザクションの処理が終了されたと判断する。
本発明の実施形態に係るレプリケーションシステムにおいては、クライアントが前記第1の処理結果の段階においてトランザクションの処理終了を確認できる場合には、背景技術に記載の(B)アクティブ・アクティブ方式と同等のレイテンシで、クライアントはトランザクション処理の終了を確認できる。
クライアントが前記第1の処理結果の段階でトランザクション処理終了を確認しない場合には、クライアントは前記第2の処理結果の段階においてトランザクションの処理終了を確認し、背景技術に記載の(A)プライマリ・バックアップ方式と同等のレイテンシで、クライアントはトランザクション処理の終了を確認できる。
トランザクションの衝突が少なければ、トランザクションの処理終了を前記第1の処理結果の段階で確認可能である。すなわち、本発明のレプリケーションシステムにおいては、クライアントはプライマリ・バックアップ構成に比べ、低いレイテンシで矛盾なくトランザクションの処理終了を確認しうる効果がある。
以下、本発明の実施形態について、図面を用いてさらに詳しく説明する。
[レプリケーションシステムの動作]
図3に、本発明の実施形態に係るレプリケーションシステムの経時的処理過程を線図として示す。図3は、本発明の最小構成として、ひとつのクライアント、レプリカ1、レプリカ2の各コンピュータを相互にネットワーク接続したものを例示する。トランザクションを処理する過程は、次のように順序づけられる。
(ステップS11)クライアントからレプリカ1及びレプリカ2に処理要求を送信する。レプリカ1への処理要求をS11−1、レプリカ2への処理要求をS11−2と示す。以下、2つのレプリカにおける各処理段階を同様に記述する。
(ステップS12)各レプリカは要求された処理を所定の手順で実行する。
(ステップS13)各レプリカはクライアントに第1の処理結果を送信する。
(ステップS14)クライアントは前記第1の処理結果を受信し、これを楽観的処理結果として認識する。
(ステップS15)レプリカ1はレプリカ2に複製を更新する要求を送信する。
(ステップS16)レプリカ2は前記更新を反映する複製を作成する。
(ステップS17)レプリカ2はレプリカ1に複製の更新が終了したことを送信する。
(ステップS18)レプリカ1は複製を更新したことを記憶する。
(ステップS19)レプリカ1はクライアントに第2の処理結果を送信する。
(ステップS20)クライアントは前記第2の処理結果を受信し、これを悲観的処理結果として認識する。
前記第1の処理結果は、図3に図示しない他のクライアントからの処理要求等によるトランザクションの衝突が発生しなければ、矛盾のない処理結果である。従って、トランザクション処理の衝突が発生しないという条件において、クライアントが楽観的処理結果を認識した時点でトランザクション処理を終了することが可能である。この時のクライアントの待ち時間は、図3における待ち時間Lである。
一方、第2の処理結果は、全てのレプリカが同じ処理結果を保存した後の結果であり、他のトランザクション処理の影響を受けることはない。この処理結果はクライアントの待機時間は前記楽観的処理結果よりも長くなる。クライアントの待ち時間は、図3における待ち時間Lにさらに待ち時間Lを加えた(L+L)である。
換言すれば、待ち時間L2は、トランザクション処理の衝突が発生しない条件において、プライマリ・バップアップ方式において必要であったクライアントの待ち時間LPBから短縮される差分の待ち時間である。
本発明のレプリケーションシステムにおいては、プライマリ・バップアップ方式と比較して、前記衝突の発生がないことを条件に、Lの待ち時間を短縮することが可能である。
[レプリケーションシステムの構成]
図4に、レプリケーションシステムを構成する、コンピュータ・ネットワークを介して接続されるシステムを示す。
このレプリケーションシステムは、少なくとも1のクライアント装置30、少なくとも2のデータベースサーバ装置をコンピュータ・ネットワーク35に接続して相互にデータ通信を可能にする。図4には、データベースサーバ装置−1(31)及びデータベースサーバ装置−2(32)を例示したが、これらに限らず、2以上のデータベースサーバ装置を任意に組み合わせてレプリケーションシステムに取り込むことができる。クライアント装置に関しても1以上の任意の台数を用いることができる。
前記クライアント装置及び前記データベースサーバ装置はいずれも独立したコンピュータ又はサーバ装置でありうる。特に、相互に複製(レプリカ)関係にあるデータベースサーバ装置は、耐障害性を増すためにそれぞれを遠隔地に配置してもよく、例えば、第1のデータベースサーバ装置を大都市近郊に、第2のデータベースサーバ装置を砂漠内の立入制限地区にそれぞれ配置する等、適宜設定してもよい。
レプリケーションシステムに含まれるコンピュータは、相互にネットワークを介して通信可能であればよく、同一国内に全てのコンピュータを配置してもよく、一部のコンピュータを外国に配置してもよい。
前記コンピュータ・ネットワーク35の物理的手段は、有線通信、無線通信、光通信等から任意に選択しうる。
[データベースサーバ装置又はクライアント装置のハードウェア構成]
図5は、レプリケーションシステムに含まれる各データベースサーバ装置又はクライアント装置を情報処理装置1000とし、そのハードウェア構成を示したものである。以下は、コンピュータを典型とする情報処理装置として全般的な構成を説明するが、その環境に応じて必要最小限な構成を選択できることはいうまでもない。
情報処理装置1000は、CPU(Central Processing Unit)1010、バスライン1005、通信I/F1040、メインメモリ1050、BIOS(Basic Input Output System)1060、パラレルポート1080、USBポート1090、グラフィック・コントローラ1020、VRAM1024、音声プロセッサ1030、I/Oコントローラ1070、ならびにキーボード及びマウス・アダプタ1100等の入力手段を備える。I/Oコントローラ1070には、フレキシブル・ディスク(FD)ドライブ1072、ハードディスク1074、光ディスク・ドライブ1076、半導体メモリ1078等の記憶手段を接続することができる。
音声プロセッサ1030には、増幅回路1032及びスピーカ1034が接続される。また、グラフィック・コントローラ1020には、表示装置1022が接続されている。
BIOS1060は、情報処理装置1000の起動時にCPU1010が実行するブートプログラムや、情報処理装置1000のハードウェアに依存するプログラム等を格納する。FD(フレキシブル・ディスク)ドライブ1072は、フレキシブル・ディスク1071からプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1050又はハードディスク1074に提供する。
図5には、情報処理装置1000の内部にハードディスク1074が含まれる例を示したが、バスライン1005又はI/Oコントローラ1070に外部機器接続用インタフェース(図示せず)を接続し、情報処理装置1000の外部にハードディスクを接続又は増設してもよい。
光ディスク・ドライブ1076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、CD−RAMドライブを使用することができる。この際は各ドライブに対応した光ディスク1077を使用する必要がある。光ディスク・ドライブ1076は光ディスク1077からプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1050又はハードディスク1074に提供することもできる。
情報処理装置1000に提供されるコンピュータ・プログラムは、フレキシブル・ディスク1071、光ディスク1077、又はメモリーカード等の記録媒体に格納されて利用者によって提供される。このコンピュータ・プログラムは、I/Oコントローラ1070を介して、記録媒体から読み出され、又は通信I/F1040を介してダウンロードされることによって、情報処理装置1000にインストールされ実行される。コンピュータ・プログラムが情報処理装置に働きかけて行わせる動作は、既に説明した装置における動作と同一であるので省略する。
前述のコンピュータ・プログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としてはフレキシブル・ディスク1071、光ディスク1077、又はメモリーカードの他に、MD等の光磁気記録媒体、テープ媒体を用いることができる。また、専用通信回線やインターネットに接続されたサーバシステムに設けたハードディスク又は光ディスク・ライブラリ等の記憶装置を記録媒体として使用し、通信回線を介してコンピュータ・プログラムを情報処理装置1000に提供してもよい。
以上の例は、情報処理装置1000について主に説明したが、コンピュータに、情報処理装置で説明した機能を有するプログラムをインストールして、そのコンピュータを情報処理装置として動作させることにより上記で説明した情報処理装置と同様な機能を実現することができる。
本装置は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせとして実現可能である。ハードウェアとソフトウェアの組み合わせによる実施では、所定のプログラムを有するコンピュータ・システムでの実施が典型的な例として挙げられる。かかる場合、該所定のプログラムが該コンピュータ・システムにロードされ実行されることにより、該プログラムは、コンピュータ・システムに本発明にかかる処理を実行させる。このプログラムは、任意の言語、コード、又は表記によって表現可能な命令群から構成される。そのような命令群は、システムが特定の機能を直接実行すること、又は(1)他の言語、コード、もしくは表記への変換、(2)他の媒体への複製、のいずれか一方もしくは双方が行われた後に、実行することを可能にするものである。もちろん、本発明は、そのようなプログラム自体のみならず、プログラムを記録した媒体を含むプログラム製品もその範囲に含むものである。本発明の機能を実行するためのプログラムは、フレキシブル・ディスク、MO、CD−ROM、DVD、ハードディスク装置、ROM、MRAM、RAM等の任意のコンピュータ可読媒体に格納することができる。かかるプログラムは、コンピュータ可読媒体への格納のために、通信回線で接続する他のコンピュータ・システムからダウンロードしたり、他の媒体から複製したりすることができる。また、かかるプログラムは、圧縮し、又は複数に分割して、単一又は複数の記録媒体に格納することもできる。
[クライアント及びデータベースの接続関係]
図6に、レプリケーションシステムに係る、複数のクライアント及び複数のデータベースの接続関係を示す。図6には3つのクライアント及び3つのデータベースを示したが、接続するクライアント及びデータベースの数はこれらに限らない。
図6に示したクライアント300、301、302はいずれも任意にデータベース200、201、202に接続できる。データベース200、201、202はいずれも他の任意のデータベースと接続することができる。データベース200、201、202は相互に複製関係にあり、それぞれをレプリカと呼称してもよい。図6には、クライアント及びデータベースサーバをそれぞれ3個ずつ示したが、これらに限らず任意の数のクライアント及びデータベースを接続して本発明のレプリケーションシステムに含めてもよい。
図7に、本レプリケーションシステムに係る別の構成の例を示す。図7においては、図6に示したデータベースのそれぞれにアプリケーションサーバが接続することを示している。より具体的には、図7のアプリケーションサーバ250、251、252のそれぞれは個別にデータベース200、201、202と接続する。換言すれば、図7に示したレプリケーションシステムは、図6に示したレプリケーションシステムをアプリケーションサーバの接続により拡張したものと見なすことができる。
図7の例においては、1のアプリケーションサーバ及び1のデータベースの結合が、図6におけるレプリカの単位である1のデータベースに相当する。図7においても、任意の数のクライアント、アプリケーションサーバ及びデータベースを接続して本発明のレプリケーションシステムに含めてもよい。
図6及び図7に示したレプリケーションシステムにおいては、それぞれのレプリカはトランザクションを実行し、トランザクションログを全てのレプリカ間で複製し合う。複製では次のような制約が守られるものとする。
(制約−1)全てのレプリカは、同一のトランザクション要求に対して、同一の更新がコミットされる。
(制約−2)1つのレプリカ内で、同一のトランザクション要求に対して、多くても1つのトランザクションログが決定される。
(制約−3)2つのトランザクションログlog1、log2が存在し、log2がlog1で生成されたデータを参照、更新する場合、全レプリカでlog1、log2の順で反映する。
(制約−4)1つのレプリカでトランザクションログがlog1、log2の順に生成された場合は、必ずlog2よりも先にlog1を反映する。
(制約−5)Serializableの属性を保つトランザクションログが反映される。
ここに、属性「Serializable」とは、トランザクションを互いに隔離する方法であるアイソレーションレベルに係るコンピュータ技術用語であり、トランザクションがアクセスするデータに対して他のトランザクションが読み込みも書き込みもできないことを意味する。アイソレーションレベルの他の属性である「Read Committed」(まだコミットされていないデータをトランザクションが読み込めないこと)、「Read Uncommitted」(データがコミットされているか否かに関わらず、データをトランザクションが読み込むこと)等は上記の制約により排除される。
上記の制約を有する複製(レプリケーション)は、後述の図8のように実現することができる。
[レプリケーションの動作]
図8に、レプリカが相互に行う複製(レプリケーション)の手順をフロー図として示す。各ステップは次のように動作する。
(ステップS101) レプリカは、トランザクション処理要求reqをクライアントから受信する。
(ステップS102) レプリカはトランザクション処理要求reqを実行し、参照ログrlog(req)及び更新ログwlog(req)を生成する。
(ステップS103) レプリカは前記参照ログrlog(req)及び前記更新ログwlog(req)を他のレプリカにアトミックブロードキャストで送信する。
(ステップS104) レプリカは、次の参照ログrlog(req)及び更新ログwlog(req)を他のレプリカからアトミックブロードキャストで受信する。
(ステップS105) レプリカは処理要求reqが既に反映済みか否かを調べ、反映済みであればS104へ、反映済みでなければS106へ進む。
(ステップS106) レプリカはrlog(req)が最新のデータベースと同じか否かを調べ、同じであればS107へ、同じでなければS104へ進む。
(ステップS107) レプリカは更新ログwlog(req)をデータベースに反映する。
(ステップS108) レプリカはクライアントにトランザクション処理の終了を通知し、S104へ進む。
ここに、アトミックブロードキャストとは、全ての正常なプロセス間で、受信するメッセージの集合及びその受信順序が等しいことを保証するブロードキャストであり、耐障害性を有する分散システムの設計における重要な基本通信操作の1つであることを意味するコンピュータ技術用語である。
上記のトランザクションログrlog及びwlogは、前述の制約−1から制約−5の制約の元にある。
上記のステップS101は、クライアントからのトランザクション処理要求を受信することを契機として実施される。
また、上記のステップS104からステップS108は、クライアントからの処理要求の有無にかかわらず常に繰り返すループに含まれる。レプリカは、ステップS104を処理のループに含むことにより、繰り返して他のレプリカから参照ログ及び更新ログを受信することができる。
すなわち、本発明に係るレプリカは、前記ループを繰り返す一方、クライアントからのトランザクション処理要求を受信した場合はステップS101からステップS103を実行する。
図8に示したレプリケーションシステムにおけるトランザクション処理の状態は、ステップS103からステップS107までがUnresolved状態であり、ステップS107においてレプリカが更新ログを反映した後から他の全てのレプリカにおいて当該更新ログが反映されたことを知るまでの間がCommitting状態である。コミット可能な同一の更新ログを全レプリカが認識した後は、トランザクション処理はConfirmed状態となる。
前述の図3を用いて示した楽観的処理結果は、図8を用いて示したステップS102からステップS103の間にクライアントに送信される。この時に、レプリカはクライアントに投機的なトランザクションの終了通知、トランザクションの処理終了認識条件、コミット済みトランザクションの部分集合を通知する。トランザクションの処理終了認識条件は、前述のごとく、「レプリカAが生成したTiの更新ログがコミットされるには、レプリカAが生成したトランザクションTjの更新ログと同じ更新ログがコミットされる(Ti⇒Tj)」というコミット条件の集合と、「レプリカAが生成したTiの更新ログがコミットされるには、レプリカAが生成したトランザクションTjの更新ログと同じ更新ログがコミットされない(Ti⇔Tj)」というロールバック条件の集合から構成される。
[コミット条件及びロールバック条件]
図9に、レプリケーションシステムに係る、レプリカが送信するコミット条件の集合を生成する手順をフロー図として示す。この手順は、前述の図8を用いて示したクライアントからのトランザクション処理要求reqを受信した後の手順の例である。
レプリカはトランザクション処理要求集合D、コミット条件集合C、ロールバック条件集合R、コミット済みトランザクション部分集合Sを有するとする。
各ステップは次のように動作する。
(ステップS110) レプリカはトランザクション処理要求集合Dにreqを追加し、コミット条件集合Cを空集合とする。
(ステップS111) レプリカは集合Dから1つのreqを選択する。区別のために、req(1)、req(2)、…等の表記を用いる。
(ステップS112) レプリカは前記選択したトランザクション処理要求、例えば、req(1)がUnresolved状態にあるか、又はCommitting状態にあるかを調べる。いずれかであればS113に進み、当てはまらなければS115に進む。
(ステップS113) レプリカは、req(1)が参照したデータを生成した全てのトランザクション処理要求を集合Dに追加する。
(ステップS114) レプリカは、req(1)が参照したデータを生成した全てのトランザクション処理要求req(2)に対し、論理式(Treq(1)⇒Treq(2))を集合Cに追加する。
(ステップS115) レプリカは集合Dの全てのreqを調べたか否かを判定する。全て調べた場合はS116に進み、そうでなければS111に進む。
(ステップS116) レプリカはコミット条件の集合Cを決定する。
図10に、レプリケーションシステムに係る、レプリカが送信するロールバック条件の集合を生成する手順をフロー図として示す。各ステップは次のように動作する。
(ステップS117) レプリカはロールバック条件集合Rを空集合とする。
(ステップS118) レプリカは、1つのreq(1)をUnresolved状態にあるトランザクションから選択する。
(ステップS119) レプリカは、req(1)が集合Dに含まれるか否かを調べる。含まれる場合はS118に進み、含まれない場合はS120に進む。
(ステップS120) レプリカは、1つのreq(2)をトランザクション処理要求集合Dから選択する。
(ステップS121) レプリカは、更新ログwlog(req(1))により参照ログrlog(req(2))が参照するデータが更新されたか否かを調べる。更新された場合はS122に進み、そうでなければS123に進む。
(ステップS122) レプリカは論理式(Treq(2)⇔Treq(1))をロールバック条件の集合Rに追加する。
(ステップS123) レプリカは、集合D内の全てのreq(2)を調べたか否かを判定する。全て調べた場合はS124に進み、そうでなければS120に進む。
(ステップS124) レプリカは、全てのUnResolved状態のトランザクションを調べたか否かを判定する。全て調べた場合はS125に進み、そうでなければS118に進む。
(ステップS125) レプリカはロールバック条件集合Rを決定する。
[要求を要素とする部分集合の関係]
図11に、レプリケーションシステムに係る、レプリカが送信するコミット済みトランザクションの部分集合Sを生成する手順をフロー図として示す。各ステップは次のように動作する。
(ステップS130) レプリカは、コミット済みトランザクションの部分集合Sを空集合とする。
(ステップS131) レプリカは1つのreq(1)を集合Dから選択する。
(ステップS132) レプリカは、req(1)がCommitting状態にあるか、又はConfirmed状態にあるかを調べる。いずれかであればS133に進み、当てはまらなければS134に進む。
(ステップS133) レプリカはreq(1)を集合Sに追加する。
(ステップS134) レプリカは、集合D内の全てのreqを調べたか否かを判定する。全て調べた場合はS135に進み、そうでなければS131に進む。
(ステップS135) レプリカは、コミット済みトランザクションの部分集合Sを決定する。
[トランザクション処理終了判断の例]
図12に、レプリケーションシステムに係る、トランザクション処理が終了したか否かをクライアントが判断する手順をフロー図として示す。各ステップは次のように動作する。
(ステップS140) クライアントは、全てのCの和集合Call、全てのRの和集合Rall、全てのSの和集合Sallを生成する。
(ステップS141) クライアントはreqがSallに含まれるRallの要素Treq⇔Treq(1)のreq(1)の集合Rを生成する。
(ステップS142) クライアントは、Rallから1つのTreq⇔Treq(1)を選択する。
(ステップS143) クライアントは、req(1)がRに含まれるか否かを調べる。含まれる場合はS144に進み、含まれない場合はS151に進む。
(ステップS144) クライアントは、Rall内の全てのreqを調べたか否かを判定する。全て調べた場合はS145に進み、そうでなければS142に進む。
(ステップS145) クライアントはコミット条件の集合C、Cを選択する。
(ステップS146) クライアントは、Cの要素Treq⇒Treq(1)から、Sに属さないreqの集合Uを生成する。集合Cについても同様にして集合Uを生成する。
(ステップS147) クライアントは差集合(U−U)の要素Treq⇒Treq(1)を選択する。
(ステップS148) クライアントはC内の全ての要素Treq⇒Treq(2)がUに含まれるか否かを判定する。全て含まれる場合はS149に進み、そうでなければS151に進む。
(ステップS149) クライアントは全てのTreq⇒Treq(1)を調べたかを判定する。全て調べた場合はS150に進み、そうでなければS147に進む。
(ステップS150) クライアントは全てのC、Cを調べたかを判定する。全て調べた場合はS152に進み、そうでなければS145に進む。
(ステップS151) クライアントは、要求したトランザクション処理の終了が判断不可であることを記憶する。
(ステップS152) クライアントは、要求したトランザクション処理の終了を判断してこれを記憶する。
[トランザクション処理の例1:全てのクライアントが処理終了を判断可能な例]
本レプリケーションシステムに係るトランザクション処理を、銀行口座間の送金処理の例として示す。
例えば、レプリケーションシステムはレプリカdb1、db2、db3を含んでなり、1のクライアントが接続し、前記クライアントは口座番号100、101、102、104を参照して相互に預金を送金可能であるとする。
表1は、前記口座番号100、101、102、104の残高であり、トランザクション処理要求送信前の初期条件である。
Figure 0005088734
クライアントは表1の初期状態にある各口座を処理対象として次のトランザクション処理要求を前記レプリケーションシステムに送信する。
(トランザクションTreq(1)) 口座100から、口座101に500円振り込む。
(トランザクションTreq(2)) 口座101の残高が2500円以上ならば口座101から、口座102に2500円振り込む。口座101の残高が2500円未満なら何もしない。
(トランザクションTreq(3)) 口座100の残高が1000円以上ならば口座100から、口座104に1000円振り込む。口座100の残高が1000円未満なら何もしない。
表2に、上記トランザクション処理要求を受信したレプリケーションシステムにおいて、各トランザクション処理が、Treq(1)、Treq(2)、Treq(3)の順に実行される場合にクライアントに投機的に返される値を示す。ここに投機的に返される値とは、レプリカが楽観的処理結果をクライアントに送信する時点における第1の処理結果を意味する。
Figure 0005088734
前記レプリケーションシステムに含まれるレプリカdb1がこのトランザクション処理要求をTreq(1)、Treq(2)、Treq(3)の順に処理し、他のレプリカdb2及びdb3も同一の手順で処理した場合は、全てのレプリカからクライアントに同じ値が第1の処理結果である楽観的処理結果として送信される。従って、クライアントは投機的にトランザクション処理の終了を認識できる。
[トランザクション処理の例2:全てのクライアントが処理終了を判断不可能な例]
前述の表1を初期条件とする同一のトランザクション処理において、db1及びdb3は処理要求をTreq(1)、Treq(2)、Treq(3)の順に処理し、前記表2の値をクライアントに返すと仮定する。また、db2では、Treq(1)とTreq(3)が同時に実行され、クライアントに投機的に返す値がTreq(3)、Treq(1)の順に生成されたとする。また、Treq(1)の更新した値を参照して、Treq(2)が実行された(Treq(1)⇒Treq(2))とする。
表3に、db2からはクライアントに返す処理結果を示す。表3の処理結果は表2と異なるため、前述の図12を用いて示した判断手法から、S143の条件式により,S151に分岐するため,クライアントはトランザクションの終了を判断できない。
Figure 0005088734
[トランザクション処理の例3:req(2)を要求したクライアントが処理終了を判断可能な例]
前述の表1を初期条件とする同一のトランザクション処理において、db1及びdb2は例2と同様に、表1、表3の値をクライアントに返すと仮定する。また、db3は前述の例2と同様にトランザクションを処理するが、Treq(2)を実行する時点でdb1が生成したreqに対する更新ログが反映されていたものとする。
表3に、これらの条件の下でdb3がクライアントに返す値を示す。図12の判断手法により、req(2)を要求したクライアントは,S143の条件式により,S144に分岐し,かつ,S148でS151に分岐することがなく,S152に分岐されるため,トランザクションの終了を判断可能となる。
Figure 0005088734
以上、本発明を実施形態に則して説明したが、本発明は上述した実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態又は実施例に記載されたものに限定されるものではない。
従来のプライマリ・バックアップ方式の処理段階を経時的に示す図である。 従来のアクティブ・アクティブ方式の処理段階を経時的に示す図である。 本発明の実施形態に係るレプリケーションシステムの処理段階を経時的に示す図である。 本発明の実施形態に係るレプリケーションシステムにおけるサーバ装置及びクライアント装置の接続を示す図である。 本発明の実施形態に係るレプリケーションシステムにおけるサーバ装置又はクライアント装置のハードウェア資源を示すブロック図である。 本発明の実施形態に係るレプリケーションシステムに含まれる複数クライアント及び複数データベースの接続関係を示す図である。 本発明の実施形態に係るレプリケーションシステムに含まれる複数クライアント及びアプリケーションサーバを伴う複数データベースの接続関係を示す図である。 本発明の実施形態に係るレプリケーションシステムに含まれる1のレプリカの複製動作を示すフロー図である。 本発明の実施形態に係るレプリケーションシステムに含まれるコミット条件集合Cの生成方法を示すフロー図である。 本発明の実施形態に係るレプリケーションシステムに含まれるロールバック条件集合Rの生成方法を示すフロー図である。 本発明の実施形態に係るレプリケーションシステムに含まれるコミット済みトランザクションの部分集合Sの生成方法を示すフロー図である。 本発明の実施形態に係るレプリケーションシステムに含まれるトランザクション処理終了判断方法を示すフロー図である。
符号の説明
30 クライアント装置
31、32 データベースサーバ装置
35 コンピュータ・ネットワーク
200、201、202、210、211、212 データベース
250、251、252 アプリケーションサーバ
300、301、302、310、311、312 クライアント

Claims (9)

  1. 複数のデータベースサーバ装置と、クライアント装置とをコンピュータ・ネットワークを介して接続しデータを複製するレプリケーションシステムであって、
    データベースサーバ装置は相互にレプリカであり、
    全てのレプリカは1の同一のトランザクション処理要求を受信する手段と、
    前記レプリカはそれぞれトランザクション処理を実行し、前記トランザクション処理の過程において前記レプリカが生成したコミット条件の集合及びロールバック条件の集合である処理終了認識条件、コミット済みトランザクションの部分集合、及び処理結果を第1の処理結果として記憶する手段と、
    前記第1の処理結果を記憶する時点の後に全てのレプリカはトランザクションログを通信し合うことで、コミット可能な1のトランザクションログを決定する手段と、
    各レプリカは前記決定したトランザクションログをコミットした後、他の全てのレプリカにコミット完了を通知する手段と、
    各レプリカは前記コミットしたトランザクションに対応する処理結果を第2の処理結果として記憶する手段とを備え、
    前記クライアント装置は、
    前記トランザクション処理要求を全ての前記レプリカに送信する手段と、
    全ての前記レプリカから前記第1の処理結果を受信し、全ての前記処理終了認識条件が満たされていることを条件として前記第1の処理結果をトランザクションの楽観的処理結果として認識する手段と、
    全ての前記レプリカから前記第2の処理結果を受信し、前記第2の処理結果をトランザクションの悲観的処理結果として認識する手段とを備えた、
    レプリケーションシステム。
  2. 前記レプリカは、
    前記コミット条件の集合を前記トランザクション処理要求の集合に含まれる全ての処理要求に基づいて生成する手段と、
    全てのレプリカ間で1のコミット可能なトランザクションログの決定に至らない状態にある全てのトランザクション処理要求に基づいて前記ロールバック条件の集合を生成する手段とを
    さらに備えた、請求項1に記載のレプリケーションシステム。
  3. 前記第1の処理結果を記憶する時点の後に、全てのレプリカがトランザクションログを通信し合い、コミット可能な1のトランザクションログを決定したことに応答して、
    各レプリカは前記コミット可能なトランザクションに対応する処理結果を第2の処理結果として記憶する手段と、
    各レプリカは前記決定したトランザクションログをコミットした後、他の全てのレプリカにコミット完了を通知する手段とを
    備えた、請求項1に記載のレプリケーションシステム。
  4. 前記クライアント装置は全ての前記第1の処理結果を受信する段階において、
    受信した処理結果に他と一致しないものを含むことを条件として、要求したトランザクション処理のロールバックを認識する手段を
    さらに備えた、請求項に記載のレプリケーションシステム。
  5. 複数のデータベースサーバ装置と、クライアント装置とをコンピュータ・ネットワークを介して接続してデータを複製するレプリケーションの方法であって、
    前記データベースサーバ装置は相互にレプリカであり、
    全てのレプリカは1の同一のトランザクション処理要求を受信するステップと、
    前記レプリカはそれぞれトランザクション処理を実行し、前記トランザクション処理の過程において前記レプリカが生成したコミット条件の集合及びロールバック条件の集合である処理終了認識条件、コミット済みトランザクションの部分集合、及び処理結果を第1の処理結果として記憶するステップと、
    前記第1の処理結果を記憶する時点の後に全てのレプリカはトランザクションログを通信し合うことで、コミット可能な1のトランザクションログを決定するステップと、
    各レプリカは前記決定したトランザクションログをコミットした後、他の全てのレプリカにコミット完了を通知するステップと、
    各レプリカは前記コミットしたトランザクションに対応する処理結果を第2の処理結果として記憶するステップと、を含み、
    前記クライアント装置は前記トランザクション処理要求を全ての前記レプリカに送信するステップと、
    前記クライアント装置は全ての前記レプリカから前記第1の処理結果を受信し、全ての前記処理終了認識条件が満たされていることを条件として前記第1の処理結果をトランザクションの楽観的処理結果として認識するステップと、
    前記クライアント装置は全ての前記レプリカから前記第2の処理結果を受信し、前記第2の処理結果をトランザクションの悲観的処理結果として認識するステップとを含む、
    レプリケーションの方法。
  6. 前記レプリカは前記コミット条件の集合前記トランザクション処理要求の集合に含まれる全ての処理要求に基づいて生成するステップと、
    前記レプリカは前記ロールバック条件の集合、全てのレプリカ間で1のコミット可能なトランザクションログの決定に至らない状態にある全てのトランザクション処理要求に基づいて生成するステップとを
    さらに含む、請求項に記載のレプリケーションの方法。
  7. 前記第1の処理結果を記憶する時点の後に、全てのレプリカがトランザクションログを通信し合い、コミット可能な1のトランザクションログを決定したことに応答して、
    各レプリカは前記コミット可能なトランザクションに対応する処理結果を第2の処理結果として記憶するステップと、
    各レプリカは前記決定したトランザクションログをコミットした後、他の全てのレプリカにコミット完了を通知するステップとを
    含む、請求項に記載のレプリケーションの方法。
  8. 前記クライアント装置は全ての前記第1の処理結果を受信する段階において、
    受信した処理結果に他と一致しないものを含むことを条件として、要求したトランザクション処理のロールバックを認識するステップ
    さらに含む、請求項に記載のレプリケーションの方法。
  9. 請求項からのいずれか1項に記載の各ステップをコンピュータに実行させるための、コンピュータプログラム。
JP2007303105A 2007-11-22 2007-11-22 耐障害性トランザクション処理システム及び処理方法 Expired - Fee Related JP5088734B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007303105A JP5088734B2 (ja) 2007-11-22 2007-11-22 耐障害性トランザクション処理システム及び処理方法
US12/234,811 US8364634B2 (en) 2007-11-22 2008-09-22 System and method for processing fault tolerant transaction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007303105A JP5088734B2 (ja) 2007-11-22 2007-11-22 耐障害性トランザクション処理システム及び処理方法

Publications (2)

Publication Number Publication Date
JP2009129169A JP2009129169A (ja) 2009-06-11
JP5088734B2 true JP5088734B2 (ja) 2012-12-05

Family

ID=40670654

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007303105A Expired - Fee Related JP5088734B2 (ja) 2007-11-22 2007-11-22 耐障害性トランザクション処理システム及び処理方法

Country Status (2)

Country Link
US (1) US8364634B2 (ja)
JP (1) JP5088734B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8041985B2 (en) * 2006-08-11 2011-10-18 Chicago Mercantile Exchange, Inc. Match server for a financial exchange having fault tolerant operation
US10013277B2 (en) * 2009-05-29 2018-07-03 Red Hat, Inc. Rolling back state changes in distributed transactions
US8266101B1 (en) * 2009-07-16 2012-09-11 Binpeng Shuai Share nothing database cluster and real time synchronization by signaling
US8266126B2 (en) * 2010-03-24 2012-09-11 Matrixx Software, Inc. System with multiple conditional commit databases
CN102299904B (zh) * 2010-06-23 2014-03-19 阿里巴巴集团控股有限公司 一种实现业务数据备份的***及方法
JP5652228B2 (ja) * 2011-01-25 2015-01-14 富士通株式会社 データベースサーバ装置、データベース更新方法及びデータベース更新プログラム
US8799247B2 (en) * 2011-02-11 2014-08-05 Purdue Research Foundation System and methods for ensuring integrity, authenticity, indemnity, and assured provenance for untrusted, outsourced, or cloud databases
US20130110767A1 (en) * 2011-10-26 2013-05-02 Nec Laboratories America, Inc. Online Transaction Processing
US8843441B1 (en) 2012-01-17 2014-09-23 Amazon Technologies, Inc. System and method for maintaining a master replica for reads and writes in a data store
US9489434B1 (en) 2012-01-17 2016-11-08 Amazon Technologies, Inc. System and method for replication log branching avoidance using post-failover rejoin
US9116862B1 (en) 2012-01-17 2015-08-25 Amazon Technologies, Inc. System and method for data replication using a single master failover protocol
US8719225B1 (en) 2012-01-17 2014-05-06 Amazon Technologies, Inc. System and method for log conflict detection and resolution in a data store
US9069827B1 (en) 2012-01-17 2015-06-30 Amazon Technologies, Inc. System and method for adjusting membership of a data replication group
KR20140047230A (ko) * 2012-10-10 2014-04-22 (주)티베로 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템
TW201437940A (zh) 2013-03-30 2014-10-01 Ibm 提供一交易處理伺服器有效率之資料複製的方法、支援伺服器與電腦程式產品
CA2911001C (en) * 2013-06-13 2019-11-19 Tsx Inc. Failover system and method
JP6346376B2 (ja) * 2014-09-10 2018-06-20 アマゾン・テクノロジーズ・インコーポレーテッド 拡張縮小可能なログベーストランザクション管理
US10769134B2 (en) 2016-10-28 2020-09-08 Microsoft Technology Licensing, Llc Resumable and online schema transformations
US11947978B2 (en) 2017-02-23 2024-04-02 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US10831509B2 (en) 2017-02-23 2020-11-10 Ab Initio Technology Llc Dynamic execution of parameterized applications for the processing of keyed network data streams
US11243945B2 (en) * 2017-12-11 2022-02-08 International Business Machines Corporation Distributed database having blockchain attributes

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59125144A (ja) * 1982-12-30 1984-07-19 ソニー株式会社 デイジタル信号伝送方法
AU7684094A (en) * 1993-09-24 1995-04-10 Oracle Corporation Method and apparatus for data replication
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5671407A (en) * 1994-12-07 1997-09-23 Xerox Corporation Application-specific conflict detection for weakly consistent replicated databases
US5581754A (en) * 1994-12-07 1996-12-03 Xerox Corporation Methodology for managing weakly consistent replicated databases
US5926816A (en) * 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US8275793B2 (en) * 2005-04-29 2012-09-25 Microsoft Corporation Transaction transforms

Also Published As

Publication number Publication date
JP2009129169A (ja) 2009-06-11
US8364634B2 (en) 2013-01-29
US20090138531A1 (en) 2009-05-28

Similar Documents

Publication Publication Date Title
JP5088734B2 (ja) 耐障害性トランザクション処理システム及び処理方法
Gray et al. The dangers of replication and a solution
US10402115B2 (en) State machine abstraction for log-based consensus protocols
US6012094A (en) Method of stratified transaction processing
JP5551749B2 (ja) フェイルオーバシステムおよび方法
US7103586B2 (en) Collision avoidance in database replication systems
US7900085B2 (en) Backup coordinator for distributed transactions
EP2342655B1 (en) Quorum based transactionally consistent membership management in distributed storage systems
CN102037463B (zh) 使用全局确认的提交进行分布式事务的基于日志的复制
US20190235974A1 (en) Transaction processing system, recovery subsystem and method for operating a recovery subsystem
US20040133591A1 (en) Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
Yan et al. Carousel: Low-latency transaction processing for globally-distributed data
JP2006178935A (ja) ワークフロートランザクションのバッチ処理によるランタイムおよびアプリケーションの状態の同期化
US11586594B2 (en) Versioned and hierarchical data structures and distributed transactions
US8326801B2 (en) Increasing database availability during fault recovery
CN112162846B (zh) 事务处理方法、设备及计算机可读存储介质
KR20080042881A (ko) 트랜잭션 일치 및 문제 상태
US7890468B2 (en) Rollback support in distributed data management systems
JP4998010B2 (ja) データベースシステム管理、データベースシステム、プログラム及び処理装置
US10944850B2 (en) Methods, devices and systems for non-disruptive upgrades to a distributed coordination engine in a distributed computing environment
CN113391933A (zh) 一种处理资金的方法
Cardinale et al. Fuzzy ACID properties for self‐adaptive composite cloud services execution
EP0817019A2 (en) Method of stratified transaction processing
US20240152429A1 (en) Recoverable Processes
CN101488134A (zh) 数据库***的复制环境内的高性能修改事务的方法及***

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120815

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120904

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees