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