JPH06168169A - ログフォースなしに仮定コミットを持つ2相コミットプロトコルを使用する分散トランザクション処理 - Google Patents

ログフォースなしに仮定コミットを持つ2相コミットプロトコルを使用する分散トランザクション処理

Info

Publication number
JPH06168169A
JPH06168169A JP5157165A JP15716593A JPH06168169A JP H06168169 A JPH06168169 A JP H06168169A JP 5157165 A JP5157165 A JP 5157165A JP 15716593 A JP15716593 A JP 15716593A JP H06168169 A JPH06168169 A JP H06168169A
Authority
JP
Japan
Prior art keywords
commit
tid
transaction
item
coordinator
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
JP5157165A
Other languages
English (en)
Other versions
JP2558052B2 (ja
Inventor
Butler Lampson
バトラー ランプソン
David B Lomet
デイビッド ビー ロメット
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.)
Digital Equipment Corp
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH06168169A publication Critical patent/JPH06168169A/ja
Application granted granted Critical
Publication of JP2558052B2 publication Critical patent/JP2558052B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/2308Concurrency control
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

(57)【要約】 【目的】 仮定コミット2相コミットプロトコルを使用
する分散トランザクション処理システムで、調整子によ
るログ記録の強制書き込みを除去する。 【構成】 昇順でトランザクションにその識別子(TI
D)を割り当て、トランザクションがコミット準備がで
きている場合、調整子プロセスにコミット指令を送出
し、調整子プロセスは永久記憶装置と揮発性メモリを有
するサイトで実行し、コミット準備ができているトラン
ザクションのTIDがその選択範囲内にあるかどうかを
決定し、もしコミット準備ができているTIDがその選
択範囲内にあるなら、従属子プロセスに準備メッセージ
を送出し、もしコミット準備ができているTIDがその
選択範囲内にないなら、TIDが従属子プロセスに準備
メッセージを送出する前に選択範囲内にあるようコミッ
ト準備ができているトランザクションのログ記録を含め
て、揮発性ログ記録を永久記憶装置に書き込む。

Description

【発明の詳細な説明】
【0001】
【技術分野】この発明は分散計算システムの動作に関連
し、さらに特定すると分散トランザクション処理システ
ムのコミットプロトコル(commit protocol )に関連し
ている。
【0002】
【背景技術】トランザクション処理を使用する計算機シ
ステムは、特定の「コミット」が実行されるまで、どん
な永久記憶装置もデータアイテムで行われないか、ある
いはどんな変化もシステムの他のノードに見えないかを
保証するコミットプロトコルを採用している。トランザ
クション処理で一般に使用されたこれらのプロトコルの
1つは、モーハン(Mohan )とリンドセイ(Lindsay )
の「分散トランザクションのプロセスモデルのトリーに
対する有効なコミットプロトコル(EfficientCommit Pr
otocols for the Tree of Processes Model of Distrib
uted Transactions)」、分散計算原理の第2ACM
SIGACT/SIGOPSシンポジウム議事録(Pro
c,2nd ACM SIGACT/SIGOPS Symposium on Principles of
Distributed Transactions)、1983年8月17日により
詳細に記述された、いわゆる「2相コミット(two phas
e commit)」あるいは「2PC」である。2相コミット
プロトコルは「仮定アボート(presumed-abort)」ある
いは「仮定コミット(presumed-commit )」タイプのも
のであり得る。仮定アボート2相コミットプロトコル
は、仮定コミット2相コミットプロトコルの代わりに、
分散トランザクションのコミットメントを調整するため
に現行のトランザクション処理システムで一般に使用さ
れている。それにもかかわらず、仮定コミットプロトコ
ルは多くの局面で明らかな利点を有している。というの
は、コミットされたトランザクションの各従属子(subo
rdinate )が、コミットメッセージに応じて調整子(co
ordinator)に最終肯定応答(final acknowledge )を
送出する必要はないが、しかしアボートを肯定応答しな
ければならないからである。仮定アボートにより、この
最終肯定応答は調整子からのアボートメッセージには必
要でないが、しかしコミットメッセージには必要であ
る。トランザクションコミットはそれらがアボートする
よりずっと頻度が多い。それ故、仮定コミットプロトコ
ルは仮定アボート変形(variant )よりさらにしばしば
この最小肯定応答を節約する。このように仮定コミット
プロトコルの性能改善を実現するよう、これから説明さ
れるように、現行の仮定コミット信頼性を無視すること
が所望される。
【0003】仮定アボートプロトコルはコミット調整子
に要求とされたアクティビティのために従前のワークの
仮定コミットの代わりに選ばれている。仮定アボートプ
ロトコルにより、従属子(また集団[cohort]と呼ばれ
たもの)が、トランザクションのステータスが何である
か(もし調整子がその記録を有するなら)を調整子プロ
セスに問合せする場合には何時でも、トランザクション
はコミットされる。さもなければ、情報が存在しない
と、調整子プロセスはトランザクションがアボートされ
ることを示す。これはトランザクションがコミットする
まで調整子プロセスが情報を安定にする(ディスク記憶
装置に書き込む)必要がないことを意味する。というの
は、任意の以前のクラッシュがアボートしたと仮定さ
れ、かつこれがたまたま生起したものと一致しているか
らである。すべての集団が最終メッセージを肯定応答し
た場合に、調整子は(非強制[non-forced])終了トラ
ンザクション記録を結局書き込む。このことは調整子が
その記憶された状態をガーベージ収集し(garbage coll
ect )、かつガーベージ収集情報がシステムクラッシュ
にわたって持続することを許容する。
【0004】仮定コミットプロトコルに対して、調整子
プロセスはどのトランザクションがアボートしたかを明
確に知る必要がある。伝統的に、このことは、2相コミ
ットプロトコルが開始される時点で、トランザクション
がうまくコミットしなかった事実を調整子がログに強制
することを意味し、それはプロトコル開始でログ記録を
有するが、完成を示さないことを意味している。これら
の不完全プロトコルトランザクションはアボートされた
トランザクションのリストに追加される。さらに、プロ
トコル開始ログ記録はアボートリスト情報のガーベッジ
収集を許容し、すなわち揮発性メモリに保持される。予
期されたすべての肯定応答が受信された時点で、調整子
は別の問合せが受信されないことを知る。それ故、トラ
ンザクションに対するアボート情報は放棄できる。終了
トランザクション記録はこれを安定に示す。
【0005】費用の追加となるのは2相コミットプロト
コルの開始におけるログ記録の調整子による強制であ
る。この過剰の強制書き込みは2相コミットプロトコル
を介して完了する各トランザクションを招く。そこで、
本発明の目的はこの過剰のログフォースを除去し、仮定
コミット形の2相コミットプロトコルの恩恵を保存する
ことである。
【0006】
【発明の開示】本発明はその広い形でクレームに引用さ
れた2相コミットプロトコルに属している。本発明の一
実施例によると、分散トランザクション処理システムに
対する2相コミットプロトコルは仮定コミット形態を採
用するが、但しコミット手順の開始において通常書き込
まれた初期「コミット」記録が、「準備(prepare )」
メッセージが従属子プロセスを送出する前に、強制され
たログ書き込みの代わりに非強制タイプのものであるこ
とが例外である。すなわち、「コミット」記録はログバ
ッファ、すなわち揮発性メモリに書き込まれるが、しか
しログバッファはディスクに直接即時に書き込まれる必
要はなく、そしてディスクへの書き込みに固有な性能劣
化は回避される。クラッシュあるいは通信損失に続く従
属子処理からの問合せに回答することを調整子が許容す
る必要のある情報を与えるために、不確定なトランザク
ションの組を制限する(circumscribing)技術が採用さ
れる。トランザクションはトランザクションID(T
ID)により識別された昇順で付番される。コミッティ
ングトランザクションのトランザクションIDが最高に
付番された安定記録トランザクションIDから開始する
番号のあらかじめ選択されたある範囲内にあるのでなけ
れば、コミット動作が始まることは許容されない。すな
わち、もしもトランザクション番号がディスク記憶装置
に書き込まれた最後の初期「コミット」記録からずっと
遠くに移動されるなら(かつクラッシュを残存できるな
ら)、この初期コミット記録(および他の任意のまだ安
定に記録されないもの)は揮発性メモリに保持される代
わりにディスクに書き込まれる。たいていのコミットト
ランザクションはこのようにディスク書き込み(強制さ
れたログ)を待機することなしに進行し、性能は改善さ
れる。不確定トランザクション(それらがコミットされ
るか、アボートされるか、あるいは決して開始されない
かは分からないが)の組を制限する技術が開示され、従
ってこの組は問合せに答えるためにキャッシュ(cache
)あるいは揮発性メモリに蓄積でき、かつシステムク
ラッシュの後で再構成できる。
【0007】本発明の詳細な理解は添付図面とともに実
例によって与えられた好ましい実施例の以下の記述から
得ることができる。
【0008】
【実施例】図1を参照すると、そこには通信リンク10お
よび多数のノード11, 12, 13, 14, 15等を有する分散計
算機システムが例示されている。リンク上の通信方法は
イーサネット(Ethernet)、トークンリング(token ri
ng)、FDDIあるいはそのような他のローカルエリア
回線網構成であってもよく、かつまた遠隔回線網へのマ
イクロ波あるいは衛星リンクを含んでいてもよい。接続
リンクそれ自身は、光ファイバ、撚線ペア配線、あるい
は同軸ケーブルのような多数の商用技術のいずれかであ
り得る。リンク10の特定のタイプの構造とその動作方法
はこの発明に関する部分ではなく、必要なものは分散ト
ランザクション処理システムが実現できるような計算機
ノード間の通信リンクを確立するいくつかの手段であ
る。図2を参照すると、ノード11, 12等の各々はシステ
ムバス19に連結された主メモリ17とディスク記憶装置18
を持つCPU16を通常含んでいる。回線網アダプタ20は
通信リンク10とのインタフェースを取り扱う。ノードは
デスクトップワークステーション、あるいはサーバーと
して作用するミニコンピュータ、あるいは例えばディス
ク記憶装置、もしくは他の回線網へのブリッジ、あるい
は長距離リンクのような共用システムリソースであって
もよい。1ダースあるいは数百あるいは数千のノード
(サイト)11−15が存在しよう。
【0009】図2のノードの適当な構造の一例として、
CPUは例えばレビー(Levy)とエックハウス(Eckhou
se)の「計算機プログラミングとアーキテクチュア:V
AX(Computer Programming and Architecture :VAX
)」、第2版、ディジタルプレス(Digital Press
)、1989年により記述されたVAXTMアーキテクチュ
アであってもよい。VAXアーキテクチュアの単一チッ
プCPUは、本発明の譲受人であるディジタル・イクイ
ップメント・コーポレーション(Digital EquipmentCor
poration )に譲渡された、サンダー(Sander)、ウー
ラー(Uhler )およびブラウン(Brown )の米国特許第
5,006,980 号に開示されている。CPU16はEP出願第
91401782.7号に開示された高級64ビットRISCアーキ
テクチュアであってもよく、これもまたディジタル・イ
クイップメント・コーポレーションに譲渡されている。
もちろん代案として、CPUはインテル386 あるいは48
6 アーキテクチュア、あるいはMIPS R3000あるい
はR4000RISCアーキテクチュアのような他の多くの
タイプのものであってもよい。
【0010】図1および図2の分散システムでの実行は
いくつかの商用的に利用可能なタイプの内の任意の1つ
であるデータベース管理システムのような分散的適用で
ある。分散データベースシステムにおいて、トランザク
ションの作用(それは一貫性と復元の最小単位である)
は1つ以上のノード(もしくはサイト)11, 12, 13等で
生起しよう。トランザクションは多重データ操作と、単
一トランザクションを構成する定義ステートメントを含
んでいる。分散トランザクションコミットプロトコル
は、(1)トランザクションのすべての効果が持続する
か、あるいは(2)たとえリンク10もしくはノード11,
12等の1つの障害およびメッセージの損失があっても、
どの効果も持続しないために必要である。コミットプロ
トコルは分散トランザクション実行の一様コミットメン
トを保証している。
【0011】開始したすべてのトランザクションが結局
コミットするわけではない。コミットしないトランザク
ションはアボートと呼ばれる。その理由の中には、アボ
ートしたトランザクションは、パワーが故障したか、シ
ステムがクラッシュしたか、他のトランザクションとの
同時衝突(concurrent conflict )が生じたか、あるい
はユーザー(もしくはその応用プログラム)が他のエラ
ーを検出しかつ明確にアボートしたかがある。
【0012】図1および図2のシステムで実行する分散
データベースシステムは種々のノード上で実行する多数
のプロセスを含み、その各々はもしトランザクションが
アボートされる必要があるなら作用を取り消すようなや
り方でトランザクションの作用を暫定的に実行できる。
データは図3のデータ記憶装置21のような種々のノード
11, 12等の非揮発性位置に蓄積され、かつそのような各
データ記憶機能はコミットプロトコルの実行およびデー
タ記憶装置21へのトランザクションの変化の間にトラン
ザクションへの任意の状態変化を記録するために使用で
きるログ22を有している。一般にこれらのログ記録はノ
ードのディスク18のような安定な非揮発性記憶の一部分
であるログファイル22に逐次書き込まれる。
【0013】ログファイル22が書き込まれる場合、非揮
発性ディスク記憶装置18に設定するために主メモリ17の
ログ「バッファ」に書き込みを一時的に行うことができ
る。このように、ログは主メモリ17を揮発的にし、かつ
後でディスク記憶装置18に書き込まれる。もしコミット
プロトコルが「強制されたログ書き込み(forced logwr
ite)」を使用するなら、ログ記録(およびすべての先
行するもの)は主メモリ17のログバッファからディスク
18の安定記憶装置の永久ログに書き込まれる。ログ記録
を書き込むプロセスは、この強制されたログ書き込みが
完了するまでそのシーケンスで継続することを許容され
ない。もしサイト(ノード11, 12等)がクラッシュする
と、揮発性メモリ17の内容は失われるが、しかしもし強
制されたログ書き込みが完了するなら強制された記録は
ディスク記憶装置18のログ22に与えられ、かつかつクラ
ッシュを残存するものと仮定されている。サイトが再ス
タートされる場合に、ログはこの記録を含めてディスク
18から読み取ることにより再生できる。
【0014】もし強制されたログ書き込みがコミットプ
ロトコルに含まれるなら、記録は非同期態様で書き込ま
れ、すなわち主メモリ17のメモリバッファに書き込まれ
るだけであり、かつ強制されたログ書き込みに遭遇する
場合、あるいは記録を含むバッファが充填される場合の
ように後のある時間でディスク18に移動することが許容
される。ログ記録の後のプロセスは安定な記憶装置18へ
の書き込みを待機することなく実行し続ける。そこで、
もしメモリ17へのログ書き込みの後ではあるが、しかし
ディスク18への書き込みの前にサイトがクラッシュする
なら、記録はクラッシュを残さないであろう。このよう
に強制されたログ書き込みはさらに頑丈である(残存は
保証される)が、しかしログを強制するプロセスの実行
が損なわれ、すなわち応答時間が増大されることが問題
である。メモリ17への書き込みにCPU16により使用さ
れた時間は多分、数CPUサイクル(例えば数百ナノ
秒)であり、一方、ディスク18への書き込み、および完
了の確認を受信するのに必要な時間は多分、数ミリ秒、
すなわち10,000倍も大きい。従って、可能な限り強制さ
れた書き込みを回避する性能の立場からそれは極めて重
大である。
【0015】上に参照されたモーハンとリンドセイによ
り与えられた説明を使用すると、標準2相コミットプロ
トコル、および仮定アボートと仮定コミットと呼ばれた
変量は、本発明の新しい形態を示す前に背景として記述
されよう。
【0016】コミットプロトコルはいくつかの要件を有
している。第1に、それはトランザクションの保証され
た最小単位を生成しなければならない。一度トランザク
ションがコミットされると、コミットは全体として完了
された状態に到達するか、あるいは全く完了しないかの
いずれかでなければならない。部分的な完了はあり得な
い。そこでもしも分散システムのサイトあるいは任意の
部分がコミット動作の間にクラッシュするなら、システ
ムはすべての部分的に完了した部分が除去される状態に
回復されなければならない。第2に、システムはある時
間の後でコミット処理の結果を「忘却する(forget)」
ことができなければならない、すなわち、陳腐なデータ
(stale data)を運び続けない。というのは、クラッシ
ュが起こらない場合にデータを必要とするもっともらし
さ(likelihood)は迅速に減少するからである。第3
に、性能の理由で、ログ書き込みとメッセージ送出のオ
ーバーヘッドを最小にすることが好ましい。第4に、シ
ステムクラッシュが希なことであるから、大部分の時間
でコミットプロトコルは障害なしに最後まで進行し、か
つログされた記録を回復する必要はなく、従って性能は
障害がない状態で最適化されるべきである。そして第5
に、余り必要ではない読取専用トランザクションはシス
テム性能を最適化できる場合にはいつでも利用されなけ
ればならない。
【0017】2相コミットプロトコルは、図1のシステ
ムのように分散トランザクション実行のモデルを使用
し、それにはユーザー応用に結び付いている調整子(co
ordinator )と呼ばれた唯一のプロセスと、従属子(su
bordinate )と呼ばれた一組の他のプロセスが存在して
いる。図4を参照すると、データベース管理システムの
ような応用プログラム24はトランザクションのコミット
ステージが到達される場合にコミット調整子25と呼ばれ
るプロセスを呼び出し、調整子25は制御を行う。従属子
プロセス26は図1のノード11−15の個別のもので実行す
るプロセスであり、かつ調整子25は1ノードで実行する
プロセスである。
【0018】トランザクションはトランザクションID
あるいはTIDと呼ばれる大域的に独自な名前を有する
と仮定され、かつプロセスはまたプロセスIDと呼ばれ
た大域的に独自な名前を有するものと仮定されている。
このプロセス名はプロセスの位置(ノード)を示してい
る。一般にプロセスはサイトからサイトに移動しない。
プロセスは分散トランザクションの機能を一緒に遂行す
る。
【0019】図5および図6を参照すると、それには障
害のない条件の下で2相コミットプロトコルがまず記述
されている。コミットが所望されるトランザクションの
点に応用プログラム24(「ユーザー」)が到達する場
合、メッセージあるいは指令は図5のアイテム27により
表されたように調整子25(「コミット・トランザクショ
ン」指令)に送られる。調整子25は各々がトランザクシ
ョンをコミットすべく準備されているかどうかを尋ね
て、アイテム28により表されたように「準備」メッセー
ジを各従属子26に並列に送出することでコミットプロト
コルの位相1を開始する。図6において、従属子プロセ
ス26の動作が表されている。すなわち、各従属子26はア
イテム29で準備メッセージを受信し、かつ、アイテム30
で、もしもトランザクションをコミットしようとするな
ら各従属子をまず決定し、かつもしそうならアイテム31
で「準備」ログ記録の強制書き込みをまず行い、かつ次
にアイテム32で調整子25に「肯定投票(yes-vote)」を
送出する。すると、各従属子26はアイテム33で調整子25
から「コミット」メッセージあるいは「アボート」メッ
セージを待機する。「肯定投票」を送出するプロセスは
準備状態にあると言われる。動作は図7と図8に示され
たような状態ダイヤグラムにより表すことができ、そこ
では調整子と従属子プロセスはそれぞれアイドル状態27
aあるいは29aを有している。従属子プロセスはアイテ
ム31の準備記録の強制書き込みを行うことにより準備状
態31aに進む。トランザクションがアボートされること
を望む各従属子26は図6のアイテム34でそのログのアボ
ート記録の強制書き込みを行い、次にアイテム35で「否
定投票(no-vote )」を調整子25に送る。「否定投票」
は1つの投票であり、かつそのような「否定投票」を送
出する従属子26はトランザクションが調整子25によりア
ボートされることを知り、従って従属子26はトランザク
ションをアボートし、そのロツクを解除し、かつその揮
発性記憶装置でこのトランザクションについての何の情
報も保留しない(トランザクションを「忘却する」)
(アイテム36で)。図7の状態ダイヤグラムにおいて、
従属子プロセスはアイテム34でアボート記録の強制書き
込みを行うことによりアイドル状態に留まる。
【0020】図5において、調整子25がその従属子26か
ら投票を受信した後、2相プロトコルの第2位相が開始
される。すべての「肯定投票」がアイテム37で受信され
た場合、調整子25はアイテム38でコミッティング状態に
進み、アイテム38で「コミット」記録のログ強制を行
い、かつ「コミット」メッセージをすべてのその従属子
26に送出する。永久記憶装置18への強制されたログがア
イテム38で完了し、アイテム34でトランザクションはコ
ミット点に移り、かつ「完了した」メッセージは応用プ
ロセス24に送出される。図8において、アイテム38でコ
ミット記録の強制されたログはコミッティング状態38a
にプロセスを置く。コミット点が通過される場合にメッ
セージは図5のアイテム40でトランザクションがコミッ
トされるようユーザーに送出できる。図6において、ア
イテム33でコミットメッセージを受信する各従属子26は
コミッティング状態に移り、アイテム41でコミット記録
の強制された書き込みを行い、かつアイテム42で「肯定
応答(acknowledge )」メッセージを調整子25に送出
し、次にトランザクションをコミットし(アンロック
等)、かつトランザクションを「忘却」する。図7にお
いて、アイテム41におけるこの強制された書き込みはア
イドル状態29aにプロセスを戻す。しかし1つの「否定
投票」では、アイテム43でアボート記録の強制された書
き込みが行われるアボート状態に調整子25(図5)を移
動し、かつ「アボート」メッセージはアイテム44で準備
状態である従属子のみに送出される。図8において、ア
イテム43の強制された書き込みは調整子プロセスをアイ
ドル状態27aに戻す。図6において、もし従属子プロセ
スがアイテム33で「アボート」メッセージを受信するな
ら、それはアイテム45でアボート状態に移りかつアボー
ト記録を強制書き込みし、次に肯定応答メッセージを調
整子25に送出し(アイテム46)、トランザクションをア
ボートしかつそれを「忘却」する(アイテム47)。これ
は図7の状態ダイアグラムで分かり、そこではアイテム
45におけるアボート記録の強制されたログは準備状態31
aからアイドル状態29aにプロセスを移動する。図5に
おいて、調整子プロセス25は、位相2でメッセージを送
出した(アイテム40)アイテム48におけるすべての従属
子26から肯定応答メッセージを受信した後、アイテム49
で終了記録を書き込み、かつトランザクションを「忘
却」し、図8のダイアグラムのアイドル状態27aに戻
る。
【0021】従属子26がアイテム42と46で肯定応答メッ
セージを送出する要件は、アイテム48で調整子25が、す
べての従属子が結果(コミットあるいはアボートした)
を確実にすることを許容する。肯定応答メッセージが送
出される前にアイテム41あるいは45でコミット記録ある
いはアボート記録の強制書き込みを各従属子が行うとい
う要件は、障害の場合に、「コミット」あるいは「アボ
ート」メッセージを肯定応答した後で従属子プロセス26
が最終結果について調整子25を決して問合せないことを
意味している。一般原理は、もし従属子プロセス26がア
イテム42あるいは46で肯定応答メッセージを送出するな
ら、この従属子が肯定応答メッセージの内容について調
整子25を決して問合せないことを、肯定応答する前に、
アイテム41あるいは45で強制されたログ記録により確実
にしなければならない。この原理はトランザクションの
最小単位を保証する必要がある。
【0022】図9を参照すると、任意のサイト11−15に
おけるプロセスにより行われたログ動作(強制されたか
そうでない)により創成されたログ22の記録54は、「準
備」、「終了」等のような記録のタイプを与えるタイプ
フィールド55、記録を書き込むプロセスを識別するフィ
ールド56(プロセスID)、調整子プロセス25を識別す
るフィールド57、および、従属子により書き込まれた記
録を準備するために、フィールド58の書込器(writer)
によりフィールド58に保持されたロックの名前、あるい
は調整子により書き込まれた記録をコミットするかアボ
ートするための、フィールド59の従属子の名前、および
トランザクションID(TID)フィールド60を含んで
いる。他の種々のログ記録は同様なフィールドで必要な
他の情報を有している。これらのログ記録は復元プロセ
スが障害時点で実行するプロセスの状態を再生すること
を許容している。
【0023】図5−8の旧来の2相プロトコルの実行の
間に、アボートあるいは障害が存在しない場合、各従属
子26は、トランザクションをコミットするために、アイ
テム31と41の準備およびコミット記録の2つの強制書き
込みを行い、かつ2つのメッセージ、すなわちアイテム
32で肯定投票を、アイテム42でコミット肯定応答を送出
する。この局面において、調整子プロセス25は2つのメ
ッセージを各従属子26に送出し、アイテム28と40で準備
およびコミットを行い、アイテム38で「コミット」を強
制書き込みし、かつアイテム49で「終了」を非強制書き
込みする。このアクティビティは標準2相コミットプロ
トコルタイプに対して図10のテーブルの第1行の2つ
のエントリで集約されている。
【0024】標準2相コミットプロトコルはサイト11−
15あるいは通信リンク10の障害の局面で検査されよう。
各サイト11−15は任意のサイトが障害を起こしかつ障害
の後で立ち上がる場合にはいつでも入る図4の復元プロ
セス62を有するものと仮定されている。復元プロセス62
の一例は図11のダイヤグラムに例示されている。復元
プロセス62は他のサイト11−15における他の復元プロセ
ス62からのすべてのメッセージを処理し、かつサイトの
最後の障害の時点でコミットプロトコル25を実行したす
べてのトランザクションを取り扱う。再スタートにより
呼び出されたクラッシュからの復元の部分として、復元
サイトにおける復元プロセス62はアイテム64で安定記憶
装置18のログ22を読取り、かつアイテム65でクラッシュ
の時点でコミットプロトコルを実行したトランザクショ
ンに関連する情報を揮発性記憶装置17に累積する。その
サイトにその調整子25を有したトランザクションについ
て他のサイト11−15からの問合せの回答に使用され(ア
イテム66)、かつこのサイトにその調整子を有したトラ
ンザクションに対して従属子26を有した他のサイトに余
計な情報を送出するために使用されるのは揮発性記憶装
置のこの復元情報リストである。揮発性記憶装置17に情
報リストを有することは、ディスク記憶装置18のログ22
を参照する必要がないから、迅速に回答すべき問合せを
遠隔サイトに許容する。
【0025】復元プロセス62はアイテム65で集められた
情報リストを通して進行し、もしこのサイトが特定のト
ランザクションIDの準備状態の従属子であったことを
そのログ22の記録54から見いだすなら(アイテム67)、
復元プロセスはいかにトランザクションを分解すべきか
を見いだすために調整子25に接触を周期的に試みる(ア
イテム67a)。調整子プロセスがトランザクションを分
解し、かつ最終結果の提案する問合せサイトにコミット
あるいはアボートメッセージを送出する場合(アイテム
67b)、「コミット」あるいは「アボート」メッセージ
を受信する場合に従属子に対して図6のアイテム33で復
元プロセスは上述のシーケンスに入る。トランザクショ
ンがクラッシュの時点で実行され、かつどんなコミット
プロトコル(アイテム27)も書き込まれないこと(アイ
テム68)をもし復元プロセスが見いだすなら、それが従
属子あるいはこのトランザクションIDの調整子を取り
扱うかどうかを復元プロセスは知りもしなければ注意も
しない。それはその作用を「取り消し(undo)」、もし
あるなら、アイテム68aでログ記録の「取り消し」を使
用し、ログに「アボート」記録を書き込み、そしてトラ
ンザクションを「忘却」してトランザクションをアボー
トする。もし復元プロセスがアイテム69でコミッティン
グ状態(アイテム38のログされたコミット)のトランザ
クションを見いだすなら、それは準備されたものとして
リストされ(アイテム41)かつアイテム69bでそれらの
肯定応答メッセージを待機するすべての従属子に「コミ
ット」を送出するよう(アイテム40、図5)周期的に試
みる。あるいは、もしも復元プロセスがアイテム70aで
アボート状態のトランザクションを見いだすなら(図5
のアイテム43)、それは準備としてリストされ(アイテ
ム44)かつアイテム70bでそれらの肯定応答メッセージ
を待機するすべての従属子に「アボート」メッセージを
送出するようアイテム70aで周期的に試みる。一度すべ
ての肯定応答メッセージがいずれかのケースで受信され
たなら、復元プロセス62は「終了」記録を書き込み(ア
イテム49)、トランザクションを「忘却」する。
【0026】もし調整子プロセス25が従属子プロセス26
の障害に注意し、同時にその投票を送出するためこの従
属子を待機するなら(アイテム37)、調整子はアイテム
43,44等で上に規定されたステップを取ることによりト
ランザクションをアボートする。あるいは、もし調整子
が肯定応答メッセージを受信するために待機する場合に
障害に気付くなら(アイテム48)、調整子は復元プロセ
ス62に向かって制御を手渡す。従属子が肯定投票を送出
し(アイテム32)かつ準備状態31aになる前にもしも従
属子プロセス26が調整子プロセス25の障害に気付くな
ら、この従属子はトランザクションをアボートするが
(アイテム34で、否定投票を送出する一方向アボー
ト)、しかし、他方で、もし従属子が準備状態31aに進
んだ後で障害が生起するなら、従属子は復元プロセス62
に向かってトランザクションの制御を手渡す。
【0027】復元プロセス62が準備された従属子サイト
からトランザクションIDについての問合せメッセージ
を受信する場合、それは揮発性記憶装置でその情報を考
察する。もしそれがトランザクションがアボート状態か
あるいはコミット状態にあることを述べる情報を有する
なら、それは適当な応答を送出する。もしトランザクシ
ョンについてどんな情報も揮発性記憶装置に見いだされ
ないなら、どんな作用を取るべきかは生起する自然な質
問である。何時そのような局面が生じ得るかを確かめる
検査は次のことを示す。「コミット」および「アボー
ト」の双方が肯定応答されて以来、問合せが行われると
いう事実は、問合わせられた者がトランザクションを
「忘却」した前に問合せ者が「コミット」あるいは「ア
ボート」を受信かつ処理しないことを意味している。そ
のような局面は(1)問合せられた者が「準備」メッセ
ージを送出し、(2)すべての投票を受信しかつコミッ
トあるいはアボートを決定する前にそれがクラッシュ
し、かつ(3)再スタートに際して、それがトランザク
ションをアボートし、かつ任意の従属子を通知しない場
合である。再スタートに際して、問合せられた者はそれ
が調整子あるいは従属子であるかどうかを知らせること
ができない。というのは、どんなコミットプロトコルロ
グ記録もトランザクションに存在しないからである。こ
の事実が与えられると、情報の無いケースの問合せへの
正しい応答は「アボート」メッセージ、従って名前「仮
定アボート」である。
【0028】2相コミットプロトコルのいわゆる「仮定
アボート」バージョンで、トランザクションについての
任意の情報が存在しないと、復元プロセス62はアボート
に対する問合せ従属子を命令する。アイテム43で、それ
をアボートする決定を行い(例えば否定投票の受信によ
り)、かつアボート記録を書き込んだすぐ後でトランザ
クションを忘却するのは調整子プロセス25にとって安全
であることを検査が示している。このことはアボート記
録が(アイテム43における調整子とアイテム34および45
における各従属子の双方によって)強制される必要がな
く、かつ(従属子によって)アボートに対して肯定応答
(アイテム46)が送出される必要がないことを意味して
いる。さらに、調整子プロセスはアボート記録54(アイ
テム43)の従属子の名前を記録したり、あるいはアボー
ト記録の後で終了記録を書き込む必要がない。また、も
し調整子プロセス25が従属子の障害に気付き、同時にそ
れにアボートメッセージを送出しようと試みるなら(ア
イテム44)、調整子は復元プロセス62に向かってトラン
ザクションを手渡す必要はない。それは調整子のサイト
の復元プロセス62が問合せメッセージを送出する場合
に、従属子がアボートを見いだすようにしよう。仮定ア
ボートプロトコルを生成するための、標準2相コミット
プロトコルからのこれらの変化はコミッティングトラン
ザクションに関して、ログ書き込みとメッセージ送出に
より、プロトコルの性能を変化しなかった。図10のテ
ーブルの第2行において、仮定アボートプロトコルに必
要な作用が集約されている。
【0029】読取専用(部分的にせよあるいは完全にせ
よ)であるトランザクションはコミッティングトランザ
クションのダイナミクスを変化し、かつプロトコルはこ
の事実を利用して変更できる。もしトランザクションの
いくつかのプロセスがデータベースの任意の書き込み
(アップデート)を実行せず、同時に他のプロセスがそ
のような書き込みを実行するなら、トランザクションは
部分的に読取専用である。もしどんなプロセスもデータ
ベースに任意の書き込みを実行するなら、トランザクシ
ョンは完全に読取専用である。
【0030】従属子が準備メッセージを受信する場合
(アイテム29)、2相コミットプロトコルの「読取専
用」トランザクションを考慮に入れて図12を参照する
と、データベースの任意のアップデートを行うかどうか
(すなわち、「取り消し」あるいは「やり直し(red
o)」ログ記録が書き込まれたかどうか)をそのログの
検査によりアイテム80でまず決定される。もしそうでな
いなら、アイテム81において、それは調整子に「読取」
投票を送出し、そのロックを解放し、かつアイテム82で
トランザクションを忘却する。この場合、従属子はログ
記録を書き込まず、単にアイドル状態に戻るだけであ
る。この従属子プロセス26に関する限り、トランザクシ
ョンが最終的にアボートされるかコミットされるかどう
かは問題ではない。そこで、「読取専用」として調整子
を知らされるこの従属子は調整子によって「コミット」
あるいは「アボート」メッセージを送出する必要はな
い。図10のテーブルにおいて、列(コラム)は「読取
専用」および「アップデート」トランザクションに対し
て示されている。
【0031】図13を参照すると、もし調整子プロセス
が読取専用でありかつ「読取」投票のみを取るなら、2
相プロトコルの第2位相は存在しないであろう。アイテ
ム83において、調整子プロセスはそれが読取専用それ自
身であることを決定し、次にアイテム84においてすべて
の従属子が読取投票を送出することを見いだす。この場
合、従属子と丁度同様に、調整子はトランザクションに
ログ記録を書き込まない。他方、もし調整子あるいは1
つの従属子が肯定投票し、かつ他のどれも否定投票しな
いなら、調整子は標準2相コミットプロトコルとして振
る舞う。しかし肯定投票するそれらの従属子(もしある
なら)の同一性(それらのプロセスのみが準備状態にあ
り、それ故、それらのみがコミットメッセージを送出し
よう)のみをコミット記録54で含むことは調整子にとっ
て十分であることに注意されたい。もし調整子あるいは
従属子の1つが否定を投票するなら、調整子は図5で前
に述べたように振る舞う。
【0032】完全な読取専用トランザクションに対し
て、調整子あるいは任意の従属子は任意のログ記録を書
き込まないが、しかし従属子のそれぞれは1つのメッセ
ージ(読取投票)を送出し、かつ調整子は1つのメッセ
ージ(準備)を各従属子に送出する。このアクティビテ
ィは図10のテーブルの第2行、読取専用列に集約され
ている。
【0033】部分的に読取専用なトランザクションに対
して、コミットする場合に、従属子をアップデートする
ために、調整子はアイテム28で2つのメッセージ「準
備」を送出し、かつアイテム40でコミットし、かつ図1
3で分かるように他のものに1つのメッセージ「準備」
を送出する。調整子は、もし少なくとも1つのアップデ
ート従属子プロセスが存在するなら、2つの記録を書き
込む(図5で分かるように、強制された記録をアイテム
38でコミットし、かつ強制されない終了記録をアイテム
49でコミットする)が、しかし、さもなければ1つの記
録を書き込むだけである(強制されている記録をアイテ
ム85でコミットする)。読取専用従属子は完全に読取専
用なトランザクションと丁度同様に振る舞い、かつアッ
プデート従属子は図6の標準2相コミットプロトコルの
トランザクションをコミットする従属子と同様に振る舞
う。アクティビティは図10のテーブルの第2行に集約
されている。
【0034】2相コミットプロトコルにこれらの変更を
行うことにより、いわゆる仮定アホートプロトコルが創
成される。仮定アボートという名前は、情報のない場合
に、トランザクションがアボートされたものと仮定さ
れ、従って問合せに対する復元プロセスの応答はアボー
トメッセージである。
【0035】仮定コミットプロトコルは仮定アボートプ
ロトコルの代案である。たいていのトランザクションが
コミットすると予想されているから、問題は次のような
ことである。もし、アボートメッセージに肯定応答メッ
セージを要求することにより(標準となる図6のアイテ
ム46)、コミットはコミットメッセージに対して肯定応
答メッセージ(すなわちACK)を除去することにより
(図6のアイテム42)さらに安価にすることができる。
要求される単純な概念は、コミットが必要でないとアボ
ートが肯定応答され、かつ従属子によるコミット記録が
強制される必要がないと、アボート記録が強制されるこ
とである。その結果として、情報のない場合に、復元プ
ロセスは従属子が問合せの場合にコミットメッセージに
応答する。しかし、他の局面もこのアプローチに関連し
て考慮されなければならない。
【0036】調整子プロセスがアイテム28の準備メッセ
ージを送出した場合の状態を考慮すると、1つの従属子
は準備状態に進み、かつ調整子がアイテム37ですべての
投票を収集できかつ決定を行う前に、調整子はクラッシ
ュする。これまで調整子は任意のコミットプロトコルロ
グ記録を書き込もうとしなかった(アイテム38)。クラ
ッシュされた調整子サイトが復元する場合、その復元プ
ロセスはこのトランザクションをアボートし、かつどれ
にも通知することなくそれを「忘却」する。というの
は、従属子についてどんな情報も利用可能でないからで
ある。準備された従属子のサイトの復元プロセス62が調
整子サイトを問合せる場合、その復元プロセスはコミッ
トメッセージに応答し、受け入れられない矛盾を生起す
る。
【0037】この局面から脱出するやり方は調整子プロ
セスに対して調整子のいずれも準備状態になる前に安定
記憶装置に記録54により従属子の名前を安全に記録する
ことである。すると、調整子サイトがアイテム28の準備
メッセージの送出の後で生起するクラッシュからの復元
をアボートする場合、再スタートプロセスはアボートに
ついて誰に通知する(およびそれから肯定応答を得る)
かを知るであろう。これらの修正は仮定コミットプロト
コルを与える。情報のない場合にトランザクションがコ
ミットされたと仮定され、それ故、問合せに対する応答
はコミットメッセージであるという事実から名前が生じ
る。
【0038】図14を参照すると、仮定コミットプロト
コルにおいて、調整子プロセスは仮定アボートとして振
る舞うが、その例外は、(1)第1位相の開始において
(すなわち、準備メッセージを送出する前に)、すべて
の従属子の名前を含み、かつ収集状態に移る記録54の収
集をアイテム86で強制書き込みすること、(2)アイテ
ム38と43でコミット記録とアボート記録の双方を強制書
き込みすること、(3)アイテム46でアボートに対して
のみ従属子からの肯定応答を要求するが、コミットに対
してはそうでないこと、(4)アボート記録の後でのみ
でアイテム49で終了記録を書き込むが(もし収集記録が
書き込まれた後でアボートが行われるなら)、コミット
記録の後ではそうでないこと、(5)アボート状態にお
いてのみ(従属子障害に注意して)復元プロセス62にト
ランザクションを手渡すこと、および、(6)完全な読
取専用トランザクションの場合に、仮定アボートの第1
位相の終了で任意の記録を書き込まない(図13)が、
しかし仮定コミットにおいて、アイテム87でコミット記
録を書き込み、かつトランザクションを「忘却」するこ
とである。
【0039】仮定コミットに対して図15を参照する
と、従属子は仮定アボートとして振る舞うが、ただしア
イテム45でアボート記録のみを強制書き込するが記録を
コミットせず、かつアイテム46でアボートのみが肯定応
答されるがコミットされないことは例外である。再スタ
ートに基づいて、もし特定のトランザクションに対して
復元プロセス62がアイテム86で書き込まれた収集記録54
を見いだすがそれに後続する他の記録はそうでないな
ら、それはアボート記録を書き込み、すべての従属子を
通知し、それから肯定応答を得、終了記録を書き込み、
かつトランザクションを「忘却」する。情報がない場合
に、復元プロセスはコミットメッセージにより問合せに
応答する。
【0040】完全な読取専用トランザクションに対する
仮定コミットにおいて、調整子は2つの記録を書き込み
(強制されるアイテム86における収集と、強制されない
アイテム87におけるコミット)、かつ各従属子に対して
アイテム28でメッセージ「準備」を送出する。従属子は
ログ記録を書き込まないが、しかし従属子のそれぞれは
アイテム81で1つのメッセージ「読取投票」を送出す
る。
【0041】コミットする部分的な読取専用トランザク
ションに対して、調整子は従属子をアップデートするた
めに2つのメッセージ(アイテム28で準備し、かつアイ
テム40でコミットする)を送出し、かつ1つのメッセー
ジ(アイテム28で準備する)を他の部分に送出し、かつ
それは2つの記録(アイテム86で収集し、アイテム38で
コミットし、その双方とも強制されている)を書き込
む。読取専用従属子は完全な読取専用トランザクション
と丁度同様に振る舞い、かつアップデート従属子は1つ
のメッセージ(アイテム32で肯定投票)を送出し、かつ
2つの記録(アイテム31で準備し、それは強制され、か
つアイテム88でコミットし、それは強制されない)を書
き込む。
【0042】図16と図17において、状態ダイヤグラ
ムが仮定アボートプロトコルに対して示されている。全
読取専用条件がアイテム83と84を通して検出される場合
に調整子プロセスはアイドル状態27aから同じアイドル
状態に戻る。もし否定投票が受信され、かつコミットプ
ロトコルがアボートするなら、それはアイテム44を含む
パスによってアイドル状態に戻る。コミット記録の強制
書き込みに基づいて、それはコミッティング状態38aに
移動し、次に終了記録の強制書き込みがアイテム49で行
われる場合にアイドル状態に戻る。図17の従属子プロ
セスはこの従属子がアイテム80と81を含むパスを介して
読取専用であることが決定される場合に、同様にアイド
ル状態29aから同じアイドル状態に戻る。あるいは、も
しプロセスがアイテム35を含むパスを介してアボートさ
れるなら、それはアイドルに戻る。もし強制書き込み準
備記録がアイテム31で書き込まれるなら、プロセスは準
備状態31aに移動する。それはアイテム41の強制書き込
みコミット記録によるか、あるいはアボート(強制され
ない)のいずれかによってアイドル状態に戻すことがで
きる。
【0043】図18と図19を参照すると、状態ダイヤ
グラムが仮定コミットプロトコルに対して示されてい
る。調整子プロセスはアイテム86の収集記録の強制書き
込みに基づいてアイドル状態27aから収集状態88にまず
移動する。全読取専用条件がアイテム87のコミット記録
の書き込みに基づいて検出される場合、それはアイドル
状態に戻る。もし否定投票が受信されると、それはアイ
テム43のアボート記録の強制書き込みに基づいてアボー
ト状態43aに移動する。するとそれはアイテム49の終了
記録の書き込みに基づいてアイドル状態に戻る。仮定コ
ミットに対する図19の従属子プロセスは図17のそれ
と同じであるが、アボート記録がコミット記録41の代わ
りに強制書き込みである点は別である。
【0044】上述の3つのコミットプロトコルの性能は
図10のテーブルに集約されている。従前の3つのプロ
トコルは、(1)標準2相コミット、(2)仮定アボー
トを持つ2相コミット、および(3)仮定コミットを持
つ2相コミットである。標準2相コミットにおいて、す
べてのトランザクションは完全なアップデートトランザ
クション(読取専用ではない)のように見える。予期さ
れているように、仮定アボートプロトコルは標準2相の
ものより良好に実行される。というのは、いくつかの強
制書き込みとメッセージオーバーヘッドは読取専用トラ
ンザクションに対して低減されるからである。また、仮
定アボートプロトコルは完全な読取専用トランザクショ
ンの場合に仮定コミットより良好に実行され、ここで調
整子によって2つのログ書き込み(強制されたもの)の
節約が存在する。調整子のみがアップデートを行う部分
的な読取専用トランザクションの場合に、仮定アボート
プロトコルは強制書き込みが調整子により節約されると
いう理由で良好に実行される。双方の局面で、同じ数の
メッセージは仮定アボートあるいは仮定コミットのいず
れかに送出されなければならない。1つだけのアップデ
ート従属子を持つトランザクションの場合に、仮定アボ
ートと仮定コミットはログ書き込みによると等しいが、
しかし仮定アボートはアップデート従属子により肯定応
答が送出される余分のメッセージを必要とする。1つ以
上のアップデート従属子を持つトランザクションに対し
て、仮定アボートと仮定コミットの双方は書き込まれる
べき同じ数の記録を必要とするが、しかし仮定アボート
はアップデート従属子の数マイナス1に等しい多数の強
制書き込みを有するであろうが、一方、仮定コミットは
これらの強制書き込みを有しないであろう。これらの強
制書き込みは従属子によるコミット記録の強制に対応し
ている。その上、仮定アボートはアップデート従属子の
数に等しい多数の余分のメッセージを送出しよう(これ
らは肯定応答である)。
【0045】特定の分散データベースに対して走行する
と予想されているトランザクション混合に依存して、仮
定アボートと仮定コミットとの間の選択を行うことがで
きる。調整子による2相コミットの第1位相の開始時点
で、全体系ベース(system-wide basis )の代わりに、
この選択はトランザクション・バイ・トランザクション
に基づいて行うことができる。もしこのアプローチが取
られるなら、調整子は準備メツセージで選ばれたプロト
コルの名前(仮定コミットあるいは仮定アボート)を含
むべきであり、かつすべてのプロセスはそれぞれが書き
込む第1コミットプロセスログ記録のこの名前を含むべ
きである。この名前は再スタートプロセスにより送出さ
れた問合せメッセージに含まれるべであり、かつ情報が
ない場合にこの情報は問合せに応じて復元プロセスによ
り使用される。
【0046】本発明によると、仮定コミットプロトコル
の修正バージョンは強制書き込みを除去することにより
改善された性能を与える。この修正されたバージョンも
またテーブルAに、「ログフォースのない仮定コミッ
ト」タイプとしてその下側の行にリストされている。こ
の修正されたバージョンの使用により、混合トランザク
ション(いくつかは読取専用であり、いくつかはアップ
デートである)の仮定コミットの利点は強制ログオーバ
ーヘッドを劣化することなく達成できる。
【0047】非強制仮定コミットプロトコルを使用する
場合、調整子の動作が最初に記述されよう。この記述は
3つのセクション、(A)アップデート従属子を持つア
ップデートトランザクション、(B)アップデート従属
子のないアップデートトランザクション、および(C)
読取専用トランザクションである。
【0048】状態(A)に対して、アップデート従属子
を持つアップデートトランザクションで、図20aのア
イテム27において調整子は最初に「コミット」指令("c
ommit" directive)を受信する。すると調整子は図20
aのアイテム28で、トランザクションがコミットできる
かどうかを質問する集団に「準備」メッセージを送出す
る。ここでどんなログ記録も書き込まれず、かつどのロ
グ記録も強制されない。調整子はアイテム90ですべての
集団から応答を受信するよう待機する。
【0049】もし応答がタイムリーに到着しないなら、
あるいはもし任意の集団が「アボート」を投票するな
ら、調整子はアイテム91でアボート記録(非強制)を書
き込み、かつアイテム92ですべての集団に「アボート」
メッセージを送出する。アボートログ記録は復元がトラ
ンザクションを活性トランザクションテーブルに保持す
る必要がないようにトランザクション(ログの)を終了
するのに役立っている。アボート記録はトランザクショ
ン集団の名前を含んでいる。すべての集団が肯定応答さ
れたアボートメッセージを有する場合(アイテム93)、
調整子はアイテム94の「終了」ログ記録によりこれを記
述し、かつトランザクション(揮発状態からそれを移動
する)を忘却する。終了メッセージは揮発状態のアボー
ト情報が、集団からの別の問合せが到着しないので、安
全に忘却できることを記述する。
【0050】終了メッセージがログに安定に記録される
(アイテム94)前にシステムが障害を生じるなら、復元
はアボートメッセージを再送出し、かつACKを待機し
なければならない。もしアイテム94の終了記録が書き込
まれなかったなら、復元は何時アボートされたトランザ
クションが「忘却」できるか、すなわち揮発状態から追
放(purge )されるかを知らないであろう。アイテム91
あるいは94のこれらのメッセージのいずれもログに強制
されない。
【0051】丁度説明された方法に多数の可能なバージ
ョンが存在する。その1つに、アイテム91の「アボー
ト」メッセージに従属子が記録されないという選択が行
われる。システムは障害を起こすなら、アボートされた
トランザクションは情報に関連した永久クラッシュに保
持されたものの1つとなろう。別のバージョンでは、図
20bを見ると、すべてのACKが従属子から受信され
るまでアボートメッセージを書き込まない選択が行われ
る。トランザクションはコミット記録がないとアボート
され(とにかく多くのシステムで)、かつこれはログ書
き込みの節約を許容する。すなわち、アボート記録はす
べてのACKの後で終了記録(アイテム94)の代わりに
図20bのアイテム95で書き込まれ、かつこれはアボー
トされたトランザクションのただ1つのログ記録であ
る。再び、トランザクションのアボートされた状態を記
述する情報は情報に関連した永久クラッシュの一部分と
なる。
【0052】もしすべての集団が図20aのアイテム90
で「肯定(イエス)」投票して(コミットして)タイム
リーに応答するなら、調整子はアイテム96でコミットロ
グ記録を書き込む。このログ記録はトランザクションの
耐久性(durability)を保証するよう強制される。期待
されたACKメッセージが存在しないので集団の名前は
含まれない。さらに、集団からACKが期待されないの
でどんな終了ログ記録も必要とされない。
【0053】以前の特許出願では、大域トランザクショ
ン(global transactions )の順次性の保証を助けるた
めにタイムスタンプが使用された。この技術が使用され
るなら、コミット記録はトランザクションのタイムスタ
ンプを含む必要はないであろう。
【0054】図20aあるいは図20bの方法を使用す
ると、最も古いTID(以下にOTIDと記述される)
は以前のクラッシュ以来最も古い活性トランザクション
IDのトランザクションIDに限定される。そのような
最も古いトランザクションがコミットあるいはアボート
する時には、(非連続TIDの場合)最も古く走行して
いる活性トランザクションについてコミットとアボート
記録がマークされる。そのような最後にマークされた記
録はクラッシュについての持続情報(persistent infor
mation)のO_TIDとなる。
【0055】このように、図10を参照すると、図20
aあるいは図20bの方法をコミットする場合のこの調
整子アクティビテイのメッセージ/ログコストは、 書き込まれた1記録(強制されたもの) 各R−O従属子への1メッセージ 各アップデート従属子への2メッセージ である。
【0056】状態(B)に対して、アップデート従属子
のないアップデートトランザクション、調整子の動作は
状態(A)と正確に同じであるが、ただしアップデート
従属子が存在しないことは例外である。
【0057】状態(C)に対して、読取専用トランザク
ションである調整子の動作がこれから説明されよう。ア
イテム90ですべての従属子の投票が受信されるまでどん
なログ記録も上のプロトコルに書き込まれない。もしす
べての集団が「読取専用」を投票するなら、トランザク
ションは読取専用トランザクションである。そこで、図
20aのパス98を介してアイテム90から「忘却トランザ
クション」状態50までのフローが存在する。すべての集
団はそれらのログを書き込むことなく終了し、かつこの
トランザクションを「忘却」する。従って、調整子が任
意のログ記録を書き込む必要はない。もしシステムが障
害を起こすと(クラッシュ)、仮定コミット要件を記述
するよう導出される情報は、いかにクラッシュに近く読
取専用トランザクションが完了したかに依存して、異な
る結果を暗示しよう。もしこのトランザクションのTI
DがO_TIDより大きいなら、トランザクションはア
ボートされるように見える。もしO_TIDより小さい
なら、コミットされたように見えよう。しかし、何時も
どんな従属子も問合せを行わないから、このことは重要
ではない。従って、記述がないこと、およびトランザク
ションがコミットされるかあるいはアボートされるのい
ずれかに見えることは重要ではない。従って、メメッセ
ージ/ログコストはこの場合に(図10を見よ)、 書き込まれた零記録(強制されない) 各R−O従属子に1メッセージ である。
【0058】その結果はいかにシステムが活性プロトコ
ル位相であるトランザクションを正確に取り扱うかであ
るが、しかしそれには安定記録も実在しない。もしトラ
ンザクションのこの組が制限できるなら、問題は復元プ
ロセス62により取り扱うことができる。本発明の実施例
によると、活性プロトコル位相のトランザクションの組
を制限できるが、しかしそれには安定記録は存在しな
い。
【0059】2相コミットトランザクションの組を制限
するために、トランザクション識別子(TID)は単調
な昇順に手渡されることが仮定されている。基本概念
は、そのトランザクション識別子が安定に記録されたト
ランザクション識別子(S_TIDと規定されている)
のいくつかのΔ(デルタ)内にあるのでなければ、2相
コミットプロトコルを開始することが許容されないこと
である。システムが障害を起こすなら、S_TID+Δ
までの識別子を持つトランザクションのみが活性化でき
る。うまくコミットされたトランザクション(C_TI
Dと規定される)はすべてログに安定に記録される。ア
ボートされるトランザクション(MA_TIDと規定さ
れる)は
【数1】MA_TID={TID|TID<S_TID
+Δ}−C_TID により示される。
【0060】すなわち、うまくコミットされた(C_T
ID)であると知られたトランザクションIDはTID
がS_TID+Δより小さいようにTIDの組から減算
され、これはMA_TIDを残す。これらのMA_TI
Dに対して、いくつかのトランザクションは明確にアボ
ートされる(ここでA_TIDと規定される)。このよ
うに、不確定トランザクションの組(これは走行する
が、しかしそれに対してどんな情報も知られず、ここで
I_TIDとして規定される)は、
【数2】I_TID=MA_TID−A_TID である。
【0061】これらのTIDを持つどんなトランザクシ
ョンもコミットされない。しかしそれらがアボートされ
たかどうか、あるいは決して走行しないかどうかは分か
らない。そして、もしアボートされたなら、それらが2
相コミットプロトコルを始めたかどうか分からない。従
って、問合せがこの組について受信されたかどうかは分
からない。あるいはいかに多くの問合せがこの組につい
て受信されるかどうかも分からない。いかに多くの問合
せが受信されたか、あるいはそれにより集団となる(従
属する)か分からない。しかし、すべてのそのような問
合せはトランザクションがアボートされたという回答を
受信すべきである。
【0062】組I_TIDのみが永久に記録されるべで
ある。どの集団であるか、あるいはいかに多くのものが
存在するかの情報が存在しないので、それはガーベッジ
収集できない。I_TIDの濃度(cardinality )は典
型的には小さいであろう(例えば50−100 TIDよりは
多くない)。このように、安定記録に必要な情報の量は
システムクラッシュの数に比例し、かつ大きくはない。
安定に記録されたトランザクションは仮定コミットプロ
トコルに通常なされるようにガーベッジ収集できる。そ
して、もちろん、一度トランザクションがコミットする
と、「情報」がコミットを仮定しないという理由でその
配列(disposition )はまったく保持される必要はな
い。
【0063】それ故、不確定トランザクションと安定に
記録された情報のTIDの組を表す必要がある。I_T
IDに対して選ばれた表現が小さいサイズに対して選ば
れることが重要である。この理由で、2ポート表現が選
ばれ、それは(i)S_TIDの後の不確定トランザク
ションと、(ii)S_TIDの前の不確定トランザクシ
ョンを含んでいる。
【0064】S_TIDの後の不確定トランザクション
の第1部分はS_TIDとS_TID+Δの間のTID
を持つ多分実行されたトランザクションの組であり、か
つ領域規定、
【数3】<S_TID,S_TID+Δ> によって最も良く表される。これは組のこの部分の非常
に簡単かつコンパクトな表現である。
【0065】S_TIDの前の不確定トランザクション
の第2部分はコミットされず、かつアボートされたTI
D<S_TIDを持つトランザクションであるが、しか
しそれらの集団についてはどんな情報も知られていな
い。さらに、これはTIDの隣接領域ではない。S_T
IDより小さいTIDを持つトランザクションのいくつ
かの組はコミットされ、一方、他のものはアボートされ
た。
【0066】しかし以下に説明するように決定されたO
_TIDの識別子を持つ最も古い活性トランザクション
が存在する。O_TIDより古いすべてのトランザクシ
ョンは最後のクラッシュ以来完了しており、かつログに
安定に記録されたそれらのステータス(コミットあるい
はアボート)を有している。それ故、I_TIDを表現
したO_TIDが記録される。O_TIDより小さいそ
れらのTIDは永久に記録される必要はない。というの
は、それらはすべて完全に知られており、かつ正規にガ
ーベージ収集できるからである。
【0067】O_TIDとS_TIDの間でアボートさ
れるトランザクションはコミットされないものである。
いかにしてO_TIDを決定するか、かつコミットしな
い組をいかにして最良に表すかは、TIDが連続的に手
渡されるかあるいは非連続的に手渡されるかどうかに依
存している。
【0068】連続TIDによって、コミットしないトラ
ンザクションは明確にアボートされる。これらのトラン
ザクションは最も古い活性トランザクションO_TIM
のネーミングにより最良に表され、かつアボートされて
以来そのトランザクションを正確に示すビットベクトル
【数4】<O_TID,アボートビットベクトル> を蓄積する。
【0069】O_TIDはログを検査し、コミットある
いはアボートされない最低付番のTIDを観察すること
により見いだすことができる。このことはTIDが与え
られる各トランザクションに対してログ記録が書き込ま
れる(コミットあるいはアボートされる)ことを要求す
る。
【0070】タイムスタンプのような非連続TIDに対
して、TIDは連続的に付番されないが、しかしなお単
調に増大する。このように、S_TIDより小さいTI
Dを持つ不確定トランザクションを表す方法は異なって
いる。前と同様に、最も古い活性TID、O_TIDの
概念が使用される。しかし、可能なTIDの空間が大き
いから、ビットベクトルを使用する代わりに、この組が
コミットされたトランザクションの組の完成として表さ
れ、今やリスト形式に表される。それ故、これらは
【数5】<O_TID,O_TIDとS_TID間のコ
ミットされたTIDのリスト> により表される。この範囲のアボートされたトランザク
ションの組はコミットされなかった可能なTIDの組に
含まれる。
【0071】システムクラッシュを救済するやり方でO
_TIDを識別する必要がある。このTIDはO_TI
Dより小さいTIDを持つ不確定トランザクションが存
在しないことを知らせる(以前のシステムクラッシュに
戻って)。最も古い活性トランザクションがコミットす
ると何時でも、O_TIDを実際にコミットするコミッ
ト記録をそれに示すことができる。システムが正規に実
行される間、どのトランザクションがこの最も古い活性
トランザクションであるかが分かる。システムクラッシ
ュにわたって安定にするためにこの情報をログに入れら
れる。このように、ログは一連の単調に増大するO_T
IDでマークされよう。クラッシュの前にログに書き込
まれた最後のO_TIDはI_TIDを表すのに使用さ
れたO_TIDである。この戦略は余分のログ書き込み
/フォースなしに「コミットされたTID」のリストの
サイズを最小にすることを許容する。
【0072】I_TID情報はコミットプロトコルと復
元プロセスによりアクセスされなくてはならず、かつこ
の情報が固定記憶装置18にあることが必要である。概念
的に、すべてのクラッシュに対するI_TIDは永久か
つ安定に保持される必要がある。上述のI_TIDの表
現を与えると、永久に保持されるべき情報は相対的に適
度(modest)であり得る。クラッシュ毎に数百バイトの
情報以上しか必要とされず、それはまったく取り扱える
量である。システムが一日に一度クラッシュし(それは
良く管理されたシステムに対して非常に高い)、かつシ
ステムが一週間に7日動作するとしても、1メガバイト
のクラッシュ関連I_TIDを累積するのに2000日(5
年以上)を要するであろう。
【0073】最近の情報をキャッシュするのが適当であ
ろう。I_TID情報が主記憶装置17に有効に維持され
るのに大き過ぎるようになると、最後のいくつかのクラ
ッシュについて情報をキャッシュすることが可能とな
る。殆どすべてのトランザクション問合せは、最後のク
ラッシュ以来完了したか、あるいは最後のクラッシュの
結果として中断されたトランザクションである。いくつ
かの非常に小さい数の質問は最後の次のクラッシュ(ne
xt-to-last crash)により中断されたトランザクション
であろう。主メモリ17に最後の3クラッシュを維持する
ことは効率的なシステム動作に多分十分でなければなら
ない。
【0074】最適構成はI_TIDファイルを打ち切る
(truncating)ことである。I_TIDファイルのサイ
ズは制御でき、かつ真に古いTIDについての問合せを
放棄することにより小さく保つことができる。その質問
が放棄されるそれらのトランザクションは「ヒューリス
ティック」に解決すべきである。すなわち、それらは人
間の介在(human intervention)を要求しよう。(多分
それらは書類で調べることができる。)
【0075】トランザクション集団毎のメッセージコス
トの低減により表した仮定コミットプロトコルの利点
は、コミットプロトコルの開始においてログ記録を強制
しなければならないトランザクション調整子のコストの
影響をこうむることなしに実現される。ユーザーに対す
る利益は、トランザクション処理システムが従前のシス
テムを越える性能で2相コストを実行できるであろうと
いうことである。
【0076】本発明は特殊な実施例を参照して記述され
ているが、その記述は限定された意味で解釈すべきでは
ない。開示された実施例の修正、ならびに本発明の他の
実施例はこの記述を参照して当業者に明らかであろう。
従って、従属クレームが本発明の範囲内のそのような修
正もしくは実施例をカバーすることが予期される。
【図面の簡単な説明】
【図1】図1は本発明の一実施例の方法が使用される分
散計算システムのダイヤグラムである。
【図2】図2は一実施例による図1のシステムの1つの
ノードのブロック形式の電気ダイヤグラムである。
【図3】図3は図1の分散回線網の、図2に示されたよ
うなノードで本発明のシステムが走行する場合のデータ
記憶装置の部分のマップである。
【図4】図4は一実施例によるコミットプロトコルを使
用するトランザクション処理システムの種々のプロセス
のダイヤグラムである。
【図5】図5は図4の標準2相コミットプロトコルのコ
ミット調整子により実行されたプロセスの論理フローチ
ャートである。
【図6】図6は標準2相コミットプロセスの、図5のコ
ミット調整子プロセスの従属子により実行されたプロセ
スの論理フローチャートどある。
【図7】図7は図5の調整子と従属子プロセスの状態ダ
イヤグラムである。
【図8】図8は図6の調整子と従属子プロセスの状態ダ
イヤグラムである。
【図9】図9は図5と図6のプロセスを使用した、図1
と図2の分散トランザクション処理システムで使用され
たログ記録用のメモリあるいはディスクのデータ構造の
ダイヤグラムである。
【図10】図10は図5と図6の標準2相コミットプロ
トコルを含む種々の2相コミットプロトコルのアクティ
ビティを集約したテーブルである。
【図11】図11は図5と図6の標準2相コミットプロ
トコルを使用するトランザクション処理システムのサイ
トにより実行された復元プロセスの論理フローチャート
である。
【図12】図12は図6のような従属子により実行され
たが、しかし読取専用トランザクションを考慮したプロ
セスを開始する論理フローチャートである。
【図13】図13は読取専用トランザクションを考慮し
た図5のようなコミット調整子により実行されたプロセ
スの図12に対応する論理フローチャートどある。
【図14】図14は図5のような調整子により実行され
た仮定コミットプロトコルの論理フローチャートであ
る。
【図15】図15は図6のような調整子により実行され
た仮定コミットプロトコルの論理フローチャートであ
る。
【図16】図16は仮定アボートプロトコルと仮定コミ
ットプロトコルに対する調整子および従属子プロセスの
図8に類似の状態ダイヤグラムである。
【図17】図17は仮定アボートプロトコルと仮定コミ
ットプロトコルに対する調整子および従属子プロセスの
図7に類似の状態ダイヤグラムである。
【図18】図18は仮定アボートプロトコルと仮定コミ
ットプロトコルに対する調整子および従属子プロセスの
図8に類似の状態ダイヤグラムである。
【図19】図19は仮定アボートプロトコルと仮定コミ
ットプロトコルに対する調整子および従属子プロセスの
図7に類似の状態ダイヤグラムである。
【図20】図20は本発明の一実施例による調整子によ
って実行されたログフォースのない仮定コミットプロト
コルの論理フローチャートである。
【符号の説明】
10 通信リンク 11 ノードあるいはサイト 12 ノードあるいはサイト 13 ノードあるいはサイト 14 ノードあるいはサイト 15 ノードあるいはサイト 16 CPU 17 主メモリあるいは揮発性記憶装置 18 ディスク記憶装置 19 システムバス 20 回線網アダプタ 21 データ記憶装置 22 ログ(ファイル) 24 応用プログラム(プロセス) 25 (コミット)調整子(プロセス)あるいはコミット
プロトコル 26 従属子(プロセス) 27 アイテム 27a アイドル状態 28 アイテム 29 アイテム 29a アイドル状態 30 アイテム 31 アイテム 31a 準備状態 32 アイテム 33 アイテム 34 アイテム 35 アイテム 36 アイテム 37 アイテム 38 アイテム 38a コミッティング状態 39 アイテム 40 アイテムあるいはコミット記録 41 アイテム 42 アイテム 43 アイテム 43a アボート状態 44 アイテム 45 アイテム 46 アイテム 47 アイテム 48 アイテム 49 アイテム 50 アイテムあるいは忘却トランザクション状態 54 記録 55 タイプフィールド 56 プロセスIDフィールド 57 調整子IDフィールド 58 フィールド 59 フィールド 60 トランザクションIDフィールド 62 復元プロセス 64 アイテム 65 アイテム 66 アイテム 67 アイテム 67a アイテム 67b アイテム 68 アイテム 68a アイテム 69 アイテム 69a アイテム 69b アイテム 70 アイテム 70a アイテム 70b アイテム 80 アイテム 81 アイテム 82 アイテム 83 アイテム 84 アイテム 85 アイテム 86 アイテム 87 アイテム 88 アイテム 90 アイテム 91 アイテム 92 アイテム 93 アイテム 94 アイテム 95 アイテム 96 アイテム 98 パス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロメット デイビッド ビー アメリカ合衆国 マサチューセッツ州 01886 ウエストフォード チェリー レ イン 9

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 仮定コミット2相コミットプロトコルを
    使用する分散トランザクション処理システムの動作方法
    であって、該方法が昇順でトランザクションにトランザ
    クション識別子(TID)を割り当て、 トランザクションがコミットの準備ができている場合
    に、調整子プロセスにコミット指令を送出し、上記の調
    整子プロセスは永久記憶装置と揮発性メモリを有するサ
    イトで実行し、 コミットの準備ができている上記のトランザクションの
    TIDがTIDの選択範囲内にあるかどうかを決定し、 もしコミットの準備ができている上記のTIDがTID
    の上記の選択範囲内にあるなら、従属子プロセスに準備
    メッセージを送出し、 もしコミットの準備ができている上記のTIDがTID
    の上記の選択範囲内にないなら、上記のTIDが上記の
    従属子プロセスに準備メッセージを送出する前に選択範
    囲内にあるように、コミットの準備ができている上記の
    トランザクションのログ記録を含めて、揮発性ログ記録
    を上記の永久記憶装置に書き込むこと、のステップを具
    える方法。
  2. 【請求項2】 上記の範囲が、上記の永久記憶装置にあ
    らかじめ書き込まれた初期ログ記録の最高TIDで始ま
    り、かつ上記の最高TIDを越えるTIDの選択番号ま
    で延在している請求項1に記載の方法。
  3. 【請求項3】 その結果が不確定であるすべてのTID
    のリストを維持するステップを含み、上記のリストが上
    記の範囲の最高番号より小さい大きさのTID番号を有
    し、かつ上記のリストがコミットされたかあるいはアボ
    ートされたすべてのTIDを排除する請求項1に記載の
    方法。
  4. 【請求項4】 上記の調整子と、通信回線網により相互
    接続された個別のサイトの上記の各従属子を実行するス
    テップ、 コミットあるいはアボートされない最低TID番号であ
    るが、しかしすべての低いTIDがコミットあるいはア
    ボートされるものを有するトランザクションのTIDで
    ある、最旧TID(O_TID)の安定記録を維持する
    ステップ、 システムクラッシュの時間の近くで活性なTIDの記録
    を上記の永久記憶装置に維持し、そこではどの1つが活
    性であるか、かつどの1つがコミットされるかが記録さ
    れるステップ、を含む請求項1に記載の方法。
  5. 【請求項5】 仮定コミット2相コミットプロトコルを
    使用するトランザクション処理システムであって、コミ
    ット調整子と複数の従属子を含む上記のシステムが昇順
    で、上記のシステムで実行するトランザクションにトラ
    ンザクション識別子(TID)を割り当て手段、 上記のシステムで実行するトランザクションがコミット
    の準備ができている場合に、上記の調整子にコミット指
    令を送出する手段であって、上記の調整子が永久記憶装
    置と揮発性メモリを有するサイトで実行するもの、 コミットの準備ができている上記のトランザクションの
    TIDがTIDの選択範囲内にあるかどうかを決定する
    手段、 もしコミットの準備ができている上記のトランザクショ
    ンの上記のTIDがTIDの上記の選択範囲内にあるな
    ら、上記の従属子に準備メッセージを送出する手段、 上記のTIDが選択範囲内にあることを保証するよう
    に、もしコミットの準備ができている上記のトランザク
    ションの上記のTIDがTIDの上記の選択範囲内にな
    いなら、上記の従属子に上記の準備メッセージを送出す
    る前に任意の揮発性ログ記録を上記の永久記憶装置に書
    き込む手段、を具えるトランザクション処理システム。
  6. 【請求項6】 上記の範囲が、上記の永久記憶装置にあ
    らかじめ書き込まれた初期コミット記録の最高TIDで
    始まり、かつ上記の最高TIDを越えるTIDの選択番
    号まで延在しており、 上記のシステムは、その結果が不確定であるすべてのT
    IDのリストを維持する手段を含み、上記のリストが上
    記の範囲の最高番号より小さい大きさのTID番号を有
    し、かつ上記のリストがコミットされたかあるいはアボ
    ートされたすべてのTIDを排除する、請求項5に記載
    のシステム。
  7. 【請求項7】 上記の調整子と上記の各従属子が、通信
    回線網により相互接続された個別のサイトで実行され、 システムが、コミットあるいはアボートされない最低T
    ID番号であるが、しかしすべての低いTIDがコミッ
    トあるいはアボートされるものを有するトランザクショ
    ンのTIDである、最も古いTID(O_TID)の安
    定記録を維持する手段を含む、請求項5に記載のシステ
    ム。
JP5157165A 1992-07-06 1993-06-28 仮定コミット2フェーズコミットプロトコルを用いるトランザクション処理システム及びその動作方法 Expired - Lifetime JP2558052B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/909,556 US5335343A (en) 1992-07-06 1992-07-06 Distributed transaction processing using two-phase commit protocol with presumed-commit without log force
US07/909556 1992-07-06

Publications (2)

Publication Number Publication Date
JPH06168169A true JPH06168169A (ja) 1994-06-14
JP2558052B2 JP2558052B2 (ja) 1996-11-27

Family

ID=25427449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5157165A Expired - Lifetime JP2558052B2 (ja) 1992-07-06 1993-06-28 仮定コミット2フェーズコミットプロトコルを用いるトランザクション処理システム及びその動作方法

Country Status (4)

Country Link
US (1) US5335343A (ja)
EP (1) EP0578406B1 (ja)
JP (1) JP2558052B2 (ja)
DE (1) DE69322549T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009520253A (ja) * 2005-12-19 2009-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散型システムにおけるトランザクションのコミットメントのための方法、コンピュータ・プログラム製品、およびシステム
JP2012018449A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd スナップショット取得処理プログラム、スナップショット取得処理方法、スナップショット・パティシパント・コンピュータ、スナップショット・コーディネータ・コンピュータ

Families Citing this family (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173988A (ja) * 1991-12-26 1993-07-13 Toshiba Corp 分散処理方式および該分散処理に適用されるトランザクション処理方式
US5469562A (en) * 1992-06-26 1995-11-21 Digital Equipment Corporation Durable atomic storage update manager
JP2675968B2 (ja) * 1992-08-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 加入者分散2相コミット・プロトコルの拡張機能
US5485607A (en) * 1993-02-05 1996-01-16 Digital Equipment Corporation Concurrency-control method and apparatus in a database management system utilizing key-valued locking
JP2557192B2 (ja) * 1993-03-15 1996-11-27 インターナショナル・ビジネス・マシーンズ・コーポレイション トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法
US5581750A (en) * 1993-03-15 1996-12-03 International Business Machines Corporation System and method for improving data recovery performance
US6205464B1 (en) * 1994-09-16 2001-03-20 International Businesss Machines Corporation System for building optimal commit trees in a distributed transaction processing system
US5680610A (en) * 1995-01-19 1997-10-21 Unisys Corporation Method and apparatus for testing recovery scenarios in global transaction processing systems
US5794242A (en) * 1995-02-07 1998-08-11 Digital Equipment Corporation Temporally and spatially organized database
WO1996027157A1 (fr) * 1995-02-28 1996-09-06 Ntt Data Communications Systems Corporation Systeme associatif decentralise et traitements de journaux et de reprise dans celui-ci
FR2735934B1 (fr) * 1995-06-23 1997-08-01 Cit Alcatel Procede pour allouer des identificateurs de transaction, et systeme pour la mise en oeuvre de ce procede
US5799305A (en) * 1995-11-02 1998-08-25 Informix Software, Inc. Method of commitment in a distributed database transaction
US5712971A (en) * 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
US6647510B1 (en) * 1996-03-19 2003-11-11 Oracle International Corporation Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction
US7415466B2 (en) * 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
US5850507A (en) * 1996-03-19 1998-12-15 Oracle Corporation Method and apparatus for improved transaction recovery
JPH103416A (ja) * 1996-06-14 1998-01-06 Canon Inc 情報処理装置およびその方法
US6031978A (en) * 1996-06-28 2000-02-29 International Business Machines Corporation System, method and program for enabling a client to reconnect to a same server in a network of computer systems after the server has moved to a different network address
US6263376B1 (en) * 1997-02-24 2001-07-17 Novell, Inc. Generic run-time binding interpreter
US6144731A (en) * 1997-03-12 2000-11-07 Harris Corporation Distributed telephony management
US6446125B1 (en) * 1997-03-28 2002-09-03 Honeywell International Inc. Ripple scheduling for end-to-end global resource management
US5940839A (en) * 1997-04-04 1999-08-17 Hewlett-Packard Company Fault-tolerant system and method of managing transaction failures in hierarchies
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6199055B1 (en) * 1997-11-05 2001-03-06 E-Stamp Corporation System and method for providing fault tolerant transcriptions over an unsecured communication channel
US6732123B1 (en) 1998-02-23 2004-05-04 International Business Machines Corporation Database recovery to any point in time in an online environment utilizing disaster recovery technology
GB2335517A (en) * 1998-03-19 1999-09-22 Ibm Client/server computing system with programmable action by transaction coordinator during prepared state
US6247023B1 (en) * 1998-07-21 2001-06-12 Internationl Business Machines Corp. Method for providing database recovery across multiple nodes
US6295610B1 (en) 1998-09-17 2001-09-25 Oracle Corporation Recovering resources in parallel
US6275832B1 (en) * 1998-09-21 2001-08-14 International Business Machines Corporation Providing transaction undo without logging
US6360231B1 (en) * 1999-02-26 2002-03-19 Hewlett-Packard Company Transactional memory for distributed shared memory multi-processor computer systems
US6502088B1 (en) 1999-07-08 2002-12-31 International Business Machines Corporation Method and system for improved access to non-relational databases
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US6490595B1 (en) 2000-03-30 2002-12-03 International Business Machines Corporation Method, system and program products for providing efficient syncpoint processing of distributed transactions
WO2001080092A2 (en) * 2000-04-13 2001-10-25 Accenture Llp Method for a health care solution framework
US6701345B1 (en) 2000-04-13 2004-03-02 Accenture Llp Providing a notification when a plurality of users are altering similar data in a health care solution environment
US7403901B1 (en) 2000-04-13 2008-07-22 Accenture Llp Error and load summary reporting in a health care solution environment
US6816905B1 (en) * 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
US7401084B1 (en) * 2001-06-14 2008-07-15 Oracle International Corporation Two-phase commit with queryable caches
US8145759B2 (en) 2002-11-04 2012-03-27 Oracle America, Inc. Dynamically configurable resource pool
US7640535B2 (en) * 2003-01-24 2009-12-29 Bea Systems, Inc. Method for transaction processing with parallel execution
US7165061B2 (en) * 2003-01-31 2007-01-16 Sun Microsystems, Inc. Transaction optimization of read-only data sources
US7624112B2 (en) * 2003-04-03 2009-11-24 Oracle International Corporation Asynchronously storing transaction information from memory to a persistent storage
US7610305B2 (en) 2003-04-24 2009-10-27 Sun Microsystems, Inc. Simultaneous global transaction and local transaction management in an application server
US7743083B2 (en) 2003-04-24 2010-06-22 Oracle America, Inc. Common transaction manager interface for local and global transactions
US7739252B2 (en) * 2003-07-14 2010-06-15 Oracle America, Inc. Read/write lock transaction manager freezing
US7640545B2 (en) * 2003-07-14 2009-12-29 Sun Microsytems, Inc. Transaction manager freezing
US8521875B2 (en) * 2003-09-04 2013-08-27 Oracle America, Inc. Identity for data sources
US7418462B2 (en) * 2003-11-24 2008-08-26 Microsoft Corporation Optimized recovery logging
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US8271448B2 (en) * 2005-01-28 2012-09-18 Oracle International Corporation Method for strategizing protocol presumptions in two phase commit coordinator
US8145686B2 (en) * 2005-05-06 2012-03-27 Microsoft Corporation Maintenance of link level consistency between database and file system
US7711678B2 (en) * 2006-11-17 2010-05-04 Microsoft Corporation Software transaction commit order and conflict management
US7860847B2 (en) * 2006-11-17 2010-12-28 Microsoft Corporation Exception ordering in contention management to support speculative sequential semantics
US8024714B2 (en) 2006-11-17 2011-09-20 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8010550B2 (en) * 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US20080250074A1 (en) * 2007-04-04 2008-10-09 Oracle International Corporation Recoverable last resource commit
US8146085B2 (en) 2007-06-25 2012-03-27 Microsoft Corporation Concurrent exception handling using an aggregated exception structure
US7861072B2 (en) * 2007-06-25 2010-12-28 Microsoft Corporation Throwing one selected representative exception among aggregated multiple exceptions of same root cause received from concurrent tasks and discarding the rest
US7890707B2 (en) 2007-06-27 2011-02-15 Microsoft Corporation Efficient retry for transactional memory
US7899999B2 (en) * 2007-06-27 2011-03-01 Microsoft Corporation Handling falsely doomed parents of nested transactions
US7991967B2 (en) * 2007-06-29 2011-08-02 Microsoft Corporation Using type stability to facilitate contention management
US7890472B2 (en) 2007-09-18 2011-02-15 Microsoft Corporation Parallel nested transactions in transactional memory
US9027030B2 (en) 2007-11-29 2015-05-05 Red Hat, Inc. Commit-one-phase distributed transactions with multiple starting participants
US10007547B2 (en) * 2008-01-17 2018-06-26 International Business Machines Corporation Specifying an invocation order of a plurality of resources in a transaction according to resource distance
US8606947B2 (en) 2008-05-27 2013-12-10 International Business Machines Corporation Heuristics processing
US8352421B2 (en) * 2008-05-28 2013-01-08 Red Hat, Inc. Recording distributed transactions using probabalistic data structures
JP5463780B2 (ja) * 2009-07-31 2014-04-09 ブラザー工業株式会社 情報処理装置
US20110178984A1 (en) * 2010-01-18 2011-07-21 Microsoft Corporation Replication protocol for database systems
US8825601B2 (en) * 2010-02-01 2014-09-02 Microsoft Corporation Logical data backup and rollback using incremental capture in a distributed database
US8442962B2 (en) * 2010-12-28 2013-05-14 Sap Ag Distributed transaction management using two-phase commit optimization
US8726082B2 (en) * 2011-09-02 2014-05-13 Verizon Patent And Licensing Inc. Method and system for providing incomplete action monitoring and service for data transactions
US9055065B2 (en) * 2011-11-21 2015-06-09 Red Hat, lnc. Managing participant order in distributed transactions
US9003162B2 (en) 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
US20140214886A1 (en) 2013-01-29 2014-07-31 ParElastic Corporation Adaptive multi-client saas database
US9519591B2 (en) 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US9317379B2 (en) * 2014-01-24 2016-04-19 International Business Machines Corporation Using transactional execution for reliability and recovery of transient failures
US10048983B2 (en) * 2014-04-02 2018-08-14 Red Hat, Inc. Systems and methods for enlisting single phase commit resources in a two phase commit transaction
US9779128B2 (en) * 2014-04-10 2017-10-03 Futurewei Technologies, Inc. System and method for massively parallel processing database
US9514211B2 (en) 2014-07-20 2016-12-06 Microsoft Technology Licensing, Llc High throughput data modifications using blind update operations
US20160147813A1 (en) * 2014-11-25 2016-05-26 Juchang Lee Distributed transaction commit protocol
US11314544B2 (en) * 2015-02-09 2022-04-26 Red Hat, Inc. Transaction log for audit purposes
US9904722B1 (en) 2015-03-13 2018-02-27 Amazon Technologies, Inc. Log-based distributed transaction management
US10235407B1 (en) 2015-08-21 2019-03-19 Amazon Technologies, Inc. Distributed storage system journal forking
US10031935B1 (en) 2015-08-21 2018-07-24 Amazon Technologies, Inc. Customer-requested partitioning of journal-based storage systems
US10324905B1 (en) 2015-08-21 2019-06-18 Amazon Technologies, Inc. Proactive state change acceptability verification in journal-based storage systems
US10108658B1 (en) 2015-08-21 2018-10-23 Amazon Technologies, Inc. Deferred assignments in journal-based storage systems
US10346434B1 (en) 2015-08-21 2019-07-09 Amazon Technologies, Inc. Partitioned data materialization in journal-based storage systems
US9990391B1 (en) 2015-08-21 2018-06-05 Amazon Technologies, Inc. Transactional messages in journal-based storage systems
US10198346B1 (en) 2015-09-28 2019-02-05 Amazon Technologies, Inc. Test framework for applications using journal-based databases
US10331657B1 (en) 2015-09-28 2019-06-25 Amazon Technologies, Inc. Contention analysis for journal-based databases
US10133767B1 (en) 2015-09-28 2018-11-20 Amazon Technologies, Inc. Materialization strategies in journal-based databases
CN112822091B (zh) * 2019-11-18 2023-05-30 北京京东尚科信息技术有限公司 一种消息处理方法和装置
US11436212B2 (en) 2020-09-22 2022-09-06 Snowflake Inc. Concurrent transaction processing in a database system
US11468032B2 (en) * 2020-09-22 2022-10-11 Snowflake Inc. Concurrent transaction processing in a database system
US11630867B2 (en) 2021-08-30 2023-04-18 Kyndryl, Inc. Data exhaust logging
US11514080B1 (en) * 2022-05-31 2022-11-29 Snowflake Inc. Cross domain transactions

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5261089A (en) * 1990-05-16 1993-11-09 International Business Machines Corporation Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary
US5276876A (en) * 1990-05-16 1994-01-04 International Business Machines Corporation Registration of resources for commit procedures

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009520253A (ja) * 2005-12-19 2009-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散型システムにおけるトランザクションのコミットメントのための方法、コンピュータ・プログラム製品、およびシステム
JP2012018449A (ja) * 2010-07-06 2012-01-26 Fujitsu Ltd スナップショット取得処理プログラム、スナップショット取得処理方法、スナップショット・パティシパント・コンピュータ、スナップショット・コーディネータ・コンピュータ

Also Published As

Publication number Publication date
EP0578406B1 (en) 1998-12-16
DE69322549T2 (de) 1999-06-24
DE69322549D1 (de) 1999-01-28
US5335343A (en) 1994-08-02
JP2558052B2 (ja) 1996-11-27
EP0578406A1 (en) 1994-01-12

Similar Documents

Publication Publication Date Title
JPH06168169A (ja) ログフォースなしに仮定コミットを持つ2相コミットプロトコルを使用する分散トランザクション処理
US6247023B1 (en) Method for providing database recovery across multiple nodes
US5835915A (en) Remote duplicate database facility with improved throughput and fault tolerance
CA1187190A (en) Method and apparatus for restarting a computing system
US5740433A (en) Remote duplicate database facility with improved throughput and fault tolerance
Mohan et al. Efficient commit protocols for the tree of processes model of distributed transactions
US5794252A (en) Remote duplicate database facility featuring safe master audit trail (safeMAT) checkpointing
US5802062A (en) Preventing conflicts in distributed systems
US5724581A (en) Data base management system for recovering from an abnormal condition
Davcev et al. Consistency and Recovery Control for Replicated Files.
US5870761A (en) Parallel queue propagation
Stonebraker Concurrency control and consistency of multiple copies of data in distributed INGRES
US6615223B1 (en) Method and system for data replication
US5065311A (en) Distributed data base system of composite subsystem type, and method fault recovery for the system
US6553392B1 (en) System and method for purging database update image files after completion of associated transactions
Sarin et al. Discarding obsolete information in a replicated database system
US6594676B1 (en) System and method for recovery of multiple shared database data sets using multiple change accumulation data sets as inputs
US20020049776A1 (en) System and method for reconciling transactions between a replication system and a recovered database
JPH09251412A (ja) 分散データベーストランザクションのコミットメント方法
US20230110826A1 (en) Log execution method and apparatus, computer device and storage medium
EP0839350A1 (en) Optimized synchronisation procedure
Jia et al. Highly concurrent directory management in the Galaxy distributed system
EP0724223B1 (en) Remote duplicate database facility with database replication support for online line DDL operations
US7051051B1 (en) Recovering from failed operations in a database system
Little et al. Object replication in Arjuna