JPS63238644A - ロツク単位の変更方式 - Google Patents

ロツク単位の変更方式

Info

Publication number
JPS63238644A
JPS63238644A JP62073221A JP7322187A JPS63238644A JP S63238644 A JPS63238644 A JP S63238644A JP 62073221 A JP62073221 A JP 62073221A JP 7322187 A JP7322187 A JP 7322187A JP S63238644 A JPS63238644 A JP S63238644A
Authority
JP
Japan
Prior art keywords
lock
transaction
lock unit
changed
unit
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
JP62073221A
Other languages
English (en)
Inventor
Yoshio Hosoya
細矢 義夫
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 JP62073221A priority Critical patent/JPS63238644A/ja
Publication of JPS63238644A publication Critical patent/JPS63238644A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データベース管理システムのロック制御機構
に関し、特にロックの最適化を画るロック単位の変更方
式に関する。
〔従来の技術〕
従来、データベース管理システムのデータベース環境は
、共通する資源に対して複数のプログラムが同時にこれ
を利用しているので、個々のプログラムが勝手な方法で
データベースを利用したとき、障害の回復が困難になっ
たり、あるいは不可能になってしまうことがある。この
ようなことにならないようにシステム全体を統一して管
理制御するために、トランザクションの実行中処理対象
となるデータを他のプロセスが変更しないように締め出
す必要がある。これをロックといい、このロック対象の
大きさ、すなわち、ロック単位としては、エリア単位と
ページ単位のロックをサポートしているものが多い。又
、トランザクション処理中には、特定の資源に対しては
、特定のロック単位を適用するのが一般的となっていた
〔発明が解決しようとする問題点〕
上述した従来の技術では、ロック単位が資源に対して固
定であるので、ページ単位のように小さな単位でロック
を行なうと、共用度は高くなるが、ロック粒の個数も多
くなり、その分ロックに要するコストが高くなる欠点が
ある。
〔問題点を解決するための手段〕
本発明のロック単位の変更方式は、データベース管理シ
ステムのロック制御機構において、システム全体の各ロ
ック単位毎のロック粒の個数の上限値を管理する手段と
、システム全体の各ロック単位毎のロック粒の個数をカ
ウントする手段と、システム全体の各ロック単位毎のロ
ック粒の個数が前記上限値を越えたか否かを監視する手
段と、監視した結果、システム全体のロック粒の個数が
上限値を越えた場合、各トランザクション毎に、より大
きなロック単位のロックに変更可能か否かを判定する手
段と、判定の結果ロック単位の変更ができないトランザ
クションを異常終了させ、ロック単位の変更が可能なト
ランザクションのロック単位を一時的により大きなロッ
ク単位のロックに変更する手段と、前記ロック単位を一
時的により大きなロックに変更したトランザクションは
、トランザクションの終了まで変更したロック単位のロ
ックを維持する手段と、前記一時的にロック単位を変更
したトランザクションの°走行中に、新たに発生したト
ランザクションを、トランザクション開始時に待ち状態
にする手段と、前記一時的にロック単位を変更したトラ
ンザクションが全て終了した時点で、前記待ち状態のト
ランザクションの待ちを解除する手段とを有している。
〔実施例〕
次に、本発明について図面を参照して説明する。
ロック単位の内小さなロック単位を例えばページ単位の
ロックとし、より大きなロック単位を例えばエリア単位
のロックとする。
第1図(A)〜(C)は、本発明方式を説明する概念図
である。同図(A)のALLは、ロック単位の1つであ
り、エリアロック粒を示す。このエリアロック粒はエリ
ア毎に1ケずつ作成され、エリアに対してトランザクシ
ョンから最初にアクセスされた時に作成される。エリア
ロック粒は、エリア単位のロックでもページ単位のロッ
クのいずれの場合にも作成する。T I 1.T I 
2 、 T I 3゜・・・は、トランザクション情報
であり、エリアに対してアクセス中のトランザクション
の情報を表わす、P L 1.P L2+”’ 、 P
 L250.”’はページロック粒であり、それぞれ、
