JPH0619769A - レコードロック制御方法 - Google Patents
レコードロック制御方法Info
- Publication number
- JPH0619769A JPH0619769A JP4196222A JP19622292A JPH0619769A JP H0619769 A JPH0619769 A JP H0619769A JP 4196222 A JP4196222 A JP 4196222A JP 19622292 A JP19622292 A JP 19622292A JP H0619769 A JPH0619769 A JP H0619769A
- Authority
- JP
- Japan
- Prior art keywords
- lock
- record
- transaction
- locked
- local
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【構成】 ローカルロックテーブルは、各トランザクシ
ョン毎に設けられており、そのトランザクションがどの
レコードをロックしているかを示している。グローバル
ロックテーブルは、どのレコードがどのトランザクショ
ンでロックされているかを示している。このような構成
において、いずれかのトランザクションから、そのトラ
ンザクションによってロックされたレコードのアンロッ
ク要求があった場合は、そのトランザクションを受け持
つローカルロックテーブルを参照し、ロックされている
レコード番号を取出す。また、一つのレコードのみのア
ンロック要求であった場合は、ローカルロックテーブル
は参照しない。 【効果】 全レコードのアンロックを効率よく行うこと
ができる。
ョン毎に設けられており、そのトランザクションがどの
レコードをロックしているかを示している。グローバル
ロックテーブルは、どのレコードがどのトランザクショ
ンでロックされているかを示している。このような構成
において、いずれかのトランザクションから、そのトラ
ンザクションによってロックされたレコードのアンロッ
ク要求があった場合は、そのトランザクションを受け持
つローカルロックテーブルを参照し、ロックされている
レコード番号を取出す。また、一つのレコードのみのア
ンロック要求であった場合は、ローカルロックテーブル
は参照しない。 【効果】 全レコードのアンロックを効率よく行うこと
ができる。
Description
【0001】
【産業上の利用分野】本発明は、データベース管理シス
テムにおいて、複数の利用者の間で共有されるデータへ
のアクセスの競合をレコード単位に制御する方法に関す
る。
テムにおいて、複数の利用者の間で共有されるデータへ
のアクセスの競合をレコード単位に制御する方法に関す
る。
【0002】
【従来の技術】複数のデータファイルを組織的に統合し
て、データ項目の重複をなくすデータの管理システムと
して、データベースシステムがある。このようなデータ
ベースシステムは、データが集中的に管理されるため、
多くの独立した利用者の間でデータを共有するような場
合に有効である。
て、データ項目の重複をなくすデータの管理システムと
して、データベースシステムがある。このようなデータ
ベースシステムは、データが集中的に管理されるため、
多くの独立した利用者の間でデータを共有するような場
合に有効である。
【0003】図2にデータベースシステムの概念図を示
す。図に示すように、データベースシステム1は、シス
テムを集中的に制御管理するサーバ2と、このサーバ2
に通信回線3を介して接続された複数の利用者4、5、
6、…からなる。サーバ2は、データベース管理システ
ム7とデータベース8が設けられている。データベース
管理システム7は、データベース8の管理およびデータ
ベース8をアクセスする各利用者4、5、6、…の管理
を行うものである。また、データベース8は、各利用者
4、5、6、…がアクセスするデータの集合からなるも
ので、磁気記憶装置等に格納されている。
す。図に示すように、データベースシステム1は、シス
テムを集中的に制御管理するサーバ2と、このサーバ2
に通信回線3を介して接続された複数の利用者4、5、
6、…からなる。サーバ2は、データベース管理システ
ム7とデータベース8が設けられている。データベース
管理システム7は、データベース8の管理およびデータ
ベース8をアクセスする各利用者4、5、6、…の管理
を行うものである。また、データベース8は、各利用者
4、5、6、…がアクセスするデータの集合からなるも
ので、磁気記憶装置等に格納されている。
【0004】このようなデータベースシステム1におい
て、各利用者4、5、6、…がデータベース8へのアク
セス、即ち、データの参照や更新を実施する必要が生じ
た場合、各利用者4、5、6、…はサーバ2に対してア
クセス要求を発行する。ここで、利用者からサーバ2へ
要求される論理的にひとまとまりとなる処理をトランザ
クションと呼ぶ。データベース管理システム7は、複数
の利用者からの同一データへのアクセスを管理するため
にトランザクションの中でアクセスするレコードにロッ
クをかける。ロックがかけられた状態をロック状態と呼
び、この状態のレコードは他のトランザクションから更
新されない。ロックが解放された状態をアンロック状態
と呼ぶ。一方、データベース管理システム7は、どのト
ランザクションがどのレコード(資源)にロックをかけ
ているかという情報を、共通のロックテーブルで管理し
ており、各トランザクションによってこのロックテーブ
ルの参照・更新が行われる。
て、各利用者4、5、6、…がデータベース8へのアク
セス、即ち、データの参照や更新を実施する必要が生じ
た場合、各利用者4、5、6、…はサーバ2に対してア
クセス要求を発行する。ここで、利用者からサーバ2へ
要求される論理的にひとまとまりとなる処理をトランザ
クションと呼ぶ。データベース管理システム7は、複数
の利用者からの同一データへのアクセスを管理するため
にトランザクションの中でアクセスするレコードにロッ
クをかける。ロックがかけられた状態をロック状態と呼
び、この状態のレコードは他のトランザクションから更
新されない。ロックが解放された状態をアンロック状態
と呼ぶ。一方、データベース管理システム7は、どのト
ランザクションがどのレコード(資源)にロックをかけ
ているかという情報を、共通のロックテーブルで管理し
ており、各トランザクションによってこのロックテーブ
ルの参照・更新が行われる。
【0005】図3は、データベース管理システム7とト
ランザクションとの関係を示す図である。データベース
管理システム7は、ロックマネジャ9とロックテーブル
10とを備えている。ロックマネジャ9は、トランザク
ションT1、T2、…TNからのロック/アンロック要
求を管理するためのもので、その管理をロックテーブル
10を参照・更新することによって行っている。また、
ロックテーブル10は、データベース8の各レコードR
1、R2、…、Rnのロック状態を示している。
ランザクションとの関係を示す図である。データベース
管理システム7は、ロックマネジャ9とロックテーブル
10とを備えている。ロックマネジャ9は、トランザク
ションT1、T2、…TNからのロック/アンロック要
求を管理するためのもので、その管理をロックテーブル
10を参照・更新することによって行っている。また、
ロックテーブル10は、データベース8の各レコードR
1、R2、…、Rnのロック状態を示している。
【0006】図4に、そのロックテーブル10の内容を
示す。即ち、ロックテーブル10は、レコード番号に対
応したロックの有無とロックをかけているトランザクシ
ョンの情報を示している。例えば、レコード番号R1の
データはトランザクションT2がロックをかけており、
レコード番号R0のデータはロックされていないといっ
た状態である。なお、ロック有無では「1」がロック状
態、「0」がロック無しを示している。このように、ロ
ック方式では、データベース8の各レコード(行)単位
でロックの制御を行っている。
示す。即ち、ロックテーブル10は、レコード番号に対
応したロックの有無とロックをかけているトランザクシ
ョンの情報を示している。例えば、レコード番号R1の
データはトランザクションT2がロックをかけており、
レコード番号R0のデータはロックされていないといっ
た状態である。なお、ロック有無では「1」がロック状
態、「0」がロック無しを示している。このように、ロ
ック方式では、データベース8の各レコード(行)単位
でロックの制御を行っている。
【0007】図5は、データベース管理システム7にお
けるレコードのロック、アンロックの流れを示したもの
である。先ず、あるトランザクションからロック要求が
発行された場合、対象となるレコードがロックされる
(図中)。そして、このロックがトランザクションが
終了するまで保持されなければならない場合は、そのま
ま保持される。一方、対象のレコードがデータの一時的
な参照等であった場合は、トランザクションの終了まで
保持する必要はないため、対象レコードのアンロックが
行われる(図中)。そして、このような処理がトラン
ザクションの間繰り返され、トランザクションの終了時
には、そのトランザクションの間保持されていた全ての
ロックがアンロックされる(図中)。このように、ロ
ックのオペレーションには、 (1)1レコードのロック (2)1レコードのアンロック (3)全レコードのアンロック の3種類がある。
けるレコードのロック、アンロックの流れを示したもの
である。先ず、あるトランザクションからロック要求が
発行された場合、対象となるレコードがロックされる
(図中)。そして、このロックがトランザクションが
終了するまで保持されなければならない場合は、そのま
ま保持される。一方、対象のレコードがデータの一時的
な参照等であった場合は、トランザクションの終了まで
保持する必要はないため、対象レコードのアンロックが
行われる(図中)。そして、このような処理がトラン
ザクションの間繰り返され、トランザクションの終了時
には、そのトランザクションの間保持されていた全ての
ロックがアンロックされる(図中)。このように、ロ
ックのオペレーションには、 (1)1レコードのロック (2)1レコードのアンロック (3)全レコードのアンロック の3種類がある。
【0008】図6は、ロックマネジャ9の処理を示すフ
ローチャートである。ロックマネジャ9は、あるトラン
ザクション(これを仮にトランザクションT1とする)
からロック/アンロック要求を受けた場合(ステップS
1)、先ず、その要求がロック要求であるかアンロック
要求であるかを判断する(ステップS2)。ここで、ロ
ックであった場合は、ロック処理、即ちロックテーブル
の対象レコードをロック有りとし、そのトランザクショ
ンはT1であるとする(ステップS3)。一方、アンロ
ック要求であった場合、1レコードのアンロックでは、
そのレコード、また、全レコードのアンロックの場合
は、トランザクションT1によるロックされていた全レ
コードのアンロックを行う(ステップS4)。
ローチャートである。ロックマネジャ9は、あるトラン
ザクション(これを仮にトランザクションT1とする)
からロック/アンロック要求を受けた場合(ステップS
1)、先ず、その要求がロック要求であるかアンロック
要求であるかを判断する(ステップS2)。ここで、ロ
ックであった場合は、ロック処理、即ちロックテーブル
の対象レコードをロック有りとし、そのトランザクショ
ンはT1であるとする(ステップS3)。一方、アンロ
ック要求であった場合、1レコードのアンロックでは、
そのレコード、また、全レコードのアンロックの場合
は、トランザクションT1によるロックされていた全レ
コードのアンロックを行う(ステップS4)。
【0009】
【発明が解決しようとする課題】しかしながら、上記従
来のレコードロック制御方法では、あるトランザクショ
ンによってロックされた全レコードのアンロックを行う
場合、次のような問題点があった。即ち、ロックテーブ
ル10は、データベース8における共通の資源(レコー
ド)に対するロックの競合を制御することを目的として
いるため、あるレコードのロック状態をサーチする場合
は、そのレコード番号をキーとして、ロックの有無およ
びロック有りの場合はロックをかけているトランザクシ
ョン名のサーチを行う。
来のレコードロック制御方法では、あるトランザクショ
ンによってロックされた全レコードのアンロックを行う
場合、次のような問題点があった。即ち、ロックテーブ
ル10は、データベース8における共通の資源(レコー
ド)に対するロックの競合を制御することを目的として
いるため、あるレコードのロック状態をサーチする場合
は、そのレコード番号をキーとして、ロックの有無およ
びロック有りの場合はロックをかけているトランザクシ
ョン名のサーチを行う。
【0010】例えば、上記例のように、トランザクショ
ンT1がレコード番号R3をロックし、その後レコード
番号R3のアンロック要求を発行したとする。これを受
けたロックマネジャ9はそのレコード番号R3をキーと
してロック有無とトランザクションの状態をサーチし、
ロックを「0」とし、トランザクションを「無し」とす
る。このように、特定のレコードを指定してのアンロッ
ク(あるいはロック)を行う場合、ロックマネジャ9は
指定されたレコード番号をキーとしてロックテーブル1
0をサーチするだけであるため、効率よく行うことがで
きる。
ンT1がレコード番号R3をロックし、その後レコード
番号R3のアンロック要求を発行したとする。これを受
けたロックマネジャ9はそのレコード番号R3をキーと
してロック有無とトランザクションの状態をサーチし、
ロックを「0」とし、トランザクションを「無し」とす
る。このように、特定のレコードを指定してのアンロッ
ク(あるいはロック)を行う場合、ロックマネジャ9は
指定されたレコード番号をキーとしてロックテーブル1
0をサーチするだけであるため、効率よく行うことがで
きる。
【0011】しかしながら、あるトランザクションが終
了して、それまでロックをかけていた全てのレコードに
対してアンロック要求を発行した場合、ロックマネジャ
9は全てのレコードを順に調べ、そのトランザクション
がロックをかけていたレコードのみを抽出しなければな
らなかった。例えば、トランザクションT2から全レコ
ードのアンロック要求が発行されたとする。これにより
ロックマネジャ9は、ロックテーブル10を参照し、レ
コード番号R1、R2、R3、…Rnを順に調べ、トラ
ンザクションT2がロックしていたレコード番号R1、
R4、…、Rnを抽出する。そしてこれらのレコード番
号のロック有無を「0」とする。従って、あるトランザ
クションがロックをかけていた全レコードをアンロック
する場合の処理は非常に効率の悪いものであった。
了して、それまでロックをかけていた全てのレコードに
対してアンロック要求を発行した場合、ロックマネジャ
9は全てのレコードを順に調べ、そのトランザクション
がロックをかけていたレコードのみを抽出しなければな
らなかった。例えば、トランザクションT2から全レコ
ードのアンロック要求が発行されたとする。これにより
ロックマネジャ9は、ロックテーブル10を参照し、レ
コード番号R1、R2、R3、…Rnを順に調べ、トラ
ンザクションT2がロックしていたレコード番号R1、
R4、…、Rnを抽出する。そしてこれらのレコード番
号のロック有無を「0」とする。従って、あるトランザ
クションがロックをかけていた全レコードをアンロック
する場合の処理は非常に効率の悪いものであった。
【0012】本発明は、上記従来の問題点を解決するた
めになされたもので、全レコードのアンロックを効率よ
く行うことのできるレコードロック制御方法を提供する
ことを目的とする。
めになされたもので、全レコードのアンロックを効率よ
く行うことのできるレコードロック制御方法を提供する
ことを目的とする。
【0013】
【課題を解決するための手段】本発明のレコードロック
制御方法は、複数のトランザクションがデータベースの
レコードに対してロックまたはアンロックを行う場合
に、当該ロックまたはアンロックの制御を行うレコード
ロック制御方法において、前記レコードのロックの有無
を示すローカルロックテーブルを各トランザクション毎
に設け、かつ、前記レコードのロックの有無と、どのト
ランザクションがロックを行っているかの情報を格納す
るグローバルロックテーブルを設け、いずれかのトラン
ザクションから当該トランザクションによってロックさ
れた全レコードのアンロック要求がなされた場合のみ、
当該トランザクションを受け持つローカルロックテーブ
ルを参照することを特徴とするものである。
制御方法は、複数のトランザクションがデータベースの
レコードに対してロックまたはアンロックを行う場合
に、当該ロックまたはアンロックの制御を行うレコード
ロック制御方法において、前記レコードのロックの有無
を示すローカルロックテーブルを各トランザクション毎
に設け、かつ、前記レコードのロックの有無と、どのト
ランザクションがロックを行っているかの情報を格納す
るグローバルロックテーブルを設け、いずれかのトラン
ザクションから当該トランザクションによってロックさ
れた全レコードのアンロック要求がなされた場合のみ、
当該トランザクションを受け持つローカルロックテーブ
ルを参照することを特徴とするものである。
【0014】
【作用】本発明のレコードロック制御方法においては、
あるトランザクションから、そのトランザクションによ
ってロックされている全てのレコードに対してアンロッ
ク要求があった場合、当該トランザクションを受け持つ
ローカル管理部は、ローカルロックテーブルを参照す
る。ローカルロックテーブルには、そのトランザクショ
ンがロックしているレコードの番号が格納されているた
め、このレコード番号をアンロック要求としてグローバ
ルロックマネジャに送出する。グローバルロックマネジ
ャは、受け取ったレコード番号に基づきアンロックを行
う。一方、あるトランザクションから一つのレコードに
対してアンロック要求があった場合は、アンロックすべ
きレコードは分かっているため、ローカルロックテーブ
ルは参照せず、グローバルロックテーブルの対象レコー
ドをアンロックする。このため、全レコードのアンロッ
クを行う場合は、対象となるレコードをグローバルロッ
クテーブルから調べる必要がなく、効率のよいアンロッ
ク処理を行うことができる。
あるトランザクションから、そのトランザクションによ
ってロックされている全てのレコードに対してアンロッ
ク要求があった場合、当該トランザクションを受け持つ
ローカル管理部は、ローカルロックテーブルを参照す
る。ローカルロックテーブルには、そのトランザクショ
ンがロックしているレコードの番号が格納されているた
め、このレコード番号をアンロック要求としてグローバ
ルロックマネジャに送出する。グローバルロックマネジ
ャは、受け取ったレコード番号に基づきアンロックを行
う。一方、あるトランザクションから一つのレコードに
対してアンロック要求があった場合は、アンロックすべ
きレコードは分かっているため、ローカルロックテーブ
ルは参照せず、グローバルロックテーブルの対象レコー
ドをアンロックする。このため、全レコードのアンロッ
クを行う場合は、対象となるレコードをグローバルロッ
クテーブルから調べる必要がなく、効率のよいアンロッ
ク処理を行うことができる。
【0015】
【実施例】以下、本発明の実施例を図面を用いて詳細に
説明する。図1は本発明のレコードロック制御方法を示
すフローチャートであるが、これに先立ち、本発明を実
施するためのデータベース管理システムを説明する。
説明する。図1は本発明のレコードロック制御方法を示
すフローチャートであるが、これに先立ち、本発明を実
施するためのデータベース管理システムを説明する。
【0016】図7は、そのデータベース管理システムと
データベースとを示すブロック図である。図に示すデー
タベース管理システム11はグローバルロックマネジャ
12とグローバルロックテーブル13および複数のロー
カル管理部14−1、…、14−Nからなる。グローバ
ルロックマネジャ12およびグローバルロックテーブル
13は、従来のロックマネジャ9およびロックテーブル
10に相当する構成となっている。即ち、グローバルロ
ックテーブル13は、従来の図4に示したロックテーブ
ル10と同様に、レコード番号に対するロックの有無と
トランザクション名の情報を表しており、グローバルロ
ックマネジャ12は、このグローバルロックテーブル1
3を参照してロック/アンロックの処理を行うものであ
る。
データベースとを示すブロック図である。図に示すデー
タベース管理システム11はグローバルロックマネジャ
12とグローバルロックテーブル13および複数のロー
カル管理部14−1、…、14−Nからなる。グローバ
ルロックマネジャ12およびグローバルロックテーブル
13は、従来のロックマネジャ9およびロックテーブル
10に相当する構成となっている。即ち、グローバルロ
ックテーブル13は、従来の図4に示したロックテーブ
ル10と同様に、レコード番号に対するロックの有無と
トランザクション名の情報を表しており、グローバルロ
ックマネジャ12は、このグローバルロックテーブル1
3を参照してロック/アンロックの処理を行うものであ
る。
【0017】ローカル管理部14−1、…、14−N
は、それぞれローカルロックマネジャ141とローカル
ロックテーブル142とで構成され、各トランザクショ
ンT1、…、TN毎に設けられている。ローカルロック
マネジャ141は、各トランザクションT1、…、TN
からのロック/アンロック要求を受け付け、これがアン
ロック要求であった場合は、ローカルロックテーブル1
42を参照してグローバルロックマネジャ12にロック
要求を送出する機能を有している。また、ローカルロッ
クテーブル142は、各レコード番号に対するロックの
有無を示している。図8は、そのローカルロックテーブ
ル142を示す図である。即ち、ローカル管理部14−
1、…、14−Nでは、トランザクション別となってい
るため、ローカルロックテーブル142ではそのトラン
ザクション名の必要はなく、受け持っているトランザク
ションがどのレコードをロックしているかを示すもので
ある。尚、データベース8は、従来と同様であるため、
ここでの説明は省略する。
は、それぞれローカルロックマネジャ141とローカル
ロックテーブル142とで構成され、各トランザクショ
ンT1、…、TN毎に設けられている。ローカルロック
マネジャ141は、各トランザクションT1、…、TN
からのロック/アンロック要求を受け付け、これがアン
ロック要求であった場合は、ローカルロックテーブル1
42を参照してグローバルロックマネジャ12にロック
要求を送出する機能を有している。また、ローカルロッ
クテーブル142は、各レコード番号に対するロックの
有無を示している。図8は、そのローカルロックテーブ
ル142を示す図である。即ち、ローカル管理部14−
1、…、14−Nでは、トランザクション別となってい
るため、ローカルロックテーブル142ではそのトラン
ザクション名の必要はなく、受け持っているトランザク
ションがどのレコードをロックしているかを示すもので
ある。尚、データベース8は、従来と同様であるため、
ここでの説明は省略する。
【0018】次に、本発明の動作を図1のフローチャー
トに沿って説明する。先ず、あるトランザクション
(今、これをT1とする)から、データベース管理シス
テム11がロック要求を受信した場合(ステップS
1)、ローカル管理部14−1のローカルロックマネジ
ャ141は、このロック/アンロック要求がロックであ
るかアンロックであるかを判断する(ステップS2)。
このステップS2において、これがロックであった場
合、ローカルロックテーブル142の対象となるレコー
ド番号のロック有無を「1」とし、かつそのレコードの
ロック要求をグローバルロックマネジャ12に対して行
う(ステップS3)。グローバルロックマネジャ12で
は、ローカルロックマネジャ141からロック要求を受
け取ると、グローバルロックテーブル13の対象となる
レコード番号のロック有無を「1」にすると共に、その
トランザクション名を格納する(ステップS4)。
トに沿って説明する。先ず、あるトランザクション
(今、これをT1とする)から、データベース管理シス
テム11がロック要求を受信した場合(ステップS
1)、ローカル管理部14−1のローカルロックマネジ
ャ141は、このロック/アンロック要求がロックであ
るかアンロックであるかを判断する(ステップS2)。
このステップS2において、これがロックであった場
合、ローカルロックテーブル142の対象となるレコー
ド番号のロック有無を「1」とし、かつそのレコードの
ロック要求をグローバルロックマネジャ12に対して行
う(ステップS3)。グローバルロックマネジャ12で
は、ローカルロックマネジャ141からロック要求を受
け取ると、グローバルロックテーブル13の対象となる
レコード番号のロック有無を「1」にすると共に、その
トランザクション名を格納する(ステップS4)。
【0019】一方、ステップS2において、ロック/ア
ンロック要求がアンロックであった場合、ローカルロッ
クマネジャ141は、それが一つのレコードに対するも
のであるか、あるいは全レコードに対するものであるか
を判断する(ステップS5)。ここで、一つのレコード
に対するものであった場合は、アンロックすべきレコー
ド番号は特定されているため、そのレコード番号のアン
ロック要求をグローバルロックマネジャ12に対して行
う。即ち、ローカルロックテーブル142の参照・更新
は行わない。そして、グローバルロックマネジャ12
は、そのレコード番号のレコード有無を「0」とし、ロ
ック状態を解放する(ステップS6)。
ンロック要求がアンロックであった場合、ローカルロッ
クマネジャ141は、それが一つのレコードに対するも
のであるか、あるいは全レコードに対するものであるか
を判断する(ステップS5)。ここで、一つのレコード
に対するものであった場合は、アンロックすべきレコー
ド番号は特定されているため、そのレコード番号のアン
ロック要求をグローバルロックマネジャ12に対して行
う。即ち、ローカルロックテーブル142の参照・更新
は行わない。そして、グローバルロックマネジャ12
は、そのレコード番号のレコード有無を「0」とし、ロ
ック状態を解放する(ステップS6)。
【0020】また、ステップS5において、全てのレコ
ードに対するアンロックであった場合、ローカルロック
マネジャ141は、そのトランザクションがどのレコー
ドをロックしていたかをサーチし、ロックされていたレ
コードをアンロック状態にデータ更新すると共に、ロッ
クされていたレコード番号を含むアンロック要求をグロ
ーバルロックマネジャ12に対して行う(ステップS
7)。このアンロック要求を受けたグローバルロックマ
ネジャ12は、レコード番号が特定されているため、対
象となるレコード番号のみロック無しとデータ更新する
(ステップS8)。
ードに対するアンロックであった場合、ローカルロック
マネジャ141は、そのトランザクションがどのレコー
ドをロックしていたかをサーチし、ロックされていたレ
コードをアンロック状態にデータ更新すると共に、ロッ
クされていたレコード番号を含むアンロック要求をグロ
ーバルロックマネジャ12に対して行う(ステップS
7)。このアンロック要求を受けたグローバルロックマ
ネジャ12は、レコード番号が特定されているため、対
象となるレコード番号のみロック無しとデータ更新する
(ステップS8)。
【0021】尚、トランザクションが一つだけアンロッ
クを行ったレコードに対しては、ローカルロックテーブ
ル142は更新されないため、そのレコード番号のデー
タは、ローカルロックテーブル142とグローバルロッ
クテーブル13とで一致しなくなる。従って、このよう
なアンロックを行ったトランザクションが、全てのレコ
ードに対してアンロック要求を送出した場合、既にアン
ロックされているレコードの番号の情報をグローバルロ
ックマネジャ12に対して送出するが、この場合はグロ
ーバルロックテーブル13のデータを優位とし、一致し
ないデータに対してはエラーとはしないで、あたかもア
ンロックが正常に行われたかのように処理する。
クを行ったレコードに対しては、ローカルロックテーブ
ル142は更新されないため、そのレコード番号のデー
タは、ローカルロックテーブル142とグローバルロッ
クテーブル13とで一致しなくなる。従って、このよう
なアンロックを行ったトランザクションが、全てのレコ
ードに対してアンロック要求を送出した場合、既にアン
ロックされているレコードの番号の情報をグローバルロ
ックマネジャ12に対して送出するが、この場合はグロ
ーバルロックテーブル13のデータを優位とし、一致し
ないデータに対してはエラーとはしないで、あたかもア
ンロックが正常に行われたかのように処理する。
【0022】
【発明の効果】以上説明したように、本発明のレコード
ロック制御方法によれば、どのトランザクションがどの
レコードをロックしているかの情報を格納するグローバ
ルロックテーブルと共に、各トランザクション毎に、そ
のトランザクションがどのレコードをロックしているか
を示す情報を格納するローカルロックテーブルを設け、
いずれかのトランザクションからそのトランザクション
によってロックされた全レコードのアンロック要求がな
された場合のみ、ローカルロックテーブルを参照してロ
ックされているレコードをサーチするようにしたので、
全レコードのアンロックを効率よく行うことができ、ア
ンロック時のオーバヘッドを減少させることができる。
ロック制御方法によれば、どのトランザクションがどの
レコードをロックしているかの情報を格納するグローバ
ルロックテーブルと共に、各トランザクション毎に、そ
のトランザクションがどのレコードをロックしているか
を示す情報を格納するローカルロックテーブルを設け、
いずれかのトランザクションからそのトランザクション
によってロックされた全レコードのアンロック要求がな
された場合のみ、ローカルロックテーブルを参照してロ
ックされているレコードをサーチするようにしたので、
全レコードのアンロックを効率よく行うことができ、ア
ンロック時のオーバヘッドを減少させることができる。
【図1】本発明のレコードロック制御方法を示すフロー
チャートである。
チャートである。
【図2】データベースの概念図である。
【図3】従来のレコードロック制御方法を適用したシス
テムの構成図である。
テムの構成図である。
【図4】従来のレコードロック制御方法におけるロック
テーブルの説明図である。
テーブルの説明図である。
【図5】一つのトランザクションのロック処理を流れを
示す説明図である。
示す説明図である。
【図6】従来のレコードロック制御方法のフローチャー
トである。
トである。
【図7】本発明のレコードロック制御方法を適用するシ
ステムの構成図である。
ステムの構成図である。
【図8】本発明のレコードロック制御方法におけるロー
カルロックテーブルの説明図である。
カルロックテーブルの説明図である。
8 データベース 13 グローバルロックテーブル 142 ローカルロックテーブル T1、TN トランザクション
Claims (1)
- 【請求項1】 複数のトランザクションがデータベース
のレコードに対してロックまたはアンロックを行う場合
に、当該ロックまたはアンロックの制御を行うレコード
ロック制御方法において、 前記レコードのロックの有無を示すローカルロックテー
ブルを各トランザクション毎に設け、 かつ、前記レコードのロックの有無と、どのトランザク
ションがロックを行っているかの情報を格納するグロー
バルロックテーブルを設け、 いずれかのトランザクションから当該トランザクション
によってロックされた全レコードのアンロック要求がな
された場合のみ、当該トランザクションを受け持つロー
カルロックテーブルを参照することを特徴とするレコー
ドロック制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4196222A JPH0619769A (ja) | 1992-06-30 | 1992-06-30 | レコードロック制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP4196222A JPH0619769A (ja) | 1992-06-30 | 1992-06-30 | レコードロック制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0619769A true JPH0619769A (ja) | 1994-01-28 |
Family
ID=16354235
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4196222A Pending JPH0619769A (ja) | 1992-06-30 | 1992-06-30 | レコードロック制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0619769A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09505681A (ja) * | 1994-05-10 | 1997-06-03 | シーメンス アクチエンゲゼルシヤフト | リアルタイムシステムにおけるデータ管理システム |
| JPH10133929A (ja) * | 1996-10-29 | 1998-05-22 | Mitsubishi Electric Corp | データベース更新制御方式及びその方法 |
| JP2014178831A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | 情報処理装置、データベースアクセス方法、及びプログラム |
| JP2016095638A (ja) * | 2014-11-13 | 2016-05-26 | 日本電気株式会社 | トランザクション処理装置、トラザクション処理方法、及びプログラム |
-
1992
- 1992-06-30 JP JP4196222A patent/JPH0619769A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH09505681A (ja) * | 1994-05-10 | 1997-06-03 | シーメンス アクチエンゲゼルシヤフト | リアルタイムシステムにおけるデータ管理システム |
| JPH10133929A (ja) * | 1996-10-29 | 1998-05-22 | Mitsubishi Electric Corp | データベース更新制御方式及びその方法 |
| JP2014178831A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | 情報処理装置、データベースアクセス方法、及びプログラム |
| JP2016095638A (ja) * | 2014-11-13 | 2016-05-26 | 日本電気株式会社 | トランザクション処理装置、トラザクション処理方法、及びプログラム |
| US10303676B2 (en) | 2014-11-13 | 2019-05-28 | Nec Corporation | Transaction processing apparatus, transaction processing method, and computer-readable recording medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Kung et al. | On optimistic methods for concurrency control | |
| US6240413B1 (en) | Fine-grained consistency mechanism for optimistic concurrency control using lock groups | |
| JP4842279B2 (ja) | データベースサーバによるファイル操作を実行するためのインフラストラクチャ | |
| US5903887A (en) | Method and apparatus for caching result sets from queries to a remote database in a heterogeneous database system | |
| US5220665A (en) | Method and system for supporting concurrent use during sequential batch applications utilizing persistent cursors | |
| Graefe | Hierarchical locking in B-tree indexes | |
| US5845274A (en) | Computer program product for avoiding complete index tree traversals in sequential and almost sequential index probes | |
| Barbará-Millá et al. | The demarcation protocol: A technique for maintaining constraints in distributed database systems | |
| JP4759570B2 (ja) | データベース管理システムにおけるファイル操作のためのロックを提供するための手法 | |
| US20090187599A1 (en) | Generating identity values in a multi-host database management system | |
| US6922729B1 (en) | Multi-connection control system | |
| US7051136B2 (en) | Entry locking for large data structures | |
| US6732239B2 (en) | Concurrent access scheme for exclusive mode cache | |
| US20040236744A1 (en) | Method for ensuring referential integrity in highly concurrent datbase environments | |
| JPH06195252A (ja) | キャッシング方式 | |
| US6075930A (en) | Programs maintenance procedures in parallel processing system | |
| Panda et al. | Secure transaction management and query processing in multilevel secure database systems | |
| JPH05233415A (ja) | トランザクションロック制御方法 | |
| JPS592159A (ja) | デ−タ制御方式 | |
| US5943495A (en) | Copy utility method and apparatus for non-stop database applications | |
| JPH04282733A (ja) | データベース管理方法 | |
| JPH0713840A (ja) | 並列データアクセスシステムにおける排他制御方法 | |
| JPH04256042A (ja) | トランザクションロック制御方法 | |
| JPH04184546A (ja) | データベースの排他制御方式 | |
| JPS63298535A (ja) | キ−値による論理ロック方式 |