JP5265711B2 - Cache control system and cache control method - Google Patents

Cache control system and cache control method Download PDF

Info

Publication number
JP5265711B2
JP5265711B2 JP2011000813A JP2011000813A JP5265711B2 JP 5265711 B2 JP5265711 B2 JP 5265711B2 JP 2011000813 A JP2011000813 A JP 2011000813A JP 2011000813 A JP2011000813 A JP 2011000813A JP 5265711 B2 JP5265711 B2 JP 5265711B2
Authority
JP
Japan
Prior art keywords
update
information
cache
server
database server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011000813A
Other languages
Japanese (ja)
Other versions
JP2012141900A (en
Inventor
直樹 高田
英樹 山内
拓也 南
高生 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2011000813A priority Critical patent/JP5265711B2/en
Publication of JP2012141900A publication Critical patent/JP2012141900A/en
Application granted granted Critical
Publication of JP5265711B2 publication Critical patent/JP5265711B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、キャッシュ制御システム及びキャッシュ制御方法に関する。   The present invention relates to a cache control system and a cache control method.

データベースサーバに格納された大規模なデータを用いて、複数のクライアントにネットワーク上にてサービスを提供するサービス提供システムがある。サービス提供システムでは、データベースサーバに格納されたデータ各々の利用頻度は、データごとに様々となる。   There is a service providing system that provides services to a plurality of clients on a network using large-scale data stored in a database server. In the service providing system, the frequency of use of each data stored in the database server varies for each data.

ここで、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用のキャッシュサーバとして配置される。   Here, there is a cache technology that caches data stored by a World Wide Web (WWW) server. FIG. 35 is a diagram illustrating an example of a system that executes the cache technology. In FIG. 35, a user terminal 100 to a user terminal 102 are terminals used by users. The WWW server 105 is a server that manages data. The WWW cache server 103 and the WWW cache server 104 are servers that store a cache of data managed by the WWW server 105. Further, in a system that executes the cache technology, a number of WWW cache servers corresponding to the number of user terminals are arranged in advance at positions close to the user terminals 100 to 102. In the example shown in FIG. 35, the WWW cache server 103 is arranged as a cache server for the user terminal 100, and the WWW cache server 104 is arranged as a cache server for the user terminals 101 and 102.

図35に示すような構成の下、ユーザ端末100がWWWサーバ105によって管理されるデータを取得する場合を用いて説明する。この場合、キャッシュ技術を実行するシステムでは、WWW用キャッシュサーバ103は、ユーザ端末100によってWWWサーバ105から一度取得されたデータのキャッシュを記憶する。そして、キャッシュ技術を実行するシステムでは、ユーザ端末100が再度同一のデータにアクセスする場合に、WWW用キャッシュサーバ103がユーザ端末100にデータを送信する。   Description will be made using a case where the user terminal 100 acquires data managed by the WWW server 105 under the configuration shown in FIG. In this case, in the system that executes the cache technology, the WWW cache server 103 stores a cache of data once acquired from the WWW server 105 by the user terminal 100. In the system that executes the cache technology, when the user terminal 100 accesses the same data again, the WWW cache server 103 transmits the data to the user terminal 100.

図36は、図35に示したキャッシュ技術を一般化したシステムの一例を示す図である。図36において、クライアント端末110〜クライアント端末112は、図35におけるユーザ端末100〜ユーザ端末102に対応する。また、キャッシュサーバ113及びキャッシュサーバ114は、図35におけるWWW用キャッシュサーバ103及びWWW用キャッシュサーバ104に対応する。また、データベースサーバ115は、図35におけるWWWサーバ105に対応する。   FIG. 36 is a diagram showing an example of a system in which the cache technology shown in FIG. 35 is generalized. 36, the client terminal 110 to the client terminal 112 correspond to the user terminal 100 to the user terminal 102 in FIG. Further, the cache server 113 and the cache server 114 correspond to the WWW cache server 103 and the WWW cache server 104 in FIG. The database server 115 corresponds to the WWW server 105 in FIG.

ここで、キャッシュサーバに記憶されているデータが、データベースサーバに記憶されているデータと同一とならないことがある。例えば、キャッシュサーバが、データベースサーバに記憶されたデータ「D」のキャッシュを記憶しており、キャッシュサーバに記憶されたデータ「D」を用いてクライアント端末にサービスが提供されている場合を用いて説明する。また、キャッシュサーバがデータ「D」を取得した後に、データベースサーバに記憶されたデータ「D」が「E」に更新された場合を用いて説明する。この場合、キャッシュサーバによって記憶されているデータ「D」は更新前のデータであり、データベースサーバに記憶されているデータとキャッシュサーバに記憶されているデータとを同一とはならない。   Here, the data stored in the cache server may not be the same as the data stored in the database server. For example, a case where the cache server stores a cache of the data “D” stored in the database server, and a service is provided to the client terminal using the data “D” stored in the cache server is used. explain. Further, the case where the data “D” stored in the database server is updated to “E” after the cache server acquires the data “D” will be described. In this case, the data “D” stored by the cache server is the data before update, and the data stored in the database server and the data stored in the cache server are not the same.

このことを踏まえ、データベースサーバに記憶されているデータとキャッシュサーバに記憶されているデータとを同一にする手法として、Invalidation Reportという技術(以下、「IR技術」とも称する)がある。   Based on this, there is a technique called Invalidation Report (hereinafter also referred to as “IR technique”) as a technique for making the data stored in the database server the same as the data stored in the cache server.

IR技術を実行するシステムでは、データベースサーバにて更新されたデータについての情報であるIR情報を生成する。また、IR技術を実行するシステムでは、データベースサーバとキャッシュサーバとがIR情報を共有することで、キャッシュサーバに記憶されているデータのうち、古いデータを無効化して使われない状態とする。   In a system that executes IR technology, IR information that is information about data updated by a database server is generated. Also, in a system that executes the IR technology, the database server and the cache server share the IR information so that the old data out of the data stored in the cache server is invalidated and not used.

例えば、データベースサーバがユーザごとにパスワードを管理する場合を用いて説明する。また、ユーザ「U」のパスワードが、パスワード「P1」であり、キャッシュサーバがユーザ「U」のパスワードとしてパスワード「P1」を記憶している場合を用いて説明する。また、その後、データベースサーバにて、ユーザ「U」のパスワードが、パスワード「P1」からパスワード「P2」に変更された場合を用いて説明する。この場合、データベースサーバは、例えば、更新されたパスワード「P1」を識別するユーザ「U」含むIR情報を生成し、生成したID情報をキャッシュサーバと共有する。この結果、キャッシュサーバは、ユーザ「U」のパスワードとして記憶していたパスワード「P1」のキャッシュを無効化する。   For example, the case where the database server manages passwords for each user will be described. Further, the case where the password of the user “U” is the password “P1” and the cache server stores the password “P1” as the password of the user “U” will be described. Further, the case where the password of the user “U” is changed from the password “P1” to the password “P2” in the database server will be described later. In this case, for example, the database server generates IR information including the user “U” for identifying the updated password “P1”, and shares the generated ID information with the cache server. As a result, the cache server invalidates the cache of the password “P1” stored as the password of the user “U”.

なお、その後、キャッシュサーバが、ユーザ「U」のパスワードをクライアント端末から要求された場合を用いて説明する。この場合、キャッシュサーバにおいてユーザ「U」のパスワードは無効化されており、キャッシュサーバは、データベースサーバからユーザ「U」のパスワード「P2」を取得し、キャッシュサーバ上にパスワード「P2」のキャッシュを格納するとともに、クライアント端末に対してパスワード「P2」を提供する。   In the following description, the cache server requests the user “U” password from the client terminal. In this case, the password of the user “U” is invalidated in the cache server, the cache server acquires the password “P2” of the user “U” from the database server, and stores the cache of the password “P2” on the cache server. While storing, the password “P2” is provided to the client terminal.

また、データベースサーバに記憶されたデータは、サービスの提供を継続するために不可欠な情報であることを踏まえ、冗長化などの耐故障技術を用いてデータベースサーバを構成する技術がある。図37は、データベースサーバを二重化した場合における構成の一例を示す図である。すなわち、図37に示す例では、データベースサーバ120とデータベースサーバ121とが同一のデータを記憶する。また、図37に示す例では、キャッシュサーバ122は、データベースサーバ120からデータを取得し、キャッシュサーバ123及びキャッシュサーバ124は、データベースサーバ121からデータを取得する場合を示した。   In addition, there is a technology that configures a database server using a fault-tolerant technology such as redundancy based on the fact that data stored in a database server is indispensable information for continuing service provision. FIG. 37 is a diagram illustrating an example of a configuration when the database server is duplicated. That is, in the example shown in FIG. 37, the database server 120 and the database server 121 store the same data. In the example illustrated in FIG. 37, the cache server 122 acquires data from the database server 120, and the cache server 123 and the cache server 124 acquire data from the database server 121.

ここで、データベースサーバを冗長化する技術として、同期型レプリケーションと非同期方レプリケーションとがある。同期型レプリケーションとは、図37の例を用いて説明すると、データベースサーバ120とデータベースサーバ121とを同時に更新する手法である。また、非同期型のレプリケーションとは、図37の例を用いて説明すると、データベースサーバ120とデータベースサーバ121とのうち一方のデータベースサーバに記憶されたデータを更新した後、他方のデータベースサーバに記憶されたデータを更新する手法である。言い換えると、非同期型レプリケーションでは、複数あるデータベースサーバ各々は、同時に更新されるわけではない。   Here, there are synchronous replication and asynchronous replication as techniques for making the database server redundant. The synchronous replication is a method for updating the database server 120 and the database server 121 at the same time as described with reference to the example of FIG. Asynchronous replication is described with reference to the example of FIG. 37. After the data stored in one of the database servers 120 and 121 is updated, the data is stored in the other database server. It is a method to update the data. In other words, in asynchronous replication, a plurality of database servers are not updated at the same time.

「分散システム 原理とパラダイム」、アンドリュー・S・タネンバウム、マールテン・ファン・スティーン著、水野忠則、宮西洋太郎、鈴木健二、西山智、佐藤文明、東野輝夫訳、株式会社ピアソン・エデュケーション、2003年発行"Distributed System Principle and Paradigm", by Andrew S. Tanenbaum and Maarten van Stein, Tadanori Mizuno, Taro Miyano, Kenji Suzuki, Satoshi Nishiyama, Fumiaki Sato, Teruo Higashino, Pearson Education, Inc., 2003 BUILDING SECURE AND RELIABLE NETWORK APPLICATIONS、 Kenneth P. Birman著、Manning、1996年発行BUILDING SECURE AND RELIABLE NETWORK APPLICATIONS, Kenneth P. Published by Birman, Manning, 1996 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、 2003G. 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 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、 2004Z. 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 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 1996J. Gray, P.M. Helland, P.A. O’Neil, D. Shasha, Mohan Kumar, “The Dangers of Replication and a Solution”, Proc. ACM SIGMOD '86, pp. 173-183, June 1996 K.P.Birman著、 ”BUILDING SECURE AND RELIABLE NETWORK APPLICATIONS”、 Manning、 1996年K. P. Birman, “BUILDING SECURE AND RELIABLE NETWORK APPLICATIONS”, Manning, 1996

しかしながら、IR技術と非同期型レプリケーションと併用すると、キャッシュサーバが古いデータを無効化することなく保持することがあるという問題がある。具体的には、非同期型レプリケーションを実行するシステムでは、複数あるデータベースサーバ各々に記憶されたデータが同一とはならない期間があり、更新されるタイミングが異なる結果データベースサーバごとにIR情報が生成されるタイミングも異なる。この結果、例えば、データベースサーバに故障が発生した場合に、データベースサーバに記憶されたデータとキャッシュサーバに記憶されたデータとが同一とならない場合がある。   However, when IR technology and asynchronous replication are used together, there is a problem that the cache server may hold old data without invalidating it. Specifically, in a system that executes asynchronous replication, there is a period in which data stored in each of a plurality of database servers is not the same, and IR information is generated for each database server as a result of different update timings. The timing is also different. As a result, for example, when a failure occurs in the database server, the data stored in the database server may not be the same as the data stored in the cache server.

図38を更に用いて説明する。図38は、データベースサーバに記憶されたデータとキャッシュサーバに記憶されたデータとが同一とならない場合の一例を示す図である。図38における横軸は、時間軸を示し、左側から右側に向かって時間が経過するものとして説明する。なお、図38を用いて説明する際には、システムの構成が図37と同一であるものとして説明する。   This will be further described with reference to FIG. FIG. 38 is a diagram illustrating an example of a case where the data stored in the database server and the data stored in the cache server are not the same. The horizontal axis in FIG. 38 represents the time axis, and description will be made assuming that time elapses from the left side to the right side. In the description with reference to FIG. 38, it is assumed that the system configuration is the same as that in FIG.

図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が故障した場合を用いて説明する。   Description will be made using a case where data stored in the database server 120 is updated and IR information is registered in the database server 120 at a time point 130 in FIG. The case where IR information is shared between the cache server 122 and the database server 120 at time 131 in FIG. 38 and old data is invalidated in the cache server 122 will be described. The case where the cache server 123 acquires data not held by the cache server 123 from the database server 121 in order to provide the service to the client terminal 126 at time 132 in FIG. 38 will be described. Here, it is assumed that the data acquired by the cache server 123 is data to be updated at the time 130. 38, the update performed on the database server 120 is performed asynchronously on the database server 121. As a result, the data stored in the database server 121 is updated, and the database server 121 is updated with the IR. A description will be given using a case where information is registered. The case where the database server 121 fails at the time 134 in FIG. 38 will be described.

この場合、時点132においては、データベースサーバ121は更新されておらず、キャッシュサーバ123は、時点132において古いデータを取得する。その後、時点133においてデータベースサーバ121は更新されるが、時点134において故障する結果、キャッシュサーバ123は、時点132の時点において取得した古いデータを、無効化することなく保持することになる。   In this case, the database server 121 is not updated at the time point 132, and the cache server 123 acquires old data at the time point 132. Thereafter, the database server 121 is updated at the time 133, but as a result of the failure at the time 134, the cache server 123 holds the old data acquired at the time 132 without invalidating.

開示の技術は、上述に鑑みてなされたものであって、キャッシュサーバに記憶された古いデータを無効化可能であるキャッシュ制御システム及びキャッシュ制御方法を提供することを目的とする。   The disclosed technology has been made in view of the above, and an object thereof is to provide a cache control system and a cache control method capable of invalidating old data stored in a cache server.

開示するキャッシュ制御システムは、1つの態様において、非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するシステムとなる。また、キャッシュ制御システムでは、1つの態様において、前記データベースサーバ各々は、自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備える。また、キャッシュ制御システムでは、1つの態様において、前記キャッシュサーバ各々は、複数ある前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得部を備える。また、キャッシュ制御システムでは、1つの態様において、前記取得部により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理部を備える。   In one aspect, the disclosed cache control system includes a plurality of database servers that store the same data that is updated asynchronously, and a plurality of cache servers that store a cache of data stored in the database server. It becomes. In the cache control system, in one aspect, each of the database servers has a plurality of pieces of update information including update data identification information for identifying the data to be updated when the data of the own database server is updated. A storage unit is provided for storing in the update information storage unit in association with each piece of identification information for identifying the cache server. In the cache control system, in one aspect, each of the cache servers is stored in association with identification information for identifying the cache server by the storage unit in the update information storage unit from each of the plurality of database servers. And an update information acquisition unit for acquiring the update information. In one aspect, the cache control system includes an invalid processing unit that invalidates a cache of data identified by the update information acquired by the acquisition unit.

開示のキャッシュ制御システムの1つの態様によれば、1つでも正常なデータベースサーバがあれば、キャッシュサーバに記憶された古いデータを無効化可能であるという効果を奏する。   According to one aspect of the disclosed cache control system, there is an effect that if there is even one normal database server, old data stored in the cache server can be invalidated.

図1は、実施例1に係るキャッシュ制御システムの一例の全体像を示す図である。FIG. 1 is a diagram illustrating an overview of an example of a cache control system according to the first embodiment. 図2は、実施例1におけるデータベースサーバの構成の一例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of the configuration of the database server in the first embodiment. 図3は、実施例1におけるデータベースサーバのユーザ情報DBに記憶された情報の一例を示す図である。FIG. 3 is a diagram illustrating an example of information stored in the user information DB of the database server in the first embodiment. 図4は、実施例1におけるデータベースサーバのIR情報DBに記憶された情報の一例を示す図である。FIG. 4 is a diagram illustrating an example of information stored in the IR information DB of the database server in the first embodiment. 図5は、実施例1におけるデータベースサーバの配信情報DBに記憶された情報の一例を示す図である。FIG. 5 is a diagram illustrating an example of information stored in the distribution information DB of the database server in the first embodiment. 図6は、実施例1におけるデータベースサーバの装置情報DBに記憶された情報の一例を示す図である。FIG. 6 is a diagram illustrating an example of information stored in the device information DB of the database server in the first embodiment. 図7は、実施例1におけるキャッシュサーバの構成の一例を示すブロック図である。FIG. 7 is a block diagram illustrating an example of the configuration of the cache server according to the first embodiment. 図8は、実施例1におけるキャッシュサーバのキャッシュに記憶された情報の一例を示す図である。FIG. 8 is a diagram illustrating an example of information stored in the cache of the cache server according to the first embodiment. 図9は、実施例1におけるキャッシュサーバの検索先状態DBに記憶された情報の一例を示す図である。FIG. 9 is a diagram illustrating an example of information stored in the search destination state DB of the cache server according to the first embodiment. 図10は、実施例1におけるキャッシュサーバの更新登録状態DBに記憶された情報の一例を示す図である。FIG. 10 is a diagram illustrating an example of information stored in the update registration state DB of the cache server according to the first embodiment. 図11は、実施例1における監視サーバの構成の一例を示すブロック図である。FIG. 11 is a block diagram illustrating an example of the configuration of the monitoring server according to the first embodiment. 図12は、実施例1における監視サーバの装置情報DBに記憶された情報の一例を示す図である。FIG. 12 is a diagram illustrating an example of information stored in the device information DB of the monitoring server according to the first embodiment. 図13は、実施例1におけるデータベースサーバ各々間における処理の流れの一例を示すシーケンス図である。FIG. 13 is a sequence diagram illustrating an example of a process flow between the database servers in the first embodiment. 図14は、実施例1におけるデータベースサーバと監視サーバ間における処理の流れの一例を示すシーケンス図である。FIG. 14 is a sequence diagram illustrating an example of a flow of processing between the database server and the monitoring server in the first embodiment. 図15は、実施例1におけるキャッシュサーバとデータベースサーバの間における処理の流れの一例について示すシーケンス図である。FIG. 15 is a sequence diagram illustrating an example of a process flow between the cache server and the database server according to the first embodiment. 図16は、実施例1におけるキャッシュサーバとデータベースサーバの間における処理の流れの一例について示すシーケンス図である。FIG. 16 is a sequence diagram illustrating an example of a process flow between the cache server and the database server according to the first embodiment. 図17は、実施例1におけるクライアント端末とキャッシュサーバとデータベースサーバと間における処理の流れの一例を示すシーケンス図である。FIG. 17 is a sequence diagram illustrating an example of a process flow among the client terminal, the cache server, and the database server according to the first embodiment. 図18は、実施例1におけるデータベースサーバのキャッシュ応答部による処理の流れの一例を示すフローチャートである。FIG. 18 is a flowchart illustrating an example of a process flow by the cache response unit of the database server in the first embodiment. 図19は、実施例1におけるデータベースサーバのIR情報応答部による処理の流れの一例を示すフローチャートである。FIG. 19 is a flowchart illustrating an example of a process flow by the IR information response unit of the database server in the first embodiment. 図20は、実施例1におけるデータベースサーバの更新情報応答部による処理の流れの一例を示フローチャートである。FIG. 20 is a flowchart illustrating an example of a process flow by the update information response unit of the database server in the first embodiment. 図21は、実施例1におけるデータベースサーバの更新成否応答部による処理の流れの一例を示すフローチャートである。FIG. 21 is a flowchart illustrating an example of a process flow by the update success / failure response unit of the database server according to the first embodiment. 図22は、実施例1における更新成否結果対応表の一例を示す図である。FIG. 22 is a diagram illustrating an example of an update success / failure result correspondence table according to the first embodiment. 図23は、実施例1におけるデータベースサーバの装置状態応答部による処理の一例を示すフローチャートである。FIG. 23 is a flowchart illustrating an example of processing performed by the apparatus status response unit of the database server according to the first embodiment. 図24は、実施例1におけるデータベースサーバの装置状態格納部による処理の流れの一例を示すフローチャートである。FIG. 24 is a flowchart illustrating an example of a process flow by the apparatus state storage unit of the database server in the first embodiment. 図25は、実施例1におけるデータベースサーバの閉塞制御部による処理の流れの一例を示すフローチャートである。FIG. 25 is a flowchart illustrating an example of a processing flow by the block control unit of the database server in the first embodiment. 図26は、実施例1におけるデータベースサーバの更新情報配信部による詳細な処理の流れの一例を示すフローチャートである。FIG. 26 is a flowchart illustrating an example of a detailed processing flow by the update information distribution unit of the database server in the first embodiment. 図27は、実施例1におけるデータベースサーバの更新再伝播部による処理の流れの一例を示すフローチャートである。FIG. 27 is a flowchart illustrating an example of a processing flow by the update re-propagation unit of the database server according to the first embodiment. 図28は、実施例1におけるキャッシュサーバのキャッシュ判定部による処理の流れの一例を示すフローチャートである。FIG. 28 is a flowchart illustrating an example of a flow of processing performed by the cache determination unit of the cache server according to the first embodiment. 図29は、実施例1におけるキャッシュサーバのIR情報判定部による処理の流れの一例を示すフローチャートである。FIG. 29 is a flowchart illustrating an example of a process flow by the IR information determination unit of the cache server according to the first embodiment. 図30は、実施例1における更新登録状態対応表の一例を示す図である。FIG. 30 is a diagram illustrating an example of an update registration state correspondence table according to the first embodiment. 図31は、実施例1におけるIR情報削除対象判定表の一例を示す図である。FIG. 31 is a diagram illustrating an example of an IR information deletion target determination table according to the first embodiment. 図32は、実施例1におけるキャッシュサーバの応答処理部による流れの一例を示すフローチャートである。FIG. 32 is a flowchart illustrating an example of a flow by the response processing unit of the cache server in the first embodiment. 図33は、実施例1における監視サーバの故障判定部による処理の流れの一例を示すフローチャートである。FIG. 33 is a flowchart illustrating an example of a process flow by the failure determination unit of the monitoring server in the first embodiment. 図34は、キャッシュ制御システムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。FIG. 34 is a diagram illustrating that information processing by the cache control system is specifically realized using a computer. 図35は、キャッシュ技術を実行するシステムの一例を示す図である。FIG. 35 is a diagram illustrating an example of a system that executes the cache technology. 図36は、図35に示したキャッシュ技術を一般化したシステムの一例を示す図である。FIG. 36 is a diagram showing an example of a system in which the cache technology shown in FIG. 35 is generalized. 図37は、データベースサーバを二重化した場合における構成の一例を示す図である。FIG. 37 is a diagram illustrating an example of a configuration when the database server is duplicated. 図38は、データベースサーバに記憶されたデータとキャッシュサーバに記憶されたデータとが同一とならない場合の一例を示す図である。FIG. 38 is a diagram illustrating an example of a case where the data stored in the database server and the data stored in the cache server are not the same.

以下に、開示するキャッシュ制御システム及びキャッシュ制御方法の実施例について、図面に基づいて詳細に説明する。なお、本実施例により開示する発明が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。   Hereinafter, embodiments of the disclosed cache control system and cache control method will be described in detail with reference to the drawings. Note that the invention disclosed by this embodiment is not limited. Each embodiment can be appropriately combined within a range in which processing contents do not contradict each other.

[実施例1に係るキャッシュ制御システムの全体像]
実施例1に係るキャッシュ制御システムの全体像について説明する。実施例1に係るキャッシュ制御システムは、データベースサーバ200と、キャッシュサーバ300と、監視サーバ400と、クライアント端末500とを有する。データベースサーバ200は、データを記憶する。キャッシュサーバ300は、データベースサーバ200に記憶されたデータのキャッシュを記憶する。監視サーバ400は、データベースサーバ200を監視する。クライアント端末500は、利用者により用いられる端末であって、データベースサーバ200に記憶されたデータに基づくサービスの提供を受ける。
[Overview of Cache Control System According to Embodiment 1]
An overview of the cache control system according to the first embodiment will be described. The cache control system according to the first embodiment includes a database server 200, a cache server 300, a monitoring server 400, and a client terminal 500. The database server 200 stores data. The cache server 300 stores a cache of data stored in the database server 200. The monitoring server 400 monitors the database server 200. The client terminal 500 is a terminal used by a user and receives a service based on data stored in the database server 200.

図1は、実施例1に係るキャッシュ制御システムの一例の全体像を示す図である。図1に示す例では、実施例1に係るキャッシュ制御システムは、2つのデータベースサーバ200と、2つのキャッシュサーバ300と、1つの監視サーバ400と、1つのクライアント端末500とを有する場合を示した。2つのデータベースサーバ200と、2つのキャッシュサーバ300と、1つの監視サーバ400と、1つのクライアント端末500とは、ネットワークを介して相互に接続される。   FIG. 1 is a diagram illustrating an overview of an example of a cache control system according to the first embodiment. In the example illustrated in FIG. 1, the cache control system according to the first embodiment illustrates a case where the two database servers 200, the two cache servers 300, the one monitoring server 400, and the one client terminal 500 are included. . Two database servers 200, two cache servers 300, one monitoring server 400, and one client terminal 500 are connected to each other via a network.

なお、図1に示す例では、キャッシュ制御システムが、2つのデータベースサーバ200と、2つのキャッシュサーバ300と、1つの監視サーバ400と、1つのクライアント端末500とを有する場合を示したが、これに限定されるものではない。例えば、キャッシュ制御システムは、3つ以上のデータベースサーバ200を有しても良く、3つ以上のキャッシュサーバ300を有しても良く、2つ以上の監視サーバ400を有しても良く、2つ以上のクライアント端末500を有しても良い。   In the example illustrated in FIG. 1, the cache control system has two database servers 200, two cache servers 300, one monitoring server 400, and one client terminal 500. It is not limited to. For example, the cache control system may include three or more database servers 200, three or more cache servers 300, two or more monitoring servers 400, and 2 Two or more client terminals 500 may be included.

キャッシュ制御システムの全体像について説明する際には、図1に示すように、2つあるデータベースサーバ200各々をデータベースサーバ200−1とデータベースサーバ200−2と記載する。また、図1に示すように、2つあるキャッシュサーバ300をキャッシュサーバ300−1とキャッシュサーバ300−2と記載する。   When describing the overall image of the cache control system, as shown in FIG. 1, the two database servers 200 are described as a database server 200-1 and a database server 200-2, respectively. As shown in FIG. 1, the two cache servers 300 are referred to as a cache server 300-1 and a cache server 300-2.

ここで、クライアント端末500は、図1の(1)に示す例では、キャッシュサーバ300−1に、データベースサーバ200−1又はデータベースサーバ200−2に記憶されたデータを要求するデータ要求を送信する。また、図1の(4)に示すように、クライアント端末500は、キャッシュサーバ300−1から受信したデータを用いて各種サービスを利用者に提供する。例えば、クライアント端末500は、キャッシュサーバ300−1から受信したデータを利用者に出力したり、キャッシュサーバ300−1から受信したデータを用いて実行されるサービスを利用者に提供したりする。   Here, in the example shown in (1) of FIG. 1, the client terminal 500 transmits a data request for requesting data stored in the database server 200-1 or the database server 200-2 to the cache server 300-1. . Further, as shown in (4) of FIG. 1, the client terminal 500 provides various services to the user using the data received from the cache server 300-1. For example, the client terminal 500 outputs the data received from the cache server 300-1 to the user, or provides the user with a service executed using the data received from the cache server 300-1.

データベースサーバ200−1及びデータベースサーバ200−2は、大容量のデータを記憶する記憶部を有する。データベースサーバ200−1やデータベースサーバ200−2の記憶部に記憶されたデータは、例えば、クライアント端末500により利用されたり参照されたりする。   The database server 200-1 and the database server 200-2 have a storage unit that stores a large amount of data. The data stored in the storage unit of the database server 200-1 or the database server 200-2 is used or referred to by the client terminal 500, for example.

データベースサーバ200−1及びデータベースサーバ200−2は、非同期で更新される同一のデータを記憶する。また、データベースサーバ200−1及びデータベースサーバ200−2は、それぞれ、データベースサーバとしては独立した構成をとる。例えば、図1の(A)及び(B)に示す例では、データベースサーバ200−1が更新されると、データベースサーバ200−1は、更新データをデータベースサーバ200−2に配信し、データベースサーバ200−2が、配信された更新データに含まれる更新後のデータが登録される結果、データが更新される。   The database server 200-1 and the database server 200-2 store the same data updated asynchronously. Further, the database server 200-1 and the database server 200-2 each have an independent configuration as a database server. For example, in the example shown in FIGS. 1A and 1B, when the database server 200-1 is updated, the database server 200-1 distributes the update data to the database server 200-2, and the database server 200-1 -2, the updated data included in the distributed update data is registered. As a result, the data is updated.

また、データベースサーバ200−1及びデータベースサーバ200−2は、それぞれ、自データベースサーバに記憶されたデータが更新されると、IR情報を生成する。キャッシュ制御システムでは、IR情報は、キャッシュサーバ300にデータの更新があったことを通知する情報となる。   Further, each of the database server 200-1 and the database server 200-2 generates IR information when the data stored in the own database server is updated. In the cache control system, the IR information is information for notifying the cache server 300 that data has been updated.

キャッシュサーバ300−1及びキャッシュサーバ300−2は、データベースサーバ200−1やデータベースサーバ200−2に記憶されたデータのキャッシュを記憶する。例えば、キャッシュサーバ300−1及びキャッシュサーバ300−2は、データベースサーバ200−1又はデータベースサーバ200−2に記憶されるデータのうち、クライアント端末500によって過去に利用されたデータのキャッシュを記憶する。なお、キャッシュサーバ300−1及びキャッシュサーバ300−2は、過去に利用された自装置のキャッシュに記憶することで、クライアント端末500からの高速なアクセスを実現する。   The cache server 300-1 and the cache server 300-2 store a cache of data stored in the database server 200-1 and the database server 200-2. For example, the cache server 300-1 and the cache server 300-2 store a cache of data used in the past by the client terminal 500 among the data stored in the database server 200-1 or the database server 200-2. Note that the cache server 300-1 and the cache server 300-2 realize high-speed access from the client terminal 500 by storing the cache server 300-1 and the cache server 300-2 in the cache of its own device.

また、キャッシュサーバ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に送信する。   Further, when the cache server 300-1 and the cache server 300-2 receive a data request from the client terminal 500, if the data requested by the data request is stored in the own device, the cache server 300-1 and the cache server 300-2 store the data request in the own device. Data to be transmitted to the client terminal 500. On the other hand, when the cache server 300-1 and the cache server 300-2 do not store the data requested by the data request in its own device, as shown in (2) of FIG. It transmits to the server 200-1 and the database server 200-2. Then, as shown in (3) of FIG. 1, when the cache server 300-1 and the cache server 300-2 receive a data response as a response to the data search request from the database server 200-1 or the database server 200-2, The cache of the received data is stored in the cache of its own device, and the received data is transmitted to the client terminal 500 as shown in (4) of FIG.

また、図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からのデータ要求に対して古いデータを送信しないようにする。   Further, as shown in FIG. 1A, the cache server 300-1 and the cache server 300-2 make an IR information request to the database server 200-1 and the database server 200-2 at an arbitrary timing. Send. Here, when the IR information is generated by the database server 200-1 or the database server 200-2, as shown in FIG. 1B, the cache server 300-1 and the cache server 300-2 A response of IR information is received. Then, the cache server 300-1 and the cache server 300-2 invalidate old data stored in the self-device in response to the data request from the client terminal 500, thereby responding to the data request from the client terminal 500. Do not send old data.

監視サーバ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との間におけるデータの送受信を閉塞する旨の閉塞要求を送信する。   The monitoring server 400 monitors the states of the database server 200-1 and the database server 200-2. Here, as shown in (i) of FIG. 1, the monitoring server 400 acquires device information that is information about the state of the database server 200-1 or the database server 200-2 and determines the state of the database server 200. To do. Then, as shown in (ii) of FIG. 1, the monitoring server 400 stores, for the database server 200-1 and the database server 200-2, the device status that is the determination result for each database server 200. Send device status storage request. Further, as shown in (iii) of FIG. 1, the monitoring server 400 transmits a blocking request for blocking transmission / reception of data to / from the cache server 300 to the database server 200 determined to have failed. .

ここで、詳細については後述するように、実施例1に係るキャッシュ制御システムでは、データベースサーバ200各々は、自データベースサーバ200のデータが更新される場合に、更新されるデータを識別するキー情報を含むIR情報を複数あるキャッシュサーバを識別する識別情報各々に対応付けて生成する。また、キャッシュサーバ300各々は、複数あるデータベースサーバ200各々から、自キャッシュサーバを識別する識別情報に対応付けて生成されたIR情報を取得し、取得したIR情報により識別されるデータのキャッシュを無効にする。この結果、1つでも正常なデータベースサーバ200があれば、キャッシュサーバ300に記憶された更新前のデータを無効にすることが可能である。なお、キー情報は「更新データ識別情報」とも称し、IR情報は「更新情報」とも称する。   Here, as will be described in detail later, in the cache control system according to the first embodiment, each database server 200 has key information for identifying data to be updated when the data of the own database server 200 is updated. The IR information included is generated in association with each identification information for identifying a plurality of cache servers. In addition, each cache server 300 acquires IR information generated in association with identification information for identifying its own cache server from each of a plurality of database servers 200, and invalidates the cache of data identified by the acquired IR information. To. As a result, if there is at least one normal database server 200, the data before update stored in the cache server 300 can be invalidated. The key information is also referred to as “update data identification information”, and the IR information is also referred to as “update information”.

また、詳細については後述するように、実施例1に係るキャッシュ制御システムでは、複数あるデータベースサーバ200各々は、複数あるデータベースサーバ200各々について、データの更新が終了したか否かを示す更新結果を記憶する。また、キャッシュサーバ300各々は、データベースサーバ200から、複数あるデータベースサーバ200各々についての更新結果を取得する。そして、キャッシュサーバ300は、更新結果情報各々に基づいて、複数あるデータベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合にはIR情報をデータベースサーバ200から削除する削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。この結果、詳細については後述するように、データベースサーバ200がどのような状況において故障したとしても、キャッシュサーバ300によって古いデータが有効なまま記憶され続けることがなくなり、データベースサーバとキャッシュサーバとを確実に一致させることが可能である。   Further, as will be described in detail later, in the cache control system according to the first embodiment, each of the plurality of database servers 200 displays an update result indicating whether or not the data update has been completed for each of the plurality of database servers 200. Remember. In addition, each cache server 300 acquires an update result for each of the plurality of database servers 200 from the database server 200. Then, the cache server 300 determines whether or not the update has been completed for all of the plurality of database servers based on each of the update result information, and deletes the IR information from the database server 200 when it is determined that the update has been completed. The delete process is executed, and if it is determined that the update has not ended, the delete process is not executed. As a result, as will be described in detail later, no matter what situation the database server 200 breaks down, the cache server 300 will not continue to store old data while being valid, and the database server and the cache server can be reliably Can be matched.

また、詳細については後述するように、実施例1に係るキャッシュ制御システムでは、キャッシュサーバ300は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ200各々について判定する。そして、キャッシュサーバ300は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合に削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。の結果、データベースサーバ200とキャッシュサーバ300とを一致させることが可能である。   Further, as will be described in detail later, in the cache control system according to the first embodiment, the cache server 300 determines, for each of the plurality of database servers 200, whether or not the update in the database server 200 is normally executed. To do. Then, the cache server 300 determines whether or not the update has been completed for all the database servers 200 that are determined to be normally executed, and executes the deletion process when it is determined that the update has ended. If it is determined that the update has not been completed, the deletion process is not executed. As a result, the database server 200 and the cache server 300 can be matched.

[実施例1に係るキャッシュ制御システムの構成]
実施例1に係るキャッシュ制御システムの構成の一例について説明する。以下では、実施例1におけるデータベースサーバ200の構成の一例と、実施例1におけるキャッシュサーバ300の構成の一例と、実施例1における監視サーバ400の構成の一例とを順に説明する。
[Configuration of Cache Control System According to First Embodiment]
An example of the configuration of the cache control system according to the first embodiment will be described. Hereinafter, an example of the configuration of the database server 200 in the first embodiment, an example of the configuration of the cache server 300 in the first embodiment, and an example of the configuration of the monitoring server 400 in the first embodiment will be described in order.

[実施例1におけるデータベースサーバ200の構成]
図2は、実施例1におけるデータベースサーバの構成の一例を示すブロック図である。図2に示す例では、データベースサーバ200は、通信制御I/F部201と、記憶部210と、制御部220とを有する。
[Configuration of Database Server 200 in Embodiment 1]
FIG. 2 is a block diagram illustrating an example of the configuration of the database server in the first embodiment. In the example illustrated in FIG. 2, the database server 200 includes a communication control I / F unit 201, a storage unit 210, and a control unit 220.

通信制御I/F部201は、制御部220と接続される。通信制御I/F部201は、キャッシュサーバ300や、監視サーバ400、他のデータベースサーバ200との間でデータの送受信を行う。なお、通信制御I/F部201により送受信される情報の詳細については、適宜後述する。   The communication control I / F unit 201 is connected to the control unit 220. The communication control I / F unit 201 transmits / receives data to / from the cache server 300, the monitoring server 400, and another database server 200. Details of information transmitted and received by the communication control I / F unit 201 will be described later as appropriate.

記憶部210は、制御部220と接続される。記憶部210は、制御部220による各種処理に用いるデータ及びプログラムを記憶する。記憶部210は、例えば、RAM(Random Access Memory)やフラッシュメモリ(Flash Memory)などの半導体メモリ素子、又は、ハードディスクや光ディスクなどの記憶装置である。図2に示す例では、記憶部210は、ユーザ情報DB211と、IR情報DB212と、配信情報DB213と、装置情報DB214とを有する。なお、IR情報DB212は、「更新情報記憶部」とも称し、配信情報DB213は、「更新結果記憶部」とも称する。   The storage unit 210 is connected to the control unit 220. The storage unit 210 stores data and programs used for various processes performed by the control unit 220. The storage unit 210 is, for example, a semiconductor memory device such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk. In the example illustrated in FIG. 2, the storage unit 210 includes a user information DB 211, an IR information DB 212, a distribution information DB 213, and a device information DB 214. The IR information DB 212 is also referred to as an “update information storage unit”, and the distribution information DB 213 is also referred to as an “update result storage unit”.

ユーザ情報DB211は、クライアント端末500により利用されるデータやクライアント端末500に対してサービスを提供する際に用いられるデータを記憶する。ここで、複数あるデータベースサーバ200のユーザ情報DB211各々は、非同期で更新され、同一のデータを記憶する。   The user information DB 211 stores data used by the client terminal 500 and data used when providing a service to the client terminal 500. Here, each of the user information DBs 211 of the plurality of database servers 200 is updated asynchronously and stores the same data.

以下では、ユーザ情報DB211が、キー情報と属性情報とを対応付けて記憶する場合を用いて説明する。ここで、属性情報とは、更新対象となるデータである。以下では、具体的な例をあげて説明する場合には、属性情報がユーザごとに一意となるパスワードである場合を用いて説明するが、これに限定されるものではなく、任意の情報であって良い。また、キー情報とは、属性情報を一意に識別する情報である。以下では、具体的な例をあげて説明する場合には、キー情報がユーザを識別するユーザ情報である場合を用いて説明するが、これに限定されるものではなく、任意の情報であって良い。   Below, it demonstrates using the case where user information DB211 matches and memorize | stores key information and attribute information. Here, the attribute information is data to be updated. In the following, when a specific example is described, description is made using the case where the attribute information is a password that is unique for each user. However, the present invention is not limited to this and is arbitrary information. Good. Key information is information that uniquely identifies attribute information. In the following, when a specific example is described, the case where the key information is user information for identifying a user will be described. However, the present invention is not limited to this, and is arbitrary information. good.

また、以下では、ユーザ情報DB211が、キー情報と属性情報とを同じテーブルで記憶する場合を用いて説明するが、これに限定されるものではなく、別々のテーブルで記憶しても良い。また、以下では、キー情報と属性情報とがそれぞれ別個の情報である場合を用いて説明するが、これに限定されるものではなく、1つの情報であっても良く、任意の数の情報に分散されても良い。   In the following, the case where the user information DB 211 stores key information and attribute information in the same table will be described. However, the present invention is not limited to this, and may be stored in separate tables. In the following, the case where the key information and the attribute information are separate information will be described. However, the present invention is not limited to this, and one piece of information may be used. It may be distributed.

図3は、実施例1におけるデータベースサーバのユーザ情報DBに記憶された情報の一例を示す図である。図3に示す例では、ユーザ情報DB211は、キー情報「U001」と属性情報「P001」とを対応付けて記憶し、キー情報「U002」と属性情報「P002」とを対応付けて記憶する。すなわち、ユーザ情報DB211は、キー情報「U001」により識別されるデータが、属性情報「P001」であることを記憶する。   FIG. 3 is a diagram illustrating an example of information stored in the user information DB of the database server in the first embodiment. In the example illustrated in FIG. 3, the user information DB 211 stores key information “U001” and attribute information “P001” in association with each other, and stores key information “U002” and attribute information “P002” in association with each other. That is, the user information DB 211 stores that the data identified by the key information “U001” is attribute information “P001”.

図2の説明に戻る。IR情報DB212は、キャッシュサーバを識別する識別情報に対応付けて、IR情報を記憶する。図4は、実施例1におけるデータベースサーバのIR情報DBに記憶された情報の一例を示す図である。図4に示す例では、IR情報DB212は、キャッシュサーバを識別する識別情報である「キャッシュサーバ名」に対応付けて、キー情報と更新IDとを含むIR情報を記憶する。ここで、更新IDとは、データベースサーバ200に記憶されたデータに対する更新を一意に識別する情報である。また、IR情報DB212に記憶されたキャッシュサーバ名は、IR情報の適用先となるキャッシュサーバ300を示す。   Returning to the description of FIG. The IR information DB 212 stores IR information in association with identification information for identifying a cache server. FIG. 4 is a diagram illustrating an example of information stored in the IR information DB of the database server in the first embodiment. In the example illustrated in FIG. 4, the IR information DB 212 stores IR information including key information and an update ID in association with “cache server name” that is identification information for identifying a cache server. Here, the update ID is information that uniquely identifies an update to the data stored in the database server 200. The cache server name stored in the IR information DB 212 indicates the cache server 300 to which the IR information is applied.

図4に示す例では、IR情報DB212は、キャッシュサーバ名「キャッシュサーバ「A」」に対応付けて、キー情報「U001」と更新ID「I001」とを含むIR情報を記憶する。すなわち、IR情報DB212は、キャッシュサーバ「A」に適用されるIR情報として、更新ID「I001」により識別される更新により、ユーザ情報DB211に記憶されたデータのうちキー情報「U001」により識別されるデータが更新されたことを示すIR情報を記憶する。   In the example shown in FIG. 4, the IR information DB 212 stores IR information including key information “U001” and update ID “I001” in association with the cache server name “cache server“ A ””. That is, the IR information DB 212 is identified by the key information “U001” among the data stored in the user information DB 211 by the update identified by the update ID “I001” as the IR information applied to the cache server “A”. IR information indicating that the data to be updated is stored.

ここで、IR情報DB212は、後述するように、データベースサーバ200のデータが更新されると、キャッシュサーバ300それぞれについてIR情報が制御部220によって生成され、制御部220によって格納される。すなわち、IR情報DB212は、IR情報が生成された後、キャッシュサーバ300に用いられる前の段階においては、キャッシュサーバ名すべてについて、IR情報を対応付けて記憶する。また、IR情報DB212に記憶されたIR情報は、後述するように、キャッシュサーバ300が自装置内のキャッシュの最新化を行う際にキャッシュサーバ300によって参照される。   Here, in the IR information DB 212, when data of the database server 200 is updated, IR information is generated by the control unit 220 for each cache server 300 and stored by the control unit 220, as will be described later. That is, the IR information DB 212 stores the IR information in association with all the cache server names in a stage before the IR information is generated and before being used for the cache server 300. Further, the IR information stored in the IR information DB 212 is referred to by the cache server 300 when the cache server 300 updates the cache in its own device, as will be described later.

図2の説明に戻る。配信情報DB213は、複数あるデータベースサーバ200各々について、データの更新が終了したか否かを示す更新結果を記憶する。図5は、実施例1におけるデータベースサーバの配信情報DBに記憶された情報の一例を示す図である。図5に示す例では、配信情報DB213は、「更新ID」と、データベースサーバ200を一意に識別する識別情報である「データベースサーバ名」と、「配信結果」と、「更新結果」とを含むレコードを記憶する。   Returning to the description of FIG. The distribution information DB 213 stores an update result indicating whether or not the data update has been completed for each of the plurality of database servers 200. FIG. 5 is a diagram illustrating an example of information stored in the distribution information DB of the database server in the first embodiment. In the example illustrated in FIG. 5, the distribution information DB 213 includes “update ID”, “database server name” that is identification information for uniquely identifying the database server 200, “distribution result”, and “update result”. Remember the record.

ここで、配信結果は、任意のデータベースサーバが更新された場合に、更新データが配信されたか否か示す。以下では、配信結果「OK」は、更新データの配信が成功した場合を示す。また、配信結果「未配信」は、更新データが配信されていない場合や、更新内用の配信が失敗した場合などが該当する。すなわち、配信結果「OK」である場合には、データベースサーバ200に更新データが届いていることを示し、更新結果「未配信」である場合には、データベースサーバ200に更新データが届いてないことを示す。   Here, the distribution result indicates whether or not the update data is distributed when an arbitrary database server is updated. In the following, the distribution result “OK” indicates a case where distribution of update data is successful. The distribution result “undistributed” corresponds to a case where update data is not distributed or a case where distribution for update fails. That is, when the distribution result is “OK”, it indicates that the update data has arrived at the database server 200, and when the update result is “undelivered”, the update data has not arrived at the database server 200. Indicates.

また、更新結果は、データの更新が終了したか否かを示す。以下では、更新結果「初期」は、更新IDにより識別される更新が行われていないことを示す。また、更新結果「OK」は、更新IDにより識別される更新が成功したことを示す。また、更新結果「NG」は、更新IDにより識別される更新が失敗したことを示す。すなわち、更新結果「OK」である場合には、データベースサーバ200に更新が反映されたことを示し、更新結果「初期」や「NG」である場合には、データベースサーバ200に更新が反映されていないことを示す。   The update result indicates whether or not the data update is completed. In the following, the update result “initial” indicates that the update identified by the update ID has not been performed. The update result “OK” indicates that the update identified by the update ID is successful. The update result “NG” indicates that the update identified by the update ID has failed. That is, when the update result is “OK”, it indicates that the update is reflected on the database server 200, and when the update result is “initial” or “NG”, the update is reflected on the database server 200. Indicates no.

図5に示す例では、配信情報DB213は、更新ID「I001」と、データベースサーバ名「データベースサーバA」と、配信結果「OK」と、更新結果「OK」とを含むレコードを記憶する。すなわち、図5に示す例では、配信情報DB213は、更新ID「I001」により識別される更新について、データベースサーバ「A」に対する更新データの配信が成功したことを記憶し、データベースサーバBに対する配信が終了したことを記憶する。   In the example illustrated in FIG. 5, the distribution information DB 213 stores a record including the update ID “I001”, the database server name “database server A”, the distribution result “OK”, and the update result “OK”. In other words, in the example shown in FIG. 5, the distribution information DB 213 stores the successful distribution of update data to the database server “A” for the update identified by the update ID “I001”. Remember that it has finished.

また、配信情報DB213に記憶された情報は、制御部220により更新され、キャッシュサーバ300がIR情報をデータベースサーバ200から削除するか否かを判定する際に用いられる。また、複数あるデータベースサーバ200の配信情報DB213は、同一の情報を記憶する。言い換えると、複数あるデータベースサーバ200各々が、データベースサーバ200各々についての配信結果や更新結果を共有する。   The information stored in the distribution information DB 213 is updated by the control unit 220 and used when the cache server 300 determines whether to delete the IR information from the database server 200. Further, the distribution information DB 213 of the plurality of database servers 200 stores the same information. In other words, each of the plurality of database servers 200 shares a distribution result and an update result for each database server 200.

なお、配信情報DB213に記憶された情報は、後述するように、キャッシュサーバ300が、IR情報をデータベースサーバ200から削除する削除処理を実行するか否かを判定する際に用いられる。配信情報DB213に記憶された情報は、後述するように、制御部220によって更新される。   The information stored in the distribution information DB 213 is used when the cache server 300 determines whether or not to execute a deletion process for deleting the IR information from the database server 200, as will be described later. The information stored in the distribution information DB 213 is updated by the control unit 220 as described later.

図2の説明に戻る。装置情報DB214は、データベースサーバ200各々の状態を記憶する。具体的には、装置情報DB214は、データベースサーバ200各々について、他のデータベースサーバ200からの更新データを受信したり、更新を実行したり、他のデータベースサーバ200に更新データを配信したりすることが可能であるか否かを示す情報を記憶する。   Returning to the description of FIG. The device information DB 214 stores the state of each database server 200. Specifically, the device information DB 214 receives, for each database server 200, update data from another database server 200, executes update, and distributes update data to the other database server 200. Information indicating whether or not is possible is stored.

図6は、実施例1におけるデータベースサーバの装置情報DBに記憶された情報の一例を示す図である。図6に示す例では、装置情報DB214は、「データベースサーバ名」に対応付けて、データベースサーバ200の状態を示す「装置状態」を記憶する。以下では、装置状態「正常」は、データベースサーバ200が更新データを配信したり受信したり、更新を実行したりする際に用いられるリソースが正常に動作しており、更新データの配信や受信が可能な状態であることを示す。また、装置状態「故障」は、データベースサーバ200が更新データを配信したり受信したり、更新を実行したりする際に用いられるリソースのいずれか1つ以上が故障しており、更新データの配信や受信、更新が不可能な状態であることを示す。   FIG. 6 is a diagram illustrating an example of information stored in the device information DB of the database server in the first embodiment. In the example illustrated in FIG. 6, the device information DB 214 stores “device state” indicating the state of the database server 200 in association with “database server name”. In the following description, the device status “normal” indicates that the resource used when the database server 200 distributes or receives update data or executes update is operating normally, and the update data is distributed or received. Indicates that it is possible. The device state “failure” indicates that one or more of the resources used when the database server 200 distributes, receives, or executes update data is out of order, and the update data is distributed. Indicates that it cannot be received or updated.

図6に示す例では、装置情報DB214は、データベースサーバ名「データベースサーバA」に対応付けて、装置状態「正常」を記憶する。また、装置情報DB214は、データベースサーバ名「データベースサーバB」に対応付けて、装置状態「正常」を記憶する。すなわち、装置情報DB214は、データベースサーバ「A」とデータベースサーバ「B」とが、共に、更新データの配信や受信が可能な状態であることを記憶する。なお、各データベースサーバ300の装置情報DB214各々が、全データベースサーバ200についての装置情報を記憶する。   In the example illustrated in FIG. 6, the device information DB 214 stores the device state “normal” in association with the database server name “database server A”. Further, the device information DB 214 stores the device state “normal” in association with the database server name “database server B”. That is, the device information DB 214 stores that both the database server “A” and the database server “B” are in a state in which update data can be distributed and received. Each device information DB 214 of each database server 300 stores device information for all database servers 200.

ここで、装置情報DB214に記憶された情報は、データベースサーバ200が、自データベースサーバのユーザ情報DB211のデータが更新された場合に、更新データを配信する配信先となるデータベースサーバ200を決定する際に用いられる。また、装置情報DB214に記憶された情報は、監視サーバ400によって更新される。   Here, the information stored in the device information DB 214 is used when the database server 200 determines the database server 200 to be a distribution destination to which the update data is distributed when the data in the user information DB 211 of the own database server is updated. Used for. The information stored in the device information DB 214 is updated by the monitoring server 400.

図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は、「更新情報送信部」とも称する。   Returning to the description of FIG. The control unit 220 is connected to the communication control I / F unit 201 and the storage unit 210. The control unit 220 has an internal memory that stores a control program such as an OS (Operating System) and a program that defines various processing procedures, and controls various processes. The control unit 220 is, for example, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a central processing unit (CPU), or a micro processing unit (MPU). In the example shown in FIG. 2, the control unit 220 includes a cache response unit 221, an IR information response unit 222, an update information response unit 223, an update success / failure response unit 224, a device status response unit 225, and a device status storage unit. 226, a block control unit 227, an update information distribution unit 228, and an update re-propagation unit 229. Details of each part will be described later. The update information distribution unit 228 is also referred to as a “storage unit”. The update information response unit 223 is also referred to as an “update information transmission unit”.

[実施例1におけるキャッシュサーバの構成]
図7は、実施例1におけるキャッシュサーバの構成の一例を示すブロック図である。図7に示す例では、キャッシュサーバ300は、通信制御I/F部301と、記憶部310と、制御部320とを有する。
[Configuration of Cache Server in Embodiment 1]
FIG. 7 is a block diagram illustrating an example of the configuration of the cache server according to the first embodiment. In the example illustrated in FIG. 7, the cache server 300 includes a communication control I / F unit 301, a storage unit 310, and a control unit 320.

通信制御I/F部301は、制御部320と接続される。通信制御I/F部301は、データベースサーバ200やクライアント端末500との間でデータの送受信を行う。なお、通信制御I/F部301により送受信される情報の詳細については、適宜後述する。   The communication control I / F unit 301 is connected to the control unit 320. The communication control I / F unit 301 exchanges data with the database server 200 and the client terminal 500. Details of information transmitted and received by the communication control I / F unit 301 will be described later as appropriate.

記憶部310は、制御部320と接続される。記憶部310は、制御部320による各種処理に用いるデータ及びプログラムを記憶する。記憶部310は、例えば、RAMやフラッシュメモリなどの半導体メモリ素子、又は、ハードディスクや光ディスクなどである。図7に示す例では、記憶部310は、キャッシュ311と、検索先状態DB312と、更新登録状態DB313とを有する。   Storage unit 310 is connected to control unit 320. The storage unit 310 stores data and programs used for various processes performed by the control unit 320. The storage unit 310 is, for example, a semiconductor memory element such as a RAM or a flash memory, or a hard disk or an optical disk. In the example illustrated in FIG. 7, the storage unit 310 includes a cache 311, a search destination state DB 312, and an update registration state DB 313.

キャッシュ311は、データベースサーバ200のユーザ情報DB211に記憶されたデータのキャッシュを記憶する。具体的には、キャッシュ311は、ユーザ情報DB211に記憶されたデータのうち、過去に利用されたデータのキャッシュを記憶する。   The cache 311 stores a cache of data stored in the user information DB 211 of the database server 200. Specifically, the cache 311 stores a cache of data used in the past among the data stored in the user information DB 211.

図8は、実施例1におけるキャッシュサーバのキャッシュに記憶された情報の一例を示す図である。図8に示す例では、キャッシュ311は、キー情報と属性情報とを対応付けて記憶する。図8に示す例では、キャッシュ311は、キー情報「U001」と属性情報「P001」とを対応付けて記憶し、キー情報「U002」と属性情報「P002」とを対応付けて記憶する。   FIG. 8 is a diagram illustrating an example of information stored in the cache of the cache server according to the first embodiment. In the example illustrated in FIG. 8, the cache 311 stores key information and attribute information in association with each other. In the example illustrated in FIG. 8, the cache 311 stores key information “U001” and attribute information “P001” in association with each other, and stores key information “U002” and attribute information “P002” in association with each other.

なお、キャッシュ311に記憶されるデータは、ユーザ情報DB211に記憶されるデータの一部又は全てとなる。なお、ユーザ情報DB211のデータが更新され、更新されたデータのコピーをキャッシュ311が記憶していた場合について説明する。この場合、キャッシュ311が記憶するデータは、古いデータとなる。キャッシュ311に記憶された古いデータは、後述するように、制御部320によって、データベースサーバ200から取得するIR情報に基づいて削除される。   Note that the data stored in the cache 311 is part or all of the data stored in the user information DB 211. A case where the data in the user information DB 211 is updated and the cache 311 stores a copy of the updated data will be described. In this case, the data stored in the cache 311 is old data. The old data stored in the cache 311 is deleted by the control unit 320 based on the IR information acquired from the database server 200, as will be described later.

図7の説明に戻る。検索先状態DB312は、データベースサーバ200各々の状態を記憶する。具体的には、検索先状態DB312は、データベースサーバ200各々について、データ検索要求の送信先として良いか否かを記憶する。つまり、検索先状態DB312は、データ要求により要求されるデータのキャッシュがない場合に、データ要求により要求されるデータの検索を要求しても良いデータベースサーバ200のデータベースサーバ名を記憶する。   Returning to the description of FIG. The search destination status DB 312 stores the status of each database server 200. Specifically, the search destination state DB 312 stores whether or not each database server 200 may be a data search request transmission destination. That is, the search destination state DB 312 stores the database server name of the database server 200 that may request a search for the data requested by the data request when there is no cache for the data requested by the data request.

図9は、実施例1におけるキャッシュサーバの検索先状態DBに記憶された情報の一例を示す図である。図9に示す例では、「データベースサーバ名」と「閉塞状態」とを対応付けて記憶する。ここで、閉塞状態「未閉塞」は、データベースサーバ200が閉塞されておらず、データベースサーバ200に対してデータ検索要求の送信先として良いことを示す。また、閉塞状態「閉塞」は、データベースサーバ200が閉塞されており、データベースサーバ200に対してデータ検索要求の送信先とできないことを示す。   FIG. 9 is a diagram illustrating an example of information stored in the search destination state DB of the cache server according to the first embodiment. In the example shown in FIG. 9, “database server name” and “blocking state” are stored in association with each other. Here, the blocked state “non-blocked” indicates that the database server 200 is not blocked and may be a data search request transmission destination to the database server 200. Further, the blocked state “blocked” indicates that the database server 200 is blocked and cannot be a transmission destination of a data search request to the database server 200.

すなわち、後述するように、キャッシュサーバ300は、データベースサーバ200にデータ検索要求を送信する場合に、閉塞状態「閉塞」となっているデータベースサーバ200にはデータ検索要求を送信しない。また、キャッシュサーバ300は、データベースサーバ200にデータ検索要求を実行する場合に、閉塞状態「未閉塞」となっているデータベースサーバ200にデータ検索要求を送信する。   That is, as will be described later, when the cache server 300 transmits a data search request to the database server 200, the cache server 300 does not transmit the data search request to the database server 200 in the blocked state “blocked”. Further, when the cache server 300 executes a data search request to the database server 200, the cache server 300 transmits the data search request to the database server 200 that is in the blocked state “not blocked”.

図9に示す例では、検索先状態DB312は、データベースサーバ名「データベースサーバA」と閉塞状態「未閉塞」とを対応付けて記憶する。また、検索先状態DB312は、データベースサーバ名「データベースサーバB」と閉塞状態「未閉塞」とを対応付けて記憶する。すなわち、検索先状態DB312は、データベースサーバ「A」とデーベースサーバ「B」との両方が閉塞されておらず、データ検索が可能な状態であることを示す。   In the example illustrated in FIG. 9, the search destination state DB 312 stores the database server name “database server A” and the blocked state “unblocked” in association with each other. In addition, the search destination state DB 312 stores the database server name “database server B” and the blocked state “unblocked” in association with each other. That is, the search destination state DB 312 indicates that both the database server “A” and the database server “B” are not blocked, and a data search is possible.

検索先状態DB312に記憶されたデータベースサーバ名各々により識別されるデータベースサーバ200各々は、キャッシュサーバ300が自装置に存在しないデータについてのデータ検索要求を送信する場合に、送信先となる検索先となるデータベースサーバ200となる。また、検索先状態DB312の閉塞状態の初期値は、例えば、「閉塞」とする。検索先状態DB312に記憶される閉塞状態は、後述するように、制御部320により更新される。   Each database server 200 identified by each database server name stored in the search destination status DB 312 includes a search destination as a transmission destination when the cache server 300 transmits a data search request for data that does not exist in its own device. The database server 200 becomes. In addition, the initial value of the blocking state in the search destination state DB 312 is, for example, “blocking”. The blocking state stored in the search destination state DB 312 is updated by the control unit 320 as described later.

図7の説明に戻る。更新登録状態DB313は、複数あるデータベースサーバ200各々について、データベースサーバ200においてデータの更新が成功している状態であるかを記憶する。図10は、実施例1におけるキャッシュサーバの更新登録状態DB313に記憶された情報の一例を示す図である。図10に示す例では、更新登録状態DB313は、「データベースサーバ名」と、データベースサーバ200においてデータの更新が成功している状態であるかを示す「更新登録状態」とを対応付けて記憶する。   Returning to the description of FIG. The update registration state DB 313 stores, for each of the plurality of database servers 200, whether or not the data update is successful in the database server 200. FIG. 10 is a diagram illustrating an example of information stored in the update registration state DB 313 of the cache server according to the first embodiment. In the example illustrated in FIG. 10, the update registration state DB 313 stores a “database server name” and an “update registration state” that indicates whether data update has been successful in the database server 200 in association with each other. .

ここで、登録状態情報「正常」は、データベースサーバ200において更新が正常に行われていることを示す。登録状態情報「伝播異常検出」は、データベースサーバ200において故障などにより更新が失敗したことを検出したことを示す。登録状態情報「伝播異常」は、データベースサーバ200において故障などにより更新が失敗し、更新が失敗している状態が継続していることを示す。登録状態情報「正常移行中」は、故障回復などにより、前回の更新登録状態は「伝播異常」であったが、現在はデータベースサーバ200において更新が正常に行われていることを示す。   Here, the registration status information “normal” indicates that the database server 200 is normally updated. The registration status information “propagation abnormality detection” indicates that the database server 200 detects that the update has failed due to a failure or the like. The registration state information “propagation abnormality” indicates that the update has failed in the database server 200 due to a failure or the like, and the state in which the update has failed continues. The registration status information “normally transitioning” indicates that the previous update registration status was “propagation abnormality” due to failure recovery or the like, but now the database server 200 is updating normally.

図10に示す例では、更新登録状態DB313は、データベースサーバ名「データベースサーバA」と更新登録状態「正常」とを対応付けて記憶する。また、更新登録状態DB313は、データベースサーバ名「データベースサーバB」と更新登録状態「正常」とを対応付けて記憶する。すなわち、更新登録状態DB313は、データベースサーバ「A」とデータベースサーバ「B」とにおいて、更新が正常に行われていることを記憶する。   In the example illustrated in FIG. 10, the update registration state DB 313 stores the database server name “database server A” and the update registration state “normal” in association with each other. Further, the update registration state DB 313 stores the database server name “database server B” and the update registration state “normal” in association with each other. That is, the update registration state DB 313 stores that the update is normally performed in the database server “A” and the database server “B”.

なお、更新登録状態DB313に記憶された情報は、後述するように、制御部320が、IR情報をデータベースサーバ200から削除する削除処理を実行するか否かを判定する際に用いられる。更新登録状態DB313に記憶された情報は、後述するように、制御部320によって更新される。また、更新登録状態DB313は、例えば、自装置が参照する可能性のあるすべてのデータベースサーバ200について、更新登録状態の初期値として、更新登録状態「伝播異常」を記憶する。   Note that the information stored in the update registration state DB 313 is used when the control unit 320 determines whether or not to execute a deletion process for deleting the IR information from the database server 200, as will be described later. The information stored in the update registration state DB 313 is updated by the control unit 320 as will be described later. Further, the update registration state DB 313 stores, for example, the update registration state “propagation abnormality” as an initial value of the update registration state for all the database servers 200 that may be referred to by the own apparatus.

図7の説明に戻る。制御部320は、通信制御I/F部301及び記憶部310と接続される。制御部320は、OSなどの制御プログラム、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部320は、例えば、ASIC、FPGA、CPU、MPUなどである。図7に示す例では、制御部320は、キャッシュ判定部321と、IR情報判定部322と、応答処理部323とを有する。なお、各部の詳細については後述する。なお、IR情報判定部322は、「更新情報取得部」や「無効処理部」、「更新結果取得部」、「削除処理部」、「更新状態判定部」とも称する。   Returning to the description of FIG. The control unit 320 is connected to the communication control I / F unit 301 and the storage unit 310. The control unit 320 has an internal memory that stores a control program such as an OS and a program that defines various processing procedures, and controls various processes. The control unit 320 is, for example, an ASIC, FPGA, CPU, MPU, or the like. In the example illustrated in FIG. 7, the control unit 320 includes a cache determination unit 321, an IR information determination unit 322, and a response processing unit 323. Details of each part will be described later. The IR information determination unit 322 is also referred to as “update information acquisition unit”, “invalid processing unit”, “update result acquisition unit”, “deletion processing unit”, and “update state determination unit”.

[実施例1における監視サーバの構成]
図11は、実施例1における監視サーバの構成の一例を示すブロック図である。図11に示す例では、監視サーバ400は、通信制御I/F部401と、記憶部410と、制御部420とを有する。
[Configuration of Monitoring Server in First Embodiment]
FIG. 11 is a block diagram illustrating an example of the configuration of the monitoring server according to the first embodiment. In the example illustrated in FIG. 11, the monitoring server 400 includes a communication control I / F unit 401, a storage unit 410, and a control unit 420.

通信制御I/F部401は、制御部420と接続される。通信制御I/F部401は、データベースサーバ200各々とデータの送受信を行う。なお、通信制御I/F部401により送受信される情報の詳細については、適宜後述する。   The communication control I / F unit 401 is connected to the control unit 420. The communication control I / F unit 401 transmits / receives data to / from each database server 200. Details of information transmitted and received by the communication control I / F unit 401 will be described later as appropriate.

記憶部410は、制御部420と接続される。記憶部410は、制御部420による各種処理に用いるデータ及びプログラムを記憶する。記憶部410は、例えば、RAMやフラッシュメモリなどの半導体メモリ素子、又は、ハードディスクや光ディスクなどである。図11に示す例では、記憶部410は、装置情報DB411を有する。   Storage unit 410 is connected to control unit 420. The storage unit 410 stores data and programs used for various processes performed by the control unit 420. The storage unit 410 is, for example, a semiconductor memory element such as a RAM or a flash memory, or a hard disk or an optical disk. In the example illustrated in FIG. 11, the storage unit 410 includes a device information DB 411.

装置情報DB411は、データベースサーバ200各々の状態を記憶する。図12は、実施例1における監視サーバの装置情報DBに記憶された情報の一例を示す図である。図12に示す例では、装置情報DB411は、「データベースサーバ名」に対応付けて「装置状態」を記憶する。なお、装置情報DB411は、初期値として、複数あるデータベースサーバ200各々のデータベースサーバ名を記憶する。   The device information DB 411 stores the state of each database server 200. FIG. 12 is a diagram illustrating an example of information stored in the device information DB of the monitoring server according to the first embodiment. In the example illustrated in FIG. 12, the device information DB 411 stores “device state” in association with “database server name”. The device information DB 411 stores the database server name of each of the plurality of database servers 200 as an initial value.

図12に示す例では、装置情報DB411は、データベースサーバ名「データベースサーバA」に対応付けて、装置状態「正常」を記憶する。また、装置情報DB411は、データベースサーバ名「データベースサーバB」に対応付けて、装置状態「正常」を記憶する。すなわち、装置情報DB411は、データベースサーバ「A」とデータベースサーバ「B」とが、共に、更新データの配信や受信、更新が可能な状態であることを記憶する。装置情報DB411に記憶された情報は、制御部420によって格納される。   In the example illustrated in FIG. 12, the device information DB 411 stores the device state “normal” in association with the database server name “database server A”. Further, the device information DB 411 stores the device state “normal” in association with the database server name “database server B”. That is, the device information DB 411 stores that both the database server “A” and the database server “B” are in a state in which update data can be distributed, received, and updated. Information stored in the device information DB 411 is stored by the control unit 420.

図11の説明に戻る。制御部420は、通信制御I/F部401及び記憶部410と接続される。制御部420は、OSなどの制御プログラム、各種の処理手順などを規定したプログラムを記憶する内部メモリを有し、種々の処理を制御する。制御部420は、例えば、ASIC、FPGA、CPU、MPUなどである。図11に示す例では、制御部420は、故障判定部421を有する。なお、故障判定部421の詳細については後述する。   Returning to the description of FIG. The control unit 420 is connected to the communication control I / F unit 401 and the storage unit 410. The control unit 420 has an internal memory that stores a control program such as an OS and a program that defines various processing procedures, and controls various processes. The control unit 420 is, for example, an ASIC, FPGA, CPU, MPU, or the like. In the example illustrated in FIG. 11, the control unit 420 includes a failure determination unit 421. Details of the failure determination unit 421 will be described later.

[実施例1に係るキャッシュ制御システムによる処理]
実施例1に係るキャッシュ制御システムによる処理について説明する。以下では、キャッシュ制御システムが有する各装置間における処理の流れの一例をシーケンス図を用いて簡単に説明し、その後、各装置の各部による詳細な処理の流れの一例をフローチャートを用いて説明する。
[Processing by Cache Control System According to Embodiment 1]
Processing performed by the cache control system according to the first embodiment will be described. Hereinafter, an example of a flow of processing between devices included in the cache control system will be briefly described with reference to a sequence diagram, and then an example of a detailed processing flow by each unit of each device will be described with reference to a flowchart.

[実施例1におけるデータベースサーバ各々間における処理]
図13は、実施例1におけるデータベースサーバ各々間における処理の流れの一例を示すシーケンス図である。図13では、2つのデータベースサーバ200がある場合を用いて説明する。具体的には、データベースサーバ「A」及びデータベースサーバ「B」を用いて説明する。また、以下では、データベースサーバ「A」のユーザ情報DB211に記憶されたデータに対する更新指示があった場合を用いて説明する。
[Processing between Database Servers in Embodiment 1]
FIG. 13 is a sequence diagram illustrating an example of a process flow between the database servers in the first embodiment. In FIG. 13, a case where there are two database servers 200 will be described. Specifically, description will be made using the database server “A” and the database server “B”. In the following description, a case where there is an update instruction for data stored in the user information DB 211 of the database server “A” will be described.

図13に示すように、更新指示があると(ステップS1401肯定)、データベースサーバ「A」の更新情報配信部228は、更新IDの払い出す(ステップS1402)。例えば、更新情報配信部228は、配信時刻を更新IDとして払い出したり、配信情報に枝番号を付加した情報を更新IDとして払い出したりする。より詳細な一例をあげて説明すると、更新情報配信部228は、更新ID「I001」を払い出す。   As shown in FIG. 13, when there is an update instruction (Yes at Step S1401), the update information distribution unit 228 of the database server “A” pays out an update ID (Step S1402). For example, the update information distribution unit 228 pays out the distribution time as an update ID, or pays out information obtained by adding a branch number to the distribution information as an update ID. To explain with a more detailed example, the update information distribution unit 228 issues an update ID “I001”.

そして、更新情報配信部228は、複数あるデータベースサーバ200各々に更新データを配信する(ステップS1403)。例えば、更新情報配信部228は、データベースサーバ「B」に、更新ID「I001」と、更新指示により更新されるデータを識別するキー情報と、更新後のデータとを送信する。   Then, the update information distribution unit 228 distributes update data to each of the plurality of database servers 200 (step S1403). For example, the update information distribution unit 228 transmits to the database server “B” the update ID “I001”, key information for identifying data to be updated according to the update instruction, and the updated data.

その後、データベースサーバ「A」の更新情報配信部228は、複数あるデータベースサーバ200の配信情報DB213各々に、データベースサーバ200各々についての配信結果を更新IDに対応付けて格納する(ステップS1404)。例えば、更新情報配信部228は、配信が成功したデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて配信結果「OK」を格納し、配信が成功しなかったデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて配信結果「未配信」を格納する。なお、更新情報配信部228は、装置状態が正常ではなく、配信先とならなかったデータベースサーバ200についても、データベースサーバ名と更新ID「I001」とに対応付けて、配信結果「未配信」を初期値として格納する。   Thereafter, the update information distribution unit 228 of the database server “A” stores the distribution result for each database server 200 in association with the update ID in each of the distribution information DBs 213 of the plurality of database servers 200 (step S1404). For example, the update information distribution unit 228 stores the distribution result “OK” in association with the database server name of the database server 200 that has been successfully distributed and the update ID “I001”, and the database server 200 that has not been successfully distributed. The distribution result “undelivered” is stored in association with the database server name and the update ID “I001”. Note that the update information distribution unit 228 also sets the distribution result “undistributed” in association with the database server name and the update ID “I001” for the database server 200 whose device state is not normal and has not become a distribution destination. Store as initial value.

そして、データベースサーバ「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各々について、データの更新が終了したか否かを示す更新結果を記憶する。   Then, the update information distribution unit 228 of the database server “A” updates the user information DB 211 of the database server 200 with the distribution result “OK” (step S1405). Then, the update information distribution unit 228 of the database server “A” stores the update result for each database server 200 in association with the update ID in each of the distribution information DBs 213 of the plurality of database servers 200 (step S1406). For example, the update information distribution unit 228 stores the update result “OK” in association with the database server name of the database server 200 that has been determined to have been successfully updated and the update ID “I001”. More specifically, the update information distribution unit 228 stores the update result “OK” in association with the database server name “database server B” and the update ID “I001”. The update information distribution unit 228 also stores the update result “OK” in association with the update ID “I001” for the database server name “database server A”. For example, the update information distribution unit 228 stores the update result “NG” in association with the database server name of the database server 200 that has not been determined to have been successfully updated and the update ID “I001”. That is, each database server 200 stores an update result indicating whether or not the data update is completed for each of the plurality of database servers 200.

また、ここで、各データベースサーバ200では、ユーザ情報DB211が更新されると、更新情報配信部228が、IR情報を生成し、自装置のデータベースサーバ200のIR情報DB212に格納する(ステップS1407)。具体的には、更新情報配信部228は、更新データに含まれる更新IDとキー情報とを対応付けて、IR情報DB212に格納する。また、ここで、更新情報配信部228は、データベースサーバ200と接続された複数あるキャッシュサーバ300のキャッシュサーバ名各々に対応付けて、IR情報を格納する。例えば、更新情報配信部228が、キャッシュサーバ名「キャッシュサーバA」に対応付けてIR情報を格納し、キャッシュサーバ名「キャッシュサーバB」に対応付けてIR情報を格納する。   Here, in each database server 200, when the user information DB 211 is updated, the update information distribution unit 228 generates IR information and stores it in the IR information DB 212 of the database server 200 of the own device (step S1407). . Specifically, the update information distribution unit 228 associates the update ID and key information included in the update data and stores them in the IR information DB 212. Here, the update information distribution unit 228 stores IR information in association with each of the cache server names of a plurality of cache servers 300 connected to the database server 200. For example, the update information distribution unit 228 stores IR information in association with the cache server name “cache server A”, and stores IR information in association with the cache server name “cache server B”.

つまり、各データベースサーバ300の更新情報配信部228各々は、自データベースサーバのデータが更新される場合に、更新されるデータを識別するキー情報を含むIR情報を複数あるキャッシュサーバ名各々に対応付けてIR情報DB212に格納する。   That is, each update information distribution unit 228 of each database server 300 associates IR information including key information for identifying the data to be updated with each of a plurality of cache server names when the data of the own database server is updated. And stored in the IR information DB 212.

なお、図13に示す例では、データベースサーバ「A」とデータベースサーバ「B」の両方について、ユーザ情報DB211が更新された結果、IR情報が生成されて格納された場合を示した。   In the example illustrated in FIG. 13, IR information is generated and stored as a result of updating the user information DB 211 for both the database server “A” and the database server “B”.

なお、上記の処理手順は、上記の順番に限定されるものではなく、処理内容を矛盾させない範囲で適宜変更しても良い。例えば、上述の説明では、データベースサーバ200が2つである場合を用いて説明したが、これに限定されるものではなく、3つ以上であっても良い。   In addition, said process procedure is not limited to said order, You may change suitably in the range which does not contradict a process content. For example, in the above description, the case where there are two database servers 200 has been described. However, the present invention is not limited to this, and may be three or more.

また、上述した説明では、データベースサーバ「A」の更新情報配信部228が、データベースサーバ「B」のユーザ情報DB211を更新したり、配信情報DB213に配信結果や更新結果を格納したりする場合を例に示した。ただし、これに限定されるものではなく、データベースサーバ「B」の更新情報配信部228がユーザ情報DB211を更新したり、配信情報DB213に配信結果や更新結果を格納したりしても良い。なお、更新情報配信部228により更新データが配信されなかったデータベースサーバ200に対しては、後述するように、更新再伝播部229により配信される。   In the above description, the update information distribution unit 228 of the database server “A” updates the user information DB 211 of the database server “B” or stores the distribution result and the update result in the distribution information DB 213. Shown in the example. However, the present invention is not limited to this, and the update information distribution unit 228 of the database server “B” may update the user information DB 211 or store the distribution result and the update result in the distribution information DB 213. As will be described later, the update re-propagation unit 229 distributes the update data to the database server 200 to which the update information distribution unit 228 has not distributed update data.

[実施例1におけるデータベースサーバと監視サーバ間における処理]
図14は、実施例1におけるデータベースサーバと監視サーバ間における処理の流れの一例を示すシーケンス図である。以下に説明する処理は、定期的に実行されたり、不定期に実行されたりする。図14に示す例では、記載の便宜上、データベースサーバ200を1つ示した。
[Processing between Database Server and Monitoring Server in Embodiment 1]
FIG. 14 is a sequence diagram illustrating an example of a flow of processing between the database server and the monitoring server in the first embodiment. The processing described below is executed regularly or irregularly. In the example shown in FIG. 14, one database server 200 is shown for convenience of description.

図14に示すように、監視サーバ400の故障判定部421は、送信タイミングとなると(ステップS1501肯定)、自装置の装置情報DB411から、データベースサーバ名の一覧を取得し、取得したデータベースサーバ名により識別されるデータベースサーバ200各々に装置状態要求を送信する(ステップS1502)。例えば、故障判定部421は、データベースサーバ「A」に装置状態要求を送信する。   As illustrated in FIG. 14, the failure determination unit 421 of the monitoring server 400 acquires a list of database server names from the device information DB 411 of its own device at the transmission timing (Yes in step S1501), and uses the acquired database server name. An apparatus status request is transmitted to each identified database server 200 (step S1502). For example, the failure determination unit 421 transmits a device status request to the database server “A”.

その後、データベースサーバ200の装置状態応答部225は、装置状態要求を受信すると、自装置の状態を確認し(ステップS1503)、装置状態要求に対応する応答となる装置情報を送信する(ステップS1504)。例えば、装置状態応答部225は、後述する更新情報配信部228や更新再伝播部229による処理が実行される際に用いられる各種プロセスやネットワークの状態等を確認し、装置情報として送信する。   Thereafter, upon receiving the device status request, the device status response unit 225 of the database server 200 confirms the status of the device itself (step S1503), and transmits device information serving as a response corresponding to the device status request (step S1504). . For example, the device status response unit 225 checks various processes used when processing by the update information distribution unit 228 and the update re-propagation unit 229 described later, the status of the network, and the like, and transmits them as device information.

その後、監視サーバ400の故障判定部421は、装置情報を受信すると、データベースサーバ200からの装置状態応答に基づいて故障判定を実行し(ステップS1505)、判定結果を装置情報DB411に格納する(ステップS1506)。例えば、データベースサーバ「A」について装置状態が「正常」であると判定した場合には、故障判定部421は、装置情報DB411に記憶された装置状態のうち、データベースサーバ「A」に対応付けられた装置状態を「正常」に更新する。   After that, when receiving the device information, the failure determination unit 421 of the monitoring server 400 executes failure determination based on the device state response from the database server 200 (step S1505), and stores the determination result in the device information DB 411 (step S1505). S1506). For example, when it is determined that the device state of the database server “A” is “normal”, the failure determination unit 421 is associated with the database server “A” among the device states stored in the device information DB 411. Update the device status to “Normal”.

ここで、監視サーバ400の故障判定部421は、故障していると判定した場合には(ステップS1507肯定)、処理対象となったデータベースサーバ200に、キャッシュサーバ300との間におけるデータの送受信を閉塞する旨の閉塞要求を送信する(ステップS1508)。なお、故障判定部421は、故障であると判定しなかった場合には(ステップS1507否定)、閉塞要求を送信しない。   If the failure determination unit 421 of the monitoring server 400 determines that there is a failure (Yes at step S1507), the database server 200 that is the processing target transmits / receives data to / from the cache server 300. A block request for blocking is transmitted (step S1508). If the failure determination unit 421 does not determine that there is a failure (No in step S1507), the failure determination unit 421 does not transmit a block request.

そして、監視サーバ400の故障判定部421は、全データベースサーバ200について実施していない場合には(ステップS1509否定)、ステップS1502に戻って処理を繰り返す。一方、故障判定部421は、全データベースサーバ200について実施した場合には(ステップS1509肯定)、各データベースサーバ200各々についての判定結果となる装置状態各々を格納する旨の装置状態格納要求をデータベースサーバ200各々に送信し(ステップS1510)、処理を終了する。   Then, the failure determination unit 421 of the monitoring server 400 returns to step S1502 and repeats the process when not executing all the database servers 200 (No at step S1509). On the other hand, when the failure determination unit 421 is executed for all the database servers 200 (Yes at step S1509), the failure determination unit 421 issues a device state storage request for storing each device state as a determination result for each database server 200 to the database server. 200 (step S1510), and the process ends.

一方、データベースサーバ200では、閉塞要求を受信すると、閉塞制御部227が、キャッシュサーバとの間におけるデータの送受信を閉塞する(ステップS1511)。また、データベースサーバ200では、装置状態格納要求を受信すると、装置状態格納部226が、データベースサーバ200各々についての装置状態を受信した装置情報格納要求から取得し、自装置の装置情報DB214に格納する(ステップS1512)。   On the other hand, when the database server 200 receives the block request, the block control unit 227 blocks data transmission / reception with the cache server (step S1511). In the database server 200, when the device status storage request is received, the device status storage unit 226 acquires the device status for each database server 200 from the received device information storage request and stores it in the device information DB 214 of the own device. (Step S1512).

[実施例1におけるキャッシュサーバとデータベースサーバの間における処理]
図15及び図16は、実施例1におけるキャッシュサーバとデータベースサーバの間における処理の流れの一例について示すシーケンス図である。以下に詳細に説明するように、図15に記載された一連の処理は、キャッシュサーバ300が検索先状態DB312を更新する際に実行される。また、図16に記載された一連の処理は、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する際に実行される。なお、以下では、説明の便宜上、キャッシュサーバ300が検索先状態DB312を更新する際に実行される処理と、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する処理とを分けて説明するが、一連の処理として連続して実行しても良い。
[Processing between Cache Server and Database Server in Embodiment 1]
15 and 16 are sequence diagrams illustrating an example of a flow of processing between the cache server and the database server according to the first embodiment. As will be described in detail below, the series of processing described in FIG. 15 is executed when the cache server 300 updates the search destination state DB 312. Also, a series of processes described in FIG. 16 is executed when the cache server 300 acquires IR information from the database server 200. In the following, for convenience of explanation, the processing executed when the cache server 300 updates the search destination state DB 312 and the processing in which the cache server 300 acquires IR information from the database server 200 will be described separately. You may perform continuously as a series of processes.

