JP2679779B2 - トランザクション処理方法及び装置 - Google Patents

トランザクション処理方法及び装置

Info

Publication number
JP2679779B2
JP2679779B2 JP4159414A JP15941492A JP2679779B2 JP 2679779 B2 JP2679779 B2 JP 2679779B2 JP 4159414 A JP4159414 A JP 4159414A JP 15941492 A JP15941492 A JP 15941492A JP 2679779 B2 JP2679779 B2 JP 2679779B2
Authority
JP
Japan
Prior art keywords
volatile
memory
record
snapshot
state memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP4159414A
Other languages
English (en)
Other versions
JPH05197598A (ja
Inventor
エム スピロ ピーター
ラグハバン アナンス
ケイ レンガラジャン チルマンジュナ
Original Assignee
オラクル・コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・コーポレーション filed Critical オラクル・コーポレーション
Publication of JPH05197598A publication Critical patent/JPH05197598A/ja
Application granted granted Critical
Publication of JP2679779B2 publication Critical patent/JP2679779B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/87Monitoring of transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般的にトランザクシ
ョン処理に関するものであり、特に、トランザクション
が装置の状態メモリの旧コピーを参照することのできる
トランザクション処理装置に関するものである。特に、
本発明は、このようなトランザクション処理装置におい
て、各トランザクションの結果が各トランザクション後
に不揮発性状態メモリに書き込まれるのではなく、更新
後イメージログにコミットされる際に、適切なリカバリ
(回復)を保証するための方法に関するものである。
【0002】
【従来の技術】コンピュータシステムでは、メモリ書き
込み動作を中断させる恐れのある部分的なシステム障害
から回復できるようにすることが望ましい。アプリケー
ションプログラムにおけるメモリ書き込み動作が、シス
テム障害時に進行する場合、メモリレコードがエラーと
なる可能性がある。部分的システム障害の後に、メモリ
レコードの回復を可能とするために、アプリケーション
プログラムは、レコードのバックアップコピーを不揮発
性メモリ内に保持する必要がある。コンピュータシステ
ムが再スタートする際に、回復すべきメモリレコード
が、バックアップコピーと置き換えられる。
【0003】バックアップコピーの作成、及びメモリレ
コードの回復を容易にするために、一般的にオペレーテ
ィングシステムは、確立されたメモリ管理手続きセット
を具えている。このメモリ管理手続きセットは、アプリ
ケーションプログラムから呼び出され(すなわち、コー
ルされ)、”リカバリユニット”を規定する。リカバリ
ユニットは、”START ”ステートメントと”COMMIT”ス
テートメントとの間のプログラムステートメントから成
っている。”リカバリユニット”内のすべてのステート
メントは、リカバリユニット内のステートメントによっ
て変更されたメモリレコードが次の処理に使用可能とな
る以前に完成されなければならない。”リカバリユニッ
ト”のステートメントは、単一”トランザクション”で
操作を指定する。部分的システム障害からの回復時に、
不揮発性メモリの検査を行うことによって、単一”トラ
ンザクション”内の操作がすべて完了していること、又
は何も完了していないことが明らかとなる。
【0004】単一トランザクション内の操作は多数のフ
ァイルを変更することができ、これらのファイルは、他
の処理が共有することができる。トランザクション終了
時にこれらのファイルは無矛盾であるが、トランザクシ
ョンの間、一時的に矛盾することがある。代表的な例
は、一方の預金口座からの預金を他方の預金口座に送金
する場合であり、この場合には、一方の預金口座に引出
しが記入され、その少し後に他方の預金口座に預入れが
記入され、その間、2つの預金口座が矛盾することにな
る。その理由は、その間、2つの預金口座の和が2つの
預金口座内の合計預金を示さなくなるからである。ファ
イルがトランザクションによって変更される際の矛盾性
のために、変更が終了するまで、他の処理がファイルを
アクセスしないようにすることが知られている。
【0005】一般的に、トランザクションは、第2トラ
ンザクションの実行が、第1トランザクションの結果の
コミット前に開始するように、トランザクション処理装
置内で分散されている。回復の容易性を保証するため
に、通常、第1トランザクションのコミット以前に、第
2トランザクションが、第1トランザクションの任意の
結果を読み出さない様にしている。例えば、データベー
スシステムの場合、トランザクションは、トランザクシ
ョンによって変更される任意のデータベースレコード
に”書き込みロック”を配置する。トランザクションに
よって読み出されるデータの無矛盾性を保証するため
に、トランザクションによって読み出される任意のデー
タベースレコードにも”読み出しロック”を配置する。
【0006】メモリロックの使用は、トランザクション
間の同時実行を禁止し、トランザクション処理速度を低
下させることになる。ディジタル・イクイップメント・
コーポレーションによって販売されている”Rdb/VMS ”
及び”VAX DBMS”等のシステムにおいては、”スナップ
ショット”メカニズムにより、読み出しロックの必要性
を排除すると共に、書き込みロックによって、読み出し
動作のブロッキングを阻止している。この”スナップシ
ョット”メカニズムによれば、トランザクションが、任
意の時刻に、トランザクション開始時に存在するデータ
の無矛盾バージョン(コピー)を得ることができる。
【0007】ディジタル・イクイップメント・コーポレ
ーションによって販売されている”Rdb/VMS ”及び”VA
X DBMS”システムの場合、更新すべきレコードの”更新
前イメージ”を”アンドウ ログ”にフラッシュ(供給)
し、次いで更新されたデータレコードを、トランザクシ
ョンがコミットされる直前に、状態メモリにフラッシュ
することによって、回復可能性が保証される。クラシュ
が発生する場合、更新されたレコードが、アンドウ ログ
から得られる”更新前イメージ”と置換され、トランザ
クションの影響を”取り消す”。
【0008】”Rdb/VMS ”及び”VAX DBMS”システム
は、”更新後イメージジャーナル”と称する付加的な特
徴を有し、バックアップコピーから回復されるデータベ
ースに、”ロールフォワード”更新を実行する機能を提
供する。ジャーナルメカニズムは、データベースに対し
て行われた変更を再構成できる他の情報とともに、レコ
ードのコピーを変更後にセーブする。
【0009】”Rdb/VMS ”及び”VAX DBMS”の”アンド
ウ (取り消し)”リカバリメカニズムは、極めて高速な
回復を提供することができる。その理由は、障害トラン
ザクションの影響だけを取り消す必要があるに過ぎない
からである。しかし、各トランザクションがコミットさ
れるごとに、更新レコードを状態メモリにフラッシュす
るのに、かなりの処理時間を要する。システムクラシュ
が極めて希である安定した環境の場合、高速回復は特に
重要ではない。複数トランザクションに対して同一のレ
コードを更新する複数のトランザクション、及び多くの
ページを更新しない短いトランザクションに対しては、
各トランザクションの終了時ごとに更新レコードを状態
メモリに供給するのにかなりの処理時間が浪費される。
【0010】
【本発明の概要】本発明は、”リドゥ(redo)”リカバ
リメカニズムを使用し、各トランザクション後ごとに、
更新されたレコードを状態メモリにフラッシュしない。
その代わりに、更新されたレコードを、更新後イメージ
ログに順次書き込み、所定の”チェックポイント”が発
生する時のみに、更新されたすべてのレコードを状態メ
モリにフラッシュする。チェックポイントは、例えば、
所定数のトランザクションの後、又は所定数のバイトが
更新後イメージログに書き込まれた後に発生する。従っ
て、”リドゥ”回復メカニズムによれば、更新されコミ
ットされたレコードを、揮発性メモリ内に残存させるこ
とができる。システムクラシュが発生すると、不揮発性
状態メモリから、最終チェックポイントの際に存在する
状態メモリレコードを読み出すとともに、更新後イメー
ジログに記憶されている変更を再度行うことによって、
最後にコミットされたトランザクションの終了時に存在
する揮発性状態メモリレコードを再構成することができ
る。例えば、更新後イメージログが、変更を再度実行す
る間、順次に読み出される。
【0011】本発明は、特に”リドゥ”リカバリメカニ
ズムとともに使用されるスナップショットメカニズムに
関するものである。しかし、慣例のスナップショットメ
カニズムは、慣例の更新後イメージジャーナルメカニズ
ムを使用する”リドゥ”リカバリメカニズムと調和して
いない。慣例のスナップショットメカニズムは、各書き
込みトランザクションのコミット後ごとに、変更された
状態メモリレコードの旧バージョン(コピー)を不揮発
性メモリに書き込むものである。これは、変更された状
態メモリレコードをチェックポイントにおいてのみ不揮
発性メモリにフラッシュする”リドゥ”と調和しない。
慣例の更新後イメージジャーナルメカニズムは、揮発性
スナップショットレコードに変更を記録するのに使用す
ることもできるが、この場合には、更新後イメージログ
のサイズがほぼ2倍になり、且つスナップショットレコ
ードに変更を記録するのに更に処理時間が必要になる。
【0012】広い意味において、本発明は、ディジタル
コンピュータを作動させ、トランザクションを処理する
ための装置及び方法に関するものであり、該方法が: a)不揮発性状態メモリから状態メモリレコードを読み
出し、該状態メモリレコードを揮発性状態メモリキャッ
シュに書き込む工程と;b)揮発性状態メモリキャッシ
ュ内の選択された状態メモリレコードから、揮発性スナ
ップショットメモリキャッシュ内にスナップショットコ
ピーを作成し、揮発性状態メモリキャッシュ内の各選択
状態メモリレコードから作成されるスナップショットコ
ピーの対応セットを、揮発性スナップショットメモリキ
ャッシュ内に保持し、前記揮発性状態メモリキャッシュ
内の選択された状態メモリレコードに対して、前記トラ
ンザクションによって指定された変更を行うとともに、
前記変更を不揮発性メモリ内の更新後イメージログにコ
ミットする工程と;c)揮発性スナップショットメモリ
キャッシュからスナップショットコピーを読み出し、該
スナップショットコピーを不揮発性スナップショットメ
モリに書き込み、選択された状態レコードを揮発性状態
メモリキャッシュから読み出し、該選択された状態レコ
ードを不揮発性状態メモリに書き込む工程とを具え、前
記行程c)において、各選択された状態メモリレコード
を揮発性状態メモリキャッシュから読み出し、不揮発性
状態メモリに書き込む前に、各選択された状態メモリレ
コードのスナップショットコピーに対応するセットを揮
発性スナップショットメモリキャッシュから読み出し、
不揮発性スナップショットメモリに書き込むことを特徴
とする。
【0013】本発明では、スナップショットレコード
を、揮発性状態メモリレコードとともに、揮発性メモリ
内に記憶するとともに、トランザクションによる揮発性
状態メモリレコードの変更を、揮発性状態メモリレコー
ドの回復のために、不揮発性メモリ内の更新後イメージ
ログ内に記録する。しかし、本発明では、更に、揮発性
メモリ内のスナップショットレコードの回復のために、
揮発性状態メモリ内の何れか1つのレコードを揮発性メ
モリから不揮発性状態メモリに書き込む必要があると
き、最初に前記何れか1つの揮発性状態メモリのレコー
ドに相当する揮発性スナップショットレコードのセット
を揮発性スナップショットメモリから不揮発性スナップ
ショットメモリに書き込む。バッファプールフラッシイ
ングの順序をこのように定めることによって、揮発性ス
ナップショットレコードを不揮発性状態メモリから、又
は更新後イメージログ内の変更から回復させることがで
きる。
【0014】以下の例は、バッファプールフラッシイン
グの順序を定めることによって、スナップショットレコ
ードを回復させることができることを示している。トラ
ンザクションが揮発性状態メモリレコードXを更新し、
旧揮発性状態メモリレコードが、スナップショットレコ
ードXn として、揮発性スナップショットメモリに供給
され、その後、トランザクションがコミットされ、新状
態メモリレコードXが更新後イメージログに記録される
ものとする。一方、レコードXの対応する揮発性スナッ
プショットバージョン(コピー)が不揮発性スナップシ
ョットメモリにフラッシュされずに、更新された揮発性
状態メモリレコードが不揮発性状態メモリにフラッシュ
され(レコードXのフラッシュを更新後イメージログフ
ァイルに記録し)、その後、システムがクラシュするも
のと仮定する(例えば、フラッシュは、揮発性メモリの
バッファプールが一杯になることに応答して、又はレコ
ードXを必要とする他の処理に応答して行われる)。こ
の場合(本発明でない場合)には、レコードXの更新が
既に不揮発性状態メモリに存在し、レコードXのフラッ
シュが更新後イメージログファイルに記録されているた
め、このレコードXの更新を不揮発性状態メモリから得
ることができる。しかし、この場合にはスナップショッ
トレコードXn を回復させることはできない。スナップ
ショットレコードXn は、不揮発性スナップショットメ
モリにフラッシュされず、また不揮発性状態メモリ内の
レコードXの更新前バージョン(コピー)が更新された
レコードXの不揮発性状態メモリへのフラッシュにより
オーバライトされてしまうために不揮発性状態メモリ内
に存在しない。他方、本発明に従って、レコードXのす
べての対応する不揮発性スナップショットバージョン
(スナップショットレコードXn を含む)が不揮発性ス
ナップショットメモリにフラッシュされ、次いで更新さ
れたレコードXが不揮発性メモリにフラッシュされ、再
びトランザクションがコミットされた後にシステムがク
ラシュするものと仮定すると、この場合には、スナップ
ショットレコードXn を含むレコードXの対応するスナ
ップショットバージョンのすべてを不揮発性メモリ内で
見つけ出すことができる。
【0015】通常の場合、不揮発性状態メモリレコード
XもスナップショットレコードXnも、システムクラシ
ュ発生時に、揮発性メモリ内にフラッシュされない。こ
の場合において、トランザクションが、揮発性状態メモ
リレコードXを更新し、旧揮発性状態メモリレコード
を、スナップショットレコードXn として、揮発性スナ
ップショットメモリに記録し、その後、トランザクショ
ンがコミットされ、新状態メモリレコードXを更新後イ
メージログに記録し、その後、システムクラシュが発生
したものと仮定すると、この場合には、状態メモリ及び
スナップショットメモリは、更新後イメージログに記録
されている変更を再度実行することによってリストアさ
れる。更新後イメージログを読み出している間、例え
ば、状態メモリレコードXがメモリレコードXの最新変
更Xに到達する際にリストアされるが、不揮発性状態メ
モリ内の状態メモリレコードXの旧バージョンが最初に
スナップショットレコードXにリストアされる。
【0016】
【実施例】図1は、トランザクション処理用に構成され
たディジタルコンピュータ20の概略を示すブロック図で
ある。このディジタルコンピュータ20は、プログラムさ
れたインストラクション実行用の中央処理ユニット21
と;インストラクション又はデータ保持用の揮発性ラン
ダムアクセスメモリ22と;ハードディスクドライブ等の
不揮発性メモリ23と;入力/出力ユニット24とを具えて
いる。不揮発性メモリ23は、プログラムを記憶するため
のプログラムメモリ25を具えている。一般的に、ディジ
タルコンピュータ20は、プログラムメモリ25から揮発性
ランダムアクセスメモリ22に送られるプログラムを実行
する。
【0017】ディジタルコンピュータ20に関連する共通
の問題点は、中央処理ユニットによるインストラクショ
ンの実行が、ハードウェアの障害、ソフトウェアエラー
又は電力障害によって中断する可能性があるということ
である。例えば、電力障害によって、揮発性ランダムア
クセスメモリ22に記憶されているデータ及びプログラム
が失われてしまう場合がある。電力障害による揮発性ラ
ンダムアクセスメモリ22のデータ損失に関する問題は、
不揮発性メモリ23にデータのバックアップコピーを記憶
することによって解決される。しかしながら、バックア
ップコピーは、不揮発性メモリ23への書き込み動作時に
障害が生じる可能性があることを考慮して作製する必要
がある。
【0018】不揮発性メモリへの書き込み時に生じ得る
障害による問題を処理するために、”トランザクション
処理”と称するプログラミング方法が確立されてお
り、”トランザクション処理”とは、障害が存在する場
合に、不揮発性メモリの一部分(以下、”状態メモリ”
26と称する)がトランザクションにより影響されないよ
うにする、又はトランザクションの結果によって適切に
更新されるようにすることである。トランザクション処
理は、トランザクションの結果が状態メモリに書き込ま
れる以前に、(ログファイル27,28 の一方に)バックア
ップコピーを作成する技術に基づくものである。
【0019】一定のアドレス指定可能なデータユニット
(ここでは”レコード”と称する)が、不揮発性メモリ
に書き込まれ、不揮発性メモリから読み出されるものと
仮定する。更に、ログファイル27,28 は、アトミック式
に更新され、ログファイルへのレコードの書き込み動作
が電力障害などの障害によって中断する際に、ログファ
イルが、その元の状態、又はログファイルに適切に書き
込まれたレコードの正しいコピーを有している状態にあ
るものと仮定する。このアトミック性の条件は、多くの
コンピュータのオペレーティングシステム及び不揮発性
メモリによって保証されている。更に、オペレーティン
グシステム及び不揮発性メモリが不揮発性メモリへの書
き込み動作のアトミック性を保証できない(幾つかのさ
ほど高価でない”パーソナル”コンピュータ等の)コン
ピュータの場合、よく知られているプロトコルを使用
し、書き込み動作のアトミック性を保証することができ
る。このプロトコルでは、まずレコードを不揮発性メモ
リのバックアップ領域に書き込み、次にスイッチを不揮
発性メモリ内にセットし、その後、前記レコードを不揮
発性メモリの所望の位置に書き込み、最後に、前記スイ
ッチを不揮発性メモリ内でクリアする。障害からの回復
時に、不揮発性メモリからスイッチを読み出し、スイッ
チがセットされていたことが確認されると、不揮発性メ
モリのバックアップ領域から、不揮発性メモリの所望の
位置にレコードをコピーし、その後、スイッチを不揮発
性メモリにおいてクリアする。
【0020】更に、障害後、ログファイルの終りを検出
できるものと仮定する。これは、ログが更新される毎
に、ログファイルヘッダー内のエンド・オブ・ファイル
・ポインタを更新することによって行われる。しかしな
がら、ログファイルの終わりにタグを付し、ログが更新
されるたび毎に、ログファイルヘッダーを更新する必要
なしに、クイックサーチによってログファイルの終りを
検出できるようにするのが好ましい。例えば、各ビット
毎にログファイルを始めに論理値1にセットし、サーチ
中に論理値1の列が検出される際に、ファイルの終りを
検出できるようにする。
【0021】トランザクションが状態メモリ26の読み出
しを指定する際、常に、不揮発性状態メモリ26が読み出
される。しかし、ハード磁気ディスク等の慣用の不揮発
性メモリのアクセス時間は、ダイナミックランダムアク
セスメモリ等の慣用の揮発性メモリ22のアクセス時間と
比較して極めて長い。したがって一般的には、状態メモ
リレコードのコピーを、揮発性メモリ22の状態メモリキ
ャッシュ29に記憶する。ハッシュテーブルインデックス
30において、状態メモリキャッシュ29に現在存在する状
態メモリレコードのコピーに、インデックスを付す。メ
モリアクセス動作中のハッシュテーブルインデックスの
使用に関しては、後に図4及び図5を参照して更に説明
する。
【0022】ディジタルコンピュータ20においては、一
般的に、トランザクション処理を分散させて、第1トラ
ンザクションの結果がコミットされる以前に、第2トラ
ンザクションの実行が開始される。一般的に、トランザ
クションに関する動作のスケジューリングは、トランザ
クションのキューを処理するマルチタスキング又はマル
チプロセッシングのオペレーティングシステムプログラ
ムによって実行される。このようなシステムの場合、キ
ューの先頭のトランザクションに優先権を与え、このキ
ューの先頭のトランザクションを、入力/出力動作又は
不揮発性メモリへのメモリアクセス動作の終了を待たな
ければならない場合以外処理させる。この場合、優先権
を有しているトランザクションは、オペレーティングシ
ステムに実行を戻すことができ、オペレーティングシス
テムは、優先権を有している次のトランザクションに実
行を移すことができる。しかし、入力/出力又はメモリ
アクセス動作の終了時に、入力/出力又はメモリ割り込
みが発生し、割り込み処理ルーチンによって実行が中断
され、オペレーティングシステムに実行が戻る。次に、
オペレーティングシステムは、入力/出力又はメモリア
クセス動作の終了を待っているトランザクションキュー
の先頭のトランザクションに実行を移す。このようにし
て、コンピュータ20のリソースを更に効率的に使用する
ことができる。マルチタスキング及びマルチプロセッシ
ングオペレーティングシステムは、従来よりよく知られ
たものであり、主なコンピュータメーカーから商業的に
入手可能であるため、コンピュータ20のオペレーティン
グシステムプログラムに関してのこれ以上詳細な説明は
省略する。
【0023】第1トランザクションのコミット以前に、
第2トランザクションが開始する状態において容易な回
復を保証するために、通常、第1トランザクションのコ
ミット以前に、第2トランザクションは、第1トランザ
クションの任意の結果を読み出すことが禁止される。例
えば、コンピュータ20において、トランザクション
は、”書き込みロック”を、このトランザクションによ
って変更される状態メモリレコードに配置する。これに
ついての説明は、後に図6を参照して行う。これらの”
書き込みロック”は、トランザクションがコミットされ
る際に除去される。これについての説明は、後に図2を
参照して行う。
【0024】トランザクションによって読み出されるデ
ータの矛盾性を保証するために、トランザクション
は、”読み出しロック”を、トランザクションによって
読み出される任意の状態メモリレコードに設けることが
できる。しかし、メモリロックの使用によって、トラン
ザクション間の同時実行が禁止され、トランザクション
の処理速度が減少する。したがって、システム20は、既
知の”スナップショット”メカニズムを使用して、読み
出しロックの必要性を除去すると共に、書き込みロック
により読み出し動作のブロッキングを阻止している。”
スナップショット”メカニズムによって、トランザクシ
ョンは、トランザクション開始時刻に存在する任意の状
態メモリレコードの無矛盾バージョン(コピー)を、任
意の時刻に読み出すことができる。図3及び図4を参照
して後に更に説明するように、特定の状態メモリレコー
ドの無矛盾バージョンを、状態メモリ26,29 、又は”ス
ナップショット”メモリ31,32のいづれかから読み出す
ことができる。
【0025】スナップショットメモリ31,32 は、図2の
フローチャートにて示す”アンドウ”リカバリ手続きと
共に、既知のトランザクション処理装置において使用さ
れている。例えば電力障害の後に、コンピュータ(図1
の参照番号20)をオンすると、第1ステップ40におい
て、中央処理装置(図1の参照番号21)による実行が開
始される。ステップ40において、状態メモリキャッシュ
及びスナップショットメモリキャッシュが(図3の”ハ
ッシュテーブル”インデックス30をクリアすることによ
って)クリアされる。次に、ステップ41において、中央
処理装置21は、更新前イメージログファイル(図1の参
照番号27)を読み出し、障害トランザクション(障害が
トランザクション処理を中断した時刻に、開始している
ものの、未だコミッされていないトランザクション)の
更新を取り消す。特に、更新前イメージログファイル27
の終りを検出し、更新前イメージログファイル27を時系
列とは逆に読み出し、更新されたレコードの更新前イメ
ージを不揮発性状態メモリ(図2の参照番号26)にコピ
ーさせる。
【0026】同一の更新前イメージログファイルには、
多数の種々のトランザクションの更新前イメージを記憶
することができる。この場合、”コミット(commit)”
レコードが検出されるまで、例えば、更新されたレコー
ドの更新前イメージを不揮発性状態メモリにコピーさせ
る。コミットレコードは、例えば、コミットされたトラ
ンザクションを識別し、この時点にコミットされていな
いトランザクションの”アクティブ”リストも具えてい
る。このリストをセーブし、更新前イメージファイルを
時系列とは逆に読み出し続け、コミットされてないトラ
ンザクションの更新のみを、不揮発性状態メモリにコピ
ーする必要がある。更に、トランザクションの開始
を、”開始トランザクション”レコードによって更新前
イメージログに記録する。更新前イメージログの”開始
トランザクション”レコードに到達すると、準備開始さ
れたトランザクションが、”アクティブ”リスト中から
除去され、”アクティブ”リストが空となる時に、ステ
ップ41が終了する。
【0027】しかし、個別の更新前イメージファイル
が、マルチプロセッシングシステムにおける各プロセス
に割り当てられ、各プロセスのためのファイルが、その
プロセスの現在のアクティブなトランザクションのため
の更新前イメージを含むようにするのが好ましい。トラ
ンザクションのコミット後、更新前イメージのそのログ
は、もはや必要ではなく、更新前イメージログファイル
は、プロセスの次のトランザクションによる再使用のた
めに捨てられる。”コミットレコード”は不要である。
その理由は、ファイルが他のトランザクションによって
再使用されるまで、更新前イメージログファイルが空の
ままだからである。これにより、マルチプロセッシング
システムにおいて障害のある単一プロセスを回復させる
ことができる。この場合、障害プロセス用の全更新前イ
メージログファイルが後方に走査され、障害プロセスの
障害トランザクションの影響を取り消す。電力障害の場
合のすべての中断プロセスからの回復を行うために、オ
ペレーティングシステムは、不揮発性メモリ内にアクテ
ィブプロセスのリストを保持している。したがって、電
力障害からの回復時に、アクティブであったプロセスの
リストをアクセスし、中断したプロセスを検出し、その
後、各中断したプロセスの更新前イメージログファイル
を走査し、各障害トランザクションの影響を取り消す。
【0028】不揮発性状態メモリがリストアされると、
ステップ42において、トランザクション処理が再開され
る。ステップ42において、選択されたトランザクション
xの”開始”レコードが、更新前イメージログに書き
込まれる。ステップ43において、不揮発性状態メモリ
(図1の参照番号26)からレコードが読み出され、揮発
性状態メモリ(図1の参照番号29)に送られる。次にス
テップ44において、トランザクションによって変更され
るべき揮発性状態メモリ内のレコードが、”更新前イメ
ージ”ログに書き込まれ、ステップ45において、変更さ
れるべきレコードが、揮発性スナップショットメモリキ
ャッシュ(図1の参照番号32)にも書き込まれる。これ
については、後に図4を参照して更に説明する。次に、
ステップ46において、レコードはロックされ、その後ト
ランザクションの結果に従って変更される。しかし、
(ディジタル・イクイップメント・コーポレーションに
よって販売されているVMS オペレーティングシステム等
の)マルチプロセッシングオペレーティングシステムは
一般的に、個別のハッシュインデックステーブルを保持
する”ロック・マネジャー”を、ロックキャッシュに設
けている。この場合、ステップ43において、レコードが
取り込まれる以前に、ロックキャッシュにインデックス
を付し、レコードが既にロックされているか否かを判定
すると共に、更新されるべきフリーレコードをロックす
る。マルチプロセッシングシステムにおけるこのような
ロック・マネジャーは、スケジューリングを簡易化する
のに望ましい。
【0029】このような複数の変更を、更新後イメージ
ログに記録し、不揮発性メモリレコードとすることがで
きるとともに、ステップ47に示すように、トランザクシ
ョンTy がコミット可能となるまで、複数の他のトラン
ザクションを開始させることができる。その後、ステッ
プ48において、Ty によって変更されたレコードのロッ
クがリリースされ、ステップ49において、Ty によって
変更されたレコードが不揮発性状態メモリ26に書き込ま
れる。最後に、ステップ50において、単一の更新前イメ
ージログを使用する場合には、”コミットTy ”レコー
ドが、更新前イメージログに書き込まれる。各プロセス
に個別の更新前ログファイルを使用する好適な場合に
は、Ty トランザクション処理用の更新前イメージログ
ファイルが捨てられる。ステップ41において、他のトラ
ンザクションの処理が継続される。
【0030】図2は、多数のトランザクションの中の幾
つかのコミット以前に、多数のトランザクションが開始
する場合を示す図である。この場合、オペレーティング
システムプログラムは、トランザクション処理のステッ
プ43,44,45及び46の間に、複数のトランザクションの間
で実行をタイムシェアしている。ステップ46において、
トランザクションは、”書き込みロック”を、無矛盾に
変更する必要のあるレコード群に配置し、他のトランザ
クションがこれらのレコード群に書き込みを行うことを
禁止すると共に、他のトランザクションが矛盾するレコ
ードを読み出すことを禁止している。更に、図2に示す
比較的簡単なリカバリ計画が、このような分散したトラ
ンザクション環境の中で作動し得るように、トランザク
ションによって課された書き込みロックは、トランザク
ションがコミットされるステップ48まで、リリースされ
ない。
【0031】図2の”アンドウ ”リカバリ計画を使用し
ている装置において、トランザクションが書き込みロッ
クされているレコードからデータを読み出す必要がある
場合に、このトランザクションが停止することを防止す
るために、スナップショット回復メカニズムを用いるこ
とが知られている。このメカニズムは、任意のトランザ
クションが、任意の時刻に、トランザクション処理開始
時刻に存在する任意のレコードのバージョン( コピー)
を得ることができるように、レコードの”更新前イメー
ジ”の十分な数のバージョン( コピー) を保持するもの
である。これらのレコードの”更新前イメージ”を、”
スナップショット”レコードと称する。特に、レコード
が変更される直前に、そのレコードの”スナップショッ
ト”が行われる。しかしながら、同一レコードのもっと
前の”スナップショット”が存在する場合もある。従っ
て、スナップショットメカニズムは、各トランザクショ
ン毎に、トランザクションによって読み出されるべき特
定のレコードの正しいバージョンを決定する手段を提供
するものである。このスナップショットメカニズムは、
もはやトランザクションが読み出す必要のない古いスナ
ップショットを除去する手段も提供する。
【0032】分散環境中でのトランザクションの直列化
可能性を保証するために、各トランザクションは、”リ
ードオンリー”トランザクション又は”リードライト”
トランザクションのいづれかとして特定される。”リー
ドオンリー”トランザクションは、スナップショットレ
コードを読み出すことはできるが、”リードオンリー”
トランザクションは、ライブレコードを変更できな
い。”リードライト”トランザクションは、スナップシ
ョットレコードを読み出すことができないが、ライブレ
コードを読みだし変更することができる。
【0033】図3は、多数のトランザクションを示すタ
イミング図である。トランザクション処理開始時に、各
トランザクションに、トランザクションシーケンス番号
(TSN )が割り当てられる。トランザクションシーケン
ス番号0が、状態メモリの初期状態に割り当てられる。
【0034】任意の”リードオンリー”トランザクショ
ンによって読み出されるべき、明確なレコードバージョ
ンを規定するために、状態メモリ内のレコードXの読み
出し動作を実行するTSN =Yの”リードオンリー”トラ
ンザクションは、トランザクションYの処理開始時刻に
レコードXに最後にコミットされた結果を検査するもの
と仮定する。更に、スナップショットメカニズムは、ト
ランザクションYの処理の間の任意の時刻に呼び出さ
れ、レコードXの特定のバージョンをリターンするもの
と仮定する。このレコードXの特定のバージョンは、揮
発性状態メモリ内のライブレコード、揮発性スナップシ
ョットメモリ内のスナップショットレコード、不揮発性
メモリ内のライブレコード、又は不揮発性メモリ内のス
ナップショットレコードのいづれかに存在する。ロック
されていない各ライブレコード、及び各スナップショッ
トレコードに、レコードのバージョンをコミットしたト
ランザクションを示す”レコードトランザクションシー
ケンス番号”を用いてタグ付けを行うものと仮定する
(図3のC)。更に、トランザクションZによってロッ
クをライブレコードXに配置する場合、レコードXのス
ナップショットコピーが作製され、発生し得る切り捨て
処理を容易にするためにレコードのコピーが更新前イメ
ージログに書き込まれ、ロックされたレコードにTSN =
Zを用いてタグ付けを行うことができるが、トランザク
ションZが中止する場合には(図3のA)、更新前ログ
から更新前イメージコピーがライブレコードにコピーさ
れ(ライブレコードのTSN を更新前イメージのTSN にリ
ストアする)、ライブレコードがロックされなくなるも
のと仮定する。
【0035】これらの仮定に基づき、リードオンリート
ランザクションTSN=Yが開始するようにスケジュールさ
れると、このときアクティブである他のトランザクショ
ンのリストがコンパイルされ、図3に示すようにトラン
ザクションYに割り当てられることなる。ライブレコー
ドXが、トランザクションYのアクティブリストに存在
しないY以下のトランザクションシーケンス番号を有し
ている限り、リードオンリートランザクションYによっ
て読み出されるべきレコードXの所望のバージョンは、
ライブレコードXである。これ以外の場合、所望のレコ
ードは、トランザクションYのアクティブリストに存在
しないY以下のトランザクションシーケンス番号を有し
ているレコードXの最新のスナップショット内に見いだ
される。
【0036】上記仮定に基づくと、一定の”カットオフ
TSN ”よりも小さなレコードトランザクションシーケン
ス番号を有している任意のスナップショットレコードを
保持する必要はなく、このトランザクションシーケンス
番号は、最初のアクティブトランザクション(すなわ
ち、最小のトランザクションシーケンス番号を有してい
るアクティブトランザクション)のトランザクションシ
ーケンス番号である。図3は、例えば、トランザクショ
ン1〜7の各々が開始する時刻におけるカットオフTSN
を示す図である。捨てるべきスナップショットレコード
を識別するために、カットオフTSN を決定し、これを各
トランザクションの開始をスケジュールする際に各トラ
ンザクションに割り当てるのがが望ましい。例えば、ス
ナップショットレコードのスナップショットTSN が、ト
ランザクションのカットオフTSN よりも小さいときは常
に、トランザクションは、再使用のためのスナップショ
ットレコードの揮発性メモリ空間を占有することができ
る。
【0037】図4は、ポインタを用いて状態メモリキャ
ッシュ29内の揮発性状態メモリレコードと、スナップシ
ョットメモリキャッシュ32内のスナップショットレコー
ドとをリンクさせ、フリーバッファ61等の任意のフリー
バッファを状態メモリキャッシュ29又はスナップショッ
トメモリキャッシュ32の構成部分として使用できると共
に、更に、単にポインタを変更することによって、状態
メモリキャッシュ29からスナップショットメモリキャッ
シュ32へ、又はスナップショットメモリキャッシュ32か
ら状態メモリキャッシュ29へとレコードを転送すること
ができるように構成されたデータ構造を示す図である。
【0038】図4の例では、各ライブレコード(ライブ
レコード62等)は、ロックフラグ63及びレコードトラン
ザクションシーケンス番号64を有しているヘッダと、ゼ
ロ又は揮発性メモリバッファプール内の他のライブレコ
ードを指示するポインタ65、及びゼロ又はレコードの最
新スナップショットを指示するポインタ66を有している
トレーラとを具えている。スナップショットレコード
(スナップショットレコード67等)のフォーマットは、
同様に、ロック68、レコードトランザクションシーケン
ス番号69、及びゼロ、又はレコードの前スナップショッ
トを指示するポインタ70を有している。
【0039】特定のレコードXを更新するために、ハッ
シュテーブルインデックス30がレコード番号Xでインデ
ックスされ、状態メモリキャッシュ内のレコードXのラ
イブバージョンをサーチする。しかし、ハッシュテーブ
ルインデックス30は、状態メモリキャッシュ内の各すべ
てのライブレコード29をインデックスするものではな
い。換言すれば、ハッシュテーブルインデックス30は、
レコード番号全体によってインデックスされるのではな
く、ハッシュテーブルインデックスは、レコード番号の
最下位部分のみによってインデックスされる。任意の所
定のレコード番号に対し、ハッシュテーブルインデック
ス30のこのようなインデックシングは、所望のライブレ
コードが状態メモリキャッシュ29に存在しないことを示
すゼロ、又は所望のレコードを指示するポインタ又は所
望のライブレコードを含むライブレコードリストを指示
するポインタを発生する。図4に示すように、レコード
番号”B”を用いてアドレス指定する場合、ハッシュテ
ーブルインデックスは、ポインタをレコードAに出す。
このレコードAは、所望のレコードBに対するレコード
ポインタRBを含んでいる。
【0040】しかし、リードオンリートランザクション
がレコードを読み出すことが望ましい場合、レコードの
適当なバージョンを見いだすために更にサーチが必要と
なる場合がある。まず、このライブレコードを検査し、
次に、最新のスナップショットから順に、現在のトラン
ザクションシーケンス番号以下で現在のトランザクショ
ンのアクティブリストに含まれていないレコードトラン
ザクションシーケンス番号を有しているレコードが検出
されるまで、スナップショットレコードが検査される。
リードオンリートランザクションがレコードBの読み出
しを望む場合、例えば、ライブレコードBのトランザク
ションシーケンス番号(この場合、TSN6)を、リードオ
ンリートランザクションのトランザクションシーケンス
番号と比較する。ライブレコードBが適切なバージョン
でない場合、ライブレコードBのスナップショットポイ
ンタ(この場合、S2)が検査され、スナップショットメ
モリキャッシュ32がレコードBの任意のスナップショッ
トを含んでいるか否かを判定する。ライブレコードBが
適切なバージョンでない場合、レコードBの適切なバー
ジョンが検出されるまで、スナップショットのレコード
トランザクションシーケンス番号が、一連のスナップシ
ョットにおいて検査される。レコードBの適切なバージ
ョンが検出されない場合には、不揮発性メモリ23がアク
セスされ、レコードの適切なバージョンを検出する必要
がある。図4の例では、例えば、スナップショット1が
ライブレコードAの前スナップショットであり、スナッ
プショット3がライブレコードAの後スナップショット
である。
【0041】図5は、所望のレコードを取り込むための
プロセスを更に詳細に説明するためのフローチャートで
ある。第1ステップ71において、レコード番号の最下位
部分を用いて、ハッシュテーブルインデックス(図1の
参照番号30)をインデックスする。次に、ステップ72に
おいて、ハッシュテーブルインデックスのインデックス
されたエントリが検査され、それがゼロなのか、揮発性
メモリバッファプール(図4の参照番号60)内のバッフ
ァを指示するポインタなのかを判定する。エントリがゼ
ロの場合、所望のレコードがインデックスされ、所望の
レコードを不揮発性メモリ(図1の参照番号23)から取
り出す必要がある。従って、ステップ75において、フリ
ーバッファポインタ(図4の参照番号72)の値を、揮発
性メモリバッファプール(図4の参照番号60)の限界値
と比較し、フリーバッファが存在するか否かを判定す
る。フリーバッファが存在する場合には、ステップ76に
おいて、所望のレコードが不揮発性メモリ23の状態メモ
リ26から読み出され、フリーバッファに書き込まれる。
更に、フリーバッファは、ハッシュテーブルインデック
スにリンクされる。レコードが予めインデックスされて
いないものと仮定すると、フリーバッファに対するポイ
ンタはハッシュインデックステーブル内に位置する。他
方、レコードが予めインデックスされている場合、フリ
ーバッファは、状態メモリキャッシュ29内のインデック
スが付された一連のレコードにリンクされる。
【0042】ステップ75において、フリーバッファが検
出されない場合には、ステップ77において、現在のプロ
セスによって使用されるバッファリスト(バッファキュ
ー)が検査され、最も古いバッファを検出し、このバッ
ファを、ステップ76においてフラッシュし、再使用させ
る。
【0043】従来の”Rdb DBMS”及び”VAX DBMS”シス
テムにおいては、例えば、不揮発性状態メモリから読み
出されたレコードのリストを保持する。ライブレコード
が更新され、スナップショットが作製されると、更新さ
れたスナップショットレコードがリストにマークされ
る。各トランザクションのコミット時に、マークされた
レコードが不揮発性メモリにフラッシュされ、リストが
クリアされる。
【0044】ステップ78において、レコードXを取り込
むトランザクションが”リードライト”トランザクショ
ンである場合、ステップ76でフリーバッファに読み込ま
れたレコードを所望のレコードとする。しかし、このト
ランザクションが”リードオンリー”トランザクション
の場合、ステップ79において、レコードトランザクショ
ンシーケンス番号を検査し、ライブレコードが、リード
オンリートランザクションにとって適切なバージョンで
あるか否かを判定する。例えば、ライブレコードのトラ
ンザクションシーケンス番号がこのトランザクションの
トランザクションシーケンス番号よりも大きい場合、又
はライブレコードのトランザクションシーケンス番号が
このトランザクションのアクティブリスト中に検出され
る場合には、スナップショットバージョンが必要とされ
る。スナップショットが必要とされる場合には、最新の
スナップショットが不揮発性スナップショットメモリか
ら取り込まれる必要がある。ステップ90において、フリ
ーバッファポインタ(図4の参照番号72)の値を、揮発
性メモリバッファプール(図4の参照番号60)の限界値
と比較し、フリーバッファが存在するか否かを判定す
る。フリーバッファが存在する場合には、ステップ92に
おいて、レコードXの最新のスナップショットが、不揮
発性メモリ23のスナップショットメモリ31から読み出さ
れ、フリーバッファに書き込まれる。更に、フリーバッ
ファを、ライブレコードXを介してハッシュテーブルイ
ンデックスにリンクする。ステップ90において、フリー
バッファが検出されない場合には、ステップ91におい
て、バッファキューを検査し、最も古いバッファをフラ
ッシュさせ、その後ステップ92において再使用させる。
【0045】ステップ93において、ステップ92で不揮発
性メモリから読み出されたスナップショットを検査し、
スナップショットがリードオンリートランザクションに
とって適切なバージョンであるか否かを判定する。適切
なものでない場合、実行ループはステップ90に戻り、不
揮発性スナップショットメモリから次の最新のスナップ
ショットを取り込む。このプロセスは、”リードオンリ
ー”トランザクションにとって適切なバージョンが得ら
れるまで繰り返される。
【0046】ステップ72において、レコードがハッシュ
テーブル内にインデックスされていることが検出される
と、ステップ80において、インデックスされたレコード
が検査され、ステップ81において、インデックスされた
レコードが所望のレコードでるか否かを判定する。所望
のレコードでない場合には、ステップ82において、レコ
ードのレコードポインタ領域が検査され、インデックス
されたレコードが他のレコードを指示するか否かを判定
する。他のレコードを指示しない場合には、実行はステ
ップ75に分岐し、不揮発性メモリから所望のレコードを
得る。レコードポインタ領域が他のレコードを指示する
ポインタを含んでいる場合、ステップ83において、指示
されたレコードが検査され、実行ループがステップ81へ
と戻り、ステップ82において、ライブレコードの連鎖の
終了が検出されるまで、又はステップ81において所望の
レコードが検出されるまで、ライブレコードの全連鎖が
サーチされる。
【0047】ステップ81において所望のレコードが検出
されると、このレコードがリードオンリー操作に必要と
されるか否かに応じて、ステップ84において実行が分岐
する。そうでない場合には、他のトランザクションによ
ってロックされない限り(ステップ85においてテストさ
れる)、このレコードを使用することができる。レコー
ドが他のトランザクションによってロックされると、現
在のトランザクションは停止し、実行がオペレーティン
グシステムに分岐し、レコードをロックしているトラン
ザクションのようなの他のトランザクションに実行を移
す。
【0048】ステップ84において、このトランザクショ
ンがリードオンリートランザクションであると判定され
ると、ステップ86において、ライブレコードが検査さ
れ、レコードのライブバージョンが適切なバージョンで
あるか否かを判定する。例えば、ライブレコードのトラ
ンザクションシーケンス番号がこのトランザクションの
トランザクションシーケンス番号よりも大きい場合、又
はライブレコードのトランザクションシーケンス番号が
このトランザクションのアクティブリスト内に検出され
る場合には、スナップショットバージョンが必要とされ
る。スナップショットが必要な場合、ステップ87におい
て、ライブレコードのスナップショットポインタ領域か
らスナップショットポインタが得られ、スナップショッ
トポインタを用いて、スナップショットレコードがスナ
ップショットメモリキャッシュ内に存在するか否かを判
定する。スナップショットレコードがスナップショット
メモリキャッシュ内に存在しない場合、ステップ90〜93
において、レコードの適切なバージョンが不揮発性スナ
ップショットメモリから読み出される。スナップショッ
トレコードが指示される場合には、ステップ88におい
て、指示されたスナップショットレコードが検査され、
ステップ89において、それがレコードの適切なバージョ
ンであるか否かを判定する。適切なバージョンでない場
合、実行はステップ87へと分岐し、スナップショット連
鎖の終了に到達するまで、又はステップ92においてレコ
ードの適切なバージョンが不揮発性メモリから読み出さ
れるまで、又はステップ89においてレコードの適切なバ
ージョンが検出されるまで、上記の動作が繰り返され
る。
【0049】図6は、図4に示すデータ構造を維持しな
がらレコードを更新するための手続きを示すフローチャ
ートである。第1ステップ101 において、上述した図5
のステップ75及び77の方法で、フリーバッファを取得
し、更新されたレコードを受信する。次にステップ102
において、フリーバッファのロックをセットし、フリー
バッファのトランザクションシーケンス番号を、更新ト
ランザクションのトランザクションシーケンス番号にセ
ットし、フリーバッファのスナップショットポインタ
を、レコードXの更新前イメージを指示するようにセッ
トし、フリーバッファのレコードポインタをレコードX
の更新前イメージのレコードポインタにセットされる。
最後に、ステップ103 において、フリーバッファを指示
するレコードポインタをハッシュテーブルインデックス
30からのレコードの連鎖内に挿入する。図6の手続き
は、例えば、図5の手続きを用いてレコードを取り込ん
だ後、及び図5のステップ85において、レコードXが他
のトランザクションシーケンス番号によってロックされ
ていないことが検出された後、リードライトトランザク
ションによって使用される。この場合、図5の手続きに
よって取り込まれるレコードは、レコードXの”更新前
イメージ”である。換言すれば、ステップ103 におい
て、レコードXの更新前イメージを指示するポインタ
は、更新されたレコードを指示するポインタに変更され
る。
【0050】図4の例では、各レコードが固定の大きさ
であり、レコードトランザクションシーケンス番号が各
レコードと関連しているものとする。しかしながら、好
適例において、従来のシステムと同様に、図7と同様な
レコード編成を使用することが望ましい。ここでは、ぺ
ージが図4に示すように互いに連鎖しているが、各ペー
ジは、多数の可変長セグメントを具えている。各セグメ
ントは、関連するレコードトランザクションシーケンス
番号を有している。この特別な編成は、各スナップショ
ットページが、同一セグメントに関する多数の異なるバ
ージョンを具えることができるといった利点がある。図
7に示すように、スナップショットページ110 は、ロッ
クスペース112 、フリースペース113 、ファイル番号11
4 、検査合計115 、物理領域116 、及びページ番号117
を有している標準ページヘッダ111 を具えている。図7
のレコードフォーマットを使用する場合、例えば、トラ
ンザクションはファイル番号とページ番号の組み合わせ
によって状態メモリをアドレス指定する。ページ110
は、論理領域119 、指示するスナップショットページの
レコードトランザクションシーケンス番号120 、スナッ
プショットページポインタ121 、スナップショットペー
ジに対するライタの最大レコードトランザクションシー
ケンス番号122 、及び対応するライブページを指示する
ライブページポインタ123 を有している終端部又はペー
ジ末尾118 も具えている。
【0051】更に、スナップショットページ110 は、ペ
ージ上の全記憶セグメントに対するディレクトリである
ラインインデックス124 を具えている。このラインイン
デックス124 は、ページの頂部からのオフセット及びペ
ージ上の各記憶セグメントの長さを有している。次に、
スナップショットページ110 は、トランザクションシー
ケンス番号インデックス125 を具え、これはスナップシ
ョットページ上に記録されたレコードのバージョンを最
初に生成したトランザクションのトランザクションシー
ケンス番号を識別する。更に、スナップショットページ
110 は、スナップインデックス126 を具え、これはライ
ブページライン番号を用いて各スナップショットライン
エントリをマップする。スナップインデックスによっ
て、1ライブレコードの幾つかのスナップショットバー
ジョンを、同一のスナップショットページに含ませるこ
とができる。実際上、代表的な場合には、スナップショ
ットインデックスを使用することによって、各ライブペ
ージ毎にただ1個のスナップショットページのみを設け
るが、幾つかの場合には各ライブページ毎に2個のスナ
ップショットページを設け、稀な場合には3個以上のス
ナップショットページを各ライブページ毎に設ける。ス
ナップショットページ110 の残部は、インデックスの下
方向への成長及び記憶セグメントの上方向への成長に対
する、ページの底部における記憶セグメント127 と、ペ
ージの中心部におけるフリースペース128 を具えてい
る。
【0052】スナップショットページ110 は、ライブペ
ージと類似のフォーマットを具えている。各スナップシ
ョットページは、対応するライブページが記憶されるフ
ァイルとは異なるスナップショットファイルに記憶する
のが好ましい。従って、この場合、ハッシュテーブルイ
ンデックスは、ライブページ用のハッシュテーブルイン
デックスエントリとは異なるスナップショットメモリキ
ャッシュ内のスナップショットページ用のエントリを具
え、ファイル及びページ番号の連結を、ハッシュテーブ
ルインデックス30をインデックスする図4で使用される
レコード番号に対応させる。更に、図7のページフォー
マットを使用する場合には、レコードの更新を図5及び
図6に示すように行なうが、フリーバッファを使用して
更新されたページを受信する代わりに、フリーバッファ
を取り込み、更新前イメージページをフリーバッファに
コピーする方が幾分効果的である。この場合にはページ
の更新前イメージが更新のためにロックされ、フリーバ
ッファ内のコピーがスナップショットコピーとして使用
される。通常トランザクションはページ上のすべてのセ
グメントを更新するわけでないために、殆どの場合コピ
ーが必要となる。
【0053】上述したように、コンピュータ20は、”ア
ンドウ ”リカバリメカニズムを用いてトランザクション
を処理し、極めて高速なリカバリを提供する。その理由
は、障害トランザクションの影響のみを取り消す必要が
あるだけであるからである。しかし、各トランザクショ
ンがコミットされる度毎に、更新されたレコードを不揮
発性状態メモリに供給し、不揮発性スナップショットメ
モリを更新するのに、かなりの処理時間がかかる。しか
し、システムクラシュが極めて希な安定した環境下にお
いて、高速リカバリは特に重要ではない。複数トランザ
クションのために同一のレコードを更新する複数のトラ
ンザクション、及び多数のページを更新しない短いトラ
ンザクションの場合、各トランザクションの終了時ごと
に、更新されたレコードを状態メモリに供給するのに、
処理時間のかなりの部分が浪費される。
【0054】本発明は、”リドゥ”リカバリメカニズム
を使用し、各トランザクション後ごとに更新されたレコ
ードを状態メモリに供給しない。その代わりに、更新さ
れたレコードを更新後イメージログに順に書き込み、所
定の”チェックポイント”が生じる場合にのみ、更新さ
れたすべてのレコードを状態メモリにフラッシュする。
チェックポイントは、例えば、所定数のトランザクショ
ンがコミットされた後、又は最終チェックポイント後に
所定数のバイトが更新後イメージログに書き込まれた後
に発生する。従って、”リドゥ”リカバリメカニズム
は、更新されコミットされたレコードを揮発性メモリ内
に保持する。システムクラシュが発生すると、最後にコ
ミットされたトランザクションの終了時に存在する揮発
性状態メモリを、不揮発性メモリから最新チェックポイ
ント時に存在する状態メモリレコードを読み出すととも
に、更新後イメージログに記憶された変更を再び行うこ
とによって再構成する。例えば、変更を再実行する間、
更新後イメージログを順に読み出す。
【0055】本発明では、スナップショットレコード
を、揮発性状態メモリレコードとともに揮発性メモリに
記憶するとともに、トランザクションによる揮発性状態
メモリレコードの変更を、揮発性状態メモリレコードの
回復のために、不揮発性メモリ内の更新後イメージログ
に記録する。揮発性状態メモリレコードの更新のみなら
ず、揮発性スナップショットレコードの更新も、チェッ
クポイント時に不揮発性メモリにフラッシュする。更
に、選択されたレコードのフラッシュがチェックポイン
ト間で行われ、この時点においてすべての更新されたレ
コードをフラッシュする必要がない。更に、スナップシ
ョットの更新を更新後イメージログに記憶する必要がな
い。本発明によるこれらの利点は、選択状態メモリレコ
ードが不揮発性メモリに供給される以前に、選択レコー
ドの更新されたすべてのスナップショットを不揮発性メ
モリに供給することによって実現される。
【0056】本発明は、慣用の状態メモリ及びスナップ
ショットメモリのキャシィング機能を用い、状態メモリ
キャッシュ及びスナップショットメモリキャッシュを保
持できると共に、慣用の更新後イメージ記録機能を用い
て、更新後イメージログを保持できる利点もある。図1
のディジタルコンピュータ20に、これら慣用の機能を使
用している本発明の特別な例を、以下に図8を参照して
説明する。
【0057】図8は、本発明の特別な例によるディジタ
ルコンピュータ(図1の参照番号20)の動作を説明する
フローチャートである。このディジタルコンピュータの
動作は、ステップ150 において、例えば電力障害後にコ
ンピュータに電力を供給する際に開始する。ステップ15
0 において、最終チェックポイントの後にコミットされ
るトランザクションを計数するカウンタ(COUNTER )が
クリアされ、更新後イメージファイルに記録されるバイ
ト数を記録する変数(BYTES )がクリアされ、ハッシュ
テーブルインデックス(図4の参照番号30)をクリアす
ることによって、状態メモリキャッシュ(図1の参照番
号29)及びスナップショットメモリキャッシュ(図1の
参照番号32)がクリアされる。
【0058】次に、ステップ151 において、更新後イメ
ージログを用いて状態メモリを”ロールフォワード”し
て最終チェックポイントの後の更新後イメージログ内の
更新を状態メモリに含める。このことは、更新後イメー
ジログを前方向又は後方向に走査することによって行わ
れる。但し、慣用となっている”Rdb/VMS ”及び”VAX
DBMS”の更新後イメージ記録機能は、最終チェックポイ
ントで開始し、前方向に更新後イメージログを走査す
る。例えば、最終チェックポイントのポインタが、更新
後イメージログのヘッダレコードから読み出される。又
は、これらが、”ルートファイル”又は不揮発性メモリ
内のシステムカタログから読み出されることが好まし
い。
【0059】ステップ152 において、図2の参照番号41
との関連で上記説明したように、更新前イメージログを
走査し、更新前イメージログから不揮発性メモリへと更
新前イメージを書き込むことによって、故障トランザク
ションの影響を取り消す。
【0060】図2の参照番号42〜46と、図5及び図6と
を参照して説明したように、不揮発性メモリから揮発性
メモリへとレコードを記憶するとともに、更新されるべ
きレコードをロックすると共に、(オペレーティングシ
ステムの制御の下)ステップ153 において、トランザク
ション処理が再開される。
【0061】しかし、本発明の一態様によれば、選択さ
れたライブレコードを、すべての更新されたレコードが
不揮発性メモリにフラッシュされるチェックポイント間
において不揮発性状態メモリにフラッシュする。選択さ
れたライブレコードを不揮発性メモリにフラッシュし
て、例えば、バッファプール内にフリーバッファを与え
る(図5のステップ77及び91に対応する)。他の処理が
選択された状態レコードへのアクセスを望むときに、マ
ルチプロセッシング又はマルチプロセッサシステムにお
けるデータの無矛盾性を保証できるように、選択された
状態メモリレコードも不揮発性メモリに供給することが
できる。
【0062】ステップ154 において、選択された(ロッ
ク解除された)ライブレコードが状態メモリにフラッシ
ュすべきであると判定された場合、ステップ156 におい
て図2のルーチンが使用され、揮発性ライブレコードを
不揮発性状態メモリにフラッシュする。本発明の重要な
態様によれば、このフラッシュは、揮発性ライブレコー
ドを不揮発性状態メモリに供給する以前に、最初に、ス
テップ155 において、ライブレコードのアクティブスナ
ップショットのすべてを揮発性スナップショットメモリ
から不揮発性スナップショットメモリにフラッシュする
ものである。
【0063】ステップ157 において、トランザクション
y がコミット可能状態にある場合、実行はステップ15
8 に分岐する。例えば、各トランザクションは、ステッ
プ158 に実行を移つさせる”COMMIT”又はエンドステー
トメントを含むプログラムとすることができる。トラン
ザクションTy は、ステップ158 において、カウンタ
(COUNTER )をインクリメントし、ロックをその更新さ
れたレコードから解放するとともに、ステップ159 にお
いて、バイト数(BYTES )を更新されたレコード内のバ
イト数だけ増加させると共に、その更新されたレコード
を更新前イメージログファイルに書き込むことによって
コミットされる。次に、ステップ160 において、単一の
更新前イメージログファイルが使用される場合、”コミ
ット(commit)Ty ”レコードが更新前イメージログに
書き込まれ、個別の更新前イメージログファイルが各処
理毎に使用される他の場合、Ty トランザクション処理
用の更新前イメージログファイルが捨てられる。最後に
ステップ161 において、チェックポイントに到達したか
否かに基づき、実行が分岐する。このため、最終のチェ
ックポイント(COUNTER )の後、ステップ158 〜160 に
おいてコミットされたトランザクション数が、所定の臨
界値と比較され、更新後イメージログファイルに記録さ
れたバイト数(BYTES )も、所定の臨界値と比較され
る。いづれの臨界値も越えていない場合には、実行はス
テップ153 に分岐し、トランザクション処理を継続す
る。これ以外の場合には、実行がステップ162 に分岐
し、チェックポイントフラシュを開始する。本発明によ
れば、各ライブレコードがフラッシュされる以前に、ス
ナップショットレコードがフラッシュされる。
【0064】ステップ162 において、カウンタ(COUNTE
R )及びバイトアキュムレータ(BYTES )がクリアされ
る。その後、ステップ163 において、最終チェックポイ
ント以後更新されたスナップショットメモリキャッシュ
内のアクティブスナップショットレコードが、不揮発性
スナップショットメモリに書き込まれる。(レコードト
ランザクションシーケンス番号が現在のトランザクショ
ンのカットオフトランザクションシーケンス番号以上の
場合、スナップショットレコードはアクティブであ
る。)その後、ステップ164 において、更新された状態
メモリキャッシュレコードが、不揮発性状態メモリに書
き込まれる。最後に、ステップ165 において、チェック
ポイントレコードが更新後イメージログに記録され、チ
ェックポイントレコードのロケーションも、更新後イメ
ージログのヘッダ、又は”ルートファイル”に書き込ま
れる。
【0065】上記のように、ログファイルは、アトミッ
ク書き込み動作を用いて更新されたものと仮定する。ス
テップ163 において、更新後イメージログがキャッシュ
メモリに書き込まれるレコードの小部分においてのみ
(セグメント等の)変更を有しているシステムにおいて
のみ、図8のステップ163 におけるチェックポイントで
のキャッシュメモリ内の更新の書き込みを行うために、
アトミック動作が必要となることに留意すべきである。
この場合にのみ、再構成が、全レコードの原型コピーか
ら開始しない場合には、ステップ151 において、変更さ
れた部分、及び必ずしも必要ではないが変更されていな
い部分が再構成される。いづれにしても、アトミック書
き込みは、ステップ155 又は162 において、スナップシ
ョットレコードを不揮発性スナップショットメモリに供
給するのに必要とされない。しかし、多くのコンピュー
タシステムの場合、これらを考慮する必要はない。その
理由は、多くのコンピュータの場合、個々のレコードが
常に自動的に不揮発性メモリに書き込まれるからであ
る。
【0066】以上、所定のチェックポイントにおいて、
更新された状態レコードを不揮発性メモリに供給すると
共に、更新後イメージログ内にスナップショットレコー
ドを記録する必要なしに、不揮発性メモリ内にスナップ
ショットレコードを回復させる”リドゥ”記録の技術を
説明した。また、スナップショットレコードの回復は、
更新された状態レコードが不揮発性メモリに供給される
以前に、更新された状態レコードのアクティブ更新スナ
ップショットを不揮発性メモリに書き込むことによって
保証される。すべてのアクティブスナップショットが回
復されるため、更新後イメージログ内の更新がログ内の
最終チェックポイントから再実行された後に、分散トラ
ンザクション処理が容易に再開される。このスナップシ
ョットの回復は、多くの処理の中の1つのみが故障する
かもしれないマルチプロセッシング環境において特に有
利である。この場合には、1つの処理の故障が検出さ
れ、図8のステップ151 及び152 の回復処理が行われ、
故障プロセスのトランザクションを回復させる。従っ
て、他のプロセスは、故障プロセスの影響を受けない。
【図面の簡単な説明】
【図1】トランザクション処理用に構成されたディジタ
ルコンピュータを示すブロック図である。
【図2】図1のコンピュータにおいてトランザクション
処理を実行すると共に、”アンドウ ”リカバリ方法を使
用する手続きを示すフローチャートである。
【図3】トランザクション処理システムにおいてスナッ
プショットが有効である理由を説明するためのタイミン
グ図である。
【図4】ポインタを用いて揮発性状態メモリレコードと
揮発性スナップショットレコードとをハッシュテーブル
にリンクさせ、特定のレコードを揮発性メモリ内で検出
可能にするデータ構造を説明するための図である。
【図5】図4のデータ構造のポインタを用いて、所望の
レコードを取り込むための手続きを示すフローチャート
である。
【図6】状態メモリレコードがトランザクションによっ
て更新される際に、状態メモリレコードからスナップシ
ョットレコードを生成するための手続きを示すフローチ
ャートである。
【図7】可変長セグメントを含む1ページの好適レコー
ド編成を示す図である。
【図8】本発明の特定の実施例に従って動作するディジ
タルコンピュータの動作を示すフローチャートである。
【符号の説明】
20 ディジタルコンピュータ 21 中央処理ユニット 22 揮発性メモリ 23 不揮発性メモリ 24 入力/出力ユニット 25 プログラムメモリ 26 状態メモリ 27 更新前イメージログファイル 28 更新後イメージログファイル 29 状態メモリキャッシュ 30 ハッシュテーブルインデックス 31 スナップショットメモリ 32 スナップショットメモリキャッシュ 61 フリーバッファ 62 ライブレコード 63 ロックフラグ 64 トランザクションシーケンス番号 65 ポインタ 66 ポインタ 67 スナップショットレコード 68 ロック 69 レコードトランザクションシーケンス番号 70 ポインタ 110 スナップショットページ 111 標準ページヘッダ 112 ロックスペース 113 フリースペース 114 ファイル番号 115 検査合計 116 物理領域 117 ページ番号 118 ページ末尾 119 論理領域 120 指示するスナップショットページ 121 スナップショットページポインタ 122 スナップショットページ 123 ライブページポインタ 124 ラインインデックス 125 トランザクションシーケンス番号インデックス 126 スナップインデックス 127 記憶セグメント 128 フリースペース
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チルマンジュナ ケイ レンガラジャン アメリカ合衆国 ニューハンプシャー州 03060 ナシュア エス ハムレット ドライブ 6 (56)参考文献 特開 昭63−195755(JP,A) 特開 平3−92945(JP,A) 特開 平2−206842(JP,A) 特開 平2−122362(JP,A) 特開 平1−113836(JP,A) 特開 昭63−133240(JP,A) 特開 平3−3046(JP,A) 特開 平1−261746(JP,A) 特開 昭63−307551(JP,A) 特公 平3−4945(JP,B2) 米国特許5175849(US,A) 米国特許5287496(US,A) 米国特許4949251(US,A) T.HEADER他著,”PRINC IPLES OF TRANSACTI ON−ORIENTED DATABA SE RECOVERY”,ACM C OMPUTING SURVEYS, (1983),VOL.15,NO.4,P. 287−317 C.MOHAN 他著,”ALIE S:A TRANSACTION RE COVERY METHOD SUPP ORTING FINE−GRANUL ARITY LOCKING AND PARTIAL ROLLBACKS USING WRITE−AHEAD LOGGING”,IBM RESER CH REPORT ,(1990),RJ 6649 M.SULLIVAN 他著,”US ING WRITE PROTECTE D DATA STRUCTURE T O IMPROVE SOFTWAR RDB/VMS−A COMPREH ENSIVE GUIDE ,DIGI TAL EXPRESS RDB/VMS USER DOCU MENTATION,DIGITAL EQUIPMENT CORP.

