JPH0887510A - デ−タベ−ス管理方法 - Google Patents
デ−タベ−ス管理方法Info
- Publication number
- JPH0887510A JPH0887510A JP6222930A JP22293094A JPH0887510A JP H0887510 A JPH0887510 A JP H0887510A JP 6222930 A JP6222930 A JP 6222930A JP 22293094 A JP22293094 A JP 22293094A JP H0887510 A JPH0887510 A JP H0887510A
- Authority
- JP
- Japan
- Prior art keywords
- database
- sync point
- page
- point acquisition
- processing
- 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 OR CALCULATING; 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 operations
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1466—Management of the backup or restore process to make the backup process non-disruptive
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 operations
- G06F11/1474—Error detection or correction of the data by redundancy in operations in transactions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99954—Version management
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)
Abstract
にトランザクションを停止させる必要のないデ−タベ−
ス管理方法を提供する。 【構成】 シンクポイント取得時点に達すると、シンク
ポイント取得開始ログを出力した後、バッファプ−ル上
に存在するすべての更新ペ−ジのペ−ジ管理テ−ブルの
シンクポイント取得中フラグをONにする。その時、合
わせて更新対象ペ−ジ管理テ−ブルのリストを作成して
おき、作成したリスト中のペ−ジをデ−タベ−スに出力
を行う。ただし、デ−タベ−スへの出力が行われる前に
当該更新対象ペ−ジをアクセスするトランザクション
は、ペ−ジを参照する前にデ−タベ−スへの書き込みを
行うことによってアクセスを行うことを可能にする。
Description
ンからアクセスされるデータを記憶するデータベースを
管理するデータベース管理システムにおける、データベ
ースのシンクポイント処理を行う方法に関する。
システムでは、一定間隔おきにシンクポイントあるいは
チェックポイントという確認点を設けている。これは、
障害が発生しデータベースの再開始回復処理を実行しな
ければならない場合、障害が発生した時点の直前のシン
クポイントの状態にデータベースを復元し、そこから処
理の再開をはかることによってデータベースの再開始回
復処理を行う。シンクポイントは、更新を含むトランザ
クション処理の進行とは非同期に取得することができ
る。
ョナル・データベース管理システムは、データベース、
スキーマ、表、行といったように論理的に階層的な資源
で構成される。物理的に行を格納するための不揮発性記
憶装置である磁気ディスクなどの場合、行を物理的に固
定長のブロックあるいはページという単位に格納する。
トランザクション処理において行われるデータベースア
クセスは、このページを単位として主記憶装置上に確保
されたバッファプールを介して行われる。
ージがバッファプールに読み込まれ、バッファプール内
で検索、更新処理が行われる。バッファプールに読み込
まれたページは、できるだけ長くバッファプール上に存
在するように管理されることによって、磁気ディスクな
どの外部記憶装置との入出力処理オーバヘッドを削減し
ている。あるトランザクションにおいて行われたデータ
ベースの更新処理については、その更新履歴情報をログ
として取得する。ログは外部記憶装置のような不揮発性
の記憶装置に永久的に記録される。ログレコードはプロ
セッサ内の主記憶装置上の揮発性のログバッファにまず
書き込まれ、トランザクションが確定されるときに外部
記憶装置上のログファイルに移される。この場合、トラ
ンザクションにおいて行われたバッファプール上のペー
ジの更新は、いずれ外部記憶装置上のデータベースに反
映されなければならない。
クションによって更新されたバッファプール上の全ての
ページを外部記憶装置上のデータベースに反映する方法
がある。この方法では、トランザクション確定時の外部
記憶装置への書き込みオーバヘッドがかかる。そこで、
もう一つの方法では、トランザクション確定時とは遅延
させてバッファプールより更新されたページを外部記憶
装置上のデータベースに反映することによって、同一ペ
−ジへの複数のトランザクションの更新をまとめて外部
記憶装置への書き込みを行うことで、トランザクション
確定時の外部記憶装置への書き込みオーバヘッドを削減
するものである。
て外部記憶装置への書き込みを行う場合、外部記憶装置
に更新されたページが書き込まれる前に障害等によりデ
ータベース管理システムが終了してしまうとそのページ
の情報は失われる。この場合、システムの再開始が行わ
れ、システムが終了した時点までに行われたトランザク
ションの回復を保証する必要がある。トランザクション
が確定される前に障害が生じた場合は、そのトランザク
ションで行われたすべての更新を確実に元に戻す。ま
た、トランザクション確定後に障害が生じた場合は、、
そのトランザクションにて行われた更新をすべて保証さ
れなければならない。
イントより行われた全てのトランザクションを外部記憶
装置上に保存されたログファイルからログレコードを読
み出して回復する。ログレコードによるトランザクショ
ン回復時には、確定されたトランザクションであっても
実際に更新したページについては、バッファプール上か
ら外部記憶装置へ反映されていないことがある。その場
合は、外部記憶装置上のデータベースから回復対象のペ
ージを再度バッファプール上に読み込み、ログレコード
を基に更新処理を再実行(REDO)する。
確定されていないトランザクションで行われた更新がす
でにバッファプールから外部記憶装置へ反映されてしま
っている場合もある。これに対応する対策としては、ペ
ージ中に更新が発生したときのログのログシーケンス番
号(LSN)を持っておくことによって解決される。ペー
ジに対してあるトランザクションによって更新が行われ
ると、そのときのログを取得するがそのログレコードの
LSNを合わせてページ内に書き込んでおく。そうする
と、バッファプールから更新されたページが外部記憶装
置に書き込まれることによって、そのトランザクション
で行った更新がどのログに対応する更新まで外部記憶装
置に反映されているかがわかる。これにより、システム
の再開始時に回復対象の更新ページすべてを回復する必
要がなくなる。
んだ場合、読み込んだページのLSNとログレコードの
LSNを比較し、ページのLSNの方がログレコードの
LSNより大きいときは、そのログレコードに記録され
た更新情報はすでに反映されていることになる。という
ことは、ページのLSNの方がログレコードのLSNよ
り小さいときだけ、ログを使用してREDOを行えばよ
いということになる。データベース管理システムでは、
こうした再開始時の処理時間をできる限り短時間で行う
ことが望ましい。そのためには、再開始処理時のRED
O処理を極力削減することが望まれる。それには、通
常、バッファプール上で更新されたページを適切な時期
にシステムプロセスを使用して、バックグランドで外部
記憶装置上のデータベースに書き込む。
ポイントから回復処理を行う場合に前提とされるのは、
直前のシンクポイント時点のデ−タベ−スの状態からロ
グを用いて回復が行えることを保証することである。そ
のために、シンクポイントを取得する処理では、まず、
ログレコードとしてシンクポイント開始ログを取得する
ことにより開始される。この後、トランザクションの進
行を停止させ、ログバッファ上のログレコードを外部記
憶装置上のログファイルに書き込む。
ァプール上の全ての更新されたページを外部記憶装置上
のデータベースに書き込む。これが終わると、シンクポ
イント取得完了ログをログバッファに書き込んで、停止
したトランザクション処理の続行を開始してシンクポイ
ント取得を完了する。これによって、次のシンクポイン
トが取得されるまでに障害等によりシステムが終了して
も、今、取得したシンクポイントのデータベースの状態
が保証されたので、取得したシンクポイントを起点にし
て再開始処理を行うことができる。
たようにシンクポイント取得が開始されるとトランザク
ションの進行が一時的に妨げられるので、シンクポイン
ト取得処理中はトランザクションのスループットが一時
的に沈み込むという問題がある。シンクポイント取得処
理中であっても、トランザクション処理を続行できる方
法としては、シンクポイント取得処理においてバッファ
プール中のすべての更新ページ番号と各ページのLSN
をログに出力しておくことによって、シンクポイント取
得を完了する方法がある。この方法では、システム再開
始時に直前のシンクポイント時に取得した更新ページ番
号のログから最も古いLSN探索する。そして、最も古
いLSNを持つログレコードを再開始の回復起点とする
ものである。しかし、シンクポイント取得時にバッファ
プールから長い間、外部記憶装置上のデータベースに書
き込まれていないページがあると、REDO対象となる
ログレコード数が増加することになるため、再開始処理
時間を最小にするための工夫が必要となる。
e等の"ARIES:A Transaction Recovery Method Supporti
ng Fine-Granulality Locking and Partial Rollbacks
Using Write-Ahead Logging",ACM Transactions on Dat
abase Systems、第17巻、第1号、pp. 94-162(1992年3
月)に詳細に説明されている。さらに、特開平5−62
97号公報に開示されているトランザクション処理方法
およびシステムにも詳細に説明されている。
クポイント取得処理が発生してもトラザクション処理の
スループットを低下させないようにすることにある。シ
ステム再開始時における再開始処理時間の削減するため
の方法を提供することが関連した目的である。特に、シ
ンクポイント取得処理の開始時点においてバッファプー
ル中に存在した更新ページとそれ以外の非更新ページの
アクセスをシンクポイント取得中でも同時にアクセスす
るための方法を提供することである。
に、本発明のデータベース管理方法では、障害発生時の
再開始回復処理を前提としたトランザクション処理を可
能とするデータベース管理システムにおけるシンクポイ
ントを取得する方法において、シンクポイント取得開始
時に外部記憶装置上のデータベースに書き込みされてい
ない主記憶装置上にマッピングされたバッファ中のすべ
ての更新されたページを管理するテーブルにシンクポイ
ント取得処理中であるマークをつける。
たバッファ中の更新されたページをデータベースに書き
込み、シンクポイント取得処理中にマークのついたバッ
ファ中の更新されたページを更新するトランザクション
は更新されたページをアクセスする前にデータベースに
書き込みを行い、マークをはずした後アクセスを許可
し、マークのついた更新ページをすべてデータベースに
書き込みが完了した時点をシンクポイント取得完了とす
ることにより、シンクポイント処理中であってもトラン
ザクション処理続行可能とすることを特徴とするデータ
ベース管理方法によって解決される。
ータベース管理方法は、複数のトランザクションが、各
々データベースをアクセスしてバッファプール上に読み
込んだページに対して更新処理を行っている場合、ある
時点でデータベースのシンクポイント取得時点に達する
と、バッファプール上の更新されたページに対応するバ
ッファを管理するテーブルにシンクポイント取得中であ
るマークをつけることにより、バックグランドでデータ
ベースへの書き込みを行うプロセスは、該バッファプー
ル上でシンクポイント取得中であるマークのついたバッ
ファに対応するページを対象に外部記憶装置上のデータ
ベースへ書き込みを行うようにする。これによって、シ
ンクポイント取得時にログファイルへの書き込みとログ
に対応した更新ページのデータベースへの書き込みを同
期することができる。
たバッファに格納されたページに対するアクセス要求
は、一旦バッファプール上から外部記憶装置上のデータ
ベースに対して書き込みを行ってから、アクセスを許可
するようにする。これによって、シンクポイント取得中
であっても、トランザクションを停止させることなく、
システムとしてのスループットを低下させることがな
い。
的に説明する。図2は、本発明の一実施例にかかるコン
ピュータシステム10の構成を示す。コンピュータシス
テム10は、CPU12、主記憶装置14、磁気ディス
ク等の外部記憶装置16及び多数の端末18で構成され
る。主記憶装置2上には、データベース管理システム2
0が置かれ、外部記憶装置16上にはデータベース管理
システム20が管理するデータベース36a、36b及
びデータベース更新に関する更新履歴情報であるログフ
ァイル37が格納される。
からのデータベース問い合わせ要求であるSQLを受け取
り、構文解析意味解析処理を通してデータベースアクセ
スの最適なアクセス経路を決定する最適化処理を行な
い、決定したアクセス経路に基づいてデータベース処理
用の内部処理コードを生成する質問解析処理部21、生
成された内部処理コードを基にデータベース・アクセス
を行うデータベース演算処理部22、外部記憶装置16
に格納されたデータベース16からデータを主記憶装置
14上に確保したバッファプールとの間でデータの入出
力を行うバッファプール管理部23、前記端末18から
投入されたトランザクションを管理するトランザクショ
ン管理部24、バッファプール34の上で行われたデー
タの更新をトランザクションとは非同期に外部記憶装置
16上のデータベース36に書き込みを行う遅延書き込
み処理部25、定期的にデータベースを整合性が取れた
状態にすることを保証する処理を行うシンクポイント取
得処理部26及びトランザクションで行われたデータベ
ースへの更新履歴情報であるログ(以下、ログと略す)を
管理し、各ログレコードのログシーケンス番号(以下、
LSNと略す)を割り振り、トランザクションの完了時
に主記憶装置14上のログバッファ35から外部記憶装
置16上のログファイル37に書き込みを行うログ書き
込み処理部27で構成される。前記バッファプール管理
部23は、主記憶装置14上に確保したバッファプール
34をデータベースのデータを蓄積する単位である物理
適に固定長のページと対応させて管理するためのバッフ
ァプール管理テーブル31、ページ管理テーブル32及
びハッシュ管理テーブル33を使用する。
単位であるページ40の構造を示す。データベース管理
システム、特にリレーショナルデータベース管理システ
ムではデータは複数の行からなるリレーションと呼ばれ
る表形式を成している。リレーションは、データベース
管理システム20の入出力単位である物理的に固定長の
複数のページに分割され、外部記憶装置16のデータベ
ース36に格納されている。ページ40には行が格納さ
れ、ページ内の状態はページ内制御情報42で管理さ
れ、格納された行1〜行6は各々ページ内の相対アドレ
スを持っているスロット領域44によりポイントされて
いる。
2に含まれる管理情報を示す。ページ内制御情報42に
は、ページ内に割り当てられたスロット数である割当ス
ロット数421、実際に格納されている行に使用された
スロット数である使用スロット数422、ページ内の空
き領域長を管理する空き領域長423、ページ内の未使
用領域の先頭を相対アドレスで管理する未使用領域先頭
オフセット424及びページ内で行われた更新を反映し
たログのLSN425で構成される。このLSN425
は、データベース36からバッファプール34に読み込
まれた時に設定されているLSN425が実際にそのL
SN425までのログがすべて反映されていることを示
す。逆に、バッファプール34上で行われたページ上の
行に対する更新が行われると、その更新に対応したログ
のLSNが書き込まれ、バッファプール34からデータ
ベース36に書き込まれた時には、そのLSNが示す更
新はデータベースに反映したことが保証される。もちろ
ん、バッファプール34からデータベース36に書き込
まれる前に、一般的に良く知られるWAL(Write Ahea
d Logging)プロトコルによりログがログファイル37に
書き込まれることは言うまでもない。
ベース36との入出力を行うためのバッファプール34
を管理する各テーブルの関連を示す。バッファプール管
理テーブル31は、ハッシュ管理テーブル33及びペー
ジ管理テーブル32を管理している。バッファプール管
理テーブル31は、図6に示すような情報を持つ。バッ
ファプール34が持つページを格納するバッファ面数3
11、ハッシュ管理テーブル33へのポインタ312、
できるだけバッファプール上にページを留めるように管
理するための手法であるLRU(Least Recently Used)
アルゴリズムに基づいたLRUチェインの最も新しいペ
ージを管理するページ管理テーブル32へのポインタ3
13、逆に最も使用されていない古いページを管理する
ページ管理テーブルへのポインタ314、前記LRUチ
ェインとは別に更新されたページについてのLRUチェ
インを管理するための最も新しいページを管理するペー
ジ管理テーブル32へのポインタ315、逆に、最も使
用されていない古いページを管理するページ管理テーブ
ルへのポインタ316、ページ管理テーブル32が管理
するページに対応したバッファが無効状態である。すな
わち、FREE状態であるページ管理テーブルのポイン
タ317、バッファプール34上に存在する更新ページ
数318及び遅延書き込み状態を示すフラグ319から
成る。
報について示す。ページ管理テーブル32には、記憶し
たページのオブジェクト識別子321、バッファ番号3
22、LRUチェイン又はFREEチェインに接続され
た場合の前方ポインタ323と後方ポインタ324、ハ
ッシュチェインに接続された場合の前方ポインタ325
と後方ポインタ326、ページ番号327、ロックカウ
ンタ328、排他モードでページを入力した状態を示す
XGETフラグ329、出力要求フラグ330、データ
ベースからの読み込み中である状態を示す入力中フラグ
331、データベースへの書き込み中である状態を示す
出力中フラグ332、データベースからの入出力待ち状
態である場合の入出力待ちチェイン333、ロック待ち
チェイン334、及び本発明の特長であるシンクポイン
ト取得時の出力対象ページとなったことを示すシンクポ
イント取得中フラグ335で構成される。
説明する。バッファプール管理テーブル31からハッシ
ュ管理テーブル33へは、ハッシュ管理テーブルポイン
タ312でポイントされ、ハッシュ管理テーブルはデー
タベースを構成するページ番号からハッシングすること
によって該当するハッシュエントリにそのページを管理
するページ管理テーブル32が接続される。例えば、ハ
ッシュエントリ1には同じハッシュ値を持つページ管理
テーブル32a及び32bが接続される。バッファプー
ル管理テーブル31のLRUチェインにはページ管理テ
ーブル32上の出力要求フラグ330が出力要求状態で
ないものがチェインされ、ページ管理テーブル32c、
及び32fがチェインされている。バッファプール管理
テーブル31の更新LRUチェインにはページ管理テー
ブル32上の出力要求フラグ330が出力要求状態のも
のがチェインされ、ページ管理テーブル32d、及び3
2hがチェインされている。また、FREEチェインに
はページ管理テーブル32i、及び32jがチェインされ
ており、バッファプール管理部23はバッファプール上
に存在しないページを入力する場合、このFREEチェ
イン317のページ管理テーブル32を割り当て、当該
ページ管理テーブルに対応したバッファにページを入力
する。
処理について図8から図11を用いて説明する。図2に
おける端末18からトランザクションが投入されるとト
ランザクション管理部24はトランザクション開始処理
を行う。トランザクション開始処理の概略処理フローを
図8に示す。トランザクションが開始されると、まず、
トランザクション管理テーブルを当該トランザクション
用に割り当て、初期化する(ステップ52)。当該テーブ
ルにはトランザクション番号、トランザクション開始ロ
グのLSN及びカレントな当該トランザクションのLS
Nなどが格納される。
し、ログ書き込み処理部27にログの出力要求を発行
し、主記憶装置14上のログバッファ35に出力し、デ
ータベース管理システム内の一貫したLSNを割り振
り、LSNを取得する(ステップ54)。取得したLSN
を当該トランザクションのトランザクション管理テーブ
ルのトランザクション開始ログとして登録する(ステッ
プ56)。こうして、トランザクション開始処理が完了
すると、データベースに対する質問処理が実行される。
データベースに対する質問処理のうち、更新処理が行わ
れた場合の概略処理フローを図9に示す。当該データベ
ース管理システムが行レベルの排他制御を行うデータベ
ース管理システムの場合、更新対象となった行に排他モ
ードでロックを取得する(ステップ61)。更新対象行に
ロックを確保できたならば、バッファプール管理部23
に対して更新対象行が記憶されているページを排他モー
ドでページ入力要求を発行する(ステップ62)。
に更新操作を回復するためのUNDOログを作成し、ロ
グ書き込み処理部27に対し書き込み要求を発行すると
ともにUNDOログのLSNを取得する(ステップ6
3)。UNDOログが取得できたら、行の更新操作を行
う(ステップ64)。そして、更新した行に対する再実行
による回復のためのREDOログを出力し、REDOロ
グのLSNを取得する(ステップ65)。取得したRED
OログのLSNをページ内制御情報42のLSN425
に書き込み、更新する(ステップ66)。REDOログの
LSNを更新した後、当該ページに対する更新をデータ
ベースに反映するため、バッファプール管理部23に対
してページ出力要求を行う(ステップ68)。
6に書き込まれるのではなく、当該ページを管理するペ
ージ管理テーブル32の出力要求フラグ330を出力要
求状態に設定するのみとする。出力要求状態に設定する
ことで、当該バッファプールの置換アルゴリズムにした
がって、バッファスチール(他のページを入力するため
にデータベースに強制的に書きだす)されるか、遅延書
き込み処理部25によって非同期にデータベース16に
書き込まれるまで、主記憶装置14上のバッファプール
34上に置かれる。次に、トランザクション内で行った
データベースへのアクセス処理が終わるとトランザクシ
ョンを有効なものとするために2フェーズに分けてトラ
ンザクションを完結させる。
PARE処理フェーズについて説明する。まず、トラン
ザクションのPREPAREログをログバッファに書き
込む(ステップ72)。次いで、当該PREPAREログ
をログファイル37に強制出力する(ステップ74)。P
REPAREフェーズが終わるとトランザクションを正
常に終了させるためにCOMMITフェーズに入る。C
OMMITフェーズの処理概略フローを図11に示す。
トランザクションCOMMITログをログバッファに出
力する(ステップ82)。COMMITログをログファイ
ル37に強制出力する。これにより、トランザクション
が確約できたので当該トランザクションで取得したすべ
ての排他資源に対するロックを解放する(ステップ8
4)。COMMITされたトランザクションは、トラン
ザクション実行時に割り当てられたトランザクション管
理テーブルが不要となるため、システム内のアクティブ
トランザクション表から当該COMMITされたトラン
ザクションを取り除くとともにトランザクション管理テ
ーブルを解放する(ステップ86)。
処理について、概略処理フローを図1を用いて説明す
る。シンクポイントの設定の目的は、システムが障害に
より停止してしまったとしても確実にシステムすなわち
データベースを回復でき、システムを存続できることを
確かなものにすることである。また、シンクポイントを
設定することによってデータベースの回復時のREDO
の必要なログの使用を小さくさせることにもある。シン
クポイントを取得するタイミングは、システムインプリ
メンテーションによって様々であるが、定期的に何らか
のアクションによって実施される。
が一定の回数に達した時点によってシンクポイントを取
得する方法がある。この場合、シンクポイント取得のト
リガを与えるのはログ書き込み処理部27である。ま
ず、シンクポイント取得処理部26にシンクポイント取
得処理要求が渡されると、シクポイント取得開始ログを
作成し、ログバッファに書き込む(ステップ251)。次
にシンクポイント取得開始時点でのバッファプールの物
理的整合性を一時的に保証するためにロックを確保する
(ステップ252)。当該ロックは、ラッチと呼ぶことも
有り、データベースの論理的な整合性を保証するために
用いるロックとは異なり、一般のロックよりも保持時間
が短い。バッファプールのロックを確保できたならば、
当該ロックが解放されるまでの間はトランザクショによ
るバッファプールへのアクセスは一時的に待たされる。
てのページのページ管理テーブルを走査し、出力要求フ
ラグ330が出力要求状態になっているページについて
シンクポイント取得中フラグ335をシンクポイント取
得状態に設定する(ステップ253)。ステップ253と
同時にシンクポイント取得においてデータベース16へ
書き込む対象となるページを管理するページ管理テーブ
ルリスト38を作成する(ステップ254)。
38の構成を示す。出力対象ペ−ジ管理テ−ブルリスト
38には、当該リスト作成時にリストに登録されたバッ
ファプ−ル34中の対象ペ−ジのペ−ジ管理テ−ブル3
2のアドレス382aから382dとその出力対象ペ−
ジ数であるシンクポイント出力ペ−ジ数カウンタ381
で構成される。登録されたリストの最後には、次の出力
対象ペ−ジ管理テ−ブルがないことを示す情報328e
として0を設定する。そして、作成された出力対象ペ−
ジ管理テ−ブルリスト38の当該リストが作成された時
点でシンクポイント出力ペ−ジ数カウンタ381が決定
される(ステップ255)。当該カウンタは、セマフォに
より実現されていてもよい。
きだしを行うページが確約されたので直ちにバッファプ
ールのロックを解放する(ステップ256)。当該バッフ
ァプ−ルのロック期間中には、一切の外部記憶装置との
入出力処理を行わないのでCPU処理だけの短いロック
時間となる。これにより、バッファプールへのロック待
ちとなっていたトランザクションの処理が続行可能とな
る。そして、作成された出力対象のページ管理テーブル
リストに基づいて当該シンクポイントで出力すべきペー
ジを遅延書き込み処理部25に対して要求しデータベー
スへの出力を開始する(ステップ257)。
すべてのページの出力が完了したか否かは、前記シンク
ポイント出力ペ−ジ数カウンタ381が0になったかど
うかによって決定される(ステップ258)。したがっ
て、シンクポイント出力ペ−ジ数カウンタ381が0に
なるまで当該処理は待ち状態となる。これは、シンクポ
イント出力対象ペ−ジの書き込み処理中に他のトランザ
クションによって書き込み処理が行われることがあるた
め、他のトランザクションによって書き込み処理が行わ
れ、シンクポイント出力ペ−ジ数カウンタ381をカウ
ントダウンして0になるまで同期を取る必要があるから
である。シンクポイントにおいて出力対象となったすべ
てのページの出力が完了すると、すなわちシンクポイン
ト出力ペ−ジ数カウンタ381が0になると待ち状態が
解除されるので、シンクポイント取得完了ログを作成
し、ログバッファに書き込むと同時にログファイルへの
書き込みが強制される(ステップ259)。
で、当該シンクポイントをカレントな有効シンクポイン
トとするため当該シンクポイント開始ログのLSNをカ
レント有効シンクポイントとする(ステップ260)。
この有効シンクポイントのLSNは外部記憶装置16の
ような不揮発な記憶装置に格納されることが望ましい。
つまり、システムがこの後、障害や故障によりシステム
が停止しても、システムの再開始時にこの有効シンクポ
イントのLSNを読み出して、当該LSNを起点として
データベースの回復が行えるようになる。次に、図1で
示したステップ257のシンクポイント出力対象ページ
の書き込み処理の処理が概略フローを図13を用いて説
明する。
理テーブルリスト38の先頭アドレスにカレントポジシ
ョン(以下、CPと略す)を設定する(ステップ256
1)。次に、当該CPの指すページ管理テーブルのアド
レスが0か否かを判定し、0すなわちすべての出力対象
ページのデータベースへの書き込みが完了したか出力対
象ページがない場合は当該出力処理を終了する(ステッ
プ2562)。以降、出力対象ページが存在する間、以
下の処理を繰り返す。まず、ページ管理テーブル32の
ロックカウンタ328をチェックし、ロックカウンタ3
28が0以上ならば当該出力処理の対象からはずし、当
該ページを使用中のトランザクションによって出力を強
制するようにする。ロックカウンタ328が0の場合、
バッファプールにロックを確保する(ステップ256
4)。そして、出力中フラグ332を出力中状態に設定
することによってデータベース16への書き込みが完了
するまで他のトランザクションによる参照を待たせる
(ステップ2565)。
とは更新LRUチェインに接続されているということで
あるので、更新LRUチェインから切り離し、参照LR
Uチェインの先頭に接続する。さらに、出力要求フラグ
330をOFFにする(ステップ2567)。本処理が完
了するとバッファプールのロックを解放する(ステップ
2568)。そして、データベース16への書き込み処
理を行う(ステップ2569)。データベース16への書
き込みが完了した時点で出力中フラグ332をOFFに
する(ステップ2570)。出力が完了するまでの間にト
ランザクションから参照された場合には入出力待ちチェ
イン333に参照したトランザクションが登録されてい
るので、登録されたすべてのトランザクションをアクテ
ィブにするための同期制御処理を行う(ステップ257
1、2572)。こうして、一つのページの処理が終了
するとCPを次のページ管理テーブルリストのアドレス
に更新する。当該出力処理によって、シンクポイント取
得開始ログ以前のすべてのログに対応した更新がデータ
ベースに反映されることになる。
た出力対象ページが出力処理の対象からはずされたペー
ジについては、バッファプール管理部23がトランザク
ションの処理によって確実にデータベース16に書きだ
されることを保証している。つまり、出力対象となった
ページを管理するページ管理テーブル32にはシンクポ
イント取得中フラグ335が設定されたままの状態にな
っており、トランザクションによって当該シンクポイン
ト取得中フラグ335が設定されているページを使用す
る場合あるいは使用を終了する場合にデータベース16
への出力を強制することによってトランザクション処理
を止めることなく確実にシンクポイント取得処理が行わ
れる。バッファプール管理部23においてどのようにシ
ンクポイント出力対象ページがデータベース16に書き
だされているかを図14から図19を用いて説明する。
データベースに対する更新処理において図9のステップ
67で示した更新対象行格納ページ出力要求処理のバッ
ファプール管理部23における処理フローを示す。ま
ず、バッファプールにロックを確保する(ステップ40
1)。次にページ管理テーブル32の出力要求フラグ3
30がONであるかどうかチェックし(ステップ40
2)、ONならばさらにシンクポイント取得中フラグ3
35がONか否かをチェックし(ステップ403)、ON
ということは当該ページがシンクポイント取得中である
ので当該トランザクションによってデータベース16へ
の書き込みを強制される必要がある。
(ステップ404)、参照LRUチェインの先頭に接続す
る(ステップ405)。そして、出力中フラグ332をO
Nにし(ステップ406)、ロックカウンタ328を0に
し(ステップ407)、この時点でバッファプールのロッ
クを解放する(ステップ408)。バッファプールのロッ
クを解放したら、直ちにデータベース16への書き込み
を行う(ステップ409)。データベース16への書き込
みが完了した時点で出力中フラグ332をOFFにする
(ステップ410)。シンクポイント取得時の対象となっ
たペ−ジをデ−タベ−ス36に書き込みを行ったのでシ
ンクポイント出力ペ−ジ数カウンタ381から1を減ず
る(ステップ411)。出力が完了するまでの間に他の
トランザクションから参照された場合にはロック待ちチ
ェイン334に参照したトランザクションが登録されて
いるので、登録された先頭のトランザクションをアクテ
ィブにするための同期制御処理を行う(ステップ41
2、413)。また、ステップ402で出力要求フラグ
330がOFFの場合は、出力要求フラグ330をON
にし(ステップ414)、更新LRUチェインの先頭に接
続し(ステップ415)、ロックカウンタ328を0に設
定し(ステップ416)、バッファプールのロックを解放
する(ステップ417)。そして、ステップ412に進
み、ロック待ちチェインがあれば同期制御処理を行う。
データベースに対するアクセスにおいてページの入力要
求処理のバッファプール管理部23における処理フロー
を示す。基本的に要求されたページがバッファプール上
に存在すればデータベース16からの読み込み無しで入
力処理が完了し、バッファプール上に存在しない場合は
データベース16からの入力処理を伴う。その際、バッ
ファプール上にページが存在し、ページ入力要求モード
が排他モードの場合でかつシンクポイント取得中フラグ
335がONになっているページについてはあらかじめ
データベース16への書き込みを強制した後、入力要求
処理を満たすようにする。
し(ステップ501)、バッファプール34上に目的のペ
ージが存在するか否かをハッシュ管理テーブル33を使
用してサーチする(ステップ502)。目的のページがバ
ッファプール34上に存在したならばページロックモー
ドの種別によって処理を振り分ける(ステップ503、
504)。ページロックモードが共用モード(Sモード)
ならば、共用モード入力処理を行い(ステップ505)、
ページロックモードが排他モード(Xモード)ならば排他
モード入力処理を行う(ステップ506)。目的のページ
が存在しない場合は空きバッファが有るか否かをバッフ
ァプール管理テーブル31のFREEチェインポインタ
317によりチェックし(ステップ507)、FREEチ
ェインポインタ317に接続されたバッファが存在する
場合は当該FREEチェインに接続されたページ管理テ
ーブル32を割り当てる(ステップ508)。FREEチ
ェインポインタ317に該当するページ管理テーブル3
2が接続されていない場合は、参照LRUチェイン及び
更新LRUチェインより最も使用されていないページ管
理テーブルをスチールの対象とし、目的ページ入力用の
バッファとして割り当てる(ステップ509)。
管理テーブル32の入力中フラグ331を入力中状態に
設定するためONにし(ステップ510)、ロックカウン
タ328に1を設定し(ステップ511)、バッファプー
ルのロックを解放する(ステップ512)。この場合、ペ
ージロックモードが排他モードの場合はXGET中フラ
グ329もONに設定する。そして、目的のページをデ
ータベース16から読み込み(ステップ513)、読み込
みが完了すると直ちに入力中フラグ331をOFFにす
るとともに入出力待ちチェインあるいはロック待ちチェ
インに登録されているトランザクションがあれば同期制
御処理を行う(ステップ514、515、516)。
場合の入力処理の処理フローを図16に示す。まず、ロ
ックカウンタ328が0か否かをチェックし(ステップ
601)、0ならば参照LRUチェイン又は更新LRU
チェインに存在することになる。出力要求フラグ330
がONか否かをチェックし(ステップ602)、ONなら
ば更新LRUチェインに存在するので更新LRUチェイ
ンから切り離す(ステップ603)。出力要求フラグ33
0がOFFならば参照LRUチェインに存在するので参
照LRUチェインから切り離す(ステップ604)。そし
て、ロックカウンタ328に1を設定し(ステップ60
5)、バッファプールのロックを解放する(ステップ60
7)。
タ328が0でない場合、すなわちすでに他のトランザ
クションが使用中の場合は、ロック待ちチェイン334
に登録されているトランザクションが存在するか、又は
当該ページのロックモードが排他モードで使用中である
ことを示すXGETフラグがONになっているか否かを
チェックし(ステップ607)、いずれかの条件を満たす
場合、ロック待ちチェイン334の最後尾に当該入力要
求トランザクションを登録し(ステップ609)、一旦
バッファプールのロックを解放し(ステップ609)、
当該ロック待ち状態から解放されるのを同期制御処理に
よって待つ(ステップ610)。ステップ607の条件を
いずれも満たさない場合、すなわち、共用モードで使用
中のページの場合は、ロックカウンタ328を1増やし
(ステップ611)、入出力中フラグがONか否かをチェ
ックし(ステップ612)、データベース16からの入力
中の場合は、入出力待ちチェイン333に当該トランザ
クションを登録し(ステップ613)、一旦バッファプー
ルのロックを解放した後(ステップ614)、当該入出力
が完了し、当該トランザクションをアクティブ状態にし
てくれるまで待つ同期制御処理を行う(ステップ61
5)。ステップ612で入出力状態でない場合は、直ち
にバファプールのロックを解放することによって処理を
終了する(ステップ616)。
場合の入力処理の処理フローを図17に示す。まず、ロ
ックカウンタ328が0か否かをチェックし(ステップ
701)、0ならば参照LRUチェイン又は更新LRU
チェインに存在することになる。出力要求フラグ330
がONか否かをチェックし(ステップ702)、ONなら
ば更新LRUチェインに存在するので更新LRUチェイ
ンから切り離す(ステップ703)。出力要求フラグ33
0がOFFならば参照LRUチェインに存在するので参
照LRUチェインから切り離す(ステップ704)。そし
て、ロックカウンタ328に1を設定する(ステップ7
05)。
のでXGETフラグ329をONにし、入力中フラグ3
31がONか否かをチェックし(ステップ707)、デー
タベース16からの入力中の場合は入出力待ちチェイン
333に当該トランザクションを登録し(ステップ70
8)、一旦バッファプールのロックを解放した後(ステッ
プ709)、当該入出力が完了し、当該トランザクショ
ンをアクティブ状態にしてくれるまで待つ同期制御処理
を行う(ステップ710)。ステップ707で入出力状態
でない場合は、シンクポイント取得中フラグ335がO
Nか否かチェックし(ステップ714)、ONの場合は出
力中フラグ332をONにし(ステップ715)、一旦バ
ッファプールのロックを解放する(ステップ716)。
へ書き込みを強制し(ステップ717)、書き込み完了
後、出力中フラグ332をOFFにし(ステップ71
8)、さらにシンクポイント取得中フラグ335及び出
力要求フラグ330をOFFにする。また、シンクポイ
ント取得の出力対象ペ−ジをデ−タベ−ス36に出力し
たのでシンクポイント出力ペ−ジ数カウンタ381を1
減ずる(ステップ719)。入出力待ちチェインに登録
されているトランザクションがあれば同期制御処理を行
う(ステップ720、721)。ステップ714によりシ
ンクポイント取得中フラグ335がOFFの場合は直ち
にバッファプールのロックを解放する(ステップ72
2)。
セスしたページの使用が終わった場合にページのロック
を解放する処理の処理フローを示す。まず、バッファプ
ールのロックを確保する(ステップ801)。次にシンク
ポイント取得中フラグ335がONで有るか否かをチェ
ックし(ステップ802)、ONの場合は出力中フラグ3
32をONにし(ステップ803)、一旦バッファプール
のロックを解放する(ステップ804)。そして、当該ペ
ージをデータベース16へ書き込む(ステップ805)。
データベース16への書き込みが完了するとページ管理
テーブル32内の出力中フラグ332、シンクポイント
取得中フラグ335、及び出力要求フラグ330をOF
Fにする。また、シンクポイント取得の出力対象ペ−ジ
をデ−タベ−ス36に出力したのでシンクポイント出力
ペ−ジ数カウンタ381を1減ずる(ステップ806)。
最中に当該ページへのアクセスが行われた場合には入出
力待ちチェイン333に登録されているトランザクショ
ンをアクティブにするための同期制御処理を行った後
(ステップ807、808)、バッファプールのロックを
再度確保する(ステップ809)。次に、ステップ802
においてシンクポイント取得中フラグ335がOFFの
場合、あるいはONの場合にデータベース16への書き
込みが終了するとロックカウンタ328を1減らし(ス
テップ810)、ロックカウンタ328が0でかつXG
ETフラグ329がONの場合はXGETフラグ329
をOFFにする(ステップ811、812、813)。
合は更新LRUチェインへ接続し、出力要求フラグ33
0がOFFの場合は参照LRUチェインへ接続する(ス
テップ814、815、816)。ステップ811にお
いてロックカウンタ328が0でない場合、すなわち他
にまだ使用中のトランザクションがいる場合とLRUチ
ェインに接続している最中にロック待ちチェイン334
に登録されたトランザクションがある場合は、そのトラ
ンザクションのロック待ちを解除するための同期制御処
理を行い、バッファプールのロックを解放する(ステッ
プ817、818、819)。
セスしたページが不要になった場合に、当該ページを管
理するページ管理テーブルをFREEチェインへ登録す
る処理の処理フローを示す。まず、バッファプールのロ
ックを確保する(ステップ901)。次にシンクポイント
取得中フラグ335がONで有るか否かをチェックし
(ステップ902)、ONの場合は出力中フラグ332を
ONにし(ステップ903)、一旦バッファプールのロッ
クを解放する(ステップ904)。そして、当該ページを
データベース16へ書き込む(ステップ905)。データ
ベース16への書き込みが完了するとページ管理テーブ
ル32内の出力中フラグ332、シンクポイント取得中
フラグ335、及び出力要求フラグ330をOFFにす
る。また、シンクポイント取得の出力対象ペ−ジをデ−
タベ−ス36に出力したのでシンクポイント出力ペ−ジ
数カウンタ381を1減ずる(ステップ906)。
最中に当該ページへのアクセスが行われた場合には入出
力待ちチェイン333に登録されているトランザクショ
ンをアクティブにするための同期制御処理を行った後
(ステップ907、908)、バッファプールのロックを
再度確保する(ステップ909)。次に、ステップ802
においてシンクポイント取得中フラグ335がOFFの
場合、あるいはONの場合にデータベース16への書き
込みが終了するとロックカウンタ328を0に設定する
(ステップ910)。
求フラグ330をOFFにする(ステップ911、91
2)。FREEチェインに接続する前にロック待ちチェ
イン334に登録されたトランザクションがある場合は
参照LRUチェインに接続するようにし、そのトランザ
クションのロック待ちを解除するための同期制御処理を
行う(ステップ913、914、915)。ステップ91
3においてロック待ちチェイン334に登録されている
トランザクションがない場合は、バッファプール管理テ
ーブル31のFREEチェインに当該ページ管理テーブ
ル32を接続し、ハッシュチェインからも切り離す(ス
テップ917、918)。これらの処理が終了するとバ
ッファプールのロックを解放する(ステップ916)。
明したが、本発明により構成されたデータベース管理シ
ステムがトランザクション処理を始めた場合、システム
のスループット、すなわち単位時間当たりのトランザク
ション処理量を時間の経過で示すと図20のような効果
になる。トランザクションが一様に投入された場合のシ
ステムのスループットを示したものであり、ある一定間
隔においてシンクポイントが発生してもスループットの
低下は見られない性能効果が得られる。
の実施例について説明する。前述した実施例では、シン
クポイント取得開始時点のバッファプール上の更新ペー
ジをシンクポイント取得時にデータベースの整合性を保
証するようにする処理について説明したが、通常シンク
ポイント間隔では図2に示した遅延書き込み処理部25
がバッファプール上の更新ページ数を基に非同期にデー
タベースへの書き込みを行っているので、シンクポイン
ト取得時点になるべくバッファプール上の更新ページ数
が少なくなるように制御されている。
シンクポイント取得時点の更新ページ数がバッファプー
ル全体に閉める割合が大きい場合には、データベースへ
書き出すページ数が増加するためシンクポイント取得に
要する処理時間が長くなってしまうことがある。これ
は、通常シンクポイント間隔で行われる遅延書き込みの
頻度を多くする、すなわちバッファプール全体に占める
更新ページ数の比率を小さい値に設定することによっ
て、その水準に達した時点で遅延書き込みを起動する方
法が考えられる。ここでは、他の方法としてシンクポイ
ント取得開始時点までに、あらかじめ遅延書き込み処理
を利用してバッファプール中の更新ページをできるだけ
多くデータベースに書き出すためのプレシンクポイント
を行う処理の実施例を示す。
部27において実施されるログファイル37への書き込
み回数をシンクポイント間隔としてプレシンクポイント
及びシンクポイントを取得する処理の制御を行う処理の
概略フロ−を示す。トランザクションのコミットやロ−
ルバックにおいてログバッファ35に書き込まれたログ
をログファイル37に強制出力する場合、まず、ログフ
ァイル37への書き込みを行う(ステップ2710)。
ログファイル37への書き込みが終了すると、シンクポ
イント間隔を制御するためのログ出力回数を1増やす
(ステップ2712)。
ト取得点に到達したか否かを比較し(ステップ271
2)、プレシンクポイント取得点に到達した場合は、バ
ッファプ−ルにロックを確保し(ステップ2716)、
バッファプ−ル管理テ−ブル31の遅延書き込み中フラ
グ319をONにする(ステップ2718)。遅延書き
込み中フラグ319をONにすると、バッファプ−ルの
ロックを解放し(ステップ2720)、プレシンクポイ
ント取得処理に制御を渡す(ステップ2722)。ステ
ップ2714により、プレシンクポイント取得点に達し
ていないか、あるいは通過した場合は、シンクポイント
取得点に達したか否かを比較する(ステップ272
4)。プレシンクポイントに達した場合は、さらに遅延
書き込み中フラグ319がONか否かをチェックする
(ステップ2726)。遅延書き込み中フラグ319が
ONの場合は、まだプレシンクポイント取得処理が完了
していないので、プレシンクポイント取得処理を直ちに
停止させる要求をプレシンクポイント取得処理を行って
いるプロセスに通達する(ステップ2728)。この方
法は、シグナルやセマフォなどによって実現される。
か、あるいはすでに終了していた場合にはシンクポイン
ト取得処理に制御を渡す(ステップ2730)。シンク
ポイント取得処理が終了すると、ログ出力回数を0にク
リアする(ステップ2732)。次に、プレシンクポイ
ント取得処理の処理フロ−を図22を用いて説明する。
プレシンクポイント取得処理では基本的にバッファプ−
ル管理テ−ブル31の更新LRUチェインに登録された
ペ−ジを対象にデ−タベ−ス36への書き込みを行う。
あらかじめ、プレシンクポイント取得点における更新L
RUチェイン中のペ−ジのLSN425を参照し、最も
最新のLSNをプレシンクポイント取得時の最大LSN
として記憶しておく。
すなわち最も古い更新ペ−ジを管理しているペ−ジ管理
テ−ブルのアドレスをカレントポジション(以下、CP
と略す)に設定する(ステップ2740)。CPの指す
ペ−ジ管理テ−ブル32が管理するペ−ジのLSN42
5をプレシンクポイント取得時の最大LSNと比較し
(ステップ2741)、CPの指すペ−ジ管理テ−ブル
32が管理するペ−ジのLSN425の方が小さい間、
プレシンクポイント取得処理のデ−タベ−ス36への出
力対象ペ−ジとして処理を行う。
ンクポイント取得点に達した場合は、プレシンクポイン
ト取得停止要求が発行されていることがあるため、プレ
シンクポイント取得停止要求が発行されたか否かをチェ
ックし(ステップ2742)、プレシンクポイント取得
停止要求が発行されていない場合は、プレシンクポイン
ト取得処理を継続する。まず、バッファプ−ルにロック
を確保する(ステップ2743)。そして、出力中フラ
グを出力中状態に設定することによってデ−タベ−ス2
6への書き込みが完了するまで他のトランザクションに
よる参照を待たせる(ステップ2744)。
照LRUチェインに登録する(ステップ2745)。そ
して、出力要求フラグ330をOFFにする(ステップ
2746)。本処理が完了するとバッファプ−ルのロッ
クを解放する(ステップ2747)。そして、デ−タベ
−ス16への書き込みを行う(ステップ2748)。デ
−タベ−ス16への書き込みが完了した時点で出力中フ
ラグ332をOFFにする(ステップ2749)。デ−
タベ−ス16への書き込みが完了するまでの間にトラン
ザクションから参照された場合には入出力待ちチェイン
333に参照したトランザクションが登録されているの
で、登録されたすべてのトランザクションをアクティブ
にするための同期制御処理を行う(ステップ2751、
2752)。ステップ2741、2742によって、プ
レシンクポイント取得処理が終了したか、プレシンクポ
イント取得停止要求を受け付けた場合は、プレシンクポ
イント取得処理の終了処理として遅延書き込み中フラグ
319をOFFにする。
果について図23に示す。プレシンクポイント取得時点
は、シンクポイント間隔の設定方法としてログの出力回
数を使用する場合にはログ出力回数がある一定数に達し
た時点とする。シンクポイント間隔の設定方法は、ログ
の出力回数のみではなく他の別の実施方法であってもよ
い。例えば、一定時間で設定されるようなシンクポイン
ト間隔ならばその一定時間に達する前のある時間に達し
た時点をプレシンクポイント取得時点とすることができ
る。
の出力回数によって設定される場合について述べる。こ
の場合、プレシンクポイント取得開始のトリガを与える
のは図2におけるログ書き込み処理部27である。ログ
書き込み処理部27は、トランザクションからのログの
書き込み要求に応じてログバッファ35にキャッシュ
し、ログバッファ35が満杯になるか、トランザクショ
ンのコミット、ロールバック時点によってログファイル
37への書き出しが強制される。その場合、ログファイ
ル37への出力回数を主記憶装置上に記憶しておき、シ
ンクポイント間隔のある一定数に達した時点で遅延書き
込み処理部25に制御を渡す。
あった場合、ログファイルへの出力回数が1000に達
した時点がシンクポイント取得時点となり、プレシンク
ポイントはその80%の800に達した時点とするよう
にする。通常、遅延書き込み処理では、バッファプール
中の更新ページ数がある一定数に達するとデータベース
への書き込みを開始するが、すべての更新ページがデー
タベースへ書き出されるのではなく、一定のページ数に
留めることが多い。しかし、プレシンクポイント取得時
点では、その時点に存在するバッファプール上のすべて
の更新ページをデータベースに書き出す。そうすると、
図20の(b)及び(c)のようにシンクポイント取得時点
までにバッファプール上のほとんどの更新ページが書き
出されるようになる。
ッファプール上の更新ページ数が0になることが望まし
いが、通常(b)のようにプレシンクポイントで更新ペー
ジをデータベースに書き出す処理を行ってもシンクポイ
ント取得時点までに全てのページを書き出せないことが
ある。その場合は、残った更新ページをシンクポイント
取得処理にてデータベースへの書き出しを行うようにな
る。また、逆に(c)のようにプレシンクポイントでバッ
ファプール上の更新ページを全てデータベースに書き出
せたが、シンクポイント取得時点に達しない場合もあ
る。その場合は、シンクポイント取得時点に存在するバ
ッファプール上の更新ページがシンクポイント取得時点
でのデータベースへの書き出し対象ページとなる。
0の(b)、(c)のようにシンクポイント取得開始時点で
の更新ページ数を残さないようにするため、シンクポイ
ント取得開始時にプレシンクポイント取得が完了したか
否かを記憶しておき、プレシンクポイント取得が完了し
ていない場合はデータベースへ書き込みができなかった
更新ページ数からプレシンクポイント取得開始点を早く
するようにし、プレシンクポイント取得がすでに完了し
ている場合は、シンクポイント取得時に存在した更新ペ
ージ数からプレシンクポイント取得開始点を遅くするよ
うにプレシンクポイント取得開始点を補正し、次のシン
クポイントのプレシンクポイント取得開始点とする処理
を行う。
ば、データベース管理システムにおいてシンクポイント
取得開始時にバッファプール上に存在するすべての更新
ページにマークをつけるだけで、そのマークのついた更
新ページをデータベースへの書き込み対象とするため、
シンクポイント取得中であってもトランザクション処理
を全く停止させることなく入出力処理を可能にするの
で、シンクポイント取得中のトランザクション処理量が
0になることがない。また、プレシンクポイント処理を
行うことにより、シンクポイント取得時点のバッファプ
ール上に存在する更新ページ数を削減することができる
ので、シンクポイント取得処理時間を大幅に短縮でき
る。
概略処理フローを示す。
テムの構成図を示す。
す。
ルの構造を示す。
成情報を示す。
理するペ−ジ管理テ−ブルの構成情報を示す。
す。
更新処理の処理フロ−を示す。
理フロ−を示す。
フロ−を示す。
報を示す。
理の処理フロ−を示す。
求処理の処理フロ−を示す。
求処理の処理フロ−を示す。
ロ−の詳細を示す。
ロ−の詳細を示す。
ロック解放処理の処理フロ−を示す。
ァFREE処理の処理フロ−を示す。
性能特性のグラフを示す。
を制御するログ書き込み処理の処理フロ−を示す。
示す。
クポイント処理を行った場合のバッファプ−ルにおける
更新ペ−ジ数の時間経過における比率のグラフを示す。
記憶装置、16:外部記憶装置、18:端末、20:デ
−タベ−ス管理システム、21:質問解析処理部、2
2:デ−タベ−ス演算処理部、23:バッファプ−ル管
理部、24:トランザクション管理部、25:遅延書き
込み処理部、26:シンクポイント取得処理部、27:
ログ書き込み処理部、31:バッファプ−ル管理テ−ブ
ル、32:ペ−ジ管理テ−ブル、33:ハッシュ管理テ
−ブル、34:バッファプ−ル、35:ログバッファ、
36:デ−タベ−ス、37:ログファイル、38:出力
対象ペ−ジ管理テ−ブルリスト、40:ペ−ジ、42:
ペ−ジ内制御情報、44:スロット領域、319:遅延
書き込み中フラグ、328:ロックカウンタ、329:
XGETフラグ、330:出力要求フラグ、335:シ
ンクポイント取得中フラグ、381:シンクポイント出
力ペ−ジ数カウンタ、421:割当スロット数、42
2:使用スロット数、423:空き領域長、424:未
使用領域先頭オフセット、425:LSN
Claims (4)
- 【請求項1】障害発生時の再開始回復処理を前提とした
トランザクション処理を可能とするデータベース管理シ
ステムにおけるシンクポイントを取得する方法であっ
て、 前記シンクポイント取得開始時に外部記憶装置上のデー
タベースに書き込みされていない主記憶装置上にマッピ
ングされたバッファ中のすべての更新されたページを管
理するテーブルにシンクポイント取得処理中であるマー
クをつけ、 前記シンクポイント取得処理中は前記マークのついたバ
ッファ中の更新されたページを前記データベースに書き
込み、 前記シンクポイント取得処理中に前記マークのついたバ
ッファ中の更新されたページを更新するトランザクショ
ンは前記更新されたページをアクセスする前に前記デー
タベースに書き込みを行い、前記マークをはずした後ア
クセスを許可し、 前記マークのついた更新ページをすべて前記データベー
スに書き込みが完了した時点をシンクポイント取得完了
とすることにより、 前記シンクポイント処理中であってもトランザクション
処理続行可能とすることを特徴とするデータベース管理
方法。 - 【請求項2】請求項1記載のデータベース管理方法にお
いて、 前記シンクポイントを取得する間隔がある一定量に達し
た時点より、前記シンクポイント取得開始時点まで前記
バッファ中の更新ページを非同期に前記データベースに
書き込みを行うプレシンクポイント取得処理を行うこと
により、 前記シンクポイント取得処理における前記バッファ中の
更新ページ数を削減することを特徴とするデータベース
管理方法。 - 【請求項3】請求項2記載のデータベース管理方法にお
いて、 前記プレシンクポイント取得処理において、前記シンク
ポイント取得開始時点までに前記データベースに書き込
めなかった前記バッファ中の更新ページは、前記シンク
ポイント取得開始時にバッファ中のすべての更新された
ページを管理するテーブルにシンクポイント取得処理中
であるマークをつけることによりシンクポイントを取得
することを特徴とするデータベース管理方法。 - 【請求項4】請求項2記載のデータベース管理方法にお
いて、 前記プレシンクポイント取得処理において、前記シンク
ポイント取得開始時にプレシンクポイント取得が完了し
たか否かを記憶しておき、前記プレシンクポイント取得
が完了していない場合は前記データベースに書き込めな
かった前記バッファ中の更新ページ数から前記プレシン
クポイント取得開始点を早くするように変更し、前記プ
レシンクポイント取得がすでに完了している場合は、前
記シンクポイント取得時に存在した更新ペ−ジ数から前
記プレシンクポイント取得開始点を遅くするように変更
し、前記プレシンクポイント取得開始点を補正すること
を特徴とするデ−タベ−ス管理方法。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22293094A JP3593366B2 (ja) | 1994-09-19 | 1994-09-19 | デ−タベ−ス管理方法 |
| US08/529,176 US5778388A (en) | 1994-09-19 | 1995-09-15 | Method of processing a synchronization point in a database management system to assure a database version using update logs from accumulated transactions |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP22293094A JP3593366B2 (ja) | 1994-09-19 | 1994-09-19 | デ−タベ−ス管理方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0887510A true JPH0887510A (ja) | 1996-04-02 |
| JP3593366B2 JP3593366B2 (ja) | 2004-11-24 |
Family
ID=16790100
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP22293094A Expired - Fee Related JP3593366B2 (ja) | 1994-09-19 | 1994-09-19 | デ−タベ−ス管理方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5778388A (ja) |
| JP (1) | JP3593366B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10133929A (ja) * | 1996-10-29 | 1998-05-22 | Mitsubishi Electric Corp | データベース更新制御方式及びその方法 |
| US7017076B2 (en) | 2003-07-29 | 2006-03-21 | Hitachi, Ltd. | Apparatus and storage system for controlling acquisition of snapshot |
| JP2016511499A (ja) * | 2013-03-15 | 2016-04-14 | アマゾン・テクノロジーズ・インコーポレーテッド | 分散型データベースシステムのシステム全体のチェックポイント回避 |
Families Citing this family (105)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6405218B1 (en) | 1996-11-13 | 2002-06-11 | Pumatech, Inc. | Synchronizing databases |
| US7013315B1 (en) | 1996-11-13 | 2006-03-14 | Intellisync Corporation | Synchronization of databases with record sanitizing and intelligent comparison |
| US6330568B1 (en) | 1996-11-13 | 2001-12-11 | Pumatech, Inc. | Synchronization of databases |
| US7302446B1 (en) | 1996-11-13 | 2007-11-27 | Intellisync Corporation | Synchronizing databases |
| US6141664A (en) | 1996-11-13 | 2000-10-31 | Puma Technology, Inc. | Synchronization of databases with date range |
| US5943676A (en) * | 1996-11-13 | 1999-08-24 | Puma Technology, Inc. | Synchronization of recurring records in incompatible databases |
| US6044381A (en) | 1997-09-11 | 2000-03-28 | Puma Technology, Inc. | Using distributed history files in synchronizing databases |
| US6212529B1 (en) | 1996-11-13 | 2001-04-03 | Puma Technology, Inc. | Synchronization of databases using filters |
| KR100198805B1 (ko) * | 1996-11-22 | 1999-06-15 | 정선종 | 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법 |
| US6067550A (en) | 1997-03-10 | 2000-05-23 | Microsoft Corporation | Database computer system with application recovery and dependency handling write cache |
| US6490594B1 (en) | 1997-04-04 | 2002-12-03 | Microsoft Corporation | Database computer system with application recovery and dependency handling write cache |
| US5946700A (en) * | 1997-10-31 | 1999-08-31 | Oracle Corporation | Method and apparatus for preserving non-current information that can be overwritten in a computer file |
| US6351753B1 (en) * | 1998-02-20 | 2002-02-26 | At&T Corp. | Method and apparatus for asynchronous version advancement in a three version database |
| US6173292B1 (en) * | 1998-03-04 | 2001-01-09 | International Business Machines Corporation | Data recovery in a transactional database using write-ahead logging and file caching |
| US20020107837A1 (en) * | 1998-03-31 | 2002-08-08 | Brian Osborne | Method and apparatus for logically reconstructing incomplete records in a database using a transaction log |
| US6925477B1 (en) | 1998-03-31 | 2005-08-02 | Intellisync Corporation | Transferring records between two databases |
| US6131094A (en) * | 1998-04-24 | 2000-10-10 | Unisys Corp. | Method for performing asynchronous writes to database logs using multiple insertion points |
| US6192377B1 (en) * | 1998-05-13 | 2001-02-20 | Oracle Corporation | Method and apparatus for determing whether a transaction can use a version of a data item |
| US6148300A (en) * | 1998-06-19 | 2000-11-14 | Sun Microsystems, Inc. | Hybrid queue and backoff computer resource lock featuring different spin speeds corresponding to multiple-states |
| US7007003B1 (en) | 1998-12-04 | 2006-02-28 | Intellisync Corporation | Notification protocol for establishing synchronization mode for use in synchronizing databases |
| US6874104B1 (en) * | 1999-06-11 | 2005-03-29 | International Business Machines Corporation | Assigning recoverable unique sequence numbers in a transaction processing system |
| US6507847B1 (en) * | 1999-12-17 | 2003-01-14 | Openwave Systems Inc. | History database structure for Usenet |
| US7035878B1 (en) | 2000-01-25 | 2006-04-25 | Fusionone, Inc. | Base rolling engine for data transfer and synchronization system |
| US8156074B1 (en) | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
| US6671757B1 (en) | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
| US8620286B2 (en) | 2004-02-27 | 2013-12-31 | Synchronoss Technologies, Inc. | Method and system for promoting and transferring licensed content and applications |
| US7505762B2 (en) | 2004-02-27 | 2009-03-17 | Fusionone, Inc. | Wireless telephone data backup system |
| US6490595B1 (en) * | 2000-03-30 | 2002-12-03 | International Business Machines Corporation | Method, system and program products for providing efficient syncpoint processing of distributed transactions |
| US8073954B1 (en) | 2000-07-19 | 2011-12-06 | Synchronoss Technologies, Inc. | Method and apparatus for a secure remote access system |
| US7895334B1 (en) | 2000-07-19 | 2011-02-22 | Fusionone, Inc. | Remote access communication architecture apparatus and method |
| US6925476B1 (en) * | 2000-08-17 | 2005-08-02 | Fusionone, Inc. | Updating application data including adding first change log to aggreagate change log comprising summary of changes |
| US20020046204A1 (en) * | 2000-08-25 | 2002-04-18 | Hayes Scott R. | Heuristic automated method for ideal bufferpool tuning in a computer database |
| US7818435B1 (en) | 2000-12-14 | 2010-10-19 | Fusionone, Inc. | Reverse proxy mechanism for retrieving electronic content associated with a local network |
| US6847983B2 (en) | 2001-02-28 | 2005-01-25 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of open files |
| US6985915B2 (en) | 2001-02-28 | 2006-01-10 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of files |
| US7076485B2 (en) * | 2001-03-07 | 2006-07-11 | The Mitre Corporation | Method and system for finding similar records in mixed free-text and structured data |
| US7177866B2 (en) | 2001-03-16 | 2007-02-13 | Gravic, Inc. | Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only |
| US7103586B2 (en) * | 2001-03-16 | 2006-09-05 | Gravic, Inc. | Collision avoidance in database replication systems |
| US6662196B2 (en) * | 2001-03-16 | 2003-12-09 | Iti, Inc. | Collision avoidance in bidirectional database replication |
| US7164676B1 (en) | 2001-03-21 | 2007-01-16 | Cisco Technology, Inc. | Method and apparatus for a combined bulk and transactional database synchronous scheme |
| US8615566B1 (en) | 2001-03-23 | 2013-12-24 | Synchronoss Technologies, Inc. | Apparatus and method for operational support of remote network systems |
| US7359920B1 (en) | 2001-04-18 | 2008-04-15 | Intellisync Corporation | Communication protocol for synchronization of personal information management databases |
| US7499924B2 (en) * | 2001-06-28 | 2009-03-03 | International Business Machines Corporation | Method for releasing update locks on rollback to savepoint |
| US20030004970A1 (en) * | 2001-06-28 | 2003-01-02 | Watts Julie Ann | Method for releasing update locks on rollback to savepoint |
| US7062516B2 (en) * | 2001-09-18 | 2006-06-13 | Sun Microsystems, Inc. | Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure |
| WO2003060774A1 (en) * | 2002-01-15 | 2003-07-24 | Network Appliance, Inc. | Active file change notification |
| US6721765B2 (en) * | 2002-07-02 | 2004-04-13 | Sybase, Inc. | Database system with improved methods for asynchronous logging of transactions |
| US7047527B1 (en) | 2002-07-18 | 2006-05-16 | Unisys Corporation | Method for identification of version levels of components across heterogeneous systems while eliminating mis-matched versions |
| US7047488B2 (en) | 2002-07-19 | 2006-05-16 | Open Invention Network | Registry driven interoperability and exchange of documents |
| GB0217088D0 (en) * | 2002-07-24 | 2002-09-04 | Ibm | Asynchronous messaging in storage area network |
| CA2426606A1 (en) * | 2003-04-25 | 2004-10-25 | Ibm Canada Limited - Ibm Canada Limitee | Using buffer to facilitate log catchup for online operations |
| US7412460B2 (en) * | 2003-06-19 | 2008-08-12 | International Business Machines Corporation | DBMS backup without suspending updates and corresponding recovery using separately stored log and data files |
| WO2005010715A2 (en) | 2003-07-21 | 2005-02-03 | Fusionone, Inc. | Device message management system |
| US8543566B2 (en) * | 2003-09-23 | 2013-09-24 | Salesforce.Com, Inc. | System and methods of improving a multi-tenant database query using contextual knowledge about non-homogeneously distributed tenant data |
| US7870354B2 (en) | 2003-11-04 | 2011-01-11 | Bakbone Software, Inc. | Data replication from one-to-one or one-to-many heterogeneous devices |
| JP2007511008A (ja) * | 2003-11-04 | 2007-04-26 | コンスタント・データ、インコーポレイテッド | ハイブリッドリアルタイムデータレプリケーション |
| US7634509B2 (en) | 2003-11-07 | 2009-12-15 | Fusionone, Inc. | Personal information space management system and method |
| DE602004006224T2 (de) * | 2004-03-18 | 2008-01-10 | Alcatel Lucent | Verfahren und Vorrichtung zur Datensynchronisierung eines verteilten Datenbanksystems |
| US9542076B1 (en) | 2004-05-12 | 2017-01-10 | Synchronoss Technologies, Inc. | System for and method of updating a personal profile |
| JP2008500750A (ja) | 2004-05-12 | 2008-01-10 | フュージョンワン インコーポレイテッド | 高度な連絡先識別システム |
| US7949666B2 (en) * | 2004-07-09 | 2011-05-24 | Ricoh, Ltd. | Synchronizing distributed work through document logs |
| US7617180B1 (en) * | 2005-06-06 | 2009-11-10 | Infoblox Inc. | Efficient lock management |
| US7739234B1 (en) | 2005-12-15 | 2010-06-15 | Teradata Us, Inc. | Techniques for synchronizing data store tables |
| US7970738B2 (en) * | 2005-12-29 | 2011-06-28 | Ricoh Co., Ltd. | Always on and updated operation for document logs |
| US8015194B2 (en) * | 2005-12-29 | 2011-09-06 | Ricoh Co., Ltd. | Refining based on log content |
| US8095537B2 (en) | 2005-12-29 | 2012-01-10 | Ricoh Co., Ltd. | Log integrity verification |
| KR100678926B1 (ko) * | 2006-01-05 | 2007-02-06 | 삼성전자주식회사 | 로그 정보 관리 시스템 및 방법 |
| CN100428232C (zh) * | 2006-01-26 | 2008-10-22 | 北京和利时系统工程有限公司 | 一种快速安全的实时数据库访问方法 |
| US7809685B2 (en) * | 2006-04-21 | 2010-10-05 | Ricoh Co., Ltd. | Secure and efficient methods for logging and synchronizing data exchanges |
| US7953698B2 (en) * | 2006-08-03 | 2011-05-31 | Sybase, Inc. | Replication system with methodology for replicating stored procedure calls |
| JP4961606B2 (ja) * | 2006-08-29 | 2012-06-27 | アイシン・エィ・ダブリュ株式会社 | データ管理システム、更新用ファイル生成システム、及び、データ更新方法 |
| US8479004B2 (en) * | 2006-08-31 | 2013-07-02 | Ricoh Co., Ltd | Paper-based document logging |
| US8006094B2 (en) | 2007-02-21 | 2011-08-23 | Ricoh Co., Ltd. | Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes |
| US8768890B2 (en) * | 2007-03-14 | 2014-07-01 | Microsoft Corporation | Delaying database writes for database consistency |
| US8996483B2 (en) * | 2007-03-28 | 2015-03-31 | Ricoh Co., Ltd. | Method and apparatus for recording associations with logs |
| US7895474B2 (en) * | 2007-05-03 | 2011-02-22 | International Business Machines Corporation | Recovery and restart of a batch application |
| US20090063753A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Method for utilizing data access patterns to determine a data migration order |
| US9274949B2 (en) * | 2007-08-27 | 2016-03-01 | International Business Machines Corporation | Tracking data updates during memory migration |
| US8671256B2 (en) * | 2007-08-27 | 2014-03-11 | International Business Machines Corporation | Migrating contents of a memory on a virtual machine |
| US20090063752A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Utilizing data access patterns to determine a data migration order |
| US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
| US8661211B2 (en) * | 2007-08-27 | 2014-02-25 | International Business Machines Corporation | Method for migrating contents of a memory on a virtual machine |
| US8181111B1 (en) | 2007-12-31 | 2012-05-15 | Synchronoss Technologies, Inc. | System and method for providing social context to digital activity |
| US8073778B2 (en) | 2008-09-11 | 2011-12-06 | Linden Research, Inc. | Scalable distributed transaction manager for multi-host transactions |
| US8185733B2 (en) * | 2008-10-02 | 2012-05-22 | Ricoh Co., Ltd. | Method and apparatus for automatically publishing content based identifiers |
| US8521776B2 (en) * | 2008-12-05 | 2013-08-27 | International Business Machines Corporation | Accessing data in a multi-generation database |
| US8250111B2 (en) * | 2009-02-27 | 2012-08-21 | International Business Machines Corporation | Automatic detection and correction of hot pages in a database system |
| US8255006B1 (en) | 2009-11-10 | 2012-08-28 | Fusionone, Inc. | Event dependent notification system and method |
| US8943428B2 (en) | 2010-11-01 | 2015-01-27 | Synchronoss Technologies, Inc. | System for and method of field mapping |
| US9396227B2 (en) * | 2012-03-29 | 2016-07-19 | Hewlett Packard Enterprise Development Lp | Controlled lock violation for data transactions |
| KR20140047230A (ko) * | 2012-10-10 | 2014-04-22 | (주)티베로 | 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 |
| US9348861B2 (en) | 2013-09-10 | 2016-05-24 | International Business Machines Corporation | Capturing change data of deferred updates |
| US9323553B2 (en) | 2013-09-13 | 2016-04-26 | International Business Machines Corporation | Reducing virtual machine suspension time in checkpoint system |
| US9754007B2 (en) | 2013-09-16 | 2017-09-05 | International Business Machines Corporation | Checkpoint capture and tracking in a high availability system |
| US9727357B2 (en) | 2013-10-01 | 2017-08-08 | International Business Machines Corporation | Failover detection and treatment in checkpoint systems |
| US9558229B2 (en) * | 2013-11-26 | 2017-01-31 | Sap Se | Transaction private log buffering for high performance of transaction processing |
| WO2015200476A2 (en) * | 2014-06-24 | 2015-12-30 | Google Inc. | Processing mutations for a remote database |
| US9811549B2 (en) * | 2014-11-25 | 2017-11-07 | Sap Se | Applying a database transaction log record directly to a database table container |
| CN106155838B (zh) * | 2015-04-24 | 2019-03-22 | 中国移动通信集团河南有限公司 | 一种数据库备份数据恢复方法及装置 |
| US9513829B1 (en) * | 2015-06-29 | 2016-12-06 | EMC IP Holding Company LLC | Transaction logging using round-robin block allocation and I/O size based partitions |
| US10747572B2 (en) | 2016-09-30 | 2020-08-18 | International Business Machines Corporation | Computing system including enhanced application performance based on last completed operation sequence value |
| US10769128B2 (en) * | 2017-01-31 | 2020-09-08 | Salesforce.Com, Inc. | Delegated key-level locking for a transactional multi-version key-value store |
| US11314713B2 (en) * | 2018-06-22 | 2022-04-26 | Rubrik, Inc. | Data discovery in relational databases |
| US12380086B2 (en) * | 2022-12-01 | 2025-08-05 | Huawei Cloud Computing Technologies Co., Ltd. | Method and apparatus for fine-grained hierarchical locking in a multi-master database system |
| CN119248886B (zh) * | 2024-11-28 | 2025-03-11 | 阿里云计算有限公司 | 数据管理方法及系统、计算设备、存储介质、程序产品 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63133240A (ja) * | 1986-11-25 | 1988-06-06 | Hitachi Ltd | 常駐テ−ブルの内容保証方式 |
| JPS63195755A (ja) * | 1987-02-09 | 1988-08-12 | Hitachi Ltd | 主記憶装置上の情報の内容保証方式 |
| JPH03268146A (ja) * | 1990-03-19 | 1991-11-28 | Nec Corp | 高速ファイルアクセス方式 |
| JPH04282733A (ja) * | 1991-03-12 | 1992-10-07 | Oki Electric Ind Co Ltd | データベース管理方法 |
| JPH05158778A (ja) * | 1991-12-09 | 1993-06-25 | Canon Inc | 画像情報記憶装置 |
| JPH06214848A (ja) * | 1993-01-20 | 1994-08-05 | Hitachi Ltd | データベース管理システム |
| JPH06214857A (ja) * | 1993-01-20 | 1994-08-05 | Hitachi Ltd | オンラインデータ処理装置 |
Family Cites Families (12)
| 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 |
| US4697266A (en) * | 1983-03-14 | 1987-09-29 | Unisys Corp. | Asynchronous checkpointing system for error recovery |
| US5065311A (en) * | 1987-04-20 | 1991-11-12 | Hitachi, Ltd. | Distributed data base system of composite subsystem type, and method fault recovery for the system |
| US4853843A (en) * | 1987-12-18 | 1989-08-01 | Tektronix, Inc. | System for merging virtual partitions of a distributed database |
| US4945474A (en) * | 1988-04-08 | 1990-07-31 | Internatinal Business Machines Corporation | Method for restoring a database after I/O error employing write-ahead logging protocols |
| JP2755390B2 (ja) * | 1988-05-19 | 1998-05-20 | 株式会社日立製作所 | データベース処理装置及びデータベース処理方法 |
| US5175849A (en) * | 1988-07-28 | 1992-12-29 | Amdahl Corporation | Capturing data of a database system |
| US5265245A (en) * | 1989-04-17 | 1993-11-23 | International Business Machines Corporation | High concurrency in use manager |
| US5319773A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
| US5319774A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Recovery facility for incomplete sync points for distributed application |
| US5333303A (en) * | 1991-03-28 | 1994-07-26 | International Business Machines Corporation | Method for providing data availability in a transaction-oriented system during restart after a failure |
| GB2276737A (en) * | 1993-03-30 | 1994-10-05 | Ibm | Fault-tolerant transaction-oriented data processing |
-
1994
- 1994-09-19 JP JP22293094A patent/JP3593366B2/ja not_active Expired - Fee Related
-
1995
- 1995-09-15 US US08/529,176 patent/US5778388A/en not_active Expired - Lifetime
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63133240A (ja) * | 1986-11-25 | 1988-06-06 | Hitachi Ltd | 常駐テ−ブルの内容保証方式 |
| JPS63195755A (ja) * | 1987-02-09 | 1988-08-12 | Hitachi Ltd | 主記憶装置上の情報の内容保証方式 |
| JPH03268146A (ja) * | 1990-03-19 | 1991-11-28 | Nec Corp | 高速ファイルアクセス方式 |
| JPH04282733A (ja) * | 1991-03-12 | 1992-10-07 | Oki Electric Ind Co Ltd | データベース管理方法 |
| JPH05158778A (ja) * | 1991-12-09 | 1993-06-25 | Canon Inc | 画像情報記憶装置 |
| JPH06214848A (ja) * | 1993-01-20 | 1994-08-05 | Hitachi Ltd | データベース管理システム |
| JPH06214857A (ja) * | 1993-01-20 | 1994-08-05 | Hitachi Ltd | オンラインデータ処理装置 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10133929A (ja) * | 1996-10-29 | 1998-05-22 | Mitsubishi Electric Corp | データベース更新制御方式及びその方法 |
| US7017076B2 (en) | 2003-07-29 | 2006-03-21 | Hitachi, Ltd. | Apparatus and storage system for controlling acquisition of snapshot |
| US7331000B2 (en) | 2003-07-29 | 2008-02-12 | Hitachi, Ltd. | Apparatus and storage system for controlling acquisition of snapshot |
| US7461293B2 (en) | 2003-07-29 | 2008-12-02 | Hitachi, Ltd. | Apparatus and storage system for controlling acquisition of snapshot |
| JP2016511499A (ja) * | 2013-03-15 | 2016-04-14 | アマゾン・テクノロジーズ・インコーポレーテッド | 分散型データベースシステムのシステム全体のチェックポイント回避 |
| US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
| US10331655B2 (en) | 2013-03-15 | 2019-06-25 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
Also Published As
| Publication number | Publication date |
|---|---|
| US5778388A (en) | 1998-07-07 |
| JP3593366B2 (ja) | 2004-11-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3593366B2 (ja) | デ−タベ−ス管理方法 | |
| EP3493071B1 (en) | Multi-version concurrency control (mvcc) in non-volatile memory | |
| EP3418883B1 (en) | Apparatus and method for read optimized bulk data storage | |
| US5850507A (en) | Method and apparatus for improved transaction recovery | |
| US7266669B2 (en) | File system with file management function and file management method | |
| US5287496A (en) | Dynamic, finite versioning for concurrent transaction and query processing | |
| US5280612A (en) | Multiple version database concurrency control system | |
| US5745753A (en) | Remote duplicate database facility with database replication support for online DDL operations | |
| US6647510B1 (en) | Method and apparatus for making available data that was locked by a dead transaction before rolling back the entire dead transaction | |
| US6567928B1 (en) | Method and apparatus for efficiently recovering from a failure in a database that includes unlogged objects | |
| Paxton | A client-based transaction system to maintain data integrity | |
| CN113220490B (zh) | 异步写回持久化内存的事务持久化方法及系统 | |
| JPH07175700A (ja) | データベース管理方式 | |
| JPH0812631B2 (ja) | データベース・トランザクション及び照会処理システム | |
| JPH05225019A (ja) | 複数コンピュータ・データ共用システムにおける共用記憶の障害からのデータベースの回復方法 | |
| JPH0679285B2 (ja) | トランザクション処理方法およびシステム | |
| CN110825752B (zh) | 基于无碎片回收的数据库多版本并发控制系统 | |
| JPH06318165A (ja) | 故障後の再起動中でのトランザクション適応システムにおいてデータを利用可能にする方法 | |
| US20140040208A1 (en) | Early release of transaction locks based on tags | |
| CN101339527B (zh) | 影子内存的备份方法及装置 | |
| EP0724223B1 (en) | Remote duplicate database facility with database replication support for online line DDL operations | |
| CN117389696A (zh) | 一种应用于oltp内存数据库的并行恢复方法及存储介质 | |
| Wu et al. | Dynamic finite versioning: An effective versioning approach to concurrent transaction and query processing | |
| CN118861175A (zh) | 一种数据库管理系统的数据处理方法、装置及设备 | |
| JP4139642B2 (ja) | データベース管理方法およびシステム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040127 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040326 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040817 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040830 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080903 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090903 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100903 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110903 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120903 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 9 |
|
| LAPS | Cancellation because of no payment of annual fees |