JPH05197604A - マルチプロセッサ・コンピュータ及びその動作方法 - Google Patents

マルチプロセッサ・コンピュータ及びその動作方法

Info

Publication number
JPH05197604A
JPH05197604A JP4128892A JP12889292A JPH05197604A JP H05197604 A JPH05197604 A JP H05197604A JP 4128892 A JP4128892 A JP 4128892A JP 12889292 A JP12889292 A JP 12889292A JP H05197604 A JPH05197604 A JP H05197604A
Authority
JP
Japan
Prior art keywords
transaction
transactions
commitment
order
operations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP4128892A
Other languages
English (en)
Inventor
Yoav Raz
ラズ ヨーブ
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 JPH05197604A publication Critical patent/JPH05197604A/ja
Pending 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

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

Abstract

(57)【要約】 【目的】 分散トランザクションを横切る直列化可能性
が保証される。 【構成】 a)トランザクションの結果の準備を始めるス
テップと、b)前記トランザクションの一つが前記トラン
ザクションの他の一つ内の第2動作と矛盾する第1動作
を有し、前記矛盾する動作が実行の順序を有し、前記コ
ミットメント順序が実行の前記順序と同じである場合
に、前記トランザクションに対するコミットメント順序
を設定するステップと、c)前記トランザクションの選択
された一つの結果を準備された前記コンピューティング
システムのメモリ状態をコミットするステップと、d)コ
ミットメントが前記コミットメントオーダ及び前記トラ
ンザクションの選択された一つのコミットすることと反
対である前記トランザクションのアボートセットをアボ
ートするステップと、を具えていることを特徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般に分散したコン
ピュータの使用方法に関し、とくにトランザクション・
プロセッシング・システムで、関連のトランザクション
の各コンポネント・オペレーションが分散していて、コ
ンフリクトするオペレーションを有している第1のトラ
ンザクションの前に第2のトランザクション内の少くと
も1つのオペレーションを遂行するシステムに関するも
のである。さらに本発明はとくに、利用可能なリゾース
によるコンフリクトするオペレーションの遂行の予定順
番(スケジュール)付けを行い、コンフリクトのあるオ
ペレーションの結果は、コンフリクト・オペレーション
の遂行の順序と同じ順序でコミットされることを確実に
する方法および装置に関する。
【0002】
【従来の技術】コンピュータ・システムに望まれる特徴
は、メモリ書込み動作(オペレーション)を阻害するよ
うな部分的なシステム故障(フエイリューア)があった
とき、これより回復させる能力または可能性である。応
用(アプリケーション)プログラムが、システム故障時
に、メモリ書込み動作を有していると、メモリ記録が誤
ったものとなる可能性が極めて大である。部分的システ
ム故障の後にメモリ記録を回復させうるためには、不揮
発性メモリ内に記録のバックアップ・コピーを保存して
おく必要がある。コンピュータ方式を再起動させるため
には、回復すべきメモリ記録をバックアップ・コピーと
入れ換える。
【0003】バックアップ・コピーを作成し、メモリ記
録を回復しうるようにするため、典型的なオペレーティ
ング・システムは、メモリ・マネージメント・プロセデ
ュアの完成セットを備えておき、“リカバリ・ユニッ
ト”を規定するため、応用プログラムよりこれにインボ
ーク(訴え)または、これを呼出し可能としておく。こ
のリカバリ・ユニットは、“スタート(起動)”状態よ
り“コミット(委託)”状態(ステートメント)の間の
プログラム・ステートメントより成る。“リカバリ・ユ
ニット”内のすべてのステートメントは、次のプロセス
でこのリカバリ・ユニット内のステートメントで変化さ
せたメモリ記録が利用可能となる前に完結させなければ
ならない。“スタート”ステートメントは、不揮発性
(ノン・ボラタイル)メモリ内へのバックアップ・コピ
ーの作成に対応し、“コミット”ステートメントは、変
更された記録を有するバックアップ・コピーへのスイッ
チに対応する。“リカバリ・ユニット”内のステートメ
ントは、単一のトランザクション内のオペレーションを
規定する。部分的システム・エラーよりの回復に当り、
不揮発性メモリを点検すると、単一“トランザクショ
ン”内のオペレーションがすべて完了しているか、ある
いはこれらすべてが完了していないかの何れかが発見さ
れる。
【0004】分散コンピュータ・システムにおいては、
単一トランザクション内のオペレーションは、異なるデ
ータ・ベース内のファイルを変更することがあり、これ
らのファイルは他のプロセスにも共用される。トランザ
クションの完了時にはファイルは一致するがトランザク
ションの動作中は、ファイルはある時間不一致となるこ
とがある。この典型的な1例は、1つのアカウント(勘
定)より他へファンド(金額)を転送する場合である。
この場合、第1アカウントをデビット(請求)し、これ
より僅か遅い時間に他のアカウントをクレディット(支
払)する。この中間においては、両方のアカウントは不
一致となる。これは2つのアカウントのそれぞれは、2
つのアカウントの合計のファンド(金額)を表すもので
ないからである。トランザクションによって、これらの
ファイルが変更される間のこれらのファイルの不一致の
ため、変更が完了する迄は、他のプロセスはこれらのフ
ァイルにアクセスできないようにしてあることは既知で
ある。この例では、同時にかつ同じ場所で、両ファイル
に対しコミットを行うことによって回復可能性(リカバ
リティ)が確保される。例えば1つのフラッグを変更す
ることによって、ファイルの変更バージョンと同時に各
ファイルのバックアップ・コピーを変換することもでき
る。しかし多くの場合、あるトランザクション内のオペ
レーションを、多数のプロセッサに複式に、あるいは1
つのコンピュータ・システム内の複数のプロセッサに分
散させ、各プロセスまたは各プロセッサ内のオペレーシ
ョンにコミットして1つのトランザクションをコミット
し、コミットメントの時間の間にある程度の変動性を許
容することが望ましい。このような場合、回復可能性を
確保するため、一般に“アトミック・コミットメント・
プロトコル”が用いられている。このプロトコルは、プ
ロセッサ間又はプロセス間でトランザクションの状態に
関する情報を交換する必要がある。遂行しているトラン
ザクションを識別するため、各トランザクションには特
定の個別の“トランザクション識別番号(ID)”を割
当てる。
【0005】広範に用いられている“アトミック・コミ
ットメント・プロトコル”は“2相コミット・プロトコ
ル”として既知である。このプロトコルの或程度基本的
な例は、コンピュータ・システム内の1つのプロセッサ
又はプロセスにトランザクションを開始するコォーディ
ネータの役目を割当てることである。トランザクション
を開始するには、このコーディネータは当該トランザク
ションの実行に関するすべてのプロセッサまたはプロセ
スにプリペア(準備)コマンドを送出する。
【0006】あるトランザクションを行う各プロセッサ
またはプロセスは、“プリペア”コマンドを受信する
と、このトランザクションによってアクセスされたメモ
リに第1に“ライト・ロック(書込みロック)”を入力
して“スタート”オペレーションを行い、パーマネント
・メモリにトランザクション識別番号を書込み、トラン
ザクションの準備ができたことを記憶させ、次でアクノ
ーレッジメントをコーディネータ・プロセッサに返送す
る。しかしトランザクションの当該部分は未だ遂行しな
い。コーディネータは全パーティシパント(参加者)よ
りのアクノーレッジメントを待つ。コーディネータがす
べてのパーティシパントよりのアクノーレッジメントを
受信すると、パーマネント・メモリ内に、パーティシパ
ント・リストを記録し、トランザクションが完了したこ
との記号を記録し、次でコーディネータはすべてのパー
ティシパントに“コミット”コマンドを送出する。しか
しコーディネータは、トランザクションに対する準備が
できないということを示すメッセージをパーティシパン
トより受信したり、コーディネータが場合により“プリ
ペア(準備)”コマンドを再送した後も、所定時間後に
すべてのパーティシパントよりのアクノーレッジメント
を受信できなかったりすることもありうる。このような
場合、コーディネータは“アボート(流産)”コマンド
をすべてのパーティシパントに送出する。
【0007】各パーティシパントは“コミット”コマン
ドを受信すると、それぞれのパーマネント・メモリをチ
ェックしてトランザクション識別番号を検索して、それ
ぞれのパーティシパントがトランザクションの準備がで
きているか否かをチェックする。準備ができている場合
にはそのトランザクションの一部を遂行し、次で“コミ
ット”オペレーションを遂行してパーマネント・メモリ
の状態をアップデートし、1つの“アトミック”ステッ
プ内のパーマネント・メモリよりトランザクションID
をクリヤし、書込ロックを消去する。次でパーティシパ
ントは、コーディネータにアクノーレッジメントを返送
する。コーディネータがすべてのパーティシパントより
アクノーレッジメントを受信すると、パーマネント・メ
モリよりパーティシパントのリストを消去し、トランザ
クションは完結する。
【0008】多くの分散コンピュータ・システムにおい
て、プロセッサまたはプロセスはそれぞれ同時に複数の
トランザクションを遂行することを許容されている。通
常の場合、各プロセッサまたはプロセスは当該プロセッ
サまたはプロセスにとってローカル(局部的)なトラン
ザクションを遂行し、かつグローバルなトランザクショ
ンの一部分を遂行する。分散(ディストリビューテッ
ド)データ・ベース・システムにおいては、例えば、ロ
ーカル・データ・ベース質問及び編集(エディット)は
ローカルに生じ、変更のあるものはグローバルに行われ
る。上述の2相コミット・プロトコルは、このようなシ
ステムにおいて、グローバル・トランザクションがロー
カル・トランザクションに対し高優先度(プライオリテ
ィ)を与えられている限り満足に動作し、任務を遂行す
る。しかし読出し及び書込みロックの使用は、同時にプ
ロセスし得べきローカル・トランザクションを不必要に
制限することがある。
【0009】さらに、分散コンピュータ・システムで
は、複数のプロセッサまたはプロセスを通じて、同時に
グローバル・トランザクションをプロセスすることが望
まれる場合には付加的な複雑さが導入される。1つのプ
ロセッサまたはプロセスに対し、他のすべてのプロセッ
サまたはプロセス内のコンフリクトのすべてのグローバ
ル・ピクチュアを眺めさせることは非現実的で、実用的
でない。しかしながらグローバルなピクチュア(図式)
なしには、プロセッサまたはプロセスにとって、その直
列可能性の順番と他のプロセッサまたはプロセスの直列
可能性の順番の間の相関(コリレーション)を確保する
ことは困難である。この同時制御の問題に関し、トラン
ザクション・リクエストとデータ・アップデートのタイ
ム・スタンピングは、この同時制御の問題の対策として
使用された方法の1つである。分散コンピュータ・シス
テムにおける同時制御は、これまではローカルのプロセ
ッサまたはプロセスの自主性あるいは自律性を犠牲にし
たり、あるいはロッキングを用いて行ってきたのが一般
である。
【0010】グローバル・デッドロックの問題もまた、
グローバル・トランザクションが並行的に実行されると
きにはいつも、アドレスされなければならない。その1
つの既知の解は、並行的グローバル・トランザクション
要請を発出するかどうかを決定するグローバル・トラン
ザクション管理者を設けることである。その一例が、米
国ニュージャージー州アトランティック・シティで1990
年6月に行われた学会の予稿集 "Proc. of the ACM SIG
MOD conf. on Management of Data"の第 215−224 頁に
掲載された Y.Breitbart他による "Reliable Transacti
on Managementin a Multidatabase System"という文献
に記載されている。グローバル・スケジューラーは、グ
ローバル・ロック・メカニズムを用いることによりデー
タ項目のローカル・ロックのためのグローバル・トラン
ザクション要請のトラックを保持している。各グローバ
ル・データ項目はそれに付随するグローバル・ロックを
持っている。データ項目を読み出すことのみを要するグ
ローバル・トランザクションは、グローバル読み出しロ
ックを要請する。ロックは、同じデータ項目についての
2つの異なるトランザクションによりそれらが要請さ
れ、要請されたロックの少なくとも1つが書き込みロッ
クであるならば、コンフリクティングである。2つのグ
ローバル・トランザクションがコンフリクティングなグ
ローバル・ロックを要請するならば、スケジューラー
は、2つのトランザクションがローカルサイトでコンフ
リクトを起こすことを知っているのだから、トランザク
ションの1つの進行を制止する。スケジューラーは、グ
ローバル・ロックをグローバル・トランザクションに割
り当てるために、ストリクトな2フェーズ・ロッキング
を使用し、グローバルな「グラフを待機」を維持する。
「グローバルなグラフを待機」は有向グラフ G=(V,E)
であって、その頂点Vの集合はグローバル・トランザク
ションの集合であり、エッジTi →Tj は、グローバル
・トランザクションT i がグローバル・トランザクショ
ンTj に割り当てられたグローバル・ロックを待ってい
るならば、そしてその時に限り、Eに属する。グローバ
ル・トランザクションがグローバル・ロックを待ってい
るならば、トランザクションの状態は「ブロックされ
た」状態となり、トランザクションは「グローバルなグ
ラフを待機」に含まれる。トランザクションは、それが
待っていたグローバル・ロックを得ることができた後に
のみ、再び能動となる。グローバル・デッドロックを避
けるために、「グローバルなグラフを待機」は常に非巡
回的にされている。失敗の存在する時にもデータの一貫
性が確保されるように、スケジューラーは、何時コミッ
ト演算をスケジューラルするかを決定するため「コミッ
ト・グラフ」及び「コミット待機グラフ」も使用する。
コミット・グラフCG=<TS,E>は無向2部グラフで、そ
のノードの集合TSはグローバル・トランザクションの集
合(トランザクション・ノード)とローカルサイトの集
合(サイト・ノード)とから成る。Eからのエッジはト
ランザクション・ノードのみをサイト・ノードに接続す
る。エッジ(Ti ,Sj )は、トランザクションTi
サイトSj でのみ実行されたものであり且つTi に対す
るコミット演算が処理のためにスケジュールされた時及
びその時に限り、E中にある。Ti に対するコミット演
算が完了した後に、Ti に付随するすべてのエッジに沿
ってTi はコミット・グラフから除去される。コミット
・グラフがいかなるループも含まないならば、グローバ
ル・データベースの並行性は保証される。コミット待機
グラフは有向グラフ G=(V,E) であって、そのその頂点
Vの集合はグローバル・トランザクションの集合から成
る。エッジT i →Tj は、Ti がその実行を終了したが
そのコミット演算はまだ継続中で且つTj はそのコミッ
ト演算がTi のコミットのスケジュールされ得る前に完
了又はアボートされるべきトランザクションであれば、
そしてその時に限り、E中にある。スケジューラーは、
コミット待機グラフを構成するために次のアルゴリズム
を用い、スケジューリングではトランザクションTi
コミット演算を用いる: 1.その中でTi が実行している各サイトSk に対し
て、エッジTi →Sk を暫定的にコミット・グラフに加
算する。 2.増大したコミット・グラフがサイクルを含まないな
らば、グローバル・コミット演算が処理のために提起さ
れ、暫定的エッジが恒久的になる。 3.増大したコミット・グラフがサイクルを含むなら
ば、 a) エッジTi →Ti1,…,Ti →Timがコミット待機
グラフ中に挿入される。集合{Ti1,Ti2,…,Tim
は、コミット・グラフに新しいエッジを加算した結果と
して造り出されたサイクル中に現れるすべてのトランザ
クションから成る。 b) 暫定エッジをコミット・グラフから除去する。しか
し、トランザクションTi は必ずしもTi →Tikのよう
な各トランザクションTikの完了を待つに及ばない。そ
れは、Ti →Til(0<l<r)のようないくつかのトラン
ザクションTikがコミットに成功した後にコミット演算
のためにスケジュールされる準備が完了すればよい、
(そして場合によっては、唯一つのそのようなトランザ
クションの成功したコミットが、トランザクションのコ
ミットをスケジュールするのに十分であろう)。
【0011】
【実施例】本発明の一層詳細な理解は、実例によって与
えられる好適な態様の以下の説明から得られるであろう
し、添付の図面と一緒に理解されるであろう。
【0012】本発明は種々の変形及び代わりの形態に影
響され易いけれども、その特定の態様が図面に実例によ
って示されており、ここに詳細に説明されるであろう。
しかしながら、開示された特定の形態に本発明を制限す
るように意図されたのではなく、それどころか、その意
図は添付の特許請求の範囲により定義されたような本発
明の精神と範囲との中の相当する全ての変形と等価物及
び代替物を覆うことである。
【0013】図1によって、トランザクション処理のた
めに形造られたディジタルコンピュータ20の一般的に設
計されたブロック線図が示されている。このディジタル
コンピュータ20はプログラムされた命令を実行するため
の中央処理ユニット21;命令又はデータを保持するため
の揮発性のランダムアクセスメモリ22;ハードディスク
駆動のような不揮発性のメモリ23、入出力ユニット24、
及びリアルタイムクロック25を含んでいる。その不揮発
性のメモリ23は中にプログラムが記憶されるプログラム
メモリ26、及びデータ記録を記憶するためのスクラッチ
メモリ(作業用記憶装置)領域27を含んでいる。
【0014】典型的には、このディジタルコンピュータ
20は、プログラムメモリ26から揮発性のランダムアクセ
スメモリ22へ転送されたプログラムを実行する。プログ
ラムの実行の間に、揮発性ランダムアクセスメモリ22の
容量を超過するデータの量について動作することがしば
しば必要である。この場合には、データ記録が代わりに
スクラッチメモリ領域27から記憶されかつ回復される。
【0015】ディジタルコンピュータ20に関する共通の
問題は、中央処理ユニットによる命令の実行がハードウ
エアの故障、ソフトウエアの誤り又は電源故障による途
絶となることが予想されることである。例えば、電源故
障は揮発性ランダムアクセスメモリ22内に記憶されたデ
ータとプログラムとの喪失を起こし得る。電源故障によ
る揮発性ランダムアクセスメモリ22内のデータの喪失の
問題は、不揮発性のメモリ23内にデータのバックアップ
コピーを記憶することにより解決され得る。しかしなが
ら、このバックアップコピーは不揮発性のメモリ23への
書込動作中の故障の可能性を考慮したような方法でなさ
れなくてはならない。この場合に書込動作により影響さ
れるデータ記録は悪化され得るので捨てられねばならな
い。
【0016】不揮発性のメモリへ書き込む場合に起こり
得る故障の問題を取り扱うために、不揮発性のメモリの
部分(今後「状態メモリ」又は「ステートメモリ」と呼
ぶ)が、故障の存在の際に、トランザクションにより影
響されないか又はトランザクションの結果により正確に
更新されることを保証する「トランザクション処理」と
呼ばれるプログラミングの方法を確立されている。トラ
ンザクション処理は、トランザクションの結果が状態メ
モリへ書き込まれる前に、状態メモリのバックアップコ
ピーを作り、且つまた、故障の間にどのコピーが悪化さ
れてしまうかを指示するために、不揮発性メモリ内にバ
ックアップコピーがなされる第1処理位相か、又はトラ
ンザクションの結果が状態メモリへ書き込まれる第2処
理位相かのいずれかの指示を不揮発性メモリ内に書き込
む技術に基づいている。例えば、状態メモリのバックア
ップコピーを作るために、不揮発性のメモリ23は二つの
状態メモリのバンク28と29とを含んでいる。故障により
どの状態メモリのバンクが悪化されてしまうかの指示を
与えるために、不揮発性のメモリ23はスイッチ又はフラ
グ記憶用メモリ位置30を含んでいる。
【0017】故障からの回復に際しては、処理がトラン
ザクションを反復又はスキップすることなく、中断され
た点から再開され得るように、中央処理ユニット21によ
り最後に実行されたトランザクションを知ることが望ま
しい。この目的のために、メモリバンク28又は29のいず
れか内の状態メモリが更新された時にはいつでも、トラ
ンザクションの結果が状態メモリへ最初に書き込まれた
(すなわちコミットされた)コミット時33, 34と一緒に
状態メモリ内へ書き込まれる。
【0018】図2Aによって、故障からの回復に際して、
図1に示したコンピュータ20の状態メモリがトランザク
ションにより影響されないか又はトランザクションの結
果により正しく更新されることを保証するための手順の
フローチャートが示されている。例えば、コンピュータ
システムが電源故障の後にターンオン(POWER 0N)されと
想定しよう。最初のステップ51において、中央処理ユニ
ット21は不揮発性のメモリ23内に記憶されたスイッチの
値30を読み取る。このスイッチが、二つの状態メモリの
バンク28, 29のうちのどちらが電源故障によりことによ
っては悪化されてしまったかを指示する。ステップ52に
おいて、中央処理ユニット21が悪化されてしまわなかっ
たとわかっている状態メモリのバンクを読み取るため、
及び状態メモリの他方のバンク内のデータの「ワーキン
グコピー」を作るためにそのスイッチの値を参照する。
それ故に、ステップ52の後では、状態メモリのバンク28
とバンク29との両方が同じ内容を有している。更にその
上、トランザクション識別コード31, 32とコミット時3
3, 34とが処理されるべき次のトランザクションのプロ
グラムにおける位置を見出すために検査され得る。
【0019】ステップ53においては、処理されているト
ランザクションの書込の結果により状態メモリのワーキ
ングコピー内のデータを変形することにより、その処理
が継続される。そのトランザクションの処理の終末は、
ステップ54において到達される。状態メモリへのトラン
ザクションの結果をコミットするために、ステップの値
がステップ55において変えられ、且つステップ56におい
てそのステップの変えられた値が不揮発性のメモリのス
イッチ記憶位置30内へ書き込まれる。故障からの回復の
間に中央処理ユニット21により見た場合には、不揮発性
のメモリ内へのスイッチの変えられた値の書込は、スイ
ッチの値が不揮発性のメモリ内へ書き込まれてしまう前
又は後のいずれかに依存して、トランザクションのコミ
ットされた結果が状態メモリ上に影響しないか、又は状
態メモリを正しく更新する。スイッチ30の値は単一ビッ
トであり且つスイッチ30は状態メモリのバンクの記録と
異なる記録内に記憶されるので、この単一ビットの書込
の間に起こるあらゆる故障は取るに足らないものであ
り、この場合には、状態メモリのバンクのいずれもが悪
化されず、それでスイッチの値は無関係である。
【0020】トランザクションの結果が状態メモリの小
さい部分のみを変形する場合には、図2Aに図解したよう
なトランザクションの結果をコミットする方法はむしろ
非能率である。この場合には、ステップ52が変形されな
かったデータ記録を不必要にコピーする多大の時間を消
費する。この不必要なコピーは図2Bの幾らかもっと複雑
な手順により除去することができる。
【0021】図2Bの開始(POWER ON)の後の最初のステッ
プ61において、スイッチが不揮発性のメモリから読み取
られる。次に、ステップ62において、中央処理ユニット
が、スイッチが設定されているかどうかをチェックす
る。スイッチが設定されている場合には、以下に更に説
明するように、トランザクションの結果が状態メモリへ
コミットされていた処理位相の間に故障が起こった。そ
れ故に、ステップ63において状態メモリバンク29内に蓄
えられた記録が状態メモリバンク28へコピーされる。そ
れから、ステップ64において、不揮発性のメモリ内のス
イッチが消去される。
【0022】トランザクションを処理するために、ステ
ップ65において、データ記録が状態メモリバンク28から
読み取られ、スクラッチメモリ領域27内へ転送される。
それからステップ66においてスクラッチメモリ内の記録
がトランザクションの結果に従って変形される。ステッ
プ67において見出されるように、このトランザクション
が完了した場合には、それからステップ68において、変
形されるべき記録の元のデータが、状態メモリバンク28
から状態メモリバンク29へコピーされる。それからステ
ップ69においてスイッチが不揮発性のメモリ内に設定さ
れる。それからステップ70においてトランザクションの
結果が変形されたデータを状態メモリバンク28内へ書き
込むことによりコミットされる。最後に、ステップ64に
おいて、このスイッチが不揮発性のメモリ内で消去され
る。次のトランザクションの処理がステップ65において
始まる。
【0023】図2A又は2Bに関して上述したように、図1
内のコンピュータ20の中央処理ユニット21により、トラ
ンザクションが順番に処理されることが想定される。し
かしながら、本発明は、第1のトランザクションの結果
がコミットされる前に、第2のトランザクションに対す
る結果が準備され得るような方法で分散されるようなト
ランザクションの処理を許容する。図5を参照して、以
下に更に説明するように、本発明は、リアルタイムオペ
レーティングシステムを組み込んだトランザクションス
ケジューラの使用、又は入出力またはメモリアクセス動
作の完了のために中央処理ユニットがさもなければ待っ
ている時間の間使用中の中央処理ユニットをもっと効果
的に維持するためのスケジューラの使用を許容する。し
かしながら、第1のトランザクションがコミットし終わ
る前に、コンポーネント動作を実行するために第2のト
ランザクションを許容することにより、動作のスケジュ
ーリングとトランザクションのコミットメントとが一定
のコミットメント・オーダリングを適合させなければ、
第1のトランザクションの結果が矛盾する問題を導入す
る。特に、トランザクションはそれぞれの矛盾する(す
なわち変換しない)動作が実行される順序と同じ順序で
コミットされなければならない。
【0024】コンポーネント動作とトランザクションの
コミットメントとのスケジューリングが、「コミットメ
ント・オーダリング」のこの特徴を有する場合には、
(図4Bと一緒に更に以下に説明する)分散処理システム
において、「自動コミットメント」のみがそのシステム
内の種々のプロセッサを同等にするために用いられる場
合に、広域的な直列化可能性が保証される。これは多少
精巧な数学的証明により論証され、その数学的証明は本
明細書に添付されている。実際的な観点から、この結果
は、広域的なスケジューラ又はシステムによって広域的
なトランザクションを分散するためのプロトコルの変形
なしに、各トランザクションプロセッサ又はシステム内
の節を変形することにより、本発明の利点が慣習的な分
散トランザクション処理システムへ適用することができ
ることを意味している。
【0025】慣習的なトランザクション処理システム
は、第1のトランザクションがコミットされた後にの
み、第2のトランザクションが第1のトランザクション
の書込データを読み取りできることを保証する。これは
回復性を保証するために十分条件ではあるが必要条件で
はない。本発明の第1実施例においては、この条件は、
必要な不揮発性のメモリの量を最小化するため、及び回
復性を達成するために「カスケーディング・アボート」
として知られているものを回避するためにも維持され得
る。この第1の実施例においては、図2Bに示したように
トランザクションが本質的に処理されて、そこでは読取
動作が状態メモリのバンク28から記録を読み取り、それ
らを図2Bのステップ65に示したようにスクラッチメモリ
へ転送する。書込動作は図2Bのステップ66に示したよう
にメモリ内の記録を変形することにより準備されるが、
しかしたとえ異なるトランザクションの書込動作が状態
メモリ内の同じ記録を参照するとしても、各トランザク
ションの結果はスクラッチメモリ内の個別の記録内に維
持される。そのような矛盾する書込動作が状態メモリ上
に有すると言う結果が、トランザクションがコミットさ
れる順序により決定されるから、これがなされる。
【0026】図3A(ケース1:T2 はT1 がコミットさ
れた後にのみT1 の書込データを読み取り得る場合)は
書込動作を有する第1トランザクションと、矛盾する読
取動作を有する第2トランザクションとのスケジューリ
ングに対する、三つの異なる可能性を示している。一般
に、二つの動作が状態メモリ内の同じ位置をアクセスす
るメモリアクセス動作であり、その動作の少なくとも一
方が書込動作である場合に、二つの動作は矛盾してい
る。検査によって、可能性(B) がコミットメント・オー
ダリングの要求を犯し且つそれ故に状態メモリ内の状態
に矛盾を生じる三つのスケジューリングの可能性がわか
る。書込動作Wx は読取動作Rx を交換しないと言う事
実によって、スケジューリングの可能性(B) のためのト
ランザクションT2 に対する結果はスケジューリングの
可能性(A) のためのトランザクションT2 とは異なり得
る。首尾一貫した結果を得るために、本発明は中央処理
ユニットに利用できる最も有効な使用手段に対して選択
された順序でスケジュールされるべき二つのトランザク
ションの矛盾する動作を許容するが、矛盾する動作が実
行される順序と同じコミットメント順序を強制すること
により首尾一貫性を保証する。選択されたトランザクシ
ョンがコミットされる場合に、矛盾するトランザクショ
ンをアボートすることにより、又は矛盾するトランザク
ションがコミットされる後まで選択されたトランザクシ
ョンのコミットメントを遅らせることにより、図3Aにお
ける可能性(B) のような、矛盾したスケジューリングの
可能性は防止される。
【0027】例えば、図3Aの例において、スケジュール
された第1動作が、可能性(B) 及び(C) に示したよう
に、第2トランザクションT2 の読取動作R2 であると
仮定しよう。このトランザクションT2 が可能性(C) に
示したようにトランザクションT1 の前にコミットされ
る場合には、スケジューリングはコミットメント・オー
ダリングと一致しているので、矛盾は生じない。しかし
ながら、第1トランザクションT1 が可能性(B) に示し
たように第2トランザクションT2 の前にコミットされ
る場合には、第2トランザクションT2 の別のコミット
メントがコミットメント・オーダリングを犯し、且つ矛
盾した結果へ導き得るので、第2トランザクションT2
はアボートされねばならない。
【0028】本発明は更に、第1トランザクションT1
がコミットされる前に、第2トランザクションT2 が第
1トランザクションT1 の書込データを読み取り得るよ
うな動作のスケジューリングを許容する。この場合に
は、図12及び図13を参照して以下に更に説明するよう
に、回復性がカスケーディング・アボートの処理により
保証され得る。書込動作Wx 第1トランザクションT1
と、矛盾する読み込み動作Rx を有する第2トランザク
ションT2 との場合に対して、(A) 〜(F) として図3B
(ケース2:T2 はT1 がコミットされる前にT1 の書
込データを読み取り得る場合)に示した、6つのスケジ
ューリングの可能性が存在する。これらのスケジューリ
ングの可能性のうちの2つ(B) と(D) とは、コミットメ
ント・オーダリングを犯し、且つそれ故に矛盾した結果
へ導き得る。本発明は矛盾する動作が実行され且つそれ
から選択されたトランザクションのコミットメントを遅
らせ、又はコミットメント・オーダリングを強制するこ
とが必要な場合には、矛盾する動作をアボートする順序
を決定することにより、これらのスケジューリングの可
能性の発生を防止する。第1トランザクションでの書込
動作の書込データを読み取るための第2トランザクショ
ンでの読取動作を許容するために、例えば、図1のディ
ジタルコンピュータ20は、スクラッチメモリ領域27内に
状態メモリの作業コピーを維持する。書込動作が実行さ
れる時はいつでも、書込動作の結果がスクラッチメモリ
領域内の状態メモリの作業コピーへ書き込まれ、且つま
た書き込まれた記録の個別のコピーが各トランザクショ
ンと関連するスクラッチメモリ内に維持される。トラン
ザクションがコミットされる場合、その時のみが状態メ
モリ内へ書き込まれたトランザクションの書込動作の結
果である。ケース2の実施例では、読取動作がケース1
におけるように状態メモリの代わりに、スクラッチメモ
リ内の状態メモリの作業コピーを参照するので、ケース
2においては読取動作は先の書込動作の書込データを読
み取る。
【0029】さて、図4Aによると、トランザクションを
スケジュールし且つコミットメント・オーダリングを強
制するための、図1のディジタルコンピュータ20に使用
される、プログラミングと、データ構造とのブロック線
図が示されている。状態メモリへのトランザクションの
結果をコミットするため、及び故障から回復するため
に、このディジタルコンピュータは、例えば、図2Bに示
した動作を実行するリソースマネージャ(RM;資源管理
プログラム)を設けられている。一般に、リソースマネ
ージャ(RM)は、トランザクションにより導入される全
部の変化を有効に解除することによって、トランザクシ
ョンがコミットされる前に、資源のメモリ状態が回復さ
れ得るような方法でトランザクションをコミットするこ
とにより、影響される状態メモリ資源を処理するソフト
ウエア・コンポーネントである。言い換えれば、トラン
ザクションは、「最小単位(atomicity)」の特性、又は
トランザクションの状態メモリ資源への「オール・オア
・ナッシング(all or noth-ing)」セマンティクス(意
味)を有することを、このリソースマネージャが確実に
する。資源は典型的に、しかし必然的ではなくデータ項
目又はデータ対象である。リソースマネージャの例はデ
ータ・ベース・システム(DSB's) 、リスト・マネージ
ャ、及びキャッシュ・マネージャ内に典型的に見出され
る。
【0030】コンピュータの利用できる資源に基づく最
も有効な順序でトランザクションのコンポーネント動作
をスケジュールするために、トランザクション・スケジ
ューラ(TS)82を設けられている。好適には、このトラン
ザクション・スケジューラ82は、図5を参照して以下に
更に説明されるようなトランザクション・リスト(TL)83
を取り扱う、ある種のリアルタイム・オペレーティング
・システムを含んでいる。好適には矛盾する動作の存在
は、図11を参照して以下に更に説明されるように、トラ
ンザクションが実行される場合にリアルタイムで検出さ
れる。コミットメント・オーダリングに従って、矛盾す
る動作が実行される順序がトランザクションのコミット
メントの必要な順序を決定し、且つこのコミットメント
の必要な順序がメモリ内のデータ構造であり、且つ図7
及び図8を参照して以下に更に説明される、未決定のト
ランザクション直列化可能性グラフ(USG) 84内に記録さ
れる。(「未決定の」トランザクションは、依然として
コミットされるか又はアボートされるトランザクション
である。)コミットメント・オーダーを強制するため
に、トランザクションがコミットメントに対して選択さ
れ、トランザクションが、図10及び図15を参照して以下
に更に説明されるコミットメント・オーダ・コーディネ
ータ(COCO)85により選択的にアボートされる。
【0031】本発明はスケジューリング・コンポーネン
ト動作により複数のトランザクションが同時に実行され
る単一の処理システム内、又は同じトランザクションが
異なるプロセッサ内で同時に実行される多重プロセッサ
内に使用することができる。多重プロセッサシステム90
が図4Bに図解されている。この場合には3っつのディジ
タルコンピュータ91, 92, 93が通信チャネル94を通って
相互接続されており、その通信はトランザクション・ス
ケジューラ(TS)95, 96, 97により制御される。この多重
プロセッサシステム90では、トランザクション・スケジ
ューラ95, 96及び97の何れの一つでもコーディネータの
役割を装うことができ、且つ他のトランザクション・ス
ケジューラに対して広域的なトランザクションを発する
ことができる。これらの広域的なトランザクションは、
背景技術を参照して上述してきたように、且つ図14, 15
及び16を参照して以下に更に説明するように、例えば周
知の2位相コミット・プロトコルに従って整合される。
【0032】トランザクション・スケジューラは通信チ
ャネル94を越えて状態情報を交換してもよい。特に、ト
ランザクション処理システムは一般に、状態メモリ情報
がディジタルコンピュータ91, 92, 93の特定の一つの不
揮発性のメモリファイル内に専属であるかどうか、又は
状態情報が一方のコンピュータから他方のコンピュータ
へ動かされ得る、前もって定義された目的を伴っている
かどうかに依存して、データベース処理システム及び目
的向きシステムと呼ばれる二つの広いカテゴリ内にあ
る。しかしながら、本発明はトランザクションとコミッ
トメント・オーダリングにおけるコンポーネント動作の
スケジューリングともっと詳細に関係があり、且つメモ
リが分散処理システム内に物理的に置かれあるいは維持
されている部分と特に関係していないので、本発明は両
方の種類のシステムに適用することができる。
【0033】図5によると、このディジタルコンピュー
タの利用できる資源に従って、トランザクションのコン
ポーネント動作のリアルタイム・スケジューリングのた
め、トランザクション・スケジューラにより追従される
手順のフローチャートが示されている。特に、そのトラ
ンザクションは入出力とディスク駆動のような回転する
メモリのメモリ・アクセス、及びひょっとして双対プロ
セッサにより実行される機械的計算を含んでいる。リア
ルタイム・スケジューリングなしには、このディジタル
コンピュータの中央処理ユニットは、その他のトランザ
クションのコンポーネント動作を実行する前に完成され
るべきそれらの動作に対して、多大の待ち時間を費やさ
ねばならぬであろう。
【0034】ディジタルコンピュータの資源のもっと有
効な使用のために、トランザクションはこのコンピュー
タの入出力とメモリ・ユニットへの入出力とメモリアク
セス要求をディスパッチしてもよく、それから現在のト
ランザクションの処理は入出力又はメモリアクセス動作
の完了まで禁止されるべきであると言う禁止フラグを設
定し、且つ最後にもう一つのトランザクションへの実行
を転送することをそのトランザクション・スケジューラ
に許容するために、トランザクション・スケジューラに
対するソフトウエア中断を実行する。要求された入出力
又はメモリアクセス動作が完了した場合に、その入出力
又はメモリ装置が装置ハンドラ中断ルーチンにより操作
される完了中断を発し、そのルーチンが入出力又はメモ
リアクセス動作を要求したトランザクションの禁止フラ
グを解消する。入出力とメモリアクセス完了中断及びそ
のような中断のための装置ハンドラはこの技術において
は周知であることは注意されるべきである。
【0035】今や図5における第1ステップ101 を特に
参照して、トランザクション・スケジューラはディジタ
ルコンピュータのプロセッサスタックから中断されたト
ランザクションのコンテキストを除去することにより、
及び中断されたトランザクションに対するそれぞれのコ
ンテキスト記憶装置内にそのコンテキストを置くことに
より中断に応答する。そのコンテキストは、そのディジ
タルコンピュータ内のその他の一般目的レジスタのコン
テキストと同時に、トランザクション・プログラム内の
中断されたメモリ位置を指摘するプログラム・カウンタ
の値を含んでいる。
【0036】このトランザクション・スケジューラはス
テップ102 におけるディジタルコンピュータの初期立ち
上がり(START) の間に始められてもよい。ステップ102
において、トランザクション・リスト(TL)83と未決定の
直列化可能性グラフ(USG) のようなその他のデータ構造
とが消去され且つポインタが初期化される。
【0037】トランザクション・スケジューラは、トラ
ンザクションに対する準備の終端(END OF PREPARATION
FOR A TRANSACTION)において始められてもよい。この場
合には、ステップ103 においてトランザクションがコミ
ットされることが準備できていること、及びリアルタイ
ム・クロック(図1においては25)により指示された現
在の時間がトランザクションが準備される状態になる時
間を指示するためにトランザクションへ割り当てられた
メモリ位置内へ蓄えられることをも指示するようにマー
クさる。しかしながら、トランザクション・リストに置
かれた幾つかの仕事は、決して完了されず且つこのリス
ト内の全部のトランザクションの実行の後に、残ってい
る中央プロセッサ実行時間を使用する、いわゆる低い性
質の背景仕事となり得る。
【0038】トランザクション・スケジューラは装置ハ
ンドラ中断(TRANSACTION MANAGERINTERRUPT)ルーチンの
終端において始められてもよい。ステップ111 は、例え
ば要求された入出力又はメモリ動作を有するトランザク
ションに対する禁止フラグ(図6の表においてはI)を
消去し、それから実行がステップ101 において継続し、
入出力又はメモリ動作を必要としていたトランザクショ
ンへ戻る実行をことによるとスケジュルするように現在
のトランザクションを中断する。
【0039】トランザクション・スケジューラは、トラ
ンザクション・リストにトランザクションを置くことに
よりトランザクション要求に応答し;準備できたトラン
ザクションをコミットすることを始め;且つトランザク
ションのコンポーネント動作の実行をもスケジュールす
る、3っの主な仕事を実行する。ステップ104 におい
て、例えば、トランザクション・スケジューラが、トラ
ンザクションが要求されてしまったかどうかをチェック
する。トランザクション・スケジューラ中断は、例えば
ユーザ又はもう一つのディジタルコンピュータがトラン
ザクションの実行を要求されたことを指示している入出
力ユニットからの中断信号に応答して生じ得る。
【0040】図6にはトランザクションリスト83の特定
例を示してある。このトランザクションリストはトラン
ザクション識別番号(TRANSACTION ID)のリンクされたリ
スト106 を含む。各トランザクション識別番号には、リ
ンクされたリストへの次のエントリに対するポインタ(P
OINTER TO NEXT) と、多数のフラグ(V,R,I,G,
P)に対する値とが関連している。これらフラグには、
リスト中のエントリが有効データを含むかどうかを表わ
すフラグVと、トランザクションの準備が終了されたか
どうかやトランザクションがコミットすべき準備完了状
態にあるかどうかを表わすフラグRと、入力/出力又は
メモリアクセス要求の完了前にトランザクションの準備
が禁止されているかどうかを表わすフラグIと、トラン
ザクションが局所(LOCAL) 的なものであるか広域(GLOBA
L)的なものであるかを表わすフラグGと、広域的なトラ
ンザクションの準備の完了がコーディネータに報告され
たかどうかを表わすフラグPとを含んでいる。広域的な
トランザクションと関連するフラグG及びPは更に図14
及び15につき後に説明する。
【0041】リスト83には更に、ヘッドポインタ108
と、テイルポインタ109 と、トランザクションを実行す
るポインタ110 とが関連している。ヘッドポインタ108
は例えば、リストが空である際に負値を有し、それ以外
の場合第1(優先度が最大)トランザクションに対する
リストエントリを指示する正値を有する。同様に、テイ
ルポインタ109 は、リストが空である際に負値を有し、
それ以外の場合最後のリストエントリを指示する正値を
有する。トランザクション実行ポインタ110 は、中断に
応答した際に図5のステップ101 でトランザクションス
ケジューラによって用いられる。特にポインタ110 はス
テップ101 を実行する際に中断されたトランザクション
に対しそれぞれのコンテキスト記憶位置を見い出すのに
用いられる。
【0042】図5に戻るに、ステップ112 ではトランザ
クションがコミットすべき準備完了状態にあるか否かを
トランザクションスケジューラが検査する。準備完了状
態にある(YES) 場合、ステップ113 において、トランザ
クションスケジューラがコミットメント・オーダ・コー
ディネータ(85)を呼び出してコミットするトランザクシ
ョンを選択するとともに、コミットメント・オーダリン
グに可能なアボートや遅延を与える。コミットメント・
オーダ・コーディネータがステップ114 でコミットメン
トを遅延しないということを決定すると、ステップ115
でリソース・マネージャ (RM) がトランザクションの結
果を状態メモリにコミットする。
【0043】最後にステップ116 において、トランザク
ションスケジューラがトランザクションリストを検査し
て、まだ準備完了状態になく禁止されていないトランザ
クションがあるか否かを決定する。このトランザクショ
ンがある場合(YES) 、ステップ117 においてトランザク
ションスケジューラが、まだ準備完了状態になく禁止さ
れていないトランザクションの1つを選択する。ステッ
プ116 及び117 を実行するためには、例えば、トランザ
クションスケジューラがまず最初にポインタ108 が負値
を有するかどうかを確かめることによりトランザクショ
ンリストが空であるかどうかを検査する。ヘッドポイン
タ108 が負値を有する場合、トランザクションスケジュ
ーラがフラグR及びIを検査してリストのヘッドにおけ
るトランザクションがまだ準備完了状態になく且つ禁止
されていないかどうかを決定する。第1エントリが準備
完了状態にあるか或いは禁止されている場合には、トラ
ンザクションスケジューラがテイルポインタ109 を検査
してリストの終了に達したか否かを決定する。リストの
終了に達していない場合(NO)には、トランザクションス
ケジューラが次のエントリに対しテイルポインタ109 を
検査し、まだ準備完了状態になく禁止されていないトラ
ンザクションが見い出されるかリストの終了に達するま
で同じステップを実行する。
【0044】まだ準備完了状態になく禁止されていない
トランザクションが選択されると、ステップ118 におい
て、選択されたトランザクションのコンテキストがスタ
ックに入れられる。この場合、トランザクションが最初
にトランザクションキュー(que)に入れられると、この
トランザクションに対する初期のコンテキストが中断さ
れたトランザクションに対するそれぞれのコンテキスト
メモリ(記憶装置)内に入れられるということに注意す
べきである。初期のコンテキストは例えば、トランザク
ションに対するプログラム中の第1命令を指示するプロ
グラムカウンタ値を含む。ステップ118 後、ステップ11
9 において中断の復帰が行なわれ、選択されたトランザ
クションに対するプログラム中の命令の実行を開始又は
続行する。
【0045】図7を参照するに、この図には決定されて
いないトランザクションの直列化可能性のグラフ(USG)
84を記憶するデータ構造の特定例を示す。トランザクシ
ョンのそれぞれの対で矛盾する動作を実行する特定の順
序が確立されている場合には、矛盾する動作のこの実行
順序が未決定のトランザクション直列化可能性グラフ中
に存在する。各トランザクションによって実行されるメ
モリアクセス動作と、これらメモリアクセス動作のメモ
リ位置とが、トランザクションがリストに入れられた瞬
時に分っているものとすると、図3Aのケース(CASE)1
では矛盾する動作を実行する順序を上記の瞬時に決定す
ることができる。この場合、図3Aに示すようなケース
1に対しては、書込み動作がトランザクションコミット
メントの瞬時に有効に実行されるということに注意すべ
きである。この特定の場合以外では、矛盾する動作の実
行順序は、矛盾する動作の2番目の動作がトランザクシ
ョンスケジューラによって実行予定された際に決定さ
れ、この矛盾動作によりアクセスされるメモリ位置が決
定される。
【0046】矛盾の存在が検出される瞬時に、図11につ
き後に説明するように実行順序が未決定のトランザクシ
ョン直列化可能性グラフに記憶される。図7のグラフに
おけるデータは図8の画像形態で与えられる。図7のデ
ータ構造中に決定されたフラグは図8の画像表示中のエ
ッジ131 に相当する。エッジ131 の方向はトランザクシ
ョン中の矛盾動作の実行順序を表わす。この実行順序が
確立されると、この実行順序はトランザクションをアボ
ートするか或いはトランザクション又は追加の矛盾動作
を遅延させることにより実施される。
【0047】トランザクションをアボートすることによ
るコミットメント・オーダの実施を図9にステップ141
及び142 により示してある。ステップ141 では、コミッ
トすべき準備完了トランザクションを選択する。複数の
準備完了トランザクションがある状態では、例えばリス
ト中の第1のこのようなトランザクションを選択し、ト
ランザクションと関連する優先度を比較し、或いはコー
ディネータからの選択に応答させることにより特定の準
備完了トランザクションを選択する。図6におけるリス
ト106 に対しては、例えば、選択処理中に広域的なトラ
ンザクションに局所的なトランザクションよりも高い優
先度を与えることができる。
【0048】ステップ142 では、選択したトランザクシ
ョンのコミットメント・オーダ及びコミットメントと相
反するコミットメントのトランザクションをアボートす
ることにより、選択したトランザクションのコミットメ
ント・オーダを実施する。図8のグラフに示すコミット
メント・オーダの場合、例えばトランザクションT1
選択されると、トランザクションT0 及びT3 がアボー
トされてコミットメント・オーダを実施する。トランザ
クションのアボーティングはいかなるトランザクション
の結果をも廃棄することを含む。局所的なトランザクシ
ョンの場合、そのそれぞれのコンテキストメモリの内容
をその初期のコンテキストにリセットすることによりト
ランザクションをアボートすることができる。換言すれ
ば、トランザクションに対するプログラムカウンタの現
在値をトランザクションに対するプログラムの開始値に
リッセトする。更に、トランザクションリスト106 及び
未決定トランザクション直列化可能性グラフ84を再初期
化する必要がある。広域的なトランザクションに対して
は、アボートされたトランザクションがある場合これが
コーディネータにより再び開始される。この場合、この
トランザクションがトランザクションリストから完全に
除外される。
【0049】ここで図10を参照するに、コミットすべき
準備完了トランザクションを選択する手順のフローチャ
ートを150 で示す。これは図9のステップ141 に対し導
入される。図10の第1ステップ151 では、リストのヘッ
ドにおいて第1の準備完了トランザクションに対する開
始に関してトランザクションリスト106 が探索される。
更に、図10で後に用いられる“コミットフラグ”が消去
される。次にステップ152 において、選択されたトラン
ザクションの“アボートセット”におけるメンバの数を
計数する。図8の未決定トランザクション直列化可能性
グラフ84を参照するに、例えば、このグラフ中の各トラ
ンザクションのアボートセットはその前のトランザクシ
ョンを含む。換言すれば、トランザクションT1 の場
合、そのアボートセットはトランザクションT0 及びT
3 を含み、T1 のアボートセットにおけるメンバの数は
2である。トランザクションT0 及びT4 はそれらのア
ボートセットにメンバを有していない。図7の特定のデ
ータ構造を参照するに、トランザクションのアボートセ
ットの数はデータ構造の列に沿って設定されたエッジフ
ラッグによって決定され、アボートセット中のメンバの
数はトランザクションに対するそれぞれの列で設定され
たフラグの数を計数することにより計算される。選択さ
れたトランザクションのアボートセットがステップ153
で検査されて零(メンバを有さない)である場合には、
ステップ154 で、局所的及び広域的な双方のトランザク
ションを処理するトランザクション処理システムに対し
図15につき後に更に詳細に説明するようにトランザクシ
ョンの結果を状態メモリに出来る限りコミットし続ける
実行を行なう。
【0050】選択されたトランザクションのアボートセ
ットが零でない場合には、トランザクションのコミッテ
ィングの遅延を試みてそのアボートセット中のメンバの
数を減少せしめうるようにする。この場合、準備完了ト
ランザクションのアボートセットは決して増大しえない
が、そのアボートセットのメンバがコミットされる度に
1だけ減少する為に減少することはできることに注意す
べきである。しかし、選択されたトランザクションのコ
ミッティングは不規則的に遅延させてはならない。さも
ないとシステムが阻止されてしまうおそれがある為であ
る。従って、選択されたトランザクションの遅延はこの
遅延が予め決定した遅延時間を超えると終了させる。広
域的なトランザクションを処理する場合、図15につき後
に更に説明するように、コーディネータからの終了信号
に応答させて遅延を終了させるのも望ましいことであ
る。図10のステップ157 では、現在の時間と(図5のス
テップ103 でセーブされた)トランザクションに対する
準備完了時間との差として遅延時間が計算される。遅延
時間がステップ158 における検査の結果予め決定した限
界を超えると、ステップ159 でコミットフラグが設定さ
れる。
【0051】ステップ160 で、トランザクションリスト
に追加の準備完了トランザクションがあると、ステップ
156 に分岐される実行が行なわれてステップ152 にルー
プバックする実行が行なわれる。トランザクションリス
トに追加の準備完了トランザクションがない場合には、
ステップ161 でコミットフラグが検査され、コミットフ
ラグが設定されていない場合には、ステップ163 でいず
れの準備完了トランザクションをもコミットする決定を
行なうことなく実行を継続する。コミットフラグが設定
されている場合には、ステップ162 において、アボート
セット中のメンバの数が最小の準備完了トランザクショ
ンが選択され、ステップ164 において、選択されたトラ
ンザクションをコミットし続ける。
【0052】図11を参照するに、この図11にはトランザ
クションの矛盾する構成要素動作のコミットメント・オ
ーダを決定する処理のフローチャート170 を示す。読出
し又は書込みのようなメモリアクセス動作の準備(PREPA
RE MEMORY ACCESS) に当ってこのフローチャート170 の
処理が呼出される。第1ステップ171 では、メモリアク
セス動作のアドレスが決定される。次に、ステップ172
において、このアドレスと、矛盾するおそれのある前の
動作のアドレスとが比較される。この比較はトランザク
ションリストにおける各トランザクションに対する前の
動作のアドレスのリストを探索することにより行なわれ
る。現在の動作が読出し動作である場合には、この読出
し動作が前の書込み動作と矛盾するおそれがある。現在
の動作が書込み動作である場合には、この書込み動作が
前の読出し動作(又は図3Bのケース2の場合前の書込
み動作)と矛盾するおそれがある。ステップ173 でこれ
らのアドレスが一致すると、ステップ180 でトランザク
ションの現在の順序が未決定トランザクション直列化可
能性グラフ(図7の84)中に記録される。特に、図3A
のケース1の場合、読出し動作と書込み動作との間での
み矛盾が生じ、動作の順序が読出され、次に書込まれ
る。図3Bのケース2の場合、現在の順序は現在のトラ
ンザクションを前のトランザクション後に行なうべきも
のとする必要がある。ステップ181 では、検査すべき前
のメモリアクセス動作が更に存在する場合にステップ17
2 に戻る実行が行なわれ、存在しない場合に、現在のト
ランザクションの読出し又は書込み動作に対するアドレ
スのリストに、ステップ171 で決定されたアドレスを加
えることによりステップ177 でメモリアクセスの準備が
継続される。次にステップ178 で、動作が準備又は実行
される。次に実行がトランザクションに戻る(RETURN TO
TRANSACTION) 。
【0053】次に図12を参照するに、この図12には、書
込み−読出し矛盾に対するエッジを他の矛盾に対するエ
ッジから識別する、増補の未決定トランザクション直列
化可能性グラフを示す。このような増補グラフは図7に
示すデータ構造に類似するデータ構造中に記憶せしめる
ことができるも、いずれかの種類の矛盾を表わす第1フ
ラグと書込み−読出し矛盾を表わす第2フラグとより成
る一対のフラグによって各エッジが表わされている。図
12の増補グラフは、カスケーディング・アボートを実行
して、図3Bにつき前述したように第1トランザクショ
ンをコミットする前に第2トランザクションが第1トラ
ンザクションの書込みデータを読取りうるシステムに対
する回復能力を保証するのに用いられる。カスケーディ
ング・アボートを実行する処理を図13のフローチャート
190 に示す。例えば、コミットすべき準備完了トランザ
クションとしてT5 が選択されたものとする。この場
合、コミットメント・オーダリングを実行するためには
図12のトランザクションT3 及びT4 をアボートする必
要がある。しかし、トランザクション処理システムは図
3Bにつき前述した形態で動作するものと仮定する。こ
の場合、コミットメント・オーダリングを実行するため
にトランザクションがアボートされると、アボートされ
たトランザクションの読出し−書込みデータを有するす
べてのトランザクションをもアボートする必要がある。
図12の増補グラフから明らかなように、トランザクショ
ンT4 がアボートされると、トランザクションT4 及び
7 間の書込み−読出し矛盾の為にトランザクションT
7 もアボートする必要がある。更に、トランザクション
7 がアボートされると、トランザクションT8 がトラ
ンザクションT7 により書込まれた読出しデータを有す
るためにトランザクションT8 をアボートする必要があ
る。
【0054】ここで図13を再び参照するに、トランザク
ションTx をアボートするカスケーディング・アボート
処理190 では、第1ステップ191 において増補グラフで
探索して、トランザクションTx によって書込まれた読
出しデータを有するすべてのトランザクションTy を見
い出す。次にステップ192 においてトランザクションT
x をアボートする。最終ステップ193 では図13のサブル
ーチン190 を循環的に呼出してトランザクションTy
各々をアボートする。
【0055】次に図14を参照するに、局所的(LOCAL) 及
び広域的(GLOBAL)の双方のトランザクションを処理する
トランザクション処理システムの状態線図を示す。例え
ば、局所的トランザクションは局所的ユーザ201 により
発せられ、広域的トランザクションはコーディネータ20
2 により発せられる。各々の場合、トランザクションス
ケジューラがトランザクション要求を受け、このトラン
ザクション要求をトランザクションリストのエントリに
入れる。この点で、トランザクションは準備中にあると
言える。トランザクションスケジューラは最終的に準備
中のトランザクションに実行を伝え、このトランザクシ
ョンは禁止(INHIBITED) 状態となるか又は準備完了状態
となるまで実行される。図5に関して前述したように、
トランザクションは入出力動作又はメモリ動作を要求し
た後にそれ自体禁止状態とすることができ、入出力動作
又はメモリ動作が終了するとこのトランザクションはそ
の禁止状態を解かれる。準備中にあるか又は禁止状態に
あるか又は準備完了状態にあるトランザクションをアボ
ートしてコミットメント・オーダリングを実施すること
ができる。
【0056】トランザクションスケジューラは準備完了
状態にある局所的なトランザクションをコミットするこ
とができる。しかし、分散トランザクション処理システ
ムでの広域的な同期を保証するためには、コーディネー
タとのハンドシェーク後にのみ準備完了の広域的なトラ
ンザクションをコミットする。このハンドシェークによ
り、広域的なトランザクションの割当てられた部分を処
理しているすべてのプロセッサがこの広域的なトランザ
クションのこれらの割当てられた部分をコミットする準
備完了状態になければこの広域的なトランザクションが
コミットされないように保証する。従って、トランザク
ションスケジューラが広域的なトランザクションの状態
を“準備中(IN PREPARATION)”状態から“準備完了(REA
DY) " 状態に切換えると、トランザクションスケジュー
ラは“準備完了(PREPARED)”信号をコーディネータ202
に伝送する。
【0057】コーディネータ202 がトランザクションに
関係するすべてのトランザクションスケジューラから
“準備完了”信号を受けると、このコーディネータは
“コミット(COMMIT)”指令をトランザクションスケジュ
ーラに送り返す。しかし、コーディネータが、関係する
トランザクションスケジューラのすべてから“準備完
了”信号を受けない場合には、コーディネータは“アボ
ート(ABORT) " 信号をトランザクションスケジューラに
伝送することができる。図14では、これらのハンドシェ
ーク信号を破線で示してある。
【0058】局所的なトランザクションがコミットされ
ると、トランザクションスケジューラはこのトランザク
ションをトランザクションリストから除外し、局所的ユ
ーザにこのトランザクションが終了されたということを
通知する。同様に、広域的なトランザクションがコミッ
トされると、トランザクションスケジューラはこの広域
的なトランザクションをトランザクションリストから除
外し、このトランザクションがコミットされたというこ
とを表わす信号をコーディネータに送る。更に、広域的
なトランザクションがアボートされると、この広域的な
トランザクションがトランザクションリスト及び未決定
トランザクション直列化可能性グラフから除外されトラ
ンザクションスケジューラはアボートを確認する信号を
コーディネータに送信する。しかし、局所的なトランザ
クションの場合、トランザクションの準備を再び開始す
るのが望ましく、この場合トランザクションの初期のコ
ンテキストをリセットし、未決定トランザクション直列
化可能性グラフを消去し、トランザクションのリストエ
ントリ中のR及びIグラフをリセットすることによりト
ランザクションの状態を“準備中”に設定し直すことの
みが必要となるものである。
【0059】次に図15を参照するに、この図15には、広
域的なトランザクションのコミットメントを予定するた
めにコミットメント・コーディネータがたどるステップ
のフローチャートを示す。例えば図10の処理により、ト
ランザクションをコミットすることなく処理を継続する
(CONTINUING WITHOUT COMMIT) ことができる。しかしス
テップ211 において、トランザクションスケジューラが
コーディネータから“遅延終了信号 (TERMINATE DELAY
SIGNAL) " を受けることができる。この信号はコーディ
ネータからの別個の信号としたり、前に伝送されたトラ
ンザクション要求の再送信信号とすることもできる。こ
のような信号を受けると、次にステップ212 において、
トランザクションリスト中のトランザクションに対する
Rフラグが検査され、広域的なトランザクションが準備
完了状態にあるかどうかが決定される。広域的なトラン
ザクションが準備完了状態にない場合、広域的なトラン
ザクションをコミットすることができない。広域的なト
ランザクションが準備完了状態にある場合、ステップ21
3 において、トランザクションに対するアボートセット
のメンバを検査していずれのメンバがPフラグセットを
有する広域的なトランザクションであるかを決定する。
ステップ213 は、図10における処理がコミットすべきト
ランザクションを選択した場合(これが可能ならば)の
広域的又は局所的トランザクションに対しても実行され
る。コミットすべきものとして選択したトランザクショ
ンに対するアボートセットがPフラグセットを有する広
域的なトランザクションを含む場合には、この選択した
トランザクションはPフラグセットを有する広域的なト
ランザクションの前にコミットすることができない。従
って、実行はトランザクションスケジューラ中で継続さ
れる (CONTINUE IN THETRANSACTION MANAGER)。アボー
トセットがPフラグセットを有する広域的なトランザク
ションを含まない場合には、ステップ214 において、コ
ミットすべきトランザクションが広域的なトランザクシ
ョンであるかどうかに依存して実行が分岐される。コミ
ットすべきトランザクションが広域的なトランザクショ
ンである場合には、トランザクションスケジューラが準
備アクノリッジ信号をコーディネータに送った後確認用
の“コミット”信号を受けるまでこのトランザクション
をコミットすることができない。従って、広域的なトラ
ンザクションの場合、ステップ216 において、準備アク
ノリッジ信号(図14における“PREPARED”信号)がコー
ディネータに送られ、トランザクションリスト中の広域
的なトランザクションに対するPフラグが設定され、ト
ランザクションスケジューラにおいて実行が継続され
る。コミットすべきトランザクションが局所的なトラン
ザクションである場合には、ステップ215 において、ア
ボートセット中のトランザクションがアボートされ(且
つ図13のカスケーディングアボート“CASCADING ABORT
" を図3Aのケース2に対し用い)、選択された局所
的なトランザクションの結果を状態メモリにコミットす
る。次に、トランザクションスケジューラ中で実行を継
続する。
【0060】コーディネータからのコミット又はアボー
ト中断 (COMMIT/ABORT INTERRUPTFROM COOROINATOR)
信号に応答して準備完了広域的トランザクションを処理
するためのフローチャート220 を図16に示す。第1ステ
ップ221 では、中断がアボートに対するものであるかコ
ミットに対するものであるかに応じて実行が分岐され
る。中断がアボートに対する場合には、ステップ222 に
おいて、広域的なトランザクションをトランザクション
リストから除去し、未決定トランザクション直列化可能
性グラフ中の対応するフラグを消去することによりこの
広域的なトランザクションをアボートする。最後にステ
ップ223 において、アボートの肯定応答をコーディネー
タに送り返し、実行が中断から復帰する (RETURN FROM
INTERUPT)。ステップ221 で、中断がコミットに対する
ものであったと決定された場合には、ステップ224 で選
択された広域的なトランザクションのアボートセットに
おけるトランザクションがアボートされ、選択されたト
ランザクションの結果が状態メモリにコミットされる。
次にステップ223 において、コミットメントの肯定応答
がコーディネータに送り返され、実行が中断から復帰さ
れる。
【0061】図17を参照するに、トランザクション・マ
ネージャ (TM) 252 とリソース・マネージャ (RM) 253
とを有する通常のトランザクション処理システムにコミ
ットメント・オーダ・コーディネータ (COCO) 251 を挿
入した本発明の一実施例を示す。図示のように、コミッ
トメント・オーダ・コーディネータ251 はトランザクシ
ョン・マネージャ252 とリソース・マネージャ253 との
間のインタフェース254 の部分集合(サブセット)をと
る。コミットメント・オーダ・コーディネータ251 はイ
ンタフェース254 の規定の部分255 を捕捉し且つこのコ
ミットメント・オーダ・コーディネータの動作に特有の
幾つかの追加の信号を有する拡張インタフェース256 を
介してリソース・マネージャ253 に相互接続されてい
る。分散処理システムでは、図17に示す構成をシステム
中の各ノードに用いることができる。
【0062】リソース・マネージャ253 は以下の通常の
サービスを行なうものと仮定する。 R_PREPARE(T): TMが、トランザクションTを完成さ
せることをRMに通知する。このことは、RMがトランザク
ションTに代っていかなる追加の要求又は外部データを
も受けないということを意味する。 R_COMMIT(T) : TMが、トランザクションTをコミッ
トすることをRMに通知する。このサービスの呼出しに対
する前提条件は、RMがトランザクションの準備を予め知
っている(すなわちYES を決定している)ということで
ある。 R_ABORT(T): TMが、トランザクションTをアボート
することをRMに(及び場合によってはTと関連する他の
すべてのRMにも)通知する。
【0063】又、トランザクション・マネージャ252 が
以下の通常のサービスを行なうものと仮定する。 T_READY(T): RMが、トランザクションTの処理が終
了されたということをTMに通知し、YES (すなわちTMの
通知に応じてTをコミット又はアボートする準備完了状
態にあること)を決定する。 T_ABORT(T): RMが、トランザクションTがアボート
された(その結果関連するすべてのRMによりTがアボー
トされる)ということをTMに通知する。
【0064】コミットメント・オーダ・コーディネータ
251 がTM−RMインタフェース254 内に挿入されると、リ
ソース・マネージャ253 ではなくこのコミットメント・
オーダ・コーディネータ251 が直接トランザクション・
マネージャ252 のT_READY(T)及びT_ABORT(T)サービ
スを呼出す。更に、リソース・マネージャ253 の代りに
コミットメント・オーダ・コーディネータ251 がR_CO
MMIT(T) 及びR_ABORT(T)サービスを生ぜしめるための
信号をトランザクション・マネージャ252 から直接受け
る。以下の説明でサービスを識別する上で便利なよう
に、これらの信号に対するコミットメント・オーダ・コ
ーディネータのサービスをそれぞれC_T_COMMIT(T)
及びC_T_ABORT(T)と称する。
【0065】RM−COCOインタフェース256 はTM−COCOイ
ンタフェース255 よりも優れているスーパーセットであ
る。特に、USG 、COCOのデータ構造を保持するために追
加のサービスが規定されている。トランザクション・マ
ネージャの規定のT_READY(T)及びT_ABORT(T)サービ
スを前に呼出しているRMからの信号がコミットメント・
オーダ・コーディネータ251 のサービスC_R_READY
(T)及びC_R_ABORT(T)を呼出す。コミットメント・
オーダ・コーディネータ251 はリソース・マネージャ25
3 によっても呼出しを受け、コミットメント・オーダ・
コーディネータの以下の追加のサービスを実行する。
【0066】C_R_BEGIN(T): RMが、USG 中のTに
対するノードを確立することをCOCOに通知する。 C_R_CONFLICT(T1, T2): T1 との矛盾を生じるT
2 の動作を実行する前に、RMが、COCOに通知するための
このサービスを呼出す。
【0067】T1 からT2 のそれぞれのエッジが前もっ
てUSG に存在していない場合には、このエッジが生ぜし
められる。T2 の実際の動作は、USG がこの時に更新さ
れていることを保証する肯定応答をCOCOから受けた後に
のみRMにより実行される。リソース・マネージャ253 は
コミットメント・オーダ・コーディネータ251 により呼
出されて最初のR_COMMIT(T) 及びR_ABORT(T)サービ
スを実行する。又、リソース・マネージャ253 はコミッ
トメント・オーダ・コーディネータ251 により呼出され
て追加のサービスR_CONFLICT_ACK(T1, T2) を生ぜし
める。この呼出し後、T1 とのそれぞれの矛盾を生ぜし
めるT2 における動作をRMが実行しうる。
【0068】図17のシステムにおける呼出しの上述した
定義を考慮することにより、システムの状態は図18に示
すような呼出しに応答すること明らかである。更に、呼
出しは、図18の状態線図に基づいた以下のPASCAL/SQL
ベース擬似コードによって規定される。以下の擬似コー
ドでは、同時呼出しが許され、同じサービスの複数の同
時呼出しも許される。T_ERROR(T)及びR_ERROR(T)は
それぞれ誤った呼出しシーケンスを表わすTM及びRMのエ
ラーメッセージ呼出しである。トランザクションのアト
ミック状態はエラータイプとして復帰する。
【0069】
【表1】
【0070】
【表2】
【0071】
【表3】
【0072】
【表4】
【0073】
【表5】
【0074】
【表6】
【0075】
【表7】
【0076】上述した疑似コードにより規定されるコミ
ットメント・オーダ・コーディネータ251は出力スケ
ジュールの回復能力を保証するように変更しうる。この
変更したコミットメント・コーディネータをCORCO と称
する。このCORCO はインタフェースRM(図17の253)が
回復能力を保証しない場合に用いるものであり、図18の
状態線図をたどる。 CORCOは、カスケーディングアボー
トを用い以下の追加の変更を行なう点で上述した疑似コ
ードと相違する。書込み−読出し矛盾は図12に示すよう
に USGのエッジに反映される。エッジ(T1, T2)が
【外1】 矛盾(及び場合によって幾つかの他の矛盾)を表わす場
合にはブール
【外2】 は値真を有し、〔外2〕が値真を有する(回復能力の阻
害を無くす)場合にはYES の決定がT2 で発せられな
い。更に、サービスC_R_CONFLICTは〔外1〕矛盾を
表わす追加のブールパラメータ〔外1〕を有する
【外3】 更にCORCO の呼出しやその決定(VOTE)処理はCORCO の
呼出しを変更したものであり、上述した相違に反映す
る。
【0077】以下の再帰的手続きCASCADE(T)は回復能力
を保つ必要がある場合にT_ABORT(T) を呼出し、追加
のT_ABORT の呼出しを生じる。
【0078】
【表8】
【0079】
【表9】
【0080】
【表10】
【0081】
【表11】
【0082】
【表12】
【0083】
【表13】
【0084】
【表14】
【0085】上述したところでは、利用しうる計算能力
を用いるのに最も有効に実行を行なうように多数のトラ
ンザクションの構成要素の動作を分散させ且つ予定する
ことができ、しかもトランザクションを矛盾する動作の
実行順序と同じ順序でコミットするコミットメント・オ
ーダリングを実施することにより一貫性を保つことがで
きる。分散式のトランザクション処理システムでは、コ
ミットメント・オーダリングに対する適合により、合成
された(広域的)スケジュールの直列化可能性を保証す
る。更に、各分散プロセッサの自立性を確保し、広域的
トランザクションに対し規定のアトミック・コミットメ
ント・プロトコルを用いることにより、合成された(広
域的)スケージュールの直列化可能性が保たれる。
【0086】付録 Iコミットメント・オーダリング特性の定義と証明 以下に示すのは「コミットメント・オーダリング」と呼
ばれる履歴特性が、グローバルな直列可能化問題を解決
するということである。特に、もし分散トランザクショ
ン処理システム中の各資源管理者が「コミットメント・
オーダリング」に従うならば、そして資源管理者達が
「自律性をもつ」ならば(すなわち彼らがアトミック・
コミットメント・プロトコルのみを介して同格化し、そ
れ以外のいかなる並行性制御情報をも交換しないなら
ば)、グローバルな直列可能性は保証されるということ
である。
【0087】〔定義〕 1.「トランザクション」Ti とは、イベントの「部分
オーダ」である。部分オーダを含む2進、非対称、転
移、非反射関係は" <i " と記される。添字iはトラン
ザクションの識別子が前後関係から分かるときは省略で
きる。イベントは読み出し及び書き込み演算を含む;r
i x はトランザクションTi が読み出しデータ項目x
を持つことを表し、またwi x はトランザクションT
i が書き込みデータ項目xを持つことを表す。トランザ
クションはまたトランザクション終了のイベントを持
つ;ei はTi が終了したことを表す。
【0088】〔公理〕 2.トランザクションTi は正確にただ1つのイベント
i を持つ。1つの値が次のようにei に割り当てられ
る:トランザクションが「コミットされる」ならば、そ
してその時に限り、ei =c;トランザクションが「ア
ボートされる」ならば、そしてその時に限り、ei =a
である。ei =c又はei =aであるときに、ei をそ
れぞれci 又はai と書くことができる。
【0089】3.任意の演算pi x すなわちri x
又はwi x に対して pi x <i i である。
【0090】〔定義〕 4.データ項目xに対する2つの演算pi x 及びqj
x は、pi x がwi x であるか又はqj x がw
j x であるならば、「コンフリクティング」である、
という。
【0091】5.トランザクションの集合T「の上の完
全履歴」Hとは、次の公理6, 7及び8により定義され
る関係<H を持つ部分オーダである。
【0092】〔公理〕 6.Ti がT中にあり、且つ eventa i eventb なら
ば eventa H eventb である。
【0093】7.Ti , j がT中にあるならば、任意
の2つのコンフリクティングな演算pi x , qj x
に対して pi x <H j x であるか又はqj x <H i x である。
【0094】8.Ti , j をT中のトランザクション
とし、qj x を任意の演算とするとき、もしwi x
H j x ならば、 ei H j x であるか又はqj x <H i である。(この公理により履歴の意味論の一意的な定義
が与えられる、何故ならばもしei =aであればwi x
の効果は実行されない、すなわちei 後にxを読み出
すことは結果的にwi x の直前に存在したxの値を読
み出すことだからである。) (注:<H の添字Hは前後関係から分かるときには省略
してよい。)
【0095】〔定義〕 9.「履歴」とは完全履歴の任意の「プレフィクス」で
ある。集合S上の部分オーダPの「プレフィクス」と
は、次の特性 b∈S’且つa<p bならば、そのとき更にa∈S’ a, b∈S’ならば、a<p'bのとき、そしてそのとき
に限りa<p b を持つ集合S’⊆S上の部分オーダP’である。
【0096】10.それぞれコンフリクティングな演算q
2 x , p1 x に対して p1 x <q2 x であるならば、そしてそのときに限り、トランザクショ
ンT2 はトランザクションT1 と「コンフリクトであ
る」という。
【0097】11.p1 x がw1 x であり、q2 x
がw2 x であれば、T2 はトランザクションT1
「wwコンフリクトである」という。
【0098】12.p1 x がw1 x であり、q2 x
がr2 x であれば、T2 はトランザクションT1
「wrコンフリクトである」という。
【0099】13.p1 x がr1 x であり、q2 x
がw2 x であれば、T2 はトランザクションT1
「rwコンフリクトである」という。
【0100】14.2つの履歴H及びH’が共にトランザ
クションTの同一の集合上で定義され、且つ(部分的に
実行されたトランザクションに対し)同一のトランザク
ション・イベントから成り、それぞれがT中にある任意
の「コミットされた」トランザクションTi ,Tj
「コンフリクティングな」演算pi x ,qj x に対
して、pi x <H'j x である時且つその時に限り
i x <H j x であるならば、そしてそのときに
限り、2つの履歴H及びH’の間には「コンフリクト等
価」が存在する、又は2つの履歴はコンフリクト等価で
ある(すなわち、H及びH’はコミットされたトランザ
クションの演算間で、同一のコンフリクトを持つ)、と
いう。
【0101】15.トランザクション集合T中の任意の2
つのトランザクションTi ,Tj に対し、次に命題:
「pi x <H j x であるならば、H中のその他の
すべての演算si u ,tj v に対してsi u <H
j v である。」が真であるあるならば、そしてその
ときに限り、トランザクション集合T上の履歴Hは「直
列」である(すなわち、Ti のすべての演算はTj のす
べての演算に先行する)、という。
【0102】16.履歴は、ある直列履歴にコンフリクト
等価であるならば、そしてそのときに限り、「直列可
能」(SER) である。
【0103】17.Tが、H中のすべてのアボートされな
い(すなわちコミットされ且つ不完全な)トランザクシ
ョンの集合であり、また(TxTの部分集合)Cが、T
中の任意の2つのトランザクションT1 ,T2 に対しT
2 がT1 とコンフリクトである時且つその時に限りT1
からT2 に対しエッジが存在するようなトランザクショ
ン・コンフリクトを表すエッジの集合であるならば、履
歴H, SG(H) の「直列可能化グラフ」は有向グラフ SG
(H)=(T, C)である。履歴H, CSG(H)の「コミット
されたトランザクションの直列可能化グラフ」とは、す
べてのコミットされたトランザクションをノードとして
持ち且つすべてのそれぞれのエッジを持つSG(H) の部分
グラフである。履歴H, USG(H)の「決定されていないト
ランザクションの直列可能化グラフ」とは、すべてのコ
ミットされない(すなわち不完全な)トランザクション
をノードとして持ち且つすべてのそれぞれのエッジを持
っているSG(H) の部分グラフである。
【0104】〔直列可能化定理〕 18.履歴Hは、CSG(H)がサイクル・フリーであるとき、
そしてそのときに限り、「直列可能」(SER) である。
【0105】〔定義〕 19.履歴H中の任意のトランザクションT1 ,T2 に対
して、T2 がトランザクションT1 とrwコンフリクトで
あるときには常に、T1 がコミットされた後にのみT2
がコミットされるならば、そしてそのときに限り、履歴
Hは「回復可能」(REC) である、という。形式的には: w1 x <r2 x 且つ e2 =c とは e1 <e2 且つ e1 =c 又は e1 <r2 x 且つ e1 =a を意味する。
【0106】20.履歴H中の任意のトランザクションが
コミットされたトランザクションのみによって書き込ま
れたデータを読み出すならば、そしてそのときに限り、
履歴Hは「カスケーディング・アボートを避ける」(AC
A) 、という。T1 ,T2 を履歴H中の任意の2つのト
ランザクションとすると、次の式がこの概念の形式的表
現である:w1 x <r2 x とは e1 <r2 x を
意味する。
【0107】21.T1 ,T2 を履歴H中の任意の2つの
トランザクションとする。p2 xはr2 x かw2 x
かのどちらかであるとし、もしw1 x <p2 x であ
るならばe1 <p2 x であるとき、そしてそのときに
限り、履歴Hは「ストリクト」(ST)である(ストリクト
な性質を持つ)という。
【0108】〔定理〕 22.記号⊃がストリクトな包含関係を表すものとすれ
ば、 REC ⊃ACA ⊃ST である。(この定理は定義から直ちに出てくる。)
【0109】〔定義〕 23.「2フェーズ・ロッキング(2PL) 」とは、2種類の
ロックすなわち「書き込みロック」及び「読み出しロッ
ク」を行う直列可能化メカニズムである。これはトラン
ザクションの2つのフェーズ、すなわち最初のロックが
要求されるフェーズと2番目のロックが解放されるフェ
ーズ、の経過を分割することから成る。
【0110】24.H中のトランザクションT1 ,T2
それぞれ任意のコンフリクティングな演算p1 x ,q
2 x に対して、 p1 x <q2 x ならばe1 <q2 x となる ならば、そしてそのときに限り、履歴は、強ストリクト
2フェーズ・ロッキング(S-S2PL)である。(注:2フェ
ーズ・ロッキング・メカニズムにより生成され得るなら
ば、履歴は2フェーズ・ロッキングである。ストリクト
2フェーズ・ロッキングは、あるトランザクションのた
めになされた「書き込みロック」がその終了まで解放さ
れないことを要する;だがしかし、読み出しロックはも
っと速い時期、2フェーズ・ロッキング・メカニズムの
第1フェーズの終了時に解放され得る。強ストリクト2
フェーズ・ロッキングは、トランザクションが終了する
前に(該トランザクションがコミットされているか或い
はアボートされているかどちらかの時)すべてのロック
が悉くは解放されないことを要する。強ストリクト2フ
ェーズ・ロッキングは、トランザクションが終了するま
でに該トランザクションによりアクセスされるデータ項
目上の任意のコンフリクティングな演算をブロックす
る。)
【0111】25.ある状況の下で1つのトランザクショ
ン中のイベントが「他の」トランザクション中の一定の
イベントの起きるまで遅延させられるならば、メカニズ
ムは「ブロッキング」である、という。
【0112】26.履歴特性がブロッキングなメカニズム
のみにより実施され得るならば、該履歴特性は「本来的
にブロッキング」である、という。
【0113】27.履歴特性が何らかの非ブロッキングな
メカニズムにより実施され得るならば、該履歴特性は
「非本来的にブロッキング」である、という。(注:直
列可能化と回復可能化とは共に、非本来的にブロッキン
グである、何故ならばそれらは、違反トランザクション
が終了前の任意の時に該違反トランザクションをアボー
トすることにより、常に保証され得るからである。トラ
ンザクションが相互のイベントをブロックすることなし
に走り且つ直列可能化やその他任意の所望の特性が違反
されたら終了時のみにアボートされる場合に、このよう
な理解が「最適並行性制御」の基礎である。これとは反
対に、2フェーズ・ロッキング及びACA は本来的にブロ
ッキングである。)
【0114】28.トランザクションが「アボートされて
いる」か又は「コミットされている」かのいずれかであ
れば、そしてそのときに限り、該トランザクションは
「決定されている」という;そうでなければ該トランザ
クションは「決定されていない」という。
【0115】29.決定されていないトランザクションが
その処理を完了し、コミットされるか又はアボートされ
るかのいずれかが用意されていれば、そしてそのときに
限り、該決定されていないトランザクションは「準備完
了」である、という;そうでなければ該決定されていな
いトランザクションは「能動」である、という。
【0116】30.トランザクションが「準備完了」であ
るか又は「能動」であるかのいずれかであれば、そして
そのときに限り、該トランザクションは「決定されてい
ない」という。
【0117】〔コミットメント・オーダリングの定義〕 31.コミットされたトランザクションT1 ,T2 のそれ
ぞれ任意のコンフリクティングな演算p1 x ,q2 x
に対して、 p1 x <q2 x ならばe1 <e2 となる ならば、そしてそのときに限り、履歴は「コミットメン
ト・オーダリング」特性を持つ(又は CO である)とい
う。形式的には: e1 =c且つe2 =cであり、またp1 x <q2 x
である ならば、e1 <e2 となる。
【0118】〔コミットメント・オーダリング定理〕3
2.SER ⊃CO(すなわち、コミットメント・オーダリン
グであれば直列可能である。)証明 :履歴Hは CO とし、また、…→Ti →…→Tj
…は CSG(H) 中の(有向)路とする。路の上のオーダに
ついて CO の定義及び帰納法θを用いれば、ci <cj
であることは直ちに分かる。茲でHは、SER ではないと
する。直列可能化定理(項目18.を参照)により(一般
性を失うことなく) CSG(H) 中に閉路T1 →T2 →…→
n →T1 が存在する。先ず始めに上記のTi ,T
j を、それぞれT1 ,T2 とする(上記の路の適当なプ
レフィクスを考えよ)。そうすると上述によりc1 <c
2 となる。次にTi ,Tj を、それぞれT2 ,T1 とす
る(上記の路の適当なサフィクスを考えよ)と、c2
1 となる。しかしながら、関係 "<" は非対称である
から、この両者は矛盾する。従って、CSG(H)は非巡回的
であって、Hは直列可能化定理によりSER である。そこ
で次の直列可能な非CO履歴を検証し、包含関係はストリ
クトである:w1 x w2 x c1 2 、という結論に
達する。
【0119】〔定義〕 33.「タイムスタンプ・オーダリング」(TO)並行性制御
メカニズムは直列可能性を具え、各トランザクションT
i に付随するタイムスタンプ ts(Ti ) (1つの実数)
に立脚する;タイムスタンプはディスティンクトであ
る。
【0120】〔タイムスタンプ・オーダリング規約〕 34.任意の「コミットされた」トランザクションT1
2 それぞれの任意の2つのコンフリクティングな演算
1 x ,q2 x に対して、 ts(T1 ) < ts(T2 ) であれば p1 x <q2 x である。(注:タイムスタンプ・オーダリングは
(T1 ,T2 のすべての演算が行われた「後に」T1
はT2 のどちらかをアボートすることにより実現できる
から)非ブロッキングであり、且つ並行性制御に基づく
最適タイムスタンプ・オーダリングに対する基礎と、並
びにメカニズムに基づくブロッキング・タイムスタンプ
・オーダリングに対する基礎とを具える。)
【0121】〔ブロッキング・タイムスタンプ・オーダ
リング規約〕 35.「任意の」トランザクションT1 ,T2 それぞれの
任意の2つのコンフリクティングな演算p1 x ,q2
x に対して、 ts(T1) < ts(T2) であればp1 x <q2 x である。(注:このブロッキング・タイムスタンプ・オ
ーダリング規約は、トランザクションがコミットされて
いるか否かに拘らずコンフリクティングな演算はタイム
スタンプス・オーダに従ってスケジュールされることを
要する。)
【0122】〔タイムスタンプ・コミットメント・オー
ダリング規約〕 36.コンフリクティングな演算に関する任意の2つの
「コミットされた」トランザクションT1 ,T2 に対し
て、 ts(T1 ) < ts(T2 ) であれば e1 <e2 である。形式的には:e1 =c且つe2 =cであり、ま
た、p1 x ,q2 x はコンフリクトであり、更にま
た、 ts(T1 ) < ts(T2 ) であるならば、e1 <e2
となる。
【0123】〔定理〕 37.履歴が、タイムスタンプ・オーダリング規約 (項目
34.)とタイムスタンプ・コミットメント・オーダリング
規約 (項目36.)と双方に従うメカニズムにより生成され
るならば、そしてそのときに限り、該履歴はコミットメ
ント・オーダリング特性を持つ。(注:この定理の意味
は、もしタイムスタンプ・コミットメント・オーダリン
グ(TCO) 規約が任意のタイムスタンプ・オーダリング・
メカニズムにより実現すれば、そのときはコミットメン
ト・オーダリング特性を持つ履歴のみが生成される、と
いうものである。TCO 規約は、タイムスタンプ・オーダ
に従うことが必要なときにコミットメント・イベントを
遅延させることにより容易に実現できる。)
【0124】〔定義〕 38.「トランザクション終了スケジューラー」(TTS) と
は、準備完了トランザクションの集合をモニターし、ど
のトランザクションを何時、コミット又はアボートする
かを決定するコンポネントである。多重資源管理者環境
では、このコンポネントはその資源管理者のために「ア
トミック・コミットメント」手順に参加し、各当該トラ
ンザクション用のアトミック・コミットメントを介して
到達した決定の実行を(それぞれの資源管理者内部で)
制御する。
【0125】39.コミットメント・オーダリング・トラ
ンザクション終了スケジューラー(COTTS) は次の手順又
はこれと同等の手順を実行する:(a) COTTS は、すべて
の「決定されない」トランザクションの直列可能化グラ
フ,USG を維持する。RMにより処理された新トランザク
ションの各々は、USG 内の新しいノードとして反射す
る;もし有向エッジ(2つのトランザクション間のエッ
ジがいくつかのコンフリクトを表すかも知れないが)に
より反射されるならば、USG 内のトランザクション間の
各コンフリクトである。UTを履歴H中のすべての決定さ
れないトランザクションの集合とし、C(UTxUTの部分集
合)をUT内のトランザクション間の有向エッジの集合と
するとき、USG(H)=(UT,C)である。T2 がT1 とコンフ
リクトであれば、そしてそのときに限り、T1 からT2
へのエッジが存在する。USG はコミットするまですべて
の演算のコンフリクトを反射する。(将来のコミットメ
ント・オーダリング違反を防止するため)Tをコミット
する結果としてのアボートされたトランザクションの集
合は: ABORTCO (T)={T′|T′→ TがC中にある} として定義される。COTTS は、次のステップを繰り返し
実行する: (a) USG 内の任意の準備完了トランザクション(すなわ
ち処理を終了したトランザクション)Tを(任意の判断
基準を用いて、恐らくは各トランザクションに割当てら
れた優先度によって;優先度はトランザクションがUSG
内に在る限りダイナミックに変動し得る)選定する; (b) 集合 ABORTCO(T) 内のすべてのトランザクション、
すなわちTへ行くエッジを持つUSG 内の総てのトランザ
クション(「準備完了」のものも「能動」のものも共
に)をアボートする; (c) すべての「決定された」トランザクション(T及び
アボートされたトランザクション)をグラフから除去す
る(それらは定義によりUSG に属さない)。
【0126】40.コミットメント・オーダリング・トラ
ンザクション終了スケジューラー(COTTS) は、コミット
メント・オーダリング(CO)特性を持つ履歴を生成する。証明 :これは、空履歴HO 及び空グラフ USGO = USG(
O ) から出発して、COTTS による繰り返し回数の帰納
法により証明される。HO は CO である。繰り返しnb
の後に生成された履歴Hn は CO であると仮定する。
(そのUTコンポネント内の) USGn は、Hn 内のすべて
の決定されないトランザクションを含む。次に、更にも
う1回の繰り返し,(n+1)番目を実行し、 USGn 内で(一
般性を失うことなく - wlg)トランザクションH1 をコ
ミットする。Hn+1 は、Hn 中のすべてのトランザクシ
ョン、及びn番目のステップ完了後に生成された(そし
てUSGn+1 内に在る)新しい(決定されていない)トラ
ンザクションを含む。繰り返し(n+1) を完了した後に次
の場合を検証する: (a) H2 ,H3 を(wlg で)Hn 中の2つのコミットさ
れたトランザクションとする。帰納法の仮定によりHn
は CO であるから、もしT3 がT2 とコンフリクトであ
るならば、そのときc2 <c3 である。 (b) Hn 中の、T1 とはコンフリクトである(以前に)
コミットされたトランザクションT2 の各々に対し、c
2 <c1 である。Hn+1 中のコンフリクティングなコミ
ットされたトランザクションの一対の、すべての可能性
が上述の場合で尽きている。従って、Hn+1 は CO であ
る。(注: USG内のいかなるサイクルにも入っていない
トランザクションがあるならば、他のいかなるトランザ
クションからもエッジのないトランザクションTが存在
する。 ABORTCO(T) が空であるから、他のいかなるトラ
ンザクションをもアボートすることなしに、Tはコミッ
トされ得る。もし USG内のすべてのトランザクションが
サイクル上にあれば、少なくとも1つのトランザクショ
ンがアボートされなければならない。この状態は一般的
ではないように思われる。多重RM環境の下で、もし RM
(TTS) がコミットされるべきトランザクションを自分自
身で選択しないで、USG 内のあるトランザクションをコ
ミットするよう(アトミック・コミットメント・プロト
コルを介して)要請を受けるならば、Tが(COTTS によ
って)コミットされたとき、 ABORTCO(T) 内の、すなわ
ちTへのエッジをもつ総てのトランザクションがアボー
トされることを要する。TTS は直ちにTをコミットする
ことを選択できる(「遅延を伴わない非ブロッキング」
アプローチ)。もう1つのアプローチ(「遅延を伴う非
ブロッキング」)が所与の時間だけコミットメントを遅
延させる。遅延の間に、集合 ABORTCO(T) はだんだん小
さくなるか、又は空になる。もしTが準備完了状態にあ
るならば、集合は増加することができない。直ちにコミ
ットするか又は所与の時間だけコミットメントを遅延さ
せる(それがアボートをもたらす)代わりに、TTS は、
ABORTCO(T) 内のすべてのトランザクションが決定され
るまで、Tのコミットメントを「ブロック」することが
できる。しかし、もし環境中のもう1つの RM が同様に
ブロックすると、それはグローバルなデッドロックをも
たらすかも知れない。
【0127】〔定義〕 41. CORTTS というのは、COであり且つ回復可能である
履歴を生成するCOTTSである。 CORTTS は増強直列可能
化グラフ wr-USG を維持する:すなわち、 UTを履歴H
中のすべての決定されていないトランザクションの集合
とし、またCをUT 内のトランザクション間のエッジの
集合とするとき wr-USG(H) = (UT, C, Cwr) である。TがT1 と非"wr"コンフリクトであるのみなら
ば、そしてそのときに限り、T1 からT2 へのCエッジ
がある。Cwrは同様に wr コンフリクトであるUT内のト
ランザクション間のエッジの集合である。T2 がT1
wrコンフリクトである(そして恐らく他のタイプのコン
フリクトでもある)ならば、そしてそのときに限り、T
1 からT2 へのCwrエッジがある。CとCwrとはばらば
らである。(将来のコミットメント・オーダリング違反
を防止するため)Tをコミットした結果としてのアボー
トされたトランザクションの集合は: ABORTCO(T) ={T′|T′→ TがC又はCwr中にあ
る} と定義される。此処での ABORTCO(T) の定義は、COTTS
に対するそれぞれの集合と意味論としては同一である。
トランザクションT′をアボートした結果としての、回
復可能性によるアボートされたトランザクションの集合
は:
【数1】 と定義される。この定義は回帰的であることに留意され
たい。これはカスケーディング・アボートの性質をよく
反映している。 CORTTS は次のステップを繰り返す:
(a) いかなる到来Cwrエッジも持たない(すなわち ABO
RTCO(T) 内の任意のトランザクションT′に対してTが
ABORTREC (T′) 内にないような;これは後にT自身を
アボートする必要を避けるため)wr-USG内の任意の「準
備完了」トランザクションTを選定し、それをコミット
する;(b) ABORTCO(T) 内のすべてのトランザクション
T′(「準備完了」のものも「能動」のものも共に)を
アボートする;(c) 以前のステップでアボートされた各
T′に対して ABORTREC (T′)内のすべてのトランザク
ションT″(「準備完了」のものも「能動」のものも共
に)をアボートする(カスケーディング・アボート);
(d) すべての「決定された」トランザクション(T及び
すべてのアボートされたトランザクション)をグラフか
ら除去する。(注:各繰り返しの間、wr-USGはコミット
するまですべての演算のコンフリクトを反射する。)
【0128】〔定理〕 42. CORTTS は CO で且つ回復可能な履歴を生成する。証明 : CORTTS は、各繰り返し中に(回復可能性の要求
により)更に余分のトランザクションをアボートすると
いう点で COTTSと異なるのみであるから、定理40により
COである。回復可能性を冒し得るすべてのトランザクシ
ョン(すなわち ABORTCO(T) 内の各アボートされたトラ
ンザクションT′に対する ABORTREC (T′) 内のトラン
ザクション)、換言すればアボートされたトランザクシ
ョンがアボートされる前に書き込んだデータを読み出す
トランザクション、は各繰り返し中にアボートされるか
ら、生成された履歴は回復可能である。(注: CORTTS
は、 COTTSについての上述の注で論じたものと類似の結
果と共に、「遅延を伴わないで非ブロッキングな、そし
て遅延を伴いブロッキングな」TTS として実現され得
る。)
【0129】〔系〕 43.COTTS は直列可能な履歴を生成する。
【0130】44.CORTTSは直列可能であり且つ回復可能
な履歴を生成する。
【0131】45.COTTS 及び CORTTS に基づく非ブロッ
キング・スケジューラーは、デッドロック・フリーの実
行のみを生成する。(注:上記TTS は資源アクセス演算
のスケジューリングのための任意の資源アクセス・スケ
ジュール(RAS) と組合せることができる。 TTSとRAS と
がともに「非ブロッキング」であれば、組合せたメカニ
ズムもまた非ブロッキングであり、従って「デッドロッ
ク・フリー性」が保証される。もし更に他の履歴特性を
設けるために(TTS による)何らかのフィルタリングが
要求されるなら、1つのRAS と1つのTTS との組合せで
上記のRAS の1つを置き換えることができる。この場合
にはフィルタリングTTS はトランザクションをアボート
することのみ出来る。しかし、上記CO TTSが直列可能性
を保証しているから、もしRAS が直列可能な履歴を生成
するのなら、それは問題ではないのである。この組合せ
メカニズムは次のように実行する:先ず始めに、トラン
ザクションはRAS(又は TTSを伴うRAS)により制御され
る。アボートされない準備完了のトランザクションは、
COTTS によってコミットされる候補と考えられる、また
トランザクションは、もしCO TTSの条件に反していれば
アボートされる。もし上記スケジューラーがS-S2PLに基
づくものならば、代表的CO TTSのUSG はエッジを全く持
たないことに留意されたい。このことは、CO TTSによる
アボートが期待通り必要ない、そしてCO TTSは不要であ
ることを意味する。これは1つの極端な場合である。関
係するトランザクションの性質に従って所望のスケジュ
ールのパターンやシステムの行動を設定するため、他の
タイプのスケジューラーがそれぞれのUSG の他の特性を
導入することが出来る。組合せCCメカニズムが回復可能
性を保証するならば COTTSで十分である(回復可能性は
継承されているのだから、CORTTSは必要ない)というこ
とにも留意されたい。スケジューラーがタイムスタンプ
・オーダリング(TO)に基づくもので、COが望まれるとき
には、USG を独立に設定するより寧ろ既存のデータ構造
を活用することができる。この場合には、タイムスタン
プ・コミットメント・オーダリング規約に従うことによ
り、COが設定できる。
【0132】〔定義〕 46.「環境」とは、多数の資源管理者(RMs) を持つ分散
サービス・システムであり、そこではトランザクション
が「関与する」RMs の任意の部分集合に跨がることので
きるものである。環境中の各RMは「識別子」(例えば、
RM 2)を持つ。イベントは、トランザクションの識別子
と RM の識別子との両方で修飾される。(例えば、w
3,2 x というのは、トランザクションT3 のための R
M 2 によるデータ項目の書き込み演算を意味する。)
【0133】〔公理〕 47. j≠l とし、pi,j x ,qk,l y が(それぞれ
RM j及びRM lによる)演算であるならば、x≠yであ
る;すなわちこれらの演算がコンフリクトすることはあ
り得ない。
【0134】〔定義〕 48.グローバルなトランザクションTi は、1つ又はそ
れ以上の「ローカルな部分トランザクション」から成
る。ローカルな部分トランザクションTi,j は、RM jの
制御の下に、Ti がアクセスすることを要する「すべて
の」データにアクセスし、またこれらのデータ項目「の
みに」アクセスする(換言すれば、そのイベントはすべ
てjで修飾される)。ローカルな部分トランザクション
はトランザクションの定義を遵守する。ローカルな部分
トランザクションはトランザクションの「地位」を持
つ。
【0135】49.「ローカルな履歴」は単一の RM で生
成され、そのローカルな部分トランザクションの集合上
で定義される。ローカルな履歴は前出の履歴の定義を遵
守する。Hi は関係<Hiを用いてRM iにより生成された
履歴である。(注:分散された環境中でアトミック性を
保証するために「アトミック・コミットメント」(AC)プ
ロトコルが用いられる。)
【0136】50.毎回トランザクションが決定する次の
一般的スキームを、ACプロトコルが遂行する:各関与す
るRMは、それぞれのローカルな部分トランザクションが
「準備完了」状態に到達した後、“イエス”か又は“ノ
ー”のいずれか(但し両方ということはない)の投票を
する、或いは「準備完了」状態に到達できないときは
“ノー”の投票をする。トランザクションは、全部のRM
が“イエス”と投票したなら、そしてそのときに限り、
全RMによりコミットされる。(注:2PC というのは、AC
の特別な場合である。失敗及び回復の問題は此処では取
り扱わない。)ACが使用されるという事実は、分散され
たトランザクションが単一のコミット・イベントを持つ
と仮定する(これは現実には必ずしも常に保証されてい
ないが)ことを許容する。しかしこれはアボートに対し
ては成り立たない。 :次の2つのトランザクションは共にデータ項目x及
びyにアクセスする。x,yはそれぞれRM 1, RM 2の制
御下にある。T1 とT2 及びそれらのローカルなトラン
ザクションは次の通りである:
【数2】 RMは次の(ローカルな)履歴H1 及びH2 を生成する:
【数3】 履歴H1 はコミットメント・オーダリングに違反し、そ
れは結果として(グローバルな)直列可能性に反するこ
とになる、ということに留意されたい。それぞれのグロ
ーバルな履歴Hは次のオーダー関係により記述される:
【数4】
【0137】51.任意の履歴特性Xに関して、環境内の
各RM iに対しHi (RM i の履歴) がXであるとき、そし
てそのときに限り、(グローバルな)履歴HはLocal-X
である(ローカルにXである)という。
【0138】〔定理〕 52.Xが次の特性:REC, ACA, ST, CO, S-S2PL のいず
れかであるとすると、履歴がLocal-Xであれば、そして
そのときに限り、該履歴はXである(グローバルにXで
ある)。換言すれば、Local-X=Xである。証明 :Local-Xの定義、公理47、及びREC, ACA, ST, C
O, S-S2PLの定義から明らかである。
【0139】〔定理〕 53.Xが次の特性:SER, 2PL, S2PLのいずれかであると
すると、Local-Xであることは必ずしも履歴がXである
ことを意味しない。換言すれば、Local-X⊃Xである。証明 :Hを上掲の例中の履歴とする。H1 及びH2 が共
にSER, 2PL, S2PLであるから、履歴HはLocal-SER, Loc
al-2PL且つLocal-S2PLである。しかしHはSER, 2PL又は
S2PLではない。CSC(H) はサイクルを持つ、故にHは S
ERではない。もしそれが 2PLなら、それはまた SERでも
ある。これは矛盾である。
【0140】〔定理〕 54. SER⊃Local-CO. 換言すれば、履歴がLocal-COであ
れば、それはグローバルに直列可能である。この定理は
コミットメント・オーダリング定理と定理52とから導か
れる。 (注:Local-COは、任意のタイプのCOメカニズムを用い
て、RMにより維持することができる。)
【0141】〔定義〕 55.「恒久リスク」(PR)トランザクションとは、コミッ
トされた時に直列可能化に反する可能性の原因となるこ
とがあり、その状態に永久に留まるようなトランザクシ
ョンをいう。PR特性は資源管理者に係わるものである。
上記の要求条件は、環境中の各RMが次のコミットメント
戦略(CS)を遂行しなければならないことを意味する:決
定されたトランザクションを持たない履歴から出発し
て、任意の準備完了トランザクションがコミットされる
(RMは、通常はACプロトコルを介してあるトランザクシ
ョンをコミットするよう求められる)。PRであるその他
のすべてのトランザクションはアボートされる。(茲
に、資源は不必要に保持されないという、明示されない
公理が仮定されている。さもなければ、PRトランザクシ
ョンはマークされ、永久に決定されないままに留め置か
れ得る。)その次に、直列可能化に反する原因となり得
ないもう1つの(任意の)トランザクションがコミット
される。再度、全PRトランザクションがアボートされ
る、等々。
【0142】〔定理〕 56.もし環境中の各RMに対しローカルな直列可能化情報
のみが入手でき、またアトミック・コミットメントが用
いられるとすれば、グローバルな直列可能性を保証する
ためには、各RMに対してCSが必要な戦略になる。CSはロ
ーカルにCO履歴(Local-CO中のグローバルな履歴)を生
成する。証明 :直列可能化定理によれば、直列可能化グラフは直
列可能性に関するすべての必要な情報を与える。各RM、
例えばRM iは、そのローカルな直列可能化グラフSG
i (それはすべてのコミットされ且つ決定されないトラ
ンザクションのみを含む)及びその(コミットされたト
ランザクションのみを含む)部分グラフ CSGi と(すべ
ての決定されないトランザクションを含む)部分グラフ
USGi とを「知っている」ものとする。また、(ACに基
づいて)各RMは、“イエス”と投票したなら且つトラン
ザクションに関与する他のすべてのRMs が“イエス”と
投票したこと及びその結果トランザクションをコミット
するであろうことを「知っている」なら、そしてそのと
きに限り、トランザクションをコミットしたものとす
る。各RMにとっての目標は、グローバルなサイクルを造
り出すかも知れない(CSG i 中のローカルなサイクルはRM
iによって消去される) いかなる行動をも避けることに
よりサイクル・フリーな(グローバルな)CSG (コミッ
トされたトランザクションの直列可能化グラフ)を保証
することである。先ず第一に、CSは次の理由で当然必要
である:PRトランザクションは(定義により)永久にPR
のままだから、それがコミットされることはあり得ない
で、アボートされてフリー資源とならなければならな
い。これに反して、直列可能化違反の原因となることの
できない任意の準備完了トランザクションはコミットさ
れ得る。次に、CS遂行中に、恒久リスク(PR)トランザク
ションを識別することが必要である。このことは、各RM
がCOTTS として動作するという意味であることを示そ
う。各RMはつぎのようにCSを遂行する: (a) 基礎段階: CSGi はいかなるトランザクションも含
まないと仮定する。任意の準備完了トランザクションT
をコミットする。Tをコミットするに先立ってUSGi
にはエッジT′→Tがあるとする。 j≠i であるような
或るRM jの或るUSGj 中に、エッジT→T′があること
は可能だが、RM iはこれを確かめることはできない。こ
のことは後にT′をコミットすることがCSG 中のサイク
ルの原因となり得る。Tをコミットすることは逆転でき
ないから(前出のトランザクション状態転移参照)、イ
ベントがこの状態を変えることはできない。従って、
T′はPRであり、RM iはこれをアボートしなければなら
ない。 (b) 帰納段階: CSGi は少なくとも1つのトランザクシ
ョンを含むとする。準備完了トランザクションはコミッ
トされたら直列可能化違反の原因となることはあり得な
い、従って(ACを介してすべての関与するRMによりコミ
ットするという合意に達したとすれば)コミットされる
ということを示そう:任意の準備完了トランザクション
Tをコミットする。任意の以前にコミットされたトラン
ザクションT″を点検する。 j≠i であるような任意の
RM jに対して CSGi 又は CSGj 中に路T→…→T″を持
つことはあり得ない。それは、もしT″がコミットされ
た段階でこの路が存在するならばこの段階中でT″への
エッジをもつすべてのトランザクションをアボートする
とき切断されていたであろう(上記基礎段階で論じた処
により)から、また、T″がコミットされた後にT″へ
入って来るエッジは生成され得なかったからである。従
って j≠i であるような任意のRM jに対してCSG中の CS
Gi 又は CSGj 中に路T″→…→Tのみが存在し得る。
これが意味するのは、T及びT″を通して CSG中にサイ
クルは造り出し得ない、そしてT″はアボートされるに
及ばない(これは戦略の失敗である)ということであ
る。次に、(USGi 中の) 決定されていないトランザクシ
ョンT′を検討する。Tをコミットするに先立って USG
i 中にはエッジT′→Tがあるとする。再び基礎段階で
論じた処によりT′はPRであり、(ACを介して“ノー”
と投票することにより)RMiはこれをアボートしなけれ
ばならない。T′からTへのエッジが存在しないなら
ば、T′に関する決定はこの段階ではなされない。上述
の議論は、そこで仮定されたように帰納段階の始めにコ
ミットされたとき準備完了トランザクションが直列可能
化違反の原因となることはあり得ないことを保証し、従
って(任意の準備完了トランザクション)Tはコミット
された筈である。CSの遂行中にとりわけPRトランザクシ
ョンは各段階で識別されアボートされる。この遂行を検
討するとそれがCOTTS として機能したという結論に達す
る。従って定理40により関与する各RMはCO履歴を生成
し、生成された(グローバルな)履歴はローカルにCO
(Local-CO)である。上述の遂行からの唯一の可能な逸
脱は、各段階で更に別のトランザクションをアボートす
ることによるものである。そのような逸脱もやはりLoca
l-CO中に生成された履歴を維持する。
【0143】〔系〕 57.もしRMs が並行性制御をアトミック・コミットメン
トのみを介して調整するならば、ローカルなコミットメ
ント・オーダリングは(グローバルな)「直列可能化」
の「必要にして十分な条件」である。この系は定理52,
定理55及び定理56から得られる。
【0144】〔系〕 58.「グローバルなデッドロック」とは、少なくとも2
つの異なるRMによる少なくとも2つの異なるトランザク
ション中の2つ又はそれ以上の「ローカルな部分トラン
ザクション」の相互ブロッキングによって起きるデッド
ロックである。(注:コミットメント・オーダリングは
本来的にブロッキングではないから、それは非ブロッキ
ングなやり方で、例えば、アボートにより又は遅延後の
アボートにより、遂行され得る。環境中のすべてのRMの
スケジューラーが(ブロッキングであり得るものを例外
として)非ブロッキングであれば、その実行は「デッド
ロック・フリー」である。コミットメント・オーダリン
グを遂行するもう1つのやり方は、ブロッキングCOサー
ティファイア(非ブロッキングRAS 及びブロッキングTT
S を持つCOスケジューラー)を用いることによるもので
ある。もしすべてのRMに対するスケジューラーがサーテ
ィファイアであるならば、少なくとも2つがブロッキン
グであるときは(たとえ各RMがそれ自身のデッドロック
を解決するとしても) グローバルなデッドロックが起こ
り得る。この場合にはデッドロックに関係する総てのト
ランザクションは準備完了の状態にある。この事実はア
トミック・コミットメント中にデッドロックを解決する
ことを許容する。少なくともその1つがブロッキングRA
S (例えば、BTO に基づくS-S2PL.又はCO)を持つ2つ
又はそれ以上のRMのスケジューラーがブロッキングであ
れば、能動トランザクションもグローバルなデッドロッ
クに関与し得る。この場合にはアトミック・コミットメ
ント・メッセージはデッドロックの解決に十分ではな
く、ブロックの存在を信号する更に別のメッセージ(恐
らくは、AC上にピギーバックされた他のトランザクショ
ンのメッセージ) が要求される。)
【0145】〔結論〕「コミットメント・オーダリン
グ」は、グローバルな直列可能化を達成するやり方を、
これもやはり「デッドロック・フリー」メカニズムを通
して与える。これは、デッドロックに支配されるブロッ
キング技術間のトレードオフ、及びデッドロック・フリ
ーではあるがカスケーディング・アボートに支配される
非ブロッキングな遂行を許容する。「直列可能化」を保
証するために、「アトミック・コミットメント」の役割
を除くサービスは、もし各RMが「コミットメント・オー
ダリング」をサポートするならば、RMに亙るトランザク
ション管理の調整には必要でない。しかし、RMの調整に
アトミック・コミットメントのみが使用されるならば、
グローバルな直列可能化のためには、コミットメント・
オーダリングが「必要」である。
【図面の簡単な説明】
【図1】トランザクション処理のために形作られたディ
ジタルコンピュータのブロック線図である。
【図2】トランザクション処理を実行するための手順の
フローチャートであって、2Aは2バンクの状態メモリの
間を切り換えることにより図1のコンピュータ内でトラ
ンザクション処理を実行するための手順のフローチャー
トであり、2Bはトランザクションにより変形される状態
メモリのデータ記録のみのコピーを蓄えることによるト
ランザクション処理のための図1のディジタルコンピュ
ータを運転するための代わりの手順である。
【図3】分散されたトランザクションの矛盾するメモリ
アクセス動作に対する種々のスケジューリングの可能性
を示す図で、3Aは第1のトランザクションがコミットさ
れた後にのみ第2のトランザクションが第1のトランザ
クションの書込データを読み取ることができる場合を示
し、3Bは第1のトランザクションがコミットされる前に
第2のトランザクションが第1のトランザクションの書
込データを読み取ることができる場合を示している。
【図4】図4は本発明によるディジタルコンピュータの
構成を示す図で、図4Aは分散されたトランザクションが
矛盾するコンポーネント動作が実行される順序でコミッ
トされるコミットメント・オーダリングを強制される、
本出願の好適な一実施例により形作られたディジタルコ
ンピュータを示しており、図4Bは図4Aに示したような複
数のディジタルコンピュータを含んでいる分散された計
算システムを図解している。
【図5】図4Aのディジタルコンピュータのトランザクシ
ョン・スケジューラにより使用されるスケジューリング
手順を図解している。
【図6】トランザクション・リストの構成と、分散され
たトランザクションのコンポーネント動作の実行をスケ
ジューリングするためのトランザクション・スケジュー
ラにより使用される関連ポインタとを図解している。
【図7】矛盾するコンポーネント動作を有する分散され
たトランザクションの間のコミットメント・オーダリン
グのグラフに相当するデータ構造を図解している図式的
な図面である。
【図8】図7のデータ構造内に記憶されるデータに相当
するグラフの絵で表した図面である。
【図9】コミットメント・オーダを強制するために図7
のデータ構造を参照する手順のフローチャートである。
【図10】コミットするトランザクションを選択する手
順のフローチャートである。
【図11】トランザクションの準備の間に矛盾するメモ
リアクセス動作を検出するための手順である。
【図12】書込−読取矛盾がその他の矛盾から区別され
る変形されたグラフである。
【図13】カスケーディング・アボートを実行すること
により回復能力を保証するための回帰的手順のフローチ
ャートである。
【図14】局所的トランザクションと広域的トランザク
ションとの両方を処理するために図4Bの多重処理システ
ム内に用いられる場合の図4Aに示したディジタルコンピ
ュータの状態図面である。
【図15】局所的トランザクションと異なる形態での広
域的トランザクションを取り扱うコミットメント・スケ
ジューリング手順のフローチャートである。
【図16】広域的トランザクションのコーディネータか
らの信号に応答してトランザクションをコミットし且つ
アボートするための手順のフローチャートである。
【図17】トランザクションマネージャと資源マネージ
ャとの間の慣習的なトランザクション手順内に挿入され
る本発明を使用しているコミットメント・オーダ・コー
ディネータを示すブロック線図である。
【図18】図17のトランザクション処理システムの状態
図である。
【符号の説明】
20 ディジタルコンピュータ 21 中央処理ユニット 22 揮発性のランダムアクセスメモリ 23 不揮発性のメモリ 24 入出力ユニット 25 リアルタイムクロック 26 プログラムメモリ 27 スクラッチメモリ領域(作業記憶装置領域) 28, 29 状態メモリのバンク 30 スイッチ記憶用記憶装置 31, 32 トランザクション記憶コード 33, 34 コミット時 81 リソースマネージャ(資源管理プログラム) 82 トランザクション・スケジューラ 83 トランザクション・リスト 84 トランザクション直列化可能性グラフ 85 コーディネータ 90 多重プロセッサシステム 91, 92, 93 ディジタルコンピュータ 94 通信チャネル 95, 96, 97 トランザクション・スケジューラ 108 ヘッドポインタ 109 テイルポインタ 110 トランザクション実行ポインタ 201 局所的ユーザ 202 コーディネータ 251 コミットメント・オーダ・コーディネータ 252 トランザクション・マネージャ 253 リソース・マネージャ 254 インタフェース 255 インタフェースの規定の部分 256 拡張インタフェース

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】“プリペア(準備)”及び“コミット(委
    託)”コマンドによりグローバル・コーディネータが、
    複数個のトランザクション・プロセッサと通信を行うマ
    ルチプロセッサ・コンピュータを動作させるにあたり、
    コンフリクト(牴触)の可能性ある構成オペレーション
    を有している可能性のあるトランザクションをプロセス
    するディジタル・プロセッサの動作方法において、 a) 前記トランザクションの結果を準備する、 b) 前記トランザクションの1つが、第1オペレーシ
    ョンに、前記トランザクションの他の1つの第2オペレ
    ーションとコンフリクトを生ずるものがある場合で、か
    つ前記コンフリクトを生ずるオペレーションに実行(パ
    ーフォーマンス)の順序がある場合には、これらトラン
    ザクションに対するコミットメント・オーダを決定し、
    このコミットメント・オーダを、前記実行の順序と同じ
    とする、 c) 前記トランザクションの選択された1つに準備さ
    れた結果をコンピュータ・システムのメモリ・ステート
    にコミットを行う、 d) コミットメントが前記コミットメント・オーダと
    相反する前記トランザクションのアボート(流産)セッ
    トをアボートさせ、前記トランザクションの選択された
    1つをアボートさせる、の各ステップを有してなること
    を特徴とするマルチプロセッサ・コンピュータのディジ
    タル・プロセッサの動作方法。
  2. 【請求項2】メモリ・ステートへのコミットメント・ス
    テップはデータ・ベース・ファイルをアップデートする
    ことを含む請求項1記載の方法。
  3. 【請求項3】前記メモリ・ステートへのコミットメント
    工程は、データ・オブジェクトのメモリ・ステートを変
    化させることを含む請求項1記載の方法。
  4. 【請求項4】当該トランザクションに割当てられる所定
    の優先(プライオリティ)を比較することによって、前
    記トランザクション中より選択された1つを選ぶステッ
    プをさらに有する請求項1記載の方法。
  5. 【請求項5】リスト内のトランザクションにオーダ(順
    位)を付すことによってトランザクション中より選択さ
    れた1つを選ぶステップをさらに有する請求項1記載の
    方法。
  6. 【請求項6】コーディネータよりのコミット・コマンド
    に応答してトランザクション中より選択された1つを選
    ぶステップをさらに有する請求項1記載の方法。
  7. 【請求項7】前記ステップd)でアボートされるトラン
    ザクション数を最小にするためのトランザクション中よ
    り選択された1つを選択するステップを含む請求項1記
    載の方法。
  8. 【請求項8】コーディネータより前記トランザクション
    の特定の1つを用意するリクエストを受信し、前記トラ
    ンザクション中、ステップc)で未だコミットされない
    もの、またはステップd)でアボートされないもの、の
    何れもが前記特定のコミットメント・オーダに反するも
    のが無くなる迄前記特定のトランザクションの1つの準
    備完了のアクノーレッジメントを遅延させ、その後前記
    トランザクションの特定の1つをコミットする請求項1
    記載の方法。
  9. 【請求項9】前記の遅延が所定の時間長だけ継続したと
    きは、この遅延を終了させるステップをさらに有する請
    求項8記載の方法。
  10. 【請求項10】コーディネータより終結信号を受信する
    と、前記遅延を終了させるステップをさらに設けた請求
    項8記載の方法。
  11. 【請求項11】前記トランザクションの第2の1つの読
    出しオペレーションは、前記トランザクションの第1の
    1つがコミットされる前に、このトランザクションの第
    1の1つがその書込みオペレーションによって書込れた
    書込データを読出す方法において、アボートされたトラ
    ンザクションによって書込まれた読出しデータを有する
    すべてのトランザクションをアボートするステップをさ
    らに設けた請求項1記載の方法。
  12. 【請求項12】コンピュータ・システム内のトランザク
    ションをプロセスするディジタル・コンピュータの動作
    方法において、 a) 該トランザクションをプロセスするリクエストを
    受信する、 b) 該トランザクションの結果の準備を開始する、 c) 前記トランザクションの1つが、第1オペレーシ
    ョンにトランザクションの他の1つの第2オペレーショ
    ンとコンフリクトするものがある場合、このトランザク
    ションに対するコミットメント・オーダを決定し、前記
    コンフリクトするオペレーションが実行の順序を有する
    ときは、コミットメント・オーダはこの実行の順序と同
    じとし、コンフリクト・オペレーションを有するトラン
    ザクションに対する結果の準備中にこのコミットメント
    ・オーダを決定する、の各ステップを有してなるディジ
    タル・コンピュータの動作方法。
  13. 【請求項13】ダイレクト・グラフの形で前記メモリ内
    に前記データを記憶し、さらに本方法は、コミットさ
    れ、アボートされたトランザクションに関する前記グラ
    フ・データより移動するステップを有する請求項12記
    載の方法。
  14. 【請求項14】コーディネータより前記トランザクショ
    ンの特定の1つを準備するリクエストを受信し、ステッ
    プd)で未だコミットされない前記トランザクションの
    何れも、あるいはステップe)でアボートされない何れ
    もが、前記所定のコミットメント・オーダに相反しなく
    なるまで、前記トランザクションの特定の1つの準備の
    完了のアクノーレッジメントを遅延させ、その後前記ト
    ランザクションの特定の1つをコミットする請求項12
    記載の方法。
  15. 【請求項15】コンピュータ・システム内のトランザク
    ションをプロセスするディジタル・コンピュータの動作
    方法において、 a) トランザクションの遂行のリクエストを受信す
    る、 b) あるトランザクションの各オペレーションは、他
    のトランザクションのコミットメントの前に、当該ディ
    ジタル・コンピュータのリゾースの利用可能性によって
    遂行されるように前記トランザクションのオペレーショ
    ンをリアル・タイム・ベースで、スケジュールにより遂
    行する、 c) 前記トランザクションの1つがその第1オペレー
    ションに、これらトランザクションの他の1つの第2オ
    プレーションとコンフリクトするものがあるときはコミ
    ットメント・オーダを決定し、前記コンフリクトするオ
    ペレーションに遂行の順序がある場合は、このコミット
    メント・オーダはその遂行の順序と同じくする、 d) 前記コミットメント・オーダに応じて前記トラン
    ザクションの選択された1つのコミットメントのエンフ
    ォースメントを行う、の各ステップを有してなることを
    特徴とするディジタル・コンピュータの動作方法。
  16. 【請求項16】コーディネータが、“プリペア”及び
    “コミット”のコマンドによって複数個のトランザクシ
    ョン・プロセッサと通信するマルチプロセッサ・コンピ
    ュータ・システムであって、コンフリクトするコンポネ
    ント・オペレーションを有しているかも知れないトラン
    ザクションをプロセスするディジタル・コンピュータ・
    システムにおいて、 a) あるトランザクションのオペレーションは、他の
    トランザクションのコミットメントの前に、前記ディジ
    タル・コンピュータ・システムのリゾースの利用可能性
    に応じて遂行されるように、前記トランザクションのオ
    ペレーションをリアル・タイム・ベースでスケジュール
    により遂行する手段と、 b) これらトランザクションの1つがトランザクショ
    ンの他の1つの第2オペレーションとコンフリクトする
    第1オペレーションを有している場合、トランザクショ
    ンのコミットメント・オーダを決定し、コンフリクト・
    オーダが遂行の順番を有するときは、該コミットメント
    ・オーダはこの遂行の順番と同じとする手段と、 c) 前記コミットメント・オーダに応じて前記トラン
    ザクションの選択された1つのコミットメントを遂行す
    る手段で、本手段は選択されたコミットメントの遅延手
    段と、コミットメントが前記コミットメント・オーダと
    矛盾している前記トランザクションのアボートされたセ
    ットをアボートし、選択された前記トランザクションの
    コミットメントを行う手段、との組合せを有してなるデ
    ィジタル・コンピュータ・システム。
  17. 【請求項17】前記遅延手段は、所定の時間長の遅延の
    後に選択されたトランザクションをアボートする手段を
    含む請求項16記載のディジタル・コンピュータ・シス
    テム。
  18. 【請求項18】前記遅延手段は、未だコミットされてい
    ないか、またはアボートされていないトランザクション
    の何れもが、所定のコミットメント・オーダに相反しな
    くなる迄、前記選択されたトランザクションの準備完了
    のアクノーレッジメントを遅延させ、その後前記トラン
    ザクションのうちのリクエストされたものをコミットす
    る手段を含んでなる請求項16記載のディジタル・コン
    ピュータ・システム。
  19. 【請求項19】前記コミットメント・オーダ決定手段
    は、既に以前に遂行されたオペレーションとコンフリク
    トするオペレーションの遂行を検出する手段を含んでな
    る請求項16記載のディジタル・コンピュータ・システ
    ム。
  20. 【請求項20】前記検出手段は、1つのトランザクショ
    ンに対するメモリ・アクセス動作のアドレスと、以前に
    遂行された他のトランザクションのメモリ・アクセス動
    作のアドレスとを比較する手段を含む請求項19記載の
    ディジタル・コンピュータ・システム。
  21. 【請求項21】前記アボート手段は、アボートされたト
    ランザクションによって書込れたデータを読出した前記
    トランザクションのすべてをアボートする手段を含んで
    なる請求項16記載のディジタル・コンピュータ・シス
    テム。
JP4128892A 1991-05-21 1992-05-21 マルチプロセッサ・コンピュータ及びその動作方法 Pending JPH05197604A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US70339491A 1991-05-21 1991-05-21
US07/703394 1991-05-21

Publications (1)

Publication Number Publication Date
JPH05197604A true JPH05197604A (ja) 1993-08-06

Family

ID=24825204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4128892A Pending JPH05197604A (ja) 1991-05-21 1992-05-21 マルチプロセッサ・コンピュータ及びその動作方法

Country Status (4)

Country Link
US (1) US5504900A (ja)
JP (1) JPH05197604A (ja)
DE (1) DE4216871C2 (ja)
GB (1) GB2256514B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007531156A (ja) * 2004-03-29 2007-11-01 マイクロソフト コーポレーション データベース復旧中のスナップショットクエリのためのシステムおよび方法
JP2010510590A (ja) * 2006-11-17 2010-04-02 マイクロソフト コーポレーション ソフトウェアトランザクションのコミット順序および競合の管理
US8010550B2 (en) 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8024714B2 (en) 2006-11-17 2011-09-20 Microsoft Corporation Parallelizing sequential frameworks using transactions
JP2016537708A (ja) * 2013-10-18 2016-12-01 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited メモリへの同時アクセス

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
JP3512439B2 (ja) * 1993-07-08 2004-03-29 富士通株式会社 チェックイン・チェックアウトモデルにおける施錠方式
US6920467B1 (en) * 1993-11-26 2005-07-19 Canon Kabushiki Kaisha Avoiding unwanted side-effects in the updating of transient data
JP3167259B2 (ja) 1994-05-06 2001-05-21 三菱電機株式会社 音響再生装置
JP3085085B2 (ja) * 1994-05-09 2000-09-04 三菱電機株式会社 データアクセス装置及び分散データベースシステム
JP3392236B2 (ja) * 1994-11-04 2003-03-31 富士通株式会社 分散トランザクション処理システム
US6275843B1 (en) * 1994-12-22 2001-08-14 Unisys Corporation Method and apparatus for processing multiple service requests within a global transaction by a single server application program instance
GB2301909A (en) * 1995-06-07 1996-12-18 Ibm Reduction of logging in distributed transaction processing systems
US5829013A (en) * 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US5893113A (en) * 1996-04-25 1999-04-06 Navigation Technologies Corporation Update transactions and method and programming for use thereof for incrementally updating a geographic database
US5734896A (en) * 1996-04-30 1998-03-31 Oracle Corporation Recovery of a remotely initiated distributed prepared transaction by status report from a second database to an external coordinator
US5903749A (en) * 1996-07-02 1999-05-11 Institute For The Development Of Emerging Architecture, L.L.C. Method and apparatus for implementing check instructions that allow for the reuse of memory conflict information if no memory conflict occurs
FR2751106B1 (fr) * 1996-07-11 1999-01-08 Alsthom Cge Alcatel Methode de planification de transactions distribuees
US5995995A (en) * 1996-09-12 1999-11-30 Cabletron Systems, Inc. Apparatus and method for scheduling virtual circuit data for DMA from a host memory to a transmit buffer memory
US5922046A (en) * 1996-09-12 1999-07-13 Cabletron Systems, Inc. Method and apparatus for avoiding control reads in a network node
US5999980A (en) * 1996-09-12 1999-12-07 Cabletron Systems, Inc. Apparatus and method for setting a congestion indicate bit in an backwards RM cell on an ATM network
US5970229A (en) * 1996-09-12 1999-10-19 Cabletron Systems, Inc. Apparatus and method for performing look-ahead scheduling of DMA transfers of data from a host memory to a transmit buffer memory
US5966546A (en) 1996-09-12 1999-10-12 Cabletron Systems, Inc. Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node
US5941952A (en) * 1996-09-12 1999-08-24 Cabletron Systems, Inc. Apparatus and method for transferring data from a transmit buffer memory at a particular rate
US5920863A (en) * 1997-05-31 1999-07-06 International Business Machines Corporation System and method for supporting transactions for a thin client lacking a persistent store in a distributed object-oriented environment
US5999931A (en) * 1997-10-17 1999-12-07 Lucent Technologies Inc. Concurrency control protocols for management of replicated data items in a distributed database system
US6209065B1 (en) 1997-10-24 2001-03-27 Compaq Computer Corporation Mechanism for optimizing generation of commit-signals in a distributed shared-memory system
US6085263A (en) * 1997-10-24 2000-07-04 Compaq Computer Corp. Method and apparatus for employing commit-signals and prefetching to maintain inter-reference ordering in a high-performance I/O processor
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
US6108737A (en) * 1997-10-24 2000-08-22 Compaq Computer Corporation Method and apparatus for reducing latency of inter-reference ordering in a multiprocessor system
US6088771A (en) * 1997-10-24 2000-07-11 Digital Equipment Corporation Mechanism for reducing latency of memory barrier operations on a multiprocessor system
US6286090B1 (en) 1998-05-26 2001-09-04 Compaq Computer Corporation Mechanism for selectively imposing interference order between page-table fetches and corresponding data fetches
US6243702B1 (en) * 1998-06-22 2001-06-05 Oracle Corporation Method and apparatus for propagating commit times between a plurality of database servers
US6418538B1 (en) * 1998-07-06 2002-07-09 Intel Corporation Method and system for scheduling transactions over a half duplex link
US6286110B1 (en) * 1998-07-30 2001-09-04 Compaq Computer Corporation Fault-tolerant transaction processing in a distributed system using explicit resource information for fault determination
US6138118A (en) * 1998-07-30 2000-10-24 Telcordia Technologies, Inc. Method and system for reconciling concurrent streams of transactions in a database
US6671704B1 (en) * 1999-03-11 2003-12-30 Hewlett-Packard Development Company, L.P. Method and apparatus for handling failures of resource managers in a clustered environment
US6295548B1 (en) * 1999-03-12 2001-09-25 Compaq Computer Corporation Detection of an imported transaction for finding the global transaction identifier
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
US6470342B1 (en) 1999-03-12 2002-10-22 Compaq Computer Corporation Process of maintaining a distributed map of transaction identifiers and using hashing to access these maps
US6874104B1 (en) 1999-06-11 2005-03-29 International Business Machines Corporation Assigning recoverable unique sequence numbers in a transaction processing system
US6938256B2 (en) 2000-01-18 2005-08-30 Galactic Computing Corporation System for balance distribution of requests across multiple servers using dynamic metrics
US6823356B1 (en) * 2000-05-31 2004-11-23 International Business Machines Corporation Method, system and program products for serializing replicated transactions of a distributed computing environment
US8538843B2 (en) 2000-07-17 2013-09-17 Galactic Computing Corporation Bvi/Bc Method and system for operating an E-commerce service provider
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
US6701387B1 (en) 2000-08-31 2004-03-02 Hewlett-Packard Development Company, L.P. Adaptive data fetch prediction algorithm
US20020124083A1 (en) 2000-09-06 2002-09-05 Sun Microsystems, Inc. Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment
US7587428B2 (en) 2000-10-13 2009-09-08 Microsoft Corporation Maintaining a relationship between two different items of data
US7689560B2 (en) * 2000-10-13 2010-03-30 Miosoft Corporation Persistent data storage techniques
US7028297B2 (en) * 2000-11-17 2006-04-11 Aristos Logic Corporation System and method of scalable transaction processing
US7406523B1 (en) * 2000-11-21 2008-07-29 Microsoft Corporation Client-server communications system and method using a semi-connectionless protocol
US6795878B2 (en) * 2000-12-11 2004-09-21 International Business Machines Corporation Verifying cumulative ordering of memory instructions
US6874071B2 (en) * 2001-12-13 2005-03-29 International Business Machines Corporation Database commit control mechanism that provides more efficient memory utilization through consideration of task priority
KR100477641B1 (ko) * 2002-01-15 2005-03-23 삼성전자주식회사 버스 시스템 및 그 데이터 전송경로 결정방법
US20060149696A1 (en) * 2002-09-09 2006-07-06 Thorsten Pferdekaemper Method and systems for controlling access to a data object by means of locks
US7756813B2 (en) * 2002-09-09 2010-07-13 Sap Ag Electronic data structure for controlling access to data objects using locks
US7653667B2 (en) * 2002-09-09 2010-01-26 Sap Ag Methods and systems for data moving using locks
US7457933B2 (en) * 2002-09-09 2008-11-25 Sap Ag Methods and systems for archiving data
DE60315996T2 (de) * 2002-09-09 2008-05-21 Sap Ag Verfahren und vorrichtung zur datenbewegung mittels sperren
US7693881B2 (en) * 2002-09-09 2010-04-06 Sap Ag Methods and systems for moving data using locks
US7089253B2 (en) * 2002-09-13 2006-08-08 Netezza Corporation Computer method and system for concurrency control using dynamic serialization ordering
US8145759B2 (en) * 2002-11-04 2012-03-27 Oracle America, Inc. Dynamically configurable resource pool
US7165061B2 (en) 2003-01-31 2007-01-16 Sun Microsystems, Inc. Transaction optimization of read-only data sources
US7769722B1 (en) 2006-12-08 2010-08-03 Emc Corporation Replication and restoration of multiple data storage object types in a data network
US7082432B2 (en) 2003-04-24 2006-07-25 Sun Microsystems, Inc. Specifying transaction manager type at various application levels
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
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
US7761421B2 (en) * 2003-05-16 2010-07-20 Hewlett-Packard Development Company, L.P. Read, write, and recovery operations for replicated data
WO2004111902A2 (en) * 2003-06-13 2004-12-23 Jon Kirkegaard Order commitment method and system
US7640545B2 (en) 2003-07-14 2009-12-29 Sun Microsytems, Inc. Transaction manager freezing
US7739252B2 (en) * 2003-07-14 2010-06-15 Oracle America, Inc. Read/write lock transaction manager freezing
US7134008B2 (en) * 2003-09-04 2006-11-07 Sun Microsystems, Inc. Utility for configuring and verifying data sources
US8521875B2 (en) * 2003-09-04 2013-08-27 Oracle America, Inc. Identity for data sources
US7266571B2 (en) * 2004-07-27 2007-09-04 International Business Machines Corporation Method and system for scheduling a partial ordered transactions for event correlation
US7627578B2 (en) 2004-09-01 2009-12-01 International Business Machines Corporation Apparatus, system, and method for file system serialization reinitialization
US7716305B2 (en) * 2004-09-01 2010-05-11 International Business Machines Corporation Apparatus, system, and method for preserving cluster level serialization during file server serialization reinitialization
US7490088B2 (en) * 2004-09-01 2009-02-10 International Business Machines Corporation Apparatus, system, and method for preserving connection/position data integrity during file server serialization reinitialization
US7711721B2 (en) * 2004-09-01 2010-05-04 International Business Machines Corporation Apparatus, system, and method for suspending a request during file server serialization reinitialization
US20060195845A1 (en) * 2005-02-28 2006-08-31 Rhine Scott A System and method for scheduling executables
US9047306B1 (en) 2005-10-17 2015-06-02 Hewlett-Packard Development Company, L.P. Method of writing data
US7827144B1 (en) 2005-11-17 2010-11-02 Hewlett-Packard Development Company, L.P. Methods of reading and writing data
US7765187B2 (en) * 2005-11-29 2010-07-27 Emc Corporation Replication of a consistency group of data storage objects from servers in a data network
US7848261B2 (en) 2006-02-17 2010-12-07 Isilon Systems, Inc. Systems and methods for providing a quiescing protocol
US7899800B2 (en) * 2006-08-18 2011-03-01 Isilon Systems, Inc. Systems and methods for providing nonlinear journaling
US7653664B2 (en) * 2006-11-03 2010-01-26 Microsoft Corporation Anchor for database synchronization excluding uncommitted transaction modifications
US8706833B1 (en) 2006-12-08 2014-04-22 Emc Corporation Data storage server having common replication architecture for multiple storage object types
US20080243684A1 (en) * 2007-03-19 2008-10-02 Steven Ng Method and apparatus for funding a transaction
US8966080B2 (en) * 2007-04-13 2015-02-24 Emc Corporation Systems and methods of managing resource utilization on a threaded computer system
US8775475B2 (en) * 2007-11-09 2014-07-08 Ebay Inc. Transaction data representations using an adjacency matrix
US8046324B2 (en) 2007-11-30 2011-10-25 Ebay Inc. Graph pattern recognition interface
US8145805B2 (en) * 2008-06-09 2012-03-27 Emulex Design & Manufacturing Corporation Method for re-sequencing commands and data between a master and target devices utilizing parallel processing
US20100017581A1 (en) * 2008-07-18 2010-01-21 Microsoft Corporation Low overhead atomic memory operations
US8166481B2 (en) * 2008-10-20 2012-04-24 Microsoft Corporation Transaction processing in transactional memory
US8001548B2 (en) * 2008-10-20 2011-08-16 Microsoft Corporation Transaction processing for side-effecting actions in transactional memory
CA2750279C (en) 2009-02-13 2019-03-26 Ab Initio Technology Llc Managing task execution
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
EP3287896B1 (en) 2010-06-15 2023-04-26 Ab Initio Technology LLC Dynamically loading graph-based computations
JP5652047B2 (ja) * 2010-08-13 2015-01-14 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US9274862B2 (en) * 2010-12-09 2016-03-01 Mimecast North America Inc. Reducing latency in performing a task among distributed systems
US9529355B2 (en) * 2011-11-11 2016-12-27 Rockwell Automation Technologies, Inc. Control environment change communication
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9740549B2 (en) * 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9384004B2 (en) * 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9524195B2 (en) 2014-02-27 2016-12-20 International Business Machines Corporation Adaptive process for data sharing with selection of lock elision and locking
CA3128713C (en) 2013-12-05 2022-06-21 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US9311178B2 (en) 2014-02-27 2016-04-12 International Business Machines Corporation Salvaging hardware transactions with instructions
US9645879B2 (en) 2014-02-27 2017-05-09 International Business Machines Corporation Salvaging hardware transactions with instructions
US9361041B2 (en) 2014-02-27 2016-06-07 International Business Machines Corporation Hint instruction for managing transactional aborts in transactional memory computing environments
US9262206B2 (en) 2014-02-27 2016-02-16 International Business Machines Corporation Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments
US9575890B2 (en) 2014-02-27 2017-02-21 International Business Machines Corporation Supporting atomic accumulation with an addressable accumulator
US20150242216A1 (en) 2014-02-27 2015-08-27 International Business Machines Corporation Committing hardware transactions that are about to run out of resource
US9442853B2 (en) 2014-02-27 2016-09-13 International Business Machines Corporation Salvaging lock elision transactions with instructions to change execution type
US9430273B2 (en) 2014-02-27 2016-08-30 International Business Machines Corporation Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration
US9411729B2 (en) 2014-02-27 2016-08-09 International Business Machines Corporation Salvaging lock elision transactions
US9424072B2 (en) 2014-02-27 2016-08-23 International Business Machines Corporation Alerting hardware transactions that are about to run out of space
US9329946B2 (en) 2014-02-27 2016-05-03 International Business Machines Corporation Salvaging hardware transactions
US9442775B2 (en) 2014-02-27 2016-09-13 International Business Machines Corporation Salvaging hardware transactions with instructions to transfer transaction execution control
US9336097B2 (en) 2014-02-27 2016-05-10 International Business Machines Corporation Salvaging hardware transactions
US9465673B2 (en) 2014-02-27 2016-10-11 International Business Machines Corporation Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling
US9471371B2 (en) 2014-02-27 2016-10-18 International Business Machines Corporation Dynamic prediction of concurrent hardware transactions resource requirements and allocation
US9524187B2 (en) 2014-03-02 2016-12-20 International Business Machines Corporation Executing instruction with threshold indicating nearing of completion of transaction
GB2529246A (en) * 2014-08-15 2016-02-17 Ibm Method for securing integrity and consistency of a cloud storage service with efficient client operations
JP2016081169A (ja) * 2014-10-14 2016-05-16 富士通株式会社 情報処理装置、データ処理システム、データ処理管理プログラム、及び、データ処理管理方法
US11314544B2 (en) * 2015-02-09 2022-04-26 Red Hat, Inc. Transaction log for audit purposes
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
CA3005263C (en) 2015-12-21 2021-06-15 Ab Initio Technology Llc Sub-graph interface generation
US11741084B2 (en) * 2019-09-27 2023-08-29 Autodesk, Inc. High frequency data management (HFDM)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4224664A (en) * 1976-05-07 1980-09-23 Honeywell Information Systems Inc. Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system
US4249241A (en) * 1978-10-23 1981-02-03 International Business Machines Corporation Object access serialization apparatus for a data processing system
US4627019A (en) * 1982-07-08 1986-12-02 At&T Bell Laboratories Database management system for controlling concurrent access to a database
US4881166A (en) * 1987-07-24 1989-11-14 Amoco Corporation Method for consistent multidatabase transaction processing
JPH0256625A (ja) * 1988-08-23 1990-02-26 Hitachi Ltd データ共用システムおよびデータ更新方式
US5193188A (en) * 1989-01-05 1993-03-09 International Business Machines Corporation Centralized and distributed wait depth limited concurrency control methods and apparatus
US5319773A (en) * 1990-05-16 1994-06-07 International Business Machines Corporation Asynchronous resynchronization of a commit procedure
US5212788A (en) * 1990-05-22 1993-05-18 Digital Equipment Corporation System and method for consistent timestamping in distributed computer databases
US5263156A (en) * 1990-12-20 1993-11-16 Bell Communications Research, Inc. Parallel, distributed optimistic concurrency control certification using hardware filtering

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007531156A (ja) * 2004-03-29 2007-11-01 マイクロソフト コーポレーション データベース復旧中のスナップショットクエリのためのシステムおよび方法
JP2010510590A (ja) * 2006-11-17 2010-04-02 マイクロソフト コーポレーション ソフトウェアトランザクションのコミット順序および競合の管理
JP4698757B2 (ja) * 2006-11-17 2011-06-08 マイクロソフト コーポレーション ソフトウェアトランザクションのコミット順序および競合の管理
US8010550B2 (en) 2006-11-17 2011-08-30 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8024714B2 (en) 2006-11-17 2011-09-20 Microsoft Corporation Parallelizing sequential frameworks using transactions
US8402447B2 (en) 2006-11-17 2013-03-19 Microsoft Corporation Parallelizing sequential frameworks using transactions
JP2016537708A (ja) * 2013-10-18 2016-12-01 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited メモリへの同時アクセス

Also Published As

Publication number Publication date
GB2256514A (en) 1992-12-09
DE4216871C2 (de) 2001-09-06
GB2256514B (en) 1994-11-16
GB9210876D0 (en) 1992-07-08
US5504900A (en) 1996-04-02
DE4216871A1 (de) 1993-01-21

Similar Documents

Publication Publication Date Title
US5504900A (en) Commitment ordering for guaranteeing serializability across distributed transactions
US5504899A (en) Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5701480A (en) Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US7716249B2 (en) Transaction and task scheduler
EP0735473B1 (en) Method and apparatus for managing a database in a distributed object operating environment
JP3672208B2 (ja) 階層化トランザクション処理方法
Mueller et al. A nested transaction mechanism for LOCUS
US7720891B2 (en) Synchronized objects for software transactional memory
US5742785A (en) Posting multiple reservations with a conditional store atomic operations in a multiprocessing environment
US8689221B2 (en) Speculative thread execution and asynchronous conflict events
Ulusoy Processing real-time transactions in a replicated database system
JPH0296849A (ja) Tpキューイングシステムにおける正確に1回のセマンティクス
Son et al. A token-based synchronization scheme for distributed real-time databases
Pandey et al. LIFT-A new linear two-phase commit protocol
US6092084A (en) One system of a multisystem environment taking over log entries owned by another system
Son Synchronization of replicated data in distributed systems
Shu et al. Correctness criteria and concurrency control for real-time systems: a survey
Rawashdeh et al. An optimistic approach in distributed database concurrency control
Lam et al. Transaction scheduling in distributed real-time systems
EP0817019A2 (en) Method of stratified transaction processing
Son et al. Approaches to design of real-time database systems
O'Neil et al. Towards predictable transaction executions in real-time database systems
Chen et al. Research issues for a real-time nested transaction model
Shah et al. A Survey on Real Time Database
Raz Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing