JP3823169B1 - Data control apparatus, system, method, and program - Google Patents

Data control apparatus, system, method, and program Download PDF

Info

Publication number
JP3823169B1
JP3823169B1 JP2005352447A JP2005352447A JP3823169B1 JP 3823169 B1 JP3823169 B1 JP 3823169B1 JP 2005352447 A JP2005352447 A JP 2005352447A JP 2005352447 A JP2005352447 A JP 2005352447A JP 3823169 B1 JP3823169 B1 JP 3823169B1
Authority
JP
Japan
Prior art keywords
data control
occupancy
control device
data
request
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.)
Expired - Fee Related
Application number
JP2005352447A
Other languages
Japanese (ja)
Other versions
JP2007156916A (en
Inventor
淳 金子
正通 中田
省治 香西
Original Assignee
データアクセス株式会社
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 データアクセス株式会社 filed Critical データアクセス株式会社
Priority to JP2005352447A priority Critical patent/JP3823169B1/en
Application granted granted Critical
Publication of JP3823169B1 publication Critical patent/JP3823169B1/en
Publication of JP2007156916A publication Critical patent/JP2007156916A/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】データの同期維持に関する性能及び信頼性の面でのボトルネックがないデータ制御装置を提供する。
【解決手段】データの同期が維持されるべき複数のデータベースをそれぞれ制御する複数のデータ制御装置の一つに備えられる統合制御部100は、クライアントから発行された第1アクセス要求について前記複数のデータベース間でのデータの同期制御が必要か否かを判断する要求判断部110と、不要と判断された場合、自らのデータベースへ前記第1アクセス要求を発行する単独アクセス部120と、必要と判断された場合、他の全てのデータ制御装置を占有し、前記第1アクセス要求を他の全てのデータ制御装置へ転送すると共に自らのデータベースへ発行する連携マスタ部130と、他のデータ制御装置から転送された第2アクセス要求を自らのデータベースへ発行する連携サービス部150とを備える。
【選択図】図3
A data control apparatus free from bottlenecks in performance and reliability related to data synchronization maintenance is provided.
An integrated control unit provided in one of a plurality of data control devices that respectively control a plurality of databases whose data synchronization is to be maintained includes the plurality of databases for a first access request issued from a client. Determination unit 110 that determines whether or not data synchronization control between them is necessary, and a single access unit 120 that issues the first access request to its own database if it is determined that it is unnecessary, and is determined to be necessary. In this case, all other data control devices are occupied, and the first access request is transferred to all other data control devices and is also issued from its own database and from the other data control device. A cooperation service unit 150 that issues the second access request issued to its own database.
[Selection] Figure 3

Description

データの同期が維持されるべき複数のデータベースをそれぞれ制御する複数のデータ制御装置の一つ、及び前記複数のデータ制御装置から構成されるデータ制御システム等に関し、特にデータの同期を維持するための技術に関する。   The present invention relates to one of a plurality of data control devices that respectively control a plurality of databases that should maintain data synchronization, and a data control system composed of the plurality of data control devices, and more particularly to maintain data synchronization Regarding technology.

従来、分散データベースシステムの構成の一例として2階層構成が広く知られている。2階層構成を採る分散データベースシステムは、典型的には、複数のデータベースをそれぞれ制御する複数のバックエンドサーバと、クライアントからのアクセス要求を前記バックエンドサーバの一つへ転送する一つ以上のフロントエンドサーバと、前記複数のデータベース間でのデータの同期を維持管理するレプリケーションサーバとから構成される。   Conventionally, a two-tier configuration is widely known as an example of the configuration of a distributed database system. A distributed database system employing a two-layer configuration typically includes a plurality of back-end servers that respectively control a plurality of databases, and one or more front-ends that transfer access requests from clients to one of the back-end servers. It comprises an end server and a replication server that maintains and manages data synchronization among the plurality of databases.

そのようなデータベースシステムを実現するためのコンピュータソフトウェアの一つにPGClusterがある(例えば非特許文献1を参照)。   One of computer software for realizing such a database system is PGCluster (see, for example, Non-Patent Document 1).

図24は、PGClusterを用いて実現される分散データベースシステム9の機器構成の一例を示すブロック図である。分散データベースシステム9は、フロントエンドサーバ91、92、バックエンドサーバ61、62、63、データベース66、67、68、レプリケーションサーバ71、及びネットワーク80から構成される。なお、データベース66、67、68は、バックエンドサーバ61、62、63によって制御され、バックエンドサーバ61、62、63にそれぞれ含まれるとしてもよい。   FIG. 24 is a block diagram illustrating an example of a device configuration of the distributed database system 9 realized using PGCluster. The distributed database system 9 includes front-end servers 91 and 92, back-end servers 61, 62, and 63, databases 66, 67, and 68, a replication server 71, and a network 80. The databases 66, 67, and 68 may be controlled by the back-end servers 61, 62, and 63 and included in the back-end servers 61, 62, and 63, respectively.

フロントエンドサーバ91、92は、二重化されていて、何れか一方が動作し、図示しないクライアントから発行されたアクセス要求を、例えばアクセス負荷の分散を図って、バックエンドサーバ61、62、63の一つへ転送する。   The front-end servers 91 and 92 are duplicated, and either one of them operates, and an access request issued from a client (not shown) is transmitted to one of the back-end servers 61, 62, 63, for example, in order to distribute the access load. Forward to one.

バックエンドサーバ61、62、63は、それぞれ並列に動作し、フロントエンドサーバ91、92からアクセス要求を受信すると、そのアクセス要求についてデータベース間でのデータの同期制御が必要か否かを判断する。この判断は、例えば、そのアクセス要求がデータの参照のみに関するものか、データの追加、更新、又は削除に関するものかによって行われる。   The back-end servers 61, 62, and 63 operate in parallel. When receiving an access request from the front-end servers 91 and 92, the back-end servers 61, 62, and 63 determine whether or not data synchronization control between the databases is necessary for the access request. This determination is made based on, for example, whether the access request relates only to data reference or data addition, update, or deletion.

そして、不要と判断されると、そのアクセス要求を自らのデータベースのみで実行し、アクセス要求を発行したクライアントへフロントエンドサーバを介して実行結果を返却する。必要と判断されると、そのアクセス要求をレプリケーションサーバ71へ転送する。   If it is determined that the access request is unnecessary, the access request is executed only in its own database, and the execution result is returned to the client that issued the access request via the front-end server. If it is determined that it is necessary, the access request is transferred to the replication server 71.

レプリケーションサーバ71は、アクセス要求を受信すると、そのアクセス要求をバックエンドサーバ61、62、63へ送信する。バックエンドサーバ61、62、63は、レプリケーションサーバ71からアクセス要求を受信すると、そのアクセス要求を自らのデータベースでそれぞれ実行し、実行結果をレプリケーションサーバ71へ返却する。レプリケーションサーバ71は、全てのバックエンドサーバから実行結果を受信すると、アクセス要求を転送したバックエンドサーバへその実行結果を送信する。実行結果を受信したバックエンドサーバは、アクセス要求を発行したクライアントへフロントエンドサーバを介してその実行結果を返却する。   When the replication server 71 receives the access request, the replication server 71 transmits the access request to the back-end servers 61, 62, and 63. When the back-end servers 61, 62, 63 receive the access request from the replication server 71, each of the back-end servers 61, 62, 63 executes the access request in its own database, and returns the execution result to the replication server 71. When the replication server 71 receives the execution results from all the back-end servers, the replication server 71 transmits the execution results to the back-end server that transferred the access request. The back-end server that has received the execution result returns the execution result to the client that issued the access request via the front-end server.

この構成によれば、データの同期(ここでは特に、データ内容の一致を意味する)を維持するために全てのバックエンドサーバで実行されるべきアクセス要求の実行順序が、レプリケーションサーバ71ただ一箇所で管理される。レプリケーションサーバ71は、例えば図示しないデータキューを用いて、バックエンドサーバ61、62、63から受信したアクセス要求をそのデータキューに受信順に蓄積すると共に、蓄積順にアクセス要求を取り出して全てのバックエンドサーバへ送信することによって、アクセス要求の実行順序の管理を行う。   According to this configuration, the replication server 71 has only one execution order of access requests to be executed in all the back-end servers in order to maintain data synchronization (in particular, this means that the data contents match). Managed by. The replication server 71 uses, for example, a data queue (not shown) to accumulate access requests received from the back-end servers 61, 62, and 63 in the data queue in the order of reception, and retrieves the access requests in the order of accumulation so that all back-end servers The execution order of access requests is managed by sending to the server.

その結果、全てのバックエンドサーバにおいて、レプリケーションサーバ71によって管理される順序でアクセス要求が実行されるので、バックエンドサーバ間に実行順序の違いによる実行結果の不一致が生じることがなく、全てのデータベースでデータの同期が維持される。   As a result, since access requests are executed in the order managed by the replication server 71 in all back-end servers, there is no discrepancy in execution results due to the difference in execution order between the back-end servers, and all databases To maintain data synchronization.

このようにして、従来のデータベースシステムは、アクセス負荷の分散とデータの同期の維持とを達成している。
PGClusterのWEBページ、http://pgcluster.projects.postgresql.org/jp/
In this way, the conventional database system achieves the distribution of access load and the maintenance of data synchronization.
PGCluster web page, http://pgcluster.projects.postgresql.org/jp/

しかしながら、従来のデータベースシステムには、次のような問題がある。
第1に、アクセス要求の実行順序を管理するための負荷が一つのレプリケーションサーバに集中するという問題がある。この問題のため、システム全体の性能に見合う高価で高性能なレプリケーションサーバを導入するか、システム全体の性能をレプリケーションサーバの性能に見合うよう制限することを余儀なくされる。すなわち、システムのスケーラビリティの実現が困難となる。
However, the conventional database system has the following problems.
First, there is a problem that the load for managing the execution order of access requests is concentrated on one replication server. Because of this problem, it is necessary to introduce an expensive and high-performance replication server that matches the performance of the entire system, or to limit the performance of the entire system to the performance of the replication server. That is, it becomes difficult to realize system scalability.

第2に、レプリケーションサーバが故障した場合、データの同期が失われるという問題がある。この問題を回避すべく、例えば、レプリケーションサーバを二重化するか、レプリケーションサーバの故障中には唯一の代表データベースを更新することが考えられるが、前者の場合、システムがさらに高価にならざるを得ず、また後者の場合、復旧時にその代表データベースの内容を他のデータベースに複写することによってデータの同期を回復するという煩雑な処理が必要になる。   Second, there is a problem that data synchronization is lost when a replication server fails. To avoid this problem, for example, it is possible to duplicate the replication server or update the only representative database during a replication server failure. In the former case, the system must be more expensive. In the latter case, a complicated process of recovering data synchronization is required by copying the contents of the representative database to another database at the time of recovery.

本発明は、上記の問題に鑑みてなされたものであり、データの同期維持に関する性能及び信頼性の面でのボトルネックがなく、またデータの同期を一時的に停止した後、迅速に回復可能なデータ制御装置、及びデータ制御システムを提供することを目的とする。   The present invention has been made in view of the above problems, has no performance and reliability bottlenecks related to data synchronization maintenance, and can be recovered quickly after temporarily stopping data synchronization. An object of the present invention is to provide a data control device and a data control system.

上記課題を解決するため、本発明のデータ制御装置は、データの同期が維持されるべき複数のデータベースをそれぞれ制御する複数のデータ制御装置の一つであって、前記複数のデータ制御装置には優先順位が定められており、前記複数のデータベース間でのデータの同期制御を必要とするアクセス要求がクライアントから受信されると、他の全てのデータ制御装置の占有を試み、前記占有に成功した場合、他の全てのデータ制御装置へ前記アクセス要求を転送すると共に、自らのデータベースに対して前記アクセス要求を発行し、前記占有に成功しない場合、前記優先順位に応じて占有の変更先となるべき優先データ制御装置を特定し、前記特定された優先データ制御装置を示す占有変更を他のデータ制御装置へ送信すると共に、前記占有を断念して前記優先データ制御装置による占有を受諾する連携マスタ手段と、自データ制御装置を現在占有しているデータ制御装置から占有変更が受信されると、現在の占有を破棄して前記受信された占有変更によって示される優先データ制御装置による占有を受諾する連携サービス手段とを備える。 In order to solve the above problems, a data control device according to the present invention is one of a plurality of data control devices that respectively control a plurality of databases whose data synchronization is to be maintained, and the plurality of data control devices include: When an access request requiring a synchronous control of data among the plurality of databases is received from the client, the priority is determined, and all other data control devices are attempted to be occupied and the occupation succeeds. If, transfers the pre Kia access request to all the other data controller issues a Kia access requests previously for its database, if not successful the occupancy, the occupancy according to the priority The priority data control device to be changed is identified, and the occupation change indicating the identified priority data control device is transmitted to another data control device, and the occupation A cooperative master unit to accept occupation by the priority data control device giving up, the occupancy changes from the data control device that occupies its own data control current is received, it said received discards the current occupancy Link service means for accepting the occupation by the priority data control device indicated by the occupation change .

また、前記データ制御装置は、さらに、自らを占有しているデータ制御装置を示す占有受付情報を保持している占有受付レジスタを備え、前記連携マスタ手段は、自データ制御装置を示すように前記占有受付情報を更新した後、他の全てのデータ制御装置へ占有要求を送信することによって前記占有を試み、自らが送信した占有要求に対して他の全てのデータ制御装置から占有受諾応答が受信されると、前記占有に成功した場合の処理を行い、前記連携サービス手段は、他のデータ制御装置から占有要求受信されたとき、前記占有受付情報がどのデータ制御装置からも占有されていないことを示す場合、前記他のデータ制御装置を示すように前記占有受付情報を更新すると共に占有受諾応答を返信し、その他の場合、占有拒否応答を返信してもよい。
また、前記データ制御装置によって受信される占有拒否応答は、前記占有拒否応答を送信したデータ制御装置を占有しているデータ制御装置である競合データ制御装置を示し、前記連携マスタ手段は、自らが送信した占有要求に対して占有拒否応答が受信された場合、前記受信された占有拒否応答によって示される競合データ制御装置の優先順位と自データ制御装置の優先順位との比較に基づいて、占有の変更先となるべき優先データ制御装置を特定し、前記特定された優先データ制御装置を示す占有変更を送信すると共に、前記優先データ制御装置を示すように前記占有受付情報を更新し、前記連携サービス手段は、前記占有受付情報によって示されるデータ制御装置から占有変更が受信されると、前記受信された占有変更によって示される優先データ制御装置を示すように前記占有受付情報を更新すると共に、前記優先データ制御装置へ占有受諾応答を送信してもよい。
In addition, the data control device further includes an occupancy acceptance register that holds occupancy acceptance information indicating the data control device that occupies itself, and the cooperation master means indicates the data control device as described above. after updating the occupancy reception information, attempts to the occupation by sending occupancy request to all other data control device, is occupied accept responses from all of the other data controller with respect to occupancy request itself is transmitted when received Ru, performs processing upon successful the occupation, the cooperative service means, when the occupancy request is received from other data control device, also occupied by the occupancy reception information which the data control unit to indicate that no reply occupied acceptance response and updates the occupancy reception information to indicate the other data controller, otherwise, it returns the occupied rejection response It may be.
Further, the occupancy rejection response received by the data control device indicates a contention data control device that is a data control device that occupies the data control device that transmitted the occupancy rejection response, and the cooperation master means When an occupancy rejection response is received for the transmitted occupancy request, the occupancy rejection response is determined based on a comparison between the priority of the contention data control device indicated by the received occupancy rejection response and the priority of the own data control device. The priority data control device to be changed is specified, an exclusive change indicating the specified priority data control device is transmitted, the occupation acceptance information is updated to indicate the priority data control device, and the cooperation service The means is indicated by the received occupancy change when an occupancy change is received from the data control device indicated by the occupancy acceptance information. And updates the occupancy reception information to indicate priority data control unit may transmit the occupation acceptance response to the priority data control device.

この構成によれば、複数のデータベース間でのデータの同期制御が必要となるアクセス要求は、他の全てのデータ制御装置の占有に成功してから初めて実行されるため、そのアクセス要求は全てのデータ制御装置で確実に実行される。また、前記占有受付情報が占有状態を表す間は、新たな占有要求は拒否されるため、複数のアクセス要求がデータ制御装置ごとに異なる順序で実行される事態が避けられる。その結果、データ制御装置間に実行順序の違いによる実行結果の不一致が生じることがなく、全てのデータベースでデータの同期が維持される。
このようなデータ制御装置が複数協働した場合、他の全てのデータ制御装置の占有に成功しないデータ制御装置が、優先データ制御装置に積極的に占有を明け渡すと共に、占有変更のやり取りによって、前記データ制御装置によって占有されていた他のデータ制御装置もまた前記優先データ制御装置へと占有を明け渡すので、たとえ占有要求が競合したとしてもデッドロックは協調して回避される。
そのため、実行順序を一箇所で管理するレプリケータを用いることなく、2相コミット方式によるデータの同期の保証はもちろんのこと、処理が確実に進行することをも保証できる。
According to this configuration, an access request that requires synchronous control of data among a plurality of databases is executed only after successful occupation of all other data control devices. Performed reliably in the data controller. Further, since the new occupancy request is rejected while the occupancy acceptance information represents the occupancy state, a situation where a plurality of access requests are executed in different orders for each data control device can be avoided. As a result, there is no discrepancy in execution results due to the difference in execution order between the data control devices, and data synchronization is maintained in all databases.
When a plurality of such data control devices cooperate, a data control device that does not succeed in occupying all other data control devices actively yields to the priority data control device, and by exchanging occupancy changes, Since other data control devices occupied by the data control device also give up the occupation to the priority data control device, even if the occupation requests compete, deadlock is avoided in cooperation.
Therefore, without using a replicator that manages the execution order in one place, it is possible to guarantee not only the synchronization of data by the two-phase commit method but also the progress of processing reliably.

このように、データの同期の維持そのものが分散処理されることで、従来のレプリケーションサーバを省略できる。これにより、データの同期維持に関する性能及び信頼性の面でのボトルネックがシステムから排除され、システムのスケーラビリティの具現化が容易となる。   In this way, the maintenance of data synchronization itself is distributed, so that a conventional replication server can be omitted. As a result, a bottleneck in performance and reliability related to maintaining synchronization of data is eliminated from the system, and it becomes easy to realize the scalability of the system.

また、前記連携マスタ手段は、自らが送信した占有要求に対して他の全てのデータ制御装置から占有許諾応答又は占有拒否応答が受信された後、自データ制御装置及び前記受信された占有拒否応答によって示される競合データ制御装置がそれぞれ自分以外のデータ制御装置を占有しているか否かを、受信された占有許諾応答又は占有拒否応答に基づいて判断し、前記受信された占有拒否応答によって示される競合データ制御装置のうち、自分以外のデータ制御装置を占有していて、かつ優先順位が自データ制御装置の優先順位よりも高い一つを前記優先データ制御装置として特定してもよい。 In addition, the cooperation master unit receives the exclusive permission response or the exclusive rejection response from all other data control devices in response to the exclusive request transmitted by itself, and then receives the exclusive data response device and the received exclusive rejection response. Whether or not the contention data control device indicated by each occupies a data control device other than itself is determined based on the received occupancy permission response or occupancy rejection response, and is indicated by the received occupancy rejection response Of the competing data control devices, one that occupies a data control device other than itself and that has a higher priority than the priority of the own data control device may be specified as the priority data control device.

この構成によれば、自分以外のデータ制御装置を占有している状態のデータ制御装置の占有変更先としての優先順位を、そうでない状態のデータ制御装置よりも高めることによって、占有に成功する可能性が高いデータ制御装置へ優先的に占有を変更するので、競合の解消をより少ない手間で行うことができる。
また、前記データ制御装置によって受信される占有拒否応答は、前記占有拒否応答を送信したデータ制御装置において継続中の占有を識別し、前記占有受付レジスタは、さらに、自データ制御装置を含む全てのデータ制御装置に共通して直前に受け入れられた占有を識別する直前占有情報を保持し、前記連携マスタ手段は、前記自らが送信した占有要求に対して占有拒否応答が受信された場合、前記受信された占有拒否応答によって識別される占有が前記直前占有情報によって識別される占有と同一であれば、前記占有拒否応答を送信したデータ制御装置へ前記占有要求を再送信してもよい。
この構成によれば、自データ制御装置において直前に処理されたアクセスが先方のデータ制御装置においてまだ処理中であるために新たな占有要求が拒否された場合に、直ちに占有失敗とせず占有要求をリトライすることが可能となる。これにより、データ制御装置間での処理タイミングの差異が吸収され、システムのスループットが向上する。
According to this configuration, it is possible to succeed in the occupation by raising the priority as the occupation change destination of the data control device in the state of occupying the data control device other than its own, as compared with the data control device in the state of not being Since the occupancy is preferentially changed to a highly reliable data control device, the conflict can be resolved with less effort.
Further, the occupancy rejection response received by the data control device identifies occupancy ongoing in the data control device that transmitted the occupancy rejection response, and the occupancy acceptance register further includes all data including the own data control device. Common occupancy information for identifying the occupancy accepted immediately before in common with the data control device is held, and the cooperation master means receives the occupancy rejection response in response to the occupancy request transmitted by itself. If the occupancy identified by the occupancy refusal response is the same as the occupancy identified by the previous occupancy information, the occupancy request may be retransmitted to the data control apparatus that transmitted the occupancy rejection response.
According to this configuration, when a new occupancy request is rejected because the access processed immediately before in its own data control device is still being processed in the other data control device, the occupancy request is not immediately failed but is occupied. It is possible to retry. Thereby, the difference in processing timing between the data control apparatuses is absorbed, and the throughput of the system is improved.

また、前記連携マスタ手段は、自らの占有を前記優先データ制御装置へ変更した後、変更前の自らの占有を再度試みてもよい。   In addition, the cooperation master unit may change its own occupancy to the priority data control device, and then try again the occupancy before the change.

この構成によれば、占有変更が行われた場合に、占有に失敗したことを直ちにクライアントへ通知するのではなく、変更前の自らの占有をデータ制御装置自身が再試行することができるので、クライアントの処理を軽減できる。   According to this configuration, when the occupancy change is performed, the data control device itself can retry its own occupancy before the change, instead of immediately notifying the client that the occupancy has failed. Client processing can be reduced.

また、前記連携マスタ手段、及び前記連携サービス手段は、送信されるデータの多寡、再送信か否か、送信されるデータが応答か否かのうちの少なくとも一つに応じて、他のデータ制御装置との通信に用いる通信プロトコルを変更してもよい。   In addition, the cooperation master unit and the cooperation service unit may perform other data control according to at least one of the number of data to be transmitted, whether or not to retransmit, and whether or not the transmitted data is a response. You may change the communication protocol used for communication with an apparatus.

この構成によれば、前記の条件の少なくとも一つに応じて、例えばTCPプロトコルとUDPプロトコルとを切り替えることによって、通信のオーバヘッドと信頼性との良好なトレードオフを図ることができる。   According to this configuration, a good trade-off between communication overhead and reliability can be achieved by switching between, for example, the TCP protocol and the UDP protocol according to at least one of the above conditions.

また、前記データ制御装置は、さらに、データ受信の有無を所定時間監視することによって他のデータ制御装置の故障を検出するサーバ状態管理手段を備え、前記連携マスタ手段は、故障と検出されたデータ制御装置を除外して、前記占有の成否を判断してもよい。   In addition, the data control device further includes server state management means for detecting a failure of another data control device by monitoring the presence / absence of data reception for a predetermined time, and the cooperation master means includes data detected as a failure. The success or failure of the occupation may be determined by excluding the control device.

この構成によれば、故障したデータ制御装置が自動的にシステムから切り離されるので、一つのデータ制御装置の故障がシステム全体に及ぼす影響が軽減され、サービス無中断の運用が可能となる。   According to this configuration, since the failed data control device is automatically disconnected from the system, the influence of the failure of one data control device on the entire system is reduced, and service-free operation is possible.

また、前記データ制御装置は、さらに、特定の動作モードにおいて一つ以上のアクセス要求を蓄積し、前記動作モードが解除されるとき、前記アクセス要求を蓄積された順に取り出して自らのデータベースに対して発行する保留制御手段を備え、前記連携サービス手段は、前記動作モードにおいて、他のデータ制御装置から受信されたアクセス要求を自らのデータベースに対して発行する代わりに前記保留制御手段に蓄積してもよい。 In addition, the data control device further stores one or more access requests in a specific operation mode, and when the operation mode is canceled, takes out the access requests in the order in which they are stored and stores them in its own database. A holding control means for issuing, and in the operation mode, the cooperation service means may store an access request received from another data control device in the holding control means instead of issuing it to its own database. Good.

この構成によれば、前記データ制御装置は、前記動作モードにおいては、データの同期の維持に関する処理を通常に実行しながら、前記第2のアクセス要求を蓄積するので、一つ以上のアクセス要求をデータの同期維持に必要な実行順序どおりに蓄積することが可能である。   According to this configuration, in the operation mode, the data control apparatus accumulates the second access request while normally executing processing related to maintaining data synchronization. It is possible to accumulate in the execution order necessary for maintaining data synchronization.

前記動作モードが解除される際には、そのように蓄積された一つ以上のアクセス要求を単に蓄積された順に実行することによって、迅速にデータの同期を回復できる。そして、データの同期回復のために他のデータベースからデータを複写する必要がないため、データベースの規模が大きいほど、データの同期回復の迅速化に大きな効果が得られる。   When the operation mode is canceled, data synchronization can be quickly recovered by simply executing one or more access requests stored in this manner in the order in which they are stored. Since there is no need to copy data from another database for data synchronization recovery, the larger the database size, the greater the effect of speeding up data synchronization recovery.

これにより、例えばデータベースのメンテナンスを行うためにデータの更新を一時的に保留しその後回復するような場合に、極めて高い実用的価値が発揮される。   Thus, extremely high practical value is exhibited when, for example, data update is temporarily suspended for database maintenance and then recovered.

また、前記データ制御装置は、前記複数のデータ制御装置のみを接続する専用ネットワークへの接続手段を備えてもよい。   In addition, the data control device may include a connection means to a dedicated network that connects only the plurality of data control devices.

この構成によれば、データの同期維持に関する通信トラフィックを前記専用ネットワークに分離できるので、フロントエンドサーバやクライアントとの接続に用いられるネットワークの負荷の軽減に役立つ。   According to this configuration, communication traffic relating to data synchronization maintenance can be separated into the dedicated network, which is useful for reducing the load on the network used for connection with the front-end server and the client.

また、本発明は、前述したようなデータ制御装置として実現できるだけでなく、複数のデータベースについてそれぞれ前記データ制御装置を備えるデータ制御システムとして実現することもできる。また、前記データ制御装置が備える特徴的な手段によって実行される処理をステップとするデータ制御方法として実現することも、さらにはコンピュータプログラムとして実現することもできる。   The present invention can be realized not only as a data control apparatus as described above but also as a data control system including the data control apparatus for each of a plurality of databases. In addition, the present invention can be realized as a data control method having steps executed by characteristic means included in the data control device, or further realized as a computer program.

本発明のデータ制御装置によれば、データの同期の維持そのものが分散処理されるので、従来のレプリケーションサーバを省略できる。これにより、システムからデータの同期維持に関する性能及び信頼性の面でのボトルネックとなるレプリケーションサーバが排除され、システムのスケーラビリティの具現化が容易となる。   According to the data control apparatus of the present invention, since the data synchronization maintenance itself is distributed, the conventional replication server can be omitted. This eliminates a replication server that becomes a bottleneck in terms of performance and reliability related to maintaining synchronization of data from the system, thereby facilitating the realization of system scalability.

また、故障したデータ制御装置を自動的にシステムから切り離し、一つのデータ制御装置の故障がシステム全体に及ぼす影響を軽減することも可能となる。   It is also possible to automatically disconnect the failed data control device from the system and reduce the influence of the failure of one data control device on the entire system.

(第1の実施の形態)
本発明の第1の実施の形態におけるデータ制御装置及びデータ制御システムについて、図面を参照しながら詳細に説明する。
(First embodiment)
A data control device and a data control system according to a first embodiment of the present invention will be described in detail with reference to the drawings.

(全体構成)
図1は、本発明の第1の実施の形態におけるデータ制御システム10を含む分散データベースシステムの一例を示す機器構成図である。分散データベースシステム1は、背景技術の項で説明した2階層構成による典型的な分散データベースシステムから、レプリケーションサーバを省いて構成される。図1には、データ制御システム10と共に、フロントエンドサーバ41、42、…、4m、ネットワーク20、データベース31、32、…、3nが示される。
(overall structure)
FIG. 1 is a device configuration diagram showing an example of a distributed database system including a data control system 10 according to the first embodiment of the present invention. The distributed database system 1 is configured by omitting a replication server from a typical distributed database system having a two-layer configuration described in the background art section. FIG. 1 shows front-end servers 41, 42,..., 4m, network 20, databases 31, 32,.

データ制御システム10は、データベース31、32、…、3nへのアクセスを制御すると共に、データの同期を維持管理するシステムであって、バックエンドサーバ11、12、…、1nから構成される。ここで、バックエンドサーバ11、12、…、1nが、請求項に言うデータ制御装置の一例である。   The data control system 10 is a system that controls access to the databases 31, 32,..., 3n and maintains and manages data synchronization, and includes back-end servers 11, 12,. Here, the back-end servers 11, 12,..., 1 n are an example of the data control device described in the claims.

フロントエンドサーバ41、42、…、4mは、独立して並列に動作し、図示しないクライアントから発行されたアクセス要求をバックエンドサーバ11、12、…、1nの一つへ、例えば負荷分散を図って、転送するサーバ機能であり、例えばそれぞれ独立したコンピュータシステムを用いて実現される。このアクセス要求は、一例としてSQL(Structured Query Language)で記述されていてもよい。   The front end servers 41, 42,..., 4m operate independently in parallel, and an access request issued from a client (not shown) is distributed to one of the back end servers 11, 12,. For example, each server function is realized by using independent computer systems. This access request may be described in SQL (Structured Query Language) as an example.

バックエンドサーバ11、12、…、1nは、並列に動作し、フロントエンドサーバ41、42、…、4mからアクセス要求を受信すると、データの同期が維持されるように連携してデータベース31、32、…、3nへのアクセス処理を行うサーバ機能であり、例えばそれぞれ独立したコンピュータシステムを用いて実現される。   The back-end servers 11, 12,..., 1 n operate in parallel, and upon receiving an access request from the front-end servers 41, 42,. ,... Is a server function for performing access processing to 3n, and is realized by using, for example, independent computer systems.

ここで、バックエンドサーバ11、12、…、1nには、固有のサーバIDと優先順位とが定められていて、バックエンドサーバ11、12、…、1nは、各バックエンドサーバのサーバIDと優先順位とを予め知っているものとする。   Here, unique server IDs and priorities are defined for the back-end servers 11, 12,..., 1n, and the back-end servers 11, 12,. Assume that priorities are known in advance.

データベース31、32、…、3nは、独立して並列に動作し、アクセス要求に応じてデータを蓄積し、操作し、出力する一般的なデータベース機能であり、例えばそれぞれ独立したコンピュータシステムを用いて実現されるか、バックエンドサーバ11、12、…、1nと同一のコンピュータシステムを用いて実現される。データベース31、32、…、3nが、それぞれバックエンドサーバ11、12、…、1nの一部分として実現される場合も、本発明に含まれる。   The databases 31, 32,..., 3 n are general database functions that operate independently and in parallel, and store, manipulate, and output data according to access requests, for example, using independent computer systems. It is implemented using the same computer system as the back-end servers 11, 12,..., 1n. The case where the databases 31, 32,..., 3n are realized as part of the back-end servers 11, 12,.

バックエンドサーバ12、…、1nはバックエンドサーバ11と同様であり、またデータベース32、…、3nはデータベース31と同様である。以下、バックエンドサーバ11とデータベース31とについて代表して説明する。   The back end servers 12,..., 1n are the same as the back end server 11, and the databases 32,. Hereinafter, the back end server 11 and the database 31 will be described as a representative.

(バックエンドサーバ)
図2は、バックエンドサーバ11の機能的な構成の一例を示すブロック図である。図2には、バックエンドサーバ11と共に、データベース31が示される。
(Back-end server)
FIG. 2 is a block diagram illustrating an example of a functional configuration of the back-end server 11. FIG. 2 shows a database 31 along with the back-end server 11.

バックエンドサーバ11は、統合制御部100、ネットワークアダプタ部200、フロントエンド通信制御部210、バックエンド通信制御部220、及びタイマ部400から構成される。   The back end server 11 includes an integrated control unit 100, a network adapter unit 200, a front end communication control unit 210, a back end communication control unit 220, and a timer unit 400.

ネットワークアダプタ部200は、ネットワーク20に物理的に接続し、フロントエンド通信制御部210は、ネットワークアダプタ部200を介してフロントエンドサーバ41、42、…、4mとの通信を実行し、バックエンド通信制御部220は、ネットワークアダプタ部200を介してバックエンドサーバ12、…、1nとの通信を実行する。この通信は、例えば、IP(Internet Protocol)上のTCP(Transmission Control Protocol)及びUDP(User Datagram Protocol)の中から後述する基準で選択される一つを用いて行われるとしてもよい。   The network adapter unit 200 is physically connected to the network 20, and the front-end communication control unit 210 performs communication with the front-end servers 41, 42,..., 4m via the network adapter unit 200, and back-end communication. The control unit 220 executes communication with the back-end servers 12,..., 1n via the network adapter unit 200. This communication may be performed using, for example, one selected from a TCP (Transmission Control Protocol) over IP (Internet Protocol) and a UDP (User Datagram Protocol) based on a criterion described later.

タイマ部400は、所定の時間の経過を統合制御部100へ通知する。
統合制御部100は、バックエンドサーバ11の全体の動作を制御する。統合制御部100は、例えば、バックエンドサーバ11を実現するコンピュータシステムが所定のプログラムを実行することによって果たされるソフトウェア機能であるとしてもよい。
The timer unit 400 notifies the integrated control unit 100 that a predetermined time has elapsed.
The integrated control unit 100 controls the overall operation of the back-end server 11. For example, the integrated control unit 100 may be a software function performed by a computer system that implements the back-end server 11 executing a predetermined program.

(データベース)
データベース31は、データ記憶部300、及びデータベース制御部310から構成される。データベース31は、周知の技術を適宜用いて実現されるものとし、本発明はその内容を限定しないが、一例を挙げれば、データ記憶部300は、例えばハードディスク装置であり、データを物理的に記憶し、データベース制御部310は、例えばSQLインタプリタ機能であり、アクセス要求に従ってデータ記憶部300の内容を操作する。
(Database)
The database 31 includes a data storage unit 300 and a database control unit 310. The database 31 is realized by appropriately using a well-known technique, and the present invention does not limit the content thereof. For example, the data storage unit 300 is, for example, a hard disk device, and physically stores data. The database control unit 310 is, for example, an SQL interpreter function, and operates the contents of the data storage unit 300 according to the access request.

(統合制御部)
図3は、統合制御部100の機能的な構成の一例を示すブロック図である。
(Integrated control unit)
FIG. 3 is a block diagram illustrating an example of a functional configuration of the integrated control unit 100.

統合制御部100は、要求判断部110、単独アクセス部120、連携マスタ部130、占有受付レジスタ140、及び連携サービス部150から構成される。   The integrated control unit 100 includes a request determination unit 110, a single access unit 120, a cooperation master unit 130, an occupation reception register 140, and a cooperation service unit 150.

要求判断部110は、フロントエンドサーバ41、42、…、4mからフロントエンド通信制御部210を介してクライアントによって発行されたアクセス要求を受信すると、そのアクセス要求についてシステム全体でのデータ同期制御が必要か、言い換えれば、データベース31のみでそのアクセス要求を実行したとすれば他のデータベースとのデータの同期が失われるか否かを判断する。要求判断部110は、この判断を、例えば従来と同様に、そのアクセス要求がデータの参照のみに関するものか、データの追加、更新、又は削除に関するものかによって行ってもよい。   When the request determination unit 110 receives an access request issued by the client from the front-end servers 41, 42,..., 4m via the front-end communication control unit 210, the access request requires data synchronization control in the entire system. In other words, if the access request is executed only by the database 31, it is determined whether or not the data synchronization with the other database is lost. The request determination unit 110 may make this determination based on whether the access request relates to data reference only, or data addition, update, or deletion, for example, as in the conventional case.

そして、システム全体でのデータ同期制御が必要でない(つまり、データベース31のみでそのアクセス要求を実行してもデータの同期が失われない)と判断された場合、単独アクセス部120を並列起動してそのアクセス要求を引き渡す。データ同期制御が必要であると判断された場合、連携マスタ部130を並列起動してそのアクセス要求を引き渡す。   If it is determined that data synchronization control in the entire system is not necessary (that is, data synchronization is not lost even if the access request is executed only by the database 31), the single access unit 120 is activated in parallel. Deliver the access request. When it is determined that data synchronization control is necessary, the cooperation master unit 130 is activated in parallel and the access request is delivered.

単独アクセス部120は、要求判断部110から引き渡されたアクセス要求をデータベース制御部310へ発行する。そして、データベース制御部310から実行結果を受け取ると、アクセス要求の発行元であるクライアントへフロントエンド通信制御部210を介してその実行結果を返却する。単独アクセス部120そのものは、本発明の主要部ではないため、これ以上詳しく説明しない。   The single access unit 120 issues the access request delivered from the request determination unit 110 to the database control unit 310. When the execution result is received from the database control unit 310, the execution result is returned to the client that is the issuer of the access request via the front-end communication control unit 210. The single access unit 120 itself is not the main part of the present invention and will not be described in further detail.

連携マスタ部130は、まず、要求判断部110から引き渡されたアクセス要求について他の全てのバックエンドサーバ12、…、1nの占有を試みる。この占有の詳細については、後述する。連携マスタ部130は、占有に成功した場合、そのアクセス要求を他の全てのバックエンドサーバ12、…、1nへバックエンド通信制御部220を介して転送すると共に、データベース制御部310へ発行する。   First, the cooperation master unit 130 tries to occupy all the other back-end servers 12,..., 1n for the access request delivered from the request determination unit 110. Details of this occupation will be described later. When the cooperation master unit 130 succeeds in the occupation, the access master unit 130 transfers the access request to all the other back-end servers 12,..., 1n via the back-end communication control unit 220 and issues it to the database control unit 310.

バックエンドサーバ12、…、1nにおける連携サービス部は、そのアクセス要求を受信すると、自らのデータベース制御部へそのアクセス要求を発行し、自らのデータベースでの実行を終えると、アクセス応答を返信する。   Upon receiving the access request, the cooperation service unit in the back-end server 12,..., 1n issues the access request to its own database control unit, and returns an access response when it finishes executing its own database.

連携サービス部150は、このアクセス要求に応じた処理に代表されるように、他のバックエンドサーバから受信されるデータに応じた処理を行う。連携サービス部150は、このアクセス要求に応じた処理の他に、他のバックエンドサーバからの占有要求、占有変更、占有応答、及びアクセス応答に応じた処理を行うが、これらの処理については、それぞれ以下の関連する箇所で説明する。   The cooperation service unit 150 performs processing according to data received from another back-end server, as represented by processing according to the access request. The cooperation service unit 150 performs processing according to the occupancy request, occupancy change, occupancy response, and access response from other back-end servers in addition to the processing according to this access request. Each will be explained in the following related sections.

なお、これらの処理は、データを受信する処理によって、受信されたデータに応じて並列起動されるとしてもよい。   These processes may be started in parallel according to the received data by the process of receiving data.

(占有受付情報及び直前占有情報)
占有受付レジスタ140は、占有受付情報、及び直前占有情報を保持している。占有受付情報、及び直前占有情報は、バックエンドサーバ11を占有しているバックエンドサーバと、その占有に関係するアクセス要求とを示し、占有の制御に用いられる。占有受付情報は、バックエンドサーバ11がどのバックエンドサーバからも占有されていないことを示す空値を取り得るものとする。
(Occupancy reception information and last occupancy information)
The occupation reception register 140 holds occupation reception information and immediately preceding occupation information. The occupancy reception information and the previous occupancy information indicate the back-end server occupying the back-end server 11 and the access request related to the occupancy, and are used for occupancy control. The occupation reception information can assume a null value indicating that the back-end server 11 is not occupied by any back-end server.

図4は、占有受付レジスタ140に保持されている占有受付情報、及び直前占有情報の一例を示す図である。占有受付情報は、要求サーバID141、及び要求番号142を表し、直前占有情報は、要求サーバID143、及び要求番号144を表す。   FIG. 4 is a diagram illustrating an example of the occupation reception information and the previous occupation information held in the occupation reception register 140. The occupation acceptance information represents the request server ID 141 and the request number 142, and the immediately preceding occupation information represents the request server ID 143 and the request number 144.

要求サーバID141はバックエンドサーバ11を占有しているバックエンドサーバを識別するサーバIDであり、要求番号142はそのバックエンドサーバにおいて個々のアクセス要求に一意に付与される番号である。   The request server ID 141 is a server ID for identifying a back-end server that occupies the back-end server 11, and the request number 142 is a number uniquely assigned to each access request in the back-end server.

要求サーバID141と要求番号142との組み合わせを要求IDと呼ぶ。要求IDは、アクセス要求をデータ制御システム10の全体で一意に識別する。   A combination of the request server ID 141 and the request number 142 is called a request ID. The request ID uniquely identifies the access request throughout the data control system 10.

占有受付情報は、バックエンドサーバ11がどのバックエンドサーバからも占有されていないことを、空値(例えばNULL、’OFF’など)で表す。   The occupation acceptance information indicates that the back end server 11 is not occupied by any back end server by a null value (for example, NULL, 'OFF', etc.).

直前占有情報は、占有受付情報によって示される占有要求が全てのバックエンドサーバによって受け入れられたことが分かったとき、その占有受付情報で更新される。これにより、直前占有情報は、バックエンドサーバ11を含む全てのバックエンドサーバに共通して直前に受け入れられた占有を識別する。   The immediately preceding occupation information is updated with the exclusive reception information when it is found that the exclusive request indicated by the exclusive reception information has been accepted by all the back-end servers. Thereby, the last occupation information identifies the occupation accepted immediately before in common with all the back end servers including the back end server 11.

なお、アクセス要求の内容そのもの(例えばSQLで記述されるクエリ)は、要求IDと対応付けて、図示しない記憶領域に記憶されるものとする。   Note that the content of the access request itself (for example, a query described in SQL) is stored in a storage area (not shown) in association with the request ID.

(連携マスタ部と占有一覧情報)
図5は、連携マスタ部130の機能的な構成の一例を示すブロック図である。
(Linked master part and occupancy list information)
FIG. 5 is a block diagram illustrating an example of a functional configuration of the cooperation master unit 130.

連携マスタ部130は、採番部131、占有試行部132、占有一覧テーブル133、及び要求発行部138から構成される。   The cooperation master unit 130 includes a numbering unit 131, an occupation trial unit 132, an occupation list table 133, and a request issuing unit 138.

採番部131は、要求判断部110からアクセス要求を受け取ると、バックエンドサーバ11で一意の番号を生成し、受け取ったアクセス要求と生成した番号とを占有試行部132へ引き渡す。採番部131は、例えばカウンタであり、アクセス要求を受け取るたびにカウンタをインクリメントすることによって、一意の番号を生成してもよい。   When receiving an access request from the request determination unit 110, the numbering unit 131 generates a unique number in the back-end server 11, and delivers the received access request and the generated number to the occupation trial unit 132. The numbering unit 131 is, for example, a counter, and may generate a unique number by incrementing the counter each time an access request is received.

占有試行部132は、バックエンドサーバ11を識別するサーバIDと採番部131から受け取った番号とからなる要求IDで占有受付レジスタ140の占有受付情報を更新し、その要求IDを含む占有要求を送信することによって、他の全てのバックエンドサーバ12、…、1nの占有を試みる。   The occupancy trial unit 132 updates the occupancy reception information in the occupancy reception register 140 with a request ID including a server ID for identifying the back-end server 11 and a number received from the numbering unit 131, and generates an occupancy request including the request ID. By trying to transmit, it tries to occupy all other backend servers 12,.

バックエンドサーバ12、…、1nにおける連携サービス部は、占有要求を受信すると、自らの占有受付レジスタに空値が保持されている(つまり、どのバックエンドサーバからも占有されていない)場合、受信された占有要求に含まれる要求IDでその占有受付レジスタの占有受付情報を更新した後、占有応答を返信する。   When the cooperation service unit in the back-end server 12,..., 1n receives the occupancy request, it receives if the null value is held in its own occupancy reception register (that is, it is not occupied by any back-end server). After the occupancy reception information of the occupancy reception register is updated with the request ID included in the occupancy request, an occupancy response is returned.

この占有応答は、対象要求ID、応答サーバID、及び受付要求IDを含む(図示省略)。ここで、対象要求IDは対応する占有要求に含まれていた要求IDであり、応答サーバIDはその占有応答を送信したバックエンドサーバを識別するサーバIDであり、受付要求IDはそのバックエンドサーバの占有受付レジスタに保持されている占有受付情報である。   This exclusive response includes a target request ID, a response server ID, and a reception request ID (not shown). Here, the target request ID is a request ID included in the corresponding occupancy request, the response server ID is a server ID that identifies the back-end server that transmitted the occupancy response, and the reception request ID is the back-end server. Is the exclusive reception information held in the exclusive reception register.

説明の便宜上、対象要求IDと受付要求IDとが等しい占有応答を占有受諾応答と呼び、対象要求IDと受付要求IDとが異なる占有応答を占有拒否応答と呼ぶ。占有応答に、例えば'OK'、'NG'といった値を含めることによって、占有受諾応答と占有拒否応答との区別を明示してももちろん構わない。   For convenience of explanation, an exclusive response in which the target request ID and the reception request ID are equal is referred to as an exclusive acceptance response, and an exclusive response in which the target request ID and the reception request ID are different is referred to as an exclusive rejection response. Of course, it is possible to clearly indicate the distinction between the exclusive acceptance response and the exclusive rejection response by including values such as “OK” and “NG” in the exclusive response.

連携サービス部150は、バックエンドサーバ12、…、1nから返信される占有応答を受信し、占有一覧テーブル133に収集する。   The cooperation service unit 150 receives occupancy responses returned from the back-end servers 12,..., 1 n and collects them in the occupancy list table 133.

占有一覧テーブル133は、受信された占有応答を占有一覧情報として保持する。
図6は、占有一覧テーブル133に保持される占有一覧情報の一例を示す図である。占有一覧情報は、占有要求ごと、バックエンドサーバごとに、占有要求に対してバックエンドサーバから返される占有応答について、対象要求ID134、応答サーバID135、及び受付要求ID136を表す。
The occupation list table 133 holds the received occupation response as occupation list information.
FIG. 6 is a diagram illustrating an example of occupation list information held in the occupation list table 133. The occupation list information represents the target request ID 134, the response server ID 135, and the reception request ID 136 for the occupation response returned from the back end server in response to the occupation request for each occupation request and each back end server.

図6には、s2及びs3なるサーバIDで識別される2つのバックエンドサーバが他の全てのバックエンドサーバである場合に、対象要求IDid1に関する占有要求に対して、両方のバックエンドサーバから占有受諾応答が収集された占有成功例が示され、対象要求IDid2に関する占有要求について、s3で識別されるバックエンドサーバから占有拒否応答が収集された占有失敗例が示される。 FIG. 6 shows both backends for an exclusive request for the target request IDid 1 when the two backend servers identified by server IDs s 2 and s 3 are all other backend servers. An occupation success example in which an occupation acceptance response is collected from the server is shown, and an occupation failure example in which an occupation rejection response is collected from the back-end server identified in s 3 for the occupation request with respect to the target request IDid 2 is shown.

再び図5を参照して、占有試行部132は、所定の時間内に他の全てのバックエンドサーバから占有受諾応答が収集された場合に占有成功と判断する。   Referring to FIG. 5 again, the occupancy trial unit 132 determines that the occupancy is successful when the occupancy acceptance responses are collected from all the other back-end servers within a predetermined time.

要求発行部138は、占有成功と判断されると、他の全てのバックエンドサーバ12、…、1nへバックエンド通信制御部220を介して対象要求IDで識別されるアクセス要求を転送すると共に、そのアクセス要求をデータベース制御部310へ発行する。   When the request issuing unit 138 determines that the occupation is successful, the request issuing unit 138 transfers the access request identified by the target request ID to the other back-end servers 12,..., 1n via the back-end communication control unit 220, and The access request is issued to the database control unit 310.

バックエンドサーバ12、…、1nにおける連携サービス部は、そのアクセス要求を受信すると、自らのデータベース制御部へそのアクセス要求を発行する。そして、自らのデータベースにおける実行が完了すると、実行結果を示すアクセス応答を返信する。   When the cooperation service unit in the back-end server 12,..., 1n receives the access request, it issues the access request to its own database control unit. When the execution in the own database is completed, an access response indicating the execution result is returned.

連携サービス部150は、そのアクセス応答を受信し、占有一覧情報の対応レコードに、例えば図示しないフラグ情報を用いて、アクセス応答が返されたことを記録する。   The cooperation service unit 150 receives the access response, and records that the access response has been returned, for example, using flag information (not shown) in the corresponding record of the occupation list information.

要求発行部138は、他の全てのバックエンドサーバ12、…、1nと、データベース制御部310とからアクセス応答が返ることでシステム全体でのアクセス完了を知り、クライアントからのアクセス要求を転送したフロントエンドサーバへフロントエンド通信制御部210を介してアクセス結果を返却する。   The request issuing unit 138 knows completion of access in the entire system by returning access responses from all the other back-end servers 12,..., 1n and the database control unit 310, and forwards the access request from the client. An access result is returned to the end server via the front end communication control unit 210.

また、占有試行部132は、一つ以上の占有拒否応答が収集された場合、次のようにして競合の解消を図る。   Further, when one or more exclusive rejection responses are collected, the exclusive trial unit 132 attempts to resolve the conflict as follows.

まず、収集された占有拒否応答に含まれる受付要求IDが受付占有レジスタ140に保持されている直前占有情報と同一である場合(つまり、バックエンドサーバ11を含む全てのバックエンドサーバによって直前に受け入れられた占有が、その占有拒否応答を返したバックエンドサーバではまだ解除されていない場合)には、そのバックエンドサーバとの真の競合は生じていないと考えて、占有試行部132は、その占有拒否応答を送信したバックエンドサーバへ占有要求を再送(つまり、占有をリトライ)して、占有試行を続行する。   First, when the reception request ID included in the collected occupancy rejection response is the same as the previous occupancy information held in the reception occupancy register 140 (that is, it is accepted immediately before by all the back-end servers including the back-end server 11). The occupancy trial unit 132 considers that there is no real conflict with the back-end server, and the occupancy trial unit 132 The occupancy request is continued by resending the occupancy request to the back-end server that has transmitted the occupancy rejection response (that is, retrying occupancy).

次に、他の全てのバックエンドサーバ12、…、1nから占有応答が収集され、その中の一つ以上が占有拒否応答である場合、占有拒否応答に含まれる受付要求IDで識別されるバックエンドサーバ(これを競合サーバと呼ぶ)の優先順位とバックエンドサーバ11の優先順位との比較に基づいて、自らの占有を変更すべき優先サーバを特定する。   Next, when exclusive responses are collected from all the other back-end servers 12,..., 1n and one or more of them are exclusive rejection responses, the back identified by the reception request ID included in the exclusive rejection response Based on the comparison between the priority order of the end server (referred to as a competing server) and the priority order of the back-end server 11, the priority server whose occupancy is to be changed is specified.

この比較は、バックエンドサーバ12、…、1n間に定められている優先順位に、さらに各バックエンドサーバが自分以外のバックエンドサーバを占有しているか否かを考慮に入れた順位を用いて行われる。   This comparison is performed using a priority order determined between the back-end servers 12,..., 1n and a rank that takes into consideration whether each back-end server occupies a back-end server other than itself. Done.

そのような順位の具体例として、自分以外のバックエンドサーバを占有していない状態のバックエンドサーバ12、…、1nを前記優先順位で並べ、さらにその高位に、自分以外のバックエンドサーバを占有している状態のバックエンドサーバ12、…、1nを前記優先順位で並べて定義される順位を用いることができる。   As a specific example of such order, the back-end servers 12,..., 1n that do not occupy any other back-end server are arranged in the priority order, and the back-end servers other than their own are occupied at a higher level. It is possible to use a rank defined by arranging the back-end servers 12,...

占有試行部132は、この順位に従って、自分以外のバックエンドサーバを占有している状態のバックエンドサーバをそうでないバックエンドサーバよりも優先して、バックエンドサーバ11よりも高位の競合サーバの中で最高位の競合サーバを前記優先サーバとして特定する。   In accordance with this order, the occupation trial unit 132 gives priority to a back-end server in a state of occupying a back-end server other than its own, over the back-end servers that are not so, among the competing servers higher than the back-end server 11. The highest competing server is identified as the priority server.

なお、バックエンドサーバ11が自分以外のバックエンドサーバを占有しているか否かは、一つ以上の占有許諾応答が収集されるか否かによって判断でき、また、他の各バックエンドサーバ12、…、1nが自分以外のバックエンドサーバを占有しているか否かは、受信された占有拒否応答にその占有拒否応答を返したバックエンドサーバ以外のバックエンドサーバを識別する受付要求IDが含まれるか否かによって判断することができる。   Whether or not the back-end server 11 occupies a back-end server other than itself can be determined by whether or not one or more exclusive permission responses are collected, and each of the other back-end servers 12, ... Whether or not 1n occupies a back-end server other than itself includes a reception request ID for identifying a back-end server other than the back-end server that has returned the exclusive rejection response to the received exclusive rejection response It can be judged by whether or not.

そして、バックエンドサーバ11から前記特定された優先サーバへの変更を示す占有変更を送信すると共に、優先サーバによる占有を示す占有拒否応答に含まれる受付要求IDで占有受付レジスタ140の占有受付情報を更新する。   Then, the exclusive change information indicating the change to the specified priority server is transmitted from the back-end server 11 and the exclusive reception information of the exclusive reception register 140 is received with the reception request ID included in the exclusive rejection response indicating the exclusive use by the priority server. Update.

送信される占有変更は、具体的に、変更前に関して占有受付レジスタ140に保持されている要求IDを含み、変更後に関して優先サーバからの占有拒否応答に含まれる受付要求IDを含んでもよい。   The occupancy change to be transmitted specifically includes the request ID held in the occupancy reception register 140 before the change, and may include the reception request ID included in the occupancy rejection response from the priority server after the change.

バックエンドサーバ12、…、1nにおける連携サービス部は、占有変更を受信すると、受信された占有変更に含まれる変更前に関する要求IDと、自らの占有受付レジスタに保持されている要求受付情報の要求IDとが一致する場合、変更前の正真のバックエンドサーバからの占有変更であると判断して、受信された占有変更に含まれる変更後に関する受付要求IDで自らの占有受付レジスタを更新し、その要求IDで識別されるバックエンドサーバへ占有受諾応答を送信する。   When the cooperation service unit in the back-end server 12,..., 1n receives the occupancy change, the request ID related to the pre-change included in the received occupancy change and the request reception information request held in its own occupancy reception register. If the IDs match, it is determined that the change is an exclusive change from the genuine back-end server before the change, and the own exclusive reception register is updated with the reception request ID related to the change included in the received exclusive change. The exclusive acceptance response is transmitted to the back-end server identified by the request ID.

他方、バックエンドサーバ11よりも高位の競合サーバがない場合には、占有試行部132は何もせず、競合サーバにおける占有試行部が前述した処理を行うことによって競合が解消されるのを待つ。   On the other hand, when there is no competing server higher than the back-end server 11, the exclusive trial unit 132 does nothing and waits for the conflict to be resolved by the exclusive trial unit in the competing server performing the above-described processing.

占有試行部132は、所定の時間内に占有成功も占有変更もできなかった場合に占有失敗と判断する。   The occupancy trial unit 132 determines that the occupancy has failed when the occupancy success and the occupancy change cannot be performed within a predetermined time.

要求発行部138は、占有失敗と判断されると、クライアントからのアクセス要求を転送したフロントエンドサーバへフロントエンド通信制御部210を介してアクセス失敗を通知する。   If the request issuing unit 138 determines that the occupation has failed, the request issuing unit 138 notifies the front end server that has transferred the access request from the client of the access failure via the front end communication control unit 210.

(主要部の詳細な動作)
以下、本発明の主要部の詳細な動作についてフローチャートを参照しながら説明する。
(Detailed operation of the main part)
The detailed operation of the main part of the present invention will be described below with reference to flowcharts.

図7は、統合制御部100によって行われる統合制御処理の一例を示すフローチャートである。   FIG. 7 is a flowchart illustrating an example of the integrated control process performed by the integrated control unit 100.

統合制御部100は、クライアントから発行されたアクセス要求を受信すると(S101)、データベース31のみでそのアクセス要求を実行したとすれば他のデータベースとのデータの同期が維持されるか否か、言い換えれば、システム全体でのデータ同期制御が必要かを要求判断部110で判断する。そして、システム全体でのデータ同期制御が必要でないと判断された場合(S102でNO)、単独アクセス部120へそのアクセス要求を引き渡し(S103)、必要であると判断された場合(S102でYES)、連携マスタ部130へそのアクセス要求を引き渡す(S200)。   When the integrated control unit 100 receives an access request issued from a client (S101), if the access request is executed only by the database 31, whether or not the synchronization of data with other databases is maintained, in other words, For example, the request determination unit 110 determines whether data synchronization control is necessary for the entire system. If it is determined that data synchronization control is not necessary for the entire system (NO in S102), the access request is handed over to the single access unit 120 (S103), and if it is determined that it is necessary (YES in S102). Then, the access request is delivered to the cooperation master unit 130 (S200).

図8は、連携マスタ部130によって行われる連携マスタ処理の一例を示すフローチャートである。   FIG. 8 is a flowchart illustrating an example of the cooperation master process performed by the cooperation master unit 130.

連携マスタ部130は、要求判断部110からアクセス要求を受け取ると、占有受付レジスタ140の占有受付情報が空値になるまで(つまり、占有から解かれるまで)待って(S210)、バックエンドサーバ11を識別するサーバIDと採番部131で生成された番号とからなる要求IDを、占有受付情報として占有受付レジスタ140に登録する(S202)。   When the cooperation master unit 130 receives the access request from the request determination unit 110, the cooperation master unit 130 waits until the occupancy reception information in the occupancy reception register 140 becomes an empty value (that is, until it is released from the occupancy) (S <b> 210). A request ID consisting of a server ID for identifying and a number generated by the numbering unit 131 is registered in the occupancy reception register 140 as occupancy reception information (S202).

そして、占有試行処理を行い(S300)、占有に成功した場合には(S203で成功)、他のバックエンドサーバ12、…、1nへそのアクセス要求を転送すると共に(S204)、占有受付レジスタ140の直前占有情報を占有受付情報で更新する(S205)。この更新後の直前占有情報は、バックエンドサーバ11が要求して、全てのバックエンドサーバに共通して受け入れられた占有を識別する。   Then, an exclusive trial process is performed (S300). If the occupation is successful (successful in S203), the access request is transferred to the other back-end servers 12,..., 1n (S204), and the exclusive acceptance register 140 The previous occupation information is updated with the occupation reception information (S205). This updated previous occupation information identifies the occupation requested by the back-end server 11 and accepted in common by all the back-end servers.

そして、占有受付情報を空値で更新することにより削除し(S206)、そのアクセス要求をデータベース制御部310へ発行してデータベース31をアクセスする(S207)。   Then, the exclusive acceptance information is deleted by updating it with a null value (S206), and the access request is issued to the database control unit 310 to access the database 31 (S207).

さらに、他のバックエンドサーバ12、…、1nと、データベース制御部310とからアクセス応答が返るのを待って(S208)、クライアントからのアクセス要求を転送したフロントエンドサーバへアクセス結果を送信する(S209)。   Further, after waiting for an access response to be returned from the other back-end servers 12,..., 1n and the database control unit 310 (S208), the access result is transmitted to the front-end server that transferred the access request from the client (S208). S209).

また、占有に失敗した場合には(S203で失敗)、クライアントからのアクセス要求を転送したフロントエンドサーバへアクセス失敗を送信する(S209)。   If the occupancy has failed (failed in S203), an access failure is transmitted to the front-end server that transferred the access request from the client (S209).

また、占有を変更した場合には(S203で変更)、S201へ戻って変更前の自らの占有を再度試みる。   If the occupancy is changed (changed in S203), the process returns to S201 to try again the occupancy before the change.

図9は、占有試行部132によって行われる占有試行処理の一例を示すフローチャートである。   FIG. 9 is a flowchart illustrating an example of the exclusive trial process performed by the exclusive trial unit 132.

占有試行部132は、占有受付レジスタ140に保持されている占有受付情報で示される要求IDを含む占有要求を他の全てのバックエンドサーバ12、…、1nへ送信し(S301)、タイマ部400をスタートさせる(S302)。この占有要求は、ブロードキャストされてもよく、またそれぞれのバックエンドサーバへ個別に送信されてもよい。   The occupancy trial unit 132 transmits an occupancy request including the request ID indicated by the occupancy reception information held in the occupancy reception register 140 to all the other back-end servers 12,..., 1n (S301), and the timer unit 400 Is started (S302). This occupancy request may be broadcast or sent individually to each backend server.

