説明

キャッシュ制御システム及びキャッシュ制御方法

【課題】キャッシュサーバに記憶された古いデータを無効化すること。
【解決手段】キャッシュ制御システムの1つの実施形態では、データベースサーバ各々は、自データベースサーバのデータが更新される場合に、更新されるデータを識別する更新データ識別情報を含む更新情報を複数あるキャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部(IR情報DB)に格納する。また、キャッシュサーバ各々は、複数あるデータベースサーバ各々から、更新情報記憶部に格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された更新情報を取得する。また、キャッシュサーバ各々は、取得した更新情報により識別されるデータのキャッシュを無効にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュ制御システム及びキャッシュ制御方法に関する。
【背景技術】
【0002】
データベースサーバに格納された大規模なデータを用いて、複数のクライアントにネットワーク上にてサービスを提供するサービス提供システムがある。サービス提供システムでは、データベースサーバに格納されたデータ各々の利用頻度は、データごとに様々となる。
【0003】
ここで、World Wide Web(WWW)サーバにより記憶されたデータをキャッシュするキャッシュ技術がある。図35は、キャッシュ技術を実行するシステムの一例を示す図である。図35において、ユーザ端末100〜ユーザ端末102は、利用者により用いられる端末である。WWWサーバ105は、データを管理するサーバである。WWW用キャッシュサーバ103及びWWW用キャッシュサーバ104は、WWWサーバ105により管理されるデータのキャッシュを記憶するサーバである。また、キャッシュ技術を実行するシステムでは、ユーザ端末100〜102に近い位置に、ユーザ端末の数に応じた台数のWWW用キャッシュサーバが予め配置される。図35に示す例では、WWW用キャッシュサーバ103は、ユーザ端末100用のキャッシュサーバとして配置され、WWW用キャッシュサーバ104が、ユーザ端末101及び102用のキャッシュサーバとして配置される。
【0004】
図35に示すような構成の下、ユーザ端末100がWWWサーバ105によって管理されるデータを取得する場合を用いて説明する。この場合、キャッシュ技術を実行するシステムでは、WWW用キャッシュサーバ103は、ユーザ端末100によってWWWサーバ105から一度取得されたデータのキャッシュを記憶する。そして、キャッシュ技術を実行するシステムでは、ユーザ端末100が再度同一のデータにアクセスする場合に、WWW用キャッシュサーバ103がユーザ端末100にデータを送信する。
【0005】
図36は、図35に示したキャッシュ技術を一般化したシステムの一例を示す図である。図36において、クライアント端末110〜クライアント端末112は、図35におけるユーザ端末100〜ユーザ端末102に対応する。また、キャッシュサーバ113及びキャッシュサーバ114は、図35におけるWWW用キャッシュサーバ103及びWWW用キャッシュサーバ104に対応する。また、データベースサーバ115は、図35におけるWWWサーバ105に対応する。
【0006】
ここで、キャッシュサーバに記憶されているデータが、データベースサーバに記憶されているデータと同一とならないことがある。例えば、キャッシュサーバが、データベースサーバに記憶されたデータ「D」のキャッシュを記憶しており、キャッシュサーバに記憶されたデータ「D」を用いてクライアント端末にサービスが提供されている場合を用いて説明する。また、キャッシュサーバがデータ「D」を取得した後に、データベースサーバに記憶されたデータ「D」が「E」に更新された場合を用いて説明する。この場合、キャッシュサーバによって記憶されているデータ「D」は更新前のデータであり、データベースサーバに記憶されているデータとキャッシュサーバに記憶されているデータとを同一とはならない。
【0007】
このことを踏まえ、データベースサーバに記憶されているデータとキャッシュサーバに記憶されているデータとを同一にする手法として、Invalidation Reportという技術(以下、「IR技術」とも称する)がある。
【0008】
IR技術を実行するシステムでは、データベースサーバにて更新されたデータについての情報であるIR情報を生成する。また、IR技術を実行するシステムでは、データベースサーバとキャッシュサーバとがIR情報を共有することで、キャッシュサーバに記憶されているデータのうち、古いデータを無効化して使われない状態とする。
【0009】
例えば、データベースサーバがユーザごとにパスワードを管理する場合を用いて説明する。また、ユーザ「U」のパスワードが、パスワード「P1」であり、キャッシュサーバがユーザ「U」のパスワードとしてパスワード「P1」を記憶している場合を用いて説明する。また、その後、データベースサーバにて、ユーザ「U」のパスワードが、パスワード「P1」からパスワード「P2」に変更された場合を用いて説明する。この場合、データベースサーバは、例えば、更新されたパスワード「P1」を識別するユーザ「U」含むIR情報を生成し、生成したID情報をキャッシュサーバと共有する。この結果、キャッシュサーバは、ユーザ「U」のパスワードとして記憶していたパスワード「P1」のキャッシュを無効化する。
【0010】
なお、その後、キャッシュサーバが、ユーザ「U」のパスワードをクライアント端末から要求された場合を用いて説明する。この場合、キャッシュサーバにおいてユーザ「U」のパスワードは無効化されており、キャッシュサーバは、データベースサーバからユーザ「U」のパスワード「P2」を取得し、キャッシュサーバ上にパスワード「P2」のキャッシュを格納するとともに、クライアント端末に対してパスワード「P2」を提供する。
【0011】
また、データベースサーバに記憶されたデータは、サービスの提供を継続するために不可欠な情報であることを踏まえ、冗長化などの耐故障技術を用いてデータベースサーバを構成する技術がある。図37は、データベースサーバを二重化した場合における構成の一例を示す図である。すなわち、図37に示す例では、データベースサーバ120とデータベースサーバ121とが同一のデータを記憶する。また、図37に示す例では、キャッシュサーバ122は、データベースサーバ120からデータを取得し、キャッシュサーバ123及びキャッシュサーバ124は、データベースサーバ121からデータを取得する場合を示した。
【0012】
ここで、データベースサーバを冗長化する技術として、同期型レプリケーションと非同期方レプリケーションとがある。同期型レプリケーションとは、図37の例を用いて説明すると、データベースサーバ120とデータベースサーバ121とを同時に更新する手法である。また、非同期型のレプリケーションとは、図37の例を用いて説明すると、データベースサーバ120とデータベースサーバ121とのうち一方のデータベースサーバに記憶されたデータを更新した後、他方のデータベースサーバに記憶されたデータを更新する手法である。言い換えると、非同期型レプリケーションでは、複数あるデータベースサーバ各々は、同時に更新されるわけではない。
【先行技術文献】
【非特許文献】
【0013】
【非特許文献1】「分散システム 原理とパラダイム」、アンドリュー・S・タネンバウム、マールテン・ファン・スティーン著、水野忠則、宮西洋太郎、鈴木健二、西山智、佐藤文明、東野輝夫訳、株式会社ピアソン・エデュケーション、2003年発行
【非特許文献2】BUILDING SECURE AND RELIABLE NETWORK APPLICATIONS、 Kenneth P. Birman著、Manning、1996年発行
【非特許文献3】G. Cao、 ”A Scalable Low−Latency Cache Invalidation Strategy for Mobile Environments”、 IEEE Transactions on Knowledge and Data engineering、 vol.15、 no.5、 pp.1251−1265、 2003
【非特許文献4】Z.Wang、 S.K.Das、 H.Che、 M.Kumar、 ”A Scalable Asynchronous Cache Consistency Scheme (SACCS) for Mobile Environments”、 IEEE Transactions on Parallel and Distributed Systems、 vol.15、 no.11、 2004
【非特許文献5】J.Gray、 P.Helland、 P.O’Neil、 D.Shasha、 Mohan Kumar、 ”The Dangers of Replication and a Solution”、 Proc.ACM SIGMOD ’86、 pp.173−183、 June 1996
【非特許文献6】K.P.Birman著、 ”BUILDING SECURE AND RELIABLE NETWORK APPLICATIONS”、 Manning、 1996年
【発明の概要】
【発明が解決しようとする課題】
【0014】
しかしながら、IR技術と非同期型レプリケーションと併用すると、キャッシュサーバが古いデータを無効化することなく保持することがあるという問題がある。具体的には、非同期型レプリケーションを実行するシステムでは、複数あるデータベースサーバ各々に記憶されたデータが同一とはならない期間があり、更新されるタイミングが異なる結果データベースサーバごとにIR情報が生成されるタイミングも異なる。この結果、例えば、データベースサーバに故障が発生した場合に、データベースサーバに記憶されたデータとキャッシュサーバに記憶されたデータとが同一とならない場合がある。
【0015】
図38を更に用いて説明する。図38は、データベースサーバに記憶されたデータとキャッシュサーバに記憶されたデータとが同一とならない場合の一例を示す図である。図38における横軸は、時間軸を示し、左側から右側に向かって時間が経過するものとして説明する。なお、図38を用いて説明する際には、システムの構成が図37と同一であるものとして説明する。
【0016】
図38における時点130において、データベースサーバ120に記憶されたデータが更新され、データベースサーバ120にIR情報が登録された場合を用いて説明する。そして、図38における時点131において、キャッシュサーバ122とデータベースサーバ120との間でIR情報が共有され、キャッシュサーバ122において古いデータが無効化された場合を用いて説明する。そして、図38における時点132において、キャッシュサーバ123が、クライアント端末126へのサービス提供のため、自身の保持していないデータをデータベースサーバ121から取得する場合を用いて説明する。また、ここで、キャッシュサーバ123が取得したデータは、時点130における更新の対象となったデータであるものとして説明する。そして、図38における時点133において、データベースサーバ120に対して行われた更新が、非同期でデータベースサーバ121に対して行われる結果、データベースサーバ121に記憶されたデータが更新され、データベースサーバ121にIR情報が登録された場合を用いて説明する。そして、図38における時点134において、データベースサーバ121が故障した場合を用いて説明する。
【0017】
この場合、時点132においては、データベースサーバ121は更新されておらず、キャッシュサーバ123は、時点132において古いデータを取得する。その後、時点133においてデータベースサーバ121は更新されるが、時点134において故障する結果、キャッシュサーバ123は、時点132の時点において取得した古いデータを、無効化することなく保持することになる。
【0018】
開示の技術は、上述に鑑みてなされたものであって、キャッシュサーバに記憶された古いデータを無効化可能であるキャッシュ制御システム及びキャッシュ制御方法を提供することを目的とする。
【課題を解決するための手段】
【0019】
開示するキャッシュ制御システムは、1つの態様において、非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するシステムとなる。また、キャッシュ制御システムでは、1つの態様において、前記データベースサーバ各々は、自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備える。また、キャッシュ制御システムでは、1つの態様において、前記キャッシュサーバ各々は、複数ある前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得部を備える。また、キャッシュ制御システムでは、1つの態様において、前記取得部により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理部を備える。
【発明の効果】
【0020】
開示のキャッシュ制御システムの1つの態様によれば、1つでも正常なデータベースサーバがあれば、キャッシュサーバに記憶された古いデータを無効化可能であるという効果を奏する。
【図面の簡単な説明】
【0021】
【図1】図1は、実施例1に係るキャッシュ制御システムの一例の全体像を示す図である。
【図2】図2は、実施例1におけるデータベースサーバの構成の一例を示すブロック図である。
【図3】図3は、実施例1におけるデータベースサーバのユーザ情報DBに記憶された情報の一例を示す図である。
【図4】図4は、実施例1におけるデータベースサーバのIR情報DBに記憶された情報の一例を示す図である。
【図5】図5は、実施例1におけるデータベースサーバの配信情報DBに記憶された情報の一例を示す図である。
【図6】図6は、実施例1におけるデータベースサーバの装置情報DBに記憶された情報の一例を示す図である。
【図7】図7は、実施例1におけるキャッシュサーバの構成の一例を示すブロック図である。
【図8】図8は、実施例1におけるキャッシュサーバのキャッシュに記憶された情報の一例を示す図である。
【図9】図9は、実施例1におけるキャッシュサーバの検索先状態DBに記憶された情報の一例を示す図である。
【図10】図10は、実施例1におけるキャッシュサーバの更新登録状態DBに記憶された情報の一例を示す図である。
【図11】図11は、実施例1における監視サーバの構成の一例を示すブロック図である。
【図12】図12は、実施例1における監視サーバの装置情報DBに記憶された情報の一例を示す図である。
【図13】図13は、実施例1におけるデータベースサーバ各々間における処理の流れの一例を示すシーケンス図である。
【図14】図14は、実施例1におけるデータベースサーバと監視サーバ間における処理の流れの一例を示すシーケンス図である。
【図15】図15は、実施例1におけるキャッシュサーバとデータベースサーバの間における処理の流れの一例について示すシーケンス図である。
【図16】図16は、実施例1におけるキャッシュサーバとデータベースサーバの間における処理の流れの一例について示すシーケンス図である。
【図17】図17は、実施例1におけるクライアント端末とキャッシュサーバとデータベースサーバと間における処理の流れの一例を示すシーケンス図である。
【図18】図18は、実施例1におけるデータベースサーバのキャッシュ応答部による処理の流れの一例を示すフローチャートである。
【図19】図19は、実施例1におけるデータベースサーバのIR情報応答部による処理の流れの一例を示すフローチャートである。
【図20】図20は、実施例1におけるデータベースサーバの更新情報応答部による処理の流れの一例を示フローチャートである。
【図21】図21は、実施例1におけるデータベースサーバの更新成否応答部による処理の流れの一例を示すフローチャートである。
【図22】図22は、実施例1における更新成否結果対応表の一例を示す図である。
【図23】図23は、実施例1におけるデータベースサーバの装置状態応答部による処理の一例を示すフローチャートである。
【図24】図24は、実施例1におけるデータベースサーバの装置状態格納部による処理の流れの一例を示すフローチャートである。
【図25】図25は、実施例1におけるデータベースサーバの閉塞制御部による処理の流れの一例を示すフローチャートである。
【図26】図26は、実施例1におけるデータベースサーバの更新情報配信部による詳細な処理の流れの一例を示すフローチャートである。
【図27】図27は、実施例1におけるデータベースサーバの更新再伝播部による処理の流れの一例を示すフローチャートである。
【図28】図28は、実施例1におけるキャッシュサーバのキャッシュ判定部による処理の流れの一例を示すフローチャートである。
【図29】図29は、実施例1におけるキャッシュサーバのIR情報判定部による処理の流れの一例を示すフローチャートである。
【図30】図30は、実施例1における更新登録状態対応表の一例を示す図である。
【図31】図31は、実施例1におけるIR情報削除対象判定表の一例を示す図である。
【図32】図32は、実施例1におけるキャッシュサーバの応答処理部による流れの一例を示すフローチャートである。
【図33】図33は、実施例1における監視サーバの故障判定部による処理の流れの一例を示すフローチャートである。
【図34】図34は、キャッシュ制御システムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。
【図35】図35は、キャッシュ技術を実行するシステムの一例を示す図である。
【図36】図36は、図35に示したキャッシュ技術を一般化したシステムの一例を示す図である。
【図37】図37は、データベースサーバを二重化した場合における構成の一例を示す図である。
【図38】図38は、データベースサーバに記憶されたデータとキャッシュサーバに記憶されたデータとが同一とならない場合の一例を示す図である。
【発明を実施するための形態】
【0022】
以下に、開示するキャッシュ制御システム及びキャッシュ制御方法の実施例について、図面に基づいて詳細に説明する。なお、本実施例により開示する発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例1】
【0023】
[実施例1に係るキャッシュ制御システムの全体像]
実施例1に係るキャッシュ制御システムの全体像について説明する。実施例1に係るキャッシュ制御システムは、データベースサーバ200と、キャッシュサーバ300と、監視サーバ400と、クライアント端末500とを有する。データベースサーバ200は、データを記憶する。キャッシュサーバ300は、データベースサーバ200に記憶されたデータのキャッシュを記憶する。監視サーバ400は、データベースサーバ200を監視する。クライアント端末500は、利用者により用いられる端末であって、データベースサーバ200に記憶されたデータに基づくサービスの提供を受ける。
【0024】
図1は、実施例1に係るキャッシュ制御システムの一例の全体像を示す図である。図1に示す例では、実施例1に係るキャッシュ制御システムは、2つのデータベースサーバ200と、2つのキャッシュサーバ300と、1つの監視サーバ400と、1つのクライアント端末500とを有する場合を示した。2つのデータベースサーバ200と、2つのキャッシュサーバ300と、1つの監視サーバ400と、1つのクライアント端末500とは、ネットワークを介して相互に接続される。
【0025】
なお、図1に示す例では、キャッシュ制御システムが、2つのデータベースサーバ200と、2つのキャッシュサーバ300と、1つの監視サーバ400と、1つのクライアント端末500とを有する場合を示したが、これに限定されるものではない。例えば、キャッシュ制御システムは、3つ以上のデータベースサーバ200を有しても良く、3つ以上のキャッシュサーバ300を有しても良く、2つ以上の監視サーバ400を有しても良く、2つ以上のクライアント端末500を有しても良い。
【0026】
キャッシュ制御システムの全体像について説明する際には、図1に示すように、2つあるデータベースサーバ200各々をデータベースサーバ200−1とデータベースサーバ200−2と記載する。また、図1に示すように、2つあるキャッシュサーバ300をキャッシュサーバ300−1とキャッシュサーバ300−2と記載する。
【0027】
ここで、クライアント端末500は、図1の(1)に示す例では、キャッシュサーバ300−1に、データベースサーバ200−1又はデータベースサーバ200−2に記憶されたデータを要求するデータ要求を送信する。また、図1の(4)に示すように、クライアント端末500は、キャッシュサーバ300−1から受信したデータを用いて各種サービスを利用者に提供する。例えば、クライアント端末500は、キャッシュサーバ300−1から受信したデータを利用者に出力したり、キャッシュサーバ300−1から受信したデータを用いて実行されるサービスを利用者に提供したりする。
【0028】
データベースサーバ200−1及びデータベースサーバ200−2は、大容量のデータを記憶する記憶部を有する。データベースサーバ200−1やデータベースサーバ200−2の記憶部に記憶されたデータは、例えば、クライアント端末500により利用されたり参照されたりする。
【0029】
データベースサーバ200−1及びデータベースサーバ200−2は、非同期で更新される同一のデータを記憶する。また、データベースサーバ200−1及びデータベースサーバ200−2は、それぞれ、データベースサーバとしては独立した構成をとる。例えば、図1の(A)及び(B)に示す例では、データベースサーバ200−1が更新されると、データベースサーバ200−1は、更新データをデータベースサーバ200−2に配信し、データベースサーバ200−2が、配信された更新データに含まれる更新後のデータが登録される結果、データが更新される。
【0030】
また、データベースサーバ200−1及びデータベースサーバ200−2は、それぞれ、自データベースサーバに記憶されたデータが更新されると、IR情報を生成する。キャッシュ制御システムでは、IR情報は、キャッシュサーバ300にデータの更新があったことを通知する情報となる。
【0031】
キャッシュサーバ300−1及びキャッシュサーバ300−2は、データベースサーバ200−1やデータベースサーバ200−2に記憶されたデータのキャッシュを記憶する。例えば、キャッシュサーバ300−1及びキャッシュサーバ300−2は、データベースサーバ200−1又はデータベースサーバ200−2に記憶されるデータのうち、クライアント端末500によって過去に利用されたデータのキャッシュを記憶する。なお、キャッシュサーバ300−1及びキャッシュサーバ300−2は、過去に利用された自装置のキャッシュに記憶することで、クライアント端末500からの高速なアクセスを実現する。
【0032】
また、キャッシュサーバ300−1及びキャッシュサーバ300−2は、クライアント端末500からデータ要求を受信すると、データ要求により要求されたデータが自装置に記憶されている場合には、自装置が記憶しているデータをクライアント端末500に送信する。一方、キャッシュサーバ300−1及びキャッシュサーバ300−2は、データ要求により要求されたデータを自装置に記憶していない場合には、図1の(2)に示すように、データ検索要求をデータベースサーバ200−1やデータベースサーバ200−2に送信する。そして、図1の(3)に示すように、キャッシュサーバ300−1及びキャッシュサーバ300−2は、データベースサーバ200−1やデータベースサーバ200−2からデータ検索要求に対する応答となるデータ応答を受信すると、自装置のキャッシュに受信したデータのキャッシュを格納するとともに、図1の(4)に示すように、受信したデータをクライアント端末500に送信する。
【0033】
また、図1の(a)に示すように、キャッシュサーバ300−1及びキャッシュサーバ300−2は、任意のタイミングにて、データベースサーバ200−1やデータベースサーバ200−2に対してIR情報要求を送信する。ここで、データベースサーバ200−1やデータベースサーバ200−2によってIR情報が生成されていた場合には、図1の(b)に示すように、キャッシュサーバ300−1及びキャッシュサーバ300−2は、IR情報の応答を受信する。そして、キャッシュサーバ300−1及びキャッシュサーバ300−2は、クライアント端末500からのデータ要求に対して、自装置に記憶されている古いデータを無効化することで、クライアント端末500からのデータ要求に対して古いデータを送信しないようにする。
【0034】
監視サーバ400は、データベースサーバ200−1及びデータベースサーバ200−2の状態を監視する。ここで、図1の(i)に示すように、監視サーバ400は、データベースサーバ200−1又はデータベースサーバ200−2の状態についての情報である装置情報を取得し、データベースサーバ200の状態を判定する。そして、図1の(ii)に示すように、監視サーバ400は、データベースサーバ200−1及びデータベースサーバ200−2に対して、各データベースサーバ200各々についての判定結果となる装置状態を格納する旨の装置状態格納要求を送信する。また、図1の(iii)に示すように、監視サーバ400は、故障したと判定したデータベースサーバ200に対して、キャッシュサーバ300との間におけるデータの送受信を閉塞する旨の閉塞要求を送信する。
【0035】
ここで、詳細については後述するように、実施例1に係るキャッシュ制御システムでは、データベースサーバ200各々は、自データベースサーバ200のデータが更新される場合に、更新されるデータを識別するキー情報を含むIR情報を複数あるキャッシュサーバを識別する識別情報各々に対応付けて生成する。また、キャッシュサーバ300各々は、複数あるデータベースサーバ200各々から、自キャッシュサーバを識別する識別情報に対応付けて生成されたIR情報を取得し、取得したIR情報により識別されるデータのキャッシュを無効にする。この結果、1つでも正常なデータベースサーバ200があれば、キャッシュサーバ300に記憶された更新前のデータを無効にすることが可能である。なお、キー情報は「更新データ識別情報」とも称し、IR情報は「更新情報」とも称する。
【0036】
また、詳細については後述するように、実施例1に係るキャッシュ制御システムでは、複数あるデータベースサーバ200各々は、複数あるデータベースサーバ200各々について、データの更新が終了したか否かを示す更新結果を記憶する。また、キャッシュサーバ300各々は、データベースサーバ200から、複数あるデータベースサーバ200各々についての更新結果を取得する。そして、キャッシュサーバ300は、更新結果情報各々に基づいて、複数あるデータベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合にはIR情報をデータベースサーバ200から削除する削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。この結果、詳細については後述するように、データベースサーバ200がどのような状況において故障したとしても、キャッシュサーバ300によって古いデータが有効なまま記憶され続けることがなくなり、データベースサーバとキャッシュサーバとを確実に一致させることが可能である。
【0037】
また、詳細については後述するように、実施例1に係るキャッシュ制御システムでは、キャッシュサーバ300は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ200各々について判定する。そして、キャッシュサーバ300は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合に削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。の結果、データベースサーバ200とキャッシュサーバ300とを一致させることが可能である。
【0038】
[実施例1に係るキャッシュ制御システムの構成]
実施例1に係るキャッシュ制御システムの構成の一例について説明する。以下では、実施例1におけるデータベースサーバ200の構成の一例と、実施例1におけるキャッシュサーバ300の構成の一例と、実施例1における監視サーバ400の構成の一例とを順に説明する。
【0039】
[実施例1におけるデータベースサーバ200の構成]
図2は、実施例1におけるデータベースサーバの構成の一例を示すブロック図である。図2に示す例では、データベースサーバ200は、通信制御I/F部201と、記憶部210と、制御部220とを有する。
【0040】
通信制御I/F部201は、制御部220と接続される。通信制御I/F部201は、キャッシュサーバ300や、監視サーバ400、他のデータベースサーバ200との間でデータの送受信を行う。なお、通信制御I/F部201により送受信される情報の詳細については、適宜後述する。
【0041】
記憶部210は、制御部220と接続される。記憶部210は、制御部220による各種処理に用いるデータ及びプログラムを記憶する。記憶部210は、例えば、RAM(Random Access Memory)やフラッシュメモリ(Flash Memory)などの半導体メモリ素子、又は、ハードディスクや光ディスクなどの記憶装置である。図2に示す例では、記憶部210は、ユーザ情報DB211と、IR情報DB212と、配信情報DB213と、装置情報DB214とを有する。なお、IR情報DB212は、「更新情報記憶部」とも称し、配信情報DB213は、「更新結果記憶部」とも称する。
【0042】
ユーザ情報DB211は、クライアント端末500により利用されるデータやクライアント端末500に対してサービスを提供する際に用いられるデータを記憶する。ここで、複数あるデータベースサーバ200のユーザ情報DB211各々は、非同期で更新され、同一のデータを記憶する。
【0043】
以下では、ユーザ情報DB211が、キー情報と属性情報とを対応付けて記憶する場合を用いて説明する。ここで、属性情報とは、更新対象となるデータである。以下では、具体的な例をあげて説明する場合には、属性情報がユーザごとに一意となるパスワードである場合を用いて説明するが、これに限定されるものではなく、任意の情報であって良い。また、キー情報とは、属性情報を一意に識別する情報である。以下では、具体的な例をあげて説明する場合には、キー情報がユーザを識別するユーザ情報である場合を用いて説明するが、これに限定されるものではなく、任意の情報であって良い。
【0044】
また、以下では、ユーザ情報DB211が、キー情報と属性情報とを同じテーブルで記憶する場合を用いて説明するが、これに限定されるものではなく、別々のテーブルで記憶しても良い。また、以下では、キー情報と属性情報とがそれぞれ別個の情報である場合を用いて説明するが、これに限定されるものではなく、1つの情報であっても良く、任意の数の情報に分散されても良い。
【0045】
図3は、実施例1におけるデータベースサーバのユーザ情報DBに記憶された情報の一例を示す図である。図3に示す例では、ユーザ情報DB211は、キー情報「U001」と属性情報「P001」とを対応付けて記憶し、キー情報「U002」と属性情報「P002」とを対応付けて記憶する。すなわち、ユーザ情報DB211は、キー情報「U001」により識別されるデータが、属性情報「P001」であることを記憶する。
【0046】
図2の説明に戻る。IR情報DB212は、キャッシュサーバを識別する識別情報に対応付けて、IR情報を記憶する。図4は、実施例1におけるデータベースサーバのIR情報DBに記憶された情報の一例を示す図である。図4に示す例では、IR情報DB212は、キャッシュサーバを識別する識別情報である「キャッシュサーバ名」に対応付けて、キー情報と更新IDとを含むIR情報を記憶する。ここで、更新IDとは、データベースサーバ200に記憶されたデータに対する更新を一意に識別する情報である。また、IR情報DB212に記憶されたキャッシュサーバ名は、IR情報の適用先となるキャッシュサーバ300を示す。
【0047】
図4に示す例では、IR情報DB212は、キャッシュサーバ名「キャッシュサーバ「A」」に対応付けて、キー情報「U001」と更新ID「I001」とを含むIR情報を記憶する。すなわち、IR情報DB212は、キャッシュサーバ「A」に適用されるIR情報として、更新ID「I001」により識別される更新により、ユーザ情報DB211に記憶されたデータのうちキー情報「U001」により識別されるデータが更新されたことを示すIR情報を記憶する。
【0048】
ここで、IR情報DB212は、後述するように、データベースサーバ200のデータが更新されると、キャッシュサーバ300それぞれについてIR情報が制御部220によって生成され、制御部220によって格納される。すなわち、IR情報DB212は、IR情報が生成された後、キャッシュサーバ300に用いられる前の段階においては、キャッシュサーバ名すべてについて、IR情報を対応付けて記憶する。また、IR情報DB212に記憶されたIR情報は、後述するように、キャッシュサーバ300が自装置内のキャッシュの最新化を行う際にキャッシュサーバ300によって参照される。
【0049】
図2の説明に戻る。配信情報DB213は、複数あるデータベースサーバ200各々について、データの更新が終了したか否かを示す更新結果を記憶する。図5は、実施例1におけるデータベースサーバの配信情報DBに記憶された情報の一例を示す図である。図5に示す例では、配信情報DB213は、「更新ID」と、データベースサーバ200を一意に識別する識別情報である「データベースサーバ名」と、「配信結果」と、「更新結果」とを含むレコードを記憶する。
【0050】
ここで、配信結果は、任意のデータベースサーバが更新された場合に、更新データが配信されたか否か示す。以下では、配信結果「OK」は、更新データの配信が成功した場合を示す。また、配信結果「未配信」は、更新データが配信されていない場合や、更新内用の配信が失敗した場合などが該当する。すなわち、配信結果「OK」である場合には、データベースサーバ200に更新データが届いていることを示し、更新結果「未配信」である場合には、データベースサーバ200に更新データが届いてないことを示す。
【0051】
また、更新結果は、データの更新が終了したか否かを示す。以下では、更新結果「初期」は、更新IDにより識別される更新が行われていないことを示す。また、更新結果「OK」は、更新IDにより識別される更新が成功したことを示す。また、更新結果「NG」は、更新IDにより識別される更新が失敗したことを示す。すなわち、更新結果「OK」である場合には、データベースサーバ200に更新が反映されたことを示し、更新結果「初期」や「NG」である場合には、データベースサーバ200に更新が反映されていないことを示す。
【0052】
図5に示す例では、配信情報DB213は、更新ID「I001」と、データベースサーバ名「データベースサーバA」と、配信結果「OK」と、更新結果「OK」とを含むレコードを記憶する。すなわち、図5に示す例では、配信情報DB213は、更新ID「I001」により識別される更新について、データベースサーバ「A」に対する更新データの配信が成功したことを記憶し、データベースサーバBに対する配信が終了したことを記憶する。
【0053】
また、配信情報DB213に記憶された情報は、制御部220により更新され、キャッシュサーバ300がIR情報をデータベースサーバ200から削除するか否かを判定する際に用いられる。また、複数あるデータベースサーバ200の配信情報DB213は、同一の情報を記憶する。言い換えると、複数あるデータベースサーバ200各々が、データベースサーバ200各々についての配信結果や更新結果を共有する。
【0054】
なお、配信情報DB213に記憶された情報は、後述するように、キャッシュサーバ300が、IR情報をデータベースサーバ200から削除する削除処理を実行するか否かを判定する際に用いられる。配信情報DB213に記憶された情報は、後述するように、制御部220によって更新される。
【0055】
図2の説明に戻る。装置情報DB214は、データベースサーバ200各々の状態を記憶する。具体的には、装置情報DB214は、データベースサーバ200各々について、他のデータベースサーバ200からの更新データを受信したり、更新を実行したり、他のデータベースサーバ200に更新データを配信したりすることが可能であるか否かを示す情報を記憶する。
【0056】
図6は、実施例1におけるデータベースサーバの装置情報DBに記憶された情報の一例を示す図である。図6に示す例では、装置情報DB214は、「データベースサーバ名」に対応付けて、データベースサーバ200の状態を示す「装置状態」を記憶する。以下では、装置状態「正常」は、データベースサーバ200が更新データを配信したり受信したり、更新を実行したりする際に用いられるリソースが正常に動作しており、更新データの配信や受信が可能な状態であることを示す。また、装置状態「故障」は、データベースサーバ200が更新データを配信したり受信したり、更新を実行したりする際に用いられるリソースのいずれか1つ以上が故障しており、更新データの配信や受信、更新が不可能な状態であることを示す。
【0057】
図6に示す例では、装置情報DB214は、データベースサーバ名「データベースサーバA」に対応付けて、装置状態「正常」を記憶する。また、装置情報DB214は、データベースサーバ名「データベースサーバB」に対応付けて、装置状態「正常」を記憶する。すなわち、装置情報DB214は、データベースサーバ「A」とデータベースサーバ「B」とが、共に、更新データの配信や受信が可能な状態であることを記憶する。なお、各データベースサーバ300の装置情報DB214各々が、全データベースサーバ200についての装置情報を記憶する。
【0058】
ここで、装置情報DB214に記憶された情報は、データベースサーバ200が、自データベースサーバのユーザ情報DB211のデータが更新された場合に、更新データを配信する配信先となるデータベースサーバ200を決定する際に用いられる。また、装置情報DB214に記憶された情報は、監視サーバ400によって更新される。
【0059】
図2の説明に戻る。制御部220は、通信制御I/F部201及び記憶部210と接続される。制御部220は、OS(Operating System)などの制御プログラム、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部220は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、CPU(Central Processing Unit)、MPU(Micro Processing Unit)などである。図2に示す例では、制御部220は、キャッシュ応答部221と、IR情報応答部222と、更新情報応答部223と、更新成否応答部224と、装置状態応答部225と、装置状態格納部226と、閉塞制御部227と、更新情報配信部228と、更新再伝播部229とを有する。なお、各部の詳細については後述する。なお、更新情報配信部228は、「格納部」とも称する。また、更新情報応答部223は、「更新情報送信部」とも称する。
【0060】
[実施例1におけるキャッシュサーバの構成]
図7は、実施例1におけるキャッシュサーバの構成の一例を示すブロック図である。図7に示す例では、キャッシュサーバ300は、通信制御I/F部301と、記憶部310と、制御部320とを有する。
【0061】
通信制御I/F部301は、制御部320と接続される。通信制御I/F部301は、データベースサーバ200やクライアント端末500との間でデータの送受信を行う。なお、通信制御I/F部301により送受信される情報の詳細については、適宜後述する。
【0062】
記憶部310は、制御部320と接続される。記憶部310は、制御部320による各種処理に用いるデータ及びプログラムを記憶する。記憶部310は、例えば、RAMやフラッシュメモリなどの半導体メモリ素子、又は、ハードディスクや光ディスクなどである。図7に示す例では、記憶部310は、キャッシュ311と、検索先状態DB312と、更新登録状態DB313とを有する。
【0063】
キャッシュ311は、データベースサーバ200のユーザ情報DB211に記憶されたデータのキャッシュを記憶する。具体的には、キャッシュ311は、ユーザ情報DB211に記憶されたデータのうち、過去に利用されたデータのキャッシュを記憶する。
【0064】
図8は、実施例1におけるキャッシュサーバのキャッシュに記憶された情報の一例を示す図である。図8に示す例では、キャッシュ311は、キー情報と属性情報とを対応付けて記憶する。図8に示す例では、キャッシュ311は、キー情報「U001」と属性情報「P001」とを対応付けて記憶し、キー情報「U002」と属性情報「P002」とを対応付けて記憶する。
【0065】
なお、キャッシュ311に記憶されるデータは、ユーザ情報DB211に記憶されるデータの一部又は全てとなる。なお、ユーザ情報DB211のデータが更新され、更新されたデータのコピーをキャッシュ311が記憶していた場合について説明する。この場合、キャッシュ311が記憶するデータは、古いデータとなる。キャッシュ311に記憶された古いデータは、後述するように、制御部320によって、データベースサーバ200から取得するIR情報に基づいて削除される。
【0066】
図7の説明に戻る。検索先状態DB312は、データベースサーバ200各々の状態を記憶する。具体的には、検索先状態DB312は、データベースサーバ200各々について、データ検索要求の送信先として良いか否かを記憶する。つまり、検索先状態DB312は、データ要求により要求されるデータのキャッシュがない場合に、データ要求により要求されるデータの検索を要求しても良いデータベースサーバ200のデータベースサーバ名を記憶する。
【0067】
図9は、実施例1におけるキャッシュサーバの検索先状態DBに記憶された情報の一例を示す図である。図9に示す例では、「データベースサーバ名」と「閉塞状態」とを対応付けて記憶する。ここで、閉塞状態「未閉塞」は、データベースサーバ200が閉塞されておらず、データベースサーバ200に対してデータ検索要求の送信先として良いことを示す。また、閉塞状態「閉塞」は、データベースサーバ200が閉塞されており、データベースサーバ200に対してデータ検索要求の送信先とできないことを示す。
【0068】
すなわち、後述するように、キャッシュサーバ300は、データベースサーバ200にデータ検索要求を送信する場合に、閉塞状態「閉塞」となっているデータベースサーバ200にはデータ検索要求を送信しない。また、キャッシュサーバ300は、データベースサーバ200にデータ検索要求を実行する場合に、閉塞状態「未閉塞」となっているデータベースサーバ200にデータ検索要求を送信する。
【0069】
図9に示す例では、検索先状態DB312は、データベースサーバ名「データベースサーバA」と閉塞状態「未閉塞」とを対応付けて記憶する。また、検索先状態DB312は、データベースサーバ名「データベースサーバB」と閉塞状態「未閉塞」とを対応付けて記憶する。すなわち、検索先状態DB312は、データベースサーバ「A」とデーベースサーバ「B」との両方が閉塞されておらず、データ検索が可能な状態であることを示す。
【0070】
検索先状態DB312に記憶されたデータベースサーバ名各々により識別されるデータベースサーバ200各々は、キャッシュサーバ300が自装置に存在しないデータについてのデータ検索要求を送信する場合に、送信先となる検索先となるデータベースサーバ200となる。また、検索先状態DB312の閉塞状態の初期値は、例えば、「閉塞」とする。検索先状態DB312に記憶される閉塞状態は、後述するように、制御部320により更新される。
【0071】
図7の説明に戻る。更新登録状態DB313は、複数あるデータベースサーバ200各々について、データベースサーバ200においてデータの更新が成功している状態であるかを記憶する。図10は、実施例1におけるキャッシュサーバの更新登録状態DB313に記憶された情報の一例を示す図である。図10に示す例では、更新登録状態DB313は、「データベースサーバ名」と、データベースサーバ200においてデータの更新が成功している状態であるかを示す「更新登録状態」とを対応付けて記憶する。
【0072】
ここで、登録状態情報「正常」は、データベースサーバ200において更新が正常に行われていることを示す。登録状態情報「伝播異常検出」は、データベースサーバ200において故障などにより更新が失敗したことを検出したことを示す。登録状態情報「伝播異常」は、データベースサーバ200において故障などにより更新が失敗し、更新が失敗している状態が継続していることを示す。登録状態情報「正常移行中」は、故障回復などにより、前回の更新登録状態は「伝播異常」であったが、現在はデータベースサーバ200において更新が正常に行われていることを示す。
【0073】
図10に示す例では、更新登録状態DB313は、データベースサーバ名「データベースサーバA」と更新登録状態「正常」とを対応付けて記憶する。また、更新登録状態DB313は、データベースサーバ名「データベースサーバB」と更新登録状態「正常」とを対応付けて記憶する。すなわち、更新登録状態DB313は、データベースサーバ「A」とデータベースサーバ「B」とにおいて、更新が正常に行われていることを記憶する。
【0074】
なお、更新登録状態DB313に記憶された情報は、後述するように、制御部320が、IR情報をデータベースサーバ200から削除する削除処理を実行するか否かを判定する際に用いられる。更新登録状態DB313に記憶された情報は、後述するように、制御部320によって更新される。また、更新登録状態DB313は、例えば、自装置が参照する可能性のあるすべてのデータベースサーバ200について、更新登録状態の初期値として、更新登録状態「伝播異常」を記憶する。
【0075】
図7の説明に戻る。制御部320は、通信制御I/F部301及び記憶部310と接続される。制御部320は、OSなどの制御プログラム、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部320は、例えば、ASIC、FPGA、CPU、MPUなどである。図7に示す例では、制御部320は、キャッシュ判定部321と、IR情報判定部322と、応答処理部323とを有する。なお、各部の詳細については後述する。なお、IR情報判定部322は、「更新情報取得部」や「無効処理部」、「更新結果取得部」、「削除処理部」、「更新状態判定部」とも称する。
【0076】
[実施例1における監視サーバの構成]
図11は、実施例1における監視サーバの構成の一例を示すブロック図である。図11に示す例では、監視サーバ400は、通信制御I/F部401と、記憶部410と、制御部420とを有する。
【0077】
通信制御I/F部401は、制御部420と接続される。通信制御I/F部401は、データベースサーバ200各々とデータの送受信を行う。なお、通信制御I/F部401により送受信される情報の詳細については、適宜後述する。
【0078】
記憶部410は、制御部420と接続される。記憶部410は、制御部420による各種処理に用いるデータ及びプログラムを記憶する。記憶部410は、例えば、RAMやフラッシュメモリなどの半導体メモリ素子、又は、ハードディスクや光ディスクなどである。図11に示す例では、記憶部410は、装置情報DB411を有する。
【0079】
装置情報DB411は、データベースサーバ200各々の状態を記憶する。図12は、実施例1における監視サーバの装置情報DBに記憶された情報の一例を示す図である。図12に示す例では、装置情報DB411は、「データベースサーバ名」に対応付けて「装置状態」を記憶する。なお、装置情報DB411は、初期値として、複数あるデータベースサーバ200各々のデータベースサーバ名を記憶する。
【0080】
図12に示す例では、装置情報DB411は、データベースサーバ名「データベースサーバA」に対応付けて、装置状態「正常」を記憶する。また、装置情報DB411は、データベースサーバ名「データベースサーバB」に対応付けて、装置状態「正常」を記憶する。すなわち、装置情報DB411は、データベースサーバ「A」とデータベースサーバ「B」とが、共に、更新データの配信や受信、更新が可能な状態であることを記憶する。装置情報DB411に記憶された情報は、制御部420によって格納される。
【0081】
図11の説明に戻る。制御部420は、通信制御I/F部401及び記憶部410と接続される。制御部420は、OSなどの制御プログラム、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部420は、例えば、ASIC、FPGA、CPU、MPUなどである。図11に示す例では、制御部420は、故障判定部421を有する。なお、故障判定部421の詳細については後述する。
【0082】
[実施例1に係るキャッシュ制御システムによる処理]
実施例1に係るキャッシュ制御システムによる処理について説明する。以下では、キャッシュ制御システムが有する各装置間における処理の流れの一例をシーケンス図を用いて簡単に説明し、その後、各装置の各部による詳細な処理の流れの一例をフローチャートを用いて説明する。
【0083】
[実施例1におけるデータベースサーバ各々間における処理]
図13は、実施例1におけるデータベースサーバ各々間における処理の流れの一例を示すシーケンス図である。図13では、2つのデータベースサーバ200がある場合を用いて説明する。具体的には、データベースサーバ「A」及びデータベースサーバ「B」を用いて説明する。また、以下では、データベースサーバ「A」のユーザ情報DB211に記憶されたデータに対する更新指示があった場合を用いて説明する。
【0084】
図13に示すように、更新指示があると(ステップS1401肯定)、データベースサーバ「A」の更新情報配信部228は、更新IDの払い出す(ステップS1402)。例えば、更新情報配信部228は、配信時刻を更新IDとして払い出したり、配信情報に枝番号を付加した情報を更新IDとして払い出したりする。より詳細な一例をあげて説明すると、更新情報配信部228は、更新ID「I001」を払い出す。
【0085】
そして、更新情報配信部228は、複数あるデータベースサーバ200各々に更新データを配信する(ステップS1403)。例えば、更新情報配信部228は、データベースサーバ「B」に、更新ID「I001」と、更新指示により更新されるデータを識別するキー情報と、更新後のデータとを送信する。
【0086】
その後、データベースサーバ「A」の更新情報配信部228は、複数あるデータベースサーバ200の配信情報DB213各々に、データベースサーバ200各々についての配信結果を更新IDに対応付けて格納する(ステップS1404)。例えば、更新情報配信部228は、配信が成功したデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて配信結果「OK」を格納し、配信が成功しなかったデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて配信結果「未配信」を格納する。なお、更新情報配信部228は、装置状態が正常ではなく、配信先とならなかったデータベースサーバ200についても、データベースサーバ名と更新ID「I001」とに対応付けて、配信結果「未配信」を初期値として格納する。
【0087】
そして、データベースサーバ「A」の更新情報配信部228は、配信結果「OK」となっているデータベースサーバ200のユーザ情報DB211を更新する(ステップS1405)。そして、データベースサーバ「A」の更新情報配信部228は、複数あるデータベースサーバ200の配信情報DB213各々に、データベースサーバ200各々についての更新結果を更新IDに対応付けて格納する(ステップS1406)。例えば、更新情報配信部228は、更新が成功したと判定したデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて、更新結果「OK」を格納する。より詳細な一例をあげて説明すると、更新情報配信部228は、データベースサーバ名「データベースサーバB」と更新ID「I001」とに対応付けて更新結果「OK」を格納する。また、更新情報配信部228は、データベースサーバ名「データベースサーバA」についても、更新ID「I001」に対応付けて更新結果「OK」を格納する。また、例えば、更新情報配信部228は、更新が成功したと判定しなかったデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて、更新結果「NG」を格納する。つまり、各データベースサーバ200は、複数あるデータベースサーバ200各々について、データの更新が終了したか否かを示す更新結果を記憶する。
【0088】
また、ここで、各データベースサーバ200では、ユーザ情報DB211が更新されると、更新情報配信部228が、IR情報を生成し、自装置のデータベースサーバ200のIR情報DB212に格納する(ステップS1407)。具体的には、更新情報配信部228は、更新データに含まれる更新IDとキー情報とを対応付けて、IR情報DB212に格納する。また、ここで、更新情報配信部228は、データベースサーバ200と接続された複数あるキャッシュサーバ300のキャッシュサーバ名各々に対応付けて、IR情報を格納する。例えば、更新情報配信部228が、キャッシュサーバ名「キャッシュサーバA」に対応付けてIR情報を格納し、キャッシュサーバ名「キャッシュサーバB」に対応付けてIR情報を格納する。
【0089】
つまり、各データベースサーバ300の更新情報配信部228各々は、自データベースサーバのデータが更新される場合に、更新されるデータを識別するキー情報を含むIR情報を複数あるキャッシュサーバ名各々に対応付けてIR情報DB212に格納する。
【0090】
なお、図13に示す例では、データベースサーバ「A」とデータベースサーバ「B」の両方について、ユーザ情報DB211が更新された結果、IR情報が生成されて格納された場合を示した。
【0091】
なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上述の説明では、データベースサーバ200が2つである場合を用いて説明したが、これに限定されるものではなく、3つ以上であっても良い。
【0092】
また、上述した説明では、データベースサーバ「A」の更新情報配信部228が、データベースサーバ「B」のユーザ情報DB211を更新したり、配信情報DB213に配信結果や更新結果を格納したりする場合を例に示した。ただし、これに限定されるものではなく、データベースサーバ「B」の更新情報配信部228がユーザ情報DB211を更新したり、配信情報DB213に配信結果や更新結果を格納したりしても良い。なお、更新情報配信部228により更新データが配信されなかったデータベースサーバ200に対しては、後述するように、更新再伝播部229により配信される。
【0093】
[実施例1におけるデータベースサーバと監視サーバ間における処理]
図14は、実施例1におけるデータベースサーバと監視サーバ間における処理の流れの一例を示すシーケンス図である。以下に説明する処理は、定期的に実行されたり、不定期に実行されたりする。図14に示す例では、記載の便宜上、データベースサーバ200を1つ示した。
【0094】
図14に示すように、監視サーバ400の故障判定部421は、送信タイミングとなると(ステップS1501肯定)、自装置の装置情報DB411から、データベースサーバ名の一覧を取得し、取得したデータベースサーバ名により識別されるデータベースサーバ200各々に装置状態要求を送信する(ステップS1502)。例えば、故障判定部421は、データベースサーバ「A」に装置状態要求を送信する。
【0095】
その後、データベースサーバ200の装置状態応答部225は、装置状態要求を受信すると、自装置の状態を確認し(ステップS1503)、装置状態要求に対応する応答となる装置情報を送信する(ステップS1504)。例えば、装置状態応答部225は、後述する更新情報配信部228や更新再伝播部229による処理が実行される際に用いられる各種プロセスやネットワークの状態等を確認し、装置情報として送信する。
【0096】
その後、監視サーバ400の故障判定部421は、装置情報を受信すると、データベースサーバ200からの装置状態応答に基づいて故障判定を実行し(ステップS1505)、判定結果を装置情報DB411に格納する(ステップS1506)。例えば、データベースサーバ「A」について装置状態が「正常」であると判定した場合には、故障判定部421は、装置情報DB411に記憶された装置状態のうち、データベースサーバ「A」に対応付けられた装置状態を「正常」に更新する。
【0097】
ここで、監視サーバ400の故障判定部421は、故障していると判定した場合には(ステップS1507肯定)、処理対象となったデータベースサーバ200に、キャッシュサーバ300との間におけるデータの送受信を閉塞する旨の閉塞要求を送信する(ステップS1508)。なお、故障判定部421は、故障であると判定しなかった場合には(ステップS1507否定)、閉塞要求を送信しない。
【0098】
そして、監視サーバ400の故障判定部421は、全データベースサーバ200について実施していない場合には(ステップS1509否定)、ステップS1502に戻って処理を繰り返す。一方、故障判定部421は、全データベースサーバ200について実施した場合には(ステップS1509肯定)、各データベースサーバ200各々についての判定結果となる装置状態各々を格納する旨の装置状態格納要求をデータベースサーバ200各々に送信し(ステップS1510)、処理を終了する。
【0099】
一方、データベースサーバ200では、閉塞要求を受信すると、閉塞制御部227が、キャッシュサーバとの間におけるデータの送受信を閉塞する(ステップS1511)。また、データベースサーバ200では、装置状態格納要求を受信すると、装置状態格納部226が、データベースサーバ200各々についての装置状態を受信した装置情報格納要求から取得し、自装置の装置情報DB214に格納する(ステップS1512)。
【0100】
[実施例1におけるキャッシュサーバとデータベースサーバの間における処理]
図15及び図16は、実施例1におけるキャッシュサーバとデータベースサーバの間における処理の流れの一例について示すシーケンス図である。以下に詳細に説明するように、図15に記載された一連の処理は、キャッシュサーバ300が検索先状態DB312を更新する際に実行される。また、図16に記載された一連の処理は、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する際に実行される。なお、以下では、説明の便宜上、キャッシュサーバ300が検索先状態DB312を更新する際に実行される処理と、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する処理とを分けて説明するが、一連の処理として連続して実行しても良い。
【0101】
図15を用いて、キャッシュサーバ300が検索先状態DB312を更新する際に、キャッシュサーバ300とデータベースサーバ200との間で行われる処理の流れの一例を示す。
【0102】
図15に示す例では、キャッシュサーバ300のIR情報判定部322は、送信タイミングとなると(ステップS1601肯定)、検索先状態DB312に記憶されたデータベースサーバ名を含む更新成否要求を送信する(ステップS1602)。更新成否要求は、データベースサーバ200における更新処理の状況を示す更新成否結果を要求する情報である。また、IR情報判定部322は、検索先状態DB312に記憶されたデータベースサーバ名それぞれについて、更新成否要求を送信する。
【0103】
その後、データベースサーバ200の更新成否応答部224は、更新成否要求を受信すると、受信した更新成否要求に含まれるデータベースサーバ名に対応付けられた更新結果を配信情報DB213から取得する(ステップS1603)。例えば、更新成否応答部224は、更新成否要求に「データベースサーバA」が含まれていた場合には、更新成否応答部224は、図5に示す例では、更新結果「OK」を取得する。
【0104】
そして、データベースサーバ200の更新情報配信部228は、取得した更新結果に基づいて更新成否結果を判定し(ステップS1604)、更新成否結果をキャッシュサーバ300に応答する(ステップS1605)。なお、更新情報配信部228による更新成否結果の判定処理については、後述するため、ここでは説明を省略する。
【0105】
その後、キャッシュサーバ300のIR情報判定部322は、データベースサーバ200から更新成否結果を受信すると、受信した更新成否結果に基づいて、データベースサーバ200の更新登録状態を判定する(ステップS1606)。つまり、IR情報判定部322は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ200各々について判定する。なお、IR情報判定部322による更新登録状態の判定処理については、後述するため、ここでは説明を省略する。
【0106】
そして、キャッシュサーバ300のIR情報判定部322は、判定結果となる更新登録状態を更新登録状態DB313に格納する(ステップS1607)。また、IR情報判定部322は、検索先状態DB312の閉塞状態を更新する(ステップS1608)。具体的には、詳細については後述するように、更新登録状態が「正常」である場合には、閉塞状態「未閉塞」を格納し、更新登録状態が「正常」でない場合には、閉塞状態「閉塞」を格納する。
【0107】
続いて、図16を用いて、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する際に、キャッシュサーバ300とデータベースサーバ200との間で行われる処理の流れの一例を示す。
【0108】
図16に示すように、キャッシュサーバ300のIR情報判定部322は、送信タイミングとなると(ステップS1701肯定)、自キャッシュサーバ名を含むIR情報要求を送信する(ステップS1702)。例えば、キャッシュサーバ「A」は、キャッシュサーバ名「キャッシュサーバA」を含むIR情報要求を送信する。この場合、IR情報判定部322は、キャッシュサーバ「A」用のIR情報を要求することになる。つまり、IR情報判定部322は、複数あるデータベースサーバ200各々から、IR情報DB212によって自キャッシュサーバ300を識別するキャッシュサーバ名に対応付けて記憶されたIR情報を取得する。
【0109】
その後、データベースサーバ200のIR情報応答部222は、IR情報要求を受信すると、受信したIR情報要求に含まれる「キャッシュサーバ名」に対応するIR情報を自装置のIR情報DB212から取得し(ステップS1703)、IR情報応答としてキャッシュサーバ300に送信する(ステップS1704)。つまり、IR情報応答部233は、キー情報と更新IDとを含むIR情報を送信する。
【0110】
その後、キャッシュサーバ300のIR情報判定部322は、IR情報に含まれる更新IDをキーとする更新情報要求を送信する(ステップS1705)。例えば、IR情報として、キー情報「U001」と更新ID「I001」とを受信した場合を用いて説明する。この場合、IR情報判定部322は、更新ID「I001」を含む更新情報要求を送信する。すなわち、IR情報判定部322は、更新IDにより識別される更新について、データベースサーバ200各々について更新が行われたか否かを示す更新結果各々を要求する。言い換えると、IR情報判定部322は、データベースサーバ200から、配信情報DB213に記憶された複数あるデータベースサーバ200各々についての更新結果を取得する。
【0111】
その後、データベースサーバ200の更新情報応答部223は、キャッシュサーバ300から更新情報要求を受信すると、受信した更新情報要求に含まれる更新IDに対応付けられた「データベースサーバ名、更新結果」すべてを配信情報DB213から取得し(ステップS1706)、更新情報応答としてキャッシュサーバ300に送信する(ステップS1707)。
【0112】
その後、キャッシュサーバ300のIR情報判定部322は、自装置の更新登録状態DB313にデータベースサーバ200各々について記憶された更新登録状態と、受信した更新結果とに基づいて、IR情報を削除可能であるかを判定するIR情報削除判定処理を実行する(ステップS1708)。なお、IR情報削除判定処理の詳細については、後述するためここでは説明を後述する。
【0113】
そして、キャッシュサーバ300のIR情報判定部322は、削除可能であると判定した場合には(ステップS1709肯定)、削除しても良いと判定したIR情報に含まれるキー情報により識別されるデータをキャッシュ311から削除する(ステップS1710)。つまり、IR情報判定部322は、IR情報により識別されるデータのキャッシュを無効にする。
【0114】
また、IR情報判定部322は、削除しても良いと判定したIR情報を削除する旨のIR情報削除要求をデータベースサーバ200に送信する(ステップS1711)。IR情報削除要求には、削除対象となるIR情報に含まれる更新IDが含まれる。その後、データベースサーバ200では、IR情報削除要求を受信すると、IR情報削除要求に含まれる更新IDを含むIR情報が削除される(ステップS1713)。
【0115】
つまり、キャッシュサーバ300のIR情報判定部322は、IR情報削除要求を送信することで、キャッシュサーバ300からIR情報を削除する。具体的には、詳細については後述するように、IR情報判定部322は、更新結果各々に基づいて、複数あるデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、IR情報をIR情報DB212から削除する削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。より詳細には、IR情報判定部322は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。
【0116】
また、キャッシュサーバ300のIR情報判定部322は、IR情報の取得先となるデータベースサーバ200すべてについて処理を実行したか否かを判定し(ステップS1712)、実行したと判定した場合には(ステップS1712肯定)、処理を終了する。一方、IR情報判定部322は、実行していないと判定した場合には(ステップS1712否定)、上述したステップS1702に戻り、処理を繰り返す。
【0117】
[実施例1におけるクライアント端末とキャッシュサーバとデータベースサーバ間における処理]
図17は、実施例1におけるクライアント端末とキャッシュサーバとデータベースサーバと間における処理の流れの一例を示すシーケンス図である。具体的には、クライアント端末がデータ要求をキャッシュサーバ300に送信した場合における処理の流れを説明する。以下では、クライアント端末500がデータ要求をキャッシュサーバ300に送信した場合に、キャッシュサーバ300が、クライアント端末500から受信したデータ要求に含まれるキー情報により識別される属性情報を記憶していない場合を用いて説明する。
【0118】
図17に示すように、クライアント端末500は、送信タイミングとなると(ステップS1801肯定)、要求するデータを識別するキー情報を含むデータ要求をキャッシュサーバ300に送信する(ステップS1802)。例えば、クライアント端末500は、自装置が記憶しないデータを利用する場合に、キャッシュサーバ300にデータ要求を送信する。
【0119】
その後、キャッシュサーバ300のキャッシュ判定部321は、クライアント端末500からデータ要求を受信すると、受信したデータ要求に含まれるキー情報を取得し、取得したキー情報に対応付けられた属性情報をキャッシュ311にて検索する(ステップS1803)。
【0120】
ここで、キャッシュサーバ300のキャッシュ判定部321は、キー情報に対応付けられた属性情報がキャッシュ311に存在しない場合に、検索先状態DB312か閉塞状態「閉塞」となっていないデータベースサーバ名を検索する(ステップS1804)。そして、キャッシュ判定部321は、検索の結果得られた閉塞していないデータベースサーバ200に対して、データ要求に含まれるキー情報に対応する属性情報を要求するデータ検索要求を送信する(ステップS1805)。
【0121】
その後、データベースサーバ200のキャッシュ応答部221は、キャッシュサーバ300からデータ検索要求を受信すると、受信したデータ検索要求からキー情報を取得し、自装置のユーザ情報DB211から取得したキー情報に対応する属性情報を取得する(ステップS1806)。そして、キャッシュ応答部221は、データ検索要求に対する応答をキャッシュサーバ300に送信する(ステップS1807)。例えば、キャッシュ応答部221は、取得したキー情報に対応する属性情報が自装置のユーザ情報DB211に存在する場合には取得した属性情報をデータ応答として送信し、自装置のユーザ情報DB211に存在しない場合にはキー情報が存在しない旨をデータ応答として送信する。
【0122】
その後、キャッシュサーバ300の応答処理部323は、データ応答を受信すると、クライアント端末500からのデータ要求に対するデータ応答をクライアント端末500に送信する(ステップS1808)。例えば、応答処理部323は、キー情報が存在しない旨をクライアント端末500に送信したり、ユーザ情報DB211から取得された属性情報を送信したり、キャッシュ311から取得された属性情報をクライアント端末500に送信したりする。
【0123】
[実施例1におけるデータベースサーバのキャッシュ応答部による処理]
図18は、実施例1におけるデータベースサーバのキャッシュ応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、キャッシュ応答部221は、キャッシュサーバ300からデータ検索要求を受信するごとに、以下に説明する一連の処理を実行する。
【0124】
図18に示すように、キャッシュ応答部221は、キャッシュサーバ300からデータ検索要求を受信すると(ステップS1201肯定)、受信したデータ検索要求からキー情報を取得する(ステップS1202)。そして、キャッシュ応答部221は、自装置のユーザ情報DB211から、取得したキー情報に対応する属性情報を取得する(ステップS1203)。
【0125】
そして、キャッシュ応答部221は、取得したキー情報に対応する属性情報が自装置のユーザ情報DB211に存在する場合には(ステップS1204肯定)、ユーザ情報DB211から属性情報を取得してキャッシュサーバ300に応答する(ステップS1205)。一方、キャッシュ応答部221は、取得したキー情報に対応する属性情報が自装置のユーザ情報DB211に存在しない場合には(ステップS1204否定)、データ要求に含まれるキー情報が存在しない旨をキャッシュサーバ300に応答する(ステップS1206)。つまり、キャッシュ応答部221は、データ検索要求に対するデータ応答をキャッシュサーバ300に送信する。
【0126】
[実施例1におけるデータベースサーバのIR情報応答部による処理]
図19は、実施例1におけるデータベースサーバのIR情報応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、IR情報応答部222は、キャッシュサーバ300からIR情報要求を受信するごとに、以下に説明する一連の処理を実行する。
【0127】
図19に示すように、データベースサーバ200のIR情報応答部222は、IR情報要求を受信すると(ステップS1301肯定)、受信したIR情報要求に含まれる「キャッシュサーバ名」を取得する(ステップS1302)。つまり、IR情報要求の送信元となるキャッシュサーバ300のキャッシュサーバ名を取得する。
【0128】
そして、IR情報応答部222は、自装置のIR情報DB212から、取得した「キャッシュサーバ名」に対応付けられた「キー情報、更新ID」を取得する(ステップS1303)。つまり、IR情報応答部222は、IR情報要求の送信元となるキャッシュサーバ300を宛先とするIR情報を取得する。
【0129】
ここで、IR情報応答部222は、取得した「キャッシュサーバ名」に対応付けられた「キー情報、更新ID」が自装置のIR情報DB212に存在する場合には(ステップS1304肯定)、キャッシュサーバ名に対応付けられた「キー情報、更新ID」をキャッシュサーバ300に応答する(ステップS1305)。一方、IR情報応答部222は、取得した「キャッシュサーバ名」に対応付けられた「キー情報、更新ID」が存在しない場合には(ステップS1304否定)、「IR情報なし」を、キャッシュサーバ300に応答する(ステップS1306)。すなわち、IR情報応答部222は、IR情報要求に対して、IR情報応答をキャッシュサーバ300に送信する。
【0130】
すなわち、IR情報応答部222は、キャッシュサーバ300からIR情報要求を受信すると、IR情報要求の送信元を示すキャッシュサーバ名に対応付けられたIR情報がIR情報DB212に記憶されているか否かを判定する。そして、IR情報応答部222は、IR情報DB212に記憶されている場合には、「キャッシュサーバ名」に対応付けられたIR情報を取得してキャッシュサーバ300に応答する。ここで、IR情報に含まれる「キー情報」及び「更新ID」は、「キー情報」が自装置内で更新されており、その更新情報の配信状態が「更新ID」で参照できることを示す。また、IR情報応答部222は、IR情報DB212にIR情報が記憶されていない場合には、「IR情報なし」をキャッシュサーバ300に応答する。
【0131】
[実施例1におけるデータベースサーバの更新情報応答部による処理]
図20は、実施例1におけるデータベースサーバの更新情報応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、更新情報応答部223は、キャッシュサーバ300から更新情報要求を受信するごとに、以下に説明する一連の処理を実行する。
【0132】
図20に示すように、データベースサーバ200の更新情報応答部223は、キャッシュサーバ300から更新情報要求を受信すると(ステップS501肯定)、受信した更新情報要求に含まれる更新IDを取得する(ステップS502)。例えば、更新情報応答部223は、更新ID「I001」を取得する。
【0133】
そして、更新情報応答部223は、自装置の配信情報DB213から取得した、「更新ID」に対応付けられた「データベースサーバ名、更新結果」をすべて取得する(ステップS503)。例えば、更新情報応答部223は、更新ID「I001」に対応付けられたデータベースサーバ名と更新結果との組み合わせをすべて取得する。
【0134】
ここで、更新情報応答部223は、自装置の配信情報DB213に「更新ID」に対応付けられた「データベースサーバ名、更新結果」が存在する場合には(ステップS504肯定)、更新IDに対応付けられた「データベースサーバ名、更新結果」をキャッシュサーバ300に応答する(ステップS505)。一方、更新情報応答部223は、自装置の配信情報DB213に「更新ID」に対応付けられた「データベースサーバ名、更新結果」が存在しない場合には(ステップS504否定)、「更新情報なし」をキャッシュサーバ300に応答する(ステップS506)。すなわち、更新情報応答部223は、更新情報要求に対して、更新情報応答をキャッシュサーバ300に送信する。
【0135】
なお、ここで、更新情報応答部223により取得される、「データベースサーバ名」及び、「更新結果」は、それぞれ、キャッシュサーバ300がIR情報要求の結果取得したIR情報に対応する更新情報が、更新IDにより識別される更新が完了しているかをデータベースサーバ名ごとに示す。
【0136】
[実施例1におけるデータベースサーバの更新成否応答部による処理]
図21は、実施例1におけるデータベースサーバの更新成否応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、更新成否応答部224は、キャッシュサーバ300から更新成否要求情報を受信するごとに、以下に説明する一連の処理を実行する。
【0137】
図21に示すように、データベースサーバ200の更新成否応答部224は、キャッシュサーバ300から更新成否要求を受信すると(ステップS601肯定)、受信した更新成否要求に含まれるデータベースサーバ名を取得する(ステップS602)。例えば、更新成否応答部224は、データベースサーバ名「データベースサーバA」を取得する。
【0138】
そして、更新成否応答部224は、自装置の配信情報DB213から、更新成否要求から取得したデータベースサーバ名に対応する更新結果を取得する(ステップS603)。例えば、図5に示す例では、配信情報DB213が、データベースサーバ名「データベースサーバA」に対応付けて更新結果「OK」を記憶している。この場合、更新成否応答部224は、更新結果「OK」を取得する。
【0139】
つまり、更新成否応答部224は、キャッシュサーバ300から配信成否要求を受信すると、配信成否要求に含まれるデータベースサーバ名が、配信情報DB213に記憶されているか否かを判定する。そして、更新成否応答部224は、配信情報DB213に記憶されていると判定した場合には、「データベースサーバ名」に対応付けられた更新結果と更新IDとの組み合わせをすべて取得する。
【0140】
そして、更新成否応答部224は、取得した更新結果に基づいて更新成否結果を判定し(ステップS604)、判定結果となる更新成否結果をキャッシュサーバ300に応答する(ステップS605)。ここで、更新成否結果とは、データベースサーバ200において実行されている更新処理の状態を示す情報である。
【0141】
ここで、更新成否結果の判定について更に説明する。更新成否応答部224は、配信情報DB213の更新結果と更新成否結果とが対応付けられた更新成否結果対応表に基づいて、更新成否結果を判定する。
【0142】
図22は、実施例1における更新成否結果対応表の一例を示す図である。図22に示す例では、更新成否結果が、「登録正常」と「登録異常」と「登録待ち」とのうちいずれかである場合を例に示したが、これに限定されるものではなく、任意の更新成否結果を用いて良い。ここで、「登録正常」は、該当のデータベースサーバ200において、更新情報の登録が成功していることを示す。「登録異常」は、該当のデータベースサーバ200において、更新情報の登録が失敗していることを示す。「登録待ち」は、現在、データベースサーバ200間で更新情報の配信又は更新再伝播処理が行われており、該当のデータベースサーバ200において、今後、更新情報の登録が行われることを示す。
【0143】
図22に示すように、更新成否応答部224は、配信情報DB213から更新結果を取得すると、取得した更新結果に対応付けられた更新成否結果を更新成否結果対応表から取得し、判定結果とする。例えば、配信情報DB213から更新結果「OK」を取得した場合を用いて説明する。この場合、更新成否応答部224は、更新結果「OK」に対応付けられた更新成否結果「登録正常」を取得し、判定結果とする。
【0144】
すなわち、更新成否応答部224は、更新成否結果対応表を用いて、データベースサーバ名における「更新成否結果」を判定し、「登録正常」、「登録異常」、「登録待ち」のいずれかをキャッシュサーバ300に応答する。例えば、「配信情報DBの更新結果」が「レコードなし」である場合には、更新成否応答部224は、更新成否結果対応表における同一行にある更新成否結果「登録正常」を判定結果とする。
【0145】
[実施例1におけるデータベースサーバの装置状態応答部による処理]
図23は、実施例1におけるデータベースサーバの装置状態応答部による処理の一例を示すフローチャートである。以下に説明するように、装置状態応答部225は、監視サーバ400から装置状態要求を受信するごとに、以下に説明する一連の処理を実行する。
【0146】
図23に示すように、データベースサーバ200の装置状態応答部225は、監視サーバ400から装置状態要求を受信する(ステップS801肯定)、自装置の配信関連リソースの状態を確認する(ステップS802)。具体的には、装置状態応答部225は、自装置が、後述する更新情報配信部228や更新再伝播部229による処理が実行される際に用いられる各種プロセスやネットワークの状態等を確認する。
【0147】
そして、装置状態応答部225は、装置状態要求に対応する応答となる装置状態応答を送信し(ステップS803)、処理を終了する。例えば、装置状態応答部225は、確認した配信関連リソースの情報を装置状態応答として監視サーバ400に送信し、処理を終了する。
【0148】
[実施例1におけるデータベースサーバの装置状態格納部による処理]
図24は、実施例1におけるデータベースサーバの装置状態格納部による処理の流れの一例を示すフローチャートである。以下に説明するように、装置状態格納部226は、監視サーバ400から装置状態格納要求を受信するごとに、以下に説明する一連の処理を実行する。
【0149】
図24に示すように、データベースサーバ200の装置状態格納部226は、監視サーバ400からの装置状態格納要求を受信すると(ステップS901肯定)、受信した装置状態格納要求から、データベースサーバ200各々についての装置状態を取得し(ステップS902)、自装置の装置情報DB214に格納する(ステップS903)。
【0150】
例えば、装置状態格納部226は、データベースサーバ「A」の装置状態とデータベースサーバ「B」の装置状態とを監視サーバ400から受信し、受信した装置状態データベースサーバ名に対応付けて格納する。
【0151】
[実施例1におけるデータベースサーバの閉塞制御部による流れ]
図25は、実施例1におけるデータベースサーバの閉塞制御部による処理の流れの一例を示すフローチャートである。以下に説明するように、閉塞制御部227は、監視サーバ400から閉塞要求を受信するごとに、以下に説明する一連の処理を実行する。
【0152】
図25に示すように、閉塞制御部227は、監視サーバ400からの閉塞要求を受信すると(ステップS701肯定)、自装置がキャッシュサーバ300に提供する検索要求の遮断処理を行う(ステップS702)。つまり、閉塞制御部227は、キャッシュサーバとの間におけるデータの送受信を閉塞する。
【0153】
そして、閉塞制御部227は、遮断処理が成功した場合には(ステップS703肯定)、遮断成功を監視サーバ400に応答する(ステップS704)。一方、閉塞制御部227は、遮断処理が失敗した場合には(ステップS703否定)、閉塞制御部は227、遮断失敗を監視サーバ400に応答する(ステップS705)。そして、閉塞制御部は処理を終了する。
【0154】
すなわち、閉塞制御部227は、監視サーバ400から閉塞要求を受信すると、自装置が提供するキャッシュサーバ300からの要求をすべて遮断し、遮断の成否を監視サーバ400に応答する。
【0155】
[実施例1におけるデータベースサーバの更新情報配信部による処理]
図26は、実施例1におけるデータベースサーバの更新情報配信部による詳細な処理の流れの一例を示すフローチャートである。更新情報配信部228は、ユーザ情報DB211が更新される場合に、以下に説明する一連の処理を実行する。以下に説明する一連の処理は、図13を用いて説明した一連の処理において、更新指示を受け付けたデータベースサーバ「A」の更新情報配信部228が実行する処理となる。以下では、具体例をあげて説明する場合には、データベースサーバ「A」に対して更新指示があった場合を用いて説明する。
【0156】
図26に示すように、更新指示があると、データベースサーバ200の更新情報配信部228は、自装置が配信を行う装置であるかを判定する(ステップS301)。例えば、更新情報配信部228は、自装置が利用者から更新指示を受け付けた装置である場合には、配信を行う装置であると判定し、他のデータベースサーバ200から更新データを受け付けた装置である場合には、配信を行う装置ではないと判定する。なお、ここで、更新情報配信部228は、配信を行う装置でないと判定した場合には(ステップS301否定)、更新処理を継続することができないため、配信処理又は更新処理が失敗したことを示す登録失敗を応答し(ステップS310)、処理を終了する。
【0157】
ここで、更新情報配信部228は、配信を行う装置であると判定した場合には(ステップS301肯定)、更新データの配信順序を決定する(ステップS302)。具体的には、更新情報配信部228は、自装置の装置情報DB214からデータベースサーバ名に対応付けられた装置状態を取得し、装置状態「正常」に対応付けられたデータベースサーバ200の一覧を生成する。また、更新情報配信部228は、一覧の先頭が自装置となるように一覧を生成する。ここで、更新情報配信部228により生成された一覧が配信先となるデータベースサーバ200の一覧となり、一覧に記載されたデータベースサーバ200の並び順が配信順序となる。
【0158】
そして、更新情報配信部228は、更新IDの払い出しを行う(ステップS303)。更新IDはキャッシュ制御システムにおいて順序性を有する識別情報となる。例えば、更新情報配信部228は、配信時刻を更新IDとして払い出したり、配信情報に枝番号を付加した情報を更新IDとして払い出したりする。例えば、更新情報配信部228は、更新ID「I001」を払い出す。
【0159】
そして、更新情報配信部228は、配信先となるデータベースサーバ200に更新データを配信する(ステップS304)。つまり、更新情報配信部228は、装置状態「正常」に対応付けられたデータベースサーバ200の一覧のうち、未配信のデータベースサーバ200を配信順序に従って1つ選択し、選択したデータベースサーバ200に更新データを送信する。また、更新情報配信部228は、更新データとして、更新IDと、更新されたデータを識別するキー情報と、更新後のデータとを送信する。
【0160】
そして、更新情報配信部228は、配信が成功したかを判定し(ステップS305)、配信が成功したと判定した場合には(ステップS305肯定)、配信先となるデータベースサーバ200すべてについて配信を実行したかを判定する(ステップS307)。ここで、更新情報配信部228は、配信先となる全データベースサーバ200について配信を実行していないと判定した場合には(ステップS307否定)、ステップS304に戻り、処理を繰り返す。
【0161】
一方、更新情報配信部228は、配信を失敗したと判定した場合には(ステップS305否定)、配信先となったデータベースサーバ200が自装置であるか否かを判定する(ステップS306)。なお、自装置に対する配信が失敗する場合とは、例えば、自装置が故障しており、更新指示を正常に受信できなかった場合がある。ここで、更新情報配信部228は、配信先となったデータベースサーバ200が自装置であると判定した場合には(ステップS306肯定)、更新処理を継続することができないため、配信処理又は更新処理が失敗したことを示す登録失敗を応答し(ステップS310)、処理を終了する。
【0162】
一方、更新情報配信部228は、配信先となったデータベースサーバ200が自装置でないと判定した場合には(ステップS306否定)、上述したステップS307の処理を実行する。
【0163】
そして、上述したステップS307において、配信先となるデータベースサーバ200すべてについて配信を実行したと判定した場合には(ステップS307肯定)、更新情報配信部228は、更新IDに対応付けて、データベースサーバ200各々についての配信結果を更新IDに対応付けて配信情報DB213に格納する(ステップS308)。具体的には、更新情報配信部228は、配信が成功したデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて配信結果「OK」を格納し、配信が成功しなかったデータベースサーバ200についても、データベースサーバ名と更新ID「I001」とに対応付けて配信結果「未配信」を格納する。また、更新情報配信部228は、装置状態が正常ではなく、配信先とならなかったデータベースサーバ200についても、データベースサーバ名と更新ID「I001」とに対応付けて、配信結果「未配信」を格納する。
【0164】
ここで、更新情報配信部228は、データベースサーバ200各々についての配信結果を、全データベースサーバ200に格納する。すなわち、全データベースサーバ200の配信情報DB213に、データベースサーバ200各々についての配信結果が格納される。なお、例えば、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」の配信情報DB213に直接格納しても良く、データベースサーバ「B」とデータを送受信することで、データベースサーバ「B」にデータベースサーバ「B」の配信情報DB213に格納させるようにしても良い。
【0165】
そして、更新情報配信部228は、配信情報DB213の配信結果が「OK」のデータベースサーバ名を取得する(ステップS311)。また、ここで、更新情報配信部228は、取得したデータベースサーバ名の一覧を作成し、作成した一覧の先頭が自装置となるようにする。
【0166】
そして、更新情報配信部228は、配信結果が「OK」となっているデータベースサーバ200を1つ選択し、選択したデータベースサーバ200のユーザ情報DB211を更新する(ステップS312)。具体的には、更新情報配信部228は、ユーザ情報DB211に記憶されたデータのうち、予め配信された更新データに含まれるキー情報により識別されるデータを、予め配信された更新データに含まれる更新後のデータに更新する。
【0167】
また、ここで、各データベースサーバ200では、更新情報配信部228が、データベースサーバ200のユーザ情報DB211のデータが更新されると、IR情報を生成し、自装置のデータベースサーバ200のIR情報DB212に格納する。すなわち、更新情報配信部228は、更新データに含まれる更新IDとキー情報とを対応付けて、IR情報DB212に格納する。また、ここで、更新情報配信部228は、データベースサーバ200と接続された複数あるキャッシュサーバ300のキャッシュサーバ名各々に対応付けて、IR情報を格納する。
【0168】
なお、例えば、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」のユーザ情報DB211を直接更新しても良く、データベースサーバ「B」の更新情報配信部228にユーザ情報DB211を更新させるようにしても良い。また、同様に、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」のIR情報DB212にIR情報を直接格納しても良く、データベースサーバ「B」の更新情報配信部228にIR情報を格納させても良い。
【0169】
そして、更新情報配信部228は、更新が成功したか否かを判定する(ステップS313)。ここで、更新情報配信部228は、更新が成功したと判定した場合には(ステップS313肯定)、更新が成功したデータベースサーバ名に対応付けて、更新結果「OK」を格納する(ステップS316)。
【0170】
一方、更新情報配信部228は、更新が成功したと判定しなかった場合には(ステップS313否定)、更新先となったデータベースサーバ200が自装置であるか否かを判定する(ステップS314)。ここで、更新情報配信部228は、更新先となったデータベースサーバ200が自装置であると判定した場合には(ステップS314肯定)、更新処理を継続することができないため、配信情報DB213から処理対象となった更新IDを含む行を削除し(ステップS309)、配信処理又は更新処理が失敗したことを示す登録失敗を応答し(ステップS310)、処理を終了する。また、ここで、更新情報配信部228は、更新先となったデータベースサーバ200が自装置でないと判定した場合には(ステップS314否定)、更新が成功しなかったデータベースサーバ名に対応付けて、更新結果「NG」を格納する(ステップS315)。
【0171】
ここで、更新情報配信部228は、データベースサーバ200各々についての更新結果を、全データベースサーバ200に格納する。すなわち、全データベースサーバ200の配信情報DB213に、データベースサーバ200各々についての更新結果が格納される。なお、例えば、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」の配信情報DB213に直接格納しても良く、データベースサーバ「B」とデータを送受信することで、データベースサーバ「B」にデータベースサーバ「B」の配信情報DB213に格納させるようにしても良い。
【0172】
そして、更新情報配信部228は、更新先となる全データベースサーバ200について更新を実行したかを判定する(ステップS317)。ここで、更新情報配信部228は、更新先となるデータベースサーバ200すべてについて更新を実行していないと判定した場合には(ステップS317否定)、ステップS312に戻り、処理を繰り返す。一方、更新情報配信部228は、更新先となるデータベースサーバ200すべてについて更新を実行したと判定した場合には(ステップS317肯定)、更新処理が終了したことを示す登録成功応答を行い(ステップS318)、処理を終了する。
【0173】
[実施例1におけるデータベースサーバの更新再伝播部による処理]
図27は、実施例1におけるデータベースサーバの更新再伝播部による処理の流れの一例を示すフローチャートである。以下に説明するように、更新情報配信部228により配信が行われなかったデータベースサーバ200に対して、更新データを送信する。
【0174】
すなわち、以下に説明するように、更新再伝播部229は、故障などにより、更新情報配信部228で更新データの配信がなされなかったデータベースサーバ200や更新が行われなかったデータベースサーバ200に対して、更新データを配信したり、更新を実行したりする。なお、更新再伝播部229は、以下に説明する処理を定期的に実行したり、不定期に実行したりする。
【0175】
図27に示すように、データベースサーバ200の更新再伝播部229は、再伝播処理を開始すると、自データベースサーバ200が配信装置であるか否かを判定する(ステップS401)。ここで、更新再伝播部229は、配信装置であると判定した場合には(ステップS401肯定)、配信情報DB213から自装置の更新結果が「OK」以外の更新IDを取得する(ステップS402)。
【0176】
ここで、更新再伝播部229は、更新IDが存在する場合に(ステップS403肯定)、更新IDに対応する更新データを用いて、更新対象となるデータベースサーバ200のデータを更新する(ステップS404)。
【0177】
そして、更新再伝播部229は、更新対象となるデータベースサーバ200の更新が成功した場合には(ステップS405肯定)、更新が成功したデータベースサーバ名に対応付けて更新結果「OK」を配信情報DB213に格納する(ステップS407)。
【0178】
そして、更新再伝播部229は、未処理の更新IDが存在するかを判定し(ステップS408)、すべての更新ID分の処理が終わっていると判定した場合には(ステップS408否定)、自装置以外のデータベースサーバ200の一覧を作成する(ステップS409)。
【0179】
一方、ステップS408に戻り、更新再伝播部229は、未処理の更新IDが存在すると判定した場合には(ステップS408肯定)、ステップS404に戻り、処理を繰り返す。
【0180】
また、ステップS405に戻り、更新再伝播部229は、更新が失敗した場合(ステップS405否定)、配信情報DB213の対象データベースサーバ名に対応する更新結果欄に更新結果「NG」を格納し(ステップS406)、ステップS409以降の処理を継続する。また、ステップS403に戻り、更新IDが存在しない場合には(ステップS403否定)、更新再伝播部229は、ステップS409以降の処理を継続する。
【0181】
次に、ステップS409以降の処理を説明する。以下に説明するように、更新再伝播部229は、装置以外のデータベースサーバ200の一覧から、データベースサーバ200ごとに、該当のデータベースサーバ200の配信結果が「OK」以外の結果が格納されている行の更新IDを配信情報DB213から取得して、更新データを配信する処理や更新を実行する。
【0182】
ステップS409に示すように、更新再伝播部229は、検索順序を任意の手法にて決定する(ステップS409)。そして、更新再伝播部229は、検索順序に従って選択された、1つデータベースサーバ200について、配信結果が「OK」以外の結果が格納されている行の更新IDを取得する(ステップS410)。例えば、配信装置となるデータベースサーバ200がデータベースサーバ「A」であり、データベースサーバ「B」を選択した場合を用いて説明する。この場合、データベースサーバ「A」の更新再伝播部229は、自装置の配信情報DB213を参照し、データベースサーバ名「データベースサーバB」に対応付けられた更新IDのうち、配信結果「OK」以外に対応付けられた更新IDを取得する。
【0183】
ここで、更新再伝播部229は、更新IDが存在する場合(ステップS411肯定)、取得した更新IDについての更新データを対象となるデータベースサーバ200に配信し、配信結果を配信情報DB213に格納する(ステップS412)。つまり、更新再伝播部229は、配信が成功した場合には配信結果「OK」を格納し、配信が成功しなかった場合には配信結果「未配信」を格納する。
【0184】
そして、更新再伝播部229は、ステップS410で取得した更新IDをすべて処理したかを判定し(ステップS413)、処理していないと判定した場合(ステップS413否定)、ステップS412に戻り、処理を繰り返す。一方、更新再伝播部229は、すべて処理したと判定した場合には(ステップS413肯定)、ステップS414以降の処理を実施する。また、ステップS411で、そもそも更新IDがなかった場合にも(ステップS411否定)、ステップS414以降の処理を実施する。
【0185】
そして、更新再伝播部229は、配信情報DB213から、処理対象となるデータベースサーバ200の更新結果が、「OK」以外の更新IDを取得する(ステップS414)。例えば、配信装置となるデータベースサーバ200がデータベースサーバ「A」であり、データベースサーバ「B」を選択した場合を用いて説明する。この場合、データベースサーバ「A」の更新再伝播部229は、自装置の配信情報DB213を参照し、データベースサーバ名「データベースサーバB」に対応付けられた更新IDのうち、更新結果「OK」以外に対応付けられた更新IDを取得する。
【0186】
ここで、更新再伝播部229は、更新IDが存在する場合(ステップS415肯定)、更新IDに対応する配信済みの更新データを用いて、処理対象となるデータベースサーバ200のユーザ情報DB211を更新する(ステップS416)。また、更新再伝播部229は、更新が成功した場合には(ステップS417肯定)、処理対象となった更新IDと処理対象となったデータベースサーバ名とに対応付けて、更新結果「OK」を配信情報DB213に格納する(ステップS418)。一方、更新再伝播部229は、更新が成功しなかった場合には(ステップS417否定)、処理対象となった更新IDと処理対象となったデータベースサーバ名とに対応付けて、更新結果「NG」を配信情報DB213に格納する(ステップS420)。
【0187】
そして、更新再伝播部229は、まだ処理すべき更新IDが残っている場合には(ステップS419否定)、ステップS416に戻り、処理を繰り返す。一方、更新再伝播部229は、すべての更新IDを処理した場合には(ステップS419肯定)、すべてのデータベースサーバ200について処理を実行したかを判定する(ステップS421)。ここで、処理を実行したと判定した場合には(ステップS421肯定)、処理を終了する。一方、更新再伝播部229は、処理を実行していない判定した場合には(ステップS421否定)、ステップS410に戻り、検索順序に従って次のデータベースサーバ200を選択して処理を繰り返す。
【0188】
[実施例1におけるキャッシュサーバのキャッシュ判定部による処理]
図28は、実施例1におけるキャッシュサーバのキャッシュ判定部による処理の流れの一例を示すフローチャートである。以下に説明するように、キャッシュサーバ300のキャッシュ判定部321は、クライアント端末500からデータ要求を受信するごとに、図28に示す一連の処理を実行する。すなわち、クライアント端末500が要求するデータのキー情報を含むデータ要求をキャッシュサーバ300に送信するごとに、以下に説明する処理が実行される。
【0189】
図28に示すように、キャッシュサーバ300のキャッシュ判定部321は、クライアント端末500からデータ要求を受信すると(ステップS101肯定)、受信したデータ要求に含まれるキー情報を取得し、取得したキー情報に対応付けられた属性情報をキャッシュ311にて検索する(ステップS102)。
【0190】
ここで、キャッシュ判定部321は、キー情報に対応付けられた属性情報がキャッシュ311に存在する場合には(ステップS103肯定)、キャッシュ311に記憶されていた属性情報を応答処理部323に出力する(ステップS104)。
【0191】
例えば、データ要求にキー情報「U001」が含まれる場合を用いて説明する。この場合、キャッシュ判定部321は、キー情報「U001」に対応付けられた属性情報をキャッシュ311にて検索する。ここで、例えば、キー情報「U001」と属性情報「P001」を対応付けてキャッシュ311が記憶していた場合には、キャッシュ判定部321は、属性情報「P001」をキャッシュ311から取得し、応答処理部323に出力する。
【0192】
一方、ステップS103に戻り、キャッシュ判定部321は、キー情報に対応付けられた属性情報がキャッシュ311に存在しない場合には(ステップS103否定)、検索先状態DB312から閉塞状態「閉塞」となっていないデータベースサーバ名を検索する(ステップS105)。すなわち、キャッシュ判定部321は、自装置内の検索先状態DB312を参照することで、閉塞状態「閉塞」となっていないデータベースサーバ200を検索する。
【0193】
ここで、キャッシュ判定部321は、データベースサーバ200の閉塞状態がすべて「閉塞」となっていた場合には(ステップS106肯定)、検索失敗を応答処理部323に出力する(ステップS111)。つまり、この場合、キャッシュサーバ300が自装置のキャッシュ311にないデータを要求する要求先となるデータベースサーバ200がなく、データベースサーバ200からデータを取得してクライアント端末500に送信することができない。このことを踏まえ、キャッシュ判定部321は、検索失敗を応答処理部323に出力する。
【0194】
一方、キャッシュ判定部321は、データベースサーバ200の閉塞状態がすべて「閉塞」となっていない場合には(ステップS106否定)、未閉塞なデータベースサーバ200のいずれかを選択し、データ要求に含まれるキー情報に対応する属性情報を要求するデータ検索要求を選択した未閉塞なデータベースサーバ200に送信する(ステップS107)。
【0195】
すなわち、キャッシュ311に属性情報が記憶されていない場合、例えば、キャッシュ判定部321は、データ要求に含まれていたキー情報「U001」に対応する属性情報を要求するデータ検索要求を送信する。ここで、送信先となるデータベースサーバ200は、図9に示す例では、閉塞状態「未閉塞」に対応付けられたデータベースサーバ「A」又はデータベースサーバ「B」となる。
【0196】
そして、キャッシュ判定部321は、データベースサーバ200からのデータ検索要求に対する応答を受信する(ステップS108)。ここで、キャッシュ判定部321は、検索結果がありの場合には(ステップS109肯定)、キャッシュ311にデータを格納し(ステップS110)、属性情報をクライアント端末500に出力する。一方、キャッシュ判定部321は、検索結果がなしの場合には(ステップS109否定)、つまり、データ要求に含まれるキー情報が存在しない旨を応答処理部323に出力する(ステップS112)。
【0197】
[実施例1におけるキャッシュサーバのIR情報判定部による処理]
図29は、実施例1におけるキャッシュサーバのIR情報判定部による処理の流れの一例を示すフローチャートである。以下では、キャッシュサーバ300が検索先状態DB312を更新する際に実行される処理と、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する処理とを連続して実行する場合を用いて説明するキャッシュサーバ300のIR情報判定部322は、以下に説明する一連の処理を、定期的に実行したり、不定期にて実行したりする。
【0198】
図29に示すように、キャッシュサーバ300のIR情報判定部322は、IR情報の検索先となるデータベースサーバ200の検索順序を決定する(ステップS201)。ここで、IR情報の検索先となるデータベースサーバ200各々は、キャッシュサーバ300各々の検索先状態DB312に記憶されたデータベースサーバ名により識別されるデータベースサーバ200各々となる。すなわち、IR情報判定部322は、更新処理が正常に行われていないデータベースサーバ200からIR情報を取得することができないことを踏まえ、IR情報の検索先となるデータベースサーバ200各々について、更新処理の状況を検索する。
【0199】
図29の説明に戻る。そして、IR情報判定部322は、データベースサーバ200に対して、検索先となるデータベースサーバ名を含む更新成否情報検索要求を送信する(ステップS202)。検索先となるデータベースサーバ200がデータベースサーバ「A」である場合を用いて説明する。この場合、IR情報判定部322は、任意のデータベースサーバ200に対して、データベースサーバ名「データベースサーバA」を含む更新成否要求を送信する。
【0200】
そして、IR情報判定部322は、データベースサーバ200から更新成否結果を受信し(ステップS203)、受信した更新成否結果に基づいて、データベースサーバ200の更新登録状態を判定する(ステップS204)。
【0201】
ここで、IR情報判定部322による更新登録状態判定処理について更に説明する。具体的には、IR情報判定部322は、受信した更新成否結果と、前回の更新登録状態判定結果とに基づいて、今回の更新登録状態を判定する。例えば、IR情報判定部322は、更新成否結果と前回の更新登録状態判定結果と今回の更新登録状態とが対応付けられた更新登録状態対応表に基づいて、更新登録状態を判定する。また、IR情報判定部322は、判定結果となる更新登録状態を更新登録状態DB313に格納する。
【0202】
図30は、実施例1における更新登録状態対応表の一例を示す図である。図30に示す例では、更新登録状態が、「正常」と「伝播異常検出」と「伝播異常」と「正常移行中」とのうちいずれかである場合を例に示したが、これに限定されるものではなく、任意の更新登録状態を用いて良い。
【0203】
図30に示すように、IR情報判定部322は、更新成否結果を受信すると、前回の更新登録状態と受信した更新成否結果とを検索キーとして、更新登録状態対応表から更新登録状態を取得し、今回の更新登録状態とする。例えば、更新結果「登録正常」を受信した場合を用いて説明する。また、更新登録状態DB313に記憶された前回の更新登録状態が「伝播異常」である場合を用いて説明する。この場合、IR情報判定部322は、更新結果「登録正常」と前回の更新登録状態「任意」とを検索キーとして、更新登録状態対応表から更新登録状態「正常」を取得し、今回の更新登録状態とする。
【0204】
そして、IR情報判定部322は、更新登録状態が「正常」以外であるかを判定する(ステップS205)。ここで、IR情報判定部322は、更新登録状態が「正常」であると判定した場合には(ステップS205否定)、自装置の検索先状態DB312に対して、IR情報の検索先となるデータベースサーバ200のデータベースサーバ名に対応付けて閉塞状態「未閉塞」を格納する(ステップS207)。一方、IR情報判定部322は、更新登録状態が「正常」以外であると判定した場合には(ステップS205肯定)、自装置の検索先状態DB312に対して、IR情報の検索先となるデータベースサーバ200のデータベースサーバ名に対応付けて閉塞状態「閉塞」を格納する(ステップS206)。
【0205】
そして、IR情報判定部322は、すべてのデータベースサーバ200各々について処理を実行したかを判定し(ステップS208)、実行していないと判定した場合には(ステップS208否定)、検索順序が次のデータベースサーバ200を決定し、上述したステップS202に戻り、処理を繰り返す。
【0206】
そして、すべてのデータベースサーバ200各々について処理を実行したと判定した場合には(ステップS208肯定)、IR情報判定部322は、データベースサーバ200各々について、IR情報を検索する検索順序を任意の手法にて決定する(ステップS210)。
【0207】
そして、IR情報判定部322は、データベースサーバ200に対して、自キャッシュサーバ名を含むIR情報要求を送信する(ステップS211)。例えば、キャッシュサーバ「A」は、キャッシュサーバ名「キャッシュサーバA」を含むIR情報要求を送信する。
【0208】
そして、IR情報判定部322は、データベースサーバ200からの検索結果を受信すると(ステップS212)、受信した検索結果にIR情報が存在する否かを判定する(ステップS213)。ここで、IR情報判定部322は、IR情報が存在すると判定した場合には(ステップS213肯定)、IR情報に含まれる更新IDをキーとする更新情報要求を送信する(ステップS214)。例えば、IR情報として、キー情報「U001」と更新ID「I001」とを受信した場合を用いて説明する。この場合、IR情報判定部322は、更新ID「I001」を含む更新情報要求を送信する。すなわち、IR情報判定部322は、更新IDにより識別される更新について、データベースサーバ200各々について更新が行われたか否かを示す情報を取得する。言い換えると、IR情報判定部322は、受信したIR情報に含まれる更新IDにより識別される更新についての更新結果を、IR情報の取得先となるデータベースサーバ200すべてについて取得する。
【0209】
そして、IR情報判定部322は、更新IDに対応した更新結果をデータベースサーバ200から受信すると(ステップS215)、自装置の更新登録状態DB313にデータベースサーバ200各々について記憶された更新登録状態と、受信した更新結果とに基づいて、IR情報を削除するかを判定するIR情報削除判定処理を実行する(ステップS216)。
【0210】
例えば、IR情報判定部322は、各データベースサーバ200の更新登録状態の組み合わせごとに、IR情報が削除可能となる条件が対応付けられたIR情報削除対象判定表に基づいて、IR情報削除判定処理を実行する。図31は、実施例1におけるIR情報削除対象判定表の一例を示す図である。図31に示す例では、IR情報の取得先となるデータベースサーバ200が「2つ」である場合を用いて説明する。すなわち、例えば、IR情報判定部322は、自装置の更新登録状態DB313からデータベースサーバ各々についての更新登録状態をすべて取得する。そして、IR情報判定部322は、取得した更新登録状態各々をIR情報削除対象判定表にあてはめ、削除可能となるIR情報を判定する。
【0211】
図31に示す例では、IR情報削除対象判定表は、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」と「IR情報削除非対象データベースサーバ(サーバ2)の更新登録状態」との組み合わせに対応付けて、「IR情報削除対象となる更新IDの状態」を記憶する。
【0212】
ここで、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」は、IR情報を削除するか否かが判定される対象となるデータベースサーバ200を示す。例えば、上述したステップS211において、IR情報要求を送信した送信先となるデータベースサーバ200が該当する。以下では、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」は、データベースサーバ「A」であるものとして説明する。
【0213】
「IR情報削除非対象データベースサーバ(サーバ2)の更新登録状態」は、複数あるデータベースサーバ200のうち、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」を除いた他のデータベースサーバ200を示す。例えば、更新登録状態DB313にデータベースサーバ名が記憶されたデータベースサーバ200から、データベースサーバ「A」を除いた全データベースサーバ200各々が該当する。以下では、「IR情報削除非対象データベースサーバ(サーバ2)の更新登録状態」は、データベースサーバ「B」1つである場合を用いて説明する。
【0214】
「IR情報削除対象となる更新IDの状態」は、IR情報が削除可能となる条件を示す。具体的には、「(サーバ1)(サーバ2)ともOK」は、(サーバ1)と(サーバ2)とにおいて共に更新結果「OK」となっている更新IDを含むIR情報が削除可能となることを示す。また、「(サーバ1)がOK」は、(サーバ1)にて更新結果「OK」となっている更新IDを含むIR情報が削除可能となることを示す。なお、ここで、IR情報が削除される対象となるデータベースサーバ200は、「IR情報削除対象データベースサーバ(サーバ1)」となる。
【0215】
ここで、データベースサーバ「A」の更新登録状態が「正常」であり、データベースサーバ「B」の更新登録状態が「正常」である場合を用いて説明する。この場合、IR情報判定部322は、IR情報削除対象データベースサーバ(サーバ2)の更新登録状態「正常」と、IR情報削除非対象データベースサーバ(サーバ2)の更新登録状態「正常」との組み合わせに対応付けられた「IR情報削除対象となる更新IDの状態」を取得する。図31に示す例では、IR情報判定部322は、IR情報削除対象となる更新IDの状態「(サーバ1)(サーバ2)ともOK」を取得する。この場合、「(サーバ1)(サーバ2)ともOK」が、IR情報が削除可能であるための条件となる。つまり、データベースサーバ「A」にて更新結果が「OK」となっており、データベースサーバ「B」にて更新結果が「OK」となっている更新IDについて、データベースサーバ「A」からIR情報を削除しても良いと判定する。そして、IR情報判定部322は、そして、得られた条件となる「(サーバ1)(サーバ2)ともOK」を、データベースサーバ200から受信した更新結果応答に含まれる「データベースサーバ名、更新結果」と照合し、条件に合致するIR情報について削除可能であると判定する。
【0216】
詳細な一例をあげて説明する。例えば、データベースサーバ「A」の「更新登録状態」が「正常」である場合を用いて説明する。また、例えば、データベースサーバ「B」の「更新登録状態」が「正常」である場合を用いて説明する。また、例えば、更新情報応答に含まれる「サーバ名、更新結果」が、それぞれ、「データベースサーバ「A」、OK」、「データベースサーバ「B」、OK」である場合を用いて説明する。この場合、IR情報判定部322は、IR情報削除対象判定表から「(サーバ1)(サーバ2)ともOK」というIR情報削除可能条件を取得する。ここで、(サーバ1)はデータベースサーバ「A」であり、(サーバ2)はデータベースサーバ「B」であるので、IR情報削除対象判定表は、IR情報は削除可能であると判定する。
【0217】
また、詳細な一例をあげて説明する。例えば、データベースサーバ「A」の「更新登録状態」が「正常」である場合を用いて説明する。また、例えば、データベースサーバ「B」の「更新登録状態」が「伝播異常検出」である場合を用いて説明する。また、例えば、更新情報応答に含まれる「サーバ名、更新結果」が、それぞれ、「データベースサーバ「A」、OK」、「データベースサーバ「B」、NG」である場合を用いて説明する。この場合、IR情報判定部322は、IR情報削除対象判定表から「(サーバ1)(サーバ2)がOK」というIR情報削除可能条件を取得する。この結果、IR情報判定部322は、IR情報は削除不可能という判定する。
【0218】
すなわち、IR情報判定部322は、データベースサーバ200から、配信情報DB213に記憶された複数あるデータベースサーバ各々についての更新結果を取得する。そして、IR情報判定部322は、取得した更新結果各々に基づいて、複数あるデータベースサーバすべてについて更新が終了したか否かを更新IDごとに判定し、更新が終了したと判定した更新IDについて、IR情報を削除して良いと判定し、更新が終了したと判定しなかった更新IDについて、IR情報を削除しないと判定する。
【0219】
より詳細には、IR情報判定部322は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ各々について判定する。そして、IR情報判定部322は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合にはIR情報を削除して良いと判定し、更新が終了していないと判定した場合にはIR情報を削除しないと判定する。
【0220】
図29の説明に戻る。IR情報判定部322は、IR情報削除判定処理の結果、IR情報は削除可能であると判定した場合には(ステップS217肯定)、削除しても良いと判定したIR情報に含まれるキー情報により識別されるデータを、キャッシュ311から削除する。例えば、IR情報判定部322は、削除しても良いと判定したIR情報に含まれるキー情報により識別される属性情報と、削除しても良いと判定したIR情報に含まれるキー情報自体とをキャッシュ311から削除する(ステップS218)。
【0221】
すなわち、IR情報判定部322は、IR情報が削除可能である場合、IR情報の「キー情報」を用い、自装置のキャッシュ311に該当するキー情報が存在する場合には、該当の「キー情報」と、キー情報に対応付けられた「属性情報」とを削除することで、キャッシュ311の最新化を行う。
【0222】
そして、IR情報判定部322は、選択したデータベースサーバ200へIR情報削除要求を送信する(ステップS219)。すなわち、例えば、IR情報判定部322は、データベースサーバ「A」に対して、削除対象となるIR情報についての更新IDを含むIR情報削除要求を送信することで、データベースサーバ「A」にIR情報を削除させる。
【0223】
そして、IR情報判定部322は、IR情報の取得先となるデータベースサーバ200すべてについて処理を実行したか否かを判定し(ステップS220)、実行したと判定した場合には(ステップS220肯定)、処理を終了する。一方、IR情報判定部322は、実行していないと判定した場合には(ステップS220否定)、次に検索するデータベースサーバをステップS210にて決定した検索順序に従って決定し(ステップS221)、上述したステップS211に戻り、処理を繰り返す。
【0224】
すなわち、IR情報判定部322は、閉塞されていないデータベースサーバ200各々からIR情報を取得し、上述したステップS212からステップS219までの処理を繰り返す。
【0225】
なお、ステップS213において、IR情報が存在しない場合には(ステップS213否定)、IR情報判定部322は、IR削除判定処理を実行することなく、上述したステップS220以降の処理を実行する。また、ステップS217において、IR情報が削除可能でない場合には(ステップS217否定)、IR情報判定部322は、IR情報を削除する処理を行うことなく、上述したステップS220以降の処理を実行する。
【0226】
なお、上述したステップS210において、IR情報判定部322は、閉塞状態「未閉塞」が格納されたデータベースサーバ200各々について、IR情報を検索する検索順序を任意の手法にて決定しても良い。言い換えると、閉塞状態「閉塞」が格納されたデータベースサーバ200各々については、IR情報を検索する検索先としなくても良い。
【0227】
[実施例1におけるキャッシュサーバの応答処理部による流れ]
図32は、実施例1におけるキャッシュサーバの応答処理部による流れの一例を示すフローチャートである。以下に説明するように、応答処理部323は、クライアント端末500に対してデータ要求に対する応答を送信する際に、以下の処理を実行する。
【0228】
図32に示すように、応答処理部323は、キャッシュ判定部321から応答情報が入力されると(ステップS1001肯定)、キャッシュ判定部321から指定された「キー情報、属性情報」、「キー情報なし」、「検索失敗」をもとに、クライアント端末500への応答情報を組み立てる(ステップS1002)。そして、応答処理部323は、組み立てた応答情報をクライアント端末500に送信する(ステップS1003)。すなわち、応答処理部323は、キャッシュ判定部321によって入力された情報を応答情報としてクライアント端末500に送信する。
【0229】
[実施例1における監視サーバの故障判定部による処理]
図33は、実施例1における監視サーバの故障判定部による処理の流れの一例を示すフローチャートである。故障判定部421は、図33を用いて説明する一連の処理を定期的に実行したり、不定期に実行したりする。
【0230】
図33に示すように、故障判定部421は、自装置の装置情報DB411から、データベースサーバ名の一覧を取得し、処理順序を決定する(ステップS1101)。例えば、故障判定部421は、取得した一覧に記載された順番を処理順序として決定する。
【0231】
そして、故障判定部421は、データベースサーバ200に装置状態要求を送信する(ステップS1102)。例えば、故障判定部421は、一覧の最初に記載されたデータベースサーバ200に対して装置状態要求を送信する。
【0232】
その後、故障判定部421は、データベースサーバ200から装置状態応答を受信する処理を実行し(ステップS1103)、装置状態応答が受信したかを判定する(ステップS1004)。ここで、故障判定部421は、装置状態応答を受信したと判定した場合には(ステップS1104肯定)、受信した装置情報を用いて、予め設定された判定基準に基づいて故障判定を実行する(ステップS1105)。すなわち、例えば、故障判定部421は、データベースサーバ200の配信関連リソースの状態を示す情報を受信すると、受信した情報に基づいて故障判定を実行する。なお、故障判定部421による判定処理においては、任意の判定基準を用いて、任意の手法を用いて実行して良い。
【0233】
そして、故障判定部421は、装置状態の判定結果が正常である場合には(ステップS1106肯定)、装置情報DB411に記憶された装置状態のうち、処理対象となったデータベースサーバ200のデータベースサーバ名に対応付けられた装置状態を、装置状態「正常」に更新する(ステップS1107)。
【0234】
そして、故障判定部421は、全データベースサーバ200について処理を行った場合には(ステップS1110否定)、データベースサーバ名の一覧から次のデータベースサーバ200を選択し(ステップS1112)、ステップS1102に戻って処理を繰り返す。一方、故障判定部421は、全データベースサーバ200分の処理を行っていない場合には(ステップS1110肯定)、各データベースサーバ200各々についての判定結果となる装置状態を格納する旨の装置状態格納要求をデータベースサーバ200各々に送信し(ステップS1111)、処理を終了する。
【0235】
一方、上述したステップS1104に戻り、装置状態応答を受信しなかったと判定した場合(ステップS1104否定)や、装置状態の判定結果が正常ではなかった場合(ステップS1106否定)について説明する。この場合、故障判定部421は、装置情報DB411に記憶された装置状態のうち、処理対象となったデータベースサーバ200のデータベースサーバ名に対応付けられた装置状態を、装置状態「故障」に更新する(ステップS1108)。そして、故障判定部421は、処理対象となったデータベースサーバ200に、キャッシュサーバ300との間におけるデータの送受信を閉塞する旨の閉塞要求を送信することで、キャッシュサーバ300を閉塞する(ステップS1109)。そして、上述したステップS1110以降の処理を実行する。
【0236】
なお、故障判定部421は、一度閉塞要求を送信した後に、データベースサーバ200にて遮断処理が失敗すると、例えば、再度閉塞要求を送信し、成功するまで繰り返す。ただし、これに限定されるものではなく、成功するまで繰り返さなくても良い。例えば、故障判定部421は、所定の回数閉塞要求を送信した後に、エラーとして処理を終了しても良い。すなわち、閉塞が失敗した場合には、何らかの想定外の故障が存在することが想定されることを踏まえ、繰り返しを一切行わなくても良く、所定回数以上繰り返しを行わなくても良い。
【0237】
[実施例1の効果]
上述したように、実施例1によれば、キャッシュ制御システムでは、データベースサーバ各々は、自データベースサーバのデータが更新される場合に、更新されるデータを識別するキー情報を含むIR情報を複数あるキャッシュサーバ300を識別するキャッシュサーバ名に対応付けてIR情報DB212に格納する。また、キャッシュサーバ300各々は、複数あるデータベースサーバ200各々から、IR情報DB212に自キャッシュサーバを識別するキャッシュサーバ名に対応付けて格納されたIR情報を取得する。そして、キャッシュサーバ300は、取得したIR情報により識別されるデータのキャッシュを無効にする。この結果、1つでも正常なデータベースサーバ200があれば、キャッシュサーバ300に記憶された更新前のデータを無効化可能である。
【0238】
また、実施例1によれば、キャッシュ制御システムでは、複数あるデータベースサーバ200各々は、複数あるデータベースサーバ200各々について、データの更新が終了したか否かを示す更新結果を記憶する配信情報DB213を有する。また、キャッシュサーバ300各々は、データベースサーバ200から、配信情報DB213に記憶された複数あるデータベースサーバ200各々についての更新結果を取得する。そして、キャッシュサーバ300各々は、取得した更新結果各々に基づいて、複数あるデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、取得したIR情報をIR情報DB212から削除する削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。この結果、データベースサーバ200とキャッシュサーバ300とを一致させることが可能である。例えば、更新済みのデータベースサーバが1台でも残っていれば、キャッシュデータに古いデータが有効なまま残るのを防止可能である。
【0239】
すなわち、キャッシュサーバが、データベースサーバ各々からIR情報を取得し、IR情報を取得すると直ちにデータベースサーバからIR情報を削除する場合を用いて説明する。また、データベースサーバ「1」とデータベースサーバ「2」とがある場合を用いて説明する。また、データベースサーバ「1」に更新が行われてIR情報が生成された場合を用いて説明する。ここで、キャッシュサーバは、データベースサーバ「1」及びデータベースサーバ「2」に対してIR情報を要求すると、データベースサーバ「1」からIR情報を取得する。そして、キャッシュサーバは、IR情報に基づいて自キャッシュの古いデータを削除し、データベースサーバ「1」からIR情報を削除する。ここで、データベースサーバ「1」に対する更新がデータベースサーバ「2」に対して反映される前に、データベースサーバ「1」に故障が発生するとする。そうすると、キャッシュサーバは、クライアント端末からデータ要求を受信すると、古いデータを削除しており、データベースサーバにデータを要求する。ここで、データベースサーバ「1」は故障しており、キャッシュサーバは、データベースサーバ「2」にデータを要求することになる。ここで、データベースサーバ「2」には、更新が反映されておらず、IR情報についてもデータベースサーバ「1」から削除されている。この結果、キャッシュサーバは、データベースサーバ「2」から古いデータを受信すると、かかる古いデータが有効なまま継続して保持することになる。
【0240】
これに対して、上述したように、実施例1によれば、キャッシュ制御システムでは、キャッシュサーバ300は、更新がデータベースサーバ200すべてに反映されていることを確認した上で、IR情報を削除するので、どの時点においてデータベースサーバ200が故障したとしても、古いデータを確実に削除することが可能である。
【0241】
また、実施例1によれば、キャッシュ制御システムでは、キャッシュサーバ300は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ200各々について判定する。そして、キャッシュサーバ300は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。この結果、データベースサーバ200とキャッシュサーバ300とを一致させることが可能である。
【0242】
また、実施例1によれば、キャッシュ制御システムでは、データベースサーバを監視する監視サーバ400を更に備える。そして、監視サーバ400は、監視結果に基づいて、データベースサーバ200の状態が正常であるか否かを判定し、正常でないと判定したデータベースサーバ200について、キャッシュサーバ300との間におけるデータの送受信を閉塞する。この結果、正常でないデータベースサーバ200がキャッシュサーバ300に応答することを防止可能である。
【実施例2】
【0243】
[システム構成]
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については(図1〜図33)、特記する場合を除いて任意に変更することができる。
【0244】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、データベースサーバ200の配信情報DB213を外部装置として、ネットワーク経由で各データベースサーバ200が接続して同一の配信情報DB213を共有しても良い。また、例えば、監視サーバ400を用いなくても良い。
【0245】
[プログラム]
図34は、キャッシュ制御システムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図34に例示するように、コンピュータ3000は、例えば、メモリ3010と、CPU(Central Processing Unit)3020と、ハードディスクドライブインタフェース3030と、ネットワークインタフェース3070とを有する。コンピュータ3000の各部はバス3100によって接続される。
【0246】
メモリ3010は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース3030は、図34に例示するように、ハードディスクドライブ3080に接続される。
【0247】
ここで、図34に例示するように、ハードディスクドライブ3080は、例えば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係る更新プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、例えばハードディスクドライブ3080に記憶される。具体的には、上記実施例で説明した制御部220の各部や制御部320の各部、制御部420の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ3080に記憶される。
【0248】
また、上記実施例で説明した記憶部210や記憶部310、記憶部410に記憶されるデータのように、キャッシュ制御システムによる情報処理にて用いられるデータは、プログラムデータ3084として、例えばハードディスクドライブ3080に記憶される。そして、CPU3020が、ハードディスクドライブ3080に記憶されたプログラムモジュール3083やプログラムデータ3084を必要に応じてRAMに読み出し、各種の手順を実行する。
【0249】
なお、キャッシュ制御システムを実行するプログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。例えば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されても良い。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、更新プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されても良い。この場合、CPU3020は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。
【0250】
[その他]
なお、本実施例で説明したキャッシュ制御システムの制御プログラムは、インターネットなどのネットワークを介して配布することができる。また、制御プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【符号の説明】
【0251】
200 データベースサーバ
201 通信制御I/F部
210 記憶部
211 ユーザ情報DB
212 IR情報DB
213 配信情報DB
214 装置情報DB
220 制御部
221 キャッシュ応答部
222 IR情報応答部
223 更新情報応答部
224 更新成否応答部
225 装置状態応答部
226 装置状態格納部
227 閉塞制御部
228 更新情報配信部
229 更新再伝播部
300 キャッシュサーバ
301 通信制御I/F部
310 記憶部
311 キャッシュ
312 検索先状態DB
313 更新登録状態DB
320 制御部
321 キャッシュ判定部
322 IR情報判定部
323 応答処理部
400 監視サーバ
401 通信制御I/F部
410 記憶部
411 装置情報DB
420 制御部
421 故障判定部
500 クライアント端末

【特許請求の範囲】
【請求項1】
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムであって、
前記データベースサーバ各々は、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備え、
前記キャッシュサーバ各々は、
複数ある前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得部と、
前記更新情報取得部により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理部と
を備えたことを特徴とするキャッシュ制御システム。
【請求項2】
複数ある前記データベースサーバ各々は、
複数ある前記データベースサーバ各々について、前記データの更新が終了したか否かを示す更新結果を記憶する更新結果記憶部を更に備え、
前記キャッシュサーバ各々は、
前記データベースサーバから、前記更新結果記憶部に記憶された複数あるデータベースサーバ各々についての前記更新結果を取得する更新結果取得部と、
前記更新結果取得部によって取得された更新結果各々に基づいて、複数ある前記データベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、前記更新情報取得部により取得された更新情報を前記更新情報記憶部から削除する削除処理を実行し、更新が終了していないと判定した場合には当該削除処理を実行しない削除処理部とを更に備えることを特徴とする請求項1に記載のキャッシュ制御システム。
【請求項3】
前記キャッシュサーバは、
前記データベースサーバにおける更新が正常に実行されている状態か否かを複数ある前記データベースサーバ各々について判定する更新状態判定部を更に備え、
前記キャッシュサーバの前記削除処理部は、前記更新状態判定部によって正常に実行されている状態であると判定されたデータベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には前記削除処理を実行し、更新が終了していないと判定した場合には前記削除処理を実行しないことを特徴とする請求項2に記載のキャッシュ制御システム。
【請求項4】
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムに適用されるキャッシュ制御方法であって、
前記データベースサーバ各々は、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納ステップを含み、
前記キャッシュサーバ各々は、
複数ある前記データベースサーバ各々から、前記更新情報記憶部に前記格納ステップによって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得ステップと、
前記更新情報取得ステップにより取得された更新情報により識別されるデータのキャッシュを無効にする無効処理ステップと
を含むことを特徴とするキャッシュ制御方法。
【請求項5】
前記キャッシュサーバ各々は、
前記データベースサーバから、複数ある前記データベースサーバ各々について前記データの更新が終了したか否かを示す更新結果を記憶する前記更新結果記憶部に記憶された複数あるデータベースサーバ各々についての前記更新結果を取得する更新結果取得ステップと、
前記更新結果取得ステップによって取得された更新結果各々に基づいて、複数ある前記データベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、前記更新情報取得ステップにより取得された更新情報を前記更新情報記憶部から削除する削除処理を実行し、更新が終了していないと判定した場合には当該削除処理を実行しない削除処理ステップとを更に含むことを特徴とする請求項4に記載のキャッシュ制御方法。
【請求項6】
前記キャッシュサーバは、
前記データベースサーバにおける更新が正常に実行されている状態か否かを複数ある前記データベースサーバ各々について判定する更新状態判定ステップを更に含み、
前記キャッシュサーバの前記削除処理ステップは、前記更新状態判定ステップによって正常に実行されている状態であると判定されたデータベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には前記削除処理を実行し、更新が終了していないと判定した場合には前記削除処理を実行しないことを特徴とする請求項5に記載のキャッシュ制御方法。
【請求項7】
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該データベースであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部と、
複数ある前記データベースサーバ各々から前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得し、取得した更新情報により識別されるデータのキャッシュを無効にするキャッシュサーバから更新情報を要求されると、更新情報を送信する更新情報送信部と
を備えたことを特徴とするデータベースサーバ。
【請求項8】
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該データベースの制御プログラムであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納手順と、
複数ある前記データベースサーバ各々から前記更新情報記憶部に前記格納手順によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得し、取得した更新情報により識別されるデータのキャッシュを無効にするキャッシュサーバから更新情報を要求されると、更新情報を送信する更新情報送信手順と
を実行させることを特徴とするデータベースサーバ制御プログラム。
【請求項9】
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該キャッシュサーバの制御プログラムであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備える前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得部と、
前記更新情報取得部により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理部と
を備えたことを特徴とするキャッシュサーバ。
【請求項10】
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該キャッシュサーバのキャッシュサーバ制御プログラムであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備える前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得手順と、
前記更新情報取得手順により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理手順と
を実行させることを特徴とするキャッシュサーバ制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate