JPH0588954A - データベースの更新方法 - Google Patents
データベースの更新方法Info
- Publication number
- JPH0588954A JPH0588954A JP3249504A JP24950491A JPH0588954A JP H0588954 A JPH0588954 A JP H0588954A JP 3249504 A JP3249504 A JP 3249504A JP 24950491 A JP24950491 A JP 24950491A JP H0588954 A JPH0588954 A JP H0588954A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- commit
- data
- update
- copy
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【目的】 本発明の目的はトランザクションの原子性を
保証し、排他ロックの期間を短縮し、さらにバックアッ
プコピーへのアクセス回数を削減し、主記憶データベー
スシステムのスループット性能を向上させることであ
る。 【構成】 本発明はトランザクション104 がデータに対
する排他ロックを獲得した後に、プライマリコピー101
に対するデータの更新と更新情報格納領域への登録を行
い、コミットを宣言した時点でトランザクション自身の
トランザクション番号をコミットリスト202 に登録する
と共に、それまでに獲得したデータに対する排他ロック
を全て解除し、一括コミット処理部203 はコミットリス
トに登録されたトランザクション番号に対応するトラン
ザクションがコミット可能かどうかを更新情報格納領域
201 に登録された情報に基づいて判定を行い、コミット
可能と判定したトランザクション群について、一括して
更新データをプライマリコピー101 からバックアップコ
ピー102 に転送して、コミット完了をトランザクション
104 に通知する。
保証し、排他ロックの期間を短縮し、さらにバックアッ
プコピーへのアクセス回数を削減し、主記憶データベー
スシステムのスループット性能を向上させることであ
る。 【構成】 本発明はトランザクション104 がデータに対
する排他ロックを獲得した後に、プライマリコピー101
に対するデータの更新と更新情報格納領域への登録を行
い、コミットを宣言した時点でトランザクション自身の
トランザクション番号をコミットリスト202 に登録する
と共に、それまでに獲得したデータに対する排他ロック
を全て解除し、一括コミット処理部203 はコミットリス
トに登録されたトランザクション番号に対応するトラン
ザクションがコミット可能かどうかを更新情報格納領域
201 に登録された情報に基づいて判定を行い、コミット
可能と判定したトランザクション群について、一括して
更新データをプライマリコピー101 からバックアップコ
ピー102 に転送して、コミット完了をトランザクション
104 に通知する。
Description
【0001】
【産業上の利用分野】本発明はデータベースの更新方法
に係り、特に、プロセッサの主記憶装置上にデータベー
スのプライマリコピー、ディスク装置上にデータベース
のバックアップコピーを格納するシステムにおいて、シ
ステムの処理性能を向上させるために、複数のトランザ
クションを一括してコミットさせることにより、データ
ベースが更新される際のバックアップコピーへのアクセ
ス回数を削減するとともに、更新のためのデータが排他
ロックされる期間を短縮するデータベースの更新方法に
関する。
に係り、特に、プロセッサの主記憶装置上にデータベー
スのプライマリコピー、ディスク装置上にデータベース
のバックアップコピーを格納するシステムにおいて、シ
ステムの処理性能を向上させるために、複数のトランザ
クションを一括してコミットさせることにより、データ
ベースが更新される際のバックアップコピーへのアクセ
ス回数を削減するとともに、更新のためのデータが排他
ロックされる期間を短縮するデータベースの更新方法に
関する。
【0002】
【従来の技術】データベース処理を高速化するために、
データベースをプロセッサの主記憶装置上に格納する方
法がある。一般にプロセッサの主記憶装置は、システム
に障害が発生したり、停電したりすると、その内容を喪
失してしまう。従って、主記憶装置上にデータベースの
プライマリコピーを格納すると共に、データベースのバ
ックアップコピーを磁気ディスク装置や補助電源付きの
半導体ディスク装置上に格納しておくことが必要とな
る。
データベースをプロセッサの主記憶装置上に格納する方
法がある。一般にプロセッサの主記憶装置は、システム
に障害が発生したり、停電したりすると、その内容を喪
失してしまう。従って、主記憶装置上にデータベースの
プライマリコピーを格納すると共に、データベースのバ
ックアップコピーを磁気ディスク装置や補助電源付きの
半導体ディスク装置上に格納しておくことが必要とな
る。
【0003】データベースは同時に走行する複数のトラ
ンザクションによって検索または更新される。各トラン
ザクションは処理終了時にコミット(正常終了)また
は、アボート(異常終了)を宣言する。トランザクショ
ンがコミットを宣言し、システムによって受理された場
合は、そのトランザクションによって更新された結果が
全て有効となる。逆にトランザクションがアボートを宣
言するかまたは、コミットが受理されなかった場合は、
そのトランザクションによって更新された結果が全て無
効となる。この性質は、トランザクションの原子性と呼
ばれる。トランザクションの処理は性能上の理由によ
り、通常はプライマリコピーに対してのみ行われる。し
かしながら、前に述べたように、主記憶装置はその内容
を喪失してしまうことがあるため、コミット処理の完了
時点では、プライマリコピーに対する更新結果をバック
アップコピーに対しても反映しておく必要がある。
ンザクションによって検索または更新される。各トラン
ザクションは処理終了時にコミット(正常終了)また
は、アボート(異常終了)を宣言する。トランザクショ
ンがコミットを宣言し、システムによって受理された場
合は、そのトランザクションによって更新された結果が
全て有効となる。逆にトランザクションがアボートを宣
言するかまたは、コミットが受理されなかった場合は、
そのトランザクションによって更新された結果が全て無
効となる。この性質は、トランザクションの原子性と呼
ばれる。トランザクションの処理は性能上の理由によ
り、通常はプライマリコピーに対してのみ行われる。し
かしながら、前に述べたように、主記憶装置はその内容
を喪失してしまうことがあるため、コミット処理の完了
時点では、プライマリコピーに対する更新結果をバック
アップコピーに対しても反映しておく必要がある。
【0004】また、複数のトランザクションが同一のデ
ータを同時に更新することを防止するため、各トランザ
クションはデータの更新に先立ってデータに対する排他
ロックを獲得する。この排他ロックは1つのトランザク
ションが終了するまでの期間中ずっと保留され、コミッ
ト終了または、アボート処理が完了した時点で解除され
る。
ータを同時に更新することを防止するため、各トランザ
クションはデータの更新に先立ってデータに対する排他
ロックを獲得する。この排他ロックは1つのトランザク
ションが終了するまでの期間中ずっと保留され、コミッ
ト終了または、アボート処理が完了した時点で解除され
る。
【0005】図5は従来のデータベースの更新方法を説
明するための図を示す。各トランザクション1041 〜
104n は主記憶装置100のプライマリコピー101
に対してトランザクション自身が更新したデータのアド
レスを同じ主記憶装置100の更新リスト103に登録
する。一般には、データベースはページと呼ばれる一定
の大きさの領域に分類されており、且つ個々のデータを
管理する煩雑さを避けるために、更新したデータが収容
されているデータベースのページ番号を用いて、更新リ
スト103を作成する。
明するための図を示す。各トランザクション1041 〜
104n は主記憶装置100のプライマリコピー101
に対してトランザクション自身が更新したデータのアド
レスを同じ主記憶装置100の更新リスト103に登録
する。一般には、データベースはページと呼ばれる一定
の大きさの領域に分類されており、且つ個々のデータを
管理する煩雑さを避けるために、更新したデータが収容
されているデータベースのページ番号を用いて、更新リ
スト103を作成する。
【0006】トランザクション104がコミットを宣言
した場合は、コミット処理部105が更新リスト103
によってポイントされた全てのページを主記憶装置10
0のプライマリコピー101からバックアップコピー1
02に転送する。トランザクション104がアボートを
宣言した場合には、コミットの場合とは逆に更新リスト
によってポイントされた全てのページに対してディスク
装置106のバックアップコピー102からプライマリ
コピー101に転送する。いずれの場合も、転送が終了
した段階で、更新リスト103の内容を削除する。ペー
ジに対する排他ロックは更新リスト103の作成前に獲
得され、更新リスト103の削除後に解除される。
した場合は、コミット処理部105が更新リスト103
によってポイントされた全てのページを主記憶装置10
0のプライマリコピー101からバックアップコピー1
02に転送する。トランザクション104がアボートを
宣言した場合には、コミットの場合とは逆に更新リスト
によってポイントされた全てのページに対してディスク
装置106のバックアップコピー102からプライマリ
コピー101に転送する。いずれの場合も、転送が終了
した段階で、更新リスト103の内容を削除する。ペー
ジに対する排他ロックは更新リスト103の作成前に獲
得され、更新リスト103の削除後に解除される。
【0007】なお、プライマリコピー101からバック
アップコピー102へのぺージ転送中に障害が発生する
場合への対策として、バックアップコピー102を二重
化しておき、一方への転送が完了した後に、もう一方へ
の転送を開始する方法が用いられる。
アップコピー102へのぺージ転送中に障害が発生する
場合への対策として、バックアップコピー102を二重
化しておき、一方への転送が完了した後に、もう一方へ
の転送を開始する方法が用いられる。
【0008】
【発明が解決しようとする課題】しかし、上記の従来の
方法では、トランザクション104がコミットする毎
に、プライマリコピー101からバックアップコピー1
02へのページ転送が行われるため、トランザクション
104の実行頻度に比例してバックアップコピー102
へのアクセス回数が多くなるという問題がある。
方法では、トランザクション104がコミットする毎
に、プライマリコピー101からバックアップコピー1
02へのページ転送が行われるため、トランザクション
104の実行頻度に比例してバックアップコピー102
へのアクセス回数が多くなるという問題がある。
【0009】また、一般にはプライマリコピー101を
更新する時間よりも、バックアップコピー102へのぺ
ージ転送を行う時間の方が、ディスク装置106への入
出力を伴うために、はるかに長くなるにもかからわず、
ページに対する排他ロックはバックアップコピー102
へのページ転送が終了するまで解除できず、排他ロック
がネックとなって、システムが単位時間に処理できるト
ランザクション数が制限されている。
更新する時間よりも、バックアップコピー102へのぺ
ージ転送を行う時間の方が、ディスク装置106への入
出力を伴うために、はるかに長くなるにもかからわず、
ページに対する排他ロックはバックアップコピー102
へのページ転送が終了するまで解除できず、排他ロック
がネックとなって、システムが単位時間に処理できるト
ランザクション数が制限されている。
【0010】本発明は上記の点に鑑みなされたもので、
トランザクションの原子性を保証しつつ、排他ロックの
期間を短縮し、バックアップコピーへのアクセス回数を
削減するためのデータベースの更新方法を提供すること
を目的とする。
トランザクションの原子性を保証しつつ、排他ロックの
期間を短縮し、バックアップコピーへのアクセス回数を
削減するためのデータベースの更新方法を提供すること
を目的とする。
【0011】
【課題を解決するための手段】図1は本発明のデータベ
ース更新方法を説明するための図を示す。プロセッサの
主記憶装置100上にデータベースのプライマリコピー
101を格納し、ディスク装置106上にデータベース
のバックアップコピー102を格納するデータベース処
理システムにおいて、主記憶装置100上にトランザク
ション104が更新したデータに関する情報を格納する
ための更新情報格納領域201と、コミットを宣言した
トランザクション1041 のトランザクション番号を格
納するためのコミットリスト202と、トランザクショ
ン104がプライマリコピー101に対して更新を行っ
た結果をバックアップコピー102に反映させるための
一括コミット処理部203を有し、トランザクション1
04は、データに対する排他ロックを獲得した後にプラ
イマリコピー101に対するデータの更新と更新情報格
納領域201への登録を行い、コミットを宣言した時点
でトランザクション104自身のトランザクション番号
をコミットリスト202に登録すると共に、それまでに
獲得したデータに対する排他ロックを全て解除し、一括
コミット処理部203はコミットリスト202に登録さ
れたトランザクション104がコミット可能かどうかを
更新情報格納領域201に登録された情報に基づいて判
定を行い、コミット可能と判定したトランザクション1
04群について、一括して更新データをプライマリコピ
ー101からバックアップコピー102に転送して、コ
ミット完了をトランザクション群104に通知する。
ース更新方法を説明するための図を示す。プロセッサの
主記憶装置100上にデータベースのプライマリコピー
101を格納し、ディスク装置106上にデータベース
のバックアップコピー102を格納するデータベース処
理システムにおいて、主記憶装置100上にトランザク
ション104が更新したデータに関する情報を格納する
ための更新情報格納領域201と、コミットを宣言した
トランザクション1041 のトランザクション番号を格
納するためのコミットリスト202と、トランザクショ
ン104がプライマリコピー101に対して更新を行っ
た結果をバックアップコピー102に反映させるための
一括コミット処理部203を有し、トランザクション1
04は、データに対する排他ロックを獲得した後にプラ
イマリコピー101に対するデータの更新と更新情報格
納領域201への登録を行い、コミットを宣言した時点
でトランザクション104自身のトランザクション番号
をコミットリスト202に登録すると共に、それまでに
獲得したデータに対する排他ロックを全て解除し、一括
コミット処理部203はコミットリスト202に登録さ
れたトランザクション104がコミット可能かどうかを
更新情報格納領域201に登録された情報に基づいて判
定を行い、コミット可能と判定したトランザクション1
04群について、一括して更新データをプライマリコピ
ー101からバックアップコピー102に転送して、コ
ミット完了をトランザクション群104に通知する。
【0012】
【作用】本発明によるデータベースの更新方法によれ
ば、プライマリコピー上での処理が完了したトランザク
ションは、ページに対する排他ロックを解除した後に、
コミットリスト202にトランザクション自身のトラン
ザクション番号を登録して、一括コミット処理部203
によるバックアップコピーへのページ転送が完了するま
で待ち合わせる。一括コミット処理部203は、コミッ
ト要求中のトランザクション104の中から1つのトラ
ンザクション1041 が更新した全てのページが他のト
ランザクション104による更新途中の状態でない、即
ち排他ロックが獲得されていないものを選択して、その
コミット要求中のトランザクション1041 が更新した
全てのページをプライマリコピー101からバックアッ
プコピー102へ転送する。
ば、プライマリコピー上での処理が完了したトランザク
ションは、ページに対する排他ロックを解除した後に、
コミットリスト202にトランザクション自身のトラン
ザクション番号を登録して、一括コミット処理部203
によるバックアップコピーへのページ転送が完了するま
で待ち合わせる。一括コミット処理部203は、コミッ
ト要求中のトランザクション104の中から1つのトラ
ンザクション1041 が更新した全てのページが他のト
ランザクション104による更新途中の状態でない、即
ち排他ロックが獲得されていないものを選択して、その
コミット要求中のトランザクション1041 が更新した
全てのページをプライマリコピー101からバックアッ
プコピー102へ転送する。
【0013】従って、ページに対する排他ロックは、プ
ライマリコピー101からバックアップコピー102へ
のページ転送を行う前に解除されており、引き続き他の
トランザクション104が同一のページを更新すること
が可能になる。また、ページ転送の時期を遅らせること
により、複数のトランザクションが同一ページに対して
更新した最終結果のみがバックアップコピー102に転
送されるため、バックアップコピー102へのアクセス
回数が削減される。
ライマリコピー101からバックアップコピー102へ
のページ転送を行う前に解除されており、引き続き他の
トランザクション104が同一のページを更新すること
が可能になる。また、ページ転送の時期を遅らせること
により、複数のトランザクションが同一ページに対して
更新した最終結果のみがバックアップコピー102に転
送されるため、バックアップコピー102へのアクセス
回数が削減される。
【0014】また、一括コミット処理部203から完了
通知が到着したトランザクションが更新したすべてのペ
ージにおいて、プライマリコピー101とバックアップ
コピー102の内容が一致していることが保証される。
このため、仮にこの後プライマリコピー101が喪失し
たとしても、バックアップコピー102中にトランザク
ションの処理結果が保存されている。また、逆に、トラ
ンザクションが更新途中のページ及びトランザクション
によるページ更新は完了していても、そのトランザクシ
ョンが更新したページが他のトランザクションによって
更新途中である時には、バックアップコピー102への
ページ転送が行われることはなく、仮にこの状態でプラ
イマリコピー101が喪失した場合には、実行中及びコ
ミットを要求中の全てのトランザクションをアボートす
ることにより、トランザクション実行前のデータベース
の内容が完全な状態でバックアップコピー中に保存され
ている。即ち、トランザクションの原子性は従来の方法
と同様に保証される。
通知が到着したトランザクションが更新したすべてのペ
ージにおいて、プライマリコピー101とバックアップ
コピー102の内容が一致していることが保証される。
このため、仮にこの後プライマリコピー101が喪失し
たとしても、バックアップコピー102中にトランザク
ションの処理結果が保存されている。また、逆に、トラ
ンザクションが更新途中のページ及びトランザクション
によるページ更新は完了していても、そのトランザクシ
ョンが更新したページが他のトランザクションによって
更新途中である時には、バックアップコピー102への
ページ転送が行われることはなく、仮にこの状態でプラ
イマリコピー101が喪失した場合には、実行中及びコ
ミットを要求中の全てのトランザクションをアボートす
ることにより、トランザクション実行前のデータベース
の内容が完全な状態でバックアップコピー中に保存され
ている。即ち、トランザクションの原子性は従来の方法
と同様に保証される。
【0015】
【実施例】先ず、前記の図1を用いて説明する。図1に
おいて、図3と同一構成部分には同一符号を付し、その
説明を省略する。本発明の構成は、プロセッサの主記憶
装置100上にデータベースのプライマリコピー10
1、更新情報格納領域201、コミットリスト202が
設けられる。さらに、通常のトランザクション104と
は非同期でかつ一定周期で起動される一括コミット処理
部203が設けられ、従来と同様にディスク装置106
上にバックアップコピー102が設けられる。
おいて、図3と同一構成部分には同一符号を付し、その
説明を省略する。本発明の構成は、プロセッサの主記憶
装置100上にデータベースのプライマリコピー10
1、更新情報格納領域201、コミットリスト202が
設けられる。さらに、通常のトランザクション104と
は非同期でかつ一定周期で起動される一括コミット処理
部203が設けられ、従来と同様にディスク装置106
上にバックアップコピー102が設けられる。
【0016】主記憶装置100上に設けられた更新情報
格納領域201は、トランザクション104が更新した
データに関する情報として、トランザクション番号、ペ
ージ番号、更新されたデータのページ内での相対位置、
長さ、更新後の値及びシステム内通番を記録した更新エ
ントリを格納する。コミットリスト202はコミットを
宣言したトランザクションのトランザクション番号を格
納する。
格納領域201は、トランザクション104が更新した
データに関する情報として、トランザクション番号、ペ
ージ番号、更新されたデータのページ内での相対位置、
長さ、更新後の値及びシステム内通番を記録した更新エ
ントリを格納する。コミットリスト202はコミットを
宣言したトランザクションのトランザクション番号を格
納する。
【0017】次にトランザクション104と一括コミッ
ト処理部203の処理について説明する。図2は本発明
の一実施例のトランザクション104の処理のフローチ
ャートを示す。 (ステップ20) 各トランザクション104はデータ
の更新に先立って、データが収容されているページに対
する排他ロックを獲得する。 (ステップ21) トランザクション104は主記憶装
置100のプライマリコピー101上でデータを更新す
る。 (ステップ22) 更新データにより更新エントリを作
成する。 (ステップ23) ステップ22で作成された更新エン
トリを主記憶装置100の更新情報格納領域201に格
納する。 (ステップ24) トランザクション104がアボート
を宣言していれば、ステップ29に移行する。 (ステップ25) トランザクション104がコミット
を宣言していなければ、ステップ20に戻り、別のデー
タに対して処理を繰り返す。 (ステップ26) トランザクション104がコミット
を宣言していれば、主記憶装置100のコミットリスト
に自身のトランザクション番号を登録する。 (ステップ27) トランザクション104自身が獲得
したページに対する排他ロックを解除する。 (ステップ28) 一括コミット処理部203からコミ
ット処理完了通知が到着するまで待機後、終了する。 (ステップ29) トランザクション104がアボート
を宣言していれば、それまでに、トランザクション10
4自身が更新した全てのページについて、バックアップ
コピー102の内容をプライマリコピー101に転送す
る。 (ステップ30) 更新情報格納領域201に格納され
ている更新エントリのうちトランザクション104自身
が作成したもの以外について、システム内通番の順序に
従って更新後のデータ値をプライマリコピー101上に
上書きして、トランザクション自身が実行を開始する直
前の状態に復元する。 (ステップ31) また、トランザクション自身が作成
した更新エントリは削除する。 (ステップ32) トランザクション自身が獲得したペ
ージに対する排他ロックを解除して、トランザクション
自身の処理を全て終了する。
ト処理部203の処理について説明する。図2は本発明
の一実施例のトランザクション104の処理のフローチ
ャートを示す。 (ステップ20) 各トランザクション104はデータ
の更新に先立って、データが収容されているページに対
する排他ロックを獲得する。 (ステップ21) トランザクション104は主記憶装
置100のプライマリコピー101上でデータを更新す
る。 (ステップ22) 更新データにより更新エントリを作
成する。 (ステップ23) ステップ22で作成された更新エン
トリを主記憶装置100の更新情報格納領域201に格
納する。 (ステップ24) トランザクション104がアボート
を宣言していれば、ステップ29に移行する。 (ステップ25) トランザクション104がコミット
を宣言していなければ、ステップ20に戻り、別のデー
タに対して処理を繰り返す。 (ステップ26) トランザクション104がコミット
を宣言していれば、主記憶装置100のコミットリスト
に自身のトランザクション番号を登録する。 (ステップ27) トランザクション104自身が獲得
したページに対する排他ロックを解除する。 (ステップ28) 一括コミット処理部203からコミ
ット処理完了通知が到着するまで待機後、終了する。 (ステップ29) トランザクション104がアボート
を宣言していれば、それまでに、トランザクション10
4自身が更新した全てのページについて、バックアップ
コピー102の内容をプライマリコピー101に転送す
る。 (ステップ30) 更新情報格納領域201に格納され
ている更新エントリのうちトランザクション104自身
が作成したもの以外について、システム内通番の順序に
従って更新後のデータ値をプライマリコピー101上に
上書きして、トランザクション自身が実行を開始する直
前の状態に復元する。 (ステップ31) また、トランザクション自身が作成
した更新エントリは削除する。 (ステップ32) トランザクション自身が獲得したペ
ージに対する排他ロックを解除して、トランザクション
自身の処理を全て終了する。
【0018】一括コミット処理部203は、一定周期で
主記憶装置100のコミットリスト202中のトランザ
クション番号について、コミット可能かどうかを更新情
報格納領域201に格納されている更新エントリを使用
して以下の条件により判定する。
主記憶装置100のコミットリスト202中のトランザ
クション番号について、コミット可能かどうかを更新情
報格納領域201に格納されている更新エントリを使用
して以下の条件により判定する。
【0019】コミット要求したトランザクション(T
1)が更新したページのうちで、少なくとも1つが他の
トランザクションによって排他ロックされていれば、コ
ミットできない。 トランザクション(T1)が更新したページのうち
で、少なくとも1つが他のコミットを要求中のトランザ
クション(T2)によって更新されている場合、トラン
ザクション(T2)が更新したページのうちで、少なく
とも1つがさらに別のトランザクションによって排他ロ
ックされていれば、トランザクション(T1)はコミッ
トできない。 以降再帰的に、T2が更新したページのうちで、少な
くとも1つが他のコミットを要求中のトランザクション
(T3)によって更新されている場合、トランザクショ
ン(T3)が更新したページのうちで、少なくとも1つ
がさらに別のトランザクションによって排他ロックされ
ていれば、コミットできない。 上記の条件,,のいずれにも該当しない場合、
トランザクション(T1)はコミット可能である。
1)が更新したページのうちで、少なくとも1つが他の
トランザクションによって排他ロックされていれば、コ
ミットできない。 トランザクション(T1)が更新したページのうち
で、少なくとも1つが他のコミットを要求中のトランザ
クション(T2)によって更新されている場合、トラン
ザクション(T2)が更新したページのうちで、少なく
とも1つがさらに別のトランザクションによって排他ロ
ックされていれば、トランザクション(T1)はコミッ
トできない。 以降再帰的に、T2が更新したページのうちで、少な
くとも1つが他のコミットを要求中のトランザクション
(T3)によって更新されている場合、トランザクショ
ン(T3)が更新したページのうちで、少なくとも1つ
がさらに別のトランザクションによって排他ロックされ
ていれば、コミットできない。 上記の条件,,のいずれにも該当しない場合、
トランザクション(T1)はコミット可能である。
【0020】一括コミット処理部203は、コミット可
能と判定されたトランザクションが更新した全てのペー
ジについて、 (1) 排他ロックの獲得; (2) プライマリコピー101からバックアップコピー1
02へのページ転送; (3) 更新情報格納領域201からの更新エントリの削
除; (4) 排他ロックの解放 の順に処理を行う。これらの処理が全て完了した段階
で、コミット可能と判定されたトランザクションのトラ
ンザクション番号をコミットリスト202から削除し、
これらのトランザクションに対する完了通知を行う。
能と判定されたトランザクションが更新した全てのペー
ジについて、 (1) 排他ロックの獲得; (2) プライマリコピー101からバックアップコピー1
02へのページ転送; (3) 更新情報格納領域201からの更新エントリの削
除; (4) 排他ロックの解放 の順に処理を行う。これらの処理が全て完了した段階
で、コミット可能と判定されたトランザクションのトラ
ンザクション番号をコミットリスト202から削除し、
これらのトランザクションに対する完了通知を行う。
【0021】図3は本発明の一実施例を詳細に説明する
ための図を示す。同図中、図1と同一構成部分には同一
符号を付す。主記憶装置100はプライマリコピー10
1、更新情報格納領域201及びコミットリスト202
を有する。ディスク装置106はバックアップコピー1
02を有する。さらに、トランザクション104とは非
同期で一定周期で起動される一括コミット処理部203
がある。
ための図を示す。同図中、図1と同一構成部分には同一
符号を付す。主記憶装置100はプライマリコピー10
1、更新情報格納領域201及びコミットリスト202
を有する。ディスク装置106はバックアップコピー1
02を有する。さらに、トランザクション104とは非
同期で一定周期で起動される一括コミット処理部203
がある。
【0022】更新情報格納領域201には更新エントリ
301がある。同図では、4つのトランザクション(T
1)〜トランザクション(T4)はページP1〜P3に
対して以下のような状態を示している。 T1がP1を更新 T2がP2を更新 T3がP3を更新 T2がP1を更新 T4がP3を更新 の順序でプライマリコピー101を更新して、トランザ
クション(T4)を除くトランザクション(T1)〜ト
ランザクション(T3)がコミットを宣言した状態を示
す。
301がある。同図では、4つのトランザクション(T
1)〜トランザクション(T4)はページP1〜P3に
対して以下のような状態を示している。 T1がP1を更新 T2がP2を更新 T3がP3を更新 T2がP1を更新 T4がP3を更新 の順序でプライマリコピー101を更新して、トランザ
クション(T4)を除くトランザクション(T1)〜ト
ランザクション(T3)がコミットを宣言した状態を示
す。
【0023】更新情報格納領域201中の更新エントリ
301には、左から順に、システム内通番、トランザク
ション番号、更新したページ番号、データのページ内相
対位置、長さ、更新後の値が格納されており、システム
内通番の順序でチェインされている。また、コミットリ
スト202中では、トランザクション番号がコミットを
宣言したトランザクションの順序でチェインされてい
る。
301には、左から順に、システム内通番、トランザク
ション番号、更新したページ番号、データのページ内相
対位置、長さ、更新後の値が格納されており、システム
内通番の順序でチェインされている。また、コミットリ
スト202中では、トランザクション番号がコミットを
宣言したトランザクションの順序でチェインされてい
る。
【0024】図3において、一括コミット処理部203
が起動されたと仮定する。一括処理コミット部203
は、コミットリスト202と更新情報格納領域201の
中の情報を用いて、コミット可能なトランザクション
(T1)とトランザクション(T2)を選択し、トラン
ザクション(T1)とトランザクション(T2)によっ
て更新されたページP1とP2について、プライマリコ
ピー101からバックアップコピー102へのページ転
送を行い、トランザクション(T1)とトランザクショ
ン(T2)に関する全ての情報を、更新情報格納領域2
01及びコミットリスト202から削除し、これらの2
つのトランザクションに対して完了通知を行う。
が起動されたと仮定する。一括処理コミット部203
は、コミットリスト202と更新情報格納領域201の
中の情報を用いて、コミット可能なトランザクション
(T1)とトランザクション(T2)を選択し、トラン
ザクション(T1)とトランザクション(T2)によっ
て更新されたページP1とP2について、プライマリコ
ピー101からバックアップコピー102へのページ転
送を行い、トランザクション(T1)とトランザクショ
ン(T2)に関する全ての情報を、更新情報格納領域2
01及びコミットリスト202から削除し、これらの2
つのトランザクションに対して完了通知を行う。
【0025】以上述べた一括コミット処理部203の動
作のうち、コミット可能なトランザクションを選択する
1つの方法について説明する。図4は本発明の一実施例
の一括コミット処理部の動作のフローチャートを示す。 (ステップ40) コミット可能なトランザクションを
選択するその時点で、システム内を走行している全ての
トランザクション(図3の例ではT4)を一時的に停止
させる。 (ステップ41) 排他ロックされている全てのページ
の集合S0(図3の例では{P3})を求める。集合S
0は更新情報格納領域201中でコミットリスト202
に存在しないトランザクション(図3の例ではT4)が
登録した更新エントリ301から求めることができる。 (ステップ42) 更新エントリ301を走査する。 (ステップ43) 更新エントリ301より集合S0に
含まれるページのうち少なくとも1つにアクセスした全
てのトランザクション(図3の例ではT3とT4)を求
める。 (ステップ44) 集合S0に含まれるページにアクセ
スしたトランザクションをコミット不可能なトランザク
ションと判定する(図3の例ではT3とT4)。 (ステップ45) コミット不可と判定されたトランザ
クションがアクセスした全てのページの集合S1(図3
の例では{P3})を更新情報格納領域201から求め
る。 (ステップ46) ページの集合S1と集合S0の大き
さを比較する。S1≦S0の場合にはステップ51へ移
行する。 (ステップ47) もし、集合S1中に集合S0に含ま
れないページが存在する場合には、集合S1について集
合S0で用いた操作と同じ操作を繰り返す。即ち、更新
情報格納領域201の更新エントリ301を走査する。 (ステップ48) 更新エントリ301より集合S1に
含まれるページのうちの少なくとも1つにアクセスした
全てのトランザクションを求める。 (ステップ49) 集合S1に含まれるページにアクセ
スしたトランザクションをコミット不可能なトランザク
ションと判定する。 (ステップ50) コミット不可と判定されたトランザ
クションがアクセスした全てのページの集合S2を求め
る。 (ステップ51) ページの集合{S1}がそれ以上大
きくならなくなった時点で、コミット不可と判定されず
に残ったトランザクションをコミット可能なトランザク
ションとする。 (ステップ52) ページ集合S2と集合S1の大きさ
を比較する。 以降の処理はステップ47以降と同様である。 (ステップ53) 上記の処理の繰り返しにより、ペー
ジの集合がそれ以上大きくならなくなった時点でコミッ
ト可能と判定されたトランザクション(図3の例ではT
1とT2)がコミット可能なトランザクションである。
作のうち、コミット可能なトランザクションを選択する
1つの方法について説明する。図4は本発明の一実施例
の一括コミット処理部の動作のフローチャートを示す。 (ステップ40) コミット可能なトランザクションを
選択するその時点で、システム内を走行している全ての
トランザクション(図3の例ではT4)を一時的に停止
させる。 (ステップ41) 排他ロックされている全てのページ
の集合S0(図3の例では{P3})を求める。集合S
0は更新情報格納領域201中でコミットリスト202
に存在しないトランザクション(図3の例ではT4)が
登録した更新エントリ301から求めることができる。 (ステップ42) 更新エントリ301を走査する。 (ステップ43) 更新エントリ301より集合S0に
含まれるページのうち少なくとも1つにアクセスした全
てのトランザクション(図3の例ではT3とT4)を求
める。 (ステップ44) 集合S0に含まれるページにアクセ
スしたトランザクションをコミット不可能なトランザク
ションと判定する(図3の例ではT3とT4)。 (ステップ45) コミット不可と判定されたトランザ
クションがアクセスした全てのページの集合S1(図3
の例では{P3})を更新情報格納領域201から求め
る。 (ステップ46) ページの集合S1と集合S0の大き
さを比較する。S1≦S0の場合にはステップ51へ移
行する。 (ステップ47) もし、集合S1中に集合S0に含ま
れないページが存在する場合には、集合S1について集
合S0で用いた操作と同じ操作を繰り返す。即ち、更新
情報格納領域201の更新エントリ301を走査する。 (ステップ48) 更新エントリ301より集合S1に
含まれるページのうちの少なくとも1つにアクセスした
全てのトランザクションを求める。 (ステップ49) 集合S1に含まれるページにアクセ
スしたトランザクションをコミット不可能なトランザク
ションと判定する。 (ステップ50) コミット不可と判定されたトランザ
クションがアクセスした全てのページの集合S2を求め
る。 (ステップ51) ページの集合{S1}がそれ以上大
きくならなくなった時点で、コミット不可と判定されず
に残ったトランザクションをコミット可能なトランザク
ションとする。 (ステップ52) ページ集合S2と集合S1の大きさ
を比較する。 以降の処理はステップ47以降と同様である。 (ステップ53) 上記の処理の繰り返しにより、ペー
ジの集合がそれ以上大きくならなくなった時点でコミッ
ト可能と判定されたトランザクション(図3の例ではT
1とT2)がコミット可能なトランザクションである。
【0026】なお、上述の繰り返し処理では、更新情報
格納領域201に格納されている有限個数の更新エント
リ301を用いるため、処理は最悪の場合でも更新エン
トリ301の個数分の繰り返しで終了する。
格納領域201に格納されている有限個数の更新エント
リ301を用いるため、処理は最悪の場合でも更新エン
トリ301の個数分の繰り返しで終了する。
【0027】上述のように本発明は、トランザクション
104がコミットを宣言した時点で直ちに、即ち、バッ
クアップコピー102へのページ転送よりも前に、更新
されたページに対する排他ロックを解除可能にすること
により、排他ロックの期間を短縮することと、さらに、
同一のページを複数のトランザクションが順次更新を行
う状況下で、複数のトランザクション単位にまとめてバ
ックアップコピー102へのページ転送を行うことによ
り、バックアップコピー102へのアクセス回数が削減
される。
104がコミットを宣言した時点で直ちに、即ち、バッ
クアップコピー102へのページ転送よりも前に、更新
されたページに対する排他ロックを解除可能にすること
により、排他ロックの期間を短縮することと、さらに、
同一のページを複数のトランザクションが順次更新を行
う状況下で、複数のトランザクション単位にまとめてバ
ックアップコピー102へのページ転送を行うことによ
り、バックアップコピー102へのアクセス回数が削減
される。
【0028】なお、バックアップコピー102へのペー
ジ転送中に発生する障害への対策として、従来の方法と
同様に、バックアップコピー102を二重化しておき、
一方のボリュームへの転送が完了した後に、もう一方の
ボリュームへの転送を開始する方法を用いることができ
る。
ジ転送中に発生する障害への対策として、従来の方法と
同様に、バックアップコピー102を二重化しておき、
一方のボリュームへの転送が完了した後に、もう一方の
ボリュームへの転送を開始する方法を用いることができ
る。
【0029】
【発明の効果】上述のように本発明によれば、ページに
対する排他ロックをプライマリコピーからバックアップ
コピーへのページ転送を行う前に解除できるため、排他
ロックの期間を短縮できる。さらに、複数のトランザク
ションが同一ページを更新した場合にもページ転送は1
回で済むため、バックアップコピーへのアクセス回数を
削減できる。また、トランザクションの原子性は保証さ
れており、トランザクションがコミット完了した場合に
は、その更新結果がバックアップコピーに完全に反映さ
れており、逆にアボートした場合は、その更新前の状態
はバックアップコピーに完全に保存されている。
対する排他ロックをプライマリコピーからバックアップ
コピーへのページ転送を行う前に解除できるため、排他
ロックの期間を短縮できる。さらに、複数のトランザク
ションが同一ページを更新した場合にもページ転送は1
回で済むため、バックアップコピーへのアクセス回数を
削減できる。また、トランザクションの原子性は保証さ
れており、トランザクションがコミット完了した場合に
は、その更新結果がバックアップコピーに完全に反映さ
れており、逆にアボートした場合は、その更新前の状態
はバックアップコピーに完全に保存されている。
【0030】従って、短時間でトランザクションを処理
することができ、障害が発生しても復旧処理が簡易であ
る。
することができ、障害が発生しても復旧処理が簡易であ
る。
【図1】本発明のデータベース更新方法を説明するため
の図である。
の図である。
【図2】本発明の一実施例のトランザクションの処理の
フローチャートである。
フローチャートである。
【図3】本発明のデータベース更新方法の一実施例を説
明するための図である。
明するための図である。
【図4】本発明の一実施例の一括コミット処理部の動作
のフローチャートである。
のフローチャートである。
【図5】従来のデータベースの更新方法を説明するため
の図である。
の図である。
100 主記憶装置 101 プライマリコピー 102 バックアップコピー 103 更新リスト 104 トランザクション 105 コミット処理部 106 ディスク装置 201 更新情報格納領域 202 コミットリスト 203 一括コミット処理部 301 更新エントリ
Claims (1)
- 【請求項1】 プロセッサの主記憶装置上にデータベー
スのプライマリコピーを格納し、ディスク装置上にデー
タベースのバックアップコピーを格納するデータベース
処理システムにおいて、 主記憶装置上にトランザクションが更新したデータに関
する情報を格納するための更新情報格納領域と、コミッ
トを宣言したトランザクションのトランザクション番号
を格納するためのコミットリストと、 トランザクションが前記プライマリコピーに対して更新
を行った結果を前記バックアップコピーに反映させるた
めの一括コミット処理部を有し、 前記トランザクションはデータに対する排他ロックを獲
得した後にプライマリコピーに対する前記データの更新
と前記更新情報格納領域への登録を行い、 コミットを宣言した時点で前記トランザクション自身の
トランザクション番号を前記コミットリストに登録する
と共に、それまでに獲得したデータに対する排他ロック
を全て解除し、 前記一括コミット処理部は前記コミットリストに登録さ
れた前記トランザクション番号に対応するトランザクシ
ョンがコミット可能かどうかを前記更新情報格納領域に
登録された情報に基づいて判定を行い、コミット可能と
判定したトランザクション群について、一括して更新デ
ータを前記プライマリコピーから前記バックアップコピ
ーに転送して、コミット完了を前記トランザクション群
に通知することを特徴とするデータベースの更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3249504A JPH0588954A (ja) | 1991-09-27 | 1991-09-27 | データベースの更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3249504A JPH0588954A (ja) | 1991-09-27 | 1991-09-27 | データベースの更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0588954A true JPH0588954A (ja) | 1993-04-09 |
Family
ID=17193953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3249504A Pending JPH0588954A (ja) | 1991-09-27 | 1991-09-27 | データベースの更新方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0588954A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182216A (ja) * | 1993-12-22 | 1995-07-21 | Nec Corp | データベースのバックアップ装置 |
JP2002373082A (ja) * | 2001-06-15 | 2002-12-26 | Nec Corp | マルチタスク構成のトランザクション処理方法及びトランザクション処理プログラム |
US7836162B2 (en) | 2006-05-23 | 2010-11-16 | Nec Corporation | Transaction processing system and transaction processing method |
JP2013513887A (ja) * | 2009-12-15 | 2013-04-22 | インテル コーポレイション | バッファリングストアを利用してトランザクションを高速化するための機構 |
US8510281B2 (en) * | 2008-12-18 | 2013-08-13 | Sap Ag | Ultimate locking mechanism |
-
1991
- 1991-09-27 JP JP3249504A patent/JPH0588954A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07182216A (ja) * | 1993-12-22 | 1995-07-21 | Nec Corp | データベースのバックアップ装置 |
JP2002373082A (ja) * | 2001-06-15 | 2002-12-26 | Nec Corp | マルチタスク構成のトランザクション処理方法及びトランザクション処理プログラム |
US7836162B2 (en) | 2006-05-23 | 2010-11-16 | Nec Corporation | Transaction processing system and transaction processing method |
US8510281B2 (en) * | 2008-12-18 | 2013-08-13 | Sap Ag | Ultimate locking mechanism |
JP2013513887A (ja) * | 2009-12-15 | 2013-04-22 | インテル コーポレイション | バッファリングストアを利用してトランザクションを高速化するための機構 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6681226B2 (en) | Selective pessimistic locking for a concurrently updateable database | |
US5991768A (en) | Finer grained quiescence for data replication | |
CN101807169B (zh) | 事务型存储器访问的混合硬件软件实现 | |
US5276835A (en) | Non-blocking serialization for caching data in a shared cache | |
US6665783B2 (en) | Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes | |
JPH06222936A (ja) | 共用変数の値を更新する方法 | |
JPH0157373B2 (ja) | ||
JPH04229355A (ja) | データアクセス方法及びデータ処理システム | |
US5715447A (en) | Method of and an apparatus for shortening a lock period of a shared buffer | |
JPH05197604A (ja) | マルチプロセッサ・コンピュータ及びその動作方法 | |
JPH06332778A (ja) | トランザクション管理方法 | |
US20080104326A1 (en) | Facilitating store reordering through cacheline marking | |
US6012060A (en) | Sharing, updating data blocks among multiple nodes in a distributed system | |
US20100125707A1 (en) | Deadlock avoidance during store-mark acquisition | |
JPH08328933A (ja) | 並列処理システムのファイルアクセス制御方式 | |
JPH0588954A (ja) | データベースの更新方法 | |
JPH04284548A (ja) | データベース排他制御方式 | |
JP3107094B2 (ja) | 共用バッファのロック期間短縮処理方法及び装置 | |
JPH05307478A (ja) | データベース管理システムの構成法 | |
JPH0628199A (ja) | 並行処理の同期方法 | |
JP2834036B2 (ja) | ロック制御器 | |
JP2980610B2 (ja) | トランザクション管理装置 | |
JP4139632B2 (ja) | データベース管理方法およびシステム | |
JP2933011B2 (ja) | ファイルの排他制御システム | |
JPH0346033A (ja) | ジヨブ間データ転送制御方法 |