Claims (15)

    (57)【特許請求の範囲】
  1. 【請求項1】 ディジタルコンピュータを作動させ、ト
    ランザクションを処理するための方法であって、該方法
    が: a)不揮発性状態メモリから状態メモリレコードを読み
    出し、該状態メモリレコードを揮発性状態メモリキャッ
    シュに書き込む行程と; b)揮発性状態メモリキャッシュ内の選択された状態メ
    モリレコードから、揮発性スナップショットメモリキャ
    ッシュ内にスナップショットコピーを作成し、揮発性状
    態メモリキャッシュ内の各選択状態メモリレコードから
    作成されるスナップショットコピーの対応セットを、揮
    発性スナップショットメモリキャッシュ内に保持し、前
    記揮発性状態メモリキャッシュ内の選択された状態メモ
    リレコードに対して、前記トランザクションによって指
    定された変更を行うとともに、前記変更を不揮発性メモ
    リ内の更新後イメージログにコミットする行程と; c)揮発性スナップショットメモリキャッシュからスナ
    ップショットコピーを読み出し、該スナップショットコ
    ピーを不揮発性スナップショットメモリに書き込み、揮
    発性状態メモリキャッシュから選択された状態メモリレ
    コードを読み出し、該選択された状態メモリレコードを
    不揮発性状態メモリに書き込む行程とを具え、 前記行程c)において、各選択された状態メモリレコー
    ドを揮発性状態メモリキャッシュから読み出し、不揮発
    性状態メモリに書き込む前に、各選択された状態メモリ
    レコードのスナップショットコピーに対応するセットを
    揮発性スナップショットメモリキャッシュから読み出
    し、不揮発性スナップショットメモリに書き込むことを
    特徴とするトランザクション処理方法。
  2. 【請求項2】 行程b)及び行程c)が順次に繰り返え
    され、且つ行程b)において、所定数のトランザクショ
    ンによって指定された変更がコミットされた後に、行程
    c)が実行されることを特徴とする請求項1に記載のト
    ランザクション処理方法。
  3. 【請求項3】 行程b)及び行程c)が順次に繰り返え
    され、且つコミットされた変更によって更新後イメージ
    ログ内の所定量の記憶スペースが占有された後に、行程
    c)が実行されることを特徴とする請求項1に記載のト
    ランザクション処理方法。
  4. 【請求項4】 選択された状態メモリレコードのうちの
    特定の1つを揮発性状態メモリキャッシュから読み出
    し、不揮発性状態メモリに書き込むことにより、他の状
    態メモリレコードが不揮発性状態メモリから読み出され
    たとき、この他の状態メモリレコードを書き込む記憶ス
    ペースを揮発性メモリスに提供することを特徴とする請
    求項1に記載のトランザクション処理方法。
  5. 【請求項5】 揮発性状態メモリキャッシュ及び揮発性
    スナップショットメモリキャッシュを中断させる故障か
    らの回復行程を更に具えている請求項1に記載のトラン
    ザクション処理方法であって、 前記故障からの回復行
    程が、不揮発性状態メモリから読み出された状態メモリ
    レコードに、更新後イメージログにコミットされた変更
    を実行し、次いでトランザクション処理を再開させる行
    程を具えていることを特徴とするトランザクション処理
    方法。
  6. 【請求項6】 前記トランザクション処理の再開行程
    が、不揮発性スナップショットメモリから、故障以前に
    不揮発性スナップショットメモリに書き込まれたスナッ
    プショットコピーを読み出す行程を具えていることを特
    徴とする請求項5に記載のトランザクション処理方法。
  7. 【請求項7】 揮発性状態メモリキャッシュ内の各選択
    状態メモリレコードから作成されたスナップショットコ
    ピーの対応セットを揮発性スナップショットメモリキャ
    ッシュ内に保持する前記行程が、前記対応セット内に含
    まれているスナップショットコピーのポインタによりリ
    ンクされたリストを保持することによって行われ、前記
    リンクされたリストは、揮発性状態メモリ内の前記各選
    択状態メモリレコードにポインタによりリンクされるこ
    とを特徴とする請求項1に記載のトランザクション処理
    方法。
  8. 【請求項8】 前記トランザクションのうちの特定の1
    つの処理が開始する際に存在する、コミットされた状態
    メモリレコードの適切なコピーをサーチする行程を更に
    具え、前記適切なコピーは前記揮発性メモリ内の前記状
    態メモリキャッシュから又は前記不揮発性メモリ内の前
    記状態メモリから取り出された状態メモリレコード、又
    は前記揮発性メモリ内の前記スナップショットキャッシ
    ュから又は前記不揮発性メモリ内の前記スナップショッ
    トキャッシュから取り出されたスナップショットレコー
    ドであることを特徴とする請求項1に記載のトランザク
    ション処理方法。
  9. 【請求項9】 前記スナップショットコピーの作成行程
    が、ポインタを変更し、状態メモリレコードを保持して
    いるバッファを揮発性状態メモリキャッシュから揮発性
    スナップショットメモリキャッシュに転送するととも
    に、フリーバッファを揮発性状態メモリキャッシュに割
    り当て、状態メモリレコードの変更されたコピーを受信
    させることによって行われることを特徴とする請求項1
    に記載のトランザクション処理方法。
  10. 【請求項10】 前記スナップショットコピー作成行程
    が、フリーバッファを揮発性スナップショットメモリキ
    ャッシュに割り当てるとともに、状態メモリレコード
    を、揮発性スナップショットメモリキャッシュに割り当
    てられたフリーバッファにコピーすることによって行わ
    れることを特徴とする請求項1に記載のトランザクショ
    ン処理方法。
  11. 【請求項11】 ディジタルコンピュータを作動させ、
    トランザクションを処理するための方法であって、該方
    法が: a)不揮発性状態メモリから状態メモリレコードを読み
    出し、該状態メモリレコードを揮発性状態メモリキャッ
    シュに書き込む行程と; b)揮発性状態メモリキャッシュ内の選択された状態メ
    モリレコードから、揮発性スナップショットメモリキャ
    ッシュ内にスナップショットコピーを作成し、揮発性状
    態メモリキャッシュ内の各選択状態メモリレコードから
    作成されるスナップショットコピーの対応セットを、揮
    発性スナップショットメモリキャッシュ内に保持し、前
    記トランザクションのうちの特定の1つの処理が開始す
    る際にしばしば存在する特定の状態メモリレコードの適
    切なコピーを、揮発性状態メモリキャッシュ及びスナッ
    プショットメモリキャッシュ内でサーチし、前記揮発性
    状態メモリキャッシュ内の選択された状態メモリレコー
    ドに対して、前記トランザクションによって指定された
    変更を行うとともに、前記変更を、不揮発性メモリ内の
    更新後イメージログにコミットし、この行程において複
    数のトランザクションによって指定される変更を、前記
    複数のトランザクションのうちの幾つかがコミットされ
    る前に行う行程と; c)揮発性スナップショットメモリキャッシュからスナ
    ップショットコピーを読み出し、該スナップショットコ
    ピーを不揮発性スナップショットメモリに書き込み、揮
    発性状態メモリキャッシュから選択された状態メモリレ
    コードを読み出し、該選択された状態メモリレコードを
    不揮発性状態メモリに書き込み、この行程において各選
    択された状態メモリレコードを揮発性状態メモリキャッ
    シュから読み出し、不揮発性状態メモリに書き込む前
    に、各選択状態メモリレコードのスナップショットコピ
    ーの対応するセットを揮発性スナップショットメモリキ
    ャッシュから読み出し、不揮発性スナップショットメモ
    リに書き込む行程と; d)揮発性状態メモリキャッシュ及び揮発性スナップシ
    ョットメモリキャッシュを中断させる故障から回復させ
    る行程とを具え、該故障からの回復行程が、不揮発性状
    態メモリから読み出される状態メモリレコードに、更新
    後イメージログにコミットされた変更を実行し、次いで
    トランザクション処理を再開させる行程を具え、該トラ
    ンザクション処理の再開行程が、不揮発性スナップショ
    ットメモリから、故障前に不揮発性スナップショットメ
    モリに書き込まれたスナップショットコピーを読み出す
    行程を具えていることを特徴とするトランザクション処
    理方法。
  12. 【請求項12】 前記行程b)及び行程c)が順次に繰
    り返され、行程b)において、所定数のトランザクショ
    ンによって指定された変更がコミットされた後に、行程
    c)が実行されることを特徴とする請求項11に記載のト
    ランザクション処理方法。
  13. 【請求項13】 行程b)及び行程c)が順次に繰り返
    えされ、且つコミットされた変更によって更新後イメー
    ジログ内の所定量の記憶スペースが占有された後に、行
    程c)が実行されることを特徴とする請求項11に記載の
    トランザクション処理方法。
  14. 【請求項14】 選択された状態メモリレコードのうち
    の特定の1つを揮発性状態メモリキャッシュから読み出
    し、不揮発性状態メモリに書き込むことにより、他の状
    態メモリレコードが不揮発性状態メモリから読み出され
    たとき、この他の状態メモリレコードを書き込む記憶ス
    ペースを揮発性メモリに提供することを特徴とする請求
    項11に記載のトランザクション処理方法。
  15. 【請求項15】 揮発性メモリ(22)と; 不揮発性メモリ(23)と; 前記不揮発性メモリ及び前記揮発性メモリに結合され、
    前記不揮発性メモリからレコードを読み出し前記揮発性
    メモリに書き込み、且つ前記揮発性メモリからレコード
    を読み出し前記不揮発性メモリに書き込む中央処理装置
    (21)とを具え、該中央処理装置はトランザクション
    処理プログラム(25)でプログラムされ、該プログラ
    ムされた中央処理装置は、 選択されたトランザクションにより処理するために指定
    のレコードを取り出す手段であって、該手段は、各指定
    のレコードを、該指定のレコードが前記揮発性メモリ内
    にあるときは前記揮発性メモリから取り出し、そうでな
    い場合には各指定のレコードを前記不揮発性メモリから
    取り出し、前記揮発性メモリに記憶し、且つ前記トラン
    ザクションのための各指定のレコードの適切なコピーを
    取り出し、前記適切なコピーとして前記揮発性メモリ内
    の状態メモリキャッシュ(29)から又は前記不揮発性
    メモリ内の状態メモリ(26)から状態メモリレコー
    ド、又は前記揮発性メモリ内のスナップショットメモリ
    キャッシュ(32)から又は前記不揮発性メモリ内のス
    ナップショットメモリ(31)からスナップショットレ
    コードを取り出すフェッチ手段(71−93)と; 前記揮発性状態メモリキャッシュ内の選択された状態メ
    モリレコードのスナップショットコピーを前記揮発性ス
    ナップショットメモリキャッシュ内に作成して、前記揮
    発性状態メモリキャッシュ内の各選択された状態レコー
    ドが前記揮発性スナップショットキャッシュ内にスナッ
    プショットコピーの対応セットを有するようにするスナ
    ップショット作成手段(101,102,103)と; 前記揮発性状態メモリキャッシュ内の選択された状態メ
    モリレコードに前記トランザクションにより指定された
    変更を実行する手段(153)と; 前記変更を前記不揮発性メモリ内の更新後イメージログ
    (28)にコミットする手段(159,160)と; スナップショットコピーを前記スナップショットメモリ
    キャッシュから読み出し、該スナップショットコピーを
    前記不揮発性メモリ内のスナップショットメモリに書き
    込み、且つ選択された状態メモリレコードを前記状態メ
    モリキャッシュから読み出し、該選択された状態メモリ
    レコードを前記不揮発性メモリ内の状態メモリに書き込
    むキャッシュフラッシング手段(163,164)とを
    具え、該キャッシュフラッシング手段が各選択された状
    態メモリレコードを前記状態メモリキャッシュから読み
    出し、前記不揮発性メモリ内の状態メモリに書き込む前
    に、各選択された状態メモリレコードのスナップショッ
    トコピーの対応するセットを前記スナップショットメモ
    リキャッシュから読み出し、該各選択された状態メモリ
    レコードのスナップショットコピーの対応するセットを
    前記不揮発性メモリ内のスナップショットメモリに書き
    込む手段を具えていることを特徴とするトランザクショ
    ン処理装置。
JP4159414A 1991-06-18 1992-06-18 トランザクション処理方法及び装置 Expired - Lifetime JP2679779B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/717212 1991-06-18
US7/717212 1991-06-18
US07/717,212 US5369757A (en) 1991-06-18 1991-06-18 Recovery logging in the presence of snapshot files by ordering of buffer pool flushing

Publications (2)

Publication Number Publication Date
JPH05197598A JPH05197598A (ja) 1993-08-06
JP2679779B2 true JP2679779B2 (ja) 1997-11-19

Family

ID=24881145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4159414A Expired - Lifetime JP2679779B2 (ja) 1991-06-18 1992-06-18 トランザクション処理方法及び装置

Country Status (4)

Country Link
US (1) US5369757A (ja)
JP (1) JP2679779B2 (ja)
DE (1) DE4220198C2 (ja)
GB (1) GB2256952B (ja)

Families Citing this family (201)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5469562A (en) * 1992-06-26 1995-11-21 Digital Equipment Corporation Durable atomic storage update manager
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
JPH06266597A (ja) * 1993-03-11 1994-09-22 Fujitsu Ltd ログ取得方式
US5581750A (en) * 1993-03-15 1996-12-03 International Business Machines Corporation System and method for improving data recovery performance
US6138126A (en) 1995-05-31 2000-10-24 Network Appliance, Inc. Method for allocating files in a file system integrated with a raid disk sub-system
US7174352B2 (en) 1993-06-03 2007-02-06 Network Appliance, Inc. File system image transfer
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US5553279A (en) * 1993-10-08 1996-09-03 International Business Machines Corporation Lossless distribution of time series data in a relational data base network
US5642503A (en) * 1993-12-15 1997-06-24 Microsoft Corporation Method and computer system for implementing concurrent accesses of a database record by multiple users
JP2735479B2 (ja) * 1993-12-29 1998-04-02 株式会社東芝 メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
AU2663095A (en) * 1994-06-10 1996-01-05 Sequoia Systems, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5682471A (en) * 1994-10-06 1997-10-28 Billings; Thomas Neal System for transparently storing inputs to non-volatile storage and automatically re-entering them to reconstruct work if volatile memory is lost
US5596710A (en) * 1994-10-25 1997-01-21 Hewlett-Packard Company Method for managing roll forward and roll back logs of a transaction object
US5608865A (en) * 1995-03-14 1997-03-04 Network Integrity, Inc. Stand-in Computer file server providing fast recovery from computer file server failures
US6044475A (en) * 1995-06-16 2000-03-28 Lucent Technologies, Inc. Checkpoint and restoration systems for execution control
US5778168A (en) * 1995-09-11 1998-07-07 Sun Microsystems, Inc. Transaction device driver technique for a journaling file system to ensure atomicity of write operations to a computer mass storage device
US5864657A (en) * 1995-11-29 1999-01-26 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system
US5751939A (en) * 1995-11-29 1998-05-12 Texas Micro, Inc. Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory
US5870758A (en) * 1996-03-11 1999-02-09 Oracle Corporation Method and apparatus for providing isolation levels in a database system
DE19758588B4 (de) * 1996-12-16 2006-01-05 Fujitsu Ltd., Kawasaki Computersystem mit Prüfpunkteinrichtung
US5996088A (en) * 1997-01-22 1999-11-30 Oracle Corporation High-speed database checkpointing through sequential I/O to disk
US5933838A (en) * 1997-03-10 1999-08-03 Microsoft Corporation Database computer system with application recovery and recovery log sequence numbers to optimize recovery
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
JP4363676B2 (ja) * 1997-10-31 2009-11-11 株式会社東芝 コンピュータシステム
US6182086B1 (en) * 1998-03-02 2001-01-30 Microsoft Corporation Client-server computer system with application recovery of server applications and client applications
US6799224B1 (en) 1998-03-10 2004-09-28 Quad Research High speed fault tolerant mass storage network information server
US6260155B1 (en) 1998-05-01 2001-07-10 Quad Research Network information server
US6351754B1 (en) * 1998-06-23 2002-02-26 Oracle Corporation Method and system for controlling recovery downtime
US8631066B2 (en) * 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6370528B1 (en) * 1999-05-28 2002-04-09 Unisys Corporation High speed method for flushing data buffers and updating database structure control information
US6351744B1 (en) * 1999-05-28 2002-02-26 Unisys Corporation Multi-processor system for database management
US6738757B1 (en) * 1999-06-02 2004-05-18 Workwise, Inc. System for database monitoring and agent implementation
DE10059006B4 (de) * 1999-12-30 2004-04-15 International Business Machines Corp. Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern
US6647473B1 (en) * 2000-02-16 2003-11-11 Microsoft Corporation Kernel-based crash-consistency coordinator
US6651075B1 (en) * 2000-02-16 2003-11-18 Microsoft Corporation Support for multiple temporal snapshots of same volume
US6658596B1 (en) * 2000-03-13 2003-12-02 International Business Machines Corporation Automated queue recovery using element- based journaling
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
US7043504B1 (en) * 2000-04-10 2006-05-09 International Business Machines Corporation System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets
US7263476B1 (en) 2000-06-12 2007-08-28 Quad Research High speed information processing and mass storage system and method, particularly for information and application servers
US7072916B1 (en) * 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6654912B1 (en) * 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
US7565353B2 (en) * 2001-05-21 2009-07-21 Mudalla Technology, Inc. Trusted transactional internet kiosk
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US20030055809A1 (en) * 2001-09-18 2003-03-20 Sun Microsystems, Inc. Methods, systems, and articles of manufacture for efficient log record access
DE60232165D1 (de) 2001-09-28 2009-06-10 Commvault Systems Inc System und verfahren zur erzeugung und verwaltung von schnellwiederherstellungsvolumen
WO2003038683A1 (en) * 2001-11-01 2003-05-08 Verisign, Inc. Transactional memory manager
US6857001B2 (en) * 2002-06-07 2005-02-15 Network Appliance, Inc. Multiple concurrent active file systems
US7823060B2 (en) * 2002-06-07 2010-10-26 Microsoft Corporation Undo/redo architecture across multiple files
US7844577B2 (en) 2002-07-15 2010-11-30 Symantec Corporation System and method for maintaining a backup storage system for a computer system
US7107385B2 (en) * 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
JP2004086721A (ja) * 2002-08-28 2004-03-18 Nec Corp データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム
GB2393273A (en) * 2002-09-20 2004-03-24 Sharp Kk Method and apparatus for detecting an error in writing to persistent memory
AU2003279847A1 (en) 2002-10-07 2004-05-04 Commvault Systems, Inc. System and method for managing stored data
JP3974538B2 (ja) * 2003-02-20 2007-09-12 株式会社日立製作所 情報処理システム
US6925523B2 (en) * 2003-03-03 2005-08-02 Agilent Technologies, Inc. Managing monotonically increasing counter values to minimize impact on non-volatile storage
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム
US7890466B2 (en) * 2003-04-16 2011-02-15 Oracle International Corporation Techniques for increasing the usefulness of transaction logs
US7398422B2 (en) * 2003-06-26 2008-07-08 Hitachi, Ltd. Method and apparatus for data recovery system using storage based journaling
US7111136B2 (en) 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
US20050022213A1 (en) 2003-07-25 2005-01-27 Hitachi, Ltd. Method and apparatus for synchronizing applications for data recovery using storage based journaling
US20050015416A1 (en) 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
JP4124348B2 (ja) 2003-06-27 2008-07-23 株式会社日立製作所 記憶システム
JP4321705B2 (ja) * 2003-07-29 2009-08-26 株式会社日立製作所 スナップショットの取得を制御するための装置及び記憶システム
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
WO2005050385A2 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. System and method for performing integrated storage operations
WO2005050386A2 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. System and method for performing a snapshot and for restoring data
US7281023B2 (en) * 2003-12-15 2007-10-09 At&T Knowledge Ventures, L.P. Architecture of database application with robust online recoverability
US7313720B1 (en) 2004-02-12 2007-12-25 Network Appliance, Inc. Technique for increasing the number of persistent consistency point images in a file system
US7440966B2 (en) * 2004-02-12 2008-10-21 International Business Machines Corporation Method and apparatus for file system snapshot persistence
US20050203903A1 (en) * 2004-03-10 2005-09-15 Rajan Rajeev B. System and method for locking and isolation in a storage platform
US7146386B2 (en) * 2004-03-29 2006-12-05 Microsoft Corporation System and method for a snapshot query during database recovery
US7213103B2 (en) * 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
US8074030B1 (en) * 2004-07-20 2011-12-06 Oracle America, Inc. Using transactional memory with early release to implement non-blocking dynamic-sized data structure
US7703098B1 (en) 2004-07-20 2010-04-20 Sun Microsystems, Inc. Technique to allow a first transaction to wait on condition that affects its working set
US8090691B2 (en) * 2004-08-13 2012-01-03 Computer Associates Think, Inc. System and method for variable block logging with log-ahead buffers
US7653665B1 (en) * 2004-09-13 2010-01-26 Microsoft Corporation Systems and methods for avoiding database anomalies when maintaining constraints and indexes in presence of snapshot isolation
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US7711709B2 (en) * 2004-12-27 2010-05-04 Siebel Systems, Inc. Efficient storing and querying of snapshot measures
US7440979B2 (en) * 2005-03-30 2008-10-21 Sap Ag Snapshots for instant backup in a database management system
DE102005027873A1 (de) * 2005-06-16 2006-12-28 Siemens Ag Verfahren zur Steigerung der Performanz bei einem so genannten Flash-Dateisystems
US8495015B2 (en) * 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7523146B2 (en) 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7873683B2 (en) * 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US20070005874A1 (en) * 2005-07-01 2007-01-04 Dan Dodge File system storing transaction records in flash-like media
US7949854B1 (en) 2005-09-28 2011-05-24 Oracle America, Inc. Trace unit with a trace builder
US8024522B1 (en) 2005-09-28 2011-09-20 Oracle America, Inc. Memory ordering queue/versioning cache circuit
US8019944B1 (en) 2005-09-28 2011-09-13 Oracle America, Inc. Checking for a memory ordering violation after a speculative cache write
US7676634B1 (en) 2005-09-28 2010-03-09 Sun Microsystems, Inc. Selective trace cache invalidation for self-modifying code via memory aging
US7966479B1 (en) 2005-09-28 2011-06-21 Oracle America, Inc. Concurrent vs. low power branch prediction
US7987342B1 (en) 2005-09-28 2011-07-26 Oracle America, Inc. Trace unit with a decoder, a basic-block cache, a multi-block cache, and sequencer
US8499293B1 (en) 2005-09-28 2013-07-30 Oracle America, Inc. Symbolic renaming optimization of a trace
US7877630B1 (en) * 2005-09-28 2011-01-25 Oracle America, Inc. Trace based rollback of a speculatively updated cache
US8051247B1 (en) 2005-09-28 2011-11-01 Oracle America, Inc. Trace based deallocation of entries in a versioning cache circuit
US8015359B1 (en) 2005-09-28 2011-09-06 Oracle America, Inc. Method and system for utilizing a common structure for trace verification and maintaining coherency in an instruction processing circuit
US7870369B1 (en) 2005-09-28 2011-01-11 Oracle America, Inc. Abort prioritization in a trace-based processor
US7953961B1 (en) 2005-09-28 2011-05-31 Oracle America, Inc. Trace unit with an op path from a decoder (bypass mode) and from a basic-block builder
US7937564B1 (en) 2005-09-28 2011-05-03 Oracle America, Inc. Emit vector optimization of a trace
US8370576B1 (en) 2005-09-28 2013-02-05 Oracle America, Inc. Cache rollback acceleration via a bank based versioning cache ciruit
US8037285B1 (en) * 2005-09-28 2011-10-11 Oracle America, Inc. Trace unit
US8032710B1 (en) 2005-09-28 2011-10-04 Oracle America, Inc. System and method for ensuring coherency in trace execution
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
EP1974296B8 (en) 2005-12-19 2016-09-21 Commvault Systems, Inc. Systems and methods for performing data replication
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8661216B2 (en) 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
US8112396B2 (en) * 2006-06-07 2012-02-07 Emc Corporation Backup and recovery of integrated linked databases
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US7953698B2 (en) * 2006-08-03 2011-05-31 Sybase, Inc. Replication system with methodology for replicating stored procedure calls
US7860826B2 (en) 2006-08-04 2010-12-28 Apple Inc. Method and system for using global equivalency sets to identify data during peer-to-peer synchronization
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8566503B2 (en) 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US8010745B1 (en) 2006-09-27 2011-08-30 Oracle America, Inc. Rolling back a speculative update of a non-modifiable cache line
US8370609B1 (en) 2006-09-27 2013-02-05 Oracle America, Inc. Data cache rollbacks for failed speculative traces with memory operations
US20080154842A1 (en) * 2006-12-20 2008-06-26 International Business Machines Corporation Enhanced relational database management system and method
US7657769B2 (en) 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US20080222111A1 (en) * 2007-03-07 2008-09-11 Oracle International Corporation Database system with dynamic database caching
US8290808B2 (en) 2007-03-09 2012-10-16 Commvault Systems, Inc. System and method for automating customer-validated statement of work for a data storage environment
US7702662B2 (en) * 2007-05-16 2010-04-20 International Business Machines Corporation Method and system for handling reallocated blocks in a file system
US7739547B2 (en) * 2007-06-07 2010-06-15 International Business Machines Corporation Failure recovery and error correction techniques for data loading in information warehouses
US8615496B2 (en) * 2007-10-19 2013-12-24 Apple Inc. File system reliability using journaling on a storage medium
CN101359301A (zh) * 2008-08-19 2009-02-04 成都市华为赛门铁克科技有限公司 一种自动快照的方法及设备
US9542431B2 (en) 2008-10-24 2017-01-10 Microsoft Technology Licensing, Llc Cyclic commit transaction protocol
EP2300921B1 (en) 2008-10-30 2011-11-30 International Business Machines Corporation Flashcopy handling
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8719767B2 (en) 2011-03-31 2014-05-06 Commvault Systems, Inc. Utilizing snapshots to provide builds to developer computing devices
US9092500B2 (en) 2009-09-03 2015-07-28 Commvault Systems, Inc. Utilizing snapshots for access to databases and other applications
US8595191B2 (en) 2009-12-31 2013-11-26 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
US8433682B2 (en) 2009-12-31 2013-04-30 Commvault Systems, Inc. Systems and methods for analyzing snapshots
CN101876949B (zh) * 2009-11-30 2012-04-25 威盛电子股份有限公司 数据储存系统与方法
US8793288B2 (en) * 2009-12-16 2014-07-29 Sap Ag Online access to database snapshots
US10275347B2 (en) * 2010-03-08 2019-04-30 Excalibur Ip, Llc System, method and computer program product for managing caches
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8352422B2 (en) 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
US8489656B2 (en) 2010-05-28 2013-07-16 Commvault Systems, Inc. Systems and methods for performing data replication
US8589361B2 (en) 2010-08-30 2013-11-19 Oracle International Corporation Reduced disk space standby
IL208641A0 (en) * 2010-10-12 2010-12-30 Eci Telecom Ltd Method for accelerating start up of a computerized system
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9723074B2 (en) * 2011-11-15 2017-08-01 Alcatel Lucent Method and apparatus for in the middle primary backup replication
US8868492B2 (en) 2011-06-15 2014-10-21 Oracle International Corporation Method for maximizing throughput and minimizing transactions response times on the primary system in the presence of a zero data loss standby replica
US9442948B2 (en) * 2011-06-15 2016-09-13 Sap Se Resource-specific control blocks for database cache
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US10387331B2 (en) * 2012-06-05 2019-08-20 Vmware, Inc. Process for maintaining data write ordering through a cache
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9336226B2 (en) 2013-01-11 2016-05-10 Commvault Systems, Inc. Criteria-based data synchronization management
US9349132B2 (en) * 2013-03-13 2016-05-24 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing a group command with a predictive query interface
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9477557B2 (en) * 2013-03-28 2016-10-25 Microsoft Technology Licensing, Llc Transaction processing using torn write detection
US9110847B2 (en) 2013-06-24 2015-08-18 Sap Se N to M host system copy
US10311154B2 (en) 2013-09-21 2019-06-04 Oracle International Corporation Combined row and columnar storage for in-memory databases for OLTP and analytics workloads
US9740571B1 (en) * 2013-10-11 2017-08-22 EMC IP Holding Company LLC Intelligent continuous data protection snapshot based backups
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US9558080B2 (en) * 2013-10-31 2017-01-31 Microsoft Technology Licensing, Llc Crash recovery using non-volatile memory
WO2015112148A2 (en) 2014-01-23 2015-07-30 Hewlett-Packard Development Company, L.P. Atomically committing write requests
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9619506B2 (en) * 2014-11-25 2017-04-11 Sap Se Method and system to avoid deadlocks during a log recovery
WO2016122549A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Read only bufferpool
US10311150B2 (en) 2015-04-10 2019-06-04 Commvault Systems, Inc. Using a Unix-based file system to manage and serve clones to windows-based computing clients
WO2017012667A1 (en) * 2015-07-22 2017-01-26 Huawei Technologies Co., Ltd. Hardware transactional memory in non volatile memory with log and no lock
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
WO2017188484A1 (ko) * 2016-04-29 2017-11-02 주식회사 울프슨랩 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10831775B2 (en) * 2017-01-06 2020-11-10 International Business Machines Corporation Efficient representation, access and modification of variable length objects
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US11675761B2 (en) 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data
US10740022B2 (en) 2018-02-14 2020-08-11 Commvault Systems, Inc. Block-level live browsing and private writable backup copies using an ISCSI server
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949251A (en) 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system
US5175849A (en) 1988-07-28 1992-12-29 Amdahl Corporation Capturing data of a database system
US5287496A (en) 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507751A (en) * 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
US4752910A (en) * 1984-10-30 1988-06-21 Prime Computer, Inc. Method and apparatus for continuous after-imaging
JPS63133240A (ja) * 1986-11-25 1988-06-06 Hitachi Ltd 常駐テ−ブルの内容保証方式
JPS63307551A (ja) * 1987-06-08 1988-12-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 先書きロギング型のトランザクシヨン向けシステム中のロールバツク方法
JPH01113836A (ja) * 1987-10-28 1989-05-02 Hitachi Ltd トランザクション処理方式
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
JPH033046A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd ログ記録管理方式
JP2759499B2 (ja) * 1989-06-01 1998-05-28 キヤノン株式会社 粉体の粉砕方法
US5193162A (en) * 1989-11-06 1993-03-09 Unisys Corporation Cache memory with data compaction for use in the audit trail of a data processing system having record locking capabilities
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4949251A (en) 1988-07-18 1990-08-14 Digital Equipment Corporation Exactly-once semantics in a TP queuing system
US5175849A (en) 1988-07-28 1992-12-29 Amdahl Corporation Capturing data of a database system
US5287496A (en) 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
C.MOHAN 他著,"ALIES:A TRANSACTION RECOVERY METHOD SUPPORTING FINE−GRANULARITY LOCKING AND PARTIAL ROLLBACKS USING WRITE−AHEAD LOGGING",IBM RESERCH REPORT ,(1990),RJ 6649
M.SULLIVAN 他著,"USING WRITE PROTECTED DATA STRUCTURE TO IMPROVE SOFTWAR
RDB/VMS USER DOCUMENTATION,DIGITAL EQUIPMENT CORP.
RDB/VMS−A COMPREHENSIVE GUIDE ,DIGITAL EXPRESS
T.HEADER他著,"PRINCIPLES OF TRANSACTION−ORIENTED DATABASE RECOVERY",ACM COMPUTING SURVEYS,(1983),VOL.15,NO.4,P.287−317

