JPH0887436A - 分散db処理方式 - Google Patents

分散db処理方式

Info

Publication number
JPH0887436A
JPH0887436A JP6249980A JP24998094A JPH0887436A JP H0887436 A JPH0887436 A JP H0887436A JP 6249980 A JP6249980 A JP 6249980A JP 24998094 A JP24998094 A JP 24998094A JP H0887436 A JPH0887436 A JP H0887436A
Authority
JP
Japan
Prior art keywords
update
version number
server
record
transaction processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6249980A
Other languages
English (en)
Inventor
Hiroshi Ogino
博司 荻野
Toru Kurasawa
徹 倉沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP6249980A priority Critical patent/JPH0887436A/ja
Publication of JPH0887436A publication Critical patent/JPH0887436A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 確実かつ迅速にDB不整合を発見できるよう
にする。 【構成】 トランザクション処理部21は、サーバ3お
よび4からのDB更新応答が「正常終了」を示すもので
ある場合にのみDB23内の更新対象のレコードの更新
を行い、DB不整合の有無を示す情報を有するDB更新
応答をクライアント1に返却する。バージョン番号制御
部22は、DB23内の更新対象のレコード中のバージ
ョン番号に基づく番号判定情報をサーバ3および4への
DB更新要求に付加する。トランザクション処理部31
および41は、バージョン番号の正当性が認識された場
合にのみDB33および43内の更新対象のレコードの
更新を行い、更新前バージョン番号を有するDB更新応
答をサーバ2に返却する。バージョン番号制御部32お
よび42は、DB33および43内の更新対象のレコー
ド中のバージョン番号の正当性を番号判定情報に基づい
て判定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、サーバクライアントモ
デルによって実現される分散DB(DataBase。
データベース)トランザクション処理システムにおける
分散DB処理方式に関し、特に以下の〜に示すよう
な特徴を有する分散DB処理方式に関する。 複数のサーバが存在し、各サーバが同一のDBを所
有している。ここで、各サーバにおける当該DB内の各
レコードのデータは同一となっていなければならない。 DB更新のためのトランザクション要求は1つのサ
ーバに対して与えられる。このサーバはDB更新に関し
てマネージャとして機能するサーバ(以下、「マネージ
ャサーバ」という)に該当し、他のサーバはDB更新に
関してエージェントとして機能するサーバ(以下、「エ
ージェントサーバ」という)に該当する。 DB更新の確定に際しては、2フェーズコミット処
理(準備フェーズ処理およびコミットフェーズ処理の2
フェーズからなる処理)が実行される。
【0002】
【従来の技術】図5は、従来のこの種の分散DB処理方
式の一例の構成を示すブロック図である。
【0003】この分散DB処理方式は、クライアント5
1と、サーバ52〜54とを含んで構成されている。こ
こで、サーバ52がDB更新に関するマネージャサーバ
に該当し、サーバ53および54がDB更新に関するエ
ージェントサーバに該当する。また、クライアント51
は、DB更新のためのトランザクション要求を発行でき
るクライアントである(クライアントはクライアント5
1を含んで複数存在している)。なお、クライアント5
1およびサーバ52〜54は、1つのネットワークに接
続されている。
【0004】サーバ52は、トランザクション処理部5
21と、DB522とを含んで構成されている。
【0005】サーバ53は、トランザクション処理部5
31と、DB532とを含んで構成されている。
【0006】サーバ54は、トランザクション処理部5
41と、DB542とを含んで構成されている。
【0007】DB522,532および542には、D
B更新のためのトランザクション要求に基づいて更新さ
れるレコードが格納されている。ここで、DB522,
532および542は、それぞれ同一の内容を有してい
る。
【0008】次に、このように構成された従来の分散D
B処理方式の動作について、図6のタイムチャートを参
照して説明する。
【0009】クライアント51は、サーバ52内のトラ
ンザクション処理部521に対してDB更新要求(トラ
ンザクション要求の一種)を発行し、そのDB更新要求
に対応するDB更新応答(トランザクション応答の一
種)を待ち合わせる。
【0010】トランザクション処理部521は、クライ
アント51からのDB更新要求を受け取ると、自己(ト
ランザクション処理部521),サーバ53内のトラン
ザクション処理部531,およびサーバ54内のトラン
ザクション処理部541に対してDB更新要求を発行す
る。
【0011】トランザクション処理部521,531お
よび541は、トランザクション処理部521からのD
B更新要求に基づいて、それぞれDB522,532お
よび542内のレコード(当該DB更新要求に係る更新
対象のレコード)を更新し、更新が正常に終了した場合
には「正常終了」を示すDB更新応答をトランザクショ
ン処理部521に返却する。
【0012】トランザクション処理部521は、トラン
ザクション処理部521,531および541からのD
B更新応答が全て「正常終了」を示すものであるか否か
を判定する。この判定で全て「正常終了」を示すDB更
新応答である場合には、クライアント51に対して「正
常終了」を示すDB更新応答を返却する。また、いずれ
かのDB更新応答が「異常終了」を示すものである場合
には、クライアント51に対して「異常終了」を示すD
B更新応答を返却する。
【0013】クライアント51は、トランザクション処
理部521から「異常終了」を示すDB更新応答を受け
取ると、トランザクション処理部521に対してロール
バック要求(トランザクション要求の一種)を発行す
る。
【0014】トランザクション処理部521は、このロ
ールバック要求に基づいて、自己(トランザクション処
理部521),サーバ53内のトランザクション処理部
531,およびサーバ54内のトランザクション処理部
541に対してロールバック要求を発行する。
【0015】トランザクション処理部521,531お
よび541は、このロールバック要求に基づいてDB5
22,532および542に対するロールバック処理を
行う。
【0016】一方、クライアント51は、トランザクシ
ョン処理部521から「正常終了」を示すDB更新応答
を受け取ると、トランザクション処理部521に対して
2フェーズコミット要求(トランザクション要求の一
種)を発行する。
【0017】トランザクション処理部521は、この2
フェーズコミット要求に基づいて、2フェーズコミット
処理(準備フェーズ処理とコミットフェーズ処理との2
フェーズの処理からなるコミット処理)を制御する。
【0018】すなわち、まず、トランザクション処理部
521は、自己(トランザクション処理部521),サ
ーバ53内のトランザクション処理部531,およびサ
ーバ54内のトランザクション処理部541に対して準
備フェーズ処理要求を発行する。
【0019】トランザクション処理部521,531お
よび541は、トランザクション処理部521からの準
備フェーズ処理要求に基づいて、DB522,532お
よび542内の当該レコード(更新対象のレコード)に
対する準備フェーズ処理を行う。準備フェーズ処理が正
常に終了した場合にはトランザクション処理部521に
対して「正常終了」を示す準備フェーズ処理応答(トラ
ンザクション応答の一種)を返却し、準備フェーズ処理
が正常に終了しなかった場合にはトランザクション処理
部521に対して「異常終了」を示す準備フェーズ処理
応答を返却する。
【0020】トランザクション処理部521は、トラン
ザクション処理部521,531および541からの準
備フェーズ処理応答が全て「正常終了」を示すものであ
るか否かを判定する。
【0021】トランザクション処理部521は、全ての
準備フェーズ処理応答が「正常終了」を示すものである
と判定した場合には、コミットフェーズ処理要求(トラ
ンザクション要求の一種)を自己(トランザクション処
理部521),サーバ53内のトランザクション処理部
531,およびサーバ54内のトランザクション処理部
541に対して発行する。また、クライアント51に対
して、「正常終了」を示す2フェーズコミット応答(ト
ランザクション応答の一種)を返却する。
【0022】トランザクション処理部521,531お
よび541は、トランザクション処理部521からのコ
ミットフェーズ処理要求に基づいて、DB522,53
2および542内の当該レコードに対するコミットフェ
ーズ処理を行う(これによって、このDB更新が確定し
たことになる)。
【0023】一方、トランザクション処理部521は、
いずれかの準備フェーズ処理応答が「異常終了」を示す
ものであると判定した場合には、自己(トランザクショ
ン処理部521),サーバ53内のトランザクション処
理部531およびサーバ54内のトランザクション処理
部541に対してロールバック要求を発行する。また、
クライアント51に対して、「異常終了」を示す2フェ
ーズコミット応答を返す。
【0024】トランザクション処理部521,531お
よび541は、このロールバック要求に基づいてDB5
22,532および542に対するロールバック処理を
行う。
【0025】一般に、分散DB処理方式では、各サーバ
におけるDB更新に際して、以上のような一連のトラン
ザクション要求およびトランザクション応答の交換がネ
ットワークを介して行われている。このことは、従来の
分散DB処理方式に限らず、本発明の分散DB処理方式
においても基本的には同様である。
【0026】ここで、図6中の☆で示す時点で、ネット
ワークやいずれかのサーバに障害が生じた場合には、あ
るサーバについてはDB更新がコミットされているが、
他のサーバについては当該DB更新がコミットされずに
更新前の状態にロールバックされているという状況が生
じうる。
【0027】例えば、図6中の☆で示す時点でサーバ5
3に障害が生じた場合には、サーバ53においては、D
B532に対するコミットフェーズ処理が行われること
なく再立上げが行われ、その後にロールバック処理が行
われる。これに対して、当該障害の発生にもかかわら
ず、サーバ52および54においては、DB522およ
び542に対するコミットフェーズ処理が行われる。
【0028】また、例えば、図6中の☆で示す時点で生
じたネットワーク障害によってコミットフェーズ処理要
求がサーバ53にだけ届かなかった場合には、サーバ5
3においてだけタイムアウト機能に基づくDB532に
対するロールバック処理が行われる。
【0029】このように、分散DB処理方式(従来技術
はもちろん本発明においても)では、以上のようなタイ
ミングで、各サーバ内のDB間の不整合(レコード内の
データの不一致)が生じるおそれがある。
【0030】従来の分散DB処理方式では、このように
して各サーバ内のDB間の不整合(以下、「DB不整
合」という)が生じた場合に、レコード内のデータその
ものの相違でしかそのDB不整合を検出することができ
なかった。すなわち、DB内のレコード中にはDB不整
合を検出するための情報(本発明における「バージョン
番号」のような情報)が存在しなかった。
【0031】
【発明が解決しようとする課題】上述した従来の分散D
B処理方式では、DB不整合が生じた場合に、そのDB
不整合をレコード内のデータそのものの相違でしか検出
できなかったので、以下の〜に示すような問題点が
あった。
【0032】 DBが参照される際には1つのサーバ
内のDBだけが参照され、DB更新要求がクライアント
から操作者によって与えられる場合には1つのDBの参
照に基づいて全てのDBに対するDB更新要求が与えら
れる。したがって、DB不整合が生じた後に当該DB不
整合を発見することは困難である。また、DB不整合が
生じた後に、不一致のレコードに対する更新処理が行わ
れ、誤った内容で整合性が回復される場合が生じうる。
この場合には、レコードのデータそのものの不一致によ
ってDB不整合の発生を検出することは不可能となる。
【0033】 レコードのデータそのものの相違によ
って後にDB不整合が検出されたとしても、どの時点の
DB更新によってそのDB不整合が生じたかを特定する
ことができない。また、どのDB内のレコードが正しい
データを有しているかを特定することが困難である。
【0034】 以上のおよびの問題点に起因し
て、分散DBトランザクション処理システムの運用に支
障が生じるおそれがある。すなわち、DB不整合に起因
して、DB更新に関する大幅な処理の再実行が必要にな
って当該分散DBトランザクション処理システムの運用
効率が悪くなることや、各サーバ内のDBにおけるデー
タの信頼性が低下すること等が生じうる。
【0035】本発明の目的は、上述の点に鑑み、バージ
ョン番号を各DB内のレコードに付加すること等によ
り、ある更新によって不一致が生じたレコードの次の更
新時に当該DB不整合(そのレコードの不一致によるD
B不整合)を検出できるようにし、DB不整合が生じて
も確実かつ迅速に当該DB不整合を発見することができ
る分散DB処理方式を提供することにある。
【0036】なお、分散DBシステムにおけるバージョ
ン管理に関する従来技術としては、「特開平3−910
76号公報(分散データベースシステムにおける辞書管
理方式)」が開示されている。しかし、この公報に係る
従来技術は、「データベースのアクセス先を特定する辞
書管理情報を分散管理した場合の同期制御にバージョン
情報を利用する事を目的としており」(当該公報中の第
630頁左上欄第13〜15行参照)、DB不整合の検
出にバージョン番号を使用して当該不整合の検出を容易
にすること等を目的とする本発明とは構成等を異にする
ものである。
【0037】
【課題を解決するための手段】本発明の分散DB処理方
式は、サーバクライアントモデルによって実現される分
散DBトランザクション処理システムにおける分散DB
処理方式において、データの更新の世代を示すバージョ
ン番号とデータとからなるレコードを格納する各サーバ
内のDBと、クライアントからのDB更新要求に基づい
て自DBから更新対象のレコードを取得し、全エージェ
ントサーバからのDB更新応答が「正常終了」を示すも
のである場合にのみ当該レコードの更新を行い、DB不
整合の有無を示す情報を有するDB更新応答をクライア
ントに返却するマネージャトランザクション処理部と、
このマネージャトランザクション処理部によって取得さ
れたレコード中のバージョン番号を抽出し、そのバージ
ョン番号に基づく番号判定情報をエージェントサーバへ
のDB更新要求に付加するマネージャバージョン番号制
御部と、マネージャサーバからのDB更新要求に基づい
て自DBから更新対象のレコードを取得し、バージョン
番号の正当性が認識された場合にのみ当該DB更新要求
に基づく当該レコードの更新を行い、更新前バージョン
番号を有するDB更新応答をマネージャサーバに返却す
るエージェントトランザクション処理部と、このエージ
ェントトランザクション処理部によって取得されたレコ
ード中のバージョン番号の正当性をマネージャサーバか
らのDB更新要求に付加された番号判定情報に基づいて
判定するエージェントバージョン番号制御部とを有す
る。
【0038】
【作用】本発明の分散DB処理方式では、各サーバ内の
DBがデータの更新の世代を示すバージョン番号とデー
タとからなるレコードを格納し、マネージャトランザク
ション処理部がクライアントからのDB更新要求に基づ
いて自DBから更新対象のレコードを取得し全エージェ
ントサーバからのDB更新応答が「正常終了」を示すも
のである場合にのみ当該レコードの更新を行いDB不整
合の有無を示す情報を有するDB更新応答をクライアン
トに返却し、マネージャバージョン番号制御部がマネー
ジャトランザクション処理部によって取得されたレコー
ド中のバージョン番号を抽出しそのバージョン番号に基
づく番号判定情報をエージェントサーバへのDB更新要
求に付加し、エージェントトランザクション処理部がマ
ネージャサーバからのDB更新要求に基づいて自DBか
ら更新対象のレコードを取得しバージョン番号の正当性
が認識された場合にのみ当該DB更新要求に基づく当該
レコードの更新を行い更新前バージョン番号を有するD
B更新応答をマネージャサーバに返却し、エージェント
バージョン番号制御部がエージェントトランザクション
処理部によって取得されたレコード中のバージョン番号
の正当性をマネージャサーバからのDB更新要求に付加
された番号判定情報に基づいて判定する。
【0039】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0040】図1は、本発明の一実施例に係る分散DB
処理方式の構成を示すブロック図である。
【0041】本実施例の分散DB処理方式は、クライア
ント1と、サーバ2〜4とを含んで構成されている。こ
こで、サーバ2がDB更新に関するマネージャサーバに
該当し、サーバ3および4がDB更新に関するエージェ
ントサーバに該当する(エージェントサーバの数が2に
限られものでないことはいうまでもない)。また、クラ
イアント1は、DB更新のためのトランザクション要求
を発行できるクライアントである(クライアントはクラ
イアント1を含んで複数存在している)。なお、クライ
アント1およびサーバ2〜4は、1つのネットワークに
接続されている。
【0042】サーバ2は、トランザクション処理部21
(マネージャトランザクション処理部)と、バージョン
番号制御部22(マネージャバージョン番号制御部)
と、DB23とを含んで構成されている。
【0043】サーバ3は、トランザクション処理部31
(エージェントトランザクション処理部)と、バージョ
ン番号制御部32(エージェントバージョン番号制御
部)と、DB33とを含んで構成されている。
【0044】サーバ4は、トランザクション処理部41
(エージェントトランザクション処理部)と、バージョ
ン番号制御部42(エージェントバージョン番号制御
部)と、DB43とを含んで構成されている。
【0045】DB23,33および43には、DB更新
のためのトランザクション要求に基づいて更新されるレ
コードが格納されている。ここで、DB23,33およ
び43は、それぞれ同一の内容を有している。
【0046】図2は、DB23,33および43内のレ
コードの構成を示す図である。このレコードは、バージ
ョン番号とデータとからなる。バージョン番号は、トラ
ンザクション処理におけるデータの更新の世代を示す情
報である(DB不整合が生じていないとすると、各DB
23,33および43内の同一レコード中のバージョン
番号は等しい)。本実施例の分散DB処理方式では、バ
ージョン番号の初期値が1であり、データが更新される
毎にその値に1が加算され、それによってデータの更新
の世代が示される。
【0047】図3は、本実施例の分散DB処理方式にお
けるマネージャサーバ(サーバ2)の処理を示す流れ図
である。この処理は、DB更新要求受取りステップ30
1と、更新対象レコード取得ステップ302と、バージ
ョン番号抽出ステップ303と、バージョン番号加算ス
テップ304と、DB更新要求番号判定情報付加ステッ
プ305と、DB更新要求発行ステップ306と、DB
更新応答受取りステップ307と、DB更新応答判定ス
テップ308と、更新対象レコード更新ステップ309
と、DB更新応答返却ステップ310と、DB更新応答
返却ステップ311とからなる。
【0048】図4は、本実施例の分散DB処理方式にお
けるエージェントサーバ(サーバ3および4)の処理を
示す流れ図である。この処理は、DB更新要求受取りス
テップ401と、更新対象レコード取得ステップ402
と、バージョン番号抽出ステップ403と、バージョン
番号比較判定ステップ404と、リターン値「正常」設
定ステップ405と、リターン値「異常」設定ステップ
406と、リターン値判定ステップ407と、レコード
更新ステップ408と、DB更新応答返却ステップ40
9と、DB更新応答返却ステップ410とからなる。
【0049】図7は、本実施例の分散DB処理方式にお
けるトランザクション要求およびトランザクション応答
の交換の態様を、図6に示す従来技術におけるトランザ
クション要求およびトランザクション応答の交換の態様
と対比して示す図(タイムチャート)である。
【0050】次に、このように構成された本実施例の分
散DB処理方式の動作について説明する。
【0051】第1に、本実施例の分散DB処理方式にお
けるマネージャサーバ(サーバ2)の動作(関連するク
ライアント1の動作を含む)について説明する(図3中
のステップ301〜306および図7参照)。
【0052】クライアント1は、ネットワークで接続さ
れたサーバ2内のトランザクション処理部21に対して
DB更新要求を発行し、そのDB更新要求に対応するD
B更新応答を待ち合わせる。
【0053】トランザクション処理部21は、クライア
ント1からのDB更新要求を受け取ると(ステップ30
1)、自DB(DB23)から所望のレコード(当該D
B更新要求に係るトランザクションメッセージ(電文)
によって示されている更新対象のレコード)を取得する
(ステップ302)。
【0054】バージョン番号制御部22は、そのレコー
ド中のバージョン番号の値(ここでは、nとする)を抽
出し(ステップ303)、そのバージョン番号の値
(n)に1を加算し(ステップ304)、その値(n+
1)をクライアント1からのDB更新要求に係るトラン
ザクションメッセージに付加する(ステップ305)。
この値(n+1)が、番号判定情報に該当する。
【0055】トランザクション処理部21は、サーバ3
内のトランザクション処理部31,およびサーバ4内の
トランザクション処理部41に対して、そのトランザク
ションメッセージを有するDB更新要求を発行し(ステ
ップ306)、サーバ3および4からのDB更新応答を
待ち合わせる。
【0056】第2に、本実施例の分散DB処理方式にお
けるエージェントサーバ(サーバ3および4)の動作
(関連するクライアント1の動作を含む)について説明
する(図4および図7参照)。ここでは、サーバ3の動
作について説明するが、サーバ4の動作についてもこの
動作と同様の動作が行われる。
【0057】サーバ3内のトランザクション処理部31
は、トランザクション処理部21からのDB更新要求を
受け取ると(ステップ401)、自DB(DB33)か
ら所望のレコード(当該DB更新要求に係るトランザク
ションメッセージによって示されている更新対象のレコ
ード)を取得する(ステップ402)。
【0058】バージョン番号制御部32は、そのレコー
ド中のバージョン番号の値を抽出し(ステップ40
3)、その値に1を加算した値とDB更新要求に係るト
ランザクションメッセージに付加された番号判定情報の
値(この場合にはn+1)とを比較して、「DB更新要
求に係るトランザクションメッセージに付加された番号
判定情報の値=DB33内の当該レコード中のバージョ
ン番号の値+1」であるか否かを判定する(バージョン
番号の正当性を判定する)(ステップ404)。
【0059】バージョン番号制御部32は、ステップ4
04の比較で「番号判定情報の値=DB33内の当該レ
コード中のバージョン番号の値+1」であると判定した
場合には、バージョン番号の正当性を認識し、リターン
値に「正常」を設定してトランザクション処理部31に
制御を戻す(ステップ405)。
【0060】一方、バージョン番号制御部32は、ステ
ップ404の比較で「番号判定情報の値≠DB33内の
当該レコード中のバージョン番号の値+1」であると判
定した場合には、バージョン番号が正当でないことを認
識し、リターン値に「異常」を設定してトランザクショ
ン処理部31に制御を戻す(ステップ406)。
【0061】トランザクション処理部31は、バージョ
ン番号制御部32から戻されたリターン値が「正常」で
あるか「異常」であるかを判定する(ステップ40
7)。
【0062】トランザクション処理部31は、ステップ
407で「リターン値が「正常」である」と判定した場
合には、当該レコード(更新対象のレコード)の更新
(当該レコード中のバージョン番号の値に「n+1」を
設定し、当該レコード中のデータをDB更新要求に基づ
いて更新すること)を行う(ステップ408)。その上
で、その更新の結果に応じて、トランザクション処理部
21に対してDB更新応答(その更新が正常に行われた
場合には「正常終了」を示し、その更新が正常に行われ
なかった場合には「異常終了」を示すDB更新応答)を
返却する(ステップ409)。なお、このDB更新応答
には、DB33内の更新前の当該レコード中のバージョ
ン番号(更新前バージョン番号)が付加される。
【0063】また、トランザクション処理部31は、ス
テップ407で「リターン値が「異常」である」と判定
した場合には、当該レコードの更新を行わずにトランザ
クション処理部21に「異常終了」を示すDB更新応答
(更新前バージョン番号が付加されたDB更新応答)を
返却する(ステップ410)。
【0064】第3に、再び、マネージャサーバ(サーバ
2)の動作(関連するクライアント1の動作を含む)に
ついて説明する(図3中のステップ307〜311およ
び図7参照)。
【0065】サーバ2内のトランザクション処理部21
は、サーバ3および4からのDB更新応答を受け取ると
(ステップ307)、トランザクション処理部31から
のDB更新応答およびトランザクション処理部41から
のDB更新応答が全て「正常終了」を示すものであるか
否かを判定する(ステップ308)。
【0066】トランザクション処理部21は、ステップ
308で「全てのDB更新応答が「正常終了」を示すも
のである」と判定した場合には、自己(トランザクショ
ン処理部21)に対してDB更新要求を発行し、そのD
B更新要求に基づいて自DB(DB23)内の当該レコ
ードの更新(当該レコード中のバージョン番号の値に
「n+1」を設定し、当該レコード中のデータをDB更
新要求に基づいて更新すること)を行う(ステップ30
9)。その上で、その更新の結果に応じて、クライアン
ト1に対してDB更新応答(その更新が正常に行われた
場合には「正常終了」を示し、その更新が正常に行われ
なかった場合には「異常終了」を示すDB更新応答)を
返却する(ステップ310)。なお、このDB更新応答
においては、何らかの情報によって(DB不整合の発生
を示す情報が付加されていないという形式の情報でもよ
い)、「DB不整合が生じていないこと」が示される。
【0067】一方、トランザクション処理部21は、ス
テップ307で「トランザクション処理部31からのD
B更新応答およびトランザクション処理部41からのD
B更新応答の少なくとも1つが「異常終了」を示すもの
である」と判定した場合には、自DB(DB23)の更
新を行わず、クライアント1に「異常終了」を示すDB
更新応答を返却する(ステップ311)。なお、この際
に、サーバ3および4からのDB更新応答に付加されて
いた更新前バージョン番号とDB23内の当該レコード
中の更新前のバージョン番号とが全て同一か否かによっ
て、その「異常終了」がDB不整合に基づくものでない
かどうかが判定され、「DB不整合に基づくものであ
る」と判定された場合(いずれかのバージョン番号が異
なる場合)には「DB不整合が生じていること」を示す
情報がクライアント1に対するDB更新応答に付加され
る。
【0068】また、ステップ311においては、必要に
応じて、次の処理が行われる(請求項3記載の発明参
照)。すなわち、バージョン番号制御部22によって抽
出された更新対象のレコード中のバージョン番号とサー
バ3および4からのDB更新応答に付加されていた更新
前バージョン番号とに基づき、どのDB(DB23,3
3または43)内のレコードが誤っているかが特定され
(バージョン番号の値が他よりも小さいレコードが検出
され、そのレコードのデータが誤っていることが特定さ
れる)、その情報(どのDB内のレコードが誤っている
かを示す情報)が当該DB更新応答に付加される。
【0069】クライアント1は、トランザクション処理
部21から「正常終了」を示すDB更新応答を受け取る
と、トランザクション処理部21に対して2フェーズコ
ミット要求を発行する。また、トランザクション処理部
21から「異常終了」を示すDB更新応答を受け取る
と、トランザクション処理部21に対してロールバック
要求を発行する。
【0070】このようにして、本実施例(ひいては本発
明)では、DB更新の更新対象のレコードが不一致であ
ってDB不整合が生じている場合には、DB更新要求に
基づく処理の段階で当該DB不整合の検出が可能とな
る。なお、上述の2フェーズコミット要求またはロール
バック要求の発行以降の処理については、図7に示して
いるように、図6に示す従来の分散DB処理方式におけ
ると同様の態様でトランザクション要求およびトランザ
クション応答の交換が行われる。
【0071】
【発明の効果】以上説明したように本発明は、DB内に
格納されているレコードにバージョン番号を設定(付
加)し、各サーバにバージョン番号制御部を設けること
により、ある更新によって各サーバ内のDB中のレコー
ドの不一致が生じた場合(DB不整合が生じた場合)
に、当該レコードの次の更新の際に当該DB不整合を確
実に検出することができ、当該DB不整合に基づく分散
DBトランザクション処理システムにおける支障(当該
分散DBトランザクション処理システムの運用効率が悪
くなることや各サーバ内のDBにおけるデータの信頼性
が低下すること等)を未然に防止することができるとい
う効果を有する。
【図面の簡単な説明】
【図1】本発明の一実施例に係る分散DB処理方式の構
成を示すブロック図である。
【図2】図1中のDBに格納されているレコードの構成
を示す図である。
【図3】図1に示す分散DB処理方式におけるマネージ
ャサーバにおける処理を示す流れ図である。
【図4】図1に示す分散DB処理方式におけるエージェ
ントサーバにおける処理を示す流れ図である。
【図5】従来の分散DB処理方式の一例の構成を示すブ
ロック図である。
【図6】図5に示す従来の分散DB処理方式におけるト
ランザクション要求およびトランザクション応答の交換
の態様を示す図(タイムチャート)である。
【図7】図1に示す分散DB処理方式におけるトランザ
クション要求およびトランザクション応答の交換の態様
を、図6に示す従来技術におけるトランザクション要求
およびトランザクション応答の交換の態様と対比して示
す図(タイムチャート)である。
【符号の説明】
1 クライアント 2 サーバ(マネージャサーバ) 3,4 サーバ(エージェントサーバ) 21 トランザクション処理部(マネージャトランザク
ション処理部) 31,41 トランザクション処理部(エージェントト
ランザクション処理部) 22 バージョン番号制御部(マネージャバージョン番
号制御部) 32,42 バージョン番号制御部(エージェントバー
ジョン番号制御部) 23,33,43 DB

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 サーバクライアントモデルによって実現
    される分散DBトランザクション処理システムにおける
    分散DB処理方式において、 データの更新の世代を示すバージョン番号とデータとか
    らなるレコードを格納する各サーバ内のDBと、 クライアントからのDB更新要求に基づいて自DBから
    更新対象のレコードを取得し、全エージェントサーバか
    らのDB更新応答が「正常終了」を示すものである場合
    にのみ当該レコードの更新を行い、DB不整合の有無を
    示す情報を有するDB更新応答をクライアントに返却す
    るマネージャトランザクション処理部と、 このマネージャトランザクション処理部によって取得さ
    れたレコード中のバージョン番号を抽出し、そのバージ
    ョン番号に基づく番号判定情報をエージェントサーバへ
    のDB更新要求に付加するマネージャバージョン番号制
    御部と、 マネージャサーバからのDB更新要求に基づいて自DB
    から更新対象のレコードを取得し、バージョン番号の正
    当性が認識された場合にのみ当該DB更新要求に基づく
    当該レコードの更新を行い、更新前バージョン番号を有
    するDB更新応答をマネージャサーバに返却するエージ
    ェントトランザクション処理部と、 このエージェントトランザクション処理部によって取得
    されたレコード中のバージョン番号の正当性をマネージ
    ャサーバからのDB更新要求に付加された番号判定情報
    に基づいて判定するエージェントバージョン番号制御部
    とを有することを特徴とする分散DB処理方式。
  2. 【請求項2】 初期値が1でありデータが更新される毎
    に1が加算されるバージョン番号とデータとからなるレ
    コードを格納する各サーバ内のDBと、 マネージャトランザクション処理部によって取得された
    レコード中のバージョン番号を抽出し、そのバージョン
    番号に1を加算した値である番号判定情報をエージェン
    トサーバへのDB更新要求に付加するマネージャバージ
    ョン番号制御部と、 エージェントトランザクション処理部によって取得され
    たレコード中のバージョン番号に1を加算した値とマネ
    ージャサーバからのDB更新要求に付加された番号判定
    情報とが等しいか否かによってバージョン番号の正当性
    を判定するエージェントバージョン番号制御部とを有す
    ることを特徴とする請求項1記載の分散DB処理方式。
  3. 【請求項3】 マネージャバージョン番号制御部によっ
    て抽出された更新対象のレコード中のバージョン番号と
    エージェントサーバからのDB更新応答に付加された更
    新前バージョン番号とに基づき、どのDB内のレコード
    が誤っているかを特定し、その特定内容を示す情報を有
    するDB更新応答をクライアントに返却するマネージャ
    トランザクション処理部を有することを特徴とする請求
    項1または請求項2記載の分散DB処理方式。