図15を用いて、キャッシュサーバ300が検索先状態DB312を更新する際に、キャッシュサーバ300とデータベースサーバ200との間で行われる処理の流れの一例を示す。   FIG. 15 shows an example of the flow of processing performed between the cache server 300 and the database server 200 when the cache server 300 updates the search destination state DB 312.

図15に示す例では、キャッシュサーバ300のIR情報判定部322は、送信タイミングとなると(ステップS1601肯定)、検索先状態DB312に記憶されたデータベースサーバ名を含む更新成否要求を送信する(ステップS1602)。更新成否要求は、データベースサーバ200における更新処理の状況を示す更新成否結果を要求する情報である。また、IR情報判定部322は、検索先状態DB312に記憶されたデータベースサーバ名それぞれについて、更新成否要求を送信する。   In the example illustrated in FIG. 15, the IR information determination unit 322 of the cache server 300 transmits an update success / failure request including the database server name stored in the search destination state DB 312 when the transmission timing comes (Yes in Step S1601) (Step S1602). ). The update success / failure request is information for requesting an update success / failure result indicating the status of update processing in the database server 200. Further, the IR information determination unit 322 transmits an update success / failure request for each database server name stored in the search destination state DB 312.

その後、データベースサーバ200の更新成否応答部224は、更新成否要求を受信すると、受信した更新成否要求に含まれるデータベースサーバ名に対応付けられた更新結果を配信情報DB213から取得する(ステップS1603)。例えば、更新成否応答部224は、更新成否要求に「データベースサーバA」が含まれていた場合には、更新成否応答部224は、図5に示す例では、更新結果「OK」を取得する。   Thereafter, when receiving the update success / failure request, the update success / failure response unit 224 of the database server 200 acquires an update result associated with the database server name included in the received update success / failure request from the distribution information DB 213 (step S1603). For example, when “database server A” is included in the update success / failure request, the update success / failure response unit 224 acquires the update result “OK” in the example illustrated in FIG.

そして、データベースサーバ200の更新情報配信部228は、取得した更新結果に基づいて更新成否結果を判定し(ステップS1604)、更新成否結果をキャッシュサーバ300に応答する(ステップS1605)。なお、更新情報配信部228による更新成否結果の判定処理については、後述するため、ここでは説明を省略する。   Then, the update information distribution unit 228 of the database server 200 determines an update success / failure result based on the acquired update result (step S1604), and responds to the cache server 300 with the update success / failure result (step S1605). Note that the update success / failure result determination process performed by the update information distribution unit 228 will be described later, and a description thereof will be omitted here.

その後、キャッシュサーバ300のIR情報判定部322は、データベースサーバ200から更新成否結果を受信すると、受信した更新成否結果に基づいて、データベースサーバ200の更新登録状態を判定する(ステップS1606)。つまり、IR情報判定部322は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ200各々について判定する。なお、IR情報判定部322による更新登録状態の判定処理については、後述するため、ここでは説明を省略する。   Thereafter, when receiving the update success / failure result from the database server 200, the IR information determination unit 322 of the cache server 300 determines the update registration state of the database server 200 based on the received update success / failure result (step S1606). That is, the IR information determination unit 322 determines, for each of the plurality of database servers 200, whether or not the update in the database server 200 is normally executed. Note that the update registration state determination processing by the IR information determination unit 322 will be described later, and thus the description thereof is omitted here.

そして、キャッシュサーバ300のIR情報判定部322は、判定結果となる更新登録状態を更新登録状態DB313に格納する(ステップS1607)。また、IR情報判定部322は、検索先状態DB312の閉塞状態を更新する(ステップS1608)。具体的には、詳細については後述するように、更新登録状態が「正常」である場合には、閉塞状態「未閉塞」を格納し、更新登録状態が「正常」でない場合には、閉塞状態「閉塞」を格納する。   Then, the IR information determination unit 322 of the cache server 300 stores the update registration state that is the determination result in the update registration state DB 313 (step S1607). Further, the IR information determination unit 322 updates the closed state of the search destination state DB 312 (step S1608). Specifically, as will be described in detail later, when the update registration state is “normal”, the block state “unblocked” is stored, and when the update registration state is not “normal”, the block state Stores “block”.

続いて、図16を用いて、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する際に、キャッシュサーバ300とデータベースサーバ200との間で行われる処理の流れの一例を示す。   Next, an example of the flow of processing performed between the cache server 300 and the database server 200 when the cache server 300 acquires IR information from the database server 200 will be described with reference to FIG.

図16に示すように、キャッシュサーバ300のIR情報判定部322は、送信タイミングとなると(ステップS1701肯定)、自キャッシュサーバ名を含むIR情報要求を送信する(ステップS1702)。例えば、キャッシュサーバ「A」は、キャッシュサーバ名「キャッシュサーバA」を含むIR情報要求を送信する。この場合、IR情報判定部322は、キャッシュサーバ「A」用のIR情報を要求することになる。つまり、IR情報判定部322は、複数あるデータベースサーバ200各々から、IR情報DB212によって自キャッシュサーバ300を識別するキャッシュサーバ名に対応付けて記憶されたIR情報を取得する。   As shown in FIG. 16, the IR information determination unit 322 of the cache server 300 transmits an IR information request including its own cache server name at the transmission timing (Yes at Step S1701) (Step S1702). For example, the cache server “A” transmits an IR information request including the cache server name “cache server A”. In this case, the IR information determination unit 322 requests IR information for the cache server “A”. That is, the IR information determination unit 322 acquires IR information stored in association with the cache server name that identifies the own cache server 300 from each of the plurality of database servers 200 using the IR information DB 212.

その後、データベースサーバ200のIR情報応答部222は、IR情報要求を受信すると、受信したIR情報要求に含まれる「キャッシュサーバ名」に対応するIR情報を自装置のIR情報DB212から取得し(ステップS1703)、IR情報応答としてキャッシュサーバ300に送信する(ステップS1704)。つまり、IR情報応答部233は、キー情報と更新IDとを含むIR情報を送信する。   After that, when receiving the IR information request, the IR information response unit 222 of the database server 200 acquires IR information corresponding to the “cache server name” included in the received IR information request from the IR information DB 212 of the own apparatus (step S1703), and transmits to the cache server 300 as an IR information response (step S1704). That is, the IR information response unit 233 transmits IR information including the key information and the update ID.

その後、キャッシュサーバ300のIR情報判定部322は、IR情報に含まれる更新IDをキーとする更新情報要求を送信する(ステップS1705)。例えば、IR情報として、キー情報「U001」と更新ID「I001」とを受信した場合を用いて説明する。この場合、IR情報判定部322は、更新ID「I001」を含む更新情報要求を送信する。すなわち、IR情報判定部322は、更新IDにより識別される更新について、データベースサーバ200各々について更新が行われたか否かを示す更新結果各々を要求する。言い換えると、IR情報判定部322は、データベースサーバ200から、配信情報DB213に記憶された複数あるデータベースサーバ200各々についての更新結果を取得する。   Thereafter, the IR information determination unit 322 of the cache server 300 transmits an update information request using the update ID included in the IR information as a key (step S1705). For example, a case where key information “U001” and update ID “I001” are received as IR information will be described. In this case, the IR information determination unit 322 transmits an update information request including the update ID “I001”. That is, the IR information determination unit 322 requests each update result indicating whether or not each database server 200 has been updated for the update identified by the update ID. In other words, the IR information determination unit 322 acquires update results for each of the plurality of database servers 200 stored in the distribution information DB 213 from the database server 200.

その後、データベースサーバ200の更新情報応答部223は、キャッシュサーバ300から更新情報要求を受信すると、受信した更新情報要求に含まれる更新IDに対応付けられた「データベースサーバ名、更新結果」すべてを配信情報DB213から取得し(ステップS1706)、更新情報応答としてキャッシュサーバ300に送信する(ステップS1707)。   After that, when the update information response unit 223 of the database server 200 receives the update information request from the cache server 300, it distributes all the “database server name, update result” associated with the update ID included in the received update information request. Obtained from the information DB 213 (step S1706), and transmits it to the cache server 300 as an update information response (step S1707).

その後、キャッシュサーバ300のIR情報判定部322は、自装置の更新登録状態DB313にデータベースサーバ200各々について記憶された更新登録状態と、受信した更新結果とに基づいて、IR情報を削除可能であるかを判定するIR情報削除判定処理を実行する(ステップS1708)。なお、IR情報削除判定処理の詳細については、後述するためここでは説明を後述する。   Thereafter, the IR information determination unit 322 of the cache server 300 can delete the IR information based on the update registration state stored for each database server 200 in the update registration state DB 313 of the own device and the received update result. IR information deletion determination processing is executed to determine whether or not (step S1708). The details of the IR information deletion determination process will be described later and will be described later.

そして、キャッシュサーバ300のIR情報判定部322は、削除可能であると判定した場合には(ステップS1709肯定)、削除しても良いと判定したIR情報に含まれるキー情報により識別されるデータをキャッシュ311から削除する(ステップS1710)。つまり、IR情報判定部322は、IR情報により識別されるデータのキャッシュを無効にする。   If the IR information determination unit 322 of the cache server 300 determines that deletion is possible (Yes in step S1709), the data identified by the key information included in the IR information determined to be deleted is stored. Delete from the cache 311 (step S1710). That is, the IR information determination unit 322 invalidates the cache of data identified by the IR information.

また、IR情報判定部322は、削除しても良いと判定したIR情報を削除する旨のIR情報削除要求をデータベースサーバ200に送信する(ステップS1711)。IR情報削除要求には、削除対象となるIR情報に含まれる更新IDが含まれる。その後、データベースサーバ200では、IR情報削除要求を受信すると、IR情報削除要求に含まれる更新IDを含むIR情報が削除される(ステップS1713)。   Further, the IR information determination unit 322 transmits an IR information deletion request for deleting the IR information determined to be deleted to the database server 200 (step S1711). The IR information deletion request includes an update ID included in the IR information to be deleted. Thereafter, when the database server 200 receives the IR information deletion request, the IR information including the update ID included in the IR information deletion request is deleted (step S1713).

つまり、キャッシュサーバ300のIR情報判定部322は、IR情報削除要求を送信することで、キャッシュサーバ300からIR情報を削除する。具体的には、詳細については後述するように、IR情報判定部322は、更新結果各々に基づいて、複数あるデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、IR情報をIR情報DB212から削除する削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。より詳細には、IR情報判定部322は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。   That is, the IR information determination unit 322 of the cache server 300 deletes the IR information from the cache server 300 by transmitting an IR information deletion request. Specifically, as will be described in detail later, the IR information determination unit 322 determines whether or not the update has been completed for all of the plurality of database servers 200 based on each update result, and the update has been completed. If it is determined, a deletion process for deleting the IR information from the IR information DB 212 is executed, and if it is determined that the update has not ended, the deletion process is not executed. More specifically, the IR information determination unit 322 determines whether or not the update has been completed for all the database servers 200 that are determined to be in a normally executed state, and determines that the update has been completed. Executes the deletion process and does not execute the deletion process when it is determined that the update has not ended.

また、キャッシュサーバ300のIR情報判定部322は、IR情報の取得先となるデータベースサーバ200すべてについて処理を実行したか否かを判定し(ステップS1712)、実行したと判定した場合には(ステップS1712肯定)、処理を終了する。一方、IR情報判定部322は、実行していないと判定した場合には(ステップS1712否定)、上述したステップS1702に戻り、処理を繰り返す。   Further, the IR information determination unit 322 of the cache server 300 determines whether or not the processing has been executed for all the database servers 200 from which the IR information is acquired (step S1712). (Yes in S1712), the process is terminated. On the other hand, if it is determined that the IR information determination unit 322 is not executing (No at Step S1712), the process returns to Step S1702 described above and repeats the process.

[実施例1におけるクライアント端末とキャッシュサーバとデータベースサーバ間における処理]
図17は、実施例1におけるクライアント端末とキャッシュサーバとデータベースサーバと間における処理の流れの一例を示すシーケンス図である。具体的には、クライアント端末がデータ要求をキャッシュサーバ300に送信した場合における処理の流れを説明する。以下では、クライアント端末500がデータ要求をキャッシュサーバ300に送信した場合に、キャッシュサーバ300が、クライアント端末500から受信したデータ要求に含まれるキー情報により識別される属性情報を記憶していない場合を用いて説明する。
[Processing between Client Terminal, Cache Server, and Database Server in Embodiment 1]
FIG. 17 is a sequence diagram illustrating an example of a process flow among the client terminal, the cache server, and the database server according to the first embodiment. Specifically, the flow of processing when the client terminal transmits a data request to the cache server 300 will be described. Hereinafter, when the client terminal 500 transmits a data request to the cache server 300, the cache server 300 does not store the attribute information identified by the key information included in the data request received from the client terminal 500. It explains using.

図17に示すように、クライアント端末500は、送信タイミングとなると(ステップS1801肯定)、要求するデータを識別するキー情報を含むデータ要求をキャッシュサーバ300に送信する(ステップS1802)。例えば、クライアント端末500は、自装置が記憶しないデータを利用する場合に、キャッシュサーバ300にデータ要求を送信する。   As shown in FIG. 17, at the transmission timing (Yes at Step S1801), the client terminal 500 transmits a data request including key information for identifying requested data to the cache server 300 (Step S1802). For example, the client terminal 500 transmits a data request to the cache server 300 when using data that the device itself does not store.

その後、キャッシュサーバ300のキャッシュ判定部321は、クライアント端末500からデータ要求を受信すると、受信したデータ要求に含まれるキー情報を取得し、取得したキー情報に対応付けられた属性情報をキャッシュ311にて検索する(ステップS1803)。   After that, when receiving a data request from the client terminal 500, the cache determination unit 321 of the cache server 300 acquires key information included in the received data request and stores attribute information associated with the acquired key information in the cache 311. To search (step S1803).

ここで、キャッシュサーバ300のキャッシュ判定部321は、キー情報に対応付けられた属性情報がキャッシュ311に存在しない場合に、検索先状態DB312か閉塞状態「閉塞」となっていないデータベースサーバ名を検索する(ステップS1804)。そして、キャッシュ判定部321は、検索の結果得られた閉塞していないデータベースサーバ200に対して、データ要求に含まれるキー情報に対応する属性情報を要求するデータ検索要求を送信する(ステップS1805)。   Here, when the attribute information associated with the key information does not exist in the cache 311, the cache determination unit 321 of the cache server 300 searches for a database server name that is not in the search destination state DB 312 or the blocked state “blocked”. (Step S1804). Then, the cache determination unit 321 transmits a data search request for requesting attribute information corresponding to the key information included in the data request, to the database server 200 that is not blocked obtained as a result of the search (step S1805). .

その後、データベースサーバ200のキャッシュ応答部221は、キャッシュサーバ300からデータ検索要求を受信すると、受信したデータ検索要求からキー情報を取得し、自装置のユーザ情報DB211から取得したキー情報に対応する属性情報を取得する(ステップS1806)。そして、キャッシュ応答部221は、データ検索要求に対する応答をキャッシュサーバ300に送信する(ステップS1807)。例えば、キャッシュ応答部221は、取得したキー情報に対応する属性情報が自装置のユーザ情報DB211に存在する場合には取得した属性情報をデータ応答として送信し、自装置のユーザ情報DB211に存在しない場合にはキー情報が存在しない旨をデータ応答として送信する。   Thereafter, when the cache response unit 221 of the database server 200 receives the data search request from the cache server 300, the cache response unit 221 acquires key information from the received data search request and attributes corresponding to the key information acquired from the user information DB 211 of the own device. Information is acquired (step S1806). Then, the cache response unit 221 transmits a response to the data search request to the cache server 300 (step S1807). For example, if the attribute information corresponding to the acquired key information exists in the user information DB 211 of the own device, the cache response unit 221 transmits the acquired attribute information as a data response and does not exist in the user information DB 211 of the own device. In this case, the fact that the key information does not exist is transmitted as a data response.

その後、キャッシュサーバ300の応答処理部323は、データ応答を受信すると、クライアント端末500からのデータ要求に対するデータ応答をクライアント端末500に送信する(ステップS1808)。例えば、応答処理部323は、キー情報が存在しない旨をクライアント端末500に送信したり、ユーザ情報DB211から取得された属性情報を送信したり、キャッシュ311から取得された属性情報をクライアント端末500に送信したりする。   Thereafter, when receiving a data response, the response processing unit 323 of the cache server 300 transmits a data response to the data request from the client terminal 500 to the client terminal 500 (step S1808). For example, the response processing unit 323 transmits that the key information does not exist to the client terminal 500, transmits attribute information acquired from the user information DB 211, and transmits attribute information acquired from the cache 311 to the client terminal 500. Or send.

[実施例1におけるデータベースサーバのキャッシュ応答部による処理]
図18は、実施例1におけるデータベースサーバのキャッシュ応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、キャッシュ応答部221は、キャッシュサーバ300からデータ検索要求を受信するごとに、以下に説明する一連の処理を実行する。
[Processing by Cache Response Unit of Database Server in Embodiment 1]
FIG. 18 is a flowchart illustrating an example of a process flow by the cache response unit of the database server in the first embodiment. As described below, the cache response unit 221 executes a series of processes described below each time a data search request is received from the cache server 300.

図18に示すように、キャッシュ応答部221は、キャッシュサーバ300からデータ検索要求を受信すると(ステップS1201肯定)、受信したデータ検索要求からキー情報を取得する(ステップS1202)。そして、キャッシュ応答部221は、自装置のユーザ情報DB211から、取得したキー情報に対応する属性情報を取得する(ステップS1203)。   As illustrated in FIG. 18, when the cache response unit 221 receives a data search request from the cache server 300 (Yes in step S1201), the cache response unit 221 acquires key information from the received data search request (step S1202). Then, the cache response unit 221 acquires attribute information corresponding to the acquired key information from the user information DB 211 of the own device (step S1203).

そして、キャッシュ応答部221は、取得したキー情報に対応する属性情報が自装置のユーザ情報DB211に存在する場合には(ステップS1204肯定)、ユーザ情報DB211から属性情報を取得してキャッシュサーバ300に応答する(ステップS1205)。一方、キャッシュ応答部221は、取得したキー情報に対応する属性情報が自装置のユーザ情報DB211に存在しない場合には(ステップS1204否定)、データ要求に含まれるキー情報が存在しない旨をキャッシュサーバ300に応答する(ステップS1206)。つまり、キャッシュ応答部221は、データ検索要求に対するデータ応答をキャッシュサーバ300に送信する。   When the attribute information corresponding to the acquired key information is present in the user information DB 211 of the own device (Yes in step S1204), the cache response unit 221 acquires the attribute information from the user information DB 211 and stores the attribute information in the cache server 300. A response is made (step S1205). On the other hand, if the attribute information corresponding to the acquired key information does not exist in the user information DB 211 of the own device (No at step S1204), the cache response unit 221 indicates that the key information included in the data request does not exist. Responds to 300 (step S1206). That is, the cache response unit 221 transmits a data response to the data search request to the cache server 300.

[実施例1におけるデータベースサーバのIR情報応答部による処理]
図19は、実施例1におけるデータベースサーバのIR情報応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、IR情報応答部222は、キャッシュサーバ300からIR情報要求を受信するごとに、以下に説明する一連の処理を実行する。
[Processing by IR Information Response Unit of Database Server in Embodiment 1]
FIG. 19 is a flowchart illustrating an example of a process flow by the IR information response unit of the database server in the first embodiment. As will be described below, the IR information response unit 222 executes a series of processes described below each time an IR information request is received from the cache server 300.

図19に示すように、データベースサーバ200のIR情報応答部222は、IR情報要求を受信すると(ステップS1301肯定)、受信したIR情報要求に含まれる「キャッシュサーバ名」を取得する(ステップS1302)。つまり、IR情報要求の送信元となるキャッシュサーバ300のキャッシュサーバ名を取得する。   As shown in FIG. 19, when receiving the IR information request (Yes at Step S1301), the IR information response unit 222 of the database server 200 acquires the “cache server name” included in the received IR information request (Step S1302). . That is, the cache server name of the cache server 300 that is the transmission source of the IR information request is acquired.

そして、IR情報応答部222は、自装置のIR情報DB212から、取得した「キャッシュサーバ名」に対応付けられた「キー情報、更新ID」を取得する(ステップS1303)。つまり、IR情報応答部222は、IR情報要求の送信元となるキャッシュサーバ300を宛先とするIR情報を取得する。   Then, the IR information response unit 222 acquires “key information, update ID” associated with the acquired “cache server name” from the IR information DB 212 of the own apparatus (step S1303). That is, the IR information response unit 222 acquires IR information destined for the cache server 300 that is the transmission source of the IR information request.

ここで、IR情報応答部222は、取得した「キャッシュサーバ名」に対応付けられた「キー情報、更新ID」が自装置のIR情報DB212に存在する場合には(ステップS1304肯定)、キャッシュサーバ名に対応付けられた「キー情報、更新ID」をキャッシュサーバ300に応答する(ステップS1305)。一方、IR情報応答部222は、取得した「キャッシュサーバ名」に対応付けられた「キー情報、更新ID」が存在しない場合には(ステップS1304否定)、「IR情報なし」を、キャッシュサーバ300に応答する(ステップS1306)。すなわち、IR情報応答部222は、IR情報要求に対して、IR情報応答をキャッシュサーバ300に送信する。   Here, when the “key information, update ID” associated with the acquired “cache server name” exists in the IR information DB 212 of the own apparatus (Yes in step S1304), the IR information response unit 222 determines that the cache server The “key information, update ID” associated with the name is returned to the cache server 300 (step S1305). On the other hand, when there is no “key information, update ID” associated with the acquired “cache server name” (No in step S1304), the IR information response unit 222 sets “no IR information” to the cache server 300. (Step S1306). That is, the IR information response unit 222 transmits an IR information response to the cache server 300 in response to the IR information request.

すなわち、IR情報応答部222は、キャッシュサーバ300からIR情報要求を受信すると、IR情報要求の送信元を示すキャッシュサーバ名に対応付けられたIR情報がIR情報DB212に記憶されているか否かを判定する。そして、IR情報応答部222は、IR情報DB212に記憶されている場合には、「キャッシュサーバ名」に対応付けられたIR情報を取得してキャッシュサーバ300に応答する。ここで、IR情報に含まれる「キー情報」及び「更新ID」は、「キー情報」が自装置内で更新されており、その更新情報の配信状態が「更新ID」で参照できることを示す。また、IR情報応答部222は、IR情報DB212にIR情報が記憶されていない場合には、「IR情報なし」をキャッシュサーバ300に応答する。   That is, when receiving the IR information request from the cache server 300, the IR information response unit 222 determines whether the IR information associated with the cache server name indicating the transmission source of the IR information request is stored in the IR information DB 212. judge. Then, when stored in the IR information DB 212, the IR information response unit 222 acquires IR information associated with “cache server name” and responds to the cache server 300. Here, “key information” and “update ID” included in the IR information indicate that “key information” has been updated in the own apparatus, and the distribution status of the update information can be referred to by “update ID”. Further, the IR information response unit 222 responds “no IR information” to the cache server 300 when IR information is not stored in the IR information DB 212.

[実施例1におけるデータベースサーバの更新情報応答部による処理]
図20は、実施例1におけるデータベースサーバの更新情報応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、更新情報応答部223は、キャッシュサーバ300から更新情報要求を受信するごとに、以下に説明する一連の処理を実行する。
[Processing by Update Information Response Unit of Database Server in Embodiment 1]
FIG. 20 is a flowchart illustrating an example of a process flow by the update information response unit of the database server in the first embodiment. As will be described below, the update information response unit 223 executes a series of processes described below each time an update information request is received from the cache server 300.

図20に示すように、データベースサーバ200の更新情報応答部223は、キャッシュサーバ300から更新情報要求を受信すると(ステップS501肯定)、受信した更新情報要求に含まれる更新IDを取得する(ステップS502)。例えば、更新情報応答部223は、更新ID「I001」を取得する。   As illustrated in FIG. 20, when the update information response unit 223 of the database server 200 receives an update information request from the cache server 300 (Yes in step S501), the update information response unit 223 acquires an update ID included in the received update information request (step S502). ). For example, the update information response unit 223 acquires the update ID “I001”.

そして、更新情報応答部223は、自装置の配信情報DB213から取得した、「更新ID」に対応付けられた「データベースサーバ名、更新結果」をすべて取得する(ステップS503)。例えば、更新情報応答部223は、更新ID「I001」に対応付けられたデータベースサーバ名と更新結果との組み合わせをすべて取得する。   Then, the update information response unit 223 acquires all the “database server name and update result” associated with the “update ID” acquired from the distribution information DB 213 of the own device (step S503). For example, the update information response unit 223 acquires all combinations of database server names and update results associated with the update ID “I001”.

ここで、更新情報応答部223は、自装置の配信情報DB213に「更新ID」に対応付けられた「データベースサーバ名、更新結果」が存在する場合には(ステップS504肯定)、更新IDに対応付けられた「データベースサーバ名、更新結果」をキャッシュサーバ300に応答する(ステップS505)。一方、更新情報応答部223は、自装置の配信情報DB213に「更新ID」に対応付けられた「データベースサーバ名、更新結果」が存在しない場合には(ステップS504否定)、「更新情報なし」をキャッシュサーバ300に応答する(ステップS506)。すなわち、更新情報応答部223は、更新情報要求に対して、更新情報応答をキャッシュサーバ300に送信する。   Here, the update information response unit 223 responds to the update ID when “database server name, update result” associated with “update ID” exists in the distribution information DB 213 of the own device (Yes in step S504). The attached “database server name, update result” is returned to the cache server 300 (step S505). On the other hand, if there is no “database server name, update result” associated with the “update ID” in the distribution information DB 213 of the own device (No in step S504), the update information response unit 223 determines “no update information”. In response to the cache server 300 (step S506). That is, the update information response unit 223 transmits an update information response to the cache server 300 in response to the update information request.

なお、ここで、更新情報応答部223により取得される、「データベースサーバ名」及び、「更新結果」は、それぞれ、キャッシュサーバ300がIR情報要求の結果取得したIR情報に対応する更新情報が、更新IDにより識別される更新が完了しているかをデータベースサーバ名ごとに示す。   Here, the “database server name” and “update result” acquired by the update information response unit 223 are update information corresponding to the IR information acquired by the cache server 300 as a result of the IR information request, respectively. Whether the update identified by the update ID is completed is shown for each database server name.

[実施例1におけるデータベースサーバの更新成否応答部による処理]
図21は、実施例1におけるデータベースサーバの更新成否応答部による処理の流れの一例を示すフローチャートである。以下に説明するように、更新成否応答部224は、キャッシュサーバ300から更新成否要求情報を受信するごとに、以下に説明する一連の処理を実行する。
[Processing by update success / failure response unit of database server in embodiment 1]
FIG. 21 is a flowchart illustrating an example of a process flow by the update success / failure response unit of the database server according to the first embodiment. As will be described below, the update success / failure response unit 224 executes a series of processes described below each time it receives update success / failure request information from the cache server 300.

図21に示すように、データベースサーバ200の更新成否応答部224は、キャッシュサーバ300から更新成否要求を受信すると(ステップS601肯定)、受信した更新成否要求に含まれるデータベースサーバ名を取得する(ステップS602)。例えば、更新成否応答部224は、データベースサーバ名「データベースサーバA」を取得する。   As illustrated in FIG. 21, when the update success / failure response unit 224 of the database server 200 receives an update success / failure request from the cache server 300 (Yes in step S601), the database server 200 acquires a database server name included in the received update success / failure request (step S601). S602). For example, the update success / failure response unit 224 acquires the database server name “database server A”.

そして、更新成否応答部224は、自装置の配信情報DB213から、更新成否要求から取得したデータベースサーバ名に対応する更新結果を取得する(ステップS603)。例えば、図5に示す例では、配信情報DB213が、データベースサーバ名「データベースサーバA」に対応付けて更新結果「OK」を記憶している。この場合、更新成否応答部224は、更新結果「OK」を取得する。   Then, the update success / failure response unit 224 acquires an update result corresponding to the database server name acquired from the update success / failure request from the distribution information DB 213 of the own device (step S603). For example, in the example illustrated in FIG. 5, the distribution information DB 213 stores the update result “OK” in association with the database server name “database server A”. In this case, the update success / failure response unit 224 acquires the update result “OK”.

つまり、更新成否応答部224は、キャッシュサーバ300から配信成否要求を受信すると、配信成否要求に含まれるデータベースサーバ名が、配信情報DB213に記憶されているか否かを判定する。そして、更新成否応答部224は、配信情報DB213に記憶されていると判定した場合には、「データベースサーバ名」に対応付けられた更新結果と更新IDとの組み合わせをすべて取得する。   That is, when the update success / failure response unit 224 receives the distribution success / failure request from the cache server 300, the update success / failure response unit 224 determines whether or not the database server name included in the distribution success / failure request is stored in the distribution information DB 213. If the update success / failure response unit 224 determines that the update information is stored in the distribution information DB 213, the update success / failure response unit 224 acquires all combinations of update results and update IDs associated with the “database server name”.

そして、更新成否応答部224は、取得した更新結果に基づいて更新成否結果を判定し(ステップS604)、判定結果となる更新成否結果をキャッシュサーバ300に応答する(ステップS605)。ここで、更新成否結果とは、データベースサーバ200において実行されている更新処理の状態を示す情報である。   Then, the update success / failure response unit 224 determines an update success / failure result based on the acquired update result (step S604), and returns an update success / failure result as a determination result to the cache server 300 (step S605). Here, the update success / failure result is information indicating the state of the update process being executed in the database server 200.

ここで、更新成否結果の判定について更に説明する。更新成否応答部224は、配信情報DB213の更新結果と更新成否結果とが対応付けられた更新成否結果対応表に基づいて、更新成否結果を判定する。   Here, the determination of the update success / failure result will be further described. The update success / failure response unit 224 determines an update success / failure result based on the update success / failure result correspondence table in which the update result of the distribution information DB 213 and the update success / failure result are associated with each other.

図22は、実施例1における更新成否結果対応表の一例を示す図である。図22に示す例では、更新成否結果が、「登録正常」と「登録異常」と「登録待ち」とのうちいずれかである場合を例に示したが、これに限定されるものではなく、任意の更新成否結果を用いて良い。ここで、「登録正常」は、該当のデータベースサーバ200において、更新情報の登録が成功していることを示す。「登録異常」は、該当のデータベースサーバ200において、更新情報の登録が失敗していることを示す。「登録待ち」は、現在、データベースサーバ200間で更新情報の配信又は更新再伝播処理が行われており、該当のデータベースサーバ200において、今後、更新情報の登録が行われることを示す。   FIG. 22 is a diagram illustrating an example of an update success / failure result correspondence table according to the first embodiment. In the example illustrated in FIG. 22, the case where the update success / failure result is any one of “registration normal”, “registration abnormality”, and “waiting for registration” is illustrated as an example, but the present invention is not limited to this. Any update success / failure result may be used. Here, “registration normal” indicates that the update information has been successfully registered in the corresponding database server 200. “Registration abnormality” indicates that registration of update information has failed in the corresponding database server 200. “Waiting for registration” indicates that update information distribution or update re-propagation processing is currently being performed between the database servers 200, and that update information will be registered in the corresponding database server 200 in the future.

図22に示すように、更新成否応答部224は、配信情報DB213から更新結果を取得すると、取得した更新結果に対応付けられた更新成否結果を更新成否結果対応表から取得し、判定結果とする。例えば、配信情報DB213から更新結果「OK」を取得した場合を用いて説明する。この場合、更新成否応答部224は、更新結果「OK」に対応付けられた更新成否結果「登録正常」を取得し、判定結果とする。   As illustrated in FIG. 22, when the update success / failure response unit 224 acquires an update result from the distribution information DB 213, the update success / failure response unit 224 acquires an update success / failure result associated with the acquired update result from the update success / failure result correspondence table and sets it as a determination result. . For example, the case where the update result “OK” is acquired from the distribution information DB 213 will be described. In this case, the update success / failure response unit 224 acquires the update success / failure result “registration normal” associated with the update result “OK” and uses it as the determination result.

すなわち、更新成否応答部224は、更新成否結果対応表を用いて、データベースサーバ名における「更新成否結果」を判定し、「登録正常」、「登録異常」、「登録待ち」のいずれかをキャッシュサーバ300に応答する。例えば、「配信情報DBの更新結果」が「レコードなし」である場合には、更新成否応答部224は、更新成否結果対応表における同一行にある更新成否結果「登録正常」を判定結果とする。   That is, the update success / failure response unit 224 determines the “update success / failure result” in the database server name using the update success / failure result correspondence table, and caches any of “registration normal”, “registration abnormality”, and “waiting for registration”. Responds to server 300. For example, when the “update result of distribution information DB” is “no record”, the update success / failure response unit 224 uses the update success / failure result “registration normal” in the same row in the update success / failure result correspondence table as the determination result. .

[実施例1におけるデータベースサーバの装置状態応答部による処理]
図23は、実施例1におけるデータベースサーバの装置状態応答部による処理の一例を示すフローチャートである。以下に説明するように、装置状態応答部225は、監視サーバ400から装置状態要求を受信するごとに、以下に説明する一連の処理を実行する。
[Processing by Device Status Response Unit of Database Server in Embodiment 1]
FIG. 23 is a flowchart illustrating an example of processing performed by the apparatus status response unit of the database server according to the first embodiment. As described below, the device status response unit 225 executes a series of processes described below each time a device status request is received from the monitoring server 400.

図23に示すように、データベースサーバ200の装置状態応答部225は、監視サーバ400から装置状態要求を受信する(ステップS801肯定)、自装置の配信関連リソースの状態を確認する(ステップS802)。具体的には、装置状態応答部225は、自装置が、後述する更新情報配信部228や更新再伝播部229による処理が実行される際に用いられる各種プロセスやネットワークの状態等を確認する。   As illustrated in FIG. 23, the device status response unit 225 of the database server 200 receives a device status request from the monitoring server 400 (Yes in step S801), and checks the status of the distribution-related resource of the own device (step S802). Specifically, the device status response unit 225 checks various processes and network statuses used when the device itself executes processing by an update information distribution unit 228 and an update re-propagation unit 229 described later.

そして、装置状態応答部225は、装置状態要求に対応する応答となる装置状態応答を送信し(ステップS803)、処理を終了する。例えば、装置状態応答部225は、確認した配信関連リソースの情報を装置状態応答として監視サーバ400に送信し、処理を終了する。   Then, the device state response unit 225 transmits a device state response serving as a response corresponding to the device state request (step S803), and ends the process. For example, the device status response unit 225 transmits information on the confirmed distribution-related resources to the monitoring server 400 as a device status response, and ends the process.

[実施例1におけるデータベースサーバの装置状態格納部による処理]
図24は、実施例1におけるデータベースサーバの装置状態格納部による処理の流れの一例を示すフローチャートである。以下に説明するように、装置状態格納部226は、監視サーバ400から装置状態格納要求を受信するごとに、以下に説明する一連の処理を実行する。
[Processing by the apparatus status storage unit of the database server in the first embodiment]
FIG. 24 is a flowchart illustrating an example of a process flow by the apparatus state storage unit of the database server in the first embodiment. As will be described below, the device status storage unit 226 executes a series of processes described below each time a device status storage request is received from the monitoring server 400.

図24に示すように、データベースサーバ200の装置状態格納部226は、監視サーバ400からの装置状態格納要求を受信すると(ステップS901肯定)、受信した装置状態格納要求から、データベースサーバ200各々についての装置状態を取得し(ステップS902)、自装置の装置情報DB214に格納する(ステップS903)。   As illustrated in FIG. 24, when the apparatus state storage unit 226 of the database server 200 receives the apparatus state storage request from the monitoring server 400 (Yes in step S901), the apparatus state storage unit 226 of each database server 200 receives the apparatus state storage request from the received apparatus state storage request. The device state is acquired (step S902) and stored in the device information DB 214 of the own device (step S903).

例えば、装置状態格納部226は、データベースサーバ「A」の装置状態とデータベースサーバ「B」の装置状態とを監視サーバ400から受信し、受信した装置状態データベースサーバ名に対応付けて格納する。   For example, the device state storage unit 226 receives the device state of the database server “A” and the device state of the database server “B” from the monitoring server 400 and stores them in association with the received device state database server name.

[実施例1におけるデータベースサーバの閉塞制御部による流れ]
図25は、実施例1におけるデータベースサーバの閉塞制御部による処理の流れの一例を示すフローチャートである。以下に説明するように、閉塞制御部227は、監視サーバ400から閉塞要求を受信するごとに、以下に説明する一連の処理を実行する。
[Flow by Blocking Control Unit of Database Server in Embodiment 1]
FIG. 25 is a flowchart illustrating an example of a processing flow by the block control unit of the database server in the first embodiment. As described below, the block control unit 227 executes a series of processes described below each time a block request is received from the monitoring server 400.

図25に示すように、閉塞制御部227は、監視サーバ400からの閉塞要求を受信すると(ステップS701肯定)、自装置がキャッシュサーバ300に提供する検索要求の遮断処理を行う(ステップS702)。つまり、閉塞制御部227は、キャッシュサーバとの間におけるデータの送受信を閉塞する。   As illustrated in FIG. 25, when the block control unit 227 receives a block request from the monitoring server 400 (Yes in step S701), the block control unit 227 performs a blocking process on a search request provided by the own device to the cache server 300 (step S702). That is, the block control unit 227 blocks data transmission / reception with the cache server.

そして、閉塞制御部227は、遮断処理が成功した場合には(ステップS703肯定)、遮断成功を監視サーバ400に応答する(ステップS704)。一方、閉塞制御部227は、遮断処理が失敗した場合には(ステップS703否定)、閉塞制御部は227、遮断失敗を監視サーバ400に応答する(ステップS705)。そして、閉塞制御部は処理を終了する。   Then, when the blocking process is successful (Yes at Step S703), the blocking control unit 227 responds to the monitoring server 400 with the blocking success (Step S704). On the other hand, when the blocking process has failed (No at step S703), the blocking control unit 227 responds to the monitoring server 400 with the blocking control unit 227 (block S705). Then, the closing control unit ends the process.

すなわち、閉塞制御部227は、監視サーバ400から閉塞要求を受信すると、自装置が提供するキャッシュサーバ300からの要求をすべて遮断し、遮断の成否を監視サーバ400に応答する。   That is, when receiving the blocking request from the monitoring server 400, the blocking control unit 227 blocks all requests from the cache server 300 provided by the own device, and responds to the monitoring server 400 with success or failure of blocking.

[実施例1におけるデータベースサーバの更新情報配信部による処理]
図26は、実施例1におけるデータベースサーバの更新情報配信部による詳細な処理の流れの一例を示すフローチャートである。更新情報配信部228は、ユーザ情報DB211が更新される場合に、以下に説明する一連の処理を実行する。以下に説明する一連の処理は、図13を用いて説明した一連の処理において、更新指示を受け付けたデータベースサーバ「A」の更新情報配信部228が実行する処理となる。以下では、具体例をあげて説明する場合には、データベースサーバ「A」に対して更新指示があった場合を用いて説明する。
[Processing by Update Information Distribution Unit of Database Server in Embodiment 1]
FIG. 26 is a flowchart illustrating an example of a detailed processing flow by the update information distribution unit of the database server in the first embodiment. When the user information DB 211 is updated, the update information distribution unit 228 performs a series of processes described below. The series of processes described below is a process executed by the update information distribution unit 228 of the database server “A” that has received the update instruction in the series of processes described with reference to FIG. 13. In the following description, a specific example will be described using a case where an update instruction is given to the database server “A”.

図26に示すように、更新指示があると、データベースサーバ200の更新情報配信部228は、自装置が配信を行う装置であるかを判定する(ステップS301)。例えば、更新情報配信部228は、自装置が利用者から更新指示を受け付けた装置である場合には、配信を行う装置であると判定し、他のデータベースサーバ200から更新データを受け付けた装置である場合には、配信を行う装置ではないと判定する。なお、ここで、更新情報配信部228は、配信を行う装置でないと判定した場合には(ステップS301否定)、更新処理を継続することができないため、配信処理又は更新処理が失敗したことを示す登録失敗を応答し(ステップS310)、処理を終了する。   As illustrated in FIG. 26, when there is an update instruction, the update information distribution unit 228 of the database server 200 determines whether the own apparatus is a distribution apparatus (step S301). For example, if the own device is a device that has received an update instruction from a user, the update information distribution unit 228 determines that the device is a device that performs distribution, and is a device that has received update data from another database server 200. In some cases, it is determined that the device is not a distribution device. Here, if the update information distribution unit 228 determines that the device is not a device that performs distribution (No in step S301), it indicates that the distribution process or the update process has failed because the update process cannot be continued. A registration failure is returned (step S310), and the process is terminated.

ここで、更新情報配信部228は、配信を行う装置であると判定した場合には(ステップS301肯定)、更新データの配信順序を決定する(ステップS302)。具体的には、更新情報配信部228は、自装置の装置情報DB214からデータベースサーバ名に対応付けられた装置状態を取得し、装置状態「正常」に対応付けられたデータベースサーバ200の一覧を生成する。また、更新情報配信部228は、一覧の先頭が自装置となるように一覧を生成する。ここで、更新情報配信部228により生成された一覧が配信先となるデータベースサーバ200の一覧となり、一覧に記載されたデータベースサーバ200の並び順が配信順序となる。   If the update information distribution unit 228 determines that the device is a device that performs distribution (Yes at Step S301), the update information distribution unit 228 determines the distribution order of update data (Step S302). Specifically, the update information distribution unit 228 acquires the device state associated with the database server name from the device information DB 214 of the own device, and generates a list of the database servers 200 associated with the device state “normal”. To do. Further, the update information distribution unit 228 generates a list so that the head of the list is the own device. Here, the list generated by the update information distribution unit 228 becomes a list of the database servers 200 as distribution destinations, and the arrangement order of the database servers 200 described in the list becomes the distribution order.

そして、更新情報配信部228は、更新IDの払い出しを行う(ステップS303)。更新IDはキャッシュ制御システムにおいて順序性を有する識別情報となる。例えば、更新情報配信部228は、配信時刻を更新IDとして払い出したり、配信情報に枝番号を付加した情報を更新IDとして払い出したりする。例えば、更新情報配信部228は、更新ID「I001」を払い出す。   Then, the update information distribution unit 228 issues an update ID (Step S303). The update ID becomes identification information having order in the cache control system. For example, the update information distribution unit 228 pays out the distribution time as an update ID, or pays out information obtained by adding a branch number to the distribution information as an update ID. For example, the update information distribution unit 228 pays out the update ID “I001”.

そして、更新情報配信部228は、配信先となるデータベースサーバ200に更新データを配信する(ステップS304)。つまり、更新情報配信部228は、装置状態「正常」に対応付けられたデータベースサーバ200の一覧のうち、未配信のデータベースサーバ200を配信順序に従って1つ選択し、選択したデータベースサーバ200に更新データを送信する。また、更新情報配信部228は、更新データとして、更新IDと、更新されたデータを識別するキー情報と、更新後のデータとを送信する。   Then, the update information distribution unit 228 distributes update data to the database server 200 that is a distribution destination (step S304). That is, the update information distribution unit 228 selects one undelivered database server 200 in accordance with the distribution order from the list of database servers 200 associated with the device state “normal”, and updates the selected database server 200 with the update data. Send. The update information distribution unit 228 transmits an update ID, key information for identifying updated data, and updated data as update data.

そして、更新情報配信部228は、配信が成功したかを判定し(ステップS305)、配信が成功したと判定した場合には(ステップS305肯定)、配信先となるデータベースサーバ200すべてについて配信を実行したかを判定する(ステップS307)。ここで、更新情報配信部228は、配信先となる全データベースサーバ200について配信を実行していないと判定した場合には(ステップS307否定)、ステップS304に戻り、処理を繰り返す。   Then, the update information distribution unit 228 determines whether the distribution is successful (step S305), and when it is determined that the distribution is successful (Yes in step S305), distributes all of the database servers 200 that are the distribution destinations. It is determined whether it has been done (step S307). If the update information distribution unit 228 determines that the distribution is not executed for all the database servers 200 that are the distribution destinations (No at Step S307), the update information distribution unit 228 returns to Step S304 and repeats the process.

一方、更新情報配信部228は、配信を失敗したと判定した場合には(ステップS305否定)、配信先となったデータベースサーバ200が自装置であるか否かを判定する(ステップS306)。なお、自装置に対する配信が失敗する場合とは、例えば、自装置が故障しており、更新指示を正常に受信できなかった場合がある。ここで、更新情報配信部228は、配信先となったデータベースサーバ200が自装置であると判定した場合には(ステップS306肯定)、更新処理を継続することができないため、配信処理又は更新処理が失敗したことを示す登録失敗を応答し(ステップS310)、処理を終了する。   On the other hand, when the update information distribution unit 228 determines that the distribution has failed (No at Step S305), the update information distribution unit 228 determines whether the database server 200 that is the distribution destination is its own device (Step S306). Note that the case where the delivery to the own device fails is, for example, a case where the own device is out of order and the update instruction cannot be received normally. Here, if the update information distribution unit 228 determines that the database server 200 that is the distribution destination is its own device (Yes in step S306), the update process cannot be continued, so the distribution process or the update process A registration failure indicating that has failed has been returned (step S310), and the process is terminated.

一方、更新情報配信部228は、配信先となったデータベースサーバ200が自装置でないと判定した場合には(ステップS306否定)、上述したステップS307の処理を実行する。   On the other hand, if the update information distribution unit 228 determines that the database server 200 that is the distribution destination is not its own device (No at Step S306), the update information distribution unit 228 executes the process at Step S307 described above.

そして、上述したステップS307において、配信先となるデータベースサーバ200すべてについて配信を実行したと判定した場合には(ステップS307肯定)、更新情報配信部228は、更新IDに対応付けて、データベースサーバ200各々についての配信結果を更新IDに対応付けて配信情報DB213に格納する(ステップS308)。具体的には、更新情報配信部228は、配信が成功したデータベースサーバ200のデータベースサーバ名と更新ID「I001」とに対応付けて配信結果「OK」を格納し、配信が成功しなかったデータベースサーバ200についても、データベースサーバ名と更新ID「I001」とに対応付けて配信結果「未配信」を格納する。また、更新情報配信部228は、装置状態が正常ではなく、配信先とならなかったデータベースサーバ200についても、データベースサーバ名と更新ID「I001」とに対応付けて、配信結果「未配信」を格納する。   In step S307 described above, when it is determined that the distribution has been executed for all the database servers 200 that are the distribution destinations (Yes in step S307), the update information distribution unit 228 associates the update ID with the database server 200. Each distribution result is stored in the distribution information DB 213 in association with the update ID (step S308). Specifically, the update information distribution unit 228 stores the distribution result “OK” in association with the database server name of the database server 200 that has been successfully distributed and the update ID “I001”, and the database that has not been successfully distributed. The server 200 also stores the distribution result “undistributed” in association with the database server name and the update ID “I001”. Further, the update information distribution unit 228 also sets the distribution result “undistributed” in association with the database server name and the update ID “I001” for the database server 200 whose device state is not normal and has not become a distribution destination. Store.

ここで、更新情報配信部228は、データベースサーバ200各々についての配信結果を、全データベースサーバ200に格納する。すなわち、全データベースサーバ200の配信情報DB213に、データベースサーバ200各々についての配信結果が格納される。なお、例えば、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」の配信情報DB213に直接格納しても良く、データベースサーバ「B」とデータを送受信することで、データベースサーバ「B」にデータベースサーバ「B」の配信情報DB213に格納させるようにしても良い。   Here, the update information distribution unit 228 stores the distribution result for each database server 200 in all the database servers 200. That is, the distribution result for each database server 200 is stored in the distribution information DB 213 of all the database servers 200. For example, the update information distribution unit 228 of the database server “A” may store directly in the distribution information DB 213 of the database server “B”, and the database server “B” transmits and receives data to and from the database server “B”. B ”may be stored in the distribution information DB 213 of the database server“ B ”.

そして、更新情報配信部228は、配信情報DB213の配信結果が「OK」のデータベースサーバ名を取得する(ステップS311)。また、ここで、更新情報配信部228は、取得したデータベースサーバ名の一覧を作成し、作成した一覧の先頭が自装置となるようにする。   Then, the update information distribution unit 228 acquires a database server name whose distribution result of the distribution information DB 213 is “OK” (step S311). Here, the update information distribution unit 228 creates a list of the acquired database server names so that the head of the created list becomes its own device.

そして、更新情報配信部228は、配信結果が「OK」となっているデータベースサーバ200を1つ選択し、選択したデータベースサーバ200のユーザ情報DB211を更新する(ステップS312)。具体的には、更新情報配信部228は、ユーザ情報DB211に記憶されたデータのうち、予め配信された更新データに含まれるキー情報により識別されるデータを、予め配信された更新データに含まれる更新後のデータに更新する。   Then, the update information distribution unit 228 selects one database server 200 whose distribution result is “OK”, and updates the user information DB 211 of the selected database server 200 (step S312). Specifically, the update information distribution unit 228 includes, among the data stored in the user information DB 211, data identified by key information included in the update data distributed in advance, in the update data distributed in advance. Update to the updated data.

また、ここで、各データベースサーバ200では、更新情報配信部228が、データベースサーバ200のユーザ情報DB211のデータが更新されると、IR情報を生成し、自装置のデータベースサーバ200のIR情報DB212に格納する。すなわち、更新情報配信部228は、更新データに含まれる更新IDとキー情報とを対応付けて、IR情報DB212に格納する。また、ここで、更新情報配信部228は、データベースサーバ200と接続された複数あるキャッシュサーバ300のキャッシュサーバ名各々に対応付けて、IR情報を格納する。   Here, in each database server 200, when the data in the user information DB 211 of the database server 200 is updated, the update information distribution unit 228 generates IR information and stores it in the IR information DB 212 of the database server 200 of its own device. Store. That is, the update information distribution unit 228 associates the update ID included in the update data with the key information and stores them in the IR information DB 212. Here, the update information distribution unit 228 stores IR information in association with each of the cache server names of a plurality of cache servers 300 connected to the database server 200.

なお、例えば、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」のユーザ情報DB211を直接更新しても良く、データベースサーバ「B」の更新情報配信部228にユーザ情報DB211を更新させるようにしても良い。また、同様に、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」のIR情報DB212にIR情報を直接格納しても良く、データベースサーバ「B」の更新情報配信部228にIR情報を格納させても良い。   For example, the update information distribution unit 228 of the database server “A” may directly update the user information DB 211 of the database server “B”, and the user information DB 211 is added to the update information distribution unit 228 of the database server “B”. You may make it update. Similarly, the update information distribution unit 228 of the database server “A” may directly store IR information in the IR information DB 212 of the database server “B”, and the update information distribution unit 228 of the database server “B” IR information may be stored.

そして、更新情報配信部228は、更新が成功したか否かを判定する(ステップS313)。ここで、更新情報配信部228は、更新が成功したと判定した場合には(ステップS313肯定)、更新が成功したデータベースサーバ名に対応付けて、更新結果「OK」を格納する(ステップS316)。   Then, the update information distribution unit 228 determines whether the update has been successful (step S313). If the update information distribution unit 228 determines that the update is successful (Yes at Step S313), the update information distribution unit 228 stores the update result “OK” in association with the name of the database server that was successfully updated (Step S316). .

一方、更新情報配信部228は、更新が成功したと判定しなかった場合には(ステップS313否定)、更新先となったデータベースサーバ200が自装置であるか否かを判定する(ステップS314)。ここで、更新情報配信部228は、更新先となったデータベースサーバ200が自装置であると判定した場合には(ステップS314肯定)、更新処理を継続することができないため、配信情報DB213から処理対象となった更新IDを含む行を削除し(ステップS309)、配信処理又は更新処理が失敗したことを示す登録失敗を応答し(ステップS310)、処理を終了する。また、ここで、更新情報配信部228は、更新先となったデータベースサーバ200が自装置でないと判定した場合には(ステップS314否定)、更新が成功しなかったデータベースサーバ名に対応付けて、更新結果「NG」を格納する(ステップS315)。   On the other hand, if the update information distribution unit 228 does not determine that the update has succeeded (No at Step S313), the update information distribution unit 228 determines whether or not the database server 200 that is the update destination is its own device (Step S314). . Here, when the update information distribution unit 228 determines that the database server 200 that is the update destination is its own device (Yes in step S314), the update information cannot be continued, so the update information distribution unit 228 performs processing from the distribution information DB 213. The line including the target update ID is deleted (step S309), a registration failure indicating that the distribution process or the update process has failed is returned (step S310), and the process ends. In addition, when the update information distribution unit 228 determines that the database server 200 that is the update destination is not its own device (No in step S314), the update information distribution unit 228 associates it with the database server name that has not been successfully updated, The update result “NG” is stored (step S315).

ここで、更新情報配信部228は、データベースサーバ200各々についての更新結果を、全データベースサーバ200に格納する。すなわち、全データベースサーバ200の配信情報DB213に、データベースサーバ200各々についての更新結果が格納される。なお、例えば、データベースサーバ「A」の更新情報配信部228は、データベースサーバ「B」の配信情報DB213に直接格納しても良く、データベースサーバ「B」とデータを送受信することで、データベースサーバ「B」にデータベースサーバ「B」の配信情報DB213に格納させるようにしても良い。   Here, the update information distribution unit 228 stores the update results for each database server 200 in all the database servers 200. That is, the update result for each database server 200 is stored in the distribution information DB 213 of all the database servers 200. For example, the update information distribution unit 228 of the database server “A” may store directly in the distribution information DB 213 of the database server “B”, and the database server “B” transmits and receives data to and from the database server “B”. B ”may be stored in the distribution information DB 213 of the database server“ B ”.

そして、更新情報配信部228は、更新先となる全データベースサーバ200について更新を実行したかを判定する(ステップS317)。ここで、更新情報配信部228は、更新先となるデータベースサーバ200すべてについて更新を実行していないと判定した場合には(ステップS317否定)、ステップS312に戻り、処理を繰り返す。一方、更新情報配信部228は、更新先となるデータベースサーバ200すべてについて更新を実行したと判定した場合には(ステップS317肯定)、更新処理が終了したことを示す登録成功応答を行い(ステップS318)、処理を終了する。   Then, the update information distribution unit 228 determines whether or not the update has been performed for all the database servers 200 that are update destinations (step S317). Here, when the update information distribution unit 228 determines that the update has not been performed for all the database servers 200 that are the update destinations (No at Step S317), the update information distribution unit 228 returns to Step S312 and repeats the process. On the other hand, if the update information distribution unit 228 determines that the update has been performed for all the database servers 200 that are the update destinations (Yes in step S317), the update information distribution unit 228 sends a registration success response indicating that the update process has ended (step S318). ), The process is terminated.

[実施例1におけるデータベースサーバの更新再伝播部による処理]
図27は、実施例1におけるデータベースサーバの更新再伝播部による処理の流れの一例を示すフローチャートである。以下に説明するように、更新情報配信部228により配信が行われなかったデータベースサーバ200に対して、更新データを送信する。
[Processing by Update Repropagation Unit of Database Server in Embodiment 1]
FIG. 27 is a flowchart illustrating an example of a processing flow by the update re-propagation unit of the database server according to the first embodiment. As will be described below, the update data is transmitted to the database server 200 that has not been distributed by the update information distribution unit 228.

すなわち、以下に説明するように、更新再伝播部229は、故障などにより、更新情報配信部228で更新データの配信がなされなかったデータベースサーバ200や更新が行われなかったデータベースサーバ200に対して、更新データを配信したり、更新を実行したりする。なお、更新再伝播部229は、以下に説明する処理を定期的に実行したり、不定期に実行したりする。   That is, as will be described below, the update re-propagation unit 229 performs the update on the database server 200 in which the update data distribution unit 228 has not delivered update data or the database server 200 in which update has not been performed due to a failure or the like. , Distribute update data or execute update. Note that the update re-propagation unit 229 periodically executes the processing described below or irregularly.

図27に示すように、データベースサーバ200の更新再伝播部229は、再伝播処理を開始すると、自データベースサーバ200が配信装置であるか否かを判定する(ステップS401)。ここで、更新再伝播部229は、配信装置であると判定した場合には(ステップS401肯定)、配信情報DB213から自装置の更新結果が「OK」以外の更新IDを取得する(ステップS402)。   As illustrated in FIG. 27, when the update re-propagation unit 229 of the database server 200 starts the re-propagation process, the update re-propagation unit 229 determines whether or not the own database server 200 is a distribution device (step S401). If the update re-propagation unit 229 determines that the update re-propagation unit 229 is a distribution device (Yes at Step S401), the update re-propagation unit 229 acquires an update ID other than “OK” as the update result of the own device from the distribution information DB 213 (Step S402). .

ここで、更新再伝播部229は、更新IDが存在する場合に(ステップS403肯定)、更新IDに対応する更新データを用いて、更新対象となるデータベースサーバ200のデータを更新する(ステップS404)。   Here, when there is an update ID (Yes at Step S403), the update re-propagating unit 229 updates the data of the database server 200 to be updated using the update data corresponding to the update ID (Step S404). .

そして、更新再伝播部229は、更新対象となるデータベースサーバ200の更新が成功した場合には(ステップS405肯定)、更新が成功したデータベースサーバ名に対応付けて更新結果「OK」を配信情報DB213に格納する(ステップS407)。   Then, when the update of the database server 200 to be updated is successful (Yes in step S405), the update re-propagation unit 229 associates the update result “OK” with the name of the database server that has been successfully updated, and the distribution information DB 213. (Step S407).

そして、更新再伝播部229は、未処理の更新IDが存在するかを判定し(ステップS408)、すべての更新ID分の処理が終わっていると判定した場合には(ステップS408否定)、自装置以外のデータベースサーバ200の一覧を作成する(ステップS409)。   Then, the update re-propagation unit 229 determines whether or not there is an unprocessed update ID (step S408), and determines that all the update IDs have been processed (No at step S408). A list of database servers 200 other than the apparatus is created (step S409).

一方、ステップS408に戻り、更新再伝播部229は、未処理の更新IDが存在すると判定した場合には(ステップS408肯定)、ステップS404に戻り、処理を繰り返す。   On the other hand, returning to step S408, if the update re-propagating unit 229 determines that there is an unprocessed update ID (Yes at step S408), the update re-propagating unit 229 returns to step S404 and repeats the process.

また、ステップS405に戻り、更新再伝播部229は、更新が失敗した場合(ステップS405否定)、配信情報DB213の対象データベースサーバ名に対応する更新結果欄に更新結果「NG」を格納し(ステップS406)、ステップS409以降の処理を継続する。また、ステップS403に戻り、更新IDが存在しない場合には(ステップS403否定)、更新再伝播部229は、ステップS409以降の処理を継続する。   Returning to step S405, the update re-propagation unit 229 stores the update result “NG” in the update result column corresponding to the target database server name in the distribution information DB 213 when the update has failed (No in step S405) (step S405). S406), the processing after step S409 is continued. Returning to step S403, if the update ID does not exist (No at step S403), the update re-propagation unit 229 continues the processing from step S409.

次に、ステップS409以降の処理を説明する。以下に説明するように、更新再伝播部229は、装置以外のデータベースサーバ200の一覧から、データベースサーバ200ごとに、該当のデータベースサーバ200の配信結果が「OK」以外の結果が格納されている行の更新IDを配信情報DB213から取得して、更新データを配信する処理や更新を実行する。   Next, the process after step S409 is demonstrated. As will be described below, the update re-propagation unit 229 stores, for each database server 200, a result other than “OK” as the distribution result of the corresponding database server 200 from the list of database servers 200 other than the device. The update ID of the row is acquired from the distribution information DB 213, and processing and updating for distributing update data are executed.

ステップS409に示すように、更新再伝播部229は、検索順序を任意の手法にて決定する(ステップS409)。そして、更新再伝播部229は、検索順序に従って選択された、1つデータベースサーバ200について、配信結果が「OK」以外の結果が格納されている行の更新IDを取得する(ステップS410)。例えば、配信装置となるデータベースサーバ200がデータベースサーバ「A」であり、データベースサーバ「B」を選択した場合を用いて説明する。この場合、データベースサーバ「A」の更新再伝播部229は、自装置の配信情報DB213を参照し、データベースサーバ名「データベースサーバB」に対応付けられた更新IDのうち、配信結果「OK」以外に対応付けられた更新IDを取得する。   As shown in step S409, the update re-propagation unit 229 determines the search order by an arbitrary method (step S409). Then, the update re-propagation unit 229 acquires an update ID of a row in which a result other than the distribution result “OK” is stored for one database server 200 selected according to the search order (step S410). For example, a case where the database server 200 serving as a distribution apparatus is the database server “A” and the database server “B” is selected will be described. In this case, the update re-propagation unit 229 of the database server “A” refers to the distribution information DB 213 of the own device, and among the update IDs associated with the database server name “database server B”, other than the distribution result “OK”. An update ID associated with is acquired.

ここで、更新再伝播部229は、更新IDが存在する場合(ステップS411肯定)、取得した更新IDについての更新データを対象となるデータベースサーバ200に配信し、配信結果を配信情報DB213に格納する(ステップS412)。つまり、更新再伝播部229は、配信が成功した場合には配信結果「OK」を格納し、配信が成功しなかった場合には配信結果「未配信」を格納する。   Here, when the update ID exists (Yes at Step S411), the update re-propagation unit 229 distributes the update data for the acquired update ID to the target database server 200 and stores the distribution result in the distribution information DB 213. (Step S412). That is, the update re-propagation unit 229 stores the distribution result “OK” when the distribution is successful, and stores the distribution result “undistributed” when the distribution is not successful.

そして、更新再伝播部229は、ステップS410で取得した更新IDをすべて処理したかを判定し(ステップS413)、処理していないと判定した場合(ステップS413否定)、ステップS412に戻り、処理を繰り返す。一方、更新再伝播部229は、すべて処理したと判定した場合には(ステップS413肯定)、ステップS414以降の処理を実施する。また、ステップS411で、そもそも更新IDがなかった場合にも(ステップS411否定)、ステップS414以降の処理を実施する。   Then, the update re-propagation unit 229 determines whether or not all the update IDs acquired in step S410 have been processed (step S413). If it is determined that the update ID has not been processed (No in step S413), the process returns to step S412 to perform the process. repeat. On the other hand, when the update re-propagation unit 229 determines that all the processes have been processed (Yes at Step S413), the process after Step S414 is performed. In step S411, even if there is no update ID in the first place (No in step S411), the processing after step S414 is performed.

そして、更新再伝播部229は、配信情報DB213から、処理対象となるデータベースサーバ200の更新結果が、「OK」以外の更新IDを取得する(ステップS414)。例えば、配信装置となるデータベースサーバ200がデータベースサーバ「A」であり、データベースサーバ「B」を選択した場合を用いて説明する。この場合、データベースサーバ「A」の更新再伝播部229は、自装置の配信情報DB213を参照し、データベースサーバ名「データベースサーバB」に対応付けられた更新IDのうち、更新結果「OK」以外に対応付けられた更新IDを取得する。   Then, the update re-propagation unit 229 acquires an update ID other than “OK” as the update result of the database server 200 to be processed from the distribution information DB 213 (step S414). For example, a case where the database server 200 serving as a distribution apparatus is the database server “A” and the database server “B” is selected will be described. In this case, the update re-propagation unit 229 of the database server “A” refers to the distribution information DB 213 of the own device, and the update ID associated with the database server name “database server B” is other than the update result “OK”. An update ID associated with is acquired.

ここで、更新再伝播部229は、更新IDが存在する場合(ステップS415肯定)、更新IDに対応する配信済みの更新データを用いて、処理対象となるデータベースサーバ200のユーザ情報DB211を更新する(ステップS416)。また、更新再伝播部229は、更新が成功した場合には(ステップS417肯定)、処理対象となった更新IDと処理対象となったデータベースサーバ名とに対応付けて、更新結果「OK」を配信情報DB213に格納する(ステップS418)。一方、更新再伝播部229は、更新が成功しなかった場合には(ステップS417否定)、処理対象となった更新IDと処理対象となったデータベースサーバ名とに対応付けて、更新結果「NG」を配信情報DB213に格納する(ステップS420)。   Here, when there is an update ID (Yes at Step S415), the update re-propagating unit 229 updates the user information DB 211 of the database server 200 to be processed using the distributed update data corresponding to the update ID. (Step S416). If the update re-propagation unit 229 succeeds in updating (Yes in step S417), the update re-propagation unit 229 associates the update result “OK” with the update ID to be processed and the database server name to be processed. Stored in the distribution information DB 213 (step S418). On the other hand, if the update has not been successfully updated (No at Step S417), the update re-propagation unit 229 associates the update result “NG” with the update ID that is the processing target and the database server name that is the processing target. Is stored in the distribution information DB 213 (step S420).

そして、更新再伝播部229は、まだ処理すべき更新IDが残っている場合には(ステップS419否定)、ステップS416に戻り、処理を繰り返す。一方、更新再伝播部229は、すべての更新IDを処理した場合には(ステップS419肯定)、すべてのデータベースサーバ200について処理を実行したかを判定する(ステップS421)。ここで、処理を実行したと判定した場合には(ステップS421肯定)、処理を終了する。一方、更新再伝播部229は、処理を実行していない判定した場合には(ステップS421否定)、ステップS410に戻り、検索順序に従って次のデータベースサーバ200を選択して処理を繰り返す。   When the update ID to be processed still remains (No at Step S419), the update re-propagating unit 229 returns to Step S416 and repeats the process. On the other hand, when all update IDs have been processed (Yes at Step S419), the update re-propagation unit 229 determines whether the processing has been executed for all the database servers 200 (Step S421). If it is determined that the process has been executed (Yes at step S421), the process ends. On the other hand, if the update re-propagation unit 229 determines that the process is not executed (No at Step S421), the update re-propagation unit 229 returns to Step S410, selects the next database server 200 according to the search order, and repeats the process.

[実施例1におけるキャッシュサーバのキャッシュ判定部による処理]
図28は、実施例1におけるキャッシュサーバのキャッシュ判定部による処理の流れの一例を示すフローチャートである。以下に説明するように、キャッシュサーバ300のキャッシュ判定部321は、クライアント端末500からデータ要求を受信するごとに、図28に示す一連の処理を実行する。すなわち、クライアント端末500が要求するデータのキー情報を含むデータ要求をキャッシュサーバ300に送信するごとに、以下に説明する処理が実行される。
[Processing by Cache Determination Unit of Cache Server in Embodiment 1]
FIG. 28 is a flowchart illustrating an example of a flow of processing performed by the cache determination unit of the cache server according to the first embodiment. As will be described below, each time the cache determination unit 321 of the cache server 300 receives a data request from the client terminal 500, it executes a series of processes shown in FIG. That is, every time a data request including key information of data requested by the client terminal 500 is transmitted to the cache server 300, the processing described below is executed.

図28に示すように、キャッシュサーバ300のキャッシュ判定部321は、クライアント端末500からデータ要求を受信すると(ステップS101肯定)、受信したデータ要求に含まれるキー情報を取得し、取得したキー情報に対応付けられた属性情報をキャッシュ311にて検索する(ステップS102)。   As illustrated in FIG. 28, when the cache determination unit 321 of the cache server 300 receives a data request from the client terminal 500 (Yes in step S101), the cache determination unit 321 acquires key information included in the received data request and includes the acquired key information. The associated attribute information is searched in the cache 311 (step S102).

ここで、キャッシュ判定部321は、キー情報に対応付けられた属性情報がキャッシュ311に存在する場合には(ステップS103肯定)、キャッシュ311に記憶されていた属性情報を応答処理部323に出力する(ステップS104)。   Here, when the attribute information associated with the key information exists in the cache 311 (Yes at Step S103), the cache determination unit 321 outputs the attribute information stored in the cache 311 to the response processing unit 323. (Step S104).

例えば、データ要求にキー情報「U001」が含まれる場合を用いて説明する。この場合、キャッシュ判定部321は、キー情報「U001」に対応付けられた属性情報をキャッシュ311にて検索する。ここで、例えば、キー情報「U001」と属性情報「P001」を対応付けてキャッシュ311が記憶していた場合には、キャッシュ判定部321は、属性情報「P001」をキャッシュ311から取得し、応答処理部323に出力する。   For example, a case where key information “U001” is included in the data request will be described. In this case, the cache determination unit 321 searches the cache 311 for attribute information associated with the key information “U001”. Here, for example, when the cache 311 stores the key information “U001” and the attribute information “P001” in association with each other, the cache determination unit 321 acquires the attribute information “P001” from the cache 311 and returns a response. The data is output to the processing unit 323.

一方、ステップS103に戻り、キャッシュ判定部321は、キー情報に対応付けられた属性情報がキャッシュ311に存在しない場合には(ステップS103否定)、検索先状態DB312から閉塞状態「閉塞」となっていないデータベースサーバ名を検索する(ステップS105)。すなわち、キャッシュ判定部321は、自装置内の検索先状態DB312を参照することで、閉塞状態「閉塞」となっていないデータベースサーバ200を検索する。   On the other hand, returning to step S103, if the attribute information associated with the key information does not exist in the cache 311 (No in step S103), the cache determination unit 321 has the blocking state “blocking” from the search destination state DB 312. A database server name that does not exist is searched (step S105). That is, the cache determination unit 321 searches the database server 200 that is not in the blocked state “blocked” by referring to the search destination state DB 312 in the own device.

ここで、キャッシュ判定部321は、データベースサーバ200の閉塞状態がすべて「閉塞」となっていた場合には(ステップS106肯定)、検索失敗を応答処理部323に出力する(ステップS111)。つまり、この場合、キャッシュサーバ300が自装置のキャッシュ311にないデータを要求する要求先となるデータベースサーバ200がなく、データベースサーバ200からデータを取得してクライアント端末500に送信することができない。このことを踏まえ、キャッシュ判定部321は、検索失敗を応答処理部323に出力する。   Here, when all the blocked states of the database server 200 are “blocked” (Yes at Step S106), the cache determination unit 321 outputs a search failure to the response processing unit 323 (Step S111). That is, in this case, there is no database server 200 as a request destination for requesting data that the cache server 300 does not have in the cache 311 of its own device, and data cannot be acquired from the database server 200 and transmitted to the client terminal 500. Based on this, the cache determination unit 321 outputs a search failure to the response processing unit 323.

一方、キャッシュ判定部321は、データベースサーバ200の閉塞状態がすべて「閉塞」となっていない場合には(ステップS106否定)、未閉塞なデータベースサーバ200のいずれかを選択し、データ要求に含まれるキー情報に対応する属性情報を要求するデータ検索要求を選択した未閉塞なデータベースサーバ200に送信する(ステップS107)。   On the other hand, if all of the blocked states of the database server 200 are not “blocked” (No at Step S106), the cache determination unit 321 selects one of the unblocked database servers 200 and is included in the data request. A data search request for requesting attribute information corresponding to the key information is transmitted to the selected non-blocked database server 200 (step S107).

すなわち、キャッシュ311に属性情報が記憶されていない場合、例えば、キャッシュ判定部321は、データ要求に含まれていたキー情報「U001」に対応する属性情報を要求するデータ検索要求を送信する。ここで、送信先となるデータベースサーバ200は、図9に示す例では、閉塞状態「未閉塞」に対応付けられたデータベースサーバ「A」又はデータベースサーバ「B」となる。   In other words, when the attribute information is not stored in the cache 311, for example, the cache determination unit 321 transmits a data search request for requesting attribute information corresponding to the key information “U001” included in the data request. Here, in the example illustrated in FIG. 9, the database server 200 that is the transmission destination is the database server “A” or the database server “B” associated with the blocked state “not blocked”.

そして、キャッシュ判定部321は、データベースサーバ200からのデータ検索要求に対する応答を受信する(ステップS108)。ここで、キャッシュ判定部321は、検索結果がありの場合には(ステップS109肯定)、キャッシュ311にデータを格納し(ステップS110)、属性情報をクライアント端末500に出力する。一方、キャッシュ判定部321は、検索結果がなしの場合には(ステップS109否定)、つまり、データ要求に含まれるキー情報が存在しない旨を応答処理部323に出力する(ステップS112)。   Then, the cache determination unit 321 receives a response to the data search request from the database server 200 (step S108). Here, if there is a search result (Yes at Step S109), the cache determination unit 321 stores the data in the cache 311 (Step S110), and outputs the attribute information to the client terminal 500. On the other hand, when there is no search result (No at Step S109), the cache determination unit 321 outputs that the key information included in the data request does not exist to the response processing unit 323 (Step S112).

[実施例1におけるキャッシュサーバのIR情報判定部による処理]
図29は、実施例1におけるキャッシュサーバのIR情報判定部による処理の流れの一例を示すフローチャートである。以下では、キャッシュサーバ300が検索先状態DB312を更新する際に実行される処理と、キャッシュサーバ300がIR情報をデータベースサーバ200から取得する処理とを連続して実行する場合を用いて説明するキャッシュサーバ300のIR情報判定部322は、以下に説明する一連の処理を、定期的に実行したり、不定期にて実行したりする。
[Processing by IR Information Determination Unit of Cache Server in Embodiment 1]
FIG. 29 is a flowchart illustrating an example of a process flow by the IR information determination unit of the cache server according to the first embodiment. In the following, the cache will be described using a case where the process executed when the cache server 300 updates the search destination state DB 312 and the process where the cache server 300 continuously acquires IR information from the database server 200. The IR information determination unit 322 of the server 300 performs a series of processes described below periodically or irregularly.

図29に示すように、キャッシュサーバ300のIR情報判定部322は、IR情報の検索先となるデータベースサーバ200の検索順序を決定する(ステップS201)。ここで、IR情報の検索先となるデータベースサーバ200各々は、キャッシュサーバ300各々の検索先状態DB312に記憶されたデータベースサーバ名により識別されるデータベースサーバ200各々となる。すなわち、IR情報判定部322は、更新処理が正常に行われていないデータベースサーバ200からIR情報を取得することができないことを踏まえ、IR情報の検索先となるデータベースサーバ200各々について、更新処理の状況を検索する。   As shown in FIG. 29, the IR information determination unit 322 of the cache server 300 determines the search order of the database server 200 that is a search destination of IR information (step S201). Here, each database server 200 as a search destination of IR information becomes each database server 200 identified by the database server name stored in the search destination state DB 312 of each cache server 300. That is, based on the fact that IR information cannot be acquired from a database server 200 that has not been updated normally, the IR information determination unit 322 performs update processing for each database server 200 that is a search destination of IR information. Search the status.

図29の説明に戻る。そして、IR情報判定部322は、データベースサーバ200に対して、検索先となるデータベースサーバ名を含む更新成否情報検索要求を送信する(ステップS202)。検索先となるデータベースサーバ200がデータベースサーバ「A」である場合を用いて説明する。この場合、IR情報判定部322は、任意のデータベースサーバ200に対して、データベースサーバ名「データベースサーバA」を含む更新成否要求を送信する。   Returning to the description of FIG. Then, the IR information determination unit 322 transmits an update success / failure information search request including the name of the database server to be searched to the database server 200 (step S202). The case where the database server 200 as a search destination is the database server “A” will be described. In this case, the IR information determination unit 322 transmits an update success / failure request including the database server name “database server A” to any database server 200.

そして、IR情報判定部322は、データベースサーバ200から更新成否結果を受信し(ステップS203)、受信した更新成否結果に基づいて、データベースサーバ200の更新登録状態を判定する(ステップS204)。   The IR information determination unit 322 receives the update success / failure result from the database server 200 (step S203), and determines the update registration state of the database server 200 based on the received update success / failure result (step S204).

ここで、IR情報判定部322による更新登録状態判定処理について更に説明する。具体的には、IR情報判定部322は、受信した更新成否結果と、前回の更新登録状態判定結果とに基づいて、今回の更新登録状態を判定する。例えば、IR情報判定部322は、更新成否結果と前回の更新登録状態判定結果と今回の更新登録状態とが対応付けられた更新登録状態対応表に基づいて、更新登録状態を判定する。また、IR情報判定部322は、判定結果となる更新登録状態を更新登録状態DB313に格納する。   Here, the update registration state determination process by the IR information determination unit 322 will be further described. Specifically, the IR information determination unit 322 determines the current update registration state based on the received update success / failure result and the previous update registration state determination result. For example, the IR information determination unit 322 determines the update registration state based on the update registration state correspondence table in which the update success / failure result, the previous update registration state determination result, and the current update registration state are associated with each other. Further, the IR information determination unit 322 stores the update registration state that is the determination result in the update registration state DB 313.

図30は、実施例1における更新登録状態対応表の一例を示す図である。図30に示す例では、更新登録状態が、「正常」と「伝播異常検出」と「伝播異常」と「正常移行中」とのうちいずれかである場合を例に示したが、これに限定されるものではなく、任意の更新登録状態を用いて良い。   FIG. 30 is a diagram illustrating an example of an update registration state correspondence table according to the first embodiment. In the example illustrated in FIG. 30, the update registration state is one of “normal”, “propagation abnormality detection”, “propagation abnormality”, and “during normal transition”. Any update registration state may be used.

図30に示すように、IR情報判定部322は、更新成否結果を受信すると、前回の更新登録状態と受信した更新成否結果とを検索キーとして、更新登録状態対応表から更新登録状態を取得し、今回の更新登録状態とする。例えば、更新結果「登録正常」を受信した場合を用いて説明する。また、更新登録状態DB313に記憶された前回の更新登録状態が「伝播異常」である場合を用いて説明する。この場合、IR情報判定部322は、更新結果「登録正常」と前回の更新登録状態「任意」とを検索キーとして、更新登録状態対応表から更新登録状態「正常」を取得し、今回の更新登録状態とする。   As shown in FIG. 30, when receiving the update success / failure result, the IR information determination unit 322 acquires the update registration state from the update registration state correspondence table using the previous update registration state and the received update success / failure result as search keys. The current update registration state is assumed. For example, the case where the update result “registration normal” is received will be described. Further, the case where the previous update registration state stored in the update registration state DB 313 is “propagation abnormality” will be described. In this case, the IR information determination unit 322 acquires the update registration state “normal” from the update registration state correspondence table using the update result “registration normal” and the previous update registration state “arbitrary” as search keys, and updates this time. Registered.

そして、IR情報判定部322は、更新登録状態が「正常」以外であるかを判定する(ステップS205)。ここで、IR情報判定部322は、更新登録状態が「正常」であると判定した場合には(ステップS205否定)、自装置の検索先状態DB312に対して、IR情報の検索先となるデータベースサーバ200のデータベースサーバ名に対応付けて閉塞状態「未閉塞」を格納する(ステップS207)。一方、IR情報判定部322は、更新登録状態が「正常」以外であると判定した場合には(ステップS205肯定)、自装置の検索先状態DB312に対して、IR情報の検索先となるデータベースサーバ200のデータベースサーバ名に対応付けて閉塞状態「閉塞」を格納する(ステップS206)。   Then, the IR information determination unit 322 determines whether the update registration state is other than “normal” (step S205). If the IR information determination unit 322 determines that the update registration state is “normal” (No at step S205), the IR information determination unit 322 determines a database that is a search destination of IR information with respect to the search destination state DB 312 of the own device. The block state “unblocked” is stored in association with the database server name of the server 200 (step S207). On the other hand, when the IR information determination unit 322 determines that the update registration state is other than “normal” (Yes at Step S205), the IR information determination unit 322 makes a database that is a search destination of IR information with respect to the search destination state DB 312 of the own device. The blocked state “blocked” is stored in association with the database server name of the server 200 (step S206).

そして、IR情報判定部322は、すべてのデータベースサーバ200各々について処理を実行したかを判定し(ステップS208)、実行していないと判定した場合には(ステップS208否定)、検索順序が次のデータベースサーバ200を決定し、上述したステップS202に戻り、処理を繰り返す。   Then, the IR information determination unit 322 determines whether the processing has been executed for each of all the database servers 200 (step S208), and if it is determined that the processing has not been executed (No in step S208), the search order is the next. The database server 200 is determined, the process returns to step S202 described above, and the process is repeated.

そして、すべてのデータベースサーバ200各々について処理を実行したと判定した場合には(ステップS208肯定)、IR情報判定部322は、データベースサーバ200各々について、IR情報を検索する検索順序を任意の手法にて決定する(ステップS210)。   When it is determined that the processing has been executed for each of the database servers 200 (Yes in step S208), the IR information determination unit 322 sets the search order for searching IR information for each database server 200 to an arbitrary method. (Step S210).

そして、IR情報判定部322は、データベースサーバ200に対して、自キャッシュサーバ名を含むIR情報要求を送信する(ステップS211)。例えば、キャッシュサーバ「A」は、キャッシュサーバ名「キャッシュサーバA」を含むIR情報要求を送信する。   Then, the IR information determination unit 322 transmits an IR information request including its own cache server name to the database server 200 (step S211). For example, the cache server “A” transmits an IR information request including the cache server name “cache server A”.

そして、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すべてについて取得する。   When receiving the search result from the database server 200 (step S212), the IR information determination unit 322 determines whether IR information exists in the received search result (step S213). If the IR information determination unit 322 determines that IR information exists (Yes at Step S213), the IR information determination unit 322 transmits an update information request using the update ID included in the IR information as a key (Step S214). For example, a case where key information “U001” and update ID “I001” are received as IR information will be described. In this case, the IR information determination unit 322 transmits an update information request including the update ID “I001”. That is, the IR information determination unit 322 acquires information indicating whether or not each database server 200 has been updated for the update identified by the update ID. In other words, the IR information determination unit 322 acquires the update result for the update identified by the update ID included in the received IR information for all the database servers 200 from which the IR information is acquired.

そして、IR情報判定部322は、更新IDに対応した更新結果をデータベースサーバ200から受信すると(ステップS215)、自装置の更新登録状態DB313にデータベースサーバ200各々について記憶された更新登録状態と、受信した更新結果とに基づいて、IR情報を削除するかを判定するIR情報削除判定処理を実行する(ステップS216)。   When receiving the update result corresponding to the update ID from the database server 200 (step S215), the IR information determination unit 322 receives the update registration state stored for each database server 200 in the update registration state DB 313 of the own device, and the reception Based on the updated result, IR information deletion determination processing for determining whether to delete IR information is executed (step S216).

例えば、IR情報判定部322は、各データベースサーバ200の更新登録状態の組み合わせごとに、IR情報が削除可能となる条件が対応付けられたIR情報削除対象判定表に基づいて、IR情報削除判定処理を実行する。図31は、実施例1におけるIR情報削除対象判定表の一例を示す図である。図31に示す例では、IR情報の取得先となるデータベースサーバ200が「2つ」である場合を用いて説明する。すなわち、例えば、IR情報判定部322は、自装置の更新登録状態DB313からデータベースサーバ各々についての更新登録状態をすべて取得する。そして、IR情報判定部322は、取得した更新登録状態各々をIR情報削除対象判定表にあてはめ、削除可能となるIR情報を判定する。   For example, the IR information determination unit 322 performs IR information deletion determination processing based on an IR information deletion target determination table in which a condition that enables IR information to be deleted is associated with each combination of update registration states of each database server 200. Execute. FIG. 31 is a diagram illustrating an example of an IR information deletion target determination table according to the first embodiment. In the example illustrated in FIG. 31, a case where there are “two” database servers 200 from which IR information is acquired will be described. That is, for example, the IR information determination unit 322 acquires all update registration states for each database server from the update registration state DB 313 of the own device. Then, the IR information determination unit 322 applies each of the acquired update registration states to the IR information deletion target determination table to determine IR information that can be deleted.

図31に示す例では、IR情報削除対象判定表は、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」と「IR情報削除非対象データベースサーバ(サーバ2)の更新登録状態」との組み合わせに対応付けて、「IR情報削除対象となる更新IDの状態」を記憶する。   In the example illustrated in FIG. 31, the IR information deletion target determination table includes “update registration status of the IR information deletion target database server (server 1)” and “update registration status of the IR information deletion non-target database server (server 2)”. In association with these combinations, “the state of the update ID that is the IR information deletion target” is stored.

ここで、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」は、IR情報を削除するか否かが判定される対象となるデータベースサーバ200を示す。例えば、上述したステップS211において、IR情報要求を送信した送信先となるデータベースサーバ200が該当する。以下では、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」は、データベースサーバ「A」であるものとして説明する。   Here, “the update registration state of the IR information deletion target database server (server 1)” indicates the database server 200 that is a target for determining whether or not to delete the IR information. For example, in step S211 described above, the database server 200 that is the transmission destination that transmitted the IR information request corresponds. In the following description, it is assumed that “the update registration status of the IR information deletion target database server (server 1)” is the database server “A”.

「IR情報削除非対象データベースサーバ(サーバ2)の更新登録状態」は、複数あるデータベースサーバ200のうち、「IR情報削除対象データベースサーバ(サーバ1)の更新登録状態」を除いた他のデータベースサーバ200を示す。例えば、更新登録状態DB313にデータベースサーバ名が記憶されたデータベースサーバ200から、データベースサーバ「A」を除いた全データベースサーバ200各々が該当する。以下では、「IR情報削除非対象データベースサーバ(サーバ2)の更新登録状態」は、データベースサーバ「B」1つである場合を用いて説明する。   The “IR information deletion non-target database server (server 2) update registration status” is a database server other than the “IR information deletion target database server (server 1) update registration status” among the plurality of database servers 200. 200 is shown. For example, all the database servers 200 excluding the database server “A” from the database server 200 whose database server name is stored in the update registration state DB 313 correspond to each of them. In the following description, the case where “the update registration state of the IR information deletion non-target database server (server 2)” is one database server “B” will be described.

「IR情報削除対象となる更新IDの状態」は、IR情報が削除可能となる条件を示す。具体的には、「(サーバ1)(サーバ2)ともOK」は、(サーバ1)と(サーバ2)とにおいて共に更新結果「OK」となっている更新IDを含むIR情報が削除可能となることを示す。また、「(サーバ1)がOK」は、(サーバ1)にて更新結果「OK」となっている更新IDを含むIR情報が削除可能となることを示す。なお、ここで、IR情報が削除される対象となるデータベースサーバ200は、「IR情報削除対象データベースサーバ(サーバ1)」となる。   “The state of the update ID that is the target of IR information deletion” indicates a condition under which IR information can be deleted. Specifically, “(Server 1) (Server 2) is OK” indicates that IR information including an update ID having an update result “OK” in both (Server 1) and (Server 2) can be deleted. It shows that it becomes. “(Server 1) is OK” indicates that IR information including an update ID having an update result “OK” at (Server 1) can be deleted. Here, the database server 200 from which IR information is deleted is the “IR information deletion target database server (server 1)”.

ここで、データベースサーバ「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情報について削除可能であると判定する。   Here, a case where the update registration state of the database server “A” is “normal” and the update registration state of the database server “B” is “normal” will be described. In this case, the IR information determination unit 322 combines the update registration state “normal” of the IR information deletion target database server (server 2) and the update registration state “normal” of the IR information deletion non-target database server (server 2). "Status of update ID to be deleted of IR information" associated with the ID is acquired. In the example illustrated in FIG. 31, the IR information determination unit 322 acquires the status of update ID that is the IR information deletion target “both (server 1) and (server 2) are OK”. In this case, “OK for both (Server 1) and (Server 2)” is a condition for enabling the IR information to be deleted. That is, for the update ID whose update result is “OK” in the database server “A” and whose update result is “OK” in the database server “B”, IR information is received from the database server “A”. It is determined that it can be deleted. Then, the IR information determination unit 322 includes “the database server name, the update result” included in the update result response received from the database server 200, with “(server 1) (server 2) OK” as the obtained condition. And IR information matching the condition is determined to be deleteable.

詳細な一例をあげて説明する。例えば、データベースサーバ「A」の「更新登録状態」が「正常」である場合を用いて説明する。また、例えば、データベースサーバ「B」の「更新登録状態」が「正常」である場合を用いて説明する。また、例えば、更新情報応答に含まれる「サーバ名、更新結果」が、それぞれ、「データベースサーバ「A」、OK」、「データベースサーバ「B」、OK」である場合を用いて説明する。この場合、IR情報判定部322は、IR情報削除対象判定表から「(サーバ1)(サーバ2)ともOK」というIR情報削除可能条件を取得する。ここで、(サーバ1)はデータベースサーバ「A」であり、(サーバ2)はデータベースサーバ「B」であるので、IR情報削除対象判定表は、IR情報は削除可能であると判定する。   A detailed example will be described. For example, the case where the “update registration state” of the database server “A” is “normal” will be described. Further, for example, the case where the “update registration state” of the database server “B” is “normal” will be described. Further, for example, a case where “server name, update result” included in the update information response is “database server“ A ”, OK”, “database server“ B ”, OK” will be described. In this case, the IR information determination unit 322 acquires the IR information deletion possible condition “(Server 1) (Server 2) is OK” from the IR information deletion target determination table. Here, since (Server 1) is the database server “A” and (Server 2) is the database server “B”, the IR information deletion target determination table determines that the IR information can be deleted.

また、詳細な一例をあげて説明する。例えば、データベースサーバ「A」の「更新登録状態」が「正常」である場合を用いて説明する。また、例えば、データベースサーバ「B」の「更新登録状態」が「伝播異常検出」である場合を用いて説明する。また、例えば、更新情報応答に含まれる「サーバ名、更新結果」が、それぞれ、「データベースサーバ「A」、OK」、「データベースサーバ「B」、NG」である場合を用いて説明する。この場合、IR情報判定部322は、IR情報削除対象判定表から「(サーバ1)(サーバ2)がOK」というIR情報削除可能条件を取得する。この結果、IR情報判定部322は、IR情報は削除不可能という判定する。   Further, a detailed example will be described. For example, the case where the “update registration state” of the database server “A” is “normal” will be described. Further, for example, a case where the “update registration state” of the database server “B” is “propagation abnormality detection” will be described. Further, for example, a case where “server name, update result” included in the update information response is “database server“ A ”, OK”, “database server“ B ”, NG” will be described. In this case, the IR information determination unit 322 acquires the IR information deletion enable condition “(Server 1) (Server 2) is OK” from the IR information deletion target determination table. As a result, the IR information determination unit 322 determines that the IR information cannot be deleted.

すなわち、IR情報判定部322は、データベースサーバ200から、配信情報DB213に記憶された複数あるデータベースサーバ各々についての更新結果を取得する。そして、IR情報判定部322は、取得した更新結果各々に基づいて、複数あるデータベースサーバすべてについて更新が終了したか否かを更新IDごとに判定し、更新が終了したと判定した更新IDについて、IR情報を削除して良いと判定し、更新が終了したと判定しなかった更新IDについて、IR情報を削除しないと判定する。   That is, the IR information determination unit 322 acquires update results for each of a plurality of database servers stored in the distribution information DB 213 from the database server 200. Then, the IR information determination unit 322 determines, for each update ID, whether or not the update has been completed for all the plurality of database servers based on each of the acquired update results, and for the update ID that is determined to have been updated. It is determined that the IR information can be deleted, and it is determined that the IR information is not deleted for the update ID that has not been determined to have been updated.

より詳細には、IR情報判定部322は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ各々について判定する。そして、IR情報判定部322は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合にはIR情報を削除して良いと判定し、更新が終了していないと判定した場合にはIR情報を削除しないと判定する。   More specifically, the IR information determination unit 322 determines, for each of a plurality of database servers, whether or not the update in the database server 200 is being executed normally. Then, the IR information determination unit 322 determines whether or not the update has been completed for all the database servers 200 determined to be in a normally executed state, and when it is determined that the update has ended, the IR information is determined. Is determined to be deleted. If it is determined that the update has not been completed, it is determined that the IR information is not deleted.

図29の説明に戻る。IR情報判定部322は、IR情報削除判定処理の結果、IR情報は削除可能であると判定した場合には(ステップS217肯定)、削除しても良いと判定したIR情報に含まれるキー情報により識別されるデータを、キャッシュ311から削除する。例えば、IR情報判定部322は、削除しても良いと判定したIR情報に含まれるキー情報により識別される属性情報と、削除しても良いと判定したIR情報に含まれるキー情報自体とをキャッシュ311から削除する(ステップS218)。   Returning to the description of FIG. If the IR information determination unit 322 determines that the IR information can be deleted as a result of the IR information deletion determination process (Yes in step S217), the IR information determination unit 322 uses the key information included in the IR information determined to be deleted. The identified data is deleted from the cache 311. For example, the IR information determination unit 322 includes the attribute information identified by the key information included in the IR information determined to be deleted and the key information itself included in the IR information determined to be deleted. Delete from the cache 311 (step S218).

すなわち、IR情報判定部322は、IR情報が削除可能である場合、IR情報の「キー情報」を用い、自装置のキャッシュ311に該当するキー情報が存在する場合には、該当の「キー情報」と、キー情報に対応付けられた「属性情報」とを削除することで、キャッシュ311の最新化を行う。   That is, the IR information determination unit 322 uses the “key information” of the IR information when the IR information can be deleted, and when the corresponding key information exists in the cache 311 of the own device, ”And“ attribute information ”associated with the key information are deleted to update the cache 311.

そして、IR情報判定部322は、選択したデータベースサーバ200へIR情報削除要求を送信する(ステップS219)。すなわち、例えば、IR情報判定部322は、データベースサーバ「A」に対して、削除対象となるIR情報についての更新IDを含むIR情報削除要求を送信することで、データベースサーバ「A」にIR情報を削除させる。   Then, the IR information determination unit 322 transmits an IR information deletion request to the selected database server 200 (step S219). That is, for example, the IR information determination unit 322 transmits an IR information deletion request including an update ID for IR information to be deleted to the database server “A”, so that the IR information is transmitted to the database server “A”. To delete.

そして、IR情報判定部322は、IR情報の取得先となるデータベースサーバ200すべてについて処理を実行したか否かを判定し(ステップS220)、実行したと判定した場合には(ステップS220肯定)、処理を終了する。一方、IR情報判定部322は、実行していないと判定した場合には(ステップS220否定)、次に検索するデータベースサーバをステップS210にて決定した検索順序に従って決定し(ステップS221)、上述したステップS211に戻り、処理を繰り返す。   Then, the IR information determination unit 322 determines whether or not the processing has been executed for all the database servers 200 from which the IR information is acquired (step S220), and if it is determined that the processing has been executed (Yes in step S220), The process ends. On the other hand, if it is determined that the IR information determination unit 322 is not executing (No at Step S220), the database server to be searched next is determined in accordance with the search order determined at Step S210 (Step S221), and the above-described processing is performed. Returning to step S211, the processing is repeated.

すなわち、IR情報判定部322は、閉塞されていないデータベースサーバ200各々からIR情報を取得し、上述したステップS212からステップS219までの処理を繰り返す。   In other words, the IR information determination unit 322 acquires IR information from each database server 200 that is not blocked, and repeats the processing from step S212 to step S219 described above.

なお、ステップS213において、IR情報が存在しない場合には(ステップS213否定)、IR情報判定部322は、IR削除判定処理を実行することなく、上述したステップS220以降の処理を実行する。また、ステップS217において、IR情報が削除可能でない場合には(ステップS217否定)、IR情報判定部322は、IR情報を削除する処理を行うことなく、上述したステップS220以降の処理を実行する。   In step S213, when IR information does not exist (No in step S213), the IR information determination unit 322 executes the above-described processing after step S220 without executing the IR deletion determination processing. If the IR information cannot be deleted in step S217 (No in step S217), the IR information determination unit 322 performs the process from step S220 described above without performing the process of deleting the IR information.

なお、上述したステップS210において、IR情報判定部322は、閉塞状態「未閉塞」が格納されたデータベースサーバ200各々について、IR情報を検索する検索順序を任意の手法にて決定しても良い。言い換えると、閉塞状態「閉塞」が格納されたデータベースサーバ200各々については、IR情報を検索する検索先としなくても良い。   Note that in step S210 described above, the IR information determination unit 322 may determine the search order for searching IR information for each database server 200 in which the blocked state “non-blocked” is stored by any method. In other words, each database server 200 in which the blocking state “blocking” is stored may not be a search destination for searching IR information.

[実施例1におけるキャッシュサーバの応答処理部による流れ]
図32は、実施例1におけるキャッシュサーバの応答処理部による流れの一例を示すフローチャートである。以下に説明するように、応答処理部323は、クライアント端末500に対してデータ要求に対する応答を送信する際に、以下の処理を実行する。
[Flow by Response Processing Unit of Cache Server in Example 1]
FIG. 32 is a flowchart illustrating an example of a flow by the response processing unit of the cache server in the first embodiment. As will be described below, the response processing unit 323 executes the following processing when transmitting a response to the data request to the client terminal 500.

図32に示すように、応答処理部323は、キャッシュ判定部321から応答情報が入力されると(ステップS1001肯定)、キャッシュ判定部321から指定された「キー情報、属性情報」、「キー情報なし」、「検索失敗」をもとに、クライアント端末500への応答情報を組み立てる(ステップS1002)。そして、応答処理部323は、組み立てた応答情報をクライアント端末500に送信する(ステップS1003)。すなわち、応答処理部323は、キャッシュ判定部321によって入力された情報を応答情報としてクライアント端末500に送信する。   As shown in FIG. 32, when response information is input from the cache determination unit 321 (Yes in step S1001), the response processing unit 323 specifies “key information, attribute information”, “key information” specified by the cache determination unit 321. Based on “None” and “Search failure”, the response information to the client terminal 500 is assembled (step S1002). Then, the response processing unit 323 transmits the assembled response information to the client terminal 500 (step S1003). That is, the response processing unit 323 transmits the information input by the cache determination unit 321 to the client terminal 500 as response information.

[実施例1における監視サーバの故障判定部による処理]
図33は、実施例1における監視サーバの故障判定部による処理の流れの一例を示すフローチャートである。故障判定部421は、図33を用いて説明する一連の処理を定期的に実行したり、不定期に実行したりする。
[Processing by Failure Determination Unit of Monitoring Server in Example 1]
FIG. 33 is a flowchart illustrating an example of a process flow by the failure determination unit of the monitoring server in the first embodiment. The failure determination unit 421 periodically executes a series of processes described with reference to FIG. 33 or irregularly.

図33に示すように、故障判定部421は、自装置の装置情報DB411から、データベースサーバ名の一覧を取得し、処理順序を決定する(ステップS1101)。例えば、故障判定部421は、取得した一覧に記載された順番を処理順序として決定する。   As illustrated in FIG. 33, the failure determination unit 421 acquires a list of database server names from the device information DB 411 of its own device, and determines the processing order (step S1101). For example, the failure determination unit 421 determines the order described in the acquired list as the processing order.

そして、故障判定部421は、データベースサーバ200に装置状態要求を送信する(ステップS1102)。例えば、故障判定部421は、一覧の最初に記載されたデータベースサーバ200に対して装置状態要求を送信する。   Then, the failure determination unit 421 transmits a device status request to the database server 200 (step S1102). For example, the failure determination unit 421 transmits a device status request to the database server 200 described at the beginning of the list.

その後、故障判定部421は、データベースサーバ200から装置状態応答を受信する処理を実行し(ステップS1103)、装置状態応答が受信したかを判定する(ステップS1004)。ここで、故障判定部421は、装置状態応答を受信したと判定した場合には(ステップS1104肯定)、受信した装置情報を用いて、予め設定された判定基準に基づいて故障判定を実行する(ステップS1105)。すなわち、例えば、故障判定部421は、データベースサーバ200の配信関連リソースの状態を示す情報を受信すると、受信した情報に基づいて故障判定を実行する。なお、故障判定部421による判定処理においては、任意の判定基準を用いて、任意の手法を用いて実行して良い。   Thereafter, the failure determination unit 421 executes processing for receiving a device status response from the database server 200 (step S1103), and determines whether a device status response has been received (step S1004). If the failure determination unit 421 determines that a device status response has been received (Yes at step S1104), the failure determination unit 421 performs failure determination based on a predetermined determination criterion using the received device information ( Step S1105). That is, for example, when the failure determination unit 421 receives information indicating the state of the distribution-related resource of the database server 200, the failure determination unit 421 performs failure determination based on the received information. Note that the determination process by the failure determination unit 421 may be performed using an arbitrary method using an arbitrary determination criterion.

そして、故障判定部421は、装置状態の判定結果が正常である場合には(ステップS1106肯定)、装置情報DB411に記憶された装置状態のうち、処理対象となったデータベースサーバ200のデータベースサーバ名に対応付けられた装置状態を、装置状態「正常」に更新する(ステップS1107)。   Then, when the determination result of the device state is normal (Yes at Step S1106), the failure determination unit 421 determines the database server name of the database server 200 that is the processing target among the device states stored in the device information DB 411. Is updated to the device state “normal” (step S1107).

そして、故障判定部421は、全データベースサーバ200について処理を行った場合には(ステップS1110否定)、データベースサーバ名の一覧から次のデータベースサーバ200を選択し(ステップS1112)、ステップS1102に戻って処理を繰り返す。一方、故障判定部421は、全データベースサーバ200分の処理を行っていない場合には(ステップS1110肯定)、各データベースサーバ200各々についての判定結果となる装置状態を格納する旨の装置状態格納要求をデータベースサーバ200各々に送信し(ステップS1111)、処理を終了する。   If the failure determination unit 421 has processed all the database servers 200 (No at step S1110), the failure determination unit 421 selects the next database server 200 from the list of database server names (step S1112), and returns to step S1102. Repeat the process. On the other hand, if the failure determination unit 421 has not performed processing for all the database servers 200 (Yes in step S1110), the apparatus state storage request for storing the apparatus state that is the determination result for each database server 200 is stored. Is transmitted to each database server 200 (step S1111), and the process is terminated.

一方、上述したステップS1104に戻り、装置状態応答を受信しなかったと判定した場合(ステップS1104否定)や、装置状態の判定結果が正常ではなかった場合(ステップS1106否定)について説明する。この場合、故障判定部421は、装置情報DB411に記憶された装置状態のうち、処理対象となったデータベースサーバ200のデータベースサーバ名に対応付けられた装置状態を、装置状態「故障」に更新する(ステップS1108)。そして、故障判定部421は、処理対象となったデータベースサーバ200に、キャッシュサーバ300との間におけるデータの送受信を閉塞する旨の閉塞要求を送信することで、キャッシュサーバ300を閉塞する(ステップS1109)。そして、上述したステップS1110以降の処理を実行する。   On the other hand, returning to the above-described step S1104, the case where it is determined that the device status response has not been received (No in step S1104) or the case where the device status determination result is not normal (No in step S1106) will be described. In this case, the failure determination unit 421 updates the device state associated with the database server name of the database server 200 to be processed among the device states stored in the device information DB 411 to the device state “failure”. (Step S1108). Then, the failure determination unit 421 closes the cache server 300 by transmitting to the database server 200 that is the processing target a block request that blocks data transmission and reception with the cache server 300 (step S1109). ). And the process after step S1110 mentioned above is performed.

なお、故障判定部421は、一度閉塞要求を送信した後に、データベースサーバ200にて遮断処理が失敗すると、例えば、再度閉塞要求を送信し、成功するまで繰り返す。ただし、これに限定されるものではなく、成功するまで繰り返さなくても良い。例えば、故障判定部421は、所定の回数閉塞要求を送信した後に、エラーとして処理を終了しても良い。すなわち、閉塞が失敗した場合には、何らかの想定外の故障が存在することが想定されることを踏まえ、繰り返しを一切行わなくても良く、所定回数以上繰り返しを行わなくても良い。   In addition, the failure determination unit 421 once transmits a block request, and when the blocking process fails in the database server 200, for example, transmits a block request again and repeats until it succeeds. However, the present invention is not limited to this, and may not be repeated until successful. For example, the failure determination unit 421 may terminate the process as an error after transmitting a blocking request a predetermined number of times. That is, when the blockage fails, it is not necessary to repeat at all, and it is not necessary to repeat it more than a predetermined number of times, based on the assumption that some unexpected failure exists.

[実施例1の効果]
上述したように、実施例1によれば、キャッシュ制御システムでは、データベースサーバ各々は、自データベースサーバのデータが更新される場合に、更新されるデータを識別するキー情報を含むIR情報を複数あるキャッシュサーバ300を識別するキャッシュサーバ名に対応付けてIR情報DB212に格納する。また、キャッシュサーバ300各々は、複数あるデータベースサーバ200各々から、IR情報DB212に自キャッシュサーバを識別するキャッシュサーバ名に対応付けて格納されたIR情報を取得する。そして、キャッシュサーバ300は、取得したIR情報により識別されるデータのキャッシュを無効にする。この結果、1つでも正常なデータベースサーバ200があれば、キャッシュサーバ300に記憶された更新前のデータを無効化可能である。
[Effect of Example 1]
As described above, according to the first embodiment, in the cache control system, each database server has a plurality of IR information including key information for identifying data to be updated when the data in the database server is updated. The information is stored in the IR information DB 212 in association with the cache server name for identifying the cache server 300. Each of the cache servers 300 acquires IR information stored in the IR information DB 212 in association with the cache server name that identifies the cache server from each of the plurality of database servers 200. Then, the cache server 300 invalidates the cache of data identified by the acquired IR information. As a result, if there is at least one normal database server 200, the data before update stored in the cache server 300 can be invalidated.

また、実施例1によれば、キャッシュ制御システムでは、複数あるデータベースサーバ200各々は、複数あるデータベースサーバ200各々について、データの更新が終了したか否かを示す更新結果を記憶する配信情報DB213を有する。また、キャッシュサーバ300各々は、データベースサーバ200から、配信情報DB213に記憶された複数あるデータベースサーバ200各々についての更新結果を取得する。そして、キャッシュサーバ300各々は、取得した更新結果各々に基づいて、複数あるデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、取得したIR情報をIR情報DB212から削除する削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。この結果、データベースサーバ200とキャッシュサーバ300とを一致させることが可能である。例えば、更新済みのデータベースサーバが1台でも残っていれば、キャッシュデータに古いデータが有効なまま残るのを防止可能である。   Further, according to the first embodiment, in the cache control system, each of the plurality of database servers 200 has the distribution information DB 213 that stores an update result indicating whether or not the data update is completed for each of the plurality of database servers 200. Have. Each of the cache servers 300 acquires update results for each of the plurality of database servers 200 stored in the distribution information DB 213 from the database server 200. Then, each of the cache servers 300 determines whether or not the update has been completed for all of the plurality of database servers 200 based on each of the acquired update results, and if it is determined that the update has ended, the acquired IR information Is deleted from the IR information DB 212. If it is determined that the update has not been completed, the deletion process is not executed. As a result, the database server 200 and the cache server 300 can be matched. For example, if even one updated database server remains, it is possible to prevent old data from remaining valid in the cache data.

すなわち、キャッシュサーバが、データベースサーバ各々からIR情報を取得し、IR情報を取得すると直ちにデータベースサーバからIR情報を削除する場合を用いて説明する。また、データベースサーバ「1」とデータベースサーバ「2」とがある場合を用いて説明する。また、データベースサーバ「1」に更新が行われてIR情報が生成された場合を用いて説明する。ここで、キャッシュサーバは、データベースサーバ「1」及びデータベースサーバ「2」に対してIR情報を要求すると、データベースサーバ「1」からIR情報を取得する。そして、キャッシュサーバは、IR情報に基づいて自キャッシュの古いデータを削除し、データベースサーバ「1」からIR情報を削除する。ここで、データベースサーバ「1」に対する更新がデータベースサーバ「2」に対して反映される前に、データベースサーバ「1」に故障が発生するとする。そうすると、キャッシュサーバは、クライアント端末からデータ要求を受信すると、古いデータを削除しており、データベースサーバにデータを要求する。ここで、データベースサーバ「1」は故障しており、キャッシュサーバは、データベースサーバ「2」にデータを要求することになる。ここで、データベースサーバ「2」には、更新が反映されておらず、IR情報についてもデータベースサーバ「1」から削除されている。この結果、キャッシュサーバは、データベースサーバ「2」から古いデータを受信すると、かかる古いデータが有効なまま継続して保持することになる。   That is, the case where the cache server acquires IR information from each database server and deletes IR information from the database server as soon as IR information is acquired will be described. Further, a case where there are a database server “1” and a database server “2” will be described. Further, a case where IR information is generated by updating the database server “1” will be described. When the cache server requests IR information from the database server “1” and the database server “2”, the cache server acquires IR information from the database server “1”. Then, the cache server deletes old data in its own cache based on the IR information, and deletes the IR information from the database server “1”. Here, it is assumed that a failure occurs in the database server “1” before the update to the database server “1” is reflected in the database server “2”. Then, when the cache server receives the data request from the client terminal, the cache server deletes the old data and requests the data from the database server. Here, the database server “1” is out of order, and the cache server requests data from the database server “2”. Here, the update is not reflected in the database server “2”, and the IR information is also deleted from the database server “1”. As a result, when the cache server receives the old data from the database server “2”, the cache server continues to hold the old data while being valid.

これに対して、上述したように、実施例1によれば、キャッシュ制御システムでは、キャッシュサーバ300は、更新がデータベースサーバ200すべてに反映されていることを確認した上で、IR情報を削除するので、どの時点においてデータベースサーバ200が故障したとしても、古いデータを確実に削除することが可能である。   On the other hand, as described above, according to the first embodiment, in the cache control system, the cache server 300 deletes the IR information after confirming that the update is reflected in all the database servers 200. Therefore, even if the database server 200 fails at any point in time, it is possible to delete old data without fail.

また、実施例1によれば、キャッシュ制御システムでは、キャッシュサーバ300は、データベースサーバ200における更新が正常に実行されている状態か否かを複数あるデータベースサーバ200各々について判定する。そして、キャッシュサーバ300は、正常に実行されている状態であると判定されたデータベースサーバ200すべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には削除処理を実行し、更新が終了していないと判定した場合には削除処理を実行しない。この結果、データベースサーバ200とキャッシュサーバ300とを一致させることが可能である。   Further, according to the first embodiment, in the cache control system, the cache server 300 determines, for each of the plurality of database servers 200, whether or not the update in the database server 200 is normally executed. Then, the cache server 300 determines whether or not the update has been completed for all the database servers 200 that are determined to be normally executed, and executes the deletion process when it is determined that the update has been completed. However, if it is determined that the update has not ended, the deletion process is not executed. As a result, the database server 200 and the cache server 300 can be matched.

また、実施例1によれば、キャッシュ制御システムでは、データベースサーバを監視する監視サーバ400を更に備える。そして、監視サーバ400は、監視結果に基づいて、データベースサーバ200の状態が正常であるか否かを判定し、正常でないと判定したデータベースサーバ200について、キャッシュサーバ300との間におけるデータの送受信を閉塞する。この結果、正常でないデータベースサーバ200がキャッシュサーバ300に応答することを防止可能である。   According to the first embodiment, the cache control system further includes the monitoring server 400 that monitors the database server. Then, the monitoring server 400 determines whether or not the state of the database server 200 is normal based on the monitoring result, and transmits / receives data to / from the cache server 300 for the database server 200 determined to be not normal. Block. As a result, it is possible to prevent the abnormal database server 200 from responding to the cache server 300.

[システム構成]
また、本実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については(図1〜図33)、特記する場合を除いて任意に変更することができる。
[System configuration]
Also, among the processes described in this embodiment, all or part of the processes described as being performed automatically can be performed manually, or the processes described as being performed manually can be performed. All or a part can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-mentioned document and drawings (FIGS. 1 to 33) are arbitrarily changed unless otherwise specified. be able to.

また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、データベースサーバ200の配信情報DB213を外部装置として、ネットワーク経由で各データベースサーバ200が接続して同一の配信情報DB213を共有しても良い。また、例えば、監視サーバ400を用いなくても良い。   Further, each component of each illustrated apparatus is functionally conceptual, and does not necessarily need to be physically configured as illustrated. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or a part of the distribution / integration may be functionally or physically distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, with the distribution information DB 213 of the database server 200 as an external device, the database servers 200 may be connected via a network and share the same distribution information DB 213. For example, the monitoring server 400 may not be used.

[プログラム]
図34は、キャッシュ制御システムによる情報処理がコンピュータを用いて具体的に実現されることを示す図である。図34に例示するように、コンピュータ3000は、例えば、メモリ3010と、CPU(Central Processing Unit)3020と、ハードディスクドライブインタフェース3030と、ネットワークインタフェース3070とを有する。コンピュータ3000の各部はバス3100によって接続される。
[program]
FIG. 34 is a diagram illustrating that information processing by the cache control system is specifically realized using a computer. As illustrated in FIG. 34, the computer 3000 includes, for example, a memory 3010, a CPU (Central Processing Unit) 3020, a hard disk drive interface 3030, and a network interface 3070. Each part of the computer 3000 is connected by a bus 3100.

メモリ3010は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース3030は、図34に例示するように、ハードディスクドライブ3080に接続される。   The memory 3010 stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 3030 is connected to the hard disk drive 3080 as illustrated in FIG.

ここで、図34に例示するように、ハードディスクドライブ3080は、例えば、OS3081、アプリケーションプログラム3082、プログラムモジュール3083、プログラムデータ3084を記憶する。すなわち、開示の技術に係る更新プログラムは、コンピュータによって実行される指令が記述されたプログラムモジュール3083として、例えばハードディスクドライブ3080に記憶される。具体的には、上記実施例で説明した制御部220の各部や制御部320の各部、制御部420の各部と同様の情報処理を実行する手順各々が記述されたプログラムモジュールが、ハードディスクドライブ3080に記憶される。   Here, as illustrated in FIG. 34, the hard disk drive 3080 stores, for example, an OS 3081, an application program 3082, a program module 3083, and program data 3084. In other words, the update program according to the disclosed technology is stored in, for example, the hard disk drive 3080 as the program module 3083 in which instructions executed by the computer are described. Specifically, a program module in which each procedure for executing the same information processing as each unit of the control unit 220, each unit of the control unit 320, and each unit of the control unit 420 described in the above embodiment is described in the hard disk drive 3080. Remembered.

また、上記実施例で説明した記憶部210や記憶部310、記憶部410に記憶されるデータのように、キャッシュ制御システムによる情報処理にて用いられるデータは、プログラムデータ3084として、例えばハードディスクドライブ3080に記憶される。そして、CPU3020が、ハードディスクドライブ3080に記憶されたプログラムモジュール3083やプログラムデータ3084を必要に応じてRAMに読み出し、各種の手順を実行する。   In addition, data used in information processing by the cache control system, such as the data stored in the storage unit 210, the storage unit 310, and the storage unit 410 described in the above embodiments, is, for example, a hard disk drive 3080 as program data 3084. Is remembered. The CPU 3020 reads the program module 3083 and program data 3084 stored in the hard disk drive 3080 to the RAM as necessary, and executes various procedures.

なお、キャッシュ制御システムを実行するプログラムに係るプログラムモジュール3083やプログラムデータ3084は、ハードディスクドライブ3080に記憶される場合に限られない。例えば、プログラムモジュール3083やプログラムデータ3084は、着脱可能な記憶媒体に記憶されても良い。この場合、CPU3020は、ディスクドライブなどの着脱可能な記憶媒体を介してデータを読み出す。また、同様に、更新プログラムに係るプログラムモジュール3083やプログラムデータ3084は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されても良い。この場合、CPU3020は、ネットワークインタフェースを介して他のコンピュータにアクセスすることで各種データを読み出す。   Note that the program module 3083 and the program data 3084 related to the program that executes the cache control system are not limited to being stored in the hard disk drive 3080. For example, the program module 3083 and the program data 3084 may be stored in a removable storage medium. In this case, the CPU 3020 reads data via a removable storage medium such as a disk drive. Similarly, the program module 3083 and program data 3084 related to the update program may be stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.). . In this case, the CPU 3020 reads various data by accessing another computer via the network interface.

[その他]
なお、本実施例で説明したキャッシュ制御システムの制御プログラムは、インターネットなどのネットワークを介して配布することができる。また、制御プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
[Others]
Note that the control program of the cache control system described in this embodiment can be distributed via a network such as the Internet. The control program can also be executed by being recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, an MO, and a DVD, and being read from the recording medium by the computer.

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 クライアント端末
200 Database Server 201 Communication Control I / F Unit 210 Storage Unit 211 User Information DB
212 IR information DB
213 Distribution information DB
214 Device information DB
220 Control unit 221 Cache response unit 222 IR information response unit 223 Update information response unit 224 Update success / failure response unit 225 Device status response unit 226 Device status storage unit 227 Blocking control unit 228 Update information distribution unit 229 Update repropagation unit 300 Cache server 301 Communication control I / F unit 310 Storage unit 311 Cache 312 Search destination state DB
313 Update registration status DB
320 Control Unit 321 Cache Determination Unit 322 IR Information Determination Unit 323 Response Processing Unit 400 Monitoring Server 401 Communication Control I / F Unit 410 Storage Unit 411 Device Information DB
420 Control Unit 421 Failure Determination Unit 500 Client Terminal

Claims (10)

非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムであって、
前記データベースサーバ各々は、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備え、
前記キャッシュサーバ各々は、
複数ある前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得部と、
前記更新情報取得部により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理部と
を備えたことを特徴とするキャッシュ制御システム。
A cache control system having a plurality of database servers storing the same data updated asynchronously and a plurality of cache servers storing a cache of data stored in the database server,
Each of the database servers
When the data of its own database server is updated, update information including update data identification information for identifying the data to be updated is stored in the update information storage unit in association with each of the plurality of identification information for identifying the cache server. A storage unit
Each of the cache servers
An update information acquisition unit that acquires the update information stored in association with identification information that identifies the cache server by the storage unit in the update information storage unit from each of the plurality of database servers,
A cache control system comprising: an invalidation processing unit that invalidates a cache of data identified by update information acquired by the update information acquisition unit.
複数ある前記データベースサーバ各々は、
複数ある前記データベースサーバ各々について、前記データの更新が終了したか否かを示す更新結果を記憶する更新結果記憶部を更に備え、
前記キャッシュサーバ各々は、
前記データベースサーバから、前記更新結果記憶部に記憶された複数あるデータベースサーバ各々についての前記更新結果を取得する更新結果取得部と、
前記更新結果取得部によって取得された更新結果各々に基づいて、複数ある前記データベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、前記更新情報取得部により取得された更新情報を前記更新情報記憶部から削除する削除処理を実行し、更新が終了していないと判定した場合には当該削除処理を実行しない削除処理部とを更に備えることを特徴とする請求項1に記載のキャッシュ制御システム。
Each of the plurality of database servers includes:
For each of the plurality of database servers, further comprising an update result storage unit for storing an update result indicating whether or not the update of the data has been completed,
Each of the cache servers
An update result acquisition unit that acquires the update result for each of a plurality of database servers stored in the update result storage unit from the database server;
Based on each update result acquired by the update result acquisition unit, it is determined whether or not the update has been completed for all the plurality of database servers, and when it is determined that the update has been completed, the update information acquisition unit A deletion processing unit that performs a deletion process for deleting the update information acquired from the update information storage unit, and when it is determined that the update has not been completed, further includes a deletion processing unit that does not execute the deletion process. The cache control system according to claim 1.
前記キャッシュサーバは、
前記データベースサーバにおける更新が正常に実行されている状態か否かを複数ある前記データベースサーバ各々について判定する更新状態判定部を更に備え、
前記キャッシュサーバの前記削除処理部は、前記更新状態判定部によって正常に実行されている状態であると判定されたデータベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には前記削除処理を実行し、更新が終了していないと判定した場合には前記削除処理を実行しないことを特徴とする請求項2に記載のキャッシュ制御システム。
The cache server is
An update state determination unit that determines, for each of the plurality of database servers, whether or not the update in the database server is normally executed;
The deletion processing unit of the cache server determines whether or not the update has been completed for all the database servers that are determined to be normally executed by the update state determination unit, and determines that the update has been completed. 3. The cache control system according to claim 2, wherein the deletion process is executed when the update is completed, and the deletion process is not executed when it is determined that the update is not completed.
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムに適用されるキャッシュ制御方法であって、
前記データベースサーバ各々は、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納ステップを含み、
前記キャッシュサーバ各々は、
複数ある前記データベースサーバ各々から、前記更新情報記憶部に前記格納ステップによって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得ステップと、
前記更新情報取得ステップにより取得された更新情報により識別されるデータのキャッシュを無効にする無効処理ステップと
を含むことを特徴とするキャッシュ制御方法。
A cache control method applied to a cache control system having a plurality of database servers storing the same data updated asynchronously and a plurality of cache servers storing a cache of data stored in the database server ,
Each of the database servers
When the data of its own database server is updated, update information including update data identification information for identifying the data to be updated is stored in the update information storage unit in association with each of the plurality of identification information for identifying the cache server. Including a storing step to
Each of the cache servers
An update information acquisition step for acquiring the update information stored in association with identification information for identifying the own cache server in the update information storage unit by the storage step from each of the plurality of database servers;
A cache control method comprising: an invalidation processing step of invalidating a cache of data identified by the update information acquired by the update information acquisition step.
前記キャッシュサーバ各々は、
前記データベースサーバから、複数ある前記データベースサーバ各々について前記データの更新が終了したか否かを示す更新結果を記憶する前記更新結果記憶部に記憶された複数あるデータベースサーバ各々についての前記更新結果を取得する更新結果取得ステップと、
前記更新結果取得ステップによって取得された更新結果各々に基づいて、複数ある前記データベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には、前記更新情報取得ステップにより取得された更新情報を前記更新情報記憶部から削除する削除処理を実行し、更新が終了していないと判定した場合には当該削除処理を実行しない削除処理ステップとを更に含むことを特徴とする請求項4に記載のキャッシュ制御方法。
Each of the cache servers
The update result for each of the plurality of database servers stored in the update result storage unit that stores an update result indicating whether or not the update of the data has been completed for each of the plurality of database servers is acquired from the database server. Update result acquisition step,
Based on each of the update results acquired by the update result acquisition step, it is determined whether the update has been completed for all of the plurality of database servers, and when it is determined that the update has been completed, the update information acquisition step Deleting the update information acquired by the update information storage unit from the update information storage unit, and when it is determined that the update has not been completed, further includes a deletion process step that does not execute the delete process The cache control method according to claim 4.
前記キャッシュサーバは、
前記データベースサーバにおける更新が正常に実行されている状態か否かを複数ある前記データベースサーバ各々について判定する更新状態判定ステップを更に含み、
前記キャッシュサーバの前記削除処理ステップは、前記更新状態判定ステップによって正常に実行されている状態であると判定されたデータベースサーバすべてについて更新が終了したか否かを判定し、更新が終了したと判定した場合には前記削除処理を実行し、更新が終了していないと判定した場合には前記削除処理を実行しないことを特徴とする請求項5に記載のキャッシュ制御方法。
The cache server is
An update state determination step of determining for each of the plurality of database servers whether or not the update in the database server is normally executed,
The deletion processing step of the cache server determines whether or not the update has been completed for all the database servers that are determined to be normally executed by the update state determination step, and determines that the update has ended. 6. The cache control method according to claim 5, wherein the deletion process is executed if the update process is performed, and the deletion process is not executed if it is determined that the update has not ended.
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該データベースであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部と、
複数ある前記データベースサーバ各々から前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得し、取得した更新情報により識別されるデータのキャッシュを無効にするキャッシュサーバから更新情報を要求されると、更新情報を送信する更新情報送信部と
を備えたことを特徴とするデータベースサーバ。
A database used in a cache control system having a plurality of database servers that store the same data updated asynchronously and a plurality of cache servers that store a cache of data stored in the database server,
When the data of its own database server is updated, update information including update data identification information for identifying the data to be updated is stored in the update information storage unit in association with each of the plurality of identification information for identifying the cache server. A storage unit,
A cache of data identified by the acquired update information by acquiring the update information stored in the update information storage unit in association with identification information for identifying the own cache server by the storage unit from each of the plurality of database servers A database server, comprising: an update information transmission unit that transmits update information when update information is requested from a cache server that invalidates.
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該データベースの制御プログラムであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納手順と、
複数ある前記データベースサーバ各々から前記更新情報記憶部に前記格納手順によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得し、取得した更新情報により識別されるデータのキャッシュを無効にするキャッシュサーバから更新情報を要求されると、更新情報を送信する更新情報送信手順と
を実行させることを特徴とするデータベースサーバ制御プログラム。
A database control program used in a cache control system having a plurality of database servers storing the same data updated asynchronously and a plurality of cache servers storing caches of data stored in the database servers. And
When the data of its own database server is updated, update information including update data identification information for identifying the data to be updated is stored in the update information storage unit in association with each of the plurality of identification information for identifying the cache server. Storage procedure to
A cache of data identified by the acquired update information by acquiring the update information stored in association with the identification information for identifying the own cache server by the storage procedure from each of the plurality of database servers. When the update information is requested from the cache server that invalidates the database, an update information transmission procedure for transmitting the update information is executed.
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該キャッシュサーバの制御プログラムであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備える前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得部と、
前記更新情報取得部により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理部と
を備えたことを特徴とするキャッシュサーバ。
A control program for a cache server used in a cache control system having a plurality of database servers storing the same data updated asynchronously and a plurality of cache servers storing a cache of data stored in the database server There,
When the data of its own database server is updated, update information including update data identification information for identifying the data to be updated is stored in the update information storage unit in association with each of the plurality of identification information for identifying the cache server. An update information acquisition unit that acquires the update information stored in association with identification information that identifies the cache server by the storage unit in the update information storage unit,
A cache server, comprising: an invalidation processing unit that invalidates a cache of data identified by update information acquired by the update information acquisition unit.
非同期で更新される同一のデータを記憶する複数のデータベースサーバと、当該データベースサーバに記憶されたデータのキャッシュを記憶する複数あるキャッシュサーバとを有するキャッシュ制御システムにおいて用いられる当該キャッシュサーバのキャッシュサーバ制御プログラムであって、
自データベースサーバのデータが更新される場合に、更新される当該データを識別する更新データ識別情報を含む更新情報を複数ある前記キャッシュサーバを識別する識別情報各々に対応付けて更新情報記憶部に格納する格納部を備える前記データベースサーバ各々から、前記更新情報記憶部に前記格納部によって自キャッシュサーバを識別する識別情報に対応付けて格納された前記更新情報を取得する更新情報取得手順と、
前記更新情報取得手順により取得された更新情報により識別されるデータのキャッシュを無効にする無効処理手順と
を実行させることを特徴とするキャッシュサーバ制御プログラム。
Cache server control of the cache server used in a cache control system having a plurality of database servers storing the same data updated asynchronously and a plurality of cache servers storing a cache of data stored in the database server A program,
When the data of its own database server is updated, update information including update data identification information for identifying the data to be updated is stored in the update information storage unit in association with each of the plurality of identification information for identifying the cache server. An update information acquisition procedure for acquiring the update information stored in association with identification information for identifying the own cache server by the storage unit in the update information storage unit, from each of the database servers including the storage unit,
A cache server control program for executing an invalidation processing procedure for invalidating a cache of data identified by update information acquired by the update information acquisition procedure.
JP2011000813A 2011-01-05 2011-01-05 Cache control system and cache control method Active JP5265711B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011000813A JP5265711B2 (en) 2011-01-05 2011-01-05 Cache control system and cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011000813A JP5265711B2 (en) 2011-01-05 2011-01-05 Cache control system and cache control method

Publications (2)

Publication Number Publication Date
JP2012141900A JP2012141900A (en) 2012-07-26
JP5265711B2 true JP5265711B2 (en) 2013-08-14

Family

ID=46678104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011000813A Active JP5265711B2 (en) 2011-01-05 2011-01-05 Cache control system and cache control method

Country Status (1)

Country Link
JP (1) JP5265711B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5449462B2 (en) * 2012-06-22 2014-03-19 株式会社東芝 Distributed database system and program
JP5706956B1 (en) * 2013-12-13 2015-04-22 エヌ・ティ・ティ・アドバンステクノロジ株式会社 Database system and database control method
KR102211403B1 (en) * 2019-06-19 2021-02-03 주식회사 코비젼 Synchronizing system for public resources in multi-WEB server environment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4763587B2 (en) * 2006-12-11 2011-08-31 株式会社ソニー・コンピュータエンタテインメント Cache server, cache server control method, program, and information storage medium

Also Published As

Publication number Publication date
JP2012141900A (en) 2012-07-26

Similar Documents

Publication Publication Date Title
US10474449B2 (en) Upgrading a physical security system having multiple server nodes
US10547693B2 (en) Security device capability discovery and device selection
CN101568919B (en) Single view of data in a networked computer system with distributed storage
CN110598444B (en) Physical security system with multiple server nodes
CN102640108A (en) Monitoring of replicated data instances
US20160117377A1 (en) System and Method for Managing User Data in a Plurality of Storage Appliances Over a Wide Area Network for Collaboration, Protection, Publication, or Sharing
CN102656565A (en) Failover and recovery for replicated data instances
CA2964485C (en) Distributed security system over multiple sites
US9185165B1 (en) Data replicating systems and data replicating methods
JP5686034B2 (en) Cluster system, synchronization control method, server device, and synchronization control program
TWI677797B (en) Management method, system and equipment of master and backup database
JP5596793B2 (en) Computer system
JP6520448B2 (en) INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE, AND INFORMATION PROCESSING DEVICE CONTROL METHOD
JP5265711B2 (en) Cache control system and cache control method
CN107992491A (en) A kind of method and device of distributed file system, data access and data storage
CN104517067B (en) Access the method, apparatus and system of data
JP2014010486A (en) Information processing device and authorization information management method
JP2013065120A (en) Load distribution system, data access device, and load distribution method
CN105007172A (en) Method for realizing HDFS high-availability scheme
JP2014016953A (en) Unshared type database system, synchronizing device, database server, its synchronizing method, and synchronizing program
JP5685213B2 (en) Differential replication system, master database device, and slave database device
JP4129353B2 (en) Distributed data management system, distributed data management method, and distributed data management program
US11416449B2 (en) Method of synchronous deletion for distributed storage system
JP2019509579A (en) Information processing system
JP5956364B2 (en) Cluster system

Legal Events

Date Code Title Description
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: 20130430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130501

R150 Certificate of patent or registration of utility model

Ref document number: 5265711

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350