JPH03123946A - データベースの排他制御方法 - Google Patents
データベースの排他制御方法Info
- Publication number
- JPH03123946A JPH03123946A JP1262810A JP26281089A JPH03123946A JP H03123946 A JPH03123946 A JP H03123946A JP 1262810 A JP1262810 A JP 1262810A JP 26281089 A JP26281089 A JP 26281089A JP H03123946 A JPH03123946 A JP H03123946A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- version
- data
- update
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はデータベースの排他制御方法に係り、詳しくは
、同一のデータベースを複数のトランザクションから頻
繁にアクセスする業務、特に大址のデータの参照のみを
行うトランザクションと複数のデータ参照してその一部
を更新するトランザクションとが混在して頻繁に発生す
る業務において、トランザクションの一貫性を保ちつつ
、高い同時実行性を実現するデータベースの排他制御方
法に関するものである。
、同一のデータベースを複数のトランザクションから頻
繁にアクセスする業務、特に大址のデータの参照のみを
行うトランザクションと複数のデータ参照してその一部
を更新するトランザクションとが混在して頻繁に発生す
る業務において、トランザクションの一貫性を保ちつつ
、高い同時実行性を実現するデータベースの排他制御方
法に関するものである。
データベース処理装置の分野において、同一のデータベ
ースを複数のトランザクションで同時に処理しながら、
全てのトランザクションの一貫性を保証する排他制御技
術は、トランザクションの同時実行性を高め、処理能力
の高いデータベース管理機構を実現する上で重要な技術
である。
ースを複数のトランザクションで同時に処理しながら、
全てのトランザクションの一貫性を保証する排他制御技
術は、トランザクションの同時実行性を高め、処理能力
の高いデータベース管理機構を実現する上で重要な技術
である。
従来、トランザクションの同時実行性を高める技術とし
て、データの更新履歴(版)をトランザクションからア
クセスできるようにし、異なる1〜ランザクジヨンから
同一のデータを同時に参照、更新可能とする多版同時実
行制御技術が知られている。例えば、B ernste
in、 P 、 A 、 、 Hadzilacos。
て、データの更新履歴(版)をトランザクションからア
クセスできるようにし、異なる1〜ランザクジヨンから
同一のデータを同時に参照、更新可能とする多版同時実
行制御技術が知られている。例えば、B ernste
in、 P 、 A 、 、 Hadzilacos。
V、、Goodman、 N、 ”Concurren
cy Control andRecovery in
Database Systems” 第5章(A
DDISON−WESLEY PUBLISI−(I
NG COMPANY、1987)には、多収同時実行
制御において、トランザクションの一貫性を二相ロック
で保証する方法と基本タイムスタンプ順序で保証する方
法が示されている。
cy Control andRecovery in
Database Systems” 第5章(A
DDISON−WESLEY PUBLISI−(I
NG COMPANY、1987)には、多収同時実行
制御において、トランザクションの一貫性を二相ロック
で保証する方法と基本タイムスタンプ順序で保証する方
法が示されている。
第3図は、多版同時実行制御技術を用いた従来方式のデ
ータベース処理装置の構成例を示したもので、31は排
他制御部、32は排他制御情報表。
ータベース処理装置の構成例を示したもので、31は排
他制御部、32は排他制御情報表。
33は版管理表、34はトランザクション実行部、35
はデータベース情報表、36はアドレス変換表、37は
データベース格納部、38は端末である。
はデータベース情報表、36はアドレス変換表、37は
データベース格納部、38は端末である。
データベース格納部37は関係データベースを格納して
いる。排他制御部31は、排他制御情報表32と版管理
表33を用いて、後述する二相ロックあるいは基本タイ
ムスタンプ順序を用いてトランザクションの一貫性を保
証するものである。
いる。排他制御部31は、排他制御情報表32と版管理
表33を用いて、後述する二相ロックあるいは基本タイ
ムスタンプ順序を用いてトランザクションの一貫性を保
証するものである。
排他制御情報表32は、トランザクションによるデータ
のアクセス状態を表わしたものである。版管理表33は
、データの更新の度に生成される版を識別するための情
報を格納したものである。トランザクション実行部34
は、トランザクションを解析して所要のデータベース処
理を実行するもので、通常、複数のトランザクションを
並行して処理している。データベース情報表35は、関
係データベースの表と該表を構成するデータに関する情
報を格納したものである。アドレス変換表36は、デー
タの論理識別子からデータベース格納部37に格納され
た関係データベースの表の該データの格納位置を算出す
るためのものである。端末38は、トランザクションの
入力と処理結果の出力を行うものである。
のアクセス状態を表わしたものである。版管理表33は
、データの更新の度に生成される版を識別するための情
報を格納したものである。トランザクション実行部34
は、トランザクションを解析して所要のデータベース処
理を実行するもので、通常、複数のトランザクションを
並行して処理している。データベース情報表35は、関
係データベースの表と該表を構成するデータに関する情
報を格納したものである。アドレス変換表36は、デー
タの論理識別子からデータベース格納部37に格納され
た関係データベースの表の該データの格納位置を算出す
るためのものである。端末38は、トランザクションの
入力と処理結果の出力を行うものである。
端末38からトランザクションが人力されると、トラン
ザクション実行部34は、データベース情報表35から
データベース格納部37に格納された関係データベース
の表の参照または更新すべきデータを求め、該データの
参照または更新により当該トランザクション実行部34
で並行処理される全てのトランザクションの一貫性を保
証できるかどうかを排他制御部31に間合せ、一貫性が
保証できる場合に、該参照または更新処理を実行する。
ザクション実行部34は、データベース情報表35から
データベース格納部37に格納された関係データベース
の表の参照または更新すべきデータを求め、該データの
参照または更新により当該トランザクション実行部34
で並行処理される全てのトランザクションの一貫性を保
証できるかどうかを排他制御部31に間合せ、一貫性が
保証できる場合に、該参照または更新処理を実行する。
排他制御部31は、トランザクション実行部34から該
−貫性の判定を要求されたデータに対して、排他制御情
報32と版管理表33に格納された情報を用いて判定を
行い、一貫性が保証できるときは参照または更新す入き
該データの版の識別子を、並行処理されているいずれか
のトランザクションの終了後に一貫性が保証できるとき
は実行待ちを示す信号を、一貫性を保証できないときは
トランザクションの中止を要求する信号をトランザクシ
ョン実行部34に与える。トランザクション実行部34
は、排他制御部31からの版の識別子を与えられたとき
はアドレス変換表36から参照または更新すべきデータ
の格納位置を求め、データベース格納部37をアクセス
してトランザクション処理を実行し、排他制御部31か
ら実行待ちの信号を与えられたときはトランザクション
の処理を一時中断し、並行処理している他のトランザク
ションがあればその実行に移り、排他制御部31からト
ランザクションの中止の信号を与えられたときは既に行
った処理を全て実行前の状態に回復させる。
−貫性の判定を要求されたデータに対して、排他制御情
報32と版管理表33に格納された情報を用いて判定を
行い、一貫性が保証できるときは参照または更新す入き
該データの版の識別子を、並行処理されているいずれか
のトランザクションの終了後に一貫性が保証できるとき
は実行待ちを示す信号を、一貫性を保証できないときは
トランザクションの中止を要求する信号をトランザクシ
ョン実行部34に与える。トランザクション実行部34
は、排他制御部31からの版の識別子を与えられたとき
はアドレス変換表36から参照または更新すべきデータ
の格納位置を求め、データベース格納部37をアクセス
してトランザクション処理を実行し、排他制御部31か
ら実行待ちの信号を与えられたときはトランザクション
の処理を一時中断し、並行処理している他のトランザク
ションがあればその実行に移り、排他制御部31からト
ランザクションの中止の信号を与えられたときは既に行
った処理を全て実行前の状態に回復させる。
第4図は、第3図に示した従来方式のデータベース処理
装置において、トランザクションの一貫性を二相ロック
で保証する多版同時実行制御によるトランザクション処
理の実行例である。図において、41はデータベース格
納部37に格納された関係データベースの表の1つであ
り、42,43はデータ識別子Xで識別されるデータ(
以降、データXと呼ぶ)に対応する版であり、この例で
は、トランザクションAがデータXを更新し、トランザ
クションBがデータXを参照する。排他制御情報表32
に格納する情報は、データがトランザクションにより参
照されていることを示すリードロック、データがトラン
ザクションにより更新されていることを示すライトロッ
ク、及びデータを参照、更新することができないことを
示す保証ロックの3種類からなる。排他制御部31は、
同一のデータを同時にライトロックできない規則、保証
ロックされているデータをリードロック、ライトロック
できない規則、データのライ1へロックを解除するとき
に該データがリードロックされているならば該ライ1〜
ロツクを保証ロックに変更する規則、及びトランザクシ
ョンに関係データベースの構成要素として有効な最新の
版を参照させる規則により、トランザクションの一貫性
を保証する。
装置において、トランザクションの一貫性を二相ロック
で保証する多版同時実行制御によるトランザクション処
理の実行例である。図において、41はデータベース格
納部37に格納された関係データベースの表の1つであ
り、42,43はデータ識別子Xで識別されるデータ(
以降、データXと呼ぶ)に対応する版であり、この例で
は、トランザクションAがデータXを更新し、トランザ
クションBがデータXを参照する。排他制御情報表32
に格納する情報は、データがトランザクションにより参
照されていることを示すリードロック、データがトラン
ザクションにより更新されていることを示すライトロッ
ク、及びデータを参照、更新することができないことを
示す保証ロックの3種類からなる。排他制御部31は、
同一のデータを同時にライトロックできない規則、保証
ロックされているデータをリードロック、ライトロック
できない規則、データのライ1へロックを解除するとき
に該データがリードロックされているならば該ライ1〜
ロツクを保証ロックに変更する規則、及びトランザクシ
ョンに関係データベースの構成要素として有効な最新の
版を参照させる規則により、トランザクションの一貫性
を保証する。
第4図において、トランザクションAは、時刻aでデー
タXをライトロックし、データXの版42を基に更新後
の版43を生成する。トランザクションBは、時刻すで
データXをリードロックし、データXの表41の構成要
素として有効な最新の版42を参照する。データXは、
この時点で異なるトランザクションA、Bから同時に参
照、更新される。トランザクションAによるライトロッ
クは、トランザクションBによるデータXのリードロッ
クのため、トランザクションAの終了時刻Cで保証ロッ
クに変更される。データXの更新後の版43は時刻Cで
表41の構成要素として有効となるが、データXの更新
前の版42がトランザクションBによりまだ参照されて
いるので、該保証ロックにより更新後の版43のアクセ
スを禁止してトランザクションの一貫性を保証する。デ
ータXの保証ロックは、トランザクションBの終了時刻
dでトランザクションBによりデータXのリードロック
と共に解除される。データXの更新前の版42は、時刻
d以降アクセスされなくなるので削除される。
タXをライトロックし、データXの版42を基に更新後
の版43を生成する。トランザクションBは、時刻すで
データXをリードロックし、データXの表41の構成要
素として有効な最新の版42を参照する。データXは、
この時点で異なるトランザクションA、Bから同時に参
照、更新される。トランザクションAによるライトロッ
クは、トランザクションBによるデータXのリードロッ
クのため、トランザクションAの終了時刻Cで保証ロッ
クに変更される。データXの更新後の版43は時刻Cで
表41の構成要素として有効となるが、データXの更新
前の版42がトランザクションBによりまだ参照されて
いるので、該保証ロックにより更新後の版43のアクセ
スを禁止してトランザクションの一貫性を保証する。デ
ータXの保証ロックは、トランザクションBの終了時刻
dでトランザクションBによりデータXのリードロック
と共に解除される。データXの更新前の版42は、時刻
d以降アクセスされなくなるので削除される。
以上の説明でわかるように、二相ロックを用いた多版同
時実行制御では、更新中のデータに更新前の版と更新後
の版の2つを持たせて、異なるトランザクションから同
一データの参照と更新を同時に行わせながらトランザク
ションの同時実行性を高め、更新完了時に保証ロックを
用いてトランザクションの一貫性を保証している。
時実行制御では、更新中のデータに更新前の版と更新後
の版の2つを持たせて、異なるトランザクションから同
一データの参照と更新を同時に行わせながらトランザク
ションの同時実行性を高め、更新完了時に保証ロックを
用いてトランザクションの一貫性を保証している。
第5図は、第3図に示した従来方式のデータベース処理
装置において、トランザクションの一貫性を基本タイム
スタンプ順序で保証する多版同時実行制御によるトラン
ザクション処理の実行例である。図において、51はデ
ータベース格納部37に格納された関係データベースの
表の1つであり、52.53はデータ識別子Yで識別さ
れるデータ(以降、データYと呼ぶ)に対応する版であ
り、この例では、トランザクションCがデータYを更新
し、トランザクションDがデータYを参照する。トラン
ザクション実行部34は、端末38から入力されるトラ
ンザクションに開始時刻に相当するタイムスタンプを付
加する。排他制御情報表32に格納する情報は、データ
がトランザクションにより更新されていることを示すラ
イトロックの1種類からなる0版管理表33に格納する
版の識別情報は、版を生成したトランザクションのタイ
ムスタンプ(以降、ライトスタンプと呼ぶ)と版を現時
点までに参照したトランザクションのタイムスタンプの
最大値(以降、リードスタンプと呼ぶ)を含む。排他制
御部31は、トランザクションによるデータの参照、更
新時に該トランザクションのタイムスタンプ以下で最大
のライトスタンプを持つ該データの版を選択し、該版が
該データの最新の版であるとき更新を許可する規則、該
版のリードスタンプが該トランザクションのタイムスタ
ンプ以下であるとき更新を許可する規則、及び同一のデ
ータを同時にライトロックできない規則により、トラン
ザクションの一貫性を保証する。
装置において、トランザクションの一貫性を基本タイム
スタンプ順序で保証する多版同時実行制御によるトラン
ザクション処理の実行例である。図において、51はデ
ータベース格納部37に格納された関係データベースの
表の1つであり、52.53はデータ識別子Yで識別さ
れるデータ(以降、データYと呼ぶ)に対応する版であ
り、この例では、トランザクションCがデータYを更新
し、トランザクションDがデータYを参照する。トラン
ザクション実行部34は、端末38から入力されるトラ
ンザクションに開始時刻に相当するタイムスタンプを付
加する。排他制御情報表32に格納する情報は、データ
がトランザクションにより更新されていることを示すラ
イトロックの1種類からなる0版管理表33に格納する
版の識別情報は、版を生成したトランザクションのタイ
ムスタンプ(以降、ライトスタンプと呼ぶ)と版を現時
点までに参照したトランザクションのタイムスタンプの
最大値(以降、リードスタンプと呼ぶ)を含む。排他制
御部31は、トランザクションによるデータの参照、更
新時に該トランザクションのタイムスタンプ以下で最大
のライトスタンプを持つ該データの版を選択し、該版が
該データの最新の版であるとき更新を許可する規則、該
版のリードスタンプが該トランザクションのタイムスタ
ンプ以下であるとき更新を許可する規則、及び同一のデ
ータを同時にライトロックできない規則により、トラン
ザクションの一貫性を保証する。
第5図において、トランザクションCは開始時刻gをタ
イムスタンプとして持ち、トランザクションDは開始時
刻fをタイムスタンプとして持ち。
イムスタンプとして持ち、トランザクションDは開始時
刻fをタイムスタンプとして持ち。
データYの版52はfとgよりも小さいライトスタンプ
とリードスタンプを持つとする。トランザクションCは
、時刻りでデータYの版52を選択して、データYをラ
イトロックし、版52を基に更新後の版53を生成する
。版53は、ライトスタンプとしてgを、リードスタン
プとしてgより小さい値を与えられる。トランザクショ
ンDは、時刻iでデーYの版52を選択して参照する。
とリードスタンプを持つとする。トランザクションCは
、時刻りでデータYの版52を選択して、データYをラ
イトロックし、版52を基に更新後の版53を生成する
。版53は、ライトスタンプとしてgを、リードスタン
プとしてgより小さい値を与えられる。トランザクショ
ンDは、時刻iでデーYの版52を選択して参照する。
版52のリードスタンプは、fに更新される。データY
は、この時点で異なるトランザクションがら同時に参照
、更新される。トランザクションCによるデータYのラ
イトロックは、トランザクションCの終了時刻jで解除
される。以上の説明でわかるように、基本タイムスタン
プ順序を用いた各版同時実行制御では、データに複数の
版を持たせて、異なるトランザクションから同一データ
の参照と更新を同時に行わせながらトランザクションの
同時実行性を高め1版に付与するライトスタンプとリー
ドスタンプを用いてトランザクションの発生順序に従っ
た一貫性のある1−ランザクジョン処理を行う。
は、この時点で異なるトランザクションがら同時に参照
、更新される。トランザクションCによるデータYのラ
イトロックは、トランザクションCの終了時刻jで解除
される。以上の説明でわかるように、基本タイムスタン
プ順序を用いた各版同時実行制御では、データに複数の
版を持たせて、異なるトランザクションから同一データ
の参照と更新を同時に行わせながらトランザクションの
同時実行性を高め1版に付与するライトスタンプとリー
ドスタンプを用いてトランザクションの発生順序に従っ
た一貫性のある1−ランザクジョン処理を行う。
上記従来技術の二相ロックを用いた各版同時実行制御で
は、データを更新するトランザクションが完了したとき
に、該データを参照中のトランザクションが存在すると
、該参照中のトランザクションが完了するまで、他のト
ランザクションは該データを参照、更新できないので、
関係データベースの表を構成する全てのデータを参照す
るような多くの処理時間を要するトランザクションが長
時間データをリードロックすると、他のトランザクショ
ン処理が長時間遅延されることが多くなり、トランザク
ションの同時実行性が劣下する問題があった。
は、データを更新するトランザクションが完了したとき
に、該データを参照中のトランザクションが存在すると
、該参照中のトランザクションが完了するまで、他のト
ランザクションは該データを参照、更新できないので、
関係データベースの表を構成する全てのデータを参照す
るような多くの処理時間を要するトランザクションが長
時間データをリードロックすると、他のトランザクショ
ン処理が長時間遅延されることが多くなり、トランザク
ションの同時実行性が劣下する問題があった。
また、上記従来技術の基本タイムスタンプ順序を用いた
各版同時実行制御では、トランザクションがデータの最
新版を参照で選択したとき、該版が他のトランザクショ
ンによりライトロックされていると参照が遅延され、各
版同時実行制御を用いてもトランザクションの同時実行
性が向上しない問題があった。さらに、トランザクショ
ンがデータの最新版を更新で選択しても、該トランザク
ションより発生時刻の遅いトランザクションが該版を先
行して参照してしまうと該トランザクションを中止しな
ければならず、複数のデータを参照した後その一部を更
新するような、トランザクションの発生からデータの更
新を行うまでの期間の長いトランザクションについて、
各版同時実行制御を用いてもトランザクションの同時実
行性が向上しない問題があった。
各版同時実行制御では、トランザクションがデータの最
新版を参照で選択したとき、該版が他のトランザクショ
ンによりライトロックされていると参照が遅延され、各
版同時実行制御を用いてもトランザクションの同時実行
性が向上しない問題があった。さらに、トランザクショ
ンがデータの最新版を更新で選択しても、該トランザク
ションより発生時刻の遅いトランザクションが該版を先
行して参照してしまうと該トランザクションを中止しな
ければならず、複数のデータを参照した後その一部を更
新するような、トランザクションの発生からデータの更
新を行うまでの期間の長いトランザクションについて、
各版同時実行制御を用いてもトランザクションの同時実
行性が向上しない問題があった。
本発明の目的は、上記従来技術の問題点を解決し、複数
トランザクションの同時実行性の高い各版同時実行制御
による排他制御方法を提供することにある。
トランザクションの同時実行性の高い各版同時実行制御
による排他制御方法を提供することにある。
本発明は、トランザクションをデータの更新を含む更新
トランザクションとデータの参照のみを行う検索トラン
ザクションに分類し、排他制御部において、更新トラン
ザクションを二相ロックを用いた各版同時実行制御で、
検索トランザクションを基本タイムスタンプ順序で用い
た多収同時実行制御で管理することを特徴とする。
トランザクションとデータの参照のみを行う検索トラン
ザクションに分類し、排他制御部において、更新トラン
ザクションを二相ロックを用いた各版同時実行制御で、
検索トランザクションを基本タイムスタンプ順序で用い
た多収同時実行制御で管理することを特徴とする。
入力されるトランザクションが更新トランザクションで
あるか検索トランザクションであるかは、例えばユーザ
がトランザクションに付加した制御情報を基に判断する
機能をトランザクション実行部に具備しておき、検索ト
ランザクションにはトランザクション実行部での処理開
始時刻に相当するタイムスタンプを割当てる。
あるか検索トランザクションであるかは、例えばユーザ
がトランザクションに付加した制御情報を基に判断する
機能をトランザクション実行部に具備しておき、検索ト
ランザクションにはトランザクション実行部での処理開
始時刻に相当するタイムスタンプを割当てる。
排他制御部は、トランザクション実行部から更新トラン
ザクションによるデータの参照、更新について一貫性保
証の判定を要求されると、排他制御情報表を探索して二
相ロックを用いた多収同時実行制御の規則で該判定を行
い、データの参照が可能なとき、関係データベースの表
の構成要素として有効な該データの最新版を版管理表を
基に選択し、該データのリードロックを排他制御情報表
に登録し、トランザクション実行部に該版の参照を許可
し、データが更新が可能なときは、関係データベースの
表の構成要素として有効な該データの最新版を版管理表
を基に選択し、該データのライトロックを排他制御情報
表に登録し、更新により生成される版に関する情報を版
管理表に登録し、トランザクション実行部に該版の複製
に対する更新を許可する。
ザクションによるデータの参照、更新について一貫性保
証の判定を要求されると、排他制御情報表を探索して二
相ロックを用いた多収同時実行制御の規則で該判定を行
い、データの参照が可能なとき、関係データベースの表
の構成要素として有効な該データの最新版を版管理表を
基に選択し、該データのリードロックを排他制御情報表
に登録し、トランザクション実行部に該版の参照を許可
し、データが更新が可能なときは、関係データベースの
表の構成要素として有効な該データの最新版を版管理表
を基に選択し、該データのライトロックを排他制御情報
表に登録し、更新により生成される版に関する情報を版
管理表に登録し、トランザクション実行部に該版の複製
に対する更新を許可する。
また、排他制御部は、トランザクション実行部から更新
トランザクションの終了を通知されると、該トランザク
ションがデータの更新により生成した版にトランザクシ
ョン終了時刻に相当するタイムスタンプを割当て、版管
理表に登録されている該版に関する情報に該タイムスタ
ンプを追加し、該トランザクションによるリードロック
の解除とライトロックの解除または保証ロックへの変更
を排他制御情報表上で行う。
トランザクションの終了を通知されると、該トランザク
ションがデータの更新により生成した版にトランザクシ
ョン終了時刻に相当するタイムスタンプを割当て、版管
理表に登録されている該版に関する情報に該タイムスタ
ンプを追加し、該トランザクションによるリードロック
の解除とライトロックの解除または保証ロックへの変更
を排他制御情報表上で行う。
更に、排他制御部は、トランザクション実行部から検索
トランザクションによるデータの参照について一貫性保
証の判定を要求されると、前記更新トランザクション終
了時に版に割当てたタイムスタンプをライトスタンプと
考え、版管理表を探索しながら基本タイムスタンプ順序
を用いた多収同時実行制御の規則で参照すべき版を選択
し、トランザクション実行部に該版の参照を許可する。
トランザクションによるデータの参照について一貫性保
証の判定を要求されると、前記更新トランザクション終
了時に版に割当てたタイムスタンプをライトスタンプと
考え、版管理表を探索しながら基本タイムスタンプ順序
を用いた多収同時実行制御の規則で参照すべき版を選択
し、トランザクション実行部に該版の参照を許可する。
本発明では、二相ロックを用いた多収同時実行制御で版
にライトスタンプを付与し、該ライトスタンプを基に基
本タイムスタンプ順序を用いた多収同時実行制御で版の
選択を行うことにより、2つの異なる各版同時制御を1
つの制御に協調させている。これにより、関係データベ
ースの表を構成する全てのデータを参照するような多く
の処理時間を要する検索トランザクションを基本タイム
スタンプ順序を用いた多収同時実行制御で管理して、デ
ータをリードロックせずに参照することが可能になり、
従来の二相ロックを用いた多収同時実行制御におけるト
ランザクション同時実行性を低下させる要因であるデー
タが長時間リードロックされる状態の発生を軽減できる
。
にライトスタンプを付与し、該ライトスタンプを基に基
本タイムスタンプ順序を用いた多収同時実行制御で版の
選択を行うことにより、2つの異なる各版同時制御を1
つの制御に協調させている。これにより、関係データベ
ースの表を構成する全てのデータを参照するような多く
の処理時間を要する検索トランザクションを基本タイム
スタンプ順序を用いた多収同時実行制御で管理して、デ
ータをリードロックせずに参照することが可能になり、
従来の二相ロックを用いた多収同時実行制御におけるト
ランザクション同時実行性を低下させる要因であるデー
タが長時間リードロックされる状態の発生を軽減できる
。
また、版へのライトスタンプの付与を更新トランザクシ
ョンが完了した時点で行い、基本タイムスタンプ順序を
用いた多収同時実行制御によるデータの参照で関係デー
タベースの表の構成要素として有効となっていない版を
選択しないようにすること、および、関係データベース
の表を構成するいくつかのデータを参照した後にその一
部を更新するようなトランザクションを二相ロックを用
いた多収同時実行制御で管理することで、従来の基本タ
イムスタンプ順序を用いた各版実行制御のトランザクシ
ョンの同時実行性を低下させる要因を解消し、従来方法
よりトランザクションの同時実行性の高い多収同時実行
制御を実現している。
ョンが完了した時点で行い、基本タイムスタンプ順序を
用いた多収同時実行制御によるデータの参照で関係デー
タベースの表の構成要素として有効となっていない版を
選択しないようにすること、および、関係データベース
の表を構成するいくつかのデータを参照した後にその一
部を更新するようなトランザクションを二相ロックを用
いた多収同時実行制御で管理することで、従来の基本タ
イムスタンプ順序を用いた各版実行制御のトランザクシ
ョンの同時実行性を低下させる要因を解消し、従来方法
よりトランザクションの同時実行性の高い多収同時実行
制御を実現している。
以下、本発明の実施例を図面を用いて詳細に説明する。
第1図は、本発明を用いたデータベース処理装置の一実
施例を示す図である。図において、11〜18は、第3
図の31〜38に各々対応する。
施例を示す図である。図において、11〜18は、第3
図の31〜38に各々対応する。
版管理表13はデータベースレコードリスト110と、
版リスト111よりなる。排他制御情報表12はロック
レコードリスト112とロックトランザクションリスト
113よりなる。19はタイムスタンプレジスタであり
、検索トランザクションに付与するライトスタンプと更
新トランザクションの完了時に該更新トランザクション
により生成された版に付与するライトスタンプとして用
いる値を格納するための手段である。このタイムスタン
プレジスタ19の初期値はOとする。データベースレコ
ードリスト110は、関係データベースを構成するレコ
ードのレコード識別子と該1ノコード識別子に対応する
版リスト111のポインタを格納する。版リスト111
は、各レコードを構成する版の識別番号(版番号)と版
に付与するライトスタンプを格納する。ここでは、版番
号は各レコード毎に版の生成順序に従ってOから昇順に
整数を割当てることとする。また、初期値に対応する版
のライトスタンプは0とする。ロックレコードリスト1
12は、現時点で更新トランザクションによりロックさ
れているレコードのレコード識別子と該レコード識別子
に対応するロックトランザクションリスト113のポイ
ンタを格納する。
版リスト111よりなる。排他制御情報表12はロック
レコードリスト112とロックトランザクションリスト
113よりなる。19はタイムスタンプレジスタであり
、検索トランザクションに付与するライトスタンプと更
新トランザクションの完了時に該更新トランザクション
により生成された版に付与するライトスタンプとして用
いる値を格納するための手段である。このタイムスタン
プレジスタ19の初期値はOとする。データベースレコ
ードリスト110は、関係データベースを構成するレコ
ードのレコード識別子と該1ノコード識別子に対応する
版リスト111のポインタを格納する。版リスト111
は、各レコードを構成する版の識別番号(版番号)と版
に付与するライトスタンプを格納する。ここでは、版番
号は各レコード毎に版の生成順序に従ってOから昇順に
整数を割当てることとする。また、初期値に対応する版
のライトスタンプは0とする。ロックレコードリスト1
12は、現時点で更新トランザクションによりロックさ
れているレコードのレコード識別子と該レコード識別子
に対応するロックトランザクションリスト113のポイ
ンタを格納する。
ロックトランザクションリスト113は、レコードをロ
ックしているトランザクションのトランザクション識別
子とロック種類を格納する。
ックしているトランザクションのトランザクション識別
子とロック種類を格納する。
第1図の状態は、データベース格納部17に格納されて
いる関係データベースの表を構成するレコードを単位と
して排他制御を行う場合のものとし、レコード#1〜#
4で構成される表Aに対して、レコード#2を更新する
トランザクションとレコード#3を更新するトランザク
ションが既に処理を完了し、レコード#1とレコード#
2を参照した後、レコード#2を更新するトランザクシ
ョンT1が処理を継続中である状態を示している。
いる関係データベースの表を構成するレコードを単位と
して排他制御を行う場合のものとし、レコード#1〜#
4で構成される表Aに対して、レコード#2を更新する
トランザクションとレコード#3を更新するトランザク
ションが既に処理を完了し、レコード#1とレコード#
2を参照した後、レコード#2を更新するトランザクシ
ョンT1が処理を継続中である状態を示している。
トランザクションの実行を開始するまでの手順は以下の
通りである。1−ランザクジョン実行部14は、端末1
8から久方されたトランザクションを更新トランザクシ
ョンと検索トランザクションに分類し、検索トランザク
ションにタイムスタンプレジスタ19の値をタイムスタ
ンプとして割当てる。次に、トランザクション実行部1
4は、データベース情報表15からトランザクション処
理に使用するレコードのレコード識別子を求め、該レコ
ードの参照または更新によりトランザクション実行部1
4で並行処理される全てのトランザクションの一貫性を
保証できるかうかを排他制御部11へ間合わせる。これ
に対して、排他制御部11は、排他制御情報表12を構
成するロックレコードリスト112とロックトランザク
ション113、及び1版管理表13を構成するデータベ
ースレコードリスト110と版リスト111を用いて。
通りである。1−ランザクジョン実行部14は、端末1
8から久方されたトランザクションを更新トランザクシ
ョンと検索トランザクションに分類し、検索トランザク
ションにタイムスタンプレジスタ19の値をタイムスタ
ンプとして割当てる。次に、トランザクション実行部1
4は、データベース情報表15からトランザクション処
理に使用するレコードのレコード識別子を求め、該レコ
ードの参照または更新によりトランザクション実行部1
4で並行処理される全てのトランザクションの一貫性を
保証できるかうかを排他制御部11へ間合わせる。これ
に対して、排他制御部11は、排他制御情報表12を構
成するロックレコードリスト112とロックトランザク
ション113、及び1版管理表13を構成するデータベ
ースレコードリスト110と版リスト111を用いて。
後述する第2図に示す処理の流れでトランザクションの
一貫性保証について判定を行う。排他制御部11は、ト
ランザクションの一貫性を保証するレコードの参照また
は更新が直ちに回前なときは参照または更新すべき該レ
コードの版の版番号を、並行処理される他のトランザク
ションの終了後に可能なときは実行待ちを示す信号を、
いずれも不可能なときはトランザクションの中止を要求
する信号を、トランザクション実行部14に与える。
一貫性保証について判定を行う。排他制御部11は、ト
ランザクションの一貫性を保証するレコードの参照また
は更新が直ちに回前なときは参照または更新すべき該レ
コードの版の版番号を、並行処理される他のトランザク
ションの終了後に可能なときは実行待ちを示す信号を、
いずれも不可能なときはトランザクションの中止を要求
する信号を、トランザクション実行部14に与える。
トランザクション実行部14は、排他制御部11から版
番号を与えられたときは、レコード識別子と該版番号を
基にアドレス変換表16から参照または更新すべきデー
タの物理アドレスを求め、データベース格納部17をア
クセスしてトランザクション処理を実行する。一方、ト
ランザクション実行部14は、排他制御部11がら実行
待ちの信号を与えられたときは、並行処理している他の
トランザクションの実行に移る。また、トランザクショ
ン実行部14は、排他制御部11がらトランザクション
の中止の信号を与えられたときは、端末38に該トラン
ザクション処理を中止したことを示す信号を与える。
番号を与えられたときは、レコード識別子と該版番号を
基にアドレス変換表16から参照または更新すべきデー
タの物理アドレスを求め、データベース格納部17をア
クセスしてトランザクション処理を実行する。一方、ト
ランザクション実行部14は、排他制御部11がら実行
待ちの信号を与えられたときは、並行処理している他の
トランザクションの実行に移る。また、トランザクショ
ン実行部14は、排他制御部11がらトランザクション
の中止の信号を与えられたときは、端末38に該トラン
ザクション処理を中止したことを示す信号を与える。
第2図は第1図における排他制御部11の処理の流れを
示したものである。
示したものである。
第2図(a)は、排他制御部11がトランザクション実
行部14から更新トランザクションによるレコードの更
新について一貫性保証の判定を要求されたときの処理の
流れである。排他制御部11は、二相ロックを用いた釜
飯同時実行制御の規則でレコードをライトロックできる
とき、トランザクションの一貫性を保証しながら該レコ
ードの更新を可能と判定する。排他制御部11は、排他
制御情報表12から判定の対象レコードのロック状態を
求め、該レコードが判定を要求しているトランザクショ
ン以外のトランザクションにより保証ロックもライトロ
ックもされていないとき、該レコードをライトロックし
、更新に用いる該レコードの版の版番号を版管理表13
から求めてトランザクション実行部14に与え、該レコ
ードが判定を要求しているトランザクション以外のトラ
ンザクションにより保証ロックまたはライトロックされ
ているとき、判定を要求しているトランザクションを実
行待ちとすることでデッドロックが発生するならば該ト
ランザクションの中止を要求する信号を、デッドロック
が発生しないならば該トランザクションの実行待ちを示
す信号をトランザクション実行部14に与える。更新に
用いる版の版番号は、版管理表13の更新するレコード
に対応する版リスト111中の版番号の最大値とする。
行部14から更新トランザクションによるレコードの更
新について一貫性保証の判定を要求されたときの処理の
流れである。排他制御部11は、二相ロックを用いた釜
飯同時実行制御の規則でレコードをライトロックできる
とき、トランザクションの一貫性を保証しながら該レコ
ードの更新を可能と判定する。排他制御部11は、排他
制御情報表12から判定の対象レコードのロック状態を
求め、該レコードが判定を要求しているトランザクショ
ン以外のトランザクションにより保証ロックもライトロ
ックもされていないとき、該レコードをライトロックし
、更新に用いる該レコードの版の版番号を版管理表13
から求めてトランザクション実行部14に与え、該レコ
ードが判定を要求しているトランザクション以外のトラ
ンザクションにより保証ロックまたはライトロックされ
ているとき、判定を要求しているトランザクションを実
行待ちとすることでデッドロックが発生するならば該ト
ランザクションの中止を要求する信号を、デッドロック
が発生しないならば該トランザクションの実行待ちを示
す信号をトランザクション実行部14に与える。更新に
用いる版の版番号は、版管理表13の更新するレコード
に対応する版リスト111中の版番号の最大値とする。
トランザクション実行部14は、これにより該レコード
の最新版の複製を作成して更新を行うことになる。但し
、排他制御部11は、判定を要求しているトランザクシ
ョンが既にレコードをライトロックしているとき、複製
を作成せずに最新版を直接更新するようにトランザクシ
ョン実行部14に指示する。尚、排他制御部11は、更
新可能と判定したとき、更新により生成される版に関す
る情帽のライトスタンプをライトスタンプに用いられな
い値、例えば−1として版管理表13に登録することで
、該版が関係データベースの表の一部としてまだ有効と
なっていないことを示す。デッドロックは、保証ロック
されているレコードをリードロックしているトランザク
ションまたはレコードをライトロックしているトランザ
クションが判定を要求しているトランザクションの完了
を待っているときに発生する。尚、排他制御部11は、
デッドロックを判定するとき、一貫性の判定を要求して
いるトランザクションが既にレコードをリードロックし
ているならば、該トランザクションが最新版を更新でき
ないので、トランザクション実行部14に該トランザク
ションの中止を要求する。
の最新版の複製を作成して更新を行うことになる。但し
、排他制御部11は、判定を要求しているトランザクシ
ョンが既にレコードをライトロックしているとき、複製
を作成せずに最新版を直接更新するようにトランザクシ
ョン実行部14に指示する。尚、排他制御部11は、更
新可能と判定したとき、更新により生成される版に関す
る情帽のライトスタンプをライトスタンプに用いられな
い値、例えば−1として版管理表13に登録することで
、該版が関係データベースの表の一部としてまだ有効と
なっていないことを示す。デッドロックは、保証ロック
されているレコードをリードロックしているトランザク
ションまたはレコードをライトロックしているトランザ
クションが判定を要求しているトランザクションの完了
を待っているときに発生する。尚、排他制御部11は、
デッドロックを判定するとき、一貫性の判定を要求して
いるトランザクションが既にレコードをリードロックし
ているならば、該トランザクションが最新版を更新でき
ないので、トランザクション実行部14に該トランザク
ションの中止を要求する。
第2図(b)は、排他制御部11がトランザクション実
行部14から更新トランザクションによるレコードの参
照について一貫性保証の判定を要求されたときの処理の
流れである。排他制御部11は、二相ロックを用いた釜
飯同時実行制御の規則でレコードリードロックできると
き、トランザクションの一貫性を保証しながらレコード
の参照が可能と判定する。排他制御部11は、排他制御
柱情報表12から判定の対象レコードのロック状態を求
め、該レコードが保証ロックされていないとき、該レコ
ードをリードロックして、参照に用いる該レコードの版
の版番号を版管理表13から求めてトランザクション実
行部14に与え、該レコードが保証ロックされていると
き、判定を要求しているトランザクションを実行待ちと
することでデッドロックが発生するならば該トランザク
ションの実行の中止を要求する信号を、デッドロックが
発生しないならば該トランザクションの実行待ちを示す
信号をトランザクション実行部14に与える。但し、排
他制御部11は、レコードが保証ロックされているとき
、判定を要求しているトランザクションが既に該レコー
ドをリードロックしているならば、一貫性を保証可能と
判定する。
行部14から更新トランザクションによるレコードの参
照について一貫性保証の判定を要求されたときの処理の
流れである。排他制御部11は、二相ロックを用いた釜
飯同時実行制御の規則でレコードリードロックできると
き、トランザクションの一貫性を保証しながらレコード
の参照が可能と判定する。排他制御部11は、排他制御
柱情報表12から判定の対象レコードのロック状態を求
め、該レコードが保証ロックされていないとき、該レコ
ードをリードロックして、参照に用いる該レコードの版
の版番号を版管理表13から求めてトランザクション実
行部14に与え、該レコードが保証ロックされていると
き、判定を要求しているトランザクションを実行待ちと
することでデッドロックが発生するならば該トランザク
ションの実行の中止を要求する信号を、デッドロックが
発生しないならば該トランザクションの実行待ちを示す
信号をトランザクション実行部14に与える。但し、排
他制御部11は、レコードが保証ロックされているとき
、判定を要求しているトランザクションが既に該レコー
ドをリードロックしているならば、一貫性を保証可能と
判定する。
参照に用いる版の版番号は、版管理表13の参照するレ
コードに対応する版リスト111中のラストスタンプの
最大値に対応するものとする。トランザクション実行部
14は、これにより関係データベースの表の構成要素と
して有効な最新の該レコードの版を参照することになる
。但し、排他制御部11は1判定を要求しているトラン
ザクションが既にレコードをライトロックしているなら
ば、該トランザクションの更新で生成した版を参照させ
るため、参照するレコードに対応する版リスト111の
版番号の最大値をトランザクション実行部14に与える
。また、排他制御部11は、判定を要求しているトラン
ザクションが保証ロックされているレコードを既にリー
ドロックしているならば、該トランザクションに常に同
一の版を参照させるため、参照するレコードに対応する
版リスト111中で2番目に大きいライトスタンプに対
応する版番号をトランザクション実行部14に与える。
コードに対応する版リスト111中のラストスタンプの
最大値に対応するものとする。トランザクション実行部
14は、これにより関係データベースの表の構成要素と
して有効な最新の該レコードの版を参照することになる
。但し、排他制御部11は1判定を要求しているトラン
ザクションが既にレコードをライトロックしているなら
ば、該トランザクションの更新で生成した版を参照させ
るため、参照するレコードに対応する版リスト111の
版番号の最大値をトランザクション実行部14に与える
。また、排他制御部11は、判定を要求しているトラン
ザクションが保証ロックされているレコードを既にリー
ドロックしているならば、該トランザクションに常に同
一の版を参照させるため、参照するレコードに対応する
版リスト111中で2番目に大きいライトスタンプに対
応する版番号をトランザクション実行部14に与える。
デッドロックは、保証ロックされているレコードをリー
ドロックしているトランザクションが判定を要求してい
るトランザクションの完了を待っているときに発生する
。
ドロックしているトランザクションが判定を要求してい
るトランザクションの完了を待っているときに発生する
。
第2図(Q)は、排他制御部11がトランザクション実
行部14から更新トランザクションの完了処理を要求さ
れたときの処理の流れである。排他制御部11は、タイ
ムスタンプレジスタ19の値をインクリメントし、版管
理表13の版リスト111中の該更新トランザクション
により生成された版に関する情報のライトスタンプを−
1からタイムスタンプレジスタ19の値に変更すること
で該版を関係データベースの表の構成要素として有効化
する。また、排他制御部11は、該更新トランザクショ
ンに関する全てのロック情報を排他制御情報表12から
削除する。但し、排他制御部11は、該更新トランザク
ションによりライトロックされているレコードの内、少
なくとも1つのレコードが他のトランザクションにより
リードロックされているならば、該ライトロックを保証
ロックに変更する。排他制御部11は、ライトロックを
保証ロックに変更したとき、該ライトロックの解除を待
っていたトランザクションがリードロックの解除を新た
に待つことになるので、該リードロックの解除を待つこ
とになったトランザクションについてデッドロックの判
定を行い、デッドロックが発生するとき、該リードロッ
ク待つことになったトランザクションの中止を示す信号
をトランザクション実行部14に与える。また、排他制
御部11は、該更新トランザクションによるリードロッ
クの解除で保証ロックされているレコードの全てのリー
ドロックが解除されたならば、該保証ロックを同時に解
除する。排他制御部11は、ライトロックと保証ロック
を解除したレコードのレコード識別子をトランザクショ
ン実行部14に与える。トランザクション実行部14は
、該レコード識別子を基に実行待ちトランザクションを
再開する。
行部14から更新トランザクションの完了処理を要求さ
れたときの処理の流れである。排他制御部11は、タイ
ムスタンプレジスタ19の値をインクリメントし、版管
理表13の版リスト111中の該更新トランザクション
により生成された版に関する情報のライトスタンプを−
1からタイムスタンプレジスタ19の値に変更すること
で該版を関係データベースの表の構成要素として有効化
する。また、排他制御部11は、該更新トランザクショ
ンに関する全てのロック情報を排他制御情報表12から
削除する。但し、排他制御部11は、該更新トランザク
ションによりライトロックされているレコードの内、少
なくとも1つのレコードが他のトランザクションにより
リードロックされているならば、該ライトロックを保証
ロックに変更する。排他制御部11は、ライトロックを
保証ロックに変更したとき、該ライトロックの解除を待
っていたトランザクションがリードロックの解除を新た
に待つことになるので、該リードロックの解除を待つこ
とになったトランザクションについてデッドロックの判
定を行い、デッドロックが発生するとき、該リードロッ
ク待つことになったトランザクションの中止を示す信号
をトランザクション実行部14に与える。また、排他制
御部11は、該更新トランザクションによるリードロッ
クの解除で保証ロックされているレコードの全てのリー
ドロックが解除されたならば、該保証ロックを同時に解
除する。排他制御部11は、ライトロックと保証ロック
を解除したレコードのレコード識別子をトランザクショ
ン実行部14に与える。トランザクション実行部14は
、該レコード識別子を基に実行待ちトランザクションを
再開する。
第2図(d)は、排他制御部11がトランザクション実
行部14から更新トランザクションの中止処理を要求さ
れたときの処理の流れである。排他制御部11は、更新
トランザクションが生成した版に関する情報を版管理表
13から削除し、該更新トランザクションに関する全て
のロック情報を排他制御情報表12から削除する。更新
トランザクションが生成した版は、更新トランザクショ
ンがライトロックしているレコードを構成する版の内、
ライトスタンプが−1のものである。排他制御部11は
、該更新トランザクションによるリードロックの解除で
保証ロックされているレコードの全てのリードロックが
解除されたとき、該保証ロックも同時に解除する。排他
制御部11は、ライトロックと保証ロックを解除したレ
コードのレコード識別子をトランザクション実行部14
に与える。トランザクション実行部14は、該レコード
識別子を基に実行待ちトランザクションを再開する。
行部14から更新トランザクションの中止処理を要求さ
れたときの処理の流れである。排他制御部11は、更新
トランザクションが生成した版に関する情報を版管理表
13から削除し、該更新トランザクションに関する全て
のロック情報を排他制御情報表12から削除する。更新
トランザクションが生成した版は、更新トランザクショ
ンがライトロックしているレコードを構成する版の内、
ライトスタンプが−1のものである。排他制御部11は
、該更新トランザクションによるリードロックの解除で
保証ロックされているレコードの全てのリードロックが
解除されたとき、該保証ロックも同時に解除する。排他
制御部11は、ライトロックと保証ロックを解除したレ
コードのレコード識別子をトランザクション実行部14
に与える。トランザクション実行部14は、該レコード
識別子を基に実行待ちトランザクションを再開する。
第2図(a)は、排他制御部11がトランザクション実
行部14から検索トランザクションによるレコードの参
照について一貫性保証を要求されたときの処理の流れで
ある。排他制御部11は、基本タイムスタンプ順序を用
いた多板同時実行制御の規則、つまり版管理表13の参
照するレコードに対応する版リスト111中の版番号か
ら検索トランザクションのタイムスタンプ以下で最大の
ライトスタンプを持つものを選択してトランザクション
実行部14に与える。
行部14から検索トランザクションによるレコードの参
照について一貫性保証を要求されたときの処理の流れで
ある。排他制御部11は、基本タイムスタンプ順序を用
いた多板同時実行制御の規則、つまり版管理表13の参
照するレコードに対応する版リスト111中の版番号か
ら検索トランザクションのタイムスタンプ以下で最大の
ライトスタンプを持つものを選択してトランザクション
実行部14に与える。
第6図は、第1図のデータベース処理装置で、トランザ
クション処理を実行した例を示す。第6図において、6
1はデータベース格納部17に格納された関係データベ
ースの表の1つであり、62.63.64はレコード識
別子Zで識別されるレコード(以降、レコードZと呼ぶ
)に対応する版である。
クション処理を実行した例を示す。第6図において、6
1はデータベース格納部17に格納された関係データベ
ースの表の1つであり、62.63.64はレコード識
別子Zで識別されるレコード(以降、レコードZと呼ぶ
)に対応する版である。
更新トランザクションE、Gはレコード2を更新し、検
索トランザクションFはレコードZを参照するものとす
る。更新トランザクションEは時刻nでレコードZをラ
イトロックし、レコードZの版62を基に更新後の版6
3を生成する。版63のライトスタンプは、このとき−
1に設定される。検索トランザクションFは、開始時の
タイムスタンプレジスタ19の値Oをタイムスタンプと
して与えられているので、時刻0でレコード2の版62
を選択して参照する。レコードZの版63のライトスタ
ンプは、時刻qで更新トランザクションEが終了すると
き、タイムスタンプレジスタ19をインクリメントした
値1に設定される。また、トランザクションEによるレ
コードZのライトロックは1時刻qで更新トランザクシ
ョンEが終了するとき、レコードZが他のトランザクシ
ョンによりリードロックされていないので解除される。
索トランザクションFはレコードZを参照するものとす
る。更新トランザクションEは時刻nでレコードZをラ
イトロックし、レコードZの版62を基に更新後の版6
3を生成する。版63のライトスタンプは、このとき−
1に設定される。検索トランザクションFは、開始時の
タイムスタンプレジスタ19の値Oをタイムスタンプと
して与えられているので、時刻0でレコード2の版62
を選択して参照する。レコードZの版63のライトスタ
ンプは、時刻qで更新トランザクションEが終了すると
き、タイムスタンプレジスタ19をインクリメントした
値1に設定される。また、トランザクションEによるレ
コードZのライトロックは1時刻qで更新トランザクシ
ョンEが終了するとき、レコードZが他のトランザクシ
ョンによりリードロックされていないので解除される。
トランザクションGは、時刻rでレコードZの版63を
基に更新後の版64を生成する1版64のライトスタン
プは、このとき−1に設定される。レコードZの版64
のライトスタンプは、時刻tて更新トランザクションG
が終了するとき、タイムスタンプレジスタ19をインク
リメントした値2に設定される。また、トランザクショ
ンGによるレコードZのライトロックは、時刻tで更新
トランザクションEが終了するとき、レコードZが他の
トランザクションによりリードロックされていないので
解除される。
基に更新後の版64を生成する1版64のライトスタン
プは、このとき−1に設定される。レコードZの版64
のライトスタンプは、時刻tて更新トランザクションG
が終了するとき、タイムスタンプレジスタ19をインク
リメントした値2に設定される。また、トランザクショ
ンGによるレコードZのライトロックは、時刻tで更新
トランザクションEが終了するとき、レコードZが他の
トランザクションによりリードロックされていないので
解除される。
上記実施例では、参照、更新、追加を行うデータの大き
さとしてレコードを単位としているが、レコード以外の
1例えばページ等を用いても、同様の方法により同時実
行性の高いデータベース処理装置を実現することができ
る。
さとしてレコードを単位としているが、レコード以外の
1例えばページ等を用いても、同様の方法により同時実
行性の高いデータベース処理装置を実現することができ
る。
以上説明したように、本発明では、トランザクションを
検索トランザクションと更新トランザクションに分け、
検索トランザクションを基本タイムスタンプ順序を用い
た多版同時実行制御で、更新トランザクションを二相ロ
ックを用いた多版同時実行制御で管理する。このことに
より、検索トランザクションは、更新中のデータの参照
で関係データベースの表の構成要素としてまだ有効でな
い版を選択しないため、実行待ちとなることなく常に処
理を行える。また、更新トランザクションは、検索トラ
ンザクションによるデータの参照でデータがリードロッ
クされないため、データが保証ロックされる期間が短く
なり、実行待ちの少ない処理が行える。従って、トラン
ザクションの同時実行性が従来の方法に比べて増加し、
トランザクションの同時実行性の高いデータベース処理
装置を実現できる。特に、従来の二相ロックを用いた多
版同時実行制御でトランザクションの同時実行性を劣下
させる原因となっていた大量のデータを参照する検索ト
ランザクションと、従来の基本タイムスタンプ順序を用
いた多版同時実行制御で実行が中止され易かった複数の
データを参照した後その一部を更新するような更新トラ
ンザクションが同時処理される業務において効果が高く
なる。
検索トランザクションと更新トランザクションに分け、
検索トランザクションを基本タイムスタンプ順序を用い
た多版同時実行制御で、更新トランザクションを二相ロ
ックを用いた多版同時実行制御で管理する。このことに
より、検索トランザクションは、更新中のデータの参照
で関係データベースの表の構成要素としてまだ有効でな
い版を選択しないため、実行待ちとなることなく常に処
理を行える。また、更新トランザクションは、検索トラ
ンザクションによるデータの参照でデータがリードロッ
クされないため、データが保証ロックされる期間が短く
なり、実行待ちの少ない処理が行える。従って、トラン
ザクションの同時実行性が従来の方法に比べて増加し、
トランザクションの同時実行性の高いデータベース処理
装置を実現できる。特に、従来の二相ロックを用いた多
版同時実行制御でトランザクションの同時実行性を劣下
させる原因となっていた大量のデータを参照する検索ト
ランザクションと、従来の基本タイムスタンプ順序を用
いた多版同時実行制御で実行が中止され易かった複数の
データを参照した後その一部を更新するような更新トラ
ンザクションが同時処理される業務において効果が高く
なる。
第1図は本発明を用いたデータベース処理装置の一実施
例を示す図、第2図は第1図における排他制御部の処理
の流れを示す図、第3図は一般的なデータベース処理装
置の構成例を示す図、第4図は二相ロックを用いた多版
同時実行制御によるトランザクション処理の例を示す図
、第5図は基本タイムスタンプ順序を用いた多版同時実
行制御によるトランザクション処理の例を示す図、第6
図は本発明を用いたトランザクション処理の例を示す図
である。 11・・・排他制御部、 12・・・排他制御情報表
、13・・・版管理表、 14・・・トランザクション実行部、 15・・・データベース情報表。 16・・・アドレス変換表。 17・・・データベース格納部、 18・・・端末、
19・・・タイムスタンプレジスタ、 110・・・データベースレコードリスト、111・・
・版リスト、 112・・・ロックレコードリスト、 113・・・ロックトランザクションリスト。 第2図(し) 第2図Cす G亦り 第2図(0)
例を示す図、第2図は第1図における排他制御部の処理
の流れを示す図、第3図は一般的なデータベース処理装
置の構成例を示す図、第4図は二相ロックを用いた多版
同時実行制御によるトランザクション処理の例を示す図
、第5図は基本タイムスタンプ順序を用いた多版同時実
行制御によるトランザクション処理の例を示す図、第6
図は本発明を用いたトランザクション処理の例を示す図
である。 11・・・排他制御部、 12・・・排他制御情報表
、13・・・版管理表、 14・・・トランザクション実行部、 15・・・データベース情報表。 16・・・アドレス変換表。 17・・・データベース格納部、 18・・・端末、
19・・・タイムスタンプレジスタ、 110・・・データベースレコードリスト、111・・
・版リスト、 112・・・ロックレコードリスト、 113・・・ロックトランザクションリスト。 第2図(し) 第2図Cす G亦り 第2図(0)
Claims (1)
- (1)関係データベースを格納するデータベース格納部
と、関係データベースの表を構成するデータに対して、
該データの参照のみを行う検索トランザクションと、該
データの更新を新たな版の生成により実行する更新トラ
ンザクションとを混在して実行するトランザクション実
行部と、該トランザクション実行部で複数の検索トラン
ザクションと複数の更新トランザクションを同時に実行
する際のトランザクションの一貫性を保証する排他制御
部とからなるデータベース処理装置において、 前記更新トランザクションによるデータのアクセス状態
を示す排他制御情報を登録する排他制御情報表と、デー
タを構成する版が前記関係データベースの表の構成要素
として有効となった時刻を示すタイムスタンプを登録す
る版管理表を設け、前記排他制御部は、 前記トランザクション実行部で更新トランザクションに
よるデータの参照と更新を実行するときは、該更新トラ
ンザクションの一貫性を前記排他制御情報に登録された
該データに関する排他制御情報を基に保証し、データの
更新の際は前記管理表から該データの最新の版を選択し
て前記トランザクション実行部に該版を基に新たな版の
生成を行わせ、 前記トランザクション実行部で更新トランザクションが
完了するときは、該更新トランザクションによるデータ
の更新で生成した版に該更新トランザクションの完了時
刻に相当するタイムスタンプを割当て、前記版管理表に
登録し、前記トランザクシヨン実行部で検索トランザク
ションによるデータの参照を実行するときは、該検索ト
ランザクションの一貫性を前記トランザクション実行部
により該検索トランザクションに割当てられた該検索ト
ランザクションの開始時刻に相当するタイムスタンプと
前記版管理表に登録された該データの版のタイムスタン
プとの比較により保証し、 異なるトランザクションから同一のデータを同時に参照
、更新しながら、トランザクションの一貫性を保証する
ことを特徴とするデータベースの排他制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1262810A JPH03123946A (ja) | 1989-10-07 | 1989-10-07 | データベースの排他制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1262810A JPH03123946A (ja) | 1989-10-07 | 1989-10-07 | データベースの排他制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH03123946A true JPH03123946A (ja) | 1991-05-27 |
Family
ID=17380928
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1262810A Pending JPH03123946A (ja) | 1989-10-07 | 1989-10-07 | データベースの排他制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH03123946A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5809503A (en) * | 1993-07-08 | 1998-09-15 | Fujitsu Limited | Locking mechanism for check in/check out model which maintains data consistency amongst transactions |
| KR100445426B1 (ko) * | 2001-12-26 | 2004-08-25 | 한국전자통신연구원 | 데이터베이스 연결 관리방법 |
| US9147011B2 (en) | 2011-03-18 | 2015-09-29 | Fujitsu Limited | Searching method, searching apparatus, and recording medium of searching program |
| JP2020503588A (ja) * | 2016-11-04 | 2020-01-30 | セールスフォース ドット コム インコーポレイティッド | コミットされていないトランザクションを有するデータベース・レコードのマルチバージョン同時制御 |
-
1989
- 1989-10-07 JP JP1262810A patent/JPH03123946A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5809503A (en) * | 1993-07-08 | 1998-09-15 | Fujitsu Limited | Locking mechanism for check in/check out model which maintains data consistency amongst transactions |
| KR100445426B1 (ko) * | 2001-12-26 | 2004-08-25 | 한국전자통신연구원 | 데이터베이스 연결 관리방법 |
| US9147011B2 (en) | 2011-03-18 | 2015-09-29 | Fujitsu Limited | Searching method, searching apparatus, and recording medium of searching program |
| JP2020503588A (ja) * | 2016-11-04 | 2020-01-30 | セールスフォース ドット コム インコーポレイティッド | コミットされていないトランザクションを有するデータベース・レコードのマルチバージョン同時制御 |
| US11416470B2 (en) | 2016-11-04 | 2022-08-16 | Salesforce, Inc. | Multiversion concurrency control of database records with uncommitted transactions |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7243088B2 (en) | Database management system with efficient version control | |
| US9336258B2 (en) | Reducing database locking contention using multi-version data record concurrency control | |
| US5890166A (en) | Versioned-database management system in which tasks are associated with promote groups which comprise a set of parts whose changes are to be promoted | |
| KR101573965B1 (ko) | 분산형 저장 시스템 내의 데이터의 원자 다중 변경 | |
| US5600832A (en) | Variant domains and variant maps in a versioned database management system | |
| EP1040433B1 (en) | A fine-grained consistency mechanism for optimistic concurrency control using lock groups | |
| EP1540533B1 (en) | Controlling visibility in multi-version database systems | |
| US7107267B2 (en) | Method, system, program, and data structure for implementing a locking mechanism for a shared resource | |
| US5592661A (en) | Detection of independent changes via change identifiers in a versioned database management system | |
| US5625815A (en) | Relational database system and method with high data availability during table data restructuring | |
| US5504879A (en) | Resolution of relationship source and target in a versioned database management system | |
| EP3401806A1 (en) | Atomic processing of compound database transactions that modify a metadata entity | |
| US8156124B2 (en) | Systems and methods for performing authorization | |
| JP3512439B2 (ja) | チェックイン・チェックアウトモデルにおける施錠方式 | |
| US20110040738A1 (en) | Parallel nested transactions in transactional memory | |
| JPH04337850A (ja) | データベース・トランザクション及び照会処理システム | |
| JPH09146817A (ja) | 排他制御方法 | |
| CN109947742B (zh) | 面向二阶段锁的多版本数据库并发控制方法和系统 | |
| WO2023124242A1 (zh) | 事务执行方法、装置、设备和存储介质 | |
| JPH06332780A (ja) | データベース排他制御方法 | |
| JPH03123946A (ja) | データベースの排他制御方法 | |
| JPH05307478A (ja) | データベース管理システムの構成法 | |
| EP0100821B1 (en) | Method and apparatus for managing a database | |
| Sheng | Non-blocking lazy schema changes in multi-version database management systems | |
| JP2610926B2 (ja) | トランザクション制御方式 |