占有試行部132は、占有一覧テーブル133の占有一覧情報から、前記占有受付情報と一致する対象要求IDを持つ占有応答を参照し(S303)、参照された占有応答の中に、占有受付レジスタ140の直前占有情報と同一の受付要求IDを持つ占有拒否応答があれば(S304でYES)、その占有拒否応答を送信したバックエンドサーバへ前記占有要求を再送信する(S305)。   The occupancy trial unit 132 refers to the occupancy response having the target request ID that matches the occupancy reception information from the occupancy list information of the occupancy list table 133 (S303), and the occupancy reception register 140 is included in the referenced occupancy response. If there is an occupancy rejection response having the same acceptance request ID as the previous occupancy information (YES in S304), the occupancy request is retransmitted to the back-end server that transmitted the occupancy rejection response (S305).

占有試行部132は、他の全てのバックエンドサーバから占有応答が収集された後(S311でYES)、収集された占有応答が全て占有受諾応答なら(S312でYES)、占有成功を示して連携マスタ処理へ戻る(S313)。   After the exclusive responses are collected from all the other back-end servers (YES in S311), the exclusive trial unit 132 indicates that the exclusive success has been obtained (YES in S312) and cooperates. The process returns to the master process (S313).

収集された占有応答の一つ以上が占有拒否応答なら(S312でNO)、占有試行部132は、前述したように、バックエンドサーバ間の優先順序にさらに各バックエンドサーバが自分以外のバックエンドサーバを占有しているか否かを考慮に入れた順位を用いて、競合サーバの中から自らの占有を変更すべき優先サーバを特定し(S314でYES)、バックエンドサーバ11から前記特定された優先サーバへの変更を示す占有変更を送信する(S321)。この占有変更は、バックエンドサーバ11へ占有受諾応答を返信したバックエンドサーバへ個別に送信されてもよく、またブロードキャストされてもよい。   If one or more of the collected occupancy responses is an occupancy rejection response (NO in S312), the occupancy trial unit 132 further adds each backend server to a backend other than its own in the priority order between the backend servers as described above. Using a ranking that takes into account whether or not the server is occupied, a priority server whose own occupation should be changed is identified from among the competing servers (YES in S314), and the identified from the back-end server 11 An exclusive change indicating a change to the priority server is transmitted (S321). This occupancy change may be individually transmitted to the back-end server that has returned the occupancy acceptance response to the back-end server 11 or may be broadcast.

そして、占有受付レジスタ140の占有受付情報を更新し(S322)、占有変更を示して連携マスタ処理へ戻る(S323)。   Then, the occupancy reception information in the occupancy reception register 140 is updated (S322), the occupancy change is indicated, and the process returns to the cooperation master process (S323).

占有試行部132は、全てのバックエンドサーバから占有応答が収集されていないか(S311でNO)、特定すべき優先サーバ(つまり、バックエンドサーバ11よりも上位の競合サーバ)がなければ(S314でNO)、タイマ部400を参照する。タイムアウトしていれば(S315でYES)、占有受付レジスタ140の占有受付情報を空値で更新することによって削除し(S331)、占有失敗を示して連携マスタ処理へ戻る(S332)。タイムアウトしていなければ(S315でNO)、S303へ戻って処理を継続する。   The exclusive trial unit 132 does not collect exclusive responses from all back-end servers (NO in S311), or if there is no priority server to be specified (that is, a competing server higher than the back-end server 11) (S314). NO), the timer unit 400 is referred to. If the time-out has occurred (YES in S315), the exclusive reception information in the exclusive reception register 140 is deleted by updating it with a null value (S331), the occupation failure is indicated, and the process returns to the cooperation master process (S332). If not timed out (NO in S315), the process returns to S303 and continues.

図10は、連携サービス部150によって行われる連携サービス処理の一例を示すフローチャートである。   FIG. 10 is a flowchart illustrating an example of cooperative service processing performed by the cooperative service unit 150.

連携サービス部150は、他のバックエンドサーバからデータを受信すると(S401)、受信されたデータの種類を判断する。   When the cooperation service unit 150 receives data from another back-end server (S401), the cooperation service unit 150 determines the type of the received data.

受信されたデータが占有要求である場合(S402で占有要求)、次の処理を行う。
占有受付レジスタ140の占有受付情報が空値であれば(S411でYES)、受信された占有要求に含まれる要求IDを占有受付情報として占有受付レジスタ140に登録し(S413)、占有受諾応答を返信する(S414)。
If the received data is an occupancy request (occupation request in S402), the following processing is performed.
If the occupancy reception information in the occupancy reception register 140 is null (YES in S411), the request ID included in the received occupancy request is registered in the occupancy reception register 140 as occupancy reception information (S413), and an occupancy acceptance response is sent. A reply is made (S414).

また、占有受付情報と受信された占有要求に含まれる要求IDとが同一である、つまり現在受け入れている占有の再要求を受信した場合にも(S412でYES)、占有受諾応答を返信する(S414)。   Also, when the occupancy reception information and the request ID included in the received occupancy request are the same, that is, when the occupancy re-request currently accepted is received (YES in S412), an occupancy acceptance response is returned (YES in S412). S414).

その他の場合には(S412でNO)、占有拒否応答を返信する(S415)。
受信データがアクセス要求である場合(S402でアクセス要求)、次の処理を行う。
In other cases (NO in S412), an exclusive refusal response is returned (S415).
If the received data is an access request (access request in S402), the following processing is performed.

受信されたアクセス要求に含まれる要求IDと占有受付レジスタ140の占有受付情報の要求IDとが一致するならば(S421でYES)、直前占有情報を占有受付情報で更新する(S422)。この更新後の直前占有情報は、バックエンドサーバ11以外のバックエンドサーバが要求して、バックエンドサーバ11を含む全てのバックエンドサーバに共通して受け入れられた占有を識別する。   If the request ID included in the received access request matches the request ID of the occupancy reception information of the occupancy reception register 140 (YES in S421), the previous occupancy information is updated with the occupancy reception information (S422). The immediately preceding occupation information after the update identifies an occupation that is requested by a back-end server other than the back-end server 11 and is commonly accepted by all the back-end servers including the back-end server 11.

その後、占有受付情報を空値で更新することによって削除し(S423)、受信されたアクセス要求をデータベース制御部310へ発行することによってデータベース31において実行し(S433)、アクセス要求を送信したバックエンドサーバへアクセス応答を返信する(S434)。   Thereafter, the occupancy acceptance information is deleted by updating it with a null value (S423), and the received access request is issued to the database control unit 310 to be executed in the database 31 (S433), and the back end that has transmitted the access request An access response is returned to the server (S434).

受信されたアクセス要求に含まれる要求IDと占有受付レジスタ140の占有受付情報の要求IDとが一致しなければ(S421でNO)、何もしない。   If the request ID included in the received access request and the request ID of the exclusive reception information in the exclusive reception register 140 do not match (NO in S421), nothing is done.

受信データが占有応答、又はアクセス応答である場合(S402で占有応答、アクセス応答)、占有要求に対してバックエンドサーバから初めて返される占有応答ならその占有応答を占有一覧テーブル133の占有一覧情報へ追加登録する。また、同じ占有要求に対して同じバックエンドサーバから二度目以降に返される占有応答か、アクセス応答なら占有一覧情報の対応するレコードを更新する(S441)。   When the received data is an occupancy response or an access response (occupied response, access response in S402), if the occupancy response is returned for the first time from the back-end server in response to the occupancy request, the occupancy response is transferred to the occupancy list information in the occupancy list table 133. Register additional. In addition, in the case of an exclusive response returned from the same back-end server for the same exclusive request after the second time or an access response, the corresponding record in the exclusive list information is updated (S441).

受信データが占有変更である場合(S402で占有変更)、受信された占有変更に含まれる変更前に関する要求IDと、占有受付レジスタ140に保持されている占有受付情報とが一致するなら(S451でYES)、受信された占有変更に含まれる要求IDで占有受付レジスタ140の占有受付情報を更新し(S452)、その要求IDで識別されるバックエンドサーバへ占有受諾応答を送信する(S453)。   If the received data is an occupancy change (occupation change in S402), if the request ID related to the pre-change included in the received occupancy change matches the occupancy reception information held in the occupancy reception register 140 (in S451) (YES), the occupancy acceptance information in the occupancy acceptance register 140 is updated with the request ID included in the received occupancy change (S452), and an occupancy acceptance response is transmitted to the back-end server identified by the request ID (S453).

(連携動作の典型例)
以下、連携動作の典型例についてシーケンスチャートを参照しながら説明する。
(Typical example of cooperative operation)
Hereinafter, a typical example of the cooperative operation will be described with reference to a sequence chart.

図11は、通常のデータ同期動作の一例を示すシーケンスチャートである。図11に表される矢印はデータフローを表し、それぞれのデータフローには、図7から図10のフローチャートに示される対応ステップの符号が付される。同一のステップに対応する複数のデータフローは、符号に添えた英字で区別される。   FIG. 11 is a sequence chart showing an example of a normal data synchronization operation. The arrows shown in FIG. 11 represent data flows, and the symbols of the corresponding steps shown in the flowcharts of FIGS. A plurality of data flows corresponding to the same step are distinguished by an alphabetic character attached to a code.

図11には、どのバックエンドサーバも占有されていない状態において、バックエンドサーバ11が、システム全体でのデータの同期制御が必要と判断されたアクセス要求を、他のバックエンドサーバ12〜1nを占有して実行する例が示される。   In FIG. 11, when no back-end server is occupied, the back-end server 11 sends an access request determined to require data synchronization control in the entire system to other back-end servers 12 to 1n. An example of running exclusively is shown.

この例では、まず全てのバックエンドサーバの占有受付レジスタに、そのアクセス要求に対応する占有要求に含まれる要求IDが占有受付情報として登録され、次に他の全てのバックエンドサーバ12、…、1nからの占有受諾応答がバックエンドサーバ11に収集された後、バックエンドサーバ11からアクセス要求が発せられ、全てのバックエンドサーバが自らのデータベースでそのアクセス要求を実行する。   In this example, first, the request ID included in the occupancy request corresponding to the access request is registered as occupancy reception information in the occupancy reception registers of all the back-end servers, and then all the other back-end servers 12,. After the exclusive acceptance responses from 1n are collected by the back-end server 11, an access request is issued from the back-end server 11, and all the back-end servers execute the access request in their own databases.

このように、アクセス要求は全てのバックエンドサーバがバックエンドサーバ11による占有を受諾してから初めて実行されるため、そのアクセス要求は全てのバックエンドサーバで確実に実行される。また、新たなアクセス要求に対応する占有要求が占有中に発生しても拒否されるため、複数のアクセス要求がバックエンドサーバによって異なる順序で実行される事態が避けられる。   In this way, since the access request is executed only after all back-end servers accept the occupation by the back-end server 11, the access request is surely executed by all the back-end servers. Further, since an occupancy request corresponding to a new access request is rejected even when it is occupied, a situation in which a plurality of access requests are executed in different orders depending on the back-end server can be avoided.

このことはどのバックエンドサーバのどのアクセス要求についても成り立つから、この構成によって全てのデータベース間でのデータの同期が維持される。また、データの同期の維持そのものが分散処理されるので、従来のレプリケーションサーバを省略できる。その結果、システムからデータの同期維持に関する性能及び信頼性の面でのボトルネックが排除され、システムのスケーラビリティの具現化が容易となる。   Since this is true for any access request of any backend server, this configuration maintains data synchronization between all databases. In addition, since the maintenance of data synchronization itself is distributed, the conventional replication server can be omitted. As a result, a bottleneck in performance and reliability related to maintaining synchronization of data from the system is eliminated, and the system scalability can be easily realized.

図12は、同一のバックエンドサーバからの占有リトライ動作の一例を示すシーケンスチャートである。図12に表されるそれぞれのデータフローには、図11と同様の符号が付される。   FIG. 12 is a sequence chart showing an example of an exclusive retry operation from the same back-end server. Each data flow represented in FIG. 12 is denoted by the same reference numerals as in FIG.

図12には、他のバックエンドサーバの一つ(例えばバックエンドサーバ12)がバックエンドサーバ11から占有されている状態において、バックエンドサーバ11が、システム全体でのデータの同期制御が必要と判断されたアクセス要求を、他のバックエンドサーバ12〜1nを占有して実行する例が示される。   In FIG. 12, in the state where one of the other back-end servers (for example, the back-end server 12) is occupied by the back-end server 11, the back-end server 11 needs to perform data synchronization control in the entire system. An example in which the determined access request is executed by occupying the other back-end servers 12 to 1n is shown.

この例では、最初バックエンドサーバ12は、バックエンドサーバ11において直前に処理されたアクセス要求をまだ処理中であり、バックエンドサーバ12の占有受付レジスタには、その直前のアクセス要求に対応する占有要求(不図示)に関する要求IDが登録されている。そのため、バックエンドサーバ11からの新たな占有要求に対して占有拒否応答が返される。なお、直前のアクセス要求に関係するデータフローは点線で示される。   In this example, the first back-end server 12 is still processing the access request processed immediately before in the back-end server 11, and the occupancy reception register of the back-end server 12 has an occupancy corresponding to the immediately preceding access request. A request ID related to a request (not shown) is registered. Therefore, an exclusive rejection response is returned in response to a new exclusive request from the back-end server 11. The data flow related to the previous access request is indicated by a dotted line.

バックエンドサーバ11は、返された占有拒否応答に含まれる受付要求IDが受付占有レジスタ140に保持されている直前占有情報と同一であることによって、自らが直前に受け入れていた占有がバックエンドサーバ12ではまだ解除されていないことを知り、占有要求を再送することによって、バックエンドサーバ12の処理終了後に占有に成功する。その後の動作は、図11と同様である。   The back-end server 11 determines that the occupancy that it has accepted immediately before is the back-end server because the reception request ID included in the returned occupancy rejection response is the same as the previous occupancy information held in the reception occupancy register 140 12 knows that it has not been released yet, and resends the occupancy request, thereby succeeding in occupying after the processing of the back-end server 12 is completed. The subsequent operation is the same as in FIG.

このように、占有拒否応答が受信された場合でも、自らが直前に受け入れていた占有に関係する占有拒否である場合には、直ちに占有失敗とするのではなく、占有要求を再送することで、効率的に占有に成功する可能性が高まる。   In this way, even when an occupancy refusal response is received, if it is an occupancy refusal related to the occupancy that it has accepted immediately before, instead of immediately occupying failure, by resending the occupancy request, The possibility of successful occupation increases.

これにより、バックエンドサーバ間での処理タイミングの差異が吸収され、システムのスループットが向上する。   This absorbs differences in processing timing between back-end servers and improves system throughput.

図13は、競合バックエンドサーバへの占有変更動作の一例を示すシーケンスチャートである。図13に表されるそれぞれのデータフローには、図11と同様の符号が付される。   FIG. 13 is a sequence chart illustrating an example of an operation for changing the occupation to the competing back-end server. Each data flow represented in FIG. 13 is denoted by the same reference numerals as in FIG.

図13には、自らよりも優先順位の高い競合サーバとの間で占有要求が競合したことを知ったバックエンドサーバ11が、自らの占有をその競合サーバに変更する例が示される。   FIG. 13 shows an example in which the back-end server 11 that knows that the occupation request has competed with a competing server having a higher priority than itself changes its own occupation to that competing server.

この例では、バックエンドサーバ11は、受信された占有拒否応答に基づいて優先サーバを特定し、占有受諾応答を返したバックエンドサーバ12に、バックエンドサーバ11からその優先サーバへの変更を示す占有変更を送信すると共に、自らの占有受付レジスタの占有受付情報を占有拒否応答に含まれる受付要求IDで更新することによって、占有者をその優先サーバに変更する。   In this example, the back-end server 11 specifies the priority server based on the received exclusive rejection response, and indicates the change from the back-end server 11 to the priority server to the back-end server 12 that has returned the exclusive acceptance response. The occupant is changed to the priority server by transmitting the occupancy change and updating the occupancy reception information in its own occupancy reception register with the reception request ID included in the occupancy rejection response.

このように、より優先順位の高いバックエンドサーバとの間で占有要求が競合したことを知ったバックエンドサーバは、自らの占有を優先サーバへと積極的に変更するので、競合の解消を、例えば所定時間待ってリトライするといった簡略な方法に比べて、より迅速かつ円滑に行うことができる。   In this way, the back-end server that knows that the occupancy request has competed with the higher-priority back-end server actively changes its occupancy to the priority server. For example, it can be performed more quickly and smoothly than a simple method of waiting for a predetermined time and retrying.

