JPH06214847A - トランザクション処理制御システム - Google Patents

トランザクション処理制御システム

Info

Publication number
JPH06214847A
JPH06214847A JP5006012A JP601293A JPH06214847A JP H06214847 A JPH06214847 A JP H06214847A JP 5006012 A JP5006012 A JP 5006012A JP 601293 A JP601293 A JP 601293A JP H06214847 A JPH06214847 A JP H06214847A
Authority
JP
Japan
Prior art keywords
transaction
average access
access time
lock
transactions
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
JP5006012A
Other languages
English (en)
Inventor
Naoto Sato
直人 佐藤
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 JP5006012A priority Critical patent/JPH06214847A/ja
Publication of JPH06214847A publication Critical patent/JPH06214847A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】所定のデータ(或いはディスクページ)に対す
る過去のトランザクションのリードとライトそれぞれの
アクセス平均時間を考慮しながら、トランザクションの
実行順序を決定することにより、並列処理の効率を向上
させることができるトランザクション処理制御システム
を提供する。 【構成】ロック待ち行列挿入部51は、トランザクショ
ン待ち行列10内の順序に従ってトランザクションをロ
ック待ち行列20に挿入する。また平均アクセス時間計
算部52は、データベース内のデータに対するトランザ
クションの読み出し及び書き込みそれぞれの平均アクセ
ス時間を演算し、この演算結果を平均アクセス時間格納
部40に記憶する。そして起動トランザクション決定部
53は、平均アクセス時間格納部40に記憶されている
読み出し及び書き込みそれぞれの平均アクセス時間情報
に基づいて、ロック待ち行列20内のトランザクション
の実行順序を変更する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データベース内の各
データに対し、アクセス要求したトランザクションに関
する待ち行列内の順序でアクセスを許可するトランザク
ション処理制御システムに関する。
【0002】
【従来の技術】通常、トランザクションの実行順序は、
処理依頼した時刻情報によって決定される。例えば特開
平3−130842号公報に開示されているように、ア
プリケーションのソースコードなどから、各トランザク
ションの処理時間を予測し、予測した任意のトランザク
ションの処理時間と現在の時刻から、トランザクション
の優先度を反映した時刻印(新たな時刻印)を当該任意
のトランザクションに付加し、この新たな時刻印情報に
基づいてトランザクションを実行するようにしている。
【0003】
【発明が解決しようとする課題】ところで、例えば、あ
るデータ(あるいはディスクページ)に、異なるトラン
ザクションT1、T2からリードロックが順次要求さ
れ、その後、トランザクションT3からライトロック要
求が発生したとする。この場合は、リードロック同志は
共有することができるので、それらの要求順番通り、先
にリード要求が全て処理され(つまりトランザクション
T1、T2の順に実行される)、最後にライト要求が処
理される(つまりトランザクションT3が実行され
る)。
【0004】ここで仮に、リード処理には時間を要する
ことが多く、一方、ライト処理に要する時間は短いとい
うことが予測されるならば、ライト要求を先に済ませる
ことによって、待ち時間が極端に長くなるようなトラン
ザクション(つまりこの場合のライト要求を発行してい
るトランザクションT3)を少なくすることができるこ
とになり、結果的に、複数のトランザクションの同時実
行処理効率を向上させることが可能となる。
【0005】しかしながら、上記特開平3−13084
2号公報に開示されたものでは、任意のデータ(あるい
はディスクページ)に対する過去のトランザクションの
リードとライトそれぞれのアクセス平均時間(処理時
間)を考慮して、現在のトランザクションの実行順序を
決定するようにしていないので、上述したように待ち時
間が極端に長くなるようなトランザクションが存在する
こともあり、複数のトランザクションの同時実行処理効
率を向上させることは極めて困難である。
【0006】この発明は、所定のデータ(或いはディス
クページ)に対する過去のトランザクションのリードと
ライトそれぞれのアクセス平均時間を考慮しながら、ト
ランザクションの実行順序を決定することにより、並列
処理の効率を向上させることができるトランザクション
処理制御システムを提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、この発明は、データベース内のデータに対し、アク
セス要求したトランザクションに関する待ち行列の順序
に従ったトランザクションに対してアクセスを許可する
トランザクション処理制御システムにおいて、アクセス
要求毎に、前記データに対するトランザクションの読み
出し及び書き込みそれぞれの平均アクセス時間を演算す
る演算手段と、該演算手段により演算された前記平均ア
クセス時間情報を記憶する記憶手段と、該記憶手段内の
前記平均アクセス時間情報に基づいて前記待ち行列内の
順序を変更する変更手段とを具備している。
【0008】
【作用】この発明においては、演算手段によって、デー
タベース内のデータに対するトランザクションの読み出
し及び書き込みそれぞれの平均アクセス時間を演算し、
この演算結果を記憶手段に記憶すると、変更手段は、記
憶手段に記憶されている読み出し及び書き込みそれぞれ
の平均アクセス時間情報に基づいて前記待ち行列内の順
序を変更するようにしているので、データの読み出し及
び書き込みそれぞれの平均アクセス時間のうち、短い平
均アクセス時間に対応するアクセス(読み出しあるいは
書き込みのうちいずれか)を要求しているトランザクシ
ョンを優先して実行させることができる。
【0009】
【実施例】以下、本発明の実施例を添付図面を参照して
説明する。
【0010】図1は、本発明に係るトランザクション処
理制御システムの一実施例を機能ブロック図で示したも
のである。同図において、トランザクション処理制御シ
ステムは、アクセス要求したトランザクションを格納す
るトランザクション待ち行列10と、ロック要求したト
ランザクションを格納するロック待ち行列20と、デー
タ30に対するトランザクションの読み出し及び書き込
みそれぞれの平均アクセス時間情報を格納する平均アク
セス時間格納部40と、トランザクション処理制御部5
0とを有して構成されている。
【0011】トランザクション処理制御部50は、ロッ
ク要求したトランザクションを、平均アクセス時間格納
部40を参照して、ロック待ち行列20の適切な位置に
挿入するロック待ち行列挿入部51と、アクセス要求毎
に、トランザクションの読み出し及び書き込みそれぞれ
の平均アクセス時間を演算する平均アクセス時間計算部
52と、平均アクセス時間格納部40内の各平均アクセ
ス時間情報に基づいてロック待ち行列20内のトランザ
クションの実行順序を変更する起動トランザクション決
定部53とを有して構成されている。
【0012】なおこの実施例においてデータとは、ディ
スクページなどデータ管理単位のことを意味している。
【0013】係る構成において、本実施例のロック処理
について図2を参照して説明する。図2はその処理動作
を示すフローチャートである。
【0014】トランザクション処理制御部50は、処理
要求はあるか否かを判断し(ステップ101)、要求が
ない場合には要求があるまで待機し、一方、要求がある
場合は要求の種類はロック要求なのかロック解放要求な
のかを判断する(ステップ102)。
【0015】ロック要求の場合は、アクセス要求の対象
であるデータに対し既にロックが掛かっているか否かを
判断し(ステップ103)、ロックが掛かっている場合
はロックがコンフリクトするか否かを判断する(ステッ
プ104)。
【0016】なおコンフリクトとは、周知のように、既
にリードロックがかかっているときに、新たなロック要
求としてライトロックが発生したとき、あるいは既にラ
イトロックがかかっているときに、新たなロック要求と
してリードロックあるいはライトロックが発生したと
き、のことである。
【0017】ステップ104において、コンフリクトす
る場合は、トランザクション処理制御部50において
は、ロック待ち行列挿入部51は、ロック要求したトラ
ンザクションをロック待ち行列20へ繋ぎ(ステップ1
05)、その後、上記ステップ101に戻る。ステップ
103、104において「NO」の場合は、トランザク
ション処理制御部50では、起動トランザクション決定
部53によって、ロック要求したトランザクションにア
クセス権を付与し(ステップ106)、その後、上記ス
テップ101に戻る。
【0018】なおステップ102においてロック解放要
求の場合は、トランザクション処理制御部50は、アク
セスされていたデータに対するロックを解放し(ステッ
プ107)、次にロック待ちしているトランザクション
はあるか否かを判断する(ステップ108)。
【0019】ここで、ロック待ちしているものがない場
合には上記ステップ101に戻り、一方、ロック待ちし
ているものがある場合は、起動トランザクション決定部
53は、平均アクセス時間格納部40内のロックされる
べくデータのリード及びライトそれぞれの平均アクセス
時間を参照して(ステップ109)、リードの平均アク
セス時間(以下、リード平均アクセス時間という)とラ
イトの平均アクセス時間(以下、ライト平均アクセス時
間という)との差は予め設定された閾値を越えたか否か
を判断する(ステップ110)。
【0020】ここで、閾値を越えている場合は、起動ト
ランザクション決定部53は、予め設定された選択基準
(これは、この実施例では、平均アクセス時間が短いリ
ードあるいライトのいずれかを要求しているロックの種
類を選択するということを意味する)に従って、次にア
クセス権を付与すべきロックの種類(リード又はライ
ト)を決定し(ステップ111)、この決定されたロッ
クの種類であって、且つロック待ち行列20内で最も先
頭にあるロック要求のトランザクションにアクセス権を
付与する(ステップ112)。その後、ステップ101
に戻る。
【0021】一方、上記ステップ110において閾値を
越えていない場合は、起動トランザクション決定部53
は、ロック待ち行列20内で最も先頭にあるロック要求
のトランザクションにアクセス権を付与する(ステップ
113)。その後、ステップ101に戻る。
【0022】次に、本実施例のトランザクションの処理
について図3を参照して説明する。図3はその処理動作
を示すフローチャートである。
【0023】平均アクセス時間計算部52は、各トラン
ザクションが実行される際に、トランザクション単位に
その実行開示時刻を保持する(ステップ201)。その
後、そのトランザクションの実際の処理が開始されると
(ステップ202)、平均アクセス時間計算部52は、
当該トランザクションに、アクセスしたデータの平均ア
クセス時間格納部40内のロケーションを保持する(ス
テップ203)。
【0024】そして上記トランザクションの実行が終了
すると(ステップ204)、平均アクセス時間計算部5
2は、実行開始時刻と、処理が終了した時点の時刻とに
基づいて、当該トランザクションの処理時間を演算し
(ステップ205)、アクセスしたデータのロケーショ
ン毎に、平均アクセス時間を演算して、この演算結果
を、平均アクセス時間格納部40に格納する(ステップ
206)。
【0025】次に図4に示す具体例を挙げて説明する。
【0026】ここで、T0、T1、T2をそれぞれトラ
ンザクションとし、現在トランザクションT0が、デー
タ30に既にリードロックを掛けてあり、実行中である
とする。このとき、トランザクション処理制御システム
においては、図4に示すように、トランザクション待ち
行列10には、トランザクションT1、T2が待機され
ている。なおこの時点においては、平均アクセス時間格
納部40に格納されているデータ30についてのリード
平均アクセス時間及びライト平均アクセス時間は、図4
に示すように、リード回数1000回に当たりのリード
平均アクセス時間(図4ではリード平均と表記してい
る)が10sec(秒)であり、一方、ライト回数10
00回に当たりのライト平均アクセス時間(図4ではラ
イト平均と表記している)が0.1sec(秒)であ
る。またロック待ち行列20内はトランザクションT
1、T2は繋がっておらず、更に符号300で示される
点線内のデータにおいて、トランザクションT0には、
これが実行中であるので既に実行開始時刻t0が保持さ
れ、トランザクションT2には、これが未実行であるの
で実行開始時刻t2が保持されていないものとする、こ
のような状態において、トランザクションT1からデー
タ30に対するリードロック要求があると、トランザク
ション処理部50においては、トランザクションT1
を、トランザクションT0が終了するまで待機させるこ
とになるので、ロック待ち行列挿入部51は、トランザ
クションT1をロック待ち行列20のデータ30に関す
る行列のところに繋ぐ。
【0027】その後、更にトランザクションT2から、
データ30に対するライトロック要求があると、トラン
ザクション処理部50においては、ロック待ち行列挿入
部51が、トランザクションT2を、ロック待ち行列2
0内のデータ30に関する行列に、トランザクションT
1の次に挿入する。
【0028】このとき、起動トランザクション決定部5
3では、平均アクセス時間格納部40内のデータ30の
ロケーションに記憶されているリードとライトの平均ア
クセス時間を参照して、リード平均アクセス時間とライ
ト平均アクセス時間との割合を求めると共に、この割合
(比)と予め設定された閾値とを比較し、この比較結果
に基づいて、ロック待ち行列20内のトランザクション
の実行順序を変更するか否かを決定する。この場合は、
起動トランザクション決定部53は、リード平均アクセ
ス時間がライト平均アクセス時間の100倍の時間を要
すると判定し、この比と、予め設定された閾値(例えば
50倍)とを比較する。この比較結果として、リードが
明らかに時間がかかると判断して、ロック待ち行列20
内の先頭にあるトランザクションT1に対してリード権
を直ぐに与えることはせずに、トランザクションT2と
トランザクションT1とを入れ替える。
【0029】この結果、ロック待ち行列20内には、先
頭にライトロック要求を発行したトランザクションT
2、次にリードロック要求を発行したトランザクション
T1の順序の待ち行列で繋がれることになる。
【0030】なお、リード平均アクセス時間がライト平
均アクセス時間よりも長い時間を要している場合であっ
ても、これらの平均アクセス時間の比が、上記閾値(例
えば50倍)より小さい場合は、トランザクションの実
行順序の変更は行われず、先頭にリードロック要求を発
行したトランザクションT1、次にライトロック要求を
発行したトランザクションT2の順序の待ち行列のまま
となる。
【0031】そしてトランザクションT0の実行が終了
すると、平均アクセス時間計算部52は、トランザクシ
ョンT0に保持されている実行開始時刻t0を参照し
て、この実行開始時刻t0と、トランザクションT0の
実行が終了した時点の時刻とに基づいて、トランザクシ
ョンT0の処理時間Pt(sec)(この場合はリード
アクセス時間)を求めると共に、{10(sec)+P
t(sec)}/(1000+1)を演算して、リード
平均アクセス時間を求める。こうして求められた新たな
リード平均アクセス時間は平均アクセス時間格納部40
のデータ30のロケーションのリード平均の欄に書き込
まれる(オーバライトされる)。勿論、リード回数は1
001回に更新される。
【0032】続いて、ライトロック要求を発行したトラ
ンザクションT2の実行が開始すると、このトランザク
ションT2には、これが実行開始されたので実行開始時
刻t2が保持される。
【0033】そしてトランザクションT2の実行が終了
すると、平均アクセス時間計算部52は、上記同様にし
て、トランザクションT2の処理時間を求めると共に、
平均ライトアクセス時間を求めた後、この値を、平均ア
クセス時間格納部40のデータ30のロケーションのラ
イト平均の欄に書き込む。
【0034】更に続いて、リードロック要求を発行した
トランザクションT1についても、上記同様な処理が実
施される。
【0035】なおこの実施例においては、1つのトラン
ザクション中で、リードやライトが複数回行われた場合
においても、それぞれ1回のカウントとし、リード回数
或いはライト回数を+1インクリメントする(これらは
平均アクセス回数の演算に使用する)。例えばトランザ
クションT2からライトロックとリードロックの2つの
ロック要求があった場合は、アクセス回数は2回とな
り、リード回数及びライト回数はそれぞれ+1インクリ
メントされる。しかし、処理時間は、ライトに要する処
理時間と、リードに要する処理時間とに分けられ、それ
ぞれの平均アクセス時間の算出に用いられる。
【0036】以上説明したように本実施例によれば、ロ
ック要求されたデータに対する過去のトランザクション
のリードとライトの平均アクセス時間を考慮して、ロッ
ク待ち行列内のトランザクションの実行順序を変更する
ようにしているので、例えばライトの平均アクセス時間
がリードの平均アクセス時間より短く、これらの割合
が、予め設定された閾値より大きい場合は、先にリード
ロック要求したトランザクションが存在していたとして
も、その後にライトロック要求を発行したトランザクシ
ョンが優先的に実行されることになる。したがって、処
理時間を多く要するライト処理の前に、処理時間の短い
ライト処理を実行することができるので、結果として複
数のトランザクションの同時実行処理効率を向上させる
ことができる。
【0037】
【発明の効果】以上説明したように本発明によれば、デ
ータベース内のデータに対するトランザクションの読み
出し及び書き込みそれぞれの平均アクセス時間に基づい
て、トランザクションの実行順序を決定するようにして
いるので、データの読み出し及び書き込みそれぞれの平
均アクセス時間のうち、短い平均アクセス時間に対応す
るアクセス(読み出し或いは書き込みのうちいずれかの
アクセス)を要求しているトランザクションを優先して
実行させることができることとなり、結果として複数の
トランザクションの同時実行処理効率を向上させること
ができるという利点がある。
【図面の簡単な説明】
【図1】本発明に係るトランザクション処理制御システ
ムの一実施例を示すきのうブロック図。
【図2】本実施例のロック処理動作を示すフローチャー
ト。
【図3】本実施例のトランザクション処理動作を示すフ
ローチャート。
【図4】本実施例の処理過程を説明するための図。
【符号の説明】
10…トランザクション待ち行列、20…ロック待ち行
列、30…データ、40…平均アクセス時間格納部、5
0…トランザクション処理制御部、51…ロック待ち行
列挿入部、52…平均アクセス時間計算部、53…起動
トランザクション決定部。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】データベース内のデータに対し、アクセス
    要求したトランザクションに関する待ち行列の順序に従
    ったトランザクションに対してアクセスを許可するトラ
    ンザクション処理制御システムにおいて、 アクセス要求毎に、前記データに対するトランザクショ
    ンの読み出し及び書き込みそれぞれの平均アクセス時間
    を演算する演算手段と、 前記演算手段により演算された前記平均アクセス時間情
    報を記憶する記憶手段と、 前記記憶手段内の前記平均アクセス時間情報に基づいて
    前記待ち行列内の順序を変更する変更手段とを具備した
    ことを特徴とするトランザクション処理制御システム。
JP5006012A 1993-01-18 1993-01-18 トランザクション処理制御システム Pending JPH06214847A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5006012A JPH06214847A (ja) 1993-01-18 1993-01-18 トランザクション処理制御システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5006012A JPH06214847A (ja) 1993-01-18 1993-01-18 トランザクション処理制御システム

Publications (1)

Publication Number Publication Date
JPH06214847A true JPH06214847A (ja) 1994-08-05

Family

ID=11626804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5006012A Pending JPH06214847A (ja) 1993-01-18 1993-01-18 トランザクション処理制御システム

Country Status (1)

Country Link
JP (1) JPH06214847A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107526629A (zh) * 2016-06-22 2017-12-29 中兴通讯股份有限公司 一种事务处理系统及并发控制方法
CN113656510A (zh) * 2021-08-26 2021-11-16 支付宝(杭州)信息技术有限公司 区块链系统中执行交易的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107526629A (zh) * 2016-06-22 2017-12-29 中兴通讯股份有限公司 一种事务处理系统及并发控制方法
CN107526629B (zh) * 2016-06-22 2023-04-14 中兴通讯股份有限公司 一种事务处理系统及并发控制方法
CN113656510A (zh) * 2021-08-26 2021-11-16 支付宝(杭州)信息技术有限公司 区块链系统中执行交易的方法及装置

Similar Documents

Publication Publication Date Title
US5852747A (en) System for awarding token to client for accessing first data block specified in client request without interference due to contention from other client
US7653791B2 (en) Realtime-safe read copy update with per-processor read/write locks
US6678802B2 (en) Method and apparatus for controlling access by a plurality of concurrently operating processes to a resource
JPH04229355A (ja) データアクセス方法及びデータ処理システム
US5715447A (en) Method of and an apparatus for shortening a lock period of a shared buffer
US7818309B2 (en) Method for managing data access requests utilizing storage meta data processing
US5551023A (en) System of database concurrency control based on transaction types and prior access to a data set
JP2001527242A (ja) ロックグループを用いた楽観的並行処理制御のためのきめ細やかな整合性をもたらす仕組み
US7958149B2 (en) Computer program and product for append mode insertion of rows into tables in database management systems
US8190857B2 (en) Deleting a shared resource node after reserving its identifier in delete pending queue until deletion condition is met to allow continued access for currently accessing processor
US5559979A (en) Table-based inter-system serialization control system
CN111061690B (zh) 一种基于rac的数据库日志文件读取方法和装置
JP2655755B2 (ja) バッファ・メモリ管理方法,及び該方法を実施するためのコンピュータシステム
CN115629822B (zh) 一种基于多核处理器的并发事务处理方法及其系统
JPH06214847A (ja) トランザクション処理制御システム
JPH0798663A (ja) 非同期i/o制御方式
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
JP2009037544A (ja) データベース処理方法、その実施システム及びプログラム
US8452920B1 (en) System and method for controlling a dynamic random access memory
US6643718B1 (en) Method and apparatus for controlling order dependency of items in a multiple FIFO queue structure
CN112068948B (zh) 数据散列方法、可读存储介质和电子设备
JPH1049388A (ja) 入出力制御装置
JP3184149B2 (ja) 非同期データ更新方法
CN116820333B (zh) 一种基于多线程的ssdraid-5持续写入方法
JPS62182849A (ja) デ−タ管理方式