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

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

Info

Publication number
JPH05197598A
JPH05197598A JP4159414A JP15941492A JPH05197598A JP H05197598 A JPH05197598 A JP H05197598A JP 4159414 A JP4159414 A JP 4159414A JP 15941492 A JP15941492 A JP 15941492A JP H05197598 A JPH05197598 A JP H05197598A
Authority
JP
Japan
Prior art keywords
volatile
memory
record
snapshot
state
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
JP4159414A
Other languages
English (en)
Other versions
JP2679779B2 (ja
Inventor
Peter M Spiro
エム スピロ ピーター
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 JPH05197598A publication Critical patent/JPH05197598A/ja
Application granted granted Critical
Publication of JP2679779B2 publication Critical patent/JP2679779B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

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

Landscapes

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

Abstract

(57)【要約】 【目的】 不揮発性状態メモリから、または更新後イメ
ージログから、揮発性スナップショットレコードを回復
させ、不揮発性メモリの故障によるデータ損失を防止す
ることを目的としている。 【構成】 本発明のトランザクション処理方法及び装置
では、スナップショットレコードが、揮発性状態メモリ
レコードとともに、揮発性メモリに記憶され、トランザ
クションによる揮発性状態メモリレコードの修正が、不
揮発性メモリ内の更新後イメージログに記憶され、揮発
性状態メモリレコードを回復させる。このために、揮発
性状態メモリ内の任意のレコードが揮発性メモリから不
揮発性状態メモリに書き込まれる際、まず揮発性状態メ
モリレコードの揮発性スナップショットレコードが、揮
発性スナップショットメモリから不揮発性スナップショ
ットメモリに書き込まれる。

Description

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

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 ディジタルコンピュータを作動させ、ト
    ランザクションを処理するための方法であって、該方法
    が: a)状態レコードを不揮発性状態メモリから読み出すと
    ともに、状態レコードを揮発性状態メモリキャッシュに
    書き込む工程と; b)揮発性状態メモリキャッシュ内の選択された状態レ
    コードから、揮発性スナップショットメモリキャッシュ
    内にスナップショットコピーを作成し、揮発性状態メモ
    リキャッシュ内の各選択状態レコードから作成されるス
    ナップショットコピーの対応セットを、揮発性スナップ
    ショットメモリキャッシュ内に保持し、前記揮発性メモ
    リキャッシュ内の選択された状態レコードに対して、前
    記トランザクションによって指定された修正を行うとと
    もに、前記トランザクションによって指定された修正
    を、不揮発性メモリ内の更新後イメージログに引き渡す
    工程と; c)揮発性スナップショットメモリキャッシュからスナ
    ップショットコピーを読み出すと共に、該スナップショ
    ットコピーを不揮発性スナップショットメモリに書き込
    み、選択された状態レコードを揮発性状態メモリキャッ
    シュから読み出すと共に、選択された状態レコードを不
    揮発性状態メモリに書き込む工程;とを具え、 前記各選択された状態レコードが揮発性状態メモリキャ
    ッシュから読み出され、不揮発性状態メモリに書き込ま
    れる以前に、各選択された状態レコードのスナップショ
    ットコピーに対応するセットが、揮発性スナップショッ
    トメモリキャッシュから読み出され、不揮発性スナップ
    ショットメモリに書き込まれることを特徴とするトラン
    ザクション処理方法。
  2. 【請求項2】 工程b)及び工程c)が順次に繰り返え
    され、且つ工程b)において、多数の所定トランザクシ
    ョンによって指定される修正が引き渡された後に、工程
    c)が実行されることを特徴とする請求項1に記載のト
    ランザクション処理方法。
  3. 【請求項3】 工程b)及び工程c)が順次に繰り返え
    され、且つ引き渡された修正によって占有される更新後
    イメージログ内のメモリスペースの量に応答して、工程
    c)が実行されることを特徴とする請求項1に記載のト
    ランザクション処理方法。
  4. 【請求項4】 選択された状態レコードの中のある特定
    の1個を、揮発性状態メモリキャッシュから読み出し、
    不揮発性状態メモリに書き込み、他の状態メモリレコー
    ドが不揮発性状態メモリから読み出された後に、他の状
    態メモリレコードが書き込まれる揮発性メモリスペース
    を提供することを特徴とする請求項1に記載のトランザ
    クション処理方法。
  5. 【請求項5】 揮発性状態メモリキャッシュ及び揮発性
    スナップショットメモリキャッシュを中断させる故障か
    らの回復工程を更に具えている請求項1に記載のトラン
    ザクション処理方法であって、 前記故障からの回復工
    程が、不揮発性状態メモリから読み出される状態レコー
    ドに関する、更新後イメージログに引き渡される修正を
    実行する工程と;トランザクション処理を再開させる工
    程;とを具えていることを特徴とするトランザクション
    処理方法。
  6. 【請求項6】 前記トランザクション処理の再開工程
    が、不揮発性スナップショットメモリから、故障以前に
    不揮発性スナップショットメモリに書き込まれるスナッ
    プショットコピーを読み出す工程を具えていることを特
    徴とする請求項5に記載のトランザクション処理方法。
  7. 【請求項7】 揮発性状態メモリキャッシュ内の各選択
    状態レコードから作成されるスナップショットコピーの
    対応セットを、揮発性スナップショットメモリキャッシ
    ュ内に保持する工程が、前記対応セット内に含まれてい
    るスナップショットコピーのリンクされたリストを保持
    することによって行われ、前記リンクされたリストを、
    揮発性状態メモリ内の前記各選択状態レコードにリンク
    することを特徴とする請求項1に記載のトランザクショ
    ン処理方法。
  8. 【請求項8】 前記トランザクション中の指定された1
    個の処理が開始する際に存在する、引き渡された状態レ
    コードのバージョンをサーチする工程を更に具えている
    ことを特徴とする請求項1に記載のトランザクション処
    理方法。
  9. 【請求項9】 前記スナップショットコピーの作成工程
    が、ポインタを変更し、状態レコードを保持しているバ
    ッファを、揮発性状態メモリキャッシュから揮発性スナ
    ップショットメモリキャッシュに送るとともに、フリー
    バッファを揮発性状態メモリキャッシュに割り当て、状
    態レコードの修正バージョンを受信することによって行
    われることを特徴とする請求項1に記載のトランザクシ
    ョン処理方法。
  10. 【請求項10】 前記スナップショットコピー作成工程
    が、フリーバッファを揮発性スナップショットメモリキ
    ャッシュに割り当てるとともに、状態メモリレコード
    を、揮発性スナップショットメモリキャッシュに割り当
    てられたフリーバッファにコピーすることによって行わ
    れることを特徴とする請求項1に記載のトランザクショ
    ン処理方法。
  11. 【請求項11】 ディジタルコンピュータを作動させ、
    トランザクションを処理するための方法であって、該方
    法が: a)状態レコードを不揮発性状態メモリから読み出すと
    ともに、状態レコードを揮発性状態メモリキャッシュに
    書き込む工程と; b)揮発性状態メモリキャッシュ内の選択された状態レ
    コードから、揮発性スナップショットメモリキャッシュ
    内にスナップショットコピーを作成し、揮発性状態メモ
    リキャッシュ内の各選択状態レコードから作成されるス
    ナップショットコピーの対応セットを、揮発性スナップ
    ショットメモリキャッシュ内に保持し、指定された1個
    の前記トランザクションの処理が開始する際にしばしば
    存在する特定の状態レコードのバージョンを、揮発性状
    態メモリキャッシュ及びスナップショットメモリキャッ
    シュ内でサーチし、前記揮発性メモリキャッシュ内の選
    択された状態レコードに対して、前記トランザクション
    によって指定された修正を行うとともに、前記トランザ
    クションによって指定された修正を、不揮発性メモリ内
    の更新後イメージログに引き渡し、前記複数のトランザ
    クションによって指定される修正を、前記複数のトラン
    ザクションの中の幾つかを引き渡す以前に行う工程と; c)揮発性スナップショットメモリキャッシュからスナ
    ップショットコピーを読み出すと共に、該スナップショ
    ットコピーを不揮発性スナップショットメモリに書き込
    み、選択された状態レコードを揮発性状態メモリキャッ
    シュから読み出すと共に、選択された状態レコードを不
    揮発性状態メモリに書き込み、前記各選択された状態レ
    コードが揮発性状態メモリキャッシュから読み出される
    と共に、不揮発性状態メモリに書き込まれる以前に、各
    選択状態レコードのスナップショットコピーの対応する
    セットが、揮発性スナップショットメモリキャッシュか
    ら読み出されると共に、不揮発性スナップショットメモ
    リに書き込まれる工程と; d)揮発性状態メモリキャッシュ及び揮発性スナップシ
    ョットメモリキャッシュを中断させる故障から回復させ
    る工程;とを具え、該故障からの回復工程が:不揮発性
    状態メモリから読み出される状態レコードに関する更新
    後イメージログに引き渡される修正を行う工程と、トラ
    ンザクション処理を再開させる工程とを具え、該トラン
    ザクション処理の再開工程が、不揮発性スナップショッ
    トメモリから、故障前に不揮発性スナップショットメモ
    リに書き込まれるスナップショットコピーを読み出す工
    程を具えていることを特徴とするトランザクション処理
    方法。
  12. 【請求項12】 前記工程b)及び工程c)が順次に繰
    り返され、工程b)において、所定の多数のトランザク
    ションによって指示される修正が引き渡された後、工程
    c)が実行されることを特徴とする請求項11に記載のト
    ランザクション処理方法。
  13. 【請求項13】 工程b)及び工程c)が順次に繰り返
    えされ、且つ引き渡された修正によって占有される更新
    後イメージログ内のメモリスペースの量に応答して、工
    程c)が実行されることを特徴とする請求項11に記載の
    トランザクション処理方法。
  14. 【請求項14】 選択された状態レコードの中のある特
    定の1個を、揮発性状態メモリキャッシュから読み出
    し、不揮発性状態メモリに書き込み、他の状態メモリレ
    コードが、不揮発性状態メモリから読み出された後に書
    き込まれる揮発性メモリスペースを提供することを特徴
    とする請求項11に記載のトランザクション処理方法。
  15. 【請求項15】 揮発性メモリと;不揮発性メモリと;
    前記不揮発性メモリ内の状態メモリから状態レコードを
    読み出すと共に、該状態レコードを前記揮発性メモリ内
    の状態メモリキャッシュに書き込むための手段と;揮発
    性状態メモリキャッシュ内の選択された状態レコードか
    ら、前記揮発性メモリ内のスナップショットメモリキャ
    ッシュに、スナップショットコピーを作成するための手
    段と;状態メモリキャッシュ内の各選択状態レコードか
    ら、前記スナップショットコピーの対応するセットを、
    スナップショットメモリキャッシュに保持するための手
    段と;状態メモリキャッシュ及びスナップショットメモ
    リキャッシュ内で、前記トランザクションの中の指定さ
    れた1個の処理が開始される際に存在する指定された状
    態レコードのバージョンをサーチするための手段と;前
    記トランザクションによって指定された修正を、状態メ
    モリキャッシュ内の選択された状態レコードに行うため
    の手段と;前記トランザクションによって指定された修
    正を、不揮発性メモリ内の更新後イメージログに引き渡
    たすための手段と;スナップショットコピーをスナップ
    ショットメモリキャッシュから読み出すとともに、前記
    スナップショットコピーを不揮発性メモリ内のスナップ
    ショットメモリに書き込み、且つ選択された状態レコー
    ドを状態メモリキャッシュから読み出すとともに、前記
    選択された状態レコードを不揮発性メモリ内の状態メモ
    リに書き込むためのキャッシュフラッシング手段;とを
    具え、該キャッシュフラッシング手段が:前記各選択さ
    れた状態レコードが状態メモリキャッシュから読み出さ
    れ、不揮発性メモリ内の状態メモリに書き込まれる以前
    に、各選択された状態レコードのスナップショットコピ
    ーの対応するセットをスナップショットメモリキャッシ
    ュから読み出すとともに、前記各選択された状態レコー
    ドのスナップショットコピーの対応するセットを不揮発
    性メモリ内のスナップショットメモリに書き込むための
    手段を具えていることを特徴とするトランザクション処
    理装置。
  16. 【請求項16】 不揮発性メモリ内の状態メモリから読
    み出される状態レコードに関する、更新後イメージログ
    に引き渡される修正を行うと共に、トランザクション処
    理を再開することによって、電力故障から回復するため
    の手段を更に具えていることを特徴とする請求項15に記
    載のトランザクション処理装置。
  17. 【請求項17】 前記引き渡しを行うための手段が、所
    定の多数の前記トランザクションによって指定される修
    正を前記更新後イメージログに引き渡した後に、前記キ
    ャッシュフラッシング手段を起動するための手段を更に
    具えていることを特徴とする請求項15に記載のトランザ
    クション処理装置。
  18. 【請求項18】 前記引き渡しを行うための手段が、前
    記トランザクションによって指定される修正を前記更新
    後イメージログに引き渡し、前記引き渡された修正が、
    前記更新後イメージログ内の所定量のスペースを占有し
    た後に、前記キャッシュフラッシング手段を起動するた
    めの手段を更に具えていることを特徴とする請求項15に
    記載のトランザクション処理装置。
  19. 【請求項19】 選択された状態レコードのスナップシ
    ョットコピーをスナップショットメモリキャッシュから
    読み出すとともに、前記スナップショットコピーを不揮
    発性メモリ内のスナップショットメモリに書き込み、選
    択された状態レコードを状態メモリキャッシュから読み
    出すとともに、選択された状態レコードを不揮発性メモ
    リ内の状態メモリに書き込むための状態レコードフラッ
    シング手段を更に具えていることを特徴とする請求項15
    に記載のトランザクション処理装置。
  20. 【請求項20】 前記状態レコードフラッシング手段を
    起動し、前記選択状態レコードの記憶に予め使用された
    揮発性メモリバッファを解放するための手段と;他の状
    態メモリレコードを揮発性メモリバッファに書き込むた
    めの手段;とを具えていることを特徴とする請求項19に
    記載のトランザクション処理装置。
JP4159414A 1991-06-18 1992-06-18 トランザクション処理方法及び装置 Expired - Lifetime JP2679779B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JPH05197598A true JPH05197598A (ja) 1993-08-06
JP2679779B2 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528555A (ja) * 2004-03-10 2007-10-11 マイクロソフト コーポレーション ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法
JP2007531156A (ja) * 2004-03-29 2007-11-01 マイクロソフト コーポレーション データベース復旧中のスナップショットクエリのためのシステムおよび方法
WO2017188484A1 (ko) * 2016-04-29 2017-11-02 주식회사 울프슨랩 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체
KR20170123683A (ko) * 2015-07-22 2017-11-08 후아웨이 테크놀러지 컴퍼니 리미티드 로그 및 무 잠금(no lock)과 함께 비휘발성 메모리를 사용하는 공유 메모리에서의 하드웨어 트랜잭셔널 메모리를 위한 코히어런스 프로토콜

Families Citing this family (197)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5469562A (en) * 1992-06-26 1995-11-21 Digital Equipment Corporation Durable atomic storage update manager
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
JPH06266597A (ja) * 1993-03-11 1994-09-22 Fujitsu Ltd ログ取得方式
US5581750A (en) * 1993-03-15 1996-12-03 International Business Machines Corporation System and method for improving data recovery performance
US6604118B2 (en) 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
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
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
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
JPH10506483A (ja) * 1994-06-10 1998-06-23 テキサス・マイクロ・インコーポレーテッド フォールト・トレラントなコンピュータ・システムのためのメイン・メモリ・システム及びチェックポイント用プロトコル
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
US6351744B1 (en) * 1999-05-28 2002-02-26 Unisys Corporation Multi-processor system for database management
US6370528B1 (en) * 1999-05-28 2002-04-09 Unisys Corporation High speed method for flushing data buffers and updating database structure control information
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
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) 2001-09-17 2002-09-24 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
US7346623B2 (en) 2001-09-28 2008-03-18 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
CN100557595C (zh) * 2001-11-01 2009-11-04 弗里塞恩公司 用于验证远程数据库的方法和系统
US7823060B2 (en) * 2002-06-07 2010-10-26 Microsoft Corporation Undo/redo architecture across multiple files
US6857001B2 (en) * 2002-06-07 2005-02-15 Network Appliance, Inc. Multiple concurrent active file systems
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
US20050022213A1 (en) 2003-07-25 2005-01-27 Hitachi, Ltd. Method and apparatus for synchronizing applications for data recovery 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
US7398422B2 (en) * 2003-06-26 2008-07-08 Hitachi, Ltd. Method and apparatus for data recovery system 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
CA2544064C (en) 2003-11-13 2012-02-07 Commvault Systems, Inc. System and method for performing integrated storage operations
CA2548542C (en) 2003-11-13 2011-08-09 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
US7440966B2 (en) * 2004-02-12 2008-10-21 International Business Machines Corporation Method and apparatus for file system snapshot persistence
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
US7213103B2 (en) * 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
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
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
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
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
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
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
US8370576B1 (en) 2005-09-28 2013-02-05 Oracle America, Inc. Cache rollback acceleration via a bank based versioning cache ciruit
US8032710B1 (en) 2005-09-28 2011-10-04 Oracle America, Inc. System and method for ensuring coherency in trace execution
US8024522B1 (en) 2005-09-28 2011-09-20 Oracle America, Inc. Memory ordering queue/versioning cache circuit
US8499293B1 (en) 2005-09-28 2013-07-30 Oracle America, Inc. Symbolic renaming optimization of a trace
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
US7606975B1 (en) 2005-09-28 2009-10-20 Sun Microsystems, Inc. Trace cache for efficient self-modifying code processing
US8019944B1 (en) 2005-09-28 2011-09-13 Oracle America, Inc. Checking for a memory ordering violation after a speculative cache write
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
US8037285B1 (en) * 2005-09-28 2011-10-11 Oracle America, Inc. Trace unit
US7949854B1 (en) 2005-09-28 2011-05-24 Oracle America, Inc. Trace unit with a trace builder
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
US7870369B1 (en) 2005-09-28 2011-01-11 Oracle America, Inc. Abort prioritization in a trace-based processor
US7966479B1 (en) 2005-09-28 2011-06-21 Oracle America, Inc. Concurrent vs. low power branch prediction
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
US8655850B2 (en) 2005-12-19 2014-02-18 Commvault Systems, Inc. Systems and methods for resynchronizing information
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
ES2582364T3 (es) 2005-12-19 2016-09-12 Commvault Systems, Inc. Sistemas y métodos para realizar replicación de datos
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
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
US8868504B2 (en) * 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
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
JP4886918B1 (ja) * 2008-10-30 2012-02-29 インターナショナル・ビジネス・マシーンズ・コーポレーション フラッシュコピー・プロセスを処理する方法、ならびにそのためのシステム、およびコンピュータ・プログラム
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
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
CN101876949B (zh) * 2009-11-30 2012-04-25 威盛电子股份有限公司 数据储存系统与方法
US8793288B2 (en) * 2009-12-16 2014-07-29 Sap Ag Online access to database snapshots
WO2011082132A1 (en) 2009-12-31 2011-07-07 Commvault Systems, Inc. Systems and methods for analyzing 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
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
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
US9336226B2 (en) 2013-01-11 2016-05-10 Commvault Systems, Inc. Criteria-based data synchronization management
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US9390428B2 (en) * 2013-03-13 2016-07-12 Salesforce.Com, Inc. Systems, methods, and apparatuses for rendering scored opportunities using a predictive query interface
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9417974B2 (en) * 2013-03-28 2016-08-16 Microsoft Technology Licensing, Llc. Transaction processing for database in persistent system
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
US10152247B2 (en) 2014-01-23 2018-12-11 Hewlett Packard Enterprise Development Lp Atomically committing write requests
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
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
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
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by 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
US11100083B2 (en) * 2015-01-29 2021-08-24 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
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 トランザクション処理方式
JPH01261746A (ja) * 1988-04-08 1989-10-18 Internatl Business Mach Corp <Ibm> データベースを回復する方法
JPH033046A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd ログ記録管理方式
JPH034945A (ja) * 1989-06-01 1991-01-10 Canon Inc 粉体の粉砕方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507751A (en) * 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
US4752910A (en) * 1984-10-30 1988-06-21 Prime Computer, Inc. Method and apparatus for continuous after-imaging
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
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
US5287496A (en) 1991-02-25 1994-02-15 International Business Machines Corporation Dynamic, finite versioning for concurrent transaction and query processing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 トランザクション処理方式
JPH01261746A (ja) * 1988-04-08 1989-10-18 Internatl Business Mach Corp <Ibm> データベースを回復する方法
JPH033046A (ja) * 1989-05-31 1991-01-09 Hitachi Ltd ログ記録管理方式
JPH034945A (ja) * 1989-06-01 1991-01-10 Canon Inc 粉体の粉砕方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528555A (ja) * 2004-03-10 2007-10-11 マイクロソフト コーポレーション ストレージ・プラットフォームにおけるロッキングとアイソレーションのためのシステムおよび方法
JP2007531156A (ja) * 2004-03-29 2007-11-01 マイクロソフト コーポレーション データベース復旧中のスナップショットクエリのためのシステムおよび方法
KR20170123683A (ko) * 2015-07-22 2017-11-08 후아웨이 테크놀러지 컴퍼니 리미티드 로그 및 무 잠금(no lock)과 함께 비휘발성 메모리를 사용하는 공유 메모리에서의 하드웨어 트랜잭셔널 메모리를 위한 코히어런스 프로토콜
US11614959B2 (en) 2015-07-22 2023-03-28 Huawei Technologies Co., Ltd. Coherence protocol for hardware transactional memory in shared memory using non volatile memory with log and no lock
WO2017188484A1 (ko) * 2016-04-29 2017-11-02 주식회사 울프슨랩 메모리 관리 방법, 이를 위한 컴퓨터 프로그램, 그 기록매체

