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

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

Info

Publication number
JPH1027122A
JPH1027122A JP8197009A JP19700996A JPH1027122A JP H1027122 A JPH1027122 A JP H1027122A JP 8197009 A JP8197009 A JP 8197009A JP 19700996 A JP19700996 A JP 19700996A JP H1027122 A JPH1027122 A JP H1027122A
Authority
JP
Japan
Prior art keywords
transaction
execution
data
priority
lock
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
JP8197009A
Other languages
English (en)
Inventor
Hirofumi Komatsubara
弘文 小松原
Hirohito Shibata
博仁 柴田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP8197009A priority Critical patent/JPH1027122A/ja
Publication of JPH1027122A publication Critical patent/JPH1027122A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 トランザクションを優先度に従って実行して
優先度の高いトランザクションだけでなく、多くのトラ
ンザクションに対しての応答時間をも短縮する。 【解決手段】 優先度算出部2aがトランザクションに
優先度を指定し、優先度の指定されたトランザクション
の中で最も優先度の高いものに対して実行トランザクシ
ョン決定部2bが実行権を与え、トランザクション実行
部4が実行する。ここで、新たに実行中のトランザクシ
ョンの優先度より高い優先度のトランザクションが実行
要求された場合には、実行権制御部2bが実行トランザ
クション決定部2bによって実行権を新たな実行要求が
あったトランザクションへ移転し、実行権を奪われたト
ランザクションを実行途中の状態で実行横取りトランザ
クション保持部3bが保持する。ここで、実行横取りト
ランザクション保持部3bのトランザクションがライト
・ロックを確保しているデータに対して、実行中のトラ
ンザクションがリード・ロックを要求した場合に、並行
制御管理部5がリード・ロックの確保を許容させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のトランザク
ションを並行して実行させる並行制御を行うデータベー
ス管理システムにおいて、優先度の与えられているトラ
ンザクションに対して並行制御を行うデータベース管理
システムに関する。
【0002】
【従来の技術】データベース管理システムは、複数のト
ランザクションを並行して実行するとともに、各トラン
ザクションで扱われているデータとデータベース内に格
納されたデータとの一貫性を保証するために、複数のト
ランザクションを並行して実行する実行方式とデータ一
貫性を保証する並行制御方式とを組み合わせて使用して
いる。複数のトランザクションを並行して実行する実行
方式としては、トランザクションの処理要求に対して計
算機等のシステム資源を分配するラウンド・ロビン方式
がある。また、実行順序にトランザクションの優先度を
考慮していないラウンド・ロビン方式に対して、優先度
に従った実行順序でトランザクションを実行可能にする
優先度に従ったCPU占有方式があり、この優先度に従
ったCPU占有方式では、優先度の高いトランザクショ
ンに対してCPUを占有させることで、優先度の高いト
ランザクションを早期に終了させている。
【0003】また、データ一貫性を保証する並行制御方
式としては、トランザクションがデータベースのデータ
にアクセスする際にロックを確保し、トランザクション
の終了時に当該ロックを解放する2相施錠方式があり、
例えば、読み込み操作をするためのリード・ロックと、
書き込み操作するためのライト・ロックとを有した2相
施錠方式では、一のトランザクションはロックを確保し
ているデータに対して、他のトランザクションがロック
を要求したときには、図17に示すロックの関係によっ
て制御を行っている。すなわち、一のトランザクション
が或るデータに対してリード・ロックを確保し、他のト
ランザクションが同一データに対してリード・ロックを
要求したときには、両ロックが確保できる共有関係とな
ることを許容し、その他のときには各ロックが同時に確
保される共有関係を許容しない。
【0004】また、他の並行制御方式としては、トラン
ザクションをコミット処理(正常終了時の処理)におい
てデータベースへデータを書き込む際に、当該トランザ
クションによるデータベースへのデータの書き込みが他
のトランザクションに衝突しているか否か、すなわち、
書き込み先となっているデータベースのデータを他のト
ランザクションが使用しているか否かをチェックして制
御する楽観的方式といわれるものもある。
【0005】上記したデータベース管理システムとし
て、Abbott,R.K. and Garcia-Molina,H.: Scheduling R
eal-Time Transactions: A Performance Evaluation, A
CM Tr-ans. Database Syst.,Vol.17,No.3,September 19
92,PP.513-560.(以下、文献1という。)には、CPU
占有方式と2相施錠方式とを行うデータベース管理シス
テムにおいて、既に優先度の低いトランザクションがロ
ックを確保しているデータに対して優先度の高いトラン
ザクションがロックを要求したために、優先度の高いト
ランザクションがロックを確保できずに実行が制限され
てしまう優先度逆転に対応するものが記載されている。
【0006】このデータベース管理システムでは優先度
逆転の対応策として、優先度の低いトランザクションの
優先度を優先度の高いトランザクションと同じ優先度ま
で引き上げて実行する優先度継承方式(2PL−WP方
式)及び優先度の低いトランザクションをアボート(無
効化)して優先度の高いトランザクションを実行するア
ボート再実行方式(2PL−HP方式)等を行ってい
る。
【0007】また、他のデータベース管理システムとし
て、Agrawal,D.,Abbadi,A.E.,Jeff-ers,R.and Lin,L.:O
rdered Shared Locks for Real-Time Databases,The VL
DBJournal,Vol.4,No.1,1995,pp.87-126(以下、文献2
という。)には、ラウンド・ロビン方式と2相施錠方式
とを使用したデータベース管理システムにおいて、ロッ
クが確保できない状況をすなわちロックの衝突を減少さ
せるOrdered Sharing Ruleを終了期限のあるトランザク
ションに対して適用するデータベース管理システムが記
載されている。
【0008】ここで、Ordered Sharing Ruleとは、同じ
データに対してロックを確保する場合には、ロックを確
保した順番でデータへの操作を行う規則(ロック確保と
操作実行規則)と、後からロックを確保したトランザク
ションは先にロックを確保したトランザクションがロッ
クを解除するまで解放できない規則(ロック解放の規
則)とに従って、ロックを確保する順番、操作順番、ロ
ックを解放する順番を設定することで従来のリード・ロ
ック及びライト・ロックを使用した2相施錠方式におい
て排他関係にあるロック同士を共有関係にさせる方式で
ある。
【0009】上記したデータベース管理システムでは、
終了期限のあるトランザクションがコミット待ちになっ
たときに、Ordered Sharing Ruleを満足する場合にはコ
ミットする一方、Ordered Sharing Ruleを満足しないま
ま当該トランザクションの終了期限に達する場合には、
他のOrdered Sharing Ruleの関係を持つトランザクショ
ンを全てアボートした後に、トランザクションをコミッ
トする。したがって、終了期限のあるトランザクション
が終了期限を超えることを防ぐことができる。
【0010】また、他のデータベース管理システムとし
て、Haritosa,J.R,Cary,M.J.andLinvy,M.,:Dynamic rea
l-time optimistics concurrency control,Proc.11thRe
al-Time Systems Symp,1990,pp.94-103.(以下、文献3
という。)には、ラウンド・ロビン方式と楽観的方式と
を使用するデータベース管理システムにおいて、終了期
限のあるトランザクションをコミットする際に優先度を
使用して判断する方式 (Wait-X方式)を行うデータベ
ース管理システムが記載されている。このWait-X方式で
は、トランザクションをコミットする際に、当該トラン
ザクションをコミットすると影響があるトランザクショ
ンの中で、コミット対象のトランザクションより優先度
の高いトランザクションの占める割合が規定値(X%)
より低い場合には、コミット対象のトランザクションを
コミットするとともに、影響のある全てのトランザクシ
ョンをアボートする。一方、規定値(X%)以上の場合
には、規定値より低くなってからコミットし、規定値よ
り低くなる前にトランザクションの期限に達したときに
は、当該トランザクションをコミットするとともに影響
のある全てのトランザクションをアボートする、或いは
当該トランザクションをアボートする。
【0011】
【発明が解決しようとする課題】終了期限が指定された
トランザクションや、実行する優先度が指定されたトラ
ンザクションを実行するデータベース管理システムにお
いては、優先度の高いトランザクションが終了するまで
にかかる応答時間を短縮すること、更に、優先度の低い
トランザクションに対しても応答時間を短縮することが
要求されている。このため、前者を満たすためには優先
度に従って実行することが必要であり、後者については
できるだけトランザクションがアボートされる状況、す
なわち計算機資源を無駄にしてしまう状況を防ぐことが
必要である。
【0012】しかしながら、従来の文献1に記載された
データベース管理システムでは、優先度逆転が発生した
場合において、優先度の高いトランザクションの応答時
間を短縮することについては考慮されているが、優先度
の低いトランザクションに対する応答時間をも短縮する
ことについては考慮されていなかった。また、文献2に
記載されたデータベース管理システムでは、ロックの衝
突を減少させることによって、トランザクションをアボ
ートする状況を減らし、多くのトランザクションに対し
ての応答時間を短縮することができるが、実行順序が規
定されているために優先度に従ってトランザクションを
実行することができなかった。
【0013】また、文献3に記載されたデータベース管
理システムでは、アボートさせる優先度の高いトランザ
クションの数を一定の割合以下に減らすことによって、
トランザクションをアボートさせることにより生じる計
算機資源の消費の無駄をできるだけ減らし、多くのトラ
ンザクションに対する応答時間を短縮することが実現で
きるが、優先度に従ってトランザクションを実行するこ
とについては考慮されていなかった。
【0014】本発明は上記した従来の事情を鑑みなされ
たもので、トランザクションを優先度に従って実行して
優先度の高いトランザクションの応答時間を短縮すると
ともに、計算機資源の消費の無駄を減らして多くのトラ
ンザクションに対しての応答時間をも短縮することがで
きるデータベース管理システムを提供することを目的と
している。
【0015】
【課題を解決するための手段】上記目的を達成するため
に本発明は、トランザクションの優先度に従ったCPU
占有方式では、高優先度のトランザクションと低優先度
のトランザクションとを実行する場合には、高優先度の
トランザクションを先に終了させることができることに
着目してなされたもので、リード・ロックとライト・ロ
ックとを使用する2相施錠方式において、低優先度のト
ランザクションが確保しているライト・ロックに対して
高優先度のトランザクションによるリード・ロックを確
保させて共有させても、低優先度のトランザクションが
データベースにデータを書き込むまでに高優先度のトラ
ンザクションが終了するので、優先度に従ってトランザ
クションを実行することができるとともにデータベース
のデータの一貫性を保つことができ、更に、低優先度の
トランザクションをアボートさせることなく実行を再開
できるため計算機資源の消費の無駄を防ぐことができ
る。
【0016】また、本発明は期限を指定されたトランザ
クションの中には、例えば或る商品の大まかな在庫数を
所定の期間までにデータベースから読み出して把握する
等といったデータベースとトランザクションで扱ってい
るデータの一貫性が多少緩和しても期限内に終了するこ
とが望ましい読み出し操作を行うトランザクションもあ
るが、従来のデータベース管理システムでは、前記した
トランザクションに対してまでも常に一貫性を保証して
実行していたことに着目しなされたもので、一貫性の緩
和を許す読み込みを操作を行うトランザクションが扱っ
ているデータベースのデータへ書き込みを行うトランザ
クションがある場合には、各トランザクションをアボー
トさせずに引き続き実行する。
【0017】本発明の請求項1に係るデータベース管理
システムは、データベースのデータに対してロックを確
保したトランザクションが当該データへロックに応じた
操作を行うことを許容し、前記ロックの確保を制御する
ことによって複数のトランザクションを並行して実行さ
せる2相施錠方式を使用したデータベース管理システム
において、前記ロックにはデータからの読み込み操作す
るためのリード・ロックとデータへの書き込み操作する
ためのライト・ロックとを有し、実行要求があったトラ
ンザクションの優先度を指定する優先度算出部と、優先
度を指定されたトランザクションの中で最も高い優先度
のトランザクションに実行権を与える実行トランザクシ
ョン決定部と、実行権を与えられたトランザクションを
実行するトランザクション実行部と、新たに実行要求が
あったトランザクションの優先度が既に実行権を与えら
れて実行されているトランザクションの優先度より高い
場合には実行トランザクション決定部により前記実行権
を新たな実行要求があったトランザクションへ移転させ
る実行権制御部と、新たに実行要求があったトランザク
ションに実行権を奪われたトランザクションを実行途中
の状態で保持する実行横取りトランザクション保持部
と、実行横取りトランザクション保持部に保持されてい
るトランザクションがライト・ロックを確保しているデ
ータに対して、トランザクション実行部で実行中のトラ
ンザクションによるリード・ロックの確保を許容させる
並行制御管理部と、を備えたことを特徴とする。
【0018】上記した請求項1に係るデータベース管理
システムでは、実行要求のあったトランザクションに優
先度算出部が優先度を指定し、優先度の指定されたトラ
ンザクションの中で最も優先度の高いトランザクション
に対して実行トランザクション決定部が実行権を与え、
実行権を与えられたトランザクションをトランザクショ
ン実行部が実行する。ここで、新たに実行要求があった
トランザクションの優先度が実行中のトランザクション
の優先度より高い場合には、実行権制御部が実行トラン
ザクション決定部によって実行権を新たな実行要求があ
ったトランザクションへ移転し、実行権を奪われたトラ
ンザクションを実行途中の状態で実行横取りトランザク
ション保持部が保持する。
【0019】この結果、実行横取りトランザクション保
持部に保持されているトランザクションがライト・ロッ
クを確保しているデータに対して、トランザクション実
行部によって実行されているトランザクションがリード
・ロックを要求する状況が生じる。この状況に対して、
並行制御部がトランザクション実行部で実行しているト
ランザクションに対してリード・ロックの確保を許容さ
せる。このため、トランザクション実行部で実行されて
いる当該トランザクションは引き続き実行され、実行横
取りトランザクション保持部に保持されているトランザ
クションはトランザクション実行部で実行されているト
ランザクションが終了した後に実行途中の状態から引き
続き実行されることとなる。
【0020】本発明の請求項2に係るデータベース管理
システムは、データベースのデータに対してロックを確
保したトランザクションが当該データへロックに応じた
操作を行うことを許容し、前記ロックの確保を制御する
ことによって複数のトランザクションを並行して実行さ
せる2相施錠方式を使用したデータベース管理システム
において、前記ロックには、データへ書き込み操作する
ためのライト・ロックとデータから読み込み操作するた
めのリード・ライト・ロックとを有し、実行要求があっ
たトランザクションの優先度を指定する優先度算出部
と、優先度を指定されたトランザクションの中で最も高
い優先度のトランザクションに実行権を与える実行トラ
ンザクション決定部と、実行権を与えられたトランザク
ションを実行するトランザクション実行部と、新たに実
行要求があったトランザクションの優先度が既に実行権
を与えられて実行されているトランザクションの優先度
より高い場合には実行トランザクション決定部により前
記実行権を新たな実行要求があったトランザクションへ
移転させる実行権制御部と、新たに実行要求があったト
ランザクションに実行権を奪われたトランザクションを
実行途中の状態で保持する実行横取りトランザクション
保持部と、実行横取りトランザクション保持部に保持さ
れているトランザクションがリード・ライト・ロックを
確保しているデータに対して、トランザクション実行部
で実行中のトランザクションによるライト・ロックの確
保を許容させる並行制御管理部と、を備えたことを特徴
とする。
【0021】上記した請求項2に係るデータベース管理
システムでは、新たに実行要求があったトランザクショ
ンの優先度が実行中のトランザクションの優先度より高
い場合には、実行権制御部が実行トランザクション決定
部によって実行権を新たな実行要求があったトランザク
ションへ移転し、実行権を奪われたトランザクションを
実行途中の状態で実行横取りトランザクション保持部が
保持する。
【0022】この結果、実行横取りトランザクション保
持部に保持されているトランザクションがリード・ライ
ト・ロックを確保しているデータに対して、トランザク
ション実行部によって実行されているトランザクション
がライト・ロックを要求する状況が生じる。この状況に
対して、並行制御部がトランザクション実行部で実行し
ているトランザクションに対してライト・ロックの確保
を許容させる。このため、トランザクション実行部で実
行されているトランザクションは引き続き実行され、実
行横取りトランザクション保持部に保持されているトラ
ンザクションはトランザクション実行部で実行されてい
るトランザクションが終了した後に実行途中の状態から
引き続き実行されることとなる。
【0023】本発明の請求項3に係るデータベース管理
システムは、請求項2に記載したデータベース管理シス
テムにおいて、リード・ライト・ロックを確保している
トランザクションが読み込んだデータとデータベース内
のデータとの不一致を判定する緩和判定部を更に備えた
ことを特徴とする。上記した請求項3に係るデータベー
ス管理システムでは、緩和判定部によって一のトランザ
クションがリード・ライト・ロックを確保しているデー
タに対して他のトランザクションがライト・ロックを確
保して実行されたために、一のトランザクションの読み
込んでいるデータと、データベースのデータとが不一致
になったことを判定する。
【0024】本発明の請求項4に係るデータベース管理
システムは、トランザクションがデータベースのデータ
に対して処理内容を指定して処理を行い、トランザクシ
ョンがデータベースのデータへ書き込む際に、当該デー
タに対する他のトランザクションの処理内容指定に基づ
いて制御することによってトランザクションを並行して
実行する楽観的方式を使用したデータベース管理システ
ムにおいて、前記処理内容指定には、データベースのデ
ータを読み込み操作を指定するリード・ライト指定と、
データベースのデータへ書き込み操作を指定するライト
指定とを使用し、実行要求があったトランザクションの
優先度を指定する優先度算出部と、優先度を指定された
トランザクションに対して優先度の高い順に実行権を与
える実行トランザクション決定部と、実行権を与えられ
たトランザクションを実行するトランザクション実行部
と、新たに実行要求があったトランザクションの優先度
が既に実行権を与えられて実行されているトランザクシ
ョンの優先度より高い場合には実行トランザクション決
定部により前記実行権を新たな実行要求があったトラン
ザクションへ移転させる実行権制御部と、新たに実行要
求があったトランザクションに実行権を奪われたトラン
ザクションを実行途中の状態で保持する実行横取りトラ
ンザクション保持部と、実行中のライト指定を行ったト
ランザクションがデータベースのデータへ書き込む際
に、当該データに対してリード・ライト指定しているト
ランザクションを実行横取りトランザクション保持部が
保持することを許容させる並行制御管理部と、を備えた
ことを特徴とする。
【0025】上記した請求項4に係るデータベース管理
システムでは、新たに実行要求があったトランザクショ
ンの優先度が実行中のトランザクションの優先度より高
い場合には、実行権制御部が実行トランザクション決定
部によって実行権を新たな実行要求があったトランザク
ションへ移転し、実行権を奪われたトランザクションを
実行途中の状態で実行横取りトランザクション保持部が
保持する。
【0026】この結果、トランザクション実行部で実行
されているライト指定を行ったトランザクションがデー
タベースのデータに書き込む際に、書き込み対象のデー
タに対して実行横取りトランザクション保持部に保持さ
れている他のトランザクションがリード・ライト指定を
行っている状況が生じる。この状況に対して、トランザ
クション実行部で実行されているトランザクションによ
るデータベースのデータへの書き込みを行わせるととも
に、実行横取りトランザクション保持部に保持されてい
るトランザクションをそのまま実行横取りトランザクシ
ョン保持部に保持させておく。このため、トランザクシ
ョン実行部で実行されているトランザクションは実行が
終了でき、実行横取りトランザクション保持部に保持さ
れているトランザクションはトランザクション実行部で
実行されているトランザクションが終了した後に実行途
中の状態から引き続き実行されることとなる。
【0027】本発明の請求項5に係るデータベース管理
システムは、請求項4に記載したデータベース管理シス
テムにおいて、リード・ライト指定を行っているトラン
ザクションが読み込んだデータとデータベース内のデー
タとの不一致を判定する緩和判定部を更に備えたことを
特徴とする。上記した請求項5に係るデータベース管理
システムでは、緩和判定部によって一のトランザクショ
ンがリード・ライト指定を行っているデータベースのデ
ータに対して、ライト指定を行った他のトランザクショ
ンがデータベースに書き込みを行ったために、一のトラ
ンザクションが読み込んだデータと、データベースのデ
ータとが不一致となっていることを判定する。
【0028】
【発明の実施の形態】本発明の第1実施例に係るデータ
ベース管理システムを図1を参照して説明する。このデ
ータベース管理システムは、トランザクションの処理要
求を受け付けるトランザクション処理要求受け付け部1
と、トランザクションの実行順序を管理するトランザク
ション実行管理部2と、トランザクションを保持するト
ランザクション保持部3と、トランザクションを実行す
るトランザクション実行部4と、複数のトランザクショ
ンを2相施錠方式で並行制御する並行制御管理部5と、
並行制御において発生する優先度逆転に対応する優先度
逆転対応部6と、データベースのデータを格納する二次
記憶装置7と、二次記憶装置7とトランザクション実行
部4とのデータの変換を行う永続データ操作部8と、ト
ランザクションが操作しているデータとデータベースの
データとの一貫性の緩和を検出する緩和判定部9とを備
えている。
【0029】なお、本実施例のデータベース管理システ
ムでは、図2に示すように、トランザクションを後述す
るトランザクションに関する情報を関係付けたトランザ
クションオブジェクトとして、また、データベースのデ
ータを管理するために後述するデータに関する情報を関
係付けたデータオブジェクトとして扱っている。
【0030】トランザクションに関する情報は、リード
・ロックを確保したデータへの識別子等の参照情報を表
すrlocked-dataと、ライト・ロックを確保したデータへ
の参照情報を表すwlocked-dataと、リード・ライト・ロ
ックを確保したデータへの参照情報を表すrwlocked-dat
aと、ロック待ちになっているデータへの参照情報を表
すpending-dataと、リード・ライト・ロックを確保した
データの中で他のトランザクションにライト・ロックを
確保されたデータへの参照情報を表すinconsistent-dat
aと、ライト・ロックを確保したデータの中で既に他の
トランザクションにリード・ライト・ロックを確保され
ているデータの参照情報を表すread-write-dataと、当
該トランザクションがライト・ロックを確保したために
一貫性を緩められたリード・ライト・ロックを確保して
いるトランザクションへの参照情報を表すinconsistent
-trと、当該トランザクションがリード・ライト・ロッ
クを確保しているデータに対してライト・ロックを確保
したトランザクションへの参照情報を表すread-write-t
rと、トランザクションのデータベース管理システムで
の優先度を保持するpriorityと、優先度承継を行った場
合に承継前の優先度を保持するsave-priorityと、当該
トランザクションにおいて一貫性が緩められたデータ数
を保持するinconsistent-countと、ユーザに指定された
実行優先度情報を表すpri-infoと、を有している。
【0031】データに関する情報は、当該データに対し
てリード・ロックを確保しているトランザクションへの
参照情報を表すrlocking-transactionsと、当該データ
に対してライト・ロックを確保しているトランザクショ
ンへの参照情報を表す wlocking-transactionと、当該
データに対してリード・ライト・ロックを確保している
トランザクションへの参照情報を表すrwlocking-transa
ctionsと、ロック待ちとなっているトランザクションへ
の参照情報を表すpending-transactionsと、を有してい
る。
【0032】トランザクション処理要求受け付け部1
は、アプリケーション・プログラムからデータベース管
理システムが管理しているデータベースのデータへ操作
を行うトランザクションの実行要求を受け付けて保持す
る。
【0033】トランザクション実行管理部2は、優先度
算出部2aと、実行トランザクション決定部及び実行権
制御部としての実行トランザクション決定部2bと、を
備え、システムにより起動される。優先度算出部2a
は、トランザクション処理要求受け付け部1に保持され
ているトランザクションに対して、ユーザから指定され
たトランザクションのpri-infoに所定の優先度算出関数
を適用して優先度を算出し、算出した優先度をトランザ
クションのpriorityに設定し、当該トランザクションを
トランザクション保持部3に渡す。実行トランザクショ
ン決定部2bは、トランザクションに設定されているpr
iorityに基づいて、トランザクション保持部3に保持さ
れているトランザクションの中で最も優先度の高いトラ
ンザクションへ実行権を与える。なお、本実施例では、
優先度が同じトランザクションが複数ある場合には、処
理要求の発生した順に実行権を与える。
【0034】トランザクション保持部3は、実行待ちト
ランザクション保持部3aと、実行横取りトランザクシ
ョン保持部3bと、実行トランザクション保持部3c
と、を備えている。実行待ちトランザクション保持部3
aは、優先度が算出されて実行待ち状態にあるトランザ
クションを保持する。実行横取りトランザクション保持
部3bは、実行権が与えられてトランザクション実行部
4で実行されたものの、新たに処理要求のあった当該ト
ランザクションより優先度の高いトランザクションに実
行権を奪われたトランザクションを保持する。なお、実
行横取りトランザクション保持部3bに保持されている
トランザクションは、実行中に使用したデータに対する
ロックを確保したままの実行途中の状態となっている。
実行トランザクション保持部3cは、トランザクション
決定部2bによって実行権が与えられたトランザクショ
ンを保持する。
【0035】トランザクション実行部4は、実行トラン
ザクション決定部2bによって実行権が与えられて実行
トランザクション保持部3cに格納されているトランザ
クションを実行する。なお、当該トランザクションがデ
ータベースのデータに対してロックを確保した場合に
は、後述する永続データ操作部8を用いて、ロックを確
保したデータベースのデータを当該トランザクションが
使用可能なメモリ領域(図示せず)にデータベースのデ
ータを読み出し、操作可能な構造に変換して、当該変換
データに対して操作を行う。並行制御管理部5は、読み
込み操作するためのリード・ロックと、書き込み操作す
るためのライト・ロックと、データベースのデータとト
ランザクションが操作している変換データとの一貫性の
緩和を許容する読み込み操作をするためのリード・ライ
ト・ロックとを使用して、データベースのデータに対し
てロックを確保したトランザクションが当該データへロ
ックに応じた操作を行うことを許容し、前記ロックの確
保を制御している。
【0036】すなわち、並行制御管理部5は、トランザ
クション実行部4において実行されている一のトランザ
クションから或るデータに対してのロックの要求を受け
取ると、ロックを要求されたデータのrlocking-transac
tionsと、wlocking-transactionと、rwlocking-transac
tionsとに基づいて、当該データに対してロックを確保
しているトランザクションを検出し、ロックを確保して
いるトランザクションが検出されなかった場合には要求
のあったトランザクションにロックを確保させる。一
方、ロックを確保しているトランザクションを検出した
場合には、要求しているロックと確保されているロック
とに応じて図3(a)に示す対応を行う。例えば、ライ
ト・ロックが確保されているデータに対してリード・ロ
ックの確保を許容し、また、リード・ライト・ロックが
確保されているデータに対してライト・ロックの確保を
許容させる等を行う。なお、トランザクションが行うロ
ックの要求は、トランザクションに予めプログラマが設
定したロック要求に基づいて行われており、ロック要求
には、リード・ロック要求、リード・ライト・ロック要
求、ライト・ロック要求があり、処理に応じたロック要
求を選択して設定することができる。特に、データベー
スのデータに対して読み込み処理を行う場合において
は、トランザクションの一貫性を重視するか否かによっ
て、リード・ロック要求とリード・ライト・ロック要求
とを選択することができる。
【0037】優先度逆転対応部6は、並行制御管理部5
によってトランザクションがロックの確保を許容されな
かった場合に、高い優先度のトランザクションの実行を
優先する2PL−HP方式を用いて、優先度の高いトラ
ンザクションを優先度の低いトランザクションより先に
終了可能にしている。すなわち、優先度逆転対応部6
は、ロックを確保しているトランザクションをアボート
処理して実行横取りトランザクション保持部3bから実
行待ちトランザクション保持部3aに移動し、ロックを
要求していたトランザクションによるロックの確保を可
能にして、当該トランザクションを継続して実行させ
る。なお、優先度に従って実行権を与えて実行している
ために、ロックを確保しているトランザクションはロッ
クを要求しているトランザクションより優先度が低くな
っている。
【0038】二次記憶装置7は、読み出し書き込み自在
な記憶装置であり、データベースのデータを格納してい
る。永続データ操作部8は、トランザクション実行部4
によって実行されているトランザクションと二次記憶装
置7に格納されているデータベースとのデータの受け渡
しを行う。緩和判定部9は、一のトランザクションがリ
ード・ライト・ロックを確保しているデータベースのデ
ータに対して他のトランザクションがリード・ロックを
要求して確保したために、一のトランザクションが操作
している変換データとデータベースのデータとが異なっ
てしまう一貫性の緩和の状態を検出する。
【0039】次に、本発明の第一実施例に係るデータベ
ース管理システムの動作を説明する。トランザクション
要求受け付け部1がトランザクションの実行要求を受け
取ると、優先度算出部2aが当該トランザクションに対
する優先度を算出し、当該トランザクションを実行待ち
トランザクション保持部3aが実行トランザクション決
定部2bによって実行権が与えられるまで保持する。
【0040】実行権は実行トランザクション決定部2b
が図4及び図5に示す動作を行うことによって与えられ
る。まず、実行トランザクション決定部2bはトランザ
クション実行部4が実行しているトランザクションがあ
るか否かを検出する(ステップS1)。
【0041】トランザクション実行部4がトランザクシ
ョンを実行していない場合には、実行待ちトランザクシ
ョン処理保持部3aにトランザクションがあるか否か
(ステップS2)、更に、実行横取りトランザクション
保持部3bにトランザクションがあるか否かを検出する
(ステップS3、S4)。実行待ちトランザクション保
持部3a、実行横取りトランザクション保持部3bの両
方にトランザクションが保持されていると検出した場合
には、実行待ちトランザクション保持部3aに保持され
ているトランザクションの中で最も優先度の高いトラン
ザクションtr2と、中断処理保持部8に保持されてい
るトランザクションのうちで最も優先度の高いトランザ
クションtr3との優先度を比較し(ステップS5)、
優先度の高い方のトランザクションに実行権を与える
(ステップS6、S7)。
【0042】一方、実行待ちトランザクション保持部3
a、実行横取りトランザクション保持部3bのいずれか
一方のみにトランザクションが保持されていると検出し
た場合には、実行待ちトランザクション保持部5或いは
実行横取りトランザクション保持部3bに保持されてい
るトランザクションの中で最も優先度の高いトランザク
ションに実行権を与える(ステップS6、S7)。な
お、実行待ちトランザクション保持部3a、実行横取り
トランザクション保持部3bの両方にトランザクション
が保持されていないと検出した場合には、実行するトラ
ンザクションが存在しないので実行権を与えない。
【0043】一方、トランザクション実行部4がトラン
ザクションを実行している場合には、実行待ちトランザ
クション保持部3aにトランザクションが保持されてい
るか否かを検出する(ステップS8)。実行待ちトラン
ザクション保持部3aにトランザクションが保持されて
いると検出した場合には、実行中のトランザクションt
r1の優先度と、実行待ちトランザクション保持部3a
に保持されたトランザクションの中で最も優先度の高い
トランザクションtr2の優先度とを比較し(ステップ
S9)、実行待ちトランザクション保持部5に保持され
たトランザクションtr2の優先度が実行中のトランザ
クションtr1の優先度より高かった場合には、実行中
のトランザクションtr1を実行途中の状態で実行横取
りトランザクション保持部3bに保持させ(ステップS
10)、実行待ちトランザクション保持部3aに保持さ
れたトランザクションtr2に実行権を与える(ステッ
プS11)。
【0044】一方、実行待ちトランザクション処理保持
部3aにトランザクションが保持されていないと検出し
た場合或いは実行待ちトランザクション保持部3aに保
持されたトランザクションtr2より実行中のトランザ
クションtr1の優先度が高いと検出した場合には、実
行中のトランザクションtr1に実行権を継続して与え
る(ステップS12)。
【0045】実行権が与えられたトランザクションは、
実行トランザクション保持部3cに保持され、トランザ
クション実行部4によって図6に示すように実行され
る。まず、トランザクションによる操作がデータベース
のデータに対しての読み出し或いは書き込みであるかを
検出し(ステップS13)、データベースのデータに対
しての読み出し或いは書き込みである場合には、既にデ
ータに対するロックを確保しているか否かを検出する
(ステップS14)。ロックが確保されていない場合に
は、トランザクション実行部4が並行制御管理部5にロ
ックを要求する。
【0046】ロックの要求を受け取った並行制御管理部
5は、当該データに対してロックの確保を許容させるか
否かを検出し(ステップS15)、他のトランザクショ
ンが確保しているロックのためにロックの確保を許容で
きない場合には、優先度逆転管理部6がロックを確保し
ているトランザクションをアボート処理して実行横取り
トランザクション保持部3bから実行待ちトランザクシ
ョン保持部3aに移動し、ロックを要求していたトラン
ザクションにロックの確保を許容させる(ステップS1
6)。ロックの確保が許容される場合には、並行制御管
理部5がロックを要求したトランザクションとロックを
要求されたデータそれぞれに参照情報を設定して、ロッ
クを確保する(ステップS17)。
【0047】上記したロックの確保を行うステップS1
5〜S17を、トランザクションT2Hがライト・ロッ
クを要求する場合を例に取り、図7を参照して説明す
る。並行制御管理部5がトランザクションT2Hからデ
ータAに対するライト・ロックの要求を受け取ると、他
のトランザクションによってデータAがロックを確保さ
れていないか、或いはリード・ライト・ロックのみで確
保されているかを検出する(ステップS22)。
【0048】上記した検出がされない場合には、トラン
ザクションT2HがデータAのロックを確保できない優
先度逆転が生じているために、優先度逆転対応部6を起
動して、トランザクションT2HによるデータAに対す
るロックの確保を拒むロックを確保しているトランザク
ションをアボート処理し(ステップS23)、トランザ
クションT2Hがロックの確保を許容されるまで繰り返
す(ステップS22,S23)。
【0049】一方、検出された場合には、トランザクシ
ョンT2HがデータAに対するロックの確保が許容さ
れ、次いで、並行制御管理部5がデータAのrwlocking-
transactionsの中の全てのトランザクションに対して以
下に示す一貫性の緩和に伴う処理を行う(ステップS2
4)。なお、一貫性の緩和が許容されるトランザクショ
ンは、読み込み操作をするトランザクションであり、デ
ータベースのデータに対して書き込む操作をすることは
ないので、他のトランザクションとデータベースのデー
タとの一貫性を緩和させることはない。
【0050】上記したrwlocking-transactionsの要素を
T1Lとして以下に説明をする。並行制御管理部5が当
該トランザクションT1Lのinconsistent-dataにデー
タAへの参照情報が設定されているか否かを検出し(ス
テップS25)、参照情報が無い場合には、当該トラン
ザクションのinconsistent-dataにデータAへの参照情
報を、read-write-trにトランザクションT2Hへの参
照情報を設定し、inconsistent-countに”1”を加算す
る(ステップS26)。次いで、並行制御管理部5はト
ランザクションT2Hのread-write-dataにデータAへ
の参照情報、inconsistent-trにトランザクションT1
Lへの参照情報を設定する(ステップS27)。一方、
トランザクションT1Lのinconsistent-dataにデータ
Aへの参照情報が設定されている場合には、何も行わな
い。
【0051】データAのrwlocking-transactionsの中の
全てのトランザクションに対して一貫性の緩和に伴う処
理を終えた場合は、トランザクションT2Hのwlocked-
dataにデータAへの参照情報を、データAのwlocking-t
ransactionにトランザクションT2Hへの参照情報を設
定し、これによってトランザクションT2Hによるデー
タAへのライト・ロックが確保されることとなる(ステ
ップS28)。
【0052】上記したようにロックの確保が行われる
と、ロックが確保されたデータは読み出され、トランザ
クションが使用可能なメモリ領域に操作可能なデータ構
造に変換され、トランザクション実行部4によって前記
変換データに対するトランザクションが実行される(ス
テップS18)。変換データを使用して実行がされた
後、或いは、トランザクションの操作がデータに対して
読み出し書き込み操作以外の操作を行った後(ステップ
S19)、にトランザクション実行部4によってトラン
ザクションが終了したか否かが検知され(ステップS2
0)、トランザクションが終了するまで上記した処理
(ステップS13〜S18)を繰り返す。
【0053】トランザクションが終了した場合にはコミ
ット処理を行う。当該コミット処理では確保したロック
の解放が行われ、トランザクションがデータベースへの
書き込み操作を行う場合には、トランザクションが操作
した変換データをデータベースのデータに反映させた後
にロックの解放が行われる(ステップS21)。
【0054】例えば、上記したコミット処理をデータベ
ースへの書き込み操作を行うトランザクションT3Hが
ロックを解放する場合には、図8に示す動作が行われ
る。まず、トランザクション実行部4はトランザクショ
ンT3Hのwlocked-dataに設定されているデータへトラ
ンザクションT3Hが操作した変換データを書き込む指
示を行い、当該指示に従って永続データ操作部8が二次
記憶装置7内のデータベースのデータへ書き込む(ステ
ップS29)。
【0055】次いで、並行制御管理部5はトランザクシ
ョンのread-write-trに参照情報が設定されている場合
には、設定されているトランザクションのinconsistent
-trからトランザクションT3Hへの参照情報を削除す
る(ステップS30)。更に、並列制御管理部5は、ト
ランザクションT3Hのwlocked-data、rlocked-data、
rwlocked-dataに設定されているデータからトランザク
ションT3Hへの参照情報を削除するとともに、当該ト
ランザクションT3Hのwlocked-data、rlocked-data、
rwlocked-dataに設定されているデータへの参照情報を
削除し(ステップS31)、トランザクションT3Hを
削除する(ステップS32)。
【0056】次に、トランザクションの実行中に優先度
逆転が生じてトランザクションT5Hをアボートする処
理を図9を参照して説明する。並行制御管理部5は、ア
ボートするトランザクションT5Hのinconsistent-tr
に設定されているトランザクションがあるか否かを検出
する(ステップS33)。
【0057】設定されているトランザクションT4Lが
ある場合には、トランザクションT5Hのinconsistent
-trからトランザクションT4Lへの参照情報を削除し
(ステップS34)、当該トランザクションT4Lを参
照して当該トランザクションT4Lのread-write-trか
らトランザクションT5Hへの参照情報を削除し、トラ
ンザクションT4Lのinconsistent-dataとトランザク
ションT5Hのread-write-dataとの共通するデータへ
の参照情報をトランザクションT4Lのinconsistent-d
ataから削除し、削除したデータの参照情報の数をトラ
ンザクションT4Lのinconsistent-countから減算する
(ステップS35)。なお、トランザクションT5Hの
inconsistent-trにトランザクションへの参照情報がな
くなるまで上記処理が行われる(ステップS33〜S3
5)。
【0058】そして、トランザクションT5Hのincons
istent-trに設定されている参照情報がない場合、或い
は、上記処理によってトランザクションT5Hのincons
istent-trに設定されている参照情報がなくなった場合
には、並行制御管理部5がトランザクションのrlocked-
data、wlocked-data、rwlocked-data、に設定されてい
るデータからトランザクションT5Hへの参照情報を削
除する(ステップS36)。
【0059】次に、一貫性の緩和を許容するトランザク
ションにデータの一貫性緩和が生じているか否かを検出
する動作を図10を参照して説明する。本実施例では、
一貫性の緩和は一のトランザクションが優先度の高いト
ランザクションに実行権を奪われた際に起こる可能性が
あるために、一のトランザクションが実行トランザクシ
ョン決定部2bにより実行権を与えられ、トランザクシ
ョン実行部4によって実行再開される際に検出動作を行
っている。
【0060】緩和判定部9は、実行再開されるトランザ
クションのinconsistent-countが0より大きいか否かを
検出し(ステップS37)、0より大きい場合には一貫
性の緩和が生じていることを表しており、この場合には
トランザクションのinconsistent-dataで参照している
データに対して一貫性の緩和状態を示すinconsistent-m
em-flgを”1”に設定する(ステップS38)。したが
って、アプリケーション・プログラムはデータのincons
istent-mem-flgをチェックすることで一貫性の緩和の発
生を認識することができる。なお、トランザクションの
inconsistent-countが0以下の場合には一貫性の緩和が
生じていないため動作を行わない。なお、inconsistent
-mem-flgは、トランザクションがデータベース中からメ
モり中に読み込んだ際にデータ毎にデータを管理する情
報として付加されるものである。
【0061】次に、従来の2相施錠方式を使用した2P
L−HP方式のデータベース管理システムと、上記して
説明した本発明の第一実施例に係るデータベース管理シ
ステムとを比較して説明する。まず、データベースへの
書き込み操作を行うトランザクションT1Lを実行して
いる際に、実行しているトランザクションより優先度の
高い読み込み操作を行うトランザクションT2Hの実行
要求があった場合を例に取って説明する。従来の2相施
錠方式に従った2PL−HP方式のデータベース管理シ
ステムでは、図11に示すように、トランザクションT
1Lを実行している途中にトランザクションT2Hによ
る実行要求があると、トランザクションT1Lをアボー
トさせる。そして、トランザクションT2Hを実行し、
トランザクションT2Hが終了した後に、トランザクシ
ョンT1Lを改めて最初から実行する。
【0062】これに対して、本発明の第一実施例に係る
データベース管理システムでは、図12に示すようにト
ランザクションT1Lを実行している途中にトランザク
ションT2Hの実行要求があると、トランザクションT
1Lを実行途中で中断し、トランザクションT2Hを実
行し、トランザクションT2Hが終了した後に、トラン
ザクションT1Lを実行途中から再開させる。
【0063】このため、従来に比べて、計算機資源の消
費の無駄を減らすことができ、より多く且つ早くトラン
ザクションを終了させることができる。また、データベ
ースのデータは書き込み操作を行うトランザクションT
1Lがコミットされる際に更新されるために、トランザ
クションT2Hは更新される前のデータベースのデータ
を変換して操作することとなり、トランザクションに使
用している変換データとデータベースのデータとの一貫
性を保たせることができる。
【0064】次に、一貫性の緩和を許容する読み込み操
作を行うトランザクションT1Lを実行している際に、
実行しているトランザクションより優先度の高い書き込
み操作を行うトランザクションT2Hの実行要求があっ
た場合を例に取って説明する。従来の2相施錠方式の2
PL−HP方式のデータベース管理システムでは、図1
3に示すように、トランザクションT1Lを実行してい
る途中にトランザクションT2Hによる実行要求がある
と、トランザクションT1Lをアボートさせる。そし
て、トランザクションT2Hを実行し、トランザクショ
ンT2Hが終了した後に、トランザクションT1Lを改
めて最初から実行する。
【0065】これに対して、本発明の第一実施例に係る
データベース管理システムでは、図12に示すようにト
ランザクションT1Lを実行している途中にトランザク
ションT2Hの実行要求があると、トランザクションT
1Lを実行途中で中断し、トランザクションT2Hを実
行し、トランザクションT2Hが終了した後に、トラン
ザクションT1Lを実行途中から再開させる。このた
め、一貫性の緩和を許容する読み込み操作に対して保っ
ていた一貫性を緩和させることによって、従来に比べ計
算機資源の消費の無駄を減らすことができ、より多く且
つ早くトランザクションを終了させることができる。ま
た、一貫性の緩和が生じるトランザクションは、一貫性
の緩和を許容する読み込み操作を行うトランザクション
のみで、他のトランザクションに対してはデータベース
内のデータとの一貫性を保つことができる。
【0066】上記のように、優先度に従ったトランザク
ションの実行を実現するとともに、トランザクションを
アボートしてしまうといった計算機資源の消費の無駄を
減らすことができ、多くのトランザクションを早く終了
させることができる。また、一貫性の緩和を許容する読
み込み操作を行うトランザクションに一貫性の緩和が生
じたか否かを検出することができ、当該トランザクショ
ンから得られた情報がどれくらい信頼性のあるものなの
かをアプリケーション・プログラム等が認識することが
できる。
【0067】なお、本実施例では優先度逆転対応部6
は、優先度の低いトランザクションによって優先度の高
いトランザクションのロックが確保できない優先度逆転
の対応として、優先度の低いトランザクションをアボー
トさせる方式を行っているが、例えば、ロックの確保を
妨げている優先度の低いトランザクションがライト・ロ
ックしているデータに対して優先度の高いトランザクシ
ョンがリード・ロックをしていない場合には、優先度承
継方式を行うことができる。また、前記した優先度逆転
の対応だけでなく、トランザクションが有しているトラ
ンザクションの実行予測時間等の情報に基づいて前記し
た対応方式を使い分けて行うコンディショナル・リスタ
ート方式等といった他の方式を使用することができる。
【0068】なお、上記実施例では、一貫性の緩和を許
容する読み込み操作を行うためのリード・ライト・ロッ
クを使用していたが、読み込み操作するためのリード・
ロックと書き込み操作するためのライト・ロックとを使
用し、並行制御管理部5が図3(a)に示す優先度の低
いトランザクションが確保しているライト・ロックに対
して、優先度の高いトランザクションによるリード・ロ
ックの確保を許容することによって、データベースの一
貫性を保つとともに、計算機資源の消費の無駄を減らす
ことができる。
【0069】また、上記した実施例では図3(b)に示
すロック間の制御を並行制御管理部5が行っていたが、
当該ロック間の制御に限らず、優先度の低いトランザク
ションが確保しているリード・ライト・ロックに対して
優先度の高いトランザクションのライト・ロックの確保
を許容させることによって、計算機資源の消費の無駄を
減らすことができる。
【0070】次に本発明の第2実施例に係るデータベー
ス管理システムを図1を参照して説明する。なお、第1
実施例と重複する説明は省略する。このデータベース管
理システムは、第一実施例では並行制御を行う方式とし
て2相施錠方式を使用しているのに対して、楽観的方式
を使用しているものであり、第1実施例とは並行制御管
理部5の並行制御が違っている。
【0071】なお、本実施例のデータベース管理システ
ムでは、図15に示すように、トランザクションを後述
するトランザクションに関する情報を関連付けたトラン
ザクションオブジェクトとして、また、データベースの
データを後述するデータに関する情報を関連付けたデー
タオブジェクトとして扱っている。
【0072】トランザクションに関する情報は、リード
指定したデータへの識別子等の参照情報を表すread-set
と、ライト指定したデータへの参照情報を表すwrite-se
tと、リード・ライト指定したデータへの参照情報を表
すread-write-setと、その他、第1実施例と同様な情報
を有している。
【0073】データに関する情報は、当該データに対し
てリード指定しているトランザクションへの参照情報を
表すr-transactionsと、当該データに対してライト指定
しているトランザクションへの参照情報を表す w-trans
actionsと、当該データに対してリード・ライト指定し
ているトランザクションへの参照情報を表すrw-transac
tionsと、を有している。
【0074】並行制御管理部5は、読み込み操作するた
めのリード指定と、書き込み操作するためのライト指定
と、データベースのデータとトランザクションが操作し
ている変換データとの一貫性の緩和を許容する読み込み
操作をするためのリード・ライト指定とを使用して、ト
ランザクションがコミットする際に、前記各指定に従っ
て並行制御を行っている。
【0075】すなわち、並行制御管理部5は、一のトラ
ンザクションをコミットする際に当該トランザクション
が指定を行っているデータに対して指定を行っている他
のトランザクションを検出し、一のトランザクションを
コミット行うか否かを図16に示す指示の関係によって
制御する。例えば、ライト指定を行ったトランザクショ
ンをコミットする際にリード・ライト指定を行ったトラ
ンザクションが検出された場合には、ライト指定を行っ
たトランザクションをコミットさせ、リードライト指定
を行っているトランザクションをそのままの状態にして
おく。
【0076】なお、トランザクションが行うロックの指
定は、トランザクションに予めプログラマが設定した指
定に基づいて行われており、指定には、リード・ロック
指定、リード・ライト・ロック指定、ライト・ロック指
定があり、処理に応じた指定を選択して設定することが
できる。特に、データベースのデータに対して読み込み
処理を行う場合においては、トランザクションの一貫性
を重視するか否かによって、リード・ロック指定とリー
ド・ライト・ロック指定とを選択することができる。
【0077】次に、第2実施例に係るデータべース管理
システムの動作を説明する。なお、第一実施例と重複す
る説明は省略する。このデータベース管理システムで
は、トランザクション実行部4によって実行されるトラ
ンザクションの処理状態は、操作フェーズ、確認フェー
ズ、書き込みフェーズの3フェーズと捉えることができ
る。
【0078】操作フェーズは、トランザクションが実行
されるフェーズであり、データベースのデータに読み出
し操作或いは書き込み操作等が行われる。例えば、トラ
ンザクションがデータベースのデータに対して読み出し
操作を行う場合には、トランザクション実行部4がリー
ド指定を行うことによって、指定したデータベースのデ
ータをトランザクションが使用可能なメモリ領域へデー
タを変換することができ、当該変換データに対しての操
作が可能となる。この際に、並行制御管理部5はリード
指定のあったデータのr-transactionsに指定を行ったト
ランザクションへの参照情報を設定し、指定を行ったト
ランザクションのread-setに指定したデータへの参照情
報を設定する。
【0079】確認フェーズは、操作フェーズによって操
作を行ったトランザクションをコミットする際の処理を
行うフェーズであり、並行制御管理部5によってコミッ
トするトランザクションが使用した変換データをデータ
ベースに書き込むことによる他のトランザクションへの
影響があるか否かが確認される。例えば、確認フェーズ
となったトランザクションをTvとし、実行横取りトラ
ンザクション保持部3bに保持されたトランザクション
の集合をTA{Ta1、....Tan}とした場合に
は、TAの各要素Taiに対して以下に示す式(1)、
(2)を実行する。
【0080】
【数1】
【0081】なお、write-set(T)、read-set
(T)、read-write-set(T)は、トランザクションT
における各setに設定されたデータへの参照情報を表し
ている。実行した結果、要素Taiが(1)を満たして
いない場合には、トランザクションTvをコミットする
ことでトランザクションTaiが一貫性を緩和してしま
うので、優先度逆転対応部6が当該要素Taiをアボー
ト処理する。一方、(1)を満たしているが(2)を満
たしていない場合には、トランザクションTvをコミッ
トすることでトランザクションTaiが一貫性を緩和し
てしまうが、トランザクションTaiは一貫性の緩和を
許容しているトランザクションであるので、並行制御管
理部5によって以下に示す一貫性の緩和に伴う処理が行
われる。
【0082】なお、一貫性の緩和が許容されるトランザ
クションは、読み込み操作をするトランザクションであ
るので、データベースのデータに対して書き込む操作を
することはないので、他のトランザクションとデータベ
ースのデータとの一貫性を緩和させることはない。この
一貫性の緩和に伴う処理では、トランザクションTai
のinconsistent-dataに式(2)の右辺により算出され
たデータへの参照情報を追加し、その要素数をトランザ
クションTaiのinconsistent-conuntに加算する。
【0083】なお、(1)及び(2)を満たすトランザ
クションTaiに対しては何もしない。 以上の確認フ
ェーズを終えたトランザクションが、書き込みフェーズ
へ導かれる。この書き込みフェーズでは、トランザクシ
ョンのwrite-setに設定されているデータベースのデー
タに対して、トランザクションが操作した変換データが
書き込まれる。書き込みが終了した後に、並行制御管理
部5が当該トランザクションが指定を行ったデータから
当該トランザクションへの参照情報を削除し、当該トラ
ンザクションを削除する。トランザクションのアボート
時には、トランザクションが参照している各データから
アボートするトランザクションへの参照情報を削除し、
当該トランザクションを削除する。
【0084】なお、第2実施例に係るデータベース管理
システムにおいても、第1実施例と同様に、実行横取り
トランザクション保持部3bに保持されたトランザクシ
ョンがトランザクション実行部4によって実行再開され
る際に、実行再開されるトランザクションに一貫性の緩
和が発生しているか否かが緩和判定部9によって検出さ
れる。
【0085】上記のように、ライト指定を行ったトラン
ザクションをコミットする際に、一貫性の緩和を許容す
る読み込み操作を行うトランザクションが実行横取りト
ランザクション保持部3bに保持されることが許容され
るために、当該一貫性の緩和を許容するトランザクショ
ンがアボートされるといった計算機資源の消費の無駄を
防ぐことができる。また、一貫性の緩和を許容するトラ
ンザクションに一貫性の緩和が発生した場合には、アプ
リケーションプログラムに一貫性の緩和の発生を認識さ
せることができる。また、一貫性の緩和を許容するトラ
ンザクション以外のトランザクションに対しては、デー
タベースのデータは一貫性を保つことができる。
【0086】なお、上記した第1実施例、第2実施例に
おいて、緩和判定部9は備えずとも良いが、備えること
によってトランザクションに対する一貫性の緩和の発生
をアプリケーション・プログラム等が認識することがで
き、アプリケーション・プログラムが適切な対応を行う
ことができる。
【0087】
【発明の効果】以上説明したように本発明に係る2相施
錠方式を使用したデータベース管理システムでは、優先
度の低いトランザクションがライト・ロックを確保して
いるデータに対して優先度の高いトランザクションがリ
ード・ロックを要求して場合に、並行制御管理部がリー
ド・ロックの確保を許容することによって、優先度の高
いトランザクションを実行した後に優先度の低いトラン
ザクションを実行再開させるようにしたために、優先度
に従ってトランザクションを実行でき、更にトランザク
ションが使用している変換データとデータベースのデー
タとの一貫性を保ちつつ計算機資源の消費の無駄を減ら
すことができ、より多くのトランザクションを早期に終
わらせることができる。
【0088】また、本発明に係る2相施錠方式又は楽観
的方式を使用したデータベース管理システムでは、並行
制御管理部が同一のデータに対して一貫性の緩和を許容
する読み込み操作を行うトランザクションと、書き込み
操作を行うトランザクションと、を共存させて優先度の
高いトランザクションを実行した後に優先度の低いトラ
ンザクションを実行途中の状態から実行させるようにし
たために、計算機資源の消費の無駄を減らして、より多
くのトランザクションを早期に終了させることができ
る。更に、トランザクションに一貫性の緩和が生じたこ
とを緩和検出部が検出するようにしたために、トランザ
クションに一貫性の緩和が生じたことをアプリケーショ
ン・プログラムが把握することができ、トランザクショ
ンによって得られるデータに対して適切な処理を行うこ
とができる。また、読み込み操作において一貫性の緩和
を許容するか否かといった選択をトランザクションを作
成する際にプログラマ等が判断でき、トランザクション
に応じた適切な処理を行うことができる。
【図面の簡単な説明】
【図1】 本発明に係るデータベース管理システムの構
成図である。
【図2】 第1実施例に係るデータベース管理システム
において使用するデータ及びトランザクションの構造を
示した図である。
【図3】 第1実施例の2相施錠方式でのロックの確保
の関係を示した図である。
【図4】 実行トランザクション決定部が行う動作を説
明する第1フローチャートである。
【図5】 実行トランザクション決定部が行う動作を説
明する第2フローチャートである。
【図6】 トランザクションの実行動作を説明するフロ
ーチャートである。
【図7】 並行制御管理部の動作を説明するフローチャ
ートである。
【図8】 コミット処理を説明するフローチャートであ
る。
【図9】 トランザクションをアボートする動作を説明
するフローチャートである。
【図10】 トランザクションに対する一貫性の緩和を
判定する動作を説明するフローチャートである。
【図11】 従来のライト・ロックに対するリード・ロ
ックの並行制御を説明する図である。
【図12】 第1実施例でのライト・ロックに対するリ
ード・ロックの並行制御を説明する図である。
【図13】 従来のリード・ロックに対するライト・ロ
ックの並行制御を説明する図である。
【図14】 第1実施例でのリード・ライト・ロックに
対するライト・ロックの並行制御を説明する図である。
【図15】 第2実施例に係るデータベース管理システ
ムにおいて使用するデータ及びトランザクションの構造
を示した図である。
【図16】 第2実施例での操作指定の関係を示した図
である。
【図17】 従来の2相施錠方式でのロックの確保の関
係を示した図である。
【符号の説明】
2a・・優先度算出部、 2b・・実行トランザクション決定部及び実行権制御
部、 3b・・実行横取りトランザクション保持部、 4・・・トランザクション実行部、 5・・・並行制御管理部、 9・・・緩和判定部、

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 データベースのデータに対してロックを
    確保したトランザクションが当該データへロックに応じ
    た操作を行うことを許容し、前記ロックの確保を制御す
    ることによって複数のトランザクションを並行して実行
    させる2相施錠方式を使用したデータベース管理システ
    ムにおいて、 前記ロックにはデータからの読み込み操作するためのリ
    ード・ロックとデータへの書き込み操作するためのライ
    ト・ロックとを有し、 実行要求があったトランザクションの優先度を指定する
    優先度算出部と、 優先度を指定されたトランザクションの中で最も高い優
    先度のトランザクションに実行権を与える実行トランザ
    クション決定部と、 実行権を与えられたトランザクションを実行するトラン
    ザクション実行部と、 新たに実行要求があったトランザクションの優先度が既
    に実行権を与えられて実行されているトランザクション
    の優先度より高い場合には実行トランザクション決定部
    により前記実行権を新たな実行要求があったトランザク
    ションへ移転させる実行権制御部と、 新たに実行要求があったトランザクションに実行権を奪
    われたトランザクションを実行途中の状態で保持する実
    行横取りトランザクション保持部と、 実行横取りトランザクション保持部に保持されているト
    ランザクションがライト・ロックを確保しているデータ
    に対して、トランザクション実行部で実行中のトランザ
    クションによるリード・ロックの確保を許容させる並行
    制御管理部と、を備えたことを特徴とするデータベース
    管理システム。
  2. 【請求項2】 データベースのデータに対してロックを
    確保したトランザクションが当該データへロックに応じ
    た操作を行うことを許容し、前記ロックの確保を制御す
    ることによって複数のトランザクションを並行して実行
    させる2相施錠方式を使用したデータベース管理システ
    ムにおいて、 前記ロックには、データへ書き込み操作するためのライ
    ト・ロックとデータから読み込み操作するためのリード
    ・ライト・ロックとを有し、 実行要求があったトランザクションの優先度を指定する
    優先度算出部と、 優先度を指定されたトランザクションの中で最も高い優
    先度のトランザクションに実行権を与える実行トランザ
    クション決定部と、 実行権を与えられたトランザクションを実行するトラン
    ザクション実行部と、 新たに実行要求があったトランザクションの優先度が既
    に実行権を与えられて実行されているトランザクション
    の優先度より高い場合には実行トランザクション決定部
    により前記実行権を新たな実行要求があったトランザク
    ションへ移転させる実行権制御部と、 新たに実行要求があったトランザクションに実行権を奪
    われたトランザクションを実行途中の状態で保持する実
    行横取りトランザクション保持部と、 実行横取りトランザクション保持部に保持されているト
    ランザクションがリード・ライト・ロックを確保してい
    るデータに対して、トランザクション実行部で実行中の
    トランザクションによるライト・ロックの確保を許容さ
    せる並行制御管理部と、を備えたことを特徴とするデー
    タベース管理システム。
  3. 【請求項3】 請求項2に記載したデータベース管理シ
    ステムにおいて、 リード・ライト・ロックを確保しているトランザクショ
    ンが読み込んだデータとデータベース内のデータとの不
    一致を判定する緩和判定部を更に備えたことを特徴とす
    るデータベース管理システム。
  4. 【請求項4】 トランザクションがデータベースのデー
    タに対して処理内容を指定して処理を行い、トランザク
    ションがデータベースのデータへ書き込む際に、当該デ
    ータに対する他のトランザクションの処理内容指定に基
    づいて制御することによってトランザクションを並行し
    て実行する楽観的方式を使用したデータベース管理シス
    テムにおいて、 前記処理内容指定には、データベースのデータを読み込
    み操作を指定するリード・ライト指定と、データベース
    のデータへ書き込み操作を指定するライト指定とを使用
    し、 実行要求があったトランザクションの優先度を指定する
    優先度算出部と、 優先度を指定されたトランザクションの中で最も高い優
    先度のトランザクションに実行権を与える実行トランザ
    クション決定部と、 実行権を与えられたトランザクションを実行するトラン
    ザクション実行部と、 新たに実行要求があったトランザクションの優先度が既
    に実行権を与えられて実行されているトランザクション
    の優先度より高い場合には実行トランザクション決定部
    により前記実行権を新たな実行要求があったトランザク
    ションへ移転させる実行権制御部と、 新たに実行要求があったトランザクションに実行権を奪
    われたトランザクションを実行途中の状態で保持する実
    行横取りトランザクション保持部と、 実行中のライト指定を行ったトランザクションがデータ
    ベースのデータへ書き込む際に、当該データに対してリ
    ード・ライト指定しているトランザクションを実行横取
    りトランザクション保持部が保持することを許容させる
    並行制御管理部と、を備えたことを特徴とするデータベ
    ース管理システム。
  5. 【請求項5】 請求項4に記載したデータベース管理シ
    ステムにおいて、 リード・ライト指定しているトランザクションが読み込
    んだデータとデータベース内のデータとの不一致を判定
    する緩和判定部を更に備えたことを特徴とするデータベ
    ース管理システム。
JP8197009A 1996-07-08 1996-07-08 データベース管理システム Pending JPH1027122A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8197009A JPH1027122A (ja) 1996-07-08 1996-07-08 データベース管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8197009A JPH1027122A (ja) 1996-07-08 1996-07-08 データベース管理システム

Publications (1)

Publication Number Publication Date
JPH1027122A true JPH1027122A (ja) 1998-01-27

Family

ID=16367276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8197009A Pending JPH1027122A (ja) 1996-07-08 1996-07-08 データベース管理システム

Country Status (1)

Country Link
JP (1) JPH1027122A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002521766A (ja) * 1998-07-30 2002-07-16 テルコーディア テクノロジーズ インコーポレイテッド データベースにおける並行したトランザクションのストリームを調停するための方法およびシステム
US7069366B2 (en) 2002-01-25 2006-06-27 International Business Machines Corporation System and method for handling resource transaction requests
US20100318713A1 (en) * 2009-06-16 2010-12-16 Freescale Semiconductor, Inc. Flow Control Mechanisms for Avoidance of Retries and/or Deadlocks in an Interconnect
JP2013045356A (ja) * 2011-08-25 2013-03-04 Nec Corp トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム
CN112149070A (zh) * 2019-06-27 2020-12-29 杭州海康威视数字技术股份有限公司 权限控制方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002521766A (ja) * 1998-07-30 2002-07-16 テルコーディア テクノロジーズ インコーポレイテッド データベースにおける並行したトランザクションのストリームを調停するための方法およびシステム
US7069366B2 (en) 2002-01-25 2006-06-27 International Business Machines Corporation System and method for handling resource transaction requests
US20100318713A1 (en) * 2009-06-16 2010-12-16 Freescale Semiconductor, Inc. Flow Control Mechanisms for Avoidance of Retries and/or Deadlocks in an Interconnect
US8554967B2 (en) * 2009-06-16 2013-10-08 Freescale Semiconductor, Inc. Flow control mechanisms for avoidance of retries and/or deadlocks in an interconnect
JP2013045356A (ja) * 2011-08-25 2013-03-04 Nec Corp トランザクション同時実行制御システム、トランザクション同時実行制御方法、およびプログラム
US9170837B2 (en) 2011-08-25 2015-10-27 Nec Corporation Transaction concurrent execution control system, method and program for carrying out a control of concurrently executing a transaction, including measuring execution time from starting to ending of transaction execution
CN112149070A (zh) * 2019-06-27 2020-12-29 杭州海康威视数字技术股份有限公司 权限控制方法及装置
CN112149070B (zh) * 2019-06-27 2024-04-23 杭州海康威视数字技术股份有限公司 权限控制方法及装置

Similar Documents

Publication Publication Date Title
US10353749B2 (en) Lock-free dual queue with condition synchronization and time-outs
US7395383B2 (en) Realtime-safe read copy update with per-processor read/write locks
Abbott et al. Scheduling real-time transactions: A performance evaluation
US8495641B2 (en) Efficiently boosting priority of read-copy update readers while resolving races with exiting and unlocking processes
US7734879B2 (en) Efficiently boosting priority of read-copy update readers in a real-time data processing system
TW498281B (en) Interface system and method for asynchronously updating a shared resource
US5502840A (en) Method and apparatus for advising a requesting process of a contention scheme to employ to access a shared resource
US6694390B1 (en) Managing bus transaction dependencies
JP3689336B2 (ja) データベースにおける並行したトランザクションのストリームを調停するための方法およびシステム
US7428539B2 (en) Method, system, and apparatus for managing access to a data object
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
US8938631B2 (en) Energy efficient implementation of read-copy update for light workloads running on systems with many processors
US20040034673A1 (en) Obstruction-free mechanism for atomic update of multiple non-contiguous locations in shared memory
Anderson et al. A framework for implementing objects and scheduling tasks in lock-free real-time systems
US5317737A (en) Method and apparatus for controlling a re-entrant synchronization lock tenure in a multiprocessor system
CN114996244B (zh) 实时数据库系统的控制方法、装置、设备及存储介质
JPWO2011096163A1 (ja) 情報処理システム、排他制御方法および排他制御用プログラム
Pandey et al. RACE: A concurrency control protocol for time-constrained transactions
Lam et al. On using real-time static locking protocols for distributed real-time databases
JPH1027122A (ja) データベース管理システム
Lam et al. A priority ceiling protocol with dynamic adjustment of serialization order
US6857036B2 (en) Hardware method for implementing atomic semaphore operations using code macros
WO1993003436A1 (en) Method and apparatus for reducing lock period of shared buffer
Kuo et al. Conservative and optimistic protocols
JP2926873B2 (ja) 計算機システム