JP2980610B2 - トランザクション管理装置 - Google Patents

トランザクション管理装置

Info

Publication number
JP2980610B2
JP2980610B2 JP63292588A JP29258888A JP2980610B2 JP 2980610 B2 JP2980610 B2 JP 2980610B2 JP 63292588 A JP63292588 A JP 63292588A JP 29258888 A JP29258888 A JP 29258888A JP 2980610 B2 JP2980610 B2 JP 2980610B2
Authority
JP
Japan
Prior art keywords
record
file
processing
transaction
buffer
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.)
Expired - Lifetime
Application number
JP63292588A
Other languages
English (en)
Other versions
JPH02138646A (ja
Inventor
政昭 三谷
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP63292588A priority Critical patent/JP2980610B2/ja
Publication of JPH02138646A publication Critical patent/JPH02138646A/ja
Application granted granted Critical
Publication of JP2980610B2 publication Critical patent/JP2980610B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔概 要〕 計算機における、ファイルへのレコード追加処理に関
し、 最終レコードの位置を示すポインタで定まる位置にレ
コードを追加する構造のファイルに、レコード追加のた
めの複数のアクセスがある場合に、排他制御による処理
効率の低下を避けることのできるレコード追加処理方式
を目的とし、 検索のための2次インデックスを有する、ファイルに
対して最終に追加したレコードの位置に関するポインタ
を保持し、新たにレコードを追加する場合には、前記フ
ァイルをロックして、前記ポインタの指示に基づく所定
位置に格納して前記ポインタを更新するレコード処理方
式において、前記ファイルへのレコード追加の要求元ご
とに設けるバッファと、追加レコードの前記バッファへ
の格納時の格納位置情報に基づいて、前記レコードが有
する2次インデックスを仮更新する手段と前記要求元の
所定の要求により、前記バッファに格納してある前記レ
コードを前記ファイルに追加処理する手段と、前記追加
処理する手段により、前記ファイルに格納された前記追
加レコードの2次インデックスを本更新する手段とを設
けるように構成する。
〔産業上の利用分野〕
本発明は、計算機における、ファイルへのレコード追
加処理、特にレコードを追加する場合に、レコードの最
終位置のポインタで定まる位置に格納する構造のファイ
ルのレコード追加処理方式に関する。
いわゆるHeapファイル等では、レコードを入力順に最
終レコードにつながるように格納し、ファイル自体には
入力順に読み出す情報のみが保持される比較的単純な構
造をとり、従ってレコード追加処理のコストが安くでき
る。このようなファイルは、オンライン処理等で同じフ
ァイルへの複数のアクセスが同時に存在するようなシス
テムでも使用されるが、その場合にはアクセス間に公知
の排他制御が必要になり、そのための処理効率低下を生
じ易い。
〔従来の技術〕
第4図(a)は前記のような構造のファイルに、オン
ライン処理における一連の処理の管理単位である各トラ
ンザクションがレコードを追加する場合の処理を説明す
る図であり、ファイル1はP1〜P5で示すページに、R1〜
R8で示すようにレコードを格納する構造である。
こゝでR1からレコードを入力順に追加して、R7まで格
納された状態のファイル1には、先頭のページP1の所定
位置にポインタ2を保持し、ポインタ2は最終のレコー
ドR7が追加されたとき、実線の矢印で示すように、例え
ばそのページP3を指示する値が設定されている。
このファイル1にトランザクションT1がレコードR8を
追加するために、INSERT処理を実行する。INSERT処理で
トランザクションT1は、 先ずページP1の参照ロックを獲得することにより、
他のトランザクションによるポインタ2の更新が行われ
ないように排他制御をしておいて、ポインタ2を参照す
る。
ポインタ2の内容により最終ページP3知り、ページ
P3の参照ロックを獲得して、そのページを参照して、ペ
ージP3にレコードR8を格納するスペースがあるか調べ
る。
その結果、もしレコードR8のスペースが無ければ、
次のページP4の更新ロックを獲得して、ページP4にレコ
ードR8を格納する。
ページP1の参照ロックを更新ロックに切り換え、ペ
ージP1のポインタ2を、新たな最終ページP4を指示する
ように設定する。
前記のロックとはトランザクションがシステムのファ
イル管理部に要求して所要のページを占有し、他のトラ
ンザクションによるアクセスを制限するための公知の排
他制御手段であり、参照ロックは当該ページに対して他
トランザクションの参照アクセスのみは許容するが更新
を許さないロックである。更新の場合は更新ロックを取
得し、更新ロックされたページには他トランザクション
のアクセスを一切許さないように制御される。
以上のようにしてINSERT処理が完了するが、更新した
ファイル1の各ロックは、第4図(b)にトランザクシ
ョンT1の線で示すように、その後必要な他の各種処理を
行ってそのトランザクションが終了し、そのログ取得そ
の他の後処理のためのCOMMIT処理が実行されるまで解除
せず、ファイル1の該当ページはINSERT処理からCOMMIT
処理までにわたってロックされることになる。これはト
ランザクションが何等かの原因で異常終了する場合等、
更新したファイルの内容を前の状態に復旧する必要があ
る場合があることによる。
〔発明が解決しようとする課題〕
従って、このロック期間中に、他のトランザクション
T2が同様にファイル1へのINSERT処理を開始し、T1の処
理が先行するとすると、少なくともページP3、P4及びP1
への更新ロックは、トランザクションT1が終了するまで
獲得できず、従ってレコードの追加を行うことができな
い。このような現象は、このファイルがレコードの最終
位置のポインタ2で定まる位置に追加レコードを格納す
る構造であるために、ロックを必要とするページが集中
することにより特に顕著となる。
更に、トランザクションT1とT2の処理の進行が前後す
るような場合には、互いに相手の獲得したロックの解除
を待ち合わせる、いわゆるデッドロックの状態を生じる
可能性があるので、それに対処する監視等が必要になっ
てくる。
本発明は、レコードを追加する場合に、レコードの最
終位置のポインタで定まる位置に格納する構造のファイ
ルに、レコード追加のための複数のアクセスがある場合
に、排他制御による処理効率の低下を避けることのでき
るレコード追加処理方式を目的とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。図
は計算機の構成を示し、11は要求元トランザクション10
のファイル15に対するレコード追加要求を受けて、バッ
ファ12にレコードを格納するバッファ処理部、13はトラ
ンザクション10の要求でレコード追加処理を実行するレ
コード追加処理部、16はファイルへのアクセスを管理す
るファイル管理部である。
23はレコードの内容の所定データ等をインデックスと
して検索できるようにするための2次インデックス処理
部で、ここに新たにバッファ上のレコードのインデック
スに対する仮更新を行う手段が付加される。
〔作 用〕 計算機は、1以上のレコードからなり、最終に追加し
た該レコードの位置に関するポインタを保持し、新たに
レコードを追加する場合には、レコード追加処理におい
て、そのポインタの指示に基づく所定位置にレコードを
格納して、ポインタを更新するようにしたファイル15を
有する。
この計算機に、そのファイル15へのレコード追加の要
求を受けて、その要求元であるトランザクション10ごと
に設けるバッファ12に指定のレコードを格納する手段で
あるバッファ処理部11を設ける。
そして、ファイル管理部16には、バッファ処理部11よ
りのバッファ格納位置情報を受けて、2次インデックス
処理部23がバッファ12への追加レコードの2次インデッ
クスに対して仮アドレスによる仮更新を行う手段を設け
る。
又要求元トランザクション10の所定の要求により、バ
ッファ12に格納してあるレコードをファイル15に追加す
るための前記レコード追加処理をファイル管理部16を使
って実行する手段としてレコード追加処理部13を設け
る。
更に、仮更新になっている前記追加レコードの2次イ
ンデックスを本更新する手段を設ける。
以上の処理方式により、トランザクション10がレコー
ド追加要求を出した時点では、バッファ処理部11により
そのトランザクションにインデックスによる検索処理を
も含めて、ローカルな処理のみを行うのでファイルをロ
ックする必要が無く、その後例えば前記COMMIT処理に最
してレコード追加処理部13を起動して実際にファイルへ
レコードを追加することにより、ファイルのロック期間
がその処理の間のみに短縮され、ロック待ちによる処理
効率低下を大幅に減少できる。
〔実施例〕
第2図は本発明の実施例を示すブロック図である。ト
ランザクション20によるファイル15に対するINSERT処理
は、本発明によりバッファ処理部11に対するレコード追
加要求として実行される。
バッファ処理部11はレコード追加処理を受け付ける
と、第3図(a)に例示する処理の流れにより、処理ス
テップ30で、必要なら要求元のトランザクション20にロ
ーカルなバッファ12を新設する処理を行って、バッファ
12に指定のレコードを格納し、ファイル15に対する追加
レコードとして所要の制御情報等を設ける。次に、処理
ステップ31でレコードの格納位置情報を要求元に通知す
る。
又、ファイルのレコードをレコードの内容の所定デー
タ等をインデクスとして検索できるようにするための、
いわゆる2次インデクスが、ファイル15に設けられてい
る場合の例として、バッファ12上のレコードの検索も可
能なように、処理ステップ32でファイル管理部16の2次
インデクス処理部23に依頼して、2次インデクスの仮更
新を行って処理を終わる。
トランザクション20は、以上の処理によりレコード追
加が行われたものとして、従来と同様にその後の各種処
理の実行を終わるとCOMMIT処理を開始する。
本発明によりCOMMIT処理はCOMMIT処理部21によって実
行され、COMMIT処理部21は第3図(b)の処理の流れに
より、処理ステップ33で要求元トランザクションに未処
理のレコード追加があるか識別し、有れば処理ステップ
34でレコード追加ファイルの1つを取り上げ、処理ステ
ップ35でレコード追加処理部13に実行を要求する、こゝ
で後述のように、レコード追加処理のためにファイルに
対するロックが行われる。
レコード追加処理部13の処理が終わると、その結果通
知される追加レコードの格納アドレスによって、処理ス
テップ36で2次インデクス処理部23に要求して、2次イ
ンデクスの本更新を実行して当該ファイルに関する処理
を終わり、処理ステップ33に戻る。
このようにして、当該トランザクションでレコード追
加をしたファイルをすべて処理すると、処理ステップ33
から処理ステップ37に分岐してこのトランザクションに
関するログを記録した後、処理ステップ38でファイル管
理部16のロック制御部22に、すべてのファイルの前記ロ
ックの解除を要求して処理を終わる。
処理ステップ35でレコード追加処理要求を受けたレコ
ード追加処理部13は、第3図(c)の処理の流れによ
り、バッファ1に格納されているレコードを指定のファ
イルへ追加する処理を実行する。
即ち、処理ステップ40でファイルの最終位置を示すポ
インタを読むために先頭のページの参照ロックをロック
制御部22に要求して取得し、処理ステップ41でポインタ
を読み、最終ページを知り、処理ステップ42でそのペー
ジの参照ロックを取得し、そのページが共用バッファに
読み込まれていなければ処理ステップ43で読込む。
処理ステップ44で、バッファ12のレコードでそのペー
ジに格納できるレコードがあるか識別し、格納できる場
合には、処理ステップ45でそのページの更新ロックを取
得して、処理ステップ46でそのページに追加できるレコ
ードをすべて共用バッファに格納して、それらのレコー
ドをバッファ12から削除し、共用バッファの内容をファ
イルに書き出す。
次に処理ステップ47で、バッファ12に未処理のレコー
ドが残っているか識別し、残っていれば処理ステップ48
に進んで、次のページの更新ロックを取得して、処理ス
テップ49でそのページを共用バッファに読込み処理ステ
ップ44に戻る。
このようにして、バッファ12に格納されたレコードを
すべてファイル15に書き出すと、処理ステップ50で先頭
ページの更新ロックを取得し、処理ステップ51で先頭ペ
ージにあるポインタを新たな最終ページを指示するよう
に設定する処理をしてレコード追加の処理を終わり、CO
MMIT処理部21に復帰する。
以上の処理方式によれば、第4図(c)に示すよう
に、ファイルの所要ページに対するロックの期間がCOMM
IT処理の期間内になり、(b)と比較して明らかなよう
にロック期間が短縮され、従ってロック待ちを生じる機
会が従来より大幅に減少する。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算
機における、レコードの最終位置のポインタで定まる位
置にレコードを追加する構造のファイルに、レコード追
加のための複数のアクセスがある場合に、排他制御のた
めのロック期間が短縮され、従ってロック待ちを生じる
機会が大幅に減少するので、処理効率が向上するという
著しい工業的効果がある。
【図面の簡単な説明】 第1図は本発明の構成を示すブロック図、 第2図は本発明の実施例を示すブロック図、 第3図は本発明の処理の処理の流れ図、 第4図はレコード追加の説明図 である。 図において、 1、15はファイル、2はポインタ、 10、20はトランザクション、 11はバッファ処理部、12はバッファ、 13はレコード追加処理部、 16はファイル管理部、 21はCOMMIT処理部、22はロック制御部、 23は2次インデクス処理部、 30〜38、40〜51は処理ステップ を示す。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−241047(JP,A) 特開 昭63−279348(JP,A) 特表 昭59−501231(JP,A) 「情報処理学会第35回(昭和62年後 期)全国大会講演論文集」P427〜428 「情報処理学会第37回(昭和63年後 期)全国大会講演論文集」P445〜448

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】常に最終ページにレコード追加が行われる
    編成のファイル媒体上に形成されたデータベースに対す
    るアクセスを行うトランザクションを管理するトランザ
    クション管理装置であって、 トランザクションがファイル上のデータベースへのレコ
    ード追加指示(insert)を含む時このトランザクション
    毎に設けるメモリバッファ上へ当該レコード追加を行う
    バッファ処理部と、 当該トランザクションの正常終了指示(commit)によっ
    て、前記バッファに格納された前記追加レコードを実際
    のファイル媒体上のデータベースに追加処理を行うレコ
    ード追加処理部と、 を有することを特徴とするトランザクション管理装置。
JP63292588A 1988-11-18 1988-11-18 トランザクション管理装置 Expired - Lifetime JP2980610B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63292588A JP2980610B2 (ja) 1988-11-18 1988-11-18 トランザクション管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63292588A JP2980610B2 (ja) 1988-11-18 1988-11-18 トランザクション管理装置

Publications (2)

Publication Number Publication Date
JPH02138646A JPH02138646A (ja) 1990-05-28
JP2980610B2 true JP2980610B2 (ja) 1999-11-22

Family

ID=17783717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63292588A Expired - Lifetime JP2980610B2 (ja) 1988-11-18 1988-11-18 トランザクション管理装置

Country Status (1)

Country Link
JP (1) JP2980610B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3346711B2 (ja) * 1996-11-15 2002-11-18 株式会社エヌ・ティ・ティ・データ Icカードシステム及びicカード

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62241047A (ja) * 1986-04-11 1987-10-21 Mitsubishi Electric Corp デ−タベ−ス管理システムによる入出力バツフアの共用制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
「情報処理学会第35回(昭和62年後期)全国大会講演論文集」P427〜428
「情報処理学会第37回(昭和63年後期)全国大会講演論文集」P445〜448

Also Published As

Publication number Publication date
JPH02138646A (ja) 1990-05-28

Similar Documents

Publication Publication Date Title
US6834275B2 (en) Transaction processing system using efficient file update processing and recovery processing
US4498145A (en) Method for assuring atomicity of multi-row update operations in a database system
US7702660B2 (en) I/O free recovery set determination
US20070118547A1 (en) Efficient index versioning in multi-version databases
US8131679B2 (en) Exclusive control method for database and program
US7548919B2 (en) Computer program product for conducting a lock free read
JP2781092B2 (ja) システム間排他制御方式
CN107704603A (zh) 一种实现读写分离的方法及装置
US7194486B2 (en) Method and system for data processing with data replication for the same
JP2980610B2 (ja) トランザクション管理装置
JP4314126B2 (ja) 同時実行制御方法及び装置
JPH0816881B2 (ja) データベース更新方法
JP3180336B2 (ja) 多層バッファを用いるデータアクセス方法
JPH0588954A (ja) データベースの更新方法
JPH0456344B2 (ja)
JP3460265B2 (ja) 計算機間のデータ引き継ぎ方法
JP2787107B2 (ja) バッファ制御方式及び装置
JP3475783B2 (ja) データベース定義情報のプロセス間共有制御方式
JP2615046B2 (ja) レコード追加処理方法
JP2933011B2 (ja) ファイルの排他制御システム
JPS63196956A (ja) フアイル排他方式
JPS6058492B2 (ja) デ−タベ−ス検索方式
CN112631741A (zh) 事务处理方法、设备及存储介质
JPH03255549A (ja) レコード排他方式
JPH0823840B2 (ja) デ−タベ−ス更新方法および装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080917

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080917

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090917

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090917

Year of fee payment: 10