JP4885825B2 - データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム - Google Patents

データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム Download PDF

Info

Publication number
JP4885825B2
JP4885825B2 JP2007295813A JP2007295813A JP4885825B2 JP 4885825 B2 JP4885825 B2 JP 4885825B2 JP 2007295813 A JP2007295813 A JP 2007295813A JP 2007295813 A JP2007295813 A JP 2007295813A JP 4885825 B2 JP4885825 B2 JP 4885825B2
Authority
JP
Japan
Prior art keywords
database
data
protocol
commitment
unit
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.)
Active
Application number
JP2007295813A
Other languages
English (en)
Other versions
JP2009122935A (ja
Inventor
哲也 阿部
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2007295813A priority Critical patent/JP4885825B2/ja
Publication of JP2009122935A publication Critical patent/JP2009122935A/ja
Application granted granted Critical
Publication of JP4885825B2 publication Critical patent/JP4885825B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラムに関し、例えば、データベース分散トランザクション環境におけるデータベースシステムに適用し得る。
従来のデータベース分散トランザクション環境下でのデータ更新においては、分散されたデータベース間のデータの整合性を保つため、データ更新の際には、データベースサーバとデータベースクライアントとの間で二相コミットメントのプロトコルに従ったデータ更新が行われる場合がある。データベース分散トランザクション環境下での二相コミットメントでは、全データベースサーバがコミット可能な状態である場合にのみ、二相コミットメン卜が可能となり、二相コミットメントのトランザクションが完結することにより、コミットデータをデータとして利用可能としている(非特許文献1参照)。
小泉 修著、「図解でわかるデータベースのすべて」、2007年3月日本実業出版社発行 特開2007−88936号公報
しかしながら、従来のデータベース分散トランザクション環境下では、メンテナンスあるいは故障により、ある一部のデータベースサーバが停止し、そのサーバから二相コミットメントの許可を得られない場合には、トランザクションを完結することが出来ず、旧データの利用が継続されることとなる。また、この時データベースクライアントは、トランザクションを完結するまで待機するか、トランザクションを失敗として扱う事となり、データベースサービスとして満足のいくものではなかった。なお、上述のような問題は、三相コミットメント(非特許文献1参照)においても発生する場合がある。
そのため、データベースサーバ(データベース提供装置)とデータベースクライアント(データベースクライアント端末)の間で、二相コミットメントプロトコル又は三相コミットメントプロトコルに従ったデータ更新ができない場合でも、データ更新をすることができる、データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラムが望まれている。
第1の本発明のデータベース提供装置は、(1)データを保持するデータベース部を備え、データベースクライアント端末の要求に基づいて上記データベース部のデータの更新を行うデータベース提供装置において、(2)当該データベース提供装置のデータベース部のデータを更新する際のコミットメントプロトコルとして、第1のコミットメントプロトコル又は第2のコミットメントプロトコルのいずれかを適用することを示すプロトコル情報を保持するプロトコル情報保持手段と、(3)上記データベースクライアント端末の要求に応じて、上記プロトコル情報保持手段に保持されているプロトコル情報を、上記データベースクライアント端末に与えるプロトコル情報提供手段と、(4)上記データベースクライアント端末からの、上記プロトコル情報保持手段に保持されているプロトコル情報が示すコミットメントプロトコルに従ったデータ更新の要求に応じて、データベース部のデータを更新するデータ更新手段とを有することを特徴とする。
第2の本発明のデータベースクライアント端末は、(1)データを保持するデータベース部をそれぞれ備える複数のデータベース提供装置に、データベース部のデータの更新要求を行うデータベースクライアント端末において、(2)上記複数のデータベース提供装置のそれぞれが保持している、当該データベース提供装置がデータベース部のデータの更新に用いるコミットメントプロトコルを示すプロトコル情報を、上記複数のデータベース提供装置のそれぞれから読込むプロトコル情報取得手段と、(3)上記複数のデータベース提供装置の全てから第1のコミットメントプロトコルを示す内容のプロトコル情報が得られた場合には、第1のコミットメントプロトコルに従って上記複数のデータベース提供装置にデータ更新の要求を行い、上記複数のデータベース提供装置のうちいずれかから、第2のコミットメントプロトコルを示すプロトコル情報が得られた場合には、そのデータベース提供装置にだけ第2のコミットメントプロトコルに従ったデータ更新要求を行うデータ更新要求手段を有することを特徴とする。
第3の本発明のデータベースシステムは、(1)データベースクライアント端末と、複数のデータベース提供装置とを備え、上記複数のデータベース提供装置は、データを保持するデータベース部をそれぞれ有し、上記データベースクライアント端末からの要求に応じて、それぞれのデータベース部に保持されているデータを更新するデータベースシステムにおいて、(2)上記複数のデータベース提供装置のそれぞれに、第1の本発明のデータベース提供装置を適用すると共に、(3)上記データベースクライアント端末に、第2の本発明のデータベースクライアント端末を適用したことを特徴とする。
第4の本発明のデータベース提供プログラムは、(1)データを保持するデータベース部を備え、データベースクライアント端末の要求に基づいて上記データベース部のデータの更新を行うデータベース提供装置に搭載されたコンピュータを、(2)当該データベース提供装置のデータベース部のデータを更新する際のコミットメントプロトコルとして、第1のコミットメントプロトコル又は第2のコミットメントプロトコルのいずれかを適用することを示すプロトコル情報を保持するプロトコル情報保持手段と、(3)上記データベースクライアント端末の要求に応じて、上記プロトコル情報保持手段に保持されているプロトコル情報を、上記データベースクライアント端末に与えるプロトコル情報提供手段と、(4)上記データベースクライアント端末からの、上記プロトコル情報保持手段に保持されているプロトコル情報が示すコミットメントプロトコルに従ったデータ更新の要求に応じて、データベース部のデータを更新するデータ更新手段として機能させることを特徴とする
第5の本発明のデータベースクライアントプログラムは、(1)データを保持するデータベース部をそれぞれ備える複数のデータベース提供装置に、データベース部のデータの更新要求を行うデータベースクライアント端末に搭載されたコンピュータを、(2)上記複数のデータベース提供装置のそれぞれが保持している、当該データベース提供装置がデータベース部のデータの更新に用いるコミットメントプロトコルを示すプロトコル情報を、上記複数のデータベース提供装置のそれぞれから読込むプロトコル情報取得手段と、(3)上記複数のデータベース提供装置の全てから第1のコミットメントプロトコルを示す内容のプロトコル情報が得られた場合には、第1のコミットメントプロトコルに従って上記複数のデータベース提供装置にデータ更新の要求を行い、上記複数のデータベース提供装置のうちいずれかから、第2のコミットメントプロトコルを示すプロトコル情報が得られた場合には、そのデータベース提供装置にだけ第2のコミットメントプロトコルに従ったデータ更新要求を行うデータ更新要求手段して機能させることを特徴とする。
本発明によれば、データベースシステムにおいて、データベース提供装置とデータベースクライアント端末の間で、二相コミットメントプロトコル又は三相コミットメントプロトコルに従ったデータ更新ができない場合でも、データ更新をすることができる。
(A)第1の実施形態
以下、本発明によるデータベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラムの第1の実施形態を、図面を参照しながら詳述する。なお、この実施形態のデータベース提供装置は、データベースサーバである。
(A−1)第1の実施形態の構成
図1は、この実施形態のデータベースシステム1の全体構成を示すブロック図である。
データベースシステム1は、データベースクライアント10、2つのデータベースサーバ20(20−1、20−2)を有している。また、データベースクライアント10、データベースサーバ20−1、20−2は、それぞれネットワークNに接続しているものとする。
データベースシステム1は、データベースクライアント10から、データベースサーバ20−1、20−2にデータベースのデータ更新や参照などのトランザクションが与えられ、処理が行われる分散トランザクション環境である。
データベースクライアント10は、データベースサーバ20−1、20−2にデータベースに係るトランザクションを与えるものである。図1においては、データベースクライアント10は1つの構成となっているが、その数は限定されないものである。データベースクライアント10は、パソコンなどの情報処理装置(1台に限定されず、複数台を分散処理し得るようにしたものであっても良い。)上に、実施形態のデータベースクライアントプログラム(固定データを含む)をインストールすることにより、構築されるものである。
データベースサーバ20(20−1、20−2)は、データベースクライアント10から与えられたトランザクションの処理を行うものであり、DBMS21(21−1、21−2)、データベースファイルシステム22(22−1、22−2)を有している。データベースサーバ20−1、20−2は、パソコンなどの情報処理装置(1台に限定されず、複数台を分散処理し得るようにしたものであっても良い。)上に、実施形態のデータベース提供プログラム(固定データを含む)をインストールすることにより、構築されるものであるが、機能的には図1のように表すことができる。
DBMS21−1、21−2は、データベース管理システム(Data Base Management System)の機能を担っており、例えば、データベースクライアント10からトランザクションを受け取り、データベースファイルシステム22−1、22−2を制御するなどして受け取ったトランザクションの処理を行うものである。
データベースファイルシステム22(22−1、22−2)は、データベースサーバ20(20−1、20−2)において、データベースのデータを記憶する機能などを担っており、例えば、DBMS21(21−1、21−2)の制御に基づいて記憶しているデータの更新を行うものである。データベースファイルシステム22(22−1、22−2)は、データ記憶部221(221−1、221−2)、フラグ管理部222(222−1、222−2)を有している。
データ記憶部221−1、221−2は、データベースサーバ20−1、20−2において、データベースサービスに利用するデータを格納する機能を担っており、メモリデータベースやキャッシュメモリを使用している場合はそれが該当する。
フラグ管理部222(222−1、222−2)は、データベースのデータ更新において、二相コミットメントにより行われるか否かについて管理するものであり、二相コミットメントフラグ223(223−1、223−2)を有している。
フラグ管理部222−1、222−2は、当該データベースサーバ20−1、20−2において、データベースのデータ更新が、二相コミットメントにより行われるか否かを示す二相コミットメントフラグ223−1、223−2を管理するものである。二相コミットメントフラグ223−1、223−2の内容が「ON」に設定されていた場合には、通常通りデータベースのデータ更新が二相コミットメントにより行われ、「OFF」に設定されていた場合には、二相コミットメントではなく一相コミットメントによりデータ更新が行われることを示している。
なお、二相コミットメントフラグ223−1、223−2に登録される内容は、クライアントライブラリ11が、二相コミットメントを実施出来ない事を認識できれば良く、プログラムのメモリ上のフラグやロックファイル、データベース内への状態書き込みなどを用いても良い。また、二相コミットメントフラグ223−1、223−2の内容は、クライアントライブラリ11が、二相コミットメントを実施出来ない事を認識できれば良いので、「ON/OFF」などのフラグによる表示ではなく、「二相コミットメントプロトコル/一相コミットメントプロトコル」などの表示であっても良く、その表示方式は限定されないものである。
また、二相コミットメントフラグ223−1、223−2の内容は、データベースクライアント10のクライアントライブラリ11により読込まれ、クライアントライブラリ11では、データベースのデータ更新に関するトランザクションについて、二相コミットメントフラグ223−1、223−2の内容に応じて、データベースファイルシステム22−1、22−2へ送信するトランザクションの内容を変化させる。
クライアントライブラリ11では、二相コミットメントプロトコルによりデータ更新ができなくなり、いずれかのデータベースサーバ20の二相コミットメントフラグ223がOFFに設定された場合には、全てのデータベースサーバ20から二相コミットメントフラグ223の読込みを試行し、二相コミットメントフラグ223がOFFに設定されたデータベースサーバにだけデータ更新のトランザクションを送信して一相コミットメントによりデータ更新を行うようにしても良い。例えば、データベースサーバ20−1が保守作業などにより停止中に、データベースサーバ20−2において、二相コミットメントフラグ223−2の内容が「OFF」に設定されていた場合には、クライアントライブラリ11は、二相コミットメントフラグ223−2の内容を読込むと、データベースサーバ20−2にだけデータベース更新のトランザクションを送信し、データベースサーバ20−2ではそのトランザクションによりデータベースのデータ更新を行う。
クライアントライブラリ11が、二相コミットメントフラグ223−1、223−2の内容を読込む契機としては、例えば、クライアントライブラリ11が、データベースサーバ20−1、20−2にデータベース接続(DBMS21−1、21−2と接続)する際に読込むようにしても良いし、定期的又はトランザクションの発生ごとに読込むようにしても良いし、二相コミットできなかった場合に読込むようにしても良い。また、クライアントライブラリ11が、それぞれのデータベースサーバ20−1、20−2に動作の正常性について問い合わせ(以下、「状態ポーリング」という)を行う際に読込んでも良い。状態ポーリングについては、後述する動作説明において詳述する。
二相コミットメントフラグ223−1、223−2内容については、例えば、保守運用作業者などのオペレータが手動で書き換えを行っても良いし、図1において図示は省略しているが、データベースサーバ20−1、20−2の内部又は外部に配置された監視装置により、データベースサーバの動作状況を監視し、データベースサーバの動作状況に応じて、フラグ管理部222−1、フラグ管理部222−2が書き換えるようにしても良い。例えば、データベースサーバ20−1が故障などにより停止した場合に、監視装置により検知し、監視装置がその旨をデータベースサーバ20−2のフラグ管理部222−2に通知し、フラグ管理部222−2が二相コミットメントフラグ223−2の内容を「OFF」に書き換えるようにしても良い。また、例えば、クライアントライブラリ11が、データベースサーバ20−1、20−2の動作状況を監視し、その動作状態に応じて、フラグ管理部222−1、222−2に、二相コミットメントフラグ223−1、223−2の内容更新を要求するようにしても良い。
(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態のデータベースシステムにおけるデータ更新の動作を説明する。
(A−2−1)状態ポーリングについて
まず、データベースクライアント10が、データベースサーバ20−1、20−2の状態について問い合わせを行う状態ポーリングの動作の例について説明する。
図2は、データベースクライアント10が、データベースサーバ20−2に対して状態ポーリングを行った動作の例について示したシーケンス図である。
図2では、データベースクライアント10が、データベースサーバ20−2に状態ポーリングを行った場合について示しているが、データベースサーバ20−1であっても同様であるので説明を省略する。
まず、データベースクライアント10のクライアントライブラリ11から、データベースサーバ20−2に対して、ネットワーク上での疎通確認(例えば、PING)が実施される。例えば、データベースクライアント10から、データベースサーバ20−2に対して、ネットワーク上での疎通確認をするための信号が送信され、その応答がデータベースサーバ20−2からあった場合には通信可と判定される(S101)。
上述のステップS101によりデータベースサーバ20−2との疎通が確認された場合には、データベースクライアント10(クライアントライブラリ11)から、データベースサーバ20−2のDBMS21−2にデータベース接続が実施され、データベースサーバ20−2においてデータベース機能が正常に動作していることが確認される(S102)。
上述のステップS102によりデータベースサーバ20−2のデータベースとしての正常性が確認された場合は、データベースクライアント10(クライアントライブラリ11)では、データベースファイルシステム22−1へのアクセスの正常性として、二相コミットメントフラグ223−2の内容が読込まれる(S103)。
(A−2−2)トランザクション(データベース更新)処理
図1の構成では、通常であればデータベースクライアント10(クライアントライブラリ11)から、データベースサービスにおけるデータ更新の要求が、データベースサーバ20−1、20−2に対して送信され、二相コミットメントにより、データベースファイルシステム22−1、22−2のデータが更新される。
次に、データベースシステム1において、二相コミットメントの実施が出来ない場合のトランザクション処理の動作について説明する。
図3は、データベースシステム1において、二相コミットメントの実施が出来ない場合のトランザクション処理の動作について説明したシーケンス図である。また、図3においては、データベースサーバ20−1をメンテナンス目的で停止しており、データベースサーバ20−2の二相コミットメントフラグ223−2には「OFF」が設定されているものとする。
まず、データベースクライアント10のクライアントライブラリ11により、データベースサーバ20−1に対して上述の図2に示す状態ポーリングの問い合わせが実施される。ここでは、上述の通りデータベースサーバ20−1は停止しているので、ネットワーク上の疎通も取ることができず、上述のステップS101の時点で終了し、クライアントライブラリ11では、データベースサーバ20−1との接続は不可であったという結果となる(S201)。
そして、クライアントライブラリ11では、データベースサーバ20−2に対しても、上述の図2に示す状態ポーリングの問い合わせが実施され、二相コミットメントフラグ223−2の内容が読込まれる(S202)。
そして、二相コミットメントフラグ223−2の内容が読込まれると、データベースクライアント10では、データベースサーバ20−2の二相コミットメントフラグ223−2の内容は「OFF」となっているため、データベースのデータ更新は、データベースサーバ20−2に対して一相コミットメントにより行うと決定される(S203)。
そして、データベースクライアント10からは、データベースサーバ20−1へのコミットは要求されず、データベースサーバ20−2に対してのみコミットが要求され(S204)、データベースサーバ20−2においてデータが更新される(S205)。
(A−3)第1の実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
上述の図1に示すような、データベースの分散トランザクション環境下において、一方のデータベースサーバの停止により、二相コミットメントが実施できない場合においても、一相コミットメントとしてトランザクションを完結することができ、即座に更新データを利用し、データベースサービスを継続することができる。本発明は、例えば、電話の加入者データベースのように、契約加入者の1回の電話につき1レコード更新を実施するような環境や、Webサービス環境においてユーザのブラウザ上の操作がデータベース更新アクセスに繋がるような環境など、トラヒックの多い環境でのサービスの継続性が求められるシステムに適用して好適なものである。
また、二相コミットメントフラグ223の状態に応じて、クライアントライブラリ11が二相コミットメントを実施するか、運用継続側のデータベースサーバ20−2に対して一相コミットメントを実施するかを判断することにより、データベースサーバ20−1、20−2においては、一相コミットメントの場合であっても、通常時(二相コミットメントの場合)のデータベース更新処理と何ら変わらないという効果を奏する。
(B)第2の実施形態
以下、本発明によるデータベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム
の第2の実施形態を、図面を参照しながら詳述する。なお、この実施形態のデータベース提供装置は、データベースサーバである。
(B−1)第2の実施形態の構成
第1の実施形態のデータベースシステム1では、二相コミットメントフラグ223−1又は223−2が、「OFF」に設定された状態においてデータベースサービスを継続した場合には、データベースファイルシステム22−1、22−2のデータには差分が生じることとなる。例えば、上述の図3のシーケンス図に示す動作が終了した後、すなわち、データベースファイルシステム22−1が運転を停止し、データベースサーバ20−2でのみデータ更新が行われた結果、データベースファイルシステム22−1、22−2のデータに差分がある場合、データベースサーバ20−1を停止状態から起動状態とし、そのままデータベースシステム1のデータベースサービスに復帰させることはできない。これは、二相コミットメント方式における、データレプリケーションの条件といえるからである。データベースサーバ20−1を復帰させる場合には、運用が継続されたデータベースサーバ20−2のデータベースファイルシステム22−2のデータを基に、データの整合、すなわち、データベースサーバ20−2のデータベースファイルシステム22−2の同一のデータを、データベースサーバ20−1のデータベースファイルシステム22−1に設定する必要がある。
第2の実施形態のデータベースシステム1Aは、上述のような第1の実施形態における不都合を鑑みて、データベースサーバ20−1、20−2の間でデータの整合を取るための機能を追加したものである。以下、第2の実施形態について、第1の実施形態との差異を説明する。
図4は、この実施形態のデータベースシステム1Aの全体構成を示すブロック図である。
データベースシステム1Aは、データベースクライアント10、クライアントライブラリ11、データベースサーバ20A−1、20A−2を有している。データベースクライアント10は、第1の実施形態のものと同様であるので説明を省略する。
データベースサーバ20A−1、20A−2は、DBMS21−1、21−2、データベースファイルシステム22A−1、22A−2を有している。DBMS21−1、21−2は第1の実施形態のものと同様であるので説明を省略する。
データベースファイルシステム22A−1、22A−2は、それぞれデータ記憶部221A−1、221A−2、フラグ管理部222A−1、222A−2、二相コミットメントフラグ223A−1、223A−2を有している。データベースファイルシステム22A−1、22A−2は、データ記憶部221A−1、221A−2、及び、二相コミットメントフラグ223A−1、223A−2に記憶する情報の内容及び形式が、第1の実施形態のものと異なっている。
図5は、データ記憶部221A−1、221A−2に記憶するデータレコード300の構成を示した説明図である。
データレコード300は、データベースにおいてデータを記憶する単位であり、データ記憶部221A−1、221A−2には、図5に示すデータレコード300が複数記憶されている。
データ格納領域301は、データベースにおいて必要となるデータ項目を設定する領域であり、データ項目数などに制限はない。レコード生成時タイムスタンプ302は、データベースにおいてデータレコードとして追加された時をタイムスタンプとして記録する。
レコード更新時タイムスタンプ303は、該当するデータレコード300が更新される度に更新時をタイムスタンプとして記録する。すなわち、レコード更新時タイムスタンプ303は、該当データレコード300の最終更新時間となる。
二相コミットメントフラグ223A−1、223A−2では、「ON」から「OFF」に設定された場合には、「ON」から「OFF」に設定が変更された時刻もタイムスタンプとして併せて記憶する点で、第1の実施形態の二相コミットメントフラグ223−1、223−2と異なっている。この時刻は、二相コミットメントフラグ223A−1、223A−2の内容が、さらに「OFF」から「ON」に設定変更された場合に、他方のデータベースサーバとのデータの整合を取る場合の基準時として利用される。上述のデータ整合については、オペレータが手動で実施しても良い。なお、他方のデータベースサーバとのデータ整合の詳細については後述する動作説明において説明する。
また、データベースファイルシステム22A−1、22A−2の間でのデータ整合に掛かる時間を短縮するために、データ記憶部221A−1、221A−2のバックアップファイルを取得し、予め他方のデータベースサーバに設定することにより、データの差分を最小限にした上で、データ整合の動作を実施しても良い。
(B−2)第2の実施形態の動作
次に、以上のような構成を有する第1の実施形態のデータベースシステム1Aにおけるデータ整合の動作を説明する。
図6は、データベースサーバ20A−1が運転を停止し、その後運転を再開した後にデータベースサーバ20A−2とデータの整合を取る動作について示したフローチャートである。
図6では、前提として上述の図3のシーケンス図に示す動作が終了した後、すなわち、データベースファイルシステム22A−1が運転を停止し、データベースサーバ20A−2で二相コミットメントフラグ223A−2が「OFF」に設定され、データベースサーバ20A−2でのみデータ更新が行われた結果、データベースファイルシステム22A−1、22A−2のデータに差分があるものとする。
まず、データベースサーバ20A−2において二相コミットメントフラグ223A−2の内容が「OFF」から「ON」に切り替わると、運用継続側のデータベースサーバ20A−2により、データ整合処理が開始される(S301)。なお、データ整合中の間は、クライアントライブラリ11からは、運用継続側に対する一相コミットメントとして、データベースサービスを継続しても良い。
データ整合は、データベースファイルシステム22A−2により、二相コミットメントフラグ223A−2が「OFF」のタイムスタンプ以降に更新されたデータが、レコード更新時タイムスタンプ303を基に抽出される。そして、抽出されたデータレコードが、データベースサーバ20A−2から、データベースサーバ20A−1に送信され、データベースサーバ20A−2において、データベースファイルシステム22A−1により、データ記憶部221A−1の内容が更新され、データ整合が実施される(S302)。データベースサーバ20A−2におけるデータ整合は、データ記憶部221A−2において対応するデータレコードを、データベースサーバ20A−1から与えられたデータレコードに置換えることにより行っても良い。
最終的にデータを整合する数秒間のデータベースサーバ20A−1、20A−2でのデータ更新の規制を終えた後、二相コミットメントが可能な通常の状態となり、データベースサーバ20A−1がデータベースサービスに復帰する(S303)。
次に、データベースファイルシステム22A−1、22A−2の間でのデータ整合に掛かる時間を短縮するために、上述の図6に示す処理が行われる前に、運用継続側のデータベースサーバ20A−2(データ記憶部221A−2)のバックアップファイルを取得し、データベースサーバ20A−1(データ記憶部221A−1)に設定する場合の動作について説明する。
図7は、データ整合の前に、バックアップファイルを取得・設定する動作について示したフローチャートである。
まず、運用継続側のデータベースサーバ20A−2のデータベースファイルシステム22A−2において、バックアップファイルが生成される(S401)。このバックアップは、オペレータにより手動で行っても良いし、データベースファイルシステム22A−2において、所定のタイミングで実施されるようにしても良い。例えば、データベースサーバ20A−1が停止している間に、所定の間隔で実施するようにしても良い。このバックアップファイルの生成は、二相コミットメントフラグ223A−2を「ON」に切り替える時間に近いほど、運用継続側との差分が少なくなる。
次に、データベースサーバ20A−2において生成されたバックアップファイルが、データベースサーバ20A−1に転送され、データベースファイルシステム22A−1(データ記憶部221A−1)に設定される(S402)。この設定は、オペレータにより手動で行っても良いし、上述のS401におけるバックアップ取得の後、データベースファイルシステム22A−2、22A−1により実施するようにしても良い。上述のステップS402の終了時点でのデータベースサーバ20A−1、データベースサーバ20A−2間のデータ差分は、上述のステップS401においてバックアップファイルを生成した時点以降に一相コミットメントが実施された更新データのみとなり、以降上述の図6に示すデータ整合の動作により、データベースサーバ20A−1、データベースサーバ20A−2間のデータは完全に一致することとなる。
(B−3)第2の実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
第2の実施例において、データ整合を実施する際、データ更新時のタイムスタンプを基に整合対象となるレコードデータを抽出することに関しては、一相コミットメントによるデータベースサービス継続時のデータ更新量に左右されることなく、データ差分を蓄積することができる。また、これにより、従来の差分表によるデータ更新差分の蓄積(特許文献1参照)では、通常のデータ更新に加え、差分表に対するアクセス処理により、トランザクションのターンアラウンドタイムが増加する可能性があったが、本発明ではその問題を回避することができる。
また、二相コミットメントによりデータ更新ができない場合であっても、通常時のレコードデータ構成となんら変わらないことから、バックアップファイルによりデータ整合時間の短縮を図ることが可能となる。これにより、データ整合時におけるデータ整合処理速度に対し、一相コミットメントのトランザクション量が過大である場合に、データ整合が収束できない状況に陥る、という問題を回避することができる。
(C)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(C−1)上記の各実施形態では、データベースシステムにおいて、2台のデータベースサーバが配置された場合について示したが、3台以上のデータベースサーバを配置しても良く、その台数は限定されないものである。
(C−2)上記の各実施形態においては、データベースシステムにおいて、通常時は二相コミットメントに従ってデータ更新を行い、いずれかのデータベースサーバの故障時には、一相コミットメントに従ったデータ更新をするようにしていたが、通常時は三相コミットメントによりデータ更新を行うデータベースシステムに適用しても良い。
第1の実施形態に係る情報処理システムの全体構成を示すブロック図である。 第1の実施形態に係るデータベースクライアントが、データベースサーバに対して状態ポーリングを行う動作の例について示したシーケンス図である。 第1の実施形態に係る情報処理システムにおいて、二相コミットメントの実施が出来ない場合のトランザクション処理の動作について説明したシーケンス図である。 第2の実施形態に係る情報処理システムの全体構成を示すブロック図である。 第2の実施形態に係るデータ記憶部に記憶するデータレコードの構成の例を示した説明図である。 第2の実施形態に係る、一方のデータベースサーバが運転を停止し、その後運転を再開した後に、他方のデータベースサーバとデータの整合を取る動作について示したフローチャートである。 第2の実施形態に係る、データベースサーバ間のデータ整合の前に、バックアップファイルを取得・設定する動作について示したフローチャートである。
符号の説明
データベースシステム1、10…データベースクライアント、11…クライアントライブラリ、20、20−1、20−2…データベースサーバ、21、21−1、21−2…DBMS、22、22−1、22−2…データベースファイルシステム、221、221−1、221−2…データ記憶部、222、222−1、222−2…フラグ管理部、223、223−1、223−2…二相コミットメントフラグ。

Claims (9)

  1. データを保持するデータベース部を備え、データベースクライアント端末の要求に基づいて上記データベース部のデータの更新を行うデータベース提供装置において、
    該データベース提供装置のデータベース部のデータを更新する際のコミットメントプロトコルとして、第1のコミットメントプロトコル又は第2のコミットメントプロトコルのいずれかを適用することを示すプロトコル情報を保持するプロトコル情報保持手段と、
    上記データベースクライアント端末の要求に応じて、上記プロトコル情報保持手段に保持されているプロトコル情報を、上記データベースクライアント端末に与えるプロトコル情報提供手段と、
    上記データベースクライアント端末からの、上記プロトコル情報保持手段に保持されているプロトコル情報が示すコミットメントプロトコルに従ったデータ更新の要求に応じて、データベース部のデータを更新するデータ更新手段と
    を有することを特徴とするデータベース提供装置。
  2. 上記データベース部は、単位データと共に、その単位データを更新したデータ更新時刻の情報を記憶し、
    上記プロトコル情報保持手段は、保持するプロトコル情報が、上記第2のコミットメントプロトコルを示す内容に更新された場合には、プロトコル情報と共に、プロトコル情報更新時刻もあわせて保持する
    ことを特徴とする請求項1に記載のデータベース提供装置。
  3. 上記プロトコル情報保持手段に保持されているプロトコル情報が、上記第2のコミットメントプロトコルを示す内容から上記第1のコミットメントプロトコルを示す内容に更新されたときに、当該データベース提供装置のデータベース部が保持する単位データのうち、データ更新時刻として、上記プロトコル情報更新時刻以降の時刻が設定された単位データを抽出する単位データ抽出手段と、
    外部のデータベース提供装置の備えるデータベース部のデータを、当該データベース提供装置の備えるデータベース部のデータに一致させるために、上記データ抽出手段により抽出された単位データを、上記外部のデータベース提供装置に与えるデータ提供手段と
    をさらに有することを特徴とする請求項2に記載のデータベース提供装置。
  4. 当該データベース提供装置のデータベース部が保持するデータと、外部のデータベース提供装置が備えるデータベース部が保持するデータとの差分データに係る単位データが、上記外部のデータベース提供装置から与えられると、上記差分データに係る単位データに基づいて、当該データベース提供装置のデータベース部が保持するデータを、上記外部のデータベース提供装置のデータベース部が保持するデータに一致させるデータ一致化手段をさらに有することを特徴とする請求項2又は3に記載のデータベース提供装置。
  5. 上記第1のコミットメントプロトコルは二相コミットメントプロトコル又は三相コミットメントプロトコルであり、上記第2のコミットメントプロトコルは一相コミットメントプロトコルであることを特徴とする請求項1〜4のいずれかに記載のデータベース提供装置。
  6. データを保持するデータベース部をそれぞれ備える複数のデータベース提供装置に、データベース部のデータの更新要求を行うデータベースクライアント端末において、
    上記複数のデータベース提供装置のそれぞれが保持している、当該データベース提供装置がデータベース部のデータの更新に用いるコミットメントプロトコルを示すプロトコル情報を、上記複数のデータベース提供装置のそれぞれから読込むプロトコル情報取得手段と、
    上記複数のデータベース提供装置の全てから第1のコミットメントプロトコルを示す内容のプロトコル情報が得られた場合には、第1のコミットメントプロトコルに従って上記複数のデータベース提供装置にデータ更新の要求を行い、上記複数のデータベース提供装置のうちいずれかから第2のコミットメントプロトコルを示すプロトコル情報が得られた場合には、そのデータベース提供装置にだけ第2のコミットメントプロトコルに従ったデータ更新要求を行うデータ更新要求手段と
    を有することを特徴とするデータベースクライアント端末。
  7. データベースクライアント端末と、複数のデータベース提供装置とを備え、上記複数のデータベース提供装置は、データを保持するデータベース部をそれぞれ有し、上記データベースクライアント端末からの要求に応じて、それぞれのデータベース部に保持されているデータを更新するデータベースシステムにおいて、
    上記複数のデータベース提供装置のそれぞれに、請求項1に記載のデータベース提供装置を適用すると共に、
    上記データベースクライアント端末に、請求項6に記載のデータベースクライアント端末を適用した
    ことを特徴とするデータベースシステム。
  8. データを保持するデータベース部を備え、データベースクライアント端末の要求に基づいて上記データベース部のデータの更新を行うデータベース提供装置に搭載されたコンピュータを、
    該データベース提供装置のデータベース部のデータを更新する際のコミットメントプロトコルとして、第1のコミットメントプロトコル又は第2のコミットメントプロトコルのいずれかを適用することを示すプロトコル情報を保持するプロトコル情報保持手段と、
    上記データベースクライアント端末の要求に応じて、上記プロトコル情報保持手段に保持されているプロトコル情報を、上記データベースクライアント端末に与えるプロトコル情報提供手段と、
    上記データベースクライアント端末からの、上記プロトコル情報保持手段に保持されているプロトコル情報が示すコミットメントプロトコルに従ったデータ更新の要求に応じて、データベース部のデータを更新するデータ更新手段と
    して機能させることを特徴とするデータベース提供プログラム。
  9. データを保持するデータベース部をそれぞれ備える複数のデータベース提供装置に、データベース部のデータの更新要求を行うデータベースクライアント端末に搭載されたコンピュータを、
    上記複数のデータベース提供装置のそれぞれが保持している、当該データベース提供装置がデータベース部のデータの更新に用いるコミットメントプロトコルを示すプロトコル情報を、上記複数のデータベース提供装置のそれぞれから読込むプロトコル情報取得手段と、
    上記複数のデータベース提供装置の全てから第1のコミットメントプロトコルを示す内容のプロトコル情報が得られた場合には、第1のコミットメントプロトコルに従って上記複数のデータベース提供装置にデータ更新の要求を行い、上記複数のデータベース提供装置のうちいずれかから第2のコミットメントプロトコルを示すプロトコル情報が得られた場合には、そのデータベース提供装置にだけ第2のコミットメントプロトコルに従ったデータ更新要求を行うデータ更新要求手段と
    して機能させることを特徴とするデータベースクライアントプログラム。
JP2007295813A 2007-11-14 2007-11-14 データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム Active JP4885825B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007295813A JP4885825B2 (ja) 2007-11-14 2007-11-14 データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007295813A JP4885825B2 (ja) 2007-11-14 2007-11-14 データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム

Publications (2)

Publication Number Publication Date
JP2009122935A JP2009122935A (ja) 2009-06-04
JP4885825B2 true JP4885825B2 (ja) 2012-02-29

Family

ID=40815030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007295813A Active JP4885825B2 (ja) 2007-11-14 2007-11-14 データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム

Country Status (1)

Country Link
JP (1) JP4885825B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5956364B2 (ja) * 2013-02-25 2016-07-27 日本電信電話株式会社 クラスタシステム
JP6237050B2 (ja) * 2013-09-25 2017-11-29 沖電気工業株式会社 データベースシステム、データベース更新方法及びデータベース更新プログラム
JP6485212B2 (ja) * 2015-05-22 2019-03-20 沖電気工業株式会社 データベースシステム、データベースサーバ、データベースサーバプログラム、及びデータベースシステムの制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3020539B2 (ja) * 1990-03-07 2000-03-15 株式会社日立製作所 並列動作型データベース管理方式
JP3340431B2 (ja) * 1990-03-07 2002-11-05 株式会社日立製作所 データベース管理方法
JPH0460850A (ja) * 1990-06-29 1992-02-26 Nec Corp トランザクション終了処理方式
JPH06119227A (ja) * 1992-10-06 1994-04-28 Oki Electric Ind Co Ltd 分散データベース制御システム
JPH10111825A (ja) * 1996-10-04 1998-04-28 Kokusai Denshin Denwa Co Ltd <Kdd> 複数データベース一致化更新方法および装置

Also Published As

Publication number Publication date
JP2009122935A (ja) 2009-06-04

Similar Documents

Publication Publication Date Title
CN102640108B (zh) 已复制数据的监控
US6947982B1 (en) Distributed session services
US8181071B2 (en) Automatically managing system downtime in a computer network
CN104994168B (zh) 分布式存储方法及分布式存储系统
US20080244552A1 (en) Upgrading services associated with high availability systems
JP6405255B2 (ja) 通信システム、キュー管理サーバ、及び、通信方法
JP5348129B2 (ja) 統合構成管理装置、異種構成管理装置、バックアップデータ管理システム
WO2000070465A1 (fr) Systeme informatique reparti et procede d&#39;application de donnees de maintenance
JP4885825B2 (ja) データベース提供装置、データベースクライアント端末、データベースシステム、データベース提供プログラム及びデータベースクライアントプログラム
JP2015502605A (ja) ストレージシステムおよびデータ管理方法
JP5798056B2 (ja) 呼処理情報の冗長化制御システムおよびこれに利用する予備保守サーバ
US11290318B2 (en) Disaster recovery of cloud resources
JP4113354B2 (ja) 広域分散システム
CN114547108A (zh) 数据处理方法、装置、设备及介质
JPH07114495A (ja) 多重化ファイル管理方式
JP6237050B2 (ja) データベースシステム、データベース更新方法及びデータベース更新プログラム
US20050097105A1 (en) Distributed database for one search key
CN112800029A (zh) 一种ceph集群整体迁移的方法
CN114466026B (zh) 应用程序接口的更新方法、装置、存储介质和计算设备
US7644306B2 (en) Method and system for synchronous operation of an application by a purality of processing units
JP5106648B2 (ja) 複数のインターネットサービスを多重化するサービス中継装置及びサービス中継方法
JP2005267312A (ja) アプリケーション入れ替え方法およびそのプログラム
CN115460054B (zh) 基于共享内存的云服务管理发布方法及系统
EP3411792B1 (en) Method for sending a plurality of data from a server to a plurality of devices
CN117336353A (zh) 一种服务发现方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20101129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111011

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: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111208

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141216

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4885825

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150