JPH06309203A - データベース処理システムの排他制御方法 - Google Patents

データベース処理システムの排他制御方法

Info

Publication number
JPH06309203A
JPH06309203A JP5092741A JP9274193A JPH06309203A JP H06309203 A JPH06309203 A JP H06309203A JP 5092741 A JP5092741 A JP 5092741A JP 9274193 A JP9274193 A JP 9274193A JP H06309203 A JPH06309203 A JP H06309203A
Authority
JP
Japan
Prior art keywords
lock
data
extension
type
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.)
Pending
Application number
JP5092741A
Other languages
English (en)
Inventor
Norifumi Nishikawa
記史 西川
Taka Kobayashi
挙 小林
Yoichi Yamamoto
洋一 山本
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 JP5092741A priority Critical patent/JPH06309203A/ja
Publication of JPH06309203A publication Critical patent/JPH06309203A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【構成】タイプに対して外延を一つまたは複数割り当て
るステップ6と、トランザクションあるいはそのグルー
プと外延の関係を管理するテーブル8,タイプ及び外
延,データ間の関係を管理するテーブル9を新たに設け
る。排他制御処理ステップ5は、外延と関係のないトラ
ンザクションあるいはグループの、外延に対するロック
を排除し、データアクセス時には外延にロックを掛ける
ようすることによりアクセス権を管理し、互いに衝突す
るモードのロックでも、アクセス権が異なる場合は異な
る外延にロックを掛けるようにして、並行性を向上させ
る。 【効果】階層ロックプロトコルが、トランザクションあ
るいはグループ固有のデータが存在するデータベースに
おいても使用でき、同時にこれらのデータのアクセス権
の管理が排他制御によって行える。この結果、ユーザは
トランザクションの並行性を向上でき、処理性能を上げ
ることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のトランザクショ
ンあるいはトランザクションのグループからアクセスさ
れうるデータを記憶するデータベースを管理するデータ
ベース処理手段におけるロックを用いた排他制御の方法
に関する。
【0002】
【従来の技術】従来データベースでは、データに対する
一貫性保証の1手法として、ロックを用いた排他制御が
行われており、シー ジェー デート“アン イントロ
ダクション トウ データベース システムズ”ボリュ
ーム ツー アディソン ウェスレー 1983(C.J.D
ate, An Introduction to Database Systems Volume I
I, ADDISON WESLEY,1983)や、ピー エー バー
ンスタイン エトアル“コンカレンシイ コントロール
アンド リカバリー イン データベース システム
ズ”1987(P.A.Bernstein, et.al.,Concurrency Con
trol and Recoveryin Database Systems, ADDISON WESL
EY,1987)といった成書等にその詳細が記載されて
いる。
【0003】これらには、データベースにおける施錠単
位に関する階層性を考慮した施錠方式が説明されている
が、これらの方法をオブジェクト指向データベースに適
用できるように発展させた施錠方式が、ジェー エフ
ガルザ アンド ダブリュキム“トランザクション マ
ネジメント イン アン オブジェクト−オリエンテッ
ド データベース システム プロシーディング,ザ
エイシーエム シグモードコンファレンス 1988
(J.F.Garza and W.Kim,Transaction Management in an Object-Oriented Database System,
Proc. the ACM SIGMOD Conference, pp.37−45,1988)に示されてい
る。また、エス ワイ リー アンド アール エル
リュー“ア マルチ グラニュラリティ ロッキング
モデル フォー コンカレンシイ コントロール イン
オブジェクト オリエンテッド データベース シス
テムズ,フューチャー データベース '92,プロシー
ディングズ オブ ザ セカンド ファーイースト ワ
ークショップ オン フューチャ データベース シス
テムズ 1992(S.Y.Lee and R.L.Liou, A Multi-Gra
nurality Locking Model for Concurrency Control inO
bject-Oriented Database Systems, Future Database '
92, Proc. the SecondFar-East Workshop on Future D
atabase Systems, pp.158−167,1992)には、ス
キーマまで考慮した施錠方式が示されている。
【0004】これらの方式では、ロックのオーバーヘッ
ドを減少させるために、暗黙的施錠を用いている。この
方式によれば、例えば、あるクラスに明示的にロックを
掛けることによって、そのクラスの全てのオブジェクト
に対して暗黙的に同じロックを掛けたのと同じ効果が得
られるようにするものであり、これによって、ロック獲
得のための操作が大幅に削減できるようになっている。
【0005】また、これらの方法では、オブジェクトに
ロックを掛ける場合は、あらかじめそのオブジェクトの
属するクラスに対して警告ロックを行うことによって、
先の暗黙的ロックとの間で矛盾が起こらないようにして
いる。
【0006】
【発明が解決しようとする課題】上記のようなロックプ
ロトコルを、共同トランザクションや長時間トランザク
ション等に適用する場合、これらのトランザクションで
は、作業が長時間にわたるため、途中で障害などが発生
した場合、それまでの作業の損失が非常に大きくなる。
そのため、その中間的な結果をデータベースに格納し、
作業の損失を少なくしなければならない。このため、デ
ータベース中には、共同作業を行っているトランザクシ
ョン間でのみ共有されるデータや、あるトランザクショ
ンでしか見ることが許されないオブジェクトが存在する
ことになる。このようなデータを管理するために、個々
のグループやトランザクションに、ワークスペースを割
り当て、データの管理を行う方法も考えられている。
【0007】一方、そのデータに対してロックを獲得す
る場合、ロックプロトコルを利用した場合、そのデータ
のタイプに対して掛けるロックが、そのオブジェクトに
関して競合しない他トランザクションからも見えてしま
い、そのためにトランザクション間の並行性が著しく低
下する。
【0008】このため、ロックプロトコルが、共同作業
を行っているトランザクション間でのみ共有されるオブ
ジェクトや、あるトランザクションでしか見ることが許
されないデータが存在するデータベースでは、使用する
ことができない。
【0009】本発明の第一の目的は、ロックプロトコル
を、共同作業を行っているトランザクショングループで
のみ共有されるデータや、あるトランザクションでしか
見ることが許されないデータが存在するデータベースで
も使用できるような排他制御方法を提供することであ
る。
【0010】本発明の第二の目的は、タイプに対する操
作とデータに対する操作とを独立に捕え、それらに対す
る排他制御を区別して行うことにより、トランザクショ
ンの並行性を向上し、かつロック獲得の効率を悪化させ
ない排他制御の方法を提供することである。
【0011】本発明の第三の目的は、ロックプロトコル
を用いることによって、オブジェクトに対するアクセス
の権限を設定できるような排他制御の方法を提供するこ
とである。
【0012】
【課題を解決するための手段】これらの目的および他の
目的は、次のような発明によって達成される。すなわ
ち、第一の目的を達成するために、タイプに対して外延
を割り当てるための手段及び、外延の割り当てられたタ
イプの要素であるデータと、割り当てられた外延との関
係を保持する手段とを設け、タイプの要素であるデータ
にアクセスするトランザクションあるいはトランザクシ
ョングループは、データに対するロックを獲得するため
の方法として、そのデータと関連を持ち、そのタイプに
割り当てられた外延に対するロックを排他制御管理部に
要求するか、あるいはその外延に対する警告ロックを排
他制御管理部に要求すると同時に、あるいはそのロック
の獲得後、そのデータに対してロックを排他制御管理部
に対して要求するような、データベース処理システム及
び排他制御方法を提供する。
【0013】第二の目的を達成するために、タイプの要
素であるデータをアクセスする際に、タイプに対するロ
ックを排他制御手段に対して要求するステップを含む排
他制御方法を提供する。
【0014】第三の目的を達成するために、トランザク
ションあるいはトランザクションのグループと、外延の
関係を管理する領域を設け、トランザクションあるいは
トランザクショングループが関連のない外延に対するロ
ックを要求した場合は、これを受け付けないよう制御さ
れているデータベース処理システム排他制御方法を提供
する。
【0015】
【作用】次に、本発明の作用について説明する。第一の
目的を達成するための外延割り当て手段,外延−データ
関係管理手段およびロックの各特報法によって、あるデ
ータに対してロックを要求したトランザクションあるい
はトランザクショングループは、たとえ同一のタイプの
要素のデータに対してロックを要求しても、異なる外延
を利用するトランザクションあるいはトランザクション
グループ間では、ロック競合が発生しない。したがっ
て、共同作業を行っているトランザクション間や、ある
特定のトランザクションでしか見ることが許されないデ
ータが存在するようなデータベースにおいて、階層ロッ
クプロトコルを使用することが可能となる。
【0016】第二の目的を達成するために、タイプの要
素であるデータを利用する際に、タイプに対するロック
獲得ステップを用いて、タイプに対するロックを獲得す
る。タイプの更新を行う際には、ロックを獲得するステ
ップを用いて、タイプに対するロックを獲得するだけで
そのタイプの利用の有無が確認可能となる。
【0017】第三の目的を達成するための手段の作用と
して、外延に対してロックを獲得する際に、トランザク
ションあるいはトランザクショングループと外延との関
係管理手段を参照して、その外延と、ロックを掛けよう
としたトランザクションあるいはトランザクションのグ
ループが関係を持つかどうかを調べ、関係を持たない場
合はロック不許可とすることにより、データアクセスの
可・不可を決定できる。
【0018】
【実施例】まず、図2を用いて、本発明が実施される計
算機システムの機器構成例について説明する。201は
一般的な端末であり、利用者へのインタフェースとして
使用される。本体202には、プログラムを実行するプ
ロセッサ203,各種のテーブルやデータ,展開された
プログラム等を置くメモリ204、そしてデータベース
を格納する不揮発性記憶装置205から構成される。本
発明のデータベース処理システム及び排他制御方法は、
メモリ204に展開され、プロセッサ203で実行され
る。
【0019】図1は、本発明が実施されるデータベース
処理システムのブロック図を示すものである。利用者1
は、図2における端末201からデータベース3に記憶
されているデータに対して処理を行うために、データベ
ース処理システム2に対して、トランザクションを発行
する。
【0020】データベース処理システム2には、端末1
から発行されたトランザクションあるいはグループの処
理を行うためのトランザクション処理ステップ4,デー
タベース3に記憶されたデータ及びそのタイプ,外延に
対するロック獲得を行う排他制御処理ステップ5,タイ
プに対して外延の割り当て,削除を行うための外延処理
ステップ6、及びトランザクション処理ステップ4から
の要求によって、データベース3に記憶されたデータの
読み出し・書き込みと、タイプ,外延,データの登録を
行うデータベースアクセスステップ10が含まれる。さ
らに、データ,タイプ,外延に対するロック状況を管理
するロック管理テーブル7,トランザクションと外延の
関係を管理するトランザクション−外延管理テーブル
8,タイプ,外延,データ間の関係を管理するデータ関
係管理テーブル9が含まれる。
【0021】図3に示すように、ロック管理テーブル7
は、データあるいはタイプ,外延に付随する識別子(詳
細は後述)をキーとしたハッシュテーブルによって構成
される。テーブルは、ロックを獲得したトランザクショ
ンの識別子を格納するフィールド303,獲得したロッ
クモードを格納するフィールド302,次リストへのポ
インタ格納フィールド305を持つリスト302を指す
ポインタ格納部301の配列として構成される。
【0022】図4にはトランザクション−外延管理テー
ブル8の詳細が示されている。このトランザクション−
外延管理テーブル8は、トランザクションあるいはグル
ープ,ユーザの識別子を格納する部分401と、そのト
ランザクションあるいはグループ,ユーザと関連のある
外延識別子リスト403を指すポインタ格納部402と
から構成される。また、外延識別子リストは、識別子格
納フィールド404と次ノードへのポインタ格納フィー
ルド405から構成される。
【0023】データ関係管理テーブル9は、図5に示す
ように、高さ3の変形二分木と、作成されたノードの延
べ数を保持する領域506,識別子テーブル502及び
最後尾タイプノードポインタ501から構成されてい
る。ノード503は各タイプに対応しており、タイプ識
別子格納フィールド,外延ノードへのポインタ及び他タ
イプノードを指すポインタから構成される。外延ノード
504は、タイプノードへのポインタ部,外延識別子格
納部,データノードへのポインタ部,他外延ノードへの
ポインタ部から構成される。さらに、データノード50
5は、外延へのポインタ部,データ識別子格納部及び他
データノードへのポインタ部から構成される。識別子テ
ーブルは、識別子の格納領域と、対応するノードへのポ
インタ領域とから構成される。ここで、識別子テーブル
の識別子の値は、指しているノードの識別子と同一であ
る。
【0024】次に、図6を用いて、識別子およびタイ
プ,外延,データの構成について説明する。識別子60
1には識別番号フィールドの他に、資源種別フィールド
が設けられ、これによって、その資源が何であるかを区
別する。本実施例では、タイプに対して0,外延に対し
て1,デフォルト外延は2,データに対して3が割り当
てられる。また、識別番号とは、資源の生成番号であ
る。
【0025】タイプとは、データの属性及びそれに付随
する手続きの定義を行う部分である。タイプ602は、
従業員を示すタイプの例であり、それにはタイプ識別子
フィールド603,タイプ名フィールド604,属性名
称フィールド605,属性名称に対応したデータ型格納
フィールド606、メソッド格納フィールド607から
構成されている。なお、関係データベースなど、タイプ
にメソッドが定義されていないデータベースでは、フィ
ールド607は不要である。
【0026】従業員データ608は、山田さんの例を示
している。この従業員データには、データ識別子フィー
ルド609及びタイプ602の属性定義フィールドにし
たがって、name=“山田”(610),birthday=19650
101(611)が格納されている。
【0027】また、外延は、識別子は割り当てられる
が、それはデータ関係管理テーブル9における外延ノー
ド504及びトランザクション−外延管理テーブル8の
外延識別子リスト403において使用され、外延という
実体は存在しない。
【0028】次に、データベース処理システム2におけ
る各ステップの処理について説明する。図7は、トラン
ザクション処理ステップ4が、各ステップにどのように
処理を割り振るかを示したアルゴリズムである。なお、
ここでは、本発明の実施に必要な処理のみを説明する。
図8に示すように、図1の利用者1からトランザクショ
ン処理ステップ4に送られるメッセージ801は、その
処理の内容を示すコード802とその処理に必要な引き
数803から構成される。例えば、メッセージ801の
コードは0で、これは資源に対するロック要求を示して
おり、引き数では、トランザクションT01が、データ
100に対してX(排他)モードのロックを掛けること
が示されている。
【0029】図7では、利用者からメッセージを受け取
ると(ステップ701)、ステップ702においてメッ
セージのフィールド802によって、メッセージ送り先
を判断する。その結果、ロックの獲得/解除要求の場合
は排他制御部5に対して(ステップ703)、外延の生
成/削除の要求は外延管理ステップ6に対して(ステッ
プ704)、データの参照/書き込みの場合はデータベ
ースアクセスステップ10に対して(ステップ70
5)、メッセージが送られる。
【0030】図9ないし図15は、図1の排他制御処理
ステップ5において実施される、本発明のロック獲得ア
ルゴリズムである。トランザクション処理ステップ4か
らは、ロックを掛けるべき資源の識別子,ロックのモー
ド,トランザクションの識別子が渡される。
【0031】(1)識別子の資源種別フィールドから、
ロック要求のあった資源を特定する(ステップ90
1)。
【0032】(2)ロック対象がタイプであった場合
は、その識別子をキーとして、ロック獲得の可否を調べ
(ステップ902)、 (3)ロックが獲得できれば、その旨を返して処理を終
了する(ステップ904)。
【0033】(4)ロックが獲得できなければ、ロック
獲得に失敗した旨を返して処理を終了する(ステップ9
05)。
【0034】(5)外延識別子の資源識別フィールドの
値を調べ(ステップ1101)、 (6)もし2であれば、トランザクション−外延関係を
調べる(ステップ1102)。
【0035】(7)関係が無い場合は、ロック獲得不可
通知をして(ステップ903)、終了。
【0036】(8)ステップ901の結果、ロック対象
が外延であった場合は、図5のデータ関係管理テーブル
の外延ノード504から、ロック要求のあった外延のタ
イプ識別子を得る(ステップ1103)。
【0037】(9)ノードをたどってタイプ識別子を獲
得(ステップ1104)。
【0038】(10)そのタイプの識別子をキーとしてロ
ック獲得(ステップ1201)、 (11)そのタイプのロック獲得に失敗すれば(ステップ
905)へ、 (12)そのタイプのロック獲得に成功すれば、外延の識
別子をキーとしてロック獲得(ステップ1202)、 (13)そのロックに成功すれば(ステップ904)へ、 (14)ロックに失敗すれば、ステップ1201で獲得し
たロックを開放してステップ905へ(ステップ120
3)。
【0039】(15)ステップ901の結果、ロック対象
がデータであった場合は、そのデータの外延およびタイ
プの識別子を得る(ステップ1301〜1303)。
【0040】(16)外延識別子の資源識別フィールドを
調べ(ステップ1304)、 (17)もし2であるなら外延とトランザクションの関係
があるかどうかを調べ(ステップ1305)、 (18)関係がなければ(ステップ905)へ、 (19)関係があれば、そのタイプの識別子をキーとして
ロックを獲得(ステップ1401)、 (20)そのタイプのロック獲得に失敗すれば、ステップ
905へ、 (21)そのタイプのロック獲得に成功すれば、外延識別
子をキーとして、ロック獲得の可否を調べ(ステップ1
402)、 (22)ロックに失敗すれば、ステップ1401で獲得し
たロックを開放してステテップ905へ(ステップ14
04)。
【0041】(23)獲得できればロック要求のあったデ
ータ識別子をキーとしてロック獲得(ステップ140
3)、 (24)そのロックに成功すれば(ステップ904)へ、 (25)そのロックに失敗すれば、ステップ1401およ
び1402で獲得したロロックを開放してステップ14
04へ。
【0042】次に、ロック獲得のアルゴリズムを、図1
0を用いて述べる。
【0043】(1)識別子にハッシュ関数を適用して値
を得(ステップ1001)、 (2)ロック管理テーブル7の、対応したアドレスを参
照(ステップ1002)。 (3)ロックリストの有無を判定し(ステップ100
3)、 (4)リストが無ければ成功を返す(ステップ100
8)。
【0044】(5)リストが存在すれば、全てのリスト
について、モードが衝突するかどうかを調べ、衝突しな
ければ成功を、衝突すれば失敗を返す(ステップ1004〜
1008)。
【0045】トランザクション−外延関係の有無を調べ
るアルゴリズムを、図15を用いて説明する。
【0046】(1)トランザクション−外延管理テーブ
ル8から、該当するトランザクション識別子を持つフィ
ールドを探す(ステップ1501)。
【0047】(2)ノードがなければ、関連無しを返し
(ステップ1506)、 (3)ノードがある場合は、同一の識別子を持つノード
があるかどうかを調べ、あれば関連あり、なければ関連
無しを返す(ステップ1503〜1506)。
【0048】外延管理ステップ6では、トランザクショ
ン処理ステップ4及びデータベースアクセスステップ1
0からの要求に応じて、外延の生成及び削除を行う。図
16を用いて、外延生成のアルゴリズムの説明を行う。
トランザクションから、タイプに対して外延の作成が要
求されると、 (1)外延の識別子を作成(ステップ1601)、 (2)外延ノードを作成し、ステップ1601で作成し
た識別子を識別子フィールドに書き込み(ステップ16
02)、 (3)テーブル502に識別子を追加(ステップ160
3)。
【0049】(4)ステップ1602で作成したノード
をポイント(ステップ1604)。
【0050】(5)テーブル502からタイプノードを
得る(ステップ1605)。
【0051】(6)タイプノードから外延ノードを得る
(ステップ1606)。
【0052】(7)二分木に追加(ステップ160
7)。
【0053】(8)トランザクション−外延管理テーブ
ル8から、トランザクション識別子に対応したフィール
ドを探す(ステップ1701)。
【0054】(9)ノードを作成して識別子を書き込み
リストにつなげる(ステップ1702〜1704)。
【0055】次に、タイプ作成時における外延の登録で
あるが、ステップ1601〜1607と同一であるため、省
略する。
【0056】最後に、データベースアクセスステップ1
0について述べる。データベースアクセスステップ10
では、トランザクション管理ステップ4からの要求を受
けて、データベースに格納されるデータの作成,参照,
更新,消去などの操作,データ及びタイプの作成時にお
ける識別子の生成、及びそれらの資源に対する識別子の
割り当てを行う。
【0057】ここでは特に、図18ないし図20を用い
て、本発明の実施に必要な、タイプ及びデータの作成に
おけるタイプ及びデータの登録と、識別子の生成,割り
当てのアルゴリズムについて述べる。今、トランザクシ
ョン処理ステップ4から、タイプの作成が要求された場
合における、タイプの登録アルゴリズムについて述べ
る。
【0058】(1)識別子作成アルゴリズムを用いてタ
イプ識別子を生成し(ステップ1801)、(2)タイプノ
ードを作成し、ステップ1801で作成したタイプ識別
子を書き込む(ステップ1002)。
【0059】(3)テーブル502に識別子を追加(ス
テップ1803,ステップ1804)。
【0060】(4)フィールド506から、最後尾タイ
プノードを得、双方向ポインタを設定(ステップ180
5)。
【0061】(5)でフォルト外延作成(ステップ18
06)。
【0062】トランザクション処理ステップ4から、あ
るタイプのデータの作成要求があった場合においての、
そのデータの登録アルゴリズムについて述べる。この場
合は、データを作成するタイプあるいは外延の識別子が
渡される。
【0063】(1)識別子作成アルゴリズム(後述)を
用いてデータ識別子を生成し(ステップ1901)、
(2)図4におけるデータノードを作成し、ステップ1
901で作成したデータ識別子をコピーし(ステップ1
902)、(3)与えられた識別子がタイプの識別子か
外延の識別子かを、識別子の資源種別領域によって判定
し(ステップ1903)、(4)タイプの識別子であっ
た場合は、図5における対応するタイプノードを参照し
てデフォルトの外延ノードを求める(ステップ190
4) (5)外延の識別子であった場合は対応する外延ノード
を求める(ステップ1905)。
【0064】(6)ステップ1009あるいはステップ
1010で求めた外延ノードからデータノードリストを
求め、ノードを追加し、テーブル502に登録する(ス
(テップ1906)。
【0065】識別子は、図5における領域506を参照
して、以下のように作成される。
【0066】(1)識別子格納領域を作成し(ステップ
2001)、(2)領域506の値を1増加し、ステッ
プ2001で作成された格納領域に、領域506に格納
されている数を格納し(ステップ2002)、 (3)識別子種別に応じて、タイプの場合は0を、デフ
ォルト外延の場合は1を、外延の場合は2を、データの
場合は3をステップ2001で作製された識別子の第二
フィールドに格納する。
【0067】ここでは、データ更新−検索における排他
制御において、本発明がどのように使用されるかを説明
する。タイプ(1,0)は外延(3,2)とデフォルト
外延(2,1)を持つ。外延(3,2)はグループG0
と関連を持ち、データ(6,3)は外延(3,2)と関
連を持つ。この関係は、図1における関係管理テーブル
9によって管理されているが、これは図21に示すよう
に管理されている。
【0068】また、グループG0と外延(3,2)の関
係は、図1におけるトランザクション−外延関係管理テ
ーブル7で管理されるが、その様子を図22に示す。た
だし、ここではテーブル2001のポインタ部は、同一
識別子を持つノードを指している(最上部のポインタ
は、最後尾のタイプノード(2002)を指す)が、図
を見やすくするために、省略する。
【0069】グループG0は、データ(6,3)の識別
子(6,3)を用いて、図1の排他制御手段5に対して
排他モードのロック(以下Xロック)を要求する。排他
制御手段5では、図9ないし図15に表示のステップを
用いてデータ(6,3)に排他モードのロック(以下X
ロック),外延(3,2)及びタイプ(1,0)には、
警告排他ロック(以下IXロック)を掛ける。これは、
次のような手順で行われる。
【0070】まず、識別子の資源種別フィールドから、
ロック要求のあった資源を特定する。この場合、識別子
は(6,3)であり、識別子の第2のフィールドから、
種別はデータであることがわかる。次に、図21の、識
別子(6,3)を持つデータノード2005と、その外
延ノード2004を用いてそのデータの外延およびタイ
プの識別子を得る。次に、図22のトランザクション−
外延関係管理テーブルを用いて、外延とトランザクショ
ンの関係があるかどうかを調べる。外延の識別子は
(3,2)であるが、この場合、グループG0は、外延
(3,2)と関連を持つことがわかる。
【0071】次に、図23を利用して、ロック獲得につ
いて述べる。タイプの識別子(1,0)をキーとして、
ロック管理テーブル7を参照してロック獲得の可否を調
べる。この時点では、全くロックが獲得されていないの
で、ロックが獲得できる(ステップ2301)。続いて
外延識別子(3,2)をキーとして、ロック管理テーブ
ル7を参照してロック獲得の可否を調べ、獲得する(ス
テップ2302)。さらに、ロック要求のあったデータ
(識別子(6,3))のロックを獲得する(ステップ2
303)。
【0072】この時、トランザクションT0が、タイプ
(1,0)の要素であるデータに対して検索を行う。こ
こで、データ(6,3)は、グループG0のみがアクセ
スできるデータであり、トランザクションT0の検索対
象には入らず、外延(2,1)のデータのみが検索の対象
となる。
【0073】図24を用いて説明する。トランザクショ
ンT0は、検索を行うために外延(2,1)に対する参
照ロック(以下Sロック)を排他制御手段5に要求す
る。
【0074】排他制御手段5では、まず、与えられた識
別子(2,1)の第二フィールドから、ロック対象がデ
フォルトダミークラスであると判定する。次に、図21
の対応する外延ノード2003からタイプのノード20
02を見つけ、その識別子(1,0)を得る。まず、タ
イプ(1,0)に警告参照ロック(以下ISロック)を獲
得し(ステップ2401)、外延(2,1)にはSロッ
クを獲得する(ステップ2402)。ここで、タイプ
(1,0)のISロックとIXロックは競合するもので
はなく、また、SロックとIXロックとは互いに競合す
るが、異なる外延((2,1)と(3,2))に対して
掛けられているため、競合が発生せず、データ(6,
3)のXロックの開放を待つことなく、検索の実行を行
うことができる。
【0075】次に、先のデータ関係例をもとに、データ
参照−タイプ更新時の例について述べる。トランザクシ
ョンT1は、外延(3,2)と関連を持っており、トラ
ンザクションT2は、タイプ(1,0)で定義されたデ
ータ(6,3)を参照するために、図1の排他制御手段
5に対してデータ(6,3)の参照ロックを要求する。
排他制御手段5は、タイプ(1,0)に対してISロッ
クを、外延(3,2)に対してISロックを、データ
(6,3)に対してSロックをそれぞれ獲得している。
これらは、図25における、2501,2502,25
03としてそれぞれロック管理テーブル7に格納され
る。
【0076】一方、トランザクションT2は、タイプ
(1,0)の更新を行うために、タイプ(1,0)に対
してXロックの獲得を排他制御手段5に要求する。
【0077】排他制御手段5では、識別子(1,0)の
第二フィールドから、それがタイプであると判定し、タ
イプ(1,0)に対するXロックを獲得しようとする
が、タイプ(1,0)に掛けられたISロック(250
1)のために、この要求は失敗し、タイプ(1,0)は
更新されることがない。
【0078】このとき、トランザクションT2は、タイ
プ(1,0)の全ての外延を調べることなく、タイプ
(1,0)の利用の有無を知ることができる。
【0079】次に、再度先の例を用いて、データのアク
セス権管理の例について説明する。ここで、グループG
1が外延2004と関連を持つデータ2005に対して
ロックを獲得する場合を考える。この時、図26に示す
ように、グループG1は外延(3,2)と関連を持つこ
とから、他のグループあるいはトランザクションとロッ
クが競合しないかぎり、データ(6,3)に対するロッ
クを獲得することができる。
【0080】次に、トランザクションT3が、外延
(3,2)のデータ(6,3)に対してロックを獲得す
る場合を考える。
【0081】排他制御手段5に対して、トランザクショ
ンT3がデータ(6,3)に対するロックを要求した場
合、まず、識別子(6,3)の第二フィールドからこれ
がデータであると判定する。次に、図21における対応
するデータノード2005から、データ(6,3)の外
延ノード2004を求め、その識別子(3,2)を得
る。次に、図26によって、トランザクションT3と外
延(3,2)との関連の有無を調べるが、関連を持たな
いため、外延(3,2)に対するロックを獲得すること
ができず、したがって、データ(6,3)に対するロッ
クが獲得できない。
【0082】このことから、データ(6,3)のアクセ
スはグループG1のみが可能であり、したがってデータ
(6,3)のアクセス権はグループG1のみが持ってい
ると見なせ、データのアクセス権の管理が可能となる。
【0083】
【発明の効果】本発明によれば、共同作業を行っている
トランザクション間やある特定のトランザクションから
しか参照できないデータが存在するようなデータベース
において、階層ロックプロトコルを使用することができ
る。
【0084】また、タイプの利用状況を効率よく知るこ
とができる。
【0085】さらに、排他制御によって、データのアク
セスの権限の管理を行うことができる。
【図面の簡単な説明】
【図1】システム構成の一例を示すブロック図。
【図2】本発明が実施される機器のブロック図。
【図3】ロック管理テーブルのブロック図。
【図4】トランザクション−外延関連テーブルのブロッ
ク図。
【図5】データ管理テーブルの構成を示すブロック図。
【図6】タイプ,外延,データの構成の説明図。
【図7】トランザクション処理ステップで実施されるフ
ローチャート。
【図8】トランザクション処理ステップに渡されるメッ
セージの説明図。
【図9】排他制御処理ステップで実施されるフローチャ
ート。
【図10】ロック獲得のフローチャート。
【図11】外延に対するロックアルゴリズムのフローチ
ャート。
【図12】外延に対するロックアルゴリズムのフローチ
ャート。
【図13】データに対するロックアルゴリズムのフロー
チャート。
【図14】データに対するロックアルゴリズムのフロー
チャート。
【図15】トランザクション−外延関連判定アルゴリズ
ムのフローチャート。
【図16】外延登録アルゴリズムのフローチャート。
【図17】外延登録アルゴリズムのフローチャート。
【図18】タイプ登録アルゴリズムのフローチャート。
【図19】データ登録アルゴリズムのフローチャート。
【図20】識別子生成アルゴリズムのフローチャート。
【図21】本発明の実施例において用いられる、タイ
プ,外延,データの関係を管理しているデータ管理テー
ブルの説明図。
【図22】データ更新−検索例におけるトランザクショ
ン−外延関連管理テーブルの様子を示す説明図。
【図23】データ更新−検索例におけるロック管理テー
ブルの様子を示す説明図。
【図24】データ更新−検索例におけるロック管理テー
ブルの様子を示す説明図。
【図25】データ参照−タイプ更新例における、ロック
テーブルの様子を示す説明図。
【図26】データのアクセス権管理例におけるトランザ
クション−外延関連管理図の様子を示す説明図。
【符号の説明】
1…端末、2…データベース処理システム、3…データ
ベース、4…トランザクション処理ステップ、5…排他
制御処理ステップ、6…外延管理手段、7…ロック管理
テーブル、8…トランザクション−外延関係管理テーブ
ル、9…データ管理テーブル、10…データベースアク
セスステップ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】1個、またはそれ以上のデータを記憶し、
    前記データはタイプによって定義され、前記タイプに
    は、前記タイプに対応して前記タイプで定義されたデー
    タの集合を管理する外延が割り当てられているデータベ
    ースと、前記データベースに記憶されているデータに対
    してアクセス要求をするトランザクション及び前記トラ
    ンザクションのグループの管理と、前記データの排他制
    御を行い、データのアクセスのためにロックを要求し、
    前記ロックの獲得が失敗した場合には、前記ロックが獲
    得されるまで、前記ロックを要求したトランザクション
    の処理を中断するよう構成されているデータベース処理
    システムにおいて、 前記データベース処理システムには、前記タイプに対し
    て、前記タイプの外延を、前記トランザクションあるい
    はトランザクショングループに対応して動的に割り当て
    るステップが含まれ、タイプで定義されたデータは、前
    記タイプに対して割り当てられた外延の一つと関連を持
    つように構成され、前記データベースシステムにおける
    排他制御方法は、ある外延と関連のある全てのデータに
    ロックを獲得する場合は、前記外延に対してのみロック
    を獲得するステップを含むことを特徴とするデータベー
    ス処理システムの排他制御方法。
  2. 【請求項2】請求項1において、前記データベースシス
    テムにおける排他制御方法は、あるデータに対してロッ
    クを獲得するときには、前記データのロック獲得より以
    前に、前記データと関連のある外延に対してロックを獲
    得するステップを含むデータベース処理システムの排他
    制御方法。
  3. 【請求項3】請求項2において、前記データベース処理
    システムにおける排他制御方法には、外延にロックを獲
    得する以前に、前記外延が割り当てられたタイプに対し
    てロックを獲得するステップが含まれるデータベース処
    理システムの排他制御方法。
  4. 【請求項4】請求項2において、前記データベース処理
    システムにおける排他制御方法には、トランザクション
    あるいはトランザクショングループと外延との関連を保
    持する領域が含まれ、前記トランザクションあるいは前
    記トランザクショングループは、関連を持たない外延に
    対してロックを獲得できないように制御されているデー
    タベース処理システムの排他制御方法。
JP5092741A 1993-04-20 1993-04-20 データベース処理システムの排他制御方法 Pending JPH06309203A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5092741A JPH06309203A (ja) 1993-04-20 1993-04-20 データベース処理システムの排他制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5092741A JPH06309203A (ja) 1993-04-20 1993-04-20 データベース処理システムの排他制御方法

Publications (1)

Publication Number Publication Date
JPH06309203A true JPH06309203A (ja) 1994-11-04

Family

ID=14062848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5092741A Pending JPH06309203A (ja) 1993-04-20 1993-04-20 データベース処理システムの排他制御方法

Country Status (1)

Country Link
JP (1) JPH06309203A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100312910B1 (ko) * 1998-02-14 2001-12-28 이계철 데이터베이스관리시스템에서트랜잭션고립단계의확장방법
JP2014512632A (ja) * 2011-04-29 2014-05-22 シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッド オブジェクトデータ要素の選択的ロック

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100312910B1 (ko) * 1998-02-14 2001-12-28 이계철 데이터베이스관리시스템에서트랜잭션고립단계의확장방법
JP2014512632A (ja) * 2011-04-29 2014-05-22 シーメンス プロダクト ライフサイクル マネージメント ソフトウェアー インコーポレイテッド オブジェクトデータ要素の選択的ロック

Similar Documents

Publication Publication Date Title
US6385613B1 (en) Resource management using resource domains
EP1540533B1 (en) Controlling visibility in multi-version database systems
US5890153A (en) Database lock control method
JP4586019B2 (ja) 非故障ノードによる並列な回復
US8010497B2 (en) Database management system with efficient version control
US6952692B1 (en) Execution of requests in a parallel database system
US5642501A (en) Computer method and apparatus for asynchronous ordered operations
US20060020634A1 (en) Method, system and program for recording changes made to a database
US6751617B1 (en) Method, system, and data structures for implementing nested databases
Robinson Design of concurrency controls for transaction processing systems
US7548918B2 (en) Techniques for maintaining consistency for different requestors of files in a database management system
US20080059471A1 (en) Using Local Locks For Global Synchronization In Multi-Node Systems
US7685124B2 (en) Systems and methods for performing authorization
US20050022047A1 (en) Conditional data access after database system failure
EP2378421A1 (en) Ownership reassignment in a shared-nothing database system
US20070255760A1 (en) Information processing apparatus and information processing method
JP2008524707A (ja) データベースサーバによるファイル操作を実行するためのインフラストラクチャ
JP2008524694A (ja) データベース管理システムにおけるファイル操作のためのロックを提供するための手法
US20100169289A1 (en) Two Phase Commit With Grid Elements
CN109144978B (zh) 权限管理方法及装置
JP2023541298A (ja) トランザクション処理方法、システム、装置、機器、及びプログラム
US7752225B2 (en) Replication and mapping mechanism for recreating memory durations
US7257587B2 (en) Method and system for intra-table referential integrity for relational database systems
JP2001282599A (ja) データ管理方法および装置並びにデータ管理プログラムを格納した記録媒体
US7107237B2 (en) Method, apparatus, and article of manufacture for executing a statement to manipulate data