JPH05216728A - データベース管理システム - Google Patents

データベース管理システム

Info

Publication number
JPH05216728A
JPH05216728A JP4020969A JP2096992A JPH05216728A JP H05216728 A JPH05216728 A JP H05216728A JP 4020969 A JP4020969 A JP 4020969A JP 2096992 A JP2096992 A JP 2096992A JP H05216728 A JPH05216728 A JP H05216728A
Authority
JP
Japan
Prior art keywords
data
update
data identifier
weak
identifier
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
JP4020969A
Other languages
English (en)
Inventor
Kazuyoshi Negishi
和義 根岸
Kiyotaka Kibo
清隆 木保
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4020969A priority Critical patent/JPH05216728A/ja
Publication of JPH05216728A publication Critical patent/JPH05216728A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】本発明の目的は、データベース管理システムに
おける排他制御とメモリ制御方式に関し、特にデータを
更新する処理とデータのコピーを参照する処理をデータ
に矛盾が生じないように並行処理させることにある。ま
た、データのコピーのオーバヘッドを削減することを目
的とする。 【構成】データの参照権を他からの当該データに対する
更新を許す更新権と共存できる弱い参照権に切り替える
事を実現する排他制御3と、弱い参照権を持つ処理には
データのコピーを参照させつつ、データの更新を許すデ
ータ管理2と、ロックテーブル4と、データメモリ5を
備えるようにする。 【効果】メモリ管理2がデータメモリ5におけるデータ
とそのコピーを使い分けることによりデータの参照と更
新を同時に可能とした。これにより、コピーのオーバヘ
ッドが削減でき、システムの処理能力が向上する。ま
た、排他制御3がロックテーブル4によりデータに矛盾
の生じるのを防止している。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データに対する排他制
御機能を有するデータベース管理システムに関する。
【0002】
【従来の技術】データベース管理システムは、データの
論理アドレス(以下、「データ識別子」と呼ぶ)に対して
データを蓄積し、指定されたデータ識別子に基づいてデ
ータの参照あるいは更新をサポートする機能を持つ。さ
らに、データベース管理システムは、一連のデータ識別
子を指定したデータの更新あるいは参照を含む処理を相
互に矛盾することなく、複数並行して実行させる機能を
持つ。このような一連の処理をトランザクション(T
R)と呼ぶ。通常、TRに含まれるすべての処理が適正
に行なわれた場合にのみ、そのTRが正常に実行された
こととし、1つでも処理にエラーが発生した場合はその
TRは無効としデータは更新されないようになってい
る。
【0003】C.J.Date著の「An Introduction to Dat
abase Systems 」Volume 2,Chapter3 Concurrency,Add
ison Wesley(1983) によれば、相互に矛盾のないTRの
実行とは、TRの実行過程がシリアライザブルであるこ
とである。シリアライザブルとは、TRを個々に順次実
行した場合と並行して実行した場合とで同一の結果を生
ずることをいう。
【0004】また、上記文献によれば、データの更新あ
るいは参照に先立ちデータ識別子の更新ロックあるいは
参照ロックを確保し、2相ロック方式というロックの確
保開放の手順を守ることにより、TRの実行過程がシリ
アライザブルとなることが示されている。ここで、2相
ロック方式とは、(1)TRはデータの参照あるいは更
新の前にデータ識別子に対する参照ロックあるいは更新
ロックを確保し、(2)TRはいったん1つでもロック
を開放したなら以後新たなロックを確保しない、という
方式である。ロックを確保していくシーケンスとロック
を開放していくシーケンスを2相に分けることにより、
シリアライザブルなTRの実行過程が実現される。
【0005】さらに、上記文献によれば、更新ロックお
よび参照ロックの相互関係は、次の表1に示すロック種
別の相互関係表により規定される。この表1は、あるロ
ック対象(ここではデータ識別子)に対して、あるトラ
ンザクションTが表の縦見出に対応するロックを保持し
ており、別のトランザクションT′が横見出に表されて
いるロックを要求した場合の結果を示す。X,S,−は
ロックの種類を示すロック種別を表し、具体的には、
X:更新ロック,S:参照ロック,−:ロックなし、を
表す。“N”は競合を表し、このときトランザクション
T′はロックの確保ができない。“Y”は共存を表し、
このときトランザクションT′はロックの確保を許され
る。ロックを確保できなかったTRは、そのロックが開
放され確保が可能となるまで実行を中断し、待ち状態と
なる。
【0006】
【表1】
【0007】また、上記文献には第二の技術として、T
Rがデータを参照する前後の僅かな期間のみ参照ロック
を確保して、後は開放することにより、TR同士のロッ
クの競合を減少させ、並行して実行可能なTRの個数を
増加させる技術が示されている。
【0008】さらに、公表特許公報昭和59−501231号
によれば、データ識別子の集合に対応する複数のデータ
集合(「バージョン」と呼ぶ)を保持し、別々のバージ
ョンを複数のTRに対応づけて、あるTRからデータ識
別子を指定してデータの参照要求がなされた場合に、対
応するバージョンのデータを参照させる方式が示されて
いる。これら複数のバージョンが含むデータのデータ識
別子の集合をリレーションと呼ぶ。言い替えれば、リレ
ーションとは、あるデータ識別子の集合についての複数
のバージョンが含むデータの集合と考えてもよい。
【0009】TRは開始時にリレーションのその時点に
おける最新のバージョンと対応付けられる。またそれと
同時に、一つのTRによるデータ識別子を指定したデー
タの更新を以下の手順で行う方式が示されている。ま
ず、更新TRは他にそのリレーションを更新するTRが
実行中であれば、その終了を待つ。データの更新を行う
TRは、更新すべきデータ識別子のデータのコピーを新
たに作成し、そのコピーを更新する。そしてTRの終了
時に、TRが更新要求に際して指定したデータ識別子に
関して最新のバージョンの他いおうするデータをTRが
更新したデータで置き換える。以後開始するTR(他の
バージョンに対応付けられていないTR)は当該最新バ
ージョンに対応付ける。誰からも参照されなくなったバ
ージョンのうち、最新のバージョン以外はガーベージコ
レクタにより消去する。
【0010】
【発明が解決しようとする課題】ところで、データベー
ス管理システムが処理するTRには、大きく分けてオン
ライントランザクション(OLTR)とバッチトランザ
クション(BATR)がある。OLTRは、少数のデー
タ識別子によるデータの更新を行い短時間で終了するT
Rである。これに対して、BATRは、多数のデータ識
別子によるデータの参照を行い、その結果を少数のデー
タ識別子によるデータ更新で書き込むような、長時間を
要するTRである。BATRは、例えば全データを参照
して統計情報を算出するようなTRである。
【0011】従来、OLTRとBATRは異なった計算
機システム上で異なったデータを対象として処理されて
きた。しかし、近年OLTRとBATRを同一のデータ
を対象として、同一の計算機システムで処理するニーズ
が高まっている。ここで、前記Dateの著書に示されてい
る従来の技術では、いったんTRが参照ロックを確保し
てしまうと、TRの終了までそのロックは開放されな
い。従って、BATRが参照のためにロックしたデータ
識別子に対するデータをOLTRが更新しようとして
も、BATRの終了まで長時間待たされてしまうという
問題がある。
【0012】一方、Dateの文献に於ける第二の技術によ
れば、BATRがデータ識別子によりあるバージョンを
参照した後実行中であっても、参照ロックが開放済みで
あれば、OLTRは他に同一データ識別子によるデータ
の更新を行うTRが実行中でない限り、その更新が可能
である。従って、OLTRが待たされる事はない。
【0013】しかしながら、この第二の技術では、デー
タ識別子に対する更新ロックのみがTR終了まで保持さ
れており、参照ロックに相当するものは一時的である。
そのため、例えば複数のTRの間で次のケース1または
ケース2のような順序でTRの処理が発生した場合、シ
リアライザビリティが失われてしまう。さらに、データ
識別子を指定してデータを参照したのち、再度同一のデ
ータ識別子によるデータの参照をした場合、同一のデー
タが得られるという保証はない。
【0014】{ケース1} ・BATRのTBがデータ識別子Aのデータを参照 ・OLTRのTOがデータ識別子Aを更新ロック ・OLTRのTOがデータ識別子Aのデータを更新 ・OLTRのTOが終了 ・OLTRのTO′がデータ識別子Aのデータを参照 ・OLTRのTO′がデータ識別子Bを更新ロック ・OLTRのTO′がデータ識別子Bのデータを更新 ・OLTRのTO′が終了 ・BATRのTBがデータ識別子Bのデータを参照 {ケース2} ・BATRのTBがデータ識別子Aのデータを参照 ・OLTRのTOがデータ識別子Bのデータを参照 ・OLTRのTOがデータ識別子Aを更新ロック ・OLTRのTOがデータ識別子Aのデータを更新 ・BATRがTBがデータ識別子Bを更新ロック ・BATRのTBがデータ識別子Bのデータを更新 上記{ケース1}において、BATRがデータ識別子A
によりデータを参照したということは、参照ロックをい
ったん取得して開放したと解釈される。この後、OLT
Rがデータ識別子Aのデータを更新しそれを参照してデ
ータ識別子Bのデータを更新している。その後、BAT
Rがデータ識別子Bを参照している。従って、BATR
がデータ識別子Aによりデータを参照してからデータ識
別子Bのデータを参照するまでの間に、OLTRによっ
てデータ識別子Bのデータが変わっている可能性があ
り、シリアライザビリティが失われている。このケース
は、BATRがデータ識別子Aの参照ロックを確保して
開放した後にデータ識別子Bのデータを参照しているの
で、参照ロックを取得したと同等であると考えられ、そ
のため2相ロックの規定に反することとなったものであ
る。
【0015】同様に上記{ケース2}では、BATRが
データ識別子Aのデータを参照して次にデータ識別子B
のデータを更新するまでに、OLTRがデータ識別子B
のデータを参照してデータ識別子Aのデータを更新して
いるので、一方のデータを参照して他方のデータを更新
する処理がクロスしている。従って、この場合もシリア
ライザビリティが失われている。このケースは、BAT
Rがデータ識別子Aの参照ロックを確保して開放した後
にデータ識別子Bに更新ロックを取得したことが、2相
ロックの規定に反しており、シリアライザビリティの失
われる原因となったものである。
【0016】次に、公表特許公報昭和59−501231号の方
式では、TRの開始時にリレーションに対する更新ロッ
クを確保するため、同一のリレーションを使用する更新
TRは並行して実行できないという問題がある。また、
この方式では、TRの開始時にロックの確保と開放がお
こなわれるため、TR開始後新たなデータに対するロッ
クを追加して確保することはできないという問題があ
る。さらに、この方式では、すべてのデータ識別子によ
る更新要求に対してデータのコピーを作成しており、例
えば他に参照しているTRが存在しないデータ識別子に
対してはコピー作成は不必要であるにもかかわらずすべ
てコピーを作成するという不合理な点がある。
【0017】本発明の目的は、TR相互のシリアライザ
ビリティを確保しつつ、OLTRとBATRの同一計算
機システム,同一データでの共存を実現することであ
る。そのために、リレーション単位のロックを避け、同
一データ識別子を対象としたデータの参照と更新を並行
して可能とする手段を提供することにある。また、本発
明の別の目的は、同一のデータ識別子に対する複数のデ
ータの作成に必要なコピーの回数を必要最小限にするこ
とにある。
【0018】
【課題を解決するための手段】上記の目的を達成するた
め、本発明は、データ識別子を指定してデータの更新権
または参照権の確保を要求する動作および該データ識別
子に対応するデータの更新または参照を要求する動作を
含む一連の処理を行なうトランザクション処理が、これ
らの動作を要求するデータベース管理システムであっ
て、データ識別子に対応するデータを記憶する記憶手段
と、データ識別子を指定したデータの更新が要求された
場合は、該データ識別子にすでに他のトランザクション
処理から参照権が確保されているか否かを判別し、確保
されているときは該データ識別子に対応するデータのコ
ピーを上記記憶手段に作成し、以後上記他のトランザク
ション処理からの参照要求に対しては該コピーを参照さ
せる管理手段とを備える。
【0019】また本発明は、データ識別子を指定してデ
ータの更新権の確保を要求する動作および該データ識別
子に対応するデータの更新を要求する動作を含む一連の
処理を行なう第1のトランザクション処理,並びにデー
タ識別子を指定してデータの弱い参照予備権の確保を要
求する動作,該弱い参照予備権の弱い参照権への切り替
えを要求する動作および該弱い参照権を確保したデータ
識別子に対応するデータの参照を要求する動作を含む一
連の処理を行なう第2のトランザクション処理が、これ
らの動作を要求するデータベース管理システムであっ
て、データ識別子に対応するデータを記憶する記憶手段
と、上記第1のトランザクション処理からデータ識別子
を指定したデータの更新が要求された場合は、該データ
識別子にすでに上記第2のトランザクション処理に対す
る弱い参照権が確保されているか否かを判別し、確保さ
れているときは該データ識別子に対応するデータのコピ
ーを上記記憶手段に作成し、以後上記第2のトランザク
ション処理からの参照要求に対しては該コピーを参照さ
せる管理手段とを備える。
【0020】さらに本発明は、データ識別子を指定して
データの更新権の確保を要求する動作および該データ識
別子に対応するデータの更新を要求する動作を含む一連
の処理を行なう第3のトランザクション処理,並びにデ
ータ識別子を指定してデータの参照権の確保を要求する
動作,データ識別子を指定して該参照権の弱い参照権へ
の切り替えを要求する動作および該弱い参照権を確保し
たデータ識別子に対応するデータの参照を要求する動作
を含む一連の処理を行なう第4のトランザクション処理
が、これらの動作を要求するデータベース管理システム
であって、データ識別子に対応するデータを記憶する記
憶手段と、上記第3のトランザクション処理からデータ
識別子を指定したデータの更新が要求された場合は、該
データ識別子にすでに上記第4のトランザクション処理
に対する弱い参照権が確保されているか否かを判別し、
確保されているときは該データ識別子に対応するデータ
のコピーを上記記憶手段に作成し、以後上記第2のトラ
ンザクション処理からの参照要求に対しては該コピーを
参照させる管理手段とを備えたことを特徴とする。
【0021】さらに、弱い参照権への切り替えがあった
後はその切り替えがあったトランザクション処理からの
新たな更新権などの確保を拒否する排他制御手段を備え
るのが良い。
【0022】
【作用】本発明によれば、データ識別子を指定したデー
タの更新が要求された場合に、該データ識別子にすでに
他のトランザクション処理から参照権が確保されている
か否かを判別し、確保されているときは該データ識別子
に対応するデータのコピーを上記記憶手段に作成し、以
後上記他のトランザクション処理からの参照要求に対し
ては該コピーを参照させるようにしているので、コピー
は必要なときのみ最小限度で作成される。
【0023】データ識別子に対する参照権などの弱い参
照権への切り替えにより他のトランザクションによる更
新ロックを可能とする動作は、2相ロック方式における
ロックの開放に相当する。従って、シリアライザビリテ
ィを保持するためには、弱い参照ロックへの切り替え以
後、新たにロック(更新権や参照権など)を確保しない
ようにする必要がある。本発明の構成によれば、弱い参
照権への切り替え以後の弱い参照予備権などの確保を禁
止することにより、従来技術の問題点であった{ケース
1}の発生を防止している。また、更新権と弱い参照権
が共存した場合、参照する側のトランザクションに同一
データ識別子に対してコピーデータを示すことにより、
OLTRの更新と、BATRの参照の共存を可能にして
いる。
【0024】さらに、弱い参照予備権から弱い参照権へ
の切り替えをTRごとにまとめて行えば、ロック種別切
り替えのオーバヘッドの削減が計れる。
【0025】
【実施例】以下、本発明の実施例を図面を用いて説明す
る。
【0026】図1は、本発明の一実施例に係るデータベ
ース管理システムのシステム構成図である。同図におい
て、処理装置11は、端末10a〜10cおよびログ用
ディスク装置6と接続されている。処理装置11のメモ
リ上には、以下のソフトウェアが存在する。
【0027】まず、オペレーティングシステム(OS)1
2があり、プロセス14a〜14cによるタイムシェア
リングシステム(TSS)13,トランザクション処理(T
RP)8a〜8c,データベース管理システム(DBMS)
1の実行を制御している。端末10a〜10cからメッ
セージが入力されたとき、OS12はTSS13と協力
し、あらかじめ割当てられたそれぞれのプロセス14a
〜14cを実行開始し、TRP8a〜8cの処理をそれ
ぞれ始める。TRP8a〜8cはデータベースに関する
処理を実行するため、データベース管理システム1の排
他制御3またはメモリ管理2をコールする。
【0028】図2は、排他制御3の詳細なブロック構成
図である。同図に示すとおり、排他制御3は、排他制御
の実際の処理を行う排他制御プログラム200とロック
待ち管理テーブル201とにより構成されている。排他
制御3は、さらにロックテーブル4を用いて、排他制御
情報の管理を行う。なお、排他制御プログラム200の
処理の流れは後で図6を参照して詳細に説明する。ロッ
ク待ち管理テーブル201は、現在、どのデータ識別子
に対してどのプロセスがロック待ち状態になっているか
を管理するテーブルである。
【0029】図3に、ロックテーブル4の構成を示す。
同図に示すように、ロックテーブル4は、TR名称31
0,データ識別子320、およびロック種別330を記
憶するテーブルである。このテーブルは、現在、どのT
Rがどのデータ識別子に対してどのようなロック種別の
ロックを確保しているかを管理しているテーブルであ
る。
【0030】図4は、メモリ管理2の詳細なブロック構
成図である。同図に示すとおり、メモリ管理2は、メモ
リ管理の実際の処理を行うメモリ管理プログラム41
0、およびTRとデータとの関連を記憶するデータディ
レクトリ400より構成されている。メモリ管理2は、
データメモリ5の内容をTRに対応付けて管理する。
【0031】データディレクトリ400は、TR名40
1と、データ識別子402,データのデータエリアにお
ける所在を示すアドレス403、およびデータがコピー
であるかどうかを示すコピーフラグ404を記憶するテ
ーブルである。これにより、データディレクトリ400
は、データメモリの中で、どの識別子のデータがどのア
ドレス位置に記憶されているのかを管理する。また、そ
のデータがコピーされたものであるかどうかを管理す
る。
【0032】メモリ管理プログラム410はデータディ
レクトリ400を使用して、データエリア(後述の図5
の付番510)のデータおよびそのコピーをTRに対応
付けて管理し、TRPからのデータの更新,参照要求、
および処理完了通知を処理する。また、メモリ管理プロ
グラム410は、弱い参照ロックを確保しているがまだ
コピーを作成していないデータに対して更新要求があっ
た場合、データエリアにデータのコピーを作成し、当該
コピーを使用しているすべてのTRPから処理完了の通
知のあるまで保持し、その対応をデータディレクトリ4
00に記憶する。またデータの更新の都度、その更新内
容をログ用ディスク装置6に記録する。
【0033】なお、この実施例のデータベース管理シス
テムで用いているロックの種別は、更新ロック,参照ロ
ック,弱い参照予備ロック、および弱い参照ロックの4
種類である。次の表2にこれらのロック種別の相互関係
表を示す。
【0034】
【表2】
【0035】また、メモリ管理プログラム410の処理
の流れは後で図7を参照して詳細に説明する。ログ用デ
ィスク装置6を使用したデータベースの障害回復に関し
ては、本発明の対象外であるためここでは説明を省略す
る。
【0036】図5は、データメモリ5の構成を示す。同
図に示すように、データメモリ5は、データを記憶する
データエリア510、およびデータインデクス520よ
り成る。データインデクス520は、データ識別子52
1とデータエリアをアクセスするためのアドレス522
より成り、データの本体(コピーでないもの)の位置を
管理する。データエリア510は、アドレス511によ
りアクセス可能なデータを記憶するサブエリアより構成
されている。
【0037】なお、この実施例では全データがデータエ
リア510に記憶されているものとする。ただし、この
ようないわゆるメモリデータベースに限らず、他のタイ
プのデータベースにも本発明は適用可能である。
【0038】次に、この実施例のデータベース管理シス
テムの動作を説明する。図6は排他制御プログラム20
0の処理の流れ、図7はメモリ管理プログラム410の
処理の流れを示す。まず、これらのデータベース管理シ
ステムの各処理を説明する前に、TRPの処理の流れに
つき説明する。
【0039】図8にTRPの処理の流れの一例を示す。
TRPa(図1の8a)はOLTRであり、端末からの
指示によりデータ識別子Aのデータを更新するTR(T
R名称TRa)を実行するTRPとする。TRPaの処
理では、まずデータ識別子Aの更新ロックを行うためデ
ータベース管理システムをコールし(ステップ801)、
次にデータ識別子Aのデータを更新するためにデータベ
ース管理システムをコールし(ステップ802)、最後
にTRの終了を通知するためにデータベース管理システ
ムをコールする(ステップ803)。
【0040】TRPb(図1の8b)もOLTRであ
り、データ識別子Aのデータに従いデータ識別子Bのデ
ータを更新するTR(TR名称TRb)を実行するTR
Pとする。TRPbの処理の特徴は、データ識別子Aの
データの参照(ステップ812)の前にデータ識別子Aを
参照ロックし(ステップ811)、データ識別子Bのデ
ータの更新(ステップ814)の前にデータ識別子Bを
更新ロックしている(ステップ813)点である。ステ
ップ814の後、最後にTRの終了を通知するためにデ
ータベース管理システムをコールする(ステップ81
5)。
【0041】TRPc(図1の8c)はBATRであ
り、データ識別子Aを参照したのち端末にその内容を表
示し、データ識別子Bのデータを参照したのちその内容
を端末に表示するTR(TR名称TRc)を実行するT
RPとする。TRPcの処理の流れは、まずデータ識別
子Aおよびデータ識別子Bに対して弱い参照予備ロック
を確保し(ステップ821,822)、データ識別子C
に対して更新ロックを確保し(ステップ823)、弱い
参照予備ロックを弱い参照ロックに切り替え(ステップ
824)、データ識別子Aのデータを参照して(ステッ
プ825)、端末にその結果を表示するためにTSSを
TPUT要求でコールする(ステップ826)。ここで、T
PUTは端末にメッセージを出力するためのスーパバイ
ザコールである。
【0042】次に、データ識別子Bのデータを参照し
(ステップ827)、その内容を同様にして端末に表示
し(ステップ828)、データ識別子Cのデータを更新
し(ステップ829)、TRの終了をデータベース管理
システムに知らせる(ステップ830)。
【0043】図10は、図9のようにTRPがデータベ
ース管理システムをコールするときのインタフェイス情
報を示す。レジスタ番号1番のレジスタR1の指定する
パラメータアドレス配列1001には、プロセス識別子
1010,TR名1011,要求名1012,データ識
別子1013,データまたはロック種別1014,リタ
ーンコード1015の領域のアドレスが、それぞれ設定
されている。このようなデータが設定された状態でデー
タベース管理システムをコールする。
【0044】次の表3は、要求ごとの、コール先データ
ベース管理システムのプログラム種別と、その時に必要
なパラメータを示す。例えば、要求種別が「参照」で要
求名が「RD」の要求では、コール先はメモリ管理プロ
グラムであり、パラメータとして必要なのは共通パラメ
ータ(3つ)のプロセス識別子,TR名および要求名、
並びに個別パラメータのデータ識別子であることがわか
る。
【0045】
【表3】
【0046】図6はTRPからのロック確保要求(LO
CK),ロックの切り替え要求(CHANGE)、およ
び処理の完了通知(ENDTR)に対する排他制御プロ
グラム700の処理の流れを示す。まず、ロック確保要
求(LOCK)かどうかをチェックし(ステップ60
1)、ロック確保要求の場合、TR名によりロックテー
ブル4を検索し、当該TRがすでに弱い参照ロックを一
つ以上確保していないかチェックし(ステップ60
8)、していればロック順序不正として要求を拒否する
(ステップ613)。
【0047】図8であげた本実施例の処理例では、TR
の実行途中で2相ロック方式で言うところのロックの開
放に該当するのはこの弱い参照ロックへの切り替えのみ
である。これ以後同一TRが新たなロックを確保しない
事をチェックすることにより、すべてのTRが2相ロッ
ク方式を守っていることが保証される。
【0048】ステップ608で当該TRが弱い参照ロッ
クを確保していない場合、データ識別子でロックテーブ
ル4を検索し、そのデータに対し他のTRが確保済みの
ロックに先行するロックとして要求ロックが確保可能か
をロック種別の相互関係表(表2)でチェックし(ステ
ップ609)、ひとつでも確保可能でない場合があれば
ロック確保失敗としてプロセス識別子とデータ識別子を
ロック待ちテーブルに登録し(ステップ611)、プロ
セスを待ち状態とする(ステップ612)。待ち状態か
ら後述のプロセス起動により抜け出したなら、ステップ
609から処理を再開する。
【0049】ステップ610ですべての要求ロックが確
保可能である場合は、ロックを記憶するため、要求され
たロックに対してTR名310,データ識別子320,
ロック種別330をロックテーブル4に設定し(ステッ
プ616)、TRPにリターンする(ステップ60
6)。
【0050】ステップ601でロック確保要求(LOC
K)以外の要求である場合は、弱い参照予備ロックの弱
い参照ロックへの切り替え要求(CHANGE)である
かどうか判別する(ステップ602)。切り替え要求
(CHANGE)であるときは、ロックテーブル4をT
R名で検索し、そのロック種別(弱い参照予備ロック)
を弱い参照ロックへ書き換え(ステップ607)、TR
Pに正常リターンする(ステップ606)。
【0051】ステップ602で切り替え要求(CHAN
GE)でないときは処理終了通知(ENDTR)である
かどうか判別する(ステップ603)。処理終了通知
(ENDTR)のときは、ロックテーブル4から指定さ
れたTR名を持つTRのロックの記憶をすべて消去し
(ステップ605)、ロック待ち管理テーブル201をス
テップ605で取り消したデータ識別子によりサーチ
し、当該ロックの開放待ち状態にあるプロセスを再起動
するとともに、そのエントリをロック待ち管理テーブル
から削除し(ステップ614)、TRPにリターンする
(ステップ606)。
【0052】ステップ603で処理終了通知(ENDT
R)でないときは、排他制御に対する要求が不正なもの
であったということだから、不正要求エラーのリターン
コードを設定してTRPにリターンする(ステップ60
4)。
【0053】次に、図7のフローチャートを参照して、
メモリ管理プログラム410の処理について説明する。
まず、TRPによる更新要求(WR)または参照要求
(RD)の場合(ステップ701)、ロックテーブル4
でTR名およびデータ識別子により必要なロック(更新
に対する更新ロック,参照に対する参照ロックまたは弱
い参照ロック)が確保済みであるかチェックする(ステ
ップ707)。必要なロックが確保されていない場合、
不正アクセスのリターンコードを設定して、TRPにリ
ターンする(ステップ714)。
【0054】ステップ707で必要なロックが確保済み
であるときは、要求が更新要求WRでかつロックテーブ
ル4で他のTRPがそのデータ識別子に対して弱い参照
ロックを確保済みでないかチェックする(ステップ70
9)。そのようなTRがあれば、それらTRのうちデー
タディレクトリ400に当該データのコピーのアドレス
を含むエントリを持たないTRを捜す(ステップ71
0)。そのようなTRがあれば、新たなコピーが必要な
ため、データインデクス520上のデータ識別子521
により指定されたデータのアドレスを求め(ステップ7
11)、データエリア510の空きのサブエリアを見つ
け、そこにデータをコピーする(ステップ712)。
【0055】さらにデータディレクトリ400に当該T
R名およびデータ識別子を持つエントリがあれば、この
エントリはコピーではないデータを指しているので、こ
れを消去する(ステップ713)。次に、前記コピーを指
すエントリを持たないTRPに関し新たにデータディレ
クトリ400にTR名401,データ識別子402およ
びコピーの所在を示すアドレス403を持つエントリを
記憶させる。このエントリのコピーフラグ404をCO
PYに設定する(ステップ716)。次に、データイン
デクス520によりデータのデータエリア510におけ
るアドレスを求めて指定されたTR名称およびデータ識
別子とともにデータディレクトリ400に要求元TRに
対するエントリを作成する(ステップ715)。
【0056】さらにデータディレクトリ400の前記エ
ントリの示すデータエリア510のデータを更新または
参照し(ステップ717)、TRPにリターンする(ス
テップ706)。
【0057】また、ステップ709あるいはステップ7
10で条件を満たさない場合、データディレクトリ40
0に対応するTR名およびデータ識別子を持つエントリ
があるかチェックし(ステップ708)、そのようなエ
ントリがない場合、ステップ715へ分岐する。ステッ
プ708でデータディレクトリ400にすでにエントリ
のある場合、ステップ717へ分岐する。
【0058】TRPによる処理終了通知の場合(ステッ
プ702)、データディレクトリ400で指定されたT
R名を持ち、コピーフラグがCOPYのエントリに対応
するアドレスをすべて求める。各アドレスに関して他に
同じアドレスを指定しているエントリがデータディレク
トリ400にない場合、当該アドレスの指すデータエリ
ア510のデータのコピーを、すべて消去する(ステッ
プ704)。次に、指定されたTR名に対応するデータ
ディレクトリ400のエントリをすべて消去し(ステッ
プ705)、TRPにリターンする(ステップ70
6)。
【0059】メモリ管理2に対する要求が前記いずれの
要求でもない場合エラーのリターンコードを設定してT
RPにリターンする(ステップ703)。
【0060】次に図9のタイムチャートを参照して、図
8のようにTRPa,TRPb,TRPcを実行した場
合の処理の流れを説明する。ここでは、端末c,端末
a,端末bの順にメッセージが入力されたものとして、
以下の説明を行う。プロセスは、プロセスc,プロセス
a,プロセスbの順に実行可能となる。本実施例ではプ
ロセッサは一台であると仮定する。実際に同時に実行さ
れるプロセスはただ一つである。
【0061】まず、プロセスcがTRPcの実行を開始
し、端末へのメッセージ出力まで〓(ステップ821か
らステップ825まで)を実行する。端末への入出力に
よりプロセスcはいったん停止するので、次にプロセス
aがTRPaの実行を開始する。TRPaの終了後、T
RPbが実行され終了する。最後にプロセスcがTRPcの
続きを最後まで実行し、終了する。このようにTRPc
が開始後終了前であっても、TRPa,TRPbを実行
する事ができる。しかもTRPcは弱い参照ロックへの
切り替え後は新たなロックの確保を行っていないことが
保証されており、各TRは2相ロックを守って処理をし
ている。従って、TRのシリアライザビリティは保証さ
れている。
【0062】次に、本発明の第二の実施例を説明する。
この第二の実施例は、上述の実施例の図6の排他処理の
流れのステップ601,602,607を図11のステ
ップ1101,1102,1107に置き換え、表3の
データベース管理システムのTRPインタフェイスにお
いてCHANGE要求のデータ識別子を必要な個別
(○)パラメータとし、図8のトランザクションの処理
の流れを図12で置き換え、図9のトランザクションの
タイムチャートを図13で置き換えたものである。以下
では、特に置き換えた部分のみ説明し、あとは上述の実
施例と同様であるので説明を省略する。
【0063】まず、図11は先の実施例の弱い参照予備
ロックのかわりに参照ロックを使用し、参照ロックの一
部をデータ識別子を指定したロックの切り替え要求によ
り弱い参照ロックに切り替える処理(ステップ110
2,1107)である。ステップ1101は、弱い参照
予備ロックがなくなったことに対する変更である。これ
に伴いデータベース管理システムとTRPのインタフェ
イスのロック切り替え要求にデータ識別子のパラメータ
が必要となった(表3)。
【0064】また図12に示すように第二の実施例にお
ける、TRPa,TRPcは先の実施例のTRPa,T
RPcと同様のTRである。TRPcはデータ識別子A
のみを指定してロックの切り替えを行っており、データ
識別子Bに対するロック切り換えが行われないためTR
bとの並行処理はできないことが前実施例とは異なる。
図13にTRPa,TRPbの処理のタイムチャートを
示す。
【0065】
【発明の効果】以上説明したように、本発明によれば、
従来方式と比較して、同一データ識別子を参照している
TRが実在する場合にのみデータのコピーを作成するた
め、コピー作成のオーバヘッドの削減が計られている。
また、同一のデータを参照するTRと更新するTRを同
時に実行出来るとともに、参照する側のTRが相互に矛
盾のないデータを参照し、その結果別のデータを矛盾な
く更新できる事を保証することができる。
【0066】さらに、例えば第二の実施例に示されてい
るように第一の実施例に比較してロックの種別を一つ削
減できたとともに、弱い参照ロックへの切り替えをきめ
こまかく制御することができる方式も実現可能である。
【図面の簡単な説明】
【図1】実施例のシステム構成図である。
【図2】実施例の排他制御の構成を示す図である。
【図3】実施例のロックテーブルの構成を示す図であ
る。
【図4】実施例のメモリ管理の構成を示す図である。
【図5】実施例のデータメモリの構成を示す図である。
【図6】実施例の排他制御の処理の流れを示す図であ
る。
【図7】実施例のメモリ管理の処理の流れを示す図であ
る。
【図8】実施例のトランザクション処理の流れを示す図
である。
【図9】実施例のトランザクション処理のタイムチャー
トを示す図である。
【図10】実施例のデータベース管理システムコール時
のパラメータを示す図である。
【図11】第二の実施例の排他制御の処理の流れを示す
図である。
【図12】第二の実施例のトランザクション処理の流れ
を示す図である。
【図13】第二の実施例のトランザクション処理のタイ
ムチャートを示す図である。
【符号の説明】
2…メモリ管理、3…排他制御、4…ロックテーブル、
5…データメモリ、400…データディレクトリ、51
0…データエリア、520…データインデクス。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】データ識別子を指定してデータの更新権ま
    たは参照権の確保を要求する動作および該データ識別子
    に対応するデータの更新または参照を要求する動作を含
    む一連の処理を行なうトランザクション処理が、これら
    の動作を要求するデータベース管理システムであって、 データ識別子に対応するデータを記憶する記憶手段と、 データ識別子を指定したデータの更新が要求された場合
    は、該データ識別子にすでに他のトランザクション処理
    から参照権が確保されているか否かを判別し、確保され
    ているときは該データ識別子に対応するデータのコピー
    を上記記憶手段に作成し、以後上記他のトランザクショ
    ン処理からの参照要求に対しては該コピーを参照させる
    管理手段とを備えたことを特徴とするデータベース管理
    システム。
  2. 【請求項2】データ識別子を指定してデータの更新権の
    確保を要求する動作および該データ識別子に対応するデ
    ータの更新を要求する動作を含む一連の処理を行なう第
    1のトランザクション処理,並びにデータ識別子を指定
    してデータの弱い参照予備権の確保を要求する動作,該
    弱い参照予備権の弱い参照権への切り替えを要求する動
    作および該弱い参照権を確保したデータ識別子に対応す
    るデータの参照を要求する動作を含む一連の処理を行な
    う第2のトランザクション処理が、これらの動作を要求
    するデータベース管理システムであって、 データ識別子に対応するデータを記憶する記憶手段と、 上記第1のトランザクション処理からデータ識別子を指
    定したデータの更新が要求された場合は、該データ識別
    子にすでに上記第2のトランザクション処理に対する弱
    い参照権が確保されているか否かを判別し、確保されて
    いるときは該データ識別子に対応するデータのコピーを
    上記記憶手段に作成し、以後上記第2のトランザクショ
    ン処理からの参照要求に対しては該コピーを参照させる
    管理手段とを備えたことを特徴とするデータベース管理
    システム。
  3. 【請求項3】さらに、データ識別子に対する前記トラン
    ザクション処理の更新権,参照権,弱い参照予備権およ
    び弱い参照権の確保に関し、同一のデータ識別子に対す
    るトランザクション処理の更新権とそれ以外のトランザ
    クション処理の更新権,参照権および弱い参照予備権と
    の共存を拒否するとともに、前記第2のトランザクショ
    ン処理による弱い参照予備権から弱い参照権への切り替
    えがあった後はその切り替えがあったトランザクション
    処理からの新たな更新権,参照権および弱い参照予備権
    の確保を拒否する排他制御手段を備えた請求項2のデー
    タベース管理システム。
  4. 【請求項4】データ識別子を指定してデータの更新権の
    確保を要求する動作および該データ識別子に対応するデ
    ータの更新を要求する動作を含む一連の処理を行なう第
    3のトランザクション処理、並びにデータ識別子を指定
    してデータの参照権の確保を要求する動作,データ識別
    子を指定して該参照権の弱い参照権への切り替えを要求
    する動作および該弱い参照権を確保したデータ識別子に
    対応するデータの参照を要求する動作を含む一連の処理
    を行なう第4のトランザクション処理が、これらの動作
    を要求するデータベース管理システムであって、 データ識別子に対応するデータを記憶する記憶手段と、 上記第3のトランザクション処理からデータ識別子を指
    定したデータの更新が要求された場合は、該データ識別
    子にすでに上記第4のトランザクション処理に対する弱
    い参照権が確保されているか否かを判別し、確保されて
    いるときは該データ識別子に対応するデータのコピーを
    上記記憶手段に作成し、以後上記第2のトランザクショ
    ン処理からの参照要求に対しては該コピーを参照させる
    管理手段とを備えたことを特徴とするデータベース管理
    システム。
  5. 【請求項5】さらに、データ識別子に対する前記トラン
    ザクション処理の更新権,参照権および弱い参照権の確
    保に関し、同一のデータ識別子に対するトランザクショ
    ン処理の更新権とそれ以外のトランザクション処理の更
    新権および参照権との共存を拒否するとともに、前記第
    4のトランザクション処理による参照権から弱い参照権
    への切り替えがあった後はその切り替えがあったトラン
    ザクション処理からの新たな更新権および参照権の確保
    を拒否する排他制御手段を備えた請求項4のデータベー
    ス管理システム。
  6. 【請求項6】前記トランザクション処理は、その処理終
    了時に、確保したすべての更新権,参照権および弱い参
    照権を開放する請求項1ないし5のデータベース管理シ
    ステム。
  7. 【請求項7】前記管理手段は、データ識別子を指定した
    データの更新が要求された場合で、該データ識別子にす
    でに他のトランザクション処理から参照権が確保されて
    いるときは、該データ識別子に対応するデータのコピー
    が対応付けられていないトランザクション処理が存在す
    るかどうか調べ、存在するなら該データ識別子に対応す
    るデータのコピーを作成する請求項1ないし6のデータ
    ベース管理システム。
  8. 【請求項8】さらに、トランザクション処理のデータ識
    別子に対して確保されている更新権,参照権,弱い参照
    予備権あるいは弱い参照権の別を記憶するロックテーブ
    ル手段を備えた請求項1ないし7のデータベース管理シ
    ステム。
  9. 【請求項9】データ識別子により更新権を確保し対応す
    るデータを更新する動作とデータ識別子により参照権を
    確保し対応するデータを参照する動作を行い、トランザ
    クション終了時にすべての参照権および更新権を開放す
    るトランザクション処理手段と、 更新するすべてのデータ識別子に対する更新権と参照す
    るすべてのデータ識別子に対する弱い参照予備権を確保
    し、弱い参照予備権の一部または全部を弱い参照権に切
    り替え、データ識別子を指定してデータに対する更新お
    よび参照を行い、トランザクション終了時にすべての参
    照権,更新権および弱い参照権を開放する別のトランザ
    クション処理手段と、 データ識別子により更新権を設定したデータの更新およ
    びデータ識別子により参照権を設定したデータの参照を
    許すとともに、データの更新に先立ち他のトランザクシ
    ョン処理がそのデータ識別子に対して弱い参照権を保有
    しているときは、そのトランザクション処理に当該デー
    タ識別子に対するデータのコピーが対応付けられていな
    いトランザクション処理が存在するか調べ、存在するな
    らデータのコピーを作成して当該トランザクション処理
    がデータ識別子に対して弱い参照権を確保している間存
    続させ、以後当該トランザクション処理からのデータ識
    別子による参照にはこのコピーを参照させるメモリ管理
    手段と、 データ識別子に対するトランザクション処理の更新権,
    参照権,弱い参照権および弱い参照予備権の確保に関
    し、同一のデータ識別子に対するトランザクション処理
    の更新権とそれ以外のトランザクション処理の更新権,
    参照権および弱い参照予備権の共存を拒否するととも
    に、トランザクション処理によるデータ識別子を指定し
    た弱い参照予備権から弱い参照権への切り替えを許し、
    同一のトランザクション処理からの新たな更新権,参照
    権あるいは弱い参照予備権の確保を拒否する排他制御手
    段と、 トランザクション処理のデータ識別子に対する更新権,
    参照権,弱い参照権および弱い参照予備権を記憶するロ
    ックテーブル手段と、 データ識別子に対するデータおよびそのコピーを保持す
    るデータメモリ手段とを備えたことを特徴とするデータ
    ベース管理システム。
  10. 【請求項10】トランザクション処理によるデータ識別
    子に対する更新権を確保しデータを更新する動作とデー
    タ識別子に対する参照権を確保しデータを参照する動作
    を行い、トランザクションの終了時すべての参照権およ
    び更新権を取り消す要求と、別のトランザクション処理
    による参照する一部または全部のデータのデータ識別子
    に対する弱い参照予備権を確保し、弱い参照予備権を弱
    い参照権に切り替え、データ識別子に対する更新権を確
    保しデータを更新する動作とデータ識別子に対する弱い
    参照権を確保ずみのデータに対する参照とデータ識別子
    に対する弱い参照権を確保していないデータに対する参
    照権を確保し参照する動作とを行い、トランザクション
    の終了時にすべての更新権,参照権および弱い参照権を
    取り消す要求に対応し、データ識別子により更新権を設
    定したデータの更新およびデータ識別子により参照権を
    設定したデータの参照を許すとともに、データの更新に
    先立ち他のトランザクション処理がそのデータ識別子に
    対して弱い参照権を保有しているならば、そのトランザ
    クション処理に当該データ識別子に対するデータのコピ
    ーが対応付けられていないトランザクション処理が存在
    するか調べ、存在するならデータのコピーを作成して当
    該トランザクション処理がデータ識別子に対する弱い参
    照権を確保している間存続させ、以後当該トランザクシ
    ョン処理からのデータ識別子による参照にはこのコピー
    を参照させるメモリ管理手段と、 データ識別子に対するトランザクション処理の更新権,
    参照権,弱い参照予備権および弱い参照権の確保に関
    し、同一のデータ識別子に対するトランザクション処理
    の更新権とそれ以外のトランザクション処理の更新権,
    参照権、および弱い参照予備権の共存を拒否するととも
    に、トランザクション処理によるデータ識別子による弱
    い参照予備権から弱い参照権への切り替えを許し、同一
    のトランザクション処理からの新たな弱い参照予備権の
    確保を拒否する排他制御手段と、 トランザクション処理のデータ識別子に対する更新権,
    参照権,弱い参照予備権、および弱い参照権を記憶する
    ロックテーブル手段と、 データおよびそのコピーを保持するデータメモリ手段と
    を備えたことを特徴とするデータベース管理システム。
  11. 【請求項11】前記別のトランザクション処理の要求と
    して、更新するすべてのデータ識別子に対する更新権と
    参照するすべてのデータ識別子の参照権、または弱い参
    照予備権を確保し、その後、データ識別子により弱い参
    照予備権を弱い参照権に切り替え、データに対する更新
    および参照を行い、終了時すべての更新権,弱い参照権
    および参照権を開放する要求を使用する請求項10のデ
    ータベース管理システム。
  12. 【請求項12】前記弱い参照予備権の代わりに参照権を
    使用し、参照権から弱い参照権への切り替えをデータ識
    別子指定により行う請求項9,10または11のデータ
    ベース管理システム。
JP4020969A 1992-02-06 1992-02-06 データベース管理システム Pending JPH05216728A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4020969A JPH05216728A (ja) 1992-02-06 1992-02-06 データベース管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4020969A JPH05216728A (ja) 1992-02-06 1992-02-06 データベース管理システム

Publications (1)

Publication Number Publication Date
JPH05216728A true JPH05216728A (ja) 1993-08-27

Family

ID=12041999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4020969A Pending JPH05216728A (ja) 1992-02-06 1992-02-06 データベース管理システム

Country Status (1)

Country Link
JP (1) JPH05216728A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277347A (ja) * 2009-05-28 2010-12-09 Mitsubishi Electric Corp 業務排他管理装置及び業務排他管理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277347A (ja) * 2009-05-28 2010-12-09 Mitsubishi Electric Corp 業務排他管理装置及び業務排他管理プログラム

Similar Documents

Publication Publication Date Title
US7260578B2 (en) Database-file link system and method therefor
US8010497B2 (en) Database management system with efficient version control
US6240413B1 (en) Fine-grained consistency mechanism for optimistic concurrency control using lock groups
US5414840A (en) Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
JPH05216728A (ja) データベース管理システム
CN110909012B (zh) 数据库对象的封锁方法、装置、设备和存储介质
JPH05307478A (ja) データベース管理システムの構成法
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
JPH08129492A (ja) 資源排他チェックシステム及び資源排他チェック方法
JPH1049420A (ja) データベース管理方法
JP2924786B2 (ja) 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体
JP3970524B2 (ja) 複数オペレーション間の排他制御方法
EP0100821B1 (en) Method and apparatus for managing a database
JPH01112444A (ja) データアクセスシステム
JPH03123946A (ja) データベースの排他制御方法
JPH08129501A (ja) データベースの予約アクセス処理方法
JPS63159949A (ja) フアイルのアクセス方法
JPS63196956A (ja) フアイル排他方式
JPH04282733A (ja) データベース管理方法
JP2740238B2 (ja) ファイル排他制御装置
JPH03118645A (ja) データベースの排他制御方法
JPH06309203A (ja) データベース処理システムの排他制御方法
JP3085260B2 (ja) 排他制御装置
JPH0367342A (ja) オペレーテイングシステムのフアイルアクセス管理方式
JPH03255549A (ja) レコード排他方式