JP6249980A 1994-09-19 1994-09-19 分散db処理方式 Pending JPH0887436A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6249980A JPH0887436A (ja) 1994-09-19 1994-09-19 分散db処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6249980A JPH0887436A (ja) 1994-09-19 1994-09-19 分散db処理方式

Publications (1)

Publication Number Publication Date
JPH0887436A true JPH0887436A (ja) 1996-04-02

Family

ID=17201049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6249980A Pending JPH0887436A (ja) 1994-09-19 1994-09-19 分散db処理方式

Country Status (1)

Country Link
JP (1) JPH0887436A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114623A (ja) * 2011-11-30 2013-06-10 Fujitsu Ltd ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法
JP2018036976A (ja) * 2016-09-02 2018-03-08 日本電信電話株式会社 分散dbシステム、db装置、および、サービス再開方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04165437A (ja) * 1990-10-29 1992-06-11 Nec Corp データベース同期方式
JPH04232545A (ja) * 1990-05-22 1992-08-20 Digital Equip Corp <Dec> 分散型コンピュータ・データベースの打ち込み時刻を一致させるシステムおよび方法
JPH05225239A (ja) * 1991-11-26 1993-09-03 Internatl Business Mach Corp <Ibm> 同時発生制御方法とトランザクシヨン及び問合せ処理システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04232545A (ja) * 1990-05-22 1992-08-20 Digital Equip Corp <Dec> 分散型コンピュータ・データベースの打ち込み時刻を一致させるシステムおよび方法
JPH04165437A (ja) * 1990-10-29 1992-06-11 Nec Corp データベース同期方式
JPH05225239A (ja) * 1991-11-26 1993-09-03 Internatl Business Mach Corp <Ibm> 同時発生制御方法とトランザクシヨン及び問合せ処理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013114623A (ja) * 2011-11-30 2013-06-10 Fujitsu Ltd ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法
JP2018036976A (ja) * 2016-09-02 2018-03-08 日本電信電話株式会社 分散dbシステム、db装置、および、サービス再開方法

Similar Documents

Publication Publication Date Title
US7003694B1 (en) Reliable standby database failover
US6938031B1 (en) System and method for accessing information in a replicated database
US20070168704A1 (en) System and method of configuring a database system with replicated data and automatic failover and recovery
US20100088556A1 (en) Fault management system in multistage copy configuration
US20080005220A1 (en) Distributed transaction processing method, distributed transaction processing system, transaction management device, and computer product
US20150317175A1 (en) Virtual machine synchronization system
JPH09204341A (ja) 採番機構、データ整合性確認機構、トランザクション再実行機構及び分散トランザクション処理システム
CN101231652A (zh) 用于数据存储再同步的系统和方法
US7730029B2 (en) System and method of fault tolerant reconciliation for control card redundancy
JPH0887436A (ja) 分散db処理方式
CN117076211A (zh) 数据保障方法、装置、设备及存储介质
CN116860398A (zh) 基于时序数据库的事务处理方法、装置、设备及存储介质
CN113868340B (zh) 分布式事务的处理方法、装置及电子设备
JPH07114495A (ja) 多重化ファイル管理方式
US7765230B2 (en) Method and system for managing data
CN119561954B (zh) 数据同步方法、系统、装置、设备和存储介质
JP2005250819A (ja) レプリケーションdb整合性確認方法
JP5515286B2 (ja) 分散トランザクション処理システム、サーバ装置及びそれらに用いる分散トランザクションの障害復旧方法
US20210406245A1 (en) Rollback-Free Referential Integrity Update Processing
CN109218044B (zh) 一种故障处理方法和装置
JP4628830B2 (ja) Dbmsに格納されたデータの整合性を担保するためのシステム
US20080002743A1 (en) System and method for synchronizing in-memory caches while being updated by a high rate data stream
JP2026043475A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2006350411A (ja) 分散データベースリカバリ方法及び同リカバリシステム及び同リカバリプログラム
JP2000112801A (ja) データベースバックアップシステム及びバックアップ方法