Also Published As

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

Similar Documents

Publication Publication Date Title
JP2679779B2 (ja) トランザクション処理方法及び装置
JP2505112B2 (ja) トランザクション管理方法
JP2531776B2 (ja) デ―タベ―スを回復する方法
US8239356B2 (en) Methods and apparatuses for data protection
JP3197382B2 (ja) データの増分タイム・ゼロ・バックアップ・コピーの方法及びシステム
US8171257B2 (en) Determining an end of valid log in a log of write records using a next pointer and a far ahead pointer
JP4363676B2 (ja) コンピュータシステム
US6311193B1 (en) Computer system
JP3763992B2 (ja) データ処理装置及び記録媒体
US6067541A (en) Monitoring document changes in a file system of documents with the document change information stored in a persistent log
JPH0560617B2 (ja)
JPH0683679A (ja) データのバックアップ・コピー中の同時アクセスの方法及びシステム
JPH0827750B2 (ja) 複数コンピュータ・データ共用システムにおける共用記憶の障害からのデータベースの回復方法
JPH0823841B2 (ja) データ処理システム及びその方法
JP5012628B2 (ja) メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法
CN110515705B (zh) 可扩展的持久性事务内存及其工作方法
EP0295424A2 (en) Method for managing subpage concurrency control and partial transaction rollback in a transaction-oriented system of the write-ahead logging type
JPH10289217A (ja) ログ・ストリーム管理システム
JP2002318717A (ja) データベースシステム
Strom et al. A recoverable object store
CN113722052A (zh) 一种基于数据双版本的非易失内存更新方法
Scheverl et al. The DataSafe failure recovery mechanism in the Flask architecture
Bhattacharyya Database Management Systems
CN113986587A (zh) 基于值日志的检查点实现方法、系统、存储介质及设备
JPH0443441A (ja) データベースのログ管理処理方式

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