(通信プロトコルの変更)
フロントエンドサーバとバックエンドサーバとの通信、及びバックエンドサーバ同士の通信を、複数の通信プロトコル(例えばIP上のTCP及びUDP)の中から所定の基準で選択される一つを用いて行ってもよいことを、先に述べた。
(Change of communication protocol)
The communication between the front-end server and the back-end server and the communication between the back-end servers are performed using one selected from a plurality of communication protocols (for example, TCP and UDP over IP) according to a predetermined standard. I mentioned earlier.

以下では、この選択の基準、及び通信プロトコルを変更する意義について説明する。
図14は、通信プロトコル選択処理の一例を示すフローチャートである。
Hereinafter, the criteria for selection and the significance of changing the communication protocol will be described.
FIG. 14 is a flowchart illustrating an example of a communication protocol selection process.

この通信プロトコル選択処理は、TCP及びUDPの一方を選択する処理であり、フロントエンド通信制御部210、及びバックエンド通信制御部220によって実行されてもよく、また、統合制御部100によって実行され、フロントエンド通信制御部210、及びバックエンド通信制御部220は、統合制御部100によって選択された通信プロトコルに従って通信を行ってもよい。   This communication protocol selection process is a process for selecting one of TCP and UDP, and may be executed by the front-end communication control unit 210 and the back-end communication control unit 220, or may be executed by the integrated control unit 100. The front-end communication control unit 210 and the back-end communication control unit 220 may perform communication according to the communication protocol selected by the integrated control unit 100.

この通信プロトコル選択処理による選択の基準は、送信されるデータの量が予め定められたしきい値を超える場合(S501でYES)、再送信である場合(S502でYES)、及び送信されるデータが応答である場合(S503でYES)にTCPを選択し(S505)、その他の場合にUDPを選択する(S504)というものである。   The criteria for selection by this communication protocol selection process are when the amount of data to be transmitted exceeds a predetermined threshold (YES in S501), in the case of retransmission (YES in S502), and transmitted data Is a response (YES in S503), TCP is selected (S505), and UDP is selected in other cases (S504).

一般に、UDPによる通信は、TCPによる通信に比べて、一度に通信できるデータ量に制限がある、通信に要する処理オーバヘッドが小さい、データの到達確認機能がなく通信の信頼性が低いといった特性がある。この特性に鑑みて、上記の選択の基準に従って用いる通信プロトコルを変更することにより、通信のオーバヘッドと信頼性との良好なトレードオフを図ることができる。   In general, UDP communication has a characteristic that the amount of data that can be communicated at one time is limited, the processing overhead required for communication is small, and there is no data arrival confirmation function and communication reliability is low, compared to TCP communication. . In view of this characteristic, it is possible to achieve a good trade-off between communication overhead and reliability by changing the communication protocol used in accordance with the above selection criteria.

(第2の実施の形態)
本発明の第2の実施の形態におけるデータ制御装置について、図面を参照しながら詳細に説明する。第2の実施の形態におけるデータ制御装置も、第1の実施の形態と同様に、バックエンドサーバの例を用いて説明される。
(Second Embodiment)
A data control apparatus according to the second embodiment of the present invention will be described in detail with reference to the drawings. The data control apparatus according to the second embodiment is also described using an example of a back-end server, as in the first embodiment.

第2の実施の形態におけるバックエンドサーバは、第1の実施の形態で説明したバックエンドサーバ11、12、…、1nと比べて、分散データベースシステム1(図1を参照)において同様の役割を果たすが、サーバ状態管理機能が追加される点で異なる。このサーバ状態管理機能は、具体的に、第1の実施の形態で説明したバックエンドサーバ(図2を参照)の統合制御部100に追加される。   The back-end server in the second embodiment has the same role in the distributed database system 1 (see FIG. 1) as compared to the back-end servers 11, 12,..., 1n described in the first embodiment. However, it is different in that a server state management function is added. This server state management function is specifically added to the integrated control unit 100 of the back-end server (see FIG. 2) described in the first embodiment.

以下、第2の実施の形態における統合制御部について詳細に説明する。   Hereinafter, the integrated control unit in the second embodiment will be described in detail.

(統合制御部)
図15は、第2の実施の形態における統合制御部100aの機能的な構成の一例を示すブロック図である。統合制御部100aは、第1の実施の形態における統合制御部100(図3を参照)と比べて、サーバ状態管理部160が追加されると共に、変更された要求判断部110a、及び連携マスタ部130aを備える。
(Integrated control unit)
FIG. 15 is a block diagram illustrating an example of a functional configuration of the integrated control unit 100a according to the second embodiment. Compared to the integrated control unit 100 (see FIG. 3) in the first embodiment, the integrated control unit 100a has a server status management unit 160 added, a changed request determination unit 110a, and a cooperation master unit. 130a.

サーバ状態管理部160は、他のバックエンドサーバからのデータ受信の有無を所定時間監視することによって故障状態を検出する部であり、検出結果を保持するサーバ状態テーブル161を有する。   The server state management unit 160 is a unit that detects a failure state by monitoring the presence / absence of data reception from other back-end servers for a predetermined time, and includes a server state table 161 that holds detection results.

サーバ状態管理部160は、周期的に交換されるよう定められた監視用データの受信の有無を監視してもよく、また、例えば状態通知要求や占有要求といった所定のデータの送信に応じて受信されるべき応答の有無を監視してもよい。   The server status management unit 160 may monitor whether or not the monitoring data that is determined to be periodically exchanged is received, or received in response to transmission of predetermined data such as a status notification request or an occupancy request. The presence or absence of a response to be performed may be monitored.

図16は、サーバ状態テーブル161に保持されているサーバ状態情報の一例を示す図である。サーバ状態情報は、バックエンドサーバごとに、サーバID162、サーバが運用中か故障中かを示すサーバ状態163、及び受信の有無を示す受信フラグ164を表す。   FIG. 16 is a diagram illustrating an example of server status information held in the server status table 161. The server status information represents, for each back-end server, a server ID 162, a server status 163 that indicates whether the server is in operation or in failure, and a reception flag 164 that indicates whether or not reception has occurred.

サーバ状態管理部160は、周期的に、又は、例えば占有要求といった所定のデータが送信された後に、サーバ状態管理処理を実行して故障検出を行い、その検出の結果に応じてサーバ状態テーブル161のサーバ状態163を更新する。このサーバ状態管理処理は、後述するように、自分自身の故障をも検出する。   The server state management unit 160 performs failure detection by executing server state management processing periodically or after predetermined data such as an occupancy request is transmitted, and the server state table 161 according to the detection result. The server state 163 is updated. This server state management process also detects its own failure, as will be described later.

要求判断部110aは、サーバ状態テーブル161を参照して、自バックエンドサーバのサーバ状態が’故障中’と示されている間、フロントエンド通信制御部210からのアクセス要求の受け入れを停止する機能を、要求判断部110に追加してなる。   The request determination unit 110a refers to the server state table 161, and stops accepting access requests from the front-end communication control unit 210 while the server state of the own back-end server is indicated as “failing”. Is added to the request determination unit 110.

連携マスタ部130aは、サーバ状態テーブル161を参照して、サーバ状態が故障中と示されているバックエンドサーバを除外して、占有要求の送信、占有の成否判断、及びアクセス要求の送信を行うよう、連携マスタ部130を変更してなる。   The cooperation master unit 130a refers to the server status table 161, and excludes back-end servers whose server status is indicated as being out of order, and transmits an occupancy request, determination of success / failure of occupancy, and transmission of an access request. Thus, the cooperation master unit 130 is changed.

この変更は、詳細には、図9のフローチャートにおいて、S301をサーバ状態が運用中と示されているバックエンドサーバのみへ占有要求を送信するように変更し、S304をサーバ状態が運用中と示されている全てのバックエンドサーバから占有受諾応答を収集したかを判断するように変更し、また、図8のフローチャートにおいて、S204をサーバ状態が運用中と示されているバックエンドサーバのみへアクセス要求を転送するように変更することによって達成される。   Specifically, this change is made in the flowchart of FIG. 9 by changing S301 so that an occupancy request is transmitted only to the back-end server whose server status is indicated as operating, and S304 indicating that the server status is active. Change to determine whether exclusive acceptance responses have been collected from all back-end servers that have been registered, and in the flowchart of FIG. 8, only access the back-end servers whose server status is indicated as operating in the flowchart of FIG. This is accomplished by changing the request to forward.

(サーバ状態管理処理)
図17は、サーバ状態管理部160によって行われるサーバ状態管理処理の一例を示すフローチャートである。
(Server status management processing)
FIG. 17 is a flowchart illustrating an example of a server state management process performed by the server state management unit 160.

サーバ状態管理部160は、サーバ状態テーブル161の全ての受信フラグ164を’NO’にしてから(S601)、他の全てのバックエンドサーバへ状態通知要求を送信し(S602)、タイマ部400をスタートさせる(S603)。   The server state management unit 160 sets all the reception flags 164 in the server state table 161 to “NO” (S601), transmits a state notification request to all other back-end servers (S602), and sets the timer unit 400 to Start (S603).

状態通知応答が受信されると(S604でYES)、受信された状態通知応答を送信したバックエンドサーバに関して、受信フラグ164を’YES’に更新し、かつサーバ状態を’運用中’に更新する(S605)。タイムアウトになるまでS604〜S605の処理を繰り返した後(S606)、サーバ状態163が’運用中’と示された全てのバックエンドサーバについて受信フラグ164が’NO’のままであれば(S607でYES)、自バックエンドサーバのサーバ状態163を’故障中’に更新する(S608)。そうでなければ(S607でNO)、受信フラグ164が’NO’のままのバックエンドサーバについてサーバ状態163を’故障中’に更新する(S609)。   When the status notification response is received (YES in S604), the reception flag 164 is updated to “YES” and the server status is updated to “in operation” for the back-end server that has transmitted the received status notification response. (S605). After the processing of S604 to S605 is repeated until timeout (S606), if the reception flag 164 remains “NO” for all back-end servers whose server status 163 is indicated as “in operation” (S607) YES), the server state 163 of the own backend server is updated to “failing” (S608). Otherwise (NO in S607), the server status 163 is updated to “failed” for the back-end server in which the reception flag 164 remains “NO” (S609).

この構成によれば、故障したバックエンドサーバが自動的にシステムから切り離されるので、一つのバックエンドサーバの故障がシステム全体に及ぼす影響が軽減され、サービス無中断の運用が可能となる。   According to this configuration, since the failed back-end server is automatically disconnected from the system, the influence of the failure of one back-end server on the entire system is reduced, and service-free operation is possible.

なお、ここでは、状態通知要求に応じて状態通知応答が返される例を説明したが、占有要求に応じて返される占有通知を監視してもよく、また、サーバ状態管理部160が状態通知応答を自発的かつ周期的に送信することにより、状態通知要求の送信を省略する変形も考えられる。   Here, the example in which the status notification response is returned in response to the status notification request has been described, but the occupation notification returned in response to the occupation request may be monitored, and the server status management unit 160 may monitor the status notification response. It is also possible to consider a modification in which transmission of the status notification request is omitted by transmitting the information spontaneously and periodically.

(第3の実施の形態)
本発明の第3の実施の形態におけるデータ制御装置について、図面を参照しながら詳細に説明する。第3の実施の形態におけるデータ制御装置も、第1及び第2の実施の形態と同様に、バックエンドサーバの例を用いて説明される。
(Third embodiment)
A data control apparatus according to the third embodiment of the present invention will be described in detail with reference to the drawings. Similarly to the first and second embodiments, the data control apparatus according to the third embodiment is also described using an example of a back-end server.

第3の実施の形態におけるバックエンドサーバは、第1の実施の形態で説明した分散データベースシステム1(図1を参照)においてバックエンドサーバ11、12、…、1nと同様の役割を果たすが、第2の実施の形態で説明したサーバ状態管理機能に加えて、アクセス要求保留機能が追加される点で異なる。このアクセス要求保留機能は、具体的に、第1の実施の形態で説明したバックエンドサーバ(図2を参照)の統合制御部100に、前述のサーバ状態管理機能と共に追加される。   The backend server in the third embodiment plays the same role as the backend servers 11, 12,..., 1n in the distributed database system 1 (see FIG. 1) described in the first embodiment. In addition to the server state management function described in the second embodiment, an access request hold function is added. Specifically, this access request hold function is added to the integrated control unit 100 of the back-end server (see FIG. 2) described in the first embodiment together with the server state management function described above.

以下、第3の実施の形態における統合制御部について詳細に説明する。   Hereinafter, the integrated control unit in the third embodiment will be described in detail.

(統合制御部)
図18は、第3の実施の形態における統合制御部100bの機能的な構成の一例を示すブロック図である。統合制御部100bは、第2の実施の形態における統合制御部100a(図15を参照)と比べて、保留制御部170が追加されると共に、変更された要求判断部110b、連携サービス部150b、及びサーバ状態管理部160bを備える。
(Integrated control unit)
FIG. 18 is a block diagram illustrating an example of a functional configuration of the integrated control unit 100b according to the third embodiment. The integrated control unit 100b is different from the integrated control unit 100a (see FIG. 15) in the second embodiment in that a hold control unit 170 is added and the changed request determination unit 110b, cooperation service unit 150b, And a server state management unit 160b.

保留制御部170は、特定の動作モードにおいて一つ以上のアクセス要求を蓄積し、前記動作モードが解除されるとき、前記アクセス要求を蓄積された順に取り出してデータベース制御部310へ発行する部であり、アクセス要求を蓄積して蓄積された順に出力する要求保留キュー171を有する。   The hold control unit 170 is a unit that accumulates one or more access requests in a specific operation mode, and when the operation mode is canceled, takes out the access requests in the order of accumulation and issues them to the database control unit 310. And a request hold queue 171 for accumulating access requests and outputting them in the order of accumulation.

図19は、要求保留キュー171に蓄積されているアクセス要求の一例を示す図である。要求保留キュー171は、アクセス要求ごとに、要求ID172、及び要求内容173を保持している。   FIG. 19 is a diagram illustrating an example of access requests stored in the request hold queue 171. The request hold queue 171 holds a request ID 172 and a request content 173 for each access request.

保留制御部170は、例えばシステム管理者から図示しないシステムコンソール等を介して、前記特定の動作モードの開始と解除とを指示される。説明の便宜上、前記特定の動作モードを保留モードと呼び、保留モードの開始及び解除の指示を、それぞれ保留指示及び再開指示と呼ぶ。   The hold controller 170 is instructed by the system administrator to start and release the specific operation mode via a system console (not shown), for example. For convenience of explanation, the specific operation mode is called a hold mode, and instructions for starting and releasing the hold mode are called a hold instruction and a resume instruction, respectively.

サーバ状態管理部160bは、保留制御部170からの制御に応じて、自バックエンドサーバのサーバ状態を’保留中’及び’運用中’に更新する機能を、サーバ状態管理部160に追加してなる。   The server state management unit 160b adds a function to the server state management unit 160 to update the server state of its own backend server to “pending” and “in operation” in accordance with control from the holding control unit 170. Become.

要求判断部110bは、自バックエンドサーバのサーバ状態が’保留中’と示されている間、フロントエンド通信制御部210からのアクセス要求の受け入れを制限する(例えば、ダンプコマンド等の参照専用コマンドのみを受け入れる)機能を、要求判断部110aに追加してなる。   The request determination unit 110b restricts acceptance of access requests from the front-end communication control unit 210 while the server status of the own back-end server is indicated as “pending” (for example, a reference-only command such as a dump command). (Accepting only) is added to the request determination unit 110a.

連携サービス部150bは、自バックエンドサーバのサーバ状態が’保留中’と示されている間、他のバックエンドサーバから転送されたアクセス要求を、データベース制御部310へ発行する代わりに、保留制御部170の要求保留キュー171に蓄積するように、連携サービス部150を変更してなる。そして、連携サービス部150bは、この変更点を除いて連携サービス部150と同様に動作する。   While the server status of the own backend server is indicated as “pending”, the cooperation service unit 150b does not issue an access request transferred from another backend server to the database control unit 310, but holds the hold control. The cooperation service unit 150 is changed so as to be accumulated in the request hold queue 171 of the unit 170. And the cooperation service part 150b operate | moves similarly to the cooperation service part 150 except this change.

図20は、連携サービス部150bによって行われる連携サービス処理の一例を示すフローチャートである。   FIG. 20 is a flowchart illustrating an example of the cooperative service process performed by the cooperative service unit 150b.

連携サービス部150bは、アクセス要求が受信された場合(S402でアクセス要求)、自バックエンドサーバのサーバ状態が’保留中’であれば(S431でYES)、受信されたアクセス要求を要求保留キュー171に登録し(S432)、’保留中’でない場合にのみ(S431でNO)、受信されたアクセス要求をデータベース制御部310へ発行する(S433)。その他の動作、特に占有に関する動作については、図10のフローチャートに示される連携サービス部150の動作と同一である。   When the access request is received (access request in S402) and the server state of the backend server is “pending” (YES in S431), the cooperation service unit 150b sends the received access request to the request hold queue. 171 is registered (S432), and only when it is not “pending” (NO in S431), the received access request is issued to the database control unit 310 (S433). Other operations, particularly operations related to occupation, are the same as the operations of the cooperative service unit 150 shown in the flowchart of FIG.

このように、連携サービス部150bは、保留中にも、占有に関する処理を運用中と変わらずに行うことから、保留中に受信されたアクセス要求は、運用中であれば実行されていた順序、つまりデータの同期維持に必要な順序通りに、要求保留キュー171に蓄積される。   In this way, since the cooperation service unit 150b performs the processing related to the occupation even during the hold without changing from the operation, the access requests received during the hold are executed in the order in which they were executed, That is, the requests are accumulated in the request hold queue 171 in the order required for maintaining data synchronization.

図21は、保留制御部170によって行われる保留制御処理の一例を示すフローチャートである。   FIG. 21 is a flowchart illustrating an example of a hold control process performed by the hold control unit 170.

保留制御部170は、保留指示を受け付けると(S701で保留)、自バックエンドサーバについてサーバ状態テーブル161のサーバ状態163を’保留中’に更新する(S702)。   When the hold control unit 170 receives a hold instruction (holding in S701), the hold control unit 170 updates the server status 163 of the server status table 161 to “pending” for the own backend server (S702).

また、再開指示を受け付けると(S701で再開)、要求保留キュー171が空になるまで(S703でNO)、要求保留キュー171から先頭のアクセス要求を取り出し(S704)、取り出したアクセス要求をデータベース制御部310へ発行する(S705)処理を繰り返す。   When a resumption instruction is accepted (resume in S701), the first access request is taken out from the request hold queue 171 until the request hold queue 171 becomes empty (NO in S703), and the fetched access request is database controlled. The process of issuing to the unit 310 (S705) is repeated.

そして、要求保留キュー171が空になれば(S703でYES)、自バックエンドサーバについてサーバ状態テーブル161のサーバ状態163を’運用中’に更新する(S706)。   If the request hold queue 171 becomes empty (YES in S703), the server status 163 of the server status table 161 is updated to “in operation” for the own backend server (S706).

この構成によれば、保留モードが解除されるとき、データの同期維持に必要な順序通りに蓄積された一つ以上のアクセス要求を単に蓄積された順に実行することによって、迅速にデータの同期を回復できる。そして、データの同期回復のために他のデータベースからデータを複写する必要がないため、データベースの規模が大きいほど、データの同期回復の迅速化に大きな効果が得られる。   According to this configuration, when the hold mode is released, data synchronization can be performed quickly by simply executing one or more access requests stored in the order required for maintaining data synchronization in the order in which they are stored. I can recover. Since there is no need to copy data from another database for data synchronization recovery, the larger the database size, the greater the effect of speeding up data synchronization recovery.

これにより、例えば、データベースのメンテナンスを行うためにデータの更新を一時的に保留しその後回復するような場合に、極めて高い実用的価値が発揮される。   Thereby, for example, when a data update is temporarily suspended for database maintenance and then recovered, extremely high practical value is exhibited.

(変形例)
ここまでの実施の形態では、フロントエンドサーバとバックエンドサーバとの通信、及びバックエンドサーバ同士の通信を、一つのネットワークを介して行う例について説明した。しかしながら、バックエンドサーバ同士の通信を、フロントエンドサーバとバックエンドサーバとの通信から分離された専用のネットワークを介して行う変形も考えられる。以下、そのような変形について説明する。
(Modification)
In the embodiments so far, the example in which the communication between the front-end server and the back-end server and the communication between the back-end servers are performed via one network has been described. However, a modification in which communication between back-end servers is performed via a dedicated network separated from communication between the front-end server and the back-end server is also conceivable. Hereinafter, such modifications will be described.

図22は、本発明の変形例におけるデータ制御システム10aを含む分散データベースシステムの一例を示す機器構成図である。分散データベースシステム1aは、第1の実施の形態で説明した分散データベースシステム1(図1を参照)と比べて、バックエンドサーバ11a、12a、…、1naを接続する専用のネットワーク21を備える点で異なる。   FIG. 22 is a device configuration diagram illustrating an example of a distributed database system including the data control system 10a according to the modification of the present invention. Compared to the distributed database system 1 (see FIG. 1) described in the first embodiment, the distributed database system 1a includes a dedicated network 21 for connecting the back-end servers 11a, 12a,. Different.

バックエンドサーバ11a、12a、…、1naは、ネットワーク20を通してフロントエンドサーバと通信し、ネットワーク21を通して他のバックエンドサーバと通信する。   The back end servers 11 a, 12 a,..., 1 na communicate with the front end server through the network 20 and communicate with other back end servers through the network 21.

図23は、バックエンドサーバ11aの機能的な構成の一例を示すブロック図である。バックエンドサーバ11aと共に示されるデータベース31は、第1の実施の形態と同様である。   FIG. 23 is a block diagram illustrating an example of a functional configuration of the back-end server 11a. The database 31 shown together with the back-end server 11a is the same as that in the first embodiment.

バックエンドサーバ11aは、バックエンドサーバ11におけるネットワークアダプタ部200に代えて、2つのネットワークアダプタ部201、202を備える。   The back end server 11 a includes two network adapter units 201 and 202 instead of the network adapter unit 200 in the back end server 11.

ネットワークアダプタ部201は、ネットワーク20と物理的に接続し、フロントエンド通信制御部210は、ネットワークアダプタ部201を介してフロントエンドサーバとの通信を実行する。   The network adapter unit 201 is physically connected to the network 20, and the front end communication control unit 210 executes communication with the front end server via the network adapter unit 201.

ネットワークアダプタ部202は、ネットワーク21と物理的に接続し、バックエンド通信制御部220は、ネットワークアダプタ部202を介してバックエンドサーバとの通信を実行する。   The network adapter unit 202 is physically connected to the network 21, and the back end communication control unit 220 executes communication with the back end server via the network adapter unit 202.

この構成によれば、バックエンドサーバ同士は、フロントエンドサーバとバックエンドサーバとの間の通信トラフィックに影響されることなく通信を行うことができる。そのため、データ制御システム10と比べると、例えば占有要求、占有変更、占有応答、アクセス要求といったバックエンドサーバ同士の通信がより安定的に行われることとなり、もって、データ制御システム10aはより高い安定性を発揮することができる。   According to this configuration, the back-end servers can communicate with each other without being affected by communication traffic between the front-end server and the back-end server. Therefore, compared with the data control system 10, for example, communication between back-end servers such as occupancy request, occupancy change, occupancy response, and access request is performed more stably, and thus the data control system 10a has higher stability. Can be demonstrated.

本発明のデータ制御装置は、データの同期が維持されるべき複数のデータベースを制御するデータ制御システムに利用でき、とりわけ、前記複数のデータベース間でのデータの同期を低コストかつ効率的に維持する装置として有用である。   INDUSTRIAL APPLICABILITY The data control apparatus of the present invention can be used for a data control system that controls a plurality of databases in which data synchronization is to be maintained, and in particular, maintains data synchronization between the plurality of databases at low cost and efficiently. Useful as a device.

第1の実施の形態におけるデータ制御システムの一例を示す機器構成図である。It is an apparatus block diagram which shows an example of the data control system in 1st Embodiment. バックエンドサーバの機能的な構成の一例を示すブロック図である。It is a block diagram which shows an example of a functional structure of a back end server. 統合制御部の機能的な構成の一例を示すブロック図である。It is a block diagram which shows an example of a functional structure of an integrated control part. 連携マスタ部の機能的な構成の一例を示すブロック図である。It is a block diagram which shows an example of a functional structure of a cooperation master part. 占有受付レジスタに保持されている占有受付情報、及び直前占有情報の一例を示す図である。It is a figure which shows an example of the occupation reception information currently hold | maintained at the occupation reception register, and the last occupation information. 占有一覧テーブルに保持されている占有一覧情報の一例を示す図である。It is a figure which shows an example of the occupation list information currently hold | maintained at the occupation list table. 統合制御処理の一例を示すフローチャートである。It is a flowchart which shows an example of an integrated control process. 連携マスタ処理の一例を示すフローチャートである。It is a flowchart which shows an example of a cooperation master process. 占有試行処理の一例を示すフローチャートである。It is a flowchart which shows an example of an occupation trial process. 連携サービス処理の一例を示すフローチャートである。It is a flowchart which shows an example of a cooperation service process. 通常のデータ同期動作の一例を示すシーケンスチャートである。It is a sequence chart which shows an example of normal data synchronous operation | movement. 占有リトライ動作の一例を示すシーケンスチャートである。It is a sequence chart which shows an example of an exclusive retry operation | movement. 占有変更動作の一例を示すシーケンスチャートである。It is a sequence chart which shows an example of an occupation change operation | movement. 通信プロトコル選択処理の一例を示すフローチャートである。It is a flowchart which shows an example of a communication protocol selection process. 第2の実施の形態における統合制御部の機能的な構成の一例を示すブロック図である。It is a block diagram which shows an example of a functional structure of the integrated control part in 2nd Embodiment. サーバ状態テーブルに保持されているサーバ状態情報の一例を示す図である。It is a figure which shows an example of the server status information currently hold | maintained at the server status table. サーバ状態管理処理の一例を示すフローチャートである。It is a flowchart which shows an example of a server state management process. 第3の実施の形態における統合制御部の機能的な構成の一例を示すブロック図である。It is a block diagram which shows an example of a functional structure of the integrated control part in 3rd Embodiment. 要求保留キューに蓄積されているアクセス要求の一例を示す図である。It is a figure which shows an example of the access request accumulate | stored in the request pending | holding queue. 保留応答を行う連携サービス処理の一例を示すフローチャートである。It is a flowchart which shows an example of the cooperation service process which performs a pending | holding response. 保留制御処理の一例を示すフローチャートである。It is a flowchart which shows an example of a pending | holding control process. 変形例におけるデータ制御システムの構成の一例を示す機器構成図である。It is an apparatus block diagram which shows an example of a structure of the data control system in a modification. 変形例におけるバックエンドサーバの機能的な構成の一例を示すブロック図である。It is a block diagram which shows an example of a functional structure of the back end server in a modification. 従来のデータ制御システムの構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the conventional data control system.

符号の説明Explanation of symbols

1、1a、9 分散データベースシステム
10、10a データ制御システム
11、12、…、1n、11a、12a、…、1na バックエンドサーバ
20、21 ネットワーク
31、32、…、3n データベース
41、42、…、4m フロントエンドサーバ
61、62、63 バックエンドサーバ
66、67、68 データベース
71 レプリケーションサーバ
80 ネットワーク
91、92 フロントエンドサーバ
100、100a、100b 統合制御部
110、110a、110b 要求判断部
120 単独アクセス部
130、130a 連携マスタ部
131 採番部
132 占有試行部
133 占有一覧テーブル
134 対象要求ID
135 応答サーバID
136 受付要求ID
138 要求発行部
140 占有受付レジスタ
141、143 要求サーバID
142、144 要求番号
150、150b 連携サービス部
160、160b サーバ状態管理部
161 サーバ状態テーブル
162 サーバID
163 サーバ状態
164 受信フラグ
170 保留制御部
171 要求保留キュー
172 要求ID
173 要求内容
200、201、202 ネットワークアダプタ部
210 フロントエンド通信制御部
220 バックエンド通信制御部
300 データ記憶部
310 データベース制御部
400 タイマ部
1, 1a, 9 Distributed database system 10, 10a Data control system 11, 12, ... 1n, 11a, 12a, ... 1na Backend server 20, 21 Network 31, 32, ... 3n Database 41, 42, ..., 4m Front-end server 61, 62, 63 Back-end server 66, 67, 68 Database 71 Replication server 80 Network 91, 92 Front-end server 100, 100a, 100b Integrated control unit 110, 110a, 110b Request determination unit 120 Single access unit 130 , 130a Cooperation master part 131 Numbering part 132 Occupancy trial part 133 Occupancy list table 134 Target request ID
135 Response server ID
136 Acceptance request ID
138 Request issuing unit 140 Occupancy acceptance register 141, 143 Request server ID
142, 144 Request number 150, 150b Cooperation service unit 160, 160b Server status management unit 161 Server status table 162 Server ID
163 Server status 164 Receive flag 170 Hold control unit 171 Request hold queue 172 Request ID
173 Request content 200, 201, 202 Network adapter unit 210 Front-end communication control unit 220 Back-end communication control unit 300 Data storage unit 310 Database control unit 400 Timer unit

Claims (14)

データの同期が維持されるべき複数のデータベースをそれぞれ制御する複数のデータ制御装置の一つであって、前記複数のデータ制御装置には優先順位が定められており、
前記複数のデータベース間でのデータの同期制御を必要とするアクセス要求がクライアントから受信されると、他の全てのデータ制御装置の占有を試み、
前記占有に成功した場合、他の全てのデータ制御装置へ前記アクセス要求を転送すると共に、自らのデータベースに対して前記アクセス要求を発行し、
前記占有に成功しない場合、前記優先順位に応じて占有の変更先となるべき優先データ制御装置を特定し、前記特定された優先データ制御装置を示す占有変更を他のデータ制御装置へ送信すると共に、前記占有を断念して前記優先データ制御装置による占有を受諾する連携マスタ手段と、
自データ制御装置を現在占有しているデータ制御装置から占有変更が受信されると、現在の占有を破棄して前記受信された占有変更によって示される優先データ制御装置による占有を受諾する連携サービス手段と
を備えることを特徴とするデータ制御装置。
One of a plurality of data control devices that respectively control a plurality of databases in which data synchronization is to be maintained, the plurality of data control devices having a priority order,
When an access request that requires synchronous control of data among the plurality of databases is received from a client , it tries to occupy all other data control devices,
The case of a successful occupancy, transfers the pre Kia access request to all the other data controller issues a Kia access requests previously for its database,
If the occupancy is not successful, the priority data control device to be the occupancy change destination is specified according to the priority, and the occupancy change indicating the specified priority data control device is transmitted to another data control device. A cooperation master means for giving up the occupation and accepting the occupation by the priority data control device ;
When an occupancy change is received from a data control apparatus that currently occupies its own data control apparatus, a cooperative service means that discards the current occupancy and accepts the occupancy by the priority data control apparatus indicated by the received occupancy change A data control device comprising:
前記データ制御装置は、さらに、
自らを占有しているデータ制御装置を示す占有受付情報を保持している占有受付レジスタを備え、
前記連携マスタ手段は、自データ制御装置を示すように前記占有受付情報を更新した後、他の全てのデータ制御装置へ占有要求を送信することによって前記占有を試み、自らが送信した占有要求に対して他の全てのデータ制御装置から占有受諾応答が受信されると、前記占有に成功した場合の処理を行い
前記連携サービス手段は、他のデータ制御装置から占有要求受信されたとき、前記占有受付情報がどのデータ制御装置からも占有されていないことを示す場合、前記他のデータ制御装置を示すように前記占有受付情報を更新すると共に占有受諾応答を返信し、その他の場合、占有拒否応答を返信する
ことを特徴とする請求項1に記載のデータ制御装置。
The data control device further includes:
An occupancy reception register holding occupancy reception information indicating a data control device that occupies itself is provided,
It said linkage master unit, after updating the occupancy reception information to indicate its own data control unit attempts the occupation by sending occupancy request to all other data controller, occupancy request itself is transmitted when occupied acceptance response from all the other data controller Ru received for, performs processing upon successful the occupancy,
The cooperative service means, when occupancy request from other data control device has been received, indicating that it is not also occupied by the occupancy reception information which the data control device, as shown the other data controller The data control apparatus according to claim 1, wherein the exclusive acceptance information is updated and an exclusive acceptance response is returned, and an exclusive rejection response is returned in other cases.
前記データ制御装置によって受信される占有拒否応答は、前記占有拒否応答を送信したデータ制御装置を占有しているデータ制御装置である競合データ制御装置を示し、  The occupancy rejection response received by the data control device indicates a contention data control device that is a data control device occupying the data control device that transmitted the occupancy rejection response,
前記連携マスタ手段は、自らが送信した占有要求に対して占有拒否応答が受信された場合、前記受信された占有拒否応答によって示される競合データ制御装置の優先順位と自データ制御装置の優先順位との比較に基づいて、占有の変更先となるべき優先データ制御装置を特定し、前記特定された優先データ制御装置を示す占有変更を送信すると共に、前記優先データ制御装置を示すように前記占有受付情報を更新し、  The cooperation master means, when an occupancy rejection response is received for the occupancy request transmitted by itself, the priority order of the contention data control device and the priority order of the own data control device indicated by the received occupancy rejection response Based on the comparison, the priority data control device that should be the occupancy change destination is specified, the occupancy change indicating the specified priority data control device is transmitted, and the occupancy acceptance is indicated to indicate the priority data control device Update information,
前記連携サービス手段は、前記占有受付情報によって示されるデータ制御装置から占有変更が受信されると、前記受信された占有変更によって示される優先データ制御装置を示すように前記占有受付情報を更新すると共に、前記優先データ制御装置へ占有受諾応答を送信する  When the occupancy change is received from the data control device indicated by the occupancy acceptance information, the cooperative service unit updates the occupancy acceptance information to indicate the priority data control device indicated by the received occupancy change. And send an exclusive acceptance response to the priority data control device
ことを特徴とする請求項2に記載のデータ制御装置。  The data control apparatus according to claim 2.
前記連携マスタ手段は、自らが送信した占有要求に対して他の全てのデータ制御装置から占有許諾応答又は占有拒否応答が受信された後、  The cooperation master means, after the exclusive permission response or exclusive rejection response is received from all other data control devices in response to the exclusive request transmitted by itself,
自データ制御装置及び前記受信された占有拒否応答によって示される競合データ制御装置がそれぞれ自分以外のデータ制御装置を占有しているか否かを、受信された占有許諾応答又は占有拒否応答に基づいて判断し、  Based on the received occupancy permission response or occupancy refusal response, it is determined whether the own data control device and the competing data control device indicated by the received occupancy rejection response occupy other data control devices. And
前記受信された占有拒否応答によって示される競合データ制御装置のうち、自分以外のデータ制御装置を占有していて、かつ優先順位が自データ制御装置の優先順位よりも高い一つを前記優先データ制御装置として特定する  Among the competing data control devices indicated by the received occupancy rejection response, one of the data control devices other than its own is occupied, and the priority is higher than the priority of its own data control device. Identify as device
ことを特徴とする請求項3に記載のデータ制御装置。  The data control device according to claim 3.
前記データ制御装置によって受信される占有拒否応答は、前記占有拒否応答を送信したデータ制御装置において継続中の占有を識別し、  The occupancy rejection response received by the data control device identifies an occupancy ongoing in the data control device that transmitted the occupancy rejection response,
前記占有受付レジスタは、さらに、自データ制御装置を含む全てのデータ制御装置に共通して直前に受け入れられた占有を識別する直前占有情報を保持し、  The occupancy acceptance register further holds immediately preceding occupancy information that identifies the occupancy accepted immediately before in common with all data control devices including the own data control device,
前記連携マスタ手段は、自らが送信した占有要求に対して占有拒否応答が受信された場合、前記受信された占有拒否応答によって識別される占有が前記直前占有情報によって識別される占有と同一であれば、前記占有拒否応答を送信したデータ制御装置へ前記占有要求を再送信する  When the exclusive master response is received in response to the exclusive request transmitted by the cooperation master unit, the occupation identified by the received exclusive reject response is the same as the exclusive identified by the previous exclusive information. For example, the occupancy request is retransmitted to the data control apparatus that has transmitted the occupancy rejection response.
ことを特徴とする請求項3に記載のデータ制御装置。  The data control device according to claim 3.
前記連携マスタ手段は、自らの占有を前記優先データ制御装置へ変更した後、変更前の自らの占有を再度試みる
ことを特徴とする請求項に記載のデータ制御装置。
The data control apparatus according to claim 1 , wherein the cooperation master unit re-attempts its own occupation before the change after changing its own occupation to the priority data control apparatus.
前記連携マスタ手段、及び前記連携サービス手段は、送信されるデータの多寡、再送信か否か、送信されるデータが応答か否かのうちの少なくとも一つに応じて、他のデータ制御装置との通信に用いる通信プロトコルを変更する
ことを特徴とする請求項1に記載のデータ制御装置。
The cooperation master unit and the cooperation service unit may be configured to communicate with other data control devices according to at least one of the amount of data to be transmitted, whether to retransmit, and whether to transmit data as a response. The data control apparatus according to claim 1, wherein a communication protocol used for the communication is changed.
前記データ制御装置は、さらに、
データ受信の有無を所定時間監視することによって他のデータ制御装置の故障を検出するサーバ状態管理手段を備え、
前記連携マスタ手段は、故障と検出されたデータ制御装置を除外して、前記占有の成否を判断する
ことを特徴とする請求項1に記載のデータ制御装置。
The data control device further includes:
Server status management means for detecting a failure of another data control device by monitoring the presence or absence of data reception for a predetermined time,
The data control apparatus according to claim 1, wherein the cooperation master unit excludes the data control apparatus detected as a failure and determines whether or not the occupation is successful.
前記データ制御装置は、さらに、
特定の動作モードにおいて一つ以上のアクセス要求を蓄積し、前記動作モードが解除されるとき、前記アクセス要求を蓄積された順に取り出して自らのデータベースに対して発行する保留制御手段を備え、
前記連携サービス手段は、前記動作モードにおいて、他のデータ制御装置から受信されたアクセス要求を自らのデータベースに対して発行する代わりに前記保留制御手段に蓄積する
ことを特徴とする請求項1に記載のデータ制御装置。
The data control device further includes:
One or more access requests are accumulated in a specific operation mode, and when the operation mode is released, the access request is provided in a hold control unit that takes out the access requests in the order of accumulation and issues them to its own database,
The said cooperation service means accumulate | stores in the said hold | maintenance control means instead of issuing the access request received from the other data control apparatus with respect to its own database in the said operation mode. Data controller.
前記データ制御装置は、前記複数のデータ制御装置のみを接続する専用ネットワークへの接続手段を備える
ことを特徴とする請求項1に記載のデータ制御装置。
The data control apparatus according to claim 1, wherein the data control apparatus includes a connection unit to a dedicated network that connects only the plurality of data control apparatuses.
データの同期が維持されるべき複数のデータベースを制御するデータ制御システムであって、
前記複数のデータベースそれぞれに対応して請求項1に記載のデータ制御装置を備える
ことを特徴とするデータ制御システム。
A data control system for controlling a plurality of databases in which data synchronization is to be maintained,
A data control system comprising the data control device according to claim 1 corresponding to each of the plurality of databases.
データの同期が維持されるべき複数のデータベースにそれぞれ対応する複数のデータ制御装置の一つにおいて用いられるデータ制御方法であって、前記複数のデータ制御装置には優先順位が定められており、
前記複数のデータベース間でのデータの同期制御を必要とするアクセス要求がクライアントから受信されると、他の全てのデータ制御装置の占有を試み、
前記占有に成功した場合、他の全てのデータ制御装置へ前記アクセス要求を転送すると共に、自らのデータベースに対して前記アクセス要求を発行し、
前記占有に成功しない場合、前記優先順位に応じて占有の変更先となるべき優先データ制御装置を特定し、前記特定された優先データ制御装置を示す占有変更を他のデータ制御装置へ送信すると共に、前記占有を断念して前記優先データ制御装置による占有を受諾する連携マスタステップと、
自データ制御装置を現在占有しているデータ制御装置から占有変更が受信されると、現在の占有を破棄して前記受信された占有変更によって示される優先データ制御装置による占有を受諾する連携サービスステップと
を含むことを特徴とするデータ制御方法。
A data control method used in one of a plurality of data control devices respectively corresponding to a plurality of databases in which data synchronization is to be maintained, wherein the plurality of data control devices are prioritized,
When an access request that requires synchronous control of data among the plurality of databases is received from a client , it tries to occupy all other data control devices,
The case of a successful occupancy, transfers the pre Kia access request to all the other data controller issues a Kia access requests previously for its database,
If the occupancy is not successful, the priority data control device to be the occupancy change destination is specified according to the priority, and the occupancy change indicating the specified priority data control device is transmitted to another data control device. A cooperation master step of giving up the occupation and accepting the occupation by the priority data control device ;
When an occupation change is received from a data control apparatus that currently occupies its own data control apparatus, the cooperation service step of discarding the current occupation and accepting the occupation by the priority data control apparatus indicated by the received occupation change A data control method comprising: and.
データの同期が維持されるべき複数のデータベースにそれぞれ対応する複数のデータ制御装置の一つを動作させるためのコンピュータ実行可能なプログラムであって、前記複数のデータ制御装置には優先順位が定められており、
前記複数のデータベース間でのデータの同期制御を必要とするアクセス要求がクライアントから受信されると、他の全てのデータ制御装置の占有を試み、
前記占有に成功した場合、他の全てのデータ制御装置へ前記アクセス要求を転送すると共に、自らのデータベースに対して前記アクセス要求を発行し、
前記占有に成功しない場合、前記優先順位に応じて占有の変更先となるべき優先データ制御装置を特定し、前記特定された優先データ制御装置を示す占有変更を他のデータ制御装置へ送信すると共に、前記占有を断念して前記優先データ制御装置による占有を受諾する連携マスタステップと、
自データ制御装置を現在占有しているデータ制御装置から占有変更が受信されると、現在の占有を破棄して前記受信された占有変更によって示される優先データ制御装置による占有を受諾する連携サービスステップと
をコンピュータに実行させることを特徴とするプログラム。
A computer-executable program for operating one of a plurality of data control devices respectively corresponding to a plurality of databases in which data synchronization is to be maintained, wherein the plurality of data control devices are prioritized. And
When an access request that requires synchronous control of data among the plurality of databases is received from a client , it tries to occupy all other data control devices,
The case of a successful occupancy, transfers the pre Kia access request to all the other data controller issues a Kia access requests previously for its database,
If the occupancy is not successful, the priority data control device to be the occupancy change destination is specified according to the priority, and the occupancy change indicating the specified priority data control device is transmitted to another data control device. A cooperation master step of giving up the occupation and accepting the occupation by the priority data control device ;
When an occupation change is received from a data control apparatus that currently occupies its own data control apparatus, the cooperation service step of discarding the current occupation and accepting the occupation by the priority data control apparatus indicated by the received occupation change A program characterized by causing a computer to execute.
請求項13に記載のプログラムを記憶していることを特徴とする、コンピュータ読み取り可能な記録媒体。   A computer-readable recording medium storing the program according to claim 13.
JP2005352447A 2005-12-06 2005-12-06 Data control apparatus, system, method, and program Expired - Fee Related JP3823169B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005352447A JP3823169B1 (en) 2005-12-06 2005-12-06 Data control apparatus, system, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005352447A JP3823169B1 (en) 2005-12-06 2005-12-06 Data control apparatus, system, method, and program

Publications (2)

Publication Number Publication Date
JP3823169B1 true JP3823169B1 (en) 2006-09-20
JP2007156916A JP2007156916A (en) 2007-06-21

Family

ID=37101301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005352447A Expired - Fee Related JP3823169B1 (en) 2005-12-06 2005-12-06 Data control apparatus, system, method, and program

Country Status (1)

Country Link
JP (1) JP3823169B1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5023047B2 (en) * 2008-12-02 2012-09-12 株式会社日立製作所 Database management method, database management program, and database reception device
JP5536568B2 (en) 2010-07-01 2014-07-02 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and program for aggregating and processing transactions
JP5703375B2 (en) * 2011-05-26 2015-04-15 株式会社日立製作所 Multiplexing system, method, and program
JP5900096B2 (en) * 2012-03-28 2016-04-06 富士通株式会社 Replication system, replication program, and replication configuration reconstruction method
JP6043687B2 (en) * 2013-07-02 2016-12-14 日本電信電話株式会社 Server / client system
CN113703308A (en) * 2021-08-27 2021-11-26 深圳市新威尔电子有限公司 Multi-machine cooperative control method

Also Published As

Publication number Publication date
JP2007156916A (en) 2007-06-21

Similar Documents

Publication Publication Date Title
CN100591031C (en) Methods and apparatus for implementing a high availability fibre channel switch
JP3823169B1 (en) Data control apparatus, system, method, and program
CN110297801B (en) System and method for just-in-one transaction semantics of transaction system based on fault-tolerant FPGA
JP4301849B2 (en) Information processing method and its execution system, its processing program, disaster recovery method and system, storage device for executing the processing, and its control processing method
US8375001B2 (en) Master monitoring mechanism for a geographical distributed database
US6934247B2 (en) Recovery following process or system failure
US5878056A (en) Message transfer in a communication network
FI101432B (en) Fault-tolerant computer system
CN100553235C (en) Improve the availability and the scalability of messaging system with the application programs transparent way
JP2003263280A (en) Data synchronization of multiple remote storage
US20130201821A1 (en) Communication system, control device, node, processing rule setting method and program
JP5982842B2 (en) Computer fault monitoring program, method, and apparatus
EP2144167B1 (en) Remote file system, terminal device, and server device
CN101399824B (en) Method, system and router realizing elegant restart of route information protocol
JP2010033398A (en) Acting-proxy system including acting system for processing transaction and proxy system being backup system for the acting system
KR20150068317A (en) Method of failover for network device in software defined network environment
JP2017134772A (en) License management system, client device, and application program
US7564860B2 (en) Apparatus and method for workflow-based routing in a distributed architecture router
JP2013161252A (en) Redundant computer control program, method, and device
JP2006338145A (en) Multiplex database system, synchronization method thereof, intermediation device and intermediation program
JP2013206072A (en) Data matching system, data matching method, and data matching program
US20020194276A1 (en) Distributed system and multiplexing control method for the system
JP3341637B2 (en) Terminal state management method in transaction processing system and computer-readable recording medium
JP3006469B2 (en) Message double feed check system
US20160006660A1 (en) Communication control method, information processing apparatus, and storage medium

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090707

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120707

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130707

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees