(57)【特許請求の範囲】
【請求項１】
複数のサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ／クライアントシステムにおいて、
前記サーバは、
通信状況に基づき、他サーバのデータベースが自サーバのデータベースと同期しているかを検知し、自サーバのデータベースが他サーバのデータベースと同期しているかを検知する検知手段と、
データベースが同期していないと検知された他サーバの状態を非同期状態とし、前記非同期状態の情報を前記クライアントに通知する通知手段と、を有し、
前記クライアントは、
前記全てのサーバ間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、
前記記憶手段から管理テーブルを読み出して、前記サーバから通知された前記非同期状態の情報で前記同期・非同期情報を更新する更新手段と、
更新された前記同期・非同期情報を参照し、データベースが同期している同期状態のサーバにのみアクセスするアクセス手段と、
を有することを特徴とするサーバ／クライアントシステム。
【請求項２】
前記通知手段は、
データベースが同期していないと検知された後ただちに前記非同期状態の情報を通知することを特徴とする請求項１に記載のサーバ／クライアントシステム。
【請求項３】
前記通知手段は、
前記クライアントからアクセスされた後に前記非同期状態の情報を通知することを特徴とする請求項１又は２に記載のサーバ／クライアントシステム。
【請求項４】
前記サーバは、
他サーバとの間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、
前記他サーバの状態が非同期状態の場合に当該非同期状態の情報で当該同期・非同期情報を更新する更新手段と、
を更に有することを特徴とする請求項１乃至３のいずれかに記載のサーバ／クライアントシステム。
【請求項５】
１つのマスターサーバと複数のスレーブサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ／クライアントシステムにおいて、
前記スレーブサーバは、
全てのサーバのデータベースが同期している際に共有されたマスター状態インデックスを記憶しておく記憶手段と、
前記マスターサーバのデータベースとデータベースが同期している同期スレーブサーバから、前記マスターサーバからのインデックスの通知に基づき更新されたマスター状態インデックスを含む同期状態の問合せ要求を受信する受信手段と、
前記同期状態の問合せ要求からマスター状態インデックスを取得し、前記記憶手段に記憶されているマスター状態インデックスと比較する比較手段と、
比較された２つのマスター状態インデックスが一致しない場合、自スレーブサーバの状態を非同期状態とし、前記非同期状態の情報を前記クライアントに通知する通知手段と、を有し、
前記クライアントは、
前記全てのサーバ間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、
当該記憶手段から管理テーブルを読み出して、前記スレーブサーバから通知された前記非同期状態の情報で前記同期・非同期情報を更新する更新手段と、
更新された前記同期・非同期情報を参照し、データベースが同期している同期状態のサーバにのみアクセスするアクセス手段と、
を有することを特徴とするサーバ／クライアントシステム。
【請求項６】
前記スレーブサーバは、
他サーバとの間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、
前記非同期状態の情報で当該同期・非同期情報を更新する更新手段と、
を更に有することを特徴とする請求項５に記載のサーバ／クライアントシステム。
【請求項７】
前記マスターサーバは、
全てのサーバのデータベースが同期している際に共有されたマスター状態インデックスを記憶しておく記憶手段と、
通信状況に基づき、前記複数のスレーブサーバのデータベースが自マスターサーバのデータベースと同期しているかを検知する検知手段と、
データベースが同期していないスレーブサーバが検知された場合、前記マスター状態インデックスの値を変更する変更手段と、
変更後のマスター状態インデックスを前記同期スレーブサーバに通知する通知手段と、
を有することを特徴とする請求項５又は６に記載のサーバ／クライアントシステム。
【請求項８】
前記同期スレーブサーバは、
全てのサーバのデータベースが同期している際に共有されたマスター状態インデックスを記憶しておく記憶手段と、
前記マスターサーバから通知された変更後のマスター状態インデックスを受信する受信手段と、
受信した変更後のマスター状態インデックスを用いて当該記憶手段に記憶されているマスター状態インデックスを更新する更新手段と、
更新されたマスター状態インデックスを用いてサーバの同期状態を問い合わせる同期状態の問合せ要求を他のスレーブサーバ及び前記マスターサーバに送信する送信手段と、
を有することを特徴とする請求項５乃至７のいずれかに記載のサーバ／クライアントシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データベースの技術に関する。
【背景技術】
【０００２】
マスター状態の１つのサーバと、スレーブ状態の少なくとも１つのサーバとを備える分散データベースシステムがある。マスターサーバの記憶データはスレーブサーバに複製されているため、クライアントは、いずれのサーバにアクセスしても同じデータを参照できる。
【０００３】
このようなシステムにおいて、何らかの原因によりデータ間の同一性が担保できない非同期状態となった場合、非同期状態のスレーブサーバは、自らその状態を検出してクライアントに通知することにより、古いデータが参照されるのを防止している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“第４回：レプリケーションの比較”、[online]、ThinkIT、2006年5月、[平成25年6月13日検索]、インターネット<URL: http://thinkit.co.jp/free/article/0603/10/4/>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非同期状態のスレーブサーバが自ら非同期状態を検出するまでに一定の時間を要するため、通知される迄の間にクライアントが当該スレーブサーバの古いデータを参照する可能性があり、信頼性の面で課題がある。
【０００６】
本発明は、上記事情を鑑みてなされたものであり、分散データベースシステムの信頼性を改善することを目的とする。
【課題を解決するための手段】
【０００７】
請求項１に記載のサーバ／クライアントシステムは、複数のサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ／クライアントシステムにおいて、前記サーバは、通信状況に基づき、他サーバのデータベースが自サーバのデータベースと同期しているかを検知し、自サーバのデータベースが他サーバのデータベースと同期しているかを検知する検知手段と、データベースが同期していないと検知された他サーバの状態を非同期状態とし、前記非同期状態の情報を前記クライアントに通知する通知手段と、を有し、前記クライアントは、前記全てのサーバ間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、前記記憶手段から管理テーブルを読み出して、前記サーバから通知された前記非同期状態の情報で前記同期・非同期情報を更新する更新手段と、更新された前記同期・非同期情報を参照し、データベースが同期している同期状態のサーバにのみアクセスするアクセス手段と、を有することを要旨とする。
【０００８】
本発明によれば、分散データベースシステムを構成するサーバは、非同期であるサーバの非同期状態をクライアントに通知し、クライアントは、同期状態のサーバにのみアクセスするため、分散データベースシステムの信頼性を向上できる。
【０００９】
請求項２に記載のサーバ／クライアントシステムは、請求項１に記載のサーバ／クライアントシステムにおいて、前記通知手段は、データベースが同期していないと検知された後ただちに前記非同期状態の情報を通知することを要旨とする。
【００１０】
本発明によれば、同期していないと検知された後ただちに上記サーバの非同期状態を通知するため、分散データベースシステムの信頼性をより向上できる。
【００１１】
請求項３に記載のサーバ／クライアントシステムは、請求項１又は２に記載のサーバ／クライアントシステムにおいて、前記通知手段は、前記クライアントからアクセスされた後に前記非同期状態の情報を通知することを要旨とする。
【００１２】
請求項４に記載のサーバ／クライアントシステムは、請求項１乃至３のいずれかに記載のサーバ／クライアントシステムにおいて、前記サーバは、他サーバとの間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、前記他サーバの状態が非同期状態の場合に当該非同期状態の情報で当該同期・非同期情報を更新する更新手段と、を更に有することを要旨とする。
【００１３】
請求項５に記載のサーバ／クライアントシステムは、１つのマスターサーバと複数のスレーブサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ／クライアントシステムにおいて、前記スレーブサーバは、全てのサーバのデータベースが同期している際に共有されたマスター状態インデックスを記憶しておく記憶手段と、前記マスターサーバのデータベースとデータベースが同期している同期スレーブサーバから、前記マスターサーバからのインデックスの通知に基づき更新されたマスター状態インデックスを含む同期状態の問合せ要求を受信する受信手段と、前記同期状態の問合せ要求からマスター状態インデックスを取得し、前記記憶手段に記憶されているマスター状態インデックスと比較する比較手段と、比較された２つのマスター状態インデックスが一致しない場合、自スレーブサーバの状態を非同期状態とし、前記非同期状態の情報を前記クライアントに通知する通知手段と、を有し、前記クライアントは、前記全てのサーバ間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、当該記憶手段から管理テーブルを読み出して、前記スレーブサーバから通知された前記非同期状態の情報で前記同期・非同期情報を更新する更新手段と、更新された前記同期・非同期情報を参照し、データベースが同期している同期状態のサーバにのみアクセスするアクセス手段と、を有することを要旨とする。
【００１４】
本発明によれば、分散データベースシステムを構成するサーバは、非同期であるサーバの非同期状態をクライアントに通知し、クライアントは、同期状態のサーバにのみアクセスするため、分散データベースシステムの信頼性を向上できる。
【００１５】
請求項６に記載のサーバ／クライアントシステムは、請求項５に記載のサーバ／クライアントシステムにおいて、前記スレーブサーバは、他サーバとの間でデータベースが同期しているか否かを示す同期・非同期情報を管理する管理テーブルを記憶しておく記憶手段と、前記非同期状態の情報で当該同期・非同期情報を更新する更新手段と、を更に有することを要旨とする。
【００１６】
請求項７に記載のサーバ／クライアントシステムは、請求項５又は６に記載のサーバ／クライアントシステムにおいて、前記マスターサーバは、全てのサーバのデータベースが同期している際に共有されたマスター状態インデックスを記憶しておく記憶手段と、通信状況に基づき、前記複数のスレーブサーバのデータベースが自マスターサーバのデータベースと同期しているかを検知する検知手段と、データベースが同期していないスレーブサーバが検知された場合、前記マスター状態インデックスの値を変更する変更手段と、変更後のマスター状態インデックスを前記同期スレーブサーバに通知する通知手段と、を有することを要旨とする。
【００１７】
請求項８に記載のサーバ／クライアントシステムは、請求項５乃至７のいずれかに記載のサーバ／クライアントシステムにおいて、前記同期スレーブサーバは、全てのサーバのデータベースが同期している際に共有されたマスター状態インデックスを記憶しておく記憶手段と、前記マスターサーバから通知された変更後のマスター状態インデックスを受信する受信手段と、受信した変更後のマスター状態インデックスを用いて当該記憶手段に記憶されているマスター状態インデックスを更新する更新手段と、更新されたマスター状態インデックスを用いてサーバの同期状態を問い合わせる同期状態の問合せ要求を他のスレーブサーバ及び前記マスターサーバに送信する送信手段と、を有することを要旨とする。
【発明の効果】
【００１８】
本発明によれば、分散データベースシステムの信頼性を向上できる。
【図面の簡単な説明】
【００１９】
【図１】サーバ／クライアントシステムの全体構成を示す図である。
【図２】マスターサーバの機能ブロック構成を示す図である。
【図３】マスターサーバ同期状態管理テーブルを示す図である。
【図４】スレーブサーバの機能ブロック構成を示す図である。
【図５】スレーブサーバ（１）同期状態管理テーブルを示す図である。
【図６】スレーブサーバ（２）同期状態管理テーブルを示す図である。
【図７】クライアントの機能ブロック構成を示す図である。
【図８】クライアント同期状態管理テーブルを示す図である。
【図９】サーバ／クライアントシステムの全体構成の他の例を示す図である。
【図１０】サーバ／クライアントシステムの動作例１を示す図である。
【図１１】サーバ／クライアントシステムの動作例２を示す図である。
【図１２】第２の実施の形態でのマスターサーバの機能ブロック構成を示す図である。
【図１３】第２の実施の形態でのスレーブサーバの機能ブロック構成を示す図である。
【図１４】第２の実施の形態でのサーバ／クライアントシステムの動作例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００２１】
〔第１の実施の形態〕
図１は、第１の実施の形態に係るサーバ／クライアントシステムの全体構成を示す図である。このサーバ／クライアントシステムは、複数のサーバ１で構成される分散データベースシステム１００と、通信ネットワーク３を介していずれかのサーバ１にアクセスするクライアント２とを備える。
【００２２】
分散データベースシステム１００は、マスター状態の１つのマスターサーバ１ａと、スレーブ状態の２つのスレーブサーバ１ｂ，１ｃとで構成される。マスターサーバ１ａは、データベースの原本を記憶するマスターデータベースを備え、各スレーブサーバ１ｂ，１ｃは、マスターデータベースの複製を記憶するスレーブデータベースを備えている。
【００２３】
マスターサーバ１ａは、マスターデータベースの原本データに変更（追加／削除／更新）があると、各スレーブサーバ１ｂ，１ｃに当該データを送信してデータの複製を要求する。一方、各スレーブサーバ１ｂ，１ｃは、その要求に基づいて各スレーブデータベース（１）（２）を更新する。これにより、分散データベースシステム内のいずれのサーバにアクセスされた場合でも同じデータを提供し、各サーバの負荷分散、アクセス時間の短縮、信頼性の向上を実現している。
【００２４】
ここで、マスターサーバ１ａは、各スレーブサーバ１ｂ，１ｃからデータ複製要求に対する正常応答があれば、データが複製されたと判断する。このように、マスターサーバ１ａと各スレーブサーバ１ｂ，１ｃとの間でデータが完全に複製された状態を同期状態と呼ぶ。
【００２５】
一方、マスターサーバ１ａが各スレーブサーバ１ｂ，１ｃとの通信断を検出した場合や、各スレーブサーバ１ｂ，１ｃからデータ複製要求に対する応答がなかった場合には、同期状態ではないと判断し、このような同期状態ではない状態を非同期状態と呼ぶ。
【００２６】
ここで、本実施の形態に係るマスターサーバ１ａの機能について詳述する。図２は、マスターサーバ１ａの機能ブロック構成を示す図である。マスターサーバ１ａは、データ複製要求部４１と、同期状態検知部４２と、データ管理部４３と、同期状態通知部４４と、管理テーブル記憶部４５とで構成される。
【００２７】
データ複製要求部４１は、前述したように、マスターデータベースの原本データに変更があった場合、各スレーブサーバ１ｂ，１ｃに対して当該データを含むデータ複製要求を送信する機能部である。
【００２８】
同期状態検知部４２は、通信状況に基づき、各スレーブサーバ１ｂ，１ｃが自サーバと同期しているかを検知し、自サーバが各スレーブサーバ１ｂ，１ｃと同期しているかを検知する機能部である。
【００２９】
前述したように、データ複製要求に対して各スレーブサーバ１ｂ，１ｃから正常応答があった場合には、それらスレーブサーバの状態を同期状態と検知する。一方、各スレーブサーバ１ｂ，１ｃから応答がなかった場合や各スレーブサーバ１ｂ，１ｃとの通信断を検出した場合には、それらスレーブサーバの状態を非同期状態と検知する。
【００３０】
データ管理部４３は、後述するマスターサーバ同期状態管理テーブルを管理し、各スレーブサーバ１ｂ，１ｃの状態（同期／非同期状態）の検知結果に基づき、そのマスターサーバ同期状態管理テーブルを更新する機能部である。
【００３１】
同期状態通知部４４は、その検知結果に基づき、各スレーブサーバ１ｂ，１ｃの状態（同期／非同期状態）をクライアント２に通知する機能部である。
【００３２】
管理テーブル記憶部４５は、各スレーブサーバ１ｂ，１ｃとの同期／非同期状態や、自サーバの同期／非同期状態を管理するマスターサーバ同期状態管理テーブル（図３参照）を記憶するメモリ等の記憶部である。
【００３３】
次に、本実施の形態に係るスレーブサーバ（１）１ｂの機能について詳述する。図４は、スレーブサーバ１ｂの機能ブロック構成を示す図である。スレーブサーバ１ｂは、同期状態検知部５１と、データ管理部５２と、同期状態通知部５３と、管理テーブル記憶部５４とで構成される。
【００３４】
同期状態検知部５１は、通信状況に基づき、マスターサーバ１ａが自サーバと同期しているかを検知し、自サーバがマスターサーバ１ａと同期しているかを検知する機能部である。例えば、マスターサーバ１ａとの通信断を検出した場合には、自身の状態を非同期状態と検知する。
【００３５】
データ管理部５２は、後述するスレーブサーバ（１）同期状態管理テーブルを管理し、マスターサーバ１ａの状態（同期／非同期状態）の検知結果に基づき、そのスレーブサーバ（１）同期状態管理テーブルを更新する機能部である。
【００３６】
同期状態通知部５３は、クライアント２からのアクセス要求に応じて、自身の状態（同期／非同期状態）をクライアント２に通知する機能部である。
【００３７】
管理テーブル記憶部５４は、マスターサーバ１ａとの同期状態や、自サーバの同期状態を管理するスレーブサーバ（１）同期状態管理テーブル（図５参照）を記憶する記憶部である。
【００３８】
なお、スレーブサーバ（２）１ｃも同様の機能を備え、図６に示すようなスレーブサーバ（２）同期状態管理テーブルを保有している。
【００３９】
次に、本実施の形態に係るクライアント２の機能について詳述する。図７は、クライアント２の機能ブロック構成を示す図である。クライアント２は、データ管理部６１と、アクセス要求部６２と、管理テーブル記憶部６３とで構成される。
【００４０】
データ管理部６１は、後述するクライアント同期状態管理テーブルを管理し、マスターサーバ１ａ又は各スレーブサーバ１ｂ，１ｃから通知されたスレーブサーバの状態（同期／非同期状態）に基づき、そのクライアント同期状態管理テーブルを更新する機能部である。
【００４１】
アクセス要求部６２は、更新後のクライアント同期状態管理テーブルを参照し、マスターサーバとスレーブサーバの状態が全て同期状態のサーバに対してのみアクセスし、そのサーバに保有されているデータを参照して取得する機能部である。
【００４２】
管理テーブル記憶部６３は、マスターサーバ１ａ及び各スレーブサーバ１ｂ，１ｃとの同期状態を管理するクライアント同期状態管理テーブル（図８参照）を記憶する記憶部である。
【００４３】
以上がサーバ／クライアントシステムの構成及び機能である。なお、図９に示すように、スレーブサーバを３つ以上としても構わないし、クライアントを２つ以上としても構わない。また、分散データベースシステムの構成をクライアント側から隠蔽するため、分散データベースシステム１００とクライアント２との間に、分散データベースシステムの同期状態を保持するフロントエンドサーバ４を配置しても構わない。
【００４４】
続いて、図１０と図１１を参照しながら、本実施の形態に係るサーバ／クライアントシステムの動作について説明する。図１０は、マスターサーバ１ａがスレーブサーバ（２）１ｃの非同期状態を検知し、その検知後ただちにクライアント２に通知する場合の動作例１である。
【００４５】
マスターサーバ１ａとスレーブサーバ（１）１ｂ及びスレーブサーバ（２）１ｃは同期状態であるとする。まず、マスターサーバ１ａのデータ複製要求部４１により、スレーブサーバ（１）１ｂ及びスレーブサーバ（２）１ｃにデータ複製要求が送信される（ステップＳ１０１）。
【００４６】
このとき、スレーブサーバ（２）１ｃとの通信断が検出されると、マスターサーバ１ａの同期状態検知部４２により、そのスレーブサーバ（２）１ｃは非同期状態と検知される（ステップＳ１０２）。
【００４７】
そして、マスターサーバ１ａのデータ管理部４３により、マスターサーバ同期状態管理テーブルのスレーブサーバ（２）の状態が「非同期」に更新される（ステップＳ１０３）。
【００４８】
その後、マスターサーバ１ａの同期状態通知部４４により、スレーブサーバ（２）の非同期状態がクライアント２に通知される（ステップＳ１０４）。
【００４９】
マスターサーバ１ａからの通知データは通信ネットワーク３を介してクライアント２で受信され、クライアント２のデータ管理部６１により、クライアント同期状態管理テーブルのスレーブサーバ（２）の状態が「非同期」に更新される（ステップＳ１０５）。
【００５０】
その後、クライアント２のアクセス要求部６２により、更新されたクライアント同期状態管理テーブルが参照され、マスターサーバとスレーブサーバの状態が全て同期状態であるマスターサーバ１ａ又はスレーブサーバ１ｂにアクセス要求が送信され、アクセス先のデータが参照される（ステップＳ１０６）。
【００５１】
本動作例１によれば、マスターサーバ１ａが、通信状況に基づきスレーブサーバ（２）の非同期状態を検知し、その検知後ただちにその非同期状態をクライアント２に通知し、クライアント２は、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
【００５２】
続いて、図１１を参照しながら、クライアント２からアクセス要求された後にスレーブサーバ（２）の非同期状態を通知する場合の動作例２を説明する。
【００５３】
マスターサーバ１ａにより、上記ステップＳ１０１〜ステップＳ１０３が実行される（ステップＳ２０１〜ステップＳ２０３）。その際、マスターサーバ１ａとの通信断が検出されると、スレーブサーバ（２）１ｃの同期状態検知部５１により、自サーバが非同期状態と検知される（ステップＳ２０４）。
【００５４】
そして、スレーブサーバ（２）１ｃのデータ管理部５２により、スレーブサーバ（２）同期状態管理テーブルの自サーバの状態が「非同期」に更新される（ステップＳ２０５）。
【００５５】
その後、クライアント２がスレーブサーバ（２）１ｃにアクセス要求した場合、スレーブサーバ（２）１ｃの同期状態通知部５３により、更新されたスレーブサーバ（２）同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ（２）の非同期状態が設定され、クライアント２に通知される（ステップＳ２０６）。
【００５６】
同様に、クライアント２がマスターサーバ１ａにアクセス要求した場合には、マスターサーバ１ａの同期状態通知部４４により、ステップＳ２０３で更新されたマスターサーバ同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ（２）の非同期状態が設定され、クライアント２に通知される（ステップＳ２０６’）。
【００５７】
その後、スレーブサーバ（２）１ｃ又はマスターサーバ１ａからの通知データがクライアント２で受信されると、クライアント２のデータ管理部６１により、クライアント同期状態管理テーブルのスレーブサーバ（２）の状態が「非同期」に更新される（ステップＳ２０７）。
【００５８】
そして、クライアント２のアクセス要求部６２により、更新されたクライアント同期状態管理テーブルが参照され、マスターサーバとスレーブサーバの状態が全て同期状態であるマスターサーバ１ａ又はスレーブサーバ１ｂにアクセス要求が送信される（ステップＳ２０８）。
【００５９】
本動作例２によれば、スレーブサーバ（２）１ｃ又はマスターサーバ１ａが、クライアント２からのアクセス要求に応じてスレーブサーバ（２）の非同期状態を通知し、クライアント２は、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
【００６０】
なお、動作例１では、マスターサーバ１ａがクライアント２にスレーブサーバ（２）の非同期状態を通知しているが、スレーブサーバ（１）１ｂがマスターサーバ１ａよりも先に当該非同期状態を検知した場合には、そのスレーブサーバ（１）１ｂが、クライアント２にスレーブサーバ（２）の非同期状態を通知しても構わない。
【００６１】
また、動作例１，２を組み合わせ、スレーブサーバ（２）の非同期状態をステップＳ１０４とステップＳ２０６（ステップＳ２０６’）の両段階でそれぞれ通知しても構わない。
【００６２】
以上より、本実施の形態によれば、いずれの動作例１，２においても、分散データベースシステムを構成するサーバが、非同期であるサーバの非同期状態をクライアントに通知し、そのクライアントは、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
【００６３】
特に、動作例１によれば、サーバの非同期状態を、検知後ただちに通知するので、クライアントに通知される迄の時間が短縮されることから、分散データベースシステムの信頼性をより向上できる。
【００６４】
また、実施例２によれば、サーバの非同期状態を、クライアントからのアクセス要求を受信した後に通知するので、サーバからクライアントに対する通知が不要になることから、通知のためのシステムの負荷を低減できる。
【００６５】
〔第２の実施の形態〕
次に、第２の実施の形態について説明する。本実施の形態に係るサーバ／クライアントシステムの全体構成やクライアント２の機能については、第１の実施の形態と同様である（図１，図９参照）。以下、マスターサーバ１ａと各スレーブサーバ１ｂ，１ｃに追加される機能を中心に説明する。
【００６６】
図１２は、本実施の形態に係るマスターサーバ１ａの機能ブロック構成を示す図である。マスターサーバ１ａは、インデックス記憶部４６と、インデックス通知部４７と、問合せ受付部４８とを更に備えている。
【００６７】
インデックス記憶部４６は、マスターサーバ自身が割り当て、分散データベースシステム内の全てのサーバが共有するマスター状態インデックスを記憶しておく記憶部である。
【００６８】
マスター状態インデックスとは、新旧を判断可能な一意な識別子であり、例えば、１，２，３，…等の連続番号でも構わないし、基準時刻として時系列を表す情報を利用しても構わない。
【００６９】
インデックス通知部４７は、マスター状態インデックスを同期状態のスレーブサーバにのみ通知する機能部である。
【００７０】
問合せ受付部４８は、スレーブサーバから送信されたサーバ同期状態問合せ要求（後述）を受け付ける機能部である。
【００７１】
図１３は、本実施の形態に係る各スレーブサーバ１ｂ，１ｃの機能ブロック構成を示す図である。各スレーブサーバ１ｂ，１ｃは、インデックス記憶部５５と、インデックス受信部５６と、同期状態問合せ部５７と、問合せ受付部５８とを更に備えている。
【００７２】
インデックス記憶部５５は、マスターサーバ１ａが割り当てたマスター状態インデックスと同じマスター状態インデックスを記憶しておく機能部である。
【００７３】
インデックス受信部５６は、マスターサーバ１ａから通知されたマスター状態インデックスを受信する機能部である。
【００７４】
同期状態問合せ部５７は、インデックス記憶部５５に記憶しているマスター状態インデックスを用いて、サーバの同期状態を問い合わせるためのサーバ同期状態問合せ要求を全てのサーバに送信する機能部である。
【００７５】
問合せ受付部５８は、他のスレーブサーバから送信されたサーバ同期状態問合せ要求を受け付ける機能部である。
【００７６】
続いて、図１４を参照しながら、本実施の形態に係るサーバ／クライアントシステムの動作について説明する。
【００７７】
マスターサーバ１ａとスレーブサーバ（１）１ｂ及びスレーブサーバ（２）１ｃは、同期状態であり、その同期状態の際にマスターサーバ１ａにより割り当てられたマスター状態インデックス「１」を共有しているとする。
【００７８】
まず、マスターサーバ１ａのデータ複製要求部４１により、スレーブサーバ（１）１ｂ及びスレーブサーバ（２）１ｃにデータ複製要求が送信される（ステップＳ３０１）。
【００７９】
このとき、スレーブサーバ（２）１ｃとの通信断が検出されると、マスターサーバ１ａの同期状態検知部４２により、そのスレーブサーバ（２）１ｃは非同期状態と検知される（ステップＳ３０２）。
【００８０】
そして、マスターサーバ１ａのデータ管理部４３により、マスターサーバ同期状態管理テーブルのスレーブサーバ（２）の状態が「非同期」に更新され、マスター状態インデックスの値が「２」に変更される（ステップＳ３０３）。
【００８１】
その後、マスターサーバ１ａのインデックス通知部４７により、変更後のマスター状態インデックスが、同期状態であるスレーブサーバ（１）１ｂにのみ通知される（ステップＳ３０４）。
【００８２】
マスターサーバ１ａからのインデックス通知データはスレーブサーバ（１）１ｂに送信され、スレーブサーバ（１）１ｂのインデックス受信部５６により、送信された変更後のマスター状態インデックスが受信される（ステップＳ３０５）。
【００８３】
その後、スレーブサーバ（１）１ｂのデータ管理部５２により、マスターサーバ１ａからのインデックス通知に基づき、受信した変更後のマスター状態インデックスを用いて、インデックス記憶部５５に記憶されているマスター状態インデックスが更新（「１」→「２」）される（ステップＳ３０６）。
【００８４】
そして、分散データベースシステム内の全てのサーバの同期状態を確認するため、スレーブサーバ（１）１ｂの同期状態問合せ部５７により、更新されたマスター状態インデックスを含むサーバ同期状態問合せ要求が全てのサーバに送信される（ステップＳ３０７）。
【００８５】
その後、スレーブサーバ（２）１ｃの問合せ受付部５８により、更新後のマスター状態インデックスを含むサーバ同期状態問合せ要求が受信される（ステップＳ３０８）。
【００８６】
そして、スレーブサーバ（２）１ｃのデータ管理部５２により、サーバ同期状態問合せ要求から取得した更新後のマスター状態インデックスと、インデックス記憶部５５に記憶されているマスター状態インデックスとが比較され、自サーバのマスター状態インデックスよりも値が新しいため、自サーバの同期状態が「非同期」と特定される（ステップＳ３０９）。
【００８７】
その後、スレーブサーバ（２）１ｃのデータ管理部５２により、スレーブサーバ（２）同期状態管理テーブルのスレーブサーバ（２）の状態が「非同期」に更新される（ステップＳ３１０）。
【００８８】
一方、マスターサーバ１ａでは、問合せ受付部４８により、ステップＳ３０７でスレーブサーバ（１）１ｂから送信されたサーバ同期状態問合せ要求が受信される（ステップＳ３１１）。そして、データ管理部４３により、受信したサーバ同期状態問合せ要求内での更新後のマスター状態インデックスと、インデックス記憶部４６に記憶されているマスター状態インデックスとが比較され、自サーバのマスター状態インデックスと同じ値であるため、特に処理は行わない（ステップＳ３１２）。
【００８９】
その後、クライアント２がスレーブサーバ（２）１ｃにアクセス要求した場合、スレーブサーバ（２）１ｃの同期状態通知部５３により、ステップＳ３１０で更新されたスレーブサーバ（２）同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ（２）の非同期状態が設定され、クライアント２に通知される（ステップＳ３１３）。
【００９０】
同様に、クライアント２がマスターサーバ１ａにアクセス要求した場合には、マスターサーバ１ａの同期状態通知部４４により、ステップＳ３０３で更新されたマスターサーバ同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ（２）の非同期状態が設定され、クライアント２に通知される（ステップＳ３１３’）。
【００９１】
その後、スレーブサーバ（２）１ｃ又はマスターサーバ１ａからの通知データがクライアント２で受信されると、クライアント２のデータ管理部６１により、クライアント同期状態管理テーブルのスレーブサーバ（２）の状態が「非同期」に更新される（ステップＳ３１４）。
【００９２】
そして、クライアント２のアクセス要求部６２により、更新されたクライアント同期状態管理テーブルが参照され、マスターサーバとスレーブサーバの状態が全て同期状態であるマスターサーバ１ａ又はスレーブサーバ１ｂにアクセス要求が送信される（ステップＳ３１５）。
【００９３】
なお、ステップＳ３０４の後、第１の実施の形態で実行したステップＳ１０４〜ステップＳ１０５を併せて実行しても構わない。また、ステップＳ３１０のタイミングで、スレーブサーバ（２）１ｃの同期状態通知部５３により、スレーブサーバ（２）の非同期状態をクライアント２に通知しても構わない。
【００９４】
また、マスターサーバ１ａは、スレーブサーバから自身もマスター状態インデックスを受信し、マスターサーバ同期状態管理テーブルを参照して当該受信したマスター状態インデックスの送信元スレーブサーバが同期状態である場合、受信したマスター状態インデックスと自身のマスター状態インデックスとを比較し、同一でなければ送信元のスレーブサーバを非同期状態と検知するようにしても構わない。非同期状態と検知された場合は、ステップＳ３０３以降と同じ動作を実行する。
【００９５】
以上より、本実施の形態によれば、第１の実施の形態と同様に、分散データベースシステムを構成するサーバが、非同期であるサーバの非同期状態をクライアントに通知し、そのクライアントは、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
【００９６】
また、スレーブサーバ（２）は、サーバの非同期状態を、クライアントからのアクセス要求を受信した後に通知するので、サーバからクライアントに対する通知が不要になることから、通知のためのシステムの負荷を低減できる。
【００９７】
最後に、本実施の形態で説明したマスターサーバ１ａ、各スレーブサーバ１ｂ，１ｃ、クライアント２は、コンピュータにより実現可能である。また、それらの構成要素の各動作をプログラムとして構築し、コンピュータにインストールして実行させることや、通信ネットワークを介して流通させることも可能である。
【符号の説明】
【００９８】
１００…分散データベースシステム
１ａ…マスターサーバ装置
４１…データ複製要求部
４２…同期状態検知部
４３…データ管理部
４４…同期状態通知部
４５…管理テーブル記憶部
４６…インデックス記憶部
４７…インデックス通知部
４８…問合せ受付部
１ｂ…スレーブサーバ（１）装置
１ｃ…スレーブサーバ（２）装置
５１…同期状態検知部
５２…データ管理部
５３…同期状態通知部
５４…管理テーブル記憶部
５５…インデックス記憶部
５６…インデックス受信部
５７…同期状態問合せ部
５８…問合せ受付部
２…クライアント装置
６１…データ管理部
６２…アクセス要求部
６３…管理テーブル記憶部
３…通信ネットワーク
４…フロントエンドサーバ
Ｓ１０１〜Ｓ１０６、Ｓ２０１〜Ｓ２０８、Ｓ３０１〜Ｓ３１５…ステップ
【図１】
0006043687.tif 000002
【図２】
0006043687.tif 000003
【図３】
0006043687.tif 000004
【図４】
0006043687.tif 000005
【図５】
0006043687.tif 000006
【図６】
0006043687.tif 000007
【図７】
0006043687.tif 000008
【図８】
0006043687.tif 000009
【図９】
0006043687.tif 000010
【図１０】
0006043687.tif 000011
【図１１】
0006043687.tif 000012
【図１２】
0006043687.tif 000013
【図１３】
0006043687.tif 000014
【図１４】
0006043687.tif 000015