JPH0823840B2 - デ−タベ−ス更新方法および装置 - Google Patents

デ−タベ−ス更新方法および装置

Info

Publication number
JPH0823840B2
JPH0823840B2 JP61079916A JP7991686A JPH0823840B2 JP H0823840 B2 JPH0823840 B2 JP H0823840B2 JP 61079916 A JP61079916 A JP 61079916A JP 7991686 A JP7991686 A JP 7991686A JP H0823840 B2 JPH0823840 B2 JP H0823840B2
Authority
JP
Japan
Prior art keywords
transaction
page
block
database
updated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP61079916A
Other languages
English (en)
Other versions
JPS62237539A (ja
Inventor
通 西垣
貞三郎 金居
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP61079916A priority Critical patent/JPH0823840B2/ja
Publication of JPS62237539A publication Critical patent/JPS62237539A/ja
Publication of JPH0823840B2 publication Critical patent/JPH0823840B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データベース・システムにおける、トラン
ザクシヨンのデータベース更新方式に係る。特に、電源
断等のシステム障害が発生してもデータベースの論理的
一貫性を損うことなくデータベースを更新する方式に係
る。
〔従来の技術〕
データベース・システムにおいては、電源断等による
システム障害やプログラム誤り等によるトランザクシヨ
ン障害が発生したとき、データベースの論理的一貫性を
保たねばならない。特に障害発生時に実行未完了のトラ
ンザクシヨンによるデータベース更新結果については、
これを無効にしなければならない。
このための従来技術として、トランザクシヨンがデー
タベースを更新する際、更新前の情報の格納箇所とは異
なる新しい箇所に更新結果を格納する方式が知られてお
り、エー・シー・エム,トランザクシヨンズ オン デ
ータベース システムズ,第2巻,第1号(1977年)、
第91頁〜104頁(ACM Trans.Database Syst.,Vol.2,No.1
(1977),pp.91−104)に述べられている。この方式は
シヤドウ・ページ方式と呼ばれ、トランザクシヨン実行
完了までにその全てのデータベース更新内容を新たな格
納箇所に書き出し、トランザクシヨン実行完了時点で更
新前情報を無効、更新後情報を有効とする。シヤドウ・
ページ方式の特徴をまとめると次の(1)〜(4)とな
る。
(1)データベースは論理的な領域の単位であるページ
から構成され、ページとページのデータベース蓄積媒体
上の格納箇所であるスロツトとの対応を表わすページ・
テーブルをカレント版とバツクアツプ版の二つもつ。こ
れらはいずれもデイスク等の不揮発性媒体上に格納され
る。ページ・テーブル自体も複数のブロツクに分割さ
れ、メモリと不揮発性媒体との間の転送はブロツク単位
に行われる。
(2)トランザクシヨンによつてデータベースが更新さ
れる場合に更新ページの更新後の内容を格納する新たな
スロツトをカレント・ページ・スロツトと呼び、ページ
との対応はカレント版ページ・テーブルに保持する。一
方、更新前のページの内容を格納しているスロツトをシ
ヤドウ・ページ・スロツトと呼び、ページとの対応はバ
ツクアツプ版ページ・テーブルに保持する。
(3)トランザクシヨンの実行完了時、カレント版ペー
ジ・テーブルを有効とすることにより、カレント・ペー
ジ・スロツトに格納された更新後情報を有効とする。具
体的には、カレント版とバツクアツプ版のうちいずれの
ページ・テーブルが有効かを示す不揮発性媒体上のステ
イタス・ビツトを変更する。
(4)トランザクシヨン実行中にシステム/トランザク
シヨン障害が発生すると、ステイタス・ビツトによりバ
ツクアツプ版ページ・テーブルが有効なことがわかる。
すなわち、バツクアツプ版ページ・テーブルで示される
シヤドウ・ページ・スロツトに格納された更新前情報が
有効とされる。
したがつて、システム/トランザクシヨン障害が発生
してもデータベースの論理的一貫性を保つことが可能で
あり、しかもデータベース更新履歴情報の取得は不要で
ある。
〔発明が解決しようとする問題点〕
上記シヤドウ・ページ方式の従来技術は二つの問題点
があつた。第1に、同時に複数のトランザクシヨンがデ
ータベースを共用し、これを更新できないことである。
この理由は、トランザクシヨン実行完了時にカレント版
ページ・テーブルの有効化をステイタス・ビツトの変更
により一括して行うため、当該ページ・テーブルの中に
他の未だ実行中のトランザクシヨンにより更新中のペー
ジが含まれてはならないためである。第2に、データベ
ース更新結果の有効化と、端末へ送信するメツセージや
メモリ内のシステム管理情報の更新結果の有効化とを同
期させることが困難なことである。トランザクシヨン
は、通常、データベース更新のみならずメツセージ送受
信やシステム管理情報更新をも伴う。しかし、従来技術
におけるステイタス・ビツトの変更はデータベース更新
のみにかかわつている。このため、システム障害が発生
したとき、タイミングによつては、データベース更新結
果のみが有効とされたり、逆にメツセージやシステム管
理情報更新結果のみが有効とされたりする恐れがある。
このため、複数のオンライン・トランザクシヨンが同
時にデータベースを共用しこれを更新するような現実の
システム環境のもとでは、前述のようなシヤドウ・ペー
ジ方式でなく、データベース更新履歴情報を取得する必
要があり、この取得オーバーヘツドにより処理効率が低
下する恐れがあつた。
本発明は、シャドウ・ページ方式を用いたデータベー
ス・システムにおいて、複数トランザクションによるデ
ータベースの同時更新を可能とすることを目的とする。
〔問題点を解決するための手段〕
上記目的を達成するため、本発明では複数のバックア
ップ版ページ・テーブルおよびバックアップ版ページ・
テーブルのいずれが有効かを示す有効ブロック・マップ
を設ける。実行中のトランザクションがデータベースを
更新する場合、有効なバックアップ版ページ・テーブル
に登録されていないスロットに更新のページの内容を格
納し、該ページと上記スロットとの対応情報をカレント
版ページ・テーブルに登録する。そして、トランザクシ
ョンの実行完了時、該トランザクションが更新した全て
のページについて該ページとその内容を格納したスロッ
トとの対応情報をカレント版ページ・テーブルより抽出
し、抽出しぃた対応情報を有効ブロック・マップで無効
とされているバックアップ版ページ・テーブルに登録
し、有効ブロック・マップ中の複数のバックアップ版ペ
ージ・テーブルのいずれが有効かを示す情報を更新す
る。なおここで、従来不揮発性媒体上に格納されていた
カレント版ページ・テーブルはメモリ内にあればよく、
必ずしも不揮発性媒体上に格納される必要はない。
このようなデータベース・システムにおいてさらに、
データベース更新結果の有効化と、端末に送信するメッ
セージやメモリ内のシステム管理情報の更新結果とを同
期させるため、本発明では望ましくは有効ブロック・マ
ップにバックアップ版ページ・テーブルを最新に更新し
たトランザクションの識別子を記録するエントリを設
け、トランザクションの実行完了時に該トランザクショ
ンの処理完了を示す履歴レコードを履歴ファイルに取得
し、有効ブロック・マップ中の有効なバックアップ版ペ
ージ・テーブルを示す情報を更新するとともに、該トラ
ンザクションの識別子を上記エントリに記録する。さら
に望ましくは、バックアップ版ページ・テーブルが複数
のブロックから構成されている場合に、該ブロック毎に
いずれのバックアップ版ページテーブルが有効かを示す
ように有効ブロック・マップを構成し、トランザクショ
ンの実行完了時、該トランザクションの処理完了を示す
履歴レコードに該トランザクションで更新したページに
関する対応情報を含むバックアップ版ページ・テーブル
のブロックの識別子を記録する。
〔作用〕
上記手段の作用を以下にまとめる。
(1)実行中のトランザクションが更新したページの内
容はバックアップ版ページ・テーブルに登録されていな
いスロットに格納され、該ページと該スロットとの対応
情報はカレント版ページ・テーブルに登録される。トラ
ンザクションの実行完了時、上記ページと上記スロット
との対応情報はバックアップ版ページ・テーブルに登録
される。したがって、実行中のトランザクションの更新
結果が誤って完了トランザクションの更新結果と一緒に
有効化されることがない。
(2)トランザクションの実行完了時、該トランザクシ
ョンが更新したページとその内容を格納したスロットと
の対応情報を有効ブロック・マップで無効とされている
バックアップ版ページ・テーブルに登録する。そして、
トランザクション実行完了処理の最後に、有効ブロック
・マップにおいて、該トランザクションが更新したペー
ジとその内容を格納したスロットとの対応情報が登録さ
れたバックアップ版ページ・テーブルが有効化される。
このため、該トランザクションにかかわる一連のバッ
クアップ版ページ・テーブルの更新動作を通じ、システ
ム障害が発生してもデータベースの論理的一貫性が損な
われないように、有効なブロックは保存される。
以上(1)(2)の作用により、実行完了したトラン
ザクションの更新結果のみをバックアップ版ページ・テ
ーブルにおいて有効化するので、データベースを複数の
トランザクションが同時に更新することが可能になる。
また、トランザクションの処理完了を示す履歴レコー
ドを用いて、データベース更新結果の有効化と、端末へ
送信するメッセージやメモリ内のシステム管理情報の更
新結果とを同期させることができる。すなわち、処理完
了を示す履歴レコードが履歴ファイルに取得されている
トランザクションについては、有効ブロック・マップの
更新が未完了の状態でシステム障害が発生しても有効ブ
ロック・マップを更新することができ、逆に該履歴レコ
ードが履歴ファイルに取得されていない場合は該トラン
ザクションの全ての処理を無効とすることができる。
〔実施例〕
以下、本発明の一実施例を図面を用いて説明する。
まずシステム構成を述べる。第1図は、本発明の特徴
を表わす図である。バツクアツプ版ページ・テーブル10
は1個以上の固定長(たとえば512バイト)のブロツク
から構成されており、各ブロツクは1回の入出力動作で
読みこみ/書きこみが実行できる。或るブロツク番号に
対応して一対のブロツクが存在し、これらが集まつてバ
ツクアツプ版ページ・テーブル用ブロツク群20を構成し
ている。一対のブロツクのうち、いずれが有効かを表わ
すのが有効ブロツク・ビツトマツプ30である。たとえば
第1図において斜線をほどこしたブロツクが有効なブロ
ツクである。以下、「バツクアツプ版ページ・テーブ
ル」は有効なブロツクのみから構成されるものを指すと
する。有効ブロツク・ビツトマツプ30には、これを最近
更新したトランザクシヨンの番号32が記録されている。
或るトランザクシヨンの処理が完了すると、その旨を表
わすプロセス完了ジヤーナル40が履歴フアイル50上に取
得される。プロセス完了ジーナルには、そのジヤーナル
種別を示すコード46と、該トランザクシヨン番号42、お
よび該トランザクシヨンで更新したページを含むバツク
アツプ版ページ・テーブルのブロツクの番号44が記録さ
れる。
次に第2図はシステム全体構成を示す図であり、磁気
デイスク等に蓄積されたデータベース60と、磁気デイス
クや磁気テープ等に記録される履歴フアイル50とが、CP
U/メモリ70に接続されている。データベース60は、第3
図に示したように、データベース制御情報領域80および
データベース領域90からなる。データベース制御情報領
域には、バツクアツプ版ページ・テーブル用ブロツク群
20や有効ブロツク・ビツトマツプ30等、データベースの
参照,更新,回復に必要な制御テーブルが格納される。
また、データベース領域90はスロツトとよばれる固定長
のブロツクに分割されている。トランザクシヨンが参照
/更新するデータベースの空間はページとよばれる固定
区画に分割されている。スロツトはページを格納するた
めのものであり、両者のサイズは一致する(たとえば4K
バイト)。各スロツトは1回の入出力動作で参照/更新
ができる。第4図はバツクアツプ版ページ・テーブル10
を説明する図であり、各ページに対して、それがデータ
ベース領域90上で格納される位置を示す。aiはページi
が格納されるスロツトのアドレスである。また、履歴フ
アイル50には、前述のプロセス完了ジヤーナル40や、メ
ツセージ・ジヤーナル,システム管理情報更新ジヤーナ
ル等、データベース更新以外の履歴情報が取得される。
上記の他に、システム動作中には、バツクアツプ版ペー
ジ・テーブル10のコピイと、有効ブロツク・ビツトマツ
プ30のコピイと、カレント版ページ・テーブルとがメモ
リ70内に存在する。ここでカレント版ページ・テーブル
100は、実行中トランザクシヨンが更新中のページの更
新後の内容の格納場所を示すものであり。これを説明す
る図を第5図に示す。第5図において、biは実行中トラ
ンザクシヨンによるページiの更新後の内容を格納した
スロツトのアドレスである。
次にシステム動作について説明する。システム動作を
通常時動作,システム障害時動作,トランザクシヨン障
害時動作に分けて述べる。
(1)通常時動作 トランザクシヨンの実行開始から終了までの本発明に
かかわる処理は(a)〜(f)の順序で行われる。
(a)実行中のページi読みこみ カレント版ページ・テーブル100の当該ページのエン
トリbiをサーチする。bi=nullなら、バツクアツプ版ペ
ージ・テーブル10上の当該ページのエントリaiの示すス
ロツト・アドレスを求め、ページを読みこむ。これは該
トランザクシヨンにおいては当該ページを初めて参照し
これを読みこむ場合である(ただし、相異なるトランザ
クシヨン間でメモリ内ページの引き継ぎを行う場合、bi
=nullでもページiがメモリ内に残つていれば読みこみ
動作は不要である)。そしてbi=aiとする。bi≠nullな
ら、当該ページは既に該トランザクシヨンにおいて1回
以上参照された筈であり、biの示すスロツトからページ
iを読みこむ。後述するように、この場合一般にbiとai
は一致しない。
(b)実行中のページi書き出し biとaiが一致するかどうか調べる。bi=aiなら、ペー
ジiを該トランザクシヨンにおいて初めてデータベース
に書き出す場合である。このとき、バツクアツプ版ペー
ジ・テーブルに登録されていない未使用スロツトを見つ
け、そのスロツト・アドレスをbiに設定し、さらにその
スロツトにページiを書き出す。この結果bi≠aiとな
る。なお、ページを新しく書き出すスロツトのため、デ
ータベース領域はある程度余裕を持たせて確保する必要
がある。
bi≠aiなら、ページiは該トランザクシヨンにおいて
既に1回以上データベースに書き出されている。したが
つて、biの示すスロツトにページiを書き出す。
(c)コミツト命令発行時の更新ページ書き出し 前項(b)は、メモリ内のデータベース・ページ格納
領域があふれた場合などに実行される処理である。本項
は、トランザクシヨンで実行中のプログラムから実行完
了を表わすコミツト命令が発行された時、該トランザク
シヨンで更新した全てのページデータベースに書き出す
処理である。内容は、前項(b)の処理を各ページにつ
いて実行することに他ならない。なお、本処理実行中に
システム障害が生じたとき、該トランザクシヨンは処理
未完了とみなし、データベース更新結果は保証しない。
(d)バツクアツプ版ページ・テーブル更新 前項(c)が終了すると、該トランザクシヨンによる
更新ページの全てについて、カレント版ページ・テーブ
ル100の該当するエントリの内容をメモリ内のバツクア
ツプ版ページ・テーブルのコピイ上の対応エントリにコ
ピイする。そして、バツクアツプ版ページ・テーブル・
コピイの中で、内容の変わつた全てのブロツクをデータ
ベース制御情報領域80内のバツクアツプ版ページ・テー
ブル用ブロツク群20に出力する。その際、同一ブロツク
番号の一対のブロツクのうち、有効ブロツク・ビツトマ
ツプ30で無効とされている方のブロツクに書き出してこ
れを更新する。さらに、bi=null(iは該トランザクシ
ヨンの更新ページ)とし、カレント版ページ・テーブル
100のコピイ済エントリを無効にする。なお、本処理実
行中にシステム障害が生じたとき、該トランザクシヨン
は処理未完了とみなし、データベース更新結果は保証し
ない。
(e)プロセス完了ジヤーナル取得 前項(d)が終了すると、トランザクシヨンの処理が
完了した旨を告げるプロセス完了ジヤーナル40を履歴フ
アイル50上に取得する。すなわち、プロセス完了ジヤー
ナルであることを示すコード46と、トランザクシヨン番
号42と、さらに該トランザクシヨンによつて更新された
全てのページについて、そのページを含むバツクアツプ
版ページ・テーブルのブロツク番号44を記録する。本処
理が完了した時点で、該トランザクシヨンは処理完了と
みなし、以後そのデータベース更新結果、メツセージ、
システム管理情報更新結果は全て保証される。なお、該
トランザクシヨンに関するメツセージ・ジヤーナル、シ
ステム管理情報更新ジヤーナルは、当該プロセス完了ジ
ヤーナル取得以前に履歴フアイル50上に取得する。
(f)前項(e)が終了すると、(d)で更新したバツ
クアツプ版ページ・テーブルのブロツクの全てのブロツ
ク番号に対応する、有効ブロツク・ビツトマツプ30上の
ビツトを反転する。このとき、データベース制御情報領
域80への有効ブロツク・ビツトマツプ30の書き出しに際
して、これに付加された更新トランザクシヨン番号のエ
ントリ32に該トランザクシヨンの番号を書きこむ。
(2)システム障害時動作 電源断等のシステム障害が発生した時の処理を以下に
述べる。下記(a)〜(c)の処理実行後、システムは
メモリ内のバツクアツプ版ページ・テーブルにもとづい
て必要なページを読みこみ、通常処理を開始する。
(a)データベース制御情報の読みこみ データベースの制御情報領域80から有効ブロツク・ビ
ツトマツプ30を読みこみ、これにもとづいてバツクアツ
プ版ページ・テーブル10を読みこむ。
(b)トランザクシヨンの状態解析 履歴フアイル50を読み、システム障害発生時の各トラ
ンザクシヨンの状態を解析する。とりうる状態として、
(i)処理途中の状態、(ii)内部処理完了状態、(ii
i)完了状態、の三つがある。解析の概略フローを第6
図に示す。すなわち、或るトランザクシヨンについて、
そのプロセス完了ジヤーナルが取得されていないとき、
状態(i)となる。プロセス完了ジヤーナルが取得され
ており、有効ブロツク・ビツト・マツプの更新トランザ
クシヨン番号32が該トランザクシヨンの番号に等しくな
く、かつ、32に対応するトランザクシヨンのプロセス完
了ジヤーナルが該トランザクシヨンのプロセス完了ジヤ
ーナルより履歴フアイル50上で前に取得されていると
き、状態(ii)となる。これ以外のとき状態(iii)と
なる。
(c)回復処理 トランザクシヨンの状態に応じて、回復処理を行う。
(i)処理途中の状態 該トランザクシヨンによる全ての処理は無効である。
該トランザクシヨンによる更新ページがデータベース領
域90内のスロツトに書きだされている可能性はあるが、
これは未だバツクアツプ版ページ・テーブル10に反映さ
れていないため、データベース回復処理は不要である。
なお、メツセージおよびシステム管理情報更新の無効化
は、履歴フアイル50を解析することにより公知の方法で
行う。
(ii)内部処理完了状態 該トランザクシヨンによる全ての処理は有効である。
本状態は有効ブロツク・ビツトマップ30の更新が未完了
なため、該トランザクシヨンによるデータベース更新結
果が未だ有効化されていない過渡的な状態である。した
がつて、該トランザクシヨンのプロセス完了ジヤーナル
40内のバツクアツプ版ページ・テーブル更新ブロツク番
号44を読み、これに対応するビツトを有効ブロツク・ビ
ツトマツプ30上で反転し、更新トランザクシヨン番号の
エントリ32に該トランザクシヨンの番号を書きこむ。な
お、本状態をとるトランザクシヨンが存在する確率は低
いが、たまたまこれが複数存在するときは、プロセス完
了ジヤーナルを取得した順に上記処理を行う。また、メ
ツセージおよびシステム管理情報更新の回復は、履歴フ
アイル50を解析することにより公知の方法で行う。
(iii)完了状態 該トランザクシヨンによる全ての処理は有効である。
該トランザクシヨンのデータベース更新結果は既に有効
化されており、データベース回復処理は不要である。メ
ツセージおよびシステム管理情報更新の回復は、履歴フ
アイル50を解析することにより公知の方法で行う。
(3)トランザクシヨン障害時動作 トランザクシヨン障害としては、プロセス完了ジヤー
ナル40取得以前にプログラム・エラー等により発生する
障害と、プロセス完了ジヤーナル取得後に有効ブロツク
・ビツトマツプ30書き出し中に入出力エラー等により発
生する障害とがある。前者の場合、該トランザクシヨン
の処理は無効であり、後者の場合は有効である。いずれ
の場合にも、メツセージやメモリ内システム管理情報更
新の有効化/無効化は履歴フアイル50にもとづいて公知
の方法で行う。以下、データベースの回復について
(a),(b)に述べる。
(a)プロセス完了ジヤーナル取得以前の障害 該トランザクシヨンの全ての更新ページについて、カ
レント版ページ・テーブルの対応エントリをnullとす
る。すなわちb1=null(iは該トランザクシヨンの更新
ページ)。(なお、相異なるトランザクシヨン間でメモ
リ内ページの引継ぎを行う場合は、該トランザクシヨン
による更新前の情報をメモリ内に残しておき、それを用
いてページiの内容を該トランザクシヨン実行開始時点
の内容に戻す必要がある。) (b)プロセス完了ジヤーナル取得以後の障害 前述のシステム障害時動作の(c)(ii)に準じて回
復処理を行う。
以上述べたように本実施例によれば、シヤドウ・ペー
ジ方式の二つの問題点を解決することができる。第一
に、バツクアツプ版ページ・テーブル10、有効ブロツク
・ビツトマツプ30、カレント版ページ・テーブル100を
用いて、複数のトランザクシヨン同時にデータベースを
共用していても、実行完了トランザクシヨンのデータベ
ース更新結果のみを有効化することができる。なお、こ
のデータベース更新結果の有効化操作は有効ブロツク・
ビツトマツプ30のデータベース制御情報領域80への書き
出しにより実行されるが、これを実行中にシステム/ト
ランザクシヨン障害が発生しても、プロセス完了ジヤー
ナル40中のバツクアツプ版ページ・テーブル更新ブロツ
ク番号44と有効ブロツク・ビツトマツプに付加されたそ
の更新トランザクシヨン番号32とを用いて、有効ブロツ
ク・ビツトマツプを修正し、データベース更新結果の有
効化を完遂できる。したがつて、履歴フアイル50上にプ
ロセス完了ジヤーナル40を取得したトランザクシヨンに
ついてはそのデータベース更新、メモリ内システム管理
情報更新、メツセージを有効化し、プロセス完了ジヤー
ナルを未取得のトランザクシヨンについては、これらの
処理を全て無効にすることができる。すなわち、或るト
ランザクシヨンに関するデータベース更新、メモリ内シ
ステム管理情報更新、メツセージの同期的有効化/無効
化が実現でき、第二の問題点も解決できる。
以上一対のバツクアツプ版ページテーブルの場合につ
いて説明したが、本発明は一般に複数のバツクアツプ版
ページテーブルを管理使用して多様なバツクアツプを可
能とするものである。
以上の説明において不揮発性記憶装置としてIC不揮発
メモリ等の高速ランダムアクセス記憶装置またはいわゆ
るICデイスク等を適用した場合の効果は大きい。
また、障害ページが生じたときの回復を行う実施例に
ついて詳述したが本発明は障害時の回復に限らず、デー
タベースの更新履歴を伴うプロセス一般に適用可能であ
り、このときのバツクアツプ版ページテーブルは揮発性
記憶装置に格納してもよい。
本実施例によれば、複数のオンライン・トランザクシ
ヨンが同時にデータベースを更新し、端末とメツセージ
を送受信するオンライン・データベース・システムにお
いて、シヤドウ・ページ方式を用いることが可能とな
る。従来、このようなシステムでは、シヤドウ・ページ
方式でなく、データベース更新履歴情報を取得し、シス
テム/トランザクシヨン障害の時などにはこれを用いて
回復する方式が広く採用されている。この従来方式と比
較すると、本発明により履歴情報取得量が削減できる。
下記に代表的事例について定量的な効果の見積の一例を
示す。
(1)前提条件 ・データベース量:400Mバイト ・データベースのページ・サイズ:4Kバイト ・ページあたりの変更量:100バイト ・バツクアツプ版ページ・テーブルの、ページあたりエ
ントリ・サイズ:16バイト ・バツクアツプ版ページ・テーブルの、ブロツク・サイ
ズ:1Kバイト (2)履歴情報取得量削減効果 データベースの1ページあたりの更新履歴情報取得量
を比較する。
従来方式では、変更前と変更後の情報を取得するの
で、取得量は200(=100*2)バイトとなる。
一方本発明では、変更したページを含むバツクアツプ
版ページ・テーブルのブロツクの番号のみを取得すれば
よい。いま、バツクアツプ版ページ・テーブルのサイズ
は、 16*(400*103/4)=1600Kバイト なので、バツクアツプ版ページ・テーブルの相異なるブ
ロツクの総数は1600(=1600K/1K)個となる。これを識
別するためには2バイトあれば十分である。すなわち1
ページあたりの更新履歴情報取得量を1/100に削減でき
る。
なお、ひとつのトランザクシヨンが複数のページを更
新したとき、これらのページがバツクアツプ版ページ・
テーブル上で同一のブロツクに含まれるならば、削減効
果は更に増大する。
また、バツクアツプ版ページテーブルを高速不揮発メ
モリ(半導体)やICデイスクに格納することにより、総
合的には一層高速となる。
〔発明の効果〕
本発明によれば、シャドウ・ページ方式を用いたデー
タベース・システムにおいて、複数トランザクションに
よるデータベースの同時更新を可能とすることができ
る。
【図面の簡単な説明】
第1図は本発明の特徴を表わす説明図、第2図はシステ
ムの全体構成図、第3図は本発明データベースの構成図
である。第4図,第5図はそれぞれ本発明バツクアツプ
版ページ・テーブル,カレント版ページ・テーブルのテ
ーブル構成図、第6図は、本発明システム障害回復時の
トランザクシヨン状態解析フロー図である。 10……バツクアツプ版ペーシ・テーブル、20……バツク
アツプ版ページ・テーブル用ブロツク群、30……有効ブ
ロツク・ビツトマツプ、32……更新トランザクシヨン番
号、40……プロセス完了ジヤーナル、42……処理完了ト
ランザクシヨン番号、44……バツクアツプ版ページ・テ
ーブル更新ブロツク番号、46……プロセス完了ジヤーナ
ル・コード、50……履歴フアイル、60……データベー
ス、70……CPU/メモリ、80……データベース制御情報領
域、90……データベース領域、100……カレント版ペー
ジ・テーブル。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データが格納される複数のページから構成
    されるデータベースと、不揮発性記憶媒体上に複数のブ
    ロックから構成され、該データベースの各ページと該ペ
    ージの障害時に回復すべき内容を格納するスロットとの
    対応情報を保持する複数のバックアップ版ページ・テー
    ブルと、上記複数のバックアップ版ページテーブルの相
    互に対応するブロック毎に、いずれのバックアップ版ペ
    ージ・テーブルのブロックが有効かを示す有効ブロック
    ・マップと、実行中のトランザクションが更新したペー
    ジと該ページの更新後の内容を格納するスロットとの対
    応情報を保持するカレント版ページ・テーブルとを有
    し、実行中のトランザクションが上記データベースのペ
    ージを更新する場合、上記複数のバックアップ版ページ
    ・テーブルの各ブロックのうち、上記有効ブロック・マ
    ップで有効とされたブロックに登録されていないスロッ
    トに上記更新ページの内容を格納し、該更新ページと上
    記スロットとの対応情報を上記カレント版ページ・テー
    ブルに登録し、トランザクションの実行完了時に該トラ
    ンザクションが更新した全てのページについて該ページ
    とその更新後の内容を格納するスロットとの対応情報を
    上記カレント版ページ・テーブルより抽出し、上記複数
    のバックアップ版ページ・テーブルの該対応情報の登録
    対象ブロックのうち、上記有効ブロック・マップで無効
    とされているブロックを選択して上記抽出した対応情報
    を選択したブロックに登録するとともに、上記実行完了
    トランザクション以外の他の実行完了トランザクション
    が更新したページに対する上記対応情報が上記選択ブロ
    ックを登録対象とし、かつ未登録ならば該対応情報を上
    記選択ブロックに登録し、上記有効ブロック・マップの
    上記選択ブロックに関する内容を更新することを特徴と
    するデータベース更新方法。
  2. 【請求項2】上記複数のバックアップ版ページ・テーブ
    ルとして、1対のバックアップ版ページ・テーブルを用
    いることを特徴とする第1項記載のデータベース更新方
    法。
  3. 【請求項3】トランザクションの実行完了時にトランザ
    クションの処理完了を示す履歴レコードを履歴ファイル
    に書き込み、その際、該トランザクションで更新したペ
    ージに関する対応情報を含む上記バックアップ版ページ
    ・テーブルのブロックの識別子を上記履歴レコードに付
    加し、上記バックアップ版ページ・テーブル中を構成す
    る複数のブロックのうちの該トランザクションが更新し
    たページに関する上記対応情報を含むブロックについて
    上記有効ブロック・マップ中の有効なバックアップ版ペ
    ージ・テーブルを示す情報を更新することを特徴とする
    第1項記載のデータベース更新方法。
  4. 【請求項4】システム障害発生時に、上記履歴ファイル
    から上記トランザクションの処理完了を示す履歴レコー
    ドを含み、該履歴レコード中のブロック識別子に対応す
    る情報を上記有効ブロック・マップ上で変更した後にデ
    ータベース回復を行うことを特徴とする第3項記載のデ
    ータベース更新方法。
  5. 【請求項5】上記有効ブロック・マップに上記バックア
    ップ版ページ・テーブルを最新に更新したトランザクシ
    ョンの識別子を記録するエントリを設け、トランザクシ
    ョンの実行完了時にトランザクションの処理完了を示す
    履歴レコードを履歴ファイルに書き込み、その際、該ト
    ランザクションで更新したページに関する対応情報を含
    む上記バックアップ版ページ・テーブルのブロックの識
    別子を上記履歴レコードに付加し、上記バックアップ版
    ページ・テーブル中を構成する複数のブロックのうち該
    トランザクションが更新したページに関する上記対応情
    報を含むブロックについて上記有効ブロック・マップ中
    の有効なバックアップ版ページ・テーブルを示す情報を
    更新するとともに、該トランザクションの識別子を上記
    エントリに記録することを特徴とする第1項記載のデー
    タベース更新方法。
  6. 【請求項6】システム障害発生時に、上記履歴ファイル
    中の上記トランザクションの処理完了を示す履歴レコー
    ドと上記有効ブロックビットマップに設けたトランザク
    ションの識別子を記録するエントリとを用いて上記トラ
    ンザクションの処理完了を示す履歴レコードが上記履歴
    ファイルに書き込まれているが未だ上記有効ブロック・
    マップの更新が完了していないトランザクションについ
    て、上記トランザクションの処理完了を表わす履歴レコ
    ード中のブロック識別子に対応する情報を上記有効ブロ
    ック・マップ上で変更した後にデータベース回復を行う
    ことを特徴とする第5項記載のデータベース更新方法。
  7. 【請求項7】実行中のトランザクションが端末メッセー
    ジを送受信する場合、およびメモリ内のシステム管理情
    報を更新する場合に上記履歴ファイルにその内容を表わ
    す履歴レコードを取得することを特徴とする第3項記載
    のデータベース更新方法。
  8. 【請求項8】データが格納される複数のページから構成
    されるデータベースと、不揮発性記憶媒体上に複数のブ
    ロックから構成され、該データベースの各ページと該ペ
    ージの障害時に回復すべき内容を格納するスロットとの
    対応情報を保持する複数のバックアップ版ページ・テー
    ブルと、該複数のバックアップ版ページ・テーブルの相
    互の対応するブロック毎に上記複数のバックアップ版ペ
    ージ・テーブルのいずれが有効かを示す有効ブロック・
    マップと、実行中のトランザクションが更新したページ
    と該ページの更新後の内容を格納するスロットとの対応
    情報を保持するカレント版ページ・テーブルと、実行中
    のトランザクションが上記データベースのページを更新
    する場合に、上記複数のバックアップ版ページ・テーブ
    ルの各ブロックのうちの上記有効ブロック・マップで有
    効とされたブロックに登録されていないスロットに更新
    したページの内容を格納する手段と、該更新ページと上
    記スロットとの対応情報を上記カレント版ページ・テー
    ブルに登録する手段と、トランザクションの実行完了時
    に該トランザクションが更新した全てのページについて
    該ページと該ページの更新後の内容を格納するスロット
    との対応情報を上記カレント版ページ・テーブルより抽
    出し、上記複数のバックアップ版ページ・テーブルの該
    対応情報を登録対象ブロックのうちの上記有効ブロック
    ・マップで無効とされているブロックを選択して上記抽
    出した対応情報を選択したブロックに登録するととも
    に、上記実行完了トランザクション以外の他の実行完了
    トランザクションが更新したページに対する上記対応情
    報が上記選択ブロックを登録対象とし、かつ未登録なら
    ば該対応情報を上記選択ブロックに登録する手段と、上
    記有効ブロック・マップの上記選択ブロックに関する内
    容を更新する手段とを有することを特徴とするデータベ
    ース更新装置。
JP61079916A 1986-04-09 1986-04-09 デ−タベ−ス更新方法および装置 Expired - Fee Related JPH0823840B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61079916A JPH0823840B2 (ja) 1986-04-09 1986-04-09 デ−タベ−ス更新方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61079916A JPH0823840B2 (ja) 1986-04-09 1986-04-09 デ−タベ−ス更新方法および装置

Publications (2)

Publication Number Publication Date
JPS62237539A JPS62237539A (ja) 1987-10-17
JPH0823840B2 true JPH0823840B2 (ja) 1996-03-06

Family

ID=13703618

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61079916A Expired - Fee Related JPH0823840B2 (ja) 1986-04-09 1986-04-09 デ−タベ−ス更新方法および装置

Country Status (1)

Country Link
JP (1) JPH0823840B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0540682A (ja) * 1990-06-08 1993-02-19 Internatl Business Mach Corp <Ibm> アトミシテイを有する記憶装置の高可用性耐故障再配置
JPH0827754B2 (ja) * 1992-05-21 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおけるファイル管理方法及びファイル管理システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS582937A (ja) * 1981-06-27 1983-01-08 Fujitsu Ltd 障害回復方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「bit別冊コンピュータサイエンスacmcomputingSurveys’81」P.76−93(1983)共立出版

Also Published As

Publication number Publication date
JPS62237539A (ja) 1987-10-17

Similar Documents

Publication Publication Date Title
US5043871A (en) Method and apparatus for database update/recovery
US4961134A (en) Method for minimizing locking and reading in a segmented storage space
US5724581A (en) Data base management system for recovering from an abnormal condition
US5175849A (en) Capturing data of a database system
US7107294B2 (en) Method and apparatus for interrupting updates to a database to provide read-only access
US5499367A (en) System for database integrity with multiple logs assigned to client subsets
JP4115060B2 (ja) 情報処理システムのデータ復旧方法及びディスクサブシステム
US6119209A (en) Backup directory for a write cache
US7640276B2 (en) Backup system, program and backup method
US7210001B2 (en) Methods of and apparatus for efficient buffer cache utilization
JPH0816881B2 (ja) データベース更新方法
JPH06149485A (ja) データ完結性保証処理方法
JPH0823840B2 (ja) デ−タベ−ス更新方法および装置
JPH033046A (ja) ログ記録管理方式
CN112416860A (zh) 数据回滚更新方法、装置、计算机设备和存储介质
JPS63133240A (ja) 常駐テ−ブルの内容保証方式
JP3027782B2 (ja) データベース回復方式
JPS62297948A (ja) デ−タベ−スの障害回復方式
JPS63132351A (ja) メモリデ−タベ−ス処理装置
JPH0287242A (ja) データベースの退避回復方式
JPS62245347A (ja) データベースシステムおよびその処理方法
JPH03271841A (ja) データベースにおけるリカバリ方式
JPS63195755A (ja) 主記憶装置上の情報の内容保証方式
JP4131579B2 (ja) データ管理システムおよびデータ管理方法
JP2980610B2 (ja) トランザクション管理装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees