JP2015011642A - サーバ/クライアントシステム - Google Patents

サーバ/クライアントシステム Download PDF

Info

Publication number
JP2015011642A
JP2015011642A JP2013138615A JP2013138615A JP2015011642A JP 2015011642 A JP2015011642 A JP 2015011642A JP 2013138615 A JP2013138615 A JP 2013138615A JP 2013138615 A JP2013138615 A JP 2013138615A JP 2015011642 A JP2015011642 A JP 2015011642A
Authority
JP
Japan
Prior art keywords
server
state
master
client
slave
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.)
Granted
Application number
JP2013138615A
Other languages
English (en)
Other versions
JP6043687B2 (ja
Inventor
紀貴 堀米
Noritaka Horikome
紀貴 堀米
俊之 森谷
Toshiyuki Moriya
俊之 森谷
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013138615A priority Critical patent/JP6043687B2/ja
Publication of JP2015011642A publication Critical patent/JP2015011642A/ja
Application granted granted Critical
Publication of JP6043687B2 publication Critical patent/JP6043687B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】マスターデータベースと、複製を記憶するスレーブデータベースから構成される分散データベースシステムの信頼性を改善する。【解決手段】分散データベースシステムを構成するサーバ1は、通信状況に基づき、他サーバと非同期になったことを検出すると、非同期になったサーバをクライアント2に通知する。クライアント2は、すべてのサーバの同期/非同期状態を管理する管理テーブルを保持し、管理テーブルに通知された非同期状態を記録し、同期状態のサーバにのみアクセスする。【選択図】図1

Description

本発明は、分散データベースの技術に関する。
マスター状態の1つのサーバと、スレーブ状態の少なくとも1つのサーバとを備える分散データベースシステムがある。マスターサーバの記憶データはスレーブサーバに複製されているため、クライアントは、いずれのサーバにアクセスしても同じデータを参照できる。
このようなシステムにおいて、何らかの原因によりデータ間の同一性が担保できない非同期状態となった場合、非同期状態のスレーブサーバは、自らその状態を検出してクライアントに通知することにより、古いデータが参照されるのを防止している。
"第4回:レプリケーションの比較"、[online]、ThinkIT、2006年5月、[平成25年6月13日検索]、インターネット<URL: http://thinkit.co.jp/free/article/0603/10/4/>
しかしながら、非同期状態のスレーブサーバが自ら非同期状態を検出するまでに一定の時間を要するため、通知される迄の間にクライアントが当該スレーブサーバの古いデータを参照する可能性があり、信頼性の面で課題がある。
本発明は、上記事情を鑑みてなされたものであり、分散データベースシステムの信頼性を改善することを目的とする。
請求項1に記載のサーバ/クライアントシステムは、複数のサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ/クライアントシステムにおいて、前記サーバは、通信状況に基づき、他サーバが自サーバと同期しているかを検知し、自サーバが他サーバと同期しているかを検知する検知手段と、同期していないと検知されたサーバの非同期状態を前記クライアントに通知する通知手段と、を有し、前記クライアントは、前記全てのサーバの各同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、前記記憶手段から管理テーブルを読み出して、前記サーバから通知された前記サーバの非同期状態を用いて更新する更新手段と、更新された管理テーブルを参照し、同期状態のサーバにのみアクセスするアクセス手段と、を有することを要旨とする。
本発明によれば、分散データベースシステムを構成するサーバは、非同期であるサーバの非同期状態をクライアントに通知し、クライアントは、同期状態のサーバにのみアクセスするため、分散データベースシステムの信頼性を向上できる。
請求項2に記載のサーバ/クライアントシステムは、請求項1に記載のサーバ/クライアントシステムにおいて、前記通知手段は、同期していないと検知された後ただちに前記サーバの非同期状態を通知することを要旨とする。
本発明によれば、同期していないと検知された後ただちに上記サーバの非同期状態を通知するため、分散データベースシステムの信頼性をより向上できる。
請求項3に記載のサーバ/クライアントシステムは、請求項1又は2に記載のサーバ/クライアントシステムにおいて、前記通知手段は、前記クライアントからアクセスされた後に前記サーバの非同期状態を通知することを要旨とする。
請求項4に記載のサーバ/クライアントシステムは、請求項1乃至3のいずれかに記載のサーバ/クライアントシステムにおいて、前記サーバは、他サーバとの各同期/非同期状態と自サーバの同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、前記サーバの非同期状態を用いて当該管理テーブルを更新する更新手段と、を更に有することを要旨とする。
請求項5に記載のサーバ/クライアントシステムは、1つのマスターサーバと複数のスレーブサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ/クライアントシステムにおいて、前記スレーブサーバは、全てのサーバが同期状態の際に共有されたマスター状態インデックスを記憶しておく記憶手段と、前記マスターサーバと同期している同期スレーブサーバから、前記マスターサーバからのインデックスの通知に基づき更新されたマスター状態インデックスを用いて行う同期状態の問合せ要求を受信する受信手段と、前記同期状態の問合せ要求からマスター状態インデックスを取得し、前記記憶手段に記憶されているマスター状態インデックスと比較する比較手段と、比較された2つのマスター状態インデックスが一致しない場合、自サーバを非同期として自サーバの非同期状態を前記クライアントに通知する通知手段と、を有し、前記クライアントは、前記全てのサーバの各同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、当該記憶手段から管理テーブルを読み出して、前記スレーブサーバから通知された前記自サーバの非同期状態を用いて更新する更新手段と、更新された管理テーブルを参照し、同期状態のサーバにのみアクセスするアクセス手段と、を有することを要旨とする。
本発明によれば、分散データベースシステムを構成するサーバは、非同期であるサーバの非同期状態をクライアントに通知し、クライアントは、同期状態のサーバにのみアクセスするため、分散データベースシステムの信頼性を向上できる。
請求項6に記載のサーバ/クライアントシステムは、請求項5に記載のサーバ/クライアントシステムにおいて、前記スレーブサーバは、他サーバとの各同期/非同期状態と自サーバの同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、前記自サーバの非同期状態を用いて当該管理テーブルを更新する更新手段と、を更に有することを要旨とする。
請求項7に記載のサーバ/クライアントシステムは、請求項5又は6に記載のサーバ/クライアントシステムにおいて、前記マスターサーバは、全てのサーバが同期状態の際に共有されたマスター状態インデックスを記憶しておく記憶手段と、通信状況に基づき、前記複数のスレーブサーバが自サーバと同期しているかを検知する検知手段と、同期していないスレーブサーバが検知された場合、前記マスター状態インデックスの値を変更する変更手段と、変更後のマスター状態インデックスを前記同期スレーブサーバに通知する通知手段と、を有することを要旨とする。
請求項8に記載のサーバ/クライアントシステムは、請求項5乃至7のいずれかに記載のサーバ/クライアントシステムにおいて、前記同期スレーブサーバは、全てのサーバが同期状態の際に共有されたマスター状態インデックスを記憶しておく記憶手段と、前記マスターサーバから通知された変更後のマスター状態インデックスを受信する受信手段と、受信した変更後のマスター状態インデックスを用いて当該記憶手段に記憶されているマスター状態インデックスを更新する更新手段と、更新されたマスター状態インデックスを用いてサーバの同期状態を問い合わせる同期状態の問合せ要求を全てのサーバに送信する送信手段と、を有することを要旨とする。
本発明によれば、分散データベースシステムの信頼性を向上できる。
サーバ/クライアントシステムの全体構成を示す図である。 マスターサーバの機能ブロック構成を示す図である。 マスターサーバ同期状態管理テーブルを示す図である。 スレーブサーバの機能ブロック構成を示す図である。 スレーブサーバ(1)同期状態管理テーブルを示す図である。 スレーブサーバ(2)同期状態管理テーブルを示す図である。 クライアントの機能ブロック構成を示す図である。 クライアント同期状態管理テーブルを示す図である。 サーバ/クライアントシステムの全体構成の他の例を示す図である。 サーバ/クライアントシステムの動作例1を示す図である。 サーバ/クライアントシステムの動作例2を示す図である。 第2の実施の形態でのマスターサーバの機能ブロック構成を示す図である。 第2の実施の形態でのスレーブサーバの機能ブロック構成を示す図である。 第2の実施の形態でのサーバ/クライアントシステムの動作例を示す図である。
以下、本発明を実施する一実施の形態について図面を用いて説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るサーバ/クライアントシステムの全体構成を示す図である。このサーバ/クライアントシステムは、複数のサーバ1で構成される分散データベースシステム100と、通信ネットワーク3を介していずれかのサーバ1にアクセスするクライアント2とを備える。
分散データベースシステム100は、マスター状態の1つのマスターサーバ1aと、スレーブ状態の2つのスレーブサーバ1b,1cとで構成される。マスターサーバ1aは、データベースの原本を記憶するマスターデータベースを備え、各スレーブサーバ1b,1cは、マスターデータベースの複製を記憶するスレーブデータベースを備えている。
マスターサーバ1aは、マスターデータベースの原本データに変更(追加/削除/更新)があると、各スレーブサーバ1b,1cに当該データを送信してデータの複製を要求する。一方、各スレーブサーバ1b,1cは、その要求に基づいて各スレーブデータベース(1)(2)を更新する。これにより、分散データベースシステム内のいずれのサーバにアクセスされた場合でも同じデータを提供し、各サーバの負荷分散、アクセス時間の短縮、信頼性の向上を実現している。
ここで、マスターサーバ1aは、各スレーブサーバ1b,1cからデータ複製要求に対する正常応答があれば、データが複製されたと判断する。このように、マスターサーバ1aと各スレーブサーバ1b,1cとの間でデータが完全に複製された状態を同期状態と呼ぶ。
一方、マスターサーバ1aが各スレーブサーバ1b,1cとの通信断を検出した場合や、各スレーブサーバ1b,1cからデータ複製要求に対する応答がなかった場合には、同期状態ではないと判断し、このような同期状態ではない状態を非同期状態と呼ぶ。
ここで、本実施の形態に係るマスターサーバ1aの機能について詳述する。図2は、マスターサーバ1aの機能ブロック構成を示す図である。マスターサーバ1aは、データ複製要求部41と、同期状態検知部42と、データ管理部43と、同期状態通知部44と、管理テーブル記憶部45とで構成される。
データ複製要求部41は、前述したように、マスターデータベースの原本データに変更があった場合、各スレーブサーバ1b,1cに対して当該データを含むデータ複製要求を送信する機能部である。
同期状態検知部42は、通信状況に基づき、各スレーブサーバ1b,1cが自サーバと同期しているかを検知し、自サーバが各スレーブサーバ1b,1cと同期しているかを検知する機能部である。
前述したように、データ複製要求に対して各スレーブサーバ1b,1cから正常応答があった場合には、それらスレーブサーバの状態を同期状態と検知する。一方、各スレーブサーバ1b,1cから応答がなかった場合や各スレーブサーバ1b,1cとの通信断を検出した場合には、それらスレーブサーバの状態を非同期状態と検知する。
データ管理部43は、後述するマスターサーバ同期状態管理テーブルを管理し、各スレーブサーバ1b,1cの状態(同期/非同期状態)の検知結果に基づき、そのマスターサーバ同期状態管理テーブルを更新する機能部である。
同期状態通知部44は、その検知結果に基づき、各スレーブサーバ1b,1cの状態(同期/非同期状態)をクライアント2に通知する機能部である。
管理テーブル記憶部45は、各スレーブサーバ1b,1cとの同期/非同期状態や、自サーバの同期/非同期状態を管理するマスターサーバ同期状態管理テーブル(図3参照)を記憶するメモリ等の記憶部である。
次に、本実施の形態に係るスレーブサーバ(1)1bの機能について詳述する。図4は、スレーブサーバ1bの機能ブロック構成を示す図である。スレーブサーバ1bは、同期状態検知部51と、データ管理部52と、同期状態通知部53と、管理テーブル記憶部54とで構成される。
同期状態検知部51は、通信状況に基づき、マスターサーバ1aが自サーバと同期しているかを検知し、自サーバがマスターサーバ1aと同期しているかを検知する機能部である。例えば、マスターサーバ1aとの通信断を検出した場合には、自身の状態を非同期状態と検知する。
データ管理部52は、後述するスレーブサーバ(1)同期状態管理テーブルを管理し、マスターサーバ1aの状態(同期/非同期状態)の検知結果に基づき、そのスレーブサーバ(1)同期状態管理テーブルを更新する機能部である。
同期状態通知部53は、クライアント2からのアクセス要求に応じて、自身の状態(同期/非同期状態)をクライアント2に通知する機能部である。
管理テーブル記憶部54は、マスターサーバ1aとの同期状態や、自サーバの同期状態を管理するスレーブサーバ(1)同期状態管理テーブル(図5参照)を記憶する記憶部である。
なお、スレーブサーバ(2)1cも同様の機能を備え、図6に示すようなスレーブサーバ(2)同期状態管理テーブルを保有している。
次に、本実施の形態に係るクライアント2の機能について詳述する。図7は、クライアント2の機能ブロック構成を示す図である。クライアント2は、データ管理部61と、アクセス要求部62と、管理テーブル記憶部63とで構成される。
データ管理部61は、後述するクライアント同期状態管理テーブルを管理し、マスターサーバ1a又は各スレーブサーバ1b,1cから通知されたスレーブサーバの状態(同期/非同期状態)に基づき、そのクライアント同期状態管理テーブルを更新する機能部である。
アクセス要求部62は、更新後のクライアント同期状態管理テーブルを参照し、マスターサーバとスレーブサーバの状態が全て同期状態のサーバに対してのみアクセスし、そのサーバに保有されているデータを参照して取得する機能部である。
管理テーブル記憶部63は、マスターサーバ1a及び各スレーブサーバ1b,1cとの同期状態を管理するクライアント同期状態管理テーブル(図8参照)を記憶する記憶部である。
以上がサーバ/クライアントシステムの構成及び機能である。なお、図9に示すように、スレーブサーバを3つ以上としても構わないし、クライアントを2つ以上としても構わない。また、分散データベースシステムの構成をクライアント側から隠蔽するため、分散データベースシステム100とクライアント2との間に、分散データベースシステムの同期状態を保持するフロントエンドサーバ4を配置しても構わない。
続いて、図10と図11を参照しながら、本実施の形態に係るサーバ/クライアントシステムの動作について説明する。図10は、マスターサーバ1aがスレーブサーバ(2)1cの非同期状態を検知し、その検知後ただちにクライアント2に通知する場合の動作例1である。
マスターサーバ1aとスレーブサーバ(1)1b及びスレーブサーバ(2)1cは同期状態であるとする。まず、マスターサーバ1aのデータ複製要求部41により、スレーブサーバ(1)1b及びスレーブサーバ(2)1cにデータ複製要求が送信される(ステップS101)。
このとき、スレーブサーバ(2)1cとの通信断が検出されると、マスターサーバ1aの同期状態検知部42により、そのスレーブサーバ(2)1cは非同期状態と検知される(ステップS102)。
そして、マスターサーバ1aのデータ管理部43により、マスターサーバ同期状態管理テーブルのスレーブサーバ(2)の状態が「非同期」に更新される(ステップS103)。
その後、マスターサーバ1aの同期状態通知部44により、スレーブサーバ(2)の非同期状態がクライアント2に通知される(ステップS104)。
マスターサーバ1aからの通知データは通信ネットワーク3を介してクライアント2で受信され、クライアント2のデータ管理部61により、クライアント同期状態管理テーブルのスレーブサーバ(2)の状態が「非同期」に更新される(ステップS105)。
その後、クライアント2のアクセス要求部62により、更新されたクライアント同期状態管理テーブルが参照され、マスターサーバとスレーブサーバの状態が全て同期状態であるマスターサーバ1a又はスレーブサーバ1bにアクセス要求が送信され、アクセス先のデータが参照される(ステップS106)。
本動作例1によれば、マスターサーバ1aが、通信状況に基づきスレーブサーバ(2)の非同期状態を検知し、その検知後ただちにその非同期状態をクライアント2に通知し、クライアント2は、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
続いて、図11を参照しながら、クライアント2からアクセス要求された後にスレーブサーバ(2)の非同期状態を通知する場合の動作例2を説明する。
マスターサーバ1aにより、上記ステップS101〜ステップS103が実行される(ステップS201〜ステップS203)。その際、マスターサーバ1aとの通信断が検出されると、スレーブサーバ(2)1cの同期状態検知部51により、自サーバが非同期状態と検知される(ステップS204)。
そして、スレーブサーバ(2)1cのデータ管理部52により、スレーブサーバ(2)同期状態管理テーブルの自サーバの状態が「非同期」に更新される(ステップS205)。
その後、クライアント2がスレーブサーバ(2)1cにアクセス要求した場合、スレーブサーバ(2)1cの同期状態通知部53により、更新されたスレーブサーバ(2)同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ(2)の非同期状態が設定され、クライアント2に通知される(ステップS206)。
同様に、クライアント2がマスターサーバ1aにアクセス要求した場合には、マスターサーバ1aの同期状態通知部44により、ステップS203で更新されたマスターサーバ同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ(2)の非同期状態が設定され、クライアント2に通知される(ステップS206’)。
その後、スレーブサーバ(2)1c又はマスターサーバ1aからの通知データがクライアント2で受信されると、クライアント2のデータ管理部61により、クライアント同期状態管理テーブルのスレーブサーバ(2)の状態が「非同期」に更新される(ステップS207)。
そして、クライアント2のアクセス要求部62により、更新されたクライアント同期状態管理テーブルが参照され、マスターサーバとスレーブサーバの状態が全て同期状態であるマスターサーバ1a又はスレーブサーバ1bにアクセス要求が送信される(ステップS208)。
本動作例2によれば、スレーブサーバ(2)1c又はマスターサーバ1aが、クライアント2からのアクセス要求に応じてスレーブサーバ(2)の非同期状態を通知し、クライアント2は、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
なお、動作例1では、マスターサーバ1aがクライアント2にスレーブサーバ(2)の非同期状態を通知しているが、スレーブサーバ(1)1bがマスターサーバ1aよりも先に当該非同期状態を検知した場合には、そのスレーブサーバ(1)1bが、クライアント2にスレーブサーバ(2)の非同期状態を通知しても構わない。
また、動作例1,2を組み合わせ、スレーブサーバ(2)の非同期状態をステップS104とステップS206(ステップS206’)の両段階でそれぞれ通知しても構わない。
以上より、本実施の形態によれば、いずれの動作例1,2においても、分散データベースシステムを構成するサーバが、非同期であるサーバの非同期状態をクライアントに通知し、そのクライアントは、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
特に、動作例1によれば、サーバの非同期状態を、検知後ただちに通知するので、クライアントに通知される迄の時間が短縮されることから、分散データベースシステムの信頼性をより向上できる。
また、実施例2によれば、サーバの非同期状態を、クライアントからのアクセス要求を受信した後に通知するので、サーバからクライアントに対する通知が不要になることから、通知のためのシステムの負荷を低減できる。
〔第2の実施の形態〕
次に、第2の実施の形態について説明する。本実施の形態に係るサーバ/クライアントシステムの全体構成やクライアント2の機能については、第1の実施の形態と同様である(図1,図9参照)。以下、マスターサーバ1aと各スレーブサーバ1b,1cに追加される機能を中心に説明する。
図12は、本実施の形態に係るマスターサーバ1aの機能ブロック構成を示す図である。マスターサーバ1aは、インデックス記憶部46と、インデックス通知部47と、問合せ受付部48とを更に備えている。
インデックス記憶部46は、マスターサーバ自身が割り当て、分散データベースシステム内の全てのサーバが共有するマスター状態インデックスを記憶しておく記憶部である。
マスター状態インデックスとは、新旧を判断可能な一意な識別子であり、例えば、1,2,3,…等の連続番号でも構わないし、基準時刻として時系列を表す情報を利用しても構わない。
インデックス通知部47は、マスター状態インデックスを同期状態のスレーブサーバにのみ通知する機能部である。
問合せ受付部48は、スレーブサーバから送信されたサーバ同期状態問合せ要求(後述)を受け付ける機能部である。
図13は、本実施の形態に係る各スレーブサーバ1b,1cの機能ブロック構成を示す図である。各スレーブサーバ1b,1cは、インデックス記憶部55と、インデックス受信部56と、同期状態問合せ部57と、問合せ受付部58とを更に備えている。
インデックス記憶部55は、マスターサーバ1aが割り当てたマスター状態インデックスと同じマスター状態インデックスを記憶しておく機能部である。
インデックス受信部56は、マスターサーバ1aから通知されたマスター状態インデックスを受信する機能部である。
同期状態問合せ部57は、インデックス記憶部55に記憶しているマスター状態インデックスを用いて、サーバの同期状態を問い合わせるためのサーバ同期状態問合せ要求を全てのサーバに送信する機能部である。
問合せ受付部58は、他のスレーブサーバから送信されたサーバ同期状態問合せ要求を受け付ける機能部である。
続いて、図14を参照しながら、本実施の形態に係るサーバ/クライアントシステムの動作について説明する。
マスターサーバ1aとスレーブサーバ(1)1b及びスレーブサーバ(2)1cは、同期状態であり、その同期状態の際にマスターサーバ1aにより割り当てられたマスター状態インデックス「1」を共有しているとする。
まず、マスターサーバ1aのデータ複製要求部41により、スレーブサーバ(1)1b及びスレーブサーバ(2)1cにデータ複製要求が送信される(ステップS301)。
このとき、スレーブサーバ(2)1cとの通信断が検出されると、マスターサーバ1aの同期状態検知部42により、そのスレーブサーバ(2)1cは非同期状態と検知される(ステップS302)。
そして、マスターサーバ1aのデータ管理部43により、マスターサーバ同期状態管理テーブルのスレーブサーバ(2)の状態が「非同期」に更新され、マスター状態インデックスの値が「2」に変更される(ステップS303)。
その後、マスターサーバ1aのインデックス通知部47により、変更後のマスター状態インデックスが、同期状態であるスレーブサーバ(1)1bにのみ通知される(ステップS304)。
マスターサーバ1aからのインデックス通知データはスレーブサーバ(1)1bに送信され、スレーブサーバ(1)1bのインデックス受信部56により、送信された変更後のマスター状態インデックスが受信される(ステップS305)。
その後、スレーブサーバ(1)1bのデータ管理部52により、マスターサーバ1aからのインデックス通知に基づき、受信した変更後のマスター状態インデックスを用いて、インデックス記憶部55に記憶されているマスター状態インデックスが更新(「1」→「2」)される(ステップS306)。
そして、分散データベースシステム内の全てのサーバの同期状態を確認するため、スレーブサーバ(1)1bの同期状態問合せ部57により、更新されたマスター状態インデックスを含むサーバ同期状態問合せ要求が全てのサーバに送信される(ステップS307)。
その後、スレーブサーバ(2)1cの問合せ受付部58により、更新後のマスター状態インデックスを含むサーバ同期状態問合せ要求が受信される(ステップS308)。
そして、スレーブサーバ(2)1cのデータ管理部52により、サーバ同期状態問合せ要求から取得した更新後のマスター状態インデックスと、インデックス記憶部55に記憶されているマスター状態インデックスとが比較され、自サーバのマスター状態インデックスよりも値が新しいため、自サーバの同期状態が「非同期」と特定される(ステップS309)。
その後、スレーブサーバ(2)1cのデータ管理部52により、スレーブサーバ(2)同期状態管理テーブルのスレーブサーバ(2)の状態が「非同期」に更新される(ステップS310)。
一方、マスターサーバ1aでは、問合せ受付部48により、ステップS307でスレーブサーバ(1)1bから送信されたサーバ同期状態問合せ要求が受信される(ステップS311)。そして、データ管理部43により、受信したサーバ同期状態問合せ要求内での更新後のマスター状態インデックスと、インデックス記憶部46に記憶されているマスター状態インデックスとが比較され、自サーバのマスター状態インデックスと同じ値であるため、特に処理は行わない(ステップS312)。
その後、クライアント2がスレーブサーバ(2)1cにアクセス要求した場合、スレーブサーバ(2)1cの同期状態通知部53により、ステップS310で更新されたスレーブサーバ(2)同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ(2)の非同期状態が設定され、クライアント2に通知される(ステップS313)。
同様に、クライアント2がマスターサーバ1aにアクセス要求した場合には、マスターサーバ1aの同期状態通知部44により、ステップS303で更新されたマスターサーバ同期状態管理テーブルが参照され、そのアクセス要求に対する応答にスレーブサーバ(2)の非同期状態が設定され、クライアント2に通知される(ステップS313’)。
その後、スレーブサーバ(2)1c又はマスターサーバ1aからの通知データがクライアント2で受信されると、クライアント2のデータ管理部61により、クライアント同期状態管理テーブルのスレーブサーバ(2)の状態が「非同期」に更新される(ステップS314)。
そして、クライアント2のアクセス要求部62により、更新されたクライアント同期状態管理テーブルが参照され、マスターサーバとスレーブサーバの状態が全て同期状態であるマスターサーバ1a又はスレーブサーバ1bにアクセス要求が送信される(ステップS315)。
なお、ステップS304の後、第1の実施の形態で実行したステップS104〜ステップS105を併せて実行しても構わない。また、ステップS310のタイミングで、スレーブサーバ(2)1cの同期状態通知部53により、スレーブサーバ(2)の非同期状態をクライアント2に通知しても構わない。
また、マスターサーバ1aは、スレーブサーバから自身もマスター状態インデックスを受信し、マスターサーバ同期状態管理テーブルを参照して当該受信したマスター状態インデックスの送信元スレーブサーバが同期状態である場合、受信したマスター状態インデックスと自身のマスター状態インデックスとを比較し、同一でなければ送信元のスレーブサーバを非同期状態と検知するようにしても構わない。非同期状態と検知された場合は、ステップS303以降と同じ動作を実行する。
以上より、本実施の形態によれば、第1の実施の形態と同様に、分散データベースシステムを構成するサーバが、非同期であるサーバの非同期状態をクライアントに通知し、そのクライアントは、同期状態のサーバにのみアクセスするので、非同期状態のスレーブサーバにアクセスする確率を低減でき、分散データベースシステムの信頼性を向上できる。
また、スレーブサーバ(2)は、サーバの非同期状態を、クライアントからのアクセス要求を受信した後に通知するので、サーバからクライアントに対する通知が不要になることから、通知のためのシステムの負荷を低減できる。
最後に、本実施の形態で説明したマスターサーバ1a、各スレーブサーバ1b,1c、クライアント2は、コンピュータにより実現可能である。また、それらの構成要素の各動作をプログラムとして構築し、コンピュータにインストールして実行させることや、通信ネットワークを介して流通させることも可能である。
100…分散データベースシステム
1a…マスターサーバ装置
41…データ複製要求部
42…同期状態検知部
43…データ管理部
44…同期状態通知部
45…管理テーブル記憶部
46…インデックス記憶部
47…インデックス通知部
48…問合せ受付部
1b…スレーブサーバ(1)装置
1c…スレーブサーバ(2)装置
51…同期状態検知部
52…データ管理部
53…同期状態通知部
54…管理テーブル記憶部
55…インデックス記憶部
56…インデックス受信部
57…同期状態問合せ部
58…問合せ受付部
2…クライアント装置
61…データ管理部
62…アクセス要求部
63…管理テーブル記憶部
3…通信ネットワーク
4…フロントエンドサーバ
S101〜S106、S201〜S208、S301〜S315…ステップ

Claims (8)

  1. 複数のサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ/クライアントシステムにおいて、
    前記サーバは、
    通信状況に基づき、他サーバが自サーバと同期しているかを検知し、自サーバが他サーバと同期しているかを検知する検知手段と、
    同期していないと検知されたサーバの非同期状態を前記クライアントに通知する通知手段と、を有し、
    前記クライアントは、
    前記全てのサーバの各同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、
    前記記憶手段から管理テーブルを読み出して、前記サーバから通知された前記サーバの非同期状態を用いて更新する更新手段と、
    更新された管理テーブルを参照し、同期状態のサーバにのみアクセスするアクセス手段と、
    を有することを特徴とするサーバ/クライアントシステム。
  2. 前記通知手段は、
    同期していないと検知された後ただちに前記サーバの非同期状態を通知することを特徴とする請求項1に記載のサーバ/クライアントシステム。
  3. 前記通知手段は、
    前記クライアントからアクセスされた後に前記サーバの非同期状態を通知することを特徴とする請求項1又は2に記載のサーバ/クライアントシステム。
  4. 前記サーバは、
    他サーバとの各同期/非同期状態と自サーバの同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、
    前記サーバの非同期状態を用いて当該管理テーブルを更新する更新手段と、
    を更に有することを特徴とする請求項1乃至3のいずれかに記載のサーバ/クライアントシステム。
  5. 1つのマスターサーバと複数のスレーブサーバで構成される分散データベースシステムと、ネットワークを介していずれかのサーバにアクセスするクライアントとを備えたサーバ/クライアントシステムにおいて、
    前記スレーブサーバは、
    全てのサーバが同期状態の際に共有されたマスター状態インデックスを記憶しておく記憶手段と、
    前記マスターサーバと同期している同期スレーブサーバから、前記マスターサーバからのインデックスの通知に基づき更新されたマスター状態インデックスを用いて行う同期状態の問合せ要求を受信する受信手段と、
    前記同期状態の問合せ要求からマスター状態インデックスを取得し、前記記憶手段に記憶されているマスター状態インデックスと比較する比較手段と、
    比較された2つのマスター状態インデックスが一致しない場合、自サーバを非同期として自サーバの非同期状態を前記クライアントに通知する通知手段と、を有し、
    前記クライアントは、
    前記全てのサーバの各同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、
    当該記憶手段から管理テーブルを読み出して、前記スレーブサーバから通知された前記自サーバの非同期状態を用いて更新する更新手段と、
    更新された管理テーブルを参照し、同期状態のサーバにのみアクセスするアクセス手段と、
    を有することを特徴とするサーバ/クライアントシステム。
  6. 前記スレーブサーバは、
    他サーバとの各同期/非同期状態と自サーバの同期/非同期状態を管理する管理テーブルを記憶しておく記憶手段と、
    前記自サーバの非同期状態を用いて当該管理テーブルを更新する更新手段と、
    を更に有することを特徴とする請求項5に記載のサーバ/クライアントシステム。
  7. 前記マスターサーバは、
    全てのサーバが同期状態の際に共有されたマスター状態インデックスを記憶しておく記憶手段と、
    通信状況に基づき、前記複数のスレーブサーバが自サーバと同期しているかを検知する検知手段と、
    同期していないスレーブサーバが検知された場合、前記マスター状態インデックスの値を変更する変更手段と、
    変更後のマスター状態インデックスを前記同期スレーブサーバに通知する通知手段と、
    を有することを特徴とする請求項5又は6に記載のサーバ/クライアントシステム。
  8. 前記同期スレーブサーバは、
    全てのサーバが同期状態の際に共有されたマスター状態インデックスを記憶しておく記憶手段と、
    前記マスターサーバから通知された変更後のマスター状態インデックスを受信する受信手段と、
    受信した変更後のマスター状態インデックスを用いて当該記憶手段に記憶されているマスター状態インデックスを更新する更新手段と、
    更新されたマスター状態インデックスを用いてサーバの同期状態を問い合わせる同期状態の問合せ要求を全てのサーバに送信する送信手段と、
    を有することを特徴とする請求項5乃至7のいずれかに記載のサーバ/クライアントシステム。
JP2013138615A 2013-07-02 2013-07-02 サーバ/クライアントシステム Active JP6043687B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013138615A JP6043687B2 (ja) 2013-07-02 2013-07-02 サーバ/クライアントシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013138615A JP6043687B2 (ja) 2013-07-02 2013-07-02 サーバ/クライアントシステム

Publications (2)

Publication Number Publication Date
JP2015011642A true JP2015011642A (ja) 2015-01-19
JP6043687B2 JP6043687B2 (ja) 2016-12-14

Family

ID=52304713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013138615A Active JP6043687B2 (ja) 2013-07-02 2013-07-02 サーバ/クライアントシステム

Country Status (1)

Country Link
JP (1) JP6043687B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036978A (ja) * 2016-09-02 2018-03-08 日本電信電話株式会社 振分装置、通信システム及びデータ振分方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278820A (ja) * 2001-03-21 2002-09-27 Ricoh Co Ltd データベース管理システム
US20040024853A1 (en) * 2002-06-17 2004-02-05 Terry Cates Method and system for automatically updating multiple servers
JP2007135023A (ja) * 2005-11-11 2007-05-31 Yaskawa Electric Corp 複数台構成サーバのマスタ切り替え方法およびプラントシステム
JP2007156916A (ja) * 2005-12-06 2007-06-21 Data Access Kk データ制御装置、システム、方法、及びプログラム
US20080140734A1 (en) * 2006-12-07 2008-06-12 Robert Edward Wagner Method for identifying logical data discrepancies between database replicas in a database cluster
WO2008139521A1 (ja) * 2007-04-27 2008-11-20 Fujitsu Limited リモートファイルシステム、端末装置およびサーバ装置
JP2009009557A (ja) * 2007-05-30 2009-01-15 Hitachi Ltd 分散システム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002278820A (ja) * 2001-03-21 2002-09-27 Ricoh Co Ltd データベース管理システム
US20040024853A1 (en) * 2002-06-17 2004-02-05 Terry Cates Method and system for automatically updating multiple servers
JP2007135023A (ja) * 2005-11-11 2007-05-31 Yaskawa Electric Corp 複数台構成サーバのマスタ切り替え方法およびプラントシステム
JP2007156916A (ja) * 2005-12-06 2007-06-21 Data Access Kk データ制御装置、システム、方法、及びプログラム
US20080140734A1 (en) * 2006-12-07 2008-06-12 Robert Edward Wagner Method for identifying logical data discrepancies between database replicas in a database cluster
WO2008139521A1 (ja) * 2007-04-27 2008-11-20 Fujitsu Limited リモートファイルシステム、端末装置およびサーバ装置
JP2009009557A (ja) * 2007-05-30 2009-01-15 Hitachi Ltd 分散システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018036978A (ja) * 2016-09-02 2018-03-08 日本電信電話株式会社 振分装置、通信システム及びデータ振分方法

Also Published As

Publication number Publication date
JP6043687B2 (ja) 2016-12-14

Similar Documents

Publication Publication Date Title
CN104935654B (zh) 一种服务器集群系统中的缓存方法、写入点客户端和读客户端
CN102333029B (zh) 一种服务器集群系统中的路由方法
US9367261B2 (en) Computer system, data management method and data management program
US9411869B2 (en) Replication between sites using keys associated with modified data
CN105138571B (zh) 分布式文件系统及其存储海量小文件的方法
US20110225121A1 (en) System for maintaining a distributed database using constraints
CN111368002A (zh) 一种数据处理方法、系统、计算机设备和存储介质
Zawirski et al. SwiftCloud: Fault-tolerant geo-replication integrated all the way to the client machine
CN103299602A (zh) 数据同步
CN107181686B (zh) 路由表的同步方法、装置及系统
KR101545626B1 (ko) Dds-db 연동 시스템
CN111274310A (zh) 一种分布式数据缓存方法及系统
US20160323238A1 (en) Ip management method, client and server
CN105162879B (zh) 实现多机房数据一致性的方法、装置及系统
JP5724735B2 (ja) データベース更新制御装置、データベース管理システムおよびデータベース更新制御プログラム
JP2012234333A (ja) クラスタシステム、同期制御方法、サーバ装置および同期制御プログラム
US9026493B1 (en) Multi-master RDBMS improvements for distributed computing environment
CN105493474A (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
CN105069152A (zh) 数据处理方法及装置
US20110225120A1 (en) System for maintaining a distributed database using leases
JP2012146083A (ja) セッション管理システム、セッション管理装置、サーバ装置およびセッション管理方法
JP5395517B2 (ja) 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム
CN113010549A (zh) 基于异地多活系统的数据处理方法、相关设备及存储介质
CN111104250B (zh) 用于数据处理的方法、设备和计算机可读介质
US7979392B2 (en) Method and apparatus for preventing duplicate saving of resource between universal plug and play devices providing content directory service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160513

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160614

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160804

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161114

R150 Certificate of patent or registration of utility model

Ref document number: 6043687

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150