JPH0962550A - オンライントランザクションシステム及び同システムに適用されるファイル更新制御方法 - Google Patents
オンライントランザクションシステム及び同システムに適用されるファイル更新制御方法Info
- Publication number
- JPH0962550A JPH0962550A JP7212079A JP21207995A JPH0962550A JP H0962550 A JPH0962550 A JP H0962550A JP 7212079 A JP7212079 A JP 7212079A JP 21207995 A JP21207995 A JP 21207995A JP H0962550 A JPH0962550 A JP H0962550A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- record
- update
- buffer
- data file
- 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)【要約】
【課題】データファイルへの実更新による実行中トラン
ザクションへの影響をなくし、トランザクションの並列
実行性を高める。 【解決手段】トランザクション11-i(i=1〜n)か
らのレコード更新要求に従うデータファイル14の更新
処理に際しては、更新するレコードへの同時アクセスを
排他制御機構15にて排他制御して、そのレコードの更
新をTRXバッファ制御機構17によりTRXバッファ
16上で行わせると共に、当該バッファ16上でのレコ
ード更新の履歴を更新履歴管理機構18にて生成してお
き、トランザクション11-iの確定時には、生成してお
いたトランザクション11-iに対応するレコード単位の
更新履歴をジャーナルファイル20に記録し、しかる後
に、当該ジャーナルファイル20に記録した更新履歴に
基づき書込みバッファ22を通してブロック単位でデー
タファイル14を更新する。
ザクションへの影響をなくし、トランザクションの並列
実行性を高める。 【解決手段】トランザクション11-i(i=1〜n)か
らのレコード更新要求に従うデータファイル14の更新
処理に際しては、更新するレコードへの同時アクセスを
排他制御機構15にて排他制御して、そのレコードの更
新をTRXバッファ制御機構17によりTRXバッファ
16上で行わせると共に、当該バッファ16上でのレコ
ード更新の履歴を更新履歴管理機構18にて生成してお
き、トランザクション11-iの確定時には、生成してお
いたトランザクション11-iに対応するレコード単位の
更新履歴をジャーナルファイル20に記録し、しかる後
に、当該ジャーナルファイル20に記録した更新履歴に
基づき書込みバッファ22を通してブロック単位でデー
タファイル14を更新する。
Description
【0001】
【発明の属する技術分野】本発明は、計算機を用いて実
現されるオンライントランザクションシステム及び同シ
ステムに適用されるファイル更新制御方法に関する。
現されるオンライントランザクションシステム及び同シ
ステムに適用されるファイル更新制御方法に関する。
【0002】
【従来の技術】計算機を用いて実現されるオンライント
ランザクションシステムにおいては、トランザクション
からの要求に従うファイル更新等のファイルアクセスの
高速化(トランザクション実行の高速化)のために、要
求されたファイルアクセスはディスク等の外部記憶媒体
に保存されているデータファイルに対してではなく、そ
のデータファイルの一部の写し(ファイルイメージ)が
置かれるメモリ上のデータバッファに対して行われるの
が一般的であった。
ランザクションシステムにおいては、トランザクション
からの要求に従うファイル更新等のファイルアクセスの
高速化(トランザクション実行の高速化)のために、要
求されたファイルアクセスはディスク等の外部記憶媒体
に保存されているデータファイルに対してではなく、そ
のデータファイルの一部の写し(ファイルイメージ)が
置かれるメモリ上のデータバッファに対して行われるの
が一般的であった。
【0003】したがって、トランザクションからデータ
ファイルの更新が要求された場合であれば、要求された
更新処理がデータバッファ上で行われることになる。こ
の場合、当該トランザクションが確定(コミット)した
段階で、当該トランザクションからの更新要求に従うデ
ータバッファ上での更新処理の結果を、外部記憶媒体、
例えばディスク上のデータファイルに書込む(反映す
る)実更新が必要となる。
ファイルの更新が要求された場合であれば、要求された
更新処理がデータバッファ上で行われることになる。こ
の場合、当該トランザクションが確定(コミット)した
段階で、当該トランザクションからの更新要求に従うデ
ータバッファ上での更新処理の結果を、外部記憶媒体、
例えばディスク上のデータファイルに書込む(反映す
る)実更新が必要となる。
【0004】このような、確定したトランザクションに
よるデータバッファ上でのデータ更新処理の結果(確定
したデータ更新の結果)を、実際にディスク上のデータ
ファイルに書込む実更新動作は、従来のオンライントラ
ンザクションシステムでは、システムに唯一存在するデ
ータバッファを通して行われていた。即ち従来のオンラ
イントランザクションシステムでは、システムに唯一存
在するデータバッファをトランザクション制御とデータ
ファイルの実更新の両方に用いていた。
よるデータバッファ上でのデータ更新処理の結果(確定
したデータ更新の結果)を、実際にディスク上のデータ
ファイルに書込む実更新動作は、従来のオンライントラ
ンザクションシステムでは、システムに唯一存在するデ
ータバッファを通して行われていた。即ち従来のオンラ
イントランザクションシステムでは、システムに唯一存
在するデータバッファをトランザクション制御とデータ
ファイルの実更新の両方に用いていた。
【0005】さて、データバッファ上での更新内容をデ
ータファイルへ書込むことができるのは、確定(コミッ
ト)したトランザクションによる更新だけであり、未確
定部分を書込むことは許されない。よって、未確定のト
ランザクションによるデータバッファの更新中は、デー
タファイルの実更新が待たされる。逆に、データファイ
ルの実更新実行中は、トランザクション処理のための
(トランザクションからの更新要求に従う)データバッ
ファ更新が待たされる。
ータファイルへ書込むことができるのは、確定(コミッ
ト)したトランザクションによる更新だけであり、未確
定部分を書込むことは許されない。よって、未確定のト
ランザクションによるデータバッファの更新中は、デー
タファイルの実更新が待たされる。逆に、データファイ
ルの実更新実行中は、トランザクション処理のための
(トランザクションからの更新要求に従う)データバッ
ファ更新が待たされる。
【0006】データバッファを通してディスク上のデー
タファイルの実更新を行うには、ディスク(が装着され
ているディスク装置)との間の入出力をブロック単位で
行う必要がある。このため従来は、トランザクションに
よる更新がたとえブロックの一部であっても、他のトラ
ンザクションからの当該ブロック(内の領域)を対象と
する更新要求とのブロック単位の排他制御が必要であっ
た。
タファイルの実更新を行うには、ディスク(が装着され
ているディスク装置)との間の入出力をブロック単位で
行う必要がある。このため従来は、トランザクションに
よる更新がたとえブロックの一部であっても、他のトラ
ンザクションからの当該ブロック(内の領域)を対象と
する更新要求とのブロック単位の排他制御が必要であっ
た。
【0007】
【発明が解決しようとする課題】上記したように従来の
オンライントランザクションシステムでは、データファ
イル上でのデータ更新ができるのは、確定したトランザ
クションによる更新だけであり、しかもディスク(等の
外部記憶媒体)との入出力はブロック単位で行わなけれ
ばならないことを考慮すると、トランザクションによる
更新がたとえブロックの一部であっても、他のトランザ
クションからの当該ブロック(内の領域)を対象とする
更新要求とのブロック単位の排他制御が必要であった。
オンライントランザクションシステムでは、データファ
イル上でのデータ更新ができるのは、確定したトランザ
クションによる更新だけであり、しかもディスク(等の
外部記憶媒体)との入出力はブロック単位で行わなけれ
ばならないことを考慮すると、トランザクションによる
更新がたとえブロックの一部であっても、他のトランザ
クションからの当該ブロック(内の領域)を対象とする
更新要求とのブロック単位の排他制御が必要であった。
【0008】このため、従来のオンライントランザクシ
ョンシステムでは、データファイルの実更新に伴う実行
中トランザクションへの影響が大きく、トランザクショ
ンの並列実行性に乏しいという問題があった。
ョンシステムでは、データファイルの実更新に伴う実行
中トランザクションへの影響が大きく、トランザクショ
ンの並列実行性に乏しいという問題があった。
【0009】本発明は上記事情を考慮してなされたもの
でその目的は、データファイルへの実更新による実行中
トランザクションへの影響をなくすことで、トランザク
ションの並列実行性が向上するオンライントランザクシ
ョンシステム及び同システムに適用されるファイル更新
制御方法を提供することにある。
でその目的は、データファイルへの実更新による実行中
トランザクションへの影響をなくすことで、トランザク
ションの並列実行性が向上するオンライントランザクシ
ョンシステム及び同システムに適用されるファイル更新
制御方法を提供することにある。
【0010】
【課題を解決するための手段】本発明のオンライントラ
ンザクションシステムは、トランザクションからのレコ
ード更新要求に従うデータファイルの更新処理に際し
て、要求されたデータファイルのレコードへの同時アク
セスを排他制御するための排他制御手段と、更新データ
を一時保持するためのトランザクションバッファ(第1
のバッファ)と、上記要求されたデータファイルのレコ
ードの更新を上記トランザクションバッファ上で実行す
るトランザクションバッファ制御手段と、上記トランザ
クションバッファ上でのレコード更新の履歴をレコード
単位で生成する更新履歴生成手段と、この生成されたレ
コード単位の更新履歴を対応するトランザクションの確
定時にジャーナルファイルに記録するジャーナル書込み
処理手段と、確定したトランザクションによる更新内容
をブロック単位でデータファイルに書込むための書込み
バッファ(第2のバッファ)と、上記ジャーナルファイ
ルに記録された確定したトランザクションによるレコー
ド更新の履歴に基づき、上記書込みバッファを通してブ
ロック単位でデータファイルを更新するデータファイル
書込み処理手段とを備えたことを特徴とするものであ
る。
ンザクションシステムは、トランザクションからのレコ
ード更新要求に従うデータファイルの更新処理に際し
て、要求されたデータファイルのレコードへの同時アク
セスを排他制御するための排他制御手段と、更新データ
を一時保持するためのトランザクションバッファ(第1
のバッファ)と、上記要求されたデータファイルのレコ
ードの更新を上記トランザクションバッファ上で実行す
るトランザクションバッファ制御手段と、上記トランザ
クションバッファ上でのレコード更新の履歴をレコード
単位で生成する更新履歴生成手段と、この生成されたレ
コード単位の更新履歴を対応するトランザクションの確
定時にジャーナルファイルに記録するジャーナル書込み
処理手段と、確定したトランザクションによる更新内容
をブロック単位でデータファイルに書込むための書込み
バッファ(第2のバッファ)と、上記ジャーナルファイ
ルに記録された確定したトランザクションによるレコー
ド更新の履歴に基づき、上記書込みバッファを通してブ
ロック単位でデータファイルを更新するデータファイル
書込み処理手段とを備えたことを特徴とするものであ
る。
【0011】また、本発明のオンライントランザクショ
ンシステムに適用されるファイル更新制御方法は、トラ
ンザクションからのレコード更新要求に従うデータファ
イルの更新処理に際しては、要求されたデータファイル
のレコードへの同時アクセスを排他制御して、要求され
たデータファイルのレコードの更新をトランザクション
バッファ(第1のバッファ)上で実行すると共に、当該
トランザクションバッファ上でのレコード更新の履歴を
レコード単位で生成しておき、当該トランザクションの
確定時には、上記生成しておいた当該トランザクション
に対応するレコード単位の更新履歴をジャーナルファイ
ルに記録し、しかる後に、このジャーナルファイルに記
録した更新履歴に基づき書込みバッファ(第2のバッフ
ァ)を通してブロック単位でデータファイルを更新する
ことを特徴とするものである。
ンシステムに適用されるファイル更新制御方法は、トラ
ンザクションからのレコード更新要求に従うデータファ
イルの更新処理に際しては、要求されたデータファイル
のレコードへの同時アクセスを排他制御して、要求され
たデータファイルのレコードの更新をトランザクション
バッファ(第1のバッファ)上で実行すると共に、当該
トランザクションバッファ上でのレコード更新の履歴を
レコード単位で生成しておき、当該トランザクションの
確定時には、上記生成しておいた当該トランザクション
に対応するレコード単位の更新履歴をジャーナルファイ
ルに記録し、しかる後に、このジャーナルファイルに記
録した更新履歴に基づき書込みバッファ(第2のバッフ
ァ)を通してブロック単位でデータファイルを更新する
ことを特徴とするものである。
【0012】このように本発明においては、トランザク
ション間の排他制御をレコード単位に行うことから、複
数のトランザクションからの同一ブロックを対象とする
更新要求であっても、同一ブロック内の異なるレコード
への更新については並列に実行することが可能となり、
トランザクションの並列実効性が向上する。
ション間の排他制御をレコード単位に行うことから、複
数のトランザクションからの同一ブロックを対象とする
更新要求であっても、同一ブロック内の異なるレコード
への更新については並列に実行することが可能となり、
トランザクションの並列実効性が向上する。
【0013】しかも本発明においては、データファイル
との間の入出力はブロック単位で行わなければならない
ことを考慮して、確定したトランザクションによる更新
内容をブロック単位でデータファイルに書込むための書
込みバッファが設けられており、ジャーナルファイルに
記録された確定したトランザクションによるレコード更
新の履歴に基づき、当該書込みバッファを通してブロッ
ク単位でデータファイルを更新することで、即ち確定し
たトランザクションによるレコード更新の履歴を媒体と
して、トランザクションバッファ上での更新処理を書込
みバッファ上で再現して、ブロック単位でデータファイ
ルに反映することで、他のトランザクションからの更新
要求に従ってトランザクションバッファ上での同一ブロ
ック内の異なるレコードへの更新処理が並行して行われ
ても、何ら影響を及ぼすことはない。
との間の入出力はブロック単位で行わなければならない
ことを考慮して、確定したトランザクションによる更新
内容をブロック単位でデータファイルに書込むための書
込みバッファが設けられており、ジャーナルファイルに
記録された確定したトランザクションによるレコード更
新の履歴に基づき、当該書込みバッファを通してブロッ
ク単位でデータファイルを更新することで、即ち確定し
たトランザクションによるレコード更新の履歴を媒体と
して、トランザクションバッファ上での更新処理を書込
みバッファ上で再現して、ブロック単位でデータファイ
ルに反映することで、他のトランザクションからの更新
要求に従ってトランザクションバッファ上での同一ブロ
ック内の異なるレコードへの更新処理が並行して行われ
ても、何ら影響を及ぼすことはない。
【0014】
【発明の実施の形態】図1は本発明の一実施形態に係る
オンライントランザクションシステムの構成を示すブロ
ック図である。図1において、11-1〜11-nはトラン
ザクション(TRX)、12はトランザクション11-1
〜11-nの開始(スタート)、確定(コミット)或いは
無効化(キャンセル、アボート)等を管理するトランザ
クション管理機構(以下、TRX管理機構と称する)で
ある。
オンライントランザクションシステムの構成を示すブロ
ック図である。図1において、11-1〜11-nはトラン
ザクション(TRX)、12はトランザクション11-1
〜11-nの開始(スタート)、確定(コミット)或いは
無効化(キャンセル、アボート)等を管理するトランザ
クション管理機構(以下、TRX管理機構と称する)で
ある。
【0015】13はTRX管理機構12の管理のもとで
トランザクション11-i(i=1〜n)からの要求に従
う索引編成や相対編成、順編成などのファイルアクセス
を行うアクセス機構、14はアクセス機構13によるア
クセスの対象となるデータファイルである。このデータ
ファイル14は外部記憶装置に装着されている外部記憶
媒体、例えば磁気ディスク装置に装着されたディスク
(図示せず)に保存されているものとする。
トランザクション11-i(i=1〜n)からの要求に従
う索引編成や相対編成、順編成などのファイルアクセス
を行うアクセス機構、14はアクセス機構13によるア
クセスの対象となるデータファイルである。このデータ
ファイル14は外部記憶装置に装着されている外部記憶
媒体、例えば磁気ディスク装置に装着されたディスク
(図示せず)に保存されているものとする。
【0016】15はトランザクション11-iからのレコ
ード更新要求に従うデータファイル14の更新処理等に
際して、要求されたデータファイル14のレコードへの
同時アクセスを排他制御するための排他制御機構であ
る。この排他制御機構15は、図2に示すように、ロッ
クされているレコード数分のロック中レコードID(ロ
ック中レコード識別情報)151と、このロック中レコ
ードID151にリンクされる確保中トランザクション
配列(以下、確保中TRX配列と称する)152及びウ
エイト中トランザクションキュー(以下、ウエイト中T
RXキューと称する)153とを保持する。
ード更新要求に従うデータファイル14の更新処理等に
際して、要求されたデータファイル14のレコードへの
同時アクセスを排他制御するための排他制御機構であ
る。この排他制御機構15は、図2に示すように、ロッ
クされているレコード数分のロック中レコードID(ロ
ック中レコード識別情報)151と、このロック中レコ
ードID151にリンクされる確保中トランザクション
配列(以下、確保中TRX配列と称する)152及びウ
エイト中トランザクションキュー(以下、ウエイト中T
RXキューと称する)153とを保持する。
【0017】ロック中レコードID151は、ロック中
レコードの識別情報を示す。このロック中レコードID
151の保持(登録)位置は、当該レコードID151
の値をもとに管理され、図示せぬ検索機構により高速に
検索できるようになっている。この検索には、例えばレ
コードID151の値をもとに算出されるハッシュ値を
利用したハッシュ法が適用されるものとする。
レコードの識別情報を示す。このロック中レコードID
151の保持(登録)位置は、当該レコードID151
の値をもとに管理され、図示せぬ検索機構により高速に
検索できるようになっている。この検索には、例えばレ
コードID151の値をもとに算出されるハッシュ値を
利用したハッシュ法が適用されるものとする。
【0018】確保中TRX配列152は、対応するロッ
ク中レコードID151の示すレコードへのアクセスを
確保している全てのトランザクションに関する情報(以
下、TRX情報と称する)154の配列である。このT
RX情報154は、トランザクションの識別情報(TR
XID)154aと、モードフラグ154bとを有す
る。モードフラグ154bは、該当するトランザクショ
ンによるレコードアクセスのモードが、他のトランザク
ションからのレコード更新及びレコード参照を排他する
排他モード(EXモード)であるか、他のトランザクシ
ョンからのレコード更新のみを排他するシェア(共有)
モード(SRモード)であるかを示す。EXモードはレ
コード更新要求(ライト要求)の場合にセットされ、S
Rモードはレコード参照要求(リード要求)の場合にセ
ットされる。
ク中レコードID151の示すレコードへのアクセスを
確保している全てのトランザクションに関する情報(以
下、TRX情報と称する)154の配列である。このT
RX情報154は、トランザクションの識別情報(TR
XID)154aと、モードフラグ154bとを有す
る。モードフラグ154bは、該当するトランザクショ
ンによるレコードアクセスのモードが、他のトランザク
ションからのレコード更新及びレコード参照を排他する
排他モード(EXモード)であるか、他のトランザクシ
ョンからのレコード更新のみを排他するシェア(共有)
モード(SRモード)であるかを示す。EXモードはレ
コード更新要求(ライト要求)の場合にセットされ、S
Rモードはレコード参照要求(リード要求)の場合にセ
ットされる。
【0019】ウエイト中TRXキュー153は、対応す
るロック中レコードID151の示すレコードへのアク
セスが待たされているトランザクション(ウエイト中ト
ランザクション)の待ち行列であり、そのウエイト中ト
ランザクションに関するTRX情報154が要求順につ
ながれている。
るロック中レコードID151の示すレコードへのアク
セスが待たされているトランザクション(ウエイト中ト
ランザクション)の待ち行列であり、そのウエイト中ト
ランザクションに関するTRX情報154が要求順につ
ながれている。
【0020】16は更新データを一時的に格納しておく
ためのトランザクションバッファ(以下、TRXバッフ
ァと称する)である。このTRXバッファ16には、デ
ータファイル14の一部の写し(ファイルイメージ)
が、データファイル14(が保存されているディスク)
との入出力の単位であるブロックを単位に置かれる。T
RXバッファ16の領域は、主記憶等のメモリ上に確保
されているものとする。
ためのトランザクションバッファ(以下、TRXバッフ
ァと称する)である。このTRXバッファ16には、デ
ータファイル14の一部の写し(ファイルイメージ)
が、データファイル14(が保存されているディスク)
との入出力の単位であるブロックを単位に置かれる。T
RXバッファ16の領域は、主記憶等のメモリ上に確保
されているものとする。
【0021】17はトランザクション11-iから要求さ
れたデータファイル14へのアクセスをアクセス機構1
3からの指示に応じてTRXバッファ16上で実行する
トランザクションバッファ制御機構(以下、TRXバッ
ファ制御機構と称する)、18はTRXバッファ制御機
構17により実行されたTRXバッファ16上でのレコ
ード更新の履歴をレコード単位で生成して管理するため
の更新履歴管理機構である。
れたデータファイル14へのアクセスをアクセス機構1
3からの指示に応じてTRXバッファ16上で実行する
トランザクションバッファ制御機構(以下、TRXバッ
ファ制御機構と称する)、18はTRXバッファ制御機
構17により実行されたTRXバッファ16上でのレコ
ード更新の履歴をレコード単位で生成して管理するため
の更新履歴管理機構である。
【0022】19は更新履歴管理機構18により生成さ
れたレコード単位の更新履歴を一時的に書込むためのジ
ャーナルバッファ、20は更新履歴管理機構18により
生成されたレコード単位の更新履歴を記録しておくため
のジャーナルファイル、21は更新履歴管理機構18に
より生成されたレコード単位の更新履歴を、対応するト
ランザクションの確定時にジャーナルバッファ19を介
してジャーナルファイル20に記録するジャーナル書込
み処理機構である。ここで、ジャーナルバッファ19の
領域は主記憶等のメモリ上に確保され、ジャーナルファ
イル20は磁気ディスク装置に装着されるディスクに保
存されているものとする。
れたレコード単位の更新履歴を一時的に書込むためのジ
ャーナルバッファ、20は更新履歴管理機構18により
生成されたレコード単位の更新履歴を記録しておくため
のジャーナルファイル、21は更新履歴管理機構18に
より生成されたレコード単位の更新履歴を、対応するト
ランザクションの確定時にジャーナルバッファ19を介
してジャーナルファイル20に記録するジャーナル書込
み処理機構である。ここで、ジャーナルバッファ19の
領域は主記憶等のメモリ上に確保され、ジャーナルファ
イル20は磁気ディスク装置に装着されるディスクに保
存されているものとする。
【0023】22は確定したトランザクションによる更
新内容をブロック単位でデータファイル14に書込むた
めの書込みバッファ、23はジャーナル書込み処理機構
21によりジャーナルファイル20に記録された上記確
定したトランザクションによるレコード更新の履歴に基
づき、書込みバッファ22を通してブロック単位でデー
タファイル14を更新するデータファイル書込み処理機
構である。ここで、書込みバッファ22の領域は主記憶
等のメモリ上に確保されているものとする。
新内容をブロック単位でデータファイル14に書込むた
めの書込みバッファ、23はジャーナル書込み処理機構
21によりジャーナルファイル20に記録された上記確
定したトランザクションによるレコード更新の履歴に基
づき、書込みバッファ22を通してブロック単位でデー
タファイル14を更新するデータファイル書込み処理機
構である。ここで、書込みバッファ22の領域は主記憶
等のメモリ上に確保されているものとする。
【0024】次に、図1の構成の動作を、図3の動作説
明図を適宜参照して説明する。今、TRX管理機構12
の管理のもとでトランザクション11-1がスタートし、
当該トランザクション11-1の処理中にデータファイル
14内のレコード#jの更新を要求したものとする。こ
のトランザクション11-1からのレコード更新要求はT
RX管理機構12を通してアクセス機構13に通知され
る。
明図を適宜参照して説明する。今、TRX管理機構12
の管理のもとでトランザクション11-1がスタートし、
当該トランザクション11-1の処理中にデータファイル
14内のレコード#jの更新を要求したものとする。こ
のトランザクション11-1からのレコード更新要求はT
RX管理機構12を通してアクセス機構13に通知され
る。
【0025】アクセス機構13は、更新が要求されたレ
コード#jに対するアクセスの排他制御を排他制御機構
15に要求する。これにより排他制御機構15は、更新
(アクセス)されるレコード#jのIDに一致するロッ
ク中レコードID151を検索する。
コード#jに対するアクセスの排他制御を排他制御機構
15に要求する。これにより排他制御機構15は、更新
(アクセス)されるレコード#jのIDに一致するロッ
ク中レコードID151を検索する。
【0026】もし、目的のロック中レコードID151
が存在しないならば、排他制御機構15はレコード#j
のIDに一致するロック中レコードID151を新たに
生成して登録し、当該レコードID151に(レコード
#jの更新を要求した)トランザクション11-1につい
てのTRX情報154を持つ確保中TRX配列152を
リンクさせる。これによりトランザクション11-1によ
り要求されたレコード#jを、他のトランザクションか
らの同一レコードに対するアクセス要求から排他して更
新することが可能となる。
が存在しないならば、排他制御機構15はレコード#j
のIDに一致するロック中レコードID151を新たに
生成して登録し、当該レコードID151に(レコード
#jの更新を要求した)トランザクション11-1につい
てのTRX情報154を持つ確保中TRX配列152を
リンクさせる。これによりトランザクション11-1によ
り要求されたレコード#jを、他のトランザクションか
らの同一レコードに対するアクセス要求から排他して更
新することが可能となる。
【0027】これに対し、目的のロック中レコードID
151が存在しているならば、排他制御機構15は当該
レコードID151にリンクされているウエイト中TR
Xキュー153の最後尾(ウエイト中TRXキュー15
3が空であれば先頭)に、(レコード#jの更新を要求
した)トランザクション11-1についてのTRX情報1
54をつなぐ。これにより、トランザクション11-1か
らのレコード更新要求は待たされ、現在ロック中のレコ
ード#jがトランザクション11-1からの要求により更
新されるのが防止される。
151が存在しているならば、排他制御機構15は当該
レコードID151にリンクされているウエイト中TR
Xキュー153の最後尾(ウエイト中TRXキュー15
3が空であれば先頭)に、(レコード#jの更新を要求
した)トランザクション11-1についてのTRX情報1
54をつなぐ。これにより、トランザクション11-1か
らのレコード更新要求は待たされ、現在ロック中のレコ
ード#jがトランザクション11-1からの要求により更
新されるのが防止される。
【0028】ウエイト中TRXキュー153につながれ
たTRX情報154は、確保中TRX配列152に登録
されているTRX情報154の示すトランザクションが
全てコミットされて確保中TRX配列152が空にされ
ると、古いもの(先頭)から順に当該確保中TRX配列
152に移される。なお、トランザクション11-1が例
えばレコード参照を要求した場合に、確保中TRX配列
152中に登録されているTRX情報154中のモード
フラグ154bがSRモードを示しているならば、当該
トランザクション11-1はレコード#jへのアクセス
(参照)を確保できることから、当該トランザクション
11-1についてのTRX情報154は確保中TRX配列
152中に直ちに登録される。
たTRX情報154は、確保中TRX配列152に登録
されているTRX情報154の示すトランザクションが
全てコミットされて確保中TRX配列152が空にされ
ると、古いもの(先頭)から順に当該確保中TRX配列
152に移される。なお、トランザクション11-1が例
えばレコード参照を要求した場合に、確保中TRX配列
152中に登録されているTRX情報154中のモード
フラグ154bがSRモードを示しているならば、当該
トランザクション11-1はレコード#jへのアクセス
(参照)を確保できることから、当該トランザクション
11-1についてのTRX情報154は確保中TRX配列
152中に直ちに登録される。
【0029】さてアクセス機構13は、トランザクショ
ン11-1についてのTRX情報154が、当該トランザ
クション11-1により更新が要求されたレコード#jに
固有のロック中レコードID151にリンクされている
確保中TRX配列152に登録されると、要求されたレ
コード#jの更新処理を、TRXバッファ制御機構17
によりTRXバッファ16上で次のように行わせる。
ン11-1についてのTRX情報154が、当該トランザ
クション11-1により更新が要求されたレコード#jに
固有のロック中レコードID151にリンクされている
確保中TRX配列152に登録されると、要求されたレ
コード#jの更新処理を、TRXバッファ制御機構17
によりTRXバッファ16上で次のように行わせる。
【0030】まず、TRXバッファ16は、ディスク装
置との入出力単位であるブロック単位で管理される一種
のキャッシュである。もし、TRXバッファ16上にレ
コード#jを含むブロックが存在するならば、TRXバ
ッファ制御機構17は、このTRXバッファ16上のブ
ロック中のレコード#jに対して、トランザクション1
1-1から要求された更新処理を直ちに行う。これに対
し、TRXバッファ16上にレコード#jを含むブロッ
クが存在しないならば、TRXバッファ制御機構17
は、データファイル14からTRXバッファ16にレコ
ード#jを含むブロックをロードするリプレース処理を
行った後、このTRXバッファ16上のブロック中のレ
コード#jに対して、トランザクション11-1から要求
された更新処理を行う。
置との入出力単位であるブロック単位で管理される一種
のキャッシュである。もし、TRXバッファ16上にレ
コード#jを含むブロックが存在するならば、TRXバ
ッファ制御機構17は、このTRXバッファ16上のブ
ロック中のレコード#jに対して、トランザクション1
1-1から要求された更新処理を直ちに行う。これに対
し、TRXバッファ16上にレコード#jを含むブロッ
クが存在しないならば、TRXバッファ制御機構17
は、データファイル14からTRXバッファ16にレコ
ード#jを含むブロックをロードするリプレース処理を
行った後、このTRXバッファ16上のブロック中のレ
コード#jに対して、トランザクション11-1から要求
された更新処理を行う。
【0031】以上に述べたように、本実施形態において
は、排他制御機構15によってレコード単位の排他制御
が行われる。このため、トランザクション11-1からの
要求に従うレコード#jの更新中に、他のトランザクシ
ョンから当該レコード#jと同じブロック中のレコード
を更新する要求が発行されたとしても、更新するレコー
ドが当該レコード#jでなければ、他のトランザクショ
ンからの要求に従うレコード更新をレコード#jの更新
と並行して行うことができる。
は、排他制御機構15によってレコード単位の排他制御
が行われる。このため、トランザクション11-1からの
要求に従うレコード#jの更新中に、他のトランザクシ
ョンから当該レコード#jと同じブロック中のレコード
を更新する要求が発行されたとしても、更新するレコー
ドが当該レコード#jでなければ、他のトランザクショ
ンからの要求に従うレコード更新をレコード#jの更新
と並行して行うことができる。
【0032】さて、TRXバッファ制御機構17によ
り、TRXバッファ16上でのレコード#jの更新処理
が行われると、更新履歴管理機構18は、そのレコード
#jの更新処理結果と等価な情報である更新履歴レコー
ド(以下、ジャーナルレコードと称する)を生成し、そ
の更新要求元のトランザクション11-1に対応して保持
する。
り、TRXバッファ16上でのレコード#jの更新処理
が行われると、更新履歴管理機構18は、そのレコード
#jの更新処理結果と等価な情報である更新履歴レコー
ド(以下、ジャーナルレコードと称する)を生成し、そ
の更新要求元のトランザクション11-1に対応して保持
する。
【0033】やがて、トランザクション11-1が確定
(コミット)すると、その旨がTRX管理機構12から
アクセス機構13を通して更新履歴管理機構18に通知
される。すると更新履歴管理機構18は、トランザクシ
ョン11-1がスタートした後に当該トランザクション1
1-1からのレコード更新要求に従ってTRXバッファ1
6上で行われたレコード更新処理に応じて生成しておい
たジャーナルレコード(レコード単位の更新履歴レコー
ド)だけを取り出して、ジャーナル書込み処理機構21
によりジャーナルバッファ19を介してジャーナルファ
イル20に記録させる。これにより、TRXバッファ1
6上で行われたレコード#jの更新結果のジャーナルレ
コードが、図3において符号31で示すようにジャーナ
ルファイル20に記録される。
(コミット)すると、その旨がTRX管理機構12から
アクセス機構13を通して更新履歴管理機構18に通知
される。すると更新履歴管理機構18は、トランザクシ
ョン11-1がスタートした後に当該トランザクション1
1-1からのレコード更新要求に従ってTRXバッファ1
6上で行われたレコード更新処理に応じて生成しておい
たジャーナルレコード(レコード単位の更新履歴レコー
ド)だけを取り出して、ジャーナル書込み処理機構21
によりジャーナルバッファ19を介してジャーナルファ
イル20に記録させる。これにより、TRXバッファ1
6上で行われたレコード#jの更新結果のジャーナルレ
コードが、図3において符号31で示すようにジャーナ
ルファイル20に記録される。
【0034】このように、トランザクション11-1から
のレコード更新要求に従って行われた更新処理の履歴を
示すジャーナルレコードがジャーナルファイル20に記
録されることにより、確定したトランザクション11-1
は完了する。
のレコード更新要求に従って行われた更新処理の履歴を
示すジャーナルレコードがジャーナルファイル20に記
録されることにより、確定したトランザクション11-1
は完了する。
【0035】ジャーナル書込み処理機構21によりジャ
ーナルファイル20にジャーナルレコードが記録される
と、データファイル書込み処理機構23が起動される。
このデータファイル書込み処理機構23は、ジャーナル
バッファ19を通してジャーナルファイル20に記録さ
れたジャーナルレコードをもとに、書込みバッファ22
上で対応するレコードの更新処理を行う。
ーナルファイル20にジャーナルレコードが記録される
と、データファイル書込み処理機構23が起動される。
このデータファイル書込み処理機構23は、ジャーナル
バッファ19を通してジャーナルファイル20に記録さ
れたジャーナルレコードをもとに、書込みバッファ22
上で対応するレコードの更新処理を行う。
【0036】この書込みバッファ22は、TRXバッフ
ァ16と同様に、ディスク装置との入出力単位であるブ
ロック単位で管理される一種のキャッシュである。した
がってデータファイル書込み処理機構23は、書込みバ
ッファ22上での更新処理に際しては、例えばレコード
#jのジャーナルレコードに基づく更新処理の場合であ
れば、当該レコード#jを含むブロックが書込みバッフ
ァ22上に存在するか否かのヒットチェックを行う。
ァ16と同様に、ディスク装置との入出力単位であるブ
ロック単位で管理される一種のキャッシュである。した
がってデータファイル書込み処理機構23は、書込みバ
ッファ22上での更新処理に際しては、例えばレコード
#jのジャーナルレコードに基づく更新処理の場合であ
れば、当該レコード#jを含むブロックが書込みバッフ
ァ22上に存在するか否かのヒットチェックを行う。
【0037】もし、レコード#jを含むブロックが書込
みバッファ22上に存在するならば、データファイル書
込み処理機構23は、この書込みバッファ22上のブロ
ック中のレコード#jに対して、図3において符号32
で示すように、(ジャーナルバッファ19を通してジャ
ーナルファイル20に記録された)レコード#jのジャ
ーナルレコードに基づく更新処理を直ちに行う。これら
対し、書込みバッファ22上にレコード#jを含むブロ
ックが存在しないならば、データファイル書込み処理機
構23は、図3において符号33で示すように、データ
ファイル14から書込みバッファ22にレコード#jを
含むブロックをロードするリプレース処理を行った後、
この書込みバッファ22上のブロック中のレコード#j
に対して、レコード#jのジャーナルレコードに基づく
更新処理を行う。
みバッファ22上に存在するならば、データファイル書
込み処理機構23は、この書込みバッファ22上のブロ
ック中のレコード#jに対して、図3において符号32
で示すように、(ジャーナルバッファ19を通してジャ
ーナルファイル20に記録された)レコード#jのジャ
ーナルレコードに基づく更新処理を直ちに行う。これら
対し、書込みバッファ22上にレコード#jを含むブロ
ックが存在しないならば、データファイル書込み処理機
構23は、図3において符号33で示すように、データ
ファイル14から書込みバッファ22にレコード#jを
含むブロックをロードするリプレース処理を行った後、
この書込みバッファ22上のブロック中のレコード#j
に対して、レコード#jのジャーナルレコードに基づく
更新処理を行う。
【0038】データファイル書込み処理機構23は、レ
コード#jのジャーナルレコードに基づくTRXバッフ
ァ16上でのレコード#jの更新処理を実行すると、図
3において符号34で示すように、当該レコード#jを
含むTRXバッファ16上のブロックの内容をデータフ
ァイル14の元のブロックに書込む実更新処理を行う。
コード#jのジャーナルレコードに基づくTRXバッフ
ァ16上でのレコード#jの更新処理を実行すると、図
3において符号34で示すように、当該レコード#jを
含むTRXバッファ16上のブロックの内容をデータフ
ァイル14の元のブロックに書込む実更新処理を行う。
【0039】このとき、TRXバッファ制御機構17
は、トランザクション11-1以外のトランザクションか
らのレコード更新要求に従うレコード更新を行う必要が
あるならば、そのレコード更新処理をTRXバッファ1
6上で行う。したがって、TRXバッファ制御機構17
において更新しようとするレコードを含むブロックが上
記レコード#jを含むブロックと同一であったとして
も、データファイル14上のレコード#jを、TRXバ
ッファ16のデータや状態に無関係に、当該レコード#
jのジャーナルレコードに基づいて書込みバッファ22
を通して更新することができ、トランザクション処理へ
の影響は全くない。
は、トランザクション11-1以外のトランザクションか
らのレコード更新要求に従うレコード更新を行う必要が
あるならば、そのレコード更新処理をTRXバッファ1
6上で行う。したがって、TRXバッファ制御機構17
において更新しようとするレコードを含むブロックが上
記レコード#jを含むブロックと同一であったとして
も、データファイル14上のレコード#jを、TRXバ
ッファ16のデータや状態に無関係に、当該レコード#
jのジャーナルレコードに基づいて書込みバッファ22
を通して更新することができ、トランザクション処理へ
の影響は全くない。
【0040】なお、以上の説明では、書込みバッファ2
2上のブロックを対象にレコード#jのジャーナルレコ
ードに基づく更新処理を行うと、当該ブロックの内容を
データファイル14に書込むものとして説明したが、こ
れに限るものではない。例えば、1つのトランザクショ
ンがスタートしてからコミットするまでに、同一ブロッ
ク内の複数のレコードがTRXバッファ16上で更新さ
れた場合には、この同一ブロック内での各レコード更新
毎のジャーナルレコード(更新履歴レコード)に基づい
て、書込みバッファ22上の該当するブロックを対象と
するレコード単位の更新処理を全て行った段階で、その
ブロックの内容をデータファイル14に書込むようにす
ると効率がよい。
2上のブロックを対象にレコード#jのジャーナルレコ
ードに基づく更新処理を行うと、当該ブロックの内容を
データファイル14に書込むものとして説明したが、こ
れに限るものではない。例えば、1つのトランザクショ
ンがスタートしてからコミットするまでに、同一ブロッ
ク内の複数のレコードがTRXバッファ16上で更新さ
れた場合には、この同一ブロック内での各レコード更新
毎のジャーナルレコード(更新履歴レコード)に基づい
て、書込みバッファ22上の該当するブロックを対象と
するレコード単位の更新処理を全て行った段階で、その
ブロックの内容をデータファイル14に書込むようにす
ると効率がよい。
【0041】
【発明の効果】以上詳述したように本発明によれば、フ
ァイルアクセスに関するトランザクション間の排他制御
をレコード単位で行う一方、トランザクションから要求
されたレコード更新をトランザクションバッファ上で行
って、その更新の履歴をジャーナルファイルに記録し、
このジャーナルファイルに記録した更新履歴に基づいて
上記トランザクションバッファとは独立の書込みバッフ
ァを通してデータファイルを更新するようにしたので、
トランザクション制御に影響を与えることなくデータフ
ァイルの実更新を行うことができ、トランザクションの
並列実行性を向上することができる。
ァイルアクセスに関するトランザクション間の排他制御
をレコード単位で行う一方、トランザクションから要求
されたレコード更新をトランザクションバッファ上で行
って、その更新の履歴をジャーナルファイルに記録し、
このジャーナルファイルに記録した更新履歴に基づいて
上記トランザクションバッファとは独立の書込みバッフ
ァを通してデータファイルを更新するようにしたので、
トランザクション制御に影響を与えることなくデータフ
ァイルの実更新を行うことができ、トランザクションの
並列実行性を向上することができる。
【図1】本発明の一実施形態に係るオンライントランザ
クションシステムの構成を示すブロック図。
クションシステムの構成を示すブロック図。
【図2】図1中の排他制御機構15で保持・管理される
排他制御に関する情報のデータ構造例を示す図。
排他制御に関する情報のデータ構造例を示す図。
【図3】同実施形態におけるデータの流れを説明するた
めの図。
めの図。
11-1〜11-n…トランザクション、 12…TRX(トランザクション)管理機構、 13…アクセス機構、 14…データファイル、 15…排他制御機構、 16…TRXバッファ(トランザクションバッファ)、 17…TRXバッファ制御機構(トランザクションバッ
ファ制御手段)、 18…更新履歴管理機構、 19…ジャーナルバッファ、 20…ジャーナルファイル、 21…ジャーナル書込み処理機構、 22…書込みバッファ、 23…データファイル書込み処理機構、 151…ロック中レコードID、 152…確保中TRX配列、 153…ウエイト中TRXキュー、 154…TRX情報。
ファ制御手段)、 18…更新履歴管理機構、 19…ジャーナルバッファ、 20…ジャーナルファイル、 21…ジャーナル書込み処理機構、 22…書込みバッファ、 23…データファイル書込み処理機構、 151…ロック中レコードID、 152…確保中TRX配列、 153…ウエイト中TRXキュー、 154…TRX情報。
Claims (2)
- 【請求項1】 複数のトランザクションにより同一のデ
ータファイルへの更新処理が行われるオンライントラン
ザクションシステムにおいて、 トランザクションからのレコード更新要求に従うデータ
ファイルの更新処理に際して、要求されたデータファイ
ルのレコードへの同時アクセスを排他制御するための排
他制御手段と、 更新データを一時保持するためのトランザクションバッ
ファと、 前記要求されたデータファイルのレコードの更新を前記
トランザクションバッファ上で実行するトランザクショ
ンバッファ制御手段と、 前記トランザクションバッファ制御手段による前記トラ
ンザクションバッファ上でのレコード更新の履歴をレコ
ード単位で生成する更新履歴生成手段と、 前記更新履歴生成手段により生成されたレコード単位の
更新履歴を対応するトランザクションの確定時にジャー
ナルファイルに記録するジャーナル書込み処理手段と、 確定したトランザクションによる更新内容をブロック単
位で前記データファイルに書込むための書込みバッファ
と、 前記ジャーナル書込み処理手段により前記ジャーナルフ
ァイルに記録された前記確定したトランザクションによ
るレコード更新の履歴に基づき、前記書込みバッファを
通してブロック単位で前記データファイルを更新するデ
ータファイル書込み処理手段とを具備することを特徴と
するオンライントランザクションシステム。 - 【請求項2】 更新データを一時保持するためのトラン
ザクションバッファと、確定したトランザクションによ
る更新内容をブロック単位でデータファイルに書込むた
めの書込みバッファとを備え、複数のトランザクション
により同一のデータファイルへの更新処理が行われるオ
ンライントランザクションシステムに適用されるファイ
ル更新制御方法であって、 トランザクションからのレコード更新要求に従うデータ
ファイルの更新処理に際しては、要求されたデータファ
イルのレコードへの同時アクセスを排他制御して、要求
されたデータファイルのレコードの更新を前記トランザ
クションバッファ上で実行すると共に、当該トランザク
ションバッファ上でのレコード更新の履歴をレコード単
位で生成しておき、 当該トランザクションの確定時には、前記生成しておい
た当該トランザクションに対応するレコード単位の更新
履歴をジャーナルファイルに記録し、 しかる後に、このジャーナルファイルに記録した更新履
歴に基づき前記書込みバッファを通してブロック単位で
前記データファイルを更新することを特徴とするトラン
ザクションシステムに適用されるファイル更新制御方
法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7212079A JPH0962550A (ja) | 1995-08-21 | 1995-08-21 | オンライントランザクションシステム及び同システムに適用されるファイル更新制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7212079A JPH0962550A (ja) | 1995-08-21 | 1995-08-21 | オンライントランザクションシステム及び同システムに適用されるファイル更新制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0962550A true JPH0962550A (ja) | 1997-03-07 |
Family
ID=16616526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7212079A Pending JPH0962550A (ja) | 1995-08-21 | 1995-08-21 | オンライントランザクションシステム及び同システムに適用されるファイル更新制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0962550A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007548B2 (en) | 2014-03-27 | 2018-06-26 | Nec Corporation | Transaction system |
-
1995
- 1995-08-21 JP JP7212079A patent/JPH0962550A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10007548B2 (en) | 2014-03-27 | 2018-06-26 | Nec Corporation | Transaction system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6772283B2 (en) | Disk control device and method processing variable-block and fixed-block accesses from host devices | |
US5680640A (en) | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state | |
US5499367A (en) | System for database integrity with multiple logs assigned to client subsets | |
KR100259432B1 (ko) | 볼륨 스태킹 라이브러리에서의 아웃 보드 데이터 이동 | |
US5933593A (en) | Method for writing modified data from a main memory of a computer back to a database | |
JP3228972B2 (ja) | 医用画像保管通信システム | |
US20060224639A1 (en) | Backup system, program and backup method | |
JPH0799509B2 (ja) | メモリへのデータブロックのエントリを制御する方法 | |
JP4104281B2 (ja) | データベースアクセス方法 | |
JPH11282631A (ja) | 入出力制御装置および入出力制御方法 | |
US5293618A (en) | Method for controlling access to a shared file and apparatus therefor | |
US5694570A (en) | Method and system of buffering data written to direct access storage devices in data processing systems | |
US7159139B2 (en) | Digital data storage subsystem including directory for efficiently providing formatting information for stopped records and utilization of a check value for verifying that a record is from a particular storage location | |
US5900009A (en) | System and method for accessing records in a cache slot which are associated with a current owner storage element or at least one previous owner storage element | |
JPH0962550A (ja) | オンライントランザクションシステム及び同システムに適用されるファイル更新制御方法 | |
JPH0667811A (ja) | 多重化ディスク制御装置 | |
US20060026459A1 (en) | Method and apparatus for storing data | |
JPH0460730A (ja) | キャッシュ制御方式 | |
JP3033736B2 (ja) | リモートディスク装置アクセスシステム | |
JP2002032251A (ja) | データ処理システム | |
JP2002108704A (ja) | ディスクキャッシュ制御システム | |
JPH0667950A (ja) | データベース再編成方式 | |
JP2765672B2 (ja) | データ転送及びデータ除去のための制御方法並びにコンピュータ・システム | |
JPH01125639A (ja) | ディスクキャッシュ制御方式 | |
JP2000259501A (ja) | 外部記憶装置に対するアクセス制御方法 |