JP2514671B2 - デ―タアクセス制御方法 - Google Patents

デ―タアクセス制御方法

Info

Publication number
JP2514671B2
JP2514671B2 JP62283739A JP28373987A JP2514671B2 JP 2514671 B2 JP2514671 B2 JP 2514671B2 JP 62283739 A JP62283739 A JP 62283739A JP 28373987 A JP28373987 A JP 28373987A JP 2514671 B2 JP2514671 B2 JP 2514671B2
Authority
JP
Japan
Prior art keywords
lock
lock request
time
information processing
transaction
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.)
Expired - Fee Related
Application number
JP62283739A
Other languages
English (en)
Other versions
JPH01125637A (ja
Inventor
哲二 小林
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP62283739A priority Critical patent/JP2514671B2/ja
Publication of JPH01125637A publication Critical patent/JPH01125637A/ja
Application granted granted Critical
Publication of JP2514671B2 publication Critical patent/JP2514671B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)

Description

【発明の詳細な説明】 〔発明の属する技術分野〕 本発明は,情報処理装置(電子計算機,電子交換機,
端末装置,又は通信処理装置などを意味する)の記憶装
置にデータアクセスを行うときのデータの無矛盾性を維
持するために行うロック機構を制御する,データアクセ
ス制御方法に関するものである。
〔従来の技術〕
情報処理装置(以後,ノードと呼ぶことがある)を使
用することにより実現される利用者の処理の単位を,ト
ランザクションと呼ぶ。ノードの記憶装置に格納されて
いるファイル又はデータベースへのアクセスの同時実行
制御の手段として,ロック方式を用いる場合,複数のト
ランザクションのデータアクセス競合により発生するデ
ッドロックを解決することが,必要である。従来,デッ
ドロックを解決する方式として,第一に,デッドロック
の検出を行う方式が検討されており,具体的には,シス
テム状態グラフ方式,及びタイマ監視方式などが,主要
な方式である。システム状態グラフ方式は,システム状
態グラフの作成により,デットロックを検出し,デッド
ロックサイクルに含まれるトランザクションの内の一つ
を処理中断してから再開することにより,デッドロック
を解決する方式であり,システム状態グラフの更新のた
めのオーバヘッドが大きい。タイマ監視方式は,タイム
アウトによりデッドロックを検出し,タイムアウトとな
ったトランザクションを処理中断してから再開すること
により,デッドロックを解決する方式であり,デッドロ
ック検出までの時間がタイマの設定時間となり,その値
は,最大の正常処理の時間よりも大きくなければならな
いので,デッドロック検出までの時間が大きく,且つ再
開後もデッドロックが再発することがある。また,これ
らの方式では,デッドロック検出時には,処理の再開始
が必要である。第二の方式として,デッドロックの防止
方式は,デッドロックが発生しないように制約を設ける
方式であり,性能が低下する。第三の方式として,デッ
ドロックの回避方式は,事前情報を利用して,トラザク
ションの実行時にデッドロックを避ける方式であり,事
前情報の取得のためのオーバヘッドと,実行時のオーバ
ヘッドがある。
利用者の処理が複数のノードに及び場合には,一つの
トランザクションの処理は,複数のノードに分解され,
且つ協調を取って実行されるので,各ノードに分割され
た部分をサブトランザクションと呼び,それらの複数の
サブトランザクションを併せたものが一つのトランザク
ションとなる。サブトランザクションの内,トランザク
ションの処理の主体となるサブトランザクションを主サ
ブトランザクションと呼び,主サブトランザクション以
外のサブトランザクションを,従サブトランザクション
と呼ぶ。記憶装置に格納されたデータについて,データ
アクセス制御装置が管理するロックを行うデータ単位
を,エンティティと呼ぶ。例えば、一つ以上のレコード
又はファイルなどを,エンティティとして,設定でき
る。
〔発明の目的〕
本発明は,記憶装置(例えば,データベース又はファ
イル)に格納されたデータへのアクセルにおいて,トラ
ンザクションの同時実行制御にロック方法を用いるとき
のデータアクセス制御方式であり,本発明の目的は,デ
ッドロックの発生を防ぐ機能を有するデータアクセス制
御方法を提供することである。
〔実施例〕
第1図は,情報処理装置1の論理的構成の一例であ
る。中央処理装置2は,トランザクションの処理および
データアクセスに必要な処理を実行する。通信制御装置
3は,他の情報処理装置との通信の制御を実行する。記
憶装置4は,データを記憶するための装置である。デー
タアクセス制御装置5は,記憶装置4へのデータのアク
セスの競合を制御するための装置である。通信路50は,
例えば通信回線であり,他の情報処理装置との通信接続
を行う。信号路90,91,93は,データおよび制御信号を伝
達する。
第2図は,データアクセス制御装置5の一構成例であ
る。各エンティティへのロック要求(即ち,ロックの設
定要求)は,信号路91からデータアクセス制御装置5に
入力されて,ロック要求分配装置6に渡され,更に,各
エンティティに対応したロック要求格納装置7−1,7−
2,・・・,7−nの内の一つ(即ち,ロック要求のエンテ
ィティに対応したロック要求格納装置)に分配される。
ロック要求選択制御装置10は,ロック要求の選択時(例
えば,エンティティのロックが解除された時,又は新規
のロック要求が到着した時)に,ロック要求格納装置か
ら,以下で記述されているロック要求選択制御装置10の
論理条件に従ってロック要求を選択し,そのロック要求
にロック許可を与え,その結果は,信号路93から,中央
処理装置2に伝達される。信号路92は,データおよび制
御信号を伝達する。
ロックの種類として,リードロックとライトロックが
ある。リードロック又はライトロックを,ロックと呼
ぶ。エンティティのロック状態には,アンロック状態,
リードロック状態,及びライトロック状態がある。リー
ドロック状態またはライトロック状態を,ロック状態と
呼ぶ。アンロック状態は,リードロック又はライトロッ
クが設定されていない状態である。リードロック状態
は,リードロックが設定されている状態であり,リード
ロックを設定したトランザクションは,そのエンティテ
ィのデータに参照を行うことができる。ライトロック状
態は,ライトロックが設定されている状態であり,ライ
トロックを設定したトランザクションは,そのエンティ
ティのデータに,参照および更新を行うことができる。
同一エンティティに対するロック要求の競合制御は,次
のとおりである。エンティティがアンロック状態であれ
ば,リードロック又はライトロックを設定できる。エン
ティティがリードロック状態のときは,別のリードロッ
クを設定することは可能であるが,ライトロックを設定
することはできない。エンティティがライトロック状態
ときは、別のリードロックとライトロックのいずれも設
定することはできない。一つのトランザクションについ
て,必要なロックはすべて一度に要求し,この時に一つ
以上のロック要求に付加する時刻印は,同じ値である。
一つのトランザクションは,このすべてのロックが取得
できでから,処理を開始する。
時刻印Tを,次のように表す。
T={α,β,γ} ここで,αはロック要求発生時刻を表す時刻部分,β
はロック要求元のトランザクション番号,γはロック要
求元のトランザクションの主体が属するノード番号であ
る。αの構成要素は,年,月,日,時,分,秒である
が,適用するシステムの条件に応じて,一部(例えば,
年,月,日)は省略可能である。
任意の二つの時刻印T1={α1,β1,γ1}とT2={α
2,β2,γ2}について,T1<T2となるのは, α1<α2,又は α1=α2 且つ β1<β2,又は α1=α2 且つ β1=β2 且つ γ1<γ2 のときである。ここで,各データの大小の比較は,例え
ば,各データを二進数で表現して比較する。
データアクセス制御装置5は,ロック要求格納装置7
における各トランザクションからの各エンティティへの
ロック要求の探索時に,一つのエンティティへのロック
要求の内,最小の時刻印を有するロック要求にロックの
仮許可を与え,且つ,時刻印Tの時刻部分(α)が例え
ばtの値のロック要求に仮許可を設定時には,t+Kの時
刻まで待ち合わせて仮許可を与えたロック要求の時刻印
よりも小さい時刻印を有する新たなロック要求の到着が
ないときには,ロックの仮許可を与えたロック要求にロ
ックの許可を与え,又は,仮許可を与えたロック要求の
時刻印よりも小さい時刻印を有する新たなロック要求の
到着があるときには,その新たな一つ以上のロック要求
の内の最小の時刻印を有するロック要求に,ロックの許
可を与える。ここで,一定時間Kは,それぞれのノード
であらかじめ設定しておく値であり,例えば,ロックの
仮許可を与えたロック要求の備える時刻印よりも小さい
時刻印を持つロック要求が,そのデータアクセス制御装
置に到着するまでの最大到着時刻に若干の余裕を加えた
値とすることができる。t+Kの時刻まで待ち合わせる
ことにより,仮許可を与えたロック要求の時刻印よりも
小さい時刻印を有するロック要求の到着を,十分大きな
確率で保証できるまた,ノードまたは通信回路の異常を
監視するための監視時間は,例えば,トランザクション
の最大の正常処理時間(即ち,ノードの処理時間および
通信時間)に余裕値を加算した値に,ノード又はトラン
ザクションごとに設定できる。一つのエンティティにつ
いてのロックの仮許可は,例えば,そのエンティティの
ロックの許可が一つのトランザクションに与えられた
時,又はそのエンティティのロック要求が設定できなか
った時(ロック要求が設定待ちになった時を含む)に無
効となる。
一つのエンティティのデータ更新において,時刻印
は,デッドロックを防ぐことにのみ使用するので,時刻
印はデータの更新順序を意味しない。このことにより,
ロック要求が,ノードの処理時間,回線遅延,又は伝送
誤りによる再送などにより,エンティティの存在ノード
に,時刻印の順には到着しないときにも,任意の一つの
トランザクションは,それが要求を行ったロック要求に
ついてのロック許可をすべて取得時には,以後の処理を
開始でき,且つそのトランザクションが行ったロック要
求の時刻印よりも小さい時刻印のロック要求が後から到
着したとしても,そのトランザクションは処理を続行で
き,処理の打ち切りなどは不要である。
トランザクションは,ロック要求の付加情報に,その
トランザクションが,ただ1つのエンティティにのみ,
ロック要求を行っていることを表示できる。ロック要求
の付加情報に,この表示がなされているときには,デー
タアクセス制御装置は,一定時間Kの待ち合わせを行わ
ずに,ロックの仮許可を直ちにロック許可にしてよい。
時刻印を備えたロック要求と時刻印を備えないロック
要求が混在する場合には,本発明のデータアクセス制御
方法は,時刻印を備えたロック要求に対してのみ適用す
る。
データアクセス制御方法の処理手順の例1として,単
一の情報処理装置におけるデータアクセスに適用する例
を記述し,処理手順の例2として,通信接続(例えば,
通信回線,又は通信チャネルによる相互接続)された複
数の情報処理装置におけるデータアクセスに適用する例
を記述する。
[処理手順の例1] 各トランザクションが,単一ノードに閉じている場合
について,処理手順の例を述べる。この場合は,一つの
トランザクションは,一つのサブトランザクションから
構成するので,トランザクションとサブトランザクショ
ンの実体は,同じである。一つのトランザクションは,
一つ以上のエンティティにそれぞれ,ロックを要求する
ことができる。
ステップ 1: 各トランザクションは,各エンティティ
へのロック要求に,要求元のトランザクションの時刻印
を付与して,データアクセス制御装置5にロック要求を
行う。
ステップ 2: データアクセス制御装置5は,次の動作
を行う。一つのエンティティへのロック要求の選択時
に,最小の時刻印を有するロック要求にロックの仮許可
を与え,更に,その時刻印の時刻部分(α)の値に一定
時間K(例えば,目的のエンティティについて,一つの
トランザクションが,可能な上限値の数のロック要求を
行うのに必要な時間に,余裕を加算した時間)を加えた
時刻まで,新規のロック要求の到着を待ち合わせてか
ら,目的とするエンティティへのトランザクションのロ
ック要求群の内の最小の時刻印を有するロック要求を選
択し,次の処理を行う。
(1)選択したロック要求がライトロックの時 エンティティがアンロック状態であれば,そのライト
ロックを設定し,そのライトロック要求元のトランザク
ションにロック許可を通知する。又は,エンティティが
ロック状態であれば,次のロック要求の選択時点まで待
ち合わせる。
(2)選択したロック要求がリードロックの時 エンティティがアンロック状態またはリードロック状
態であれば,そのリードロックを設定し,リードロック
要求元のトランザクションにロック許可を通知する。又
は,エンティティがライトロック状態であれば,次のロ
ック要求の選択時点まで,待ち合わせる。新規とロック
を設定後に,より小さな時刻印を有するロック要求が到
着するときでも,そのままとする。
ステップ 3: 各トランザクションは,そのトランザク
ションが要求した全部のロック要求許可が通知された時
点で,そのトランザクションの以後の処理を実行する。
ここで,一定の監視時間,待ち合わせて,すべてのエン
ティティのロック許可が得られない場合は,取得済みの
ロックはアンロックし,トランザクションの処理を,最
初から再開始する。この場合,時刻印も再設定する。
(処理手順終り) [処理手順の例2] トランザクションの処理が,二つ以上のノードに及ん
でいることもある場合の,処理手順の例を述べる。この
場合は,一つのトランザクションは,一つ以上のサブト
ランザクションから構成する。一つのトランザクション
は,一つ以上のエンティティにそれぞれ,ロックを要求
することができる。ここで,データアクセス制御装置5
は,トランザクションとサブトランザクションの区別は
しない。各ノードの従サブトランザクションは,主サブ
トランサグションに,ロック要求の結果を通知する。
ステップ 1: 各トランザクションは,各エンティティ
へのロック要求に,要求元の主サブトランザクションで
時刻印を付与して,各エンティティの存在ノード(自己
のノードにエンティティがある場合は,自ノード)に転
送する。
ステップ 2: 各エンティティの存在ノードでは,主サ
ブトランザクションまたは従サブトランザクションは,
データアクセス制御装置5にロック要求を行う。データ
アクセス制御装置5は,次の動作を行う。一つのエンテ
ィティへのロック要求の選択時に,最小の時刻印を有す
るロック要求にロックの仮許可を与え,更に,その時刻
印の時刻部分(α)の値に一定時間K(例えば他のノー
ドからのロック要求のメッセージの最大到着所要時間に
余裕を加算した時間)を加えた時刻まで,新規のロック
要求の到着を待ち合わせてから,目的のエンティティへ
のロック要求群の内の最小の時刻印を有するロックを要
求を選択し,次の処理を行う。
(1)選択したロック要求がライトロックの時 エンティティがアンロック状態であれば,そのライト
ロックを設定し,そのライトロック要求元のトランザク
ションにロック許可を通知する。エンティティがリード
ロック状態またはライトロック状態であれば、次のロッ
ク要求の選択時点まで待ち合わせる。
(2)選択したロック要求がリードロックの時 エンティティがアンロック状態またはリードロック状
態であれば,そのリードロックを設定し,リードロック
要求元のトランザションにロック許可を通知する。又
は,エンティティがライトロック状態であれば,次のロ
ック要求の選択時点まで待ち合わせる。新規のロックを
設定後に,より小さな時刻印を有するロック要求が到着
するときでも,そのままとする。
ステップ 3: ロック要求元の主サブトランザクション
では,その主サブトランザクションが要求した全部のロ
ック要求についてのロック許可が通知された時点,その
主サブトランザクションの処理を実行する。一定の監視
時間の間,待ち合わせて,すべてのエンティティのロッ
ク許可が得られない場合は,取得済みのロックはアンロ
ックし,トランザクションの処理を,最初から再開始す
る。この時,時刻印も再設定する。(処理手順終り) 〔発明の効果〕 この発明によれば,デッドロックの発生を防ぐ効果が
あり,且つ,時間印は,トランザクションにのみ付与
し,記憶装置に格納されたエンティティには付与しない
ので,記憶量の増加がなく,競合の制御も簡単であると
いう特徴がある。
【図面の簡単な説明】 第1図は,情報処理装置の論理的構成の一例,第2図
は,データアクセス制御装置の一構成例である。 1……情報処理装置,2……中央処理装置,3……通信制御
装置,4……記憶装置,5……データアクセス制御装置,6…
…ロック要求分配装置,7−1,7−2,7−n……ロック要求
格納装置,10……ロック要求選択制御装置,50……通信
路,90,91,92,93……信号路。

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】一つ以上の情報処理装置からなる各情報処
    理装置が、少なくとも記憶装置と中央処理装置とを備え
    ており、 各情報処理装置における処理の単位であるトランザクシ
    ョンからのロック要求は前記の記憶装置に保持すること
    が可能であり、 任意の情報処理装置における任意のトランザクションは
    必要な一つ以上のロック要求を一度に行い、且つ前記の
    一度に行ったロック要求のロックが全部許可されたとき
    に前記トランザクションの前記ロック要求以外の処理を
    進行できることとし、 各ロック要求が少なくともロック要求発生時刻とロック
    要求元の識別名とから構成する時刻印ならびに対象とす
    るエンティティの識別名を備え、 前記の各情報処理装置の内の任意の一つの情報処理装置
    がデータアクセスを行うようにしたデータアクセス制御
    方法において、 ロックを行うデータ単意である任意の一つのエンティテ
    ィへの一つ以上のロック要求の内、前記の各々のロック
    要求の備えた時刻印が最小なロック要求にロックの仮許
    可を与え、且つ、前記の仮許可を与えた前記のロック要
    求の時刻印の時刻部分の値に一定時間を加えた時刻まで
    待ち合わせて、 前記の仮許可を与えた前記のロック要求の時刻印よりも
    小さな時刻印を備えた新たなロック要求が、前記の情報
    処理装置の記憶装置に到着しないときには、前記の仮許
    可を与えた前記のロック要求にロックの許可を与え、 且つ、前記の仮許可を与えた前記のロック要求の時刻印
    よりも小さな時刻印を備えた新たなロック要求が前記の
    情報処理装置の記憶装置に一つ以上到着するときには、
    それらの新たなロック要求の内で、最小の時刻印を備え
    た新たなロック要求にロックの許可を与える ことを特徴とするデータアクセス制御方法。
  2. 【請求項2】上記の一つ以上の情報処理装置と記載され
    た装置は、単一の情報処理装置だけで構成されており、 且つ上記の一定時間は各トランザクションのロック要求
    の発生から到着までに必要な最大時間以上に設定されて
    いる ことを特徴とする特許請求の範囲第(1)項記載のデー
    タアクセス制御方法。
  3. 【請求項3】上記の一つ以上の情報処理装置は互いに通
    信接続された複数の情報処理装置からなり、 且つ上記の一定時間はロック要求の発生からロック対象
    となっているエンティティの存在する情報処理装置への
    到着までに必要な最大時間以上になるようにロック要求
    を受領する情報処理装置ごとに設定されており、 任意の一つの情報処理装置には前記の一つの情報処理装
    置以外からのロック要求も存在し得る ことを特徴とする特許請求の範囲第(1)項記載のデー
    タアクセス制御方法。
JP62283739A 1987-11-10 1987-11-10 デ―タアクセス制御方法 Expired - Fee Related JP2514671B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62283739A JP2514671B2 (ja) 1987-11-10 1987-11-10 デ―タアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62283739A JP2514671B2 (ja) 1987-11-10 1987-11-10 デ―タアクセス制御方法

Publications (2)

Publication Number Publication Date
JPH01125637A JPH01125637A (ja) 1989-05-18
JP2514671B2 true JP2514671B2 (ja) 1996-07-10

Family

ID=17669477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62283739A Expired - Fee Related JP2514671B2 (ja) 1987-11-10 1987-11-10 デ―タアクセス制御方法

Country Status (1)

Country Link
JP (1) JP2514671B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009251871A (ja) * 2008-04-04 2009-10-29 Nec Corp 競合分析装置、競合分析方法、およびプログラム
CN112231131B (zh) * 2020-09-28 2024-05-28 北京金山云网络技术有限公司 一种数据库锁的实现方法、装置、设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5679354A (en) * 1979-11-29 1981-06-29 Nec Corp Memory access control system
JPS6010386A (ja) * 1983-06-30 1985-01-19 Fujitsu Ltd 論理時刻の実現方式

Also Published As

Publication number Publication date
JPH01125637A (ja) 1989-05-18

