JP3107094B2 - 共用バッファのロック期間短縮処理方法及び装置 - Google Patents
共用バッファのロック期間短縮処理方法及び装置Info
- Publication number
- JP3107094B2 JP3107094B2 JP05503476A JP50347693A JP3107094B2 JP 3107094 B2 JP3107094 B2 JP 3107094B2 JP 05503476 A JP05503476 A JP 05503476A JP 50347693 A JP50347693 A JP 50347693A JP 3107094 B2 JP3107094 B2 JP 3107094B2
- Authority
- JP
- Japan
- Prior art keywords
- shared buffer
- buffer
- database
- memory
- copying
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
装置に関し、特に、データベース管理システムを介して
アプリケーション・プログラムがデータベースをアクセ
スする場合に、介在する共用バッファのロック期間を短
縮する方法及び装置であって、例えば、複数のトランザ
クションが共用する共用バッファの内容をデータベース
に書き戻すためのロック期間によって他のトランザクシ
ョンが待機する待機時間を著しく短縮することが可能な
共用バッファのロック期間短縮処理短縮方法及び装置に
関する。
おいて、「データベース」なる用語が多用されている。
「データベース」とは種々の業務又はユーザが利用でき
るように情報を統合化した共用ファイルをいう。そし
て、このデータベースを管理するソフトウェアをデータ
ベース管理システムと称している。また、アプリケーシ
ョン・プログラムとは、このデータベース管理システム
を介して入力データに応じたデータベースの参照や更
新、即ち、トランザクションを行うためにコンピュータ
にて実行可能な手順をいう。従って、トランザクション
はアプリケーション・プログラムの種類をデータベース
の参照、検索、更新等として多重処理する際の実行単位
である。
アクセスするときには、このアクセスに先立つトランザ
クションにより、ディスクからデータベースの情報が既
に共用バッファ上に転送され処理されている場合にはそ
れを、そうでない場合はディスク上の情報を共用バッフ
ァに転送し、データベース管理システムを介してこの共
用バッファの内容を参照や更新する。このようなデータ
ベースの情報はディスクと共用バッファ群を合わせて保
持される。従って、長期に渡って次々にトランザクショ
ンが利用するデータは共用バッファに常駐することにな
る。
保されるので、ディスクに書き戻していない状態で完結
したトランザクション処理の結果を、システム異常等の
原因で共用バッファの最新内容が失われた場合に備えて
更新後ログとして不揮発性メモリに記憶しておかねばな
らない。この更新後ログによりディスク上の情報を利用
して最新の共用バッファの内容のリカバリが可能であ
る。従って、更新後ログの量に比例したリカバリ時間が
必要となるので、リカバリに関与する更新後ログを削減
する必要がある。ディスクの情報を補う更新後ログだけ
でリカバリできるので、多くの更新後ログが関与する共
用バッファの内容を時々ディスクに書き戻すことによ
り、これを実現することができる。この書き戻しのため
の期間を共用バッファのロック期間という。
共用されているので、複数のトランザクションが共用バ
ッファを使用することになるが、この場合、従来、ロッ
ク期間はこの共用バッファをアクセスするトランザクシ
ョンは逐次化のため書き戻し処理の待ち状態に置かれる
ことになっていた。
のための待機期間だけにすることが可能なロック期間短
縮処理短縮方法及び装置に関する。
共用バッファのロック期間短縮処理方法であって、本発
明の方法は、 共用バッファの内容を不揮発化する際に使用する複写
用メモリを確保する過程と、対象となる共用バッファを
一時的にロックする過程と、不揮発化する共用バッファ
の内容を複写用メモリに複写する過程と、複写用メモリ
への複写後に該共用バッファをアンロックする過程と、
複写用メモリの内容を不揮発化する過程とを備えてお
り、 共用バッファの内容を該複写用メモリに複写する前
に、対象となる共用バッファをロックし、複写を完了し
た後で複写用メモリの内容を不揮発化する前に、共用バ
ッファをアンロック(即ち、ロックの解除)を行うこと
を特徴とする。
に更新の可能性があるか否かを判定する過程をさらに備
えており、更新の可能性がないときに、複写用メモリを
確保せず、かつその複写用メモリへの複写処理を行わず
に、対象となる共用バッファの内容をデータベースに書
き戻して不揮発化する。
を提供し管理するデータベース管理システムと、複数の
トランザクションが共通に使用する共用バッファ(群)
と、一時的に更新前ログ及び更新後ログを格納するログ
バッファと、更新前ログ及び更新後ログを格納するログ
ファイルと、諸データを格納するデータベースとを備え
るデータ処理システムにおいて、本発明の他の形態によ
れば、 データ処理システムは、さらに一時的に前記共用バッ
ファの内容を保持するための複写用メモリを備え、 データベース管理システムは、さらに対象となる共用
バッファの内容を複写用メモリに複写する制御を行う置
換制御部と、対象となる共用バッファの更新の可能性を
判定する処理選択部と、対象となる共用バッファの排他
制御を行う排他制御部と、更新前ログ又は更新後ログを
採取するログ制御部とを備え、 共用バッファの内容をを複写用メモリに複写する前
に、対象となる共用バッファをロックし、複写を完了し
た後で前記複写用メモリの内容を不揮発化する前に、共
用バッファをアンロックし、共用バッファのロック期間
の短縮を図ることを特徴とする。
ファが書き戻し期間中に何れかのトランザクションによ
り更新対象となる可能性があるかどうか予想して、更新
の可能性がないときに、複写用メモリを確保せず、かつ
その複写用メモリへの複写処理を行わずに、対象となる
共用バッファの内容をデータベースに書き戻して不揮発
化する。
明図である。
移の説明図である。
である。
しの例である。
時間遷移の説明図である。
る。
を以下に説明する。
中、AP1,AP2はデータベースの参照又は更新トランザク
ションの実行に関わるアプリケーション・プログラムで
あり、11はデータベースへのアクセス機能を提供し、デ
ータベースを管理するデータベース管理システムであり
ソフトウェアで構成され、MEMはデータ処理システムの
メモリであり、B1,B2は複数のトランザクションが共用
する共用バッファであり、16は更新前ログ又は更新後ロ
グ等の情報を格納するログバッファであり、19はログバ
ッファ16の内容を保存するログファイルであり、20はデ
ータベースである。
ベース管理システム11を利用してデータベース20の情報
を取得しようとしており、一方、アプリケーション・プ
ログラムAP2はデータベース20の情報を取得し、さらに
データベース20の情報を更新しようとしているものとす
る。
理システム11に対して、所定の情報(即ち、レコード/
カラム)を取得する命令を発した場合に、図示のよう
に、データベース管理システム11は、共用バッファ群に
所定のページ(ブロック)が存在していればそのまま、
存在しなければその内容が格納されているデータベース
20のページを共用バッファB1に取り込み、共用バッファ
B1から必要な情報をアプリケーション・プログラムAP1
に返却する。
リケーション・プログラムアAP1と同一ページにある情
報を取得する命令をデータベース管理システムに発した
とする。このような場合、データベース管理システム11
は、データベース20から再度、共用バッファに情報を取
り込む必要はなく、先にデータベース20から取り込んだ
共用バッファB1における必要な情報をアプリケーション
・プログラムAP2に返却する。
が多く採用されている。この場合、共用バッファは参照
系については、複数のトランザクション間で並行して共
用できるバッファである。一方、更新系については、例
えば、アプリケーション・プログラムAP2の命令でトラ
ンザクションが共用バッファB2の内容を更新する場合
に、共用バッファB2に取り込んだページ番号をキーにし
てロックするために、アプリケーション・プログラムAP
2の更新命令によるトランザクションは、そのロックが
解除されるまで待機状態となる。
のトランザクションがコミットした後に、データベース
管理システム11がそのロックを解除するようにして行わ
れる。ロックが解除されたならば、アプリケーション・
プログラムAP2のトランザクションによる更新のために
ロックを取り、その共用バッファB2を更新する。このよ
うに更新系においても共用バッファは複数のアプリケー
ション・プログラムAP1,AP2間で共用することができ
る。
ページ単位又はレコード単位というように、ページ単位
よりも小さくすることにより、複数のアプリケーション
・プログラムAP1,AP2が共用バッファを並行して更新す
ることができるようになる。
容(ページ)を所定の時期にディスク(データベース2
0)に書き戻すことにより、ページを最後に読み書きし
た後に、ログとして保持されていた更新内容をディスク
に反映し、これを共用バッファ揮発時のリカバリに使用
する必要を無くすことができる。ここで、ログバッファ
16は共用バッファB1,B2での更新前ログ及び更新後ログ
を一時的に格納するバッファであり、所定の時期にログ
ファイル19に格納されて不揮発化される。
明図である。TRN1,TRN2はトランザクションであり、70
はデータベース管理システム11におけるロック制御機
構、30は共用バッファ内のビットマップであり、31はデ
ータベース20内のオーバーフロー・ページであり、20′
は共用バッファの内容を不揮発化するデータベースであ
る。本例はビットマップを使用してオーバーフロー・ペ
ージの使用と未使用を管理する例である。即ち、例え
ば、所定の形式で格納されたオーバーフロー・ページ31
の使用と未使用をビットマップ30で管理する。ビットマ
ップ30は、ビットのオンをオーバーフロー・ページ31の
使用中とし、ビットのオフをオーバーフロー・ページ31
の未使用として表現したマッピング表である。ビットマ
ップはオーバーフロー・ページを使用・未使用とするト
ランザクションの中でデータ中の通常のデータとして更
新される。
がログファイルや不揮発化メモリに蓄積されていく。し
かし、システムクラッシュによるビットマップ30のリカ
バリのためには、更新後ログが少なければ少ないほど、
リカバリの低コストが図れる。そこで、共用バッファが
揮発するように障害に対するリカバリのための更新後ロ
グ量を削減するためにビットマップ30のディスク(デー
タベース20′)への書き戻しが行われる。
ションからも頻繁にアクセスされる(ホットスポットと
称する)ので、共通バッファ上に一旦読み込まれると引
き続きアクセスされて強制的に書き戻し処理を実行しな
い限り、ディスク(データベース20′)への書き戻しが
自然に発生する機会は殆どない。このようにデータの共
用バッファ喪失時のリカバリを低コスト化する上で、リ
カバリに必要な更新後ログを削減するために、強制的に
データベース20′に書き戻しを行っている。
移の説明図である。例えば、図2に示すビットマップ30
を強制的に書き戻しの間、オーバーフロー・ページ31を
獲得しようとするトランザクションTRN1又はTRN2は、ビ
ットマップ30によるデータベース20′への書き戻し終了
するまで待機状態となる。即ち、ビットマップ30の書き
戻し処理が開始されると、図示のように、トランザクシ
ョンTRN1,TRN2による更新要求は書き戻し状態の終了を
待つ待機状態となっている。
のように、データベースを更新する場合、共用バッファ
上のホットスポットを強制的に書き戻し途中で、トラン
ザクションが勝手にこのバッファの更新を行うと、ディ
スク上にはメモリ上で更新途中のデータが書き込まれる
おそれがある。共用バッファの内容が喪失するシステム
・クラッシュが発生した後、これをリカバリするために
は、構造的に制約を課してアイデンポテント性を持つ
(若干のログの喪失があっても、より古いログで代行で
きるという性質)特殊なログ方式を前提にする必要があ
る。
許さないログ方式を想定しているので、書き戻しされる
共用バッファと同期したログ書き出しは不可能であるの
で、書き戻し開始以前にその共用バッファに関わる全ロ
グ取得が終了し、書き戻し中のこの共有バッファへのト
ランザクションの更新は禁止せざるを得ない。
ている期間、その共用バッファを更新しようとする他の
トランザクションを待機状態とする必要がある。従っ
て、トランザクションのレスポンスが悪化する問題が発
生している。ここで、トランザクションのレスポンス
は、本来のトランザクションのレスポンスに最大で共用
バッファの書き戻し時間と更新前ログの書き出し時間が
加算される。即ち、トランザクションが更新する共用バ
ッファをデータベースに書き戻す場合、そのトランザク
ションのレスポンス(応答時間)は、本来のトランザク
ションのレスポンスに加えて、最大で共用バッファをデ
ータベースに書き戻す時間とその共用バッファを更新し
た実行中のトランザクションの更新前ログをログファイ
ルに書き出す時間が加算された時間である。
源以外にも多くの資源を専有しているのが普通である。
ホットスポットである強制書き出し対象のページを含め
て、例えば、データベースの別のページ、メモリ等が考
えられる。従って、待ちに入ったトランザクションの背
後で、このトランザクションの保有する資源の開放を待
つトランザクションが更に待ちに入る可能性がある。待
ちに入ったトランザクションは基本的にはどの資源も有
効利用していないので、MIPS能力(1秒間に100万回の
命令能力)の高い装置を持ってきても最初の待ちが解消
しない限り、どの資源も有効利用できない。このような
現象は道路上の交通渋滞と全く同じであり、コンボイ現
象として知られている。なお、他のデータベースのバッ
ファ制御に関する従来技術としてシャドウ・ページング
による方法と、マルチバージョン・コンカレンシ・コン
トロールによる方法とがある。これらの方法は後述する
本発明、即ち、共用バッファを複写する点で類似する方
法であるが、以下の説明から明らかなように本発明とは
相違する方法である。
更新トランザクションが動作する場合は、そのページを
どのトランザクションも共用できない。トランザクショ
ンのコミット以前の更新途中での書き戻しのために、直
ちにディスク(データベース)上に未使用ページを割り
付ける。データベースはページ番号とディスク上の位置
の対応を示す表と、ページデータからなっており、トラ
ンザクションのコミットは、全ての更新ページの書き戻
しの成功後に、ページの対応表を元のページからこのト
ランザクションで新たに割りつけたページに変更するこ
とで実現される。ロールバックは単に更新ページに割り
当てたものを放棄することで済ませられる。シャドウ・
ページングでは、書き戻し用の領域を割り付ける点で本
発明と類似しているが、前者はディスク上での割り付け
であり、更新ページの共用を排除しており、書き戻し性
能の向上に関する配慮は全くなされていない。
ルによる方法を以下に説明する。この方法では、実際に
適用する場合に整列性を保証しないで、更新トランザク
ションは専用のコピーを持ち、コミットまで他のトラン
ザクションを開放しない。しかし、参照トランザクショ
ンは最新にコミットされたコピーを並行して参照するこ
とが許される。更新がコミットされた後の参照は新しい
バージョンに切り換えられる。どちらもトランザクショ
ン途上にあるダーティなコピーではない。また、一定の
コミット順や参照順に制限を付けることにより、種々の
レベルのインテグリディを達成することができる。本発
明は一見してコピーする点でこの後者の方式に類似する
が、強制書き戻しに関して何らかの問題を解決するもの
ではない。本発明はマルチバージョンにも、最も厳密な
伝統的な排他制御のもとでも等しく有効な手段である。
共用バッファの内容をデータベースに書き戻すためのロ
ック期間によって他のトランザクションが待機する待機
時間を著しく短縮することが可能な複数トランザクショ
ンの処理短縮方法及び装置を提供することにある。
ンスの高速化が可能となり、さらに、対象となるバッフ
ァを更新するトランザクションのないことが判定される
と、レスポンスの高速化を図るために複写用メモリに写
す等の処理を省略し、その結果システムの性能を、複写
を利用する標準的な場合よりも、さらにスループットを
向上させることができる。
リ等からなるデータ処理システムであり、11はデータベ
ースのアクセス機能を提供し管理するデータベース管理
システムであるソフトウェアで構成される。データベー
ス管理システム11において、12は対象となるバッファの
内容の複写を行い、その結果ロック期間を短縮すること
を可能とする置換制御部であり、13は対象となるバッフ
ァの更新が行われるか否かを判定する処理選択部であ
り、14は対象となるバッファの排他制御を行う排他制御
部であり、15は更新前ログ又は更新後ログを採取するロ
グ制御部である。16は更新前ログ及び更新後ログを格納
するログバッファであり、17は複数のトランザクション
が共通に使用する共用バッファ(群)であり、18は一時
的に共用バッファ17の内容を保持するための複写用メモ
リであり、19はディスク又は不揮発正メモリ等により構
成されるログファイルであり、20はディスク又は不揮発
性メモリ等により構成されるデータベースである。
ランザクションが共通に使用する作業領域であり、不揮
発化する必要のある内容を記憶するものであれば、後述
するものに限らず、如何なる種類のものであってもよ
い。
のロック期間短縮処理方法は、以下のような過程を有す
る。即ち、 共用バッファ(17)の内容を不揮発化する際に使用す
る複写用メモリ(18)を確保する過程()と、 対象となる共用バッファをトランザクション・ロック
の下位のロックで一時的にロックする過程()と、 書き戻し(不揮発化)する共用バッファの内容を複写
用メモリに複写する過程()と、 複写用メモリへの複写後に共用バッファをアンロック
する過程()と、 複写用メモリの内容を書き戻し(不揮発化)する過程
()とを備えており、 共用バッファの内容を複写用メモリに複写する前に、
対象となる共用バッファをロックし、複写を完了した
後、複写用メモリの内容を書き戻し(不揮発化)する前
に、共用バッファをアンロック(即ち、ロックの解除)
を行うことを特徴とする。
ファの更新の可能性があるか否か、即ち、何れかのトラ
ンザクションがデータベースのその個所を更新すること
が予測できるので更新の可能性があるか否か、を判定す
る過程を備えており、 更新の可能性がないときに、複写用メモリを確保せ
ず、かつその複写用メモリへの複写処理を行わずに、対
象となる共用バッファの内容をデータベースに書き戻し
て不揮発化することを特徴とする。
処理されるので、個々の機能についてさらに詳しく説明
する。置換制御部12は共用バッファ17の内容を不揮発化
する際、即ち、データベース20に書き戻す際に、書き戻
しの対象となる共用バッファ17の斜線部分と同一サイズ
の複写用メモリ18をメモリ領域に確保する。次に、置換
制御部12は排他制御部14に処理を依頼し、対象となる共
用バッファ17をロック処理する。ここで、ロック処理と
は、対象のバッファを更新するトランザクションが実際
にバッファを更新する期間(但し、更新されたことが保
証される期間)と、対象となるバッファに対する不揮発
化や通信等を行う期間とをシリアライズするための処理
を指す。
を指すものではなく、データベースをアクセスするため
のアクセスモジュールにおけるバッファ制御機能と、共
用バッファの内容をディスク(データベース)に書き戻
す機能とが同時並列的に処理を行わないためのロックを
意味する。ところで、トランザクションロックとは、ト
ランザクションのACID特性を直接的に保証するトランザ
クション・グラニュールでのロックであり、例えば、ト
ランザクションがデータベースの論理ページ番号、論理
レコード番号等をキーにしてロックすること、即ち、ト
ランザクションがデータベースのページの内容を参照、
更新する前にそのページ又はレコードを論理的に割り振
られた番号でロックし、トランザクションのコミット完
了後にアンロックすることを意味する。
クしたならば、その不揮発化する内容を複写用メモリ18
に複写し、不揮発化する内容を複写用メモリ18に複写し
た後に、再度、排他制御部14を呼び出し、共用バッファ
17をアンロックする。
発化が必要ならば、その不揮発化を行い、複写用メモリ
18の内容をデータベース20に書き戻すことにより不揮発
化を行う。共用バッファ17を不揮発化したならば、不要
となった複写用メモリ18を開放する。
いる。即ち、本発明は不揮発化の対象となる共用バッフ
ァの更新の可能性があるか否か、即ち、何れかのトラン
ザクションがデータベースのその個所を更新することが
予測できる、即ち、例えば、バッチ検索処理の運用時間
帯に入っている場合、また、広域の共用ロックが出てい
る場合等では確実に更新しないということを予想できる
ので、更新の可能性があるか否か、を判定する過程を備
えており、更新の可能性がないときに、複写用メモリを
確保せず、かつその複写用メモリへの複写処理を行わず
に対象となる共用バッファの内容をデータベースに書き
戻して不揮発化する。
に示すように、置換制御部12は処理選択部13を備えてい
る。処理選択部13は不揮発化の対象となる共用バッファ
17の更新の可能性を判定する。この更新の可能性の判定
は、例えば、トランザクションロックの排他制御を利用
して行うことができる。即ち、対象となるページの共用
バッファ17を非共用モードでトランザクションロック中
であるか否か、非共用モードのロック要求があるか否か
等により確認し判定することができる。
バッファ17の内容を不揮発化する際に使用する複写用メ
モリ18を確保し、対象となる共用バッファを一時的にロ
ックし、不揮発化する共用バッファの内容を複写用メモ
リに複写する、等の過程を取ることになる。また、更新
の可能性がないときは複写用メモリ18を確保せず、従っ
て、複写用メモリ18への複写を行わずに、対象となる共
用バッファ17の内容を不揮発化する。
ている。以下にこれらの処理を個々に説明する。図中の
同一番号は同一の処理を示す。
揮発化)しようとした場合に、置換制御部12内の処理制
御部13は書き戻し(不揮発化)の対象となる共用バッフ
ァ17について更新の可能性があるか否かを確認する。更
新の可能性がなければ次のを行い、更新の可能性があ
れば処理へ進。なお、図の下方ので示すように、こ
のの処理は選択的であり、一方的に更新の可能性を確
認せずに複写用メモリ18による書き戻し(不揮発化)を
行うことができるし、一方、上述のように更新の可能性
を判定してから、その判定に従って書き戻し(不揮発
化)してもよい。
時的にロックし、更新前ログをログ制御部15によりログ
バッファ16を経てログファイル19に書き込む。ここで、
ログバッファ16は更新前ログと更新後ログを格納するバ
ッファ(不揮発メモリ)である。さらに、共用バッファ
17の内容をデータベース20に書き込み、不揮発化する。
このような処理が終了したならば排他制御部14によりロ
ックを解除(アンロック)し、処理を完了する。
求があれば、共用バッファ17の斜線部分と同一サイズ又
はこれより大きいサイズの複写用メモリ18を確保する。
る。
18に複写する。
バッファ17のロックを解除する(アンロック)する。
ファイル19に格納し、不揮発化する。
不揮発化する。
リ18の領域を開放する。
ックした後、処理において共用バッファ17の斜線部分
で示す不揮発化する内容を複写用メモリ18に複写し、複
写が完了した後、直ちに処理において共用バッファ17
をアンロックする。従って、共用バッファ17のロック期
間は非常に短時間になり、共用バッファを更新するトラ
ンザクションのレスポンスを向上させることができる。
前述のように、トランザクションのレスポンスとは、
「本来のトランザクションのレスポンスに加えて、最大
で共用バッファをデータベースに書き戻す時間とその共
用バッファを更新した実行中のトランザクションの更新
前ログをログファイル19に書き出す時間が加算されるも
の」であるから、「最大で共用バッファをデータベース
に書き戻す時間」が削減できるので大きな効果が得られ
る。
ファ17についての更新の可能性について調査し、更新の
可能性がない場合には、処理により複写用メモリを用
いない処理を行うので、不必要な複写用メモリを確保す
ることがないので、システムの性能を複写を利用する標
準的な場合よりも、さらにスループットを向上させるこ
とができる。
不揮発化は必ずしも必要でない。更新前ログの不揮発化
が必要な場合と、必要でない場合を以下に説明する。ま
た、形式によっては更新後ログの不揮発化もあり得る。
なお、ここでは書き戻しに付帯した処理の範囲に言及し
ているだけであって、この目的外のログ利用に関しての
必要・不必要については言及していない。即ち、更新前
ログの不揮発化が必要な場合とは、不揮発化の対象とな
る共用バッファ17を更新する実行中のトランザクション
が存在し、そのトランザクションが共用バッファ17を更
新しており、更新前ログがある場合である。また、更新
前ログの不揮発化が不必要な場合とは、不揮発化する共
用バッファ17を更新したトランザクションが既にコミッ
トしている場合、又は例えば、オーバーフロー・ページ
の新規割り付け後の初めての書き戻しでディスク(デー
タベース20)の元のページの状態に無関係に共用バッフ
ァ17上でデータを組み立てたデータの初回書込みのよう
な、現状反映のない場合である。
である。以下に各階段ごとに説明する。なお、点線で囲
った過程はロック期間を示す。
る共用バッファ17について更新の可能性があるか否かを
判定する。更新の可能性がなければ、処理(b)に進
み、可能性があれば、処理(f)へ進む。なお、この処
理(a)を省き、更新の可能性を確認することなく、毎
回、複写用メモリ18を取り不揮発化するようにしてもよ
い。
り一時的にロックする。このロックは、対象となる共用
バッファ17の内容を実際に更新する期間と、データベー
スへの書き戻しのためのメモリ複写の期間とを、一時的
にシリアライズするためである。
ログ制御部15によりログバッファ16を経てログファイル
19に格納し、不揮発化する。
処理を行う。
クを解除(アンロック)し、処理を完了する。
場合には、共用バッファの対象領域と同一サイズの複写
用メモリ18を確保する。
する。このロックによりトランザクションの共用バッフ
ァ域へのアクセスが一時的に禁止される。
照、斜線部分)を複写用メモリ18に複写する。
共用バッファ17のロックをアンロックする。
ログファイル19に格納し、不揮発化する。
処理を行う。
メモリ18の領域を開放する。
能性の判定は、排他制御(即ち、トランザクションロッ
ク)の情報を利用し、対象となるページの共用バッファ
17を、非共用モードでトランザクションロック中である
か否か、非共用モードのロック要求であるか否かによっ
て行うことができる。即ち、更新の可能性がないのは、
対象ページに対するロック若しくはロック要求に、非共
用のトランザクションロックがない場合である。一方、
更新の可能性があるのは、対象ページに対するロック若
しくはロック要求に、非共用のトランザクションロック
がある場合である。
ク中の1つ又は複数のトランザクションがある場合には
直接書き戻しのためのロック期間中に更新のための待ち
の可能性が低いと推定することができる。一方、ある対
象ページに対して、非共用モードでロック中或いはロッ
ク待ちトランザクションがある場合には、直接書き戻し
のためのロック期間に更新するための待ち発生の可能性
が高いと推定することができる。この推定を根拠に更新
の可能性の判定を行う。
しの例である。図2と同様に、TRN1,TRN2はトランザク
ションであり、30はビットマップであり、20,20′はデ
ータベースであり、18は複写用メモリであり、31はオー
バーフロー・ページである。前述のように、共用バッフ
ァのビットマップを複写用メモリ18に複写するものとす
る。
を更新する頻度が他に比べて著しく高い場合には、その
共用バッファはページアウトの対象とならないため、デ
ータベース内に更新内容が保存されないままでメモリに
常駐した状態となる。このような共用バッファの状態を
ホットスポットの状態と称する。
ー・ページ31を管理するビットマップ30は情報の密度が
ページというアクセス単位で比較して濃いために、ホッ
トスポットなりやすいデータである。このようなデータ
ベースについても、大量の更新後ログをリカバリに必要
とすることのないように実施される共用バッファの強制
的な書き戻し処理による影響を、本発明で述べた一般的
なデータベース管理システムの枠内で複写用メモリ18を
確保して実施することにより最小限に押さえることが可
能になる。
除されるので、ビット単位のトランザクション・ロック
を利用しているトランザクションTRN1,TRN2はビットマ
ップ30を使用することができるようになる。即ち、トラ
ンザクションTRN1,TRN2が待機状態となるのは、最大で
もビットマップ30を複写用メモリ18に複写する期間だけ
となるので、従来の方式に比べてロック期間を著しく短
縮することができる。本発明では従来に比べて1万分の
1から10万分の1の程度まで短縮することができ、トラ
ンザクションのレスポンスを桁違いに改善することがで
きる。さらに、コンボイの発生が殆ど無くなると期待で
きることから、スループットの抜本的な改善も期待でき
る。
時間遷移の説明図である。図示のように、横軸の時間を
取り、トランザクション処理を線分で示している。前述
のように、従来技術ではビットマップ30をデータベース
20′に書き戻ししている間は、ビットマップ30を更新し
ようとするトランザクションTRN1,TRN2は待機状態とな
っていた。
2はビットマップ30をデータベース20′に書き戻す処理
との依存関係はない。ビットマップ30をデータベース2
0′に書き戻す準備として、ビットマップ30から複写用
メモリに複写(メモリ複写)を行う期間、即ち、t1から
t2のメモリ複写の期間だけトランザクションTRN1,TRN2
の待機時間となる。
は、ビットマップ30をデータベース20′に実際に書き戻
す期間に比べて桁違いに短いことから、t1からt2までの
期間のロックの競合は極めて少ないものとなる。
る。(A)は従来技術であり、(B)は本発明である。
図示のように、(A)の場合は共用バッファの書き戻し
の全期間にわたって書き戻しによるロックが必要であ
り、更新によるロックとの間で排他的にする必要があ
る。従って、共用バッファを更新するトランザクション
は共用バッファの書き戻し中はその書き戻しの完了を待
つことになり、トランザクションのレスポンスが遅れる
ことになる。
ためのロックは、書き戻しの準備としてのメモリ複写の
期間だけである。従って、入出力を伴う実際の書き戻し
中にはロックは解除されるので、共用バッファを更新す
るトランザクションは、図示からも明らかなようにほと
んど待たされることはない。
の内容を不揮発化する際に、一時的に確保したメモリに
その内容を一旦複写し、その複写した内容を不揮発化す
るようにしているので、共用バッファの不揮発化による
ロック期間を大幅に短縮することができ、共用バッファ
の更新側のレスポンスを桁違いに向上させることができ
る。さらに、コンボイの発生が殆ど無くなると期待でき
ることから、スループットの抜本的な改善も期待でき
る。
及び装置によれば、データベース管理システムを介して
アプリケーション・プログラムがデータベースをアクセ
スする場合に、介在する共用バッファのロック期間を著
しく短縮することができるので、例えば、複数のトラン
ザクションが共用する共用バッファのロック期間によっ
て他のトランザクションが待機することがなくなる。従
って、コンピュータを使用したデータ処理システムにお
いて、システムのスループットを大幅に向上させること
ができるので産業上の利用性は大いに期待することがで
きる。現在のOLTPオンライン・トランザクション処理で
は、1000多重以上の同時処理は極めて普通になりつつあ
り、ホットスポットでの待ちは直ちにコンボイに結びつ
くことは、正に過密化している世界の都市の交通渋滞か
ら容易に類推することができる。本発明によりトランザ
クションの流れを完結的に妨げる交通事故処理に相当す
る書き戻し期間の大幅な短縮により、コンボイの発生が
殆ど無くなると期待できることから、レスポンス効果よ
りも、むしろ間接的なスループットの抜本的な改善を期
待することができる。
Claims (4)
- 【請求項1】データ処理システムにおける共用バッファ
のロック期間短縮処理方法において、該方法は以下の過
程、即ち、 共用バッファ(17)の内容を不揮発化する際に使用する
複写用メモリ(18)を確保する過程()と、 対象となる共用バッファを一時的にロックする過程
()と、 不揮発化する共用バッファの内容を該複写用メモリに複
写する過程()と、 該複写用メモリへの複写後に該共用バッファをアンロッ
クする過程()と、 該複写用メモリの内容を不揮発化する過程()とを備
えており、 該共用バッファの内容を該複写用メモリに複写する前
に、対象となる共用バッファをロックし、複写を完了し
た後、該複写用メモリの内容を不揮発化する前に、共用
バッファをアンロックすることを特徴とするデータ処理
システムにおける共用バッファのロック期間短縮処理方
法。 - 【請求項2】不揮発化の対象となる共用バッファに更新
の可能性があるか否かを判定する過程をさらに備えてお
り、 更新の可能性がないときに、該複写用メモリを確保せ
ず、かつその複写用メモリへの複写処理を行わずに、対
象となる共用バッファの内容をデータベースに書き戻し
て不揮発化することを特徴とする請求の範囲1項に記載
のデータ処理システムにおける共用バッファのロック期
間短縮処理方法。 - 【請求項3】データベースへのアクセス機能を提供し管
理するデータベース管理システム(11)と、複数のトラ
ンザクションが共通に使用する共用バッファ(群)(1
7)と、一時的に更新前ログ及び更新後ログを格納する
ログバッファ(16)と、更新前ログ及び更新後ログを格
納するログファイル(19)と、諸データを格納するデー
タベース(20)とを備えるデータ処理システムにおい
て、 前記データ処理システムは、さらに一時的に前記共用バ
ッファ(17)の内容を保持するための複写用メモリ(1
8)を備え、 前記データベース管理システムは、さらに対象となる共
用バッファの内容を前記複写用メモリに複写する制御を
行う置換制御部(12)と、対象となる共用バッファの更
新の可能性を判定する処理選択部(13)と、対象となる
共用バッファの排他制御を行う排他制御部(14)と、更
新前ログ又は更新後ログを採取するログ制御部(15)と
を備え、 前記共用バッファの内容を前記複写用メモリに複写する
前に、対象となる共用バッファをロックし、前記複写を
完了した後で前記複写用メモリの内容を不揮発化する前
に、共用バッファをアンロックし、共用バッファのロッ
ク期間の短縮を図るようにしたことを特徴とするデータ
処理システム。 - 【請求項4】前記処理選択部(13)は、不揮発化の対象
となる共用バッファに更新の可能性があるか否かを判定
するに際して、更新の可能性がないときに、前記複写用
メモリを確保せず、かつその複写用メモリへの複写処理
を行わずに、対象となる共用バッファの内容をデータベ
ースに書き戻して不揮発化することを特徴とする請求の
範囲3項に記載のデータ処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19649791 | 1991-08-06 | ||
JP3-196497 | 1991-08-06 | ||
PCT/JP1992/000996 WO1993003436A1 (en) | 1991-08-06 | 1992-08-05 | Method and apparatus for reducing lock period of shared buffer |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3107094B2 true JP3107094B2 (ja) | 2000-11-06 |
Family
ID=16358753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05503476A Expired - Lifetime JP3107094B2 (ja) | 1991-08-06 | 1992-08-05 | 共用バッファのロック期間短縮処理方法及び装置 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0551528B1 (ja) |
JP (1) | JP3107094B2 (ja) |
DE (1) | DE69228297T2 (ja) |
WO (1) | WO1993003436A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016157492A1 (ja) * | 2015-04-02 | 2016-10-06 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430553B2 (en) * | 2005-12-30 | 2008-09-30 | Microsoft Corporation | Managing states with delta pager |
US8510281B2 (en) * | 2008-12-18 | 2013-08-13 | Sap Ag | Ultimate locking mechanism |
US9794340B2 (en) | 2014-09-15 | 2017-10-17 | Ge Aviation Systems Llc | Mechanism and method for accessing data in a shared memory |
US10037166B2 (en) | 2016-08-03 | 2018-07-31 | Ge Aviation Systems Llc | Tracking memory allocation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816881B2 (ja) * | 1986-04-18 | 1996-02-21 | 株式会社日立製作所 | データベース更新方法 |
JPH0816880B2 (ja) * | 1986-04-18 | 1996-02-21 | 株式会社日立製作所 | データベースシステムおよびその処理方法 |
JPS63133240A (ja) * | 1986-11-25 | 1988-06-06 | Hitachi Ltd | 常駐テ−ブルの内容保証方式 |
JPS6468850A (en) * | 1987-09-10 | 1989-03-14 | Fujitsu Ltd | System crush recovery processing system |
JPH033046A (ja) * | 1989-05-31 | 1991-01-09 | Hitachi Ltd | ログ記録管理方式 |
JP2503288B2 (ja) * | 1990-05-11 | 1996-06-05 | 富士通株式会社 | デ―タベ―ス処理方式 |
JP2503289B2 (ja) * | 1990-05-15 | 1996-06-05 | 富士通株式会社 | デ―タベ―ス管理処理方式 |
-
1992
- 1992-08-05 JP JP05503476A patent/JP3107094B2/ja not_active Expired - Lifetime
- 1992-08-05 WO PCT/JP1992/000996 patent/WO1993003436A1/ja active IP Right Grant
- 1992-08-05 DE DE69228297T patent/DE69228297T2/de not_active Expired - Fee Related
- 1992-08-05 EP EP92916959A patent/EP0551528B1/en not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016157492A1 (ja) * | 2015-04-02 | 2016-10-06 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
JPWO2016157492A1 (ja) * | 2015-04-02 | 2017-11-24 | 株式会社日立製作所 | 共有リソース更新装置及び共有リソース更新方法 |
US10838949B2 (en) | 2015-04-02 | 2020-11-17 | Hitachi, Ltd. | Shared resource update apparatus and shared resource update method |
Also Published As
Publication number | Publication date |
---|---|
DE69228297T2 (de) | 1999-06-02 |
WO1993003436A1 (en) | 1993-02-18 |
EP0551528B1 (en) | 1999-01-27 |
EP0551528A4 (ja) | 1994-01-05 |
DE69228297D1 (de) | 1999-03-11 |
EP0551528A1 (en) | 1993-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5715447A (en) | Method of and an apparatus for shortening a lock period of a shared buffer | |
US5276835A (en) | Non-blocking serialization for caching data in a shared cache | |
JP2505939B2 (ja) | デ―タのキャストアウトを制御する方法 | |
JP2559959B2 (ja) | 複数の非同期的プロセスによりレコードを更新する方法 | |
US5946711A (en) | System for locking data in a shared cache | |
Levandoski et al. | High performance transactions in deuteronomy | |
US5414840A (en) | Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory | |
CN101495976B (zh) | 用于直接更新软件事务存储器的方法和*** | |
EP0442715B1 (en) | Transaction processing system and method with reduced locking | |
EP1040433B1 (en) | A fine-grained consistency mechanism for optimistic concurrency control using lock groups | |
AU2002335503B2 (en) | Disk writes in a distributed shared disk system | |
US5333303A (en) | Method for providing data availability in a transaction-oriented system during restart after a failure | |
US20070174541A1 (en) | Methods to perform disk writes in a distributed shared disk system needing consistency across failures | |
JP2000284995A (ja) | データ処理装置及び記録媒体 | |
DE112007001171T5 (de) | Verfahren für virtualisierten Transaktionsspeicher bei globalem Überlauf | |
CA2440277C (en) | Managing checkpoint queues in a multiple node system | |
JPH08328933A (ja) | 並列処理システムのファイルアクセス制御方式 | |
CN113220490A (zh) | 异步写回持久化内存的事务持久化方法及*** | |
JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
JP2009009599A (ja) | 故障後、どこで回復するかについての情報を管理する方法、故障後、回復するための方法、および、多数のキャッシュを含むシステムにおける故障の後、データ項目の現在のバージョンを回復させるための方法 | |
JP3093609B2 (ja) | キャッシュメモリの記憶一致制御装置及び方法 | |
EP1366420B1 (en) | Disk writes in a distributed shared disk system | |
JPH0588954A (ja) | データベースの更新方法 | |
JP2933011B2 (ja) | ファイルの排他制御システム | |
JP2765672B2 (ja) | データ転送及びデータ除去のための制御方法並びにコンピュータ・システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080908 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080908 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090908 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090908 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100908 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100908 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110908 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120908 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term |