JPH09251412A - 分散データベーストランザクションのコミットメント方法 - Google Patents

分散データベーストランザクションのコミットメント方法

Info

Publication number
JPH09251412A
JPH09251412A JP8291856A JP29185696A JPH09251412A JP H09251412 A JPH09251412 A JP H09251412A JP 8291856 A JP8291856 A JP 8291856A JP 29185696 A JP29185696 A JP 29185696A JP H09251412 A JPH09251412 A JP H09251412A
Authority
JP
Japan
Prior art keywords
transaction
interval
message
coserver
owner
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.)
Granted
Application number
JP8291856A
Other languages
English (en)
Other versions
JP3790589B2 (ja
Inventor
Gerald K Bortvedt
ケイ ボートヴェード ジェラルド
Robert H Gerber
エイチ ガーバー ロバート
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.)
INFUOAMITSUKUSU SOFTWARE Inc
Informix Software Inc
Original Assignee
INFUOAMITSUKUSU SOFTWARE Inc
Informix Software Inc
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 INFUOAMITSUKUSU SOFTWARE Inc, Informix Software Inc filed Critical INFUOAMITSUKUSU SOFTWARE Inc
Publication of JPH09251412A publication Critical patent/JPH09251412A/ja
Application granted granted Critical
Publication of JP3790589B2 publication Critical patent/JP3790589B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access

Abstract

(57)【要約】 (修正有) 【課題】 分散したトランザクションを効果的にコミッ
トする。 【解決手段】 各コサーバは、インタバルコーディネー
タ(IC)から送られた一連のインタバルメッセージに
応答してその関連トランザクションログを非揮発性記憶
装置へフラッシュし、閉止メッセージをICへ伝送し
て、最も新しく受信したインタバルメッセージを識別す
る状態を維持する。あるトランザクションに関して、オ
ーナーは、コサーバに実行させる分散したトランザクシ
ョン内の操作処理を識別する要求メッセージをヘルパへ
伝送する。操作処理を実行したコサーバは、最も新しく
受信したインタバルメッセージを識別するタグと共に、
完了メッセージをオーナーへ伝送する。完了メッセージ
を受信したオーナーは、そのトランザクションについて
の適格性メッセージをICへ伝送する。次いでICは、
トランザクションのコミット状態を安定記憶装置へ書き
込む。次いでICは、トランザクションのコミットをオ
ーナー及びヘルパへ送る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的には分散デ
ータベーストランザクションのためのコミットメントプ
ロトコルに関し、より詳しく述べれば、コーディネータ
が関係者と定期的にメッセージを交換するようなコミッ
トメントプロトコルに関する。
【0002】
【従来の技術】どのようなデータベースシステムでも、
その基本的な設計の目標は「一貫性」であり、これはデ
ータベース内に格納されている情報を若干の制約に従わ
せることを意味する。例えば、預金勘定から小切手勘定
へ金銭を振替える場合、2つの勘定の合計を同一に保た
なければならない。もし預金勘定に借方には記入したが
小切手勘定の貸方に記入しなければ顧客は不満を抱くで
あろう。一方、もし小切手勘定の貸方には記入したが預
金勘定の借方に記入しなければ銀行が不満であろう。操
作処理( operation ) とは、例えばデータベース内の情
報の単片の改訂、削除、または挿入のような変更のこと
である。トランザクション( transaction )とは、デー
タベースアプリケーション内で単一の論理動作を遂行す
る操作処理の集まりのことである。例えば、勘定振替を
行うことはトランザクションである。預金勘定の借方に
記入することは勘定振替トランザクションにおける1つ
の操作処理であり、小切手勘定の貸方に記入することは
別の操作処理である。一貫性を保存するためには、ある
トランザクションの全ての操作処理が遂行されなければ
ならないか、または何も遂行しないことである。この要
求を、「アトミシティ」( atomicity ) と呼ぶ。
【0003】通常の状態の下では、トランザクションの
全ての操作処理を遂行するだけで、課せられた制約はデ
ータベースシステムによって遵守される。しかしなが
ら、ソフトウェアのバグ、ハードウェアのクラッシュ、
及び停電は、データベースシステムに障害を発生させ
る。障害が発生すると、例えばランダムアクセスメモリ
(RAM)のような揮発性メモリ内の情報が失われ、一
貫性が損なわれる可能性がある。例えば、銀行データベ
ースシステムにおいて、預金勘定の借方には記入した
が、小切手勘定の貸方に記入する前にクラッシュが発生
するかも知れない。従って、データベースシステムの設
計上の別の目標は、障害から復旧した時に揮発性メモリ
内に格納した情報を復元する能力である。たとえ障害が
発生したとしても一貫性を保証するようにするために、
データベースシステムがトランザクションの全ての操作
処理を実行するのか、または全く実行しないのかを保証
することはクリティカルである。ある場合にはトランザ
クションが一貫性を損なわせたことが原因でそのトラン
ザクションを完了させることができず、またある場合に
は障害が原因でトランザクションを完了させることがで
きない。ある場合には、ユーザが変心して、トランザク
ションを完了させないことを決定するかも知れない。も
しトランザクションを成功裏に完了させることができず
に若干の操作処理しか実行されなければ、そのトランザ
クションは「打切り」にしなければならない。打切られ
たトランザクションの後に、データベースはそのトラン
ザクションを前の状態に「ロールバック」即ち復元され
る。
【0004】一方、もし障害が起こっても、トランザク
ションの全ての操作処理を成功裏に実行することができ
れば、そのトランザクションは「コミット」される。も
し障害が発生して若干の操作処理だけが実行されれば、
コンピュータが復旧した時、コミットされたトランザク
ションは「ロールフォワード」即ち完了され、打切られ
たトランザクションは「ロールバック」即ち元に戻され
る。換言すれば、もしコンピュータが障害の後に復旧す
れば、コミットされたトランザクションはデータベース
内に格納されていることが保証され、コミットされなか
ったトランザクションはデータベース内に格納されてい
ることは保証されない。全ての操作処理要求を保証す
る、または保証しない一つの方法は、データベースシス
テムに「コミットメントプロトコル」を課すことであ
る。要約すれば、コミットメントプロトコルは、例えば
ハードディスクのような非揮発性記憶装置内にトランザ
クションログを維持することを要求する。トランザクシ
ョンログは、そのトランザクションをロールバック、ま
たは完了させるのに十分な情報を含むログ記録のリスト
である。ログ記録は、各トランザクションの始まりに関
するデータ、そのトランザクションによって変更された
記録の古い値と新しい値、及びそのトランザクションが
コミットされたのか、または打切られたのかの情報を含
む。
【0005】データベースの変化が非揮発性記憶装置に
書き込まれた後に、打切りが発生するかも知れない。こ
のような場合、打切られたものとしてマークされたトラ
ンザクションは、変更された記録を古い値にセットする
ことによって元に戻される。例えば、銀行データベース
システムが、改訂された小切手勘定の残高( balance)
をハードディスクに書き込んだが、借方が預金勘定の残
高を0以下に減らすことになるかも知れない。データベ
ースシステムは、トランザクションログに打切りを書き
込み、小切手勘定の残高を古い値に戻す。コミットメン
トの後ではあるが、変化が非揮発性記憶装置へ書き込ま
れる前に障害が発生するかもしれない。このような場
合、トランザクションログ内にコミット済みとしてマー
クされているトランザクションは、古い記録を新しい値
にセットすることによってやり直される。例えば、銀行
データベースシステムは、RAM内の小切手及び預金勘
定の残高を成功裏に改訂して検査し、トランザクション
ログのコミットメントをディスク上に書き込むが、RA
M内の変化をディスクへ格納する前に停電になることが
あるかも知れない。データベースシステムが復旧した時
に、データベースシステムはトランザクションログを探
索して勘定振替トランザクションがコミットされている
ことを決定し、借方・貸方操作処理をやり直す。
【0006】分散データベースとは、記録がコンピュー
タネットワーク内の異なる幾つかのコンピュータまたは
ノードに格納されているような、または記録を格納して
いるコンピュータまたはノード以外のコンピュータまた
はノードから記録を改訂する要求が発せられるようなデ
ータベースのことである。例えば、小切手勘定記録を第
1のコンピュータが格納し、預金勘定記録を第2のコン
ピュータが格納し、そして銀行の金銭出納係が使用する
第3のコンピュータから預金勘定から小切手勘定への資
金の振替要求を発することができる。例えば、ローカル
に格納されている情報を変更するために、ある操作処理
を実行することによってそのトランザクションに関与す
る全てのコンピュータを「関係者」( participant ) と
呼ぶ。トランザクションを発した関係者をそのトランザ
クションの「オーナー」( owner) と呼ぶ。
【0007】「コンピュータネットワーク」は、高速ノ
ード間に接続を有している複数の処理ノードからなる
(並列コンピュータのような)単一のコンピュータであ
ることができる。「コンピュータネットワーク」は相互
接続されたコンピュータのクラスタであることもでき
る。本明細書においては、これら各種コンピュータシス
テムをコンピュータネットワークであるとし、これらの
システム上のデータベースを分散データベースシステム
と呼ぶことにする。分散データベースプログラムとイン
タラクトする銀行の出納係のような人を「ユーザ」と呼
ぶ。ユーザは、データベースプログラムにおいては、各
トランザクション毎の1またはそれ以上の「セッショ
ン」によって表される。セッションとは、データベース
記録の改訂のようなトランザクションの実際の仕事を行
うために作成されるプログラムエンティティのことであ
る。通常は、トランザクションの各関係者には、トラン
ザクション当たり1セッションが存在する。オーナー上
で走るセッションが「トランザクションオーナー」であ
る。他のセッションを「トランザクションヘルパー」(
helper )と呼ぶことができる。
【0008】障害の影響は、分散データベースシステム
と単一コンピュータシステムとでは若干異なる。単一コ
ンピュータシステムにおいては、システムが動作してト
ランザクションが正常に処理されているか、またはシス
テムが障害を起こしてトランザクションを処理できない
かの何れかである。分散システムにおいては、若干のコ
ンピュータは動作しているが、他のコンピュータは動作
していないような部分的障害が存在し得る。また、コン
ピュータは動作しているが、コンピュータ間の通信リン
クが故障しているような部分的障害も存在し得る。分散
データベースシステムの一つの主要な利点は、性能が改
善されることである。別の主要な利点は拡張可能性(ス
ケーラビリティ)、即ち性能を劣化させることなくデー
タベースシステムを成長させ得る能力である。別の利点
は、信頼性が改善されることである。普通は部分的障害
しか発生しないから、データベースシステムの性能が低
下することはない。しかしながら、部分的障害が発生す
る可能性があるということは、一貫性の保証を一層困難
にする。例えば、預金勘定記録を有するコンピュータが
正常に機能していて借方から控除しているが、小切手勘
定記録を有するコンピュータが故障して貸方に加算しな
いかも知れない。
【0009】一貫性を保存するために、この例における
2つのコンピュータは互いに通信し合って振替トランザ
クションをコミットすべきか、または打切るべきかを決
定しなければならない。そのトランザクションに関与す
る全てのコンピュータが同一の行動(コミットまたは打
切り)を行うことを保証するコンピュータ間の通信の構
造及び方法を、「コミットメントプロトコル」と呼ぶ。
分散データベーストランザクションのための現在の標準
コミットメントプロトコルを「2相コミット(2PC)
プロトコル」と呼んでいる。2相コミットプロトコル
は、概ね次のように動作する。第1に、「コミット可」
相において、トランザクションオーナーはコミットのた
めの準備メッセージを各関係者へ送り、コミットか、打
切りかを投票で応答するように各関係者に依頼する。各
関係者は、そのトランザクションのコミット、または打
切りの何れを望むかを決定する。
【0010】もし関係者がそのトランザクションをコミ
ットすることを望めば、その関係者は、そのトランザク
ションがコミットメント可であることを非揮発性記憶装
置内のそのローカルトランザクションログへ記録する。
ローカルトランザクションログは、そのトランザクショ
ンによってなされたローカル変化の古い値及び新しい値
をデータベースへ既に記録していよう。そこで関係者は
“yes”投票をオーナーへ送り返す。もし関係者が打
切りを決定すれば、その関係者は、トランザクションの
打切りを非揮発性記憶装置へ記録して“no”投票をオ
ーナーへ送り返す。関係者が打切りを決定する理由は数
多くある。そのデータベースに課せられたある一貫性を
操作処理が損なうかも知れない。例えば、もし預金勘定
の借方がその預金勘定の残高を0以下に減ずるようなこ
とがあれば、その関係者はその振替トランザクションを
打切るであろう。
【0011】第2に、「決定」相においてオーナーは、
関係者からの全ての投票を集める。もし全ての関係者の
投票が“yes”であれば、オーナーはそのトランザク
ションのコミットを非揮発性記憶装置内のトランザクシ
ョンログ内に記録する。この点でそのトランザクション
はコミットされる。次いでオーナーは各関係者へメッセ
ージを送ってそのトランザクションをコミットさせる。
もし何れかの関係者が“no”を投票すれば、オーナー
はそのトランザクションの打切りを非揮発性記憶装置へ
記録し、各関係者へメッセージを送ってそのトランザク
ションを打切らせる。コミット可であることを非揮発性
記憶装置内へ記録した各関係者は、行動を起こすため
に、オーナーからのコミットメッセージ、または打切り
メッセージを待つ。
【0012】不幸にも、2相コミットはメッセージ重視
プロトコルである。詳しく説明すれば、個々のトランザ
クション毎に1組のメッセージを交換し、コミットメッ
セージに対して特別に準備するので大量のネットワーク
トラフィックを作り出す。2相コミットでは、コミット
メントネットワークを通して送られるメッセージの数
は、トランザクションの数及び各トランザクションの関
係者の数に比例する。多数の小さいトランザクションを
有するシステムの場合には、2相コミットがネットワー
クに大きい負担をかけ得る。
【0013】
【発明の目的】以上に鑑みて、本発明の目的は、ネット
ワークの使用を最小にする分散データベースコミットメ
ントプロトコルを提供することである。本発明の別の目
的は、殆どの動作条件の下で2相コミットよりも優れて
いる分散データベースコミットメントプロトコルを提供
することである。本発明の他の目的及び長所は以下の説
明から理解されよう。本発明の目的及び長所は、特に特
許請求の範囲に指摘されている手法及び組合わせによっ
て実現できる。
【0014】
【発明の概要】本発明は、分散データベースシステム内
に分散したトランザクションをコミットする方法を目指
している。データベースシステムは、インタバルコーデ
ィネータ、複数のコサーバ( coserver )、及び少なくと
も1つのトランザクションログを含む。インタバルコー
ディネータは一連のインタバルメッセージを各コサーバ
へ送り、各コサーバはそれに応答してその関連トランザ
クションログを非揮発性記憶装置へフラッシュする。ト
ランザクションログをフラッシュした後に、各コサーバ
は閉止メッセージをインタバルコーディネータへ伝送す
る。コサーバは、最も新しく受信したインタバルメッセ
ージを識別する状態を維持する。各分散トランザクショ
ンは、オーナー及びヘルパーを関連コサーバと共に含
む。あるトランザクションに関して、オーナーは、関連
コサーバに実行させる分散したトランザクションの操作
処理を識別する要求メッセージをヘルパーへ伝送する。
操作処理を実行したコサーバは、最も新しく受信したイ
ンタバルメッセージを識別するタグと共に、完了メッセ
ージをオーナーへ伝送する。この完了メッセージを受信
した後、オーナーはそのトランザクションについての適
格性メッセージをインタバルコーディネータへ伝送す
る。次いでインタバルコーディネータは、そのトランザ
クションについてのコミット状態を安定な記憶装置へ書
き込む。コミット状態を安定な記憶装置へ書き込んだ後
に、インタバルコーディネータは、そのトランザクショ
ンについてのコミットメッセージをオーナー及びヘルパ
ーへ送る。
【0015】以下に添付図面を参照して本発明の好まし
い実施例を説明する。
【0016】
【実施例】図1に示すように、分散データベースはコン
ピュータネットワーク10上で動作する。コンピュータ
ネットワーク10は、ネットワークライン14によって
接続されたワークステーションのような複数のコンピュ
ータ12a−12gを含んでいる。勿論、ネットワーク
10は図示の7つのコンピュータよりも少ない、または
多いコンピュータを有することができる。ネットワーク
10は、サーバ16及びプリンタ18のような他のデバ
イスをも含んでいる。増殖的に相互接続されるように図
示されているが、コンピュータネットワーク10は環
状、星形、樹木、または他のどのような相互接続トポロ
ジを使用することもできる。コンピュータネットワーク
10は、ローカルエリアネットワーク(LAN)、ワイ
ドエリアネットワーク(WAN)、クラスタ相互接続、
または相互接続スイッチを通して通信する複数の処理ノ
ードを有する単一のコンピュータであることができる。
高性能デバイスシステムの場合には、ネットワーク10
はマルチノード並列処理コンピュータ、またはクラスタ
であることが好ましい。しかしながら、明瞭化のため
に、以下のデータベースシステム5はLANネットワー
クとして説明する。
【0017】コンピュータネットワーク10の故障は不
可避である。若干の故障は、ノード(コンピュータ12
a−12g)間の通信リンクが関連している。例えば、
ネットワークライン14が切断されることがあり得る
し、またはネットワークライン14上のメッセージの量
がネットワークの容量を超えることもあり得る。他の故
障は、コンピュータ12a−12gが関連するものであ
る。例えば停電は、1またはそれ以上のコンピュータを
停止させたり、または特定コンピュータの構成要素を誤
動作させかねない。図2に示すように、分散データベー
スシステム5は、分散データベースプログラム100を
備えている。データベースプログラム100は、通信リ
ンク104によって接続されているコサーバ102a−
102gを含んでいる。各コサーバ102a−102g
は、単一のノード上で共働するデータベースプログラム
の集まりである。各コサーバは、通信リンク104を介
して、格納、保管、データ操作、及び通信能力を提供す
ることができる。典型的には任意の1つのコンピュータ
ノード上では1つのコサーバしか走らないが、複数のコ
サーバを単一のコンピュータノード上で走らせることも
可能である。更に、ネットワーク内の若干のコンピュー
タはコサーバをサポートしないことができる。
【0018】データベースネットワーク100も故障を
起こすことがあり得る。例えば、ソフトウェアにバグが
あると、コサーバ102dのような特定のコサーバをク
ラッシュさせ得る。勿論、コサーバ102aをサポート
しているコンピュータ12aが部分的に、または完全に
故障すると、データベースプログラム100に障害がも
たらされる。図3に示すように、コンピュータネットワ
ーク10は、LANのようなネットワークライン14に
接続されている1組のコンピュータとして表すことが可
能である。ネットワークライン14は制限された帯域幅
容量を有している。即ち、ネットワークライン14は、
一時に制限された量の情報しか輸送することができな
い。例えば、もしネットワークがイーサネットであれ
ば、典型的に 10 メガビット/秒を処理することができ
る。
【0019】コンピュータ12aのような各コンピュー
タは、少なくとも1つの中央処理ユニット(CPU)2
0a、メモリ22a、及び記憶装置24aを含んでい
る。メモリ22aは、ランダムアクセスメモリ(RA
M)のような揮発性記憶装置であり、停電の場合にはそ
の内容は失われる。記憶装置24aは、1またはそれ以
上のハードディスクのような非揮発性記憶装置である。
クラスタ構成では、コンピュータは非揮発性記憶装置へ
のアクセスを共用することができる。CPU 20a、
メモリ22a、及び記憶装置24aは、バス26aによ
って相互接続されている。典型的には、ネットワークラ
イン14もバス26aを通してコンピュータ12aに接
続されている。図4に示すように、データベース30は
関連情報の集まりである。典型的にはデータベースは、
情報を、類似情報の列(「フィールド」と呼ぶ)と、関
連情報の行(「記録」と呼ぶ)とを有するテーブル内に
格納する。例えば銀行は、小切手勘定及び預金勘定を監
視するためにデータベース30を使用できる。小切手勘
定テーブル32は、顧客名34、小切手勘定番号36、
及び現在の小切手勘定残高38を格納するフィールドを
有することができる。預金勘定テーブル42も同様に、
顧客名44、預金勘定番号46、及び現在の預金勘定残
高48を格納するフィールドを有することができる。例
えば、データ記録50は、顧客 G. Brownが小切手勘定
番号 745-906内に$2500.00 の残高を有していることを
示す。特定フィールド内の特定データ記録を「エント
リ」と呼ぶ。例えばエントリ55は、M. Karvel の小切
手勘定が$600.00であることを示している。
【0020】図5に示すように、分散データベースシス
テム5は、コサーバ102a及び102b上のデータベ
ース30からの情報を格納する。コサーバ102a及び
102bに関連しているのは、それぞれコンピュータ1
2a及び12bのメモリブロック22a及び22b、及
び非揮発性記憶装置24a及び24bである。小切手勘
定テーブル32をハードディスク24a上に格納し、預
金勘定テーブル42をハードディスク24b上に格納す
ることができる。コサーバ102aは小切手勘定テーブ
ル32内の情報の操作処理を実行することができ、コサ
ーバ102bは預金勘定テーブル42内の情報の操作処
理を実行することができる。各コサーバはトランザクシ
ョンログへのアクセスを有している。各コサーバ毎に1
つのトランザクションログを設けることが好ましい。例
えば、コサーバ102aのトランザクションログ64a
の一部はメモリ22aのバッファ60a内に、また一部
はハードディスク24aのディスクスペース62a上に
格納される。バッファ内のトランザクションのリストが
非揮発性ディスクへ書き込まれると、そのトランザクシ
ョンログは「ディスクへフラッシュ」されたと称され
る。
【0021】コサーバのトランザクションログを、同一
の記憶装置上の1またはそれ以上のトランザクションロ
グとして一緒に多重化することが可能である。コサーバ
102a−102gがどのように記憶装置またはログを
共用するかには拘わりなく、書き込み及びフラッシング
に関連するセマンティクス及び動作は同一に維持され
る。従って、特定の各コサーバにおけるトランザクショ
ンのロギング及びコミットの処理は影響を受けない。2
以上のコサーバを単一のコンピュータまたはノードにお
いて動作させることができるので、データベースシステ
ム5の関係者の定義を明白にしておかなければならな
い。本明細書では、そのトランザクションに関与してい
る全てのコサーバが「関係者」であり、トランザクショ
ンを発した関係者がそのトランザクションの「オーナ
ー」である。そのトランザクションの関係者ではある
が、オーナーではないコサーバが「ヘルパー」である。
例えば、以下に説明する勘定振替トランザクションで
は、コサーバ102a−102bはそのトランザクショ
ンのヘルパーであり、コサーバ102cがそのトランザ
クションのオーナーである。
【0022】図5及び6に関して説明したように、デー
タベースシステム5は、M. Karvelの預金勘定から小切
手勘定へ$1000を振替えるような、データベース30上
の分散したトランザクションを実行することができる。
例えば、もし銀行の出納係がコサーバ102cにおいて
トランザクションに関する要求を入力すれば、コサーバ
102cが勘定振替トランザクションのオーナーにな
る。コサーバ102cは、コサーバ102aの小切手勘
定テーブル32を制御し、102bが及び預金勘定テー
ブル42を制御していることを判断する。コサーバ10
2cは、小切手勘定$100 を貸方に記入する操作処理を
伴うメッセージを、コサーバ102aへ送り、また預金
勘定$100 を借方に記入する操作処理を伴うメッセージ
を、コサーバ102bへ送る。メッセージは、そのトラ
ンザクションを識別するトランザクションコードと、オ
ーナーを識別するオーナーコードとを含んでいる。
【0023】メッセージがコサーバ102aに到着する
と、コサーバ102aはログ記録70aを書き込んで勘
定振替トランザクションの開始を表す。もしこの顧客の
小切手勘定のデータ記録52(図4参照)がメモリ22
a内に未だ存在していなければ、データ記録52がディ
スク24aからメモリ22a内に読み込まれる。次い
で、貸方操作処理がデータ記録52の残高フィールド3
8上で遂行され、残高エントリ55が$100 だけ増加さ
れる。別のログ記録72aがトランザクションバッファ
60aに追加され、エントリ55の古い値($600 )と
新しい値($700)とが記録される。結局は、以下に詳
細を説明する本発明のコミットプロトコルに従って、勘
定振替トランザクションがコミットされたのか、または
打切られたのかに関するログ記録74aがトランザクシ
ョンバッファ60a内に記録される。2相コミットプロ
トコルとは異なり、本発明では勘定振替トランザクショ
ンが準備されたか、またはコミットに適格であるかのロ
グ記録はバッファ60a内に記録されない。
【0024】借方操作処理についてコサーバ102bが
遂行するプロセスは、預金勘定記録53(図4参照)が
メモリ24b内へ読み込まれることを除いて、極めて類
似しており、借方操作処理が残高エントリ56上で遂行
される。ログ記録72bは残高エントリ56の古い値
($1300)及び新しい値($1200)を記録する。ログ記
録70bは振替トランザクションの始まりを表し、ログ
記録74bはその振替トランザクションがコミットされ
たのか、または打切られたのかを表している。ディスク
24a上のテーブル32は、残高エントリ55の古い値
及び新しい値を有するログ記録72aがディスクへフラ
ッシュされた後の任意の時点に、残高エントリ55の新
しい値を用いて更新することができる。同様に、ディス
ク24b上のテーブル42は、ログ記録72bがディス
クへフラッシュされた後の任意の時点に、残高エントリ
56の新しい値を用いて更新することができる。
【0025】以下に説明するように、本発明のデータベ
ースシステムは、トランザクションのオーナーと、非オ
ーナーである関係者との間に直接的なメッセージの交換
を必要とせずに分散したトランザクションをコミット
し、またあるトランザクションをコミットする前にその
トランザクションに関連する全てのログバッファがディ
スクへフラッシュされていることを保証する。これは、
「インタバルコーディネータ」(IC)と、2またはそ
れ以上の「インタバル関係者」(IP)との間で定期的
にメッセージを交換することによって達成される。イン
タバルコーディネータは、トランザクションがコミット
されるか、または打切られる時点を決定するプログラム
である。インタバル関係者は、トランザクションの更新
に関するログ記録がディスクへフラッシュされることを
保証するプログラムである。これらのインタバルコーデ
ィネータ及びインタバル関係者は、コサーバによって呼
出し可能なプログラムの部分、サブルーチン、または分
離したプログラムであることができる。
【0026】あるトランザクションに単一のコサーバだ
けが関与している場合には、インタバルコーディネータ
とのインタラクションを必要としない「1相コミット」
プロトコルが使用される。本発明は分散トランザクショ
ン(以後、単に「トランザクション」という)に適用さ
れるので、また1相コミットプロトコルは当分野におい
ては公知であるので、これ以上の説明は省略する。デー
タベースシステム5は、「コミットインタバル」(もし
くは単に「インタバル」)を使用して、トランザクショ
ンをコミットすることができるか否かを決定する。コミ
ットインタバルは、インタバルコーディネータとインタ
バル関係者との間のメッセージの交換を編成するのに使
用される時間の単位である。インタバル関係者がそのト
ランザクションログをディスクへフラッシュしたことを
表すメッセージを、全てのインタバル関係者がインタバ
ルコーディネータへ送ると、インタバルは「閉じる」。
もし全てのインタバル関係者がこのようなメッセージを
送らなければ、インタバルは「開いている」という。
【0027】インタバルコーディネータがトランザクシ
ョンをコミットする場合、インタバルを閉じる必要はな
い。詳しく述べれば、全てのトランザクション関係者に
関連するコサーバが現インタバル及び先行インタバルの
全てのログ記録を非揮発性記憶装置へフラッシュしたこ
とを表すメッセージをインタバルコーディネータへ送る
と、インタバルコーディネータはトランザクションをコ
ミットできる。トランザクションはデータの数片のみに
対する操作処理を行うことができるので、トランザクシ
ョン内の関係者は全てのインタバル関係者の小さい部分
集合だけを構成することができる。前述したように、デ
ータベースプログラム100は、通信リンク104によ
って接続されている複数のコサーバ102a−102g
を有している。図7に示すように、データベースシステ
ム5は、1つのコサーバ、例えばコサーバ102d上で
走る単一のインタバルコーディネータ(IC)110を
含んでいる。IC110は、分散したトランザクション
の何れかがコミットされる、または打切られる時点を決
定するのに使用される。詳しく説明すると、データベー
スシステム5においては、IC 110が、コミットさ
れたものとしてあるトランザクションをマークする記録
をディスクへフラッシュすると、そのトランザクション
はコミットされる。
【0028】データベースシステム5は、コサーバ10
2a−102g上でそれぞれ走るIP 115a−11
5gをも含んでいる。1つのIPは各コサーバ上で走
る。各IP 115a−115gは、詳細を後述するよ
うに、若干のメッセージを交換することによってIC
110と通信する。図8に示すように、分散データベー
ス30は、異なるコサーバ102a及び102b上で走
るIP 115a及び115bに関連する情報を有する
ことができる。例えば、小切手勘定テーブル32はIP
115aに関連するディスク24a上に格納すること
ができ、預金勘定テーブル42はIP 115bに関連
するディスク24b上に格納することができる。例とし
て、IC 11Oは別のコサーバ102d上で走るよう
に示されているが、IC 11Oはどのコサーバ102
a−102g上でも走ることができる。
【0029】以下に説明する、そして図9に示すように
データベースシステム5は、IC110とIP 115
a−115gとの間で定期的にメッセージを交換する。
図示のデータベースシステム5は7つのコサーバ102
a−102gを含んでいるが、コサーバの数は特定のア
プリケーションに必要な異なる数であることができる。
各インタバルの始まりに、IC 110は「インタバル
メッセージ」120を、全てのIP 115a−115
gへ伝送する。インタバルメッセージ120は、新しい
インタバルが開始されたことをIP 115a−115
gに通報する。好ましい実施例では、IC 110は約
100msおきにインタバルメッセージを伝送する。イン
タバルの時間の長さは構成毎に変化するが、メッセージ
を送受し、あるページをトランザクションログへフラッ
シュするのに要する時間よりも長くすべきである。
【0030】各IPは、「閉止メッセージ」125でI
C 110に返答する。閉止メッセージ125はインタ
バルメッセージ120に応答して作成され、特定のコサ
ーバに関するインタバル閉止記録(即ち、現ローカルイ
ンタバルに関するログ記録)を受信する前に作成された
全てのログ記録を含むトランザクションログが、ディス
クへフラッシュされたことを表している。更に、どのI
Pも閉止メッセージ125を送る度に、そのIPがイン
タバルを完了したことを表すログ記録をコサーバのトラ
ンザクションログ内に入力することができる。しかしな
がら、トランザクションログが空のログ記録で満たされ
てしまわないように、IPは、もしトランザクションが
そのインタバル中にそのコサーバ上でコミットされれ
ば、インタバル閉ログ記録だけを書き込む。インタバル
メッセージ120及び閉止メッセージ125の内容のよ
り詳細な説明は、図12及び13を参照して後述する。
【0031】新しいコミットインタバルは、IC 11
0内の「マスタインタバルキー」150が増数(インク
リメント)される度に開始される。マスタインタバルキ
ー150は、IC 110及びIP 115a−115
gの活動を調整する時計のようなものである。しかしな
がら、マスタインタバルキー150は、実時計に関連付
けたり、または実時計に同期させる必要はない。むし
ろ、マスタインタバルキー150は、現コミットインタ
バルを識別するカウンタである。IC 110はマスタ
インタバルキー150を読み、現コミットインタバル番
号を決定する(人が時計を見て現在の時刻を理解するの
に似ている)。マスタインタバルキー150は、4バイ
トの(または、それより大きい)符号なし整数変数であ
ることが好ましい。コミットインタバルは、マスタイン
タバルキー150が増数される時に「終了する」。マス
タインタバルキー150の増数は、次のマスタインタバ
ルの始まりでもある。
【0032】コミットインタバルの「終わり」は、必ず
しもコミットインタバルの「閉止」と同一のものである
必要はない。好ましい実施例では、IC 110はイン
タバルメッセージ120を送出した後、ある時(期)間
待機する。各マスタインタバルにおいては、この待機期
間は、連続するインタバルメッセージ間の時間の合計長
がほぼ 100msであるようにセットされている。待機期
間の正確な長さは、先行マスタインタバル中に閉止メッ
セージを処理するのに消費した時間長に依存する。待機
期間の設定は設備毎に変化するが、2つのメッセージ交
換及びログのディスクへのフラッシュを可能にするよう
十分に長くすべきである。待機期間中に到着するどの閉
止メッセージ125も待ち行列内に配置される。待機期
間の終わりに、IC 110は待ち行列内のメッセージ
を処理し始める。処理中に、さらなるインタバルメッセ
ージが到着し、待ち行列内に配置されるかも知れない。
しかし結局はIC 110は、閉止メッセージの待ち行
列を空にする。もし全てのIP 115a−115gが
閉止メッセージを送ってしまえば、そのインタバルは閉
じる。もし、IP 115aのようなIPが(例えば、
もしコサーバ102aが故障して)閉止メッセージを送
ることを妨げられれば、インタバルは開き続ける。もし
インタバルが開き続ければ、IC 110は、閉止記録
を送らなかったIPの記録をメモリ内に保持するので、
そのインタバルは後刻閉じることができる。しかしなが
ら、一旦待ち行列が空になると、インタバルが開き続け
ているか、または閉じているかには拘わりなくマスタイ
ンタバルキー150が増数され、新しいインタバルが開
始される。
【0033】IP 115a−115gは「ローカルイ
ンタバルキー」155a−155gと呼ぶタイマ変数を
保持している。ローカルインタバルキーは、IPのため
のローカル時計に似た動作をする。ローカルインタバル
キー155a−155gは最新のマスタインタバルを格
納し、IC 110からのインタバルメッセージ120
によって更新される。IC 110からの各インタバル
メッセージ120は、IC 110のマスタインタバル
キー150の現在の値に等しい「マスタインタバルタ
グ」を含む。IP 115a−115gはインタバルメ
ッセージを読み、マスタインタバルタグを抽出し、そし
てそれらのローカルインタバルキー155a−155g
をマスタインタバルタグに等しくセットする。IPがI
C 110からのインタバルメッセージ120(値Nの
マスタインタバルタグを含む)に応答する時、そのIP
に関連するコサーバは、先行マスタインタバルN−1の
間にそのコサーバが作成した全てのトランザクションロ
グ記録をディスクへフラッシュしている。例えば、もし
IC 110が、マスタインタバル#5の開始を知らせ
るインタバルメッセージ120−1cを送れば、IP1
15aが閉止メッセージ125−1aで応答する時、コ
サーバ102aはマスタインタバル#4の間に作成した
全てのログ記録をディスクへフラッシュしている(図1
0参照)。
【0034】要約すれば、IC 110内にはマスタカ
ウンタ(マスタインタバルキー150)が存在していて
マスタインタバルを画定し、各IP内にはローカルカウ
ンタ(ローカルインタバルキー155a−155g)が
存在していてローカルインタバルを画定している。ロー
カルインタバルキーは、IPがIC 110からインタ
バルメッセージを受信すると更新される。従って、IC
110上の各マスタインタバルは、概ねあるインタバ
ルメッセージ120の伝送から次のインタバルメッセー
ジの伝送まで走る。同様に、各ローカルインタバルは、
概ねあるインタバルメッセージの受信から次のインタバ
ルメッセージの受信まで走る(図10参照)。IC 1
10とIP115a−115gとの間のインタバルメッ
セージ及び閉止メッセージの定期的な交換に加えて、分
散した各トランザクション毎に、トランザクションオー
ナーとトランザクションヘルパーとの間にメッセージが
交換される。詳しく説明すると、トランザクションオー
ナーは、そのトランザクションの1またはそれ以上の操
作処理を遂行することを依頼する「要求メッセージ」を
トランザクションヘルパーに送る。例えば、勘定振替ト
ランザクションの場合、要求メッセージ140aがヘル
パー135aへ、また要求メッセージ140bが135
bへ送られる。コサーバ102a及び102bがヘルパ
ー135a及び135bとして図示され、またコサーバ
102cがオーナーとして図示されているが、オーナー
及びヘルパーは異なるトランザクションに関しては異な
るコサーバであろう。
【0035】特定のトランザクションヘルパーがその操
作処理を実行してしまうと、そのトランザクションヘル
パーは、操作処理が完了したことを表す「完了メッセー
ジ」でトランザクションオーナーに返答する。完了メッ
セージは、トランザクションヘルパーのローカルインタ
バルキーの値にセットされている「トランザクションイ
ンタバルタグ」を含んでいる。トランザクションインタ
バルタグは、後述するようにトランザクションオーナー
がコミットすべきトランザクションを指定(ノミネー
ト)することができる。以後、要求メッセージ及び完了
メッセージの交換に関しては、オーナー及びトランザク
ションヘルパーを、オーナー及びヘルパーと呼ぶことが
ある。オーナー130は、ヘルパーから完了メッセージ
を受信する度に、受信した新しいトランザクションイン
タバルタグを、格納されている古いトランザクションイ
ンタバルタグと比較し、大きい方の(最も新しいものに
等価の)インタバルタグを保持する。ヘルパーは、オー
ナーと同一のノード上で動作できることに注目された
い。たとえトランザクションのオーナーと同一のコサー
バ上でトランザクションの更新が行われたとしても、ト
ランザクションタグは使用する。
【0036】全てのヘルパーが完了メッセージをオーナ
ー130へ送ってしまうと、オーナーはユーザへ完了応
答を供給することができる。トランザクションオーナー
は、現トランザクションのための付加的なタスクを完了
させることを要求することができ、またはユーザは、そ
のトランザクションをコミットまたは打切ることを要求
することができる。もしトランザクションオーナーがト
ランザクションのコミットを要求すれば、トランザクシ
ョンオーナー130は据置き制約( deferred constrain
t ) の検査を開始することができる。据置き制約とは、
あるトランザクションの完了時に検査を必要とする規則
のことである。例えば、もし小切手勘定に最低残高が要
求されていれば、これはトランザクションの後に確かめ
ることができる。据置き制約に関しては、コミットプロ
トコルの説明の後に説明することにする。
【0037】次に、オーナー130は、格納されている
トランザクションインタバルタグとローカルインタバル
キー155cとを比較する。もしローカルインタバルキ
ー155cが、格納されているトランザクションインタ
バルタグに等しいか、または大きければ、オーナー13
0はそのトランザクションをコミットについて適格であ
るとしてマークし、IC 110にそのトランザクショ
ンをコミットする要求を次の閉止メッセージ125内に
含ませる。もしローカルインタバルキー155cが、格
納されているトランザクションインタバルタグよりも小
さければ、そのトランザクションに関するログ記録(現
インタバルの終わりにディスクへフラッシュされない)
が存在しているかも知れない。この場合オーナー130
は待機し、IC 110にそのトランザクションをコミ
ットさせる要求を閉止メッセージ125内に含ませるか
否かを決定するために次のインタバル中に再度検査する
ことができる。
【0038】オーナー130が待機する場合には、単一
の閉止メッセージ125内に送られる全てのトランザク
ションが、単一のインタバルに関係付けられるように、
適切なインタバルが必要である。代替例では、オーナー
130は、ICが所与のトランザクションをコミットす
ることを要求する前に、適切なインタバルを待機しな
い。この場合、トランザクションタグが閉止メッセージ
に対してグローバルであるような好ましいアルゴリズム
の実施例とは異なり、ICへの閉止メッセージ内の各ト
ランザクションに対してインタバルタグ252(図13
参照)の指定を行わなければならない。時には、ユーザ
要求を処理している間に問題が発生し、トランザクショ
ンを打切らなければならないことがある。若干の状況に
おいては、ヘルパーは独立的にトランザクションを打切
ることができるが、他の場合にはヘルパーはトランザク
ションを打切ることができない。もしヘルパーが(オー
ナーに打切り状態を戻すことによって)オーナーの操作
処理を現在実行中であれば、ヘルパーは独立的にトラン
ザクションを打切ることができる。また、IC 110
への次の閉止メッセージ内の打切りリストにそのトラン
ザクションを追加することによって、もしIPの現在の
インタバルタグとローカルインタバルタグとが同一であ
れば、ヘルパーは独立的にトランザクションを打切るこ
とができる。
【0039】他のどのような状況でも、ヘルパーは、I
Cへ別のメッセージを送るか、または閉止メッセージに
打切り要求を追加するかの何れかによって、ICにトラ
ンザクションを打切ることを要求しなければならない。
何れの場合も、ICがそのトランザクションの処理のコ
ミットを既に開始しているかも知れないので、ICが打
切り要求を受けるような必要性は存在しない。本発明の
好ましい実施例においては、トランザクションオーナー
だけがトランザクションを打切ることができる。トラン
ザクションヘルパーは一方的にトランザクションを打切
るような自律性を放棄する。この実施例は、単一の管理
コンテクスト内の単一のサーバとして機能するローカル
に分散したデータシステムにとって適切である。
【0040】図10は、勘定振替トランザクションにお
けるオーナー、ヘルパー、及びIC間のメッセージの交
換の時間線例を示している。水平の線はコサーバ102
a、102c、及び102dを表している。斜めの線
は、コサーバ間で交換されるメッセージを表している。
銀行の出納係のようなユーザは、IP 115cに関連
するコサーバ102cのようなコサーバから勘定振替ト
ランザクションを入力することができる。トランザクシ
ョンはコサーバ102cから発しているので、コサーバ
102cは上述したようにそのトランザクションのオー
ナーとして動作する。オーナー130は、小切手勘定テ
ーブル32がIP 115aに関連するコサーバ102
a内に格納されており、預金勘定テーブルがIP 11
5bに関連するコサーバ102b内に格納されてと判断
する(図8及び9参照)。
【0041】インタバルメッセージ120が、コサーバ
102dからコサーバ102a及び102c上のIPへ
定期的に送り出される。各IPは、閉止メッセージ12
5でインタバルメッセージ120に返答する。例えば、
図10に示すように、コサーバ102dはインタバルメ
ッセージ120−1cをコサーバ102cへ送り、コサ
ーバ102cは閉止メッセージ125−1cで応答す
る。勘定振替トランザクションの例では、メッセージは
コサーバ102a、102b、102c、及び102d
の間で伝送される。両コサーバ102a及び102bは
ヘルパーであるので、コサーバ102a及び102bへ
の、及びこれらからのメッセージは同じである。従っ
て、簡略化のためにコサーバ102bへの、及びそれか
らのメッセージは図10には示してない。またこの例
は、マスタインタバル#4で開始されているが、これら
の原理は早めの、または遅めのインタバルにも適用する
ことができる。
【0042】マスタインタバル#4の閉止を要求するI
C 110からのインタバルメッセージ120−1aに
応答してIP 115aは、コサーバ102a上の時点
Xから開始してそのローカルインタバルキー155aを
ローカルインタバル#5に将にセットしたところであ
る。IP 115aは、閉止メッセージ125−1aで
IC 110に応答しようとしている。図10及び11
の(A)に示すように、時点XにIP 115aはトラ
ンザクションログ64aをフラッシュし、それによって
ローカルインタバル#4の閉止のログ記録160をディ
スク24aへ書き込む。引き続き図9、10、及び11
の(A)を参照する。小切手勘定テーブル32の貸方操
作処理を実行するために、オーナー130は、ローカル
インタバル#5の間に要求メッセージ140aをコサー
バ102aへ伝送する。IP 115aがそのローカル
インタバルキーを丁度セットしているから、オーナー1
30らの要求メッセージ140aはローカルインタバル
#5の間にコサーバ102aに到着する。
【0043】時点Aに貸方操作処理の実行を完了したコ
サーバ102aは、ログ記録161をトランザクション
ログ64a内に入力する。ログ記録161は、トランザ
クション識別(ID)コード及びエントリ55の古い値
及び新しい値のような操作処理を元に戻すか、またはや
り直すのに十分な情報を含んでいる。ログ記録161は
メモリ22a内に留まってはいるが、未だディスク24
aへフラッシュされてはいない。コサーバ102aは、
ログ記録161をトランザクションログ64a内に入力
した後に、完了メッセージ145aをコサーバ102c
上のオーナー130へ送る。完了メッセージは、コサー
バ102a上のローカルインタバルキー155aの現在
の値(即ち、ローカルインタバル#5)に等しくセット
されたトランザクションタグを含む。
【0044】図10には示してないが、前述したよう
に、他のヘルパー及びオーナーは要求メッセージ及び完
了メッセージを交換して預金勘定テーブル42上で借方
操作処理を実行する。しかしながら、もし借方操作処理
によって勘定が0以下になれば借方操作処理は失敗し、
ヘルパーはそのトランザクションが誤りをもたらすこと
を表すメッセージをオーナー130へ送る。もし借方操
作処理に成功すればヘルパーはオーナーへ完了メッセー
ジを送り、コサーバ102bはログ記録を、トランザク
ションID、借方操作処理を完了したローカルインタバ
ル、及びエントリ56(図4参照)の古い値及び新しい
値と共に、ログ64b(図8参照)内に入力する。図9
に戻って、オーナー130は各完了メッセージ145a
及び145bを調べ、誤りが戻されてきたか否かを決定
する。もしヘルパー135a及び135bから誤りを受
信していれば、オーナー130はそのトランザクション
を打切られるものとしてマークする。完了メッセージ1
45bの前に完了メッセージ145aがオーナー130
に到着したものとすれば、オーナー130は完了メッセ
ージ145aからのトランザクションインタバルタグを
メモリ22a内に格納する。次の完了メッセージ145
bがオーナー130に到着すると、オーナー130は完
了メッセージ145bからの新しいトランザクションイ
ンタバルタグと、完了メッセージ145aからのトラン
ザクションインタバルタグとを比較する。もし受信した
新しいタグが、格納されている古いタグよりも大きけれ
ば、格納されているタグは新たに受信したタグに置換さ
れる。この例では、コサーバ102a及び102bの両
者が、ローカルインタバル#5の間に完了メッセージを
送っている。従って、オーナー130は格納されるトラ
ンザクションインタバルタグとして完了メッセージ14
5aからのローカルインタバル#5を格納する。完了メ
ッセージ145bが到着しても、格納されたトランザク
ションインタバルタグには変化はもたらされない。
【0045】次にオーナー130は、格納されているト
ランザクションインタバルタグと、ローカルインタバル
キー155cとを比較する。もしローカルインタバルキ
ー155cが、格納されているトランザクションインタ
バルタグに等しいか、または大きければ、オーナー13
0はそのトランザクションをコミット可としてマークす
る。この例では、格納されているトランザクションイン
タバルタグ、及びオーナー130のローカルインタバル
は共にインタバル#5にセットされている。ローカルイ
ンタバルが、格納されているトランザクションインタバ
ルタグに等しいので、このトランザクションはコミット
可としてマークされる。ある状況では、格納されている
トランザクションインタバルタグが、ローカルインタバ
ルよりも大きいことがあり得る。あるインタバルの始ま
りにIC 110がインタバルメッセージを、操作処理
の実行に繁忙なヘルパーへ送ることを考えよう。オーナ
ー130がICからオーナーへのインタバルメッセージ
の処理を完了する前に、ヘルパーが操作処理を完了して
その完了メッセージ145aをオーナー130へ送るか
も知れない。この場合、オーナーは未だそのローカルイ
ンタバルキーを増数させていないから、トランザクショ
ンインタバルタグはローカルインタバルキーよりも大き
くなる。もしこのようなことが発生すれば、オーナー1
30はその次のローカルインタバルの終わりにコミット
要求を提出する。
【0046】IP 155cが閉止メッセージ125−
2cを作成する時、IP 155cは勘定振替トランザ
クションがコミット可であることに注目し、そのトラン
ザクションをコミットに適格であるとして注目するコミ
ット要求を、閉止メッセージ125−2cに追加する。
図10及び11の(B)を参照する。IP 115aが
閉止メッセージ125−2aを送る前の時点Bに、IP
115aはトランザクションログ64aをフラッシュ
してログ記録161をディスク上に配置する。次いでI
P 115aは、ローカルインタバル#5の閉止を表す
ログ記録162をバッファ22aに追加する。IC 1
10は閉止メッセージ125−2cを受信すると、その
勘定振替トランザクションがコミットに適格であること
を決定する。マスタインタバル#6の終わりに、IC
110は、そのインタバルに閉止メッセージを送ったI
Pのリストと、そのトランザクションに関与した関係者
のリストとを比較する。図10に示すように、コサーバ
102aに関連するIP 115a及びコサーバ102
cに関連するIP 115cは共に、それぞれインタバ
ルメッセージ120−2a及び120−2cに応答して
閉止メッセージ125−2a及び125−2cを送って
いる。コサーバ102b上のIP 115bも、閉止メ
ッセージをIC110へ送っているものとすれば、勘定
振替トランザクションは、揮発性メモリ22d内のトラ
ンザクション状態リスト170(図8)内にコミット済
みとしてマークされよう。
【0047】図21を参照する。メモリ22d内のトラ
ンザクション状態リスト170は、トランザクション記
録410のリストである。各トランザクション記録41
0は少なくとも、オーナーIDコード411、トランザ
クションIDコード412、トランザクションインタバ
ルタグ413、トランザクション状態414、及びトラ
ンザクション関係者リスト415を含む。例えば、上例
の勘定振替トランザクションでは、オーナーIDコード
は# 102c、トランザクションIDコードは#312、イ
ンタバルタグはインタバル#5、状態はコミット、そし
てトランザクションの関係者リストはコサーバ102a
−102cである。図10に示すように、マスタインタ
バル#6の終わりにIC 110はインタバルメッセー
ジ120−3aと120−3cとをアセンブルする。イ
ンタバルメッセージ120−3aと120−3cとをア
センブルすると、IC 110はトランザクション状態
リスト170(図8参照)をディスク24dへフラッシ
ュする。この時点で、トランザクションはコミットされ
る。後刻故障が発生しても(非揮発性記憶装置が実際に
破壊された場合を除く)、打切られたトランザクション
を元に戻し、コミットされたトランザクションをやり直
すことによって一貫性データベース30を得ることがで
きる。IP 115a−115cは、データベースエン
トリの古い値及び新しい値の記録が成功裏にディスクへ
フラッシュされた後に閉止メッセージ内に送っているか
ら、IC 110がそのトランザクションをコミット済
みとしてマークする時、データベース30を再構成する
のに必要な情報は、既に非揮発性記憶装置内に保管され
ている。
【0048】IC 110がマスタインタバル#7の始
まりにトランザクション状態リストをディスク24dへ
フラッシュすると、インタバルメッセージが各IP 1
15a−115gへ伝送される。インタバルメッセージ
120−3a及び120−3cは、コミットされたトラ
ンザクション、及び打切られたトランザクションのリス
トを含んでいよう。勘定振替トランザクション(トラン
ザクション# 312)はコミットリスト内にあろう。図1
0及び11の(B)に示すように、IP 115aはイ
ンタバルメッセージ120−3aを受信した後に、トラ
ンザクションIDコード# 312がコミットされたことを
知らせるログ記録163をトランザクションログ64a
内に入力する。
【0049】図10及び11の(C)を参照する。IP
115aがその閉止メッセージをIC 110へ送る
前の時点Cに、IP 115aはログ64aをディスク
24aへフラッシュし、次いでローカルインタバル#6
の閉止を表すログ記録164をバッファ22aに追加す
る。しかしながら、もし最後のローカルインタバル中に
トランザクションログ記録が書き込まれていれば、IP
はそのログをフラッシュすることを要求するだけであ
る。これは、分散データベースシステム5の分散したト
ランザクションコミットプロトコルを意図しているので
ある。据置き制約検査はコミットと同じような手法で遂
行することができる。ユーザが据置き制約検査を受けた
トランザクションのコミットを要求する場合、トランザ
クションオーナーは、IC 110がそのトランザクシ
ョンのコミットを処理する前に、これらの据置き制約の
評価を開始することを要求しよう。閉止メッセージ12
5内のこの据置き制約検査要求を受けたIC 110
は、幾つかの行動を起こす。第1に、そのトランザクシ
ョンを、別の制約検査を必要とするトランザクションの
リストに追加する。このリストは、関係者が制約検査を
完了したことを追跡するのに使用される。第2に、IC
はリスト170内のトランザクションの状態を「据置
き」に変化させる。第3に、全ての関係者が、そのトラ
ンザクションのインタバルタグ値によって表されるイン
タバルの閉止メッセージを送ってしまうと、ICは次の
インタバルメッセージ120内にそのトランザクション
についての検査要求を含ませる。
【0050】各関係者は、インタバルメッセージ120
で検査要求を受けると、指定されたトランザクションの
据置き制約を評価する。制約検査を完了するためには、
複数のローカルインタバルが必要であるが、各関係者は
完了するとその成果を閉止メッセージ内へ挿入する。も
しIC 110がある関係者から制約を侵したことを受
信すると、そのトランザクションは打切られたとしてマ
ークされる。もしどの関係者も制約を侵していなけれ
ば、全ての関係者が返答すると、そのトランザクション
はコミットされるものとしてマークされ、そのトランザ
クションプロトコルは上述したように続行される。メッセージ交換 図12及び13は、IC 110とIP 115a−1
15gとの間で伝送可能な考え得るメッセージの構造を
示している。
【0051】図12に示すように、IC 110から1
またはそれ以上のIP 115a−115gへのどのメ
ッセージも、1バイトのメッセージの型200で始ま
る。通常のメッセージの型は「トランザクション」であ
り、IPに閉止メッセージで応答させる通常の要求を表
している。ICがIPへ送ることができる他の考え得る
メッセージの型は以下のものを含む。 「返答可」:もしIPが、IC 110へ「使用可」メ
ッセージを送れば、IC 110は現マスタインタバル
タグ202を含む「返答可」メッセージで応答する。 「IC使用可」:もしIC 110が故障して使用不能
であったのであれば、IC 110は復旧した時に全て
のIP 115へ「IC使用可」メッセージを同報(ま
たは放送)する。これは、IC 110が再び使用可能
であり、及び各IPの状態を確認する必要があることを
IPに通告する。例えばもしバックアップICが制御を
行っていればIC 110の位置が変化しているかも知
れない。従って「IC使用可」メッセージは、IC 1
10を走らせている現コサーバの識別をも含む。
【0052】「更新」:もしIPが、IC 110へ
「更新要求」メッセージを送れば、IC 110は指定
されたIPに「更新」メッセージで応答する。このメッ
セージは、マスタインタバルタグと、そのコサーバが関
係者であった全てのトランザクションの状態の状態リス
トとを含む。 「復旧返答」:もし特定のIPが故障し、後に復旧すれ
ば、それはIC 110へ「復旧」メッセージを送る。
それに応答してIC 110はIPへ「復旧返答」を送
る。このメッセージは、マスタインタバルタグと、その
コサーバが関係者であった全てのトランザクションの状
態の状態リストとを含む。 「延期」:このメッセージは、あるIPからの最後の閉
止メッセージ以降、閉じたインタバルが多過ぎるため
に、IC 110がそのIPへの「トランザクション」
メッセージを延期していることをそのIPに通告する。
【0053】図12に示すインタバルメッセージ120
においては、4バイトのマスタインタバルタグ202が
状態200に続いている。マスタインタバルタグ202
は、マスタインタバルキー150から入手した最新の閉
止インタバルである。タグ202の後には、単一の1バ
イトのフィールドを占める4つのフラグ204−207
が続いている。これらのフラグは、インタバルメッセー
ジ120が、何れかのトランザクションを、コミットす
るか否か(フラグ204)、打切るか否か(フラグ20
5)、または制約検査を遂行するか否か(フラグ20
6)を表している。フラグ207は、何れかのコサーバ
が故障したことをIC 110が知らされたか否かを表
す。フラグ204−207の次に続くのは、順番に、コ
ミットリスト210、打切りリスト212、制約検査リ
スト214、及び故障(ダウン)したコサーバリスト2
16である。コミットリスト210、打切りリスト21
2、及び制約検査リスト214は全て同一の編成を有し
ている。各リストは、リスト内のトランザクションオー
ナーの2バイトのカウント220で始まる。次いで、各
オーナー毎に、2バイトのオーナーID 222、2バ
イトのそのオーナーのトランザクションの数のカウント
224、及びそのオーナーのトランザクションIDリス
ト226が続く。トランザクションIDリスト226
は、トランザクション当たり4バイトを使用する。
【0054】インタバルメッセージ120は、他のグロ
ーバルデータベースシステム関連情報をも含む。例え
ば、日のグローバル時間の値を、いろいろなコサーバ上
の時計を粗く同期させるために分配することができる。
勿論、メッセージの上述したフィールドサイズは単なる
例示に過ぎず、本発明に必須ではない。フィールドサイ
ズは、所与のコンピュータネットワークのトランザクシ
ョン処理能力を反映している。図13に示すように、I
PからICへのどのメッセージも1バイトのメッセージ
の型250で始まる。通常のメッセージの型は「トラン
ザクション」であり、これはICへの通常の閉止応答を
指示している。しかしながら、他の考え得るメッセージ
の型は、以下のものを含む。
【0055】「復旧」:IPは「復旧」メッセージをI
C 110へ送って現トランザクション情報を入手す
る。 「使用可」:もしあるIPが静止していたが今は使用可
能であれば、そのIPは「使用可」メッセージをIC
110へ送る。これは、そのIPがトランザクション処
理に使用できることをIC 110に通告する。 「更新要求」:あるIPは、「延期」メッセージをIC
110から受信した後に「更新要求」メッセージをI
C 110へ送る。 「遊休」:特定のIP 115aは、「遊休」メッセー
ジを送ることによって遊休に入ることをIC 110に
通告する。あるIPは、かなりの数のローカルインタバ
ルが推移しても、そのIPに関連するコサーバに目立っ
た活動的なトランザクション、即ちトランザクションア
クティビティが存在しない場合に遊休になる。
【0056】「IC更新」:IC 110からの「IC
使用可」メッセージに応答して、あるIPは、そのIP
からICへの先行トランザクションメッセージで伝送し
た情報を含む「IC更新」メッセージを送る。この情報
は、IC 110が故障していために到着しなかったか
も知れない。 「復旧完了」:故障に続いて、開いているどのトランザ
クションも、IPによって解消され、インタバル閉記録
がディスクにフラッシュされた後に、IPはIC 11
0へ「復旧完了」メッセージを送る。次いでIC 11
0は、特定のIPが閉じたことを示すように全ての格納
されたインタバル閉記録を変更し、関与したトランザク
ションからそのIPを除去するようにトランザクション
状態リストを変更する。
【0057】図13に示す閉止メッセージでは、型25
0の後に4バイトのローカルインタバルタグ252が続
いている。ローカルインタバルタグ252は、ローカル
インタバルキーから得たインタバルである。タグ252
の次は2バイトのインタバル関係者ID 254であ
る。インタバル関係者ID 254の次は、4つのフラ
グ256−259であり、1バイトを占めている。これ
らのフラグは、インタバルメッセージが、コミットに適
格な何等かのトランザクションを含むか否か(フラグ2
56)、打切ることを要求されているか否か(フラグ2
57)、またはどれが制約検査を要求しているか(フラ
グ258)を表している。フラグ259は制約検査に対
する返答を表している。フラグ256−259の後に、
順番に、適格コミットリスト260、打切りリスト26
2、制約検査リスト264、及び制約返答リスト266
が続く。コミットリスト260、打切りリスト262、
及び制約検査リスト264は、全て同じ編成を有してい
る。各リストは、2バイトのリスト内のトランザクショ
ンの数のカウント270から始まる。次いで各トランザ
クション毎に、4バイトのトランザクションID 27
2、2バイトのトランザクションの関係者の数のカウン
ト274、及びそのトランザクションの関係者リスト2
76が続く。コサーバの数が 40 より少ないシステムの
場合には、関係者リスト276は、各ビットが1つのコ
サーバを表しているようなビットマップであろう。コサ
ーバの数が 40 より多いシステムの場合には、関係者リ
スト276は、ビットマップまたは関係者当たり2バイ
トの関係者IDのリストの何れかであり、何れにしても
バイトの数は少なくて済む。関係者リスト276の第1
のビット277は、どのフォーマットが使用されている
かを表している。
【0058】IPインタバル閉止メッセージ125は、
トランザクション関係者による据置き制約の評価の結果
を有する返答リスト266をも含んでいる。返答リスト
266は若干異なる構造を有している。返答リスト26
6は、2バイトのリスト内のトランザクションの数のカ
ウント280から始まる。次いで各トランザクション毎
に、2バイトのトランザクションオーナーID 28
2、4バイトのトランザクションID 284、及び制
約検査が成功したか、または失敗したかを表す1バイト
のフラグ286が続く。閉止メッセージ125はインタ
バルタグ252を含むので、IC 110は閉止メッセ
ージが伝送されたローカルインタバルを知る。インタバ
ルタグ252は、閉止メッセージ125のリスト26
0、262、264、及び266内に識別されている各
トランザクションにグローバルに適用される。
【0059】リスト260内の打切られたトランザクシ
ョンのID、及びリスト262内のコミットに適格であ
るトランザクションのIDは、IC 110によって最
新のトランザクションとして、メモリ22d(図8参
照)に維持されているトランザクション状態リスト17
0に追加される。IC 110は、次のインタバルメッ
セージ120を作成する時にトランザクション状態リス
ト170を参照する。インタバルコーディネータ及びインタバル関係者 図14に示すように、各マスタインタバル中に、IC
110は以下の諸段階を実行する。 1.タイマの終わりを待機 (段階301) 2.待ち行列内のメッセージを処理 (段階302) 3.待ち行列が空か否かを決定 (段階303) 4.トランザクション状態リストを処理 (段階304) 5.トランザクション状態リストをディスクへフラッシュ (段階305) 6.インタバルメッセージを伝送 (段階306) 7.マスタインタバルキーを増数 (段階307) IC 110は、メモリ22d内のタイマ185(図2
1参照)が時間切れになるのを待って段階301におけ
る新しいマスタインタバルを始動する。タイマ185が
時間切れになるのを待機することによって、IPは先行
マスタインタバル中に送られたインタバルメッセージ1
20に応答し、閉止メッセージ125でIC 110に
返答することが可能になる。IC 110に到着した各
閉止メッセージは、メモリ22d内の待ち行列180
(図8及び19参照)内に配置される。タイマ185
は、先行インタバルの始まりから 100msのような最短
時間が経過するのを保証するようにセットされる。タイ
マ185が時間切れになるか、またはタイマ185が既
に時間切れであれば、現時点に 100msのような最短時
間を付加することによってリセットされる。
【0060】IC 110は、IPからのメッセージを
増加的に処理することもできる。この場合、IC 11
0は、新しい閉止メッセージが到着するのを待つか、ま
たは現マスタインタバルのためのタイマ185が時間切
れになるのを待機するだけである。タイマ185が時間
切れになった後、段階302においてIC 110は、
待ち行列180(図8参照)内の何れかの閉止メッセー
ジを処理し始める。IC110が処理している間に、I
P 115a−115gからさらなる閉止メッセージが
到着することが考えられる。これらの閉止メッセージ1
25は、待ち行列の後尾に配置され、順番に処理され
る。IC 110は、段階303によって決定されるよ
うに、待ち行列180が空になるまで閉止メッセージを
処理し続ける。各IPは、1つの閉止メッセージだけを
送り、IC 110からの新しいインタバルメッセージ
を待機するであろうから(図19の段階351参照)、
待ち行列180には有限数の閉止メッセージだけが累積
する。例えば、もしIP(コサーバ)115aが故障で
あるか、または他のある源からの大量の負荷を処理中で
あることによって、IP 115aのようなIPが時間
通りに閉止メッセージをIC 110へ送ることができ
ないこともあり得る。このような場合には、IC 11
0はそのインタバルを閉じることはできず(但し上述し
たように、そのインタバルを終わらせる)、IC 11
0はそのインタバル中に応答しないコサーバのビットマ
ップを格納する。
【0061】処理段階302の詳細に関しては図15及
び16を参照して後述するが、要約すれば、この処理段
階中に閉止メッセージ125が調べられ、コミットリス
ト260、打切りリスト262、検査リスト264、及
び返答リスト266内のトランザクションがトランザク
ション状態リスト170内へ配置される。更に、インタ
バルメッセージ120のために打切りリスト212がア
センブルされる。待ち行列180内の全ての閉止メッセ
ージが処理されてしまうと、作成されたばかりのトラン
ザクション状態リスト170が処理される。処理段階3
04の詳細に関しては図17及び18を参照して後述す
るが、要約すれば、この段階中にICは、そのトランザ
クションをコミットするか否かを評価する。更に、段階
304において、インタバルメッセージ120のために
コミットリスト210及び検査リスト214がアセンブ
ルされる。
【0062】段階305において、IC 110はクリ
ティカルトランザクション情報をディスク24d(図8
参照)へフラッシュする。この情報は、マスタインタバ
ルキー150、トランザクション状態リスト170、ど
の関係者が閉止メッセージを送ったか否を示すインタバ
ル開アレイ425(図21、後述)、及びローカルイン
タバルタグの最後のタグアレイ435(図21)を含
む。アレイ435は、各コサーバ102a−102g毎
のエントリ436を含む。各エントリ436は、適切な
コサーバから受信した最新のローカルインタバルタグ2
52を含む。もし、分散データベースシステム5がバッ
クアップICを含んでいれば、処理段階304とフラッ
シュ段階305との間に、クリティカルトランザクショ
ン情報のコピーがIC 110から活動バックアップI
Cへ送られる。バックアップICの使用に関しては図2
3を参照して後述する。
【0063】トランザクション情報がディスク24dへ
フラッシュされてしまうと、段階306においてインタ
バルメッセージ120がIP 115a−115gへ伝
送される。好ましい実施例では、同じインタバルメッセ
ージが各IPへ送られる。しかしながら、ICに付加的
な処理負荷を追加することによって、各IP毎に独自に
最適化された異なるインタバルメッセージを送ることが
できる。メッセージを複数のサイトへ送るには多くの方
法が存在する。インタバルメッセージは直列に、即ち一
時に1つのIPへ送ることができる。好ましくは、もし
ハードウェアによってサポートされるならば、単一のイ
ンタバルメッセージ120を同報する、即ち全てのIP
115a−115gへ同時に送ることができる。ま
た、同報はソフトウェアによってシミュレートすること
ができる。代替として、特にもし多数のIPが存在すれ
ば、樹木伝送を使用することができる。本発明はインタ
バルメッセージ120を全てのIP 115a−115
gへ伝送するどのような方法にも適用される。
【0064】段階306において送られるインタバルメ
ッセージは、マスタインタバルから得たマスタインタバ
ルタグ202を含み、これはIP 115a−115g
がそれらのローカルインタバルキー155a−155g
をリセットするのに使用される。これは、ローカルイン
タバルキーのグローバルな一貫性を保証する。好ましく
ない実施例では、各IPは各インタバルメッセージ12
0に応答してそれ自体のローカルインタバルキーを増数
することができる。最後に、段階307において、IC
110はマスタインタバルキー150を増数させて新
しいマスタインタバルの始動を表し、段階301へルー
プバックして段階306で送られたインタバルメッセー
ジに応答する閉止メッセージの到着を待機する。
【0065】要約すれば、IC 110は分散トランザ
クションのコミット及び打切り、及びデータベースシス
テム5内の据置き制約検査の中央調整に応答する。IC
110はコミットインタバルを始動させ、トランザク
ションがコミットまたは打切られる時点を決定して記録
し、マスタインタバルキーを維持し、分散した据置き制
約検査を管理し、分散した全てのトランザクションのコ
ミットまたは打切り状態を維持し、そして、全ての関係
者の状態をデータベースシステム5内に維持する。図1
5に示すように、段階302においてICは、待ち行列
180内のこの閉止メッセージ125を処理する。段階
310においてIC 110は、最新のインタバルメッ
セージ120にどのコサーバが応答したかを追跡し始め
る。
【0066】各マスタインタバルの始まりに(例えば、
段階301において)、IC 110はインタバル開ア
レイ425内にインタバル記録420を作成する(図2
1参照)。インタバル記録420は、現マスタインタバ
ルキー150にセットされるインタバルタグ421を含
む。インタバル記録420は、データベースシステム5
内のコサーバの数に等しいビット数を有するインタバル
ビットマップ422をも含む(図21参照)。例えば、
データベースシステム5が7つのコサーバを含むものと
すれば、インタバルビットマップ422も7ビットを有
する。インタバルビットマップ422が作成される時、
各活動コサーバ毎のビットは「オン」にセットされ、中
断(もしくは延期)されたコサーバのためのビットは
「オフ」にセットされる。段階310において、IC
110は閉止メッセージ125からのインタバル関係者
ID 252に注目し、インタバルビットマップ422
内のそのコサーバのためのビットをオフにする。各マス
タインタバルの終わりに、もし全てのコサーバが閉止メ
ッセージを送っていればそのインタバルは閉じられ、I
C 110はインタバル記録420を消去できる。そう
でなければ、マスタインタバルは開き続け、IC 11
0はインタバル開アレイ425内にインタバル記録42
0を格納する。
【0067】次に、段階311においてIC 110
は、閉止メッセージ125内のトランザクションの処理
を終了したか否かを決定する。もしリスト260、26
2、264、及び266が空であれば、この終了は直ち
に発生する。そうでなければ、IC 110は各トラン
ザクションを調べて処理した後に限って終了させる。閉
止メッセージ125内に処理すべきトランザクションが
未だ存在しているものとすれば、段階312においてI
Cは、そのトランザクションが検査返答リスト266か
らのものか否かを決定する。もしこれが検査返答リスト
トランザクションであれば、段階313においてIC
は、図16を参照して後述する検査返答サブルーチンを
遂行する。もしトランザクションが検査返答でなけれ
ば、段階314においてICは、トランザクション記録
410をトランザクション状態リスト170に追加す
る。図13及び21を参照する。オーナーID 411
がオーナーID 254から入手され、トランザクショ
ンID 412がトランザクションID 272から入
手され、トランザクションインタバルタグ413がロー
カルインタバルタグ252から入手され、そして、関係
者リスト415がリスト276から入手される。関係者
のリストは、各コサーバ毎に1ビットのビットマップの
形状である。関係者であるコサーバは、ビットマップ4
15内に「オン」にスイッチしているビットを有してい
る。トランザクションの状態414は、フラグ256−
258によって始めにコミット要求、打切り、または検
査要求として決定されるが、以下に説明するようにIC
110によって変えることができる。
【0068】図15に戻る。段階315においてIC
は、そのトランザクションがコミットリスト260から
のものか否かを決定する。もしそうであれば、IC 1
10は段階320において次のトランザクションを続行
し、何等の行動も起こさない。もしそうでなければ、段
階316においてICは、そのトランザクションが閉止
メッセージ125の打切りリスト262からのものか否
かを決定する。もしこれが打切りトランザクションであ
れば、段階317において、打切りリスト262内のト
ランザクションが次のインタバルメッセージ120のた
めの打切りリスト212へ追加される(オーナーだけが
打切りを行うことができるような好ましい実施例を想定
している)。本発明の代替例では、トランザクション関
係者はICへの打切り要求を一方的に行うことができ
る。このような場合ICは、マスタインタバルの終わり
を待ち、コミットに適格のトランザクションのリストに
対する打切りの候補であるトランザクションのリストを
検査しなければならない。ICは、そのトランザクショ
ンに対するコミット処理が既に開始されていない場合に
限って、要求に応じて打切り処理を開始する。もしIC
がトランザクションを打ち切ることを決定すれば、その
トランザクションは打切りリスト212に追加される。
打切りリスト(もしあれば)が更新されてしまうと、I
C 110は段階320へ移動する。
【0069】もしトランザクションが打切りリスト26
2からのものでなければ、段階318においてIC 1
10は、そのトランザクションが制約検査リスト264
に関する要求からのものか否かを決定する。もし諾であ
れば、段階319においてICは、返答記録440を検
査返答アレイ445へ追加する。検査返答アレイ445
はIC 110によって維持されており、トランザクシ
ョンへの全ての関係者が据置き制約検査を完了したか否
かを決定する。IC 110がテーブル440内のトラ
ンザクション(例えば、#312 )を指定する返答リスト
266を含む閉止メッセージ125を受信する度に、I
C 110はその関係者に関連するビットを返答したと
してマークする。トランザクションへの全ての関係者が
返答し、制約障害が報告されていなければ、そのトラン
ザクションはコミットするこができる。各返答記録44
0は、トランザクションID 441と、関係者のビッ
トマップリスト442とを含む。ビットマップ442が
作成される時、関係者のビットはオンにセットされ、非
関係者のビットはオフにセットされる。例えば、図21
に示すように、もし勘定振替トランザクションに関して
据置き検査が要求されれば、コサーバ102a−102
cはそれらのビットが未だオンにセットされ、コサーバ
102d−102gのビットがオフにセットされている
ことが予測されているが、未だそのようにはなっていな
い。後述するように、ある関係者が制約検査返答を送る
度に、その関係者のビットはオフにセットされる。ビッ
トマップ442内の全てのビットがオフになると、制約
障害はないものと見做されてトランザクションはコミッ
トすることができる。返答記録440が返答検査アレイ
445へ追加された後、IC 110は段階320にお
いて閉止メッセージの処理を続行する。
【0070】トランザクションがどのリストからのもの
かには関係なく、段階320ではICは、次のトランザ
クションメッセージへ移動する。そうでなければIC
110は、その閉止メッセージで終了し、段階303へ
進んで待ち行列180内の次のメッセージへ移動する。
図16及び21を参照する。もしトランザクションが検
査返答リスト266内にリストされていたならば、段階
321においてICは、故障が発生したか否かを決定す
る。もし返答リスト266内のトランザクションのため
のフラグ286が故障を示していれば、段階322にお
いてトランザクション状態リスト170内の状態414
が「打切り」に変えられ、段階323においてそのトラ
ンザクションが打切りリスト212に追加される。次い
でICは閉止メッセージ125の処理を続行する。
【0071】もし閉止メッセージ125を送った関係者
における制約検査を通れば、段階324において、閉止
メッセージ125を送ったコサーバに対応するビットマ
ップ442内のビットが前述したようにオフにされる。
次いで段階325においてICは、全ての関係者が制約
検査を完了したか否かを決定する。もし返答ビットマッ
プ442内の全てのビットがオフであれば、返答ビット
マップ442は0に等しく、そのトランザクションはコ
ミットされるように進むことができる。段階326にお
いてそのトランザクションの状態414が「コミット」
に変えられ、段階327においてそのトランザクション
がコミットリスト210に追加される。もしビットマッ
プ422が何等かのオンビットを含んでいれば、ICは
閉止メッセージの処理を続行する。
【0072】図17及び18に示すように、段階304
においてICは、トランザクション状態リスト170を
処理してトランザクションをコミットし、コミットリス
ト210及び検査リスト214を作成する。各トランザ
クション毎に、段階330においてIC 110は、イ
ンタバルアレイ425の底(最も古い記録)から開始す
る。次いで段階331においてIC 110は、トラン
ザクションタグ413とインタバル開タグ421とを比
較する。もしトランザクションタグ413がインタバル
開タグ421よりも大きければ、そのトランザクション
はリスト170内で変更されないままにされる。もしト
ランザクションタグ413が、インタバル開タグ421
に等しいか、または小さければ、段階332においてI
Cは、そのトランザクションの全ての関係者がそのイン
タバルの閉止メッセージを送ったか否かを決定する。こ
れはビットマップの比較によって遂行される。トランザ
クションエントリ410のための関係者リスト415
は、関係者ビットマップの形状で格納されている(その
トランザクションに関与している各コサーバはオンにセ
ットされたビットで表され、関与していないコサーバは
オフにセットされたビットで表されている)。関係者ビ
ットマップ415は、インタバルビットマップと「論理
積」される。即ち、関係者ビットマップとインタバルビ
ットマップとのブールのAND演算が遂行される。
【0073】例えば、図21に示すように、勘定振替ト
ランザクションにおいては、関係者ビットマップ415
はコサーバ102a、102b、及び102cのための
3つのオンビットを有し、コサーバ102d−102g
のための4つのオフビットを有していよう。インタバル
ビットマップ422がマスタインタバル#6のために作
成される時、それは7つのオンビット(各コサーバ10
2a−102g毎に1つ)を有していよう。IC 11
0が閉止メッセージ125を受信すると、インタバルビ
ットマップ422内の対応するビットがオフにセットさ
れる。例えば、IC 110がインタバル#6のための
閉止メッセージ125−2aを受信すると、コサーバ1
02aのためのビットがオフにセットされる。コサーバ
102a−102cが閉止メッセージを伝送するものと
すれば、図21に示すように、インタバル#6のための
ビットマップ422内のこれらのコサーバのためのビッ
トはオフにセットされる。このような場合、AND演算
の結果7つのビットがオフ、即ち0になる。もし1また
はそれ以上のコサーバ102a−102cが応答しなけ
れば、オンビット、即ち非0ビットを含むことになる。
【0074】図17に示すように、段階335におい
て、もしAND演算の結果が0であれば、そのトランザ
クションの全ての関係者は指定されたインタバル421
を閉じており、トランザクションは状態を変えることが
できる。この場合、IC 110はトランザクションの
処理を続行する。段階340(図18)においてIC
は、トランザクション状態がそのトランザクションをコ
ミットする、または打切ることを表しているか否かを決
定する。もしトランザクション状態414が「コミッ
ト」または「打切り」であれば、段階341において、
そのトランザクションはリスト170から除去される。
トランザクションに関与しているIPは、それらのロー
カルトランザクションログ64a−64cへコミットま
たは打切りログ記録を有することが保証され、またこれ
らのログ記録がディスクへフラッシュされているので、
これらのトランザクションはリスト170から除去でき
るのである。全てのローカルトランザクションログがこ
れらのコミットまたは打切り記録で更新されてしまう
と、IC 110は最早トランザクションの状態を思い
出す必要はない。全てのトランザクション関係者のコサ
ーバは、ICからのさらなる援助がなくてもこれらのト
ランザクションの最終状態に関する曖昧さを局部的に解
消できることを保証されているので、IC 110はこ
れらのコミットされたトランザクションに関して「忘れ
る」ことができる。
【0075】もしトランザクション状態414が「コミ
ット」または「打切り」でなければ、段階342におい
てICは、据置き制約検査が要求されているか否かを決
定する。もしトランザクション状態414が「検査要
求」であれば、段階343において状態が「据置き」に
変えられ、段階344においてそのトランザクションが
検査リスト214に追加される。代替実施例において
は、この点において、段階302(図15)の一部とし
てではなく、返答記録440を検査返答アレイ445に
追加することができる。もしトランザクション状態41
4が「検査要求」であれば、段階345においてIC
は、IPがトランザクションのコミットを要求したか否
かを決定する。もしトランザクション状態414が「コ
ミット要求」であれば、段階346においてリスト17
0内の状態がコミットに変えられる。次いで段階347
において、トランザクション状態リスト170内のトラ
ンザクションタグ413が改訂される。即ち、トランザ
クションタグ413は、それが現マスタインタバルキー
150プラス(+)ある遅延値、即ち1に等しくなるよ
うに改訂される。410内のコミットされたトランザク
ションのためのインタバルタグ413のこのセッティン
グは、IC 110がトランザクションを「忘れる」こ
とができる(情報が、関係者内の非揮発性記憶装置内に
格納されているから)時点を指示する。段階348にお
いて、トランザクションはコミットリスト210に追加
される。
【0076】IPは閉止メッセージを送る前にそのディ
スクをフラッシュするから、任意のインタバルNに関連
するデータベースシステム5内の全てのログ記録は、I
C110がインタバルNを閉じる時までにディスクへフ
ラッシュされている。従って、インタバルNに、または
それより早くトリガされるコミット要求状態を有するト
ランザクションは、インタバルNが閉じられると、即ち
全てのIPが閉止メッセージを送ると、IC 110に
よってコミットすることができる。段階338におい
て、もしトランザクション状態が「コミット要求」でな
ければ、何等の行動も起こされない。他の全てのトラン
ザクション状態は無視され、この時点、即ち段階349
において、ICは明示された動作を要求しない。最後
に、段階336においてICは、トランザクション状態
リスト170内のさらなるトランザクションの存否を決
定する。もしIC 110が最後のトランザクションを
処理すれば、段階305へ進められる。もしさらなるト
ランザクションが存在すれば、段階337においてIC
は、次のトランザクション記録410を処理し、段階3
30へループバックする。
【0077】もしトランザクションタグ413がインタ
バルタグ421より大きいか、またはANDの結果が非
0であれば、段階333においてIC 110は、イン
タバル開アレイ425内の最後の(最も古い)記録42
0を解析したか否かを決定する。もし否であれば、段階
334においてICは、次のインタバル開へ移動し、段
階331へ戻ってプロセスを繰り返す。図19に示すよ
うに、各ローカルインタバル中に、各IPは以下の諸段
階を実行する。 1.トランザクションログバッファのフラッシュを開始 (段階351) 2.インタバルメッセージを解析 (段階352) 3.閉止メッセージを作成 (段階353) 4.インタバル閉ログ記録を書き込み (段階354) 5.ログバッファのディスクへのフラッシュを待機 (段階355) 6.閉止メッセージを送る (段階356) 7.トランザクションセッションを目覚めさせる (段階357) 8.ICからのインタバルメッセージを待機 (段階358) 9.ローカルインタバルキーを更新 (段階359) オーナーが新しい分散したトランザクションを開始させ
る度に、またはヘルパーが要求メッセージを受信する度
に、トランザクションは、記録470としてローカルト
ランザクション状態テーブル480内へ入力される。ト
ランザクション状態テーブルは、ハッシュテーブルとし
てフォーマットすることができる。図22に示すよう
に、ハッシュテーブル480内の各記録470は、グロ
ーバルトランザクションID 471、ローカルトラン
ザクションID 472、トランザクションが最後に状
態を変えたローカルインタバルを示すタグ473、トラ
ンザクションの状態を「コミット要求」、「コミット
済」、「打切り済」、「検査要求」、または「据置き」
として識別するフィールド474、及びセッションID
475を含み、トランザクションが状態を変える時を通
告する。セッションID 475は、ICからのインタ
バル閉止メッセージ120の結果としてのトランザクシ
ョンの状態の変化をIPから知らされるべき正しいトラ
ンザクション関係者を内部的に識別するために使用され
る。ハッシュテーブル480は、そのコサーバが関係者
であるような活動トランザクションのリストとして役立
つ。
【0078】IP 115aのようなIPは、図19の
段階358においてICからのインタバル閉止メッセー
ジを受信することによってローカルインタバルを開始す
る。段階359においてIPは、ICからの閉止メッセ
ージ内に含まれるマスタインタバルの値を、そのローカ
ルインタバルキーに割当てる。次に、段階351におい
てIPは、バッファ60a内のトランザクションログ6
4aの内容を非同期的にディスク24aへフラッシュし
始める。トランザクションログフラッシュは、ディスク
書き込みの遅れと、IPがインタバル閉止メッセージを
処理する時点とが重なるように直ちに要求される。ディ
スク24aへのフラッシュを開始した後に、段階352
においてIP 115aは、それが受信したインタバル
メッセージ120を解析する。処理段階352の詳細に
関しては図20を参照して後述するが、要約すれば、こ
の処理段階中にインタバルメッセージ120が調べら
れ、そのコサーバが関与しているコミットリスト21
0、打切りリスト212、検査リスト214、及び故障
リスト216内の何等かのトランザクションが処理され
る。段階352の間に、IPのトランザクション状態テ
ーブルが更新され、ICから今受信したばかりのインタ
バル閉止メッセージの結果として状態を変えるであろう
トランザクションを表す。また、段階352において
は、一時的に変化した状態スタック465が作成され
る。これは段階357において、状態を変えたトランザ
クションに関連する特定関係者に通告するのに使用され
る。これらのトランザクションのコミッッテイング及び
打切りに加えてIP 115a−115gは、直接また
はトランザクション関係者を介して、マークされたトラ
ンザクションのためのローカルロックを解除する。
【0079】段階353においてIPは、コミット要求
リスト260、打切りリスト262、検査要求リスト2
64、及び検査返答リスト266と、必要な見出し情報
(メッセージの型250、ローカルタグ252、IP識
別254、及びフラグ256−259)とを組合わせる
ことによって閉止めメッセージ125を作成する。コミ
ットリスト260、打切りリスト262、及び検査要求
リスト264は、トランザクションオーナーの代わりに
そのIPによって作成される。検査返答リスト266
は、トランザクション関係者に代わって作成される。ト
ランザクションオーナーまたは関係者が、そのICのた
めの特定トランザクション関係者に関する命令または情
報を入手する度に、トランザクションオーナーはIP内
のルーチンを呼出してそのトランザクションを適切なリ
ストへ追加する。
【0080】トランザクションオーナーが、各関係者セ
ッションから完了メッセージ145を受信すると、トラ
ンザクションは、暗示的に、またはユーザからの明示的
な要求に基づいて、コミット評価を開始できる点にあ
る。もしそのトランザクションが据置き制約評価を要求
しなければ、トランザクションオーナーはIP 115
c内のルーチンを呼出してそのトランザクションをコミ
ット要求リスト260に追加する。図10を参照する。
例えば、オーナー130がコサーバ102aから完了メ
ッセージ145aを受信し、そのトランザクションをコ
ミットする要求を受信すると、IP 115cは据置き
制約が存在しないことに注目し、トランザクションの状
態をコミット要求に変え、その勘定振替トランザクショ
ンを閉止メッセージ125−2c内のコミット要求リス
ト260へ追加する。
【0081】同様に、もしユーザがトランザクションを
打切ることを決定するか、またはもし制約検査に失敗す
れば、トランザクションオーナーはIP 115c内の
ルーチンを呼出してそのトランザクションを打切りリス
ト262へ追加する。もしコミットは要求されているが
据置き制約が存在すれば、トランザクションオーナーは
ルーチンを呼出してそのトランザクションを検査要求リ
スト264へ追加する。次いで制約検査要求が、コミッ
トまたは打切りのための要求の同じようにIC 110
へ送られる。次いでIC 110はそのトランザクショ
ン内の全ての関係者へ検査メッセージを送り、制約検査
を遂行して結果を報告するように関係者に命令する。も
しどのコサーバも制約を侵していなければ、IC 11
0はオーナー130が要求を明示しなくとも、そのトラ
ンザクションをコミットする。
【0082】トランザクションオーナーを含むトランザ
クション関係者は、IC 110からの検査要求に応答
して制約検査を完了する。その検査が成功であっても、
または不成功であっても、トランザクション関係者はル
ーチンを呼出してそのトランザクションを検査返答リス
ト266へ追加する。図19へ戻って、閉止メッセージ
125を作成した後、段階354においてIPは、IP
がICに応答してそのインタバルを閉じたことを表す
「インタバル閉」ログ記録をトランザクションログ内に
入力する。インタバル閉ログ記録は、インタバル番号
と、そのインタバルにおいてコミットされたトランザク
ションのリスト455とを含む。書き込み段階354が
作成段階353の後に発生するように示してあるが、書
き込み段階354は目覚め段階357の前のどの時点に
発生しても差し支えない。代替実施例では、書き込み段
階354及び待機段階355は、作成段階353の前に
配置されている。
【0083】段階355においてIPは、最後のローカ
ルインタバルに関するログ記録を含むバッファ60cが
ディスク24cへフラッシュされるのを待つ。フラッシ
ュは段階351に開始されたのであるが、段階355の
前に完了していないかも知れない。続行する前にバッフ
ァ60cのフラッシュを待つことによって、IP 11
5cが閉止メッセージを送る時点が確保され、そのロー
カルインタバルに関する全てのログ記録は非揮発性記憶
装置内に格納され、障害が起こっても失われなくなる。
次いで、段階356においてIPは、閉止メッセージ1
25をIC 110へ送る。段階356において閉止メ
ッセージ125をIC 110へ送った後、段階357
においてIPは、トランザクションの状態が変化してい
るトランザクション関係者に通告する。IPは、変化し
た状態スタック465内の各記録を調べて適切なトラン
ザクション関係者へ通報するので、その関係者は、例え
ばトランザクションがコミットされたことをユーザに知
らせるような適切な行動を起こすことができる。分離し
たデータ構造として示してあるが、変化した状態スタッ
ク465は単に、状態が変化したトランザクションを接
続するトランザクション状態テーブル480内の1組の
リンクであってよい。各リンクは、記録470内のポイ
ンタ(別の記録470を指し示す)であることができ
る。このような場合IPは、リンクを辿ってハッシュテ
ーブル480を通って移動することによってトランザク
ション関係者に通告する。
【0084】通告されたトランザクション関係者は、も
しそのトランザクションが打切られていれば、その操作
処理を元に戻し、トランザクションログ64c内に打切
りログ記録を入力する。もしトランザクションがコミッ
トされていれば、トランザクション関係者はトランザク
ションログ64c内にコミットログ記録を入力する。も
し新しい状態が「検査要求」であれば、トランザクショ
ン関係者は制約検査を開始することができる。上述した
ように、トランザクションが制約検査に成功すれば、そ
のトランザクションは検査返答リスト266内の次の閉
止メッセージ125内へ含まれる。もしトランザクショ
ンが制約検査に成功しなければ、そのトランザクション
は検査返答リスト266内の次の閉止メッセージ125
内へ障害として含まれる。
【0085】待機段階358においてIPは、IC 1
10からの次のインタバルメッセージを、時間を決めず
に待機する。データベースシステム5はバックアップI
C(図23を参照して後述する)を使用してIC 11
0内の障害を検出し、応答する。段階358における待
機状態がIPの初期状態であることは理解されよう。イ
ンタバルメッセージを受信した後に限って、IPは、待
機状態から脱してインタバル処理を開始する。IP 1
15aのようなIPがIC 110からインタバルメッ
セージを受信した後、段階359においてIPは、イン
タバルメッセージ120内に指定されているマスタイン
タバルタグ202を用いてローカルインタバルキー15
5aをリセットする。次いでIPは、段階351へルー
プバックしてトランザクションログのフラッシュを要求
することによって、新しいローカルインタバルを開始す
る。
【0086】要約すれば各IPは、IC 110からの
インタバルメッセージ120に応答して閉止メッセージ
125を送り、インタバル閉ログ記録を書き込み、ロー
カルインタバルキーを維持し、そしてトランザクション
の状態が変化するとトランザクション関係者に通告す
る。トランザクション関係者は制約検査に応答し、コミ
ット及び打切りログ記録をトランザクションログ64a
−64cへ書き込む。図20に示すように、段階352
においてIPは、インタバルメッセージ120を解析す
る。段階371においてIP 115cのようなIP
は、トランザクション状態テーブル480内のトランザ
クションを調べ、コサーバ102cがインタバル閉止メ
ッセージ120内の次のトランザクション内の関係者で
あるか否かを決定する。もしコサーバ102cがそのト
ランザクションに関与していなければ、IP 115c
はインタバルメッセージ120内の次のトランザクショ
ンへ移動する。
【0087】もしコサーバ102cがそのトランザクシ
ョンに関与していれば、段階372においてIP 11
5はハッシュテーブル480内の状態474を変える。
詳しく説明すれば、トランザクションがコミットリスト
210、打切りリスト212、または検査要求リスト2
14内にあるか否かに依存して、状態474はそれぞれ
「コミット」、「打切り」、または「検査要求」に変化
する。状態474を変化させた後、段階373において
コミットされた、及び打切られたトランザクションはト
ランザクション状態テーブルから除去され、変化した状
態スタック465に追加される。据置き制約検査に関与
したトランザクション関係者は、制約検査が開始された
ことを通告される。コサーバ102cがトランザクショ
ンに関係したものとすれば、段階374においてIP
は、トランザクション状態が「コミット」に変化したか
否かを決定する。もしそのように変化していれば、段階
375においてそのトランザクションは、コミット記録
450としてコミットリスト455(図22参照)に追
加される。コミットリスト455は、インタバル閉記録
の一部としてトランザクションログ及びディスク24c
へコピーされる。
【0088】段階376においてIPは、トランザクシ
ョンが完了したか否かを決定する。ICメッセージのリ
スト内に「コミット」または「打切り」として分類され
ているトランザクションは完了と見做され、「据置き検
査」として分類されているものは未だに活動のトランザ
クションであると見做される。もしトランザクションが
完了ならば、段階377においてトランザクション記録
470をハッシュテーブル480から除去することがで
きる。もしさらなるトランザクションが存在しないこと
が段階378によって決定されれば、IPはその解析を
完了したのであり、段階353へ移動する。繁忙なシス
テムでは、コサーバ102d上で走るIP 115d
は、閉止メッセージ120にタイムリに応答できないか
も知れない。例えばコサーバ102dが、その処理能力
一杯の極めて複雑な1組の操作処理を実行しているかも
知れない。もしIP 115dがインタバルのしきい値
数(例えば、 50 乃至 100インタバル)をミスすれば、
IC 110は、IP 115dを延期にし、インタバ
ルメッセージをIP 115dへ送るのを中断する。も
しIP 115dが「延期」メッセージを送れば、それ
は不活動としてマークされる。IP 115dが応答で
きるようになるとIPは「更新要求」メッセージをIC
110へ送ることができ、ICは「更新」メッセージ
で応答する。これによりIP 115dは、それがミス
した全てのインタバル閉止メッセージを処理することな
く現インタバルを取り戻すことができる。
【0089】IP 115dを延期し、後刻それを更新
できるようにすると、コサーバが所与の時間内に全ての
インタバルメッセージを処理できるようになった時に発
生する2つの費用が緩和される。第1の費用は、そのよ
うになっていなければ、全ての介在インタバルメッセー
ジを現在にするためにIP 115dが処理する必要が
あることである。第2の費用は、IPが応答しなかった
全てのインタバルに関する記録をIC 110が維持し
なければならないことである。IP 115a−115
gが不活動である場合、ネットワーク資源を保存するた
めにIC 110は遊休状態に入ることができる。IP
115aのようなIPは、分散したトランザクション
がコサーバ102a上で実行され始めた時から、IP
115aが「遊休」メッセージを送るか、IC 110
によって延期されるか、または故障してラインから外さ
れるまで活動であると見做される。IPは、もしそれが
指定された時間(例えば、100 インタバル)にわたって
トランザクション関係者でなければ「遊休」に入ること
ができ、「遊休」メッセージをICに送る。正常な動作
状態の下では、待機段階301呼出しが自動的にタイマ
を失効させる。IC 110は、もし活動IPが存在し
なければ遊休状態に入ることができる。遊休状態では、
IC 110はインタバル処理を中止し、代わりにIP
からのメッセージを、時間を定めずに待機する。IC
110は、IC 110の健全性を監視するためにその
バックアップIC(図23を参照して後述する)へメッ
セージを送るのに十分な頻度で目覚める。
【0090】復旧 2つの障害シナリオ、即ちIC 110を走らせている
コサーバの故障、またはデータベースシステムの完全な
故障が、IC 110に直接影響を与える。両方の故障
に対して保護するために、クリティカル情報は、各マス
タインタバルが閉じる時にIC 110によってディス
ク24dへ書き込まれる(説明の目的から、IC 11
0がコサーバ102d上で走っているものとする)。デ
ータベースシステム5においては、トランザクション状
態リスト170がIC 110によって非揮発性記憶装
置へコピーされると、トランザクションはコミットされ
る。しかしながら、IC 110はコミット記録を恒久
的に保持する必要はない。後述するように、IC 11
0は、(このようなトランザクション状態を伝統的にロ
ッギングして恒久的に格納するのではなく)先行マスタ
インタバルに関するトランザクション状態の「スナップ
ショット」だけを保持することが好ましい。トランザク
ションがコミットまたは打切られたことをIC 110
がIP 115a−115gに通報すると、関係者はそ
の情報をそれらのトランザクションログ内に格納する。
IC 110が各関係者から閉止メッセージを受信する
と、IC 110はコミットまたは打切り記録が、所与
のトランザクションに関係する全てのコサーバのディス
ク24a−24g上のそれぞれのログへフラッシュされ
たことを知る。従って、各コサーバはICをさらに参照
することなく所与のトランザクションの最終状態を持続
的に解消することができる。この点において、ICは最
早トランザクションの最終状態をディスク24d上のシ
ステムのトランザクション状態の「スナップショット」
内に維持する必要はなくなる。従って、データベースシ
ステム5においては、IC 110は、各関係者がある
トランザクションの状態のログ記録をフラッシュするま
で、そのトランザクションの状態の記録を維持する責を
負い、一方個々のIPはコサーバ及び打切り記録をそれ
らのローカルトランザクションログ内に恒久的にログす
る責を負う。
【0091】IC 110は、ディスク上にシステムの
現トランザクション状態の完全且つ正確なコピーが常に
存在することを保証するために、二重バッファリング方
式を使用する。例えば、もしIC 110がマスタイン
タバル#5に関するログ記録をディスク上の1つの位置
へフラッシュすれば、IC 110はマスタインタバル
#6を閉じる時そのログ記録をディスク上の異なる位置
へ書き込む。ログ記録がフラッシュされてしまえば、マ
スタインタバル#5に関するデータは古いものとしてマ
ークされるので、そのディスクスペースはマスタインタ
バル#7のために使用することができる。もしマスタイ
ンタバル#7中にディスクへの書き込みに失敗するか、
またはもしマスタインタバル#7のログ記録を書き込ん
でいる間にデータベースシステム5がクラッシュすれ
ば、マスタインタバル#6のログ記録は未だにIC 1
10の次の適切な操作処理のために完全、正確、且つ十
分である。
【0092】システム内の全てのコサーバは、現IC、
活動バックアップIC、またはリザーブバックアップI
Cの何れかを含むことができる。図23に示すように、
もしデータベースネットワーク100が2またはそれ以
上のコサーバを有していれば、データベースシステム5
は活動バックアップIC 520を含んでいよう。活動
バックアップIC 520がコサーバ102e上で走る
ように示してあるが、活動バックアップICは、IC
110が走っているコサーバ102cを除くどのコサー
バ上でも走ることができる。もし、ネットワーク100
が3またはそれ以上のコサーバを有していれば、データ
ベースシステム5は活動バックアップIC 520、及
び1またはそれ以上のリザーブバックアップIC 52
5a、525bを含むであろう。リザーブバックアップ
IC 525a、b、d、f、及びgは、未だIC 1
10及び活動バックアップIC 520が走っていない
例えばそれぞれコサーバ102a及び102gのような
どのコサーバ上でも走ることができる。もし活動バック
アップIC 520が何時か故障すれば、リザーブIC
が活動化される。これにより、IC 110が使用不能
になった場合に素早いレスポンスが得られる。
【0093】各マスタインタバルの終わりに、トランザ
クション情報リスト170内のトランザクション状態情
報が、「バックアップメッセージ」530の形状で、I
C110から活動バックアップIC 520へ送られ
る。活動バックアップIC520はこの情報をローカル
揮発性バッファ22eへコピーし、「承認(またはアク
ノリッジ)メッセージ」535をIC 110へ送る。
承認メッセージ535は、活動バックアップIC 52
0がトランザクション状態情報を受信したことをIC
110へ通告する。しかしながら活動バックアップIC
520は、そのトランザクション情報をコサーバ10
2eのディスク22eへ書き込まない。IC 110
は、それが活動バックアップIC 520から承認メッ
セージ535を受信するまで、且つIC 110がトラ
ンザクション状態情報をディスク22dへ書き込むま
で、IP 115a−115gへ閉止メッセージ120
を送らない。もしIC 110が承認メッセージ535
を待たなければ、活動バックアップIC 520内の情
報が、IPの情報と矛盾するかも知れず、復旧には無用
になるであろう。
【0094】IC 110及び活動バックアップIC
550の両方が故障の場合には、ディスク22d上のマ
スタインタバル情報577は、再始動したIC 11
0、再始動したバックアップIC 550による、また
はリザーブバックアップIC525a−525gの1つ
の活動化によるシステムのトランザクション状態の回復
及び再初期化に使用される。もしIC 110が指定さ
れた時間(例えば、3秒)内に承認メッセージ535を
受信しなければ、IC 110は、活動バックアップI
C 520が故障して、リザーブバックアップIC 5
25の1つが昇格しているものと考えることができる。
同様にもし活動バックアップIC 520が指定された
時間内に次のバックアップICメッセージ530を受信
しなければ、活動バックアップIC520は、IC 1
10が故障しているものと見做し、その任務を引き継ご
うと試みる。
【0095】データベースシステム5は、IC位置の変
化及びバックアップICの昇格を処理する構成管理者5
40(例えば、コサーバ102g上で走る)を含む。I
C110の位置を変えるという構成管理者540への要
求は、活動バックアップIC 520からしか到来しな
い。もしコサーバ102eが活動バックアップICとし
て管理者に認識されれば要求は承認され、コサーバ10
2e上のバックアップICがIC 110になる。次い
で、リザーブバックアップICが活動バックアップIC
として昇格する。もし要求者が要求時に活動バックアッ
プICでなければ(例えば、もしそれがコーディネータ
により早めに降格されていれば)、その要求は拒否さ
れ、コサーバ102aはリザーブバックアップICとし
て登録される。
【0096】本発明の好ましい実施例では、リザーブバ
ックアップICだけが、活動バックアップICになる中
間段階を経て、IC 110に直接昇格することができ
る。リザーブバックアップICは、メッセージ530を
通してグローバルトランザクション状態を受信すること
によって、または先にログされた故障IC 110のグ
ローバルトランザクション状態577を受信することに
よって、活動バックアップICになることができる。代
替実施例では、リザーブバックアップICは、システム
の現グローバルトランザクション状態を集めるためにI
Pと「IC使用可」及び「IC更新」メッセージを交換
することによってIC 110になることもできる。活
動バックアップIC 520がIC 110になると、
それはメモリ22e内の情報を使用してその構造を最新
のトランザクション状態で初期化し、情報をディスクへ
書き込み、「IC使用可」メッセージを全てのIP 1
15a−115gへ送ってIC 110の位置が変わっ
たことを通告する。IPからの「IC更新」応答が、新
しいIC 110のグローバルトランザクション状態を
確認するために使用される。これで、トランザクション
処理を続行することが可能になる。
【0097】リザーブされたバックアップICを、IC
110または活動バックアップICに指名変えできる
のは構成管理者540だけである。先に説明したリザー
ブバックアップICの活動バックアップICへの昇格、
及び活動バックアップICのIC 110への昇格の両
方に関しては、構成管理者が唯一の決定者になってい
る。この構成管理者とのインタラクションは、2つの独
立したインタバルコーディネータからインタバルメッセ
ージを受信することを防ぐために必要である。このよう
な事態は、もしIC 110が、活動バックアップIC
520は死んでいると信じて新しい活動バックアップ
ICを要求し、IC 110は故障であると活動バック
アップIC 520が考えて自分自身をインタバルコー
ディネータに昇格させると発生し得る。
【0098】ある時点にコサーバ102aのようなコサ
ーバが故障すると、そのコサーバはIC 110によっ
て登録抹消される。コサーバ102aが復旧すると、そ
れはディスク24a上のトランザクションログ64a内
に格納されている全ての操作処理を再生することによっ
てロールフォワードする。もしIP 102aがトラン
ザクションログ64aに基づいてそのロールフォワード
を完了した後に開いたトランザクションが残っていれ
ば、IC 110はどのようにしてそれらを解消するか
を決定する。IP 115aはIC 110へ「復旧」
メッセージを送り、IC 110はメモリ60d内のト
ランザクション状態リスト170にアクセスしてIP1
15aが関係者であったトランザクションを見出すこと
によって応答する。次いでIC 110はコミットした
トランザクションをリストしている「復旧返答」メッセ
ージをIP 115aへ送る。「復旧返答」メッセージ
によって伝送された情報に対して行動が起こされた後も
開いたままのトランザクションは打切られる。コサーバ
102aが復旧を完了した後、IP 115aはそのト
ランザクションログ64aをディスク24aへフラッシ
ュし、「復旧完了」メッセージをIC 110へ送る。
IC 110はコサーバ102aに関するトランザクシ
ョン情報を、トランザクション状態リスト170からク
リヤする。全てのトランザクションが解消され、最初の
分散したトランザクションが実行され始めると、IP
115aは「使用可」メッセージをIC 110へ送
り、IC 110はコサーバ102aを再登録する。
【0099】上述した構成では、データベースシステム
5は以下に説明する故障シナリオから復旧することがで
きる。図9を参照する。もしIC 110によるトラン
ザクションが完了する前にオーナー130が故障すれ
ば、IC 110は次のインタバルメッセージ内にコサ
ーバ102cの未解消トランザクションの打切りを含ま
せ、そのトランザクションは全ての関係者コサーバ上で
打切られる。復旧中に、コサーバ102cはそのトラン
ザクションを打切る。もしトランザクションがIC 1
10によってコミットされた後に故障すればトランザク
ションの他の関係者は、そのトランザクションが正常に
コミットされたことを通報される。しかしながら、IC
110はコサーバ102cが復旧するまで、コサーバ
102cに関する記録をトランザクション状態リスト1
70内に格納している。結局は、復旧プロセス中に、コ
サーバ102cはIC 110へメッセージを送って何
等かの未解消トランザクションの最終状態を要求する。
IC 110は、リスト170内の情報に基づいて、オ
ーナー130が開始したトランザクションがコミットさ
れたことをIPへ通報する。そこでコサーバ102cは
コミットログ記録をトランザクションログ64c内へ書
き込む。
【0100】もし、インタバル閉ログ記録がディスク2
4cへフラッシュされた後にオーナー130が故障すれ
ば、復旧中に、コサーバ102cはトランザクションロ
グ64c内の情報を使用するだけでトランザクションの
ローカルコミット処理を完了する。コサーバ102cと
ICとのインタラクションは必要としない。もし、完了
メッセージ140aがオーナー130へ送られる前にヘ
ルパー135aが故障すれば、コサーバ102cはコサ
ーバ102aが故障したことを通知し、そのトランザク
ションは打切られる。コサーバ102eがトランザクシ
ョンの打切りをIC 110へ通知すると、IC 11
0は前述したように、102aを除くトランザクション
の全ての関係者にトランザクションの打切りを通知す
る。復旧中に、コサーバ102aはそのトランザクショ
ンを打切る。
【0101】もし、完了メッセージ140aがオーナー
130へ送られた後ではあるが、IC 110がそのロ
グ記録をディスクへフラッシュすることによってそのト
ランザクションをコミットする前にヘルパー135aが
故障すれば、それでもそのトランザクションは他のコサ
ーバ102b−102g上で進行することができる。も
しオーナー130が、コサーバ102aの故障を通知す
る前にコミットを要求されなければ、オーナー130は
そのトランザクションを打切る。これは、通常のトラン
ザクション打切りとして処理される。もしオーナー13
0が既にコミットを要求されていれば、IC 110
は、コサーバ102aが故障したことを通知された時に
そのトランザクションを打切りとしてマークする。両方
の場合に、コサーバ102aは、復旧処理の一部として
そのトランザクションを打切る。
【0102】もし、IC 110がそのトランザクショ
ンをコミットした後ではあるが、トランザクションログ
64a内のコミットログ記録がディスクへフラッシュさ
れる前にヘルパ135aが故障すれば、トランザクショ
ン内の他の関係者はそのトランザクションが通常通りコ
ミットされたことを通報される。しかしながら、もしI
C 110は、コサーバ102aが復旧するまでリスト
170内にそのトランザクションを格納する。結局は、
復旧プロセス中に、コサーバ102aはIC110へメ
ッセージを送ってその未解消トランザクションの最終状
態を要求する。IC 110はリスト170へアクセス
し、そのトランザクションがコミットされたことをコサ
ーバ102aに通報する。そこで、コサーバ102aは
コミットログ記録をトランザクションログ64a内に書
き込む。
【0103】もし、コミットログ記録がディスク22a
へフラッシュされた後にヘルパ135aが故障すれば、
コサーバ102aは、自分自身のトランザクションログ
64aを使用してそのトランザクションがコミットされ
たか否かを決定する。ICとインタラクトする必要はな
い。もしIC 110が故障し、活動バックアップIC
がコーディネータまたはコサーバのホスティングの役割
を果たすまで、分散したトランザクションをコミットま
たは打切ることができなければ、コーディネータがライ
ンに戻される。何れの場合も、保管されていたグローバ
ルトランザクション状態が復元され、「IC使用可」メ
ッセージがICに登録された全ての関係者へ送られる。
もしオーナー130及びヘルパー135aが故障すれ
ば、その状況は一方または他方が故障した場合と同じよ
うに処理される。
【0104】もし全システムが故障(全てのコサーバ1
02a−102gが故障)すれば、データベースシステ
ム5が復旧した時に、リスト170内に保管されていた
トランザクション状態577がディスク22dから復元
され、IC 110は、クラッシュ時に活動または遊休
として登録されていた全てのコサーバへ「IC使用可」
メッセージを送る。次いでIC 110は返答を待つ。
各コサーバは復旧情報に関する要求を送り、その復旧の
ロールフォワード段階を完了した後も開き続けているト
ランザクションを解消する。活動バックアップICが使
用不能であり、IC 110を走らせているコサーバが
故障すれば、以下の2つの動作の一方が行われる。もし
データベースシステム5がコサーバ再始動をサポートし
ていれば、分散した全てのトランザクションの終止は、
ICが再始動できるまで遅らされる。もしコサーバの再
始動が不可能であれば、データベースシステム5は、I
C 110またはバックアップICが再始動するまでト
ランザクションを処理することはできない。
【0105】若干のトランザクションは、複数のデータ
ベースシステムにわたっている。このようなトランザク
ションの場合には、本発明のデータベースシステムは外
部データベースシステムとインタラクトしなければなら
ない。外部データベースシステムは、標準2相コミット
プロトコルのような異なるコミットメントプロトコルを
使用しているかも知れない。外部データベースシステム
とインタラクトするデータベースシステム100を必要
とするトランザクションを、外部トランザクションと呼
ぶ。外部トランザクションの場合には、本発明のコミッ
トメントプロトコルは、2相コミットにおける関係者の
セマンティック要求を満足できなければならない。デー
タベースシステム100は、2つの例外を除いて、外部
トランザクションを通常の内部トランザクションとして
処理することができる。第1は、データベースシステム
100は、外部データベースシステムが使用しているグ
ローバル外部トランザクション識別子と、データベース
システム100のIP及びICが使用している内部識別
子との間で写像(またはマッピング)を行うことであ
る。
【0106】第2は、もし外部トランザクションが「コ
ミット要求」状態に入っていれば、外部トランザクショ
ン内の各内部関係者が閉止メッセージを送った後に、I
Cが外部トランザクションを「休止」状態に置く。外部
トランザクションが「休止」状態に入った後に、データ
ベースシステム100は、外部トランザクションを準備
するための外部要求に応答して成功状態を取り戻すこと
ができる。続いて、外部要求に応答して、ICは外部ト
ランザクションの状態を「打切り」または「コミット」
に変えることができる。復習すれば、本発明はコンピュ
ータネットワーク上の分散データベースシステム内に分
散したトランザクションをコミットする方法である。分
散データベースシステムは、コサーバと呼ぶ複数のデー
タベースサーバからなる。コンピュータネットワーク内
のコンピュータまたはノード上には1より多くのコサー
バが存在し得る。インタバルコーディネータ(IC)は
コサーバの1つに存在し、インタバル関係者(IP)は
各コサーバに存在する。ICは「インタバルメッセー
ジ」と呼ぶメッセージを各IPへ定期的に送出する。イ
ンタバルメッセージは、連続する各インタバル毎にIC
によって増加させられるインタバル識別子を含み、新し
いインタバルが開始されたことをIPに通告する。各I
Pは、そのローカルインタバルを指定するインタバルカ
ウンタを維持している。インタバルメッセージに応答し
て、IPはそのインタバルカウンタをインタバル識別子
からの値にセットし、そのコサーバに関連するトランザ
クションログを非揮発性記憶装置へフラッシュする。ロ
グをフラッシュした後、IPは「閉止メッセージ」と呼
ぶメッセージをICへ送り返す。
【0107】分散トランザクションに関与している各コ
サーバはそのトランザクション内の関係者である。トラ
ンザクションを発した関係者を「オーナー」と呼び、他
の関係者を「ヘルパー」と呼ぶ。ヘルパーはデータベー
ス更新を完了すると、そのインタバルカウンタの値でタ
グを付けられた応答メッセージをオーナーへ送る。オー
ナーは何れかの関係者によるトランザクションの更新に
関連する最新のタグを格納する。ユーザ(即ち、トラン
ザクションオーナー)がトランザクションをコミットす
ることを要求する場合、オーナーはトランザクションの
コミット要求を、格納したタグ及びトランザクションに
関係しているコミットのリストと共にICへ伝送する。
この要求は、次の閉止メッセージ中に送ることができ
る。ICは、全てのIPがあるインタバルのための閉止
メッセージを送るまで、そのインタバルに関する記録を
格納する。ICは、そのトランザクション内の関係者の
全てがあるインタバル(そのトランザクションに関して
格納したタグに等しいか、またはより新しいインタバ
ル)のための閉止メッセージを送ったと決定すると、そ
のトランザクションをコミットすることができる。トラ
ンザクションをコミットできるとICが決定すると、I
Cはそのトランザクションに関するコミット記録をIC
のログへ書き込む。コミットされたトランザクションの
リストは、次のインタバルメッセージ内に含まれる。I
Cのログは、インタバルメッセージが送られる前に非揮
発性記憶装置へフラッシュされるから、トランザクショ
ンをコミットするためのICの復旧可能性が保証され
る。
【0108】コミットするトランザクションのリストを
含むインタバルメッセージの受信に応答して、各コサー
バは、それが関係者であった各トランザクション毎のト
ランザクションログ内にコサーバログ記録を入力する。
トランザクション内の全ての関係者がそのインタバルの
ための閉止メッセージ(トランザクションのコミット通
知を含む)を送ってしまうと、ICはそのトランザクシ
ョンを忘れることができる。このコミットプロトコル
は、特にマルチノード並列処理コンピュータにおいて、
交換されるメッセージの数を大幅に減少させ、それによ
って分散データベースシステムの性能を改善する。以上
に本発明の好ましい実施例に関して説明した。しかしな
がら、本発明はこの実施例に限定されるものではない。
本発明の範囲は特許請求の範囲によってのみ限定される
ものである。
【図面の簡単な説明】
【図1】コンピュータネットワークの概要図である。
【図2】コサーバネットワークの概要図である。
【図3】あるネットワークに接続されている2台のコン
ピュータのブロック線図である。
【図4】コンピュータデータベースの例である。
【図5】分散データベースのブロック線図である。
【図6】分散データベースが使用する2つのトランザク
ションログの例である。
【図7】本発明によりインタバルコーディネータ及び複
数のインタバル関係者が走っているコサーバネットワー
クの概要図である。
【図8】本発明による分散データベースシステムの概要
図である。
【図9】本発明によりインタバル関係者とインタバルコ
ーディネータとの間のメッセージの交換を示すブロック
線図である。
【図10】オーナー、ヘルパー、及びインタバルコーデ
ィネータの間のメッセージの交換を示す時間線である。
【図11】(A)、(B)、及び(C)は、図10の時
点A、B、及びCに本発明の分散データベースによって
維持されるコサーバログの例である。
【図12】インタバルメッセージの概要図である。
【図13】閉止メッセージの概要図である。
【図14】インタバルコーディネータのプロセスの流れ
図である。
【図15】待ち行列内のメッセージを処理する方法の流
れ図の一部である。
【図16】図15の流れ図の続きである。
【図17】トランザクション状態リストを処理する方法
の流れ図の一部である。
【図18】図17の流れ図の続きである。
【図19】インタバル関係者のプロセスの流れ図であ
る。
【図20】インタバルメッセージを解析する方法の流れ
図である。
【図21】インタバルコーディネータが使用するデータ
構造のブロック図である。
【図22】インタバル関係者が使用するデータ構造のブ
ロック図である。
【図23】バックアップ内部コーディネータを使用する
分散データシステムのブロック線図である。
【符号の説明】
5 分散データベースシステム 10 コンピュータネットワーク 12 コンピュータ 14 ネットワークライン 16 サーバ 18 プリンタ 20 CPU 22 メモリ 24 記憶装置 26 バス 30 データベース 32 小切手勘定テーブル 42 預金勘定テーブル 60 トランザクションバッファ 64 トランザクションログ 70−74 ログ記録 100 分散データベースプログラム 102 コサーバ 110 インタバルコーディネータ 115 インタバル関係者 120 インタバルメッセージ 125 閉止メッセージ 130 オーナー 135 ヘルパー 140 要求メッセージ 150 マスタインタバルキー 155 ローカルインタバルキー 160 ログ記録 170 トランザクション状態リスト 180 待ち行列 185 タイマ 425 インタバルアレイ 435 最後のタグアレイ 445 検査返答アレイ 455 コミットリスト 465 変化した状態スタック 470 トランザクション状態テーブル 520 活動バックアップIC 525 リザーブIC 540 構成管理者
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート エイチ ガーバー アメリカ合衆国 オレゴン州 97229 ポ ートランド ノースウェスト デュマー レーン 12015

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 分散データベースシステムにおいて、オ
    ーナーとヘルパーとを含む分散したトランザクションを
    コミットする方法であって、 インタバルコーディネータを走らせる段階と、 複数のコサーバ、第1のコサーバに関連付けられている
    上記オーナー、及び第2のコサーバに関連付けられてい
    る上記ヘルパーを走らせる段階と、 上記コサーバを、少なくとも1つのトランザクションロ
    グに関連付ける段階と、 一連のインタバルメッセージを、上記インタバルコーデ
    ィネータから上記各コサーバへ送る段階と、 上記インタバルメッセージの1つの受信に応答して、上
    記トランザクションログを、非揮発性記憶装置へフラッ
    シュする段階と、 最も新しく受信したインタバルメッセージを識別する状
    態を、上記各コサーバ内に維持する段階と、 上記トランザクションログをフラッシュした後に、閉止
    メッセージを、上記各コサーバから上記インタバルコー
    ディネータへ伝送する段階と、 上記第2のコサーバに実行させる上記分散したトランザ
    クション内の操作処理を識別する要求メッセージを、上
    記オーナーから上記ヘルパーへ伝送する段階と、 上記処理操作を実行した後に、上記第2のコサーバの上
    記最も新しく受信したインタバルメッセージを識別する
    タグを含む完了メッセージを、上記ヘルパーから上記オ
    ーナーへ伝送する段階と、 上記完了メッセージを受信した後に、上記トランザクシ
    ョンについての適格性メッセージを、上記オーナーから
    上記インタバルコーディネータへ伝送する段階と、 上記オーナーから上記適格性メッセージを受信し、且つ
    上記ヘルパーから閉止メッセージを受信した後に、上記
    トランザクションに関するコミット状態を、安定した記
    憶装置へ書き込む段階と、 上記コミット状態を書き込んだ後に、上記トランザクシ
    ョンのコミットメッセージを、上記インタバルコーディ
    ネータから上記オーナー及び上記ヘルパーへ送る段階
    と、を備えていることを特徴とする方法。
  2. 【請求項2】 上記コミットメッセージは、上記インタ
    バルメッセージを伴っている請求項1に記載の方法。
  3. 【請求項3】 上記適格性メッセージは、上記閉止メッ
    セージを伴っている請求項1に記載の方法。
  4. 【請求項4】 もし上記オーナーの状態が、上記タグと
    同一のインタバルメッセージを識別していれば、または
    上記オーナーの状態が、上記タグより早めのインタバル
    メッセージを識別していれば、上記適格性メッセージが
    送られるようにした請求項1に記載の方法。
  5. 【請求項5】 上記トランザクションは複数のヘルパー
    を含み、上記オーナーは複数の要求メッセージを上記複
    数のヘルパーへ伝送し、上記各ヘルパーは完了メッセー
    ジを上記オーナーへ伝送し、上記インタバルコーディネ
    ータは上記各ヘルパーから閉止メッセージを受信した後
    にコミットメッセージを上記オーナー及び上記各ヘルパ
    ーへ送る請求項1に記載の方法。
  6. 【請求項6】 上記コミットメッセージは、コミット命
    令である請求項1に記載の方法。
  7. 【請求項7】 上記コミットメッセージは、打切り命令
    である請求項1に記載の方法。
  8. 【請求項8】 上記各コサーバは、トランザクションロ
    グを有している請求項1に記載の方法。
JP29185696A 1995-11-02 1996-11-01 分散データベーストランザクションのコミットメント方法 Expired - Fee Related JP3790589B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/552,058 US5799305A (en) 1995-11-02 1995-11-02 Method of commitment in a distributed database transaction
US08/552058 1995-11-02

Publications (2)

Publication Number Publication Date
JPH09251412A true JPH09251412A (ja) 1997-09-22
JP3790589B2 JP3790589B2 (ja) 2006-06-28

Family

ID=24203771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29185696A Expired - Fee Related JP3790589B2 (ja) 1995-11-02 1996-11-01 分散データベーストランザクションのコミットメント方法

Country Status (7)

Country Link
US (1) US5799305A (ja)
EP (1) EP0772136B1 (ja)
JP (1) JP3790589B2 (ja)
AU (1) AU711220B2 (ja)
BR (1) BR9605407A (ja)
CA (1) CA2189307C (ja)
DE (1) DE69623229T2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120828B2 (en) 2003-05-09 2006-10-10 Hewlett-Packard Development Company, L.P. System and method for in-order queue draining
JPWO2006057061A1 (ja) * 2004-11-29 2008-06-05 富士通株式会社 分散トランザクション処理方法、装置、及びプログラム
US7424653B2 (en) 2003-05-09 2008-09-09 Hewlett-Packard Development Company, L.P. System and method for error capture and logging in computer systems

Families Citing this family (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
AT1751U1 (de) 1996-09-30 1997-10-27 Kuehn Eva Koordinations-system
US5914938A (en) * 1996-11-19 1999-06-22 Bay Networks, Inc. MAC address table search unit
US6035379A (en) * 1997-01-09 2000-03-07 Microsoft Corporation Transaction processing for user data employing both logging and shadow copying
WO1998038564A2 (en) * 1997-02-28 1998-09-03 Siebel Systems, Inc. Partially replicated distributed database with multiple levels of remote clients
SE521041C2 (sv) * 1997-05-28 2003-09-23 Ericsson Telefon Ab L M Metod för optimering av transaktionsprotokoll inom en distribuerad databas
US5953728A (en) * 1997-07-25 1999-09-14 Claritech Corporation System for modifying a database using a transaction log
US6144959A (en) * 1997-08-18 2000-11-07 Novell, Inc. System and method for managing user accounts in a communication network
US5999712A (en) * 1997-10-21 1999-12-07 Sun Microsystems, Inc. Determining cluster membership in a distributed computer system
US6236995B1 (en) * 1997-11-13 2001-05-22 Electronic Data Systems Corporation Distributed object system with deadlock prevention
US6009430A (en) * 1997-12-19 1999-12-28 Alcatel Usa Sourcing, L.P. Method and system for provisioning databases in an advanced intelligent network
US6202067B1 (en) * 1998-04-07 2001-03-13 Lucent Technologies, Inc. Method and apparatus for correct and complete transactions in a fault tolerant distributed database system
US6438582B1 (en) * 1998-07-21 2002-08-20 International Business Machines Corporation Method and system for efficiently coordinating commit processing in a parallel or distributed database system
US6247023B1 (en) * 1998-07-21 2001-06-12 Internationl Business Machines Corp. Method for providing database recovery across multiple nodes
US6728958B1 (en) * 1998-07-31 2004-04-27 Hewlett-Packard Development Company, L.P. Volatile resource manager with pre-prepare notification
US6138143A (en) * 1999-01-28 2000-10-24 Genrad, Inc. Method and apparatus for asynchronous transaction processing
US6941360B1 (en) * 1999-02-25 2005-09-06 Oracle International Corporation Determining and registering participants in a distributed transaction in response to commencing participation in said distributed transaction
US6411981B1 (en) 1999-03-12 2002-06-25 Compaq Computer Corporation Method and apparatus for conducting a transaction between homogeneous and/or heterogeneous transaction processing systems using asynchronous pull of a transaction transfer
US6560606B1 (en) * 1999-05-04 2003-05-06 Metratech Method and apparatus for processing data with multiple processing modules and associated counters
US7206805B1 (en) * 1999-09-09 2007-04-17 Oracle International Corporation Asynchronous transcription object management system
US7290056B1 (en) 1999-09-09 2007-10-30 Oracle International Corporation Monitoring latency of a network to manage termination of distributed transactions
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6536000B1 (en) * 1999-10-15 2003-03-18 Sun Microsystems, Inc. Communication error reporting mechanism in a multiprocessing computer system
US6842823B1 (en) 2000-04-14 2005-01-11 Stratus Technologies Bermuda Ltd Methods and apparatus for persistent volatile computer memory
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
EP1277115A2 (en) * 2000-04-14 2003-01-22 Stratus Technologies Bermuda, Ltd. Methods and apparatus for persistent volatile computer memory and related applications thereof
US7725878B1 (en) 2000-05-12 2010-05-25 Oracle International Corporation Property bundles on a per instance basis
US7987217B2 (en) * 2000-05-12 2011-07-26 Oracle International Corporation Transaction-aware caching for document metadata
US7389493B1 (en) 2000-05-12 2008-06-17 Oracle International Corporation Categories on a per instance basis
US7203709B2 (en) * 2000-05-12 2007-04-10 Oracle International Corporation Transaction-aware caching for access control metadata
US7421541B2 (en) 2000-05-12 2008-09-02 Oracle International Corporation Version management of cached permissions metadata
US7185005B1 (en) 2000-05-12 2007-02-27 Oracle International Corporation Nested transactions in a file system
US7325046B1 (en) 2000-05-31 2008-01-29 International Business Machines Corporation Method, system and program products for managing processing groups of a distributed computing environment
SG99941A1 (en) * 2000-08-30 2003-11-27 Ibm Transaction support on logical disks
US6801921B2 (en) * 2000-09-08 2004-10-05 Hitachi, Ltd. Method and system for managing multiple database storage units
US7349940B1 (en) 2000-11-03 2008-03-25 Agere Systems Inc. Communication protocol for data exchange via shared files
US7555500B2 (en) * 2001-02-15 2009-06-30 Teradata Us, Inc. Optimized end transaction processing
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US6662196B2 (en) * 2001-03-16 2003-12-09 Iti, Inc. Collision avoidance in bidirectional database replication
US7177866B2 (en) * 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7028030B2 (en) * 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US6799188B2 (en) * 2001-08-31 2004-09-28 Borland Software Corporation Transaction processing system providing improved methodology for two-phase commit decision
US6909910B2 (en) * 2002-02-01 2005-06-21 Microsoft Corporation Method and system for managing changes to a contact database
US7010662B2 (en) * 2002-02-27 2006-03-07 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US7085879B2 (en) * 2002-02-27 2006-08-01 Microsoft Corporation Dynamic data structures for tracking data stored in a flash memory device
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US7222136B1 (en) * 2002-05-23 2007-05-22 Oracle International Corporation Communicating data dictionary information of database objects through a redo stream
US20040039781A1 (en) * 2002-08-16 2004-02-26 Lavallee David Anthony Peer-to-peer content sharing method and system
JP4464279B2 (ja) 2002-11-14 2010-05-19 アイシロン・システムズ・インコーポレーテッド 分散ファイルシステムにおけるファイルの再ストライピングのためのシステム及び方法
US7093101B2 (en) * 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
CN102298757B (zh) * 2003-01-27 2015-01-07 松下电器(美国)知识产权公司 终端装置、服务器装置、数字内容分发系统及事项处理方法
US7707181B2 (en) * 2003-02-19 2010-04-27 Microsoft Corporation System and method of distributing replication commands
US7761421B2 (en) * 2003-05-16 2010-07-20 Hewlett-Packard Development Company, L.P. Read, write, and recovery operations for replicated data
US20040230862A1 (en) * 2003-05-16 2004-11-18 Arif Merchant Redundant data assigment in a data storage system
US7152077B2 (en) * 2003-05-16 2006-12-19 Hewlett-Packard Development Company, L.P. System for redundant storage of data
US7213029B2 (en) * 2003-05-29 2007-05-01 International Business Machines Corporation Quiescing work bounded by application transactions consisting of multiple relational database transactions
US8533254B1 (en) * 2003-06-17 2013-09-10 F5 Networks, Inc. Method and system for replicating content over a network
US7801851B2 (en) * 2003-06-30 2010-09-21 Gravic, Inc. Method for ensuring referential integrity in multi-threaded replication engines
JP4291060B2 (ja) * 2003-07-01 2009-07-08 富士通株式会社 トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム
ATE487987T1 (de) * 2003-07-16 2010-11-15 Joltid Ltd Verteiltes datenbanksystem
JP4291077B2 (ja) * 2003-07-29 2009-07-08 株式会社日立製作所 分散ストレージ装置のファイル管理方法及び分散ストレージシステム
US7644376B2 (en) 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
JP4273934B2 (ja) * 2003-11-13 2009-06-03 株式会社日立製作所 ファイルシステム
US7478400B1 (en) 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
US20050251449A1 (en) * 2004-04-22 2005-11-10 Pape William R Method and system for private data networks for sharing food ingredient item attribute and event data across multiple enterprises and multiple stages of production transformation
US7523204B2 (en) * 2004-06-01 2009-04-21 International Business Machines Corporation Coordinated quiesce of a distributed file system
US7809690B2 (en) * 2004-07-13 2010-10-05 Oracle International Corporation Performance metric-based selection of one or more database server instances to perform database recovery
US8238350B2 (en) * 2004-10-29 2012-08-07 Emc Corporation Message batching with checkpoints systems and methods
US8055711B2 (en) 2004-10-29 2011-11-08 Emc Corporation Non-blocking commit protocol systems and methods
US8051425B2 (en) 2004-10-29 2011-11-01 Emc Corporation Distributed system with asynchronous execution systems and methods
US7483987B2 (en) * 2004-11-30 2009-01-27 International Business Machines Corporation Registering a resource that delegates commit voting
US20070208753A1 (en) * 2004-12-30 2007-09-06 Ncr Corporation Routing database requests among multiple active database systems
US7827262B2 (en) * 2005-07-14 2010-11-02 Cisco Technology, Inc. Approach for managing state information by a group of servers that services a group of clients
US8190588B1 (en) * 2005-09-19 2012-05-29 Amazon Technologies, Inc. Providing a distributed transaction information storage service
US7441230B2 (en) * 2005-10-07 2008-10-21 Lucasfilm Entertainment Company Ltd. Method of utilizing product proxies with a dependency graph
US9047306B1 (en) 2005-10-17 2015-06-02 Hewlett-Packard Development Company, L.P. Method of writing data
US7788303B2 (en) 2005-10-21 2010-08-31 Isilon Systems, Inc. Systems and methods for distributed system scanning
US7551572B2 (en) 2005-10-21 2009-06-23 Isilon Systems, Inc. Systems and methods for providing variable protection
US7917474B2 (en) 2005-10-21 2011-03-29 Isilon Systems, Inc. Systems and methods for accessing and updating distributed data
US7797283B2 (en) 2005-10-21 2010-09-14 Isilon Systems, Inc. Systems and methods for maintaining distributed data
US7827144B1 (en) 2005-11-17 2010-11-02 Hewlett-Packard Development Company, L.P. Methods of reading and writing data
US7725446B2 (en) * 2005-12-19 2010-05-25 International Business Machines Corporation Commitment of transactions in a distributed system
US7839876B1 (en) 2006-01-25 2010-11-23 Marvell International Ltd. Packet aggregation
US7848261B2 (en) 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US7756898B2 (en) 2006-03-31 2010-07-13 Isilon Systems, Inc. Systems and methods for notifying listeners of events
US7647454B2 (en) 2006-06-12 2010-01-12 Hewlett-Packard Development Company, L.P. Transactional shared memory system and method of control
US7886099B2 (en) 2006-06-16 2011-02-08 Superspeed Llc Systems and methods for providing a personal computer with non-volatile system memory
US8539056B2 (en) 2006-08-02 2013-09-17 Emc Corporation Systems and methods for configuring multiple network interfaces
US7680836B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7899800B2 (en) 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7676691B2 (en) 2006-08-18 2010-03-09 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7822932B2 (en) 2006-08-18 2010-10-26 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7953704B2 (en) 2006-08-18 2011-05-31 Emc Corporation Systems and methods for a snapshot of data
US7590652B2 (en) 2006-08-18 2009-09-15 Isilon Systems, Inc. Systems and methods of reverse lookup
US7752402B2 (en) * 2006-08-18 2010-07-06 Isilon Systems, Inc. Systems and methods for allowing incremental journaling
US7680842B2 (en) * 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US8286029B2 (en) 2006-12-21 2012-10-09 Emc Corporation Systems and methods for managing unavailable storage devices
US7593938B2 (en) 2006-12-22 2009-09-22 Isilon Systems, Inc. Systems and methods of directory entry encodings
US7509448B2 (en) 2007-01-05 2009-03-24 Isilon Systems, Inc. Systems and methods for managing semantic locks
US7900015B2 (en) 2007-04-13 2011-03-01 Isilon Systems, Inc. Systems and methods of quota accounting
US8966080B2 (en) 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US7779048B2 (en) 2007-04-13 2010-08-17 Isilon Systems, Inc. Systems and methods of providing possible value ranges
US7966289B2 (en) 2007-08-21 2011-06-21 Emc Corporation Systems and methods for reading objects in a file system
US7949692B2 (en) 2007-08-21 2011-05-24 Emc Corporation Systems and methods for portals into snapshot data
US7882068B2 (en) * 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write
US7870110B2 (en) * 2008-02-27 2011-01-11 International Business Machines Corporation Method and system for generating a transaction-bound sequence of records in a relational database table
US7870345B2 (en) 2008-03-27 2011-01-11 Isilon Systems, Inc. Systems and methods for managing stalled storage devices
US7949636B2 (en) 2008-03-27 2011-05-24 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7953709B2 (en) 2008-03-27 2011-05-31 Emc Corporation Systems and methods for a read only mode for a portion of a storage system
US7984324B2 (en) 2008-03-27 2011-07-19 Emc Corporation Systems and methods for managing stalled storage devices
US8447745B2 (en) * 2008-09-12 2013-05-21 Salesforce.Com, Inc. Synchronizing field values in an on-demand database prior to committing a change
US8495261B2 (en) * 2008-12-12 2013-07-23 International Business Machines Corporation Redispatching suspended tasks after completion of I/O operations absent I/O interrupts
US20100185714A1 (en) * 2009-01-15 2010-07-22 Microsoft Corporation Distributed communications between database instances
US9098383B1 (en) * 2009-09-23 2015-08-04 Nvidia Corporation Consolidated crossbar that supports a multitude of traffic types
US8266126B2 (en) * 2010-03-24 2012-09-11 Matrixx Software, Inc. System with multiple conditional commit databases
US8880486B2 (en) * 2010-07-27 2014-11-04 Sap Ag Distributed database system utilizing an extended two-phase-commit process
US9507841B2 (en) * 2011-06-16 2016-11-29 Sap Se Consistent backup of a distributed database system
US9870384B2 (en) * 2012-03-30 2018-01-16 International Business Machines Corporation Database system transaction management
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
CN103268318B (zh) * 2013-04-16 2016-04-13 华中科技大学 一种强一致性的分布式键值数据库系统及其读写方法
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US9110601B2 (en) 2013-06-24 2015-08-18 Sap Se Backup lifecycle management
US10185631B2 (en) * 2013-07-04 2019-01-22 Data Deposit Box Inc. System and method of performing continuous backup of a data file on a computing device
US10044835B1 (en) 2013-12-11 2018-08-07 Symantec Corporation Reducing redundant transmissions by polling clients
US10474493B2 (en) * 2014-02-28 2019-11-12 Red Hat, Inc. Systems and methods for semi-durable transaction log storage 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
US10282228B2 (en) * 2014-06-26 2019-05-07 Amazon Technologies, Inc. Log-based transaction constraint management
CN104516959B (zh) * 2014-12-18 2018-01-02 杭州华为数字技术有限公司 一种管理数据库日志的方法及装置
US10216820B1 (en) 2016-12-14 2019-02-26 Gravic, Inc. Method and apparatus for resolving constraint violations in a database replication system
US11940990B1 (en) 2017-06-16 2024-03-26 Amazon Technologies, Inc. Global clock values for consistent queries to replicated data
US11314717B1 (en) * 2017-06-23 2022-04-26 Amazon Technologies, Inc. Scalable architecture for propagating updates to replicated data
US10268502B2 (en) * 2017-06-29 2019-04-23 Intel Corporation Methods and apparatus to perform atomic transactions in nonvolatile memory under hardware transactional memory
US11334678B2 (en) * 2017-07-06 2022-05-17 Chromaway Ab Method and system for a distributed computing system
CN110196759B (zh) * 2018-06-20 2022-12-06 腾讯科技(深圳)有限公司 分布式事务处理方法和装置、存储介质及电子装置
US10642826B1 (en) * 2018-08-30 2020-05-05 Gravic, Inc. Mixed-mode method for combining active/active and validation architectures utilizing a check integrity module
CN110209734B (zh) 2019-05-05 2022-11-18 深圳市腾讯计算机系统有限公司 数据复制方法、装置、计算机设备及存储介质
US11250022B1 (en) 2020-09-29 2022-02-15 Amazon Technologies, Inc. Offline index builds for database tables
US11880385B1 (en) 2020-09-29 2024-01-23 Amazon Technologies, Inc. Ordering updates to secondary indexes using conditional operations
US11748212B1 (en) 2021-06-28 2023-09-05 Gravic, Inc. Method and apparatus for resolving automatic transaction facility (ATF) failures

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3381526D1 (de) * 1983-02-09 1990-06-07 Ibm Verfahren zum erhalten der einigung mehrfacher rechner zum vermeiden von fehlern.
US5065311A (en) * 1987-04-20 1991-11-12 Hitachi, Ltd. Distributed data base system of composite subsystem type, and method fault recovery for the system
US4881166A (en) * 1987-07-24 1989-11-14 Amoco Corporation Method for consistent multidatabase transaction processing
US4949251A (en) * 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system
US5170480A (en) * 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
CA2025170A1 (en) * 1989-09-28 1991-03-29 John W. White Portable and dynamic distributed applications architecture
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
US5257366A (en) * 1990-03-27 1993-10-26 International Business Machines Corporation Query language execution on heterogeneous database servers using a bind-file bridge between application and database languages
US5201044A (en) * 1990-04-16 1993-04-06 International Business Machines Corporation Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory
JPH0415840A (ja) * 1990-05-10 1992-01-21 Toshiba Corp 分散型データベース管理装置
US5165031A (en) * 1990-05-16 1992-11-17 International Business Machines Corporation Coordinated handling of error codes and information describing errors in a commit procedure
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5363121A (en) * 1990-06-29 1994-11-08 International Business Machines Corporation Multiple protocol communication interface for distributed transaction processing
JP2837288B2 (ja) * 1990-09-17 1998-12-14 インターナショナル・ビジネス・マシーンズ・コーポレイション 連鎖分散データトランザクションシステムにおけるワーク単位識別子の管理方法
WO1992007331A1 (en) * 1990-10-16 1992-04-30 Consilium, Inc. Object-oriented architecture for factory floor management
US5329626A (en) * 1990-10-23 1994-07-12 Digital Equipment Corporation System for distributed computation processing includes dynamic assignment of predicates to define interdependencies
US5390302A (en) * 1991-02-21 1995-02-14 Digital Equipment Corporation Transaction control
US5263155A (en) * 1991-02-21 1993-11-16 Texas Instruments Incorporated System for selectively registering and blocking requests initiated by optimistic and pessimistic transactions respectively for shared objects based upon associated locks
US5287496A (en) * 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing
US5212787A (en) * 1991-03-12 1993-05-18 International Business Machines Corporation Method and apparatus for accessing a relational database without exiting an object-oriented environment
US5333303A (en) * 1991-03-28 1994-07-26 International Business Machines Corporation Method for providing data availability in a transaction-oriented system during restart after a failure
US5258982A (en) * 1991-05-07 1993-11-02 International Business Machines Corporation Method of excluding inactive nodes from two-phase commit operations in a distributed transaction processing system
US5280612A (en) * 1991-11-26 1994-01-18 International Business Machines Corporation Multiple version database concurrency control system
US5241675A (en) * 1992-04-09 1993-08-31 Bell Communications Research, Inc. Method for enforcing the serialization of global multidatabase transactions through committing only on consistent subtransaction serialization by the local database managers
US5452445A (en) * 1992-04-30 1995-09-19 Oracle Corporation Two-pass multi-version read consistency
US5414840A (en) * 1992-06-25 1995-05-09 Digital Equipment Corporation Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
US5335343A (en) * 1992-07-06 1994-08-02 Digital Equipment Corporation Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US5432926A (en) * 1992-12-04 1995-07-11 International Business Machines Corporation Method and apparatus for improving database reliability and response time in a distributed transaction processing system
US5581749A (en) * 1992-12-21 1996-12-03 Thedow Chemical Company System and method for maintaining codes among distributed databases using a global database
JPH07225707A (ja) * 1994-02-10 1995-08-22 Fujitsu Ltd アプリケーションのテスト方法及びそのテスト支援装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120828B2 (en) 2003-05-09 2006-10-10 Hewlett-Packard Development Company, L.P. System and method for in-order queue draining
US7424653B2 (en) 2003-05-09 2008-09-09 Hewlett-Packard Development Company, L.P. System and method for error capture and logging in computer systems
JPWO2006057061A1 (ja) * 2004-11-29 2008-06-05 富士通株式会社 分散トランザクション処理方法、装置、及びプログラム
US7836338B2 (en) 2004-11-29 2010-11-16 Fujitsu Limited Distributed transaction processing method, distributed transaction processing system, transaction management device, and computer product

Also Published As

Publication number Publication date
CA2189307A1 (en) 1997-05-03
AU7053696A (en) 1997-05-08
AU711220B2 (en) 1999-10-07
US5799305A (en) 1998-08-25
EP0772136A2 (en) 1997-05-07
BR9605407A (pt) 1998-08-04
CA2189307C (en) 2004-07-20
EP0772136B1 (en) 2002-08-28
DE69623229D1 (de) 2002-10-02
EP0772136A3 (en) 1997-11-05
DE69623229T2 (de) 2003-03-27
JP3790589B2 (ja) 2006-06-28

Similar Documents

Publication Publication Date Title
JP3790589B2 (ja) 分散データベーストランザクションのコミットメント方法
CN108459919B (zh) 一种分布式事务处理方法及装置
US8301593B2 (en) Mixed mode synchronous and asynchronous replication system
US20100191884A1 (en) Method for replicating locks in a data replication engine
US6978396B2 (en) Method and system for processing replicated transactions parallel in secondary server
Hammer et al. Reliability mechanisms for SDD-1: A system for distributed databases
US6338146B1 (en) Method and apparatus for fault-tolerant, scalable and non-blocking three-phase flushing for committing database transactions in a cluster of multiprocessors
EP0950955B1 (en) Method and apparatus for correct and complete transactions in a fault tolerant distributed database system
Strom et al. Volatile logging in n-fault-tolerant distributed systems
CA2830530C (en) System and method for failover
US7206964B2 (en) Consistent asynchronous checkpointing of multithreaded application programs based on semi-active or passive replication
US7260589B2 (en) High performance support for XA protocols in a clustered shared database
US20070220059A1 (en) Data processing node
EP1704480B1 (en) Cluster database with remote data mirroring
Polyzois et al. Evaluation of remote backup algorithms for transaction-processing systems
US6922792B2 (en) Fault tolerance for computer programs that operate over a communication network
US6202079B1 (en) Synchronization procedure in a routing node
US20230110826A1 (en) Log execution method and apparatus, computer device and storage medium
EP0839350B1 (en) Optimized synchronisation procedure
AU2015336250C1 (en) Recovery and fault-tolerance under computational indeterminism
US6848037B2 (en) Data processing arrangement and method
JP3340431B2 (ja) データベース管理方法
Yan et al. An improved two-phase commit protocol adapted to the distributed real-time transactions
Zhou et al. A system for managing remote procedure call transactions
Kim et al. A protocol for consistent checkpointing recovery for time-critical distributed database systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 19970131

A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20031031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040227

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040227

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060403

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090407

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100407

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees