JPH056297A - トランザクシヨン処理方法およびシステム - Google Patents
トランザクシヨン処理方法およびシステムInfo
- Publication number
- JPH056297A JPH056297A JP3012822A JP1282291A JPH056297A JP H056297 A JPH056297 A JP H056297A JP 3012822 A JP3012822 A JP 3012822A JP 1282291 A JP1282291 A JP 1282291A JP H056297 A JPH056297 A JP H056297A
- Authority
- JP
- Japan
- Prior art keywords
- identifier
- data unit
- data
- transaction
- page
- 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
- 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
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/825—Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/87—Monitoring of transactions
-
- 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
- Y10S707/99938—Concurrency, e.g. lock management in shared database
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 不必要なロックを得るためのトランザクショ
ンを必要としないトランザクション処理システムを提供
する。 【構成】 ページのロッキングを用いないトランザクシ
ョン処理システム内のデータページ33を読取るための
装置を示す。該システムは任意データにアクセスする最
も古い確約されないトランザクションを識別するGCL
SN36と特定のファイル、テーブル、インデックスに
アクセスする最古の確約されないトランザクションを識
別するOCLSN38a,38bを維持する。各データ
ページは最終トランザクションを識別するPAGELS
N35を含む。ページ33のPAGELSN35をGC
LSN36と比較する。PAGELSN35が比較対照
のGCLSN36より古ければ、そのページのデータを
更新した処理中の確約されないトランザクションは無い
から、そのトランザクションがそのページをロックする
ことなく読取る。
ンを必要としないトランザクション処理システムを提供
する。 【構成】 ページのロッキングを用いないトランザクシ
ョン処理システム内のデータページ33を読取るための
装置を示す。該システムは任意データにアクセスする最
も古い確約されないトランザクションを識別するGCL
SN36と特定のファイル、テーブル、インデックスに
アクセスする最古の確約されないトランザクションを識
別するOCLSN38a,38bを維持する。各データ
ページは最終トランザクションを識別するPAGELS
N35を含む。ページ33のPAGELSN35をGC
LSN36と比較する。PAGELSN35が比較対照
のGCLSN36より古ければ、そのページのデータを
更新した処理中の確約されないトランザクションは無い
から、そのトランザクションがそのページをロックする
ことなく読取る。
Description
【0001】
【産業上の利用分野】本発明はコンピュータ化トランザ
クション処理システムに関する。さらに詳細には、本発
明は同時に実行されるトランザクションによるロッキン
グを減少させる方法に関する。
クション処理システムに関する。さらに詳細には、本発
明は同時に実行されるトランザクションによるロッキン
グを減少させる方法に関する。
【0002】
【従来の技術】トランザクション処理
「トランザクション」は一つの一貫性のある状態から他
の状態に、データベースのような回復可能なデータを変
える一連の動作を含む。トランザクション処理システム
は、一つのトランザクションが回復可能なデータに対す
る更新を実行しそしてそのトランザクションがその一貫
性の正常な終了点または中間点になる前に障害が生じた
場合に、それら更新を確実に元にもどす。新しい一致点
となり、トランザクションにより行われたすべての更新
が永久的なものとされねばならぬときにはこのトランザ
クションは「確約」される。
の状態に、データベースのような回復可能なデータを変
える一連の動作を含む。トランザクション処理システム
は、一つのトランザクションが回復可能なデータに対す
る更新を実行しそしてそのトランザクションがその一貫
性の正常な終了点または中間点になる前に障害が生じた
場合に、それら更新を確実に元にもどす。新しい一致点
となり、トランザクションにより行われたすべての更新
が永久的なものとされねばならぬときにはこのトランザ
クションは「確約」される。
【0003】このトランザクション回復保証を満足する
ためにはシステムはトランザクションおよびそれらの更
新アクションの両方をシステム全体について故障として
記憶出来ねばならず、それにより回復可能なそれらの効
果がシステムの再スタート時に適正に反映出来るように
しなければならない。システムはトランザクション回復
保証を満足するために各トランザクションの進行の「ロ
グ」及びデータへの変更を維持する。「ログレコード」
として知られるログデータはトランザクションの確約さ
れたアクションがデータベースに反映されるか、あるい
は元にもどされたことを確実にするために検査されう
る。ログレコードが実際のデータを含む時にはこれらは
記憶装置の故障等により損傷または損失したデータを再
構成するためにも使用出来る。ログは常に成長する順次
ファイルと考えてもよい。
ためにはシステムはトランザクションおよびそれらの更
新アクションの両方をシステム全体について故障として
記憶出来ねばならず、それにより回復可能なそれらの効
果がシステムの再スタート時に適正に反映出来るように
しなければならない。システムはトランザクション回復
保証を満足するために各トランザクションの進行の「ロ
グ」及びデータへの変更を維持する。「ログレコード」
として知られるログデータはトランザクションの確約さ
れたアクションがデータベースに反映されるか、あるい
は元にもどされたことを確実にするために検査されう
る。ログレコードが実際のデータを含む時にはこれらは
記憶装置の故障等により損傷または損失したデータを再
構成するためにも使用出来る。ログは常に成長する順次
ファイルと考えてもよい。
【0004】ログはディスクファイル(「ディスクドラ
イブ」と呼ばれる)のような安定した記憶装置に永久的
に記録され、これはシステム故障について完全であり適
用可能となされる。ログレコードはコンピュータメモリ
内の一時的な揮発性ログファイルバッファにまず書込ま
れ、それから或る時点(例えばトランザクションが確約
されるとき)に安定な記憶装置に移される。ロッキング 安定記憶装置(例えばディスクメモリ)と仮想記憶装置
(例えばコンピュータメモリ)は共に「ページ」に分け
られる。各ページは一般にタイプされた数ページに等価
なものを保持する。このページは個々のネームとアドレ
スのようなレコードに副分割される。一つのトランザク
ションが或るデータのアクセスを要求するとき、そのデ
ータを含むページは安定記憶装置から仮想記憶装置内の
同じサイズの「バッファ」へとコピーされる。このデー
タがトランザクションにより更新されたなら、更新され
たページが後に安定記憶装置にもどされる。
イブ」と呼ばれる)のような安定した記憶装置に永久的
に記録され、これはシステム故障について完全であり適
用可能となされる。ログレコードはコンピュータメモリ
内の一時的な揮発性ログファイルバッファにまず書込ま
れ、それから或る時点(例えばトランザクションが確約
されるとき)に安定な記憶装置に移される。ロッキング 安定記憶装置(例えばディスクメモリ)と仮想記憶装置
(例えばコンピュータメモリ)は共に「ページ」に分け
られる。各ページは一般にタイプされた数ページに等価
なものを保持する。このページは個々のネームとアドレ
スのようなレコードに副分割される。一つのトランザク
ションが或るデータのアクセスを要求するとき、そのデ
ータを含むページは安定記憶装置から仮想記憶装置内の
同じサイズの「バッファ」へとコピーされる。このデー
タがトランザクションにより更新されたなら、更新され
たページが後に安定記憶装置にもどされる。
【0005】ロッキングは実用データに対する複数のト
ランザクションのアクセスの同時実行を制御するために
用いられ、特に同時トランザクションがそのデータを別
々に変更しないようにするために用いられる。ロッキン
グの適正使用により、トランザクションがそれの読取る
データが一致状態にあり、そして他のトランザクション
の確約されない更新を含まないようにすることが出来
る。
ランザクションのアクセスの同時実行を制御するために
用いられ、特に同時トランザクションがそのデータを別
々に変更しないようにするために用いられる。ロッキン
グの適正使用により、トランザクションがそれの読取る
データが一致状態にあり、そして他のトランザクション
の確約されない更新を含まないようにすることが出来
る。
【0006】「ページレベルロッキング」を用いるシス
テムはそのロックを得るトランザクションが一つのペー
ジ上のレコードの1つのアクセスのみを必要とする場合
であっても、そのページ全体より少い量をロックするこ
とは出来ない。「レコードレベルロッキング」のような
より詳細部分のロッキングは同時トランザクションの間
の争いを減少させうるが、より大きい処理オーバーヘッ
ドを必要とする。
テムはそのロックを得るトランザクションが一つのペー
ジ上のレコードの1つのアクセスのみを必要とする場合
であっても、そのページ全体より少い量をロックするこ
とは出来ない。「レコードレベルロッキング」のような
より詳細部分のロッキングは同時トランザクションの間
の争いを減少させうるが、より大きい処理オーバーヘッ
ドを必要とする。
【0007】ロッキングは時間のかかるものであり(技
術用語でいう「高価」)、それ故トランザクションの処
理速度を低下させる。個々のロック情報の記憶を得、フ
ォーマット化しそして解放する必要があり、マシンイン
ストラクションをこのロックの獲得と解放のため実行し
なければならない。一つのトランザクション処理システ
ムではロックの獲得とその解放には他のロックまたは要
求との間にコンフリクトがなくても約800個のインス
トラクションが必要である。
術用語でいう「高価」)、それ故トランザクションの処
理速度を低下させる。個々のロック情報の記憶を得、フ
ォーマット化しそして解放する必要があり、マシンイン
ストラクションをこのロックの獲得と解放のため実行し
なければならない。一つのトランザクション処理システ
ムではロックの獲得とその解放には他のロックまたは要
求との間にコンフリクトがなくても約800個のインス
トラクションが必要である。
【0008】ロックマネージャは一般に、競合するトラ
ンザクション間で完全にロックを割り振るためには先入
れ先出し方式(FIFO)でのロック要求を処理する。
その結果、場合によっては一つのトランザクションがそ
の要求されたロックが許可されていてもそのロックを待
たねばならない。その理由はその要求が他のトランザク
ションからの介入要求と両立しないからである。
ンザクション間で完全にロックを割り振るためには先入
れ先出し方式(FIFO)でのロック要求を処理する。
その結果、場合によっては一つのトランザクションがそ
の要求されたロックが許可されていてもそのロックを待
たねばならない。その理由はその要求が他のトランザク
ションからの介入要求と両立しないからである。
【0009】レコードレベルおよび細分性ロッキングは
トランザクション間の争いを減少させることにより同時
性を向上させるのに有効である。ロッキングの細分性は
システム全体に影響することは周知である。一般にロッ
キングの細分性はより高いスループットをもたらす。細
分ロッキングの欠点は多数のレコードをアクセスするト
ランザクションについて行われるべきロックの数が劇的
に増加するということである。
トランザクション間の争いを減少させることにより同時
性を向上させるのに有効である。ロッキングの細分性は
システム全体に影響することは周知である。一般にロッ
キングの細分性はより高いスループットをもたらす。細
分ロッキングの欠点は多数のレコードをアクセスするト
ランザクションについて行われるべきロックの数が劇的
に増加するということである。
【0010】多くの場合、ロッキングの目的は読取られ
ようとしているデータの一部を将来の更新を遅らせるの
ではなく確約状態にすることである。多量のデータを検
査し、検査したデータの更新を行わないアドホック照会
はデータを確実に確約するためのロッキングの例であ
る。これらの状態では従来は適用しないかあるいは時間
がかかりすぎる(マシンインストラクションについて)
かである。
ようとしているデータの一部を将来の更新を遅らせるの
ではなく確約状態にすることである。多量のデータを検
査し、検査したデータの更新を行わないアドホック照会
はデータを確実に確約するためのロッキングの例であ
る。これらの状態では従来は適用しないかあるいは時間
がかかりすぎる(マシンインストラクションについて)
かである。
【0011】ロッキングの減少に関する従来技術が米国
特許第4627019号明細書および第4648036
号明細書に示されている。これらの従来技術では、デー
タの多数の変換物が読取専用トランザクションによるロ
ッキングを回避するために維持されるようになってい
る。前者においては夫々データの一つのバージョンのデ
ータベースロケーションを限定するアクセスブロックア
レイを記憶する。このアクセスブロックアレイの内の一
つのブロックにみが現在のバージョンを含む。しかしな
がらバージョニングは現在データを完全に要求するトラ
ンザクションについてのロッキングを回避しない。バー
ジョニングは更新を行わず、時間の遅れたデータを読取
ろうとしないトランザクションを援助するだけである。
更に、バージョニングは更新されたデータオブジェクト
の多数のバージョンを維持するための別の記憶装置を要
求する。米国特許第4698752号明細書には同じト
ランザクションにより前にロックされたロックレコード
を識別するトランザクションリストを維持することによ
りレコードの再ロックを回避する技術が示されている。
特許第4627019号明細書および第4648036
号明細書に示されている。これらの従来技術では、デー
タの多数の変換物が読取専用トランザクションによるロ
ッキングを回避するために維持されるようになってい
る。前者においては夫々データの一つのバージョンのデ
ータベースロケーションを限定するアクセスブロックア
レイを記憶する。このアクセスブロックアレイの内の一
つのブロックにみが現在のバージョンを含む。しかしな
がらバージョニングは現在データを完全に要求するトラ
ンザクションについてのロッキングを回避しない。バー
ジョニングは更新を行わず、時間の遅れたデータを読取
ろうとしないトランザクションを援助するだけである。
更に、バージョニングは更新されたデータオブジェクト
の多数のバージョンを維持するための別の記憶装置を要
求する。米国特許第4698752号明細書には同じト
ランザクションにより前にロックされたロックレコード
を識別するトランザクションリストを維持することによ
りレコードの再ロックを回避する技術が示されている。
【0012】ロッキングを回避する代りに、Kungおよび
Robinson両氏の“On Optimistic Methods for Concurre
ncy Control ”,ACM Transactions on Database Syste
ms、第6巻、第2号、pp.213−226(1981年
6月)ではロッキングのコストを低下するための「オプ
ティミスティックロッキング」と呼ぶ方法が提案されて
いる。
Robinson両氏の“On Optimistic Methods for Concurre
ncy Control ”,ACM Transactions on Database Syste
ms、第6巻、第2号、pp.213−226(1981年
6月)ではロッキングのコストを低下するための「オプ
ティミスティックロッキング」と呼ぶ方法が提案されて
いる。
【0013】
【発明が解決しようとする課題】不必要なロックを得る
ためにトランザクションを必要としないトランザクショ
ン処理システムが必要とされる。またデータの一部を確
約された状態にあることをより効率よく決定するための
方法も必要である。最後に、多量のデータを読取るトラ
ンザクションを時間がかかりすぎないように細分化ロッ
キングを支持する必要がある。
ためにトランザクションを必要としないトランザクショ
ン処理システムが必要とされる。またデータの一部を確
約された状態にあることをより効率よく決定するための
方法も必要である。最後に、多量のデータを読取るトラ
ンザクションを時間がかかりすぎないように細分化ロッ
キングを支持する必要がある。
【0014】
【課題を解決するための手段】本発明はコンピュータ化
データ処理システムにおける選ばれた1以上の処理によ
りデータユニットの内の選ばれた一つのユニットをアク
セスする改善された方法を含む。このシステムは、夫
々、その最後の変更の時より前ではない時を反映する識
別子(例えばログシーケンス番号)により識別される2
以上のデータユニット(例えばデータページ)を含む。
まず、第2識別子がデータユニットの間のいくつかある
いはすべての次に古い処理中変更の時を反映するように
維持される。一つの選ばれたページをアクセスすべきと
きはこの第2識別子がこの選ばれたページの識別子と比
較される。次にこの選ばれたページへのアクセスが他の
プロセスのそれへのアクセスと両立しうるように得られ
る。これは、選ばれたページの識別子が、それが第2の
識別子より新しい場合ではなく古い場合により少いコン
ピュータインストラクションを用いて行われる。アクセ
スが得られてしまえばこの選ばれたページが読取られ
る。
データ処理システムにおける選ばれた1以上の処理によ
りデータユニットの内の選ばれた一つのユニットをアク
セスする改善された方法を含む。このシステムは、夫
々、その最後の変更の時より前ではない時を反映する識
別子(例えばログシーケンス番号)により識別される2
以上のデータユニット(例えばデータページ)を含む。
まず、第2識別子がデータユニットの間のいくつかある
いはすべての次に古い処理中変更の時を反映するように
維持される。一つの選ばれたページをアクセスすべきと
きはこの第2識別子がこの選ばれたページの識別子と比
較される。次にこの選ばれたページへのアクセスが他の
プロセスのそれへのアクセスと両立しうるように得られ
る。これは、選ばれたページの識別子が、それが第2の
識別子より新しい場合ではなく古い場合により少いコン
ピュータインストラクションを用いて行われる。アクセ
スが得られてしまえばこの選ばれたページが読取られ
る。
【0015】本発明はまた、そのような第2識別子を維
持する手段と、それを選ばれたページの識別子と比較す
る手段と、選ばれたページの識別子が、それが第2の識
別子より新しい場合ではなく古い場合により少いコンピ
ュータインストラクションを用いてこの選ばれたページ
へのアクセスを得る手段と、このページを読取る手段を
含むデータ処理システムを含む。
持する手段と、それを選ばれたページの識別子と比較す
る手段と、選ばれたページの識別子が、それが第2の識
別子より新しい場合ではなく古い場合により少いコンピ
ュータインストラクションを用いてこの選ばれたページ
へのアクセスを得る手段と、このページを読取る手段を
含むデータ処理システムを含む。
【0016】本発明はまたそのようなデータ処理システ
ムにおいて用いるための磁気等の媒体に記録されるコン
ピュータプログラムを含む。
ムにおいて用いるための磁気等の媒体に記録されるコン
ピュータプログラムを含む。
【0017】
【実施例】概説
図1に示すように、本発明によるトランザクション処理
システム20はコンピュータ22と関連するディスク記
憶装置24とを含んでいる。このコンピュータはシステ
ムへの「トランザクション」を与えるための自動テラー
マシン(ATM)26のような1個以上の装置と通信を
行う。コンピュータ22はIBMモデル3090のよう
な汎用プログラマブル・ディジタルコンピュータであ
り、プログラムインストラクションを実行するための中
央処理ユニット(CPU)28と揮発性メモリ30を含
む。データは必要でなくなるまで、あるいはシステム停
止でメモリ30を消去するまでメモリ30内に保持され
る。データは安定ディスクメモリ24に永久的に記憶さ
れ、読取または更新時にメモリ30に移される。
システム20はコンピュータ22と関連するディスク記
憶装置24とを含んでいる。このコンピュータはシステ
ムへの「トランザクション」を与えるための自動テラー
マシン(ATM)26のような1個以上の装置と通信を
行う。コンピュータ22はIBMモデル3090のよう
な汎用プログラマブル・ディジタルコンピュータであ
り、プログラムインストラクションを実行するための中
央処理ユニット(CPU)28と揮発性メモリ30を含
む。データは必要でなくなるまで、あるいはシステム停
止でメモリ30を消去するまでメモリ30内に保持され
る。データは安定ディスクメモリ24に永久的に記憶さ
れ、読取または更新時にメモリ30に移される。
【0018】ディスクメモリ24はIBMモデル339
0ディスク記憶装置のような汎用直接アクセス記憶装置
である。ディスク24はページに分けられ、そして特定
のページ上のデータがトランザクションに必要であると
きそのページがメモリ30の「バッファプール」32の
対応する「ページ」33に移される。バッファプール3
2内でページのデータが1回だけトランザクションに必
要なときCPU28により読取られまたは更新されう
る。更新されたページはバッファプール32からディス
クメモリ24に移されてその更新された情報を永久的に
保存する。しかしながら更新されたページがディスクメ
モリに移される前にシステム20の電力が切られあるい
は故障すると、そのページの情報は失われる。
0ディスク記憶装置のような汎用直接アクセス記憶装置
である。ディスク24はページに分けられ、そして特定
のページ上のデータがトランザクションに必要であると
きそのページがメモリ30の「バッファプール」32の
対応する「ページ」33に移される。バッファプール3
2内でページのデータが1回だけトランザクションに必
要なときCPU28により読取られまたは更新されう
る。更新されたページはバッファプール32からディス
クメモリ24に移されてその更新された情報を永久的に
保存する。しかしながら更新されたページがディスクメ
モリに移される前にシステム20の電力が切られあるい
は故障すると、そのページの情報は失われる。
【0019】「回復ログ」34がシステム障害からの回
復のためにメモリ30およびディスクメモリ24に維持
される。回復ログはページの更新と他のイベントを記録
しそして各レコードされたイベントについてのログシー
ケンス番号またはLSNに関連する。「ライトアヘッド
ロギング」と呼ばれる回復ロギングの方法ではページ更
新のログレコードが、そのページ自体がディスク上で更
新される前にディスク24の回復ログ34に書込まれ
て、この更新ページがディスクに書込まれた後にトラン
ザクションが打切られるときその更新が元にもどされる
ようにする。バッファプール内のページはPage LSN
35であり、これはそのページの更新のログレコードに
割り振られるログシーケンス番号(LSN)に等しい。
この更新されたベージがバッファプール32からディス
クメモリ24にもどされるとき、Page LSN35がそ
れと共に移される。次に回復中、回復マネージャが回復
ログをそのページのログシーケンス番号へとサーチして
更新を回復する。
復のためにメモリ30およびディスクメモリ24に維持
される。回復ログはページの更新と他のイベントを記録
しそして各レコードされたイベントについてのログシー
ケンス番号またはLSNに関連する。「ライトアヘッド
ロギング」と呼ばれる回復ロギングの方法ではページ更
新のログレコードが、そのページ自体がディスク上で更
新される前にディスク24の回復ログ34に書込まれ
て、この更新ページがディスクに書込まれた後にトラン
ザクションが打切られるときその更新が元にもどされる
ようにする。バッファプール内のページはPage LSN
35であり、これはそのページの更新のログレコードに
割り振られるログシーケンス番号(LSN)に等しい。
この更新されたベージがバッファプール32からディス
クメモリ24にもどされるとき、Page LSN35がそ
れと共に移される。次に回復中、回復マネージャが回復
ログをそのページのログシーケンス番号へとサーチして
更新を回復する。
【0020】システム20はトランザクションには「確
約されたデータ」のみが使用しうるようにする(もちろ
ん、確約されないデータがアクセス中のトランザクショ
ンに属さない場合に限られる)。従来のトランザクショ
ン処理システムでは一つのページ上のデータを単に読取
るためのトランザクションは、そのページの確約された
データのみを読取り、読取中にそのページのデータを更
新するようなトランザクションの同時的実行が存在しな
いようにするため、そのページ上の「ロック」を得る必
要がある。これらロックを得ることは読取られるべきペ
ージを夫々ロックしなければならない長い読取専用トラ
ンザクションの動作速度を著しく低下させる。
約されたデータ」のみが使用しうるようにする(もちろ
ん、確約されないデータがアクセス中のトランザクショ
ンに属さない場合に限られる)。従来のトランザクショ
ン処理システムでは一つのページ上のデータを単に読取
るためのトランザクションは、そのページの確約された
データのみを読取り、読取中にそのページのデータを更
新するようなトランザクションの同時的実行が存在しな
いようにするため、そのページ上の「ロック」を得る必
要がある。これらロックを得ることは読取られるべきペ
ージを夫々ロックしなければならない長い読取専用トラ
ンザクションの動作速度を著しく低下させる。
【0021】本発明は読取られるべきページに高速、短
時間の「ラッチ」を用い、ページが確約されないデータ
を含む場合にのみそれらページをロックする。ページに
ついてそのようなラッチを得ることはロックを得るより
も10倍程度高速である。これにより、アクセスされて
いるデータの殆どが確約される場合にトランザクション
を充分高速で完了しうるようになる。
時間の「ラッチ」を用い、ページが確約されないデータ
を含む場合にのみそれらページをロックする。ページに
ついてそのようなラッチを得ることはロックを得るより
も10倍程度高速である。これにより、アクセスされて
いるデータの殆どが確約される場合にトランザクション
を充分高速で完了しうるようになる。
【0022】システム20は、まだデータのアクセスを
行っている最も古い、確約されないトランザクションの
ログシーケンス番号(LSN)の「トランザクションテ
ーブル」をメモリ30に維持する。Global Committed
LSN36はデータをアクセスする最も古い、確約さ
れないトランザクションを識別する。Object Committe
d LSN(OCLSN)38a,38bはデータの特
定のサブセット(例えばファイルテーブルおよびインデ
クス)を変更した最も古い確約されないトランザクショ
ンを識別する。
行っている最も古い、確約されないトランザクションの
ログシーケンス番号(LSN)の「トランザクションテ
ーブル」をメモリ30に維持する。Global Committed
LSN36はデータをアクセスする最も古い、確約さ
れないトランザクションを識別する。Object Committe
d LSN(OCLSN)38a,38bはデータの特
定のサブセット(例えばファイルテーブルおよびインデ
クス)を変更した最も古い確約されないトランザクショ
ンを識別する。
【0023】一つのトランザクションがバッファプール
32内の一つのページへのアクセスを準備していると
き、これはまずそのページをラッチし、そしてそのペー
ジのPage LSN35をGlobal Committed LSN3
8a,38bが存在する場合には読取られるべきページ
を含むオブジェクトについてのObject Committed L
SN38a,38bと比較する。Page LSN35が比
較するCommitted LSNより古ければ、システムはペ
ージデータを変更した処理中の確約されないトランザク
ションがないことにする。これを知ればこのページは更
新トランザクションとのコンフリクトについてそれをロ
ックすることなく直ちに読取りうる。いったんページが
読取られるとラッチが直ちに解放され、他のトランザク
ションがページをアクセスするのを許可する。
32内の一つのページへのアクセスを準備していると
き、これはまずそのページをラッチし、そしてそのペー
ジのPage LSN35をGlobal Committed LSN3
8a,38bが存在する場合には読取られるべきページ
を含むオブジェクトについてのObject Committed L
SN38a,38bと比較する。Page LSN35が比
較するCommitted LSNより古ければ、システムはペ
ージデータを変更した処理中の確約されないトランザク
ションがないことにする。これを知ればこのページは更
新トランザクションとのコンフリクトについてそれをロ
ックすることなく直ちに読取りうる。いったんページが
読取られるとラッチが直ちに解放され、他のトランザク
ションがページをアクセスするのを許可する。
【0024】比較の結果、Page LSN35がテストさ
れたCommitted LSNよりも古くなければ、確約され
ないトランザクションがページデータを更新することが
可能になる。この場合、そのページのアクセス前にその
トランザクションによりロックを得なければならない。
しかしながら、これは任意の時点でデータの僅か一部分
のみが更新されている大きなデータベースシステムでは
めったに生じない。トランザクションの大多数は、フル
スケールのロック分解能が不要であるから従来のシステ
ムよりも著しく高速に処理しうる。ログシーケンス番号 夫々のログレコードにはそのレコードが回復ログ34に
書込まれる時点で固有の「ログシーケンス番号」(LS
N)が割り振られる。LSNは、バージョン番号または
時間スタンプも使用しうるが、対応するログレコードの
論理的アドレスである。一つのトランザクションが開始
すると、まず回復ログ34に初期ログレコードが置か
れ、そしてこのレコードにはトランザクションのBegin
LSNとして知られるLSNが割り振れられる。ペー
ジ33に対する更新のロギングの終了により、そのペー
ジへの最終の更新に対応するログレコードのLSNがペ
ージ見出し内のフィールド35に置かれる。かくして、
Page LSN35がわかるとシステムはページ33の内
容をそのページに関係するログされた更新と相関させる
ことが出来る。回復中、Page LSN35とログレコー
ドのLSNが比較され、そのログレコードの更新がその
ページ33にすでに反映されているかどうかを決定す
る。
れたCommitted LSNよりも古くなければ、確約され
ないトランザクションがページデータを更新することが
可能になる。この場合、そのページのアクセス前にその
トランザクションによりロックを得なければならない。
しかしながら、これは任意の時点でデータの僅か一部分
のみが更新されている大きなデータベースシステムでは
めったに生じない。トランザクションの大多数は、フル
スケールのロック分解能が不要であるから従来のシステ
ムよりも著しく高速に処理しうる。ログシーケンス番号 夫々のログレコードにはそのレコードが回復ログ34に
書込まれる時点で固有の「ログシーケンス番号」(LS
N)が割り振られる。LSNは、バージョン番号または
時間スタンプも使用しうるが、対応するログレコードの
論理的アドレスである。一つのトランザクションが開始
すると、まず回復ログ34に初期ログレコードが置か
れ、そしてこのレコードにはトランザクションのBegin
LSNとして知られるLSNが割り振れられる。ペー
ジ33に対する更新のロギングの終了により、そのペー
ジへの最終の更新に対応するログレコードのLSNがペ
ージ見出し内のフィールド35に置かれる。かくして、
Page LSN35がわかるとシステムはページ33の内
容をそのページに関係するログされた更新と相関させる
ことが出来る。回復中、Page LSN35とログレコー
ドのLSNが比較され、そのログレコードの更新がその
ページ33にすでに反映されているかどうかを決定す
る。
【0025】本発明の目的を達成させる決定的な事実は
実行中の最も古い更新の第1ログレコードのLSNより
小さいPage LSN35を有するページ33は確約され
たデータを有することが出来ないということである。ロッキング 上述のようにロックはレコード(チュープル(tuple)、
行)、テーブル(関係)、およびファイル(テーブルス
ペース、セグメント、ダブルスペース)のような異なる
細分化において得られる。そして各細分についてロック
はS(共用)、X(排他)、IX(インテンションエク
スクルーシブ)、IS(インテンション共用)、および
SIX(共用インテンションエクスクルーシブ)のよう
な異なる「ロックモード」で得られる。SおよびXロッ
クは最も普通のものである。「Sロック」はトランザク
ションがロックされたデータの読取を可能にし、「Xロ
ック」はトランザクションがデータを読取りそして更新
しうるようにする。
実行中の最も古い更新の第1ログレコードのLSNより
小さいPage LSN35を有するページ33は確約され
たデータを有することが出来ないということである。ロッキング 上述のようにロックはレコード(チュープル(tuple)、
行)、テーブル(関係)、およびファイル(テーブルス
ペース、セグメント、ダブルスペース)のような異なる
細分化において得られる。そして各細分についてロック
はS(共用)、X(排他)、IX(インテンションエク
スクルーシブ)、IS(インテンション共用)、および
SIX(共用インテンションエクスクルーシブ)のよう
な異なる「ロックモード」で得られる。SおよびXロッ
クは最も普通のものである。「Sロック」はトランザク
ションがロックされたデータの読取を可能にし、「Xロ
ック」はトランザクションがデータを読取りそして更新
しうるようにする。
【0026】与えられたオブジェクトについてのロック
はロックモードが「両立しうる」場合に限り異なるトラ
ンザクションにより同時に保持しうる。Xはこれらのい
ずれのモードとも両立しえない。SはSとISとにのみ
両立しうる。IXはIXとISのみと両立しうる。IS
はIX、IS、S、SIXと両立し、SIXはISとの
み両立しうる。インテンションロック(IX、IS、S
IX)はデータオブジェクト階層(例えばファイルおよ
びテーブル)の高いレベルで得られ、SとXロックはア
クセスされるべき低レベルオブジェクト(例えばレコー
ド)で得られる。ノンインテンションモードロック(S
またはX)はデータオブジェクト階層の或るレベルでオ
ブジェクトに得られるときその高レベルのオブジェクト
の低レベルオブジェクトについての対応するモードのロ
ックを絶対的に許可する。他方、インテンションモード
ロックは低レベルオブジェクトについての対応するノン
インテンションモードロックを要求する特権を与えるの
みである(例えばテーブル上のSIXはそのテーブルの
すべてのレコードについてSを絶対的に許可し、それは
Xがこれらレコードについて絶対的に要求されうるよう
にする)。
はロックモードが「両立しうる」場合に限り異なるトラ
ンザクションにより同時に保持しうる。Xはこれらのい
ずれのモードとも両立しえない。SはSとISとにのみ
両立しうる。IXはIXとISのみと両立しうる。IS
はIX、IS、S、SIXと両立し、SIXはISとの
み両立しうる。インテンションロック(IX、IS、S
IX)はデータオブジェクト階層(例えばファイルおよ
びテーブル)の高いレベルで得られ、SとXロックはア
クセスされるべき低レベルオブジェクト(例えばレコー
ド)で得られる。ノンインテンションモードロック(S
またはX)はデータオブジェクト階層の或るレベルでオ
ブジェクトに得られるときその高レベルのオブジェクト
の低レベルオブジェクトについての対応するモードのロ
ックを絶対的に許可する。他方、インテンションモード
ロックは低レベルオブジェクトについての対応するノン
インテンションモードロックを要求する特権を与えるの
みである(例えばテーブル上のSIXはそのテーブルの
すべてのレコードについてSを絶対的に許可し、それは
Xがこれらレコードについて絶対的に要求されうるよう
にする)。
【0027】ロック要求は条件付きでまたは無条件でな
しうる。条件付き要求は、それが処理される時点でロッ
クが直ちに許可されえないならリクエスタはそれを待つ
意志のないことを意味する。無条件要求はロックが許可
されるまでリクエスタが待つ意志のあることを意味す
る。
しうる。条件付き要求は、それが処理される時点でロッ
クが直ちに許可されえないならリクエスタはそれを待つ
意志のないことを意味する。無条件要求はロックが許可
されるまでリクエスタが待つ意志のあることを意味す
る。
【0028】ロックは異なった時間保持されうる。イン
スタンスデュアレーションロックの無条件要求とは、ロ
ックが実際に許可されるのではなくロックマネージャか
ロックが許可されるまで成功状態にあるロック呼び出し
の呼びもどしを遅れさせねばならないことを意味する。
マニュアルデュアレーションロックはトランザクション
が終了するかなり前に一般に獲得された後に解放され
る。
スタンスデュアレーションロックの無条件要求とは、ロ
ックが実際に許可されるのではなくロックマネージャか
ロックが許可されるまで成功状態にあるロック呼び出し
の呼びもどしを遅れさせねばならないことを意味する。
マニュアルデュアレーションロックはトランザクション
が終了するかなり前に一般に獲得された後に解放され
る。
【0029】コミットデュアレーションロックはトラン
ザクションの終了時点、すなわちコミットまたは打切り
が完了した後にのみ解放される。
ザクションの終了時点、すなわちコミットまたは打切り
が完了した後にのみ解放される。
【0030】ロックマネージャは一つのトランザクショ
ンにより獲得されるすべてのロックを連結する。そのト
ランザクションが終了するとき、保持されたままのすべ
てのコミットおよびマニュアルデュアレーションロック
はロックマネージャへの1回の呼出しで解放される。
ンにより獲得されるすべてのロックを連結する。そのト
ランザクションが終了するとき、保持されたままのすべ
てのコミットおよびマニュアルデュアレーションロック
はロックマネージャへの1回の呼出しで解放される。
【0031】すべてのトランザクションはアクセスしよ
うとする高レベルオブジェクト(例えばテーブル)上の
少くともインテンションロック(たとばISモードにお
いて)を得るものとする。ページがロッキングの内の最
小の細分であるときでも、排(X)ラッチが他のノンロ
ッキングトランザクション(すなわちそのページのリー
ダ)に更新の進行中であることを知らせるために更新ト
ランザクションにより用いられる。これにより、必要な
時に確約されないデータが、それとポインタの有効性の
物理的一致をトランザクションのページの検査前に共用
(S)モードラッチを得られるようにすることにより保
証しつつ読取りうるようにする。ページロッキングより
細い細分についてはすべてのアプデータおよびリーダが
いずれの場合にもそのページの検査前に適正なモードへ
のラッチを行われねばならない。Global Committed LSN36の維持 更新トランザクションは第1の更新を行う直前にBegin
UR(URは「回復ユニット」を意味する)レコード
を書込む。読取専用トランザクションはロギングを行わ
ない。Begin URログレコードのLSNはトランザク
ションのBegin LSNである。一般に、トランザクショ
ンシステムでは回復マネージャまたはトランザクション
マネージャと呼ばれるこのシステムの一要素が各活性ト
ランザクションについて一つのエントリを含むトランザ
クションテーブルを維持する。更新トランザクションに
関連するエントリはそのトランザクションのBegin L
SNを記憶する。これらBegin LSNはGlobal Comm
itted LSN36およびObject Committed LSN
38a,38bを計算するために用いられる。
うとする高レベルオブジェクト(例えばテーブル)上の
少くともインテンションロック(たとばISモードにお
いて)を得るものとする。ページがロッキングの内の最
小の細分であるときでも、排(X)ラッチが他のノンロ
ッキングトランザクション(すなわちそのページのリー
ダ)に更新の進行中であることを知らせるために更新ト
ランザクションにより用いられる。これにより、必要な
時に確約されないデータが、それとポインタの有効性の
物理的一致をトランザクションのページの検査前に共用
(S)モードラッチを得られるようにすることにより保
証しつつ読取りうるようにする。ページロッキングより
細い細分についてはすべてのアプデータおよびリーダが
いずれの場合にもそのページの検査前に適正なモードへ
のラッチを行われねばならない。Global Committed LSN36の維持 更新トランザクションは第1の更新を行う直前にBegin
UR(URは「回復ユニット」を意味する)レコード
を書込む。読取専用トランザクションはロギングを行わ
ない。Begin URログレコードのLSNはトランザク
ションのBegin LSNである。一般に、トランザクショ
ンシステムでは回復マネージャまたはトランザクション
マネージャと呼ばれるこのシステムの一要素が各活性ト
ランザクションについて一つのエントリを含むトランザ
クションテーブルを維持する。更新トランザクションに
関連するエントリはそのトランザクションのBegin L
SNを記憶する。これらBegin LSNはGlobal Comm
itted LSN36およびObject Committed LSN
38a,38bを計算するために用いられる。
【0032】図2、3はGlobal Committed LSN3
6を維持するための好適な方法を示す。以下の説明は図
3における擬似コードを参照している。しかしながら図
2のフローチャートは擬似コードに近似しており、そし
て図2の参照数字は図3の擬似コードライン番号に対応
する。
6を維持するための好適な方法を示す。以下の説明は図
3における擬似コードを参照している。しかしながら図
2のフローチャートは擬似コードに近似しており、そし
て図2の参照数字は図3の擬似コードライン番号に対応
する。
【0033】Global Committes LSN36はシステ
ムが再スタートするとき並びに更新トランザクションの
通常の処理中に計算されねばならない。ライン301〜
305はシステム再スタート時のGlobal Committes
LSN36を計算する。システムの再スタートの完了に
ついて活性トランザクション(ライン301)があるな
らば、活性トランザクションのすべてのBegin LSN
がシステムの回復マネージャ(ライン302)から得ら
れる。Global Committes LSN36は再スタートし
た活性トランザクション(ライン303)のBegin L
SNの最小のものすなわち最低レベルまたは最古の値に
等しい。
ムが再スタートするとき並びに更新トランザクションの
通常の処理中に計算されねばならない。ライン301〜
305はシステム再スタート時のGlobal Committes
LSN36を計算する。システムの再スタートの完了に
ついて活性トランザクション(ライン301)があるな
らば、活性トランザクションのすべてのBegin LSN
がシステムの回復マネージャ(ライン302)から得ら
れる。Global Committes LSN36は再スタートし
た活性トランザクション(ライン303)のBegin L
SNの最小のものすなわち最低レベルまたは最古の値に
等しい。
【0034】システム再スタート時に活性トランザクシ
ョンがない(ライン304)場合にはGlobal Committe
d LSN36は回復ログのEnd of Log LSNに
等しい(ライン305)。システム再スタート後に開始
されるすべてのトランザクションは再スタート時にGlob
al Committed LSN36として記憶されたEnd of Lo
g LSNより高い(すなわち若い)Bagin LSNを
有する。
ョンがない(ライン304)場合にはGlobal Committe
d LSN36は回復ログのEnd of Log LSNに
等しい(ライン305)。システム再スタート後に開始
されるすべてのトランザクションは再スタート時にGlob
al Committed LSN36として記憶されたEnd of Lo
g LSNより高い(すなわち若い)Bagin LSNを
有する。
【0035】更新トランザクションが終了したときGlob
al Committed LSN36がチェックされ、そして必
要であれば再計算される。しかながら、終了するトラン
ザクションがそのとき実行中の最も古いトランザクショ
ンであるときに、すなわちそのBegin LSNがそのと
き存在するGlobal Committed LSN36を決定する
ものであるならば再計算を行わなければならない。もし
そうであれば(ライン311)、次に他の活性更新トラ
ンザクションがあれば(ライン312)、Global Comm
itted LSN36が残りの活性更新トランザクション
のBegin LNSの最小(すなわち最古)のものとして
計算される(ライン313〜314)。他の活性更新ト
ランザクションがなければ(ライン315)、Global
Committed LSN36は回復ログ34の現在のログシ
ーケンス番号であるEnd of Log LSNに等しい値
にセットされる。
al Committed LSN36がチェックされ、そして必
要であれば再計算される。しかながら、終了するトラン
ザクションがそのとき実行中の最も古いトランザクショ
ンであるときに、すなわちそのBegin LSNがそのと
き存在するGlobal Committed LSN36を決定する
ものであるならば再計算を行わなければならない。もし
そうであれば(ライン311)、次に他の活性更新トラ
ンザクションがあれば(ライン312)、Global Comm
itted LSN36が残りの活性更新トランザクション
のBegin LNSの最小(すなわち最古)のものとして
計算される(ライン313〜314)。他の活性更新ト
ランザクションがなければ(ライン315)、Global
Committed LSN36は回復ログ34の現在のログシ
ーケンス番号であるEnd of Log LSNに等しい値
にセットされる。
【0036】Global Committed LSN36は好適に
は共用記憶装置に保持され、Compare & Double Swap 論
理を用いて回復マネージャにより変更される。このよう
に、Global Committes LSN36の値を知る必要の
あるトランザクションは回復マネージャの共用記憶装置
から直接にそれを得ることが出来る。
は共用記憶装置に保持され、Compare & Double Swap 論
理を用いて回復マネージャにより変更される。このよう
に、Global Committes LSN36の値を知る必要の
あるトランザクションは回復マネージャの共用記憶装置
から直接にそれを得ることが出来る。
【0037】Global Committed LSN36はログの
その時点の前にログされたすべての更新がすでに確約さ
れたものにする。Global Committed LSN後にログ
される他の更新の或るものも確約されたものとすること
が出来る。トランザクションが後のこれらの更新(すな
わちGlobal Committed LSNより大または等しいL
SNを有する更新)の内のどれが確約されたかを決定し
たいときには別の処理が必要である。Object Committed LSN38a,38bの維持 1つのGlobal Committed LSN36を用いる代りに
トランザクションはアクセスされるべきオブジェクトに
ついて特定のObject Committed LSN38a,38
bを計算することにより更に利点を得ることが出来る。
このように過去においてかなり他のオブジェクトにアク
セスしてGlobal Committed LSN36を保持する長
時間の更新トランザクションは本発明の特定のデータオ
ブジェクトに対する適用性を制限するものではない。
その時点の前にログされたすべての更新がすでに確約さ
れたものにする。Global Committed LSN後にログ
される他の更新の或るものも確約されたものとすること
が出来る。トランザクションが後のこれらの更新(すな
わちGlobal Committed LSNより大または等しいL
SNを有する更新)の内のどれが確約されたかを決定し
たいときには別の処理が必要である。Object Committed LSN38a,38bの維持 1つのGlobal Committed LSN36を用いる代りに
トランザクションはアクセスされるべきオブジェクトに
ついて特定のObject Committed LSN38a,38
bを計算することにより更に利点を得ることが出来る。
このように過去においてかなり他のオブジェクトにアク
セスしてGlobal Committed LSN36を保持する長
時間の更新トランザクションは本発明の特定のデータオ
ブジェクトに対する適用性を制限するものではない。
【0038】そのようなObject Committed LSN3
8a,38bを維持するための方法を図4、5に示す。
図2、3におけるように図4のフローチャートにおける
参照数字は図5の擬似コードライン番号に対応する。
8a,38bを維持するための方法を図4、5に示す。
図2、3におけるように図4のフローチャートにおける
参照数字は図5の擬似コードライン番号に対応する。
【0039】計算すべきObject Committed LSN3
8a,38bをもつオブジェクトについての高レベルの
ロックが第1ステップとして得られなくてはならない。
これは一般に高レベルオブジェクトについてのISロッ
クを用いて行われる(ライン501)。次に現在のEnd
of Log LSNが、オブジェクトを更新する新しい
トランザクションが計算されたObject Committed L
SN38a,38bを歪ませないようにするために記憶
される。
8a,38bをもつオブジェクトについての高レベルの
ロックが第1ステップとして得られなくてはならない。
これは一般に高レベルオブジェクトについてのISロッ
クを用いて行われる(ライン501)。次に現在のEnd
of Log LSNが、オブジェクトを更新する新しい
トランザクションが計算されたObject Committed L
SN38a,38bを歪ませないようにするために記憶
される。
【0040】計算されているObject Committed LS
N38a,38bについてのオブジェクトにアクセスす
る活性更新トランザクションがあれば(ライン50
3)、それらのBegin LSNが回復マネージャから得
られ(ライン504)、そして最小(すなわち最古)の
Begin LSNが計算される(ライン505)。そのよ
うなものがない場合には「無限」値が記憶される(ライ
ン507)。
N38a,38bについてのオブジェクトにアクセスす
る活性更新トランザクションがあれば(ライン50
3)、それらのBegin LSNが回復マネージャから得
られ(ライン504)、そして最小(すなわち最古)の
Begin LSNが計算される(ライン505)。そのよ
うなものがない場合には「無限」値が記憶される(ライ
ン507)。
【0041】Object Committed LSN38a,38
bは記憶された現在のEnd of Log LSNの最小
(最古)のものおよびそのオブジェクトの活性更新トラ
ンザクションのBegin LSNとして計算される。その
ような活性トランザクションがないならば、Object Co
mmitted LSN38a,38bは回復ログ34のEnd o
f Log LSNにセットされる。ラッチング 従来、ロックは一つのトランザクションによりアクセス
されるべきデータページ33が現在確約された状態にあ
るかどうかを決定するために用いられる。特定のページ
をラッチしそしてそのPage LSN35を本発明のComm
itted LSNに比較することにより、トランザクショ
ンがロッキングを用いることなくそのページが実際に確
約されるかどうかを決定出来る。そのページが確約され
ればそのトランザクションは直ちにそのデータをアクセ
スしてラッチを解放しうる。
bは記憶された現在のEnd of Log LSNの最小
(最古)のものおよびそのオブジェクトの活性更新トラ
ンザクションのBegin LSNとして計算される。その
ような活性トランザクションがないならば、Object Co
mmitted LSN38a,38bは回復ログ34のEnd o
f Log LSNにセットされる。ラッチング 従来、ロックは一つのトランザクションによりアクセス
されるべきデータページ33が現在確約された状態にあ
るかどうかを決定するために用いられる。特定のページ
をラッチしそしてそのPage LSN35を本発明のComm
itted LSNに比較することにより、トランザクショ
ンがロッキングを用いることなくそのページが実際に確
約されるかどうかを決定出来る。そのページが確約され
ればそのトランザクションは直ちにそのデータをアクセ
スしてラッチを解放しうる。
【0042】一般にラッチはデータの物理的一致を保証
するために用いられ、ロックはデータの論理的一致を保
証するために用いられる。デッドロック検出器はラッチ
待機を知らされず、それ故ラッチはラッチのみに関す
る、あるいはラッチとロックに関するデッドロックを回
避するために必要である。ラッチは一般にロックより保
持時間が短い。
するために用いられ、ロックはデータの論理的一致を保
証するために用いられる。デッドロック検出器はラッチ
待機を知らされず、それ故ラッチはラッチのみに関す
る、あるいはラッチとロックに関するデッドロックを回
避するために必要である。ラッチは一般にロックより保
持時間が短い。
【0043】基本的にはロックとラッチは同様に(例え
ばIBM/370コンペアアンドスワップタイプインス
トラクションを用いることにより)行われる。それらに
ついて記憶管理において主たる相異がある。ラッチを表
わすデータ構造用のスペースはラッチの数がデータベー
ス内のロック可能なオブジェクトの数よりかなり少いか
ら静的に割り振られる。その結果、与えられたラッチ用
のデータ構造は直接にアドレス可能である(例えばペー
ジラッチについてはラッチデータ構造はそのページのバ
ッファバージョンを記述するバッファ制御ブロックの部
分である)。
ばIBM/370コンペアアンドスワップタイプインス
トラクションを用いることにより)行われる。それらに
ついて記憶管理において主たる相異がある。ラッチを表
わすデータ構造用のスペースはラッチの数がデータベー
ス内のロック可能なオブジェクトの数よりかなり少いか
ら静的に割り振られる。その結果、与えられたラッチ用
のデータ構造は直接にアドレス可能である(例えばペー
ジラッチについてはラッチデータ構造はそのページのバ
ッファバージョンを記述するバッファ制御ブロックの部
分である)。
【0044】ラッチを得ることはロックを得ることより
安価であり(ノンコンフリクトの場合には数百インスト
ラクションに対する数十インストラクション)。その理
由はラッチ制御情報は常に固定位置における仮想メモリ
にあり、ラッチ情報への直接のアドレスの可能性がラッ
チネームを与えれば可能であるからである。各トラナン
ザクションは同時にせいぜい2または3ラッチを保持す
るから、ラッチ要求ブロックは各トランザクションに永
久的に割り振られ、トランザクションID等により、動
的に割り振られるのではなくそのトランザクションのス
タート時に初期化されうる。これはラッチを得るのに関
するオーバーヘッドを最少にする。他方、ロック要求ブ
ロックは永久的に割り振ることが出来ず、異なるトラン
ザクションにより同時に保持されるロックの数が広い範
囲で変わり得るから動的に割り振られねばならない。こ
れらの理由によりラッチはロックより高速となる。
安価であり(ノンコンフリクトの場合には数百インスト
ラクションに対する数十インストラクション)。その理
由はラッチ制御情報は常に固定位置における仮想メモリ
にあり、ラッチ情報への直接のアドレスの可能性がラッ
チネームを与えれば可能であるからである。各トラナン
ザクションは同時にせいぜい2または3ラッチを保持す
るから、ラッチ要求ブロックは各トランザクションに永
久的に割り振られ、トランザクションID等により、動
的に割り振られるのではなくそのトランザクションのス
タート時に初期化されうる。これはラッチを得るのに関
するオーバーヘッドを最少にする。他方、ロック要求ブ
ロックは永久的に割り振ることが出来ず、異なるトラン
ザクションにより同時に保持されるロックの数が広い範
囲で変わり得るから動的に割り振られねばならない。こ
れらの理由によりラッチはロックより高速となる。
【0045】ラッチはSおよびXモードで得られ、条件
付であり、変化するデュアレーション(コミットデュア
レーションが許されないことを除く)を有することが出
来る。これらのオブジェクトは上述のフルスケールロッ
クについてと同じ意味を有する。
付であり、変化するデュアレーション(コミットデュア
レーションが許されないことを除く)を有することが出
来る。これらのオブジェクトは上述のフルスケールロッ
クについてと同じ意味を有する。
【0046】本発明において用いられるデータページの
ラッチを得る方法を図8、9に示してあり、図8のフロ
ーチャートの参照番号は図9の擬似ライン番号に対応す
る。
ラッチを得る方法を図8、9に示してあり、図8のフロ
ーチャートの参照番号は図9の擬似ライン番号に対応す
る。
【0047】一つのトランザクションが一つのページの
ラッチを要求するときは、まずそのページをバッファプ
ールに固定し(ライン901)そしてそのページについ
てのラッチ制御ブロックを読取る必要がある(ライン9
02)。
ラッチを要求するときは、まずそのページをバッファプ
ールに固定し(ライン901)そしてそのページについ
てのラッチ制御ブロックを読取る必要がある(ライン9
02)。
【0048】もし他のトランザクションがすでにそのペ
ージについてラッチを保持していれば、ラッチ制御ブロ
ックの「Existing Mode」フィールドは値「Held」に等
しい(ライン907)。もしそうでなければラッチは直
ちに許可される(ライン915)。
ージについてラッチを保持していれば、ラッチ制御ブロ
ックの「Existing Mode」フィールドは値「Held」に等
しい(ライン907)。もしそうでなければラッチは直
ちに許可される(ライン915)。
【0049】1以上のラッチが他のトランザクションに
よりそのページに現在保持されるならば、要求トランザ
クションはまず他のトランザクションが現在のラッチホ
ルダを除きそれら自体のラッチを待っているかどうかを
チェックしなけばならない(ライン908)。もしその
ような待機トランザクションがあれば、要求トランザク
ションはそれ自体を待機トランザクションのリストに加
える(ライン913)。
よりそのページに現在保持されるならば、要求トランザ
クションはまず他のトランザクションが現在のラッチホ
ルダを除きそれら自体のラッチを待っているかどうかを
チェックしなけばならない(ライン908)。もしその
ような待機トランザクションがあれば、要求トランザク
ションはそれ自体を待機トランザクションのリストに加
える(ライン913)。
【0050】そのページについてラッチを待っている他
のトランザクションがなければ、要求トランザクション
を希望するラッチが現在ページに保持されているラッチ
と両立しうる場合(ライン909)には、要求トランザ
クションのラッチが直ちに許可される(ライン91
5)。
のトランザクションがなければ、要求トランザクション
を希望するラッチが現在ページに保持されているラッチ
と両立しうる場合(ライン909)には、要求トランザ
クションのラッチが直ちに許可される(ライン91
5)。
【0051】要求トランザクションの希望するラッチが
そのページについて現存するラッチと両立せず、そして
他の待機トランザクションがなければ、要求トランザク
ションはそれ自体を第1で唯一のエントリとして(ライ
ン913)待機トランザクションリストをつくらねばな
らない(ライン912)。
そのページについて現存するラッチと両立せず、そして
他の待機トランザクションがなければ、要求トランザク
ションはそれ自体を第1で唯一のエントリとして(ライ
ン913)待機トランザクションリストをつくらねばな
らない(ライン912)。
【0052】要求トランザクションがそれ自体を待機ト
ランザクションに加えたならば、その要求するラッチが
許可されるまで待機しなくてはならない(ライン91
4)。待機トランザクションは現存するラッチホルダに
より待機しているラッチが許可されることを知らされ
る。この時点で待機トランザクションは呼び出されラッ
トチが許可される(ライン915)。Committed LSN36,38a,38bを用いてのペー
ジアクセス 本発明のCommitted LSN36,38a,38bを用
いてデータページ33をアクセスする方法を図6、7に
示す。まず、読取られるべきページはバッファプールに
固定され(ライン701)、それ故トランザクションが
その読取の準備を行う間動くことが出来ない。バッファ
プール内のそのページのアドレスは記憶され(ライン7
02)そしてそのページが共用「S」モードでラッチさ
れる(ライン703)。
ランザクションに加えたならば、その要求するラッチが
許可されるまで待機しなくてはならない(ライン91
4)。待機トランザクションは現存するラッチホルダに
より待機しているラッチが許可されることを知らされ
る。この時点で待機トランザクションは呼び出されラッ
トチが許可される(ライン915)。Committed LSN36,38a,38bを用いてのペー
ジアクセス 本発明のCommitted LSN36,38a,38bを用
いてデータページ33をアクセスする方法を図6、7に
示す。まず、読取られるべきページはバッファプールに
固定され(ライン701)、それ故トランザクションが
その読取の準備を行う間動くことが出来ない。バッファ
プール内のそのページのアドレスは記憶され(ライン7
02)そしてそのページが共用「S」モードでラッチさ
れる(ライン703)。
【0053】そのページについてObject Committed
LSN38a,38bがあれば(ライン704)、それ
はそのページのPage LSNと比較されるべきCommitte
d LSN(ライン705)として使用される。そうでな
ければGlobal Commtted LSN36が用いられる(ライ
ン706〜707)。ページのPage LSNがこの比較
(ライン709)で用いられた(Cmmitted LSNより
大(若い)が等しいならば、そのページのデータのいく
分かが確約されず、そしてそのページはロックしなけれ
ばならない(ライン710)。その他の場合にはロック
は不要である(ライン711〜712)。
LSN38a,38bがあれば(ライン704)、それ
はそのページのPage LSNと比較されるべきCommitte
d LSN(ライン705)として使用される。そうでな
ければGlobal Commtted LSN36が用いられる(ライ
ン706〜707)。ページのPage LSNがこの比較
(ライン709)で用いられた(Cmmitted LSNより
大(若い)が等しいならば、そのページのデータのいく
分かが確約されず、そしてそのページはロックしなけれ
ばならない(ライン710)。その他の場合にはロック
は不要である(ライン711〜712)。
【0054】次にこのページが読取られ(ライン71
3)、そして必要であれば(ライン714)アンロック
され、このラッチが解放される(ライン715)。例 回復ログ34、Global Committed LSN36および
Object Committed LSN38a,38bの例を図10
に示す。図11はトランザクションテーブルの一例を示
す。これら例に示す値は図1のシステム図に示す値に対
応する。
3)、そして必要であれば(ライン714)アンロック
され、このラッチが解放される(ライン715)。例 回復ログ34、Global Committed LSN36および
Object Committed LSN38a,38bの例を図10
に示す。図11はトランザクションテーブルの一例を示
す。これら例に示す値は図1のシステム図に示す値に対
応する。
【0055】この例はファイルのようなPとSで識別さ
れ、そしてバッファプール32内にページP1〜P4と
S1〜S4を有する2つのデータオブジェクトを示す。
れ、そしてバッファプール32内にページP1〜P4と
S1〜S4を有する2つのデータオブジェクトを示す。
【0056】この例は回復ログ34のEnd of Log
LSNが160のときのシステムの状態を示す。この時
点で更新トランザクションT2とT3は活性であり、ト
ランザクションT1とT4の更新が確約されている。
LSNが160のときのシステムの状態を示す。この時
点で更新トランザクションT2とT3は活性であり、ト
ランザクションT1とT4の更新が確約されている。
【0057】トランザクションT1は時点LSN20に
おいてページP1を、LSN30でページP2を、LS
N60でページP3を更新した。これら更新は回復ログ
34にログされそしてこれら更新のLSNがバッファプ
ール32にこのページのPage LSN35として記憶され
た。トランザクションT1が確約しそしてLSN70で
終了した。
おいてページP1を、LSN30でページP2を、LS
N60でページP3を更新した。これら更新は回復ログ
34にログされそしてこれら更新のLSNがバッファプ
ール32にこのページのPage LSN35として記憶され
た。トランザクションT1が確約しそしてLSN70で
終了した。
【0058】トランザクションT2はLSN40で開始
し、LSN50でページS1を更新し、そして現在のL
SN160まで走行を持続する。このトランザクション
T2はまだ未確約のトランザクションの内の最も古いも
のであるから、この時点でのシステムのGlobal Commit
ted LSN36はトランザクションT2の、40であ
るBegin LSNに等しい。LSN50におけるページ
S1へのトランザクションT2の更新はページS1のPa
ge LSNに反映する。しかしながら、LSN80にお
けるトランザクションT2のページS1への更新はLS
N150におけるトランザクションT4のページS2に
対する更新によりスーパーシード(supercede)されてお
り、それ故ページS2のPage LSNは150に等し
い。トランザクションT2のページS3とS4への更新
は夫々それらページのPage LSN90と120に反映
される。ページS5へのトランザクションT2の更新は
LSN140でログされる。
し、LSN50でページS1を更新し、そして現在のL
SN160まで走行を持続する。このトランザクション
T2はまだ未確約のトランザクションの内の最も古いも
のであるから、この時点でのシステムのGlobal Commit
ted LSN36はトランザクションT2の、40であ
るBegin LSNに等しい。LSN50におけるページ
S1へのトランザクションT2の更新はページS1のPa
ge LSNに反映する。しかしながら、LSN80にお
けるトランザクションT2のページS1への更新はLS
N150におけるトランザクションT4のページS2に
対する更新によりスーパーシード(supercede)されてお
り、それ故ページS2のPage LSNは150に等し
い。トランザクションT2のページS3とS4への更新
は夫々それらページのPage LSN90と120に反映
される。ページS5へのトランザクションT2の更新は
LSN140でログされる。
【0059】データオブジェクトSについてのObject
Committed LSN38a,38bはオブジェクトSを
更新する最も古い未確約トランザクション、この例では
トランザクションT2により決定される。現在のEnd
of Log LSN160までトランザクションT3はま
だ確約されていないからデータオブジェクトPを更新す
るトランザクションT3は同様にこの例では100に等
しいそのオブジェクトについてのObject Committed
LSN38a,38bをトランザクションT3のBegin
LSNとして決定する。
Committed LSN38a,38bはオブジェクトSを
更新する最も古い未確約トランザクション、この例では
トランザクションT2により決定される。現在のEnd
of Log LSN160までトランザクションT3はま
だ確約されていないからデータオブジェクトPを更新す
るトランザクションT3は同様にこの例では100に等
しいそのオブジェクトについてのObject Committed
LSN38a,38bをトランザクションT3のBegin
LSNとして決定する。
【0060】ページP4とS2を更新したトランザクシ
ョンT4はLSN160で確約されるページ2へのトラ
ンザクションT2の更新後に生じるそのページの更新は
ここに150で示すページS2のPage LSNを決定す
る。
ョンT4はLSN160で確約されるページ2へのトラ
ンザクションT2の更新後に生じるそのページの更新は
ここに150で示すページS2のPage LSNを決定す
る。
【0061】ここではT2とT3であるまだ未確約のト
ランザクションのすべてのトランザクションIDとBegi
n LSNは図11に示してある。図11はまたLSN
40に等しいシステムのGlobal Committed LSN3
6とシステムのObject Committed LSNテーブル3
8a,38bを示す。図1に示すようにこれらテーブル
はコンピュータメモリ30に記憶され、システムの回復
マネージャにより好適には維持される。
ランザクションのすべてのトランザクションIDとBegi
n LSNは図11に示してある。図11はまたLSN
40に等しいシステムのGlobal Committed LSN3
6とシステムのObject Committed LSNテーブル3
8a,38bを示す。図1に示すようにこれらテーブル
はコンピュータメモリ30に記憶され、システムの回復
マネージャにより好適には維持される。
【0062】マルチシステムトランザクション処理シス
テムではデータは個々のデータベース管理システム間で
共用され(これは「データ共用」すなわちDSシステム
と呼ばれる)るか、あるいはデータはシステム間で区分
される(「ノンデータ共用」すなわちNDSシステムと
して知られる)。データ共用システムではディスクがデ
ータベース管理システム(DBNS)の多数のインスタ
ンスにより共用されるが、各DBMSインスタンスはそ
れ自体のバッファプールとグローバルロックを有し、そ
してバッファコヒーレンシィプロトコルがデータベース
内のデータの任意のものを読取り変更するシステムの能
力にも拘らずデータの一致性を保存するために必要であ
る。ノンデータ共用システムでは各システムはデータベ
ース内のデータの一部のみの直接読取と変更が可能であ
る。
テムではデータは個々のデータベース管理システム間で
共用され(これは「データ共用」すなわちDSシステム
と呼ばれる)るか、あるいはデータはシステム間で区分
される(「ノンデータ共用」すなわちNDSシステムと
して知られる)。データ共用システムではディスクがデ
ータベース管理システム(DBNS)の多数のインスタ
ンスにより共用されるが、各DBMSインスタンスはそ
れ自体のバッファプールとグローバルロックを有し、そ
してバッファコヒーレンシィプロトコルがデータベース
内のデータの任意のものを読取り変更するシステムの能
力にも拘らずデータの一致性を保存するために必要であ
る。ノンデータ共用システムでは各システムはデータベ
ース内のデータの一部のみの直接読取と変更が可能であ
る。
【0063】ノンデータ共用(NDS)システムは、N
DSではバッファプール内にデータのせいぜい1つのコ
ピーのみが存在するために本発明の利点を得るものであ
る。Committed LSN36,38a,38bは他のシ
ステムとは無関係に夫々のシステムにより決定しうる。
DSではバッファプール内にデータのせいぜい1つのコ
ピーのみが存在するために本発明の利点を得るものであ
る。Committed LSN36,38a,38bは他のシ
ステムとは無関係に夫々のシステムにより決定しうる。
【0064】データ共用(DS)システムでは各システ
ムはシステムのすべてについての最小Committed LS
Nを決定するために他のシステムを同期的にポーリング
する必要がある(これを効率よく行うには種々の方法が
ある)。しかしながら時間遅れのCommitted LSNを
用いることは可能である。最悪の場合でもこれは不要な
ロックを生じさせるだけであり、確約されないデータは
決して読取られることはない。DSでは異なったバッフ
ァプール内に夫々のページの2以上のコピーがありうる
から、与えられたシステムが与えられたページの最後の
バージョンをすでに知っていないかぎり本発明の利用性
は低下する。DSはNDSと比較してページロックが行
われる時不利となるが、本発明を適用しないDSに比較
するとまだ良い。
ムはシステムのすべてについての最小Committed LS
Nを決定するために他のシステムを同期的にポーリング
する必要がある(これを効率よく行うには種々の方法が
ある)。しかしながら時間遅れのCommitted LSNを
用いることは可能である。最悪の場合でもこれは不要な
ロックを生じさせるだけであり、確約されないデータは
決して読取られることはない。DSでは異なったバッフ
ァプール内に夫々のページの2以上のコピーがありうる
から、与えられたシステムが与えられたページの最後の
バージョンをすでに知っていないかぎり本発明の利用性
は低下する。DSはNDSと比較してページロックが行
われる時不利となるが、本発明を適用しないDSに比較
するとまだ良い。
【0065】以上本発明の特定の実施例について述べた
が種々の変更が可能である。特に、Global Committed
LSNを維持する際に、それがしばしば必要となるの
でなければ必要なときにのみそれを計算した方がコスト
的に有利である。Global Committed LSNの連続的
なトラッキングを行うための方法は種々ある。回復マネ
ージャは現在活性な更新トランザクションのBegin L
SNのトラックを維持するために優先権待ち行列を用い
てもよい。あるいは回復マネージャは経過時間、更新ト
ランザクションの終了回数、ログの量等により、規則的
なインターバルをもってGlobal Committed LSNを計
算してもよい。
が種々の変更が可能である。特に、Global Committed
LSNを維持する際に、それがしばしば必要となるの
でなければ必要なときにのみそれを計算した方がコスト
的に有利である。Global Committed LSNの連続的
なトラッキングを行うための方法は種々ある。回復マネ
ージャは現在活性な更新トランザクションのBegin L
SNのトラックを維持するために優先権待ち行列を用い
てもよい。あるいは回復マネージャは経過時間、更新ト
ランザクションの終了回数、ログの量等により、規則的
なインターバルをもってGlobal Committed LSNを計
算してもよい。
【0066】Object Committed LSNを維持する他
の方法は各トランザクション及びそれが更新する各オブ
ジェクトについて、そのオブジェクトに対しトランザク
ションがなす第1更新のログレコードのLSNの下限を
トラックすることである。この情報はそのオブジェクト
に関連する仮想記憶記述子情報内に維持することが出来
る。この場合Object Committed LSNを必要とする
トランザクションはCommitted LSNとしてトラック
されたLSN値の最小値とEnd of Log LSNを用
いることが出来る。このようにして計算されるCommitte
d LSNは上記の実施例から得られる値より大きいか
あるいは等しいことになる。
の方法は各トランザクション及びそれが更新する各オブ
ジェクトについて、そのオブジェクトに対しトランザク
ションがなす第1更新のログレコードのLSNの下限を
トラックすることである。この情報はそのオブジェクト
に関連する仮想記憶記述子情報内に維持することが出来
る。この場合Object Committed LSNを必要とする
トランザクションはCommitted LSNとしてトラック
されたLSN値の最小値とEnd of Log LSNを用
いることが出来る。このようにして計算されるCommitte
d LSNは上記の実施例から得られる値より大きいか
あるいは等しいことになる。
【0067】本発明はデータベースのすべてのページに
対するログ変更を行わず、ページ見出しにPage LSN
を記憶しないトランザクションシステム内でのワークに
拡張しうる。そのようなシステムでは、更新された各ペ
ージを得るために最も最近のトランザクションのトラッ
クを維持し、ロッキングを減少するために上述のGlobal
Committed LSNまたはObject Committed LS
Nと比較してのPagd LSNと同様にこの情報を用いるシ
ステムが必要である。
対するログ変更を行わず、ページ見出しにPage LSN
を記憶しないトランザクションシステム内でのワークに
拡張しうる。そのようなシステムでは、更新された各ペ
ージを得るために最も最近のトランザクションのトラッ
クを維持し、ロッキングを減少するために上述のGlobal
Committed LSNまたはObject Committed LS
Nと比較してのPagd LSNと同様にこの情報を用いるシ
ステムが必要である。
【0068】本発明はページロッキングトランザクショ
ン処理システムに有用であるのみにならず、レコードレ
ベルロッキングシステムのように下位の細分化ロッキン
グを使用する場合にも等しく(あるいはそれ以上に)有
用である。また本発明はシャドーページングおよびロギ
ングを用いるシステムのような書込アヘッドロギングを
用いないシステムにも有用である。
ン処理システムに有用であるのみにならず、レコードレ
ベルロッキングシステムのように下位の細分化ロッキン
グを使用する場合にも等しく(あるいはそれ以上に)有
用である。また本発明はシャドーページングおよびロギ
ングを用いるシステムのような書込アヘッドロギングを
用いないシステムにも有用である。
【図1】本発明のトランザクション処理システムのブロ
ック図であって、特に本発明により使用されるバッファ
プールおよび回復ログを示す図。
ック図であって、特に本発明により使用されるバッファ
プールおよび回復ログを示す図。
【図2】Global Committed LSNを初期化し維持す
るための方法のフローチャート。
るための方法のフローチャート。
【図3】図2のフローチャートに対応する擬似コードを
示す図。
示す図。
【図4】Object Committed LSNを初期化し維持す
る方法のフローチャート。
る方法のフローチャート。
【図5】図4のフローチャートに対応する擬似コードを
示す図。
示す図。
【図6】Committed LSNを用いるページのアクセス
方法のフローチャート。
方法のフローチャート。
【図7】図6のフローチャートに対応する擬似コードを
示す図。
示す図。
【図8】ページにラッチを得る方法を示すフローチャー
ト。
ト。
【図9】図8のフローチャートに対応する擬似コードを
示す図。
示す図。
【図10】本発明のGlobal Committed LSNおよび
Object Committed LSNを用いる回復ログの一例を
示す図。
Object Committed LSNを用いる回復ログの一例を
示す図。
【図11】トランザクションおよびCommitted LSN
の一例を示す図。
の一例を示す図。
20 トランザクション処理システム
22 コンピュータ
24 ディスクメモリ
26 自動テラーマシン(ATM)
28 CPU
30 揮発性メモリ
32 バッファプール
33 ページ
34 回復ログ
35 Page LSN
36 Global Committed LSN
38a Object Committed LSN
38b Object Committed LSN
Claims (15)
- 【請求項1】夫々データユニットの最も新しい変更の時
より後ではない時点を反映する識別子により識別される
2以上のデータユニットを有するコンピュータ化データ
処理システムにおいて、コンピュータにより行われるべ
き下記(a)〜(d)のステップを含む2以上のプロセ
スの内の選ばれた一つのプロセスにより上記データユニ
ットの選ばれた一つのデータユニットにアクセスするト
ランザクション処理方法: (a) 上記データユニットの内の少くともいくつか
の、その時最も古い処理中の変更を少くとも同じ古さに
反映する第2識別子を維持するステップ; (b) 上記第2識別子を上記選択されたデータユニッ
トの識別子と比較するステップ; (c) 上記選択されたデータユニットの識別子が上記
第2識別子より古くない時よりもこの選択されたデータ
ユニットの識別子が第2識別子より古いときにより少い
コンピュータインストラクションを用いて、データユニ
ットへの他のプロセスのアクセスと両立しうるように上
記選択されたプロセスについてのデータユニットに対す
るアクセスを得るステップ;および (d) この選択されたプロセスによりそのデータユニ
ットを読取るステップ。 - 【請求項2】前記第2識別子は前記データユニット全体
についてそのとき最も古い処理中の変更を識別する請求
項1記載の方法。 - 【請求項3】前記第2識別子は前記選択されたデータユ
ニットを含むデータユニットサブセットのそのとき最も
古い処理中の変更を識別する請求項1記載の方法。 - 【請求項4】アクセスを得るための前記ステップ(c)
は前記選択されたデータユニットの識別子が前記第2識
別子より古いときにそのデータユニットをラッチし、上
記選択されたデータユニットの識別子が第2識別子より
古くはないときそのデータユニットをロックするステッ
プを含み、上記ラッチは上記ロックより少いコンピュー
タインストラクションを含んでいる請求項1記載の方
法。 - 【請求項5】前記データユニットはデータページを含ん
でいる請求項1記載の方法。 - 【請求項6】前記データユニットはデータレコードを含
み、複数のそのようなレコードが1つのデータページに
含まれている請求項1記載の方法。 - 【請求項7】前記選択されたデータユニットの識別子は
回復ログのシーケンス番号を含んでいる請求項1記載の
方法。 - 【請求項8】前記データユニットはすべての試みられた
変更を行うかあるいは変更を行わないプロセスにより変
更される請求項1記載の方法。 - 【請求項9】前記第2識別子は変更プロセス毎に更新さ
れる請求項8記載の方法。 - 【請求項10】夫々のデータユニットの最も新しい変更
時より古くはない時を反映する識別子手段により識別さ
れる2以上のデータユニットを含むと共にアクセスが得
られているデータユニットを読取る手段を含むデータ処
理システムにおいて、下記(a)〜(c)の手段を備え
たトランザクション処理システム: (a) 上記データユニットの内の少くともいくつかの
その時最も古い処理中の変更と少くとも同程度に古い時
を反映する第2識別子を維持する手段; (b) この第2識別子を上記データユニット識別子手
段と比較する手段;および (c) 上記選択されたデータユニットの識別子が上記
第2識別子より古くない場合よりも上記選択されたデー
タユニットの識別子が上記第2識別子より古い場合に、
より少いコンピュータインストラクションを含んでい
る、データユニットへの他のプロセスのアクセスと両立
しうるように上記選択されたプロセスについてのデータ
ユニットへのアクセスを得るための手段。 - 【請求項11】前記アクセスを得るための手段は前記選
択されたデータユニットの識別子が前記第2識別子より
古いときデータユニットをラッチするためのコンピュー
タインストラクションと、この選択されたデータユニッ
トの識別子が上記第2識別子より古くはないときデータ
ユニットをロックするためのコンピュータインストラク
ションとを含み、上記ラッチ用コンピュータインストラ
クションは上記ロック用コンピュータインストラクショ
ンより少数である請求項10記載のシステム。 - 【請求項12】前記データユニット識別子手段は回復ロ
グシーケンス番号を含んでいる請求項10記載のシステ
ム。 - 【請求項13】夫々データユニットの最終変更の時より
古くはない時を反映する識別子手段により識別される2
以上のデータユニットを含むデータ処理システムに用い
るための、下記(a)〜(d)の手段を含むコンピュー
タプログラム(磁気等の媒体に記録される): (a) 上記データユニットの内の少くともいくつか
の、その時最も古い処理中の変更と少くとも同じ程度に
古い時を反映する第2識別子を維持する手段; (b) 第2識別子をデータユニット識別子手段と比較
する手段; (c) 選択されたデータユニットの識別子が第2識別
子より古くはない場合よりもその選択されたデータユニ
ットの識別子が第2識別子より古い場合に、より少いコ
ンピュータインストラクションを含む、データユニット
への他のプロセスのアクセスと両立しうるように選択さ
れたプロセスについてのデータユニットへのアクセスを
得る手段;および (d) 上記データユニットを読取る手段。 - 【請求項14】前記アクセスを得る手段は前記選択され
たデータユニットの識別子が前記第2識別子より古いと
きデータユニットをラッチするコンピュータインストラ
クションと、上記選択されたデータユニットの識別子が
上記第2識別子より古くはないときにデータユニットを
ラッチするコンピュータインストラクションとを含み、
上記ラッチ用コンピュータインストラクションは上記ロ
ック用コンピュータインストラクションより少数である
請求項13記載のプログラム。 - 【請求項15】前記データユニット識別子手段は回復ロ
グシーケンス番号を含んでいる請求項13記載のプログ
ラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/480,700 US5247672A (en) | 1990-02-15 | 1990-02-15 | Transaction processing system and method with reduced locking |
US480700 | 1990-02-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH056297A true JPH056297A (ja) | 1993-01-14 |
JPH0679285B2 JPH0679285B2 (ja) | 1994-10-05 |
Family
ID=23908989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3012822A Expired - Fee Related JPH0679285B2 (ja) | 1990-02-15 | 1991-01-09 | トランザクション処理方法およびシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5247672A (ja) |
EP (1) | EP0442715B1 (ja) |
JP (1) | JPH0679285B2 (ja) |
DE (1) | DE69128367T2 (ja) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04284548A (ja) * | 1991-03-14 | 1992-10-09 | Nec Corp | データベース排他制御方式 |
US5408653A (en) * | 1992-04-15 | 1995-04-18 | International Business Machines Corporation | Efficient data base access using a shared electronic store in a multi-system environment with shared disks |
JP2758311B2 (ja) * | 1992-05-28 | 1998-05-28 | 富士通株式会社 | 複合システムにおけるログファイル制御方式 |
US5414839A (en) * | 1992-06-19 | 1995-05-09 | Digital Equipment Corporation | Hybrid lock escalation and de-escalation protocols |
JP2842738B2 (ja) * | 1992-08-25 | 1999-01-06 | 富士通株式会社 | オンライン処理システム |
US5495601A (en) * | 1992-12-11 | 1996-02-27 | International Business Machines Corporation | Method to off-load host-based DBMS predicate evaluation to a disk controller |
JP2583010B2 (ja) * | 1993-01-07 | 1997-02-19 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法 |
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 |
JP3512439B2 (ja) * | 1993-07-08 | 2004-03-29 | 富士通株式会社 | チェックイン・チェックアウトモデルにおける施錠方式 |
US5615373A (en) * | 1993-08-26 | 1997-03-25 | International Business Machines Corporation | Data lock management in a distributed file server system determines variable lock lifetime in response to request to access data object |
US5544325A (en) * | 1994-03-21 | 1996-08-06 | International Business Machines Corporation | System and method for generating messages for use in transaction networks |
US5546579A (en) * | 1994-05-02 | 1996-08-13 | International Business Machines Corporation | Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store |
US5574902A (en) * | 1994-05-02 | 1996-11-12 | International Business Machines Corporation | Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store |
JP3699733B2 (ja) * | 1994-08-10 | 2005-09-28 | 株式会社日立製作所 | タプル単位排他制御方式 |
FR2727222B1 (fr) * | 1994-11-21 | 1996-12-27 | Cit Alcatel | Protocole transactionnel, et systeme pour la mise en oeuvre de ce protocole |
WO1996023269A1 (en) * | 1995-01-23 | 1996-08-01 | Tandem Computers Incorporated | System for maintenance of database integrity |
US5745747A (en) * | 1995-02-06 | 1998-04-28 | International Business Machines Corporation | Method and system of lock request management in a data processing system having multiple processes per transaction |
JP3516362B2 (ja) * | 1995-03-01 | 2004-04-05 | 富士通株式会社 | 共有データ処理装置及び共有データ処理システム |
US6009433A (en) * | 1995-04-14 | 1999-12-28 | Kabushiki Kaisha Toshiba | Information storage and information transmission media with parental control |
US5813010A (en) * | 1995-04-14 | 1998-09-22 | Kabushiki Kaisha Toshiba | Information storage and information transmission media with parental control |
US5713017A (en) * | 1995-06-07 | 1998-01-27 | International Business Machines Corporation | Dual counter consistency control for fault tolerant network file servers |
US5960194A (en) * | 1995-09-11 | 1999-09-28 | International Business Machines Corporation | Method for generating a multi-tiered index for partitioned data |
KR0152714B1 (ko) * | 1995-12-06 | 1998-10-15 | 양승택 | 다중 사용자 환경의 저장시스템에서 버퍼 잠금기법을 이용한 버퍼 관리방법 |
US5870743A (en) * | 1996-06-24 | 1999-02-09 | Oracle Corporation | Method and apparatus for parallelizing operations that create a table |
US7480653B2 (en) * | 1996-10-22 | 2009-01-20 | International Business Machines Corporation | System and method for selective partition locking |
US5873116A (en) * | 1996-11-22 | 1999-02-16 | International Business Machines Corp. | Method and apparatus for controlling access to data structures without the use of locks |
US5909682A (en) * | 1996-12-30 | 1999-06-01 | Mci Worldcom, Inc. | Real-time device data management for managing access to data in a telecommunication system |
US5873098A (en) * | 1997-04-23 | 1999-02-16 | Oracle Corporation | Dynamic snapshot set adjustment |
US5920857A (en) * | 1997-08-04 | 1999-07-06 | Naphtali Rishe | Efficient optimistic concurrency control and lazy queries for B-trees and other database structures |
US6009463A (en) * | 1998-04-15 | 1999-12-28 | Unisys Corporation | Cooperative service interface with buffer and lock pool sharing, for enhancing message-dialog transfer between network provider and distributed system services |
US6021430A (en) * | 1998-04-15 | 2000-02-01 | Unisys Corporation | Output interface method and system for enhanced data transfers via cooperative service interface |
US6101533A (en) * | 1998-04-15 | 2000-08-08 | Unisys Corporation | Multiple interface data communication system and method utilizing multiple connection library interfaces with buffer and lock pool sharing |
US6366902B1 (en) | 1998-09-24 | 2002-04-02 | International Business Machines Corp. | Using an epoch number to optimize access with rowid columns and direct row access |
US6343293B1 (en) | 1998-09-24 | 2002-01-29 | International Business Machines Corporation | Storing the uncompressed data length in a LOB map to speed substring access within a LOB value |
US6343286B1 (en) | 1998-09-24 | 2002-01-29 | International Business Machines Corporation | Efficient technique to defer large object access with intermediate results |
US6144970A (en) * | 1998-09-24 | 2000-11-07 | International Business Machines Corporation | Technique for inplace reorganization of a LOB table space |
US6470359B1 (en) | 1998-09-24 | 2002-10-22 | International Business Machines Corporation | Fast technique for recovering an index on an auxiliary table |
US6363389B1 (en) | 1998-09-24 | 2002-03-26 | International Business Machines Corporation | Technique for creating a unique quasi-random row identifier |
US6694340B1 (en) * | 1998-09-24 | 2004-02-17 | International Business Machines Corporation | Technique for determining the age of the oldest reading transaction with a database object |
US6606617B1 (en) | 1998-09-24 | 2003-08-12 | International Business Machines Corporation | Optimized technique for prefetching LOB table space pages |
US6886012B1 (en) * | 1998-11-18 | 2005-04-26 | International Business Machines Corporation | Providing traditional update semantics when updates change the location of data records |
US6411964B1 (en) * | 1998-12-23 | 2002-06-25 | International Business Machines Corporation | Methods for in-place online reorganization of a database |
JP4237354B2 (ja) * | 1999-09-29 | 2009-03-11 | 株式会社東芝 | トランザクション処理方法及びトランザクション処理システム |
US6845448B1 (en) | 2000-01-07 | 2005-01-18 | Pennar Software Corporation | Online repository for personal information |
US8117644B2 (en) * | 2000-01-07 | 2012-02-14 | Pennar Software Corporation | Method and system for online document collaboration |
JP3607153B2 (ja) * | 2000-02-28 | 2005-01-05 | シャープ株式会社 | ファイル管理方法及び装置 |
US6826570B1 (en) * | 2000-07-18 | 2004-11-30 | International Business Machines Corporation | Dynamically switching between different types of concurrency control techniques to provide an adaptive access strategy for a parallel file system |
GB0028516D0 (en) * | 2000-11-23 | 2001-01-10 | Ibm | Data logging method ,apparatus,system and computer program |
US6751636B1 (en) | 2000-12-05 | 2004-06-15 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple instances of a database |
US6993523B1 (en) | 2000-12-05 | 2006-01-31 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency in a data base page |
US6721739B1 (en) * | 2000-12-05 | 2004-04-13 | Silicon Graphics, Inc. | System and method for maintaining and recovering data consistency across multiple pages |
US7890466B2 (en) * | 2003-04-16 | 2011-02-15 | Oracle International Corporation | Techniques for increasing the usefulness of transaction logs |
US7395278B2 (en) * | 2003-06-30 | 2008-07-01 | Microsoft Corporation | Transaction consistent copy-on-write database |
US7543001B2 (en) * | 2004-06-17 | 2009-06-02 | International Business Machines Corporation | Storing object recovery information within the object |
JP2006085539A (ja) * | 2004-09-17 | 2006-03-30 | Fujitsu Ltd | データベース管理プログラム、方法、装置及び記録媒体 |
US7617180B1 (en) * | 2005-06-06 | 2009-11-10 | Infoblox Inc. | Efficient lock management |
US20060288008A1 (en) * | 2005-06-21 | 2006-12-21 | Sukadev Bhattiprolu | Append/read lock compatibility in a distributed file system |
US7412555B2 (en) * | 2005-09-29 | 2008-08-12 | P.A. Semi, Inc. | Ordering rule and fairness implementation |
US8099538B2 (en) * | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
CN100365632C (zh) * | 2006-04-05 | 2008-01-30 | 华为技术有限公司 | 实现内存数据和数据库数据事务一致性的处理方法 |
US9459963B2 (en) | 2009-09-03 | 2016-10-04 | International Business Machines Corporation | Safely rolling back transactions in a transactional memory system with concurrent readers |
US9529839B2 (en) | 2009-12-07 | 2016-12-27 | International Business Machines Corporation | Applying limited-size hardware transactional memory to arbitrarily large data structure |
US9171044B2 (en) * | 2010-02-16 | 2015-10-27 | Oracle International Corporation | Method and system for parallelizing database requests |
US8266126B2 (en) * | 2010-03-24 | 2012-09-11 | Matrixx Software, Inc. | System with multiple conditional commit databases |
US8868514B2 (en) | 2011-01-07 | 2014-10-21 | Microsoft Corporation | Transaction support for distributed data |
WO2012114516A1 (ja) * | 2011-02-25 | 2012-08-30 | 富士通株式会社 | ロック制御装置、ロック制御プログラムおよびロック制御方法 |
US9003162B2 (en) | 2012-06-20 | 2015-04-07 | Microsoft Technology Licensing, Llc | Structuring storage based on latch-free B-trees |
US9229896B2 (en) | 2012-12-21 | 2016-01-05 | Apple Inc. | Systems and methods for maintaining an order of read and write transactions in a computing system |
US9600500B1 (en) * | 2013-06-21 | 2017-03-21 | Amazon Technologies, Inc. | Single phase transaction commits for distributed database transactions |
US9519591B2 (en) | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
US9514211B2 (en) | 2014-07-20 | 2016-12-06 | Microsoft Technology Licensing, Llc | High throughput data modifications using blind update operations |
US9916343B2 (en) | 2015-04-02 | 2018-03-13 | International Business Machines Corporation | Efficient tracking of an alternate global update and read values using exception lists |
US11537565B2 (en) * | 2019-12-31 | 2022-12-27 | Micron Technology, Inc. | Lock management associated with a key-value database system |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01112445A (ja) * | 1987-10-19 | 1989-05-01 | Internatl Business Mach Corp <Ibm> | フアイル共用システム操作方法 |
JPH01112444A (ja) * | 1987-10-19 | 1989-05-01 | Internatl Business Mach Corp <Ibm> | データアクセスシステム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4249241A (en) * | 1978-10-23 | 1981-02-03 | International Business Machines Corporation | Object access serialization apparatus for a data processing system |
US4627019A (en) * | 1982-07-08 | 1986-12-02 | At&T Bell Laboratories | Database management system for controlling concurrent access to a database |
US4698752A (en) * | 1982-11-15 | 1987-10-06 | American Telephone And Telegraph Company At&T Bell Laboratories | Data base locking |
US4648036A (en) * | 1985-03-06 | 1987-03-03 | At&T Bell Laboratories | Method for controlling query and update processing in a database system |
US4847754A (en) * | 1985-10-15 | 1989-07-11 | International Business Machines Corporation | Extended atomic operations |
US4809168A (en) * | 1986-10-17 | 1989-02-28 | International Business Machines Corporation | Passive serialization in a multitasking environment |
US4823310A (en) * | 1987-08-10 | 1989-04-18 | Wang Laboratories, Inc. | Device for enabling concurrent access of indexed sequential data files |
US4914569A (en) * | 1987-10-30 | 1990-04-03 | International Business Machines Corporation | Method for concurrent record access, insertion, deletion and alteration using an index tree |
-
1990
- 1990-02-15 US US07/480,700 patent/US5247672A/en not_active Expired - Lifetime
-
1991
- 1991-01-09 JP JP3012822A patent/JPH0679285B2/ja not_active Expired - Fee Related
- 1991-02-13 DE DE69128367T patent/DE69128367T2/de not_active Expired - Fee Related
- 1991-02-13 EP EP91301147A patent/EP0442715B1/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01112445A (ja) * | 1987-10-19 | 1989-05-01 | Internatl Business Mach Corp <Ibm> | フアイル共用システム操作方法 |
JPH01112444A (ja) * | 1987-10-19 | 1989-05-01 | Internatl Business Mach Corp <Ibm> | データアクセスシステム |
Also Published As
Publication number | Publication date |
---|---|
EP0442715B1 (en) | 1997-12-10 |
DE69128367D1 (de) | 1998-01-22 |
EP0442715A3 (en) | 1993-05-05 |
DE69128367T2 (de) | 1998-06-25 |
EP0442715A2 (en) | 1991-08-21 |
US5247672A (en) | 1993-09-21 |
JPH0679285B2 (ja) | 1994-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH056297A (ja) | トランザクシヨン処理方法およびシステム | |
KR930002331B1 (ko) | 키 레코드를 페치, 삽입 및 삭제하는 방법 | |
US5581750A (en) | System and method for improving data recovery performance | |
US5317731A (en) | Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor | |
US11386065B2 (en) | Database concurrency control through hash-bucket latching | |
US5276835A (en) | Non-blocking serialization for caching data in a shared cache | |
US5850507A (en) | Method and apparatus for improved transaction recovery | |
EP1540533B1 (en) | Controlling visibility in multi-version database systems | |
US8762333B2 (en) | Apparatus and method for read optimized bulk data storage | |
US5574902A (en) | Efficient destaging of updated local cache pages for a transaction in a multisystem and multiprocess database management system with a high-speed shared electronic store | |
US5280619A (en) | System for accessing shared data using a serialization graph constructed from a history file showing completed locking dependencies between transactions | |
JP4603546B2 (ja) | 効率的なバージョン制御を有するデータベース管理システム | |
US6567928B1 (en) | Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects | |
US5983225A (en) | Parameterized lock management system and method for conditional conflict serializability of transactions | |
US5845292A (en) | System and method for restoring a distributed checkpointed database | |
JP2559959B2 (ja) | 複数の非同期的プロセスによりレコードを更新する方法 | |
US5455946A (en) | Method and means for archiving modifiable pages in a log based transaction management system | |
US20170220617A1 (en) | Scalable conflict detection in transaction management | |
US8176022B1 (en) | Locking protocol using dynamic locks and dynamic shared memory | |
US9576038B1 (en) | Consistent query of local indexes | |
US10754854B2 (en) | Consistent query of local indexes | |
US8291269B1 (en) | Multi-writer in-memory non-copying database (MIND) system and method | |
US7548919B2 (en) | Computer program product for conducting a lock free read | |
JPH01211140A (ja) | データ資源アクセス方法 | |
JPH05210637A (ja) | 同時アクセス管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |