JP2531881B2 - 並行制御方法 - Google Patents

並行制御方法

Info

Publication number
JP2531881B2
JP2531881B2 JP3320458A JP32045891A JP2531881B2 JP 2531881 B2 JP2531881 B2 JP 2531881B2 JP 3320458 A JP3320458 A JP 3320458A JP 32045891 A JP32045891 A JP 32045891A JP 2531881 B2 JP2531881 B2 JP 2531881B2
Authority
JP
Japan
Prior art keywords
transaction
wait
transactions
waiting
depth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP3320458A
Other languages
English (en)
Other versions
JPH06103132A (ja
Inventor
ピーター・エイ・フラナシェク
ジョン・ティモシー・ロビンソン
アレクサンダー・トマシアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06103132A publication Critical patent/JPH06103132A/ja
Application granted granted Critical
Publication of JP2531881B2 publication Critical patent/JP2531881B2/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database

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)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般に、マルチ・ユー
ザー・データ処理環境における並行制御に、より具体的
には、待機木の深さを所定の深さに制限し、かつコンフ
リクト(衝突)を解決するためのトランザクションによ
って行われた経過を考慮に入れる、新規な並行制御(C
C)方法に関するものである。本発明の良好な実施例に
よれば、集中した環境に適用したとき、待機の深さは1
に制限される。本発明は、時間に基づいた待機関数を採
用することにより、分散環境に一般化される。
【0002】
【従来の技術】マルチ・ユーザー・データ処理環境にお
いては、2人以上のユーザーがデータベース中のレコー
ドのフィールドを、そのフィールドの初期の値に基づい
て更新しようと試みるときの問題を避けるために、ある
種の並行制御が必要である。並行制御の1つのアプロー
チは、ロッキングとして知られている。他のアプローチ
は、タイム・スタンプ法又は楽天的な並行制御として知
られる。これら2つのうちでは、広く使われているとい
う点で、ロッキングがより重要である。
【0003】トランザクションは、ロック・マネージャ
と呼ばれるシステム構成要素に要求を出すことによっ
て、レコードに対するロックを取得できる。もし、トラ
ンザクションがあるオブジェクト、例えばデータベース
・レコードに対する排他的なロックを保持していると、
他のトランザクションは、最初のトランザクションがそ
のロックを解放するまでは、そのオブジェクトに対して
いかなる型のロックも獲得することができない。レコー
ドを更新しようとするトランザクションは、最初に、そ
れに対するロックを取得しなければならない。もしロッ
クが取得できなければ、そのトランザクションはブロッ
クされ、待機状態に入る。そのレコードが利用可能にな
り、ロックが認められた時に、そのトランザクションは
再始動される。このロッキング・プロトコルは、更新の
問題を解決するが、2つの他の問題を引き起こす。1つ
は、デッドロックの問題であり、この場合、2つ以上の
トランザクションが、同時に待機状態に入り、各々が、
それが進行するために必要なロックを他のトランザクシ
ョンが解放するのを待機する。高性能のアプリケーショ
ンにおいて(典型的には、かなりの数のトランザクショ
ンが並行して処理されている場合に)、起こりうる他の
問題は、たとえデッドロックが存在しない場合であって
も、これらのトランザクションの多く又はほとんどのも
のが所定の時間待機する可能性が生じることである。並
行性のレベル(同時に進行しようとするトランザクショ
ンの数)が増大することは、与えられた時間に(待機し
たりデッドロックに入ったりすることなく)有用な仕事
をする数を実質的に減少させる。
【0004】デッドロックの問題は、広範に研究されて
いる。一般に、ロック・マネジャは、デッドロックの発
生を検出し、それを解決することが出来なければならな
い。デッドロックの解決は、ロックされたトランザクシ
ョンの1つを選択し、それをロール・バックすることよ
り成る。この処理は、トランザクションの終了と、それ
が行った更新の取り消しと、関連の資源が他のトランザ
クションに割り当てられるようにそのロックを解放する
ことを含む。
【0005】データベースのトランザクションにおける
並行性に関連する一般的な問題は、C.J.Date著「An Int
roduction to Database System」第2巻、Addison-Wesl
ey Publishing Company (1983) の第3章に詳細に考察
されている。種々の並行性の問題およびプロトコル、特
にロッキング型の並行制御についてのより以上の情報
は、この教科書を参照されたい。
【0006】実行時優先順位(running priority:R
P)方式の並行制御(CC)は、P.A.Franaszek and J.
T.Robinson, ACM Transactions on Database Systems,
10,March 1985, pp.1 to 28 の論文 "Limitations of C
oncurrency in TransactionProcessing" に記載されて
いる。この方法は標準的なロッキングに比べると、性能
が改善されている。というのは、これはブロックされた
(すなわちロックを待機している)どのトランザクショ
ンも、他のブロックされたトランザクションによって保
留されないようにすることによって、「本質的なブロッ
キング」に近づけているからである。
【0007】RP法に伴う問題は、楽天的な並行制御を
含む他の方法と同様に、2乗効果(quadratic effect;
多数のデータ項目をアクセスする「長い」トランザクシ
ョンはロック競合により「2乗」式に悪影響を受ける現
象)である。より具体的には、トランザクションがより
多くのロックを保持すればするほど、それはロック・コ
ンフリクトを起こしやすくなり、システムにおいてトラ
ンザクションにより消費される時間は、保持されるロッ
クの数に対して線形的に増加し、トランザクションはよ
りロック・コンフリクトを受けやすくなり、かつ再始動
しやすくなる。
【0008】分散トランザクション処理システムの一般
的なケースにおける並行制御の問題は、非常に多くのそ
のようなシステムの典型的なプロセッサと、プロセッサ
のスピードと、データ・アクセスの待ち時間との間の差
異が増加するに従って、ますます増えつつある。分散シ
ステムにおいては、各トランザクションは,そのシステ
ムの異なったノードに並行して走っているサブトランザ
クションとのたくさんの通信として実行する。各サブト
ランザクションは、それを実行しているノードに格納さ
れているデータ項目にアクセスする。そのようなシステ
ムの外観と、既知の分散制御方法は、例えば、Korth an
d Silberschatz著「Database System Concepts」McGraw
-Hill(1986)の12章に記載されている。
【0009】分散並行制御にもっとも一般的に使用され
るアプローチは、全てのサブトランザクションを実行し
ているノードのそれぞれに、標準集中ロッキング方法を
使用することである。与えられたトランザクションの各
サブトランザクションは、全てのサブトランザクション
信号が完結するまで、それが獲得した全てのロックを保
留し、その後、コミット・プロトコルがリカバリーの目
的でフォローする。そして全てのロックは、コミット・
プロトコルの完結部分として各サブトランザクションに
よって、開放される。より深刻な問題は、データ競合
レベルが、同じような全体の処理能力かつトランザクシ
ョン処理ワークロードの集中システムに比べて、著しく
高くなりがちであると言うことである。これは、以下の
理由による。第一に、集中システムに比べて、実行の
間、またはコミットフェーズの間、サブトランザクショ
ン中の通信のために、各トランザクションが余計に遅れ
る。第二に、分散システムのプロセッサの総数が、集中
させたケースよりも著しく多くなる。それ故に、プロセ
ッサを利用することに対して、並行性のより高い全体的
なレベルが要求される。
【0010】データ競合の総量が事実上増加する分散シ
ステムによってサポートされたトランザクションは、よ
り長く、より複雑になる傾向にある。これによって、ス
ループットの全体的な可能性を制限する。並行制御にお
ける通常のロッキング方法は、データ競合が重要な要素
となる環境においてはうまく適合しない。
【0011】
【発明が解決しようとする課題】本発明の目的は、不必
要なロック・コンフリクトを減少させる、新規な並行制
御方法を提供することである。
【0012】本発明の他の目的は、RP法におけるよう
に、待機木の深さを適当に制限し、さらにコンフリクト
を減少させる新規な並行制御方法を提供することであ
る。
【0013】本発明のそのほかの目的としては、高いデ
ータ競合状況下での既知のロッキング方法の問題である
デッドロックの検出と、スループットの制限を回避する
分散並行制御を提供することである。
【0014】本発明のさらなる目的は、他の既知の方法
を用いることによって生じる過度のトランザクション再
スタートの問題を回避する、分散トランザクション処理
システムのために、待機の深さを制限された並行制御を
提供することである。
【0015】
【課題を解決するための手段】本発明によれば、即座に
トランザクションを再始動する変わりに、トランザクシ
ョンの再始動は、コンフリクトが生じた時点における全
てのコンフリクトを生じているトランザクションが、完
了するか又は再始動するまで遅延される。本発明の待機
深さ制限(WDL)並行制御は、待機木の深さをRP法
のように1に制限しながら(従ってブロックされたトラ
ンザクションは他のトランザクションをブロックできな
い)、さらに下記のような利点を有する。第一に、それ
は、アクセスされるデータ項目の数及びトランザクショ
ンにより取得される、ロックの数を考慮に入れることに
より反比例的に長くなる応答時間を、長いトランザクシ
ョンが有するという問題を軽減することである。第二
に、再始動したトランザクションは、そのロックを解放
するが、その再始動は、コンフリクトを起こしているト
ランザクションが完了するか又は再始動するまで、遅延
される。その結果、CPU処理の浪費が減少する。とい
うのは、そのような再始動したトランザクションは、そ
の元のトランザクションによりコンフリクトを生じ、再
び再始動をする可能性があるからである。第3に、(活
動状態のトランザクションと)ロックコンフリクトを生
じ、かつブロックされなければならない活動状態のトラ
ンザクションは、もしそれが他のトランザクションをブ
ロックしているならば、それ自身再始動が考慮されると
いう点で、RP法と比べると、WDL法は対照的であ
る。これは、トランザクションが、他のブロックされた
トランザクションによりブロックされないことを保証す
る。
【0016】集中システムに適用した前述の実施例によ
ると、本発明にしたがったWDL法は、トランザクショ
ンによって保留される多数のロックとして、トランザク
ションの長さを定義する。このアプローチは、良い性能
を生じる事が示されている。分散したケースで、どんな
に特別なサブトランザクションを与えても、大域のトラ
ンザクションの全てのサブトランザクションによって保
留されたロックの総数は、過度の通信を引き起こし、そ
してどんな場合でも、その情報はそれが最終的に集めら
れた時間によって使用されなくなる。本発明にしたがっ
たWDL法によれば、時間に基づいた長さ関数が導入さ
れる。各大域トランザクションは、開始時間を割り当て
られ、そしてこの開始時間は、各サブトランザクション
のためのスタートアップ・メッセージを含んでおり、そ
のため、大域トランザクションの開始時間は、いかなる
実行しているノードのサブトランザクションの一つに
も、局所的に知られる。与えられたトランザクションに
おけるその長さは、(現在の時間)−(大域トランザク
ションの開始時間)と定義される。
【0017】
【実施例】まず図1を参照すると、ここには典型的なマ
ルチユーザー・集中コンピュータ・システム10を示
す。このシステム上で、本発明に従って待機深さ制限
(WDL)並行制御(CC)は、実施される。コンピュ
ータ・システム10は、ターミナル・アクセス・ネット
ワーク14を通って、複数のオンライン・ユーザー・タ
ーミナル12をサポートし、それはローカル又はリモー
ト又は両者の組み合わせである。コンピュータ・システ
ム10にはまた、複数の直接アクセス制御装置(DAS
D)16と18が接続しており、それは典型的なディス
ク・パックである。当然のことであるが、DASD16
と18をコンピュータ・システム10に接続するには、
市販され既知の技術の制御装置(図示せず)を通る。
【0018】コンピュータ・システム10は、幾つかの
処理をサポートする。これらの第一は、ターミナル・ア
クセス・ネットワーク14へのインターフェースを提供
する通信アクセス方法20である。通信アクセス方法2
0は、順々に、各種のトランザクション処理領域24へ
のトランザクション・キュー22と通信を行う。トラン
ザクション・マネージャ26は、各種のトランザクショ
ン処理領域24における処理を制御し、バッファ・マネ
ージャ27を通ってDASD16中のデータベース・デ
ィスクへのアクセスを制御し、そしてログ・マネージャ
28を通ってDASD18中のログ・ディスク上のトラ
ンザクションのログの保守を制御する。図1に示したシ
ステムから、共通データベースへ同時にアクセスするタ
ーミナル12における複数のユーザーは、トランザクシ
ョン・マネージャ26にとって並行制御29が必要であ
ることを予測する。
【0019】図1に示されたシステムは、IBM社製の
MVSオペーティング・システム(OS)で動くIBM
社製のシステム/370(両者ともよく知られた技術で
ある)において実施される。一般的な特徴についてのさ
らなる情報は、"MVS",of AnIntroduction to Operating
systems (Harvey M.Deitel著,Addison-Wesley(1984))
21章を参照されたい。IBMシステム/370につい
てのより詳細な情報は、IBMのマニュアル等を参照さ
れたい。
【0020】本発明によって扱われた問題を図2に示
す。もしコンピュータ・システム10上で実行している
トランザクションCが、トランザクションBによって保
留されたロックを要求したら、トランザクション・マネ
ージャ26は、一つのトランザクションを再スタートす
る事によってコンフリクトを解決する。ここで、トラン
ザクションBは、同様にコンピュータ・システム10上
で走っており、それ自身はコンピュータ・システム10
上で走っている3番目のトランザクションAによって
(現在のものとは異なったロック・コンフリクトのため
に)ブロックされている。どのようにしてWDL法が本
発明にしたがって作用するかの例を以下に示す。最初
に、トランザクションBが、ロック要求を出しているト
ランザクションであり、この要求はトランザクションA
とコンフリクトを生じるものと仮定する。WDL法は、
この場合待機木の中のトランザクションの性質に基づい
てトランザクションA又はトランザクションBのいずれ
かを再始動することにより、待機木の深さを1にまで減
少させる。以上は単なる概説であり、完全に一般的な説
明は後述する。
【0021】実関数Lにより表されるトランザクション
特有の情報を用いて、全ての待機木の深さを所定の正の
整数値dに制限する方法の類について説明する。ただ
し、任意の時点におけるシステム中の各トランザクショ
ンTに関してL(T)は、トランザクションの現在の「長
さ」のある尺度を与える。この長さ関数を実現する方法
は後ほど詳細に説明する。この説明のために、Tjが根
であり{Ti}jがノードである待機木をVjとする。2以
上の{Ti}jが実際には同一のトランザクションであると
いう事が生じ得る。この状況は、コンフリクトが対にな
って取り扱われるので、起きる可能性がある。その結
果、デッドロックの起きる可能性がある。従って、もし
1よりも大きな深さの木が許されるならば、デッドロッ
クの場合が考慮されなくてはならない。しかしながら、
WDL(d)でd=1の場合、デッドロックは自動的に消
去される。デッドロックは、少なくとも2つの長さの待
機連鎖を意味するからである。ここで、WDL(d)とし
て言及される並行制御方法の類は次の通りである。
【0022】待機木Vjに関連するロック・コンフリク
トが与えられているとすると、並行制御方法は、それが
[Vj,{L(Ti)}j]の関数として{Ti}jのある部分集合を
再始動させ、従って深さがd以下に減少されるか又は保
たれるならば、それはWDL(d)のメンバーである。た
だし、VjはトランザクションTjを根とする待機木であ
り、そのノードは1組のトランザクション{Ti}jであ
る。Lは関数であり、L(Ti)はトランザクションTi
の現在の長さの度である。{L(Ti)}jは待機木Vj中
のトランザクションTiの現在の長さの集合である。
【0023】これまでの説明は、完全に一般的なもので
ある。本発明の良好な実施例では、WDL(1)の方法が
説明される。すなわち、全ての待機木が1の深さに制限
されるような並行制御方法である。長さ関数Lを実現す
るいくつかの方法は次の通りである。(1)L(T)はト
ランザクションTによって現在保持されているロックの
数である。(2)L(T)は現在のものを含めてトランザ
クションTの何らかの起動により保持されたロックの数
の最大値である。(3)L(T)は現在のものまでのTの
各起動により保持されたロックの数の和である。長さの
関数を他の形で実現することも可能である。
【0024】図3Aを参照して、2つの活動状態のトラ
ンザクションT^およびTが存在し、m個およびn個の
トランザクションが、初期状態として図に示すようにそ
れぞれ待機している(mまたはnはゼロであり得る)と
仮定する。WDL(1)の下では、1よりも大きな深さの
待機木は存在しないので、Ti^またはTj^のいずれかを
待機するトランザクションは存在しない。従って、これ
は2つの活動状態のトランザクションに関する一般的な
場合を表している。T^はTまたはTjの一つとコンフリ
クトを生じるロック要求を行うものと仮定する。深さ2
又は3の待機木が生じうる一時的な状態が図3B、図3
C、図3Dに示されている。図3C及び図3Dに示した
場合に関して、これらの場合が生じるために、nはゼロ
よりも大きくなければならない。本発明の良好な実施例
に関して、集中環境で実施したものは図1に示され、そ
の方法は図4の流れ図に説明されている。そのプロセス
は機能ブロック30から始まり、活動トランザクション
T^が他のトランザクションとコンフリクトを生じるロ
ックを要求する。
【0025】図3Bでは場合Iを説明する。他のトラン
ザクションが活動状態にあるか否かを見るために、判定
ブロック32で最初にテストが行われる。トランザクシ
ョンTは場合Iでは活動状態なので、このテストの結果
は肯定的である。次に、判定ブロック34で、トランザ
クションT^を待機しているトランザクションが存在す
るか否かを判定するテストが行われる。もしm=0であ
れば、待機木の深さが1であり、トランザクションT^
は機能ブロック36に示すように待機を行う。さもなけ
れば、m>0であり、待機木は深さが2である。深さを
1に減少させるために、判定ブロック40で判定される
ように、L(T^)≧L(T)でありかつ各iごとにL(T^)
≧L(Ti^)であるのでなければ、機能ブロック38でト
ランザクションT^が再始動される。また、判定結果が
肯定的であれば、トランザクションT^に優先権が与え
られ、機能ブロック42に示すようにトランザクション
Tが代わりに再始動される。
【0026】図3Cの場合IIを説明する。この場合、判
定ブロック32のテストが否定的であり、そして判定ブ
ロック44で、待機中の何らかのトランザクションがト
ランザクションT'を待機しているか否かを判定するテ
ストが行われる。場合IIにおいては、このテスト結果は
否定的である。すなわちm=0であり、待機木は深さが
2である。深さを1に減少させるために、判定ブロック
46のテストで判定されるように、L(T1)≧L(T)か
つL(T1)≧L(T')でなければ、機能ブロック4でト
ランザクションT1に優先権が与えられ、逆の場合は、
機能ブロック42に示すようにトランザクションTが代
わりに再始動される。
【0027】図3Dには場合IIIが説明されている。こ
の場合、判定ブロック44のテストが肯定的である。す
なわち、第一のまたは要求を行っているトランザクショ
ンを待機している他のトランザクションが存在する。従
って、待機木は深さが3である。その深さを1に減少さ
せるために、判定ブロック48で判定されるように、L
(T^)≧L(T1)かつL(T^)≧L(Ti^)でなければ、機
能ブロック38でトランザクションT^が再始動され、
また逆の場合には、トランザクションT^に優先権が与
えられ、代わりに機能ブロック47でトランザクション
T1が再始動される。
【0028】前述のWDL(1)における並行制御方法の
良好な実施例は、WDL(d)でd>1における良好な実
施例に書かれた技法を用いて、それと同じ方法に率直に
設計する。この例として、WDL(2)のときの並行制御
方法を記述する。この方法では、待機の深さが2に制限
されている。
【0029】この例でのWDL(2)の方法は、全ての現
在の待機木の深さは2以下であり、一時的に待機木の深
さが2より大きくなるときの結果起こるコンフリクトで
あるとする。この待機木は深さが2以下に減少するほ
ど、並行制御方法がトランザクションを再始動すること
に注意を要する。一時的な待機の深さの最大は5であ
り、これが起こるのは次の場合に限られる。(a)初期
に深さが2の2つの待機チェーンがあり、例えば、実行
しているトランザクションT1を待機するトランザクシ
ョンT2を待機しているトランザクションT3、そして、
実行しているトランザクションT4を待機しているトラ
ンザクションT5を待機しているトランザクションT6で
ある。(b)トランザクションT4はトランザクション
T3とコンフリクトする要求を発し、待機チェーンはT6
->T5->T4->T3->T2->T1(A->Bは、AはBを待機するこ
とを表す)という結果になる。せいぜい1トランザクシ
ョンが、適切な値に待機の深さを減少する、再始動の設
計方法に従って(これは、WDL(1)における方法の良
好な実施例に使用されている技法である)、この場合に
再始動する候補として、2つだけトランザクションがあ
る、すなわちトランザクションT3またはT4である。こ
れらは、一時的な待機チェーンにおいて中間のトランザ
クションであることに注意を要する。トランザクション
T4が走りトランザクションT3が待機しているコンフリ
クトの結果として、トランザクションT4の要求の前か
ら、本発明の良好な実施例によって示された他の技法が
使用可能である。その技法は、待機しているトランザク
ションの長さが十分に長くない限り、実行しているトラ
ンザクションに優先権を与える。これは次のような規則
の結果である。すなわち、全ての待機の深さを2又はそ
れ以下に減らすために、トランザクションT3の長さが
トランザクションT2とT4の両方より大きいときは、ト
ランザクションT4を再始動し、そうでないときは(既
に待機している)トランザクションT3を再始動する。
そのほかの二つのケースにおいて、一時的な待機の深さ
が3又は4であるときも、前述のような技法が用いられ
る。
【0030】これまで述べた中で、ロックは排他的であ
ると想定されていた。これは、ロックはせいぜい一つの
トランザクションによって保持または所有されるからで
ある。これは、トランザクション処理システムのための
並行制御方法のもっとも基本的なタイプであり、待機中
の関係のトランザクションを実施するデータ構造は、指
示された複数の手段の木の集まりであるという性質を持
つ。しかしながら、排他的なロックをマルチモードのロ
ックに一般化する方法はよく知られている。ここでロッ
クは、幾つかのモードの一つであるトランザクションに
よって保持されることができる。そして同じロックは、
そのようなトランザクションが各々保持するロックにお
ける、全てのモードに適合する事を供給する複数のトラ
ンザクションによって保持されることができる。マルチ
モード・ロックについて記載している参考資料として、
例えば、Korth and Silberschtz著"Database System Co
n-cepts"(supra)の11章のセクション3がある。これ
には、次のようなことが書かれている。すなわち、マル
チモード・ロックはモード適合マトリックスによって定
義される。そしてマルチモード・ロックの最も簡単な例
は、共用−排他ロックであり、ここで共用モードは、共
用モードと適合し、他のモードの組み合わせ(共用−排
他及び排他−排他)は適合しない。
【0031】マルチモード・ロックを使用するとき、ト
ランザクション待機中の関係は、もはや複数の手段の木
の集まりではない。さらに、一つのロックのための待機
中の関係は、指示された連続−並行グラフによっていつ
も表される。これは、例えば図5A及び図5Bによって
示される(ここでは簡単のために共用−排他(S−X)
モードのロックを示している)。これによって、同じタ
イプのグラフはマルチモード・ロックの一般的なケース
を扱い、それは待機の発生が並行か連続かの決定をする
ただ一つのモード適合であり、かつ活動モードではない
ことが分かる。図5A及び図Bは、両方とも一つのロッ
クのケースであり、そして複数のロックを伴うとき、こ
こに示されたタイプの指示された連続−並行グラフは、
一般的により複雑に指示されたグラフに結合する。図5
Aに示されているように、単一のトランザクションT1
は、排他モードにロックを保持でき、複数のトランザク
ションT2、T3、T4と共に共用モードにアクセスする
ために並行に待機しており、そして排他的アクセスのた
めにT5及びT6によって連続する待機を伴う。図5Bに
示されているのは、共用モードの複数のトランザクショ
ンT1、T2、T3によって保持されることができ、そし
てかなり排他的かつ共用アクセスのためにT4及びT5に
よって連続する待機を伴う。図5Bにおいてトランザク
ションT5は待機させられる。たとえそれが、適合モー
ドであって、T4よるより早期な非適合要求によって、
現在保持されているロックを要求されるものであっても
である。これは、「スターベーション」つまり要求の無
期限の遅れを防止するために、実際に通常用いる技法で
ある。
【0032】トランザクション待機中の関係は、マルチ
モード・ロックの場合における木よりも指示されたグラ
フであるが、並行制御のためのWDL法は、前述のよう
に排他的ロックの場合のためであり、そして待機木は関
係するトランザクションを一緒に集めることによってこ
のより一般的なケースに用いられる。これは次のように
行われる。いかなる指示されたグラフ待機トランザクシ
ョンが与えられようとも、2又はそれ以上の適合モード
のロックを並列に待機しまたは保持しているトランザク
ションの各集まりをみな一緒に集めて、単一のスーパー
・トランザクションにする。全てのそのようなトランザ
クションの集まりが、一緒に集まった後で、その結果
は、ノードとともに指示された待機グラフで、それは単
一のトランザクションまたはそのようなスーパー・トラ
ンザクションである。そのような待機グラフが与えられ
ると、前述のWDL法は、すぐに適用される。ここで、
スーパー・トランザクションを再始動するというのは、
そのスーパー・トランザクションを作成するグループ内
のどのトランザクションもみな再始動し、決定されるこ
とのできるスーパー・トランザクションの長さを提供す
る事を意味する。単一のトランザクションの長さが決定
するための方法が与えられると、以前に与えられた例、
またはスーパー・トランザクションの長さを決定する方
法の例は、(1)その長さはそのグループ内のそれぞれの
単一のトランザクションの長さの合計であり、(2)その
長さはグループ内のそれぞれの単一のトランザクション
の長さの最大であり、または(3)その長さはそのグルー
プ内の全てのトランザクションによって保持した別個の
ロックの合計数である。もし単一トランザクションの長
さが、前述のトランザクション(これは、より前の例で
あった)によって保持したロックの数によって決定され
るならば、そのスーパー・トランザクションの長さの例
(3)は、マルチモード・ロックは使用中で、かつ単一の
ロックは複数のトランザクションによって保持されるか
ら、例(1)と同じではない。結局、スーパー・トランザ
クションの長さを決定するための他の方法は(単一トラ
ンザクションの長さの合計を重み付けるような、ここで
例えば,トランザクションが走っているか待機している
かによって決定する、というように重み付けができれ
ば)、可能であり前述のようにして容易に案出する事が
できる。
【0033】本発明によるWDLによる並行制御方法
は、一般的に図1に示されるような集中環境に限定する
ものではなく、図6に示されるようなタイプの分散環境
にも適用され得る。ここで、複数のコンピュータ・シス
テム101、102、103は、それぞれ図1に示すコン
ピュ−タ・システム10と同じであり、大域ネットワー
ク50に接続されている。
【0034】上述のWDLによる並行制御方法は、集中
システムでは良好に作動する。しかしながら、WDLを
効果的な方法で分散トランザクション処理に拡張するこ
とは、重要な問題である。これは、集中WDLでは、そ
れぞれのトランザクションにより保持されるロックの
数、及び全てのトランザクションの間の待機関係上の、
大域な情報を使用するからである。本発明に従えば、W
DLによる並行制御方法は、異なった機能を採用するこ
とによって、分散トランザクション処理システムに適用
される。
【0035】通常のロッキングに基づいた分散並行制御
へのアプローチは、前述の Korth and Silberschatz に
次のように記述されている。(1)ロック表は、それぞれ
のノードでそのノードでの局所並行制御手段によって維
持する、(2)サブトランザクションは、データ項目上で
適切なロックモードにアクセスされるロックを獲得す
る、(3)他のサブトランザクションによって非適合モー
ドに保持されるデータ項目にアクセスする一つのサブト
ランザクションは、コンフリクトしているサブトランザ
クションが確約されるか、失敗するまで(そして待機し
ているサブトランザクションはその前に再始動させら
れ)、コンフリクトしているサブトランザクションは待
機させられる(待機関係は局所的に維持される)。(4)
サブトランザクションによって保持されるリカバリーの
目的を要求するロックは、大域トランザクションが確約
または失敗するまで解放されない。
【0036】WDLの一般的な形式においては、長さの
関数は待機関係と同時に再始動の決定をするために使用
される。集中ケースにおいては、トランザクションTの
長さを、Tにより保持されるロックの数として決めるた
めに都合がよく、そしてこれはよい性能をもたらすこと
が示された。しかしながら、図6に示すような分散環境
においては、特定のサブトランザクションが与えられる
と、大域トランザクションの全てのサブトランザクショ
ンにより保持されるロックの総数の決定は、過度の通信
を引き起こすであろう。そして、どんな場合でも情報は
最終的に集めた時間によって使用できなくなる。従っ
て、分散WDLのために、時間に基づいた長さの関数
は、次のように使用される。各大域トランザクション
は、始動時間を割り当てられており、そしてこの始動時
間はそれぞれのサブストラクションへの開始メッセージ
を含んでおり、そのため大域トランザクションの始動時
間は、あらゆるノードで実行しているそのサブストラク
ションの一つとして局所的に知られる。トランザクショ
ンを与えると、それの長さは(現在の時間)−(大域ト
ランザクションの始動時間)として定義される。このや
り方で決められた長さは、大域トランザクションの全て
のサブトランザクションによって保持されるロックの総
数に非常に相関させられる。分散されたクロックの同期
は広く検討されているが、極端に正確なクロックの同期
は(分散システムへの適用としての)本発明の目的には
要求されない。典型的な日時クロックは外部標準参照時
間に正しくセットされており、それで十分である。
【0037】以下の表記及び取り決めは、それに続く記
載において使用される。 1.時間中のあらゆるポイントに大域トランザクション
のセットがある{Ti}。 2.それぞれのトランザクションTiは、始めのまたは
初期のノードはPT(i)と表され、始動時間とともにt
(Ti)と表される。 3.もしTiがノードkにサブトランザクションを持て
ば、このサブトランザクションはTikと表される。 4.2つの並行制御サブシステムがそれぞれノードkに
ある。一つはノードkで実行する全てのサブトランザク
ションTikのための待機関係とロックを管理する局所並
行制御(LCC)。そしてもう一つは、PT(i)=kを伴
ういかなるトランザクションTiをも含めて全ての待機
関係を管理し、この待機関係のセットでどのトランザク
ションのための大域再始動を決定する大域並行制御(G
CC)である。 5.同一のまたは異なったノードのシステム間で、透過
にメッセージを送出する送出機能がある。
【0038】分散トランザクション処理システムへの適
用としての本発明の一般的な考えは、(1)2つのサブト
ランザクション間でLCCがいつ待機予定になろうと
も、この情報はメッセージを通して、対応する大域トラ
ンザクションの初期ノードのGCCへ送られる、(2)ト
ランザクションがその待機と始動時間の情報を使用して
再始動されるかどうかを、各GCCは非同時的に決定す
る。LCCとGCCが非同時的に動作するため、サブト
ランザクションの待機深さが1より大きいという状況が
一時的に起こる。しかしながら、このような状況はトラ
ンザクションの確約またはGCCによる再始動されるこ
とによって結局解決される。分散システムへの適用とし
ての本発明の動作をより詳細に述べる。
【0039】ロック要求を許可する通常の機能に加え
て、サブトランザクション待機を予定し、そしてサブト
ランザクション確約または失敗処理の部分としてロック
を解放し、各LCCは以下のようになる。いつ待機Tik
->Tjkが予定されようとも、P(Ti)=P(Tj)(一つだ
けのメッセージ(Ti->Tj)の場合、ノードP(Ti)(=P
(Tj))のGCCに送られる)になるまで、メッセージ
(Ti->Tj,P(Tj),t(Tj))はノードP(Ti)のGCCに
送られ、メッセージ(P(Ti),t(Ti),Ti->Tj)はノー
ドP(Tj)のGCCに送られる。
【0040】各GCCは、LCCから受信したの前述の
メッセージを使用して更新された、大域トランザクショ
ンの待機グラフを動的に維持する。初期ノードと、メッ
セージが送られたノードが違うトランザクションのため
に、始動時間及び初期ノード情報がこれらのメッセージ
に含まれることは注意を要する。これは、各GCCは、
全トランザクションのその待機木のために有効な、始動
時間と初期ノード情報を持っているためである。各GC
Cは、この待機情報を分析し、定期的にまたは毎時のど
ちらかにメッセージは受信され、WDL法を使用してト
ランザクションを再始動すべきかを決定し、集中ケース
では前述のようにする(しかし始動時間に基づいた長さ
の機能を使用する)。タイミングの詳細によって、待機
グラフは待機深さが1以上になったときに生じる。しか
しながら、この状況はWDL並行制御方法の一般的な形
式によってカバーされる。トランザクションTiが再始
動すべきかどうかがいつ決定しようとも、トランザクシ
ョンTiのための再始動メッセージは、ノードP(Ti)に
送られる。しかしながら、トランザクションTiは確約
または失敗の局面に現在あるから、この時間にGCCに
よって待機なし関係は修正される。代わりに、トランザ
クションTiの状態は保留になる。
【0041】トランザクションTiは、ノードP(Ti)の
トランザクション・コーディネータによって取り扱わ
れ、実際の確約または失敗は、再始動によって起こる。
確約は全サブトランザクションからの成功した完成メッ
セージの受信によって開始される。失敗は、あるGCC
からの再始動メッセージの受信(または場合によって
は、サブトランザクション・ノードの例えばディスク・
エラーによる、ある他のトランザクション・コーディネ
ータからの失敗メッセージの受信)によって開始され
る。確約か失敗かは、トランザクション・コーディネー
タと既知の技法を用いる各サブトランザクションノード
のLCCの通信によって扱われる。その上に、トランザ
クションTiのための待機情報を現在維持するのに、各
GCCに適切な情報を送ることは必要である。これは、
ノードP(Ti)のGCCによって維持される待機情報の
使用を、局所的に決定する。特に、トランザクションT
iを、またはトランザクションTiが待機している所で待
機している、トランザクションの初期ノードのためのG
CCは、通知される必要がある。そのような各GCC
は、その待機木と通知からトランザクションTiを移
す。トランザクション再始動の場合、再始動は全トラン
ザクション・ノード及びそのようのGCCからの通知の
受信の後に開始される。
【0042】本発明における分散トランザクション処理
システムへの適用は、図7に示されるような簡単な例に
よって説明される。この簡単な分散システムは5つのノ
ード51、53、55、57、59からなる。各ノード
は、LCCとGCC同様に局所的トランザクション・コ
ーディネータを持つ。例には、ノード59のためのコー
ディネータ60のみが示される。動作を説明するため
に、3つのトランザクションT1、T2、T3(初期ノー
ドは51、55、59で、多種のサブトランザクション
をシステムの回りにまき散らす)がある。待機関係に入
るサブトランザクションのみが図7に示される。ノード
53で、サブトランザクションT13は、サブトランザク
ションT23により非適合モードに保持されるロックを要
求する。ノード53のLCCは(T13->T23)を予定
し、そしてメッセージはノード51と55(すなわちP
(T2)およびP(T3)それぞれ)のGCCに示すように送
られる。同時に、ノード57で、サブトランザクション
T27は、サブトランザクションT37により非適合モード
に保持されるロックを要求し、ノード57のLCCは
(T27->T37)を予定し、そしてメッセージはノード5
5と59(すなわちP(T2)およびP(T3)それぞれ)の
GCCに示すように送られる。いくらかの時間が経過
後、これらの種々のメッセージが受信され、そして待機
グラフがノード51、55、59のGCCによって更新
される。ノード55のGCCのための両方のメッセージ
が受信された後、図7に示すような深さ2の待機チェー
ンがある。ノード55にあるGCCは、局所現在時間及
び記録された開始時間を用いて、各トランザクションを
L(T2)>L(T3)かつL(T2)>L(T1)と決定する。そ
れゆえに、WDL並行制御方法に従って、トランザクシ
ョンT3の再始動を決定し、再始動メッセージをノード
59のトランザクション・コーディネータ60(すなわ
ちP(T3))に送る。ノード59のトランザクション・
コーディネータ60は、再始動メッセージを受信し、再
始動メッセージを全ての実行中のサブトランザクション
T3kに送り、またGCC更新メッセージを局所GCC及
びノード55のGCCに送ることによって、トランザク
ション再始動を開始する。
【0043】実際には、状況は図7に示す簡単な例より
も、はるかに複雑になっていることに留意すべきであ
る。GCCは、独立かつ非同期的に動作するので、同じ
待機チェーンの異なったトランザクションを再始動する
2以上のGCCによって、決定は並行してされる。しか
しながら、種々の研究の経験及び結果から、並行制御の
性能は簡単な場合に扱われた方法に従う。ゆえに、本発
明に従う分散WDL方法は、集中WDL方法と同じよう
な特徴の性能を持つことが予想される。
【0044】図6に示された分散環境で実施された本発
明の前述の実施例における、その方法を図8及び図9の
流れ図で説明する。より詳しくいえば、図8は局所並行
制御の論理を示す流れ図であり、図9は分散システムに
おける大域並行制御の論理を示す流れ図である。
【0045】図8を参照すると、まず最初はロック要求
を待機する機能ブロック62に始まる、局所並行制御の
処理である。ロック要求が受信されると、機能ブロック
63に示されるように局所ロック表を使用して処理さ
れ、そして、判定ブロック64でテストはTik->Tjkの
待機が予定されているかどうかを判定する。これはノー
ドに格納された待機グラフを調べることによって判定さ
れる。もしそのような待機が予定されていなければ、ロ
ック要求のための処理は局所ロック表を使用して完結
し、そして処理は機能ブロック62に次のロック要求を
待機するために戻る。
【0046】しかしながら、もし、Tik->Tjkの待機が
予定されていれば、次のテストは判定ブロック65でノ
ードP(Ti)とP(Tj)が同じかどうかを判定する。同じ
であれば、トランザクションTiがトランザクションTj
を待機するというメッセージは機能ブロック66のノー
ドP(Ti)の大域並行制御(GCC)へ送られ、そして
処理ループは機能ブロック62に次のロック要求を待機
しに戻る。一方、もしノードP(Ti)とP(Tj)が同じで
なければ、(Ti->Tj,P(Tj),t(Tj))というメッセー
ジは、機能ブロック67のノードP(Ti)の大域並行制
御(GCC)へ送られる。そして(P(Ti),t(Ti),Ti
->Tj)というメッセージは、処理ループが機能ブロック
62に戻る前に、機能ブロック68のノードP(Tj)の
GCCへ送られる。
【0047】次に図9を見ると、機能ブロック71で、
図8のLCCの機能ブロック66、67又は68によっ
て送られるとされる、メッセージを待機することによっ
て、GCCのための処理が開始する。メッセージが受信
されたとき、テストは、メッセージのタイプが待機中の
メッセージのタイプであるかどうかを、判定ブロック7
2で判定する。そうでなければ、機能ブロック71で他
のメッセージを待機するために戻る前に、機能ブロック
73でそのトランザクションは確約または失敗のどちら
かとなる。トランザクションは、トランザクション状態
と大域トランザクション待機グラフの局所表を更新する
ことによって確約される。
【0048】もしメッセージが待機中のメッセージのタ
イプであれば、大域トランザクション待機グラフの局所
表は機能ブロック74で更新され、そしてテストは判定
ブロック75で最大待機深さを超えたかどうかを判定す
る。そうでなければ、機能ブロック71へ戻り、もし待
機深さが超えていれば、セットXのトランザクションが
機能ブロック76で再始動のために選択される。そし
て、セットXのトランザクションTk(Tk∈X)は、
(1)メッセージをノードP(Tk)にトランザクション
Tkを再始動するために送り、(2)トランザクション
Tkの状態を、機能ブロック77によって示される全て
の局所表中で保留にする。そして機能ブロック71に次
のメッセージを待機するために戻る。
【0049】
【発明の効果】本発明によれば、他の既知の方法を用い
ることによって生じる過度のトランザクション再スター
トの問題を回避する、分散トランザクション処理システ
ムのための、待機の深さを制限する並行制御方法を提供
することができる。
【図面の簡単な説明】
【図1】本発明の一実施例において実施の手段を与えら
れた、典型的なマルチユーザー・集中コンピュータ・シ
ステムのブロック図である。
【図2】コンフリクトしたトランザクションのグラフで
ある。
【図3A】初期状態において、どのようにして、集中環
境で本発明にしたがって並行制御方法が作用するかを表
す図である。
【図3B】コンフリクトしたトランザクションにおい
て、どのようにして、集中環境で本発明にしたがって並
行制御方法が作用するかを表す図である。
【図3C】コンフリクトしたトランザクションにおい
て、どのようにして、集中環境で本発明にしたがって並
行制御方法が作用するかを表す図である。
【図3D】コンフリクトしたトランザクションにおい
て、どのようにして、集中環境で本発明にしたがって並
行制御方法が作用するかを表す図である。
【図4】図3A〜図3Dに示されたケースにおけるコン
フリクト解決プロセスを示す流れ図である。
【図5A】コンフリクトしたトランザクションにおい
て、どのようにして、マルチモード・ロックを使用した
場合に本発明にしたがって並行制御方法が作用するかを
表す図である。
【図5B】コンフリクトしたトランザクションにおい
て、どのようにして、マルチモード・ロックを使用した
場合に本発明にしたがって並行制御方法が作用するかを
表す図である。
【図6】本発明の他の実施例において実施の手段を与え
られた、典型的な分散コンピュータ・システムのブロッ
ク図である。
【図7】本発明のアプリケーションの分散トランザクシ
ョン・データベース・処理システムを示す図である。
【図8】分散システムにおける局所並行制御の論理を示
す流れ図である。
【図9】分散システムにおける大域並行制御の論理を示
す流れ図である。
【符号の説明】
10 コンピュータ・システム 12 オンラインTPSターミナル 14 ターミナル・アクセス・ネットワーク 16 データベース・ディスク 18 ログ・ディスク 20 通信アクセス方法 21 ネットワーク・インターフェース 22 処理領域のためのトランザクション・キュー 24 トランザクション処理領域 26 トランザクション・マネージャ 27 バッファ・マネージャ 28 ログ・マネージャ 29 並行制御
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・ティモシー・ロビンソン アメリカ合衆国10598、ニューヨーク州 ヨークタウン・ハイツ、ノース・ディア フィールド・アベニュー 3314番地 (72)発明者 アレクサンダー・トマシアン アメリカ合衆国10570、ニューヨーク州 プレザントヴィル、メドウルック・ロー ド 17番地 (56)参考文献 特開 平2−226347(JP,A)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の並行に実行しているトランザクショ
    ンによって、データベースへのアクセスを管理するため
    のロック表を含む、トランザクション・マネージャを持
    つマルチ・ユーザー・データ処理システムにおいて、前
    記トランザクション・マネージャによって実行される待
    機の深さを制限する並行制御方法であって、 前記データ処理システムが複数のノードを持つ分散シス
    テムであり、前記ノードの各々は局所並行制御及び大域
    並行制御を含むトランザクション・マネージャを持ち、
    各トランザクションは前記ノードとは異なったノードで
    並行に実行する多くの通信サブトランザクションとして
    実行し、前記局所並行制御はロックとそれらのそれぞれ
    のノードで実行するサブトランザクションのために待機
    関係を管理し、前記大域並行制御はそれらのそれぞれの
    ノードとともにいかなるトランザクションをも含む全て
    の待機関係を管理するものであって、 いつでもすぐに前記システム中の各トランザクション
    に、実関数がトランザクションの現在の長さの尺度を与
    える、前記システムによって処理されたトランザクショ
    ンの待機の深さをグラフに表す待機深さデータ構造を維
    持するステップと、 トランザクションによるロックのそれぞれの要求のため
    に、前記待機の深さが予め決められた値を超えるかどう
    かを判断して、前記待機深さデータ構造をテストするス
    テップと、 前記待機の深さが前記予め決められた値を超えている結
    果、トランザクション間でコンフリクトが発生した場合
    に再始動されるトランザクションのサブセットを決定す
    るために前記実関数を使用するステップと、 前記待機の深さを前記予め決められた値以下に減少させ
    または保つために、前記トランザクションのサブセッ
    トを再始動するとともに、前記大域並行制御は、待機関
    係のそれらのセットのいくつかのトランザクションを大
    域再始動する判断を行うステップと、 を含む待機の深さを制限する並行制御方法。
  2. 【請求項2】前記局所並行制御は、 局所ロック表を使用する各ロック要求を処理し、そして
    第一のトランザクションが第二のトランザクションを待
    機することを予定されているかを判断するステップと、 ロック要求の処理の結果として第二のトランザクション
    を待機予定にした各第一のトランザクションについて、
    前記第一と第二のトランザクションが前記システム上の
    同じノード上で実行しているかどうかを判断するステッ
    プと、 同じノードで第二のトランザクションを待機する予定の
    それら第一のトランザクションについて、前記ノードの
    大域並行制御に前記第一のトランザクションが前記第二
    のトランザクションを待機しているというメッセージを
    送るステップと、 を含む請求項1記載の待機の深さを
    制限する並行制御方法。
  3. 【請求項3】前記第一及び第二のトランザクションは前
    記システムで同じノードではなく、前記局所並行制御
    は、 前記第一のトランザクションを実行しているノードの大
    域並行制御に前記第一のトランザクションが第二のトラ
    ンザクションを待機しているというメッセージを送るス
    テップと、 前記第二のトランザクションを実行しているノードの大
    域並行制御に前記第一のトランザクションが第二のトラ
    ンザクションを待機しているというメッセージを送るス
    テップと、 をさらに含む請求項2記載の待機の深さを制限する並行
    制御方法。
  4. 【請求項4】第一のトランザクションが第二のトランザ
    クションを待機しているというメッセージを受信したこ
    とに基づいて、前記大域並行制御は、そのメッセージを
    反映して大域待機を示したグラフの局所表を更新するス
    テップと、 前記大域並行制御は、前記待機の深さを前記予め決めら
    れた値以下に維持するためにトランザクションを再始動
    するかどうかを決めるステップと、 を含む請求項3記載の待機の深さを制限する並行制御方
    法。
  5. 【請求項5】前記システム上で実行している各トランザ
    クションは開始時間とともに時間を印され、そして前記
    実関数は前記開始時間から現在の時間まで計算した実行
    されたトランザクション時間の長さである請求項4記載
    の待機の深さを制限する並行制御方法。
  6. 【請求項6】前記データ構造は前記データベースの一部
    分の排他的ロックを解放するために他のトランザクショ
    ンを待機しているトランザクションの階層を示す指示さ
    れたグラフであり、そして前記実関数はトランザクショ
    ンによって保持された多数のロックである請求項1記載
    の待機の深さを制限する並行制御方法。
  7. 【請求項7】適合モードのロックを並列に待機または保
    持している3つ以上のトランザクションの各集まりをみ
    な一緒に集めて、単一のスーパー・トランザクションに
    し、その結果前記指示されたグラフの各ノードは単一の
    トランザクション又はスーパー・トランザクションであ
    る、というように前記指示されたグラフを修正するステ
    ップを含む請求項6記載の待機の深さを制限する並行制
    御方法。
  8. 【請求項8】前記システム上で実行している各トランザ
    クションは開始時間とともに時間を印され、そして前記
    実関数は前記開始時間から現在の時間まで計算した実行
    されたトランザクション時間の長さである請求項1記載
    の待機の深さを制限する並行制御方法。
JP3320458A 1991-02-25 1991-12-04 並行制御方法 Expired - Lifetime JP2531881B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/660,762 US5193188A (en) 1989-01-05 1991-02-25 Centralized and distributed wait depth limited concurrency control methods and apparatus
US660762 1991-02-25

Publications (2)

Publication Number Publication Date
JPH06103132A JPH06103132A (ja) 1994-04-15
JP2531881B2 true JP2531881B2 (ja) 1996-09-04

Family

ID=24650866

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3320458A Expired - Lifetime JP2531881B2 (ja) 1991-02-25 1991-12-04 並行制御方法

Country Status (3)

Country Link
US (1) US5193188A (ja)
EP (1) EP0501025A3 (ja)
JP (1) JP2531881B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256514B (en) * 1991-05-21 1994-11-16 Digital Equipment Corp Commitment ordering for guaranteeing serializability across distributed transactions
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
US5544359A (en) * 1993-03-30 1996-08-06 Fujitsu Limited Apparatus and method for classifying and acquiring log data by updating and storing log data
JP3512439B2 (ja) * 1993-07-08 2004-03-29 富士通株式会社 チェックイン・チェックアウトモデルにおける施錠方式
US5752026A (en) * 1994-04-28 1998-05-12 The United States Of America As Represented By The Secretary Of The Navy Early commit locking computer database protocol
US5497487A (en) * 1994-04-28 1996-03-05 The United States Of America As Represented By The Secretary Of The Navy Merge, commit recovery protocol for real-time database management systems
US5524239A (en) * 1994-04-28 1996-06-04 The United States Of America As Represented By The Secretary Of The Navy Replay recovery protocol for real-time database management systems
US5764976A (en) * 1995-02-06 1998-06-09 International Business Machines Corporation Method and system of deadlock detection in a data processing system having transactions with multiple processes capable of resource locking
GB2302966A (en) * 1995-06-30 1997-02-05 Ibm Transaction processing with a reduced-kernel operating system
US5860137A (en) * 1995-07-21 1999-01-12 Emc Corporation Dynamic load balancing
US5682537A (en) * 1995-08-31 1997-10-28 Unisys Corporation Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system
US6144961A (en) * 1995-08-31 2000-11-07 Compuware Corporation Method and system for non-intrusive measurement of transaction response times on a network
US5878235A (en) * 1996-10-03 1999-03-02 Micron Electronics, Inc. Method and system for concurrent computer transaction processing
US5940828A (en) * 1997-11-18 1999-08-17 International Business Machines Corporation Locking contention resolution for shared resources
SE521433C2 (sv) * 1998-07-22 2003-11-04 Ericsson Telefon Ab L M En metod för hantering av risken för en total låsning mellan samtidiga transaktioner i en databas
US6571276B1 (en) 2000-02-23 2003-05-27 International Business Machines Corporation System for managing asset access in a distributed storage system
US6671686B2 (en) * 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management
US6915515B2 (en) 2000-12-21 2005-07-05 International Business Machines Corporation Method for creating path-sensitive branch registry for cyclic distributed transactions
US6981110B1 (en) 2001-10-23 2005-12-27 Stephen Waller Melvin Hardware enforced virtual sequentiality
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
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
GB0428109D0 (en) * 2004-12-23 2005-01-26 Ibm A method for determining participation in a distributed transaction
US20080282244A1 (en) * 2007-05-07 2008-11-13 Microsoft Corporation Distributed transactional deadlock detection
US8060878B2 (en) * 2007-11-27 2011-11-15 International Business Machines Corporation Prevention of deadlock in a distributed computing environment
US8448105B2 (en) 2008-04-24 2013-05-21 University Of Southern California Clustering and fanout optimizations of asynchronous circuits
US9396227B2 (en) * 2012-03-29 2016-07-19 Hewlett Packard Enterprise Development Lp Controlled lock violation for data transactions
US10019756B2 (en) 2014-03-31 2018-07-10 Mastercard International Incorporated Systems and methods for throttling transaction processing based on constrained sub-systems
US9959308B1 (en) 2014-09-29 2018-05-01 Amazon Technologies, Inc. Non-blocking processing of federated transactions for distributed data partitions
CN104391935B (zh) * 2014-11-21 2017-12-12 华为技术有限公司 一种范围锁的实现方法及装置
US10942823B2 (en) 2018-01-29 2021-03-09 Guy Pardon Transaction processing system, recovery subsystem and method for operating a recovery subsystem
US11409559B2 (en) * 2019-10-24 2022-08-09 EMC IP Holding Company, LLC System and method for weak lock allowing force preemption by high priority thread

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2253423A5 (ja) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4318182A (en) * 1974-04-19 1982-03-02 Honeywell Information Systems Inc. Deadlock detection and prevention mechanism for a computer system
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
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
JPS61233849A (ja) * 1985-04-08 1986-10-18 Hitachi Ltd デ−タベ−ス排他制御方法
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
DE68924409T2 (de) * 1989-01-05 1996-05-02 Ibm Gleichzeitigkeitssteuerungsverfahren mit Beschränkung der Warte-Tiefe.

Also Published As

Publication number Publication date
US5193188A (en) 1993-03-09
EP0501025A3 (en) 1992-12-30
EP0501025A2 (en) 1992-09-02
JPH06103132A (ja) 1994-04-15

Similar Documents

Publication Publication Date Title
JP2531881B2 (ja) 並行制御方法
US8635193B2 (en) Cluster-wide read-copy update system and method
US8108696B2 (en) Optimizing non-preemptible read-copy update for low-power usage by avoiding unnecessary wakeups
US7735089B2 (en) Method and system for deadlock detection in a distributed environment
US7395383B2 (en) Realtime-safe read copy update with per-processor read/write locks
US7146366B2 (en) Distributed concurrency control using serialization ordering
Xiong et al. MIRROR: A state-conscious concurrency control protocol for replicated real-time databases
JPH03161859A (ja) リクエスト管理方法及びアクセス制御システム
Shanker et al. SWIFT—A new real time commit protocol
Son et al. Performance evaluation of real-time locking protocols using a distributed software prototyping environment
Lam et al. On using real-time static locking protocols for distributed real-time databases
Singh et al. A non-database operations aware priority ceiling protocol for hard real-time database systems
Franaszek et al. Distributed concurrency control based on limited wait-depth
Moon et al. Energy efficient replication extended database state machine in mobile ad hoc network
Thomasian A performance comparison of locking methods with limited wait depth
Son Scheduling real-time transactions
Yeung et al. A new deadlock detection algorithms for distributed real-time database systems
Son et al. Approaches to design of real-time database systems
Haritsa et al. Real-time commit processing
Franaszek et al. Distributed concurrency control with limited wait-depth
Son et al. PERFORMANCE EVALUATION OF REAL-TIME LOCKING PROTOCOLS
Lam et al. Designing inter-class concurrency control strategies for real-time database systems with mixed transactions
Shanker et al. OCP: a distributed real time commit protocol
Wang et al. Scheduling algorithms for parallel transaction processing systems
Li et al. Performance studies of shared-nothing parallel transaction processing systems