(57)【要約】【課題】  データベースクライアントから複数のデータベースサーバへコミットを伴うデータ更新を行う際の処理時間を短縮する。【解決手段】  本発明は、複数のデータベースサーバと、データベースクライアントを備えるデータベースシステムに関する。最後段のデータベースサーバ以外のデータベースサーバは、前段の装置から供給されたデータ更新要求を後段のデータベースサーバに転送することを特徴とする。データベースクライアントは、最前段のデータベースサーバに、データ更新要求を送信し、最前段のデータベースサーバから、複数のデータベースサーバの全てのデータ更新結果を受信することを特徴とする。【選択図】      図１
2015176203.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータベースサーバと、データベースクライアントを備えるデータベースシステムにおいて、
上記複数のデータベースサーバのうち最後段のデータベースサーバを除くデータベースサーバは、
前段の装置から供給されたデータ更新要求に従って、データ更新を行うデータ更新手段と、
前段の装置から供給されたデータ更新要求を、後段のデータベースサーバに転送するデータ更新要求転送手段と、
後段のデータベースサーバからデータ更新要求に対するデータ更新結果の応答があった場合、そのデータ更新結果と自装置のデータ更新結果を合わせたデータ更新結果を、前段の装置に送信するデータ更新応答手段と、
前段の装置から供給されたデータコミット要求に従って、データコミットを行うデータコミット手段と、
前段の装置から供給されたデータコミット要求を後段のデータベースサーバに転送するデータコミット要求転送手段と、
後段のデータベースサーバからデータコミット要求に対するデータコミット結果の応答があった場合、そのデータコミット結果と自装置のデータコミット結果を合わせたデータコミット結果を、前段の装置に送信するデータコミット応答手段とを有し、
上記最後段のデータベースサーバは、
前段のデータベースサーバから供給されたデータ更新要求に従って、データ更新を行い、前段のデータベースサーバにそのデータ更新結果を応答するデータ更新応答手段と、
前段のデータベースサーバから供給されたデータコミット要求に従って、データコミットを行い、前段のデータベースサーバにそのデータコミット結果を応答するデータコミット応答手段とを有し、
上記データベースクライアントは、
上記複数のデータベースサーバのうち最前段のデータベースサーバに、データ更新要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータ更新結果を受信するデータ更新要求手段と、
上記最前段のデータベースサーバに、データコミット要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータコミット結果を受信するデータコミット要求手段とを有する
ことを特徴とするデータベースシステム。
【請求項２】
上記複数のデータベースサーバのうち最後段のデータベースサーバを除くデータベースサーバのそれぞれで、上記データ更新応答手段による後段のデータベースへのデータ更新要求の転送処理と、上記データ更新手段によるデータ更新処理が並列して実行されることを特徴とする請求項１に記載のデータベースシステム。
【請求項３】
上記複数のデータベースサーバのうち最後段のデータベースサーバを除くデータベースサーバのそれぞれで、上記データコミット応答手段による後段のデータベースへのデータコミット要求の転送処理と、上記データコミット手段によるデータコミット処理が並列して実行されることを特徴とする請求項１又は２に記載のデータベースシステム。
【請求項４】
前段の装置から供給されたデータ更新要求に従って、データ更新を行うデータ更新手段と、
前段の装置から供給されたデータ更新要求を、後段のデータベースサーバに転送するデータ更新要求転送手段と、
後段のデータベースサーバからデータ更新要求に対するデータ更新結果の応答があった場合、そのデータ更新結果と自装置のデータ更新結果を合わせたデータ更新結果を、前段の装置に送信するデータ更新応答手段と、
前段の装置から供給されたデータコミット要求に従って、データコミットを行うデータコミット手段と、
前段の装置から供給されたデータコミット要求を後段のデータベースサーバに転送するデータコミット要求転送手段と、
後段のデータベースサーバからデータコミット要求に対するデータコミット結果の応答があった場合、そのデータコミット結果と自装置のデータコミット結果を合わせたデータコミット結果を、前段の装置に送信するデータコミット応答手段と
を有することを特徴とするデータベースサーバ。
【請求項５】
コンピュータを、
前段の装置から供給されたデータ更新要求に従って、データ更新を行うデータ更新手段と、
前段の装置から供給されたデータ更新要求を、後段のデータベースサーバに転送するデータ更新要求転送手段と、
後段のデータベースサーバからデータ更新要求に対するデータ更新結果の応答があった場合、そのデータ更新結果と自装置のデータ更新結果を合わせたデータ更新結果を、前段の装置に送信するデータ更新応答手段と、
前段の装置から供給されたデータコミット要求に従って、データコミットを行うデータコミット手段と、
前段の装置から供給されたデータコミット要求を後段のデータベースサーバに転送するデータコミット要求転送手段と、
後段のデータベースサーバからデータコミット要求に対するデータコミット結果の応答があった場合、そのデータコミット結果と自装置のデータコミット結果を合わせたデータコミット結果を、前段の装置に送信するデータコミット応答手段と
して機能させることを特徴とするデータベースサーバプログラム。
【請求項６】
複数のデータベースサーバのうち最前段のデータベースサーバに、データ更新要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータ更新結果を受信するデータ更新要求手段と、
上記最前段のデータベースサーバに、データコミット要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータコミット結果を受信するデータコミット要求手段とを有する
ことを特徴とするデータベースクライアント。
【請求項７】
コンピュータを、
複数のデータベースサーバのうち最前段のデータベースサーバに、データ更新要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータ更新結果を受信するデータ更新要求手段と、
上記最前段のデータベースサーバに、データコミット要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータコミット結果を受信するデータコミット要求手段と
して機能させることを特徴とするデータベースクライアントプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント、及びデータベースクライアントプログラムに関し、例えば、二相コミットでデータ更新可能なデータベースサーバ・クライアントシステムに適用し得る。
【背景技術】
【０００２】
従来のデータベース分散トランザクション環境下でのデータ更新においては、分散されたデータベースサーバ間のデータの整合性を保つため、データ更新の際には、データベースサーバ（以下、「ＤＢサーバ」とも表す）とデータベースクライアント（以下、「ＤＢクライアント」とも表す）との間で二相コミット（二相コミットメント）のプロトコルに従ったデータ更新が行われる場合がある。データベース分散トランザクション環境下での二相コミットでは、全ＤＢサーバがコミット可能な状態である場合にのみ、二相コミットが可能となり、二相コミットのトランザクションが完結することにより、コミットされたデータを正式なデータとして利用可能としている（特許文献１参照）。
【０００３】
また、従来ＯＲＡＣＬＥ（登録商標）等のミドルウェアを採用した環境では、ＤＢクライアントから、２台のＤＢサーバへの二相コミットを実施する際に、ＤＢクライアントから第１のＤＢサーバへのトランザクションと、ＤＢクライアント第１のＤＢサーバを介した第２のＤＢサーバへのトランザクションの処理が必要となる。具体的には、ＤＢクライアントがデータ更新時に使用するコンテキスト（ＤＢ更新管理情報）を生成し、そのコンテキストを使用して、第１のＤＢサーバと第２のＤＢサーバを順次データ更新を行っていくことで、第１のＤＢサーバが、二相コミットのトランザクションであることを認識し、該当コンテキストに対するコミット要求時には、第１のＤＢサーバから第２のＤＢサーバへのコミット要求が送信される動作となっている。すなわち、ＤＢクライアントから複数のＤＢサーバへ二相コミットを行う場合には、複数のＤＢサーバ群に対する多段的な接続が必要になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１２２９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述のように、ＤＢクライアントから複数のＤＢサーバへの二相コミットを行う際に多段的な接続を行うと、データ更新に必要なシーケンスの工程数が多くなり、二相コミットを開始してから終了するまでの時間が長くなってしまう。また、ＤＢサーバ間の通信についても、ネットワーク環境によっては長くかかってしまう場合もある。
【０００６】
そのため、データベースクライアントから複数のデータベースサーバへコミットを伴うデータ更新を行う際に、処理時間を短縮することができるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント、及びデータベースクライアントプログラムが望まれている。
【課題を解決するための手段】
【０００７】
第１の本発明は、複数のデータベースサーバと、データベースクライアントを備えるデータベースシステムにおいて、（１）上記複数のデータベースサーバのうち最後段のデータベースサーバを除くデータベースサーバは、（１−１）前段の装置から供給されたデータ更新要求に従って、データ更新を行うデータ更新手段と、（１−２）前段の装置から供給されたデータ更新要求を、後段のデータベースサーバに転送するデータ更新要求転送手段と、（１−３）後段のデータベースサーバからデータ更新要求に対するデータ更新結果の応答があった場合、そのデータ更新結果と自装置のデータ更新結果を合わせたデータ更新結果を、前段の装置に送信するデータ更新応答手段と、（１−４）前段の装置から供給されたデータコミット要求に従って、データコミットを行うデータコミット手段と、（１−５）前段の装置から供給されたデータコミット要求を後段のデータベースサーバに転送するデータコミット要求転送手段と、（１−６）後段のデータベースサーバからデータコミット要求に対するデータコミット結果の応答があった場合、そのデータコミット結果と自装置のデータコミット結果を合わせたデータコミット結果を、前段の装置に送信するデータコミット応答手段とを有し、（２）上記最後段のデータベースサーバは、（２−１）前段のデータベースサーバから供給されたデータ更新要求に従って、データ更新を行い、前段のデータベースサーバにそのデータ更新結果を応答するデータ更新応答手段と、（２−２）前段のデータベースサーバから供給されたデータコミット要求に従って、データコミットを行い、前段のデータベースサーバにそのデータコミット結果を応答するデータコミット応答手段とを有し、（３）上記データベースクライアントは、（３−１）上記複数のデータベースサーバのうち最前段のデータベースサーバに、データ更新要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータ更新結果を受信するデータ更新要求手段と、（３−２）上記最前段のデータベースサーバに、データコミット要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータコミット結果を受信するデータコミット要求手段とを有することを特徴とする。
【０００８】
第２の本発明のデータベースサーバは、（１）前段の装置から供給されたデータ更新要求に従って、データ更新を行うデータ更新手段と、（２）前段の装置から供給されたデータ更新要求を、後段のデータベースサーバに転送するデータ更新要求転送手段と、（３）後段のデータベースサーバからデータ更新要求に対するデータ更新結果の応答があった場合、そのデータ更新結果と自装置のデータ更新結果を合わせたデータ更新結果を、前段の装置に送信するデータ更新応答手段と、（４）前段の装置から供給されたデータコミット要求に従って、データコミットを行うデータコミット手段と、（５）前段の装置から供給されたデータコミット要求を後段のデータベースサーバに転送するデータコミット要求転送手段と、（６）後段のデータベースサーバからデータコミット要求に対するデータコミット結果の応答があった場合、そのデータコミット結果と自装置のデータコミット結果を合わせたデータコミット結果を、前段の装置に送信するデータコミット応答手段とを有することを特徴とする。
【０００９】
第３の本発明のデータベースサーバプログラムは、コンピュータを、（１）前段の装置から供給されたデータ更新要求に従って、データ更新を行うデータ更新手段と、（２）前段の装置から供給されたデータ更新要求を、後段のデータベースサーバに転送するデータ更新要求転送手段と、（３）後段のデータベースサーバからデータ更新要求に対するデータ更新結果の応答があった場合、そのデータ更新結果と自装置のデータ更新結果を合わせたデータ更新結果を、前段の装置に送信するデータ更新応答手段と、（４）前段の装置から供給されたデータコミット要求に従って、データコミットを行うデータコミット手段と、（５）前段の装置から供給されたデータコミット要求を後段のデータベースサーバに転送するデータコミット要求転送手段と、（６）後段のデータベースサーバからデータコミット要求に対するデータコミット結果の応答があった場合、そのデータコミット結果と自装置のデータコミット結果を合わせたデータコミット結果を、前段の装置に送信するデータコミット応答手段として機能させることを特徴とする。
【００１０】
第４の本発明のデータベースクライアントは、（１）複数のデータベースサーバのうち最前段のデータベースサーバに、データ更新要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータ更新結果を受信するデータ更新要求手段と、（２）上記最前段のデータベースサーバに、データコミット要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータコミット結果を受信するデータコミット要求手段とを有することを特徴とする。
【００１１】
第５の本発明のデータベースクライアントプログラムは、コンピュータを、（１）複数のデータベースサーバのうち最前段のデータベースサーバに、データ更新要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータ更新結果を受信するデータ更新要求手段と、（２）上記最前段のデータベースサーバに、データコミット要求を送信し、上記最前段のデータベースサーバから、上記複数のデータベースサーバの全てのデータコミット結果を受信するデータコミット要求手段として機能させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、データベースクライアントから複数のデータベースサーバへコミットを伴うデータ更新を行う際に、処理時間を短縮することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態に係るＤＢシステムの動作について示したシーケンス図である。
【図２】第１の実施形態に係るＤＢシステムの全体構成について示したブロック図である。
【図３】第１の実施形態に係るＤＢクライアントで生成されるメッセージ（データ更新要求及びデータコミット要求のメッセージ）の構成例について示した説明図である。
【図４】第１の実施形態に係るＤＢシステムで、仮にＤＢクライアントが各ＤＢサーバ向けにメッセージを生成する場合の動作について示したシーケンス図である。
【図５】第２の実施形態に係るＤＢシステムの動作について示したシーケンス図である。
【発明を実施するための形態】
【００１４】
（Ａ）第１の実施形態
以下、本発明によるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント、及びデータベースクライアントプログラムの第１の実施形態を、図面を参照しながら詳述する。
【００１５】
（Ａ−１）第１の実施形態の構成
図２は、第１の実施形態のＤＢシステム１の全体構成及び各装置の機能的構成について示したブロック図である。
【００１６】
ＤＢシステム１は、２台のＤＢサーバ１０（１０−１、１０−２）及び、ＤＢクライアント２０を有している。なお、ＤＢシステム１を構成するＤＢサーバ１０の数は３台以上であってもよい。
【００１７】
各ＤＢサーバ１０は、機能的には、ＤＢサーバとしての情報処理を行うＤＢサーバプロセス１１とデータ（データベース）を蓄積するＤＢファイルシステム１２を有している。ＤＢサーバ１０は、例えば、コンピュータ（例えば、ＰＣやワークステーション等のサーバマシン）に、データベースサーバアプリケーション（実施形態のデータベースサーバプログラムを含む）をインストールすることにより実現することができる。また、ＤＢサーバ１０は、例えばデータベースのミドルウェア（例えば、ＯＲＡＣＬＥ等のデータベースミドルウェア）の機能を利用して実現するようにしてもよい。なお、以下では、各ＤＢサーバ１０−１、１０−２のデータベース上の識別子（アプリケーション上の識別子）を、それぞれ「ＤＢ＃１」、「ＤＢ＃２」と表すものとする。
【００１８】
なお、ここでは、ＤＢサーバ１０−１、１０−２は冗長系を構成しており、それぞれのＤＢファイルシステム１２には同期したデータが格納されているものとする。そして、ＤＢサーバ１０−１、１０−２のデータは、ＤＢクライアント２０からの要求に応じて、二相コミット（二相コミットメント）の方式（プロトコル）で更新することも可能であるものとする。なお、ＤＢシステム１では、データ更新の方式は二相コミットに限定されず、コミットを要しないデータ更新も選択的に可能としてもよい。
【００１９】
ＤＢクライアント２０は、ＤＢサーバ１０−１、１０−２上のデータの取得や更新等を行うものであり、ＤＢクライアントプロセス２１を有している。ＤＢクライアント２０は、例えば、コンピュータ（例えば、ＰＣやワークステーション等）にＤＢクライアントプロセス２１に対応するアプリケーション（実施形態のデータベースクライアントプログラムを含むプログラム）をインストールすることにより実現するようにしてもよい。
【００２０】
ＤＢクライアントプロセス２１は、データ更新要求が二相コミットであることを示す種別と、二相コミットの対象となるＤＢサーバ１０のリスト（以下、「サーバリスト」と呼ぶ）を、データ更新要求やデータコミット要求等メッセージ中に定義することができるインタフェースを備えている。これにより、ＤＢクライアントプロセス２１では、データ更新の際の更新方式、及び、対象ＤＢサーバ１０を選択することが可能となる。
【００２１】
例えば、ＤＢクライアントプロセス２１が生成するメッセージＭ（二相コミットに係る制御命令のメッセージ）の構成は概念的には図３のように示すことができる。なお、実際のメッセージＭの構成については使用するプラットフォーム上のフォーマットに従う必要がある。
【００２２】
図３に示すようにメッセージＭには、少なくとも当該メッセージによる更新方式の種別、当該メッセージの転送対象となるサーバリスト、及び当該メッセージの定義データ（データ更新内容又はデータコミット内容の定義データ）が含まれているものとする。
【００２３】
図３に示すメッセージＭの種別（更新方式の種別）には二相コミットに設定されていることを示している。
【００２４】
また、図３に示すサーバリストは、当該メッセージの転送順序に従って各ＤＢサーバ１０の識別子が並べて記述されている。例えば、図３では、サーバリストとして「ＤＢ＃１、ＤＢ＃２」が記述されているので、当該メッセージをまずＤＢサーバ１０−１に供給し、その次にＤＢサーバ１０−１からＤＢサーバ１０−２へ転送する指示を示している。言い換えると、図３に示すメッセージＭは１段目の転送先がＤＢサーバ１０−１で、その次の２段目の転送先（終端）がＤＢサーバ１０−２であることを示している。
【００２５】
そして、ＤＢサーバ１０（ＤＢサーバプロセス１１）では、例えば図３に示すようなメッセージＭを受信すると、データ更新要求が二相コミットの要求であることを認識し、そのデータ更新要求を次段の二相コミットのＤＢサーバ１０に送信（つまり、メッセージ転送）することを可能とする機能に対応している。また、ＤＢサーバ１０（ＤＢサーバプロセス１１）では、受信したメッセージの定義データに従って、自装置のデータ（ファイルシステム１２上のデータ）の更新又はコミットを行う処理を並列実施可能とする機能に対応しているものとする。さらに、ＤＢサーバ１０（ＤＢサーバプロセス１１）では、自装置のデータを更新（コミット）するトランザクションと、メッセージを転送し、次段のＤＢサーバ１０側で実施するデータ更新（コミット）が同一のトランザクションであることを管理する機能にも対応しているものとする。
【００２６】
すなわち、ＤＢシステム１では、ＤＢクライアント２０が、ＤＢサーバ１０−１、１０−２に対して多段的に接続（直列的に接続）されていると言える。そして、以下では、ＤＢクライアント２０が直接アクセスするＤＢサーバを最前段のＤＢサーバ１０とも呼ぶものとする。また、以下では、メッセージ転送の終端（サーバリストの最後尾）に該当するＤＢベースサーバ１０を、最後段のＤＢサーバ１０とも呼ぶものとする。この実施形態では、ＤＢサーバ１０−１が最前段のＤＢサーバ１０に該当し、ＤＢサーバ１０−２が最後段のＤＢサーバに該当することになる。なお、最前段のＤＢサーバ１０−１の前段の装置はＤＢクライアント２０となるものとする。
【００２７】
（Ａ−２）第１の実施形態の動作
次に、以上のような構成を有する第１の実施形態のＤＢシステム１の動作を説明する。
【００２８】
ここでは、ＤＢクライアント２０（ＤＢクライアントプロセス２１）から、図３に示すようなメッセージを用いて、ＤＢサーバ１０−１、１０−２（ＤＢ＃１、ＤＢ＃２）に対して更新方式を二相コミットとするデータ更新要求が行われる場合の動作について図１のシーケンス図を用いて説明する。
【００２９】
まず、ＤＢクライアント２０（ＤＢクライアントプロセス２１）で、図３に示すような構成のデータ更新要求のメッセージが生成され、ＤＢサーバ１０−１に送信されたものとする（Ｓ１０１）。
【００３０】
このときの、ＤＢクライアント２０（ＤＢクライアントプロセス２１）から、ＤＢサーバ１０−１へのメッセージ送信にかかる時間（送信開始から終了までの時間）を「ｔ１」とする。
【００３１】
次に、ＤＢサーバ１０−１（ＤＢサーバプロセス１１）では、受信したデータ更新要求のメッセージを分析し、二相コミットのトランザクションであることを認識し、さらに、サーバリスト上の次段のＤＢサーバ１０−２に対して、当該メッセージと同様のデータ更新要求のメッセージを送信（Ｓ１０３）すると同時に、自装置のデータ更新（つまり、自装置のＤＢファイルシステム１２へのＩ／Ｏ）を開始する（Ｓ１０２）。
【００３２】
このとき、ＤＢサーバ１０−１からＤＢサーバ１０−２へのデータ更新要求送信（メッセージ送信）にかかる時間（メッセージ送信開始してから送信完了するまでの時間）を「ｔ３」、ＤＢサーバ１０−１におけるデータ更新にかかる時間（データ更新を開始してから更新終了するまでの時間）を「ｔ２」とする。
【００３３】
ＤＢサーバ１０−１からデータ更新要求のメッセージを受信すると、ＤＢサーバ１０−２（ＤＢ＃２）は、当該メッセージのサーバリストの内容から自装置が二相コミットの終端サーバであることを認識し、自装置のデータ更新を実施（Ｓ１０４）する。
【００３４】
このとき、ＤＢサーバ１０−２におけるデータ更新にかかる時間を「ｔ４」とする。
【００３５】
そして、ＤＢサーバ１０−２は、データ更新が完了すると、データ更新応答（処理結果）を、データ更新要求のメッセージ送信元（サーバリスト上の前段）であるＤＢサーバ１０−１に送信する（Ｓ１０５）。
【００３６】
このとき、ＤＢサーバ１０−２からＤＢサーバ１０−１へのデータ更新応答の送信（メッセージ送信）にかかる時間を「ｔ５」とする。
【００３７】
ＤＢサーバ１０−２からのデータ更新応答の受信が完了すると、ＤＢサーバ１０−１は、自装置のデータ更新の終了と、データ更新要求のメッセージ転送先（サーバリスト上の次段）であるＤＢサーバ１０−２からのデータ更新応答（処理結果）を、データ更新要求のメッセージ送信元（ＤＢクライアント２０）に送信する（Ｓ１０６）。
【００３８】
このとき、ＤＢサーバ１０−１から、ＤＢクライアント２０へデータ更新応答の送信（メッセージ送信）にかかる時間を「ｔ６」と表すものとする。
【００３９】
なお、この実施形態では、ＤＢサーバ１０が２台の構成であるため、ＤＢサーバ１０−１が受信するデータ更新応答は、ＤＢサーバ１０−２の分だけであるが、ＤＢサーバ１０−２の後段にもＤＢサーバ１０が存在する場合には、ＤＢサーバ１０−１は、それらのＤＢサーバ１０のデータ更新応答についてもまとめて前段へ転送することになる。
【００４０】
ＤＢサーバ１０−１からデータ更新応答を受信すると、ＤＢクライアント２０は、今度は、データコミットを要求するメッセージ（図３に示すような構成のデータコミット要求のメッセージ）を生成し、ＤＢサーバ１０−１に送信することになる（Ｓ１０７）。
【００４１】
このときの、ＤＢクライアント２０から、ＤＢサーバ１０−１へのデータコミット要求送信（メッセージ送信）にかかる時間を「ｔ７」とする。
【００４２】
データコミット要求のメッセージを受信すると、ＤＢサーバ１０−１は、当該メッセージに従って自装置のデータコミットを実行（Ｓ１０８）した後、次段のＤＢサーバ１０−２にデータコミット要求のメッセージを転送する（Ｓ１０９）。
【００４３】
このとき、ＤＢサーバ１０−１からＤＢサーバ１０−２へのデータコミット要求の送信（メッセージ送信）にかかる時間を「ｔ９」、ＤＢサーバ１０−１におけるデータコミットにかかる時間を「ｔ８」とする。
【００４４】
ＤＢサーバ１０−１からのデータコミット要求のメッセージを受信すると、ＤＢサーバ１０−２は、当該メッセージの内容に従って、自装置のデータコミットを実行し（Ｓ１１０）、データコミット応答（処理結果）を、ＤＢサーバ１０−１に送信する（Ｓ１１１）。
【００４５】
このとき、ＤＢサーバ１０−２におけるデータコミットにかかる時間を「ｔ１０」、
ＤＢサーバ１０−１からＤＢクライアント２０へデータコミット応答の送信（メッセージ送信）にかかる時間を「ｔ１１」とする。
【００４６】
ＤＢサーバ１０−２からのデータコミット応答の受信が完了すると、ＤＢサーバ１０−１は、自装置のデータコミットの終了と、データコミット要求のメッセージ転送先（サーバリスト上の次段）であるＤＢサーバ１０−２からのデータコミット応答（処理結果）を、データコミット要求のメッセージ送信元（ＤＢクライアント２０）にまとめて送信する（Ｓ１１２）。
【００４７】
このとき、ＤＢサーバ１０−１から、ＤＢクライアント２０へデータコミット応答の送信（メッセージ送信）にかかる時間を「ｔ１２」とする。
【００４８】
以上のように、ＤＢシステム１では、二相コミットによるデータ更新が行われる。
【００４９】
ここで、同一ノード間のメッセージ送受信は、ネットワーク上同じ経路を通ると考えられるため、ｔ１、ｔ６、ｔ７、ｔ１２、ｔ３、ｔ５、ｔ９、ｔ１１については、以下の（１）式、及び（２）式のような等式が成り立つものとする。
【００５０】
ｔ１＝ｔ６＝ｔ７＝ｔ１２…（１）
ｔ３＝ｔ５＝ｔ９＝ｔ１１…（２）
また、各ＤＢサーバ１０−１、１０−２の性能（データ更新の所要時間、及びデータコミットの所要時間）を同等とすると、以下の（３）式及び（４）式の等式が成り立つ。
【００５１】
ｔ２＝ｔ４  …（３）
ｔ８＝ｔ１０  …（４）
ここで注意すべき点が二点ある。第１の注意点は、ＤＢシステム１では、データ更新要のメッセージにサーバリストを挿入し、ＤＢクライアント２０から送出されるデータ更新要求のメッセージが各ＤＢサーバ１０へ転送（伝送）されてデータ更新が実行される点である。第２の注意点は、ＤＢシステム１において、ＤＢサーバ１０−１のデータ更新実施と、ＤＢサーバ１０−２へのメッセージ転送及び、ＤＢサーバ１０−２のデータ更新処理が並列に実施される点であり、どちらか処理時間が大きい方の値のみ計上すれば良いという点である。したがって、第１の実施形態のＤＢシステム１において、二相コミットによるデータ更新の開始から終了まで（上述のステップＳ１０１の開始からステップＳ１１２の終了まで）の所要時間ｘ１は、以下の（５）式のように示すことができる。そして、ｔ１＝ｔ３＝ｔ４＝ｔ８＝ｔ９＝ｔ１４＝１ｍｓ、ｔ５＝ｔ７＝ｔ１１＝ｔ１３＝５ｍｓ、ｔ２＝ｔ６＝１０ｍｓ、ｔ１０＝ｔ１２＝５ｍｓとして、以下の（５）式にあてはめると所要時間ｘ１は、以下の（６）式のように４４ｍｓとなる。
【００５２】
ｘ１＝ｔ１＋（ｔ２、ｔ３＋ｔ４のうち値が大きい方）＋ｔ５＋ｔ６
＋ｔ７＋ｔ８＋ｔ９＋ｔ１０＋ｔ１１＋ｔ１２  …（５）
ｘ１＝１＋１５＋５＋１＋１＋５＋５＋５＋５＋１＝４４ｍｓ  …（６）
（Ａ−３）第１の実施形態の効果
第１の実施形態によれば、以下のような効果を奏することができる。
【００５３】
（Ａ−３−１）上述の通り、ＤＢシステム１では、データ更新要のメッセージにサーバリストを挿入し、ＤＢクライアント２０から送出されるデータ更新要求のメッセージが各ＤＢサーバ１０へ転送（伝送）されてデータ更新が実行される。
【００５４】
仮に、ＤＢシステム１において、ＤＢクライアント２０から、ＤＢサーバ１０−１向けと、ＤＢサーバ１０−２向けにそれぞれ別個のメッセージ（データ更新要求のメッセージ及びデータコミットのメッセージ）を送信する必要があるとした場合、そのシーケンス図は図４のようになる。
【００５５】
図４のシーケンス図では、まず、ＤＢクライアント２０がＤＢサーバ１０−１へのデータ更新要求のメッセージを送信して（Ｓ２０１）、ＤＢサーバ１０−１でデータ更新を行い（Ｓ２０１）、ＤＢサーバ１０−１からＤＢクライアント２０にデータ更新応答を送信（Ｓ２０３）している。図４のシーケンス図では、次に、ＤＢクライアント２０がＤＢサーバ１０−１を経由してＤＢサーバ１０−２へのデータ更新要求のメッセージを送信し（Ｓ２０４、Ｓ２０５）、ＤＢサーバ１０−２でデータ更新を行い（Ｓ２０６）、ＤＢサーバ１０−１からＤＢサーバ１０−２を介してＤＢクライアント２０にデータ更新応答を送信（Ｓ２０７、Ｓ２０８）している。さらに、図４のシーケンス図では、ＤＢクライアント２０がＤＢサーバ１０−１へのデータコミット要求のメッセージを送信し（Ｓ２０９）、ＤＢサーバ１０−１がデータコミットを実行し（Ｓ２１０）、ＤＢサーバ１０−１がデータコミット要求をＤＢサーバ１０−２に送信し（Ｓ２１１）、ＤＢサーバ１０−２がデータコミットを実行し（Ｓ２１２）、ＤＢサーバ１０−２がデータコミット応答をＤＢサーバ１０−１を介してＤＢクライアント２０に送信する（Ｓ２１３、Ｓ２１４）。なお、図４において、各ステップＳ２０１〜Ｓ２１４の所要時間は、それぞれｔ２０１〜ｔ２１４であるものとする。
【００５６】
そして、仮に、ＤＢシステム１において、図４のようなシーケンスで二相コミットのデータ更新が行われた場合、その所要時間ｘ２は、以下の（７）式のように示すことができる。また、図４において、同一ノード間のメッセージ送受信は、ネットワーク上同じ経路を通ると考え、以下の（８）式及び（９）式が成り立つものとする。また、各ＤＢサーバ１０の性能は同等であると考え、以下の（１０）式及び（１１）式が成り立つものとする。さらに、上述の図１の例と同様に、ＤＢクライアント２０とＤＢサーバ１０−１との間のメッセージ伝送の所要時間を１ｍｓ、ＤＢサーバ１０−１とＤＢサーバ１０−２との間のメッセージ伝送の所要時間を５ｍｓ、データ更新の時間を１０ｍｓ、データコミットの時間を５ｍｓとすると、以下の（１２）式に示すように図４のシーケンスにおける二相コミットのデータ更新に必要な時間（ステップＳ２０１〜ステップＳ２１４の所要時間）は、５６ｍｓとなる。したがって、図４のシーケンスの処理では、図１のシーケンスの処理よりも所要時間が長くなることがわかる。
【００５７】
ｘ３＝  ｔ２０１＋ｔ２０２＋ｔ２０３＋ｔ２０４＋ｔ２０５
＋ｔ２０６＋ｔ２０７＋ｔ２０８＋ｔ２０９＋ｔ２１０
＋ｔ２１１＋ｔ２１２＋ｔ２１３＋ｔ２１４  …（７）
ｔ２０１＝ｔ２０３＝ｔ２０４＝ｔ２０８＝ｔ２０９＝ｔ２１４  …（８）
ｔ２０５＝ｔ２０７＝ｔ２１１＝ｔ２１３  …（９）
ｔ２０２＝ｔ２０６  （１０）
ｔ２１０＝ｔ２１２  …（１１）
ｘ＝１＋１０＋１＋１＋５＋１０＋５＋１＋１
＋５＋５＋５＋５＋１＝５６ｍｓ  …（１２）
すなわち、ＤＢシステム１では、二相コメットのデータ更新を行う際に、データ更新要のメッセージにサーバリストを挿入し、ＤＢクライアント２０から送出されるデータ更新要求のメッセージが各ＤＢサーバ１０へ転送（伝送）されるようにすることで、シーケンス（ステップ）を短縮し、データ更新の所要時間の短縮を実現することができる。
【００５８】
（Ａ−３−２）上述の通り、ＤＢサーバ１０−１のデータ更新実施（自装置のデータ更新）と、ＤＢサーバ１０−２へのメッセージ転送（次段へのメッセージ転送）及び、ＤＢサーバ１０−２のデータ更新処理（次段でのデータ更新処理）が並列に実施される構成となっている。
【００５９】
これにより、ＤＢシステム１では、二相コミットによるデータ更新の一部のシーケンス（ステップ）を並列的に実行し、さらなる所要時間の短縮を実現することができる。尚、仮にＤＢサーバ１０−１とＤＢサーバ１０−２間の遅延時間が０である条件においても、ＤＢシステム１では、従来の方式よりも所要時間を短縮する事ができる。
【００６０】
（Ｂ）第２の実施形態
以下、本発明によるデータベースシステム、データベースサーバ、データベースサーバプログラム、データベースクライアント、及びデータベースクライアントプログラムの第２の実施形態を、図面を参照しながら詳述する。
【００６１】
第２の実施形態のＤＢシステム１の構成についても上述の図２を用いて示すことができる。以下では、第２の実施形態のＤＢシステム１について第１の実施形態との差異のみを説明する。
【００６２】
第１の実施形態のＤＢシステム１では、ＤＢサーバ１０−１のデータ更新実施（自装置のデータ更新）と、ＤＢサーバ１０−２へのメッセージ転送（次段へのメッセージ転送）及び、ＤＢサーバ１０−２のデータ更新処理（次段でのデータ更新処理）が並列に実施される構成となっているが、データコミットについてはそのような構成となっていなかった。これに対して、第２の実施形態のＤＢシステム１では、データコミットにおいても、ＤＢサーバ１０−１のデータコミット実施（自装置のデータコミット）と、ＤＢサーバ１０−２へのメッセージ転送（次段へのメッセージ転送）及び、ＤＢサーバ１０−２のデータコミット（次段でのデータコミット）が並列に実施される点で、第１の実施形態と異なっている。
【００６３】
したがって、第２の実施形態のＤＢシステム１の動作は図５のシーケンス図を用いて表すことができる。図５のシーケンス図では、第１の実施形態のシーケンス図１と、同一のステップについては同一の符号（ステップ番号）を付している。
【００６４】
図５に示すように、第２の実施形態のＤＢシステム１では、ＤＢサーバ１０−１のデータコミット実施（ステップＳ１０８）、ＤＢサーバ１０−２へのメッセージ転送（ステップＳ１０９）及び、ＤＢサーバ１０−２のデータコミット（ステップＳ１１０）が並列して実行されることになる。
【００６５】
したがって、第２の実施形態のＤＢシステム１では、図５のようなシーケンスで二相コミットのデータ更新が行うため、その所要時間ｘ３は、以下の（１３）式のように示すことができる。そして、上述の図１の例と同様に、ＤＢクライアント２０とＤＢサーバ１０−１との間のメッセージ伝送の所要時間を１ｍｓ、ＤＢサーバ１０−１とＤＢサーバ１０−２との間のメッセージ伝送の所要時間を５ｍｓ、データ更新の時間を１０ｍｓ、データコミットの時間を５ｍｓとすると、第２の実施形態ＤＢシステム１における二相コミットのデータ更新の所要時間ｘ３は、以下の（１４）式に示すように３９ｍｓとなり、第１の実施形態（図１のシーケンス）における処理よりも所要時間を短縮することができる。すなわち、第２の実施形態のＤＢシステム１では、データコミットの一部のシーケンス（ステップ）を並列的に実行することで、第１の実施形態と比較して、さらなる所要時間の短縮を実現することができる。
【００６６】
ｘ３＝ｔ１＋（ｔ２、ｔ３＋ｔ４  のうち値が大きい方）
＋ｔ５＋ｔ６＋ｔ７＋（ｔ８、ｔ９＋ｔ１０のうち値が大きい方）
＋ｔ１１＋ｔ１２  …（１３）
ｘ３＝１＋１５＋５＋１＋１＋１０＋５＋１＝３９ｍｓ  …（１４）
（Ｃ）他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【００６７】
（Ｃ−１）上記の各実施形態では、説明を簡易とするために、ＤＢサーバ１０−１とＤＢサーバ１０−２の間を中継するＤＢサーバ１０（ノード）は存在しないが、１又は複数のＤＢサーバ１０を間に挿入するようにしてもよいことは当然である。
【００６８】
（Ｃ−２）上記の各実施形態では、全てのＤＢサーバ１０は同じ構成であるものとして説明したが、最後段のＤＢサーバ１０については、後段のＤＢサーバ１０が存在しないため、後段のＤＢサーバ１０へメッセージ転送する機能や、後段のＤＢサーバ１０から受信した処理結果を処理する機能に対応しない構成としてもよい。
【００６９】
（Ｃ−３）上記の各実施形態では、ＤＢシステム１は二相コミットのデータ更新に対応する構成として説明したが、三相コミットに対応する構成とし、同様のシーケンス（上述の図３又は図５のシーケンス）を含む工程によりデータ更新及びデータコミットを行うようにしてもよい。
【符号の説明】
【００７０】
１…ＤＢシステム、１、１０−１、１０−２…ＤＢサーバ１０−１、１０…ＤＢサーバ、１１…ＤＢサーバプロセス、１２…ＤＢファイルシステム、２０…ＤＢクライアント、２１…ＤＢクライアントプロセス。
【図１】
2015176203.tif 000003
【図２】
2015176203.tif 000004
【図３】
2015176203.tif 000005
【図４】
2015176203.tif 000006
【図５】
2015176203.tif 000007