PL、からPL、、はトランザクション情報T1.で示
されるトランザクションのロック粒であり、PL、、か
らPL200はトランザクション情報TI2で示される
トランザクションのロック粒であり、PL201からP
L、2.。はトランザクション情報TI3で示されるト
ランザクションのロック粒である。同図(B)に示すト
ランザクション待ちキューTWOからは、資源の解放待
ちで待っているトランザクションの情報がキューイング
される。TWI、TW2がこれに相当する。バックアウ
ト待ちキューBWQには、一時的にロック単位を変更す
るトランザクションが、異常終了するトランザクション
のバックアウト処理の完了を待つ時にキューイングされ
る。TW3.TW4がこれに相当する。同図(C)に示
すページロック粒の個数の上限値PL□8は、各ロック
単位毎のロック粒の個数の上限値であって、例えば、デ
ィレクトリ内に格納されており、データベースの生成時
に予じめ与えられる情報である。
第2図は、エリアロック粒ALの構成を表わす概念図で
ある。トランザクションキューポインタからエリアにア
クセスするトランザクションの情報がキューイングされ
る。ロック状態は、ロックの単位がページ単位なのかエ
リア単位なのかの識別、エリアロックのロックの種別す
なわち参照ロック/更新ロックの識別、およびロック単
位の変更中を表示する情報である。ページロック粒カウ
ンタは、ページロック粒の個数を示す。ページロック粒
キューポインタからはページロック粒がキューイングさ
れる。但し、ロック単位がエリア単位の時には、ページ
ロック粒カウンタは“0”であり、ページロック粒のキ
ューは作成されない。
第3図は、トランザクション情報TIの構成を表わす概
念図である。トランザクションキューポインタは次のト
ランザクション情報へのポインタである。トランザクシ
ョン識別子は、各トランザクションを一意に識別するた
めの情報である。トランザクション状態は、トランザク
ションがエリアに対して行なったアクセスの状態が参照
アクセスのみなのか更新アクセスを含むかの識別、トラ
ンザクションのバックアウトの要否を示す情報である。
トランザクション内ページロック粒カウンタは、トラン
ザクション内でのページ粒の個数を表わす、ページロッ
ク粒キューポインタがらは、トランザクション内でのペ
ージロック粒がキューイングされる。
第4図は、トランザクション待ち情報TWの構成を表わ
す概念図である。トランザクション待ちキューポインタ
は次のトランザクション待ち情報へのポインタである。
トランザクション識別子1は、待ちとなっているトラン
ザクションのトランザクション識別子である。トランザ
クション識別子2はトランザクション識別子1で示され
るトランザクションが待っている資源を使用中のトラン
ザクションの識別子である。待ち資源は、待っている資
源を識別する情報であり、ページ番号等で表わされる。
トランザクション識別子2で示されるトランザクション
が待ち資源で示される資源のロックを解除した段階で、
トランザクション識別子1で示されるトランザクション
の待ちを解除するために本情報が使用される。又、本情
報は、デッドロックのチェックのためにも使用される。
但し、バックアウト待ちキューBWQからキューイング
される時には、トランザクション識別子2および待ち資
源は意味を持たない。
次に、実施例について第1図および第5図のフローチャ
ートを参照して説明する。第1図に示すページロック粒
の個数の上限値PL、、、を例えば250とする。理解
を容易にするためにエリアは1つであるとする。エリア
は複数のページで構成されているものとする。ベニシロ
ツク粒の個数が250までは、ロック可否の判断が行な
われ(ステップ101)、ロックが不可の場合は待ちが
可能か否かの判断が更に行なわれる。待ちが不可ならば
異常終了してトランザクションはバックアウトされる。
待ちが可ならばトランザクション待ち情報TWを作成し
、トランザクション待ちキューTWQからキューイング
して待ち状態とする。ロックが可ならばロック粒を作成
しくステップ1゜2)、エリアロック粒内のロック粒カ
ウンタ及びトランザクション情報内のロック粒カウンタ
をカウントアツプする(ステップ103)。更にエリア
にアクセスするアクセスの種別がらトランザクション情
報内のトランザクション状態の表示を更新する。但し、
全てのトランザクションの最初のエリアへのアクセス時
は、エリアロック粒の作成を行ない、トランザクション
毎の最初のエリアへのアクセス時は、トランザクション
情報の作成も行なう。
ページロック粒が250となるまでは、次々にページロ
ック粒が増加して行く(ステップ1o4)、251ケ目
のロック要求が生じるとくステップ104)、ページロ
ック粒の個数の上限値を越えるので、ロック単位をペー
ジ単位がらエリア単位に変更する(ステップ1o5)。
最初にエリアロック粒内のロック単位の変更中表水をセ
ットする。
次に、ロック単位を変更するトランザクションと異常終
了させるトランザクションの選別を行なう。
選別は、アクセスの競合を考慮し、例えば次のように実
施する。トランザクション情報内のアクセス状態により
、参照アクセスのみのトランザクションを集めたものと
、更新アクセスを含むトランザクションの各々を1つの
グループとみなし、グループ間のページロック粒の個数
を比較し、最も個数の大きいグループを1つj′11択
する。選択されたグループに含まれるトランザクション
がロック単位を変更できるトランザクションであり、そ
れ以外は、異常終了させるトランザクションとなる。
異常終了させるトランザクションに対してはトランザク
ション情報内にバックアウト要表示を設定する。更に選
択されたグループが参照アクセスのみのトランザクショ
ンの集まりであれば、エリアロック粒内のロック種別に
参照表示を設定し、それ以外ならば更新表示を設定し、
この一時的により大きなロック単位に変更したトランザ
クションは、トランザクションの終了まで変更したロッ
ク単位のロックで維持される(ステップ105)。
バックアウト要表示が自トランザクションに設定されれ
ば、ロック制御機構からはエラーリターンし、トランザ
クションはバックアウトされる。トランザクションが異
常終了する契機でロック制御機構に制御移行される。こ
の時点で該トランザクションがロックしていた資源の解
放を行ない、該トランザクションでロックしていた資源
を待っているトランザクションの待ちを解除する。更に
該トランザクションに関するトランザクション情報を消
去する。該トランザクションがバックアウト要でなけれ
ば、バックアウト要のトランザクションの有無をトラン
ザクション情報を見て調べる。
バックアウト要のトランザクションがあれば、最初にト
ランザクション待ちキューにキューイングされている全
トランザクションの待ちを強制的に解除する。次に、自
トランザクションのトランザクション待ち情報を作成し
てバックアウト待ちキューにキューイングして、バック
アウトの完了を待つ。次々に制御を与えられたトランザ
クションは、バックアウトが不要なものは、バックアウ
ト待ちキューにキューイングされ、バックアウトが必要
なものはバックアウトされて行く。最後にバックアウト
されるトランザクションは、トランザクションの終了す
る契機でバックアウト待ちキューにキューイングされて
いる全トランザクションの待ちを解除する。以降制御が
与えられたトランザクションが走行する時には、ページ
ロック粒の作成を行なわずに、アクセス種別のチェック
のみがなされる。アクセス種別がチェックされるのは、
走行トランザクション数が複数であり、かつエリアロッ
ク粒内のロック種別が参照の場合のみである。具体的に
はトランザクションから更新アクセスがなされた時に異
常終了させる。このようにして、エリア単位のロックと
同様のロックの効果を一時的に作り出すことができる。
尚、エリアロック粒内に一時的なロック単位のトランザ
クションに変更中表水がある時、すなわち、走行中であ
れば(ステップ107)、新たに発生したトランザクシ
ョンは(ステップ106)、)ランザクジョン開始時点
で全てトランザクション待ちキューにキューイングされ
る(ステップ108)。これらのトランザクションは、
一時的にロック単位を変更したトランザクションが全て
終了する契機で待ちを解除する(ステップ109)。
〔発明の効果〕
以上説明したように本発明は、小さいロック単位のロッ
ク粒が多くなり、ロックに要するコストが高くなった時
点で、ロックの単位をより大きなロック単位に変更する
ことにより、低コストでトランザクションの実行を行な
うこと゛ができる効果がある。
【図面の簡単な説明】
第1図(A>、(B)、(C)は本発明を説明する概念
図、第2図は第1図のエリアロック粒の概念図、第3図
は第1図のトランザクション情報の概念図、第4図は第
1図のトランザクション待ち情報の概念図、第5図は本
発明の詳細な説明するフローチャツトである。 図において、ALlはエリアロック粒、T11〜TI、
はトランザクション情報、PLI〜 PL 250はペ
ージロック粒、TWQはトランザクション待ちキュー、
TW1〜TW4はトランザクション待ち情報、BWQは
バックアウト待ちキュー、PL、、、はベージロック粒
個数上限値をそれぞれ82閃

Claims (1)

    【特許請求の範囲】
  1. 複数のトランザクションが同時に走行し、これらのトラ
    ンザクションから、データベースに同時にアクセスする
    ことを可能とするデータベース管理システムのロック制
    御機構におけるロック単位変更方式において、システム
    全体の各ロック単位毎のロック粒の個数の上限値を管理
    する手段と、システム全体の各ロック単位毎のロック粒
    の個数をカウントする手段と、前記カウント手段による
    各ロック単位毎のロック粒の個数が上限値を越えたか否
    かを監視する手段と、監視した結果、ロック粒の個数が
    上限値を越えた場合、各トランザクション毎に、より大
    きなロック単位のロックに変更可能か否かを判定する手
    段と、判定の結果ロック単位の変更ができないトランザ
    クションを異常終了させ、ロック単位の変更が可能なト
    ランザクションのロック単位を一時的により大きなロッ
    ク単位のロックに変更する手段と、前記ロック単位を一
    時的により大きなロックに変更したトランザクションは
    、トランザクションの終了まで変更したロック単位のロ
    ックを維持する手段と、前記一時的にロック単位を変更
    したトランザクションの走行中に、新たに発生したトラ
    ンザクションを、トランザクション開始時に待ち状態に
    する手段と、前記一時的にロック単位を変更したトラン
    ザクションが全て終了した時点で、前記待ち状態のトラ
    ンザクションの待ちを解除する手段とを有して成ること
    を特徴とするロック単位の変更方式。
JP62073221A 1987-03-26 1987-03-26 ロツク単位の変更方式 Pending JPS63238644A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62073221A JPS63238644A (ja) 1987-03-26 1987-03-26 ロツク単位の変更方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62073221A JPS63238644A (ja) 1987-03-26 1987-03-26 ロツク単位の変更方式

Publications (1)

Publication Number Publication Date
JPS63238644A true JPS63238644A (ja) 1988-10-04

Family

ID=13511894

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62073221A Pending JPS63238644A (ja) 1987-03-26 1987-03-26 ロツク単位の変更方式

Country Status (1)

Country Link
JP (1) JPS63238644A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008524694A (ja) * 2004-12-16 2008-07-10 オラクル・インターナショナル・コーポレイション データベース管理システムにおけるファイル操作のためのロックを提供するための手法
US8224837B2 (en) 2005-06-29 2012-07-17 Oracle International Corporation Method and mechanism for supporting virtual content in performing file operations at a RDBMS

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008524694A (ja) * 2004-12-16 2008-07-10 オラクル・インターナショナル・コーポレイション データベース管理システムにおけるファイル操作のためのロックを提供するための手法
JP4759570B2 (ja) * 2004-12-16 2011-08-31 オラクル・インターナショナル・コーポレイション データベース管理システムにおけるファイル操作のためのロックを提供するための手法
US8224837B2 (en) 2005-06-29 2012-07-17 Oracle International Corporation Method and mechanism for supporting virtual content in performing file operations at a RDBMS

Similar Documents

Publication Publication Date Title
US5734909A (en) Method for controlling the locking and unlocking of system resources in a shared resource distributed computing environment
US7337290B2 (en) Deadlock resolution through lock requeing
US5852747A (en) System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client
US6681226B2 (en) Selective pessimistic locking for a concurrently updateable database
US4791554A (en) Method and apparatus for preventing deadlock in a data base management system
US5745747A (en) Method and system of lock request management in a data processing system having multiple processes per transaction
CN101236509B (zh) 用于管理锁的系统和方法
US6463532B1 (en) System and method for effectuating distributed consensus among members of a processor set in a multiprocessor computing system through the use of shared storage resources
EP0428006A2 (en) Multilevel locking system and method
US20050022047A1 (en) Conditional data access after database system failure
JPH0552972B2 (ja)
JP2006524381A5 (ja)
EP0365728B1 (en) Resource access for a multiprocessing computer system
US10732841B2 (en) Tracking ownership of memory in a data processing system through use of a memory monitor
US20030110232A1 (en) Distributing messages between local queues representative of a common shared queue
US5966547A (en) System for fast posting to shared queues in multi-processor environments utilizing interrupt state checking
US8087027B2 (en) Computer program product and system for deferring the deletion of control blocks
JPS63238644A (ja) ロツク単位の変更方式
JPH1049388A (ja) 入出力制御装置
EP0049423B1 (en) Multiprocessor system
JP2610926B2 (ja) トランザクション制御方式
JPS6320634A (ja) 計算機資源排他制御方式
JPH0115899B2 (ja)
JPH0981438A (ja) クライアントサーバシステムにおける自動排他制御システム
JPH06161872A (ja) タスク間排他制御方法