JP2001101045A - トランザクション処理方法及びトランザクション処理システム - Google Patents
トランザクション処理方法及びトランザクション処理システムInfo
- Publication number
- JP2001101045A JP2001101045A JP27626499A JP27626499A JP2001101045A JP 2001101045 A JP2001101045 A JP 2001101045A JP 27626499 A JP27626499 A JP 27626499A JP 27626499 A JP27626499 A JP 27626499A JP 2001101045 A JP2001101045 A JP 2001101045A
- Authority
- JP
- Japan
- Prior art keywords
- file
- transaction
- update
- information
- files
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1865—Transactional file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
るファイルの更新処理と障害時のリカバリ処理を簡単に
効率良く実現することのできるトランザクション処理シ
ステムを提供すること。 【解決手段】 並行に動作する複数のトランザクション
(TXID=1〜3)によってUPDATEやREMO
VEなどの更新をされたファイルに対して、それを更新
した1つのトランザクション(TXID=1)のコミッ
ト時に、そのトランザクションによる更新だけでなく、
他のトランザクション(TXID=2,3)による更新
とそれを取り消すのに必要な情報(<entry>にお
けるTXID=2とTXSTATE=UPDATE、<
oldvalue>200円</oldvalue>
等)を、同じファイルにまとめて書き込む。障害発生後
のリカバリ処理は次にそのファイルを使う時点で行えば
よい。
Description
ションが並行して同じファイルにアクセスするトランザ
クション処理方法及びトランザクション処理システムに
関する。
においては、トランザクションと呼ぶ処理の流れを単位
として処理の実行を管理する。例えば、端末装置やネッ
トワークなどから受け取った処理要求に対して、必要な
処理を実行し、その結果を返すような、何らかの手段で
起動された処理を実行する流れをトランザクションと呼
ぶ。個々のトランザクションは、実行過程で、1または
複数のファイル(あるいはデータベース)に記録管理す
るデータの更新を行う。トランザクション処理システム
は、このような1または複数のデータの更新を、アトミ
ックにコミットするかアボートするかのいずれかの状態
にすることを保証する。すなわち、すべての更新を同時
に有効にするのがコミットである。逆に、すべての更新
を捨ててトランザクションを実行しなかったのと同じ状
態に戻すのがアボートである。また、トランザクション
処理システムは、一度トランザクションをコミットした
ら、そのトランザクションによる更新が取り消されるこ
とがないことも保証する。
を実現する方式は広く知られており、例えば“TRAN
SACTION PROCESSING: CONCE
PTS AND TECHNIQUES”(Jim G
ray,Andreas Reuter著、Morga
n Kaufmann)にはさまざまな方式が開示され
ている。
いが難しいのは、1つのファイル上のデータを、同時に
複数のトランザクションが更新する場合である。1つの
ファイルには同時に1つのトランザクションしか更新す
ることを許さなければ問題は生じない。しかし、同時に
複数のトランザクションを並行に処理して性能を向上さ
せるためには、同時に1つのファイルの中の異なる部分
に記録管理するデータを更新できるようにすることが必
要になる。この問題は、ファイルではなくデータベース
を用いる場合も同様である。以下、ファイルを例に説明
するが、データベースにおいても同様である。
クション処理システムを実現するために従来から広く用
いられているのは、WAL(Write Ahead
Logging)と呼ばれる方式である。この方式は、
メモリ上のバッファに読み込んだファイルに対し、複数
のトランザクションが更新を行った場合、ログファイル
にはどのトランザクションがどのファイルのどの部分を
どう書き換えたかを記録する。さらに、ログに記録した
更新情報が安定記憶装置(例えばハードディスク)上に
書かれて消えないことが保証されるまで、バッファ上で
行った更新はハードディスクなどの記憶媒体上の元のフ
ァイルには書き戻さないようにタイミングを制御する。
記録されており、システムの障害が発生した場合には、
そのログを使ってファイルを正しい状態に戻すことがで
きる。すなわち、障害が発生してシステムを再起動した
場合、トランザクション処理システムはログを見て、コ
ミットしたトランザクションが行った更新で、それがフ
ァイルに反映されていないものは正しく反映させる。ま
た、アボートしたトランザクションによる更新がファイ
ルに書きこまれていたらそれを取り消す処理を行う。こ
のようなリカバリ処理により、障害発生に対してもトラ
ンザクションの原子性(Atomicity)や耐久性
(Durability)や分離性(Isolatio
n)や一貫性(Consistency)を保証するこ
とができる。
もう1つの方式は、シャドウページ方式である。この方
式でファイルを更新する場合には、ハードディスク上
に、更新前のファイルが書き込まれているページと、更
新後のファイルが書き込まれているページの両方を用意
し、トランザクションのコミット時にファイルの管理デ
ータをアトミックに入れ替える。そのため、常にハード
ディスク上には正しいファイルが存在することが保証で
きる。
るトランザクション処理方式では、トランザクションが
ファイルを更新する場合、まず更新内容をログに書いて
からファイル本体を更新するため、複数のトランザクシ
ョンによるファイルの共有を管理するためには複雑な処
理手順を必要とする。また、1回の更新に対して、ログ
とファイル本体への2回の書き込み処理が必要になる。
また、リカバリに必要な更新情報をログに記録し、リカ
バリ時にそのログを使ってファイルを一貫性のある状態
に戻す処理は、複雑な処理手順を必要とする。さらに、
リカバリ処理は障害発生後の再起動時に集中して行わな
ければならず、再起動に時間がかかるという問題点があ
る。
ィスク上には常に正しい状態のファイルが存在するの
で、障害発生時のリカバリ処理のオーバヘッドが小さい
という特徴を持つ。しかし、シャドウページ方式は、1
つのトランザクションのコミット前とコミット後の2つ
のファイルのデータが記録されたページを、アトミック
に交換することを基本操作としている。そのため、複数
のトランザクションが同じファイルを更新したい場合に
は、それらのトランザクションをシリアライズして順に
更新して行くようにしなければならない。WAL方式の
ように同じファイルの異なる部分を複数のトランザクシ
ョンが並行して更新できるようにするためにはシャドウ
ページ方式だけでは無理で、その上にWAL方式と同じ
ようにログを使ったデータの管理をするなどの工夫が必
要になる。そのため、シャドウページ方式は簡単に実装
できても、その上に複雑なデータの管理を実装すること
が必要になるという問題点がある。
ので、並行に動作する複数のトランザクションによるフ
ァイルの更新処理と障害時のリカバリ処理を簡単に効率
良く実現することのできるトランザクション処理方法及
びトランザクション処理システムを提供することを目的
とする。
るトランザクション処理方法は、バッファ領域上に読み
出した同一のファイルを更新対象として複数のトランザ
クションが処理を行い、前記複数のトランザクションの
うちの一つのトランザクションのコミット時に、該一つ
のコミットするトランザクションによる確定した更新内
容と、他のコミットしていないトランザクションによる
未確定の更新内容と、該未確定の更新を取り消すための
情報とをファイル内容として含む前記ファイルを、安定
記憶装置に書き込むことを特徴とする。
ク等の、電源を切っても記憶した内容が消えない記憶装
置を指す。
クションのコミット時に、そのトランザクションが更新
したファイルを別のトランザクションも更新している場
合には、その別のトランザクションによる更新内容とそ
れを取り消すための情報も一緒にファイルの中身に書き
込んで、そのファイルを安定記憶装置(例えばハードデ
ィスク)に書き出すことにより、ファイルとは別にログ
を用意して複雑な管理を行うようなことをしなくとも、
トランザクションの原子性(トランザクション単位で、
行った更新の全てが安定記憶装置上で有効になる(コミ
ット)か全て無効になる(アボート)かいずれかの状態
にしかならないことを、システムに障害が起きた場合で
も保証できること)を担保しつつ、一つのファイルのデ
ータを複数のトランザクションが並行して更新すること
を実現できる。
トランザクションをコミットする時には、該他のこれか
らコミットするトランザクションによる新たに確定した
更新内容と、以前にコミットしたトランザクションによ
る既に確定している更新内容のうち該他のこれからコミ
ットするトランザクションによる新たに確定した更新内
容とは競合しないものとをファイル内容として含むファ
イルを、前記安定記憶装置に格納された前記ファイルに
上書きするようにしてもよい。
同じファイルを更新している別のトランザクションをコ
ミットする場合には、後にコミットするトランザクショ
ンの更新内容と、先にコミットしたトランザクションの
更新内容のうち後にコミットするトランザクションによ
って書き換えられてはいないものとを書き込んだファイ
ルで、先に安定記憶装置に書き出されたファイル(後に
コミットすることになるトランザクションの更新内容と
それを取り消すための情報が入っている)を上書きすれ
ば、トランザクションの原子性を担保できる。なお、あ
るトランザクションがコミットした後、同じファイルを
更新している別のトランザクションをアボートする場合
には、アボートするトランザクションによる更新がなか
った状態に戻したファイルで、先に安定記憶装置に書き
出されたファイル(後にアボートすることになるトラン
ザクションの更新内容とそれを取り消すための情報が入
っている)を上書きしても良いし、アボート時には何も
しなくとも、下記のように次にファイルを読み出す時に
リカバリ処理を行えば、トランザクションの原子性は担
保できる。
憶装置から読み出した時に、このファイルに、コミット
していないトランザクションによる未確定の更新内容お
よび該未確定の更新を取り消すための情報が含まれてい
るか否かを調べ、含まれている場合には、読み出した前
記ファイルを前記情報を用いて前記コミットしていない
トランザクションによる更新がなかった状態に戻すよう
にしてもよい。
同じファイルを更新している別のトランザクションのコ
ミット/アボートが行われる前に、システムに障害が起
きた場合でも、コミットしたトランザクションによる更
新は既に安定記憶装置上でファイルに正しく反映されて
いる。これに加えて上記のようなリカバリ処理を行え
ば、未確定の(別の)トランザクションによる更新はア
ボートしたものとしてそれを取り消すことができるの
で、トランザクションの一貫性が保たれる。しかも、こ
のリカバリ処理は、障害回復時に行う必要はなく、次に
そのファイルを読み出した時に行えば良い。
ンザクションが前記ファイルとは別のファイルをも更新
対象として前記バッファ領域上で処理を行っていた場合
には、前記ファイルの前記安定記憶装置への書き込みと
同期させて、該一つのコミットするトランザクションに
よる前記別のファイルに対する確定した更新内容をファ
イル内容として含む前記別のファイルを前記安定記憶装
置に書き込むようにしてもよい。
同期させれば、一つのトランザクションがその処理開始
時からコミット時までに複数のファイルに対して行った
更新の全てが安定記憶装置上で有効になる(コミット)
か、全てが無効になる(アボート)か、いずれかの状態
にしかならない(システムに障害が起きた場合でも、一
つのトランザクションが行った更新のうち一部分だけが
有効になり残りが無効になるということはあり得ない)
ことを保証するような、アトミックな書き込みが実現で
きる。
情報を分割して記録した複数個のファイルの集合の中の
一つのファイルであるようにしてもよい。
録した複数個のファイルの集合に対して二つ以上のトラ
ンザクションが前記バッファ領域上で更新を行い、この
二つ以上のトランザクションによる更新内容に基づい
て、前記バッファ領域上で、新しいファイルの追加、フ
ァイル間の情報の移動および不要ファイルの削除のうち
少なくとも一つを行うことにより、前記複数個のファイ
ルそれぞれの大きさが予め定められた基準に従うように
調整し、前記一つのコミットするトランザクションが更
新したファイル、および該トランザクションによる更新
に伴う前記調整の結果更新あるいは新規に作成されたフ
ァイルのうち、少なくとも一つのファイルに対して他の
トランザクションが更新を行っている場合には、該少な
くとも一つのファイルを更新対象(すなわち前記ファイ
ル)として複数のトランザクションが処理を行ったもの
として、前記ファイルの前記安定記憶装置への書き込み
を行うようにしてもよい。
クション処理システムは、トランザクションの処理対象
となるファイルを安定記憶装置からバッファ領域上に読
み出す手段と、前記ファイルに対して複数のトランザク
ションのそれぞれが行った更新の内容と該更新を取り消
すための情報とを前記バッファ領域上で該ファイル内に
書き込む手段と、前記複数のトランザクションのうちの
一つのトランザクションのコミット時に、前記ファイル
内に書き込まれた該一つのコミットするトランザクショ
ンによる更新の内容については該更新を取り消すための
情報を削除することにより確定させ、前記ファイル内に
書き込まれた他のコミットしていないトランザクション
による更新の内容および該更新を取り消すための情報に
ついてはそのままとし、確定させた内容とそのままとし
た情報とをファイル内容として含む前記ファイルを、前
記安定記憶装置に書き出す手段とを備えたことを特徴と
する。
クション処理システムは、トランザクションの処理対象
となる一纏まりの情報を分割して記録した複数個のファ
イルの集合を安定記憶装置からバッファ領域上に読み出
す手段と、前記ファイルの集合に対して複数のトランザ
クションのそれぞれが行った更新の内容に基づいて、前
記バッファ領域上で、該更新の内容と該更新を取り消す
ための情報とをファイル内に書き込むとともに、新しい
ファイルの追加、ファイル間の情報の移動および不要フ
ァイルの削除のうち少なくとも一つを行うことにより、
前記複数個のファイルそれぞれの大きさが予め定められ
た基準に従うように調整する手段と、前記複数のトラン
ザクションのうちの一つのトランザクションのコミット
時に、前記ファイル内に書き込まれた該一つのコミット
するトランザクションによる更新の内容については該更
新を取り消すための情報を削除することにより確定さ
せ、前記ファイルおよび前記調整の結果更新あるいは新
規に作成されたファイルのうちの少なくとも一つのファ
イルに対して更新を行った他のコミットしていないトラ
ンザクションによる、該少なくとも一つのファイル内に
書き込まれた更新の内容および該更新を取り消すための
情報についてはそのままとし、確定させた内容をファイ
ル内容として含む前記ファイルとそのままとした情報を
ファイル内容として含む前記少なくとも一つのファイル
とを、前記安定記憶装置に書き出す手段とを備えたこと
を特徴とする。
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。
ンピュータに当該発明に相当する手順を実行させるため
の(あるいはコンピュータを当該発明に相当する手段と
して機能させるための、あるいはコンピュータに当該発
明に相当する機能を実現させるための)プログラムを記
録したコンピュータ読取り可能な記録媒体としても成立
する。
ランザクションによるファイルの更新を、簡単な処理手
順で実現することができる。本発明によれば、従来のW
AL方式や、シャドウページ方式の上に特殊なログ管理
を実装するときのように、データの更新時やコミット処
理時あるいはリカバリ時に複雑な処理を必要としない。
処理を、再起動時に集中して行う必要は無く、障害で更
新途中の状態は次にそのファイルを使う時点で行われる
ため、リカバリ処理のオーバヘッドが小さい。
のファイルに分けて管理することで、ファイルの更新の
コミット時にディスクに書き戻すデータの量を減らすこ
とができる。
実施の形態を説明する。
単に説明する。図43に、従来のトランザクション処理
システムの例を示す。従来のトランザクション処理シス
テムでは、トランザクションを処理するアプリケーショ
ンプログラム101は、データベース管理システム10
2を介してデータの操作を行う。ファイルシステム10
3はハードディスク104などの安定記憶装置に記録し
たファイルの操作や管理を行う。データベース管理シス
テム102は、ファイルシステム103の管理するファ
イルを使って、アプリケーションプログラム101が必
要とするデータを管理する。複数のアプリケーションプ
ログラム101が共有しているデータに対する操作の間
の並行制御もデータベース管理システム102が行う。
ザクション処理システムの構成例を示す。
てハードディスクを用いるものとして説明するが、もち
ろん安定記憶装置として他の装置を使用することも可能
である。また、本実施形態では、ユーザプログラムによ
りトランザクションが発生するものとして説明するが、
もちろんユーザプログラム以外のものがトランザクショ
ンを発生させる場合も同様である。
ムでは、図1に示されるように、トランザクションを実
行する複数のアプリケーションプログラム2間で共有す
るファイルの操作は、共有データ管理部4を介して行
い、共有しないファイルの操作は、アプリケーションプ
ログラム2がファイルシステム6を直接指示して行う。
リケーションプログラム2が処理するトランザクション
の管理を行う。アプリケーションプログラム2は、トラ
ンザクションの処理を開始する時点で、トランザクショ
ンマネージャ8からトランザクション識別子を割り付け
てもらう。以降、トランザクションの処理を進めて行く
過程で、共有データ管理部4やファイルシステム6に操
作を指示するときには、トランザクション識別子を提示
してどのトランザクションによるファイルの更新である
かを知らせる。アプリケーションプログラム2がトラン
ザクションの処理の終了をトランザクションマネージャ
8に伝えると、トランザクションマネージャ8は共有デ
ータ管理部4やファイルシステム6に対して、トランザ
クション識別子で指定したトランザクションによるファ
イルの更新結果をハードディスク10に書き込んでコミ
ットするか、あるいは更新結果を廃棄してアボートする
かを指示する。
いず、ユーザプログラム2が自分でトランザクション識
別子に相当する情報を生成したり、コミット(COMM
IT)やアボート(ABORT)を指示するように実施
することもできる(本実施形態では、トランザクション
マネージャ8を用いる場合について説明する)。
ションによる同一ファイルの異なる部分の更新を実現す
る。共有データ管理部4は、(当該共有データ管理部4
を介して)どのファイルがどのトランザクションによっ
て更新されているかを、更新管理表41を用いて管理し
ている。図2に、更新管理表41の例を示す。更新管理
表41には、ファイル名と、そのファイルを更新中のト
ランザクションのトランザクション識別子のリストの対
応が記録されている。図2では、例えば、F0102と
いうファイルはトランザクション識別子が36,21,
5の3つのトランザクションによって更新中であること
を示している。
によるファイルの操作を実現する部分である。ファイル
システム6は、バッファ領域62を管理するバッファ管
理部(図示せず)とトランザクション管理表61を持っ
ている。ハードディスク10に記録しているファイルを
読んだり更新したりする場合には、そのファイルをバッ
ファ領域62に読み出してきて、バッファ領域62上で
読んだり更新したりする。新しくファイルを作成する場
合には、まずバッファ領域62にファイルを作成する。
バッファ領域62上で更新や作成されたファイルは、ト
ランザクションのコミット時にハードディスク10に書
き込む。トランザクション管理表61は、どのトランザ
クションがどのファイルを更新しているかを管理してい
る。
を示す。トランザクション管理表61には、トランザク
ション識別子と、そのトランザクションが更新中のファ
イルのリストの対応が記録されている。図3の例では、
トランザクション識別子“3”のトランザクションはフ
ァイルF9268のみを更新しており、トランザクショ
ン識別子“5”のトランザクションはファイルF010
0とF9264の2つのファイルを更新していることを
示している。トランザクション管理表61の最後のエン
トリは、どのトランザクションにも属していないファイ
ルの更新を管理している。
1では、最後の行のトランザクション“NOTX”のエ
ントリがこれに当たる。この例では、ファイルF010
2,F2156,F3624,F5497,F7531
は特定のトランザクションの一部として更新されている
のではなく、どのトランザクションとも関連せずに更新
されていることを示す。以下で説明するように、共有デ
ータ管理部4を介して更新中のファイルは、どのトラン
ザクションとも関連しない状態で更新するので、このエ
ントリに記録される。なお、このエントリに記録される
ファイルがどのトランザクションによって更新されてい
るかは、共有データ管理部4の更新管理表41を参照す
れば知ることができる。
メントの形式での情報を例にとり、共有データ管理部4
を介して、このXMLドキュメントの形式で情報が記録
されているファイルを更新するトランザクション処理シ
ステムに本発明を適応した場合についてより具体的に説
明する。
ible Markup Language (XM
L) 1.0”(W3C Recommendatio
n 10−Feb−98)に開示されている。
では、「キー」とそれに対する「値」のペアの集合を、
XMLのドキュメントの形式でファイルに記録して管理
している。このドキュメントは、キーを指定してその値
を検索するという、一般的なデータベースとして使用す
ることができる。
示す。この例のXMLドキュメントでは、<key>と
</key>のタグで囲まれた部分に「キー」を保持
し、<value>と</value>のタグで囲まれ
た部分に「値」を保持し、そのペアを<entry>と
</entry>のタグで囲んだエントリを作り、それ
らが複数集まったものを、最も外の<KVtable>
と</KVtable>のタグが囲んでいる。実際に
は、XMLドキュメントは先頭部分に<?xml>で始
まるプロローグ部を持つが、ここでは省略する。なお、
XMLの用語として、<key>のような開始タグと、
</key>のようなそれに対応する終了タグで囲まれ
た部分を、エレメントと呼ぶ。
キー「APPLE」に対応する値は「400円」であ
り、キー「BISCUIT」に対応する値は「250
円」であり、キー「CHOCOLATE」に対応する値
は「200円」であり、キー「GRAPE」に対応する
値は「600円」になっている。
て、トランザクションを実行するアプリケーションプロ
グラム2およびトランザクションマネージャ8は、共有
データ管理部4を介して、READ(txid,ke
y)とUPDATE(txid,key,value)
とREMOVE(txid,key)とCOMMIT
(txid)とABORT(txid)の5種類の操作
ができるものとする。本実施形態では、READ、UP
DATE、REMOVEはアプリケーションプログラム
2が指示し、COMMITとABORTはトランザクシ
ョンマネージャ8が指示するものとする。なお、前述し
たように、トランザクションマネージャ8が存在せず、
アプリケーションプログラム2がCOMMITやABO
RTも指示するように実施することもできる。
dで指定したトランザクション識別子を持つトランザク
ションが、keyで指定したエントリの値を読み出す操
作である。
ue)は、txidで指定したトランザクション識別子
を持つトランザクションが、keyで指定したエントリ
の値をvalueで指定した値に更新する操作である。
keyで指定したエントリが無い場合には、新しくエン
トリを作成する。
xidで指定したトランザクション識別子を持つトラン
ザクションが、keyで指定したエントリを削除する操
作である。
指定したトランザクション識別子を持つトランザクショ
ンが行ったファイルの内容の変更を、ディスク上のファ
イルに書き戻して、変更を永久的なものにする。
定したトランザクション識別子を持つトランザクション
が行ったファイルの内容の変更を、すべて取り消して無
かったものにする。
ァイルの内容を変更しない操作であるのに対し、UPD
ATEとREMOVEはファイルの内容を変更する操作
である。COMMITとABORTは、トランザクショ
ンの処理結果をコミットすなわち正しく完了した状態に
するか、アボートすなわち処理結果をキャンセルして処
理開始前の状態にする操作である。
のトランザクション(txid=1のトランザクション
(1)、txid=2のトランザクション(2)、tx
id=3のトランザクション(3)とする)が、以下に
示すように並行にアクセスする場合の動作を例に、本実
施形態のトランザクション処理システムの動作を説明す
る。 [1] UPDATE(1,ICECREAM,450円) [2] UPDATE(3,APPLE,500円) [3] REMOVE(2,BISCUIT) [4] UPDATE(2,CHOCOLATE,300円) [5] REMOVE(1,GRAPE) [6] UPDATE(2,KIWIFRUIT,300円) [7] COMMIT(3) [8] COMMIT(1) [9] ABORT(2) 本トランザクション処理システムが図4のファイルを更
新する場合、まず、共有データ管理部4から指示された
ファイルシステム6が、ハードディスク10にあるファ
イルの内容をバッファ領域62に読み出す。トランザク
ションがコミットするまでは、ファイルの更新はバッフ
ァ領域62にあるコピーに対してのみ行い、ハードディ
スク10には書き戻さない。
CREAM,450円)で、トランザクション(1)が
キー「ICECREAM」を追加してその値を「450
円」にする。このとき、ファイルがまだバッファ領域6
2に無ければ読み込む。その後、バッファ上のデータに
対して、図5に示すようにバッファ領域62のデータを
変更する。ここでは、新しい「ICECREAM」をキ
ーにするエントリを追加し、その値を「450円」にす
る。さらに、このエントリがトランザクション(1)に
よって更新中であることを示すために、<entry>
タグの属性としてTXIDとTXSTATEの2つを記
録しておく。属性TXIDの値には変更を行ったトラン
ザクションのトランザクション識別子を、属性TXST
ATEには変更の種類を記録しておき、COMMITあ
るいはABORTの処理時にこの情報を使用する。ここ
では、TXID属性の値としてトランザクション識別子
「1」と、TXSTATE属性の値として更新中を示す
「UPDATE」を持たせる。
LE,500円)で、トランザクション(3)がキー
「APPLE」の値を「500円」に変更する。このと
きは、バッファ領域62のデータを図6に示すように変
更する。ここでは、「APPLE」をキーにするエント
リの<value>タグを<oldvalue>タグに
変更して残しておき、新しい値「500円」を<val
ue>タグで囲ったエレメントを作成してエントリに追
加する。さらに、エントリのには、TXID属性の値と
してトランザクション識別子「3」と、TXSTATE
属性の値として更新中を示す「UPDATE」を持たせ
る。
UIT)で、トランザクション(2)がキー「BISC
UIT」のエントリを削除する。このときは、バッファ
領域62のデータを図7に示すように変更する。ここで
は、「BISCUIT」をキーにするエントリの、TX
ID属性の値にトランザクション識別子「2」を、TX
STATE属性の値に削除されたことを示す「REMO
VE」を持たせる。
OLATE,300円)でトランザクション(2)がキ
ー「CHOCOLATE」の値を300円に変更した後
のバッファ領域62のデータは、これまでと同様の処理
を行って図8のようになる。
E)でトランザクション(1)がキー「GRAPE」の
エントリを削除した後のバッファ領域62のデータは、
これまでと同様の処理を行って図9のようになる。
FRUIT,300円)でトランザクション(2)がキ
ー「KIWIFRUIT」に対応するエントリを追加し
てその値を「300円」にした後のバッファ領域62の
データは、これまでと同様の処理を行って図10のよう
になる。
ンザクション(3)のコミット処理が起動される。
ファイルを更新している場合のコミット処理の方式につ
いて説明する。
ァ領域62上で変更されている状態で、COMMIT
(3)でトランザクション(3)のコミット処理が起動
されたとする。このとき、図11に示すように、トラン
ザクション(3)による変更を、エレメントにTXID
やTXSTATEがついたり<oldvalue>タグ
を持っている一時的な状態から、それらを削除してハー
ドディスク10に書き戻しても良い正しく更新された状
態に変更する。こうしてトランザクション(3)の変更
を反映したファイルのデータができると、それを書き戻
してハードディスク10にある元のファイルを置き換え
る。このとき、本実施形態では、トランザクション
(1)やトランザクション(2)による変更途中の状態
のデータは、その変更途中のままハードディスク10に
書き戻すことができる(後述するように、変更途中の状
態のデータにはその更新を取り消すのに必要な情報を付
加しているので、次に読み出したときに更新を取り消す
ための処理を行うことができる)。
ザクション(1)のコミット処理が起動されたとする。
このとき、図12に示すように、トランザクション
(1)による変更を反映させ、それをハードディスク1
0に書き戻す。
クション(2)がアボートしたとする。このとき図13
に示すように、バッファ領域62にあるファイルのデー
タからトランザクション(2)による変更を取り消す。
操作の処理手順を説明する。
る。
るエントリの値を読み出すだけなので簡単である。ただ
し、READの実装には、そのシステムの使い方に応じ
て2通りの場合がある。他のトランザクションが更新中
でなければ値を読み出せるという点に関しては共通であ
るが、あるトランザクションが読み出したエントリを、
そのトランザクションが終了する前に他のトランザクシ
ョンが更新できるか否かで2通りの方式に分かれる。つ
まり、1つの方式は、更新できるという解釈で、REA
Dに関しては何の排他制御もしないという方式である。
もう1つの方式は、更新できないと言う解釈で、広く知
られたREAD/WRITEロックのセマンティクスに
従って排他制御する方式である。すなわち、同じトラン
ザクションによるREADと更新は両立するが、異なる
トランザクションによるREADと更新は両立せず、ま
た、異なるトランザクションのREADどうしは両立す
るというものである。排他制御をする後者の方式は、排
他制御をしない前者の方式を包含するので、ここでは後
者の方式の場合の処理手順を説明する。排他制御しない
前者の方式は、後者の方式においてREADについては
何も制御しないのと等価である。
処理手順の一例を示す。
と同じエントリを探す(ステップS11)。
12)、そのエントリにTXSTATE属性が付いてい
るか否か、またTXSTATE属性が付いているならば
そのTXSTATE属性が「READ」「UPDAT
E」「REMOVE」のいずれであるかを調べる(ステ
ップS13)。
は、誰もアクセスしていないので、そのエントリにTX
ID属性とTXSTATE属性を付け、TXID属性の
値は「txid」に、TXSTATE属性の値は「RE
AD」にし(ステップS14)、<value>部の値
を結果として返す(ステップS15)。
場合は、そのTXID属性にまだ「txid」が入って
いなければ追加し(ステップS16,S17)、<va
lue>部の値を結果として返す(ステップS18)。
E」の場合は、同じトランザクションが変更した値であ
れば読めるので(ステップS19)、<value>部
の値を結果として返す(ステップS20)。そうでない
場合には、他のトランザクションが使用中で読めないこ
とを知らせる。
E」ならば(ステップS13)、無いものを読もうとし
ているのでエラーになる。
(ステップS12)、エラーとなる。
に対して、READ(4,CHOCOLATE)でトラ
ンザクション4がキー「CHOCOLATE」の値を読
み出した直後のバッファ領域62上のデータの状態を示
す。
別子を1つ持っているが、TXSTATE属性の値が
「READ」の場合のTXID属性にはトランザクショ
ン識別子のリストを持つことが出来る。これは、複数の
トランザクションが同時に読み出すことが出来るためで
ある。例えば、トランザクション識別子が1と4と5の
トランザクションがREADしている場合、そのTXI
D属性の値は「1 45」のようなリストになってい
る。
明する。
y,value)の処理手順の一例を示す。
と同じエントリを探す(ステップS21)。
22)、そのエントリにTXSTATE属性が付いてい
るか否か、またTXSTATE属性が付いているならば
そのTXSTATE属性が「READ」「UPDAT
E」「REMOVE」のいずれであるかを調べる(ステ
ップS23)。
は、誰もアクセスしていないので、そのエントリにTX
ID属性とTXSTATE属性を付け、TXID属性の
値は「txid」に、TXSTATE属性の値は「UP
DATE」にし、現在の<value>部のタグ名を<
oldvalue>に変更して退避し、新しく<val
ue>部を作ってその値をUPDATEの第3引数のv
alueに指定されたものにする(ステップS24)。
場合は、同じトランザクションだけがREADしている
場合に限って更新できる。この場合は(ステップS2
5)、TXSTATE属性の値を「UPDATE」に変
更し、現在の<value>部のタグ名を<oldva
lue>に変更して退避し、新しく<value>部を
作ってその値をUPDATEの第3引数のvalueに
指定されたものにする(ステップS26)。他のトラン
ザクションがREAD中であれば、UPDATEするこ
とができないので、使用中であることを知らせる。
E」の場合は、同じトランザクションが更新したエント
リであれば(ステップS27)、その<value>部
の値をUPDATEの第3引数のvalueに指定され
たものに変更する(ステップS28)。他のトランザク
ションがUPDATE中であればUPDATEすること
ができないので、使用中であることを知らせる。
E」の場合は(ステップS23)、無いものを更新しよ
うとしているのでエラーになる。
と同じエントリが見つからない場合は(ステップS2
2)、新しくエントリを作成し、<key>部の値と<
value>部の値を、それぞれUPDATEの第2引
数と第3引数に指定されたものにしたエントリを作成
し、そのTXID属性の値を「txid」に、TXST
ATE属性の値を「UPDATE」にする(ステップS
29)。
明する。
y)の処理手順の一例を示す。
と同じエントリを探す(ステップS31)。
32)、そのエントリにTXSTATE属性が付いてい
るか否か、またTXSTATE属性が付いているならば
そのTXSTATE属性が「READ」「UPDAT
E」「REMOVE」のいずれであるかを調べる(ステ
ップS33)。
は、誰もアクセスしていないので、TXID属性の値を
「txid」に、TXSTATE属性の値を「REMO
VE」にする(ステップS34)。
場合には、同じトランザクションだけがREADしてい
る場合に限ってREMOVEできる。この場合は(ステ
ップS35)、TXSTATE属性の値を「REMOV
E」に変更する(ステップS36)。他のトランザクシ
ョンがREAD中であればREMOVEすることができ
ないので、使用中であることを知らせる。
E」の場合は、同じトランザクションが更新したエント
リであれば(ステップS37)、REMOVEできる。
このとき、<oldvalue>部があるかどうかで、
そのエントリがこのトランザクションで新しく作られた
ものか、以前から存在していたものかがわかる。<ol
dvalue>部が無い場合には(ステップS38)、
このトランザクションが作成したエントリなので、即座
にエントリを削除してしまって良い(ステップS4
0)。そうでない場合には(ステップS38)、TXS
TATE属性の値を「REMOVE」に変更する(ステ
ップS39)。他のトランザクションがUPDATE中
であれば(ステップS37)、REMOVEすることが
できないので、使用中であることを知らせる。
E」の場合は(ステップS33)、無いものを削除しよ
うとしているのでエラーになる。
(ステップS32)、エラーとなる。
明する。
理手順の一例を示す。
すべてのエントリに対して図18の手順で処理を行う。
の値を調べる(ステップS101)。
のトランザクションもアクセスしていないので何もしな
くて良い。
は、そのTXID属性の中にtxidが含まれていて
(ステップS102)、txid以外のトランザクショ
ン識別子も含まれていれば(ステップS103)、tx
idを抜く(ステップS104)。TXID属性がtx
idのみをもっている場合には(ステップS103)、
TXID属性とTXSTATE属性を削除する(ステッ
プS105)。
ATE」の場合は、そのTXID属性の値がtxidと
同じであれば(ステップS106)、<oldvalu
e>部とTXID属性とTXSTATE属性を削除して
その更新を有効にする(ステップS107)。
は(ステップS101)、そのTXID属性の値がtx
idと同じであれば(ステップS108)、そのエント
リを削除する(ステップS109)。
了すれば、その時点のバッファ領域62上のデータをハ
ードディスク10上に書き戻して、ファイルを更新す
る。
有データ管理部4は、バッファ領域62上で更新したフ
ァイルをハードディスク10に書き込むように、ファイ
ルシステム6に指示する。このとき、このファイルの書
き込みは、コミットするトランザクションが更新した他
のファイルと同期してアトミックに書き込む必要があ
る。すなわち、トランザクションを実行するアプリケー
ションプログラム2は、共有データ管理部4を介さずに
ファイルシステム6に直接指示して複数のファイルの更
新を行っている可能性があり、また、共有データ管理部
4を介しても複数のファイルを更新している可能性があ
る(図2および図3参照)。トランザクションとしてア
トミックにコミットするためには、これらの複数のファ
イルへの更新がすべて完全に行われるなければならな
い。本実施形態のトランザクション処理システムでは、
ファイルシステム6は、トランザクション管理表61に
よって、アプリケーションプログラム2から直接指示さ
れて更新したファイルのリストをトランザクション毎に
管理しており、その情報を用いて、同じトランザクショ
ンが更新したファイルを一括してアトミックにハードデ
ィスク10に書き戻すことができる。
しているファイルに関しては、ファイルシステム6内で
はどのトランザクションとも関連しないファイルとして
管理されている。それらのファイルをどのトランザクシ
ョンのコミット時に書き戻せば良いかは、共有データ管
理部4がCOMMITの処理時に判断する。
ザクションとも関連せずにオープンして更新したファイ
ルに対して、特定のトランザクションのコミット時に同
期してアトミックにハードディスク10に書き戻すこと
を指示する機能を、ファイルシステム6に持たせる。C
OMMITの処理を行う共有データ管理部4は、指定さ
れたトランザクション識別子のトランザクションによる
更新をファイルに反映させた後、そのファイルを指定さ
れたトランザクション識別子のトランザクションと同期
してハードディスク10に書き戻すように、ファイルシ
ステム6に指示する。ファイルシステム6は、このよう
にして指定されたファイルを、指定されたトランザクシ
ョン識別子のトランザクションのコミット時に、トラン
ザクション管理表61にあるそのトランザクションが更
新したファイルと同時に、アトミックにハードディスク
10に書き戻す。
理が終了後は、トランザクションを実行するアプリケー
ションプログラム2が直接ファイルシステム6に指示し
て更新したファイルの情報(トランザクション管理表6
1のエントリやバッファ領域62にあるファイルのイメ
ージ)は不要になる。一方、共有データ管理部4が特定
のトランザクションに関連せずに更新しているファイル
は、その後も他のトランザクションによって更新が続け
られるため、どのトランザクションとも関連しない状態
のまま共有データ管理部4によって使い続けられる。そ
のため、ファイルシステム6はそれらのファイルに関す
る情報は維持しつづける。
する。
手順の一例を示す。
リに対して図19の手順で処理を行う。
の値を調べる(ステップS111)。
のトランザクションもアクセスしていないので何もしな
くて良い。
は、そのTXID属性の中にtxidが含まれていて
(ステップS112)、txid以外のトランザクショ
ン識別子も含まれていれば(ステップS113)、tx
idを抜く(ステップS104)。TXID属性がtx
idのみをもっている場合には(ステップS113)、
TXID属性とTXSTATE属性を削除する(ステッ
プS115)。
E」の場合は、そのTXID属性の値がtxidと同じ
であれば(ステップS116)、そのエントリのUPD
ATEを取り消す操作を行う。このとき、そのエントリ
に<oldvalue>部があれば(ステップS11
7)、現在の<value>部を削除して<oldva
lue>部のタグ名を<value>に戻すことで更新
前の値に戻すとともに、TXID属性とTXSTATE
属性を削除する(ステップS118)。そのエントリに
<oldvalue>部が無い場合は(ステップS11
7)、このトランザクションで新しく作成したエントリ
であるので、エントリを削除する(ステップS11
9)。
は(ステップS111)、そのTXID属性の値がtx
idと同じであれば(ステップS120)、TXID属
性とTXSTATE属性を削除して、REMOVEを取
り消す(ステップS121)。
るトランザクションによるファイルの更新を、バッファ
領域62上で取り消す。このとき、同じファイルを更新
していて既にコミットした他のトランザクションがあっ
た場合には、アボートするトランザクションによる更新
中の状態もファイルに書きこまれてしまっている可能性
がある。しかし、ABORT処理時にバッファ領域62
上で取り消した結果のファイルをハードディスク10に
書き込むことは、必ずしも必要無い。なぜなら、次に同
じファイルを他のトランザクションが更新してコミット
すれば、アボートしたトランザクションによる更新の取
り消しはハードディスク10上に正しく反映される。ま
た、たとえ次にどのトランザクションも更新せずに、そ
のまま計算機の障害等で忘れ去られてしまった場合で
も、後で述べるリカバリ処理によって、次にそのファイ
ルをオープンする時に、ハードディスク10上のファイ
ルに残っているコミットしていないトランザクションに
よる更新途中の状態は取り消される。
る。
ムでは、コミットしていないトランザクションによって
更新途中のファイルの状態がハードディスク10に書き
戻される。そのため、障害で計算機がダウンした場合に
は、更新途中の状態が残るので、リカバリ処理を行って
更新途中で残された変更を取り消さなくてはいけない。
従来のトランザクション処理方式では、このようなリカ
バリ処理は障害が起こって再起動した直後にまとめて行
わなければならない。そのため、障害直後の再起動のオ
ーバヘッドは大きい。しかし、本実施形態のトランザク
ション処理方式では、リカバリ処理は、次にそのファイ
ルをハードディスク10から読み出す時点で良い。
す。
2にないファイルを参照するためにオープン処理をファ
イルシステム6に指示すると、ファイルシステム6はそ
のファイルをハードディスク10から読み出してバッフ
ァ領域62にコピーする。その時点で共有データ管理部
4は、すべてのエントリに対して図20に示す手順でリ
カバリ処理を実行する。
を調べる(ステップS201)。
のトランザクションもアクセスしていないので何もしな
くて良い。
場合は、TXID属性とTXSTATE属性を削除する
だけで良い(ステップS202)。
E」の場合は、いずれかのトランザクションが更新して
いる途中で障害が発生したことを示しているので、それ
らをアボートする。このときの動作は、そのエントリに
<oldvalue>部があるかどうかで異なる。<o
ldvalue>部があれば(ステップS203)、そ
のトランザクションの開始以前から存在していたエント
リであるので、まず現在の<value>部を削除し、
<oldvalue>部のタグ名を<value>に変
更して値を元に戻し、さらにTXID属性とTXSTA
TE属性を削除する(ステップS204)。<oldv
alue>部が無い場合は(ステップS203)、この
トランザクションが作成したエントリであるので、エン
トリ全体を削除する(ステップS205)。
E」の場合は(ステップS201)、TXID属性とT
XSTATE属性を削除するだけでREMOVEをキャ
ンセルすることが出来る(ステップS206)。
す度にこのようなリカバリ処理を行うのでは、非常にオ
ーバーヘッドが大きい。そこで、ファイルを書き出すと
きにそのファイルが更新途中の状態を含んでいるかどう
かを簡単に識別できる情報を付けておくことで、このオ
ーバヘッドを無くすことが出来る。その方式は、例えば
図21に示すように、ドキュメントのルートのエレメン
トの属性として、現在いくつのトランザクションがファ
イルを更新中かを示す情報を持たせる。図21の例で
は、ルートである<KVtable>のTXNUMとい
う属性がそれを示しており、現在、トランザクション
(1)とトランザクション(2)の2つのトランザクシ
ョンが更新中であることを示している。こうしておく
と、最初にファイルをディスクから読みだして来た時
に、そのルートエレメントがTXNUMという属性を持
っていたら、そのファイル内のすべてのエントリに対し
て図20のリカバリ処理を実行する。もしTXNUMと
いう属性が無ければ、リカバリ処理は必要無い。
ートエレントである<KVtable>の下にフラット
に記録していたが、例えば良く知られた二分木のような
構造を使って、検索を高速化するように実施することが
できる。図22は、そのように実施した場合のファイル
のデータの例である。この例では、エントリには<ke
y>と<value>以外に、<less>と<gre
ater>というエレメントを持つ。そのエレメントの
キーより小さなキーを持つエントリは<less>の下
に、大きなキーを持つエントリは<greater>の
下にくるように、二分木を構成している。この場合も、
トランザクションによるUPDATEやREMOVEな
どの更新はフラットな場合と同様に扱うことが出来る。
ただし、エントリの追加や削除によって木の構成を組み
換える処理が必要になる。この処理は通常の木構造のノ
ードの追加/削除とまったく同じ処理である。木構造の
組み換え時には、AVL木のような手法を使ってうまく
木がバランスするように組み換えたり、アクセス頻度の
多いエントリが木のルートに近い場所に来るように組み
換えたりするように実施することもできる。
Eのような管理構造を使って、ファイルを分割して管理
するように実施することも出来る。図23/図24/図
25/図26にその例を示す。ここでは、一つのファイ
ルには最大6個のエントリを収容し、それ以上にエント
リが増えるとファイルを分割するというような、B−T
REEと同じアルゴリズムでエントリの追加/削除の処
理を行うものとする。図23/図24/図25/図26
の例では、FILE001がルートになるファイル、F
ILE002,FILE003,FILE004がその
下にあるファイルである。
数のファイルに分割して記録・管理するようにしたトラ
ンザクション処理システムの構成例を示す。
有データ管理部4が更新グループ表42を持つ点が異な
る。後に説明するように、複数のファイル間で情報を移
動してファイル間の構造を変更した場合に、それらのフ
ァイルをコミット時に同時にハードディスク10に書き
戻さなければならない。更新グループ表42は、そのよ
うなコミット時に同時にハードディスク10に書き戻し
たりあるいは削除したりする必要のあるファイルのグル
ープを管理するための表である。
この更新グループ表には、コミット時に同時に書き戻し
たり削除したりすべきファイルのグループ毎に、そのメ
ンバが記録されている。図28では、例えば、FILE
001とFILE002とFILE005がグループに
なっている。
FILE001から始めて「SESAME」をキーとす
るエントリを探す手順は、FILE001のルートから
始める。まずキーを「KIWIFRUIT」と比べると
それよりも大きい。次にキーを<greater>側の
「ROSEMARY」と比べるとそれよりも大きい。次
に<greater>側を見るとFILE004へのリ
ンクになっている。そこでFILE004に移って、キ
ーを「THYME」と比べるとそれよりも小さい。そこ
で<less>側を見ると、キーが「SESAME」の
エントリが見つかる。こうしてエントリが見つかれば、
あとはそれへの操作はこれまでの実施形態と同様に、T
XID属性とTXSTATE属性をつけて更新の途中状
態を回復可能な形式で保存して行く。
の状態のデータに対して、トランザクション(1)がキ
ー「ORANGE」のエントリの値を「250円」に更
新し、さらにキー「SESAME」のエントリの値を
「150円」に更新し、それと並行に動いているトラン
ザクション(2)がキー「VODKA」のエントリを削
除したとする。この状態で図23/図24/図25/図
26のデータは図29/図30のような状態になる。U
PDATEやREMOVEなどの更新途中の状態の持ち
方は、一つのファイルにすべてのエントリを入れる場合
と同じであり、更新したエントリにはTXIDとTXS
TATEの2つの属性をつけて管理する。
ン(1)と(2)が順にコミットおよびアボートする場
合の動作例を説明する。
時には、トランザクション(1)によって更新されたエ
ントリはファイルFILE003とFILE004にの
み存在している。そこで、FILE003とFILE0
04に対してコミット処理を行った図31/図32の状
態のデータを作成し、これをトランザクション(1)に
よる他のファイルの更新と同時にハードディスク10に
書き戻す。このとき、FILE004にはトランザクシ
ョン(2)による更新途中の状態が含まれたまま書き戻
すのは、これまでの実施形態と同じである。
時には、トランザクション(2)によって更新されたエ
ントリはFILE004にのみ存在している。そこでF
ILE004に対してアボート処理を行った図33の状
態を作成して、アボート処理は終了する。アボート処理
時にはファイルのハードディスク10への書き戻しは必
要無いのは、これまでの実施形態と同じである。
ン(3)がキー「DODO」とキー「HOOPOE」の
エントリを追加し、それぞれの値を「5000000
円」と「980000円」にした後のデータの状態を、
図34/図35/図36に示す。ここでは、一つのファ
イルに入れることの出来るエントリの数は決まっている
ので、この更新例のように一つのファイルにその容量以
上のエントリを追加しようとした場合には、ファイル間
で組み換えが発生してエントリが移動する。図34/図
35/図36の例では、キー「DODO」とキー「HO
OPOE」の二つのエントリを追加しようとしたとこ
ろ、それらはどちらもFILE002への追加となる。
その結果FILE002の分割が行われて、新たにFI
LE005が作られてエントリが移動している。
動が発生したり、新しいファイルが追加されたり、ある
いは逆にファイルが削除されたりすると、それらのファ
イルの更新は同時にハードディスク10へ反映させなけ
ればならない。そのために、本実施形態のトランザクシ
ョン処理システムの共有データ管理部4は、更新グルー
プ表42を管理している。図34/図35/図36の例
のように、FILE002へのエントリの追加によって
FILE002の分割が発生し、FILE001の更新
とFILE005の作成が発生した場合、共有データ管
理部4は更新グループ表42にFILE001とFIL
E002とFILE005をひとつのグループとして登
録する。
場合、トランザクション(3)が更新したエントリはF
ILE001とFILE005のみに存在するが、更新
グループ表42を参照することで、FILE002も同
時に書き戻さなければならないことがわかる。そこで、
図37/図38に示すようにコミット処理を行ったFI
LE001とFILE005に加えてFILE002の
3つのファイルをハードディスク10に書き戻す。
タを持つように本発明を実施する場合には、様々な基準
で一つのファイルに入れられるエントリの数を制限する
ことが出来る。そのような基準としては、図34/図3
5/図36の例のように一つのファイル内のエントリの
数で制限する方式、ファイルの物理的なサイズで制限す
る方式、追加削除の頻度等の情報によって最大のエント
リ数を変更する方式、それらの組み合わせなど、様々な
方式が考えられる。
してデータを記憶する方式は、エントリの数が大きくな
ったときでも、その一部分しか更新していないなら、コ
ミット時にディスクに書き出すデータ量を減らせるとい
う効果がある。すべてのエントリを一つのファイルに入
れる方式では、大きなファイルの一部しか変更していな
い場合でも、コミット時にファイル全体をディスクに書
き戻す必要がある。
うデータベース的な構造を持つデータに対して本発明を
適用する場合を例とって説明してきた。以下では、他の
例として、より一般的なXMLドキュメントに対して本
発明を適用する場合について説明する。
の例である。このドキュメントに対して、トランザクシ
ョン(1)が「<title>名古屋</title
>」の<chapter>の<author>を「味噌
かつ」に変更し、トランザクション(2)が「<cha
pter><title>博多</title><au
thor>からし明太子</author></cha
pter>」を追加した状態のデータが図40である。
ト時にデータを図41の状態に更新し、これをディスク
に書き戻す。
ト時にはデータを図42の状態に更新し、これをディス
クに書き戻す。
した実施形態でも、障害発生によって更新途中で残され
たファイルは、次にディスクから読み出した時にチェッ
クし、TXSTATEがADDのエレメントは削除して
TXSTATEがREMOVEのエレメントは残すよう
なリカバリ処理を行うことで、コミットしていないトラ
ンザクションによる一時的な更新を取り消すことが出来
る。
のトランザクションによるファイルの更新を、簡単な処
理手順で実現することができる。本実施形態によれば、
従来のWAL方式や、シャドウページ方式の上に特殊な
ログ管理を実装するときのように、データの更新時やコ
ミット処理時あるいはリカバリ時に複雑な処理を必要と
しない。
バリ処理を、再起動時に集中して行う必要は無く、障害
で更新途中の状態は次にそのファイルを使う時点で行わ
れるため、リカバリ処理のオーバヘッドが小さい。
複数のファイルに分けて管理することで、ファイルの更
新のコミット時にディスクに書き戻すデータの量を減ら
すことができる。
ても実現可能である。
の手段を実行させるための(あるいはコンピュータを所
定の手段として機能させるための、あるいはコンピュー
タに所定の機能を実現させるための)プログラムを記録
したコンピュータ読取り可能な記録媒体としても実施す
ることもできる。
るものではなく、その技術的範囲において種々変形して
実施することができる。
トランザクションによるファイルの更新処理と障害時の
リカバリ処理を簡単に効率良く実現することができる。
理システムの構成例を示す図
を示す図
円)の処理直後のデータの一例を示す図
処理直後のデータの一例を示す図
後のデータの一例を示す図
0円)の処理直後のデータの一例を示す図
データの一例を示す図
00円)の処理直後のデータの一例を示す図
例を示す図
例を示す図
を示す図
一例を示すフローチャート
直後のデータの一例を示す図
e)の処理手順の一例を示すフローチャート
順の一例を示すフローチャート
を示すフローチャート
示すフローチャート
ート
ータの一例を示す図
一例を示す図
例を示す図
例を示す図
例を示す図
例を示す図
処理システムの他の構成例を示す図
の例を示す図
の例を示す図
を示す図
を示す図
を示す図
す図
す図
す図
を示す図
を示す図
タの更新例を示す図
の一例を示す図
の一例を示す図
示す図
Claims (8)
- 【請求項1】バッファ領域上に読み出した同一のファイ
ルを更新対象として複数のトランザクションが処理を行
い、 前記複数のトランザクションのうちの一つのトランザク
ションのコミット時に、該一つのコミットするトランザ
クションによる確定した更新内容と、他のコミットして
いないトランザクションによる未確定の更新内容と、該
未確定の更新を取り消すための情報とをファイル内容と
して含む前記ファイルを、安定記憶装置に書き込むこと
を特徴とするトランザクション処理方法。 - 【請求項2】前記他のコミットしていないトランザクシ
ョンをコミットする時には、該他のこれからコミットす
るトランザクションによる新たに確定した更新内容と、
以前にコミットしたトランザクションによる既に確定し
ている更新内容のうち該他のこれからコミットするトラ
ンザクションによる新たに確定した更新内容とは競合し
ないものとをファイル内容として含むファイルを、前記
安定記憶装置に格納された前記ファイルに上書きするこ
とを特徴とする請求項1に記載のトランザクション処理
方法。 - 【請求項3】新しくファイルを前記安定記憶装置から読
み出した時に、このファイルに、コミットしていないト
ランザクションによる未確定の更新内容および該未確定
の更新を取り消すための情報が含まれているか否かを調
べ、 含まれている場合には、読み出した前記ファイルを前記
情報を用いて前記コミットしていないトランザクション
による更新がなかった状態に戻すことを特徴とする請求
項1または2に記載のトランザクション処理方法。 - 【請求項4】前記一つのコミットするトランザクション
が前記ファイルとは別のファイルをも更新対象として前
記バッファ領域上で処理を行っていた場合には、前記フ
ァイルの前記安定記憶装置への書き込みと同期させて、
該一つのコミットするトランザクションによる前記別の
ファイルに対する確定した更新内容をファイル内容とし
て含む前記別のファイルを前記安定記憶装置に書き込む
ことを特徴とする請求項1ないし3のいずれか1項に記
載のトランザクション処理方法。 - 【請求項5】前記ファイルは、一纏まりの情報を分割し
て記録した複数個のファイルの集合の中の一つのファイ
ルであることを特徴とする請求項1ないし4のいずれか
1項に記載のトランザクション処理方法。 - 【請求項6】一纏まりの情報を分割して記録した複数個
のファイルの集合に対して二つ以上のトランザクション
が前記バッファ領域上で更新を行い、 この二つ以上のトランザクションによる更新内容に基づ
いて、前記バッファ領域上で、新しいファイルの追加、
ファイル間の情報の移動および不要ファイルの削除のう
ち少なくとも一つを行うことにより、前記複数個のファ
イルそれぞれの大きさが予め定められた基準に従うよう
に調整し、 前記一つのコミットするトランザクションが更新したフ
ァイル、および該トランザクションによる更新に伴う前
記調整の結果更新あるいは新規に作成されたファイルの
うち、少なくとも一つのファイルに対して他のトランザ
クションが更新を行っている場合には、該少なくとも一
つのファイルを更新対象として複数のトランザクション
が処理を行ったものとして、前記ファイルの前記安定記
憶装置への書き込みを行うことを特徴とする請求項1な
いし4のいずれか1項に記載のトランザクション処理方
法。 - 【請求項7】トランザクションの処理対象となるファイ
ルを安定記憶装置からバッファ領域上に読み出す手段
と、 前記ファイルに対して複数のトランザクションのそれぞ
れが行った更新の内容と該更新を取り消すための情報と
を前記バッファ領域上で該ファイル内に書き込む手段
と、 前記複数のトランザクションのうちの一つのトランザク
ションのコミット時に、前記ファイル内に書き込まれた
該一つのコミットするトランザクションによる更新の内
容については該更新を取り消すための情報を削除するこ
とにより確定させ、前記ファイル内に書き込まれた他の
コミットしていないトランザクションによる更新の内容
および該更新を取り消すための情報についてはそのまま
とし、確定させた内容とそのままとした情報とをファイ
ル内容として含む前記ファイルを、前記安定記憶装置に
書き出す手段とを備えたことを特徴とするトランザクシ
ョン処理システム。 - 【請求項8】トランザクションの処理対象となる一纏ま
りの情報を分割して記録した複数個のファイルの集合を
安定記憶装置からバッファ領域上に読み出す手段と、 前記ファイルの集合に対して複数のトランザクションの
それぞれが行った更新の内容に基づいて、前記バッファ
領域上で、該更新の内容と該更新を取り消すための情報
とをファイル内に書き込むとともに、新しいファイルの
追加、ファイル間の情報の移動および不要ファイルの削
除のうち少なくとも一つを行うことにより、前記複数個
のファイルそれぞれの大きさが予め定められた基準に従
うように調整する手段と、 前記複数のトランザクションのうちの一つのトランザク
ションのコミット時に、前記ファイル内に書き込まれた
該一つのコミットするトランザクションによる更新の内
容については該更新を取り消すための情報を削除するこ
とにより確定させ、前記ファイルおよび前記調整の結果
更新あるいは新規に作成されたファイルのうちの少なく
とも一つのファイルに対して更新を行った他のコミット
していないトランザクションによる、該少なくとも一つ
のファイル内に書き込まれた更新の内容および該更新を
取り消すための情報についてはそのままとし、確定させ
た内容をファイル内容として含む前記ファイルとそのま
まとした情報をファイル内容として含む前記少なくとも
一つのファイルとを、前記安定記憶装置に書き出す手段
とを備えたことを特徴とするトランザクション処理シス
テム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27626499A JP4237354B2 (ja) | 1999-09-29 | 1999-09-29 | トランザクション処理方法及びトランザクション処理システム |
US09/660,461 US6519614B1 (en) | 1999-09-29 | 2000-09-12 | Transaction processing system using efficient file update processing and recovery processing |
EP00307894.6A EP1089177B1 (en) | 1999-09-29 | 2000-09-13 | Transaction processing system using efficient file update processing and recovery processing |
TW089118907A TW550474B (en) | 1999-09-29 | 2000-09-15 | Transaction processing system applying with efficient file updating and recovery processes |
KR10-2000-0056689A KR100398753B1 (ko) | 1999-09-29 | 2000-09-27 | 효과적인 파일 갱신 처리 및 복구 처리를 이용하는트랜잭션 처리 시스템 |
US10/307,974 US6834275B2 (en) | 1999-09-29 | 2002-12-03 | Transaction processing system using efficient file update processing and recovery processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27626499A JP4237354B2 (ja) | 1999-09-29 | 1999-09-29 | トランザクション処理方法及びトランザクション処理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001101045A true JP2001101045A (ja) | 2001-04-13 |
JP4237354B2 JP4237354B2 (ja) | 2009-03-11 |
Family
ID=17567023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27626499A Expired - Lifetime JP4237354B2 (ja) | 1999-09-29 | 1999-09-29 | トランザクション処理方法及びトランザクション処理システム |
Country Status (5)
Country | Link |
---|---|
US (2) | US6519614B1 (ja) |
EP (1) | EP1089177B1 (ja) |
JP (1) | JP4237354B2 (ja) |
KR (1) | KR100398753B1 (ja) |
TW (1) | TW550474B (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007265043A (ja) * | 2006-03-28 | 2007-10-11 | Nomura Research Institute Ltd | スケジューラプログラム、サーバシステム、スケジューラ装置 |
JP2008225979A (ja) * | 2007-03-14 | 2008-09-25 | Hitachi Ltd | 情報処理装置、プログラム及び情報処理方法 |
JP2011134143A (ja) * | 2009-12-25 | 2011-07-07 | Fujitsu Frontech Ltd | 情報処理装置、情報処理方法、および情報処理プログラム |
WO2014068820A1 (ja) * | 2012-10-29 | 2014-05-08 | 日本電気株式会社 | トランザクションシステム |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4237354B2 (ja) * | 1999-09-29 | 2009-03-11 | 株式会社東芝 | トランザクション処理方法及びトランザクション処理システム |
US7512635B1 (en) * | 2000-12-18 | 2009-03-31 | Bmc Software, Inc. | System and method for updating information on a computer system using a limited amount of space |
US7555500B2 (en) * | 2001-02-15 | 2009-06-30 | Teradata Us, Inc. | Optimized end transaction processing |
KR100625595B1 (ko) * | 2001-05-28 | 2006-09-20 | 한국전자통신연구원 | 트랜잭션 처리 시스템의 병렬 로깅 방법 및 트랜잭션 로그 처리 시스템 |
US6857053B2 (en) * | 2002-04-10 | 2005-02-15 | International Business Machines Corporation | Method, system, and program for backing up objects by creating groups of objects |
US7430740B1 (en) * | 2002-04-12 | 2008-09-30 | 724 Solutions Software, Inc | Process group resource manager |
US7076508B2 (en) * | 2002-08-12 | 2006-07-11 | International Business Machines Corporation | Method, system, and program for merging log entries from multiple recovery log files |
US20040230893A1 (en) * | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with node privileges |
US7243088B2 (en) * | 2003-08-06 | 2007-07-10 | Oracle International Corporation | Database management system with efficient version control |
US7490113B2 (en) * | 2003-08-27 | 2009-02-10 | International Business Machines Corporation | Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing |
US7269588B1 (en) | 2003-09-24 | 2007-09-11 | Oracle International Corporation | Neighborhood locking technique for increasing concurrency among transactions |
US7555481B1 (en) | 2003-10-28 | 2009-06-30 | Oracle Corporation | Method and apparatus for increasing transaction concurrency by early release of locks in groups |
US7730489B1 (en) * | 2003-12-10 | 2010-06-01 | Oracle America, Inc. | Horizontally scalable and reliable distributed transaction management in a clustered application server environment |
US7739244B2 (en) * | 2004-10-14 | 2010-06-15 | Oracle International Corporation | Operating logging for online recovery in shared memory information systems |
JP2006163596A (ja) * | 2004-12-03 | 2006-06-22 | Internatl Business Mach Corp <Ibm> | 情報処理システム、制御方法、及びプログラム |
US7539694B1 (en) | 2005-02-04 | 2009-05-26 | Marvell International Ltd. | Concurrently searching and manipulating binary trees |
GB0506059D0 (en) * | 2005-03-24 | 2005-05-04 | Ibm | Methods and apparatus for switching between data streams |
US20060265485A1 (en) * | 2005-05-17 | 2006-11-23 | Chai Sek M | Method and apparatus for controlling data transfer in a processing system |
US8112396B2 (en) * | 2006-06-07 | 2012-02-07 | Emc Corporation | Backup and recovery of integrated linked databases |
US7860847B2 (en) * | 2006-11-17 | 2010-12-28 | Microsoft Corporation | Exception ordering in contention management to support speculative sequential semantics |
US8024714B2 (en) * | 2006-11-17 | 2011-09-20 | Microsoft Corporation | Parallelizing sequential frameworks using transactions |
US8010550B2 (en) * | 2006-11-17 | 2011-08-30 | Microsoft Corporation | Parallelizing sequential frameworks using transactions |
US20080319878A1 (en) * | 2007-06-22 | 2008-12-25 | Thorsten Glebe | Dynamic Time Series Update Method |
BRPI0817473A2 (pt) | 2007-09-28 | 2017-05-16 | Xcerion Ab | plataforma de aplicativo para executar aplicativos |
KR101583716B1 (ko) | 2009-01-30 | 2016-01-08 | 삼성전자주식회사 | 비트 로깅을 이용한 데이터 복구 방법 및 그 장치 |
US9325802B2 (en) * | 2009-07-16 | 2016-04-26 | Microsoft Technology Licensing, Llc | Hierarchical scale unit values for storing instances of data among nodes of a distributed store |
KR101587995B1 (ko) * | 2009-10-28 | 2016-01-22 | 삼성전자주식회사 | 적응적 로깅 장치 및 방법 |
US20120222051A1 (en) * | 2011-02-25 | 2012-08-30 | Microsoft Corporation | Shared resource access verification |
CN102131002B (zh) * | 2011-03-29 | 2016-10-05 | 华为终端有限公司 | 一种手机数据处理方法和装置 |
US20160275089A1 (en) * | 2015-03-17 | 2016-09-22 | Netapp, Inc. | Methods for implementing nosql database snapshots and devices thereof |
KR102779712B1 (ko) * | 2018-09-18 | 2025-03-12 | 한국전자통신연구원 | 컨트롤러기반 복구기술을 위한 장애 (fault) 이벤트 처리 방법 |
US20200092160A1 (en) * | 2018-09-18 | 2020-03-19 | Electronics And Telecommunications Research Institute | Fault event management method for controller-based restoration |
EP4133379B1 (en) * | 2020-04-08 | 2023-12-27 | nCipher Security Limited | A device, a method of performing a file transaction, and a method of performing an access operation |
KR102472878B1 (ko) * | 2020-11-27 | 2022-12-01 | 이화여자대학교 산학협력단 | 가상 머신 환경에서의 블록 커밋 방법 및 그 방법을 수행하는 가상화 시스템 |
KR102644923B1 (ko) | 2020-12-01 | 2024-03-08 | 김동현 | 롤타입 방충망이 구비된 창틀 |
JP7621915B2 (ja) * | 2021-09-06 | 2025-01-27 | キオクシア株式会社 | 情報処理装置 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4791556A (en) * | 1984-08-29 | 1988-12-13 | Vilkaitis John V | Method for operating a computer which searches for operational symbols and executes functions corresponding to the operational symbols in response to user inputted signal |
US4945474A (en) * | 1988-04-08 | 1990-07-31 | Internatinal Business Machines Corporation | Method for restoring a database after I/O error employing write-ahead logging protocols |
ATE148241T1 (de) * | 1989-06-13 | 1997-02-15 | Ibm | Verfahren zum entfernen unbestätigter änderungen an gespeicherten daten durch ein datenbankverwaltungssystem |
US5247672A (en) * | 1990-02-15 | 1993-09-21 | International Business Machines Corporation | Transaction processing system and method with reduced locking |
US5201044A (en) * | 1990-04-16 | 1993-04-06 | International Business Machines Corporation | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory |
US5319773A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
EP0516900B1 (en) * | 1991-06-04 | 1996-05-01 | International Business Machines Corporation | Data backup and recovery in a data processing system |
US5504899A (en) * | 1991-10-17 | 1996-04-02 | Digital Equipment Corporation | Guaranteeing global serializability by applying commitment ordering selectively to global transactions |
JPH05233570A (ja) * | 1991-12-26 | 1993-09-10 | Internatl Business Mach Corp <Ibm> | 異オペレーティング・システム間分散データ処理システム |
US5522066A (en) * | 1992-04-16 | 1996-05-28 | Industrial Technology Research Institute | Interface for accessing multiple records stored in different file system formats |
US5452445A (en) * | 1992-04-30 | 1995-09-19 | Oracle Corporation | Two-pass multi-version read consistency |
US5530848A (en) * | 1992-10-15 | 1996-06-25 | The Dow Chemical Company | System and method for implementing an interface between an external process and transaction processing system |
GB2273180A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Database backup and recovery. |
US5504883A (en) * | 1993-02-01 | 1996-04-02 | Lsc, Inc. | Method and apparatus for insuring recovery of file control information for secondary storage systems |
JPH06266597A (ja) * | 1993-03-11 | 1994-09-22 | Fujitsu Ltd | ログ取得方式 |
JP2557192B2 (ja) * | 1993-03-15 | 1996-11-27 | インターナショナル・ビジネス・マシーンズ・コーポレイション | トランザクション処理の同期方法、トランザクション処理のモニタ方法及びトランザクションのコミット処理方法 |
US5455944A (en) * | 1993-03-16 | 1995-10-03 | International Business Machines Corporation | Method for managing logging and locking of page free space information in a transaction processing system |
GB2281644A (en) * | 1993-09-02 | 1995-03-08 | Ibm | Fault tolerant transaction-oriented data processing. |
US5553279A (en) * | 1993-10-08 | 1996-09-03 | International Business Machines Corporation | Lossless distribution of time series data in a relational data base network |
US5561795A (en) * | 1994-05-13 | 1996-10-01 | Unisys Corporation | Method and apparatus for audit trail logging and data base recovery |
US5586312A (en) * | 1994-10-11 | 1996-12-17 | Unisys Corporation | Method and apparatus for using an independent transaction processing application as a service routine |
US5680610A (en) * | 1995-01-19 | 1997-10-21 | Unisys Corporation | Method and apparatus for testing recovery scenarios in global transaction processing systems |
US6052695A (en) * | 1995-02-28 | 2000-04-18 | Ntt Data Communications Systems Corporation | Accurate completion of transaction in cooperative type distributed system and recovery procedure for same |
US5712971A (en) * | 1995-12-11 | 1998-01-27 | Ab Initio Software Corporation | Methods and systems for reconstructing the state of a computation |
US5850507A (en) * | 1996-03-19 | 1998-12-15 | Oracle Corporation | Method and apparatus for improved transaction recovery |
US5857204A (en) * | 1996-07-02 | 1999-01-05 | Ab Initio Software Corporation | Restoring the state of a set of files |
US5781910A (en) * | 1996-09-13 | 1998-07-14 | Stratus Computer, Inc. | Preforming concurrent transactions in a replicated database environment |
US6035379A (en) * | 1997-01-09 | 2000-03-07 | Microsoft Corporation | Transaction processing for user data employing both logging and shadow copying |
US6275863B1 (en) * | 1999-01-25 | 2001-08-14 | International Business Machines Corp. | System and method for programming and executing long running transactions |
JP4237354B2 (ja) * | 1999-09-29 | 2009-03-11 | 株式会社東芝 | トランザクション処理方法及びトランザクション処理システム |
-
1999
- 1999-09-29 JP JP27626499A patent/JP4237354B2/ja not_active Expired - Lifetime
-
2000
- 2000-09-12 US US09/660,461 patent/US6519614B1/en not_active Expired - Lifetime
- 2000-09-13 EP EP00307894.6A patent/EP1089177B1/en not_active Expired - Lifetime
- 2000-09-15 TW TW089118907A patent/TW550474B/zh not_active IP Right Cessation
- 2000-09-27 KR KR10-2000-0056689A patent/KR100398753B1/ko not_active IP Right Cessation
-
2002
- 2002-12-03 US US10/307,974 patent/US6834275B2/en not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007265043A (ja) * | 2006-03-28 | 2007-10-11 | Nomura Research Institute Ltd | スケジューラプログラム、サーバシステム、スケジューラ装置 |
JP4571090B2 (ja) * | 2006-03-28 | 2010-10-27 | 株式会社野村総合研究所 | スケジューラプログラム、サーバシステム、スケジューラ装置 |
JP2008225979A (ja) * | 2007-03-14 | 2008-09-25 | Hitachi Ltd | 情報処理装置、プログラム及び情報処理方法 |
JP2011134143A (ja) * | 2009-12-25 | 2011-07-07 | Fujitsu Frontech Ltd | 情報処理装置、情報処理方法、および情報処理プログラム |
WO2014068820A1 (ja) * | 2012-10-29 | 2014-05-08 | 日本電気株式会社 | トランザクションシステム |
JP5949937B2 (ja) * | 2012-10-29 | 2016-07-13 | 日本電気株式会社 | トランザクションシステム |
Also Published As
Publication number | Publication date |
---|---|
US6519614B1 (en) | 2003-02-11 |
JP4237354B2 (ja) | 2009-03-11 |
EP1089177B1 (en) | 2014-04-30 |
KR100398753B1 (ko) | 2003-09-19 |
EP1089177A2 (en) | 2001-04-04 |
KR20010050667A (ko) | 2001-06-15 |
EP1089177A3 (en) | 2003-05-02 |
US20030078910A1 (en) | 2003-04-24 |
US6834275B2 (en) | 2004-12-21 |
TW550474B (en) | 2003-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001101045A (ja) | トランザクション処理方法及びトランザクション処理システム | |
US9058351B2 (en) | Apparatus and method for read optimized bulk data storage | |
JP5259404B2 (ja) | データベースフラグメントのクローン化および管理 | |
AU2002212843B2 (en) | Method and apparatus for data processing | |
US6012094A (en) | Method of stratified transaction processing | |
US11132350B2 (en) | Replicable differential store data structure | |
JP4219589B2 (ja) | トランザクショナルファイルシステム | |
US20050125458A1 (en) | Chronological data record access | |
WO2006127402A1 (en) | Version-controlled cached data store | |
JPH103416A (ja) | 情報処理装置およびその方法 | |
US20060236049A1 (en) | Remote copy system and remote copy method | |
JPH08328933A (ja) | 並列処理システムのファイルアクセス制御方式 | |
JP3785004B2 (ja) | トランザクション管理方法及びトランザクション管理装置 | |
JP4289834B2 (ja) | データベース管理システム、データベース管理プログラムおよび記録媒体 | |
US7209919B2 (en) | Library server locks DB2 resources in short time for CM implicit transaction | |
US20240330111A1 (en) | Database node soft restart | |
JP2523499B2 (ja) | アクセス制御方法 | |
AU2007231648B2 (en) | Method and apparatus for data processing | |
JP4245282B2 (ja) | 書き込み遅延データベース管理方法、装置、プログラム、及び記録媒体 | |
JPH04191934A (ja) | 機能別プログラム管理方法および装置 | |
JP2002268930A (ja) | データベース構成変更装置、方法及び記録媒体 | |
NZ537170A (en) | Method and apparatus for data processing | |
KR20010057884A (ko) | 데이터 저장시스템에서 데이터 버퍼 제어 블록을 이용한로그 우선 출력 프로토콜 수행 방법 | |
NZ546247A (en) | Method and apparatus for replicating a database | |
NZ546248A (en) | Method and apparatus for replicating a database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041201 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080325 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080526 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080819 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081020 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081216 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081218 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4237354 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121226 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121226 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131226 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |