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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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
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
ョン処理に関するものであり、特に、トランザクション
が装置の状態メモリの旧コピーを参照することのできる
トランザクション処理装置に関するものである。特に、
本発明は、このようなトランザクション処理装置におい
て、各トランザクションの結果が各トランザクション後
に不揮発性状態メモリに書き込まれるのではなく、更新
後イメージログにコミットされる際に、適切なリカバリ
(回復)を保証するための方法に関するものである。
込み動作を中断させる恐れのある部分的なシステム障害
から回復できるようにすることが望ましい。アプリケー
ションプログラムにおけるメモリ書き込み動作が、シス
テム障害時に進行する場合、メモリレコードがエラーと
なる可能性がある。部分的システム障害の後に、メモリ
レコードの回復を可能とするために、アプリケーション
プログラムは、レコードのバックアップコピーを不揮発
性メモリ内に保持する必要がある。コンピュータシステ
ムが再スタートする際に、回復すべきメモリレコード
が、バックアップコピーと置き換えられる。
コードの回復を容易にするために、一般的にオペレーテ
ィングシステムは、確立されたメモリ管理手続きセット
を具えている。このメモリ管理手続きセットは、アプリ
ケーションプログラムから呼び出され(すなわち、コー
ルされ)、”リカバリユニット”を規定する。リカバリ
ユニットは、”START ”ステートメントと”COMMIT”ス
テートメントとの間のプログラムステートメントから成
っている。”リカバリユニット”内のすべてのステート
メントは、リカバリユニット内のステートメントによっ
て変更されたメモリレコードが次の処理に使用可能とな
る以前に完成されなければならない。”リカバリユニッ
ト”のステートメントは、単一”トランザクション”で
操作を指定する。部分的システム障害からの回復時に、
不揮発性メモリの検査を行うことによって、単一”トラ
ンザクション”内の操作がすべて完了していること、又
は何も完了していないことが明らかとなる。
ァイルを変更することができ、これらのファイルは、他
の処理が共有することができる。トランザクション終了
時にこれらのファイルは無矛盾であるが、トランザクシ
ョンの間、一時的に矛盾することがある。代表的な例
は、一方の預金口座からの預金を他方の預金口座に送金
する場合であり、この場合には、一方の預金口座に引出
しが記入され、その少し後に他方の預金口座に預入れが
記入され、その間、2つの預金口座が矛盾することにな
る。その理由は、その間、2つの預金口座の和が2つの
預金口座内の合計預金を示さなくなるからである。ファ
イルがトランザクションによって変更される際の矛盾性
のために、変更が終了するまで、他の処理がファイルを
アクセスしないようにすることが知られている。
ンザクションの実行が、第1トランザクションの結果の
コミット前に開始するように、トランザクション処理装
置内で分散されている。回復の容易性を保証するため
に、通常、第1トランザクションのコミット以前に、第
2トランザクションが、第1トランザクションの任意の
結果を読み出さない様にしている。例えば、データベー
スシステムの場合、トランザクションは、トランザクシ
ョンによって変更される任意のデータベースレコード
に”書き込みロック”を配置する。トランザクションに
よって読み出されるデータの無矛盾性を保証するため
に、トランザクションによって読み出される任意のデー
タベースレコードにも”読み出しロック”を配置する。
間の同時実行を禁止し、トランザクション処理速度を低
下させることになる。ディジタル・イクイップメント・
コーポレーションによって販売されている”Rdb/VMS ”
及び”VAX DBMS”等のシステムにおいては、”スナップ
ショット”メカニズムにより、読み出しロックの必要性
を排除すると共に、書き込みロックによって、読み出し
動作のブロッキングを阻止している。この”スナップシ
ョット”メカニズムによれば、トランザクションが、任
意の時刻に、トランザクション開始時に存在するデータ
の無矛盾バージョン(コピー)を得ることができる。
ーションによって販売されている”Rdb/VMS ”及び”VA
X DBMS”システムの場合、更新すべきレコードの”更新
前イメージ”を”アンドウ ログ”にフラッシュ(供給)
し、次いで更新されたデータレコードを、トランザクシ
ョンがコミットされる直前に、状態メモリにフラッシュ
することによって、回復可能性が保証される。クラシュ
が発生する場合、更新されたレコードが、アンドウ ログ
から得られる”更新前イメージ”と置換され、トランザ
クションの影響を”取り消す”。
は、”更新後イメージジャーナル”と称する付加的な特
徴を有し、バックアップコピーから回復されるデータベ
ースに、”ロールフォワード”更新を実行する機能を提
供する。ジャーナルメカニズムは、データベースに対し
て行われた変更を再構成できる他の情報とともに、レコ
ードのコピーを変更後にセーブする。
ウ (取り消し)”リカバリメカニズムは、極めて高速な
回復を提供することができる。その理由は、障害トラン
ザクションの影響だけを取り消す必要があるに過ぎない
からである。しかし、各トランザクションがコミットさ
れるごとに、更新レコードを状態メモリにフラッシュす
るのに、かなりの処理時間を要する。システムクラシュ
が極めて希である安定した環境の場合、高速回復は特に
重要ではない。複数トランザクションに対して同一のレ
コードを更新する複数のトランザクション、及び多くの
ページを更新しない短いトランザクションに対しては、
各トランザクションの終了時ごとに更新レコードを状態
メモリに供給するのにかなりの処理時間が浪費される。
リメカニズムを使用し、各トランザクション後ごとに、
更新されたレコードを状態メモリにフラッシュしない。
その代わりに、更新されたレコードを、更新後イメージ
ログに順次書き込み、所定の”チェックポイント”が発
生する時のみに、更新されたすべてのレコードを状態メ
モリにフラッシュする。チェックポイントは、例えば、
所定数のトランザクションの後、又は所定数のバイトが
更新後イメージログに書き込まれた後に発生する。従っ
て、”リドゥ”回復メカニズムによれば、更新されコミ
ットされたレコードを、揮発性メモリ内に残存させるこ
とができる。システムクラシュが発生すると、不揮発性
状態メモリから、最終チェックポイントの際に存在する
状態メモリレコードを読み出すとともに、更新後イメー
ジログに記憶されている変更を再度行うことによって、
最後にコミットされたトランザクションの終了時に存在
する揮発性状態メモリレコードを再構成することができ
る。例えば、更新後イメージログが、変更を再度実行す
る間、順次に読み出される。
ズムとともに使用されるスナップショットメカニズムに
関するものである。しかし、慣例のスナップショットメ
カニズムは、慣例の更新後イメージジャーナルメカニズ
ムを使用する”リドゥ”リカバリメカニズムと調和して
いない。慣例のスナップショットメカニズムは、各書き
込みトランザクションのコミット後ごとに、変更された
状態メモリレコードの旧バージョン(コピー)を不揮発
性メモリに書き込むものである。これは、変更された状
態メモリレコードをチェックポイントにおいてのみ不揮
発性メモリにフラッシュする”リドゥ”と調和しない。
慣例の更新後イメージジャーナルメカニズムは、揮発性
スナップショットレコードに変更を記録するのに使用す
ることもできるが、この場合には、更新後イメージログ
のサイズがほぼ2倍になり、且つスナップショットレコ
ードに変更を記録するのに更に処理時間が必要になる。
コンピュータを作動させ、トランザクションを処理する
ための装置及び方法に関するものであり、該方法が: a)不揮発性状態メモリから状態メモリレコードを読み
出し、該状態メモリレコードを揮発性状態メモリキャッ
シュに書き込む工程と;b)揮発性状態メモリキャッシ
ュ内の選択された状態メモリレコードから、揮発性スナ
ップショットメモリキャッシュ内にスナップショットコ
ピーを作成し、揮発性状態メモリキャッシュ内の各選択
状態メモリレコードから作成されるスナップショットコ
ピーの対応セットを、揮発性スナップショットメモリキ
ャッシュ内に保持し、前記揮発性状態メモリキャッシュ
内の選択された状態メモリレコードに対して、前記トラ
ンザクションによって指定された変更を行うとともに、
前記変更を不揮発性メモリ内の更新後イメージログにコ
ミットする工程と;c)揮発性スナップショットメモリ
キャッシュからスナップショットコピーを読み出し、該
スナップショットコピーを不揮発性スナップショットメ
モリに書き込み、選択された状態レコードを揮発性状態
メモリキャッシュから読み出し、該選択された状態レコ
ードを不揮発性状態メモリに書き込む工程とを具え、前
記行程c)において、各選択された状態メモリレコード
を揮発性状態メモリキャッシュから読み出し、不揮発性
状態メモリに書き込む前に、各選択された状態メモリレ
コードのスナップショットコピーに対応するセットを揮
発性スナップショットメモリキャッシュから読み出し、
不揮発性スナップショットメモリに書き込むことを特徴
とする。
を、揮発性状態メモリレコードとともに、揮発性メモリ
内に記憶するとともに、トランザクションによる揮発性
状態メモリレコードの変更を、揮発性状態メモリレコー
ドの回復のために、不揮発性メモリ内の更新後イメージ
ログ内に記録する。しかし、本発明では、更に、揮発性
メモリ内のスナップショットレコードの回復のために、
揮発性状態メモリ内の何れか1つのレコードを揮発性メ
モリから不揮発性状態メモリに書き込む必要があると
き、最初に前記何れか1つの揮発性状態メモリのレコー
ドに相当する揮発性スナップショットレコードのセット
を揮発性スナップショットメモリから不揮発性スナップ
ショットメモリに書き込む。バッファプールフラッシイ
ングの順序をこのように定めることによって、揮発性ス
ナップショットレコードを不揮発性状態メモリから、又
は更新後イメージログ内の変更から回復させることがで
きる。
グの順序を定めることによって、スナップショットレコ
ードを回復させることができることを示している。トラ
ンザクションが揮発性状態メモリレコードXを更新し、
旧揮発性状態メモリレコードが、スナップショットレコ
ードXn として、揮発性スナップショットメモリに供給
され、その後、トランザクションがコミットされ、新状
態メモリレコードXが更新後イメージログに記録される
ものとする。一方、レコードXの対応する揮発性スナッ
プショットバージョン(コピー)が不揮発性スナップシ
ョットメモリにフラッシュされずに、更新された揮発性
状態メモリレコードが不揮発性状態メモリにフラッシュ
され(レコードXのフラッシュを更新後イメージログフ
ァイルに記録し)、その後、システムがクラシュするも
のと仮定する(例えば、フラッシュは、揮発性メモリの
バッファプールが一杯になることに応答して、又はレコ
ードXを必要とする他の処理に応答して行われる)。こ
の場合(本発明でない場合)には、レコードXの更新が
既に不揮発性状態メモリに存在し、レコードXのフラッ
シュが更新後イメージログファイルに記録されているた
め、このレコードXの更新を不揮発性状態メモリから得
ることができる。しかし、この場合にはスナップショッ
トレコードXn を回復させることはできない。スナップ
ショットレコードXn は、不揮発性スナップショットメ
モリにフラッシュされず、また不揮発性状態メモリ内の
レコードXの更新前バージョン(コピー)が更新された
レコードXの不揮発性状態メモリへのフラッシュにより
オーバライトされてしまうために不揮発性状態メモリ内
に存在しない。他方、本発明に従って、レコードXのす
べての対応する不揮発性スナップショットバージョン
(スナップショットレコードXn を含む)が不揮発性ス
ナップショットメモリにフラッシュされ、次いで更新さ
れたレコードXが不揮発性メモリにフラッシュされ、再
びトランザクションがコミットされた後にシステムがク
ラシュするものと仮定すると、この場合には、スナップ
ショットレコードXn を含むレコードXの対応するスナ
ップショットバージョンのすべてを不揮発性メモリ内で
見つけ出すことができる。
XもスナップショットレコードXnも、システムクラシ
ュ発生時に、揮発性メモリ内にフラッシュされない。こ
の場合において、トランザクションが、揮発性状態メモ
リレコードXを更新し、旧揮発性状態メモリレコード
を、スナップショットレコードXn として、揮発性スナ
ップショットメモリに記録し、その後、トランザクショ
ンがコミットされ、新状態メモリレコードXを更新後イ
メージログに記録し、その後、システムクラシュが発生
したものと仮定すると、この場合には、状態メモリ及び
スナップショットメモリは、更新後イメージログに記録
されている変更を再度実行することによってリストアさ
れる。更新後イメージログを読み出している間、例え
ば、状態メモリレコードXがメモリレコードXの最新変
更Xに到達する際にリストアされるが、不揮発性状態メ
モリ内の状態メモリレコードXの旧バージョンが最初に
スナップショットレコードXにリストアされる。
たディジタルコンピュータ20の概略を示すブロック図で
ある。このディジタルコンピュータ20は、プログラムさ
れたインストラクション実行用の中央処理ユニット21
と;インストラクション又はデータ保持用の揮発性ラン
ダムアクセスメモリ22と;ハードディスクドライブ等の
不揮発性メモリ23と;入力/出力ユニット24とを具えて
いる。不揮発性メモリ23は、プログラムを記憶するため
のプログラムメモリ25を具えている。一般的に、ディジ
タルコンピュータ20は、プログラムメモリ25から揮発性
ランダムアクセスメモリ22に送られるプログラムを実行
する。
の問題点は、中央処理ユニットによるインストラクショ
ンの実行が、ハードウェアの障害、ソフトウェアエラー
又は電力障害によって中断する可能性があるということ
である。例えば、電力障害によって、揮発性ランダムア
クセスメモリ22に記憶されているデータ及びプログラム
が失われてしまう場合がある。電力障害による揮発性ラ
ンダムアクセスメモリ22のデータ損失に関する問題は、
不揮発性メモリ23にデータのバックアップコピーを記憶
することによって解決される。しかしながら、バックア
ップコピーは、不揮発性メモリ23への書き込み動作時に
障害が生じる可能性があることを考慮して作製する必要
がある。
障害による問題を処理するために、”トランザクション
処理”と称するプログラミング方法が確立されてお
り、”トランザクション処理”とは、障害が存在する場
合に、不揮発性メモリの一部分(以下、”状態メモリ”
26と称する)がトランザクションにより影響されないよ
うにする、又はトランザクションの結果によって適切に
更新されるようにすることである。トランザクション処
理は、トランザクションの結果が状態メモリに書き込ま
れる以前に、(ログファイル27,28 の一方に)バックア
ップコピーを作成する技術に基づくものである。
(ここでは”レコード”と称する)が、不揮発性メモリ
に書き込まれ、不揮発性メモリから読み出されるものと
仮定する。更に、ログファイル27,28 は、アトミック式
に更新され、ログファイルへのレコードの書き込み動作
が電力障害などの障害によって中断する際に、ログファ
イルが、その元の状態、又はログファイルに適切に書き
込まれたレコードの正しいコピーを有している状態にあ
るものと仮定する。このアトミック性の条件は、多くの
コンピュータのオペレーティングシステム及び不揮発性
メモリによって保証されている。更に、オペレーティン
グシステム及び不揮発性メモリが不揮発性メモリへの書
き込み動作のアトミック性を保証できない(幾つかのさ
ほど高価でない”パーソナル”コンピュータ等の)コン
ピュータの場合、よく知られているプロトコルを使用
し、書き込み動作のアトミック性を保証することができ
る。このプロトコルでは、まずレコードを不揮発性メモ
リのバックアップ領域に書き込み、次にスイッチを不揮
発性メモリ内にセットし、その後、前記レコードを不揮
発性メモリの所望の位置に書き込み、最後に、前記スイ
ッチを不揮発性メモリ内でクリアする。障害からの回復
時に、不揮発性メモリからスイッチを読み出し、スイッ
チがセットされていたことが確認されると、不揮発性メ
モリのバックアップ領域から、不揮発性メモリの所望の
位置にレコードをコピーし、その後、スイッチを不揮発
性メモリにおいてクリアする。
できるものと仮定する。これは、ログが更新される毎
に、ログファイルヘッダー内のエンド・オブ・ファイル
・ポインタを更新することによって行われる。しかしな
がら、ログファイルの終わりにタグを付し、ログが更新
されるたび毎に、ログファイルヘッダーを更新する必要
なしに、クイックサーチによってログファイルの終りを
検出できるようにするのが好ましい。例えば、各ビット
毎にログファイルを始めに論理値1にセットし、サーチ
中に論理値1の列が検出される際に、ファイルの終りを
検出できるようにする。
しを指定する際、常に、不揮発性状態メモリ26が読み出
される。しかし、ハード磁気ディスク等の慣用の不揮発
性メモリのアクセス時間は、ダイナミックランダムアク
セスメモリ等の慣用の揮発性メモリ22のアクセス時間と
比較して極めて長い。したがって一般的には、状態メモ
リレコードのコピーを、揮発性メモリ22の状態メモリキ
ャッシュ29に記憶する。ハッシュテーブルインデックス
30において、状態メモリキャッシュ29に現在存在する状
態メモリレコードのコピーに、インデックスを付す。メ
モリアクセス動作中のハッシュテーブルインデックスの
使用に関しては、後に図4及び図5を参照して更に説明
する。
般的に、トランザクション処理を分散させて、第1トラ
ンザクションの結果がコミットされる以前に、第2トラ
ンザクションの実行が開始される。一般的に、トランザ
クションに関する動作のスケジューリングは、トランザ
クションのキューを処理するマルチタスキング又はマル
チプロセッシングのオペレーティングシステムプログラ
ムによって実行される。このようなシステムの場合、キ
ューの先頭のトランザクションに優先権を与え、このキ
ューの先頭のトランザクションを、入力/出力動作又は
不揮発性メモリへのメモリアクセス動作の終了を待たな
ければならない場合以外処理させる。この場合、優先権
を有しているトランザクションは、オペレーティングシ
ステムに実行を戻すことができ、オペレーティングシス
テムは、優先権を有している次のトランザクションに実
行を移すことができる。しかし、入力/出力又はメモリ
アクセス動作の終了時に、入力/出力又はメモリ割り込
みが発生し、割り込み処理ルーチンによって実行が中断
され、オペレーティングシステムに実行が戻る。次に、
オペレーティングシステムは、入力/出力又はメモリア
クセス動作の終了を待っているトランザクションキュー
の先頭のトランザクションに実行を移す。このようにし
て、コンピュータ20のリソースを更に効率的に使用する
ことができる。マルチタスキング及びマルチプロセッシ
ングオペレーティングシステムは、従来よりよく知られ
たものであり、主なコンピュータメーカーから商業的に
入手可能であるため、コンピュータ20のオペレーティン
グシステムプログラムに関してのこれ以上詳細な説明は
省略する。
第2トランザクションが開始する状態において容易な回
復を保証するために、通常、第1トランザクションのコ
ミット以前に、第2トランザクションは、第1トランザ
クションの任意の結果を読み出すことが禁止される。例
えば、コンピュータ20において、トランザクション
は、”書き込みロック”を、このトランザクションによ
って変更される状態メモリレコードに配置する。これに
ついての説明は、後に図6を参照して行う。これらの”
書き込みロック”は、トランザクションがコミットされ
る際に除去される。これについての説明は、後に図2を
参照して行う。
ータの矛盾性を保証するために、トランザクション
は、”読み出しロック”を、トランザクションによって
読み出される任意の状態メモリレコードに設けることが
できる。しかし、メモリロックの使用によって、トラン
ザクション間の同時実行が禁止され、トランザクション
の処理速度が減少する。したがって、システム20は、既
知の”スナップショット”メカニズムを使用して、読み
出しロックの必要性を除去すると共に、書き込みロック
により読み出し動作のブロッキングを阻止している。”
スナップショット”メカニズムによって、トランザクシ
ョンは、トランザクション開始時刻に存在する任意の状
態メモリレコードの無矛盾バージョン(コピー)を、任
意の時刻に読み出すことができる。図3及び図4を参照
して後に更に説明するように、特定の状態メモリレコー
ドの無矛盾バージョンを、状態メモリ26,29 、又は”ス
ナップショット”メモリ31,32のいづれかから読み出す
ことができる。
フローチャートにて示す”アンドウ”リカバリ手続きと
共に、既知のトランザクション処理装置において使用さ
れている。例えば電力障害の後に、コンピュータ(図1
の参照番号20)をオンすると、第1ステップ40におい
て、中央処理装置(図1の参照番号21)による実行が開
始される。ステップ40において、状態メモリキャッシュ
及びスナップショットメモリキャッシュが(図3の”ハ
ッシュテーブル”インデックス30をクリアすることによ
って)クリアされる。次に、ステップ41において、中央
処理装置21は、更新前イメージログファイル(図1の参
照番号27)を読み出し、障害トランザクション(障害が
トランザクション処理を中断した時刻に、開始している
ものの、未だコミッされていないトランザクション)の
更新を取り消す。特に、更新前イメージログファイル27
の終りを検出し、更新前イメージログファイル27を時系
列とは逆に読み出し、更新されたレコードの更新前イメ
ージを不揮発性状態メモリ(図2の参照番号26)にコピ
ーさせる。
多数の種々のトランザクションの更新前イメージを記憶
することができる。この場合、”コミット(commit)”
レコードが検出されるまで、例えば、更新されたレコー
ドの更新前イメージを不揮発性状態メモリにコピーさせ
る。コミットレコードは、例えば、コミットされたトラ
ンザクションを識別し、この時点にコミットされていな
いトランザクションの”アクティブ”リストも具えてい
る。このリストをセーブし、更新前イメージファイルを
時系列とは逆に読み出し続け、コミットされてないトラ
ンザクションの更新のみを、不揮発性状態メモリにコピ
ーする必要がある。更に、トランザクションの開始
を、”開始トランザクション”レコードによって更新前
イメージログに記録する。更新前イメージログの”開始
トランザクション”レコードに到達すると、準備開始さ
れたトランザクションが、”アクティブ”リスト中から
除去され、”アクティブ”リストが空となる時に、ステ
ップ41が終了する。
が、マルチプロセッシングシステムにおける各プロセス
に割り当てられ、各プロセスのためのファイルが、その
プロセスの現在のアクティブなトランザクションのため
の更新前イメージを含むようにするのが好ましい。トラ
ンザクションのコミット後、更新前イメージのそのログ
は、もはや必要ではなく、更新前イメージログファイル
は、プロセスの次のトランザクションによる再使用のた
めに捨てられる。”コミットレコード”は不要である。
その理由は、ファイルが他のトランザクションによって
再使用されるまで、更新前イメージログファイルが空の
ままだからである。これにより、マルチプロセッシング
システムにおいて障害のある単一プロセスを回復させる
ことができる。この場合、障害プロセス用の全更新前イ
メージログファイルが後方に走査され、障害プロセスの
障害トランザクションの影響を取り消す。電力障害の場
合のすべての中断プロセスからの回復を行うために、オ
ペレーティングシステムは、不揮発性メモリ内にアクテ
ィブプロセスのリストを保持している。したがって、電
力障害からの回復時に、アクティブであったプロセスの
リストをアクセスし、中断したプロセスを検出し、その
後、各中断したプロセスの更新前イメージログファイル
を走査し、各障害トランザクションの影響を取り消す。
ステップ42において、トランザクション処理が再開され
る。ステップ42において、選択されたトランザクション
Txの”開始”レコードが、更新前イメージログに書き
込まれる。ステップ43において、不揮発性状態メモリ
(図1の参照番号26)からレコードが読み出され、揮発
性状態メモリ(図1の参照番号29)に送られる。次にス
テップ44において、トランザクションによって変更され
るべき揮発性状態メモリ内のレコードが、”更新前イメ
ージ”ログに書き込まれ、ステップ45において、変更さ
れるべきレコードが、揮発性スナップショットメモリキ
ャッシュ(図1の参照番号32)にも書き込まれる。これ
については、後に図4を参照して更に説明する。次に、
ステップ46において、レコードはロックされ、その後ト
ランザクションの結果に従って変更される。しかし、
(ディジタル・イクイップメント・コーポレーションに
よって販売されているVMS オペレーティングシステム等
の)マルチプロセッシングオペレーティングシステムは
一般的に、個別のハッシュインデックステーブルを保持
する”ロック・マネジャー”を、ロックキャッシュに設
けている。この場合、ステップ43において、レコードが
取り込まれる以前に、ロックキャッシュにインデックス
を付し、レコードが既にロックされているか否かを判定
すると共に、更新されるべきフリーレコードをロックす
る。マルチプロセッシングシステムにおけるこのような
ロック・マネジャーは、スケジューリングを簡易化する
のに望ましい。
ログに記録し、不揮発性メモリレコードとすることがで
きるとともに、ステップ47に示すように、トランザクシ
ョンTy がコミット可能となるまで、複数の他のトラン
ザクションを開始させることができる。その後、ステッ
プ48において、Ty によって変更されたレコードのロッ
クがリリースされ、ステップ49において、Ty によって
変更されたレコードが不揮発性状態メモリ26に書き込ま
れる。最後に、ステップ50において、単一の更新前イメ
ージログを使用する場合には、”コミットTy ”レコー
ドが、更新前イメージログに書き込まれる。各プロセス
に個別の更新前ログファイルを使用する好適な場合に
は、Ty トランザクション処理用の更新前イメージログ
ファイルが捨てられる。ステップ41において、他のトラ
ンザクションの処理が継続される。
つかのコミット以前に、多数のトランザクションが開始
する場合を示す図である。この場合、オペレーティング
システムプログラムは、トランザクション処理のステッ
プ43,44,45及び46の間に、複数のトランザクションの間
で実行をタイムシェアしている。ステップ46において、
トランザクションは、”書き込みロック”を、無矛盾に
変更する必要のあるレコード群に配置し、他のトランザ
クションがこれらのレコード群に書き込みを行うことを
禁止すると共に、他のトランザクションが矛盾するレコ
ードを読み出すことを禁止している。更に、図2に示す
比較的簡単なリカバリ計画が、このような分散したトラ
ンザクション環境の中で作動し得るように、トランザク
ションによって課された書き込みロックは、トランザク
ションがコミットされるステップ48まで、リリースされ
ない。
ている装置において、トランザクションが書き込みロッ
クされているレコードからデータを読み出す必要がある
場合に、このトランザクションが停止することを防止す
るために、スナップショット回復メカニズムを用いるこ
とが知られている。このメカニズムは、任意のトランザ
クションが、任意の時刻に、トランザクション処理開始
時刻に存在する任意のレコードのバージョン( コピー)
を得ることができるように、レコードの”更新前イメー
ジ”の十分な数のバージョン( コピー) を保持するもの
である。これらのレコードの”更新前イメージ”を、”
スナップショット”レコードと称する。特に、レコード
が変更される直前に、そのレコードの”スナップショッ
ト”が行われる。しかしながら、同一レコードのもっと
前の”スナップショット”が存在する場合もある。従っ
て、スナップショットメカニズムは、各トランザクショ
ン毎に、トランザクションによって読み出されるべき特
定のレコードの正しいバージョンを決定する手段を提供
するものである。このスナップショットメカニズムは、
もはやトランザクションが読み出す必要のない古いスナ
ップショットを除去する手段も提供する。
可能性を保証するために、各トランザクションは、”リ
ードオンリー”トランザクション又は”リードライト”
トランザクションのいづれかとして特定される。”リー
ドオンリー”トランザクションは、スナップショットレ
コードを読み出すことはできるが、”リードオンリー”
トランザクションは、ライブレコードを変更できな
い。”リードライト”トランザクションは、スナップシ
ョットレコードを読み出すことができないが、ライブレ
コードを読みだし変更することができる。
イミング図である。トランザクション処理開始時に、各
トランザクションに、トランザクションシーケンス番号
(TSN )が割り当てられる。トランザクションシーケン
ス番号0が、状態メモリの初期状態に割り当てられる。
ンによって読み出されるべき、明確なレコードバージョ
ンを規定するために、状態メモリ内のレコードXの読み
出し動作を実行するTSN =Yの”リードオンリー”トラ
ンザクションは、トランザクションYの処理開始時刻に
レコードXに最後にコミットされた結果を検査するもの
と仮定する。更に、スナップショットメカニズムは、ト
ランザクションYの処理の間の任意の時刻に呼び出さ
れ、レコードXの特定のバージョンをリターンするもの
と仮定する。このレコードXの特定のバージョンは、揮
発性状態メモリ内のライブレコード、揮発性スナップシ
ョットメモリ内のスナップショットレコード、不揮発性
メモリ内のライブレコード、又は不揮発性メモリ内のス
ナップショットレコードのいづれかに存在する。ロック
されていない各ライブレコード、及び各スナップショッ
トレコードに、レコードのバージョンをコミットしたト
ランザクションを示す”レコードトランザクションシー
ケンス番号”を用いてタグ付けを行うものと仮定する
(図3のC)。更に、トランザクションZによってロッ
クをライブレコードXに配置する場合、レコードXのス
ナップショットコピーが作製され、発生し得る切り捨て
処理を容易にするためにレコードのコピーが更新前イメ
ージログに書き込まれ、ロックされたレコードにTSN =
Zを用いてタグ付けを行うことができるが、トランザク
ションZが中止する場合には(図3のA)、更新前ログ
から更新前イメージコピーがライブレコードにコピーさ
れ(ライブレコードのTSN を更新前イメージのTSN にリ
ストアする)、ライブレコードがロックされなくなるも
のと仮定する。
ランザクションTSN=Yが開始するようにスケジュールさ
れると、このときアクティブである他のトランザクショ
ンのリストがコンパイルされ、図3に示すようにトラン
ザクションYに割り当てられることなる。ライブレコー
ドXが、トランザクションYのアクティブリストに存在
しないY以下のトランザクションシーケンス番号を有し
ている限り、リードオンリートランザクションYによっ
て読み出されるべきレコードXの所望のバージョンは、
ライブレコードXである。これ以外の場合、所望のレコ
ードは、トランザクションYのアクティブリストに存在
しないY以下のトランザクションシーケンス番号を有し
ているレコードXの最新のスナップショット内に見いだ
される。
TSN ”よりも小さなレコードトランザクションシーケン
ス番号を有している任意のスナップショットレコードを
保持する必要はなく、このトランザクションシーケンス
番号は、最初のアクティブトランザクション(すなわ
ち、最小のトランザクションシーケンス番号を有してい
るアクティブトランザクション)のトランザクションシ
ーケンス番号である。図3は、例えば、トランザクショ
ン1〜7の各々が開始する時刻におけるカットオフTSN
を示す図である。捨てるべきスナップショットレコード
を識別するために、カットオフTSN を決定し、これを各
トランザクションの開始をスケジュールする際に各トラ
ンザクションに割り当てるのがが望ましい。例えば、ス
ナップショットレコードのスナップショットTSN が、ト
ランザクションのカットオフTSN よりも小さいときは常
に、トランザクションは、再使用のためのスナップショ
ットレコードの揮発性メモリ空間を占有することができ
る。
ッシュ29内の揮発性状態メモリレコードと、スナップシ
ョットメモリキャッシュ32内のスナップショットレコー
ドとをリンクさせ、フリーバッファ61等の任意のフリー
バッファを状態メモリキャッシュ29又はスナップショッ
トメモリキャッシュ32の構成部分として使用できると共
に、更に、単にポインタを変更することによって、状態
メモリキャッシュ29からスナップショットメモリキャッ
シュ32へ、又はスナップショットメモリキャッシュ32か
ら状態メモリキャッシュ29へとレコードを転送すること
ができるように構成されたデータ構造を示す図である。
レコード62等)は、ロックフラグ63及びレコードトラン
ザクションシーケンス番号64を有しているヘッダと、ゼ
ロ又は揮発性メモリバッファプール内の他のライブレコ
ードを指示するポインタ65、及びゼロ又はレコードの最
新スナップショットを指示するポインタ66を有している
トレーラとを具えている。スナップショットレコード
(スナップショットレコード67等)のフォーマットは、
同様に、ロック68、レコードトランザクションシーケン
ス番号69、及びゼロ、又はレコードの前スナップショッ
トを指示するポインタ70を有している。
シュテーブルインデックス30がレコード番号Xでインデ
ックスされ、状態メモリキャッシュ内のレコードXのラ
イブバージョンをサーチする。しかし、ハッシュテーブ
ルインデックス30は、状態メモリキャッシュ内の各すべ
てのライブレコード29をインデックスするものではな
い。換言すれば、ハッシュテーブルインデックス30は、
レコード番号全体によってインデックスされるのではな
く、ハッシュテーブルインデックスは、レコード番号の
最下位部分のみによってインデックスされる。任意の所
定のレコード番号に対し、ハッシュテーブルインデック
ス30のこのようなインデックシングは、所望のライブレ
コードが状態メモリキャッシュ29に存在しないことを示
すゼロ、又は所望のレコードを指示するポインタ又は所
望のライブレコードを含むライブレコードリストを指示
するポインタを発生する。図4に示すように、レコード
番号”B”を用いてアドレス指定する場合、ハッシュテ
ーブルインデックスは、ポインタをレコードAに出す。
このレコードAは、所望のレコードBに対するレコード
ポインタRBを含んでいる。
がレコードを読み出すことが望ましい場合、レコードの
適当なバージョンを見いだすために更にサーチが必要と
なる場合がある。まず、このライブレコードを検査し、
次に、最新のスナップショットから順に、現在のトラン
ザクションシーケンス番号以下で現在のトランザクショ
ンのアクティブリストに含まれていないレコードトラン
ザクションシーケンス番号を有しているレコードが検出
されるまで、スナップショットレコードが検査される。
リードオンリートランザクションがレコードBの読み出
しを望む場合、例えば、ライブレコードBのトランザク
ションシーケンス番号(この場合、TSN6)を、リードオ
ンリートランザクションのトランザクションシーケンス
番号と比較する。ライブレコードBが適切なバージョン
でない場合、ライブレコードBのスナップショットポイ
ンタ(この場合、S2)が検査され、スナップショットメ
モリキャッシュ32がレコードBの任意のスナップショッ
トを含んでいるか否かを判定する。ライブレコードBが
適切なバージョンでない場合、レコードBの適切なバー
ジョンが検出されるまで、スナップショットのレコード
トランザクションシーケンス番号が、一連のスナップシ
ョットにおいて検査される。レコードBの適切なバージ
ョンが検出されない場合には、不揮発性メモリ23がアク
セスされ、レコードの適切なバージョンを検出する必要
がある。図4の例では、例えば、スナップショット1が
ライブレコードAの前スナップショットであり、スナッ
プショット3がライブレコードAの後スナップショット
である。
プロセスを更に詳細に説明するためのフローチャートで
ある。第1ステップ71において、レコード番号の最下位
部分を用いて、ハッシュテーブルインデックス(図1の
参照番号30)をインデックスする。次に、ステップ72に
おいて、ハッシュテーブルインデックスのインデックス
されたエントリが検査され、それがゼロなのか、揮発性
メモリバッファプール(図4の参照番号60)内のバッフ
ァを指示するポインタなのかを判定する。エントリがゼ
ロの場合、所望のレコードがインデックスされ、所望の
レコードを不揮発性メモリ(図1の参照番号23)から取
り出す必要がある。従って、ステップ75において、フリ
ーバッファポインタ(図4の参照番号72)の値を、揮発
性メモリバッファプール(図4の参照番号60)の限界値
と比較し、フリーバッファが存在するか否かを判定す
る。フリーバッファが存在する場合には、ステップ76に
おいて、所望のレコードが不揮発性メモリ23の状態メモ
リ26から読み出され、フリーバッファに書き込まれる。
更に、フリーバッファは、ハッシュテーブルインデック
スにリンクされる。レコードが予めインデックスされて
いないものと仮定すると、フリーバッファに対するポイ
ンタはハッシュインデックステーブル内に位置する。他
方、レコードが予めインデックスされている場合、フリ
ーバッファは、状態メモリキャッシュ29内のインデック
スが付された一連のレコードにリンクされる。
出されない場合には、ステップ77において、現在のプロ
セスによって使用されるバッファリスト(バッファキュ
ー)が検査され、最も古いバッファを検出し、このバッ
ファを、ステップ76においてフラッシュし、再使用させ
る。
テムにおいては、例えば、不揮発性状態メモリから読み
出されたレコードのリストを保持する。ライブレコード
が更新され、スナップショットが作製されると、更新さ
れたスナップショットレコードがリストにマークされ
る。各トランザクションのコミット時に、マークされた
レコードが不揮発性メモリにフラッシュされ、リストが
クリアされる。
むトランザクションが”リードライト”トランザクショ
ンである場合、ステップ76でフリーバッファに読み込ま
れたレコードを所望のレコードとする。しかし、このト
ランザクションが”リードオンリー”トランザクション
の場合、ステップ79において、レコードトランザクショ
ンシーケンス番号を検査し、ライブレコードが、リード
オンリートランザクションにとって適切なバージョンで
あるか否かを判定する。例えば、ライブレコードのトラ
ンザクションシーケンス番号がこのトランザクションの
トランザクションシーケンス番号よりも大きい場合、又
はライブレコードのトランザクションシーケンス番号が
このトランザクションのアクティブリスト中に検出され
る場合には、スナップショットバージョンが必要とされ
る。スナップショットが必要とされる場合には、最新の
スナップショットが不揮発性スナップショットメモリか
ら取り込まれる必要がある。ステップ90において、フリ
ーバッファポインタ(図4の参照番号72)の値を、揮発
性メモリバッファプール(図4の参照番号60)の限界値
と比較し、フリーバッファが存在するか否かを判定す
る。フリーバッファが存在する場合には、ステップ92に
おいて、レコードXの最新のスナップショットが、不揮
発性メモリ23のスナップショットメモリ31から読み出さ
れ、フリーバッファに書き込まれる。更に、フリーバッ
ファを、ライブレコードXを介してハッシュテーブルイ
ンデックスにリンクする。ステップ90において、フリー
バッファが検出されない場合には、ステップ91におい
て、バッファキューを検査し、最も古いバッファをフラ
ッシュさせ、その後ステップ92において再使用させる。
性メモリから読み出されたスナップショットを検査し、
スナップショットがリードオンリートランザクションに
とって適切なバージョンであるか否かを判定する。適切
なものでない場合、実行ループはステップ90に戻り、不
揮発性スナップショットメモリから次の最新のスナップ
ショットを取り込む。このプロセスは、”リードオンリ
ー”トランザクションにとって適切なバージョンが得ら
れるまで繰り返される。
テーブル内にインデックスされていることが検出される
と、ステップ80において、インデックスされたレコード
が検査され、ステップ81において、インデックスされた
レコードが所望のレコードでるか否かを判定する。所望
のレコードでない場合には、ステップ82において、レコ
ードのレコードポインタ領域が検査され、インデックス
されたレコードが他のレコードを指示するか否かを判定
する。他のレコードを指示しない場合には、実行はステ
ップ75に分岐し、不揮発性メモリから所望のレコードを
得る。レコードポインタ領域が他のレコードを指示する
ポインタを含んでいる場合、ステップ83において、指示
されたレコードが検査され、実行ループがステップ81へ
と戻り、ステップ82において、ライブレコードの連鎖の
終了が検出されるまで、又はステップ81において所望の
レコードが検出されるまで、ライブレコードの全連鎖が
サーチされる。
されると、このレコードがリードオンリー操作に必要と
されるか否かに応じて、ステップ84において実行が分岐
する。そうでない場合には、他のトランザクションによ
ってロックされない限り(ステップ85においてテストさ
れる)、このレコードを使用することができる。レコー
ドが他のトランザクションによってロックされると、現
在のトランザクションは停止し、実行がオペレーティン
グシステムに分岐し、レコードをロックしているトラン
ザクションのようなの他のトランザクションに実行を移
す。
ンがリードオンリートランザクションであると判定され
ると、ステップ86において、ライブレコードが検査さ
れ、レコードのライブバージョンが適切なバージョンで
あるか否かを判定する。例えば、ライブレコードのトラ
ンザクションシーケンス番号がこのトランザクションの
トランザクションシーケンス番号よりも大きい場合、又
はライブレコードのトランザクションシーケンス番号が
このトランザクションのアクティブリスト内に検出され
る場合には、スナップショットバージョンが必要とされ
る。スナップショットが必要な場合、ステップ87におい
て、ライブレコードのスナップショットポインタ領域か
らスナップショットポインタが得られ、スナップショッ
トポインタを用いて、スナップショットレコードがスナ
ップショットメモリキャッシュ内に存在するか否かを判
定する。スナップショットレコードがスナップショット
メモリキャッシュ内に存在しない場合、ステップ90〜93
において、レコードの適切なバージョンが不揮発性スナ
ップショットメモリから読み出される。スナップショッ
トレコードが指示される場合には、ステップ88におい
て、指示されたスナップショットレコードが検査され、
ステップ89において、それがレコードの適切なバージョ
ンであるか否かを判定する。適切なバージョンでない場
合、実行はステップ87へと分岐し、スナップショット連
鎖の終了に到達するまで、又はステップ92においてレコ
ードの適切なバージョンが不揮発性メモリから読み出さ
れるまで、又はステップ89においてレコードの適切なバ
ージョンが検出されるまで、上記の動作が繰り返され
る。
がらレコードを更新するための手続きを示すフローチャ
ートである。第1ステップ101 において、上述した図5
のステップ75及び77の方法で、フリーバッファを取得
し、更新されたレコードを受信する。次にステップ102
において、フリーバッファのロックをセットし、フリー
バッファのトランザクションシーケンス番号を、更新ト
ランザクションのトランザクションシーケンス番号にセ
ットし、フリーバッファのスナップショットポインタ
を、レコードXの更新前イメージを指示するようにセッ
トし、フリーバッファのレコードポインタをレコードX
の更新前イメージのレコードポインタにセットされる。
最後に、ステップ103 において、フリーバッファを指示
するレコードポインタをハッシュテーブルインデックス
30からのレコードの連鎖内に挿入する。図6の手続き
は、例えば、図5の手続きを用いてレコードを取り込ん
だ後、及び図5のステップ85において、レコードXが他
のトランザクションシーケンス番号によってロックされ
ていないことが検出された後、リードライトトランザク
ションによって使用される。この場合、図5の手続きに
よって取り込まれるレコードは、レコードXの”更新前
イメージ”である。換言すれば、ステップ103 におい
て、レコードXの更新前イメージを指示するポインタ
は、更新されたレコードを指示するポインタに変更され
る。
であり、レコードトランザクションシーケンス番号が各
レコードと関連しているものとする。しかしながら、好
適例において、従来のシステムと同様に、図7と同様な
レコード編成を使用することが望ましい。ここでは、ぺ
ージが図4に示すように互いに連鎖しているが、各ペー
ジは、多数の可変長セグメントを具えている。各セグメ
ントは、関連するレコードトランザクションシーケンス
番号を有している。この特別な編成は、各スナップショ
ットページが、同一セグメントに関する多数の異なるバ
ージョンを具えることができるといった利点がある。図
7に示すように、スナップショットページ110 は、ロッ
クスペース112 、フリースペース113 、ファイル番号11
4 、検査合計115 、物理領域116 、及びページ番号117
を有している標準ページヘッダ111 を具えている。図7
のレコードフォーマットを使用する場合、例えば、トラ
ンザクションはファイル番号とページ番号の組み合わせ
によって状態メモリをアドレス指定する。ページ110
は、論理領域119 、指示するスナップショットページの
レコードトランザクションシーケンス番号120 、スナッ
プショットページポインタ121 、スナップショットペー
ジに対するライタの最大レコードトランザクションシー
ケンス番号122 、及び対応するライブページを指示する
ライブページポインタ123 を有している終端部又はペー
ジ末尾118 も具えている。
ージ上の全記憶セグメントに対するディレクトリである
ラインインデックス124 を具えている。このラインイン
デックス124 は、ページの頂部からのオフセット及びペ
ージ上の各記憶セグメントの長さを有している。次に、
スナップショットページ110 は、トランザクションシー
ケンス番号インデックス125 を具え、これはスナップシ
ョットページ上に記録されたレコードのバージョンを最
初に生成したトランザクションのトランザクションシー
ケンス番号を識別する。更に、スナップショットページ
110 は、スナップインデックス126 を具え、これはライ
ブページライン番号を用いて各スナップショットライン
エントリをマップする。スナップインデックスによっ
て、1ライブレコードの幾つかのスナップショットバー
ジョンを、同一のスナップショットページに含ませるこ
とができる。実際上、代表的な場合には、スナップショ
ットインデックスを使用することによって、各ライブペ
ージ毎にただ1個のスナップショットページのみを設け
るが、幾つかの場合には各ライブページ毎に2個のスナ
ップショットページを設け、稀な場合には3個以上のス
ナップショットページを各ライブページ毎に設ける。ス
ナップショットページ110 の残部は、インデックスの下
方向への成長及び記憶セグメントの上方向への成長に対
する、ページの底部における記憶セグメント127 と、ペ
ージの中心部におけるフリースペース128 を具えてい
る。
ージと類似のフォーマットを具えている。各スナップシ
ョットページは、対応するライブページが記憶されるフ
ァイルとは異なるスナップショットファイルに記憶する
のが好ましい。従って、この場合、ハッシュテーブルイ
ンデックスは、ライブページ用のハッシュテーブルイン
デックスエントリとは異なるスナップショットメモリキ
ャッシュ内のスナップショットページ用のエントリを具
え、ファイル及びページ番号の連結を、ハッシュテーブ
ルインデックス30をインデックスする図4で使用される
レコード番号に対応させる。更に、図7のページフォー
マットを使用する場合には、レコードの更新を図5及び
図6に示すように行なうが、フリーバッファを使用して
更新されたページを受信する代わりに、フリーバッファ
を取り込み、更新前イメージページをフリーバッファに
コピーする方が幾分効果的である。この場合にはページ
の更新前イメージが更新のためにロックされ、フリーバ
ッファ内のコピーがスナップショットコピーとして使用
される。通常トランザクションはページ上のすべてのセ
グメントを更新するわけでないために、殆どの場合コピ
ーが必要となる。
ンドウ ”リカバリメカニズムを用いてトランザクション
を処理し、極めて高速なリカバリを提供する。その理由
は、障害トランザクションの影響のみを取り消す必要が
あるだけであるからである。しかし、各トランザクショ
ンがコミットされる度毎に、更新されたレコードを不揮
発性状態メモリに供給し、不揮発性スナップショットメ
モリを更新するのに、かなりの処理時間がかかる。しか
し、システムクラシュが極めて希な安定した環境下にお
いて、高速リカバリは特に重要ではない。複数トランザ
クションのために同一のレコードを更新する複数のトラ
ンザクション、及び多数のページを更新しない短いトラ
ンザクションの場合、各トランザクションの終了時ごと
に、更新されたレコードを状態メモリに供給するのに、
処理時間のかなりの部分が浪費される。
を使用し、各トランザクション後ごとに更新されたレコ
ードを状態メモリに供給しない。その代わりに、更新さ
れたレコードを更新後イメージログに順に書き込み、所
定の”チェックポイント”が生じる場合にのみ、更新さ
れたすべてのレコードを状態メモリにフラッシュする。
チェックポイントは、例えば、所定数のトランザクショ
ンがコミットされた後、又は最終チェックポイント後に
所定数のバイトが更新後イメージログに書き込まれた後
に発生する。従って、”リドゥ”リカバリメカニズム
は、更新されコミットされたレコードを揮発性メモリ内
に保持する。システムクラシュが発生すると、最後にコ
ミットされたトランザクションの終了時に存在する揮発
性状態メモリを、不揮発性メモリから最新チェックポイ
ント時に存在する状態メモリレコードを読み出すととも
に、更新後イメージログに記憶された変更を再び行うこ
とによって再構成する。例えば、変更を再実行する間、
更新後イメージログを順に読み出す。
を、揮発性状態メモリレコードとともに揮発性メモリに
記憶するとともに、トランザクションによる揮発性状態
メモリレコードの変更を、揮発性状態メモリレコードの
回復のために、不揮発性メモリ内の更新後イメージログ
に記録する。揮発性状態メモリレコードの更新のみなら
ず、揮発性スナップショットレコードの更新も、チェッ
クポイント時に不揮発性メモリにフラッシュする。更
に、選択されたレコードのフラッシュがチェックポイン
ト間で行われ、この時点においてすべての更新されたレ
コードをフラッシュする必要がない。更に、スナップシ
ョットの更新を更新後イメージログに記憶する必要がな
い。本発明によるこれらの利点は、選択状態メモリレコ
ードが不揮発性メモリに供給される以前に、選択レコー
ドの更新されたすべてのスナップショットを不揮発性メ
モリに供給することによって実現される。
ショットメモリのキャシィング機能を用い、状態メモリ
キャッシュ及びスナップショットメモリキャッシュを保
持できると共に、慣用の更新後イメージ記録機能を用い
て、更新後イメージログを保持できる利点もある。図1
のディジタルコンピュータ20に、これら慣用の機能を使
用している本発明の特別な例を、以下に図8を参照して
説明する。
ルコンピュータ(図1の参照番号20)の動作を説明する
フローチャートである。このディジタルコンピュータの
動作は、ステップ150 において、例えば電力障害後にコ
ンピュータに電力を供給する際に開始する。ステップ15
0 において、最終チェックポイントの後にコミットされ
るトランザクションを計数するカウンタ(COUNTER )が
クリアされ、更新後イメージファイルに記録されるバイ
ト数を記録する変数(BYTES )がクリアされ、ハッシュ
テーブルインデックス(図4の参照番号30)をクリアす
ることによって、状態メモリキャッシュ(図1の参照番
号29)及びスナップショットメモリキャッシュ(図1の
参照番号32)がクリアされる。
ージログを用いて状態メモリを”ロールフォワード”し
て最終チェックポイントの後の更新後イメージログ内の
更新を状態メモリに含める。このことは、更新後イメー
ジログを前方向又は後方向に走査することによって行わ
れる。但し、慣用となっている”Rdb/VMS ”及び”VAX
DBMS”の更新後イメージ記録機能は、最終チェックポイ
ントで開始し、前方向に更新後イメージログを走査す
る。例えば、最終チェックポイントのポインタが、更新
後イメージログのヘッダレコードから読み出される。又
は、これらが、”ルートファイル”又は不揮発性メモリ
内のシステムカタログから読み出されることが好まし
い。
との関連で上記説明したように、更新前イメージログを
走査し、更新前イメージログから不揮発性メモリへと更
新前イメージを書き込むことによって、故障トランザク
ションの影響を取り消す。
を参照して説明したように、不揮発性メモリから揮発性
メモリへとレコードを記憶するとともに、更新されるべ
きレコードをロックすると共に、(オペレーティングシ
ステムの制御の下)ステップ153 において、トランザク
ション処理が再開される。
れたライブレコードを、すべての更新されたレコードが
不揮発性メモリにフラッシュされるチェックポイント間
において不揮発性状態メモリにフラッシュする。選択さ
れたライブレコードを不揮発性メモリにフラッシュし
て、例えば、バッファプール内にフリーバッファを与え
る(図5のステップ77及び91に対応する)。他の処理が
選択された状態レコードへのアクセスを望むときに、マ
ルチプロセッシング又はマルチプロセッサシステムにお
けるデータの無矛盾性を保証できるように、選択された
状態メモリレコードも不揮発性メモリに供給することが
できる。
ク解除された)ライブレコードが状態メモリにフラッシ
ュすべきであると判定された場合、ステップ156 におい
て図2のルーチンが使用され、揮発性ライブレコードを
不揮発性状態メモリにフラッシュする。本発明の重要な
態様によれば、このフラッシュは、揮発性ライブレコー
ドを不揮発性状態メモリに供給する以前に、最初に、ス
テップ155 において、ライブレコードのアクティブスナ
ップショットのすべてを揮発性スナップショットメモリ
から不揮発性スナップショットメモリにフラッシュする
ものである。
Ty がコミット可能状態にある場合、実行はステップ15
8 に分岐する。例えば、各トランザクションは、ステッ
プ158 に実行を移つさせる”COMMIT”又はエンドステー
トメントを含むプログラムとすることができる。トラン
ザクションTy は、ステップ158 において、カウンタ
(COUNTER )をインクリメントし、ロックをその更新さ
れたレコードから解放するとともに、ステップ159 にお
いて、バイト数(BYTES )を更新されたレコード内のバ
イト数だけ増加させると共に、その更新されたレコード
を更新前イメージログファイルに書き込むことによって
コミットされる。次に、ステップ160 において、単一の
更新前イメージログファイルが使用される場合、”コミ
ット(commit)Ty ”レコードが更新前イメージログに
書き込まれ、個別の更新前イメージログファイルが各処
理毎に使用される他の場合、Ty トランザクション処理
用の更新前イメージログファイルが捨てられる。最後に
ステップ161 において、チェックポイントに到達したか
否かに基づき、実行が分岐する。このため、最終のチェ
ックポイント(COUNTER )の後、ステップ158 〜160 に
おいてコミットされたトランザクション数が、所定の臨
界値と比較され、更新後イメージログファイルに記録さ
れたバイト数(BYTES )も、所定の臨界値と比較され
る。いづれの臨界値も越えていない場合には、実行はス
テップ153 に分岐し、トランザクション処理を継続す
る。これ以外の場合には、実行がステップ162 に分岐
し、チェックポイントフラシュを開始する。本発明によ
れば、各ライブレコードがフラッシュされる以前に、ス
ナップショットレコードがフラッシュされる。
R )及びバイトアキュムレータ(BYTES )がクリアされ
る。その後、ステップ163 において、最終チェックポイ
ント以後更新されたスナップショットメモリキャッシュ
内のアクティブスナップショットレコードが、不揮発性
スナップショットメモリに書き込まれる。(レコードト
ランザクションシーケンス番号が現在のトランザクショ
ンのカットオフトランザクションシーケンス番号以上の
場合、スナップショットレコードはアクティブであ
る。)その後、ステップ164 において、更新された状態
メモリキャッシュレコードが、不揮発性状態メモリに書
き込まれる。最後に、ステップ165 において、チェック
ポイントレコードが更新後イメージログに記録され、チ
ェックポイントレコードのロケーションも、更新後イメ
ージログのヘッダ、又は”ルートファイル”に書き込ま
れる。
ク書き込み動作を用いて更新されたものと仮定する。ス
テップ163 において、更新後イメージログがキャッシュ
メモリに書き込まれるレコードの小部分においてのみ
(セグメント等の)変更を有しているシステムにおいて
のみ、図8のステップ163 におけるチェックポイントで
のキャッシュメモリ内の更新の書き込みを行うために、
アトミック動作が必要となることに留意すべきである。
この場合にのみ、再構成が、全レコードの原型コピーか
ら開始しない場合には、ステップ151 において、変更さ
れた部分、及び必ずしも必要ではないが変更されていな
い部分が再構成される。いづれにしても、アトミック書
き込みは、ステップ155 又は162 において、スナップシ
ョットレコードを不揮発性スナップショットメモリに供
給するのに必要とされない。しかし、多くのコンピュー
タシステムの場合、これらを考慮する必要はない。その
理由は、多くのコンピュータの場合、個々のレコードが
常に自動的に不揮発性メモリに書き込まれるからであ
る。
更新された状態レコードを不揮発性メモリに供給すると
共に、更新後イメージログ内にスナップショットレコー
ドを記録する必要なしに、不揮発性メモリ内にスナップ
ショットレコードを回復させる”リドゥ”記録の技術を
説明した。また、スナップショットレコードの回復は、
更新された状態レコードが不揮発性メモリに供給される
以前に、更新された状態レコードのアクティブ更新スナ
ップショットを不揮発性メモリに書き込むことによって
保証される。すべてのアクティブスナップショットが回
復されるため、更新後イメージログ内の更新がログ内の
最終チェックポイントから再実行された後に、分散トラ
ンザクション処理が容易に再開される。このスナップシ
ョットの回復は、多くの処理の中の1つのみが故障する
かもしれないマルチプロセッシング環境において特に有
利である。この場合には、1つの処理の故障が検出さ
れ、図8のステップ151 及び152 の回復処理が行われ、
故障プロセスのトランザクションを回復させる。従っ
て、他のプロセスは、故障プロセスの影響を受けない。
ルコンピュータを示すブロック図である。
処理を実行すると共に、”アンドウ ”リカバリ方法を使
用する手続きを示すフローチャートである。
プショットが有効である理由を説明するためのタイミン
グ図である。
揮発性スナップショットレコードとをハッシュテーブル
にリンクさせ、特定のレコードを揮発性メモリ内で検出
可能にするデータ構造を説明するための図である。
レコードを取り込むための手続きを示すフローチャート
である。
て更新される際に、状態メモリレコードからスナップシ
ョットレコードを生成するための手続きを示すフローチ
ャートである。
ド編成を示す図である。
タルコンピュータの動作を示すフローチャートである。
Claims (15)
- 【請求項1】 ディジタルコンピュータを作動させ、ト
ランザクションを処理するための方法であって、該方法
が: a)不揮発性状態メモリから状態メモリレコードを読み
出し、該状態メモリレコードを揮発性状態メモリキャッ
シュに書き込む行程と; b)揮発性状態メモリキャッシュ内の選択された状態メ
モリレコードから、揮発性スナップショットメモリキャ
ッシュ内にスナップショットコピーを作成し、揮発性状
態メモリキャッシュ内の各選択状態メモリレコードから
作成されるスナップショットコピーの対応セットを、揮
発性スナップショットメモリキャッシュ内に保持し、前
記揮発性状態メモリキャッシュ内の選択された状態メモ
リレコードに対して、前記トランザクションによって指
定された変更を行うとともに、前記変更を不揮発性メモ
リ内の更新後イメージログにコミットする行程と; c)揮発性スナップショットメモリキャッシュからスナ
ップショットコピーを読み出し、該スナップショットコ
ピーを不揮発性スナップショットメモリに書き込み、揮
発性状態メモリキャッシュから選択された状態メモリレ
コードを読み出し、該選択された状態メモリレコードを
不揮発性状態メモリに書き込む行程とを具え、 前記行程c)において、各選択された状態メモリレコー
ドを揮発性状態メモリキャッシュから読み出し、不揮発
性状態メモリに書き込む前に、各選択された状態メモリ
レコードのスナップショットコピーに対応するセットを
揮発性スナップショットメモリキャッシュから読み出
し、不揮発性スナップショットメモリに書き込むことを
特徴とするトランザクション処理方法。 - 【請求項2】 行程b)及び行程c)が順次に繰り返え
され、且つ行程b)において、所定数のトランザクショ
ンによって指定された変更がコミットされた後に、行程
c)が実行されることを特徴とする請求項1に記載のト
ランザクション処理方法。 - 【請求項3】 行程b)及び行程c)が順次に繰り返え
され、且つコミットされた変更によって更新後イメージ
ログ内の所定量の記憶スペースが占有された後に、行程
c)が実行されることを特徴とする請求項1に記載のト
ランザクション処理方法。 - 【請求項4】 選択された状態メモリレコードのうちの
特定の1つを揮発性状態メモリキャッシュから読み出
し、不揮発性状態メモリに書き込むことにより、他の状
態メモリレコードが不揮発性状態メモリから読み出され
たとき、この他の状態メモリレコードを書き込む記憶ス
ペースを揮発性メモリスに提供することを特徴とする請
求項1に記載のトランザクション処理方法。 - 【請求項5】 揮発性状態メモリキャッシュ及び揮発性
スナップショットメモリキャッシュを中断させる故障か
らの回復行程を更に具えている請求項1に記載のトラン
ザクション処理方法であって、 前記故障からの回復行
程が、不揮発性状態メモリから読み出された状態メモリ
レコードに、更新後イメージログにコミットされた変更
を実行し、次いでトランザクション処理を再開させる行
程を具えていることを特徴とするトランザクション処理
方法。 - 【請求項6】 前記トランザクション処理の再開行程
が、不揮発性スナップショットメモリから、故障以前に
不揮発性スナップショットメモリに書き込まれたスナッ
プショットコピーを読み出す行程を具えていることを特
徴とする請求項5に記載のトランザクション処理方法。 - 【請求項7】 揮発性状態メモリキャッシュ内の各選択
状態メモリレコードから作成されたスナップショットコ
ピーの対応セットを揮発性スナップショットメモリキャ
ッシュ内に保持する前記行程が、前記対応セット内に含
まれているスナップショットコピーのポインタによりリ
ンクされたリストを保持することによって行われ、前記
リンクされたリストは、揮発性状態メモリ内の前記各選
択状態メモリレコードにポインタによりリンクされるこ
とを特徴とする請求項1に記載のトランザクション処理
方法。 - 【請求項8】 前記トランザクションのうちの特定の1
つの処理が開始する際に存在する、コミットされた状態
メモリレコードの適切なコピーをサーチする行程を更に
具え、前記適切なコピーは前記揮発性メモリ内の前記状
態メモリキャッシュから又は前記不揮発性メモリ内の前
記状態メモリから取り出された状態メモリレコード、又
は前記揮発性メモリ内の前記スナップショットキャッシ
ュから又は前記不揮発性メモリ内の前記スナップショッ
トキャッシュから取り出されたスナップショットレコー
ドであることを特徴とする請求項1に記載のトランザク
ション処理方法。 - 【請求項9】 前記スナップショットコピーの作成行程
が、ポインタを変更し、状態メモリレコードを保持して
いるバッファを揮発性状態メモリキャッシュから揮発性
スナップショットメモリキャッシュに転送するととも
に、フリーバッファを揮発性状態メモリキャッシュに割
り当て、状態メモリレコードの変更されたコピーを受信
させることによって行われることを特徴とする請求項1
に記載のトランザクション処理方法。 - 【請求項10】 前記スナップショットコピー作成行程
が、フリーバッファを揮発性スナップショットメモリキ
ャッシュに割り当てるとともに、状態メモリレコード
を、揮発性スナップショットメモリキャッシュに割り当
てられたフリーバッファにコピーすることによって行わ
れることを特徴とする請求項1に記載のトランザクショ
ン処理方法。 - 【請求項11】 ディジタルコンピュータを作動させ、
トランザクションを処理するための方法であって、該方
法が: a)不揮発性状態メモリから状態メモリレコードを読み
出し、該状態メモリレコードを揮発性状態メモリキャッ
シュに書き込む行程と; b)揮発性状態メモリキャッシュ内の選択された状態メ
モリレコードから、揮発性スナップショットメモリキャ
ッシュ内にスナップショットコピーを作成し、揮発性状
態メモリキャッシュ内の各選択状態メモリレコードから
作成されるスナップショットコピーの対応セットを、揮
発性スナップショットメモリキャッシュ内に保持し、前
記トランザクションのうちの特定の1つの処理が開始す
る際にしばしば存在する特定の状態メモリレコードの適
切なコピーを、揮発性状態メモリキャッシュ及びスナッ
プショットメモリキャッシュ内でサーチし、前記揮発性
状態メモリキャッシュ内の選択された状態メモリレコー
ドに対して、前記トランザクションによって指定された
変更を行うとともに、前記変更を、不揮発性メモリ内の
更新後イメージログにコミットし、この行程において複
数のトランザクションによって指定される変更を、前記
複数のトランザクションのうちの幾つかがコミットされ
る前に行う行程と; c)揮発性スナップショットメモリキャッシュからスナ
ップショットコピーを読み出し、該スナップショットコ
ピーを不揮発性スナップショットメモリに書き込み、揮
発性状態メモリキャッシュから選択された状態メモリレ
コードを読み出し、該選択された状態メモリレコードを
不揮発性状態メモリに書き込み、この行程において各選
択された状態メモリレコードを揮発性状態メモリキャッ
シュから読み出し、不揮発性状態メモリに書き込む前
に、各選択状態メモリレコードのスナップショットコピ
ーの対応するセットを揮発性スナップショットメモリキ
ャッシュから読み出し、不揮発性スナップショットメモ
リに書き込む行程と; d)揮発性状態メモリキャッシュ及び揮発性スナップシ
ョットメモリキャッシュを中断させる故障から回復させ
る行程とを具え、該故障からの回復行程が、不揮発性状
態メモリから読み出される状態メモリレコードに、更新
後イメージログにコミットされた変更を実行し、次いで
トランザクション処理を再開させる行程を具え、該トラ
ンザクション処理の再開行程が、不揮発性スナップショ
ットメモリから、故障前に不揮発性スナップショットメ
モリに書き込まれたスナップショットコピーを読み出す
行程を具えていることを特徴とするトランザクション処
理方法。 - 【請求項12】 前記行程b)及び行程c)が順次に繰
り返され、行程b)において、所定数のトランザクショ
ンによって指定された変更がコミットされた後に、行程
c)が実行されることを特徴とする請求項11に記載のト
ランザクション処理方法。 - 【請求項13】 行程b)及び行程c)が順次に繰り返
えされ、且つコミットされた変更によって更新後イメー
ジログ内の所定量の記憶スペースが占有された後に、行
程c)が実行されることを特徴とする請求項11に記載の
トランザクション処理方法。 - 【請求項14】 選択された状態メモリレコードのうち
の特定の1つを揮発性状態メモリキャッシュから読み出
し、不揮発性状態メモリに書き込むことにより、他の状
態メモリレコードが不揮発性状態メモリから読み出され
たとき、この他の状態メモリレコードを書き込む記憶ス
ペースを揮発性メモリに提供することを特徴とする請求
項11に記載のトランザクション処理方法。 - 【請求項15】 揮発性メモリ(22)と; 不揮発性メモリ(23)と; 前記不揮発性メモリ及び前記揮発性メモリに結合され、
前記不揮発性メモリからレコードを読み出し前記揮発性
メモリに書き込み、且つ前記揮発性メモリからレコード
を読み出し前記不揮発性メモリに書き込む中央処理装置
(21)とを具え、該中央処理装置はトランザクション
処理プログラム(25)でプログラムされ、該プログラ
ムされた中央処理装置は、 選択されたトランザクションにより処理するために指定
のレコードを取り出す手段であって、該手段は、各指定
のレコードを、該指定のレコードが前記揮発性メモリ内
にあるときは前記揮発性メモリから取り出し、そうでな
い場合には各指定のレコードを前記不揮発性メモリから
取り出し、前記揮発性メモリに記憶し、且つ前記トラン
ザクションのための各指定のレコードの適切なコピーを
取り出し、前記適切なコピーとして前記揮発性メモリ内
の状態メモリキャッシュ(29)から又は前記不揮発性
メモリ内の状態メモリ(26)から状態メモリレコー
ド、又は前記揮発性メモリ内のスナップショットメモリ
キャッシュ(32)から又は前記不揮発性メモリ内のス
ナップショットメモリ(31)からスナップショットレ
コードを取り出すフェッチ手段(71−93)と; 前記揮発性状態メモリキャッシュ内の選択された状態メ
モリレコードのスナップショットコピーを前記揮発性ス
ナップショットメモリキャッシュ内に作成して、前記揮
発性状態メモリキャッシュ内の各選択された状態レコー
ドが前記揮発性スナップショットキャッシュ内にスナッ
プショットコピーの対応セットを有するようにするスナ
ップショット作成手段(101,102,103)と; 前記揮発性状態メモリキャッシュ内の選択された状態メ
モリレコードに前記トランザクションにより指定された
変更を実行する手段(153)と; 前記変更を前記不揮発性メモリ内の更新後イメージログ
(28)にコミットする手段(159,160)と; スナップショットコピーを前記スナップショットメモリ
キャッシュから読み出し、該スナップショットコピーを
前記不揮発性メモリ内のスナップショットメモリに書き
込み、且つ選択された状態メモリレコードを前記状態メ
モリキャッシュから読み出し、該選択された状態メモリ
レコードを前記不揮発性メモリ内の状態メモリに書き込
むキャッシュフラッシング手段(163,164)とを
具え、該キャッシュフラッシング手段が各選択された状
態メモリレコードを前記状態メモリキャッシュから読み
出し、前記不揮発性メモリ内の状態メモリに書き込む前
に、各選択された状態メモリレコードのスナップショッ
トコピーの対応するセットを前記スナップショットメモ
リキャッシュから読み出し、該各選択された状態メモリ
レコードのスナップショットコピーの対応するセットを
前記不揮発性メモリ内のスナップショットメモリに書き
込む手段を具えていることを特徴とするトランザクショ
ン処理装置。
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)
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)
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)
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 |
-
1991
- 1991-06-18 US US07/717,212 patent/US5369757A/en not_active Expired - Lifetime
-
1992
- 1992-06-12 GB GB9212530A patent/GB2256952B/en not_active Expired - Lifetime
- 1992-06-18 JP JP4159414A patent/JP2679779B2/ja not_active Expired - Lifetime
- 1992-06-19 DE DE4220198A patent/DE4220198C2/de not_active Expired - Lifetime
Patent Citations (3)
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)
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 |