JPH0683682A - アンドゥーログ使用の最大利用のための方法及び装置 - Google Patents

アンドゥーログ使用の最大利用のための方法及び装置

Info

Publication number
JPH0683682A
JPH0683682A JP3242865A JP24286591A JPH0683682A JP H0683682 A JPH0683682 A JP H0683682A JP 3242865 A JP3242865 A JP 3242865A JP 24286591 A JP24286591 A JP 24286591A JP H0683682 A JPH0683682 A JP H0683682A
Authority
JP
Japan
Prior art keywords
block
transaction
log
record
undo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3242865A
Other languages
English (en)
Other versions
JP2501152B2 (ja
Inventor
David B Lomet
ビー ロメット ディヴィッド
Peter M Spiro
エム スピロ ピーター
Ashok M Joshi
エム ジョッシー アショーク
Ananth Raghavan
ラグハーヴァン アナント
Tirumanjanam K Rengarajan
ケイ レンガラジャン ティルマンジャーナム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH0683682A publication Critical patent/JPH0683682A/ja
Application granted granted Critical
Publication of JP2501152B2 publication Critical patent/JP2501152B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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
    • 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
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 クラッシュ或は故障が発生した際にアンドウ
ートランザクションに記録させなくてはならない情報を
最小限におさえる。 【構成】 ライト−アヘッドログ−プロトコールを用い
てアンドゥ−ログの最適化を実施するために、書込むブ
ロックがコミットしていないデータを含むかどうかを判
定し1010、含んでいる場合はアンドゥ−バッファー
をアンドゥ−ログに書き込み、リドゥ−バッファーをリ
ドゥ−ログに書き込み1020、その後又はブロックが
コミットしてないデータを含まない場合には1010、
ブロックを永久記憶装置に書込む1030。

Description

【発明の詳細な説明】
【発明の背景】本発明は一般に共用ディスクシステムに
おけるクラッシュからの回復の分野、特にかかる回復に
おけるログの使用に関する。総てのコンピュータはクラ
ッシュするとデータを失うことがある。あるシステムの
中には故障或いはクラッシュによりデータを失う可能性
が特に高いものがある。これはそれらのシステムがディ
スク及びプロセッサメモリ間で大量のデータを伝送する
ためである。データを失うことに共通した理由とは非持
久型記憶システム(例えばプロセッサメモリ)から持久
型記憶システム(例えばディスク)へデータを送る際の
不完全な伝送である。クラッシュ時に処理が行なわれる
としばしば不完全な伝送が生じる。一般に処理は2つの
記憶システム間の一連の記憶(或いは変更)の伝送を含
んでいる。データの紛失及びその回復をアドレスする際
に重要な概念は処理を「実行」するという考えである。
処理はその総ての効果が持久型記憶機構で安定している
ことをある程度保証されている時に実行されるのであ
る。処理が実行される前にクラッシュが生じた場合、回
復に必要な工程は処理後にクラッシュが生じた場合の回
復に必要なものとことなる。回復とは、知られた所望の
時点で完全なシステムを再開できるようにデータベース
を訂正する工程である。必要とされる回復の種類は当然
ながらデータの紛失理由による。コンピュータのシステ
ムがクラッシュすると、その回復手段はクラッシュシス
テムの例えばディスク等の持久型記憶機構を前回実行さ
れた処理により生じたものと一致する状態まで回復でき
る必要がある。持久型記憶機構がクラッシュ(媒体故障
と言う)すると、その回復には貯蔵されたデータをディ
スクに再生する必要がある。データベースシステムを回
復するための多くの手段はログを使用している。ログは
少なくともデータベースの場合、そのデータベースにど
んな変更が行われたのか、またそれらの変更はどのよう
な順序で行われたのかを示す時刻順のアクションのリス
トに過ぎない。従って、ログはコンピュータシステムに
データベースを知られた所望の状態にするものであり、
その後データベースはリドゥー(REDO)或いはアン
ドゥー(UNDO)の変更に使用できる。リドゥーは再
実行を、アンドゥーは無効を意味する。しかし、ノード
と呼ばれる数多くのコンピュータシステムが共用ディス
クの集合をアクセスするシステム配置においてはログは
管理しにくい。この構成のタイプは「クラスター」或い
は共用ディスクシステムと呼ばれる。このようなシステ
ムにおいてノードにデータをアクセスさせるシステムを
データ共用システムと呼ぶ。データ共用システムはデー
タの送信を行い、これによりデータブロック自身がディ
スクから要求するコンピュータに送られる。反対に「区
分」システムとしてより広く知られる機能送信システム
はデータの区分の「サーバー」として指定されたコンピ
ュータにオペレーションの集合を送信する。その後、サ
ーバーはオペレーションを実行してその結果を要求する
側に返送する。区分システムでは単一ノード或いは集中
システムのようにデータの各部は1ノード以下のローカ
ルメモリの中に属することができる。また、区分システ
ム及び集中システムは両方共単一のログに記憶されたア
クションしか必要としない。ここで重要なのはデータの
回復は1つのログの内容だけに基づき行なえることであ
る。一方、分配されたデータの送信システムは集中化さ
れず、同じデータが多数のノードのローカルメモリ内に
属してそれらのノードから更新できる。これにより同じ
データのために多数のノードロギングアクションが生じ
る。同じデータのために多数のログを有するアクション
の問題を避けるために、データ送信システムは、データ
の回復情報を記録する責任のある単一のログへデータの
ためのログの記録を返送することを要求する。しかし、
このような遠隔ロギングには別々に新たなシステム源が
要求される。何故なら入出力のほかに必要なログの記録
を有する別のメッセージをログに書き込むためである。
更にロギングコンピュータから受信通知を待つことによ
り遅れが大きくなり得る。これにより応答時間が増加す
るだけでなく、ユーザーが同じデータベースへ同時にア
クセスできいるという能力を減少させることにもなる。
別の方法としては代わる代わる書き込む共通のログを同
時に使用することである。しかし、これも調整のための
別のメッセージを必要とするため費用がかかり過ぎる。
これらの問題点はアドレスにとって重要である。何故な
らおうおうにしてデータ共用システムのほうが区分シス
テムより好ましいからである。たとえばデータ共用シス
テムはワークステーションに延長された期間データを貯
蔵させることができ、これによりデータの局所処理を高
い水準で実行できるため、データ共用システムはワーク
ステーション及びエンジニアリング設計アプリケーショ
ンにとって重要である。更に、データ共用システムは多
数のノードがデータを同時にアクセスし、いくつかの局
所データ自体を管理し、また他のデータを他のホストコ
ンピュータ及びワークステーションと共用できるため
に、本来的に耐故障性及びロードバランス性を有してい
る。従って、本発明の目的はリドゥーレコードからアン
ドゥー情報を除去することによりリドゥーログの管理を
容易にすることである。また本発明の他の目的はトラン
ザクション実行時にアンドゥー情報を放棄することによ
りアンドゥー情報の管理をより容易にすることである。
更に本発明の他の目的は、クラッシュ或いは故障が発生
した際にアンドゥートランザクションに記録させなくて
はならない情報を最小限におさえることである。 II.発明の要約 本発明は実行していないトランザクションの総ての変更
を除去でき、実行されたトランザクションからの変更を
再生でき、またアンドゥーログへのアンドゥーバッファ
の記録量を最小限に抑えることができるようにリドゥー
及びアンドゥーバッファから充分な情報を維持すること
により、先行技術の問題点を回避するものである。更
に、アクションは行われないため、トランザクションに
おけるアクションのカウントを保持することにより効率
を維持することができる。詳細には、複数のノード、及
びセクションごとに分割された持久型記憶媒体を有する
データ処理システムにおいて、前記複数のノードはトラ
ンザクションにより前記セクションに対して変更を行
い、前記各トランザクションは少なくとも1つのノード
により、少なくとも1つのセクションに対して行なう一
連の変更を有し、前記各トランザクションは、該トラン
ザクションにより行われる変更のレコード及び該トラン
ザクションの完了の表示が記憶媒体に確実に記憶された
場合に実行され、確実に記憶されない場合には実行され
ず、前記複数のノードの最初の1つは、少なくとも1つ
のセクションのコピーを保持するメモリと;該メモリに
連結されて、そのメモリ内の少なくとも1つのセクショ
ンのコピーに対して変更を行なう処理手段と;前記メモ
リ内の少なくとも1つのコピーに対して前記処理手段に
より行われた変更の順次リストを有する少なくとも1つ
のアンドゥーバッファと;該各アンドゥーバッファは最
初のノードにより該ノード及び各アンドゥーバッファの
ための実行されていない異なるトランザクションに対し
て行われた変更に対応し、対応するノード内の処理手段
によりメモリ内の少なくとも1つのセクションのコピー
に対して行われた変更の順次リストを有するレコードバ
ッファと;前記メモリに連結され、少なくとも1つのセ
クションのコピーを前記記憶媒体に戻して記憶するため
の記憶手段と;実行されていないトランザクションの全
変更の効果を除去できること、及び実行されたトランザ
クションの全変更の再生できることを確実にするため
に、前記アンドゥーバッファ及びリドゥーバッファの部
分を前記記憶媒体に選択的に記憶する、アンドゥーバッ
ファ及びリドゥーバッファに連結された、ログ管理手段
と;よりなることを特徴とする。本願の一部である添付
図面は本発明の好適な実施例を示し、本明細書と共に本
発明の原理を説明するものである。
【好適な実施例の説明】本発明の好適な実施例を以下に
詳述する。その具体例を添付図面に図示する。A.システムの構成要素 システム100は本発明を実施するのに使用できる記憶
システムの一例である。システム100はノード11
0、120及び130を有し、これらは総て共用ディス
クシステム140をアクセスする。ノード110、12
0及び130は後述の記憶及び回復ルーティーンを実行
するためにそれぞれプロセッサ113、123及び13
3を有する。ノード110、120及び130は少なく
とも2つの機能を提供するためにそれぞれメモリ11
8、128及び138を更に有している。これらの機能
のうち一方は対応するプロセッサのための局所メモリと
して作動し、他方は前記ディスクシステム140と交換
されてデータを保持するものである。データ交換に使用
されるメモリの部分はキャッシュと呼ばれる。キャッシ
ュは一般に非持久型記憶システムである。共用ディスク
システム140もたとえ永続的記憶システムの一部或い
は総てがクラッシュしても、記憶内容は永続であると考
えられる持久型記憶システムを指す。この持久型システ
ムは伝統的に磁気ディスクシステムを採用しているが、
永続的記憶システムは光学式ディスク或いは磁気テープ
システムを使用することもできる。また、本発明を実施
するのに使用される永続的記憶システムは図1に示され
るアーキテクチャー(コンピュータの設計仕様)にのみ
限定されるものではない。例えば、この永続的記憶シス
テムはそれぞれ異なるノードに結合されたいくつかのデ
ィスクを使用することもでき、それらノードはいくつか
のタイプのネットワークに連結されても良い。永続的記
憶システムの他の部分はアーカイブ(archive)
記憶システムと呼ばれるバッタアップシステム150で
ある。アーカイブ記憶システムという用語は永続的記憶
システム内のデータが読み取り不能になった際に永続的
記憶システムの内容を復元させる情報のために使用され
る記憶システムに言及するのに一般に使われている。例
えば共用ディスクシステム140が媒体に障害を起こし
た時、そのシステム140を復元するためにテープシス
テム150を使用することができる。アーカイブ記憶シ
ステムは通常磁気テープシステムを使用しているが、磁
気或いは光学式ディスクシステムを使用することもでき
る。システム100のデータは通常ブロックに記憶さ
れ、それは該システムの回復可能な目的である。一般に
ブロックはそれらがあるノードのキャッシュ内にある時
のみ作動できる。図2はディスク200の一部のブロッ
ク210、220及び230の一例を示したものであ
る。一般に1つのブロックは永続的記憶システムの整数
のページ数を有している。例えば、図2においてブロッ
ク210はページ212、214、216及び218を
有している。B.ログ 上述の通り、データベースシステムの殆どは回復を目的
としたログを使用している。ログは通常永続的記憶シス
テム内に記憶される。ノードが永続的記憶システムを更
新する時、ノードはそのノードのキャッシュ内のバッフ
ァ内の更新を記述するログレコードを記憶する。本発明
の好適な実施例では永続的記憶システムにおいて3つの
タイプのログを想定しているが、各ノードのキャッシュ
には2つのタイプのバッファしかない。前記ログとはリ
ドゥーログ(RLOG)、アンドゥーログ(RLOG)
及びアーカイブログ(ALOG)である。また、前記バ
ッファとはリドゥーバッファ及びアンドゥーバッファで
ある。RLOGの例を図3に、ULOGの例を図4、ま
たALOGの例を図5に示す。リドゥーバッファの構成
はRLOGに類似しており、アンドゥーバッファの構成
はULOGに類似している。ログの順序番号(LSN)
はログ内のレコードのアドレス或いは相対的位置であ
る。各ログはそのログ内のレコードにLSNを示す。1. RLOG(リドゥーログ) 図3に示されるようにRLOG300は変更に関する情
報を記録するために使用される順次ファイルの好適な実
施例であり、その情報はそれらの変更が示される間に行
われる特定のオペレーションを繰り返すことを許容する
ものである。一般に、これらのオペレーションは一度ブ
ロックが記録されたアクションの実行された状態まで復
元されると、回復計画の間反復させる必要がある。図3
に示されるように、RLOG300はレコード310、
302及び310を有し、各レコードは幾つかの属性を
有する。TYPE属性320は対応するRLOGレコー
ドのタイプを識別する。RLOGレコードの異なるタイ
プの例としてはリドゥーレコード、補正ログレコード及
び実行に関するレコードである。これらのレコードにつ
いて以下に説明する。TID属性325はカレントレコ
ード(現在レコード)に関連するトランザクションのた
めの唯一の識別名である。この属性は現在のRLOGレ
コードに対応するULOGのレコードを探すための補助
に使用される。BSI属性300は状態前識別名(be
fore state identifier)であ
る。この識別名を以下に詳述する。簡単に言えば、この
BSIは対応するトランザクションにより修正変更され
る前のブロックのバージョンのための状態の識別名の値
を示す。BID属性335はRLOGレコードに対応す
る更新により修正変更されたブロックを識別する。RE
DO DATAM属性340は対応するアクションの性
質を記述し、そのアクションを繰り返すための充分な情
報を提供する。「更新」という用語は本明細書の中で広
義に、且つ「アクション」という用語と同じ意味に使用
される。アクションとは厳格に言えば、レコードの変更
だけではなく、レコードの挿入及び削除、またブロック
の割り振り及び開放をも含む。LSN属性345は唯一
RLOG300のカレントレコードを識別する。後述す
るように、LSNバッファ345は本実施例ではレドス
キャン及びRLOGチェックポイントを制御するのに使
用される。LSN345は本実施例ではRLOGレコー
ド或いはブロックのいずれにも記憶されない。それはR
LOG内のレコードの位置から本来固有のものだからで
ある。本発明の目的は各ノードに他のノードとは可能な
限り独立してその回復を管理させることである。このた
めに、別個のRLOGを各ノードに関連させる。好適な
実施例におけるノードとRLOGとの関連は各ノードに
異なるRLOGを使用する方法を用いている。別の方法
として、ノードにRLOGを共用させるか、或いは各ノ
ードに多数のRLOGを与えることもできる。しかし、
RLOGが1つのノード専用である場合には、そのとR
LOGをほかのRLOGやノードに同等に使用するため
のメッセージを含む同期化は必要ない。2. ULOG(アンドゥーログ) 図4において、ULOG400は、ブロックのオペレー
ションを正しく取り消す情報を記録するのに使用される
順次ファイルの好適な実施例である。ULOG400は
ブロックをトランザクションが始まった時の状態に復元
させるのに使用される。RLOGとは異なり、ULOG
及びアクシヨンバッファはそれぞれ異なるトランザクシ
ョンに関連する。従って、ULOG及びそれらの対応す
るバッファはトランザクションが実行されると消失し、
新たなトランザクションが開始すると新たなULOGが
出現する。他の可能性も存在する。ULOG400はレ
コード410、402及び410を有し、各レコードは
2つのフィールドを有する。BIDフィールド420は
そのレコードに記録されたトランザクションにより修正
変更されたブロックを識別する。UNDO−DATAフ
ィールド430は更新の性質を記述し、更新されたもの
を元に戻すのに充分な情報を提供する。RLSNフィー
ルド440は或るアクションが取消された時のために同
じアクシヨンを記述するRLOGレコードを識別する。
この属性は各ULOGを別々に識別する機能を提供する
ためのものである。3. ALOG(アーチブログ) 図5においてALOG500は図1の共用ディスクシス
テム1400が故障した時等の媒体の回復に充分な時間
レドログの記録を記憶させるのに使用される順次ファイ
ルの好適な手段である。RLOGバッファはALOG5
00が発する情報源であり、従って、ALOG500は
RLOG300と同じ属性を有する。ALOGは好まし
くは対応するRLOGの切断部分から形成される。切断
部分はブロックの永続的記憶システムのバージョンをカ
レントバージョンにする必要のない部分である。しか
し、ブロックの永続的記憶システムバージョンが入手不
可能になった場合や、アーチブ記憶システムのブロック
のバージョンから回復させることが必要になった場合、
このRLOGの切断部分のレコードはまだ必要である。
RLOG300と同様にALOG500はレコード50
1、502及び503を有する。TYPE520、TI
D525、BSI530、BID535及びREDO−
DATA540の属性は同じ名称のRLOG300にお
ける属性と同様に機能する。LSN545はRLOG3
00のためのLSN345と同じくALOGのレコード
を識別する。C.状態識別名(及びライト−アヘッドログプロトコ
ル) ログベースシステムではログレコードは、記録されたブ
ロックの状態がログレコードに指定された更新に適切で
ある場合にのみブロックに出力される。従って、レドの
訂正に充分な条件はブロックがオリジナルのアクション
の遂行された時と同じ状態にある時に、記憶されたトラ
ンザクションをブロックに出力することである。オリジ
ナルアクションが正しければ、やり直されたアクシヨン
も正しいであろう。ブロックの状態の全体の内容をログ
に記録させるのは難しく、実用的ではない。従って、ブ
ロックの状態のために代理の値、或いは識別名が作られ
る。本実施例で使用されるその識別名は状態識別名、即
ち、SIである。SIは各ブロックのための唯一の値を
有する。その値はブロックのオペレーションの実行前、
或いは後等のように特定の時間におけるブロックの状態
を識別する。SIは完全な状態よりもはるかに小さいた
め、必要な時に完全な状態が再現できる限り、完全な状
態の代用として安価に使用できる。SIはブロック内の
区画状態識別名、即ち、DSIと呼ばれる特定の値を記
憶することにより「区画」される。このDSIはそれが
含まれるブロックの状態を示す。状態の再生は回復の間
に永続的記憶システムに記憶された全体のブロックをア
クセスすると共にそのブロックのDSIを示すことによ
り行なわれる。このブロックの状態は適切なログアクシ
ョンを行なうことにより、後述のように更新される。A
LOGを用いた媒体の回復のための類似した方法を次に
述べる。ログレコードがブロックに出力されたか否かを
知ることにより、ログアクションがどのような状態を出
力したかをログレコードにより判断できる。本発明によ
れば、ブロックのDSIはログレコードをそのブロック
にいつ出力したかを判断するのに使用される。集中或い
は区分システムでは、アクションをやり直すために単一
のログのレコードの物理順序が用いられる。即ち、ある
ブロックのアクションBがそのブロックのアクションA
の直ぐ後に続く場合、そのアクションBはアクションA
に再生されたブロック状態に適用される。従って、アク
ションAがやり直されれば、ブロックに適用される次の
ブロックレコードはアクションBである。集中、或いは
区分システムのような単一のログシステムは通常ブロッ
クの状態を識別するのにDSIとしてLSNを使用して
いる。ブロックのためのDSIとして機能するLSNは
ブロック内で効果を反映させるべくログ順序における前
回のレコードを識別する。かかるシステムでは、ログレ
コードのLSNは記憶されたアクションの後のブロック
状態を識別する「状態後識別名」、即ちASIとして機
能する。これは後述するようにログレコード内で本発明
に使用されたBSI(状態前識別名)と対象的である。
DSIを更新して次のオペレーシヨンに備えるため、ロ
グレコードを出力した後のブロックのためのASIも決
定できる必要がある。記憶可能であるにも関わらずAS
Iをログレコードに記憶させなくても良いように、その
ASIをBSI等のログレコードから獲得できるのが有
効である。しかし、そのような獲得は回復や正常なオペ
レーション時に使えるものでなくてはならない。好まし
くは、SIは単調に増加し、ゼロから始まる整数の組等
の知られた順序である。この技法では、ASIは常にB
SIより1だけ多い。更新されたブロックを共用ディス
クシステム140等の永続的記憶システムに記憶する場
合、ライト−アヘッドログ(WAL)プロトコルが使用
される。WALプロトコルはレド及びアンドゥーバージ
ョンをブロックの前の共用ディスクシステム140内の
ログに書き込むことを要求する。これはアクションの反
復、或いは取消に必要な情報がデータの永続的コピーを
変更する前に安定して記憶するためである。WALプロ
トコルが理解されずに、ブロックの前回の更新のための
ログレギュレータ以前にブロックが永続的記憶システム
に書き込まれようとしても、一定の条件下では回復はで
きない。例えば、1つのノードで更新することにより、
実行されない更新を含むブロックは永続的記憶システム
に書き込まれる。そのブロックに対する前回の更新がノ
ードのRLOGに記憶されておらず、また第2のノード
の他のトランザクションがブロックを更新して実行した
場合、そのブロックのDSIは増加する。その第2のト
ランザクションのための実行時に、他のトランザクショ
ンのための記憶されたアクションが第2のノードのため
のRLOGに送られる。何故なら、2回目の更新は別の
ノードにより生じたものではあるが、第2のトランザク
ションのためのログレコードの書き込みからは、オリジ
ナルノードの実行されていないトランザクションのため
のログレコードが書き込まれるのを保証しないためであ
る。オリジナルノードがクラッシュし、また実行されて
いないトランザクションのためのログレコードがRLO
Gに書き込まれていない場合、ブロックのためのASI
−BSI順序にギャツプが生じる。例えばディスクの故
障等により永続的記憶システム内のブロックが入手不可
能になった場合、後述のALOGマージが知られている
SIのギャツプのない順序を要求するため回復は失敗す
るであろう。従って、WALプロトコルは記憶されたア
クションの破壊されない順序のために必要な条件であ
る。それはブロックの更新に関しても充分な条件であ
る。ブロックが1つのノードのキャッシュから別のもの
に移った場合、WALプロトコルは更新前のRLOGレ
コードを、トランザクションを実行することにより更新
されるブロックに強制する。「強制」とはノードキャッ
シュ、或いはバージョン内のレコードを永続的記憶シス
テムに安定して記憶することを確実にするという意味で
ある。永続的記憶システムに書き込むことにより、WA
Lプロトコルは前回更新されたログレコードからカレン
トブロックまで、オリジナルノードのRLOG内の総て
のレコードを書き込むことを強制する。D.新たなブロックの割り振り 正常なディスク記憶管理ルーティーン等の間にブロック
が開放され、後の段階で更に使用するために再度割り振
られた場合、このアクションは特殊ではない状態の識別
名になるため、DSIをゼロに設定してはならない。D
SIをゼロに設定すると、いくつかのログレコードが出
現してブロックに適用される可能性がある。何故ならそ
れらは同じSIを有しているからである。正確なログレ
コードを判断するために新たな情報が必要であろう。従
って前回の割り振りに使用されたDSIの連番は新たな
割り振りにおいて区切れずに保護しなければならない。
新たに割り振られたブロックのためのBSIは開放され
たブロックのASIであるのが好ましい。区切れないS
Iの連番を達成するのに簡単な1つの方法は、DSIを
フリーオペレーションの結果としてブロック内に記憶す
ることである。ブロックが再度割り振られると、それは
恐らく永続的記憶システムから読み取られ、正常にDS
Iの増加が続く。これは丁度更新オペレーシヨンのよう
に割り振り及び開放を扱う。この解決策の1つの問題点
はブロックを使用する前に、新たに割り振られたブロッ
クを読み取る必要があることである。しかし、最小の入
出力アクティビティーでスペース管理を効果的に行なう
ためには、「割り振り前の読み込みによりペナルティ
ー」を回避するのが望ましい。本発明は割り振られてい
ないブロック全てにDSIを書き込まないことにより効
率を高めるものである。以前割り振られていなかったブ
ロックのために初期のDSIは常にゼロに設定される。
そして割り振り解除されたブロックのDSIだけが記憶
される。これらのDSIは永続型記憶システム内のフリ
ースペースの簿記のためのシステムにより既に保持され
ているレコードを使用して記憶される。通常このような
簿記の情報はスペース管理でブロックの集合内に記録さ
れる。このスプレー管理の情報と共に、割り振り解除さ
れた各ブロックのための初期SIを記憶することによ
り、その初期SIをブロック内に記憶する必要がなくな
り、従って割り振り前の読み取りペナルティーを避ける
ことができる。再割り振りでは、「割り振り」オペレー
ションのためのBSIは以前の「解放」ブロックの初期
SIになる。勿論、この処理を正確に作動させるには、
スペース管理の情報を含むブロックを永続型記憶システ
ムに定期的に書き込まなければならず、1つのノードは
解放されたブロックの存在が簿記を介して明らかになる
まで、他のノードにより解放されたブロックを割り振っ
てはならない。従って、解放されたブロックのために初
期SIを維持することにより、フリースペース簿記の情
報の新たな読み取り或いは書き込みの必要が生じること
はない。フリーブロックのためのSI情報を追加すれば
このシステムに必要なスペース管理情報の量は増加する
が、システムの効率がそれ程低下しない2つの理由があ
る。第1の理由は、殆どのフリースペースは「以前に割
り振られてはいない」(never before a
llocated)という特徴を有しており、従って既
にゼロの初期SIを有している。第2の理由は、データ
ベースは通常成長するものであるので、以前使用された
フリースペースは殆どのデータでは小さい。初期SIは
再度割り振られたブロックのためだけに個別に記憶され
るため、SIの増加した記憶量は小さい。別の方法とし
て、以前割り振られていないブロックを再度割り振られ
たものと区別することができる。再割り振りされたブロ
ックのSIはそれらが割り振られる時永続型記憶システ
ムから読み取られる。しかし、上述の理由によりペナル
ティーの程度は軽いものの、これにより割り振り前の読
み取りペナルティーが生じる。E.回復 1. ブロックバージョン 回復においてログをいかにして使用できるかを理解する
ために、クラッシュ後に利用できる、異なるブロックバ
ージョンを把握する必要がある。これらのバージョン
は、利用できるカレントバージョンを作成するのにどれ
だけ多くのログが必要かに基づく記憶された更新の量と
して表現することができる。これはどのくらい広い或い
は局所化された回復アクティビティーであるかについて
明らかにインパクトを有する。回復のために、3種類の
ブロックがある。ブロックで実行された全ての更新がバ
ージョン内に反映されていれば、そのブロックのバージ
ョンが「カレント」バージョンである。故障後のカレン
トバージョンを有するブロックはレド回復を必要としな
い。しかし、予測できないシステムの故障に対処すると
き、更新するたびにキャッシュを永続型記憶システムに
全て書き込まなければ全てのブロックがカレントである
ことを保証できない。これは高価でありまれにしか行わ
れない。ただ一つのノードのログが、まだブロックに送
られていない更新を有している場合、ブロックのバージ
ョンは「ワン−ログ」(one−log)である。故障
が起きても多くても1つのノードが回復に使用されれば
良い。これは回復の間に、調整が高価についたり、また
新たに費用がかかる可能性を回避するので望ましい。1
つ以上のノードのログが、まだ適用されていない更新を
有することができる場合、ブロックのバージョンはN−
ログである。ワン−ログブロックよりもN−ログの方が
一般に回復がより難しいが、媒体メモリを提供する時に
ブロックが常にワン−ログであることを確実にすること
は実用的ではない。何故なら、これはブロックがノード
を変えるたびに、ブロックをアーカイブ記憶システムに
書き込み工程を含むからである。2. レド回復 システムのクラッシュ時に媒体とは対照的に、いくつか
のブロックが不注意によりN−ログになることがある。
しかし、本発明の好適な実施例では、全てのブロック
が、システムのクラッシュからの回復のためのワン−ロ
グブロックであることを保障している。N−ログブロッ
クは回復のためのノード間で複雑な調整を必要とするこ
とがあるため、これは利点である。更新は正常なシステ
ムの作動中に、分散された同時制御により最初に連続し
て行われたため、上述のような調整は可能ではあるが、
そのような同時制御は回復中には回避すべきであるオー
バヘッドを要求する。全てのブースタは、あるキャッシ
ュから他のものへ移動する前に永続型記憶システムに書
き込むよう「ダーティー」ブロックに要求することによ
り、レド回復に関してワン−レグになることが保障され
る。ダーティーブロックとは、そのブロックが永続型記
憶システムから読み取られているため、キャッシュにお
けるバージョンが更新されたものである。この規則に従
えば、要求するノードは、ブロックが新しいノードのキ
ャッシュに入る時はいつでもクリーンブロックを得るこ
とができる。更に、回復の間、ブロックを変更する前回
のノードのログのレコードだけをそのブロックに適用す
れば良い。他のノード他の全てのアクションは永続型記
憶システム内のブロックの状態において既に獲得されて
いる。従って、全てのブロックはリドゥーレコードに対
してワン−ログになり、そのためレグ回復は分散された
同時制御を必要としない。この技法は多数のログはブロ
ックのためのレコードを決して含まないという意味では
ない。この技法は1つだけのノードのレコードが永続型
記憶システム内のブロックのバージョンに適用できるこ
とを確実にするだけである。更に、システムのクラッシ
ュのためにワン−ログリドゥーの回復を用いることが考
えられるが、媒体の回復を実行するためには、ブロック
がキャッシュ間を移動するためだけに各ブロックがアー
カイブ記憶システムに書き込まれるのを避けるために多
数のログのリドゥーアクションを適用しなければならな
いかも知れない。従って、特定の環境では全てのログに
わたって記憶されたアクションにN−ログブロックのた
めの回復を提供するよう命令する必要が依然としてあ
る。しかし、SI順序のため、これは実行できる。図6
は上述のRLOG及びSIを使用したリドゥーオペレー
ションのための基本的工程のフローチャート600を示
す。このフローチャート600で示されるレドオペレー
ションは単一のブロックに適用される単一のRLOGレ
コードを使用して単一ノードにより行われる。先ず、ロ
グレコードにより識別されたブロックの最も新しいバー
ジョンはPS(工程610)から呼び戻される。その呼
び戻されたブロックに記憶されていたDSIがログレコ
ード(工程600)内に記憶されたBSIと等しけれ
ば、そのログレコードに示されたアクションがそのブロ
ックに適用され、DSIが増加して前記ブロックの新た
な状態を反映する(工程630)。前記DSIが前記B
SIと等しくない場合には、その更新はブロックには適
用されない。BSI及びASIは回復時に判断されるた
め、図6に関して述べられたリドゥーオペレーションは
可能である。従って、各ログのために、どのログレコー
ドをやり直さなければならないのかを判断でき、この判
断は他のログの内容と独立させて行うことができる。ブ
ロックDSI及びログレコードBSI間で行わなくては
ならない唯一の比較は同格性の比較である。図6に関し
て記述されたレドオペレーションはシステムのクラッシ
ュからの回復に使用することができる。クラッシュから
の回復の手順を図7のフローチャート700に示す。単
一のノードが他のノードとは独立してこのクラッシュか
らの回復処理を実行できる。最初の工程は最新のチェッ
クポイントにより示された最初のRLOGレコードをノ
ードに読み込ませることである(工程710)。後述す
るように、チェックポイントは適用しなければならない
最も古い更新に対応するレコードを含むRLOGにおけ
るポイントを示す。その後、図6に示されるリドゥーオ
ペレーションはそのログレコードに特定されたアクショ
ンをそのログレコードに識別されたブロックに適用する
かどうかを判断する(工程720)。リドゥーオペレー
ション終了後にそれ以上レコードがなければ、クラッシ
ュの回復は完了する。反対に他にもレコードがある場合
には、次のレコードがRLOGから呼び戻され(工程7
40)、図6に示されるリドゥーオペレーションが繰り
返される(工程720)。ログレコードに関連したSI
がASIを単調に増加する場合、ログレコードをある状
態のブロックに適用すべきか否かのテストは、このAS
IがそのブロックのDSIより大きい最初のものである
か否かのテストである。しかし、これはワン−ログの回
復だけにとってみれば充分である。何故なら、その場
合、ワン−ログだけがブロック内のDSIよりも大きな
ASIを有するレコードを持っているからである。しか
し、本発明の好適な実施例では、各ログレコードは記憶
されたアクションを実行する前と正確に同一のブロック
状態を含んでいる。上述のように、これが“befot
e state identifier”(状態識別名
の前)、即ち、BSIである。3. 媒体回復のための多数のログレゴ 媒体の回復はクラッシュの回復と同じ性格を多く有して
いる。例えば、ログレコードが適用される、安定して記
憶されたバージョンが必要である。また、重要な違いも
ある。第1に、ALOGレコードが適用されるブロック
の安定したバージョンは前回のアーチブ記憶システムに
送られたバージョンである。媒体の回復はN−ログであ
る。何故ならそれらはアーカイブ記憶システムからブロ
ックを復元し、また上述のようにブロックはそれらがキ
ャッシュ間を移動する度にアーチズ記憶システムに書込
まれないからである。従って、システムのクラッシュの
ためのN−ログ回復を避けるためにブロックを書き込ん
で記憶するという技法は媒体の回復には使用できない。
媒体の回復を管理するにはALOGを組合せなければ困
難である。ALOGと組合せない場合、回復は適用可能
なログレコードのための一定の検索を必要とする。AL
OGと組合せると、BSIの使用に際して大きな利点が
ある。図8は多数のALOGのマージャーを有するN−
ログ媒体の回復のための処理800を示している。組合
せは全てのログレコードの中の命令の統計に基づいてで
はなく、同じブロックのためのログレコードの中の命令
により生じた部分的命令に基づいて行われる。時々、対
応するそれぞれのブロックに適用できる。アクションの
レコードを有する多数のALOGがある。処理800の
記憶から明らかなように、媒体の回復時にこれらのアク
ションのどれを最初に適用するかは重要ではない。多数
のALOGを組合せて、単一のバス内のアーカイブ記憶
システムにおけるバックアップデータベースに適用する
方が速くて効果的である。これはSIが正しく命令され
た場合、行うことができる。上述の通り、SIは知られ
た順序で命令され、また本発明の好適な実施例が単調に
増加するSIを使用しているのはこのためである。いず
れのBLOGから開始しても最初のログレコードはアク
セスされる(工程810)。その後、ブロックID及び
BSIはそのレコードから抽出される(工程820)。
次にブロックIDにより識別されたブロックが取り出さ
れる(工程830)。一度、識別されたブロックが取り
出されると、そのDSIは読み込まれ、ALOGレコー
ドのBSIと比較される(工程840)。ここで、AL
OGのレコードのBSIがブロックのDSIより小さけ
れば、記憶されたアクションは既にブロックに盛り込ま
れているということであるためそのレコードは無視さ
れ、従ってレドは要求されない。また、ALOGレコー
ドのBSIがブロックのDSIと等しければ、記憶され
たアクションはブロックに適用されてやり直される(工
程850)。これは、SIが等しいということは記憶さ
れたアクションがブロックのカレントバージョンに適用
されるという意味であるからである。その後ブロックの
DSCは増加する(工程860)。これは記憶されたア
クションのアプリケーションがブロックの新しい(より
最新の)バージョンを作り出したことを示す。ここでA
LOGレコードのBSIがブロックのDSIより大きい
場合、ログレコードに対応するアクションを適用するの
には適切な時ではなく、代わりに他のALOGに記録さ
れたアクションを適用するのに適切な時である。従っ
て、このALOGの読み込みは休止しなければならず、
他のALOGの読み込みが開始される(工程870)。
他のALOGが既に休止していた場合には(工程88
0)。コントロール工程820に移しそのログが休止し
た時にカレントであったログレコードのブロックID及
びBSIを抽出する。また、ログが休止していなかった
場合には、コントロールはそれがあたかも最初のALO
Gであったとして処理を続ける。結局、これらの工程、
即ち他のALOGが前もって休止していなかった場合、
ALOGレコードのいずれかを残すか否かの判断か行わ
れる(工程890)。残すのであれば次のレコードは取
り出された(工程810)。残さないのであれば工程8
00を終了する。ALOGを休止する場合、カレントブ
ロックより先行するブロックのレコードを有する他の少
なくとも1つのALOGがなくてはならない。待機ログ
レコードを有する休止したALOGは単に、その最初の
アイテム(配列された順序で)が他の入力ストリーム
(即ちALOG)におけるアイテムよりも後で比較する
入力ストリームと見做される。処理は他のALOGを用
いて続行される。BSIは他のALOGに介入するアク
ションなしにはブロックのDSIよりも大きくはないた
め、休止したALOGのカレントレコードは後の段階で
ブロックに適用できなくてはならない。これが生じた
時、休止していたALOGは休止が解除される。アクシ
ョンはブロックのためのSIの配列に合致した配列で最
初に行われたため、ALOGの全てが同時に休止するこ
とはない。従って、ALOGのマージは常に可能であ
る。4. リドゥー管理 a.安全点の決定 本発明に関し、リドゥー回復をよりいっそう効率的にす
るのに、多くのチェックポイント設定テクニックを用い
ることができる。例えば、ダーティブロックテーブルを
作成して、回復管理情報を各ダーティブロックに対応づ
けすることができる。この情報は、RLOG管理に、従
ってALOGに、二つの重要な機能を提供するものであ
る。第一に、回復管理情報は、RLOGの走査及び切捨
を支配する「安全点」の決定に用いられる。第二に、回
復管理情報は、ポテンシャル取消ログについてだけでな
く、RLOGについてもWALプロトコルを実施する
(enforce)のに使用できる。安全点の決定は、
リドゥー回復を行うために、どれだけ多くのRLOGが
走査を必要とするかを決定するのに重要である。このリ
ドゥー走査に関するRLOGの開始点が、「安全点」と
呼ばれる。安全点は、二つの意味で「安全」である。第
1にリドゥー回復は、安全点に先行するレコードを安全
に無視することができ、これはそれらのレコードが、既
に全て永久記憶装置におけるブロックのバージョンに含
まれているからである。第二に、「無視した」レコード
は、もはや必要がないので、それらのレコードをRLO
Gから切捨てることができる。この第二の特徴は、アン
ドゥー/リドゥーログに関しては正しくない。例えば、
アンドゥーレコードが生成する長いトランザクションが
あったならば、アンドゥーレコードにおける動作が、永
久記憶装置に書込まれているリドゥーレコードにおける
動作に先行するため、チェックポイントの前に切捨てを
行うことは不可能である。このことが、切捨てを妨げて
いる。ダーティブロックテーブル900を図9に示す。
ダーティブロックテーブル900の現在のコピーを、揮
発性記憶装置に保守し、永久記憶装置のRLOGチェッ
クポイントの設定プロセスの一部として定期的に記憶さ
せることが好ましい。ダーティブロックテーブルエント
リ910、911及び912は、回復LSNフィールド
920及びブロックIDフィールド930を含む。回復
LSNフィールド920の値は、動作が永久記憶装置に
おけるブロックのバージョンに含まれない最早RLOG
レコードを識別する。そのため、LSNフィールド92
0の値は、リドゥーすることが必要な第1RLOGであ
る。ブロックIDフィールド930の値は、回復LSN
に対応するブロックを識別する。そのため、ダーティブ
ロックテーブル900は、全てのダーティブロックと、
そのブロックをダーティにしたRLOGレコードのLS
Nとを対応づける。ダーティブロックテーブル900の
もう一つのエントリは、ラストLSNエントリ950で
ある。このエントリに関する値は、各ブロックについ
て、ブロックに最新の更新を記述するRLOGレコード
及びULOGレコードのLSNである。ログにおける位
置を決定することが必要なため、DSLよりもむしろL
SNが使用される。ラストLSN950は、WALプロ
トコルを実施するためにブロックが永久記憶装置に書き
込まれた場合に、それぞれ、どれだけ多くのRLOG及
びULOGが強制を必要とするかを示す(RLOGに関
する)RラストLSN955及び(各々のULOGにつ
いて1つの)UラストLSN958のリストを含んでい
る。そのため、WALプロトコルを実施することは、永
久記憶装置に関するブロックに組込まれた全ての動作
は、安定に記憶されたRLOG及びULOGの両方を有
していることを意味する。RラストISN955及びU
ラストLSN958は、(後に述べる)チェックポイン
トには含まれないが、それらの役割がただRLOG及び
ULOGに関してWALプロトコル実施するに過ぎない
からである。そのため、好ましい実現においては、これ
らのエントリを回復LSNから分離しておき、それらが
チェックポイント情報とともに記憶されるのを避けるこ
とが好ましい。ノードのキャッシュにおける全てのブロ
ックに関する第1LSNが、局所RLOGのリドゥー走
査の安全点である。リドゥー回復は、安全点から順方向
に局所RLOGを読み取り、続くレコードにおける動作
を再実行することにより開始される。リドゥーが必要な
全てのブロックは、この走査の間に出会うリドゥーする
ことが必要な全ての動作を有している。先に説明したよ
うに、1−ログ想定(assumption)は、各R
LOGを分離して管理することを可能にする。ノード
は、それ自身のRLOGを処理するだけでよく、そのた
め、あるノードの動作は、他のノードのキャッシュにお
けるブロックがダーティである理由にはなり得ない。従
って、各ブロックに対応づけられた単純な回復LSN
{RLOGを指定(name)しないもの}を保存すれ
ば充分であり、ここにおいて回復LSNは、局所RLO
Gにおけるレコードを識別することが判る。b.チェックポイントの設定 チェックポイントの設定の目的は、安全点の決定が、上
記の様に、システムの破損の後も存続できることを確か
なものにすることである。チェックポイントの設定は、
安全点を移動させてリドゥーの必要なログの部分を小さ
くさせることのできる管理ブロック用ストラテジと組合
せることができる。チェックポイントの設定のための多
数の様々なテクニックがある。一つを以下に述べるが、
必須のテクニックであると解するべきではない。本発明
を実現する好ましいテクニックは、「ファジー」RLO
Gチェックポイント設定の形式である。「ファジー」と
呼ばれるのは、トランザクション又はオペレーションが
終了したかどうかに係わりなくチェックポイントの設定
を行うことができるからである。チェックポイントを設
定した情報からのダーティブロックテーブル900のバ
ージョンの回復は、リドゥー走査を開始する位置の決定
を可能にする。ダーティブロックテーブル900のブロ
ックだけが永久記憶装置に記憶されていない動作を有し
ているため、それらのブロックをリドゥーするだけでよ
い。先に説明したようにダーティブロックテーブル90
0は、リドゥーが必要かもしれない第1に記録されたト
ランザクションを示す。RLOGによるシステム破損回
復とALOGによるメディア回復は、典型的に異なる安
全点を有し、そのため切捨てられる。特に、RLOGの
切捨てられた部分が、メディア回復に必要なままである
ことがある。そうであれば、その切捨てられた部分は、
ALOGの一部になる。ALOGの切捨てには、RLO
Gのチェックポイントを用いる。RLOGのチェックポ
イントは、チェックポイントの時点でのRLOGの切捨
てを可能にする安全点を決定する。これは、永久記憶装
置におけるデータの全てのバージョンが、この安全点よ
りも新しく、そうでなければこの点は安全ではないから
である。ALOGを切り捨てるため、永久記憶装置に関
するブロックを先ずバックアップして記憶をアーカイブ
する。これが終了すると、アーカイブチェックポイント
レコードが、了解位置(agreed upon lo
cation)、例えばアーカイブ記憶機構に書き込ま
れ、アーカイブチェックポイントの決定が始まった時に
カレントであったRLOGのチェックポイントを識別す
る。ALOGは、アーカイブチェックポイントにおいて
メディア回復のために指定されたRLOGチェックポイ
ントにより識別される安全点で切捨てることができる。
永久記憶装置の全てのブロックは、RLOGのチェック
ポイントが決まった(done)後にアーカイブ記憶機
構に書き込まれるため、このチェックポイントの安全点
の前になされた全ての変化を反映する。ブロックのバッ
クアップの間に、幾つかの追加のRLOGチェックポイ
ントを採っても(take)よい。これらは、ALOG
の切捨てに影響しないか、これは、関連するログレコー
ドか、全てアーカイブ記憶機構のブロックの状態に具体
化されている(incorporated)という保証
はないからである。リドゥーをする必要はないが、AL
OGに関して残されている動作は、適用外として検知さ
れ、メディア回復処理の間無視される。チェックポイン
トは、RLOGに書き込まれる。RLOGに書き込まれ
た最新のチェックポイントを見出すため、その位置か、
ノードに関する大域情報のエリアにおいて対応するノー
ドの永久記憶装置に書き込まれる。最新のチェックポイ
ント情報は、回復の間にアクセスされた最初の情報であ
るのが典型的である。そうでなければ、最新のチェック
ポイントに関するRLOGの末尾をサーチすることので
きる情報である。チェックポイントは、システムがリド
ゥーログ、したがってリドゥー回復に必要な時間の明示
制御を有するという主な利点を提供する。RLOGが、
ULOGと組合されたとすれば、先に説明した理由で安
全点をログの切捨てに使用することができない。加え
て、アンドゥー情報をRLOGから排除することは、ブ
ロックを永久記憶装置に書き込むことにより、システム
がログの切捨てを制御することを可能にする。RLOG
の切捨ては、良いトランザクションの打切りを必要とす
るものでは決してない。このことは、取消情報を含むロ
グを切捨てる場合には正しくはない。システムは、ブロ
ックを後方の永久記憶装置におけるブロックの位置に書
き込むことによりRLOGの制御を行う。実際、このブ
ロックの書込は、時にはチェックポイントの部分である
と考えられる。ブロックは、より古い、即ち、RLOG
において更に後方の回復ISNを有している永久記憶装
置に書き込んでもよい。これは、RLOGに関する安全
点をログの末尾のより近くに移動させる。オペレーショ
ンが新たに書き込まれたブロックに含まれるログレコー
ドは、まはやリドゥー回復に必要でなく、したがって切
捨てられる。メディア回復は、システム破損回復と同様
の基本パラダイムに従う。ブロックのバージョンは、ア
ーカイブ記憶機構に安定に記録される。先に説明したよ
うに、各ALOGは、RLOGのうちの一つの切捨てら
れた部分から形成される。ALOGそれ自身は、ブロッ
クのどのバージョンがアーカイブ記憶機構にあるかに基
づき、定期的に切捨てることができる。DSIのみがブ
ロックに記憶されており、ISNは記憶されていない場
合は、どのログがアーカイブ記憶機構のブロックを更新
するのに応じることのできる最新のログかを知ることも
できないし、このレコードがRLOGのどこにあるかを
知ることもできない。そのため、ブロックにおける情報
は、ALOG又はRLOGを切すれるための適当な点を
決定するのには不十分である。しかしながら、ダーティ
ブロックテーブルを、RLOGの切捨てにおけるガイド
として使用することができる。そしてRLOGの安全点
を、ALOGの安全点の設定に使用することができる。 F.ULOGオペレーション 1.ULOG管理 ULOGからのRLOGの分離が、RLOGオペレーシ
ョンを計画している(have on)という利点に加
え、斯かる分離が、ULOGオペレーションを計画して
いるという利点もある。例えば、ひとたびトランザクシ
ョンがコミットしたらトランザクション特定ULOGを
破棄することができる。したがって、ULOGに関する
スペース管理は単純であり、アンドゥー情報は永久記憶
装置には長く残らない。加えて、後に説明するように、
アンドゥーレコードがログに永続的に書込まれること
を、しばしば防ぐことができる。コミットされていない
データを含むブロックを永久記憶装置に書込む場合に
は、アンドゥーレコードを書込むだけでよい。リドゥー
ログに関しULOGとRLOGが離れていることの一つ
の不利益は、WALプロトコルを満たすため、コミット
されていないデータを含むブロックを永久記憶装置に書
込む場合に、二つのログを強制しなければならないこと
である。しかしながら、一般に、コミットされていない
データを有するブロックの永久記憶装置への書込は、充
分に稀なので、ログの分離は、性能においてさえも、正
味の利得をもたらすものである。N−ログアンドゥーに
関しては、複数のノードが、ブロックにコミットされて
いないデータを同時に有することができる。システム破
損は、これらのトランザクションが全てアンドゥーされ
ることを必要とし、このことは、例えば、アンドゥー回
復の間ロックをしてブロックのアクセスを調整すること
を必要とするかもしれない。全てのブロックが、アンド
ゥー回復に関して1−ログであることを確実にするよう
に、あるノードからのコミットされていないデータを含
むブロックは、決して第二のノードによって更新される
ことはない。これは、ブロックよりも小さくないロック
の細分性により達成することができる。しかる後、要求
ノードが、他のノードによるアンドゥー処理を決して必
要としないブロックを受取る。したがって、例えば、他
のノードからのトランザクションがブロックを既に更新
した後に打切る場合には、そのトランザクションの影響
は、既に取消されている。1−ログ取消は、複雑さを緩
和するが、回復時におけるN−ログアンドゥーのシステ
ム性能へのインパクトは、N−ログリドゥーに関するよ
りもはるかに少ない。これは、システム破損の時にコミ
ットされていないトランザクションの小さなセットしか
取消を必要としないからである。ブロックよりも小さく
ないロック細分性を有することが、同時実行を実質的に
減少させることを可能にしている。本発明のテクニック
は、通常は短いトランザクションに関してULOGへの
書込の必要性を回避するものである。これはいかなる特
定の短いトランザクションからのコミットしていないデ
ータを有するブロックを含むキャッシュスロットも必要
となることは稀だからである。斯かる稀少性の理由は、
殆どの短いトランザクションは、それらのキャッシュス
ロットが必要になる前に、コミットするか又は打切りに
なるからである。取り除く(stolen)べきキャッ
シュスロットが、コミットしていないデータを有するブ
ロックを含んでいるとすると、WALプロトコルは、取
消レコードの全ての適当なULOGへの書込を要求す
る。WALプロトコルは、ブロックに関するダーティブ
ロックテーブルエントリーにおけるUラストLSNによ
り識別されるレコードを通して各ULOGを強制書込み
することにより、ULOGに関して強制される。先に説
明したように、UラストLSNは、各ULOGにおける
ブロックへの最新の更新に関しアンドゥーレコードを識
別する。WALプロトコルに関して、トランザクション
の更新をしていないブロックの状態を記憶させるのに必
要な情報は、ブロックの永久記憶バージョンを新しい状
態で重ねがきする前に、トランザクションのULOGに
常に永続的に記憶される。そのため、トランザクション
の更新をしていないブロックの状態は、トランザクショ
ンのコミットに先立って常に永続的である。この情報
は、(i)永久記憶装置のブロックバージョン内、(i
i)先行するトランザクションからのRLOG情報を用
いる永久記憶装置におけるバージョンからの「リドゥー
可能」、或いは(iii)このトランザクションについ
てのWALプロトコルによりULOGに対してログされ
るか又はリドゥー回復の間につくられたアンドゥー情報
を用いる(i)又は(ii)により作られたバージョン
からのアンドゥー回復可能、である。前の状態のままで
ある永久記憶装置に対するブロックに関し、対応するU
LOGレコードのないRLOGレコードを有することが
可能である。これは、「任意の」アンドゥーロギングが
ある場合には、ありふれたことである。斯かるブロック
に関し、対応するRLOGレコードのないULOGレコ
ードを有することも可能である。この場合ULOGレコ
ードは無視することができる。そのため、リドゥー回復
の後にアンドゥーする必要のある全ての動作が、必ずし
もULOGにおいて見出される必要はない。システムが
破損した場合には、失われたアンドゥーレコードを、リ
ドゥーレコード及びブロックの前の状態から生成する必
要がある。動作が、ブロックの状態を及びログされた動
作の値パラメータのみによる限りは、動作が初めに行わ
れた時に利用可能であった全ての情報が、この時点にお
いて利用可能であるため、アンドゥーレコードの生成
は、可能である。 動作は、二つの理由でULOGで終
了する。ブロックは、永久記憶装置に書込まれたので、
WALプロトコルが、ULOGにバッファレコードを強
制するか、又はWALの実施(enforcemen
t)のためのULOGの書込か、先行するULOGリド
ゥー及び、ある場合には、取消バッファにある続くUL
OGレコードの書込に帰着するかによるものである。こ
れらの動作に関しては、必ずしも回復の間に取消レコー
ドを生成する必要がないのは、これらのレコードが、U
LOGにあることが保証されているからである。このこ
とが重要なのは、永久記憶装置におけるブロックのバー
ジョンが、動作の後に来る状態を有するので、再実行を
ログしたトランザクション用のULOGを構成するのが
不可能といえるからである。幸運なことに、これらのブ
ロックと正確に同じであり、ULOGレコードがそのた
めに既に存在するブロックがある。リドゥーの間、失わ
れた取消レコードが生成される。リドゥーの終りまで
に、生成されたアンドゥーレコードとULOGのアンド
ゥーレコードとの合併(union)は、全てのコミッ
トしていないトランザクションをロールバックすること
ができる。 2. ULOGの最適化 本発明に関し、アンドゥーログバッファの内容を、必要
な時にのみULOGに書込むことを確実にすることによ
り、ULOGの使用を最適化することができる。一般
に、現在(current)トランザクションからのコ
ミットしていないデータを含むブロックを永久記憶装置
に書込む場合に、アンドゥーバッファはULOGに記憶
させるだけでよい。トランザクションが、コミットされ
ている場合には、トランザクションにおける更新を取消
す必要はなく、そのためアンドゥーバッファを破棄する
ことができる。図10は、WALプロトコルを用いたこ
のULOGの最適化を実現するための手順のフローダイ
ヤグラム1000を示す。ブロックのバージョンは、永
久記憶装置に書込まれるものと仮定する。書込むブロッ
クが、コミットしていないデータを含んでいる場合には
(工程1010)、そこでアンドゥーバッファを永久記
憶装置のRLOGに書込む必要があり、いかなるアンド
ゥーバッファも永久記憶装置のULOGに書込む(工程
1020)。リドゥーバッファのRLOGへの書込及び
アンドゥーバッファのULOGへの書込(工程102
0)の後、又はブロックがコミットしていないデータを
含まない場合には(工程1010)。ブロックを永久記
憶装置に書込む(工程1030)。これはWALプロト
コルに従うものである。そのため、記憶すべきコミット
していないデータがある場合には、アンドゥーバッファ
を書込むだけである。トランザクションがコミットする
各々の時、対応するアンドゥーログバッファを永久記憶
装置にかきこむ必要がないので、このアンドゥーログバ
ッファを破棄することができる。更に、取消がここでは
必要ではないので、トランザクション用ULOG自体を
破棄することができる。永久記憶装置におけるRLOG
のトランザクションに関する全ての再実行レコードを記
録することにより、コミットしたトランザクションか、
永続的になる。その後のある時点で、更新したブロック
を永久記憶装置に書込むことができる。たとえ更新した
ブロックを書込む前に破損があっても、RLOGを検索
してブロックの状態を再記録することができる。システ
ムは、RLOGのコミットレコードを記憶することによ
り、トランザクションがコミットすることを知覚してい
るのである。3. トランザクションの打切り トランザクションがコミットすると、トランザクション
の効果の無効化はもはや要求されないので、ULOGは
そこで破棄することができる。トランザクションの打切
りに関しては、状況が幾分異なる。トランザクション用
ULOGレコードを破棄できるまでには、打切りトラン
ザクションにより変更された全てのブロックが、無効と
されたそれらの変更をしているだけでなく、その結果の
無効とされたブロックの状態が、ULOG以外のどこか
に永続的に記憶されることを確実にする必要がある。取
消された状態にあるブロック自体を永久記憶装置に書込
まれなければならないか(「強制」打切りと呼ばれ
る)、又はアンドゥートランザクションをRLOGに書
込み強制しなければならない(「非強制」打切りと呼ば
れる)。コミッティングトランザクションと同様に、R
LOGに対するロギング動作は、ブロックをこの場合に
は永久記憶装置に強制する必要を回避する。 a.非強制打切り 非強制打切りか、アンドゥーオペレーションを、先の更
新の効果を反対にする打切りトランザクションの付加的
動作として取扱うことにより実現する。斯かる「補償」
動作は、「補償ログレコード」(CLRs)としてRL
OGにログされる。補償ログレコードは、効率的にRL
OGへと移動されたアンドゥーレコードである。しかし
ながら、これらのレコードを他のRLOGレコードから
区別するため、余分の情報が必要である。加えて、リド
ゥーすべき他のログされたトランザクションに対し、C
LRを正しく順に並べるため、SIが必要である。図1
1は、幾つかの属性を備えたCLR1000を示す。T
YPE属性1110は、このログレコードを補償ログレ
コードとして識別する。TID属性1120は、トラン
ザクションに関する一意の名前である。これは、このR
LOG CLRに対応するULOGを見出す助けをす
る。BSI属性1130は、先に説明したように、更新
前状態識別子である。このコンテキストでは、BSI属
性1130は、CLRが適用された(applied)
時点におけるブロックの状態を識別する。BID属性1
140は、このレコードをログした動作により変更され
たブロックを識別する。UNDO DATA属性115
0は、無効とすべき動作の性質を説明し、無効とすべき
動作に関する充分な情報を、この動作に対応する最初の
動作がブロックの状態に組込まれた後に、提供する。U
NDO DATA属性1150に関する値は、ULOG
又は取消バッファに記憶されている対応する取消しレコ
ードからきている。RLSN属性1160は、同じ動作
にとって取消しであるこの動作を説明するRLOGレコ
ードである。この属性は、ULOGレコードのRLSN
属性からきている。LSN1170は、RLOGにおけ
るその位置により識別できるため、明示的に記憶する必
要がなく、RLOGに関し一意的にこのCLRを識別す
る。LSNは、リドゥー走査及びRLOGのチェックポ
イントの設定を制御するのに用いられる。トランザクシ
ョンのコミットがあった場合には、トランザクションの
打切りの際、トランザクションの動作を説明する全ての
再実行レコードがRLOGに書込まれる。打切られたト
ランザクションに関しては、このトランザクションはC
LRに取消し動作を含んでいる。コミットに関しては、
RLOGは、トランザクション用の全ての再実行レコー
ドが、安定に記憶されることを確実にするよう強制され
る。打切りに関しては、打切りは厳密には必ずしも必要
ではない。必要な情報は、既にULOGに存在してい
る。しかしながら、打切りトランザクション用のCLR
がRLOGに永続的に書込まれるまで、ULOGを破棄
することができない。RLOGのCLRは、しかる後U
LOGレコードの代りになる。非強制アプローチの望ま
しい特性は、メディア回復のために、リドゥー相のみが
必要なことである。更新は、更新がALOGマージング
の間に処理されるように、適用される。全ての必要なリ
ドゥーは、CLRを適用することにより行われるので、
ALOGを処理する際に独立したアンドゥー相が必要と
されることはない。第二のテーブルは、アクティブトラ
ンザクションテーブルと呼ばれるが、アンドゥーオペレ
ーションを行うのに必要な情報を記憶する。ダーティブ
ロックテーブル900のように、アクティブトランザク
ションテーブルは、RLOGのチェックポイント情報の
一部となるため、システムが破損しても情報が保存され
る。アクティブトランザクションテーブルは、アンドゥ
ーの必要なトランザクション、アンドゥー/リドゥーロ
ギングの状態、及びアンドゥープログレスを示す。充分
な情報を、アクティブトランザクションテーブルに符合
化して全てのシステム破損からの回復を確かなものにし
なければならず、破損には回復そのものが行われている
間に起きるものも含まれる。回復性能を改善する幾つか
の情報を、更に含んでいても良い。図12は、アクティ
ブトランザクションテーブル1200の例を示す。テー
ブル1200は、レコード1205、1206、及び1
207を含んでいる。各々のレコードは、幾つかの属性
を含んでいる。TID属性1210は、トランザクショ
ンに関する一意の名前である。この名前は、RLOGレ
コードに属するトランザクション識別子と同様のもので
ある。STATE属性1220は、アクティブトランザ
クションが、二相コミットの一部として「準備された
(prepared)」かどうかを示す。複数のノード
が、トランザクションに関与する場合に、二相コミット
が用いられる。斯かるトランザクションをコミットする
ためには、全てのノードが、先ずトランザクションを準
備をして(相1)はじめてノードがトランザクションを
コミットすることができる(相2)。準備は、一つのノ
ードがコミットし、もう一方のノードが打切りの場合に
起きる部分コミットを回避するために行う。準備したト
ランザクションは、ロールバックすることが必要なこと
があるので、アクティブトランザクションテーブル12
00に保存することが必要である。非準備(non−p
repared)トランザクションと異なり、準備した
トランザクションを自動的に打切るべきではない。UL
OG log属性1230は、トランザクション特定U
LOGの位置を示す。この属性は、ULOGを見出す他
の方法がない場合には、存在してさえいればよい。例え
ば、TID1210は、トランザクション用ULOGを
見出す代りの方法を提供する。HIGH属性1240
は、このトランザクション用ULOGに書込まれた取消
しレコードに関する最新の動作である動作のRLOG
LSNを示す。このULOGレコードは、システムの破
損の後、トランザクションがコミットしていないのであ
れば、トランザクションをロールバックできるようにし
ておくため、RLSNにしたがうRLOGレコードがリ
ドゥーの間に生成される必要があるように、RLSNに
おけるRLOG LSNを含んでいる。NEXT属性1
250は、取消す必要のあるトランザクションにおける
次の動作のRLOG LSNを示す。ロールバックされ
ないトランザクションに関し、NEXT属性1250
は、トランザクションにより行われた最新の動作のレコ
ード番号である。あるシステムは、回復の間にCLRを
取消すが、好ましい実施態様では、CLRSは取消され
ない。そのかわり、CLRは、(TYPE属性を介し
て)タグをつけられ、そのためCLRを回復の間に識別
することができる。ULOGの順序性のため、アンドゥ
ーレコードがULOGに強制されると、全ての先行する
アンドゥーレコードも永続的となることを保証される。
RLOGは、ULOGと同じオーダーで書込まれる。そ
のため、RLOGが再実行の必要がないことが判ると、
例えばその効果は既に永久記憶装置のブロックのバージ
ョンにあるので、全ての先行するRLOGレコードは、
そのためULOGにアンドゥーレコードを有する。これ
は、ブロックが書込まれた場合にULOGが強制され、
そのため全ての先のULOGレコードが同時に書込まれ
たために起こったのである。このトランザクションのた
めに再実行の間に取消しレコードが生成された場合に
は、全ての斯かる先行レコードは既にULOGに存在し
ているはずであるため、それらのアンドゥーレコードは
破棄することができる。最新のRLOGに関してULO
Gレコードが書込まれたそのRLOGのRLOG LS
Nは、トランザクションに関するアクティブトランザク
ションテーブルエントリーのHIGH属性1240(図
12)に記憶される。この示されたリドゥーログレコー
ドに先行するRLOGレコードは、再実行の間に取消し
レコードを生成しないが、これはRLOGレコード全て
が、既にULOGレコードを有しているからである。H
IGHにより示されるものの一つに追従するRLOGレ
コードは、生成されたアンドゥーレコードを有すること
が必要なことがある。アンドゥーレコードの生成は、各
トランザクションに関して既に適用されたアンドゥーレ
コードの数を注意深く監視すれば、やはり回避すること
ができる。したがって、アンドゥー「高水位」がアクテ
ィブトランザクションテーブル1200のNEXT属性
1250において符合化される。NEXT属性1250
は、トランザクションのために適用される次のアンドゥ
ーレコードのレコード数を含んでいる。正常な処理の
間、NEXT属性1250は、常にトランザクションの
最近のトランザクションに対するレコード数である。N
EXT属性1250における値は、これらの動作がログ
されるにつれて増加する。アンドゥー回復の間、各々の
アンドゥー動作が、その先駆アンドゥーレコードを次の
アンドゥー動作として指定しながら、適用されて、その
CLRがログされた後、NEXT属性1250における
値は減少する。ロールバックの間にシステムの破損が起
きた場合には、NEXT属性1250により示されたレ
コード数よりも大きいレコード数のアンドゥーレコード
は、再び適用する必要がなく、そのため再実行の間に再
び生成する必要がない。最終結果は、再実行の間、レコ
ード数がHIGH属性1240についての値とNEXT
属性1250についての値との間に下がったRLOGレ
コードに関し、無効レコードが生成されるものである。
HIGH属性1240の値が、NEXT属性1250の
値よりも大きいか又は等しい場合にはいつでも、取消し
レコードを生成させる必要が全くない。b.強制打切り 「強制」打切りに関しては、CLRは書込をしない。そ
の代り、ブロックが取消された場合は、ブロックそれ自
体が永久記憶装置に強制される。この種の打切りでは、
ブロックが、取消しオペレーションが行われる順序だけ
でなく、アンドゥーレコードを適用した結果も含むと云
う知識を、CLRを書込むことなく安定に保存すること
が必要なことである。目標は、数個のノードが、システ
ムの破損の結果としての一つのブロックについてのトラ
ンザクションを取消すことができるN−ログ取消しを支
持することである。したがって、各ノードにより行われ
る取消しオペレーションの進行は、安定して記録される
はずである。このことは、非強制の場合においてはCL
Rが行うことである。CLRがない場合には、何か他の
テクニックが必要である。一つの代りの方法は、必要な
情報を、永久記憶装置に入るブロックに書込むことであ
る。CLRは、アンドゥー動作の完全な説明を含んでい
るか、この説明の全てが必要なわけではない。強制打切
りの場合において必要なことは、アンドゥートランザク
ションの結果及び取消しトランザクションのうちのどれ
が無効化されているかを記録することである。 g.正常のオペレーション 正常のオペレーションの間、トランザクションの開始、
ブロックの更新、ブロックの書込、トランザクションの
打切り、トランザクションの準備、及びトランザクショ
ンのコミットのオペレーションは回復の要求に対してイ
ンパクトを有する。したがって、正常のオペレーション
の間、回復が可能であることを確実にするためロギング
に関する工程を設けなくてはならない。図13は、トラ
ンザクションの開始オペレーションに関する手続130
0を含んでいる。先ず、START TRANSACT
ION レコードをRLOGに書込まなくてはならない
(工程1310)。次いで、トランザクションは、「ア
クティブ」状態でアクティブトランザクションテーブル
1200に入る(工程1320)。しかる後、トランザ
クション用のULOG及びその一致が、ULOGloc
1230に記録される(工程1330)。最終的に、H
IGH1240およびNEXT1250の値をゼロにセ
ットする(工程1340)。図14は、ブロックの更新
オペレーションに関する手続き1400を示している。
先ず、要求される同時制御を行い、更新用ブロックをロ
ックする(工程1410)。しかる後、ブロックが既に
キャッシュにあるのでなければ、ブロックは永久記憶装
置からアクセスされる(工程1420)。指示されたト
ランザクションは、キャッシュにおけるブロックのバー
ジョンの直後に行われる(工程1430)。次いで、ブ
ロックのDSIが、動作に関するASIで更新される
(工程1440)。その後、RLOGレコード及びUL
OGレコードは、更新用に構成され、それらの適当なバ
ッファに通知される(posted)(工程145
0)。ラストLSN950(図9)は、適当に更新され
る(工程1460)。その後、NEXT1250の値
は、個の動作のためのアンドゥーレコードのためのUL
OG LSNにセットされる(工程1470)。ブロッ
クがクリーンだった場合には(工程1475)、ブロッ
クをダーティにする(工程1480)。しかる後、ブロ
ックをダーティブロックテーブル900(図9)にすえ
る(put)が、そのために回復LSN920は、RL
OGのためのLSNにセットされている(工程148
5)。図15は、ブロックがコミットしていないデータ
を含んでいる場合のブロックの書込オペレーションのた
めのフローダイヤグラム1500を含む。先ず、WAL
プロトコルを実施する(工程1510)。具体的には、
ブロックを永久記憶装置に書込む前に、全てのアンドゥ
ーバッファを、ブロックに関して対応するラスト用SN
958(図9)まで書込み、RLOGバッファを、ラス
トRLSN955(図9)まで書込む。ブロックに関し
てラストRLSNにおいて識別される各トランザクショ
ンのために、これらのトランザクション用のHIGH
を、ダーティブロックテーブルからのラストULSN属
性により識別されたアンドゥーレコードのRLSN属性
におけるRLOG LSNの値にセットする。各ラスト
ULSNは、TID経由及びULOG LSN経由のト
ランザクションの両方を識別しなければならない。これ
らのログに関し、これらのレコードが既に書込まれてい
るので、書込みをする必要のない時がある。しかる後、
ブロックはダーティブロックテーブル900から除かれ
(工程1520)、ブロックは、永久記憶装置に書込ま
れる(工程1530)。ブロック書込みレコードは、そ
の後RLOGに書込んでブロックが永久記憶装置に書込
まれていることを表示してもよいが、これは任意であ
る。このブロック書込みレコードは、強制する必要がな
い。図16は、トランザクションの打切りオペレーショ
ンに関するフローダイヤグラム1800を含む。先ず、
NEXT欄1250における値によりしめされるアンド
ゥーレコードを設置する(located)(工程16
10)。その後、要求される同時制御をあたかも正常な
更新により処理されているかのように正確に係わり合う
(involved)ブロックについて行った(工程1
620)。次いで、現在取消しログレコードを、その指
定されたブロックに適用し(工程1630)、アンドゥ
ー動作に関するCLRをRLOGに書込む(工程164
0)。その後、NEXT欄1250の値を減少させて、
次の適用すべきアンドゥーログレコードを「現在の」ア
ンドゥーレコードとして指標付けする(工程164
0)。幾らかのアンドゥーレコードがトランザクション
用のままで残っていると(工程1660)、制御は、工
程1610に戻る。そうでなければ、ABORTレコー
ドをRLOGに設置する(工程1670)。その後、R
LOGを、永久記憶装置にABORTレコードを介して
記憶させる(工程1680)。しかる後、ULOGを破
棄する(工程1690)。最終的に、トランザクション
をアクティブトランザクションテーブル1200(図1
2)から取り除く(工程1695)。図17は、トラン
ザクションの準備オペレーションに関するフローダイヤ
グラム1700を示す。先ず、トランザクション用の準
備ログレコードをRLOGに書込む(工程1710)。
次いで、RLOGをこの準備ログレコードに強制する
(工程1720)。最終的に、「準備された」トランザ
クションの状態は、アクティブトランザクションテーブ
ル1200において変更される(工程1730)。図1
8は、トランザクションのコミットオペレーションに関
するフローダイヤグラム1800を示す。先ず、トラン
ザクション用のコミットログレコードが、RLOGに書
込まれる(工程1810)。次いで、RLOGをこのレ
コードに強制する(工程1820)。しかる後、ULO
Gを破棄する(工程1830)。最終的に、トランザク
ションをアクティブトランザクションテーブル1200
から取り除く(工程1880)。H.システム事故回復処理 前述の説明では、ログ、状態識別子及び回復の種々の態
様を説明してきた。これらは種々の方法で組み合わされ
て有効な回復計画になる。好ましい方法を以下に説明す
る。 1.分析フェーズ 分析フェーズは厳密には必要ではない。しかし、分析フ
ェーズなしでは、或る不必要な仕事が他の回復フェーズ
中行われるかもしれない。分析フェーズの目的は、最後
のチェックポイントに格納されたシステム状態をシステ
ムが事故を起こしたときのデータベースの状態にまでも
たらすことである。これを行うために、RLOG上の最
後の完全なチェックポイント内の情報が読み取られ、ダ
ーティブロックテーブル900(図9)及びアクティブ
トランザクションテーブル1200(図12)に対する
値を初期化するのに用いられる。次いで、この最後のチ
ェックポイントに続くRLOG記録が読み取られる。分
析フェーズは2つのテーブル上に事実上の経過記録した
動作をシュミレートする。特定の記録に関して説明する
と、スタートトランザクション記録がアクティブトラン
ザクションテーブルに関するスタートトランザクション
オペレーションと厳密に同一に処理される。更新ログ記
録はダーティブロックテーブル900及びアクティブト
ランザクションテーブル1200に関するブロック更新
と厳密に同一に処理されるが、更新は適用されない。補
償ログ記録は、NEXT属性1250の値が減らされる
点を除いては、ダーティブロックテーブル900及びア
クティブトランザクションテーブル1200に関するブ
ロック更新と厳密に同一に処理され、更新は適用されな
い。ブロック書込み記録に対して、ブロックはダーティ
ブロックテーブル900から除去される。放棄トランザ
クション記録に対して、トランザクションがアクティブ
トランザクションテーブル1200から削除される。準
備トランザクション記録に対して、アクティブトランザ
クションテーブル1200中のトランザクションの状態
が「準備」に設定される。委任トランザクション記録に
対して、トランザクションはアクティブトランザクショ
ンテーブル1200から削除される。アクティブトラン
ザクションテーブル1200中のトランザクションに対
してHIGH属性1240を復元するために、ULOG
はULOGに書き込まれた最後の記録のRLSN属性を
見い出すためにアクセスされねばならない。このLSN
はHIGH属性1240に対する値となる。他の方法と
しては、HIGH属性1240に対する値を使用でき又
は更新できる。このRLOG LSNは、トランザクシ
ョンのためにULOG上に既に記録された動作に対する
アンドゥー記録を発生させるのを避けるために使用でき
る。この値に続くトランザクションに対するRLOGだ
けに対して、アンドゥー情報が発生されねばならない。
したがって、NEXT属性1250は、(1)もしログ
記録が更新用ならば、トランザクションに対するRLO
Gに書き込まれたログ記録を持つ最後の動作のRLOG
LSN、又は(2)トランザクションに対した書き込
まれた最後のCLRのRLSN属性のいずれかである。
かくして、NEXT属性1250がRLOGの分析パス
中復元できる。NEXT属性1250は、ULOG記録
内のRLSNの値を介して、実行すべき次のアンドゥー
記録を識別する。NEXT属性1250は、また、無効
とするためにCLRが書き込まれることによって補償さ
れた動作に対するアンドゥー記録を発生させるのを避け
るために用いることもできる。かくして、アクティブト
ランザクションテーブル1200内のトランザクション
に対するNEXT属性1250より大きな、RLOG
LSNに対するリドゥー記録は、存在するCLRが回復
のリドゥーフェーズ中に加えられるときにアンドゥー操
作がなされるので、リドゥー記録に対して発生されたア
ンドゥー情報を持つ必要がない。 2.リドゥーフェーズ リドゥーフェーズでは、再構成されたダーティブロック
テーブル900内にダーティとして示されるすべてのブ
ロックがキャッシュ(データ交換用メモリ)に読取られ
る。この読取りは、RLOGの走査とオーバーラップし
てまとめて行うことができる。幾つかのブロックが、ブ
ロックがローカルリドゥーに関連する必要があるか否か
を決定するために、数個のノードによって読み取られる
が、ノードのうちの一つだけがブロックに対するリドゥ
ーを実際に行う。しかし、このことは、ブロック書込み
記録をRLOGに書き込むことによってほぼ完全に避け
ることができる。ブロック書込み記録は強制される必要
がないので、ブロックは、このことが必要ないとき、と
きには持続性記憶装置から読み取られる。しかし、この
ような読取りに対する不利益は小さい。各ブロックのワ
ンログ変形版が持続性記憶装置に存在し、ただ一つだけ
のノードはブロックのDSIに等しいBSIを持つ記録
をそのログに持つことができる。このノードは、ブロッ
ク上でリドゥー処理を独立に行うものである。その結
果、リドゥーは、各々がそれ自体のRLOGを持つシス
テムの別個のノードによって並列に行われる。並行制御
はここでは必要がない。リドゥーフェーズは、リドゥー
を必要とするダーティブロックにアクセスし、RLOG
記録中に示される変更を転記することによってノードの
キャッシュの状態を再構成する。得られたキャッシュは
事故当時の状態のダーティブロックを含む。リドゥーを
受けたブロックはロックされる。得られたダーティブロ
ックテーブル900及びアクティブトランザクションテ
ーブル1200が同様に再構成される。リドゥーを受け
たブロックはロックされる。分析フェーズ後のダーティ
ブロックテーブル900内に示されるダーティブロック
に対するリドゥー記録だけが再行される必要があるかも
しれない。RLOGの反復走査はダーティブロックテー
ブル900に記録された最も早期の回復LSN920で
スタートする。これはリドゥーに対して安全な時点であ
る。その結果、持続性記憶装置に書き込まれてからの各
ブロックに対する更新のすべてをリドゥー走査に含ませ
ることが確保される。前述のように、RLOG記録をそ
の対応するブロックに加えようとするとき、生じること
があるのは2つの場合だけである。もしRLOG記録の
RSIがブロックのDSIに等しくなければ、経過記録
した動作が無視される。もしその代わりRLOG記録の
BSIがブロックのDSIに等しければ、適当な反復動
作が行われる。リドゥーフェーズは履歴を反復すること
に関連する。ブロックの回復LSNによって示されるR
LOG記録でスタートするすべての更新RLOG記録
は、トランザクションに属するものがその後無効とされ
る必要があるものであるときでさえ、加えられる。ここ
での原則は、反復すべき動作に対して、初期動作が加え
られた状態と厳密に同一の状態でブロックに反復動作を
加える必要があることである。RLOG記録をブロック
に加える際、ブロックのDSIが反復された動作に対す
るASIに更新される。ノードは、RLOG動作が加え
られるとき、ブロックに適当なロックを要求する。リド
ゥーは、その他のノードがロックを要求しないので、ロ
ックが許されるのを待つ必要はない。しかし、要求され
たロックはアンドゥーのスタート前に許されねばならな
い。このことが並行制御をアンドゥーフェーズに対して
初期化する方法である。もしRLOGに経過記録された
通常の更新がリドゥーを必要とするならば、ULOG記
録をそのために発生させる必要がある。HIGH及びN
EXTの値の間のLSIを持ったトランザクションに対
するすべてのRLOGリドゥー記録がそれらのために発
生されるアンドゥー情報を持つようになる。この情報
は、好ましくは、これらの記録を識別するRLSN属性
を持ったULOG記録を含む。もし動作が反復されるの
に要求されないならば、不適当に発生されたかもしれな
い早期のアンドゥー記録は、ULOGがこの動作に対す
るULOG記録までWALを介して持続性記憶装置に書
き込まれているので、破棄される。HIGH属性124
0は、この時点でこの記録のRLOG LSNで更新さ
れ、RLOGLSNは、もしチェックポイントがとられ
るならば、万一現在の回復プロセスが失敗するとして
も、次の回復中冗長性のアンドゥー記録発生を減らす。
各トランザクションに対して、発生されたアンドゥー記
録がトランザクションのULOGバッファに記録され
る。これらのアンドゥー記録プラスそのULOG及びC
LRのアンドゥー記録により、能動トランザクションを
ロールバックすることが確保される。その結果、リドゥ
ーフェーズの終了時には、すべての必要なアンドゥーロ
グ記録が存在する。3.アンドゥーフェーズ アンドゥー回復はNログである。その結果、アンドゥー
回復フェーズは、それがトランザクションロールバック
中必要とされるのと同時に並行制御を必要とする。多数
のノードが同一のブロックに対してアンドゥー変化を必
要とするかもしれない。通常のデータベース活動は、一
旦アンドゥーフェーズが始まると、再開することができ
るが、通常の活動はトランザクション放棄を並行して進
めることができる。適当なロッキングのすべてがこの代
わりこのこと許容する。このことは、すべてのノードが
リドゥーフェーズを完了するまで、アンドゥーフェーズ
をスタートしないことによって確保される。この結果、
リドゥー中の任意のノードによって要求されたすべての
ロックがアンドゥーの始まる前に適当なノードによって
保持される。最初に、アクティブトランザクションテー
ブル1200中のすべてのアクティブトランザクション
(しかし準備されていないトランザクション)がロール
バックされる。アンドゥー処理は、1つの例外を除い
て、厳密に放棄されたトランザクションをロールバック
するのと厳密に同一に進行する。あるアンドゥー記録
は、それらの記録が再行中に再生されるアンドゥーバッ
ファ中、又は持続性記憶装置中のULOG中の両方に存
在する。これらの複製のアンドゥー記録が検出されて無
視される。このことは次のアンドゥー記録を得るために
ルーチン内に閉じ込められ、その結果、事故当時に能動
であるアンドゥートランザクションに対するコードの残
りは、システムが通常動作するときのトランザクション
を無効とするために必要なコードと実質的に等しい。こ
れらのソース中の冗長のULOG記録は、すべてのアン
ドゥー記録が適用されるRLOG記録のLSNによって
識別されるので、消去される。V.結 論 別個のRLOG及びULOGを使用することにより、ア
ンドゥー情報が絶対に必要なときにULOGに記憶され
ることを確実にすることによりロッギングオペレーショ
ンの最適化が可能となる。必要性が生じるときに対する
試験は、非委任トランザクションに関連する変化に必要
な情報のすべてが記憶されるか又は再形成されるかであ
る。さらに最適化は回復中になされる変化のカウントを
保持することによって得られる。変形及び変更がこの発
明の精神及び範囲から逸脱することなくなされうること
は当業者にとって明らかである。例えば、図1に示すア
ーキテクチャは異なったものでもよく、各ノードに割り
当てられるアンドゥー及びリドゥーログの数は変更でき
る。本発明はそのような変形及び変更を含むものであ
り、そのような変形及び変更は添付した特許請求の範囲
の範囲内に入るものである。
【図面の簡単な説明】
【図1】本発明の実施例なためのコンピュータシステム
を示す概略図、
【図2】ブロック及びページを示すディスクの一部の概
略図、
【図3】レドログの概略図、
【図4】アンドゥーログの概略図、
【図5】アーカイブログの概略図、
【図6】レドオペレーションの実行のためのフローチャ
ート、
【図7】クラッシュからの回復を実行するためのフロー
チャート、
【図8】アーカイブログを組合せるためのフローチャー
ト、
【図9】ダーティーブロックテーブルの概略図、
【図10】アンドゥーログの使用を最大利用すべくライ
ト−アヘッドプロトコルを実行するためのフローチャー
ト、
【図11】補正ログレコードの概略図、
【図12】アクティブトランザクションの表、
【図13】トランザクション開始オペレーションのため
のフローチャート、
【図14】ブロック更新オペレーションのフローチャー
ト、
【図15】ブロック書込オペレーションのフローチャー
ト、
【図16】トランザクションの放棄オペレーションのた
めのフローチャート、
【図17】トランザクションの準備オペレーションのた
めのフローチャート、
【図18】トランザクションの変更オペレーションのた
めのフローチャート。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ピーター エム スピロ アメリカ合衆国 ニューハンプシャー州 03062 ナシュア ウェイクフィールド ドライヴ 1 (72)発明者 アショーク エム ジョッシー アメリカ合衆国 ニューハンプシャー州 03062 ナシュア セント ジェームズ プレイス 718 (72)発明者 アナント ラグハーヴァン アメリカ合衆国 ニューハンプシャー州 03062 ナシュア ビー ベイ リッジ ドライヴ 26 (72)発明者 ティルマンジャーナム ケイ レンガラジ ャン アメリカ合衆国 ニューハンプシャー州 03062 ナシュア 6 ハムレット ドラ イヴ 5

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のノードとセクションに分割された
    非揮発性記憶媒質とを有するデータ処理システムであっ
    て、複数のノードがトランザクションによってセクショ
    ンに変化し、各トランザクションは少なくとも1つのノ
    ードによって少なくとも1つのセクションになされた一
    連の変化から成り、各トランザクションはもしトランザ
    クション及びトランザクションの完了の指示によって行
    われた変化の記録が記憶媒質に確実に記憶されるならば
    委任され、さもないと委任されないデータ処理システム
    において、複数のノードのうちの最初の1つは、 少なくとも1つのセクションのコピーを保持するメモリ
    と、 メモリに接続されて、メモリ内の少なくとも1つのセク
    ションのコピーに変化する処理手段と、 処理手段によってメモリ内の少なくとも1つのセクショ
    ンのコピーになされる変化の順次リストを含む少なくと
    も1つのアンドゥーバッファとを有し、各アンドゥーバ
    ッファは最初のノードによって異なった委任されてない
    トランザクションになされた変化に対応し、 対応するノード内の処理手段によってメモリ内の少なく
    とも1つのセクションのコピーになされた変化の順次リ
    ストを含むリドゥーバッファと、 メモリに接続されて、少なくとも1つのセクションのコ
    ピーを記憶媒質に格納する記憶手段と、 アンドゥーバッファ及びリドゥーバッファに接続され
    て、アンドゥーバッファ及びリドゥーバッファの一部を
    記憶媒質に選択的に格納して委任されてないトランザク
    ションのすべての変化の効果を除去しかつ委任されたト
    ランザクションのすべての変化の効果を再形成するのを
    確保するログ管理手段とを有することを特徴とするデー
    タ処理システム。
  2. 【請求項2】 請求項1記載のノードにおいて、ログ管
    理手段は記憶手段が対応する委任してないトランザクシ
    ョンからの変化を格納する前に記憶媒質内の復元バッフ
    ァの内容を格納する手段を有することを特徴とするノー
    ド。
  3. 【請求項3】 請求項1記載の最初のノードにおいて、
    ログ管理手段は反復バッファに記録された最初のトラン
    ザクションに対する変化のすべてと最初のトランザクシ
    ョンの完了の指示とを記憶媒質に確実に格納し、それに
    よって最初のトランザクションを委任させる手段を有す
    ることを特徴とするノード。
JP3242865A 1990-06-29 1991-06-14 アンドゥ―ログ使用の最大利用のための方法及び装置 Expired - Lifetime JP2501152B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US54872090A 1990-06-29 1990-06-29
US548720 1990-06-29
US54630690A 1990-07-02 1990-07-02
US546306 1990-07-02

Publications (2)

Publication Number Publication Date
JPH0683682A true JPH0683682A (ja) 1994-03-25
JP2501152B2 JP2501152B2 (ja) 1996-05-29

Family

ID=27068202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3242865A Expired - Lifetime JP2501152B2 (ja) 1990-06-29 1991-06-14 アンドゥ―ログ使用の最大利用のための方法及び装置

Country Status (5)

Country Link
US (1) US5524205A (ja)
EP (1) EP0465018B1 (ja)
JP (1) JP2501152B2 (ja)
KR (1) KR940008605B1 (ja)
DE (1) DE69126066T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003518659A (ja) * 1998-12-31 2003-06-10 イーエムシー コーポレーション コンピュータ・ストレージ・システムを操作するための装置および方法
JP2004348744A (ja) * 2003-05-22 2004-12-09 Microsoft Corp テーブルに対して行われる変更を識別する識別方法及びそのシステム

Families Citing this family (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5524190A (en) * 1993-06-04 1996-06-04 Taligent, Inc. Command object logging system for restoring documents
DE69510251T2 (de) * 1994-02-28 1999-11-25 Canon K.K., Tokio/Tokyo Informationsverarbeitungsverfahren und -vorrichtung
US5832203A (en) * 1995-01-23 1998-11-03 Tandem Computers Incorporated Method for providing recovery from a failure in a system utilizing distributed audit
GB2301910B (en) * 1995-06-07 1999-07-21 Ibm Management of units of work on a computer system log
JP3136258B2 (ja) * 1995-09-27 2001-02-19 三菱電機株式会社 ディスク更新ログ記録方式
US5850507A (en) 1996-03-19 1998-12-15 Oracle Corporation Method and apparatus for improved transaction recovery
US6647510B1 (en) 1996-03-19 2003-11-11 Oracle International Corporation Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction
US7415466B2 (en) * 1996-03-19 2008-08-19 Oracle International Corporation Parallel transaction recovery
US6041423A (en) * 1996-11-08 2000-03-21 Oracle Corporation Method and apparatus for using undo/redo logging to perform asynchronous updates of parity and data pages in a redundant array data storage environment
KR100212447B1 (ko) * 1996-11-22 1999-08-02 정선종 재수행 단계에서 종료한 트랜잭션 처리 기법을 이용한 댕글링 트랜잭션 발생 방지 방법
JP3178794B2 (ja) * 1996-12-09 2001-06-25 富士通株式会社 情報記憶媒体の複写制御方法及び情報記憶媒体の複写装置
US5870763A (en) * 1997-03-10 1999-02-09 Microsoft Corporation Database computer system with application recovery and dependency handling read cache
US5933838A (en) * 1997-03-10 1999-08-03 Microsoft Corporation Database computer system with application recovery and recovery log sequence numbers to optimize recovery
US6067550A (en) * 1997-03-10 2000-05-23 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US6490594B1 (en) 1997-04-04 2002-12-03 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US5951695A (en) * 1997-07-25 1999-09-14 Hewlett-Packard Company Fast database failover
US6016553A (en) 1997-09-05 2000-01-18 Wild File, Inc. Method, software and apparatus for saving, using and recovering data
US6029168A (en) 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US7930278B2 (en) * 1998-02-13 2011-04-19 Oracle International Corporation Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6182086B1 (en) * 1998-03-02 2001-01-30 Microsoft Corporation Client-server computer system with application recovery of server applications and client applications
US6173292B1 (en) 1998-03-04 2001-01-09 International Business Machines Corporation Data recovery in a transactional database using write-ahead logging and file caching
US6732293B1 (en) 1998-03-16 2004-05-04 Symantec Corporation Method, software and apparatus for recovering and recycling data in conjunction with an operating system
DE19819205A1 (de) * 1998-04-29 1999-11-04 Siemens Ag Datenhaltungssystem für persistente Daten
US6185577B1 (en) * 1998-06-23 2001-02-06 Oracle Corporation Method and apparatus for incremental undo
US6629577B1 (en) * 1998-07-02 2003-10-07 Tuff Torq Corporation Driving apparatus for speed changing and steering of a vehicle
US6449623B1 (en) * 1998-09-04 2002-09-10 Lucent Technologies Inc, Method and apparatus for detecting and recovering from data corruption of a database via read logging
US6295610B1 (en) 1998-09-17 2001-09-25 Oracle Corporation Recovering resources in parallel
US7065540B2 (en) * 1998-11-24 2006-06-20 Oracle International Corporation Managing checkpoint queues in a multiple node system
US6725392B1 (en) 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US7055055B1 (en) 1999-04-23 2006-05-30 Symantec Corporation Write cache flushing method for reducing data corruption
WO2001001249A1 (en) * 1999-06-30 2001-01-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6952741B1 (en) 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
WO2001004801A1 (en) * 1999-07-09 2001-01-18 Wild File, Inc. Optimized disk storage defragmentation with swapping capabilities
US7051055B1 (en) 1999-07-09 2006-05-23 Symantec Corporation Optimized disk storage defragmentation with swapping capabilities
US7340426B1 (en) 1999-07-30 2008-03-04 Computer Sciences Corporation Event-triggered transaction processing for electronic data interchange
US6513093B1 (en) 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
US6961708B1 (en) 1999-08-27 2005-11-01 Computer Sciences Corporation External interface for requesting data from remote systems in a generic fashion
US6970844B1 (en) 1999-08-27 2005-11-29 Computer Sciences Corporation Flow designer for establishing and maintaining assignment and strategy process maps
US7693731B1 (en) 1999-09-30 2010-04-06 Computer Sciences Corporation Business process framework for reinsurance
US7356541B1 (en) 1999-10-29 2008-04-08 Computer Sciences Corporation Processing business data using user-configured keys
US7571171B1 (en) 1999-10-29 2009-08-04 Computer Sciences Corporation Smart trigger for use in processing business transactions
US7363264B1 (en) 1999-10-29 2008-04-22 Computer Sciences Corporation Processing business transactions using dynamic database packageset switching
US7526487B1 (en) 1999-10-29 2009-04-28 Computer Sciences Corporation Business transaction processing systems and methods
US6925468B1 (en) 1999-10-29 2005-08-02 Computer Sciences Corporation Configuring systems for generating business transaction reports using processing relationships among entities of an organization
US7546304B1 (en) 1999-10-29 2009-06-09 Computer Sciences Corporation Configuring keys for use in processing business data
US7693844B1 (en) 1999-10-29 2010-04-06 Computer Sciences Corporation Configuring processing relationships among entities of an organization
US7353196B1 (en) 1999-10-29 2008-04-01 Computer Sciences Corporation Configuring dynamic database packageset switching for use in processing business transactions
US6618822B1 (en) * 2000-01-03 2003-09-09 Oracle International Corporation Method and mechanism for relational access of recovery logs in a database system
US6704730B2 (en) 2000-02-18 2004-03-09 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US7194504B2 (en) * 2000-02-18 2007-03-20 Avamar Technologies, Inc. System and method for representing and maintaining redundant data sets utilizing DNA transmission and transcription techniques
US7062648B2 (en) * 2000-02-18 2006-06-13 Avamar Technologies, Inc. System and method for redundant array network storage
US6826711B2 (en) 2000-02-18 2004-11-30 Avamar Technologies, Inc. System and method for data protection with multidimensional parity
US7509420B2 (en) 2000-02-18 2009-03-24 Emc Corporation System and method for intelligent, globally distributed network storage
US7024418B1 (en) 2000-06-23 2006-04-04 Computer Sciences Corporation Relevance calculation for a reference system in an insurance claims processing system
US6631374B1 (en) * 2000-09-29 2003-10-07 Oracle Corp. System and method for providing fine-grained temporal database access
US8650169B1 (en) * 2000-09-29 2014-02-11 Oracle International Corporation Method and mechanism for identifying transaction on a row of data
US7680680B2 (en) 2000-10-02 2010-03-16 Computer Sciences Corporation Computerized method and system of displaying an impact point relating to an accident
US6671686B2 (en) 2000-11-02 2003-12-30 Guy Pardon Decentralized, distributed internet data management
US6810398B2 (en) 2000-11-06 2004-10-26 Avamar Technologies, Inc. System and method for unorchestrated determination of data sequences using sticky byte factoring to determine breakpoints in digital sequences
US6678787B2 (en) * 2000-12-21 2004-01-13 International Business Machines Corporation DASD-free non-volatile updates
US6829719B2 (en) 2001-03-30 2004-12-07 Transmeta Corporation Method and apparatus for handling nested faults
US6820216B2 (en) * 2001-03-30 2004-11-16 Transmeta Corporation Method and apparatus for accelerating fault handling
US6836842B1 (en) * 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US6574717B1 (en) * 2001-05-31 2003-06-03 Oracle Corporation Techniques for time-based retention of a reusable resource
US7437525B2 (en) * 2001-05-31 2008-10-14 Oracle International Corporation Guaranteed undo retention
US7047386B1 (en) 2001-05-31 2006-05-16 Oracle International Corporation Dynamic partitioning of a reusable resource
EP1467834A4 (en) 2001-12-24 2005-04-06 Digimarc Id Systems Llc LASER SEVERE SAFETY ELEMENTS FOR IDENTIFICATION DOCUMENTS AND METHODS OF MAKING THE SAME
CA2471457C (en) 2001-12-24 2011-08-02 Digimarc Id Systems, Llc Covert variable information on id documents and methods of making same
US8086579B1 (en) 2002-01-22 2011-12-27 Oracle International Corporation Semantic response to lock requests to reduce coherence overhead in multi-node systems
CA2370601A1 (en) * 2002-02-05 2003-08-05 Ibm Canada Limited-Ibm Canada Limitee Optimizing log usage for temporary objects
AU2003221894A1 (en) 2002-04-09 2003-10-27 Digimarc Id Systems, Llc Image processing techniques for printing identification cards and documents
US7824029B2 (en) 2002-05-10 2010-11-02 L-1 Secure Credentialing, Inc. Identification card printer-assembler for over the counter card issuing
US6920460B1 (en) 2002-05-29 2005-07-19 Oracle International Corporation Systems and methods for managing partitioned indexes that are created and maintained by user-defined indexing schemes
US7702528B2 (en) 2002-09-09 2010-04-20 Computer Sciences Corporation Computerized method and system for determining breach of duty in premises liability for an accident
US7672860B2 (en) 2002-09-09 2010-03-02 Computer Sciences Corporation Computerized method and system for determining the contribution of defenses to premises liability for an accident
US6981004B2 (en) * 2002-09-16 2005-12-27 Oracle International Corporation Method and mechanism for implementing in-memory transaction logging records
US6976022B2 (en) 2002-09-16 2005-12-13 Oracle International Corporation Method and mechanism for batch processing transaction logging records
US7003695B2 (en) * 2002-10-03 2006-02-21 Seiko Epson Corporation Undo/redo algorithm for a computer program
US7689442B2 (en) 2002-10-31 2010-03-30 Computer Science Corporation Method of generating a graphical display of a business rule with a translation
WO2004049242A2 (en) 2002-11-26 2004-06-10 Digimarc Id Systems Systems and methods for managing and detecting fraud in image databases used with identification documents
US7895063B2 (en) 2002-11-27 2011-02-22 Computer Sciences Corporation Computerized method and system for creating pre-configured claim reports including liability in an accident estimated using a computer system
US7809586B2 (en) 2002-11-27 2010-10-05 Computer Sciences Corporation Computerized method and system for estimating an effect on liability using a comparison of the actual speed of a vehicle in an accident and time and distance traveled by the vehicles in a merging vehicle accident
US7725334B2 (en) 2002-11-27 2010-05-25 Computer Sciences Corporation Computerized method and system for estimating liability for an accident using dynamic generation of questions
US7702529B2 (en) 2002-11-27 2010-04-20 Computer Sciences Corporation Computerized method and system for estimating an effect on liability using claim data accessed from claim reporting software
US7660725B2 (en) 2002-11-27 2010-02-09 Computer Sciences Corporation Computerized method and system for estimating an effect on liability based on the stopping distance of vehicles
US7805321B2 (en) 2002-11-27 2010-09-28 Computer Sciences Corporation Computerized method and system for estimating liability for an accident from an investigation of the accident
US7792690B2 (en) 2002-11-27 2010-09-07 Computer Sciences Corporation Computerized method and system for estimating an effect on liability of the speed of vehicles in an accident and time and distance traveled by the vehicles
US7818187B2 (en) 2002-11-27 2010-10-19 Computer Sciences Corporation Computerized method and system for estimating liability
DE10256148A1 (de) * 2002-11-29 2004-06-17 Basf Ag Gegenstand der vorliegenden Erfindung sind Zusammensetzungen enthaltend mindestens ein Copolymer (A) und mindestens ein Copolymer (B) sowie deren Verwendung in kosmetischen Zubereitungen
CA2422176C (en) * 2003-03-14 2009-07-21 Ibm Canada Limited - Ibm Canada Limitee Method and apparatus for interrupting updates to a database to provide read-only access
US7890466B2 (en) * 2003-04-16 2011-02-15 Oracle International Corporation Techniques for increasing the usefulness of transaction logs
EP1614064B1 (en) 2003-04-16 2010-12-08 L-1 Secure Credentialing, Inc. Three dimensional data storage
US7039773B2 (en) 2003-04-29 2006-05-02 Oracle International Corporation Method and mechanism for efficient implementation of ordered records
US7376744B2 (en) 2003-05-09 2008-05-20 Oracle International Corporation Using local locks for global synchronization in multi-node systems
US7213029B2 (en) * 2003-05-29 2007-05-01 International Business Machines Corporation Quiescing work bounded by application transactions consisting of multiple relational database transactions
US7895064B2 (en) 2003-09-02 2011-02-22 Computer Sciences Corporation Graphical input display in an insurance processing system
US7631120B2 (en) 2004-08-24 2009-12-08 Symantec Operating Corporation Methods and apparatus for optimally selecting a storage buffer for the storage of data
US7827362B2 (en) 2004-08-24 2010-11-02 Symantec Corporation Systems, apparatus, and methods for processing I/O requests
US7577807B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Methods and devices for restoring a portion of a data store
US7296008B2 (en) 2004-08-24 2007-11-13 Symantec Operating Corporation Generation and use of a time map for accessing a prior image of a storage device
US7239581B2 (en) 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
US7725760B2 (en) 2003-09-23 2010-05-25 Symantec Operating Corporation Data storage system
US7409587B2 (en) 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
US7730222B2 (en) 2004-08-24 2010-06-01 Symantec Operating System Processing storage-related I/O requests using binary tree data structures
US7287133B2 (en) 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7904428B2 (en) 2003-09-23 2011-03-08 Symantec Corporation Methods and apparatus for recording write requests directed to a data store
US7991748B2 (en) 2003-09-23 2011-08-02 Symantec Corporation Virtual data store creation and use
US7577806B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US7818718B2 (en) * 2003-09-30 2010-10-19 Sap Ag Undoing user actions in a client program
US20050108063A1 (en) 2003-11-05 2005-05-19 Madill Robert P.Jr. Systems and methods for assessing the potential for fraud in business transactions
US7039661B1 (en) 2003-12-29 2006-05-02 Veritas Operating Corporation Coordinated dirty block tracking
US7499953B2 (en) * 2004-04-23 2009-03-03 Oracle International Corporation Online recovery of user tables using flashback table
US7519628B1 (en) * 2004-06-01 2009-04-14 Network Appliance, Inc. Technique for accelerating log replay with partial cache flush
US20060059021A1 (en) * 2004-09-15 2006-03-16 Jim Yulman Independent adjuster advisor
US7401102B2 (en) * 2004-10-19 2008-07-15 International Business Machines Corporation Management of global counters in transactions
US7949665B1 (en) 2004-11-19 2011-05-24 Symantec Corporation Rapidly traversing disc volumes during file content examination
CN101313279A (zh) 2005-10-14 2008-11-26 塞门铁克操作公司 一种在数据存储器中用于时间线压缩的技术
US7761732B2 (en) 2005-12-07 2010-07-20 International Business Machines Corporation Data protection in storage systems
AU2007247939B2 (en) 2006-05-05 2012-02-09 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US8332827B2 (en) 2006-12-01 2012-12-11 Murex S.A.S. Produce graph oriented programming framework with scenario support
US8191052B2 (en) 2006-12-01 2012-05-29 Murex S.A.S. Producer graph oriented programming and execution
US7865872B2 (en) * 2006-12-01 2011-01-04 Murex S.A.S. Producer graph oriented programming framework with undo, redo, and abort execution support
US8307337B2 (en) 2006-12-01 2012-11-06 Murex S.A.S. Parallelization and instrumentation in a producer graph oriented programming framework
US8010391B2 (en) 2007-06-29 2011-08-30 Computer Sciences Corporation Claims processing hierarchy for insured
US8010390B2 (en) 2007-06-04 2011-08-30 Computer Sciences Corporation Claims processing of information requirements
US8000986B2 (en) 2007-06-04 2011-08-16 Computer Sciences Corporation Claims processing hierarchy for designee
US20090187428A1 (en) 2008-01-18 2009-07-23 Frank Scalet Evaluating effectiveness of claims evaluation, assessment, and settlement processes
US8621154B1 (en) 2008-04-18 2013-12-31 Netapp, Inc. Flow based reply cache
US8161236B1 (en) 2008-04-23 2012-04-17 Netapp, Inc. Persistent reply cache integrated with file system
US8171227B1 (en) 2009-03-11 2012-05-01 Netapp, Inc. System and method for managing a flow based reply cache
US8209603B2 (en) * 2009-04-29 2012-06-26 Microsoft Corporation Maintaining undo and redo capability across metadata merges
KR101644125B1 (ko) 2009-09-22 2016-07-29 삼성전자주식회사 비휘발성 메모리를 이용한 로깅 최적화 장치 및 방법
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US8271447B1 (en) * 2010-06-18 2012-09-18 Emc International Company Mirroring metadata in a continuous data protection environment
US8930321B2 (en) * 2010-06-30 2015-01-06 Microsoft Corporation Logical recovery with unbundled transaction services
US8335771B1 (en) 2010-09-29 2012-12-18 Emc Corporation Storage array snapshots for logged access replication in a continuous data protection system
US10430298B2 (en) * 2010-10-28 2019-10-01 Microsoft Technology Licensing, Llc Versatile in-memory database recovery using logical log records
US8930330B1 (en) 2011-06-27 2015-01-06 Amazon Technologies, Inc. Validation of log formats
US9003162B2 (en) 2012-06-20 2015-04-07 Microsoft Technology Licensing, Llc Structuring storage based on latch-free B-trees
US9268755B2 (en) * 2013-03-06 2016-02-23 Shashank Bhide Performing persistent undo and redo operation within computer software
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US9514007B2 (en) 2013-03-15 2016-12-06 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US9672237B2 (en) 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US9501501B2 (en) 2013-03-15 2016-11-22 Amazon Technologies, Inc. Log record management
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US9519528B2 (en) 2013-04-19 2016-12-13 National Ict Australia Limited Checking undoability of an API-controlled computing system
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US9317213B1 (en) 2013-05-10 2016-04-19 Amazon Technologies, Inc. Efficient storage of variably-sized data objects in a data store
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US9208032B1 (en) 2013-05-15 2015-12-08 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9305056B1 (en) 2013-05-24 2016-04-05 Amazon Technologies, Inc. Results cache invalidation
US9047189B1 (en) 2013-05-28 2015-06-02 Amazon Technologies, Inc. Self-describing data blocks of a minimum atomic write size for a data store
US8683262B1 (en) 2013-06-21 2014-03-25 Terracotta Inc. Systems and/or methods for rapid recovery from write-ahead logs
US9519591B2 (en) 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9507843B1 (en) 2013-09-20 2016-11-29 Amazon Technologies, Inc. Efficient replication of distributed storage changes for read-only nodes of a distributed database
US9519664B1 (en) 2013-09-20 2016-12-13 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US9280591B1 (en) 2013-09-20 2016-03-08 Amazon Technologies, Inc. Efficient replication of system transactions for read-only nodes of a distributed database
US9460008B1 (en) 2013-09-20 2016-10-04 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US9552242B1 (en) 2013-09-25 2017-01-24 Amazon Technologies, Inc. Log-structured distributed storage using a single log sequence number space
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
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
US10387399B1 (en) 2013-11-01 2019-08-20 Amazon Technologies, Inc. Efficient database journaling using non-volatile system memory
US9760480B1 (en) 2013-11-01 2017-09-12 Amazon Technologies, Inc. Enhanced logging using non-volatile system memory
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9223843B1 (en) 2013-12-02 2015-12-29 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US20150356508A1 (en) * 2014-06-06 2015-12-10 International Business Machines Corporation Collaboration using extensible state sharing
US10303663B1 (en) 2014-06-12 2019-05-28 Amazon Technologies, Inc. Remote durable logging for journaling file systems
US9514211B2 (en) 2014-07-20 2016-12-06 Microsoft Technology Licensing, Llc High throughput data modifications using blind update operations
US9870386B1 (en) 2014-10-31 2018-01-16 Amazon Technologies, Inc. Reducing I/O operations for on-demand demand data page generation
US9817587B1 (en) 2015-03-04 2017-11-14 Amazon Technologies, Inc. Memory-based on-demand data page generation
US10599630B2 (en) 2015-05-29 2020-03-24 Oracle International Corporation Elimination of log file synchronization delay at transaction commit time
KR101589213B1 (ko) * 2015-07-15 2016-01-27 주식회사 지오그레이트 백업 데이터베이스를 활용한 운영 데이터베이스 부하 분산 방법
US11403176B2 (en) 2017-09-12 2022-08-02 Western Digital Technologies, Inc. Database read cache optimization
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
US10942823B2 (en) 2018-01-29 2021-03-09 Guy Pardon Transaction processing system, recovery subsystem and method for operating a recovery subsystem
CN110955556B (zh) * 2018-09-27 2023-05-02 阿里云计算有限公司 数据库恢复方法及装置、存储介质、数据库系统
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62206645A (ja) * 1986-03-03 1987-09-11 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション データ・ベース・システムの動作を回復する方法
JPS63196958A (ja) * 1987-02-12 1988-08-15 Hitachi Ltd 障害回復処理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0097239B1 (en) * 1982-06-21 1989-09-27 International Business Machines Corporation Method and apparatus for restoring data in a computing system
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
US4498145A (en) * 1982-06-30 1985-02-05 International Business Machines Corporation Method for assuring atomicity of multi-row update operations in a database system
US4686620A (en) * 1984-07-26 1987-08-11 American Telephone And Telegraph Company, At&T Bell Laboratories Database backup method
US4751702A (en) * 1986-02-10 1988-06-14 International Business Machines Corporation Improving availability of a restartable staged storage data base system that uses logging facilities
US4878167A (en) * 1986-06-30 1989-10-31 International Business Machines Corporation Method for managing reuse of hard log space by mapping log data during state changes and discarding the log data
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
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
US5043866A (en) * 1988-04-08 1991-08-27 International Business Machines Corporation Soft checkpointing system using log sequence numbers derived from stored data pages and log records for database recovery

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62206645A (ja) * 1986-03-03 1987-09-11 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション データ・ベース・システムの動作を回復する方法
JPS63196958A (ja) * 1987-02-12 1988-08-15 Hitachi Ltd 障害回復処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003518659A (ja) * 1998-12-31 2003-06-10 イーエムシー コーポレーション コンピュータ・ストレージ・システムを操作するための装置および方法
US7107395B1 (en) 1998-12-31 2006-09-12 Emc Corporation Apparatus and methods for operating a computer storage system
JP2004348744A (ja) * 2003-05-22 2004-12-09 Microsoft Corp テーブルに対して行われる変更を識別する識別方法及びそのシステム

Also Published As

Publication number Publication date
KR940008605B1 (ko) 1994-09-24
EP0465018B1 (en) 1997-05-14
KR920001347A (ko) 1992-01-30
EP0465018A3 (en) 1993-08-18
JP2501152B2 (ja) 1996-05-29
DE69126066T2 (de) 1997-09-25
DE69126066D1 (de) 1997-06-19
US5524205A (en) 1996-06-04
EP0465018A2 (en) 1992-01-08

Similar Documents

Publication Publication Date Title
JP2501152B2 (ja) アンドゥ―ログ使用の最大利用のための方法及び装置
US20230205786A1 (en) System and method for persistence and replication of changes to a data store
EP0465019B1 (en) Method and apparatus for managing state identifiers for efficient recovery
US7499954B2 (en) Consistent reintegration of a failed primary instance
US7779295B1 (en) Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
US6728898B2 (en) Producing a mirrored copy using incremental-divergence
US6993537B2 (en) Data recovery system
US5951695A (en) Fast database failover
US6377959B1 (en) Redundant database recovery through concurrent update and copy procedures
US5065311A (en) Distributed data base system of composite subsystem type, and method fault recovery for the system
US5440727A (en) Asynchronous replica management in shared nothing architectures
US5561795A (en) Method and apparatus for audit trail logging and data base recovery
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
US8099627B1 (en) Persistent images of distributed shared memory segments and in-memory checkpoints
US8667033B1 (en) Persistent file system objects for management of databases
US20050283504A1 (en) Disaster recovery system suitable for database system
JPH0683686A (ja) タイム・ゼロ・バックアップ・セッションの安全保護機能を有するデータ処理方法及びシステム
JPH0823841B2 (ja) データ処理システム及びその方法
CA2071346A1 (en) Method and means for time zero backup copy of data
Borr Robustness to Crash in a Distributed Database: A Non Shared-memory Multi-Processor Approach.
US20030191984A1 (en) Data processing arrangement and method
Lomet High speed on-line backup when using logical log operations
KR100365891B1 (ko) 주기억장치 상주형 데이터베이스 시스템에서 로그 처리를하지 않는 백업/회복 장치 및 그 방법
JP3290182B2 (ja) 共用環境におけるデータ・セットのバックアップ方法及び装置
JPS63262737A (ja) デ−タベ−ス更新記録処理方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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: 20090313

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20100313

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20110313

Year of fee payment: 15

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

Free format text: PAYMENT UNTIL: 20110313

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 16