JP3593366B2 - デ−タベ−ス管理方法 - Google Patents
デ−タベ−ス管理方法 Download PDFInfo
- Publication number
- JP3593366B2 JP3593366B2 JP22293094A JP22293094A JP3593366B2 JP 3593366 B2 JP3593366 B2 JP 3593366B2 JP 22293094 A JP22293094 A JP 22293094A JP 22293094 A JP22293094 A JP 22293094A JP 3593366 B2 JP3593366 B2 JP 3593366B2
- Authority
- JP
- Japan
- Prior art keywords
- database
- page
- point acquisition
- transaction
- buffer pool
- 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
Links
Images
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/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; 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/1474—Saving, restoring, recovering or retrying in transactions
-
- 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/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)
Description
【産業上の利用分野】
本発明は、複数のトランザクションからアクセスされるデータを記憶するデータベースを管理するデータベース管理システムにおける、データベースのシンクポイント処理を行う方法に関する。
【0002】
【従来の技術】
多重処理環境におけるデータベース管理システムでは、一定間隔おきにシンクポイントあるいはチェックポイントという確認点を設けている。これは、障害が発生しデータベースの再開始回復処理を実行しなければならない場合、障害が発生した時点の直前のシンクポイントの状態にデータベースを復元し、そこから処理の再開をはかることによってデータベースの再開始回復処理を行う。シンクポイントは、更新を含むトランザクション処理の進行とは非同期に取得することができる。
【0003】
データベース管理システム、特にリレーショナル・データベース管理システムは、データベース、スキーマ、表、行といったように論理的に階層的な資源で構成される。物理的に行を格納するための不揮発性記憶装置である磁気ディスクなどの場合、行を物理的に固定長のブロックあるいはページという単位に格納する。トランザクション処理において行われるデータベースアクセスは、このページを単位として主記憶装置上に確保されたバッファプールを介して行われる。
【0004】
あるトランザクションにおいて、必要なページがバッファプールに読み込まれ、バッファプール内で検索、更新処理が行われる。バッファプールに読み込まれたページは、できるだけ長くバッファプール上に存在するように管理されることによって、磁気ディスクなどの外部記憶装置との入出力処理オーバヘッドを削減している。あるトランザクションにおいて行われたデータベースの更新処理については、その更新履歴情報をログとして取得する。ログは外部記憶装置のような不揮発性の記憶装置に永久的に記録される。ログレコードはプロセッサ内の主記憶装置上の揮発性のログバッファにまず書き込まれ、トランザクションが確定されるときに外部記憶装置上のログファイルに移される。この場合、トランザクションにおいて行われたバッファプール上のページの更新は、いずれ外部記憶装置上のデータベースに反映されなければならない。
【0005】
トランザクション確定時に、当該トランザクションによって更新されたバッファプール上の全てのページを外部記憶装置上のデータベースに反映する方法がある。この方法では、トランザクション確定時の外部記憶装置への書き込みオーバヘッドがかかる。そこで、もう一つの方法では、トランザクション確定時とは遅延させてバッファプールより更新されたページを外部記憶装置上のデータベースに反映することによって、同一ペ−ジへの複数のトランザクションの更新をまとめて外部記憶装置への書き込みを行うことで、トランザクション確定時の外部記憶装置への書き込みオーバヘッドを削減するものである。
【0006】
トランザクション確定時とよりも遅延させて外部記憶装置への書き込みを行う場合、外部記憶装置に更新されたページが書き込まれる前に障害等によりデータベース管理システムが終了してしまうとそのページの情報は失われる。この場合、システムの再開始が行われ、システムが終了した時点までに行われたトランザクションの回復を保証する必要がある。トランザクションが確定される前に障害が生じた場合は、そのトランザクションで行われたすべての更新を確実に元に戻す。また、トランザクション確定後に障害が生じた場合は、、そのトランザクションにて行われた更新をすべて保証されなければならない。
【0007】
システムの再開始時には、前回のシンクポイントより行われた全てのトランザクションを外部記憶装置上に保存されたログファイルからログレコードを読み出して回復する。ログレコードによるトランザクション回復時には、確定されたトランザクションであっても実際に更新したページについては、バッファプール上から外部記憶装置へ反映されていないことがある。その場合は、外部記憶装置上のデータベースから回復対象のページを再度バッファプール上に読み込み、ログレコードを基に更新処理を再実行(REDO)する。
【0008】
逆に、確定されたトランザクションおよび確定されていないトランザクションで行われた更新がすでにバッファプールから外部記憶装置へ反映されてしまっている場合もある。これに対応する対策としては、ページ中に更新が発生したときのログのログシーケンス番号(LSN)を持っておくことによって解決される。ページに対してあるトランザクションによって更新が行われると、そのときのログを取得するがそのログレコードのLSNを合わせてページ内に書き込んでおく。そうすると、バッファプールから更新されたページが外部記憶装置に書き込まれることによって、そのトランザクションで行った更新がどのログに対応する更新まで外部記憶装置に反映されているかがわかる。これにより、システムの再開始時に回復対象の更新ページすべてを回復する必要がなくなる。
【0009】
更新対象ページをバッファプールに読み込んだ場合、読み込んだページのLSNとログレコードのLSNを比較し、ページのLSNの方がログレコードのLSNより大きいときは、そのログレコードに記録された更新情報はすでに反映されていることになる。ということは、ページのLSNの方がログレコードのLSNより小さいときだけ、ログを使用してREDOを行えばよいということになる。データベース管理システムでは、こうした再開始時の処理時間をできる限り短時間で行うことが望ましい。そのためには、再開始処理時のREDO処理を極力削減することが望まれる。それには、通常、バッファプール上で更新されたページを適切な時期にシステムプロセスを使用して、バックグランドで外部記憶装置上のデータベースに書き込む。
【0010】
ここで、再開始処理において直前のシンクポイントから回復処理を行う場合に前提とされるのは、直前のシンクポイント時点のデ−タベ−スの状態からログを用いて回復が行えることを保証することである。そのために、シンクポイントを取得する処理では、まず、ログレコードとしてシンクポイント開始ログを取得することにより開始される。この後、トランザクションの進行を停止させ、ログバッファ上のログレコードを外部記憶装置上のログファイルに書き込む。
【0011】
ログの書き込みが終了すると、次はバッファプール上の全ての更新されたページを外部記憶装置上のデータベースに書き込む。これが終わると、シンクポイント取得完了ログをログバッファに書き込んで、停止したトランザクション処理の続行を開始してシンクポイント取得を完了する。これによって、次のシンクポイントが取得されるまでに障害等によりシステムが終了しても、今、取得したシンクポイントのデータベースの状態が保証されたので、取得したシンクポイントを起点にして再開始処理を行うことができる。
【0012】
このシンクポイント取得処理では、説明したようにシンクポイント取得が開始されるとトランザクションの進行が一時的に妨げられるので、シンクポイント取得処理中はトランザクションのスループットが一時的に沈み込むという問題がある。シンクポイント取得処理中であっても、トランザクション処理を続行できる方法としては、シンクポイント取得処理においてバッファプール中のすべての更新ページ番号と各ページのLSNをログに出力しておくことによって、シンクポイント取得を完了する方法がある。この方法では、システム再開始時に直前のシンクポイント時に取得した更新ページ番号のログから最も古いLSN探索する。そして、最も古いLSNを持つログレコードを再開始の回復起点とするものである。しかし、シンクポイント取得時にバッファプールから長い間、外部記憶装置上のデータベースに書き込まれていないページがあると、REDO対象となるログレコード数が増加することになるため、再開始処理時間を最小にするための工夫が必要となる。
【0013】
これらの従来技術は、C.Mohan,Don Haderle等の”ARIES:A Transaction Recovery Method Supporting Fine−Granulality Locking and Partial Rollbacks Using Write−Ahead Logging”,ACM Transactions on Database Systems、第17巻、第1号、pp. 94−162(1992年3月)に詳細に説明されている。さらに、特開平5−6297号公報に開示されているトランザクション処理方法およびシステムにも詳細に説明されている。
【0014】
【発明が解決しようとする課題】
本発明の目的は、シンクポイント取得処理が発生してもトラザクション処理のスループットを低下させないようにすることにある。システム再開始時における再開始処理時間の削減するための方法を提供することが関連した目的である。特に、シンクポイント取得処理の開始時点においてバッファプール中に存在した更新ページとそれ以外の非更新ページのアクセスをシンクポイント取得中でも同時にアクセスするための方法を提供することである。
【0015】
【課題を解決するための手段】
上記目的を達成するために、本発明のデータベース管理方法では、障害発生時の再開始回復処理を前提としたトランザクション処理を可能とするデータベース管理システムにおけるシンクポイントを取得する方法において、シンクポイント取得開始時に外部記憶装置上のデータベースに書き込みされていない主記憶装置上にマッピングされたバッファ中のすべての更新されたページを管理するテーブルにシンクポイント取得処理中であるマークをつける。
【0016】
シンクポイント取得処理中はマークのついたバッファ中の更新されたページをデータベースに書き込み、シンクポイント取得処理中にマークのついたバッファ中の更新されたページを更新するトランザクションは更新されたページをアクセスする前にデータベースに書き込みを行い、マークをはずした後アクセスを許可し、マークのついた更新ページをすべてデータベースに書き込みが完了した時点をシンクポイント取得完了とすることにより、シンクポイント処理中であってもトランザクション処理続行可能とすることを特徴とするデータベース管理方法によって解決される。
【0017】
【作用】
次に、第一の目的を達成するため、本発明のデータベース管理方法は、複数のトランザクションが、各々データベースをアクセスしてバッファプール上に読み込んだページに対して更新処理を行っている場合、ある時点でデータベースのシンクポイント取得時点に達すると、バッファプール上の更新されたページに対応するバッファを管理するテーブルにシンクポイント取得中であるマークをつけることにより、バックグランドでデータベースへの書き込みを行うプロセスは、該バッファプール上でシンクポイント取得中であるマークのついたバッファに対応するページを対象に外部記憶装置上のデータベースへ書き込みを行うようにする。これによって、シンクポイント取得時にログファイルへの書き込みとログに対応した更新ページのデータベースへの書き込みを同期することができる。
【0018】
シンクポイント取得中に、該マークのついたバッファに格納されたページに対するアクセス要求は、一旦バッファプール上から外部記憶装置上のデータベースに対して書き込みを行ってから、アクセスを許可するようにする。これによって、シンクポイント取得中であっても、トランザクションを停止させることなく、システムとしてのスループットを低下させることがない。
【0019】
【実施例】
以下、本発明の一実施例を図面を用いて具体的に説明する。
図2は、本発明の一実施例にかかるコンピュータシステム10の構成を示す。コンピュータシステム10は、CPU12、主記憶装置14、磁気ディスク等の外部記憶装置16及び多数の端末18で構成される。主記憶装置2上には、データベース管理システム20が置かれ、外部記憶装置16上にはデータベース管理システム20が管理するデータベース36a、36b及びデータベース更新に関する更新履歴情報であるログファイル37が格納される。
【0020】
データベース管理システム20は、ユーザからのデータベース問い合わせ要求である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を使用する。
【0021】
図3は、先に述べたデータベースの入出力単位であるページ40の構造を示す。データベース管理システム、特にリレーショナルデータベース管理システムではデータは複数の行からなるリレーションと呼ばれる表形式を成している。リレーションは、データベース管理システム20の入出力単位である物理的に固定長の複数のページに分割され、外部記憶装置16のデータベース36に格納されている。ページ40には行が格納され、ページ内の状態はページ内制御情報42で管理され、格納された行1〜行6は各々ページ内の相対アドレスを持っているスロット領域44によりポイントされている。
【0022】
図4は、図3に示したページ内制御情報42に含まれる管理情報を示す。ページ内制御情報42には、ページ内に割り当てられたスロット数である割当スロット数421、実際に格納されている行に使用されたスロット数である使用スロット数422、ページ内の空き領域長を管理する空き領域長423、ページ内の未使用領域の先頭を相対アドレスで管理する未使用領域先頭オフセット424及びページ内で行われた更新を反映したログのLSN425で構成される。このLSN425は、データベース36からバッファプール34に読み込まれた時に設定されているLSN425が実際にそのLSN425までのログがすべて反映されていることを示す。逆に、バッファプール34上で行われたページ上の行に対する更新が行われると、その更新に対応したログのLSNが書き込まれ、バッファプール34からデータベース36に書き込まれた時には、そのLSNが示す更新はデータベースに反映したことが保証される。もちろん、バッファプール34からデータベース36に書き込まれる前に、一般的に良く知られるWAL(Write Ahead Logging)プロトコルによりログがログファイル37に書き込まれることは言うまでもない。
【0023】
図5にバッファプール管理部23がデータベース36との入出力を行うためのバッファプール34を管理する各テーブルの関連を示す。バッファプール管理テーブル31は、ハッシュ管理テーブル33及びページ管理テーブル32を管理している。バッファプール管理テーブル31は、図6に示すような情報を持つ。バッファプール34が持つページを格納するバッファ面数311、ハッシュ管理テーブル33へのポインタ312、できるだけバッファプール上にページを留めるように管理するための手法であるLRU(Least Recently Used)アルゴリズムに基づいたLRUチェインの最も新しいページを管理するページ管理テーブル32へのポインタ313、逆に最も使用されていない古いページを管理するページ管理テーブルへのポインタ314、前記LRUチェインとは別に更新されたページについてのLRUチェインを管理するための最も新しいページを管理するページ管理テーブル32へのポインタ315、逆に、最も使用されていない古いページを管理するページ管理テーブルへのポインタ316、ページ管理テーブル32が管理するページに対応したバッファが無効状態である。すなわち、FREE状態であるページ管理テーブルのポインタ317、バッファプール34上に存在する更新ページ数318及び遅延書き込み状態を示すフラグ319から成る。
【0024】
次に、図6にページ管理テーブル32の情報について示す。ページ管理テーブル32には、記憶したページのオブジェクト識別子321、バッファ番号322、LRUチェイン又はFREEチェインに接続された場合の前方ポインタ323と後方ポインタ324、ハッシュチェインに接続された場合の前方ポインタ325と後方ポインタ326、ページ番号327、ロックカウンタ328、排他モードでページを入力した状態を示すXGETフラグ329、出力要求フラグ330、データベースからの読み込み中である状態を示す入力中フラグ331、データベースへの書き込み中である状態を示す出力中フラグ332、データベースからの入出力待ち状態である場合の入出力待ちチェイン333、ロック待ちチェイン334、及び本発明の特長であるシンクポイント取得時の出力対象ページとなったことを示すシンクポイント取得中フラグ335で構成される。
【0025】
図5を用いて、各テーブルの関連について説明する。バッファプール管理テーブル31からハッシュ管理テーブル33へは、ハッシュ管理テーブルポインタ312でポイントされ、ハッシュ管理テーブルはデータベースを構成するページ番号からハッシングすることによって該当するハッシュエントリにそのページを管理するページ管理テーブル32が接続される。例えば、ハッシュエントリ1には同じハッシュ値を持つページ管理テーブル32a及び32bが接続される。バッファプール管理テーブル31のLRUチェインにはページ管理テーブル32上の出力要求フラグ330が出力要求状態でないものがチェインされ、ページ管理テーブル32c、及び32fがチェインされている。バッファプール管理テーブル31の更新LRUチェインにはページ管理テーブル32上の出力要求フラグ330が出力要求状態のものがチェインされ、ページ管理テーブル32d、及び32hがチェインされている。また、FREEチェインにはページ管理テーブル32i、及び32jがチェインされており、バッファプール管理部23はバッファプール上に存在しないページを入力する場合、このFREEチェイン317のページ管理テーブル32を割り当て、当該ページ管理テーブルに対応したバッファにページを入力する。
【0026】
ここで、本発明に関わるトランザクション処理について図8から図11を用いて説明する。図2における端末18からトランザクションが投入されるとトランザクション管理部24はトランザクション開始処理を行う。トランザクション開始処理の概略処理フローを図8に示す。トランザクションが開始されると、まず、トランザクション管理テーブルを当該トランザクション用に割り当て、初期化する(ステップ52)。当該テーブルにはトランザクション番号、トランザクション開始ログのLSN及びカレントな当該トランザクションのLSNなどが格納される。
【0027】
次に、トランザクション開始ログを作成し、ログ書き込み処理部27にログの出力要求を発行し、主記憶装置14上のログバッファ35に出力し、データベース管理システム内の一貫したLSNを割り振り、LSNを取得する(ステップ54)。取得したLSNを当該トランザクションのトランザクション管理テーブルのトランザクション開始ログとして登録する(ステップ56)。こうして、トランザクション開始処理が完了すると、データベースに対する質問処理が実行される。データベースに対する質問処理のうち、更新処理が行われた場合の概略処理フローを図9に示す。当該データベース管理システムが行レベルの排他制御を行うデータベース管理システムの場合、更新対象となった行に排他モードでロックを取得する(ステップ61)。更新対象行にロックを確保できたならば、バッファプール管理部23に対して更新対象行が記憶されているページを排他モードでページ入力要求を発行する(ステップ62)。
【0028】
そして、更新対象行への更新操作を行う前に更新操作を回復するためのUNDOログを作成し、ログ書き込み処理部27に対し書き込み要求を発行するとともにUNDOログのLSNを取得する(ステップ63)。UNDOログが取得できたら、行の更新操作を行う(ステップ64)。そして、更新した行に対する再実行による回復のためのREDOログを出力し、REDOログのLSNを取得する(ステップ65)。取得したREDOログのLSNをページ内制御情報42のLSN425に書き込み、更新する(ステップ66)。REDOログのLSNを更新した後、当該ページに対する更新をデータベースに反映するため、バッファプール管理部23に対してページ出力要求を行う(ステップ68)。
【0029】
ただし、当該要求は直ちにデータベース16に書き込まれるのではなく、当該ページを管理するページ管理テーブル32の出力要求フラグ330を出力要求状態に設定するのみとする。出力要求状態に設定することで、当該バッファプールの置換アルゴリズムにしたがって、バッファスチール(他のページを入力するためにデータベースに強制的に書きだす)されるか、遅延書き込み処理部25によって非同期にデータベース16に書き込まれるまで、主記憶装置14上のバッファプール34上に置かれる。次に、トランザクション内で行ったデータベースへのアクセス処理が終わるとトランザクションを有効なものとするために2フェーズに分けてトランザクションを完結させる。
【0030】
まず、図10にトラザンクションのPREPARE処理フェーズについて説明する。まず、トランザクションのPREPAREログをログバッファに書き込む(ステップ72)。次いで、当該PREPAREログをログファイル37に強制出力する(ステップ74)。PREPAREフェーズが終わるとトランザクションを正常に終了させるためにCOMMITフェーズに入る。COMMITフェーズの処理概略フローを図11に示す。トランザクションCOMMITログをログバッファに出力する(ステップ82)。COMMITログをログファイル37に強制出力する。これにより、トランザクションが確約できたので当該トランザクションで取得したすべての排他資源に対するロックを解放する(ステップ84)。COMMITされたトランザクションは、トランザクション実行時に割り当てられたトランザクション管理テーブルが不要となるため、システム内のアクティブトランザクション表から当該COMMITされたトランザクションを取り除くとともにトランザクション管理テーブルを解放する(ステップ86)。
【0031】
次に、本発明に関わるシンクポイント取得処理について、概略処理フローを図1を用いて説明する。シンクポイントの設定の目的は、システムが障害により停止してしまったとしても確実にシステムすなわちデータベースを回復でき、システムを存続できることを確かなものにすることである。また、シンクポイントを設定することによってデータベースの回復時のREDOの必要なログの使用を小さくさせることにもある。シンクポイントを取得するタイミングは、システムインプリメンテーションによって様々であるが、定期的に何らかのアクションによって実施される。
【0032】
例えば、ログファイルへのログの出力回数が一定の回数に達した時点によってシンクポイントを取得する方法がある。この場合、シンクポイント取得のトリガを与えるのはログ書き込み処理部27である。まず、シンクポイント取得処理部26にシンクポイント取得処理要求が渡されると、シクポイント取得開始ログを作成し、ログバッファに書き込む(ステップ251)。次にシンクポイント取得開始時点でのバッファプールの物理的整合性を一時的に保証するためにロックを確保する(ステップ252)。当該ロックは、ラッチと呼ぶことも有り、データベースの論理的な整合性を保証するために用いるロックとは異なり、一般のロックよりも保持時間が短い。バッファプールのロックを確保できたならば、当該ロックが解放されるまでの間はトランザクショによるバッファプールへのアクセスは一時的に待たされる。
【0033】
次にバッファプール34中に存在するすべてのページのページ管理テーブルを走査し、出力要求フラグ330が出力要求状態になっているページについてシンクポイント取得中フラグ335をシンクポイント取得状態に設定する(ステップ253)。ステップ253と同時にシンクポイント取得においてデータベース16へ書き込む対象となるページを管理するページ管理テーブルリスト38を作成する(ステップ254)。
【0034】
図12に出力対象ペ−ジ管テ−ブルリスト38の構成を示す。出力対象ペ−ジ管理テ−ブルリスト38には、当該リスト作成時にリストに登録されたバッファプ−ル34中の対象ペ−ジのペ−ジ管理テ−ブル32のアドレス382aから382dとその出力対象ペ−ジ数であるシンクポイント出力ペ−ジ数カウンタ381で構成される。登録されたリストの最後には、次の出力対象ペ−ジ管理テ−ブルがないことを示す情報328eとして0を設定する。そして、作成された出力対象ペ−ジ管理テ−ブルリスト38の当該リストが作成された時点でシンクポイント出力ペ−ジ数カウンタ381が決定される(ステップ255)。当該カウンタは、セマフォにより実現されていてもよい。
【0035】
当該シンクポイントでデータベースへの書きだしを行うページが確約されたので直ちにバッファプールのロックを解放する(ステップ256)。当該バッファプ−ルのロック期間中には、一切の外部記憶装置との入出力処理を行わないのでCPU処理だけの短いロック時間となる。これにより、バッファプールへのロック待ちとなっていたトランザクションの処理が続行可能となる。そして、作成された出力対象のページ管理テーブルリストに基づいて当該シンクポイントで出力すべきページを遅延書き込み処理部25に対して要求しデータベースへの出力を開始する(ステップ257)。
【0036】
シンクポイントにおいて出力対象となったすべてのページの出力が完了したか否かは、前記シンクポイント出力ペ−ジ数カウンタ381が0になったかどうかによって決定される(ステップ258)。したがって、シンクポイント出力ペ−ジ数カウンタ381が0になるまで当該処理は待ち状態となる。これは、シンクポイント出力対象ペ−ジの書き込み処理中に他のトランザクションによって書き込み処理が行われることがあるため、他のトランザクションによって書き込み処理が行われ、シンクポイント出力ペ−ジ数カウンタ381をカウントダウンして0になるまで同期を取る必要があるからである。シンクポイントにおいて出力対象となったすべてのページの出力が完了すると、すなわちシンクポイント出力ペ−ジ数カウンタ381が0になると待ち状態が解除されるので、シンクポイント取得完了ログを作成し、ログバッファに書き込むと同時にログファイルへの書き込みが強制される(ステップ259)。
【0037】
シンクポイント取得処理が完了した時点で、当該シンクポイントをカレントな有効シンクポイントとするため当該シンクポイント開始ログのLSNをカレント有効シンクポイントとする(ステップ260)。この有効シンクポイントのLSNは外部記憶装置16のような不揮発な記憶装置に格納されることが望ましい。つまり、システムがこの後、障害や故障によりシステムが停止しても、システムの再開始時にこの有効シンクポイントのLSNを読み出して、当該LSNを起点としてデータベースの回復が行えるようになる。次に、図1で示したステップ257のシンクポイント出力対象ページの書き込み処理の処理が概略フローを図13を用いて説明する。
【0038】
先ず、出力対象となった出力対象ページ管理テーブルリスト38の先頭アドレスにカレントポジション(以下、CPと略す)を設定する(ステップ2561)。次に、当該CPの指すページ管理テーブルのアドレスが0か否かを判定し、0すなわちすべての出力対象ページのデータベースへの書き込みが完了したか出力対象ページがない場合は当該出力処理を終了する(ステップ2562)。以降、出力対象ページが存在する間、以下の処理を繰り返す。まず、ページ管理テーブル32のロックカウンタ328をチェックし、ロックカウンタ328が0以上ならば当該出力処理の対象からはずし、当該ページを使用中のトランザクションによって出力を強制するようにする。ロックカウンタ328が0の場合、バッファプールにロックを確保する(ステップ2564)。そして、出力中フラグ332を出力中状態に設定することによってデータベース16への書き込みが完了するまで他のトランザクションによる参照を待たせる(ステップ2565)。
【0039】
次に、ロックカウンタ328が0ということは更新LRUチェインに接続されているということであるので、更新LRUチェインから切り離し、参照LRUチェインの先頭に接続する。さらに、出力要求フラグ330をOFFにする(ステップ2567)。本処理が完了するとバッファプールのロックを解放する(ステップ2568)。そして、データベース16への書き込み処理を行う(ステップ2569)。データベース16への書き込みが完了した時点で出力中フラグ332をOFFにする(ステップ2570)。出力が完了するまでの間にトランザクションから参照された場合には入出力待ちチェイン333に参照したトランザクションが登録されているので、登録されたすべてのトランザクションをアクティブにするための同期制御処理を行う(ステップ2571、2572)。こうして、一つのページの処理が終了するとCPを次のページ管理テーブルリストのアドレスに更新する。当該出力処理によって、シンクポイント取得開始ログ以前のすべてのログに対応した更新がデータベースに反映されることになる。
【0040】
シンクポイント取得処理によって選択された出力対象ページが出力処理の対象からはずされたページについては、バッファプール管理部23がトランザクションの処理によって確実にデータベース16に書きだされることを保証している。つまり、出力対象となったページを管理するページ管理テーブル32にはシンクポイント取得中フラグ335が設定されたままの状態になっており、トランザクションによって当該シンクポイント取得中フラグ335が設定されているページを使用する場合あるいは使用を終了する場合にデータベース16への出力を強制することによってトランザクション処理を止めることなく確実にシンクポイント取得処理が行われる。バッファプール管理部23においてどのようにシンクポイント出力対象ページがデータベース16に書きだされているかを図14から図19を用いて説明する。
【0041】
図14は、トランザクション内で行われたデータベースに対する更新処理において図9のステップ67で示した更新対象行格納ページ出力要求処理のバッファプール管理部23における処理フローを示す。まず、バッファプールにロックを確保する(ステップ401)。次にページ管理テーブル32の出力要求フラグ330がONであるかどうかチェックし(ステップ402)、ONならばさらにシンクポイント取得中フラグ335がONか否かをチェックし(ステップ403)、ONということは当該ページがシンクポイント取得中であるので当該トランザクションによってデータベース16への書き込みを強制される必要がある。
【0042】
まず、出力要求フラグ330をOFFにし(ステップ404)、参照LRUチェインの先頭に接続する(ステップ405)。そして、出力中フラグ332をONにし(ステップ406)、ロックカウンタ328を0にし(ステップ407)、この時点でバッファプールのロックを解放する(ステップ408)。バッファプールのロックを解放したら、直ちにデータベース16への書き込みを行う(ステップ409)。データベース16への書き込みが完了した時点で出力中フラグ332をOFFにする(ステップ410)。シンクポイント取得時の対象となったペ−ジをデ−タベ−ス36に書き込みを行ったのでシンクポイント出力ペ−ジ数カウンタ381から1を減ずる(ステップ411)。出力が完了するまでの間に他のトランザクションから参照された場合にはロック待ちチェイン334に参照したトランザクションが登録されているので、登録された先頭のトランザクションをアクティブにするための同期制御処理を行う(ステップ412、413)。また、ステップ402で出力要求フラグ330がOFFの場合は、出力要求フラグ330をONにし(ステップ414)、更新LRUチェインの先頭に接続し(ステップ415)、ロックカウンタ328を0に設定し(ステップ416)、バッファプールのロックを解放する(ステップ417)。そして、ステップ412に進み、ロック待ちチェインがあれば同期制御処理を行う。
【0043】
図15は、トランザクション内で行われたデータベースに対するアクセスにおいてページの入力要求処理のバッファプール管理部23における処理フローを示す。基本的に要求されたページがバッファプール上に存在すればデータベース16からの読み込み無しで入力処理が完了し、バッファプール上に存在しない場合はデータベース16からの入力処理を伴う。その際、バッファプール上にページが存在し、ページ入力要求モードが排他モードの場合でかつシンクポイント取得中フラグ335がONになっているページについてはあらかじめデータベース16への書き込みを強制した後、入力要求処理を満たすようにする。
【0044】
まず、バッファプール34にロックを確保し(ステップ501)、バッファプール34上に目的のページが存在するか否かをハッシュ管理テーブル33を使用してサーチする(ステップ502)。目的のページがバッファプール34上に存在したならばページロックモードの種別によって処理を振り分ける(ステップ503、504)。ページロックモードが共用モード(Sモード)ならば、共用モード入力処理を行い(ステップ505)、ページロックモードが排他モード(Xモード)ならば排他モード入力処理を行う(ステップ506)。目的のページが存在しない場合は空きバッファが有るか否かをバッファプール管理テーブル31のFREEチェインポインタ317によりチェックし(ステップ507)、FREEチェインポインタ317に接続されたバッファが存在する場合は当該FREEチェインに接続されたページ管理テーブル32を割り当てる(ステップ508)。FREEチェインポインタ317に該当するページ管理テーブル32が接続されていない場合は、参照LRUチェイン及び更新LRUチェインより最も使用されていないページ管理テーブルをスチールの対象とし、目的ページ入力用のバッファとして割り当てる(ステップ509)。
【0045】
こうして、割り当てらたバッファのページ管理テーブル32の入力中フラグ331を入力中状態に設定するためONにし(ステップ510)、ロックカウンタ328に1を設定し(ステップ511)、バッファプールのロックを解放する(ステップ512)。この場合、ページロックモードが排他モードの場合はXGET中フラグ329もONに設定する。そして、目的のページをデータベース16から読み込み(ステップ513)、読み込みが完了すると直ちに入力中フラグ331をOFFにするとともに入出力待ちチェインあるいはロック待ちチェインに登録されているトランザクションがあれば同期制御処理を行う(ステップ514、515、516)。
【0046】
次に、ページロックモードが共用モードの場合の入力処理の処理フローを図16に示す。まず、ロックカウンタ328が0か否かをチェックし(ステップ601)、0ならば参照LRUチェイン又は更新LRUチェインに存在することになる。出力要求フラグ330がONか否かをチェックし(ステップ602)、ONならば更新LRUチェインに存在するので更新LRUチェインから切り離す(ステップ603)。出力要求フラグ330がOFFならば参照LRUチェインに存在するので参照LRUチェインから切り離す(ステップ604)。そして、ロックカウンタ328に1を設定し(ステップ605)、バッファプールのロックを解放する(ステップ607)。
【0047】
また、ステップ601によりロックカウンタ328が0でない場合、すなわちすでに他のトランザクションが使用中の場合は、ロック待ちチェイン334に登録されているトランザクションが存在するか、又は当該ページのロックモードが排他モードで使用中であることを示すXGETフラグがONになっているか否かをチェックし(ステップ607)、いずれかの条件を満たす場合、ロック待ちチェイン334の最後尾に当該入力要求トランザクションを登録し(ステップ609)、一旦バッファプールのロックを解放し(ステップ609)、当該ロック待ち状態から解放されるのを同期制御処理によって待つ(ステップ610)。ステップ607の条件をいずれも満たさない場合、すなわち、共用モードで使用中のページの場合は、ロックカウンタ328を1増やし(ステップ611)、入出力中フラグがONか否かをチェックし(ステップ612)、データベース16からの入力中の場合は、入出力待ちチェイン333に当該トランザクションを登録し(ステップ613)、一旦バッファプールのロックを解放した後(ステップ614)、当該入出力が完了し、当該トランザクションをアクティブ状態にしてくれるまで待つ同期制御処理を行う(ステップ615)。ステップ612で入出力状態でない場合は、直ちにバファプールのロックを解放することによって処理を終了する(ステップ616)。
【0048】
次に、ページロックモードが排他モードの場合の入力処理の処理フローを図17に示す。まず、ロックカウンタ328が0か否かをチェックし(ステップ701)、0ならば参照LRUチェイン又は更新LRUチェインに存在することになる。出力要求フラグ330がONか否かをチェックし(ステップ702)、ONならば更新LRUチェインに存在するので更新LRUチェインから切り離す(ステップ703)。出力要求フラグ330がOFFならば参照LRUチェインに存在するので参照LRUチェインから切り離す(ステップ704)。そして、ロックカウンタ328に1を設定する(ステップ705)。
【0049】
そして、ロックモードが排他モードであるのでXGETフラグ329をONにし、入力中フラグ331がONか否かをチェックし(ステップ707)、データベース16からの入力中の場合は入出力待ちチェイン333に当該トランザクションを登録し(ステップ708)、一旦バッファプールのロックを解放した後(ステップ709)、当該入出力が完了し、当該トランザクションをアクティブ状態にしてくれるまで待つ同期制御処理を行う(ステップ710)。ステップ707で入出力状態でない場合は、シンクポイント取得中フラグ335がONか否かチェックし(ステップ714)、ONの場合は出力中フラグ332をONにし(ステップ715)、一旦バッファプールのロックを解放する(ステップ716)。
【0050】
そして、目的のページをデータベース16へ書き込みを強制し(ステップ717)、書き込み完了後、出力中フラグ332をOFFにし(ステップ718)、さらにシンクポイント取得中フラグ335及び出力要求フラグ330をOFFにする。また、シンクポイント取得の出力対象ペ−ジをデ−タベ−ス36に出力したのでシンクポイント出力ペ−ジ数カウンタ381を1減ずる(ステップ719)。入出力待ちチェインに登録されているトランザクションがあれば同期制御処理を行う(ステップ720、721)。ステップ714によりシンクポイント取得中フラグ335がOFFの場合は直ちにバッファプールのロックを解放する(ステップ722)。
【0051】
図18は、トランザクションにおいてアクセスしたページの使用が終わった場合にページのロックを解放する処理の処理フローを示す。まず、バッファプールのロックを確保する(ステップ801)。次にシンクポイント取得中フラグ335がONで有るか否かをチェックし(ステップ802)、ONの場合は出力中フラグ332をONにし(ステップ803)、一旦バッファプールのロックを解放する(ステップ804)。そして、当該ページをデータベース16へ書き込む(ステップ805)。データベース16への書き込みが完了するとページ管理テーブル32内の出力中フラグ332、シンクポイント取得中フラグ335、及び出力要求フラグ330をOFFにする。また、シンクポイント取得の出力対象ペ−ジをデ−タベ−ス36に出力したのでシンクポイント出力ペ−ジ数カウンタ381を1減ずる(ステップ806)。
【0052】
次に、もしこのデータベースへの書き込み最中に当該ページへのアクセスが行われた場合には入出力待ちチェイン333に登録されているトランザクションをアクティブにするための同期制御処理を行った後(ステップ807、808)、バッファプールのロックを再度確保する(ステップ809)。次に、ステップ802においてシンクポイント取得中フラグ335がOFFの場合、あるいはONの場合にデータベース16への書き込みが終了するとロックカウンタ328を1減らし(ステップ810)、ロックカウンタ328が0でかつXGETフラグ329がONの場合はXGETフラグ329をOFFにする(ステップ811、812、813)。
【0053】
そして、出力要求フラグ330がONの場合は更新LRUチェインへ接続し、出力要求フラグ330がOFFの場合は参照LRUチェインへ接続する(ステップ814、815、816)。ステップ811においてロックカウンタ328が0でない場合、すなわち他にまだ使用中のトランザクションがいる場合とLRUチェインに接続している最中にロック待ちチェイン334に登録されたトランザクションがある場合は、そのトランザクションのロック待ちを解除するための同期制御処理を行い、バッファプールのロックを解放する(ステップ817、818、819)。
【0054】
図19は、トランザクションにおいてアクセスしたページが不要になった場合に、当該ページを管理するページ管理テーブルをFREEチェインへ登録する処理の処理フローを示す。まず、バッファプールのロックを確保する(ステップ901)。次にシンクポイント取得中フラグ335がONで有るか否かをチェックし(ステップ902)、ONの場合は出力中フラグ332をONにし(ステップ903)、一旦バッファプールのロックを解放する(ステップ904)。そして、当該ページをデータベース16へ書き込む(ステップ905)。データベース16への書き込みが完了するとページ管理テーブル32内の出力中フラグ332、シンクポイント取得中フラグ335、及び出力要求フラグ330をOFFにする。また、シンクポイント取得の出力対象ペ−ジをデ−タベ−ス36に出力したのでシンクポイント出力ペ−ジ数カウンタ381を1減ずる(ステップ906)。
【0055】
次に、もしこのデータベースへの書き込み最中に当該ページへのアクセスが行われた場合には入出力待ちチェイン333に登録されているトランザクションをアクティブにするための同期制御処理を行った後(ステップ907、908)、バッファプールのロックを再度確保する(ステップ909)。次に、ステップ802においてシンクポイント取得中フラグ335がOFFの場合、あるいはONの場合にデータベース16への書き込みが終了するとロックカウンタ328を0に設定する(ステップ910)。
【0056】
さらに、XGETフラグ329及び出力要求フラグ330をOFFにする(ステップ911、912)。FREEチェインに接続する前にロック待ちチェイン334に登録されたトランザクションがある場合は参照LRUチェインに接続するようにし、そのトランザクションのロック待ちを解除するための同期制御処理を行う(ステップ913、914、915)。ステップ913においてロック待ちチェイン334に登録されているトランザクションがない場合は、バッファプール管理テーブル31のFREEチェインに当該ページ管理テーブル32を接続し、ハッシュチェインからも切り離す(ステップ917、918)。これらの処理が終了するとバッファプールのロックを解放する(ステップ916)。
【0057】
以上、本発明を実施例に基づき具体的に説明したが、本発明により構成されたデータベース管理システムがトランザクション処理を始めた場合、システムのスループット、すなわち単位時間当たりのトランザクション処理量を時間の経過で示すと図20のような効果になる。トランザクションが一様に投入された場合のシステムのスループットを示したものであり、ある一定間隔においてシンクポイントが発生してもスループットの低下は見られない性能効果が得られる。
【0058】
次に、本発明の効果をさらに引き出すための実施例について説明する。前述した実施例では、シンクポイント取得開始時点のバッファプール上の更新ページをシンクポイント取得時にデータベースの整合性を保証するようにする処理について説明したが、通常シンクポイント間隔では図2に示した遅延書き込み処理部25がバッファプール上の更新ページ数を基に非同期にデータベースへの書き込みを行っているので、シンクポイント取得時点になるべくバッファプール上の更新ページ数が少なくなるように制御されている。
【0059】
しかし、図23の(a)を見てわかるようにシンクポイント取得時点の更新ページ数がバッファプール全体に閉める割合が大きい場合には、データベースへ書き出すページ数が増加するためシンクポイント取得に要する処理時間が長くなってしまうことがある。これは、通常シンクポイント間隔で行われる遅延書き込みの頻度を多くする、すなわちバッファプール全体に占める更新ページ数の比率を小さい値に設定することによって、その水準に達した時点で遅延書き込みを起動する方法が考えられる。ここでは、他の方法としてシンクポイント取得開始時点までに、あらかじめ遅延書き込み処理を利用してバッファプール中の更新ページをできるだけ多くデータベースに書き出すためのプレシンクポイントを行う処理の実施例を示す。
【0060】
図21は、図2におけるログ書き込み処理部27において実施されるログファイル37への書き込み回数をシンクポイント間隔としてプレシンクポイント及びシンクポイントを取得する処理の制御を行う処理の概略フロ−を示す。トランザクションのコミットやロ−ルバックにおいてログバッファ35に書き込まれたログをログファイル37に強制出力する場合、まず、ログファイル37への書き込みを行う(ステップ2710)。ログファイル37への書き込みが終了すると、シンクポイント間隔を制御するためのログ出力回数を1増やす(ステップ2712)。
【0061】
そして、ログ出力回数がプレシンクポイント取得点に到達したか否かを比較し(ステップ2712)、プレシンクポイント取得点に到達した場合は、バッファプ−ルにロックを確保し(ステップ2716)、バッファプ−ル管理テ−ブル31の遅延書き込み中フラグ319をONにする(ステップ2718)。遅延書き込み中フラグ319をONにすると、バッファプ−ルのロックを解放し(ステップ2720)、プレシンクポイント取得処理に制御を渡す(ステップ2722)。ステップ2714により、プレシンクポイント取得点に達していないか、あるいは通過した場合は、シンクポイント取得点に達したか否かを比較する(ステップ2724)。プレシンクポイントに達した場合は、さらに遅延書き込み中フラグ319がONか否かをチェックする(ステップ2726)。遅延書き込み中フラグ319がONの場合は、まだプレシンクポイント取得処理が完了していないので、プレシンクポイント取得処理を直ちに停止させる要求をプレシンクポイント取得処理を行っているプロセスに通達する(ステップ2728)。この方法は、シグナルやセマフォなどによって実現される。
【0062】
プレシンクポイント取得処理が停止するか、あるいはすでに終了していた場合にはシンクポイント取得処理に制御を渡す(ステップ2730)。シンクポイント取得処理が終了すると、ログ出力回数を0にクリアする(ステップ2732)。次に、プレシンクポイント取得処理の処理フロ−を図22を用いて説明する。プレシンクポイント取得処理では基本的にバッファプ−ル管理テ−ブル31の更新LRUチェインに登録されたペ−ジを対象にデ−タベ−ス36への書き込みを行う。あらかじめ、プレシンクポイント取得点における更新LRUチェイン中のペ−ジのLSN425を参照し、最も最新のLSNをプレシンクポイント取得時の最大LSNとして記憶しておく。
【0063】
まず、更新LRUチェインの先頭アドレスすなわち最も古い更新ペ−ジを管理しているペ−ジ管理テ−ブルのアドレスをカレントポジション(以下、CPと略す)に設定する(ステップ2740)。CPの指すペ−ジ管理テ−ブル32が管理するペ−ジのLSN425をプレシンクポイント取得時の最大LSNと比較し(ステップ2741)、CPの指すペ−ジ管理テ−ブル32が管理するペ−ジのLSN425の方が小さい間、プレシンクポイント取得処理のデ−タベ−ス36への出力対象ペ−ジとして処理を行う。
【0064】
次に、プレシンクポイント取得処理中にシンクポイント取得点に達した場合は、プレシンクポイント取得停止要求が発行されていることがあるため、プレシンクポイント取得停止要求が発行されたか否かをチェックし(ステップ2742)、プレシンクポイント取得停止要求が発行されていない場合は、プレシンクポイント取得処理を継続する。まず、バッファプ−ルにロックを確保する(ステップ2743)。そして、出力中フラグを出力中状態に設定することによってデ−タベ−ス26への書き込みが完了するまで他のトランザクションによる参照を待たせる(ステップ2744)。
【0065】
次に、更新LRUチェインから切離し、参照LRUチェインに登録する(ステップ2745)。そして、出力要求フラグ330をOFFにする(ステップ2746)。本処理が完了するとバッファプ−ルのロックを解放する(ステップ2747)。そして、デ−タベ−ス16への書き込みを行う(ステップ2748)。デ−タベ−ス16への書き込みが完了した時点で出力中フラグ332をOFFにする(ステップ2749)。デ−タベ−ス16への書き込みが完了するまでの間にトランザクションから参照された場合には入出力待ちチェイン333に参照したトランザクションが登録されているので、登録されたすべてのトランザクションをアクティブにするための同期制御処理を行う(ステップ2751、2752)。ステップ2741、2742によって、プレシンクポイント取得処理が終了したか、プレシンクポイント取得停止要求を受け付けた場合は、プレシンクポイント取得処理の終了処理として遅延書き込み中フラグ319をOFFにする。
【0066】
プレシンクポイントを設けた場合の性能効果について図23に示す。プレシンクポイント取得時点は、シンクポイント間隔の設定方法としてログの出力回数を使用する場合にはログ出力回数がある一定数に達した時点とする。シンクポイント間隔の設定方法は、ログの出力回数のみではなく他の別の実施方法であってもよい。例えば、一定時間で設定されるようなシンクポイント間隔ならばその一定時間に達する前のある時間に達した時点をプレシンクポイント取得時点とすることができる。
【0067】
本実施例では、シンクポイント間隔をログの出力回数によって設定される場合について述べる。この場合、プレシンクポイント取得開始のトリガを与えるのは図2におけるログ書き込み処理部27である。ログ書き込み処理部27は、トランザクションからのログの書き込み要求に応じてログバッファ35にキャッシュし、ログバッファ35が満杯になるか、トランザクションのコミット、ロールバック時点によってログファイル37への書き出しが強制される。その場合、ログファイル37への出力回数を主記憶装置上に記憶しておき、シンクポイント間隔のある一定数に達した時点で遅延書き込み処理部25に制御を渡す。
【0068】
例えば、シンクポイント間隔が1000であった場合、ログファイルへの出力回数が1000に達した時点がシンクポイント取得時点となり、プレシンクポイントはその80%の800に達した時点とするようにする。通常、遅延書き込み処理では、バッファプール中の更新ページ数がある一定数に達するとデータベースへの書き込みを開始するが、すべての更新ページがデータベースへ書き出されるのではなく、一定のページ数に留めることが多い。しかし、プレシンクポイント取得時点では、その時点に存在するバッファプール上のすべての更新ページをデータベースに書き出す。そうすると、図20の(b)及び(c)のようにシンクポイント取得時点までにバッファプール上のほとんどの更新ページが書き出されるようになる。
【0069】
理想的には、シンクポイント取得時点にバッファプール上の更新ページ数が0になることが望ましいが、通常(b)のようにプレシンクポイントで更新ページをデータベースに書き出す処理を行ってもシンクポイント取得時点までに全てのページを書き出せないことがある。その場合は、残った更新ページをシンクポイント取得処理にてデータベースへの書き出しを行うようになる。また、逆に(c)のようにプレシンクポイントでバッファプール上の更新ページを全てデータベースに書き出せたが、シンクポイント取得時点に達しない場合もある。その場合は、シンクポイント取得時点に存在するバッファプール上の更新ページがシンクポイント取得時点でのデータベースへの書き出し対象ページとなる。
【0070】
プレシンクポイントの取得開始点は、図20の(b)、(c)のようにシンクポイント取得開始時点での更新ページ数を残さないようにするため、シンクポイント取得開始時にプレシンクポイント取得が完了したか否かを記憶しておき、プレシンクポイント取得が完了していない場合はデータベースへ書き込みができなかった更新ページ数からプレシンクポイント取得開始点を早くするようにし、プレシンクポイント取得がすでに完了している場合は、シンクポイント取得時に存在した更新ページ数からプレシンクポイント取得開始点を遅くするようにプレシンクポイント取得開始点を補正し、次のシンクポイントのプレシンクポイント取得開始点とする処理を行う。
【0071】
【発明の効果】
以上、説明したように、本発明によれば、データベース管理システムにおいてシンクポイント取得開始時にバッファプール上に存在するすべての更新ページにマークをつけるだけで、そのマークのついた更新ページをデータベースへの書き込み対象とするため、シンクポイント取得中であってもトランザクション処理を全く停止させることなく入出力処理を可能にするので、シンクポイント取得中のトランザクション処理量が0になることがない。また、プレシンクポイント処理を行うことにより、シンクポイント取得時点のバッファプール上に存在する更新ページ数を削減することができるので、シンクポイント取得処理時間を大幅に短縮できる。
【図面の簡単な説明】
【図1】本発明の特長となるシンクポイント取得処理の概略処理フローを示す。
【図2】本発明を実施するためのデータベース管理システムの構成図を示す。
【図3】デ−タベ−スを構成するペ−ジの構造を示す。
【図4】図3におけるペ−ジ内の制御情報の構成を示す。
【図5】図2におけるバッファプ−ルを管理するテ−ブルの構造を示す。
【図6】図2におけるバッファプ−ル管理テ−ブルの構成情報を示す。
【図7】図2におけるバッファプ−ル中の各ペ−ジを管理するペ−ジ管理テ−ブルの構成情報を示す。
【図8】トランザクションの開始処理の処理フロ−を示す。
【図9】あるトランザクションにおけるデ−タベ−スの更新処理の処理フロ−を示す。
【図10】トランザクションのPREPARE処理の処理フロ−を示す。
【図11】トランザクションのCOMMIT処理の処理フロ−を示す。
【図12】出力対象ペ−ジ管理テ−ブルリストの構成情報を示す。
【図13】シンクポイント出力対象ペ−ジの書き込み処理の処理フロ−を示す。
【図14】図2のバッファプ−ル管理部における出力要求処理の処理フロ−を示す。
【図15】図2のバッファプ−ル管理部における入力要求処理の処理フロ−を示す。
【図16】図3の共用モ−ドのペ−ジ入力処理の処理フロ−の詳細を示す。
【図17】図3の排他モ−ドのペ−ジ入力処理の処理フロ−の詳細を示す。
【図18】図2のバッファプ−ル管理部におけるペ−ジロック解放処理の処理フロ−を示す。
【図19】図2のバッファプ−ル管理部におけるバッファFREE処理の処理フロ−を示す。
【図20】本発明実施時のデ−タベ−ス管理システムの性能特性のグラフを示す。
【図21】プレシンクポイント及びシンクポイント取得を制御するログ書き込み処理の処理フロ−を示す。
【図22】プレシンクポイント取得処理の処理フロ−を示す。
【図23】本発明実施時に効果を上げるためのプレシンクポイント処理を行った場合のバッファプ−ルにおける更新ペ−ジ数の時間経過における比率のグラフを示す。
【符号の説明】
10:コンピュ−タシステム、12:CPU、14:主記憶装置、16:外部記憶装置、18:端末、20:デ−タベ−ス管理システム、21:質問解析処理部、22:デ−タベ−ス演算処理部、23:バッファプ−ル管理部、24:トランザクション管理部、25:遅延書き込み処理部、26:シンクポイント取得処理部、27:ログ書き込み処理部、31:バッファプ−ル管理テ−ブル、32:ペ−ジ管理テ−ブル、33:ハッシュ管理テ−ブル、34:バッファプ−ル、35:ログバッファ、36:デ−タベ−ス、37:ログファイル、38:出力対象ペ−ジ管理テ−ブルリスト、40:ペ−ジ、42:ペ−ジ内制御情報、44:スロット領域、319:遅延書き込み中フラグ、328:ロックカウンタ、329:XGETフラグ、330:出力要求フラグ、335:シンクポイント取得中フラグ、381:シンクポイント出力ペ−ジ数カウンタ、421:割当スロット数、422:使用スロット数、423:空き領域長、424:未使用領域先頭オフセット、425:LSN
Claims (3)
- 障害発生時の再開始回復処理を前提としたトランザクション処理を可能とするデータベース管理システムにおけるシンクポイントを取得するデータベース管理方法であって、
前記シンクポイント取得開始時に外部記憶装置上のデータベースに書き込みされていない主記憶装置上にマッピングされたバッファ中のすべての更新されたページを管理するテーブルにシンクポイント取得処理中であるマークをつけ、
前記シンクポイント取得処理中は前記マークのついたバッファ中の更新されたページを前記データベースに書き込み、
前記シンクポイント取得処理中に前記マークのついたバッファ中の更新されたページを更新するトランザクションは前記更新されたページをアクセスする前に前記データベースに書き込みを行い、前記マークをはずした後アクセスを許可し、
前記マークのついた更新ページをすべて前記データベースに書き込みが完了した時点をシンクポイント取得完了とし、
前記シンクポイントを取得する間隔がある一定量に達した時点より、前記シンクポイント取得開始時点まで前記バッファ中の更新ページを非同期に前記データベースに書き込みを行うプレシンクポイント取得処理を行うことにより、
前記シンクポイント処理中であってもトランザクション処理続行可能とするとともに前記シンクポイント取得処理における前記バッファ中の更新ページ数を削減することを特徴とするデータベース管理方法。 - 請求項1記載のデータベース管理方法において、
前記プレシンクポイント取得処理において、前記シンクポイント取得開始時点までに前記データベースに書き込めなかった前記バッファ中の更新ページは、前記シンクポイント取得開始時にバッファ中のすべての更新されたページを管理するテーブルにシンクポイント取得処理中であるマークをつけることによりシンクポイントを取得する
ことを特徴とするデータベース管理方法。 - 請求項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 JPH0887510A (ja) | 1996-04-02 |
JP3593366B2 true 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) |
Families Citing this family (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10133929A (ja) * | 1996-10-29 | 1998-05-22 | Mitsubishi Electric Corp | データベース更新制御方式及びその方法 |
US6212529B1 (en) | 1996-11-13 | 2001-04-03 | Puma Technology, Inc. | Synchronization of databases using filters |
US6330568B1 (en) | 1996-11-13 | 2001-12-11 | Pumatech, Inc. | Synchronization of 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 |
US6405218B1 (en) | 1996-11-13 | 2002-06-11 | Pumatech, Inc. | Synchronizing databases |
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 |
US6925477B1 (en) | 1998-03-31 | 2005-08-02 | Intellisync Corporation | Transferring records between two databases |
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 |
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 |
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 |
US8620286B2 (en) | 2004-02-27 | 2013-12-31 | Synchronoss Technologies, Inc. | Method and system for promoting and transferring licensed content and applications |
US8156074B1 (en) | 2000-01-26 | 2012-04-10 | Synchronoss Technologies, Inc. | Data transfer and synchronization system |
US7505762B2 (en) | 2004-02-27 | 2009-03-17 | Fusionone, Inc. | Wireless telephone data backup system |
US6671757B1 (en) | 2000-01-26 | 2003-12-30 | Fusionone, Inc. | Data transfer and synchronization system |
US7035878B1 (en) | 2000-01-25 | 2006-04-25 | Fusionone, Inc. | Base rolling engine for data transfer and synchronization 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 |
WO2002019168A1 (en) * | 2000-08-25 | 2002-03-07 | 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 |
US6985915B2 (en) | 2001-02-28 | 2006-01-10 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of files |
US6847983B2 (en) | 2001-02-28 | 2005-01-25 | Kiran Somalwar | Application independent write monitoring method for fast backup and synchronization of open 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 |
US6662196B2 (en) * | 2001-03-16 | 2003-12-09 | Iti, Inc. | Collision avoidance in bidirectional database replication |
US7103586B2 (en) * | 2001-03-16 | 2006-09-05 | Gravic, Inc. | Collision avoidance in database replication systems |
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 |
US20030004970A1 (en) * | 2001-06-28 | 2003-01-02 | Watts Julie Ann | Method for releasing update locks on rollback to savepoint |
US7499924B2 (en) * | 2001-06-28 | 2009-03-03 | International Business Machines Corporation | 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 |
JP2005515556A (ja) | 2002-01-15 | 2005-05-26 | ネットワーク アプライアンス, インコーポレイテッド | 能動的ファイル変更通知 |
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 |
JP4321705B2 (ja) | 2003-07-29 | 2009-08-26 | 株式会社日立製作所 | スナップショットの取得を制御するための装置及び記憶システム |
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 |
WO2005048124A2 (en) * | 2003-11-04 | 2005-05-26 | Constant Data, Inc. | Hybrid real-time data replication |
US7870354B2 (en) | 2003-11-04 | 2011-01-11 | Bakbone Software, Inc. | Data replication from one-to-one or one-to-many heterogeneous devices |
US7634509B2 (en) | 2003-11-07 | 2009-12-15 | Fusionone, Inc. | Personal information space management system and method |
ATE361495T1 (de) * | 2004-03-18 | 2007-05-15 | 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 |
CN1998224A (zh) | 2004-05-12 | 2007-07-11 | 富盛旺公司 | 高级联络识别系统 |
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 |
US8015194B2 (en) * | 2005-12-29 | 2011-09-06 | Ricoh Co., Ltd. | Refining based on log content |
US7970738B2 (en) * | 2005-12-29 | 2011-06-28 | Ricoh Co., Ltd. | Always on and updated operation for document logs |
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 |
US20090063752A1 (en) * | 2007-08-27 | 2009-03-05 | International Business Machines Corporation | Utilizing data access patterns 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 |
US8671256B2 (en) * | 2007-08-27 | 2014-03-11 | International Business Machines Corporation | Migrating contents of a memory on a virtual machine |
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 |
US8694990B2 (en) * | 2007-08-27 | 2014-04-08 | International Business Machines Corporation | Utilizing system configuration information to determine a data migration order |
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 | (주)티베로 | 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 |
US9672237B2 (en) | 2013-03-15 | 2017-06-06 | Amazon Technologies, Inc. | System-wide checkpoint avoidance for distributed database systems |
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 |
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 |
US20240184766A1 (en) * | 2022-12-01 | 2024-06-06 | Huawei Cloud Computing Technologies Co., Ltd. | Method and apparatus for fine-grained hierarchical locking in a multi-master database system |
Family Cites Families (19)
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 |
JPS63133240A (ja) * | 1986-11-25 | 1988-06-06 | Hitachi Ltd | 常駐テ−ブルの内容保証方式 |
JPS63195755A (ja) * | 1987-02-09 | 1988-08-12 | Hitachi Ltd | 主記憶装置上の情報の内容保証方式 |
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 |
JP2767966B2 (ja) * | 1990-03-19 | 1998-06-25 | 日本電気株式会社 | 高速ファイルアクセス方式 |
US5319774A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Recovery facility for incomplete sync points for distributed application |
US5319773A (en) * | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
JPH04282733A (ja) * | 1991-03-12 | 1992-10-07 | Oki Electric Ind Co Ltd | データベース管理方法 |
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 |
JPH05158778A (ja) * | 1991-12-09 | 1993-06-25 | Canon Inc | 画像情報記憶装置 |
JPH06214857A (ja) * | 1993-01-20 | 1994-08-05 | Hitachi Ltd | オンラインデータ処理装置 |
JPH06214848A (ja) * | 1993-01-20 | 1994-08-05 | Hitachi Ltd | データベース管理システム |
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
Also Published As
Publication number | Publication date |
---|---|
US5778388A (en) | 1998-07-07 |
JPH0887510A (ja) | 1996-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3593366B2 (ja) | デ−タベ−ス管理方法 | |
US7266669B2 (en) | File system with file management function and file management method | |
US5287496A (en) | Dynamic, finite versioning for concurrent transaction and query processing | |
US9477558B2 (en) | Hardware supported memory logging | |
US8762333B2 (en) | Apparatus and method for read optimized bulk data storage | |
US5280612A (en) | Multiple version database concurrency control system | |
US7933927B2 (en) | Method and apparatus for building index of source data | |
JP4603546B2 (ja) | 効率的なバージョン制御を有するデータベース管理システム | |
EP3493071B1 (en) | Multi-version concurrency control (mvcc) in non-volatile memory | |
JPH07175700A (ja) | データベース管理方式 | |
US20040181560A1 (en) | Method and apparatus for interrupting updates to a database to provide read-only access | |
JP2000284995A (ja) | データ処理装置及び記録媒体 | |
US9471622B2 (en) | SCM-conscious transactional key-value store | |
JPH0812631B2 (ja) | データベース・トランザクション及び照会処理システム | |
JPH06332778A (ja) | トランザクション管理方法 | |
KR20080044480A (ko) | 지연된 로깅 방법 및 그 장치 | |
JP2001511552A (ja) | データ・ベースに関する方法 | |
CN113220490A (zh) | 异步写回持久化内存的事务持久化方法及系统 | |
JP4286857B2 (ja) | ノード間共用ファイル制御方法 | |
JP4139642B2 (ja) | データベース管理方法およびシステム | |
JP2004062759A (ja) | データベースログの管理方法、その装置およびそのプログラム | |
JP3866448B2 (ja) | ノード間共用ファイル制御方式 | |
JP2000163294A (ja) | データベース管理方法及びその装置並びにプログラムを記録した機械読み取り可能な記録媒体 | |
CN117851374A (zh) | 数据库系统前映像空间管理方法和装置 | |
Chong et al. | Rapid Recovery of Very Large Memory Resident Data Objects |
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 |