JPH09146817A - 排他制御方法 - Google Patents
排他制御方法Info
- Publication number
- JPH09146817A JPH09146817A JP7300968A JP30096895A JPH09146817A JP H09146817 A JPH09146817 A JP H09146817A JP 7300968 A JP7300968 A JP 7300968A JP 30096895 A JP30096895 A JP 30096895A JP H09146817 A JPH09146817 A JP H09146817A
- Authority
- JP
- Japan
- Prior art keywords
- exclusion
- exclusive
- oid
- lock
- exclusive control
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2336—Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
- G06F16/2343—Locking methods, e.g. distributed locking or locking implementation details
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/955—Object-oriented
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
他対象の代替の概念に基づいた排他制御規約を導入可能
にし、排他管理対象を削減し、排他制御のオーバヘッド
を削減することにある。 【解決手段】データベース管理システムの排他制御部で
は、排他制御管理テーブルを用いて排他制御を行なう。
オブジェクト111bに対する排他をオブジェクト11
1aで代替するように指定されている場合、オブジェク
ト111bに対して共有錠をかけるときに、排他制御管
理テーブルのレコードにオブジェクト111aの排他資
源IDを登録することにより、複数の排他対象に対する
施錠を、代表となる1つの排他対象の施錠によって排他
の代替をする。
Description
するデータベースシステムに係わり、特に排他対象間で
施錠を代替する排他制御方法に関する。
ムでは、複数のトランザクションを並行して実行すると
きにDBの一貫性を保証するために、DBを管理するD
B管理システム(以下DBMSと略記)により排他制御
機能が提供されている。
とデータベース、岩波講座情報化学−8、1983年」
(文献1とする)に記されているように、以下の機能が
要求される。
ある対象を更新中のとき、他のトランザクションが当該
対象を更新することを抑止する。
ある対象を更新中のとき、他のトランザクションが当該
対象を参照することを抑止する。
ある対象を参照中のとき、他のトランザクションが当該
対象を更新することを抑止する。
して、2つのロックモードを用いた排他制御方法が知ら
れている。以下(2−1)〜(2−4)に、その排他制
御方法での規約を示す。
clusive lock) をかける。専有錠とは、その施錠対象
を、他のトランザクションが参照することも更新するこ
とも許さない錠である。
ザクションが終了するまで解錠しない。
錠 (share lock) をかける。共有錠とは、その施錠対象
を他のトランザクションが参照することは許すが、更新
することは許さない錠である。
ザクションが終了するまで解錠しない。
位の粒度 (granularity) に基づくトランザクション並
行性と排他制御処理のオーバヘッドとのトレードオフの
問題が挙げられる。
テムにおいて、あるテーブルに属する大量のレコードを
更新するトランザクションがある場合、レコードを排他
単位として個々のレコードに施錠するよりも、テーブル
を排他単位として該テーブルにのみ施錠する方が、排他
制御のオーバヘッドが少なくなる。
対象になっていないレコードを参照する他のトランザク
ションがある場合、テーブルを排他単位としていると、
該テーブルの施錠要求で競合するため、同時に実行でき
なくなる。
のトランザクションは施錠が競合せずに実行できるが、
多くのレコードを排他対象とするため、排他制御のオー
バヘッドが大きくなる。
ks in a Large Shared DataBase",J.N.Gray, R.A.Lorie
and G.R.Putzolu, Proc. 1st International Conferen
ceon Very Large Data Base, 1975.(文献2とする)で
は、排他対象間の階層関係に基づいた排他制御規約を用
いて、効率よく排他を制御する方法について論じられて
いる。
テムでは、データベースはテーブル(表)の集まりから
構成され、テーブルはレコードの集まりから構成される
ことから、この順序(データベース>テーブル>レコー
ド)で、階層を構成することができる。
は、上位の階層にある対象に施錠すると、下位の対象は
自動的に施錠されたものとみなす。
実現される。
い。
階層が施錠されている場合だけ、対象を施錠できる。す
なわち上位階層から順番に施錠していく。
錠し解除した対象をふたたび施錠しない。
予定 (intention) の概念を持つロックモードを加え
て、6種類のロックモードを用いることにより、DB操
作の組み合わせに応じて、上位レベルの排他を競合させ
るにより排他制御のオーバヘッドを削減したり、競合さ
せずに並列性を高くしたりしている。
きには、その上位のテーブルに対して専有予定錠をかけ
ておく。すると、他トランザクションでは、そのテーブ
ルに属する他のレコードの参照については、テーブルに
対して共有錠を要求するが、専有予定錠とは競合しなく
なっており、並行して実行できる。
ブルに対して専有予定錠を要求するが、専有予定錠どう
しで競合するようになっており、レコード単位の施錠が
起こらないため排他制御のオーバヘッドが削減される。
する方法として、「特開平7−191898号公報」
(文献3とする)に記述されている方法がある。
の項目を登録する排他制御用テーブルを設け、当該項目
の値が排他対象となったときに、既に当該排他制御用テ
ーブルに登録されているかチェックすることにより、排
他制御のための入力データ量を削減し、排他制御のオー
バヘッドを少なくしている。
排他制御のオーバヘッドを少なくするために、上位レベ
ルの排他により下位レベルの排他を行なわないようにし
て、排他管理テーブルで管理する排他対象数を削減した
り、排他制御用テーブルのレコード長を小さくしてデー
タの入力量を減らすようにしているが、実際に排他制御
の対象として管理するものについては、その管理情報は
必ず排他制御用テーブルに1つのレコードとして登録さ
れていなければならない。
排他制御用テーブルのために大量の領域が必要とされ、
その管理のためのオーバヘッドが非常に大きくなるとい
う問題がある。
chael J., DeWitt David J.,Naughton Jeffery F., Pro
c. ACM SIGMOD Conference, June 93.(文献4とする)
に記載されているDBシステムのベンチマークテストの
あるモデルでは、1億件を超えるデータを同時に扱うモ
ードがある。
報は、このテーブルの1レコードで表わされるものとす
る。
ードのデータ長を約100バイトとすると、1億件を超
えるデータを同時に排他制御する場合、10ギガバイト
以上の記憶領域が必要になってしまう。
場合、DBMSが主記憶に確保できる領域を数十メガバ
イト程度であるとすると、その全てを排他管理テーブル
のために使用したとしても、上記の排他管理テーブルの
レコードでは、数十万件分しか取扱えない。これでは、
上記のベンチマークテストのようなDB操作を実行する
ことができない。
理テーブルを分割して保持させ、排他制御処理で必要な
るテーブルの部分を主記憶にキャッシングするようにす
れば、主記憶領域が少なくても大量の排他対象を管理で
きるが、2次記憶装置とのデータ入出力の処理コストが
非常に大きいため、排他制御のオーバヘッドが非常に大
きくなってしまう。
ード長を小さくすれば、排他制御に必要な領域が少なく
なるが、レコードに保持する必要がある最低限の情報量
を考えると、数分の1程度にしか削減できず、数千分の
1など大幅な領域削減をすることはできない。
ジェクト指向データベース管理システムを用いて上記の
テストを行なうときは、データページ単位の排他を使用
している。
されるオブジェクトが多いほど、排他対象となるデータ
ページ数が少なくなり、排他管理テーブルに登録される
レコード数を削減できるが、同一データページ中に格納
されるオブジェクトが少ないと、排他対象数を削減する
効果は少ない。
オブジェクトがまとめて排他管理されることについて
は、オブジェクト単位の排他の観点からみれば不適切で
あるし、トランザクション並列性が低下するという問題
がある。
ブルに登録するレコード数が多いということにあるの
で、その対策としては、登録するレコード数を削減する
ことが考えられる。但し、単にレコード数を減らすと、
排他対象について正しく排他制御が動作しなくなってし
まう。
の排他対象を施錠している場合と同等の効果を出すため
に、「1つの排他対象の施錠で、複数の排他対象を施錠
しているものとみなす」、つまり、「ある排他対象に対
する施錠で、他の排他対象の施錠を代替する」ことを考
える。
く排他の例でのテーブルの排他や、データページ単位の
排他は、オブジェクト単位の施錠を代替しているのでは
なく、排他単位を上位レベルに変えて別の次元で排他管
理しているのであり、同じレベルの排他を管理して代替
しているわけではない。
的な格納の構成によって同時に排他されるオブジェクト
群が決定されてしまうが、排他対象間の施錠を代替する
従属的な関連は、物理的な格納構成とは独立にすべき
で、論理的に関連付けられることが望ましい。
のベンチマークテストのモデルでは、データ間の部品関
係をその基準とすることができる。
データはその親データに専有されているという従属的な
関連がある。
では、親データと同一に管理されてもよく、子データに
直接施錠しなくても、代わりに親データが施錠されてい
れば、子データに施錠されていることと同等の効果があ
る。つまり、親データの施錠により、子データの施錠を
代替することができる。この場合、直接施錠する必要が
あるのは部品関係の親データのみでよい。
より、上記のベンチマークテストのモデルでは、同時に
排他管理する対象数は、1億件のうちの15000件程
度となる。この程度の件数であれば、上記の排他管理テ
ーブルを主記憶領域で保持可能となる。
することができず、また、論理的な排他対象間の従属的
関連をもとに施錠を代替する排他制御規約を設定するこ
とができなかった。
排他制御において、排他対象の代替の概念に基づいた排
他制御規約を導入可能にし、排他制御のオーバヘッドを
削減することにある。
め、本発明の排他制御方法は、排他制御の対象となる複
数の排他対象について、ある排他対象1に対して直接施
錠していなくても、該排他対象1と異なる他の排他対象
2に対して施錠することにより、排他対象1に対する施
錠を代替することを特徴とする。
て、図面を用いて詳細に説明する。
成図を示す。ここでは、オブジェクト指向データベース
システムに本発明を適用した例を示す。
02cは、DBにアクセスする手段としてアプリケーシ
ョンプログラム103a〜103c(以下APと略記)
を介してDBを利用する。
対してDBを利用するためのインタフェイスとしてアプ
リケーションプログラムインタフェイス105(以下A
PIと略記)を提供する。
のようなAPIを提供する。
DBに対する論理的な作業単位(トランザクション)と
して、DBMSに認識させるためのAPIである。
後、次に(b)トランザクションコミットを発行するま
でに、DBMSに対して要求した操作が、一連の操作と
してDBに認識される。
6に伝えられ、以降のAPからのDB操作がトランザク
ションとして管理されるようになる。
ザクションを終了させるためのAPIである。トランザ
クションコミットが正常に終了した時点で、当該トラン
ザクションでのDB操作が、格納制御部107を介して
DBに反映される。
成するためのAPIである。このAPIを発行する時に
は、予めディクショナリ管理部108で定義されたタイ
プを指定し、そのタイプの定義内容に従ってオブジェク
トのデータ構造を決定する。(d)は、DBシステムに
管理されているオブジェクトをAPプロセスで参照する
ためのAPIである。このAPIを発行すると、参照す
るオブジェクトに対して共有錠をかけるように排他制御
部109へ要求が自動的に伝えられる。施錠が正常に行
われると、その排他対象についての情報は、排他制御管
理テーブル110に保持される。
オブジェクトをAPプロセスで更新するためのAPIで
ある。このAPIを発行すると、更新するオブジェクト
に対して専有錠をかけるように排他制御部へ要求が自動
的に伝えられる。
ジェクト111a〜111bをそれぞれ一意に識別する
ために、オブジェクト識別子112a〜112b(Obje
ctIdentifier;以下OIDと略記)を各オブジェクトに
割り付ける。
を、OIDを用いて指定することにする。オブジェクト
を排他制御する場合、個々のオブジェクトを排他対象と
して識別する手段が必要である。ここでは、排他制御の
管理上、排他対象をシステム内で一意に識別するために
用いる識別子を、排他資源IDと呼ぶことにする。
については、排他資源の種別としてオブジェクトである
ことを示すフラグとOIDを組み合わせることで構成す
る。同様に、エリア、タイプ、データページについて
も、それぞれ排他対象種別フラグと、排他対象ID(エ
リアID、タイプID、データページID)を組み合わ
せることで排他資源IDを構成する。
目から構成される。
する。
対するロックを保持しているトランザクションIDを登
録する。トランザクションIDは、トランザクション開
始時に、トランザクション管理部から割り付けられる。
れているロックのロックモードを登録する。専有、共有
などのロックモードを示す値を登録する。
実際に排他制御で管理対象となる(排他の従属的関連で
上位に位置し、複数の排他対象の代表となる)排他対象
を「代替排他の親」と呼び、また、実際には排他制御で
管理対象にならない(排他の従属的関連で下位に位置す
る)排他対象を「代替排他の子」と呼ぶことにする。排
他の代替を実現するには、ある代替排他の子を排他対象
とするときに、その排他対象自身に対応する排他資源I
Dではなく、その代替排他の親に対応する排他資源ID
を用いて排他を管理する。
b(OID=obj2)が参照の対象としてAPに指定
されたときに、排他制御部へ共有錠を要求するときに
は、代替排他の親オブジェクト112a(OID=ob
j1)の排他資源ID113が指定されるようにする。
納位置についての説明図を示す。
物理形式の2種類の形式があり、DBの利用法に合わせ
て使い分けることにする。
実体202aをデータベースファイル203の中で格納
している位置の情報をそのまま符号化し、物理形式OI
Dであることを示すフラグを付加したOIDで、特にD
Bに格納されているオブジェクトに高速にアクセスを行
ないたい場合に用いる。
を符号化した識別子を、物理オブジェクト識別子(Phys
ical OID;以下POIDと略記)と呼ぶことにする。
で一意となる値(通し番号)を符号化し、論理形式OI
Dであることを示すフラグを付加したOIDで、オブジ
ェクトの識別性と実体の格納位置とを独立させ、物理的
な格納の構成に影響されずに柔軟にオブジェクト操作を
行ないたい場合に用いる。(通し番号は、DBMSの通
番管理部205と通番記録部206により、システム一
意になるように管理する。)例えば、物理形式OIDで
は、オブジェクトの格納位置を変更してしまうと、当該
物理形式OIDからでは、位置変更したオブジェクトを
正しく得られなくなる。また、もとの格納位置に別のオ
ブジェクトを格納してしまうと、そのオブジェクトが当
該物理形式OIDで識別されることになり、OIDの一
意性が失われてしまう。
しているので、OIDとオブジェクトの対応関係を正し
くメンテナンスすれば、オブジェクトの格納位置を変更
しても、一度割り付けたOIDの一意性は保たれる。
オブジェクト実体の格納位置を直接特定できないので、
論理形式OIDからオブジェクト実体の格納位置を知る
ための手段が必要である。ここでは、論理形式OIDを
キーとし、オブジェクト実体の格納位置情報(上記のP
OIDに相当)を値とするインデクス機構(以下、OI
D−格納情報インデクスと呼ぶ)を用いて、対応関係を
管理する。
格納情報インデクス管理部207とOID−格納情報イ
ンデクスファイル208により管理する。
オブジェクトを求めるときには、OIDをキーとして、
OID−格納情報インデクスにより格納情報209を取
得し、その格納情報をもとにオブジェクトの実体202
bを得る。
ジェクト識別子(Logical OID;以下LOIDと略記)
と呼ぶことにする。
照の説明図を示す。
があったときは、DBMS104は、DBシステムで管
理しているオブジェクトの内容を、APを実行する計算
機の主記憶上のAPプロセス領域にコピーし、そのアド
レスをAPに返す。(このコピー処理については後に詳
細に説明する。) DB101に格納されているオブジェクト202aは、
格納制御部107に格納位置を指定して取得される。
る。このように、APプロセスでオブジェクトをコピー
しておく領域を、オブジェクトキャッシュ301と呼
ぶ。また、上記のようにDBシステムで管理されるオブ
ジェクトをオブジェクトキャッシュに固定し、APで参
照可能にすることを、オブジェクトの活性化という。活
性化したオブジェクトの状態を管理するため、オブジェ
クト状態管理テーブル302を用いる。
目からなる。
先頭アドレス (d)取得しているロックモード (e)代替排他のID 活性化されたすべてのオブジェクトに対して、キャッシ
ュ上での状態を示す情報が、このオブジェクト状態管理
テーブルに登録される。
いて、OID指定で活性化が要求されたときに、オブジ
ェクトキャッシュ上のオブジェクトの状態を知るため
に、OIDをキーとし、オブジェクト状態管理テーブル
のエントリの先頭アドレスを値とするハッシュ機構を用
いる。ここでは、このハッシュをOID−状態管理情報
ハッシュ303と呼ぶ。
のオブジェクトが活性化されており、OID−状態管理
情報ハッシュには、当該オブジェクトのエントリ304
が登録されており、その値からオブジェクト状態管理テ
ーブルのエントリ305のレコードの先頭アドレスを取
得することができ、当該レコードから、オブジェクトに
対して共有錠を保持しており、代替排他の親IDがob
j1であることが示されている。
理の例を示す。
行し(401)、オブジェクトキャッシュ領域、オブジ
ェクト状態管理テーブル、およびOID−状態管理情報
ハッシュの初期化を行なう。
(402)次に、オブジェクト生成を要求する。(40
3)このとき、生成するオブジェクトのタイプ、オブジ
ェクトを格納するエリア、割り付けるOIDの形式、代
替排他の親を指定する。
る(404)。
(405)し、APプロセスの領域を解放した後、AP
を終了する。
ジェクトの生成処理を示す。
対して施錠する。(501)次に、代替排他の親IDが
指定されているか判定し(502)、指定されていると
きは、親IDに対して専有錠を要求する(503)。
たタイプからデータ構造情報を取得する(504)。
もとに、オブジェクトキャッシュ上に領域を確保する
(505)。このとき、オブジェクト領域の先頭に、オ
ブジェクト制御ヘッダのための領域をとり、各オブジェ
クトの個別の制御情報(自分自身のOIDなど)を保持
するようにする。
トを保持するために、504で取得したデータ構造に従
って、領域を初期化する(506)。
7)。このとき、オブジェクト制御ヘッダ内に、自分自
身のOIDを保持させる。
定する(508)。親が指定されていない場合は、新規
に割り付けたOIDの排他資源IDで専有錠を要求する
(509)。
新規に作成するオブジェクトの情報を登録する(51
0)。ここで、項目「オブジェクト状態」には、このト
ランザクションで新規に作成されたことを示すフラグを
オンにしておく。また、項目「取得しているロックモー
ド」に「専有」を示す値を、項目「代替排他ID」に代
替排他の親の排他対象IDを設定しておく。
該オブジェクトの情報を登録し(511)、この処理を
終了する。
することにより、生成されたオブジェクトが活性化状態
になる。
は、新規オブジェクトはDBには格納せずに、トランザ
クションコミット処理でDBに格納する。
す。
ッシュ上のオブジェクトを取得するために、オブジェク
ト状態管理テーブルからレコードを取得する(60
1)。
作成」であるかを判定する(602)。
Bに新規に格納し(603)、格納位置が決定した時点
でOID−格納情報インデクスに登録するレコードを作
成する(604)。
(605)、親を持つ場合は、登録するレコードに親の
IDを保持させて(606)、作成したレコードをOI
D−格納情報インデクスに登録する(607)。このと
き、登録するレコードには、当該オブジェクトに対応す
るエリアID、タイプIDを保持させておく。
成」でない場合は、「更新」状態でないか判定する(6
08)。
ブジェクトの内容をDBに反映するように、格納制御部
に対して更新要求する。(609)次に、オブジェクト
状態管理テーブルで、次にレコードが存在するかを判定
する(610)。
クト状態管理テーブルの次のレコードを取得し(61
1)、602へ行く。
ザクション管理部にトランザクションコミットを要求し
(612)、この処理を終了する。
ジェクトの生成処理を示す。
対して施錠する(701)。
か判定し(702)、指定されているときは、親IDに
対して専有錠を要求する(703)。
たタイプに対応するデータ構造情報を取得する(70
4)。
か判定し(705)、指定されているときは、オブジェ
クト領域サイズに親IDを保持する分のサイズを加えて
おく(706)。
確保する(707)。
トを保持するために、704で取得したデータ構造に従
って、領域を初期化する(708)。
か判定し(709)、指定されているときは、オブジェ
クト領域の最後尾に親のIDを保持させる(710)。
録するレコードに対して、項目「取得しているロックモ
ード」に「専有」を示す値を、項目「代替排他ID」に
代替排他の親の排他対象IDを設定しておく。ただし、
ここでは項目「オブジェクト状態」には、「新規」であ
ることは設定しない。
当該オブジェクトの情報を登録する(711)。
12)。ここでのオブジェクトの格納は、物理形式OI
Dを割り付けるモードとする。
録し(713)、この処理を終了する。
ジェクトの格納位置情報が特定されるので、OID−格
納情報インデクスには登録する必要がない。
ジェクトの格納処理を示す。
を決定する(801)。
OIDを割り付ける(802)。
し(803)、代替排他が指定されていないときは、自
分自身のOIDに専有錠をかける(804)。
05)、この処理を終了する。
理の例を示す。
行する(901)。
(902)。
03)。このとき、活性化するオブジェクトのタイプ、
OID、ロックモード(共有)を指定する。
領域を参照する(904)。
る(905)。
し(906)、APを終了する。
す。
ているオブジェクトに対して、その親を変更する操作が
並行して実行されないことを前提とする。
に、活性化対象として指定されたOIDが登録されてい
るか判定する(1001)。
Dの形式が論理形式であるか判定する(1002)。
ェクトをDBから活性化する処理(詳細は後述する)を
行ない(1003)、この処理を終了する。
の形式が物理形式であるか判定し(1004)、物理形
式ならば、物理形式OIDのオブジェクトをDBから活
性化する処理を行ない(1005)、この処理を終了す
る。
Dの形式が不正である」ことを示すエラー情報を設定し
(1006)、この処理を異常終了する。
に登録されているとき、すなわち、当該オブジェクトが
すでに活性化されているときは、その登録されている値
が示すオブジェクト状態管理テーブルのレコードを参照
し、APからの要求ロックモードが取得済みのロックモ
ードと一致するか判定する(1007)。
テーブルのレコードから代替排他の親IDを持つか判定
し(1008)、親IDを持つときは親IDに対して要
求ロックモードで排他制御部にロック要求する(100
9)。
ト自身のOIDに対して要求ロックモードで排他制御部
にロック要求する(1010)。
をオブジェクト状態管理テーブルのレコードに保持して
おく。
コードで項目「オブジェクト領域の先頭アドレス」の値
を返却値に設定し、この処理を終了する。
DBからの読み込み処理を示す。
該OIDが登録されているか判定し(1101)、登録
されていないときは、「オブジェクトがDBに存在しな
い」ことを示すエラー情報を返却値に設定し(110
2)、この処理を異常終了する。 次に、インデクスか
ら取得される値から、エリアID、タイプIDを取得
し、階層関連の上位のロックを要求する(1103)。
代替排他の親を持つか判定し(1104)、親を持つ場
合は、親のIDに対してAPからの要求ロックモードで
排他制御部にロック要求する(1105)。
身のOIDに対して、APからの要求ロックモードで排
他制御部にロック要求する(1106)。
納位置情報を取得し、それをもとに格納制御部に対して
オブジェクト実体の格納位置を指定し、DBのオブジェ
クトを取得してオブジェクトキャッシュ上にコピーする
(1107)。
ジェクト制御ヘッダに保持している自分自身のOID
と、当該処理で活性化を指定されたOIDとが一致する
かを判定する(1108)。ここでこの判定を行なうの
は、1101でOID−格納情報インデクスから格納情
報を取得した時点では、オブジェクトに対してロックが
取得されていないので、ロックを取得するまでの間に他
トランザクションにより当該オブジェクトが変更されて
いないか確認するためである。
トがDBに存在しない」ことを示すエラー情報を返却値
に設定し(1109)、この処理を異常終了する。
態管理テーブルに、当該オブジェクトを活性化した状態
の情報を登録し、OID−状態管理情報ハッシュに登録
する(1110)。
ドレスを設定し(1111)、この処理を終了する。
DBからの読み込み処理を示す。
イプIDについて、階層関連の上位のロックを要求する
(1201)。
情報をもとに、格納制御部に対してオブジェクト実体の
格納位置を指定し、DBのオブジェクトを取得してオブ
ジェクトキャッシュ上にコピーする(1202)。
ジェクト制御ヘッダに保持している自分自身のOID
と、当該処理で活性化を指定されたOIDとが一致する
かを判定する(1203)。
トがDBに存在しない」ことを示すエラー情報を返却値
に設定し(1204)、この処理を異常終了する。
し、オブジェクト領域の最後尾に代替排他の親IDを保
持しているかを判定する(1205)。
Pからの要求ロックモードで排他制御部へロック要求す
る(1206)。
ト自身のOIDに対して、APからの要求ロックモード
で排他制御部へロック要求する(1207)。
ェクトをDBからキャッシュ上にコピーする(120
8)。これは、1202でDBを参照したときにはオブ
ジェクトに対してロックが取得されていなかったので、
オブジェクトの内容が保証されないからである。
オブジェクト制御ヘッダに保持している自分自身のOI
Dと、当該処理で活性化を指定されたOIDとが一致す
るかを判定する(1209)。
トがDBに存在しない」ことを示すエラー情報を返却値
に設定し(1210)、この処理を異常終了する。
態管理テーブルに、当該オブジェクトを活性化した状態
の情報を登録し、OID−状態管理情報ハッシュに登録
する(1211)。
ドレスを設定し(1212)、この処理を終了する。
オブジェクトを活性化するときに、代替排他を行なうよ
うに指定されたオブジェクトについて、代替排他が実現
される。
処理の例を示す。
行する(1301)。
(1302)。
303)。このとき、活性化するオブジェクトのタイ
プ、OID、ロックモード(専有)を指定する。
新する(1304)。
MSに通知する(1305)。
は、オブジェクト状態管理テーブルのレコードの項目
「オブジェクト状態」に、更新されたことを示すフラグ
が設定される。
る(1306)。
し(1307)、APを終了する。
したようなトランザクションコミット処理により、DB
に反映される。
排他制御機構において排他の代替を行なうことが可能と
なり、複数の排他対象の施錠を1つの排他対象の施錠で
代替することができ、排他管理対象が削減され、効率の
よいDBシステムを実現することが可能である。
図である。
図である。
−チャ−トである。
ロ−チャ−トである。
ャ−トである。
ロ−チャ−トである。
フロ−チャ−トである。
−チャ−トである。
トである。
み込み処理を示すフロ−チャ−トである。
み込み処理を示すフロ−チャ−トである。
ロ−チャ−トである。
Claims (4)
- 【請求項1】複数のトランザクションを並行して実行す
るときにデータベースの一貫性を保証するための排他制
御機能を有するデータベース管理システムにおいて、排
他制御の対象となる複数の排他対象の間で、排他に関し
て従属的な関連をユーザが任意に関連付けられる手段を
持ち、該手段による関連で下位に位置付けられるオブジ
ェクトに施錠が必要となるユーザからの要求に対して、
データベース管理システムが該排他対象に対しては直接
施錠せずに、該排他対象の上位に位置付けられる排他対
象に対して施錠し、同一の上位の排他対象を持つ相異な
る複数の排他対象に対する施錠が、該上位の排他対象に
対する1つの施錠で代替されることを特徴とする排他制
御方法。 - 【請求項2】請求項1の排他制御方法において、該上位
に位置付けられる排他対象をユーザが任意に変更できる
ことを特徴とする排他制御方法。 - 【請求項3】請求項1の排他制御方法において、オブジ
ェクト指向データベースシステムで個々のオブジェクト
をシステム内で一意に識別するオブジェクト識別子か
ら、該オブジェクト識別子に対応するオブジェクトにつ
いて該他の代替で上位に位置する排他対象の識別子を参
照して、排他の代替を行うことを特徴とする排他制御方
法。 - 【請求項4】請求項1の排他制御方法において、オブジ
ェクト指向データベースシステムでデータベース内に格
納されているオブジェクトの実体の中に、該オブジェク
トについて排他の代替で上位に位置する排他対象をシス
テム内で一意に識別する識別子を保持させ、施錠の際に
該オブジェクトの実体の最後尾に保持した識別子を参照
して排他の代替を行うことを特徴とする排他制御方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30096895A JP3674117B2 (ja) | 1995-11-20 | 1995-11-20 | 排他制御方法およびそれを利用したデータ管理システム並びに記録媒体 |
| US08/746,904 US5890153A (en) | 1995-11-20 | 1996-11-19 | Database lock control method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP30096895A JP3674117B2 (ja) | 1995-11-20 | 1995-11-20 | 排他制御方法およびそれを利用したデータ管理システム並びに記録媒体 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH09146817A true JPH09146817A (ja) | 1997-06-06 |
| JP3674117B2 JP3674117B2 (ja) | 2005-07-20 |
Family
ID=17891250
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP30096895A Expired - Fee Related JP3674117B2 (ja) | 1995-11-20 | 1995-11-20 | 排他制御方法およびそれを利用したデータ管理システム並びに記録媒体 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5890153A (ja) |
| JP (1) | JP3674117B2 (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11282733A (ja) * | 1998-03-31 | 1999-10-15 | Nec Software Chugoku Ltd | データベースアクセス装置 |
| JP2000322418A (ja) * | 1999-05-07 | 2000-11-24 | Fujitsu Ltd | データベース装置 |
| US6493746B1 (en) | 1998-03-11 | 2002-12-10 | Nec Corporation | Multi-operator network management system and method using transaction processing |
| JP2012230598A (ja) * | 2011-04-27 | 2012-11-22 | Nec Corp | 資源管理システム、データ更新方法およびプログラム |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3733695B2 (ja) * | 1997-02-05 | 2006-01-11 | 富士ゼロックス株式会社 | データベース管理システム |
| US6105026A (en) * | 1997-07-03 | 2000-08-15 | Oracle Corporation | Multi-phase locking for partition maintenance operations |
| US5999976A (en) * | 1997-07-11 | 1999-12-07 | International Business Machines Corporation | Parallel file system and method with byte range API locking |
| US6941360B1 (en) * | 1999-02-25 | 2005-09-06 | Oracle International Corporation | Determining and registering participants in a distributed transaction in response to commencing participation in said distributed transaction |
| JP3535413B2 (ja) * | 1999-04-07 | 2004-06-07 | 新日鉄ソリューションズ株式会社 | データ処理装置、データ処理システム、データ処理方法、及び記録媒体 |
| JP3756352B2 (ja) * | 1999-06-29 | 2006-03-15 | 富士通株式会社 | コンパイラ装置およびコンパイラを記録したコンピュータ読み取り可能な記録媒体 |
| US6865549B1 (en) * | 1999-11-15 | 2005-03-08 | Sun Microsystems, Inc. | Method and apparatus for concurrency control in a policy-based management system |
| US6529905B1 (en) | 2000-01-11 | 2003-03-04 | Frontline Solutions, Inc. | Method and system for allowing multiple users to edit a hierarchical data structure |
| US7487152B1 (en) * | 2000-05-31 | 2009-02-03 | International Business Machines Corporation | Method for efficiently locking resources of a global data repository |
| US6892205B1 (en) | 2001-02-28 | 2005-05-10 | Oracle International Corporation | System and method for pre-compiling a source cursor into a target library cache |
| US7444335B1 (en) | 2001-02-28 | 2008-10-28 | Oracle International Corporation | System and method for providing cooperative resource groups for high availability applications |
| US7069317B1 (en) | 2001-02-28 | 2006-06-27 | Oracle International Corporation | System and method for providing out-of-band notification of service changes |
| US7058629B1 (en) * | 2001-02-28 | 2006-06-06 | Oracle International Corporation | System and method for detecting termination of an application instance using locks |
| US7246119B2 (en) * | 2002-03-08 | 2007-07-17 | Kabushiki Kaisha Toshiba | Method and implementation of session-based file locking for network applications |
| US8375113B2 (en) * | 2002-07-11 | 2013-02-12 | Oracle International Corporation | Employing wrapper profiles |
| US8495131B2 (en) * | 2002-10-08 | 2013-07-23 | International Business Machines Corporation | Method, system, and program for managing locks enabling access to a shared resource |
| US20040078360A1 (en) * | 2002-10-22 | 2004-04-22 | Defauw Randy | Data locking system and method for medical system architecture |
| US7409412B2 (en) | 2002-11-27 | 2008-08-05 | Sap Ag | Data element and structure for data processing |
| US7430569B2 (en) * | 2002-11-27 | 2008-09-30 | Sap Ag | Computerized replication of data objects |
| US7225302B2 (en) * | 2002-11-27 | 2007-05-29 | Sap Ag | Method and software application for avoiding data loss |
| US7464091B2 (en) * | 2002-11-27 | 2008-12-09 | Sap Ag | Method and software for processing data objects in business applications |
| US7289992B2 (en) * | 2003-05-01 | 2007-10-30 | International Business Machines Corporation | Method, system, and program for lock and transaction management |
| US7496574B2 (en) * | 2003-05-01 | 2009-02-24 | International Business Machines Corporation | Managing locks and transactions |
| US8745086B2 (en) * | 2008-12-05 | 2014-06-03 | New BIS Safe Luxco S.á.r.l. | Methods, apparatus and systems for data visualization and related applications |
| US8392388B2 (en) * | 2010-09-08 | 2013-03-05 | Sybase, Inc. | Adaptive locking of retained resources in a distributed database processing environment |
| US9460144B2 (en) * | 2012-01-13 | 2016-10-04 | Oracle International Corporation | Lock acceleration |
| US9141669B2 (en) * | 2013-01-22 | 2015-09-22 | Go Daddy Operating Company, LLC | Configuring an origin server content delivery using a pulled data list |
| US9336098B2 (en) * | 2014-03-19 | 2016-05-10 | Codership Oy | Method of synchronizing data |
| EP3964959A1 (en) * | 2020-09-03 | 2022-03-09 | ARM Limited | Data processing |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63159949A (ja) * | 1986-12-24 | 1988-07-02 | Hitachi Ltd | フアイルのアクセス方法 |
| JPH02206839A (ja) * | 1989-02-06 | 1990-08-16 | Hitachi Ltd | オブジェクト管理方法 |
| JPH0667946A (ja) * | 1992-08-17 | 1994-03-11 | Chugoku Nippon Denki Software Kk | 階層構造をもつデータベースにおける排他制御装置 |
| JPH076090A (ja) * | 1993-06-18 | 1995-01-10 | Hitachi Ltd | 階層化資源に対する排他制御方法 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5319780A (en) * | 1987-10-19 | 1994-06-07 | International Business Machines Corporation | System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued |
| US5414839A (en) * | 1992-06-19 | 1995-05-09 | Digital Equipment Corporation | Hybrid lock escalation and de-escalation protocols |
| US5392433A (en) * | 1992-09-25 | 1995-02-21 | International Business Machines Corporation | Method and apparatus for intraprocess locking of a shared resource in a computer system |
| US5485607A (en) * | 1993-02-05 | 1996-01-16 | Digital Equipment Corporation | Concurrency-control method and apparatus in a database management system utilizing key-valued locking |
| JP2703498B2 (ja) * | 1993-04-30 | 1998-01-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | バージョン化オブジェクトに対するロッキング機構 |
| WO1995004960A2 (en) * | 1993-08-02 | 1995-02-16 | Persistence Software, Inc. | Method and apparatus for managing relational data in an object cache |
| JPH07191898A (ja) * | 1993-12-27 | 1995-07-28 | Fujitsu Ltd | データベース排他制御装置 |
| US5742813A (en) * | 1994-11-10 | 1998-04-21 | Cadis, Inc. | Method and apparatus for concurrency in an object oriented database using lock inheritance based on class objects |
| US5680619A (en) * | 1995-04-03 | 1997-10-21 | Mfactory, Inc. | Hierarchical encapsulation of instantiated objects in a multimedia authoring system |
| US5737611A (en) * | 1996-04-05 | 1998-04-07 | Microsoft Corporation | Methods for dynamically escalating locks on a shared resource |
-
1995
- 1995-11-20 JP JP30096895A patent/JP3674117B2/ja not_active Expired - Fee Related
-
1996
- 1996-11-19 US US08/746,904 patent/US5890153A/en not_active Expired - Fee Related
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63159949A (ja) * | 1986-12-24 | 1988-07-02 | Hitachi Ltd | フアイルのアクセス方法 |
| JPH02206839A (ja) * | 1989-02-06 | 1990-08-16 | Hitachi Ltd | オブジェクト管理方法 |
| JPH0667946A (ja) * | 1992-08-17 | 1994-03-11 | Chugoku Nippon Denki Software Kk | 階層構造をもつデータベースにおける排他制御装置 |
| JPH076090A (ja) * | 1993-06-18 | 1995-01-10 | Hitachi Ltd | 階層化資源に対する排他制御方法 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6493746B1 (en) | 1998-03-11 | 2002-12-10 | Nec Corporation | Multi-operator network management system and method using transaction processing |
| JPH11282733A (ja) * | 1998-03-31 | 1999-10-15 | Nec Software Chugoku Ltd | データベースアクセス装置 |
| JP2000322418A (ja) * | 1999-05-07 | 2000-11-24 | Fujitsu Ltd | データベース装置 |
| JP2012230598A (ja) * | 2011-04-27 | 2012-11-22 | Nec Corp | 資源管理システム、データ更新方法およびプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| US5890153A (en) | 1999-03-30 |
| JP3674117B2 (ja) | 2005-07-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3674117B2 (ja) | 排他制御方法およびそれを利用したデータ管理システム並びに記録媒体 | |
| JP3848085B2 (ja) | トランザクションデータの高速記憶常駐処理方法および処理システム | |
| US8010497B2 (en) | Database management system with efficient version control | |
| JP2575543B2 (ja) | 同時アクセス管理方法 | |
| US8417742B2 (en) | Information processing apparatus and information processing method | |
| US5668958A (en) | Heterogeneous filing system with common API and reconciled file management rules | |
| US5430869A (en) | System and method for restructuring a B-Tree | |
| EP1540533B1 (en) | Controlling visibility in multi-version database systems | |
| US5276835A (en) | Non-blocking serialization for caching data in a shared cache | |
| EP0442715B1 (en) | Transaction processing system and method with reduced locking | |
| US7912821B2 (en) | Apparatus and method for data management | |
| CA2426606A1 (en) | Using buffer to facilitate log catchup for online operations | |
| US6968432B2 (en) | Method and system for altering a sequence number assignment pattern while preserving integrity and high concurrency in a multi-system shared disk environment | |
| JPH05225034A (ja) | オブジェクト指向データベースシステムにおけるオブジェクト管理方法 | |
| US8180745B2 (en) | Persistent object references to parallel database containers | |
| TW526415B (en) | System and method for persistent and robust storage allocation | |
| JPS62287359A (ja) | 疎結合マルチプロセツサシステムにおけるフアイル同時アクセス制御方式 | |
| JPH03123946A (ja) | データベースの排他制御方法 | |
| JPH06309203A (ja) | データベース処理システムの排他制御方法 | |
| Firstname | On the Cost of Lock Inheritance in Lock Managers Supporting Nested Transactions | |
| Firstname | Lock Inheritance in Nested Transactions | |
| JPH10133929A (ja) | データベース更新制御方式及びその方法 | |
| Strickland | VSAM record-level data sharing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040406 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040528 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050405 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050418 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080513 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090513 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100513 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110513 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110513 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120513 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120513 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130513 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130513 Year of fee payment: 8 |
|
| LAPS | Cancellation because of no payment of annual fees |