Also Published As

Publication number Publication date
US5369757A (en) 1994-11-29
GB2256952A (en) 1992-12-23
GB2256952B (en) 1994-11-30
DE4220198A1 (de) 1993-01-14
DE4220198C2 (de) 1997-10-09
GB9212530D0 (en) 1992-07-22
JPH05197598A (ja) 1993-08-06

Similar Documents

Publication Publication Date Title
JP2679779B2 (ja) トランザクション処理方法及び装置
JP2505112B2 (ja) トランザクション管理方法
JP2531776B2 (ja) デ―タベ―スを回復する方法
US4878167A (en) Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data
JP2531894B2 (ja) デ―タ処理装置
US5581750A (en) System and method for improving data recovery performance
US9021303B1 (en) Multi-threaded in-memory processing of a transaction log for concurrent access to data during log replay
US6567928B1 (en) Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects
Jagadish et al. Dali: A high performance main memory storage manager
US6295610B1 (en) Recovering resources in parallel
EP1910929B1 (en) Direct-update software transactional memory
US6182241B1 (en) Method and apparatus for improved transaction recovery
US6067541A (en) Monitoring document changes in a file system of documents with the document change information stored in a persistent log
JP3763992B2 (ja) データ処理装置及び記録媒体
US8239356B2 (en) Methods and apparatuses for data protection
US6078999A (en) Recovering from a failure using a transaction table in connection with shadow copy transaction processing
US7587429B2 (en) Method for checkpointing a main-memory database
EP0501160A2 (en) Intelligent page store for concurrent and consistent access to a database by a transaction processor and a query processor
JPH0833860B2 (ja) データベースの回復方法
EP0943997A2 (en) System and method for providing hot spare redundancy and recovery for a very large database management system
JPH0827750B2 (ja) 複数コンピュータ・データ共用システムにおける共用記憶の障害からのデータベースの回復方法
EP0295424B1 (en) Method for managing subpage concurrency control and partial transaction rollback in a transaction-oriented system of the write-ahead logging type
CN110515705B (zh) 可扩展的持久性事务内存及其工作方法
US6230243B1 (en) Method, system and program products for managing changed data of castout classes
US6038569A (en) System for data structure loading with concurrent image copy

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080801

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20090801

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20100801

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 15

EXPY Cancellation because of completion of term