JPS6354638A - デツドロツク解除方式 - Google Patents

デツドロツク解除方式

Info

Publication number
JPS6354638A
JPS6354638A JP61199460A JP19946086A JPS6354638A JP S6354638 A JPS6354638 A JP S6354638A JP 61199460 A JP61199460 A JP 61199460A JP 19946086 A JP19946086 A JP 19946086A JP S6354638 A JPS6354638 A JP S6354638A
Authority
JP
Japan
Prior art keywords
deadlock
data base
database
operating instruction
program
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
JP61199460A
Other languages
English (en)
Inventor
Tatsuki Nishi
西 龍己
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP61199460A priority Critical patent/JPS6354638A/ja
Publication of JPS6354638A publication Critical patent/JPS6354638A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance

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)
  • Retry When Errors Occur (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデッドロック解除方式に関し、特にコミットメ
ント制御を行っているデータベース管理システムにおけ
るデッドロック発生時のデッドロック解除方式に関する
(従来の技術〕 従来、この種のデッドロック解除方式では、デッドロッ
クの発生時にデータベース管理システムでデッドロック
を検出したプロセスに一方的にデッドロックステータス
を戻し、デッドロックステータスを戻されたプロセスが
ロールバック処理を行うことによりデッドロックの解除
を行っていた。
〔発明が解決しようとする問題点〕
上述した従来のデフドロック解除方式は、次に示すよう
な欠点がある。
(1)デッドロックを1食出したプロセスに一方的にデ
ッドロックステータスを通知していたので、入力しかし
ていないプログラム(以下、参照系プログラムと呼ぶ)
をも含めて全てのプログラムにデッドロックのための処
理を組み込んでおく必要がある。
(2)参照系プログラムと参照系プログラム以外の更新
系プログラムとの間でデッドロックが発生した場合、参
照系プログラムにデッドロックステータスの通知を行い
、この参照系プログラムにロールバック処理を行わせた
方がロールハック処理のオーハヘフドを少なくすること
ができるが、タイミングによってどちらに通知されるか
は不定である。
本発明の目的は、上述の点に鑑み、デッドロック発生時
に参照系プログラムを検出してこの参照系プログラムの
ロールバンク処理およびデータベース操作命令の再実行
処理をデータベース管理システムで自動的に行わせるよ
うにしたデッドロック解除方式を提供することにある。
〔問題点を解決するための手段〕
本発明のデッドロック解除方式は、コミットメント制御
を行っているデータベース管理システムにおいて、デー
タベース操作命令の発行状況をプロセス毎に記憶するデ
ータベース操作命令記憶手段と、デッドロック発生時に
前記データベース操作命令記憶手段に記jfIされた記
憶情報に基づきこのデッドロックに関連するプロセス群
の中からデータベースに対して人力のみを行っているプ
ロセスを検出するキャンセルプロセス検出手段と、この
キャンセルプロセス検出手段により検出されたプロセス
の実行中のデータベース操作命令の実行ヲキャンセルし
再実行させるキャンセル・再実行手段とを有する。
〔作用〕
本発明のデッドロック解除方式では、データベース操作
命令記憶手段がデータベース操作命令の発行状況をプロ
セス毎に記憶し、キャンセルプロセス検出手段がデッド
ロック発生時にデータベース操作命令記憶手段に記憶さ
れた記憶情相に基づキコノデッドロックに関連するプロ
セス群の中からデータベースに対して入力のみを行って
いるプロセスを検出し、キャンセル・再実行手段がキャ
ンセルプロセス検出手段により検出されたプロセスの実
行中のデータベース操作命令の実行をキャンセルし再実
行させる。
〔実施例〕
次に、本発明について図面を参照して詳細に説明する。
第1図を参照すると、本発明の一実施例は、ユーザプロ
セス1と、データベース操作命令解析手段2と、データ
ベース操作命令記憶手段3と、デッドロック検出手段4
と、キャンセルプロセス検出手段5と、キャンセル・再
実行手段6とがら構成されている。
第2図を参照すると、データベース操作命令記・tα手
段3における処理は、データベース更新命令判定ステッ
プ21と、データベース更新フラグオン設定ステップ2
2とからなる。
第3図を6照すると、キャンセルプロセス検出手段5に
おける処理は、プロセス番号設定ステップ31と、デー
タベース更新フラグオン判定ステップ32と、H&プロ
セス判定ステップ33と、次プロセス番号設定ステフブ
34と、参照系プロセス無し設定ステップ35と、キャ
ンセルプロセス設定ステップ36とからなる。
第4図を参照すると、キャンセル・再実行手段6におけ
る処理は、カレンシ情報退避ステフブ41と、ロールバ
ック処理実行ステップ42と、カレンシ情報復帰ステッ
プ43と、データベース操作命令再実行ステップ44と
からなる。
次に、このように構成された本実施例のデッドロック解
除方式の動作について説明する。
ユーザプロセス1がデータベース操作命令を発行すると
、制御がデータベース操作命令解析手段2に移される。
データベース操作命令解析手段2は、まずデータベース
操作命令記19手段3を呼ぶ。データベース操作命令記
憶手段3は、データベース操作命令がデータベース更新
命令であるかどうかを判定する(ステップ21)。デー
タベース操作命令がデータベース更新命令であれば、デ
ータベース更新命令グ(以下、華に更新フラグという)
をオンに設定する(ステップ22)。なお、更新フラグ
は、プロセスの開始時にオフに初期化されている。
次に、データベース操作命令解析手段2は、デッドロッ
ク検出手段4を呼ぶ。デフドロック検出手段4は、デー
タベース操作命令によるデータベースに対するアクセス
要求がデッドロックを引き起こすか否かを判定する。デ
フドロックを引き起こさない場合は、制御をデータベー
ス操作命令解析手段2に戻す。デフドロックを引き起こ
す場合には、キャンセルプロセス検出手段5を呼ぶ。
キャンセルプロセス検出手段5は、デッドロックを引き
起こしたプロセス群の中に参照系プログラムが存在する
か否かを検出する。詳しくは、キャンセルプロセス検出
手段5は、デッドロックを引き起こしたプロセス群を管
理しているキューの中から最初のプロセスを捜し、その
プロセス番号を作業域P、に設定する(ステップ31)
。次に、作業域P1に設定されたプロセス番号で示され
るプロセスの更新フラグがオンであるかどうかを調べる
(ステップ32)。更新フラグがオンであれば、デフド
ロックを引き起こしたプロセス群の中で最マ麦のブロセ
スカ)否め)を8周べる(ステップ33)。最後のプロ
セスでなければ、デッドロックを引き起こしたプロセス
群のキューの中で次のプロセスのプロセス番号をP、に
設定しくステップ34)、ステップ32に戻る。ステッ
プ33の判定で最後のプロセスであれば、デッドロック
を引き起こしたプロセス群の中には参照系プログラムが
1本もなかったことになり、デッドロック検出手段4お
よびデータベース操作命令解析手段2を介してユーザプ
ロセス1にデッドロックステータスを通知する(ステッ
プ35)。このため、更新系プログラム同士でデッドロ
ックが発生した場合は、いままでどうりユーザプロセス
1でロールバンク処理が行われる。ステップ32の判定
で更新フラグがオンでなければ、作業域P+に設定され
たプロセスが参照系プログラムであるので、このプロセ
スをキャンセルプロセスとしてデフドロック検出手段4
に通知する(ステップ36)。
デッドロック検出手段4は、キャンセルプロセス検出手
段5から通知されたプロセスをキャンセル・再実行手段
6に通知する。キャンセル・再実行手段6は、実行中の
データベース操作命令の実行のキャンセルおよび再実行
を行う。詳しくは、キャンセル・再実行手段6は、まず
キャンセルするプロセスの力レンジ情報を作業域S、に
退避する(ステップ41)。これは、ロールバック処理
において力レンジ情報が不定になるので、ロールバック
処理後に力レンジ情報を復帰させるためである。次に、
実行中のデータベース操作命令の実行をキャンセルし、
デッドロックを解除するためにキャンセルプロセスに対
してロールバック処理を実行する(ステップ42)。続
いて、ロールバンク処理によって不定となった力レンジ
情報を作業域S1の内容で復帰する(ステップ43)。
この後、キャンセルされたデータベース操作命令を再実
行する(ステップ44)。
もし、再度デッドロックが発生した場合は、デッドロッ
ク検出手段4.キャンセルプロセス検出手段5およびキ
ャンセル・再実行手段6の処理を繰り返し実行する。
なお、上記実施例では、参照系プログラムか否かを判定
するための更新フラグの初期化をプログラム開始時に行
っているが、これをコミット処理時およびロールバンク
処理時に行うようにすればよりきめの細かな制御が可能
となる。
〔発明の効果〕
以上説明したように本発明は、デフドロック発生時にデ
ッドロックを引き起こしたプロセスに一方的にデッドロ
ックステータスを通知するのではなく、参照系プログラ
ムを検出しこの参照系プログラムのロールバック処理お
よびデータベース操作命令の再実行処理をデータベース
管理システムで自動的に行ってデッドロックを解除する
ようにしたことにより、次のような効果がある。
fi+  参照系プログラムにはデフドロフタステータ
スが通知されないため、参照系プログラムはデッドロッ
クのための処理を組み込む必要がない。
これにより、プログラムの生産性を向上させることがで
きる。
(2)参照系プログラムと更新系プログラムとの間でデ
ッドロックが発生した場合に参照系プログラムのロール
バンク処理を行うことによりデッドロックの解除を行う
ため、デッドロック解除時のオーバヘッドを少なくする
ミとができる。
(3)同時に動作させる更新系プログラムをデータベー
ス管理システムに1零止制限することにより、全てのプ
ログラムでデッドロックの処理を不要とすることが可能
となる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す構成図、第2図は第1
図中のデータベース操作命令記憶手段における処理を示
す流れ図、 第3図は第1回中のキャンセルプロセス検出手段におけ
る処理を示す流れ図、 第4図は第1図中のキャンセル・再実行手段における処
理を示す流れ図である。 図において、 l・・・ユーザプロセス、 2・・・データベース操作命令解析手段、3・・・デー
タベース操作命令記憶手段、4・・・デッドロック検出
手段、 5・・・キャンセルプロセス検出手段、6・・・キャン
セル・再実行手段である。

Claims (1)

  1. 【特許請求の範囲】 コミットメント制御を行っているデータベース管理シス
    テムにおいて、 データベース操作命令の発行状況をプロセス毎に記憶す
    るデータベース操作命令記憶手段と、デッドロック発生
    時に前記データベース操作命令記憶手段に記憶された記
    憶情報に基づきこのデッドロックに関連するプロセス群
    の中からデータベースに対して入力のみを行っているプ
    ロセスを検出するキャンセルプロセス検出手段と、 このキャンセルプロセス検出手段により検出されたプロ
    セスの実行中のデータベース操作命令の実行をキャンセ
    ルし再実行させるキャンセル・再実行手段と、 を有することを特徴とするデッドロック解除方式。
JP61199460A 1986-08-26 1986-08-26 デツドロツク解除方式 Pending JPS6354638A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61199460A JPS6354638A (ja) 1986-08-26 1986-08-26 デツドロツク解除方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61199460A JPS6354638A (ja) 1986-08-26 1986-08-26 デツドロツク解除方式

Publications (1)

Publication Number Publication Date
JPS6354638A true JPS6354638A (ja) 1988-03-09

Family

ID=16408170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61199460A Pending JPS6354638A (ja) 1986-08-26 1986-08-26 デツドロツク解除方式

Country Status (1)

Country Link
JP (1) JPS6354638A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02157943A (ja) * 1988-12-09 1990-06-18 Nec Corp データ操作言語命令再試行方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02157943A (ja) * 1988-12-09 1990-06-18 Nec Corp データ操作言語命令再試行方式

Similar Documents

Publication Publication Date Title
US9569254B2 (en) Automatic checkpointing and partial rollback in software transaction memory
US7178062B1 (en) Methods and apparatus for executing code while avoiding interference
JPH0465414B2 (ja)
JP3052908B2 (ja) トランザクションプログラム並列実行方法およびトランザクションプログラム並列実行方式
CN101093453A (zh) 基于虚拟内核对象的Linux程序检查点用户级实现方法
JP2001344142A (ja) マルチプログラム処理装置及びそれに用いるファイルのロールバック方式
JPH04284548A (ja) データベース排他制御方式
JPH07101399B2 (ja) データベースのデッドロック処理方式
JP2743860B2 (ja) 利用者プログラムのデバッグ処理システム
JPH04314141A (ja) マルチタスク制御方法とその機構
JPH0433127A (ja) チェックポイント制御方式
JP2623968B2 (ja) ジャーナルレスファイルのコミット同期制御方式
JPH02157943A (ja) データ操作言語命令再試行方式
JPH06214848A (ja) データベース管理システム
Tabassum et al. Transactional Memory: A Review
JPH0324648A (ja) ファイル同時アクセス制御方式
JPS61233838A (ja) 情報処理装置
JPH0926907A (ja) ロック制御器
JPH03109643A (ja) データ例外手続き実行方式
JPH0546452A (ja) コミツトメント制御システム
JPH03237554A (ja) マルチプロセッサ制御方式
JPH0248766A (ja) プロセッサインタフェース制御システム
JPH03286230A (ja) メモリ領域の自動退避/復元方式
JPH01277943A (ja) デッドロックのリカバリ方式
JPH02280235A (ja) コンピュータシステムの中断方法