Similar Documents

Publication Publication Date Title
US4965719A (en) Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
US5504900A (en) Commitment ordering for guaranteeing serializability across distributed transactions
Eager et al. Achieving robustness in distributed database systems
US5305448A (en) Shared access serialization featuring second process lock steal and subsequent write access denial to first process
US6662196B2 (en) Collision avoidance in bidirectional database replication
US8495266B2 (en) Distributed lock
US4480304A (en) Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US5999931A (en) Concurrency control protocols for management of replicated data items in a distributed database system
US7536582B1 (en) Fault-tolerant match-and-set locking mechanism for multiprocessor systems
US5544353A (en) Distributed processing object shared resource control apparatus and method
JPS61233849A (ja) デ−タベ−ス排他制御方法
JPH11224205A (ja) プロセス制御システム
US7899794B2 (en) Optimizing lock acquisition on transaction logs
WO2011009274A1 (zh) 并发控制方法及装置
US6609178B1 (en) Selective validation for queued multimodal locking services
Lam et al. On using real-time static locking protocols for distributed real-time databases
JP2514671B2 (ja) デ―タアクセス制御方法
Lomet Using timestamping to optimize two phase commit
Sinha Commutable transactions and the time_pad synchronization mechanism for distributed systems
Jajodia et al. Multilevel secure transaction processing
EP0377133B1 (en) Wait depth limited concurrency control method
Raghav A study of Concurrency control techniques in Distributed database
Son et al. Scheduling and Concurrency Control for Real-Time Database Systems
Bukhari et al. Two fully distributed concurrency control algorithms
Gardarin et al. A reliable distributed control algorithm for updating replicated databases

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees