JPH02226442A - データベースシステムのデッドロック防止方式 - Google Patents
データベースシステムのデッドロック防止方式Info
- Publication number
- JPH02226442A JPH02226442A JP1047204A JP4720489A JPH02226442A JP H02226442 A JPH02226442 A JP H02226442A JP 1047204 A JP1047204 A JP 1047204A JP 4720489 A JP4720489 A JP 4720489A JP H02226442 A JPH02226442 A JP H02226442A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- transaction
- file
- list
- deadlock
- 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
Links
- 238000000034 method Methods 0.000 claims description 44
- 230000002265 prevention Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 17
- 230000008569 process Effects 0.000 description 13
- 239000000470 constituent Substances 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002747 voluntary effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, 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)
- Multi Processors (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
本発明は、銀行取引、証券取引、医療問診設備その他の
制御分野で利用可能なデータベースシステムのデッドロ
ック防止方式に係わり、特にLAN (ローカルエリア
ネットワーク)の伝送路上に配置された複数のワークス
テーションの各データベースに対し任意のワークステー
ションよりアクセスするときに生ずるデッドロックを確
実に防止するデータベースシステムのデ・ノド口・ツク
防止方式に関する。
制御分野で利用可能なデータベースシステムのデッドロ
ック防止方式に係わり、特にLAN (ローカルエリア
ネットワーク)の伝送路上に配置された複数のワークス
テーションの各データベースに対し任意のワークステー
ションよりアクセスするときに生ずるデッドロックを確
実に防止するデータベースシステムのデ・ノド口・ツク
防止方式に関する。
(従来の技術)
従来、LANl−に複数のワークステーション(以下、
CPUと指称する)を分散配置すると共に各CPUがそ
れぞれ個別にデータベースを所持する分散型データベー
スシステムにおいては、複数のデータベースを有機的に
結合してシステム全体のデータベースを有効に活用する
とき、各CPU相互間において任意のCPUが所要とす
るCPUのデータベースファイルをアクセスするが、こ
のときCPU相互間で衝突を回避する観点から一慣性制
御が広く採用されている。
CPUと指称する)を分散配置すると共に各CPUがそ
れぞれ個別にデータベースを所持する分散型データベー
スシステムにおいては、複数のデータベースを有機的に
結合してシステム全体のデータベースを有効に活用する
とき、各CPU相互間において任意のCPUが所要とす
るCPUのデータベースファイルをアクセスするが、こ
のときCPU相互間で衝突を回避する観点から一慣性制
御が広く採用されている。
そこで、この従来例では、(1)ファイル更新における
一慣性制御、(2)この−慣性制御を実現する一般的な
ロックモデル、(3)更に、このロックモデルの1つで
ある2相口・ツク、(4)この2相ロツクによるデ・ノ
ド口・ツクの発生、(5)デッドロックの発生を回避す
るタイムスタンプ法等について順次説明する。
一慣性制御、(2)この−慣性制御を実現する一般的な
ロックモデル、(3)更に、このロックモデルの1つで
ある2相口・ツク、(4)この2相ロツクによるデ・ノ
ド口・ツクの発生、(5)デッドロックの発生を回避す
るタイムスタンプ法等について順次説明する。
(1) ファイル更新におけるデータの一慣性制御につ
いて。
いて。
今、あるCPUのデータベースをアクセスする読み書き
加工等を含むデータの性格を持つトランザクションをT
l、T2.・・・、Tmとし、かつ、これらトランザク
ションが読み書き等を行う単位データをa、b、e、・
・・、2とし、またトランザクションT1が前記111
位データを用いて行う読込み処理をR1()、書込み処
理をWi()とすると、トランザクションTIは、 TI −R1() ・W[() ・・・・・・・・
R1() ・Wl() で表わせる。この()の中の値はトランザクションT1
がアクセスする単位データの集合fa 。
加工等を含むデータの性格を持つトランザクションをT
l、T2.・・・、Tmとし、かつ、これらトランザク
ションが読み書き等を行う単位データをa、b、e、・
・・、2とし、またトランザクションT1が前記111
位データを用いて行う読込み処理をR1()、書込み処
理をWi()とすると、トランザクションTIは、 TI −R1() ・W[() ・・・・・・・・
R1() ・Wl() で表わせる。この()の中の値はトランザクションT1
がアクセスする単位データの集合fa 。
b、c、・・・、zlの中の任意の値である。
ここで、ファイル更新におけるデータの一慣性制御を得
るための規約は、■トランザクションTIにおけるj番
目のファイルアクセス操作をtljで表わし、■トラン
ザクションT1のスケジュールをTi−tll−ti2
・・・・・・・・ttj・・・・と表現し、■Tjのス
ケジュールをTj−tjl・tj2・・・・・・・・t
jk・・・・と表現し、■並行処理されるトランザクシ
ョンの集合をtTl、T2.・・・・・・Tmlで表わ
すと、 ファイル更新におけるデータの一慣性制御とは、[トラ
ンザクション系列T−TI、T2. ・・・Tm−t
ll−t12・・・・φt21−t22・・・・・ta
lφtd・・・・においてスケジュールを任意に割振り
してなる新しい!・ランザクジョン系列T’−tll’
t12′ ・・・・・t 2に’ t 22’
・・・・・t a11’t i2’ ・・・・とじ
たとき、これら2つの連続するスケジュールt1j・t
lj+1の間のデータ操作がどのようなものであろう
とも、常にその実行結果がTl−T2 ・・・・・TI
mをある順序で並べて実行した場合の結果の1つと一致
すること」と定義できる。換言すれば、複数のCPUが
それぞれ必要とするCPUのデータベースファイルを小
刻みな状態で処理した結果と、1つのCPUが1つのブ
タベースファイルを専aして処理した結果とが一致する
ことをいう。勿論、スケジュールの集合f t II、
t 12. ・・、 t ml、 t a2. =1
と(t 11’t12’−tml’ 、td’ 、−1
は配列順序を無視すれば全く同一のものである。
るための規約は、■トランザクションTIにおけるj番
目のファイルアクセス操作をtljで表わし、■トラン
ザクションT1のスケジュールをTi−tll−ti2
・・・・・・・・ttj・・・・と表現し、■Tjのス
ケジュールをTj−tjl・tj2・・・・・・・・t
jk・・・・と表現し、■並行処理されるトランザクシ
ョンの集合をtTl、T2.・・・・・・Tmlで表わ
すと、 ファイル更新におけるデータの一慣性制御とは、[トラ
ンザクション系列T−TI、T2. ・・・Tm−t
ll−t12・・・・φt21−t22・・・・・ta
lφtd・・・・においてスケジュールを任意に割振り
してなる新しい!・ランザクジョン系列T’−tll’
t12′ ・・・・・t 2に’ t 22’
・・・・・t a11’t i2’ ・・・・とじ
たとき、これら2つの連続するスケジュールt1j・t
lj+1の間のデータ操作がどのようなものであろう
とも、常にその実行結果がTl−T2 ・・・・・TI
mをある順序で並べて実行した場合の結果の1つと一致
すること」と定義できる。換言すれば、複数のCPUが
それぞれ必要とするCPUのデータベースファイルを小
刻みな状態で処理した結果と、1つのCPUが1つのブ
タベースファイルを専aして処理した結果とが一致する
ことをいう。勿論、スケジュールの集合f t II、
t 12. ・・、 t ml、 t a2. =1
と(t 11’t12’−tml’ 、td’ 、−1
は配列順序を無視すれば全く同一のものである。
ところで、並行処理すべきトランザクション群の任意の
スケジュール系列がファイル更新におけるデータの一慣
性制御規約を保持しているか否かの判定はNP(非多項
式問題)完全に属するので、事象の構成因子がN個ある
場合にはその事象の数が2 HN6のオーダに比例して
増大し、そのため実時間内で判定することが不可能であ
る。そこで、般にはデータの一慣性制御の判定にはロッ
クモデルによる判定方法が用いられている。
スケジュール系列がファイル更新におけるデータの一慣
性制御規約を保持しているか否かの判定はNP(非多項
式問題)完全に属するので、事象の構成因子がN個ある
場合にはその事象の数が2 HN6のオーダに比例して
増大し、そのため実時間内で判定することが不可能であ
る。そこで、般にはデータの一慣性制御の判定にはロッ
クモデルによる判定方法が用いられている。
(2) この−慣性制御を実現する一般的なロックモデ
ルについて。
ルについて。
このロックモデルは、簡単に言えばあるCPUが任意の
CPUのデータベースファイルを使用しているとき、そ
のデータベースファイルに関して他のCPUはそのデー
タベースファイルを使用してはならないことを宣言°す
ることであり、このモデルの背景には次のような考えが
ある。すなわち、あるトランザクションTIの中の1つ
のスケジュルWi()またはR1()を実行しようとす
る場合、そのアクセス対象となるデータ()に対してロ
ック亘言を行った後、Wl()またはR1()を実行す
る。そして、Wl ()またはRi ()のアクセス
終了後に当該データ()のロックを解除する。このよう
に規約を設けることにより、−慣性制御の判定は前記N
P完全から多項式時間のアルゴリズムで表わすことが可
能となり、実時間内での判定が1−I■能となってくる
。このロック宣言およびロック解除宣言の手続きはデー
タベースへアクセスするためのオーバーヘッド(スケシ
ュリング用プログラム)を本質的こ増加させるものでは
ない。
CPUのデータベースファイルを使用しているとき、そ
のデータベースファイルに関して他のCPUはそのデー
タベースファイルを使用してはならないことを宣言°す
ることであり、このモデルの背景には次のような考えが
ある。すなわち、あるトランザクションTIの中の1つ
のスケジュルWi()またはR1()を実行しようとす
る場合、そのアクセス対象となるデータ()に対してロ
ック亘言を行った後、Wl()またはR1()を実行す
る。そして、Wl ()またはRi ()のアクセス
終了後に当該データ()のロックを解除する。このよう
に規約を設けることにより、−慣性制御の判定は前記N
P完全から多項式時間のアルゴリズムで表わすことが可
能となり、実時間内での判定が1−I■能となってくる
。このロック宣言およびロック解除宣言の手続きはデー
タベースへアクセスするためのオーバーヘッド(スケシ
ュリング用プログラム)を本質的こ増加させるものでは
ない。
次に、ロックモデルによる一慣性制御の判定がどのよう
に実行されるかについて説明する。一般に、トランザク
ションTIのスケジュール系列は、TI−Ll (’
) ・Ll() ・・・・・Ul ()・Ll()
・・・・・ Ul () ・Ul() で表現できる。ここで、()はトランザクションTIが
アクセスするデータの単位、Llはロック宣言、Ulは
ロック解除を意味する。従って、上式からロック宣言数
とロック解除数は互いに等しくなる。
に実行されるかについて説明する。一般に、トランザク
ションTIのスケジュール系列は、TI−Ll (’
) ・Ll() ・・・・・Ul ()・Ll()
・・・・・ Ul () ・Ul() で表現できる。ここで、()はトランザクションTIが
アクセスするデータの単位、Llはロック宣言、Ulは
ロック解除を意味する。従って、上式からロック宣言数
とロック解除数は互いに等しくなる。
そこで、上記の条件の下でロックモデルによるデータの
一慣性υI&711の判定規約は次のように表現できる
。
一慣性υI&711の判定規約は次のように表現できる
。
■、スケジュールに対応して々向フラグを作る。
フラグの節点vlはトランザクションTIの処理に相当
する。
する。
■、スケジュールの中でUl(a)の後に最初にaをロ
ックする操作Lj (a)(I キj)を行い、この
節点vlからvjへ向うラベルaを付けたa向肢(=)
を付ける。aは任意の単位データとする。
ックする操作Lj (a)(I キj)を行い、この
節点vlからvjへ向うラベルaを付けたa向肢(=)
を付ける。aは任意の単位データとする。
■、上記の操作を繰返しながらすべての可能な技を生成
した後のグラフにおいて第6図の如く閉ループが形成さ
れれば一慣性制御は不成立と判定でき、第7図の如く開
ループが形成されれば一慣性制御は成立すると判定でき
る。
した後のグラフにおいて第6図の如く閉ループが形成さ
れれば一慣性制御は不成立と判定でき、第7図の如く開
ループが形成されれば一慣性制御は成立すると判定でき
る。
この判定規約はロンクモデルにおける一慣性制御をri
l定する場合の必要十分な条件を与えるものであり、以
ド、具体的に3つのトランザクションTI、T2.T3
についての一慣性制御について考えてみる。これらトラ
ンザクションTl、T2゜Taの処理は、 TI =LI (a)Ul (a)Ll (e)
Ul (c)T2 =L2 (b)U2 (b)
R2(a)U2 (a)Ta =L3 (b)R3
(e)U3 (e)U3 (b)で表わされる。そ
こで、CPUを用いて上記3つのトランザクションのス
ケジュールを例えば次の2通りの順序に割振りしてみる
。
l定する場合の必要十分な条件を与えるものであり、以
ド、具体的に3つのトランザクションTI、T2.T3
についての一慣性制御について考えてみる。これらトラ
ンザクションTl、T2゜Taの処理は、 TI =LI (a)Ul (a)Ll (e)
Ul (c)T2 =L2 (b)U2 (b)
R2(a)U2 (a)Ta =L3 (b)R3
(e)U3 (e)U3 (b)で表わされる。そ
こで、CPUを用いて上記3つのトランザクションのス
ケジュールを例えば次の2通りの順序に割振りしてみる
。
Ta −Ll (a)R2(b)U2 (b)R3
(b)R3(c)Ul (a)R2(a)U3 (
e)U2 (a)Ll (c)Ul (c)U3
(b)Tb −R2(b)Ll (a)U2
(b)Ul (a)R3(b)Ll (e)R2
(a)Ul (e)R3(c)U3 (e)U2
(a)U3 (b)しかして、前記判定規約■、■
、■に従って上記割振りしたスケジュールをグラフで表
現すると、Taでは第6図の如き閉ループとなって一慣
性制御が成立しない。一方、Tbは第4図の如き開ルー
プとなって一慣性制御が成立する。
(b)R3(c)Ul (a)R2(a)U3 (
e)U2 (a)Ll (c)Ul (c)U3
(b)Tb −R2(b)Ll (a)U2
(b)Ul (a)R3(b)Ll (e)R2
(a)Ul (e)R3(c)U3 (e)U2
(a)U3 (b)しかして、前記判定規約■、■
、■に従って上記割振りしたスケジュールをグラフで表
現すると、Taでは第6図の如き閉ループとなって一慣
性制御が成立しない。一方、Tbは第4図の如き開ルー
プとなって一慣性制御が成立する。
しかし、このロックモデルによる閉ループの検出アルゴ
リズムでは一慣性制御の判定はijJ能であるが、例え
ば分散型データベースシステムでは適切な判定方法とは
言えない。何故ならば、常に分散型データベースの全系
列のトランザクションを認識した後、そのグラフのルー
プ生成を集中的にπi視する機構が必要となるためであ
る。
リズムでは一慣性制御の判定はijJ能であるが、例え
ば分散型データベースシステムでは適切な判定方法とは
言えない。何故ならば、常に分散型データベースの全系
列のトランザクションを認識した後、そのグラフのルー
プ生成を集中的にπi視する機構が必要となるためであ
る。
(3) ロックモデルの1つである2相ロツクについて
。
。
そこで、一般的なロックモデルによる判定の場合に必要
である集中監視機構を排除し、それぞれのCPUで適宜
なデータベースファイルのアクセスの規約を設けること
により分散型データベースシステムの全体系列の一慣性
制御を保証するために2相ロツクが用いられている。こ
の2相ロツク規約は、トランザクション内のスケジュー
ルがロック手続とそのロック解除手続とを完全に分離し
、前者ではロック操作のみ、後者ではロック解除操作の
みしか行わない規約である。すなわち、トランザクショ
ン内で1つでもロック解除操作が行われると、それ以後
ロック操作を行わないものとする。この2相ロツク規約
に従うトランザクションT1のスケジュールとしては、 TI=LI () 争Li() ・・・・・・・
・U[() ・Ul() で表現できる。Ll ()はロック位相、Ul()はロ
ック解除位相である。この2相ロツク規約に従うトラン
ザクションの集合に対してそれを割振りした任意のスケ
ジュールには一慣性制御が成立する。何故ならば、スケ
ジュールを部分的に実行した時点で一慣性制御の判定グ
ラフに閉ループが出来たとすると、第8図から明かなよ
うにvlからvjに向う経路ではTlが単位データ(a
)に対してロック解除の位相にあることを示し、一方、
トランザクションの集合iTl、T2・・・、Ti、T
j、・・・、Tmlよりvlに向う経路ではTIが11
1位データ(C)に対してロック宣訂の位相にあること
を示し、このためロック宣言とロック解除の位相が同時
に発生したことになり、これはトランザクションの集合
[TI、T2゜・・・・・・、Tm)が2相ロツク規約
と矛盾するためである。この2相ロツク規約に従うトラ
ンザクションの一慣性制御の証明はデータベースが集中
している場合であるが、これは分散型データベース系に
ついても成立する。トランザクションの集合fTl、T
2.・・・・・・、TmlがどこのCPUに存在するか
または単位データの集合fa、b、・・川がどこのCP
Uのデータベースに存在するかに依存しないためである
。
である集中監視機構を排除し、それぞれのCPUで適宜
なデータベースファイルのアクセスの規約を設けること
により分散型データベースシステムの全体系列の一慣性
制御を保証するために2相ロツクが用いられている。こ
の2相ロツク規約は、トランザクション内のスケジュー
ルがロック手続とそのロック解除手続とを完全に分離し
、前者ではロック操作のみ、後者ではロック解除操作の
みしか行わない規約である。すなわち、トランザクショ
ン内で1つでもロック解除操作が行われると、それ以後
ロック操作を行わないものとする。この2相ロツク規約
に従うトランザクションT1のスケジュールとしては、 TI=LI () 争Li() ・・・・・・・
・U[() ・Ul() で表現できる。Ll ()はロック位相、Ul()はロ
ック解除位相である。この2相ロツク規約に従うトラン
ザクションの集合に対してそれを割振りした任意のスケ
ジュールには一慣性制御が成立する。何故ならば、スケ
ジュールを部分的に実行した時点で一慣性制御の判定グ
ラフに閉ループが出来たとすると、第8図から明かなよ
うにvlからvjに向う経路ではTlが単位データ(a
)に対してロック解除の位相にあることを示し、一方、
トランザクションの集合iTl、T2・・・、Ti、T
j、・・・、Tmlよりvlに向う経路ではTIが11
1位データ(C)に対してロック宣訂の位相にあること
を示し、このためロック宣言とロック解除の位相が同時
に発生したことになり、これはトランザクションの集合
[TI、T2゜・・・・・・、Tm)が2相ロツク規約
と矛盾するためである。この2相ロツク規約に従うトラ
ンザクションの一慣性制御の証明はデータベースが集中
している場合であるが、これは分散型データベース系に
ついても成立する。トランザクションの集合fTl、T
2.・・・・・・、TmlがどこのCPUに存在するか
または単位データの集合fa、b、・・川がどこのCP
Uのデータベースに存在するかに依存しないためである
。
(4) 2相ロツクによってデッドロックが生ずる点に
ついて。
ついて。
ところで、以り述べたように2棺ロツク規約に従ってフ
ァイルのロック宣言およびロック解除を行うとデータの
一慣性制御は保証されるが、次の例に述べるようにデッ
ドロックが発生する場合がある。今、トランザクション
Tl、T2について考えると、 TI =LI (a)Ll (b)Ul (a)
Ul (b)T2−L2 (b)L2 (a)U
2 (a)U2 (b)で表わされ、これら2つの
トランザクションTI、T2を割振りしたスケジュール
がLL(a)L2(b)・・・から始まったとする。ト
ランザクションT I、およびT2はそれぞれ相手側が
次のステップで山角゛すべきデータを既に占何している
ので、両トランザクションTl、T2はともに次のステ
ップに進めなくなり、いわゆるデッドロックが発生する
。
ァイルのロック宣言およびロック解除を行うとデータの
一慣性制御は保証されるが、次の例に述べるようにデッ
ドロックが発生する場合がある。今、トランザクション
Tl、T2について考えると、 TI =LI (a)Ll (b)Ul (a)
Ul (b)T2−L2 (b)L2 (a)U
2 (a)U2 (b)で表わされ、これら2つの
トランザクションTI、T2を割振りしたスケジュール
がLL(a)L2(b)・・・から始まったとする。ト
ランザクションT I、およびT2はそれぞれ相手側が
次のステップで山角゛すべきデータを既に占何している
ので、両トランザクションTl、T2はともに次のステ
ップに進めなくなり、いわゆるデッドロックが発生する
。
そこで、2相ロツクによる一慣性制御ではデッドロック
が発生するので、このデッドロックを検出するための検
出規約が設けられている。
が発生するので、このデッドロックを検出するための検
出規約が設けられている。
■、他のトランザクションTiがロックしているデータ
に対するロック要求に対して有向フラグを作る。グラフ
の節点vlはトランザクションTIに相当する。
に対するロック要求に対して有向フラグを作る。グラフ
の節点vlはトランザクションTIに相当する。
■、トランザクションT1のロックしているデータaに
対し、トランザクションTjがロック要求を出している
とき、vjからvlヘフラグaを持つ有向枝を付ける。
対し、トランザクションTjがロック要求を出している
とき、vjからvlヘフラグaを持つ有向枝を付ける。
■、以」二の操作を繰返しながら可能な限りすべてに枝
を生成する。
を生成する。
このような操作を行って得られたグラフに閉ループを持
たないこと、デッドロックが生じないことが必要条件で
あることは自明である。第9図は検出規約■、■に従っ
てデッドロックの発生グラフを示した図である。
たないこと、デッドロックが生じないことが必要条件で
あることは自明である。第9図は検出規約■、■に従っ
てデッドロックの発生グラフを示した図である。
従って、以上のような手続きに従ってデッドロックを検
出したとき、閉ループの生成に関係するトランザクショ
ンのうちの1つを選択し、最後あるいはそれよりも前に
遡って要求手続きをキャンセルし、その後適当な遅延時
間を置いてそのスケジュールを実行する。いわゆるロー
ルパック処理が行われているが、この方法は分散型デー
タベースジステムには次の理由から適当なものでない。
出したとき、閉ループの生成に関係するトランザクショ
ンのうちの1つを選択し、最後あるいはそれよりも前に
遡って要求手続きをキャンセルし、その後適当な遅延時
間を置いてそのスケジュールを実行する。いわゆるロー
ルパック処理が行われているが、この方法は分散型デー
タベースジステムには次の理由から適当なものでない。
(イ)、ロールパック処理に使用する遅延時間は一義的
に決定できない。あまり短い時間を設定するとロールパ
ック処理の再試行が必要になり、これに伴ってCPU間
の通信オーバーヘッドが大きくなり、システムのパーフ
オマンスが極端に低下する。
に決定できない。あまり短い時間を設定するとロールパ
ック処理の再試行が必要になり、これに伴ってCPU間
の通信オーバーヘッドが大きくなり、システムのパーフ
オマンスが極端に低下する。
(ロ)、デッドロックが1夏数のスケジュール実行ポイ
ントで発生した場合、各ポイントについて順次ロールパ
ック処理を繰返していく必要があるが、非常に曵雑なア
ルゴリズムとならざるを得ない。
ントで発生した場合、各ポイントについて順次ロールパ
ック処理を繰返していく必要があるが、非常に曵雑なア
ルゴリズムとならざるを得ない。
(5) デッドロックの発生およびロールパック処理を
回避するタイムスタンプ法について。
回避するタイムスタンプ法について。
そこで、−1−記の欠点を袖填するために種々の方法が
提案されているが、そのうちトランザクション処理を行
うときの時間合せを行う、いわゆるタイムスタンプ法に
ついて述べる。このタイムスタンプ法のアルゴリズムの
一例としては、alあるトランザクションT1が必要と
する資源の集合をR1とする。
提案されているが、そのうちトランザクション処理を行
うときの時間合せを行う、いわゆるタイムスタンプ法に
ついて述べる。このタイムスタンプ法のアルゴリズムの
一例としては、alあるトランザクションT1が必要と
する資源の集合をR1とする。
b、トランザクションTIが処理を開始する前に既に他
のトランザクションT2が処理開始の要求を行っている
場合、トランザクションT2で必要とする資源R2とR
1の間にデッドロック発生の可能性があるものとする。
のトランザクションT2が処理開始の要求を行っている
場合、トランザクションT2で必要とする資源R2とR
1の間にデッドロック発生の可能性があるものとする。
cl トランザクションTIで要求する資源は1度バッ
ファリングされ、その後R1とR2の間にデッドロック
発生の可能性が無くなった時点でトランザクションTI
の処理を開始するものとする。
ファリングされ、その後R1とR2の間にデッドロック
発生の可能性が無くなった時点でトランザクションTI
の処理を開始するものとする。
このようにすれば、デッドロックの発生がなくなり、ロ
ールパック処理は起らない。但し、上記アルゴリズムが
成立するためにはトランザクションの開始時刻を分散型
データベースシステム共通の時刻を認識する手段が必要
であるが、これは例えばシステムの立」−げ時点におい
てそれぞれのCPU時刻を0時とし、その後、相互に通
信を行うときに自分のCPU時刻とCPU、NOを添え
、かつ、CPU、Noに優先順位を付ければ、システム
共通に1意の時刻を得ることができる。以下、各サイト
CPU時刻、各サイトCPU、Noの組をもってタイム
スタンプ時刻と呼ぶ。
ールパック処理は起らない。但し、上記アルゴリズムが
成立するためにはトランザクションの開始時刻を分散型
データベースシステム共通の時刻を認識する手段が必要
であるが、これは例えばシステムの立」−げ時点におい
てそれぞれのCPU時刻を0時とし、その後、相互に通
信を行うときに自分のCPU時刻とCPU、NOを添え
、かつ、CPU、Noに優先順位を付ければ、システム
共通に1意の時刻を得ることができる。以下、各サイト
CPU時刻、各サイトCPU、Noの組をもってタイム
スタンプ時刻と呼ぶ。
ところで、l−1a a 、 b 、 cのデッド
ロック判定基準のアルゴリズムは、具体的には次のよう
に表わすことができる。
ロック判定基準のアルゴリズムは、具体的には次のよう
に表わすことができる。
■、トランサクションTI開始前に、トランザクション
Tl内でアクセスするすべてのファイル7!1に対し、
予め読出し/8込みのロック予約を行う。このときのロ
ック予約情報は、 (1,Ti 、Ts (TI)+−Fa 、Fb 、
−−−−−川で表わす。■はロックに約要求の識別コー
ド、TIはトランザクションTl 、Ts (T1.
)はトランザクションT1のタイムスタンプ、I;’
a、Fb。
Tl内でアクセスするすべてのファイル7!1に対し、
予め読出し/8込みのロック予約を行う。このときのロ
ック予約情報は、 (1,Ti 、Ts (TI)+−Fa 、Fb 、
−−−−−川で表わす。■はロックに約要求の識別コー
ド、TIはトランザクションTl 、Ts (T1.
)はトランザクションT1のタイムスタンプ、I;’
a、Fb。
・・・はトランザクションT1において読出し/書込み
を行うすべてのファイル名を示す。
を行うすべてのファイル名を示す。
■、また、読出し/書込みのロック予約を受付けたCP
Uのサイトは、対象ファイルの予約リストに゛皮求タス
ク名とタイムスタンプを登録する。
Uのサイトは、対象ファイルの予約リストに゛皮求タス
ク名とタイムスタンプを登録する。
すなイ〕ち、ここで要求資源のバッファリングを行った
ことになる。
ことになる。
■、各タスクは実際にファイルをアクセスする直前に1
涜出し/書込みロック要求を出す。このときのロック情
報は下記のようになる。
涜出し/書込みロック要求を出す。このときのロック情
報は下記のようになる。
+J、T、Fl
但し、J:ロック要求の識別コード、T:ロック要求を
実行するトランザクション、F:ロック要求を行ったフ
ァイル名である。
実行するトランザクション、F:ロック要求を行ったフ
ァイル名である。
■、ロック要求を受取ったCPUのサイトはその要求と
既に発行されているトランザクションのロック要求との
間にデッドロック発生の可能性があるか否かをチエツク
し、その可能性がなければロック許可を出し、その可能
性がをる場合には不=′「可を要求元に返す。そして、
不許可になったロック要求は読出し/書込み待ちリスト
にその要求トランザクション、ロック予約タイムスタン
プ時刻とともに登録する。
既に発行されているトランザクションのロック要求との
間にデッドロック発生の可能性があるか否かをチエツク
し、その可能性がなければロック許可を出し、その可能
性がをる場合には不=′「可を要求元に返す。そして、
不許可になったロック要求は読出し/書込み待ちリスト
にその要求トランザクション、ロック予約タイムスタン
プ時刻とともに登録する。
■、現在ロック中のタスクがロック解除要求を出し、ロ
ック可能状態になる毎に各ファイルは読出し/書込み待
ちリストからロック予約2 タイムスタンプ時刻の最も
小さいトランザクションを取出し、そこへロック許可を
送る。
ック可能状態になる毎に各ファイルは読出し/書込み待
ちリストからロック予約2 タイムスタンプ時刻の最も
小さいトランザクションを取出し、そこへロック許可を
送る。
従って、このようにすれば、デッドロックの発生とロー
ルバック処理を回避することができる。
ルバック処理を回避することができる。
ここで、デッドロック発生の可能性があるか有るか否か
の判定のアルゴリズムは、第10図に示す如くあるCP
UのトランザクションTIがロック予約情報を出力する
と(ステップS1)、そのロックr約情報を受付けた各
CPUは予約リストにロック予約情報を登録する(ステ
ップS2)。
の判定のアルゴリズムは、第10図に示す如くあるCP
UのトランザクションTIがロック予約情報を出力する
と(ステップS1)、そのロックr約情報を受付けた各
CPUは予約リストにロック予約情報を登録する(ステ
ップS2)。
各CPUはファイルアクセス時のロック要求情報を出力
する(ステップS3)。しかる後、ロック要求の識別コ
ードに拭づくロック要求情報を受取ったCPUはそれぞ
れ自己のデータベースファイルの読出し/8込みロック
リストをチエツクしくステップS4)、他のトランザク
ションについてロック要求が行われている旨の登録があ
るか否かを判断する(ステップS5)。ロック要求登録
があると判断したときにはデッドロック発生の可能性が
ないが、現にロック許可の下にロック要求を行っている
のでステップS6に移行し、ロック要求を読出し/書込
み待ちロックリストに登録した後、ロック要求先にロッ
ク不許可の通知を行う(ステップS7)。ステップS5
において他のトランザクションについてロック要求の登
録がない場合には自己のデータベースファイルに既に登
録されている読出し/書込みロック予約リストをチエツ
クしくステップS8)、ロック要求を行っているトラン
ザクションのタイムスタンプよりも小さいタイムスタン
プのトランザクションがあるか否か(ステップS9)、
つまり両トランザクションのロック要求についてデッド
ロック発生の可能性があるか否かを判断し、可能性があ
る場合には前述したステップS6.S7に移行し、一方
、ロック要求を行っているトランザクションのタイムス
タンプが最も小さい場合にはデッドロック発生の可能性
がないと判断してロック許可を行う(ステップ510)
。すなわち、このアルゴリズムは特にステップS4およ
びS5に示すように、今回のロック要求以前に今回の要
求トランザクションよりタイムスタンプ時刻の小さいト
ランザクションによるロック予約要求が出されている場
合には今回のロック要求を断念する考えである。
する(ステップS3)。しかる後、ロック要求の識別コ
ードに拭づくロック要求情報を受取ったCPUはそれぞ
れ自己のデータベースファイルの読出し/8込みロック
リストをチエツクしくステップS4)、他のトランザク
ションについてロック要求が行われている旨の登録があ
るか否かを判断する(ステップS5)。ロック要求登録
があると判断したときにはデッドロック発生の可能性が
ないが、現にロック許可の下にロック要求を行っている
のでステップS6に移行し、ロック要求を読出し/書込
み待ちロックリストに登録した後、ロック要求先にロッ
ク不許可の通知を行う(ステップS7)。ステップS5
において他のトランザクションについてロック要求の登
録がない場合には自己のデータベースファイルに既に登
録されている読出し/書込みロック予約リストをチエツ
クしくステップS8)、ロック要求を行っているトラン
ザクションのタイムスタンプよりも小さいタイムスタン
プのトランザクションがあるか否か(ステップS9)、
つまり両トランザクションのロック要求についてデッド
ロック発生の可能性があるか否かを判断し、可能性があ
る場合には前述したステップS6.S7に移行し、一方
、ロック要求を行っているトランザクションのタイムス
タンプが最も小さい場合にはデッドロック発生の可能性
がないと判断してロック許可を行う(ステップ510)
。すなわち、このアルゴリズムは特にステップS4およ
びS5に示すように、今回のロック要求以前に今回の要
求トランザクションよりタイムスタンプ時刻の小さいト
ランザクションによるロック予約要求が出されている場
合には今回のロック要求を断念する考えである。
(発明が解決しようとする課題)
従って、以上のようなアルゴリズムであれば、デッドロ
ックの防止機能を果たすことができるが、ロックトラン
ザクションを実行するに際し冗長性によるロック待ち時
間が発生する。例えば次の2つのトランザクションTl
、T2について考えてみる。
ックの防止機能を果たすことができるが、ロックトラン
ザクションを実行するに際し冗長性によるロック待ち時
間が発生する。例えば次の2つのトランザクションTl
、T2について考えてみる。
Tl=Ts (TI、Fl、F2) ・Ll (
Fl)・Ll (F2) ・Ul (Fl)・U
l (F2) T2=Ts (TI、Fl、F2) ・L2 (
F2)・L2(Fl) ・U2 (Fl)・U2(
F2) これらトラン−ザクジョンTl、T2においてTs()
は当該トランザクションと当該ファイルに対するタイム
スタンプ時刻を添えたファイルロック予約要求、Ll(
)は当該トランザクションにおける当該ファイルに対す
るロック要求、Ul ()は当該トランザクションにお
ける当該ファイルに対するロック解除を示す。
Fl)・Ll (F2) ・Ul (Fl)・U
l (F2) T2=Ts (TI、Fl、F2) ・L2 (
F2)・L2(Fl) ・U2 (Fl)・U2(
F2) これらトラン−ザクジョンTl、T2においてTs()
は当該トランザクションと当該ファイルに対するタイム
スタンプ時刻を添えたファイルロック予約要求、Ll(
)は当該トランザクションにおける当該ファイルに対す
るロック要求、Ul ()は当該トランザクションにお
ける当該ファイルに対するロック解除を示す。
ところで、CPUの演算制御手段(ファイルマネージャ
)では前記トランザクションTI、T2を受取って振分
けにより次のようなスケジュールを作成したとする。
)では前記トランザクションTI、T2を受取って振分
けにより次のようなスケジュールを作成したとする。
Tl +72 =Ts (Tl、Fl 、F2 )・
Ts (T2.Fl、F2) ・L2(F2) ・LL(Fl) ・L2(Fl) ・LL (F2) ・・・・ このように振分けられたスケジュールにおいてタイムス
タンプ時刻が Ts (TI、Fl、F2)<Ts (T2.Fl
。
Ts (T2.Fl、F2) ・L2(F2) ・LL(Fl) ・L2(Fl) ・LL (F2) ・・・・ このように振分けられたスケジュールにおいてタイムス
タンプ時刻が Ts (TI、Fl、F2)<Ts (T2.Fl
。
F2)、すなわちトランザクションT1のタイムスタン
プ時刻がトランザクションT2のタイムスタンプ時刻よ
り小さいものとすると、第10図のデッドロック発生の
判定アルゴリズムによれば、振分けられたトランザクシ
ョン(TI +T2 )の最初のロック要求であるL2
(F2)は処理されずにロック待ち予約リストに保存さ
れることになる。何故ならば、ファイルF2に対しては
!・ランザクジョンT2よりタイムスタンプ時刻の小さ
いトランザクションT1から既にファイルロック予約要
求が出されているためである。このことはタイムスタン
プ法によるデッドロック発生の判定アルゴリズムは冗長
性を持ったものであり、この冗長性を改善することが望
まれていた。
プ時刻がトランザクションT2のタイムスタンプ時刻よ
り小さいものとすると、第10図のデッドロック発生の
判定アルゴリズムによれば、振分けられたトランザクシ
ョン(TI +T2 )の最初のロック要求であるL2
(F2)は処理されずにロック待ち予約リストに保存さ
れることになる。何故ならば、ファイルF2に対しては
!・ランザクジョンT2よりタイムスタンプ時刻の小さ
いトランザクションT1から既にファイルロック予約要
求が出されているためである。このことはタイムスタン
プ法によるデッドロック発生の判定アルゴリズムは冗長
性を持ったものであり、この冗長性を改善することが望
まれていた。
本発明は上記実情に鑑みてなされたもので、デッドロッ
ク発生の可能性を判定するアルゴリズムの冗長性を極力
低減化するデータベースシステムのデッドロック防止方
式を提供することを目的とする。
ク発生の可能性を判定するアルゴリズムの冗長性を極力
低減化するデータベースシステムのデッドロック防止方
式を提供することを目的とする。
[発明の構成]
(課題を解決するための手段および作用)本発明は1−
記課題を解決するために、LANの伝送路−ににそれぞ
れ個別にデータベースを持った複数のワークステーショ
ンが接続され、複数のワークステーションがそれぞれロ
ック予約要求およびロック要求を行って所望とする任意
のワークステーションのデータベースファイルをアクセ
スするときに生ずるデッドロックを防止するデッドロッ
ク防止方式において、前記ローカルステーションに演算
制御手段の他、ロック予約リストおよびロックトランザ
クションリストが設けられ、特に演算制御手段ではワー
クステーションのあるトランザクションからロック予約
要求後にロック要求を受けたとき、前記ロックトランザ
クションリストに他のトランザクションが登録されてい
るが否かを判断し、登録されている場合にはデッドロッ
ク発生の可能性有りと判断してロック要求を禁止し、登
録されていない場合には更に前記ロック予約リストを見
て他のトランザクションが登録されていない場合にはデ
ッドロック発生の可能性がないと判断してロック許可を
与える。
記課題を解決するために、LANの伝送路−ににそれぞ
れ個別にデータベースを持った複数のワークステーショ
ンが接続され、複数のワークステーションがそれぞれロ
ック予約要求およびロック要求を行って所望とする任意
のワークステーションのデータベースファイルをアクセ
スするときに生ずるデッドロックを防止するデッドロッ
ク防止方式において、前記ローカルステーションに演算
制御手段の他、ロック予約リストおよびロックトランザ
クションリストが設けられ、特に演算制御手段ではワー
クステーションのあるトランザクションからロック予約
要求後にロック要求を受けたとき、前記ロックトランザ
クションリストに他のトランザクションが登録されてい
るが否かを判断し、登録されている場合にはデッドロッ
ク発生の可能性有りと判断してロック要求を禁止し、登
録されていない場合には更に前記ロック予約リストを見
て他のトランザクションが登録されていない場合にはデ
ッドロック発生の可能性がないと判断してロック許可を
与える。
一方、前記ロックトランザクションリストに他のトラン
ザクションが登録されておらず、がっ、前記ロック予約
リストに他のトランザクションが登録されている場合に
は前記ロック予約リストおよびロックトランザクション
リストがらそれぞれトランザクション集合を求めていき
、これらリストのトランザクション集合について零集合
か否かを順次調べてデッドロック発生のを無を判断し、
デッドロック発生の可能性がない場合にロック許可を与
え、デッドロック発生の可能性がある場合にはロック不
許可を与えることにより、デッドロックを回避するもの
である。
ザクションが登録されておらず、がっ、前記ロック予約
リストに他のトランザクションが登録されている場合に
は前記ロック予約リストおよびロックトランザクション
リストがらそれぞれトランザクション集合を求めていき
、これらリストのトランザクション集合について零集合
か否かを順次調べてデッドロック発生のを無を判断し、
デッドロック発生の可能性がない場合にロック許可を与
え、デッドロック発生の可能性がある場合にはロック不
許可を与えることにより、デッドロックを回避するもの
である。
(実施例)
以下、本発明の実施例について図面を参照して説明する
。先ず、複数のワークステーションからあるワークステ
ーションのデータベースファイルにロック予約要求およ
びロック要求を行った場合にはデッドロック発生の有無
を判定する必要があるが、そのための本発明の基本原理
について第1図および第2図を参照して説明する。なお
、第1図はトランザクションTのロック予約要求に対し
、既に実行されている他の多数のトランザクション例え
ばTI、T2.・・・等との間でデッドロックが生ずる
か否かの判定を模式的に表わした図であり、第2図はデ
ッドロックの発生するa白杖グラフを示す図である。
。先ず、複数のワークステーションからあるワークステ
ーションのデータベースファイルにロック予約要求およ
びロック要求を行った場合にはデッドロック発生の有無
を判定する必要があるが、そのための本発明の基本原理
について第1図および第2図を参照して説明する。なお
、第1図はトランザクションTのロック予約要求に対し
、既に実行されている他の多数のトランザクション例え
ばTI、T2.・・・等との間でデッドロックが生ずる
か否かの判定を模式的に表わした図であり、第2図はデ
ッドロックの発生するa白杖グラフを示す図である。
先ず、第1図においてTl 、 T2 、−・−、Tn
。
。
TはデータベースファイルFに対して現在ロック予約(
図示実線)を行っているトランザクション群であり、そ
のうちTはデータベースファイルFに対して最も新しく
ロック要求(図示点線)を実行しようとするある1つの
トランザクションを示す。Fは特にトランザクションT
からロック要求が行われようとする対象ファイル、+U
l はトランザクションTを除くトランザクションのう
ち現在ファイルFをロック予約しているトランザクショ
ンの集合であって、その構成要素は、(Ul = [T
1 、 T2、−Tn )で表わせる。(si はトラ
ンザクションTがロック予約を行っているファイルの集
合であっテ、ソの構成要素は、 (sl −iFl 、 ・−、F[、−・−、Fj 、
−・Fn、Fl となる。lvl はファイル集合(slの中で既にファ
イルロックトランザクションリスト内に登録されている
ファイルの集合であって、その構成要素は、 iv) −(F[、F1+1 、 −・−、Fj
1で表わす。また、(U′)はファイル集合fvlを
ロックしているトランザクションの集合であって、その
構成要素は、 fU’ l = fTl’ T2’ −−−Tnで
表わす。但し、トランザクションT自身は除く。
図示実線)を行っているトランザクション群であり、そ
のうちTはデータベースファイルFに対して最も新しく
ロック要求(図示点線)を実行しようとするある1つの
トランザクションを示す。Fは特にトランザクションT
からロック要求が行われようとする対象ファイル、+U
l はトランザクションTを除くトランザクションのう
ち現在ファイルFをロック予約しているトランザクショ
ンの集合であって、その構成要素は、(Ul = [T
1 、 T2、−Tn )で表わせる。(si はトラ
ンザクションTがロック予約を行っているファイルの集
合であっテ、ソの構成要素は、 (sl −iFl 、 ・−、F[、−・−、Fj 、
−・Fn、Fl となる。lvl はファイル集合(slの中で既にファ
イルロックトランザクションリスト内に登録されている
ファイルの集合であって、その構成要素は、 iv) −(F[、F1+1 、 −・−、Fj
1で表わす。また、(U′)はファイル集合fvlを
ロックしているトランザクションの集合であって、その
構成要素は、 fU’ l = fTl’ T2’ −−−Tnで
表わす。但し、トランザクションT自身は除く。
また、(S′)はトランザクション集合(U′)がロッ
クY・約しているファイルの集合であって、その構成要
素は、 (s’ l = (Fl’ F2’ −−−Fl’
−−−Fj ’ 、・・・ Fn’1 で表わす。(V′)はファイル集合(S′)の中で既に
ファイルロックトランザクションリスト内に登録されて
いるファイルの集合であって、その構成要素は、 fv’ l = (Fl’ 、Fi11’ 、・・・、
Fj’1で表わす。また、(U′)はファイル集合(V
′)をロックしているトランザクションの集合であって
、その構成要素は、 lU’l −(Tl’ T2’−Tn’1で表わ
す。さらに、(S″)はトランザクション集合(U′)
がロック予約しているファイルの集合であって、その構
成要素は、 is’1−IFI’ F2’ ・・・ Fl’
・・・Fj ’ 、・・・、Fn’1 で表わす。(V′)はファイル集合(S′)の中で既に
ファイルロックトランザクションリスト内に登録されて
いるファイルの集合であって、その構成要素は、 lv’l = (FI’、F1+1’、−、Fj’1で
表わす。さらに、fU l はファイル集合(V′)
をロックしているトランザクションの集合であり、その
構成要素は、 fU’l = fT1’ T2’−Tn’1で表わす
。ゆえに、以上述べた記号の説明の如くトランザクショ
ン集合fU””l について最終的に零集合となるか否
かまで続ける。なお、実線は該当ファイルに対してロッ
ク予約を行っていることを示し、破線は該当ファイルに
対してロックそのものを実行していることを示す。
クY・約しているファイルの集合であって、その構成要
素は、 (s’ l = (Fl’ F2’ −−−Fl’
−−−Fj ’ 、・・・ Fn’1 で表わす。(V′)はファイル集合(S′)の中で既に
ファイルロックトランザクションリスト内に登録されて
いるファイルの集合であって、その構成要素は、 fv’ l = (Fl’ 、Fi11’ 、・・・、
Fj’1で表わす。また、(U′)はファイル集合(V
′)をロックしているトランザクションの集合であって
、その構成要素は、 lU’l −(Tl’ T2’−Tn’1で表わ
す。さらに、(S″)はトランザクション集合(U′)
がロック予約しているファイルの集合であって、その構
成要素は、 is’1−IFI’ F2’ ・・・ Fl’
・・・Fj ’ 、・・・、Fn’1 で表わす。(V′)はファイル集合(S′)の中で既に
ファイルロックトランザクションリスト内に登録されて
いるファイルの集合であって、その構成要素は、 lv’l = (FI’、F1+1’、−、Fj’1で
表わす。さらに、fU l はファイル集合(V′)
をロックしているトランザクションの集合であり、その
構成要素は、 fU’l = fT1’ T2’−Tn’1で表わす
。ゆえに、以上述べた記号の説明の如くトランザクショ
ン集合fU””l について最終的に零集合となるか否
かまで続ける。なお、実線は該当ファイルに対してロッ
ク予約を行っていることを示し、破線は該当ファイルに
対してロックそのものを実行していることを示す。
従って、以上の説明からデッドロックの有無については
次のように述べることができる。トランザクションの集
合の系列+U1. +U’+(U′)・・・・・・f
U”””l にあって、fUl ntU’l +U
lnfU’l ・ +UlnIU″”’−1の全て
が零集合にならなければデッドロックが発生することが
なく、トランザクションTによるデータベースファイル
Fのロック要求を+i’「可することができる。すなわ
ち、トランザクションTがファイルFをロックした後、
トランザクション群TI、T2.−.Tn、TのrE意
のトランザクションの実行スケジュールを行ってもデッ
ドロックが発生しない。但し、〕は2つの集合の積を表
わす1 そこで、以上のような事柄の正しさについては、[トラ
ンザクションTによりファイルFをロックした時、それ
以降のトランザクション群Tl。
次のように述べることができる。トランザクションの集
合の系列+U1. +U’+(U′)・・・・・・f
U”””l にあって、fUl ntU’l +U
lnfU’l ・ +UlnIU″”’−1の全て
が零集合にならなければデッドロックが発生することが
なく、トランザクションTによるデータベースファイル
Fのロック要求を+i’「可することができる。すなわ
ち、トランザクションTがファイルFをロックした後、
トランザクション群TI、T2.−.Tn、TのrE意
のトランザクションの実行スケジュールを行ってもデッ
ドロックが発生しない。但し、〕は2つの集合の積を表
わす1 そこで、以上のような事柄の正しさについては、[トラ
ンザクションTによりファイルFをロックした時、それ
以降のトランザクション群Tl。
T2.・・・、Tn、Tのスケジュール実行においてデ
ッドロックが発生するならば、fUl nIU’ l
fUl rr fU’ l 、−、(
UI r>(U′−’lのうちの少なくとも1つは零
集合ではない。」ということについて証明すればよい。
ッドロックが発生するならば、fUl nIU’ l
fUl rr fU’ l 、−、(
UI r>(U′−’lのうちの少なくとも1つは零
集合ではない。」ということについて証明すればよい。
この証明について第2図を用いて説明する。今、例えば
トランザクションTがファイルFをロックすると、トラ
ンザクションの集合Tl、T2. ・・・Tn、Tの
その後の実行スケジュールでデッドロックが発生するも
のとする。デッドロックが発生するということは前述し
たようにデッドロック判定のa向技グラフで閉ループと
なることと等価である。すなわち、第2図はデッドロッ
クが発生することを示す図であって、同図(a)は2個
のトランザクションによる閉ループ、同図(b)は3個
のトランザクションによる閉ループ、同図(C)はn個
のトランザクションによる閉ループを示すものであり、
何れもデッドロックが発生する。
トランザクションTがファイルFをロックすると、トラ
ンザクションの集合Tl、T2. ・・・Tn、Tの
その後の実行スケジュールでデッドロックが発生するも
のとする。デッドロックが発生するということは前述し
たようにデッドロック判定のa向技グラフで閉ループと
なることと等価である。すなわち、第2図はデッドロッ
クが発生することを示す図であって、同図(a)は2個
のトランザクションによる閉ループ、同図(b)は3個
のトランザクションによる閉ループ、同図(C)はn個
のトランザクションによる閉ループを示すものであり、
何れもデッドロックが発生する。
先ず、第2図(a)では、トランザクションTがファイ
ルFをロックし、その後のスケジュールでファイル集合
fvl をロックしようとする。
ルFをロックし、その後のスケジュールでファイル集合
fvl をロックしようとする。
方、トランザクションTl’ は既にファイル集合fv
l の部分集合をロックし、その後のスケジュールでフ
ァイルFをロックしようとする。従って、このままスケ
ジュールが進んでいくとデッドロックが発生することは
明かである。すなわち、この第2図(a)では、トラン
ザクションTI’がファイルFをロックしようとするの
で、このとき既に当該ファイルFをロック予約しており
、iUl→T′となる。ここで、→はあるトランザクシ
ョン要素かその集合に属することを意味する。同時こ、
トランザクションTl’ はトランザクションTI’
はトランザクションTがロック予約をしており、これか
らロックしようとするファイル集合(またはその部分集
合)を既にロックしているので、IU’ l −Tl
’である。従って、fUl 1”+(U′)キΦである
。なお、中は零集合を意味する。この関係は第1図の(
Ul 、 fsi、 fvl(U′)においてトラ
ンザクション集合とファイル集合との相関で示されてい
る。
l の部分集合をロックし、その後のスケジュールでフ
ァイルFをロックしようとする。従って、このままスケ
ジュールが進んでいくとデッドロックが発生することは
明かである。すなわち、この第2図(a)では、トラン
ザクションTI’がファイルFをロックしようとするの
で、このとき既に当該ファイルFをロック予約しており
、iUl→T′となる。ここで、→はあるトランザクシ
ョン要素かその集合に属することを意味する。同時こ、
トランザクションTl’ はトランザクションTI’
はトランザクションTがロック予約をしており、これか
らロックしようとするファイル集合(またはその部分集
合)を既にロックしているので、IU’ l −Tl
’である。従って、fUl 1”+(U′)キΦである
。なお、中は零集合を意味する。この関係は第1図の(
Ul 、 fsi、 fvl(U′)においてトラ
ンザクション集合とファイル集合との相関で示されてい
る。
次に、第2図(b)においては、トランザクションTが
ファイルFをロックしており、その後のスケジュールで
ファイル集合(v)をロックしようとする。また、トラ
ンザクションTl’は既にファイル集合(vlの部分集
合をロックしており、その後のスケジュールでファイル
集合1v′)をロックしようとする。また、トランザク
ションT2’はファイル集合(V′)の部分集合を既に
ロックしており、その後のスケジュールでファイルFを
ロックしようとする。従って、この場合にもこのまま白
゛白杖グラフにしたがってスケジュールを進めていけば
、デッドロックが発生することは明かである。すなわち
、この第2図(b)では、トランザクションT2’はフ
ァイルFをロックしようとするのだから、既に当該ファ
イルFをロック予約しており、[Ul→T2’である。
ファイルFをロックしており、その後のスケジュールで
ファイル集合(v)をロックしようとする。また、トラ
ンザクションTl’は既にファイル集合(vlの部分集
合をロックしており、その後のスケジュールでファイル
集合1v′)をロックしようとする。また、トランザク
ションT2’はファイル集合(V′)の部分集合を既に
ロックしており、その後のスケジュールでファイルFを
ロックしようとする。従って、この場合にもこのまま白
゛白杖グラフにしたがってスケジュールを進めていけば
、デッドロックが発生することは明かである。すなわち
、この第2図(b)では、トランザクションT2’はフ
ァイルFをロックしようとするのだから、既に当該ファ
イルFをロック予約しており、[Ul→T2’である。
トランザクションT1″はトランザクションTがロック
予約をしており、これからロックしようとするファイル
集合(またはその部分集合)(V)を既にロックしてお
り、さらにトランザクションT2’が既にロックしてい
る集合(またはその部分集合)(V′)をロックしよう
とするのだから集合U′の定義により +U’ 1−T
2″である。従って、IUI (’+ IU’ ]
4φとなる。この関係は第1図の[Ul tsl
lvl、 fU’l、 Is 1fv’l fU
’l に示されている。
予約をしており、これからロックしようとするファイル
集合(またはその部分集合)(V)を既にロックしてお
り、さらにトランザクションT2’が既にロックしてい
る集合(またはその部分集合)(V′)をロックしよう
とするのだから集合U′の定義により +U’ 1−T
2″である。従って、IUI (’+ IU’ ]
4φとなる。この関係は第1図の[Ul tsl
lvl、 fU’l、 Is 1fv’l fU
’l に示されている。
さらに、第2図(C)においては、トランザクションT
がファイルFをロックしており、その後のスケジュール
でファイル集合[vl をロックしようとする。トラン
ザクションTI ”’−は既にファイル集合fvlの
部分集合をロックしており、その後のスケジュールでフ
ァイル集合1■′)をロックしようとする。一方、トラ
ンザクションTロ °゛゛はファイル集合1v”’−1
の部分集合を既にロックしており、その後のスケジュー
ルでファイルFをロックしようとする。従って、このま
まスケジュールを進めていけば、デッドロックが発生す
ることは明かである。つまり、トランザクションTによ
りファイルFをロックした時、それ以降のトランザクシ
ョン群Tl、T2.・・・Tn、Tのスケジュール実行
においてデッドロックが発生したとする。すなわち、第
2図(c)では、一般に、n個のトランザクションが関
係する場合であり、同様に!Ul n(U’ ””l
キ(11となる。従って、これらの説明から上記デッド
ロック発生の有無の判定基準は正しいことが証明できる
。
がファイルFをロックしており、その後のスケジュール
でファイル集合[vl をロックしようとする。トラン
ザクションTI ”’−は既にファイル集合fvlの
部分集合をロックしており、その後のスケジュールでフ
ァイル集合1■′)をロックしようとする。一方、トラ
ンザクションTロ °゛゛はファイル集合1v”’−1
の部分集合を既にロックしており、その後のスケジュー
ルでファイルFをロックしようとする。従って、このま
まスケジュールを進めていけば、デッドロックが発生す
ることは明かである。つまり、トランザクションTによ
りファイルFをロックした時、それ以降のトランザクシ
ョン群Tl、T2.・・・Tn、Tのスケジュール実行
においてデッドロックが発生したとする。すなわち、第
2図(c)では、一般に、n個のトランザクションが関
係する場合であり、同様に!Ul n(U’ ””l
キ(11となる。従って、これらの説明から上記デッド
ロック発生の有無の判定基準は正しいことが証明できる
。
次に、第3図は以上の基本原理を踏まえつつ本発明方式
を適用してなる分散型データベースシステムの概略構成
を示す図である。すなわち、このシステムは、伝送路1
1上に複数のワークステーション121,122.・・
・、121が分散配置され、かつ、各ワークステーショ
ン121 、 122 。
を適用してなる分散型データベースシステムの概略構成
を示す図である。すなわち、このシステムは、伝送路1
1上に複数のワークステーション121,122.・・
・、121が分散配置され、かつ、各ワークステーショ
ン121 、 122 。
、・ 121にはそれぞれデータベース131゜132
、・・・、13Iが接続され、各ワークステーションは
任意に他サイトのワークステーションのデータベースを
アクセスできる構成となっている。
、・・・、13Iが接続され、各ワークステーションは
任意に他サイトのワークステーションのデータベースを
アクセスできる構成となっている。
なお、同図において実線14a、14bはファイルロッ
ク予約のルート、破線15a、15bはファイルロック
のルートを示す。この図から明かなように、ワークステ
ーション121はワークステーション122およびワー
クステーション121に対してファイルロック予約およ
びファイルロックを行っている。また、ワークステーシ
ョン121はワークステーション121およびワークス
テーション122に対してファイルロック予約およびフ
ァイルロックを行っている。その結果、ワークステーシ
ョン122のデータベースファイルは!(数のワークス
テーション121,121によってファイルロック予約
およびファイルロックがなされるために、デッドロック
の発生する可能性がある。但し、このデッドロックの発
生は、データベース132が多重化されておらず、かつ
、複数のワークステーションからファイルロック予約お
よびファイルロックが実行されている場合であって、デ
ータベース132自体が多m化されている場合には問題
はない。
ク予約のルート、破線15a、15bはファイルロック
のルートを示す。この図から明かなように、ワークステ
ーション121はワークステーション122およびワー
クステーション121に対してファイルロック予約およ
びファイルロックを行っている。また、ワークステーシ
ョン121はワークステーション121およびワークス
テーション122に対してファイルロック予約およびフ
ァイルロックを行っている。その結果、ワークステーシ
ョン122のデータベースファイルは!(数のワークス
テーション121,121によってファイルロック予約
およびファイルロックがなされるために、デッドロック
の発生する可能性がある。但し、このデッドロックの発
生は、データベース132が多重化されておらず、かつ
、複数のワークステーションからファイルロック予約お
よびファイルロックが実行されている場合であって、デ
ータベース132自体が多m化されている場合には問題
はない。
そして、各ワークステーション121,122゜・・・
、121は、第4図に示すように後述するアルゴリズム
を実行するファイルマネージャーと称する演算制御手段
21のほか、ファイルロック予約リスト22a、ファイ
ルロックトランザクションリスト22bおよびファイル
ロックトランザクション待ちリスト22cからなるメモ
リ22が備えられ、かつ、前記演算制御手段21には前
述したように各ワークステーション121,122.・
・・121に対応するデータベース13が接続されてい
る。そして、このワークステーションのみならず、他の
ワークステーションから伝送路11を介してトランザク
ションTI、T2. ・・・、T、・・・Tnが演算
制御手段21にファイルロック予約要求(図示実線)、
ファイルロック要求/ファイルロック解除要求(図示点
線)が送出され、一方、この演算制御手段21から必要
なトランザクションTI、T2.・・・、T、・・・T
nに対してファイルロック許可/不許可応答(図示−点
鎖線)を送出する構成となっている。
、121は、第4図に示すように後述するアルゴリズム
を実行するファイルマネージャーと称する演算制御手段
21のほか、ファイルロック予約リスト22a、ファイ
ルロックトランザクションリスト22bおよびファイル
ロックトランザクション待ちリスト22cからなるメモ
リ22が備えられ、かつ、前記演算制御手段21には前
述したように各ワークステーション121,122.・
・・121に対応するデータベース13が接続されてい
る。そして、このワークステーションのみならず、他の
ワークステーションから伝送路11を介してトランザク
ションTI、T2. ・・・、T、・・・Tnが演算
制御手段21にファイルロック予約要求(図示実線)、
ファイルロック要求/ファイルロック解除要求(図示点
線)が送出され、一方、この演算制御手段21から必要
なトランザクションTI、T2.・・・、T、・・・T
nに対してファイルロック許可/不許可応答(図示−点
鎖線)を送出する構成となっている。
しかして、第4図を用いて本発明方式を適用してなるシ
ステムの動作を述べる。あるデータベースファイルをア
クセスしようとするトランザクションTは図示実線によ
り今からアクセスするファイル群に対してファイルロッ
ク予約を発行すると、制御手段21ではロック予約要求
を受は取ってファイルロック予約リスト22aに当該フ
ァイル群を登録する。引き続き、トランザクションTが
図示点線によりファイルロック要求を発行すると、制御
手段21ではファイルロック要求を受は取ると、後述す
る第5図に示すアルゴリズムに基づいてロック許可/ロ
ック不許可を判定し、ロック許i+JがT11能な場合
にはファイルロックトランザクションリスト22bにそ
のファイル名を登録するとともに当該トランザクション
Tへ図示−点鎖線で示す如くロック許117を通知する
。一方、演算制御手段21においてロックが不許可と判
定した場合にはファイルロックトランザクション待ちリ
スト22cにそのファイル名を登録するとともに図示−
点鎖線で示す如くトランザクションTにロック不許可を
通知する。しかる後、トランザクションTはロック許可
の通知を受は取るまでウェイト状態となる。
ステムの動作を述べる。あるデータベースファイルをア
クセスしようとするトランザクションTは図示実線によ
り今からアクセスするファイル群に対してファイルロッ
ク予約を発行すると、制御手段21ではロック予約要求
を受は取ってファイルロック予約リスト22aに当該フ
ァイル群を登録する。引き続き、トランザクションTが
図示点線によりファイルロック要求を発行すると、制御
手段21ではファイルロック要求を受は取ると、後述す
る第5図に示すアルゴリズムに基づいてロック許可/ロ
ック不許可を判定し、ロック許i+JがT11能な場合
にはファイルロックトランザクションリスト22bにそ
のファイル名を登録するとともに当該トランザクション
Tへ図示−点鎖線で示す如くロック許117を通知する
。一方、演算制御手段21においてロックが不許可と判
定した場合にはファイルロックトランザクション待ちリ
スト22cにそのファイル名を登録するとともに図示−
点鎖線で示す如くトランザクションTにロック不許可を
通知する。しかる後、トランザクションTはロック許可
の通知を受は取るまでウェイト状態となる。
この演算制御手段21はファイルロックトランザクショ
ンリスト22bの内容が変る毎にファイルロックトラン
ザクション待ちリスト22cからファイル名を取り出し
てロック許可/不許可の判定を行い、ロック許可のもの
があれば当該ファイル名をファイルロックトランザクシ
ョン待ちリスト22Cからファイルロックトランザクシ
ョンリスト22bに移し、当該トランザクションTにロ
ック許可を通知する。なお、各トランザクションTI
、 T2 、・・・、Tnでは、ファイルに対するアク
セスが全て完了したときファイルロック解除要求を出力
する。この時点で制御手段21はファイルロック予約リ
スト22aから当該ファイル群を削除し、同様にファイ
ルロックトランザクションリスト22bから当該ファイ
ル群を削除することになる。
ンリスト22bの内容が変る毎にファイルロックトラン
ザクション待ちリスト22cからファイル名を取り出し
てロック許可/不許可の判定を行い、ロック許可のもの
があれば当該ファイル名をファイルロックトランザクシ
ョン待ちリスト22Cからファイルロックトランザクシ
ョンリスト22bに移し、当該トランザクションTにロ
ック許可を通知する。なお、各トランザクションTI
、 T2 、・・・、Tnでは、ファイルに対するアク
セスが全て完了したときファイルロック解除要求を出力
する。この時点で制御手段21はファイルロック予約リ
スト22aから当該ファイル群を削除し、同様にファイ
ルロックトランザクションリスト22bから当該ファイ
ル群を削除することになる。
次に、前記ロック要求に対するロック許可またはロック
不許可の判定について第5図のフローチャートを用いて
説明する。先ず、トランザクションTはアクセスする所
望のファイル群を持つワークステーションの演算制御手
段21にファイルロック予約を発行すると、当該演算制
御手段21ではそのロック予約要求を受は取ってファイ
ルロックr約リスト22aに登録する。その後、トラン
ザクションTより当該演算制御手段21ヘフアイルFに
対してロック要求を行う(ステップ511)。この演算
制御手段21では、トランザクションTからファイルF
へのロック要求を受けると、このファイルFに関しファ
イルロックトランザクションリスト22bにトランザク
ションT以外の他のトランザクションが既に登録されて
いるか否かをチエツクする(ステップ512)。仮に、
他のトランザクションが登録されていれば、ステップ3
13に進み、ここでロック要求を禁止してファイルロッ
クトランザクション待ちリスト22cに格納する。一方
、ステップS12において他のトランザクションが登録
されていないと判断した場合にはファイルロック予約リ
スト22aにトランザクションT以外の他のトランザク
ションが登録されているか否かをチエツクする(ステッ
プ514)。他のトランザクションが登録されていない
場合にはトランザクションTにロック許可を与えるとと
もにトランザクションTのロック要求をファイルロック
トランザクションリスト22bに登録する(ステップ5
15)。
不許可の判定について第5図のフローチャートを用いて
説明する。先ず、トランザクションTはアクセスする所
望のファイル群を持つワークステーションの演算制御手
段21にファイルロック予約を発行すると、当該演算制
御手段21ではそのロック予約要求を受は取ってファイ
ルロックr約リスト22aに登録する。その後、トラン
ザクションTより当該演算制御手段21ヘフアイルFに
対してロック要求を行う(ステップ511)。この演算
制御手段21では、トランザクションTからファイルF
へのロック要求を受けると、このファイルFに関しファ
イルロックトランザクションリスト22bにトランザク
ションT以外の他のトランザクションが既に登録されて
いるか否かをチエツクする(ステップ512)。仮に、
他のトランザクションが登録されていれば、ステップ3
13に進み、ここでロック要求を禁止してファイルロッ
クトランザクション待ちリスト22cに格納する。一方
、ステップS12において他のトランザクションが登録
されていないと判断した場合にはファイルロック予約リ
スト22aにトランザクションT以外の他のトランザク
ションが登録されているか否かをチエツクする(ステッ
プ514)。他のトランザクションが登録されていない
場合にはトランザクションTにロック許可を与えるとと
もにトランザクションTのロック要求をファイルロック
トランザクションリスト22bに登録する(ステップ5
15)。
一方、ファイルロック予約リスト22aに他のトランザ
クションが登録されている場合には第1図に示す如くフ
ァイルFを既にロック予約しているトランザクション集
合IUIおよびトランザクションTが既にロック予約し
ているファイル集合(slを求める(ステップ816)
。しかる後、このファイル集合fsl の中で既にファ
イルロックトランザクションリスト22b内に登録され
ているファイル集合fvl およびファイル集合1v)
をロックしているトランザクション集合(U′)を求め
る(ステップ517)。その後、ステップS18に移行
し、ここでトランザクション集合(U′)が零集合であ
るか否かを判断し、零集合であればステップS19に進
み、ロック要求をトランザクションTに通知するととも
にファイルロックトランザクションリスト22bに登録
する。
クションが登録されている場合には第1図に示す如くフ
ァイルFを既にロック予約しているトランザクション集
合IUIおよびトランザクションTが既にロック予約し
ているファイル集合(slを求める(ステップ816)
。しかる後、このファイル集合fsl の中で既にファ
イルロックトランザクションリスト22b内に登録され
ているファイル集合fvl およびファイル集合1v)
をロックしているトランザクション集合(U′)を求め
る(ステップ517)。その後、ステップS18に移行
し、ここでトランザクション集合(U′)が零集合であ
るか否かを判断し、零集合であればステップS19に進
み、ロック要求をトランザクションTに通知するととも
にファイルロックトランザクションリスト22bに登録
する。
ステップS18において零集合でない場合には[1f”
l fU’ lが零集合か否かを判断する(ステップ8
19)。ここで、零集合でない場合には第2図(b)の
閉ループパターンに位置し、トランザクションTにロッ
ク要求不許可を通知するとともにトランザクションTを
ファイルロックトランザクション待ちリスト22 cに
登録する(ステップ520) 一方、零集合である場合
にはステップS21に移行し、トランザクション集合(
U′)がロックr約しているファイル集合(S′)を求
める。しかる後、ステップS22に移行し、ファイル集
合(S′)の中で既にファイルロックトランザクション
リスト22b内に登録されているファイル集合(V′)
およびファイル集合(V′)をロックしているトランザ
クション集合(U′)を求める。このようにしてファイ
ル集合(V′)およびトランザクション集合(U′)を
求めたならば、引き続き、ステップ323で(U′)を
(U′)に代入した後、ステップS18に戻り、再び同
様な処理を行って零集合の有無を判定するものである。
l fU’ lが零集合か否かを判断する(ステップ8
19)。ここで、零集合でない場合には第2図(b)の
閉ループパターンに位置し、トランザクションTにロッ
ク要求不許可を通知するとともにトランザクションTを
ファイルロックトランザクション待ちリスト22 cに
登録する(ステップ520) 一方、零集合である場合
にはステップS21に移行し、トランザクション集合(
U′)がロックr約しているファイル集合(S′)を求
める。しかる後、ステップS22に移行し、ファイル集
合(S′)の中で既にファイルロックトランザクション
リスト22b内に登録されているファイル集合(V′)
およびファイル集合(V′)をロックしているトランザ
クション集合(U′)を求める。このようにしてファイ
ル集合(V′)およびトランザクション集合(U′)を
求めたならば、引き続き、ステップ323で(U′)を
(U′)に代入した後、ステップS18に戻り、再び同
様な処理を行って零集合の有無を判定するものである。
従って、この第5図に示す動作の流れは基本的には第2
図の有向枝グラフの閉ループ発生の有無判定と等価であ
ることが分る。
図の有向枝グラフの閉ループ発生の有無判定と等価であ
ることが分る。
従って、以上のような実施例の構成によれば、例えば実
行トランザクションTl、T2が何れもファイルFl、
F2をロックしようとする場合、ロック予約タイムスタ
ンプがTs (T1.Fl。
行トランザクションTl、T2が何れもファイルFl、
F2をロックしようとする場合、ロック予約タイムスタ
ンプがTs (T1.Fl。
F2)<Ts (T2.Fl、F2)の関係にあり、
かつ、トランザクションTl、T2の実行スケジュール
がそれぞれ TI =Ts (T1.Fl、F2)・Ll (F
l) ・Ll (F2)・Ul (Fl) ・
Ul (F2)T2 =Ts (T2 、 Fl
、 F2 )φL2 (F2) やL2 (
Fl)・U2(F2) ・U2(Fl) であり、これらトランザクションTI、T2について演
算制御手段によって割振りした合併スケジュールとして
、 TI +T2 :l:TS (TI 、 F
l 、 F2 )・ Ts (T2. Fl
、 F2)・ L2(F2) ・ Ll (Fl
)・ L2(Fl) ・ Ll (F2) ・ ・・・であるとき、従
来のタイムスタンプ法では、Ts(Tl、Fl、F2)
<Ts (T2.Fl。
かつ、トランザクションTl、T2の実行スケジュール
がそれぞれ TI =Ts (T1.Fl、F2)・Ll (F
l) ・Ll (F2)・Ul (Fl) ・
Ul (F2)T2 =Ts (T2 、 Fl
、 F2 )φL2 (F2) やL2 (
Fl)・U2(F2) ・U2(Fl) であり、これらトランザクションTI、T2について演
算制御手段によって割振りした合併スケジュールとして
、 TI +T2 :l:TS (TI 、 F
l 、 F2 )・ Ts (T2. Fl
、 F2)・ L2(F2) ・ Ll (Fl
)・ L2(Fl) ・ Ll (F2) ・ ・・・であるとき、従
来のタイムスタンプ法では、Ts(Tl、Fl、F2)
<Ts (T2.Fl。
F2)の関係にあるので、前記L2(F2)を許可でき
ない。すなわち、トランザクションT2はファイルF2
をロックできない。何故ならば、トランザクションT2
がファイルF2をロックしようとしてもタイムスタンプ
の小さいトランザクションT1が既にロックr約してい
るためである。
ない。すなわち、トランザクションT2はファイルF2
をロックできない。何故ならば、トランザクションT2
がファイルF2をロックしようとしてもタイムスタンプ
の小さいトランザクションT1が既にロックr約してい
るためである。
これに対し、本発明方法においては、トランザクション
T2はファイルF2をロックすることができる。すなわ
ち、トランザクションT1はロック予約をしているが、
トランザクション集合が(U′) −中により零集合し
ているためである。
T2はファイルF2をロックすることができる。すなわ
ち、トランザクションT1はロック予約をしているが、
トランザクション集合が(U′) −中により零集合し
ているためである。
一方、トランザクションT1はファイルF2をロックで
きない。その理由はfU]−T2であり、同時に+U’
1−T2であること、つまりトランザクションT2は
ファイルF2をロック予約しており、かつ、ファイルF
2をロックしているためである。以後のスケジュールに
おいても同様な処理を行うことにより、スタンプ時間に
関係なくデッドロックなしでファイルをアクセスできる
。
きない。その理由はfU]−T2であり、同時に+U’
1−T2であること、つまりトランザクションT2は
ファイルF2をロック予約しており、かつ、ファイルF
2をロックしているためである。以後のスケジュールに
おいても同様な処理を行うことにより、スタンプ時間に
関係なくデッドロックなしでファイルをアクセスできる
。
なお、上記実施例では分散型データベースシステムにつ
いて述べたが、必ずしも分散型である必要はない。その
他、本発明はその要旨を逸脱しない範囲で種々変形して
実施できる。
いて述べたが、必ずしも分散型である必要はない。その
他、本発明はその要旨を逸脱しない範囲で種々変形して
実施できる。
[発明の効果]
以」−詳記したように本発明によれば、比較曲部りtな
アルゴリズムを用いてロック待ち時間を少なくしてデッ
ドロックを確実に防11−シながら所望とするデータベ
ースファイルをアクセスでき、ファイル更新の一貫性制
御を実現しうるデータベースシステムのデッドロック防
止方式を提供できる。
アルゴリズムを用いてロック待ち時間を少なくしてデッ
ドロックを確実に防11−シながら所望とするデータベ
ースファイルをアクセスでき、ファイル更新の一貫性制
御を実現しうるデータベースシステムのデッドロック防
止方式を提供できる。
第1図ないし第5図は本発明方式の実施例を説明するた
めに示したもので、第1図はデッドロック発生のi+J
能性を判定するための基本原理を説明する模式図、第2
図はデッドロックが発生する場合のq向グラフを示す図
、第3図は本発明方式を適用してなるデータベースシス
テムの概略構成図、第4図は本発明方式を説明するハー
ド構成図、第5図は本発明ツノ式の要部を説明するフロ
ーチャート、第6図ないし第10図は従来例を説明する
ために示したちので、第6図は一慣性制御が不成立とな
る場合のq向グラフを示す図、第7図は一慣性制御が成
立する場合の9向グラフを示す図、第8図は2トIIロ
ツク規約が一慣性制御を成立させるための十分条件を説
明する図、第9図はデッドロックが発生する場合の有向
グラフを示す図、第10図は従来のタイムスタンプ法を
説明するフローチャートである。 11・・・伝送路、121,122.・・・ ・・・ワ
ークステーション、131,132. ・・・ ・・・
データベース、21・・・演算制御手段、22・・・メ
モリ、22a・・・ファイルロック予約リスト、22b
・・・ファイルロックトランザクションリスト、22c
・・・ファイルロックトランザクション待ちリスト、T
、TI、T2. ・・・、Tn・・・トランザクショ
ン0 出願人代理人 弁理士 鈴江武彦 第 図 第3 図 第 2 図 第 図 第 図 弔 8 弔 9 図 図 7゜ 補正の内容 1、事件の表示 特願平1−47204号 トランザクションの集合+T1 、T2・・・TiTj
・・・Tag)よりトランザクションT!および2、発
明の名称 データベースシステムのデッドロック防止方式玉補正を
する者 事件との関係 特許出願人 (307) 株式会社 東芝 4、代理人 東京都千代田区霞が関3丁目7番2号 自発補正 6、補正の対象 明細書 ポ弘 5iツノ、t・、II tTl 、 T2−TI−1、Tj+l 、 =−Tm
l )よりviJと訂正する。 (2) 明細書第13頁第4行目ないし同頁第5行目の
「今、トランザクションTl、T2について考えると、
」とあるを「今、例としてトランザクションTl、T2
について考える。」と訂正する。 (3) 明細書第13頁第12行目の「を既に」とある
を「を最初に」と訂正する。 (4) 明細書第13頁第17行目の「発生するので」
とあるを「発生する場合があるので」と訂正する。 (5) 明細書第14頁第9行目ないし同頁第12行目
の「このような・・・・・・従ってデッド」とある記載
を下記のように訂正する。 記 ■、このような操作を行って得られたグラフに閉ループ
を持たないこと、デッドロックが生じないことが同値な
条件であることは自明である。 第9図は検出規約■、■、■および■に従ってデッド」
と訂正する。
めに示したもので、第1図はデッドロック発生のi+J
能性を判定するための基本原理を説明する模式図、第2
図はデッドロックが発生する場合のq向グラフを示す図
、第3図は本発明方式を適用してなるデータベースシス
テムの概略構成図、第4図は本発明方式を説明するハー
ド構成図、第5図は本発明ツノ式の要部を説明するフロ
ーチャート、第6図ないし第10図は従来例を説明する
ために示したちので、第6図は一慣性制御が不成立とな
る場合のq向グラフを示す図、第7図は一慣性制御が成
立する場合の9向グラフを示す図、第8図は2トIIロ
ツク規約が一慣性制御を成立させるための十分条件を説
明する図、第9図はデッドロックが発生する場合の有向
グラフを示す図、第10図は従来のタイムスタンプ法を
説明するフローチャートである。 11・・・伝送路、121,122.・・・ ・・・ワ
ークステーション、131,132. ・・・ ・・・
データベース、21・・・演算制御手段、22・・・メ
モリ、22a・・・ファイルロック予約リスト、22b
・・・ファイルロックトランザクションリスト、22c
・・・ファイルロックトランザクション待ちリスト、T
、TI、T2. ・・・、Tn・・・トランザクショ
ン0 出願人代理人 弁理士 鈴江武彦 第 図 第3 図 第 2 図 第 図 第 図 弔 8 弔 9 図 図 7゜ 補正の内容 1、事件の表示 特願平1−47204号 トランザクションの集合+T1 、T2・・・TiTj
・・・Tag)よりトランザクションT!および2、発
明の名称 データベースシステムのデッドロック防止方式玉補正を
する者 事件との関係 特許出願人 (307) 株式会社 東芝 4、代理人 東京都千代田区霞が関3丁目7番2号 自発補正 6、補正の対象 明細書 ポ弘 5iツノ、t・、II tTl 、 T2−TI−1、Tj+l 、 =−Tm
l )よりviJと訂正する。 (2) 明細書第13頁第4行目ないし同頁第5行目の
「今、トランザクションTl、T2について考えると、
」とあるを「今、例としてトランザクションTl、T2
について考える。」と訂正する。 (3) 明細書第13頁第12行目の「を既に」とある
を「を最初に」と訂正する。 (4) 明細書第13頁第17行目の「発生するので」
とあるを「発生する場合があるので」と訂正する。 (5) 明細書第14頁第9行目ないし同頁第12行目
の「このような・・・・・・従ってデッド」とある記載
を下記のように訂正する。 記 ■、このような操作を行って得られたグラフに閉ループ
を持たないこと、デッドロックが生じないことが同値な
条件であることは自明である。 第9図は検出規約■、■、■および■に従ってデッド」
と訂正する。
Claims (1)
- 【特許請求の範囲】 伝送路上にそれぞれ個別にデータベースを持った複数の
ワークステーションが接続され、複数のワークステーシ
ョンがそれぞれロック予約要求およびロック要求を行っ
て所望とする任意のワークステーションのデータベース
ファイルをアクセスするときに生ずるデッドロックを防
止するデータベースシステムのデッドロック防止方式に
おいて、 前記各ワークステーションに演算制御手段の他、ロック
予約リストおよびロックトランザクションリストが設け
られ、 前記演算制御手段は、あるワークステーションのトラン
ザクションからロック予約要求後に前記ロック要求を受
けたとき、前記ロックトランザクションリストおよび前
記ロック予約リストから他のトランザクションが登録さ
れているか否かに応じて前記あるトランザクションにロ
ック許可およびロック不許可を与えるリスト判断手段と
、このリスト判断手段によって前記他のトランザクショ
ンが前記ロックトランザクションリストに登録されてい
ないが前記ロック予約リストに登録されている場合には
前記ロック予約リストおよびロックトランザクションリ
ストからそれぞれトランザクション集合を求めた後、こ
れらリストのトランザクション集合が零集合か否かを順
次調べて前記あるトランザクションにロック許可および
ロック不許可を与える集合判断手段とを備えたことを特
徴とするデータベースシステムのデッドロック防止方式
。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1047204A JPH02226442A (ja) | 1989-02-28 | 1989-02-28 | データベースシステムのデッドロック防止方式 |
US07/486,352 US5303368A (en) | 1989-02-28 | 1990-02-28 | Dead lock preventing method for data base system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1047204A JPH02226442A (ja) | 1989-02-28 | 1989-02-28 | データベースシステムのデッドロック防止方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02226442A true JPH02226442A (ja) | 1990-09-10 |
Family
ID=12768614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1047204A Pending JPH02226442A (ja) | 1989-02-28 | 1989-02-28 | データベースシステムのデッドロック防止方式 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5303368A (ja) |
JP (1) | JPH02226442A (ja) |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5899993A (en) * | 1996-08-07 | 1999-05-04 | Oracle Corporation | Method and apparatus for achieving an enforced and valid constraint state |
US5961583A (en) * | 1996-11-22 | 1999-10-05 | International Business Machines Corporation | Method and system for using the event wait list anchor as a lock for events |
US5907848A (en) * | 1997-03-14 | 1999-05-25 | Lakeview Technology, Inc. | Method and system for defining transactions from a database log |
US6412034B1 (en) * | 1999-04-16 | 2002-06-25 | Oracle Corporation | Transaction-based locking approach |
US6721775B1 (en) * | 1999-08-12 | 2004-04-13 | International Business Machines Corporation | Resource contention analysis employing time-ordered entries in a blocking queue and waiting queue |
US6681241B1 (en) * | 1999-08-12 | 2004-01-20 | International Business Machines Corporation | Resource contention monitoring employing time-ordered entries in a blocking queue and waiting queue |
US6651123B1 (en) | 2000-03-30 | 2003-11-18 | International Business Machines Corporation | File system locking |
US7203782B1 (en) | 2000-04-12 | 2007-04-10 | Novell, Inc. | Queueing method supporting multiple client accesses simultaneously |
US6898650B1 (en) * | 2000-08-10 | 2005-05-24 | Novell, Inc. | Queueing method supporting multiple client accesses simultaneously |
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 |
US7058667B2 (en) | 2000-12-27 | 2006-06-06 | Microsoft Corporation | Method and system for creating and maintaining version-specific properties in a file |
US7562110B2 (en) * | 2001-01-11 | 2009-07-14 | F5 Networks, Inc. | File switch and switched file system |
US7788335B2 (en) * | 2001-01-11 | 2010-08-31 | F5 Networks, Inc. | Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system |
US8195760B2 (en) * | 2001-01-11 | 2012-06-05 | F5 Networks, Inc. | File aggregation in a switched file system |
US20040133606A1 (en) | 2003-01-02 | 2004-07-08 | Z-Force Communications, Inc. | Directory aggregation for files distributed over a plurality of servers in a switched file system |
US7512673B2 (en) | 2001-01-11 | 2009-03-31 | Attune Systems, Inc. | Rule based aggregation of files and transactions in a switched file system |
US8239354B2 (en) * | 2005-03-03 | 2012-08-07 | F5 Networks, Inc. | System and method for managing small-size files in an aggregated file system |
US7509322B2 (en) | 2001-01-11 | 2009-03-24 | F5 Networks, Inc. | Aggregated lock management for locking aggregated files in a switched file system |
US6748470B2 (en) * | 2001-11-13 | 2004-06-08 | Microsoft Corporation | Method and system for locking multiple resources in a distributed environment |
US20030105871A1 (en) * | 2001-11-13 | 2003-06-05 | Microsoft Corporation, | Method and system for modifying lock properties in a distributed environment |
US7028300B2 (en) * | 2001-11-13 | 2006-04-11 | Microsoft Corporation | Method and system for managing resources in a distributed environment that has an associated object |
US7406519B2 (en) * | 2001-11-13 | 2008-07-29 | Microsoft Corporation | Method and system for locking resources in a distributed environment |
JP4667739B2 (ja) * | 2003-12-05 | 2011-04-13 | 株式会社バッファロー | 暗号鍵設定システム、アクセスポイント、無線lan端末、および、暗号鍵設定方法 |
US7574439B2 (en) * | 2004-05-20 | 2009-08-11 | International Business Machines Corporation | Managing a nested request |
US7165541B2 (en) * | 2004-11-18 | 2007-01-23 | General Motors Corporation | Protruding oil separation baffle holes |
US7885970B2 (en) * | 2005-01-20 | 2011-02-08 | F5 Networks, Inc. | Scalable system for partitioning and accessing metadata over multiple servers |
US20060167838A1 (en) * | 2005-01-21 | 2006-07-27 | Z-Force Communications, Inc. | File-based hybrid file storage scheme supporting multiple file switches |
US7958347B1 (en) | 2005-02-04 | 2011-06-07 | F5 Networks, Inc. | Methods and apparatus for implementing authentication |
US7752367B2 (en) * | 2005-12-22 | 2010-07-06 | International Business Machines Corporation | File-based access control for shared hardware devices |
US8099538B2 (en) * | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
US8417746B1 (en) | 2006-04-03 | 2013-04-09 | F5 Networks, Inc. | File system management with enhanced searchability |
US20090077097A1 (en) * | 2007-04-16 | 2009-03-19 | Attune Systems, Inc. | File Aggregation in a Switched File System |
US8682916B2 (en) * | 2007-05-25 | 2014-03-25 | F5 Networks, Inc. | Remote file virtualization in a switched file system |
US8180747B2 (en) | 2007-11-12 | 2012-05-15 | F5 Networks, Inc. | Load sharing cluster file systems |
US8117244B2 (en) | 2007-11-12 | 2012-02-14 | F5 Networks, Inc. | Non-disruptive file migration |
US8548953B2 (en) * | 2007-11-12 | 2013-10-01 | F5 Networks, Inc. | File deduplication using storage tiers |
US20090204705A1 (en) * | 2007-11-12 | 2009-08-13 | Attune Systems, Inc. | On Demand File Virtualization for Server Configuration Management with Limited Interruption |
US20090204650A1 (en) * | 2007-11-15 | 2009-08-13 | Attune Systems, Inc. | File Deduplication using Copy-on-Write Storage Tiers |
US7908256B2 (en) * | 2007-11-30 | 2011-03-15 | International Business Machines Corporation | Speculative computation lock coarsening through the use of localized lock reservation |
US8352785B1 (en) | 2007-12-13 | 2013-01-08 | F5 Networks, Inc. | Methods for generating a unified virtual snapshot and systems thereof |
US8549582B1 (en) | 2008-07-11 | 2013-10-01 | F5 Networks, Inc. | Methods for handling a multi-protocol content name and systems thereof |
US10721269B1 (en) | 2009-11-06 | 2020-07-21 | F5 Networks, Inc. | Methods and system for returning requests with javascript for clients before passing a request to a server |
US9195500B1 (en) | 2010-02-09 | 2015-11-24 | F5 Networks, Inc. | Methods for seamless storage importing and devices thereof |
US8204860B1 (en) | 2010-02-09 | 2012-06-19 | F5 Networks, Inc. | Methods and systems for snapshot reconstitution |
JP2011242949A (ja) * | 2010-05-17 | 2011-12-01 | Fujitsu Ltd | ファイル管理プログラム、ファイル管理方法、及び情報処理装置 |
US8347100B1 (en) | 2010-07-14 | 2013-01-01 | F5 Networks, Inc. | Methods for DNSSEC proxying and deployment amelioration and systems thereof |
US9286298B1 (en) | 2010-10-14 | 2016-03-15 | F5 Networks, Inc. | Methods for enhancing management of backup data sets and devices thereof |
US8396836B1 (en) | 2011-06-30 | 2013-03-12 | F5 Networks, Inc. | System for mitigating file virtualization storage import latency |
US8463850B1 (en) | 2011-10-26 | 2013-06-11 | F5 Networks, Inc. | System and method of algorithmically generating a server side transaction identifier |
US9020912B1 (en) | 2012-02-20 | 2015-04-28 | F5 Networks, Inc. | Methods for accessing data in a compressed file system and devices thereof |
US9519501B1 (en) | 2012-09-30 | 2016-12-13 | F5 Networks, Inc. | Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system |
US10375155B1 (en) | 2013-02-19 | 2019-08-06 | F5 Networks, Inc. | System and method for achieving hardware acceleration for asymmetric flow connections |
US9554418B1 (en) | 2013-02-28 | 2017-01-24 | F5 Networks, Inc. | Device for topology hiding of a visited network |
US11838851B1 (en) | 2014-07-15 | 2023-12-05 | F5, Inc. | Methods for managing L7 traffic classification and devices thereof |
US10182013B1 (en) | 2014-12-01 | 2019-01-15 | F5 Networks, Inc. | Methods for managing progressive image delivery and devices thereof |
US11895138B1 (en) | 2015-02-02 | 2024-02-06 | F5, Inc. | Methods for improving web scanner accuracy and devices thereof |
US10834065B1 (en) | 2015-03-31 | 2020-11-10 | F5 Networks, Inc. | Methods for SSL protected NTLM re-authentication and devices thereof |
US10404698B1 (en) | 2016-01-15 | 2019-09-03 | F5 Networks, Inc. | Methods for adaptive organization of web application access points in webtops and devices thereof |
US10797888B1 (en) | 2016-01-20 | 2020-10-06 | F5 Networks, Inc. | Methods for secured SCEP enrollment for client devices and devices thereof |
US10412198B1 (en) | 2016-10-27 | 2019-09-10 | F5 Networks, Inc. | Methods for improved transmission control protocol (TCP) performance visibility and devices thereof |
US10567492B1 (en) | 2017-05-11 | 2020-02-18 | F5 Networks, Inc. | Methods for load balancing in a federated identity environment and devices thereof |
US11223689B1 (en) | 2018-01-05 | 2022-01-11 | F5 Networks, Inc. | Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof |
US10833943B1 (en) | 2018-03-01 | 2020-11-10 | F5 Networks, Inc. | Methods for service chaining and devices thereof |
US12003422B1 (en) | 2018-09-28 | 2024-06-04 | F5, Inc. | Methods for switching network packets based on packet data and devices |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4494193A (en) * | 1982-09-30 | 1985-01-15 | At&T Bell Laboratories | Deadlock detection and resolution scheme |
JPS61233849A (ja) * | 1985-04-08 | 1986-10-18 | Hitachi Ltd | デ−タベ−ス排他制御方法 |
JPS63238741A (ja) * | 1987-03-26 | 1988-10-04 | Nec Corp | 伝送制御手順階層処理方式 |
US4881166A (en) * | 1987-07-24 | 1989-11-14 | Amoco Corporation | Method for consistent multidatabase transaction processing |
US5016167A (en) * | 1987-12-21 | 1991-05-14 | Amdahl Corporation | Resource contention deadlock detection and prevention |
US5095421A (en) * | 1989-08-17 | 1992-03-10 | International Business Machines Corporation | Transaction processing facility within an operating system environment |
-
1989
- 1989-02-28 JP JP1047204A patent/JPH02226442A/ja active Pending
-
1990
- 1990-02-28 US US07/486,352 patent/US5303368A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5303368A (en) | 1994-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02226442A (ja) | データベースシステムのデッドロック防止方式 | |
US6412034B1 (en) | Transaction-based locking approach | |
Salem et al. | Altruistic locking | |
Krishnakumar et al. | Bounded ignorance: A technique for increasing concurrency in a replicated system | |
JP5320073B2 (ja) | ロックによって管理されるリソースに対する予測的変更 | |
Ho et al. | Protocols for deadlock detection in distributed database systems | |
Krishnakumar et al. | Bounded ignorance in replicated systems | |
JPS61233849A (ja) | デ−タベ−ス排他制御方法 | |
Lam et al. | On using real-time static locking protocols for distributed real-time databases | |
Smith et al. | Correctness criteria for multilevel secure transactions | |
Lomet | Subsystems of processes with deadlock avoidance | |
Reddy et al. | Deadlock prevention in a distributed database system | |
Hsu et al. | Partitioned two-phase locking | |
JPH0277960A (ja) | 分散型データベースにおける一貫性制御のデッドロック防止方式 | |
Leu et al. | An extended transaction model for multidatabase systems | |
Chakma et al. | An analysis and improvement of probe-based algorithm for distributed deadlock detection | |
Bhalla | Executing serializable transactions within a hard real-time database system | |
Bukhari et al. | Two fully distributed concurrency control algorithms | |
Anshar et al. | Basic principles of blind write protocol | |
Chon et al. | Role locks to prevent illegal information flow among objects | |
Reddy et al. | Non-blocking concurrency control in distributed database systems | |
Geetha et al. | Deadlock elimination of AND model requests in distributed systems | |
Hasegawa | Parallelizing Serializable Transactions within Distributed Real-time Database Systems | |
Bhalla et al. | Parallelizing serializable transactions within distributed real-time database systems | |
Tripathi et al. | Synchronization of nested atomic actions |