JPH10232809A - トランザクション処理システム - Google Patents

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

Info

Publication number
JPH10232809A
JPH10232809A JP9332683A JP33268397A JPH10232809A JP H10232809 A JPH10232809 A JP H10232809A JP 9332683 A JP9332683 A JP 9332683A JP 33268397 A JP33268397 A JP 33268397A JP H10232809 A JPH10232809 A JP H10232809A
Authority
JP
Japan
Prior art keywords
transaction
counter
data
log
database
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
JP9332683A
Other languages
English (en)
Inventor
Toshiyuki Inoue
利行 井上
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.)
N T T DATA TSUSHIN KK
NTT Data Corp
Original Assignee
N T T DATA TSUSHIN KK
NTT Data Communications Systems Corp
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 N T T DATA TSUSHIN KK, NTT Data Communications Systems Corp filed Critical N T T DATA TSUSHIN KK
Priority to JP9332683A priority Critical patent/JPH10232809A/ja
Publication of JPH10232809A publication Critical patent/JPH10232809A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 トランザクション処理システムにおいて、デ
ータ管理の形態及び手法を改良することにより、データ
アクセスのオーバーヘッドを減らしスループットを高め
る。 【解決手段】 業務に使用するデータを、トランザクシ
ョンの実行履歴を格納するための追記型のログ6、頻繁
にアクセスされるが加減算しか行わないデータを格納す
るためのカウンタ7、その他の比較的複雑な構成のデー
タを格納するためのデータベース8という3種類のリソ
ースに分散して管理する。トランザクションの処理で
は、まず、ログ6に入力電文を記録し、次に、データベ
ース8の更新処理を開始し、次に、カウンタ7の更新処
理を開始し、次に、カウンタ7の更新処理をコミット
し、次に、データベース8の更新処理をコミットし、最
後に、ログ6にトランザクション実行結果を記録する。
カウンタ7の更新はコミット後も取消し可能である。カ
ウンタ7の各レコードのロック期間は各レコードを参照
し更新している期間だけに限定される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、オンラインによる
銀行業務の処理や航空券の予約・発券業務の処理のよう
なトランザクション処理のためのシステムに関する。
【0002】
【従来の技術】例えばオンラインで銀行口座の預金や振
込を行う処理は、銀行口座の情報、入出金額、及び取引
履歴など、その取引に関連する種々のデータにアクセス
し、その内容を更新する処理から構成される。これら複
数のデータに対する処理は、全体として纏まってオンラ
イン・データベース処理の論理的単位を構成しており、
この論理的単位を「トランザクション」と呼ぶ。
【0003】トランザクションは、それに関連する複数
のデータの内容を変化させるが、全てのデータの変化後
の内容は、互いに整合した一貫性のあるものとなってい
なくてはならない。そのため、業務に必要なデータを全
て単一のデータベースに格納することにより、一つのデ
ータベース管理システムが全てのデータを管理し、それ
らの一貫性を自動的に補償するようなトランザクション
処理システムが従来から広く利用されている。
【0004】一方、業務に必要な複数のデータを複数の
データベースに分散させて管理するようにしたトランザ
クション処理システムも、従来から利用されている。こ
の種のシステムでは、複数のデータベース上に分散して
いるデータの一貫性を維持するために、N.J.Gra
yの考案した2フェーズ・コミット方式や、3フェーズ
・コミット方式が用いられている。
【0005】
【発明が解決しようとする課題】従来のトランザクショ
ン処理方式には次のような幾つかの問題がある。
【0006】(1)コミット方式の問題点 データを複数のデータベース上に分散させて管理してい
るシステムでは、分散されたデータの一貫性を維持する
方式として、2フェーズ・コミット方式が広く用いられ
ている。しかし、このコミット方式では、トランザクシ
ョンのコミットフェーズにおいて、データベースマネー
ジャとトランザクションマネージャとの間で2往復の通
信処理(つまり、コミット準備の指示と応答、及びコミ
ット実行の指示と応答)を伴う同期処理を行わなくては
ならない。そのため、無視できない長さの通信オーバヘ
ッドが生じてしまい、スループットが低くなる。
【0007】(2)データ配置の問題点 業務に使用するデータには、銀行口座情報のように複雑
な構造をもつデータ、支店コードを支店名に変換するた
めのテーブルのように参照されるだけのデータ、取引履
歴のように書き込みしか行われない追記型のデータ、入
出金金額のように加減算しかなされないデータなど、種
々のタイプのデータが存在する。従来のシステムでは、
それらのデータは(分散されているか否かに関わらず)
いずれもデータベースによって管理されている。しか
し、データベースは、複雑な構造のデータを管理するこ
とができる反面、そのための複雑な構成を備えるが故に
データアクセスオーバヘッドも大きいというマイナス面
も併せ持っている。そのため、単なるコード変換用テー
ブルや取引履歴などを格納するにはオーバヘッドが大き
過ぎ、このことも、スループット低下の一因となってい
る。
【0008】(3)ロック期間の問題点 入出金額のようなデータはアクセス頻度が高い。このよ
うなアクセス頻度の高いデータを従来のようにデータベ
ースで管理している場合、一般にデータベースはデータ
へのアクセス開始からコミットまでデータロックを維持
するため、トランザクション期間中カウンタのロックを
保持し続けることになる。この点はシステムのボトルネ
ックとなりやす。
【0009】従って、本発明の目的は、トランザクショ
ン処理システムにおいて、データ管理の形態及び手法を
改良することにより、データアクセスのオーバーヘッド
を減らしスループットを高めることにある。
【0010】
【課題を解決するための手段】本発明は、トランザクシ
ョンの実行履歴を格納するためのログと、加減算しか行
わないデータを格納するためのカウンタと、業務に使用
するデータの内の前記ログ及びカウンタに格納されるデ
ータ以外のデータを格納するためのデータベースと、ト
ランザクションを要求する入力電文を受け、前記トラン
ザクションを処理するトランザクション処理手段とを備
えたトランザクション処理システムを提供する。本シス
テムでは、業務に使用するデータが、そのタイプに応じ
てログ、カウンタ及びデータベースという異なるリソー
ス上で管理される。
【0011】本発明のトランザクション処理システムに
おいて、トランザクション処理手段は、好ましくは、
(1)入力電文を前記ログに記録する、(2)データベースを
更新するためのデータベースサブトランザクション、及
びカウンタを更新するためのカウンタサブトランザクシ
ョンを開始する、(3)カウンタサブトランザクションを
コミットする、(4)データベースサブトランザクション
をコミットする、(5)トランザクションの実行結果を前
記ログに書き込む、ことを(1)、(2)、(3)、(4)、(5)の
順序で実行することができる。
【0012】また、カウンタは、好ましくは、カウンタ
サブトランザクションがコミットされた後でもカウンタ
の更新を取り消すための取消し手段を有することができ
る。
【0013】さらに、本発明のシステムは、未完了のト
ランザクションのリカバリを行うためのリカバリ処理手
段を備えることができ、このリカバリ処理手段は、好ま
しくは、ログに対応する実行履歴が記録されているか否
かにより未完了トランザクションを検出し、 検出した未完了トランザクションのデータベースサ
ブトランザクションが既にコミットされているときは、
その未完了トランザクションを取引成立の状態で完了さ
せるようにログに実行結果を記録し、 他方、検出した未完了トランザクションのデータベ
ースサブトランザクションが未だコミットされていない
ときは、その未完了トランザクションを取引不成立の状
態で完了させるように、カウンタの更新を取り消すと共
にログに実行結果を記録するようにすることができる。
【0014】本発明のシステムでは、また、トランザク
ション処理手段が、好ましくは、カウンタの各レコード
のロック期間を、各レコードにアクセスしている時のみ
に限定することできる。本発明は典型的にはコンピュー
タによって実現されるが、そのためのコンピュータプロ
グラムはディスク型ストレージ、半導体メモリ、通信ネ
ットワークなどの各種の媒体を通じてコンピュータにイ
ンストール又はロードすることができる。
【0015】
【発明の実施の形態】以下、図面を参照して本発明の好
適な実施形態を説明する。
【0016】1. システム構成 図1は、オンライン銀行業務処理に適した本発明の一実
施形態にかかるトランザクション処理システムのシステ
ム構成を示す。
【0017】コンピュータ1は、業務に使用するデータ
を管理し、業務にかかるトランザクションを処理するも
ので、適用業務プログラム2と、データベース管理シス
テム3と、OLTP(オンライン・トランザクション処
理)パッケージ4と、オペレーティングシステム5を備
える。このコンピュータ1には、ネットワーク9を介し
て、複数の端末10−1,10−2,・・・,10−n
が接続されている。各端末10−1,10−2,・・
・,10−nは、ユーザから入出金や振込のようなトラ
ンザクション処理要求を受け付けてその電文をコンピュ
ータ1へ送り、かつコンピュータ1からトランザクショ
ンの処理結果の電文を受け取ってユーザに返す。
【0018】コンピュータ1では、業務に使用する種々
のデータが3種類のリソースに分散されて管理されてい
る。すなわち、それらデータは、取引履歴を格納するた
めのログ6、入出金額のようなアクセス頻度が高いが加
減算だけ行えばよいデータを保持したカウンタ7、その
他の口座情報のようなデータが格納されているデータベ
ース8の3種類に分類されて格納されている。ログ6は
シーケンシャルファイル、カウンタ7は加減算のみを行
うテーブル、データベース8はリレーショナル型、階層
型、又はネットワーク型などのデータベースである。
【0019】カウンタ7は、後述する図10及び図11
に示すようなもので、トランザクション機能、つまり複
数のオペレーションを原子的に扱うことができる機能を
有している。さらに、カウンタ7は、トランザクション
識別子を指定して取消命令を実行することにより、一度
確定したトランザクションであっても、いつでも取り消
すことができる機能も有している。また、このカウンタ
7は、復旧処理を高速化するためのチェックポイント機
能なども備えている。
【0020】2. リソース間でデータの同期をとるた
めに必要なデータ 図2は、本システムにおけるトランザクションの処理手
順の概要を示す。
【0021】適用業務プログラム2が実行するトランザ
クション11は、リソース単位のサブトランザクション
に論理的に分割される。即ち、トランザクション11
は、データベース8のサブトランザクション12と、カ
ウンタ7のサブトランザクション13と、ログ6のトラ
ンザクション管理(開始/完了)14とに論理的に分割
される。
【0022】図3は、データベース8、カウンタ7、ロ
グ6という3種類のリソース間でデータの同期を取るた
めの管理データを示す。
【0023】リソース間でサブトランザクションの関連
付けを行うための情報として「トランザクション識別子
(Tid;Transaction id)」を使用し
て、同じトランザクション11に含まれるサブトランザ
クション12、13、14間の同期処理を行う。そのた
めに、各リソース8、7、6上には、トランザクション
識別子をキーとして以下の情報を格納する。
【0024】データベース8上には、口座情報のような
一般データの集合たるデータベース(つまり、図4のデ
ータベース24)の他に、データベースサブトランザク
ション実行履歴表21を設ける。データベースサブトラ
ンザクション実行履歴表21では、何番の識別子をもつ
トランザクション11がデータベース8に対する処理
(データベースサブトランザクション12)を完了した
かが管理される。つまり、この表21には、データベー
スサブトランザクション12の完了したトランザクショ
ン11の「トランザクション識別子」が格納される。こ
の表21に対する更新は、データベースサブトランザク
ション12のコミットと同期して永続化される。
【0025】カウンタ7上には、入出金額のようなデー
タを保持した表(つまり、図4のカウンタ表25)の他
に、カウンタサブトランザクション更新履歴表22が設
けられる。カウンタサブトランザクション更新履歴表2
2では、何番の識別子をもつトランザクション11がカ
ウンタ7に対する処理を完了したかが管理される。つま
り、この表22には、カウンタ7に対する処理(カウン
タサブトランザクション13)が完了したトランザクシ
ョン11の「トランザクション識別子」とその処理でカ
ウンタ表25に行った更新の「更新履歴」とが含まれ
る。この表22に対する更新は、カウンタサブトランザ
クション13のコミットと同期して永続化される。
【0026】ログ6上には、トランザクション実行履歴
表23が設けられ、ここでは、何番の識別子をもつトラ
ンザクション11が処理を開始し、かつ完了したかを管
理がされる。つまり、この表23には、トランザクショ
ン11が処理を開始したときにそのトランザクション1
1の「トランザクション識別子」「入力電文」が書き込
まれ、トランザクション11が処理を完了したときにそ
のトランザクションの「実行結果」がさらに書き込まれ
る。この表23に対する更新は、ログ入出力要求の完了
と同期して永続化される。
【0027】3. トランザクション処理シーケンス 図4は、コンピュータ1が行なうトランザクション処理
シーケンスを示す。
【0028】以下、処理シーケンスを時間的順序に従っ
て説明する。
【0029】(1)入力電文受信 端末10から入力電文を受信する。
【0030】(2)トランザクション識別子割り当て 次に、端末10からの入力電文に対して、トランザクシ
ョン識別子を割り当てる。
【0031】(3)入力電文書き込み 次に、ログ6のトランザクション実行履歴表23に、
「トランザクション識別子」及び「入力電文」を書き込
む。こうして表23に書き込まれた「トランザクション
識別子」及び「入力電文」は、この入力電文書き込み処
理の完了までに、ディスク記憶装置のような不揮発媒体
に格納される。
【0032】(4)データベースの参照/更新 次に、必要に応じてデータベース8内のデータベース2
5を参照し更新する。
【0033】(5)データベース実行履歴挿入 次に、データベース8内のトランザクション実行履歴表
21に、トランザクション識別子を書き込む。
【0034】(6)カウンタの参照/更新 次に、必要に応じてカウンタ7内のカウンタ表25を参
照し更新する。カウンタ表25の更新と同時に、カウン
タサブトランザクション更新履歴表22に「トランザク
ション識別子」及び「更新履歴」を挿入する。こうして
更新されたカウンタサブトランザクション更新履歴表2
2は、カウンタサブトランザクション13のコミット完
了までに不揮発媒体に格納されればよく、このカウンタ
参照/更新処理の時点では未だ不揮発媒体に格納されて
いる必要はない。また、カウンタ表25のデータに対し
て行うことができるオペレーションは加減算のみに限定
されているため、カウンタ表25のロックはカウンタサ
ブトランザクション13のコミット時まで保持しておく
必要はない。従って、カウンタ表25の各レコードのロ
ック期間はそのレコードの参照/更新中のみに限定され
る。
【0035】(7)カウンタサブトランザクションコミッ
ト 次に、カウンタ7に対してカウンタサブトランザクショ
ン13のコミットを宣言する。このカウンタサブトラン
ザクション13のコミット完了までに、当該カウンタサ
ブトランザクション13の「更新履歴」(つまり、(6)
の処理で更新履歴表22に書き込んだ「更新履歴」)が
不揮発媒体に格納される。
【0036】(8)データベースサブトランザクションコ
ミット 次に、データベース8に対してデータベースサブトラン
ザクション12のコミットを宣言する。このデータベー
スサブトランザクション12のコミット完了までに、当
該データベースサブトランザクション12の「実行履
歴」(つまり、(5)の処理で実行履歴表21に書き込ん
だ「トランザクション識別子」)が不揮発媒体に格納さ
れる。
【0037】(9)トランザクション実行結果書き込み 次に、ログ6のトランザクション実行履歴表23に、ト
ランザクション実行結果(取引の「成立」又は「不成
立」)を書き込む。こうして書き込まれた当該トランザ
クション11のトランザクション実行結果は、このトラ
ンザクション実行結果書き込み処理の完了までに、不揮
発媒体に格納される。
【0038】(10)出力電文送信 最後に、端末10に対して、出力電文を送信する。
【0039】図5は、上述したシーケンスにおける(6)
及び(7)のカウンタ処理を詳細に示している。
【0040】初期状態では、例えばカウンタ表25の
「1」番の支店の金額は「0」であり、また、カウンタ
サブトランザクション更新履歴表22にはデータが無か
ったとする。この状態において、Tidが「1」番で、
「1」番の支店に金額「100」を入金するようなトラ
ンザクションが発生したとする。すると、このトランザ
クションのカウンタ更新処理及びカウンタコミット処理
は、以下の手順で行われる。
【0041】(1)カウンタ更新処理では、まず、カウン
タ表25の支店「1」のレコードの更新ロックを獲得す
る。
【0042】(2)次に、更新履歴表22に、Tid
「1」と、更新履歴「支店=1、金額+=100」を書
き込む。
【0043】(3)次に、カウンタ表25の支店「1」の
レコードの金額に「100」を加算する。
【0044】(4)次に、カウンタ表25の支店「1」の
レコードの更新ロックを解除する。これでカウンタ更新
処理が終了する。
【0045】(5)続くカウンタコミット処理では、更新
履歴表22のTid「1」のレコードをディスク記憶装
置31のような不揮発性媒体に書き込む。
【0046】4. リカバリ処理シーケンス 図6は、完全にコミットされたトランザクション(以
下、完了トランザクションという)、及び処理途中での
異常発生により完全にはコミットできなかったトランザ
クション(以下、未完了トランザクションという)の例
を示す。
【0047】トランザクションT1及びT2は完了トラ
ンザクションを示し、そのうちT1は取引が「成立」し
たもの、T2は処理途中でロールバックされて取引が
「不成立」となったものを示す。トランザクションT3
〜T6は、異常が発生した処理段階の異なる幾つかの未
完了トランザクションの例を示す。
【0048】図7は取引「成立」の未完了トランザクシ
ョンのリカバリ処理シーケンスを示し、図8は取引「不
成立」の未完了トランザクションのリカバリ処理シーケ
ンスを示す。
【0049】以下、図7及び図8に示すリカバリ処理シ
ーケンスを時間的順序に沿って説明する。
【0050】(1)未完了トランザクション抽出 不揮発性媒体(ディスク)31内のログ6のトランザク
ション実行履歴表23を調べることにより、未完了トラ
ンザクション(つまり、実行履歴表23に未だトランザ
クション実行結果が書き込まれていないトランザクショ
ン)のTidを抽出する。
【0051】例えば、図9に示すようにトランザクショ
ン実行履歴表23が記録されていた場合、Tid=1及
び2のトランザクションは完了トランザクションである
が、Tid=3〜6のトランザクションは未完了トラン
ザクションである。従って、Tid=3〜6のトランザ
クションがリカバリ処理の対象となる。
【0052】(2)未完了データベースサブトランザクシ
ョン抽出 次に、不揮発性媒体(ディスク)31内のデータベース
8のトランザクション実行履歴表21を調べ、各未完了
トランザクションについてのデータベースサブトランザ
クション12の完了/未完了を調べる。そして、データ
ベースサブトランザクション12が完了しているトラン
ザクションのみを「取引成立」とし、データベースサブ
トランザクション12が未完了なものを「取引不成立」
とすることにより、各未完了トランザクションについて
「取引成立」か「取引不成立」かを判断する。
【0053】例えば、図10に示すようにデータベース
サブトランザクション実行履歴表21が記録されていた
場合、Tid=1〜3のトランザクションはデータベー
スサブトランザクション12が完了しているから「取引
成立」であり、Tid=4〜6のトランザクションはデ
ータベースサブトランザクション12が未完了であるか
ら「取引不成立」である。
【0054】従って、図9の例で抽出されたTid=3
〜6の未完了トランザクションのうち、Tid=3は
「取引成立」、Tid=4〜6は「取引不成立」と判断
される。
【0055】これ以降の処理は、「取引成立」か「取引
不成立」かに応じて2種類に分かれる。
【0056】(3)取引成立時(図7) 「取引成立」と判断した未完了トランザクションについ
ては、データベース8の処理が完了しているから、当該
トランザクションは実質的に完了したものとみなして、
ログ6のトランザクション実行履歴表23のトランザク
ション実行結果欄に「取引成立」と書き込む。この場
合、データベースサブトランザクション及びカウンタサ
ブトランザクションはコミットされているから、データ
ベース8及びカウンタ7に対するリカバリ処理は不要で
ある。これで、リカバリ処理が終わる。
【0057】(4)取引不成立時(図8) 「取引不成立」と判断した未完了トランザクションにつ
いては、データベース8の処理が完了していないから、
当該トランザクションは実質的にロールバックされたも
のとみなして、 まず、カウンタ7において、該当Tidのカウンタ
サブトランザクション13の取り消しを行い、 次に、ログ6のトランザクション実行履歴表23中
のトランザクション実行結果の欄に「取引不成立」と書
き込む。この場合、データベース8は当該トランザクシ
ョン発生前の状態のままであるから、データベース8に
対するリカバリ不要である。これで、リカバリ処理が終
わる。
【0058】図11は、上記リカバリ処理における(4)
の取引不成立時ののカウンタ取り消し処理の詳細を示
す。以下、このカウンタ取り消し処理を時間順に沿って
説明する。
【0059】ここで、初期状態として、カウンタ表25
には支店「1」、金額「100」と記録され、更新履歴
表22にはTid「1」、更新履歴「支店=1、金額+
=100」と記録されていたとする。また、リカバリ対
象はTid=1のトランザクションであるとする。取消
し処理は以下の手順で行われる。
【0060】(1)まず、カウンタ7の更新履歴表22か
らTid=1の更新履歴を検索する。
【0061】(2)次に、Tid=1のトランザクション
がアクセスしたカウンタ表25内のレコード(ここで
は、支店=1のレコード)の更新ロックを獲得する。
【0062】(3)次に、カウンタ表25の支店=1のレ
コードに対して、Tid=1のトランザクションが行っ
た更新の打消処理(逆オペレーション、つまり、金額
「−100」の加算)を行ない、金額を「0」に戻す。
【0063】(4)次に、更新履歴表22のTid=1の
レコードに「取消」を記入する。
【0064】(5)次に、ディスク31中のカウンタの更
新履歴表22のTid=1のレコードにも「取消」を記
入する。
【0065】(6)次に、Tid=1のトランザクション
がアクセスしたレコード(支店=1のレコード)の更新
ロックを開放する。これで、取消し処理が終了する。
【0066】5. 実施形態の利点 以上説明した実施形態について、コミット方式、データ
配置、ロック期間という3つの観点からの利点を以下に
述べる。
【0067】(1)コミット方式 本実施形態では、複数のリソースに分散されている複数
のデータに対するアクセス順序に一定の制約を設けてい
る。すなわち、図4に示したように、まずログ6に入力
電文を記録し、次に、カウンタ7の更新処理をコミット
し、次に、データベース8の更新処理をコミットし、最
後にログ6に実行結果を記録する、という順序を採用す
る。また、トランザクション機能を有するカウンタ7
に、取消処理機能を持たせており、この取消処理はコミ
ット後であっても行えるようにしてある。結果として、
2フェーズコミット方式を用いなくても、全てのデータ
の一貫性を維持することができる。その理由は次の通り
である。
【0068】 トランザクションの実行結果はトラン
ザクションの最後にログ6に記録されるから、この実行
結果の有無により、どのトランザクションが未完了であ
るかを知ることできる。
【0069】 入力電文はトランザクションの最初に
ログ6に記録されるから、未完了のトランザクションを
完了させるようにリカバリする場合、その最初に記録さ
れた入力電文に基づいてリカバリを行うことができる。
【0070】 データベースの更新処理のコミットは
カウンタの更新処理のコミットの後で行われ、かつカウ
ンタの更新はそのコミット後も取り消せるから、データ
ベースの更新処理が未完了のトランザクションについて
は、リカバリ処理でカウンタの更新を取り消すことによ
って、ロールバックされたと同様な状態へ戻すことがで
きる。また、データベースの更新処理が完了している未
完了トランザクションについては、リカバリ処理でログ
6に実行結果を記録するだけで、完了した状態にするこ
とができる。
【0071】このように、2フェーズコミット方式が不
要となることにより、2フェーズコミット方式に比べて
リソース間の同期方式を単純化し、高速化することがで
きる。
【0072】(2)データ配置 既に述べたように、業務で使用するデータには様々なタ
イプがあり、例えば顧客の口座残高を格納する表のよう
に参照及び更新を行うものもあれば、支店コードを支店
名に変換するときに使用するような参照しか行わない表
や、取引の履歴を記録しておくために追加型の書き込み
しか行わないものなど、データのタイプにより、その取
り扱い方法も様々である。本実施形態では、このような
種々のタイプのデータをデータベース、カウンタ、ログ
など、それぞれのデータの性格に応じた最適なリソース
に分散させて配置している。換言すれば、全てのデータ
をデータベースに格納しているのではない。そのため、
システムのオーバヘッドが減少し、レスポンスタイムや
スループットが改善される。
【0073】(3)ロック期間 カウンタのように、他のデータとの一貫性が必要で、頻
繁にアクセスされるが加減算しか行わないようなデータ
へアクセスする際のデータロック期間を、データへのア
クセスを開始してからコミットする迄ではなく、データ
アクセス時(メモリ上のデータを参照/更新している期
間)のみに限定している。それにより、これらのデータ
へアクセスする際の同時実行性が高まる。
【0074】尚、本発明を実施するためのマシン可読の
コンピュータプログラムは、ディスク型ストレージや半
導体メモリのような固定的にプログラムを担持する媒体
や、通信ネットワークの様な流動的にプログラムを担持
する媒体から、コンピュータに供給することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態にかかるトランザクション
処理システムのシステム構成を示すブロック図。
【図2】トランザクションとサブトランザクションの関
係を示す説明図。
【図3】リソース間でデータの同期をとるための管理デ
ータを示す説明図。
【図4】トランザクション処理シーケンスの説明図。
【図5】カウンタの処理方式の説明図。
【図6】トランザクションの例を示す説明図。
【図7】取引成立時のリカバリ処理シーケンスの説明
図。
【図8】取引不成立時のリカバリ処理シーケンスの説明
図。
【図9】ログのトランザクション実行履歴表の記録例を
示す説明図。
【図10】データベースサブトランザクション実行履歴
表の記録例を示す説明図。
【図11】カウンタの取消処理方式の説明図。
【符号の説明】
1 コンピュータ 2 適用業務プログラム 3 データベース管理システム 4 OLTPパッケージ 5 オペレーティングシステム 6 ログ 7 カウンタ 8 データベース

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 トランザクションの実行履歴を格納する
    ためのログと、 加減算しか行わないデータを格納するためのカウンタ
    と、 業務に使用するデータの内の前記ログ及びカウンタに格
    納されるデータ以外のデータを格納するためのデータベ
    ースと、 トランザクションを要求する入力電文を受け、前記トラ
    ンザクションを処理するトランザクション処理手段とを
    備えたトランザクション処理システム。
  2. 【請求項2】 請求項1記載のものにおいて、前記トラ
    ンザクション処理手段が、 (1)前記入力電文を前記ログに記録する、 (2)前記データベースを更新するためのデータベースサ
    ブトランザクション、及び前記カウンタを更新するため
    のカウンタサブトランザクションを開始する、 (3)前記カウンタサブトランザクションをコミットす
    る、 (4)前記データベースサブトランザクションをコミット
    する、 (5)前記トランザクションの実行結果を前記ログに書き
    込む、ことを(1)、(2)、(3)、(4)、(5)の順序で実行す
    るトランザクション処理システム。
  3. 【請求項3】 請求項2記載のものにおいて、前記カウ
    ンタが、前記カウンタサブトランザクションがコミット
    された後に前記カウンタの更新を取り消すための取消し
    手段を有するトランザクション処理システム。
  4. 【請求項4】 請求項3記載のものにおいて、未完了の
    トランザクションのリカバリを行うためのリカバリ処理
    手段をさらに備え、 前記リカバリ処理手段は、前記ログに対応する実行履歴
    が記録されているか否かにより未完了トランザクション
    を検出し、 検出した前記未完了トランザクションのデータベー
    スサブトランザクションが既にコミットされているとき
    は、前記未完了トランザクションを取引成立の状態で完
    了させるように前記ログに実行結果を記録し、 検出した前記未完了トランザクションのデータベー
    スサブトランザクションが未だコミットされていないと
    きは、前記未完了トランザクションを取引不成立の状態
    で完了させるように、前記カウンタの更新を取り消すと
    共に前記ログに実行結果を記録するトランザクション処
    理システム。
  5. 【請求項5】 請求項1記載のものにおいて、前記トラ
    ンザクション処理手段が、前記カウンタの各レコードの
    ロック期間を、前記各レコードにアクセスしている時の
    みに限定するトランザクション処理システム。
  6. 【請求項6】 トランザクションの実行履歴を格納する
    ためのログと、 加減算しか行わないデータを格納するためのカウンタ
    と、 業務に使用するデータの内の前記ログ及びカウンタに格
    納されるデータ以外のデータを格納するためのデータベ
    ースと、 トランザクションを要求する入力電文を受け、前記トラ
    ンザクションを処理するトランザクション処理手段とを
    備えたトランザクション処理システムとしてコンピュー
    タを機能させるためのプログラムを担持したコンピュー
    タ読取り可能な記録媒体。
JP9332683A 1996-12-16 1997-12-03 トランザクション処理システム Pending JPH10232809A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9332683A JPH10232809A (ja) 1996-12-16 1997-12-03 トランザクション処理システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP33558996 1996-12-16
JP8-335589 1996-12-16
JP9332683A JPH10232809A (ja) 1996-12-16 1997-12-03 トランザクション処理システム

Publications (1)

Publication Number Publication Date
JPH10232809A true JPH10232809A (ja) 1998-09-02

Family

ID=26574264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9332683A Pending JPH10232809A (ja) 1996-12-16 1997-12-03 トランザクション処理システム

Country Status (1)

Country Link
JP (1) JPH10232809A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002373082A (ja) * 2001-06-15 2002-12-26 Nec Corp マルチタスク構成のトランザクション処理方法及びトランザクション処理プログラム
JP2010015556A (ja) * 2008-07-02 2010-01-21 Sap Portals Israel Ltd 分散アプリケーションコンテキストを意識したトランザクション処理のための方法及び装置
CN113592471A (zh) * 2021-07-29 2021-11-02 中国人民银行清算总中心 支付交易应用***及方法
JP2022515949A (ja) * 2019-12-03 2022-02-24 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド トランザクション処理方法、装置、機器並びにコンピュータプログラム
US11544245B2 (en) 2019-12-03 2023-01-03 Tencent Technology (Shenzhen) Company Limited Transaction processing method, apparatus, and device and computer storage medium

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002373082A (ja) * 2001-06-15 2002-12-26 Nec Corp マルチタスク構成のトランザクション処理方法及びトランザクション処理プログラム
JP2010015556A (ja) * 2008-07-02 2010-01-21 Sap Portals Israel Ltd 分散アプリケーションコンテキストを意識したトランザクション処理のための方法及び装置
JP2022515949A (ja) * 2019-12-03 2022-02-24 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド トランザクション処理方法、装置、機器並びにコンピュータプログラム
US11544245B2 (en) 2019-12-03 2023-01-03 Tencent Technology (Shenzhen) Company Limited Transaction processing method, apparatus, and device and computer storage medium
CN113592471A (zh) * 2021-07-29 2021-11-02 中国人民银行清算总中心 支付交易应用***及方法

Similar Documents

Publication Publication Date Title
CN109739935B (zh) 数据读取方法、装置、电子设备以及存储介质
US5613113A (en) Consistent recreation of events from activity logs
US6732123B1 (en) Database recovery to any point in time in an online environment utilizing disaster recovery technology
CN111143389B (zh) 事务执行方法、装置、计算机设备及存储介质
US5778388A (en) Method of processing a synchronization point in a database management system to assure a database version using update logs from accumulated transactions
US4868744A (en) Method for restarting a long-running, fault-tolerant operation in a transaction-oriented data base system without burdening the system log
US5465328A (en) Fault-tolerant transaction-oriented data processing
US6154847A (en) Method and system for performing resource updates and recovering operational records within a fault-tolerant transaction-oriented data processing system
US7991745B2 (en) Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing
CA2436517C (en) Method and apparatus for data processing
US7970748B2 (en) Systems and methods for reorganizing a database object
US6185577B1 (en) Method and apparatus for incremental undo
US5151987A (en) Recovery objects in an object oriented computing environment
KR100625595B1 (ko) 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템
EP2550632B1 (en) System with multiple conditional commit databases
EP0457473B1 (en) Method for accessing shared data
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的***和方法
US20090222822A1 (en) Nested Queued Transaction Manager
JPH0812631B2 (ja) データベース・トランザクション及び照会処理システム
US6298345B1 (en) Database journal mechanism and method that supports multiple simultaneous deposits
CA2375376A1 (en) Collision avoidance in bidirectional database replication
US5862318A (en) System for generating a gapless series of identity values
US6725242B2 (en) Multiple-computer data processing system and method with time-versioned data storage
CN112559496B (zh) 一种分布式数据库事务原子性实现方法及装置
JPH10232809A (ja) トランザクション処理システム

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20040903