JP3823169B1 - Data control apparatus, system, method, and program - Google Patents
Data control apparatus, system, method, and program Download PDFInfo
- 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
Links
Images
Abstract
【課題】データの同期維持に関する性能及び信頼性の面でのボトルネックがないデータ制御装置を提供する。
【解決手段】データの同期が維持されるべき複数のデータベースをそれぞれ制御する複数のデータ制御装置の一つに備えられる統合制御部100は、クライアントから発行された第1アクセス要求について前記複数のデータベース間でのデータの同期制御が必要か否かを判断する要求判断部110と、不要と判断された場合、自らのデータベースへ前記第1アクセス要求を発行する単独アクセス部120と、必要と判断された場合、他の全てのデータ制御装置を占有し、前記第1アクセス要求を他の全てのデータ制御装置へ転送すると共に自らのデータベースへ発行する連携マスタ部130と、他のデータ制御装置から転送された第2アクセス要求を自らのデータベースへ発行する連携サービス部150とを備える。
【選択図】図3A 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
フロントエンドサーバ91、92は、二重化されていて、何れか一方が動作し、図示しないクライアントから発行されたアクセス要求を、例えばアクセス負荷の分散を図って、バックエンドサーバ61、62、63の一つへ転送する。
The front-
バックエンドサーバ61、62、63は、それぞれ並列に動作し、フロントエンドサーバ91、92からアクセス要求を受信すると、そのアクセス要求についてデータベース間でのデータの同期制御が必要か否かを判断する。この判断は、例えば、そのアクセス要求がデータの参照のみに関するものか、データの追加、更新、又は削除に関するものかによって行われる。
The back-
そして、不要と判断されると、そのアクセス要求を自らのデータベースのみで実行し、アクセス要求を発行したクライアントへフロントエンドサーバを介して実行結果を返却する。必要と判断されると、そのアクセス要求をレプリケーションサーバ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
レプリケーションサーバ71は、アクセス要求を受信すると、そのアクセス要求をバックエンドサーバ61、62、63へ送信する。バックエンドサーバ61、62、63は、レプリケーションサーバ71からアクセス要求を受信すると、そのアクセス要求を自らのデータベースでそれぞれ実行し、実行結果をレプリケーションサーバ71へ返却する。レプリケーションサーバ71は、全てのバックエンドサーバから実行結果を受信すると、アクセス要求を転送したバックエンドサーバへその実行結果を送信する。実行結果を受信したバックエンドサーバは、アクセス要求を発行したクライアントへフロントエンドサーバを介してその実行結果を返却する。
When the
この構成によれば、データの同期(ここでは特に、データ内容の一致を意味する)を維持するために全てのバックエンドサーバで実行されるべきアクセス要求の実行順序が、レプリケーションサーバ71ただ一箇所で管理される。レプリケーションサーバ71は、例えば図示しないデータキューを用いて、バックエンドサーバ61、62、63から受信したアクセス要求をそのデータキューに受信順に蓄積すると共に、蓄積順にアクセス要求を取り出して全てのバックエンドサーバへ送信することによって、アクセス要求の実行順序の管理を行う。
According to this configuration, the
その結果、全てのバックエンドサーバにおいて、レプリケーションサーバ71によって管理される順序でアクセス要求が実行されるので、バックエンドサーバ間に実行順序の違いによる実行結果の不一致が生じることがなく、全てのデータベースでデータの同期が維持される。
As a result, since access requests are executed in the order managed by the
このようにして、従来のデータベースシステムは、アクセス負荷の分散とデータの同期の維持とを達成している。
しかしながら、従来のデータベースシステムには、次のような問題がある。
第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
データ制御システム10は、データベース31、32、…、3nへのアクセスを制御すると共に、データの同期を維持管理するシステムであって、バックエンドサーバ11、12、…、1nから構成される。ここで、バックエンドサーバ11、12、…、1nが、請求項に言うデータ制御装置の一例である。
The
フロントエンドサーバ41、42、…、4mは、独立して並列に動作し、図示しないクライアントから発行されたアクセス要求をバックエンドサーバ11、12、…、1nの一つへ、例えば負荷分散を図って、転送するサーバ機能であり、例えばそれぞれ独立したコンピュータシステムを用いて実現される。このアクセス要求は、一例としてSQL(Structured Query Language)で記述されていてもよい。
The
バックエンドサーバ11、12、…、1nは、並列に動作し、フロントエンドサーバ41、42、…、4mからアクセス要求を受信すると、データの同期が維持されるように連携してデータベース31、32、…、3nへのアクセス処理を行うサーバ機能であり、例えばそれぞれ独立したコンピュータシステムを用いて実現される。
The back-
ここで、バックエンドサーバ11、12、…、1nには、固有のサーバIDと優先順位とが定められていて、バックエンドサーバ11、12、…、1nは、各バックエンドサーバのサーバIDと優先順位とを予め知っているものとする。
Here, unique server IDs and priorities are defined for the back-
データベース31、32、…、3nは、独立して並列に動作し、アクセス要求に応じてデータを蓄積し、操作し、出力する一般的なデータベース機能であり、例えばそれぞれ独立したコンピュータシステムを用いて実現されるか、バックエンドサーバ11、12、…、1nと同一のコンピュータシステムを用いて実現される。データベース31、32、…、3nが、それぞれバックエンドサーバ11、12、…、1nの一部分として実現される場合も、本発明に含まれる。
The
バックエンドサーバ12、…、1nはバックエンドサーバ11と同様であり、またデータベース32、…、3nはデータベース31と同様である。以下、バックエンドサーバ11とデータベース31とについて代表して説明する。
The
(バックエンドサーバ)
図2は、バックエンドサーバ11の機能的な構成の一例を示すブロック図である。図2には、バックエンドサーバ11と共に、データベース31が示される。
(Back-end server)
FIG. 2 is a block diagram illustrating an example of a functional configuration of the back-
バックエンドサーバ11は、統合制御部100、ネットワークアダプタ部200、フロントエンド通信制御部210、バックエンド通信制御部220、及びタイマ部400から構成される。
The
ネットワークアダプタ部200は、ネットワーク20に物理的に接続し、フロントエンド通信制御部210は、ネットワークアダプタ部200を介してフロントエンドサーバ41、42、…、4mとの通信を実行し、バックエンド通信制御部220は、ネットワークアダプタ部200を介してバックエンドサーバ12、…、1nとの通信を実行する。この通信は、例えば、IP(Internet Protocol)上のTCP(Transmission Control Protocol)及びUDP(User Datagram Protocol)の中から後述する基準で選択される一つを用いて行われるとしてもよい。
The
タイマ部400は、所定の時間の経過を統合制御部100へ通知する。
統合制御部100は、バックエンドサーバ11の全体の動作を制御する。統合制御部100は、例えば、バックエンドサーバ11を実現するコンピュータシステムが所定のプログラムを実行することによって果たされるソフトウェア機能であるとしてもよい。
The
The
(データベース)
データベース31は、データ記憶部300、及びデータベース制御部310から構成される。データベース31は、周知の技術を適宜用いて実現されるものとし、本発明はその内容を限定しないが、一例を挙げれば、データ記憶部300は、例えばハードディスク装置であり、データを物理的に記憶し、データベース制御部310は、例えばSQLインタプリタ機能であり、アクセス要求に従ってデータ記憶部300の内容を操作する。
(Database)
The
(統合制御部)
図3は、統合制御部100の機能的な構成の一例を示すブロック図である。
(Integrated control unit)
FIG. 3 is a block diagram illustrating an example of a functional configuration of the
統合制御部100は、要求判断部110、単独アクセス部120、連携マスタ部130、占有受付レジスタ140、及び連携サービス部150から構成される。
The
要求判断部110は、フロントエンドサーバ41、42、…、4mからフロントエンド通信制御部210を介してクライアントによって発行されたアクセス要求を受信すると、そのアクセス要求についてシステム全体でのデータ同期制御が必要か、言い換えれば、データベース31のみでそのアクセス要求を実行したとすれば他のデータベースとのデータの同期が失われるか否かを判断する。要求判断部110は、この判断を、例えば従来と同様に、そのアクセス要求がデータの参照のみに関するものか、データの追加、更新、又は削除に関するものかによって行ってもよい。
When the
そして、システム全体でのデータ同期制御が必要でない(つまり、データベース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
単独アクセス部120は、要求判断部110から引き渡されたアクセス要求をデータベース制御部310へ発行する。そして、データベース制御部310から実行結果を受け取ると、アクセス要求の発行元であるクライアントへフロントエンド通信制御部210を介してその実行結果を返却する。単独アクセス部120そのものは、本発明の主要部ではないため、これ以上詳しく説明しない。
The
連携マスタ部130は、まず、要求判断部110から引き渡されたアクセス要求について他の全てのバックエンドサーバ12、…、1nの占有を試みる。この占有の詳細については、後述する。連携マスタ部130は、占有に成功した場合、そのアクセス要求を他の全てのバックエンドサーバ12、…、1nへバックエンド通信制御部220を介して転送すると共に、データベース制御部310へ発行する。
First, the
バックエンドサーバ12、…、1nにおける連携サービス部は、そのアクセス要求を受信すると、自らのデータベース制御部へそのアクセス要求を発行し、自らのデータベースでの実行を終えると、アクセス応答を返信する。
Upon receiving the access request, the cooperation service unit in the back-
連携サービス部150は、このアクセス要求に応じた処理に代表されるように、他のバックエンドサーバから受信されるデータに応じた処理を行う。連携サービス部150は、このアクセス要求に応じた処理の他に、他のバックエンドサーバからの占有要求、占有変更、占有応答、及びアクセス応答に応じた処理を行うが、これらの処理については、それぞれ以下の関連する箇所で説明する。
The
なお、これらの処理は、データを受信する処理によって、受信されたデータに応じて並列起動されるとしてもよい。 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
図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
要求サーバID141はバックエンドサーバ11を占有しているバックエンドサーバを識別するサーバIDであり、要求番号142はそのバックエンドサーバにおいて個々のアクセス要求に一意に付与される番号である。
The
要求サーバID141と要求番号142との組み合わせを要求IDと呼ぶ。要求IDは、アクセス要求をデータ制御システム10の全体で一意に識別する。
A combination of the
占有受付情報は、バックエンドサーバ11がどのバックエンドサーバからも占有されていないことを、空値(例えばNULL、’OFF’など)で表す。
The occupation acceptance information indicates that the
直前占有情報は、占有受付情報によって示される占有要求が全てのバックエンドサーバによって受け入れられたことが分かったとき、その占有受付情報で更新される。これにより、直前占有情報は、バックエンドサーバ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
なお、アクセス要求の内容そのもの(例えば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
連携マスタ部130は、採番部131、占有試行部132、占有一覧テーブル133、及び要求発行部138から構成される。
The
採番部131は、要求判断部110からアクセス要求を受け取ると、バックエンドサーバ11で一意の番号を生成し、受け取ったアクセス要求と生成した番号とを占有試行部132へ引き渡す。採番部131は、例えばカウンタであり、アクセス要求を受け取るたびにカウンタをインクリメントすることによって、一意の番号を生成してもよい。
When receiving an access request from the
占有試行部132は、バックエンドサーバ11を識別するサーバIDと採番部131から受け取った番号とからなる要求IDで占有受付レジスタ140の占有受付情報を更新し、その要求IDを含む占有要求を送信することによって、他の全てのバックエンドサーバ12、…、1nの占有を試みる。
The
バックエンドサーバ12、…、1nにおける連携サービス部は、占有要求を受信すると、自らの占有受付レジスタに空値が保持されている(つまり、どのバックエンドサーバからも占有されていない)場合、受信された占有要求に含まれる要求IDでその占有受付レジスタの占有受付情報を更新した後、占有応答を返信する。
When the cooperation service unit in the back-
この占有応答は、対象要求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
占有一覧テーブル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
図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
要求発行部138は、占有成功と判断されると、他の全てのバックエンドサーバ12、…、1nへバックエンド通信制御部220を介して対象要求IDで識別されるアクセス要求を転送すると共に、そのアクセス要求をデータベース制御部310へ発行する。
When the
バックエンドサーバ12、…、1nにおける連携サービス部は、そのアクセス要求を受信すると、自らのデータベース制御部へそのアクセス要求を発行する。そして、自らのデータベースにおける実行が完了すると、実行結果を示すアクセス応答を返信する。
When the cooperation service unit in the back-
連携サービス部150は、そのアクセス応答を受信し、占有一覧情報の対応レコードに、例えば図示しないフラグ情報を用いて、アクセス応答が返されたことを記録する。
The
要求発行部138は、他の全てのバックエンドサーバ12、…、1nと、データベース制御部310とからアクセス応答が返ることでシステム全体でのアクセス完了を知り、クライアントからのアクセス要求を転送したフロントエンドサーバへフロントエンド通信制御部210を介してアクセス結果を返却する。
The
また、占有試行部132は、一つ以上の占有拒否応答が収集された場合、次のようにして競合の解消を図る。
Further, when one or more exclusive rejection responses are collected, the
まず、収集された占有拒否応答に含まれる受付要求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
次に、他の全てのバックエンドサーバ12、…、1nから占有応答が収集され、その中の一つ以上が占有拒否応答である場合、占有拒否応答に含まれる受付要求IDで識別されるバックエンドサーバ(これを競合サーバと呼ぶ)の優先順位とバックエンドサーバ11の優先順位との比較に基づいて、自らの占有を変更すべき優先サーバを特定する。
Next, when exclusive responses are collected from all the other back-
この比較は、バックエンドサーバ12、…、1n間に定められている優先順位に、さらに各バックエンドサーバが自分以外のバックエンドサーバを占有しているか否かを考慮に入れた順位を用いて行われる。
This comparison is performed using a priority order determined between the back-
そのような順位の具体例として、自分以外のバックエンドサーバを占有していない状態のバックエンドサーバ12、…、1nを前記優先順位で並べ、さらにその高位に、自分以外のバックエンドサーバを占有している状態のバックエンドサーバ12、…、1nを前記優先順位で並べて定義される順位を用いることができる。
As a specific example of such order, the back-
占有試行部132は、この順位に従って、自分以外のバックエンドサーバを占有している状態のバックエンドサーバをそうでないバックエンドサーバよりも優先して、バックエンドサーバ11よりも高位の競合サーバの中で最高位の競合サーバを前記優先サーバとして特定する。
In accordance with this order, the
なお、バックエンドサーバ11が自分以外のバックエンドサーバを占有しているか否かは、一つ以上の占有許諾応答が収集されるか否かによって判断でき、また、他の各バックエンドサーバ12、…、1nが自分以外のバックエンドサーバを占有しているか否かは、受信された占有拒否応答にその占有拒否応答を返したバックエンドサーバ以外のバックエンドサーバを識別する受付要求IDが含まれるか否かによって判断することができる。
Whether or not the back-
そして、バックエンドサーバ11から前記特定された優先サーバへの変更を示す占有変更を送信すると共に、優先サーバによる占有を示す占有拒否応答に含まれる受付要求IDで占有受付レジスタ140の占有受付情報を更新する。
Then, the exclusive change information indicating the change to the specified priority server is transmitted from the back-
送信される占有変更は、具体的に、変更前に関して占有受付レジスタ140に保持されている要求IDを含み、変更後に関して優先サーバからの占有拒否応答に含まれる受付要求IDを含んでもよい。
The occupancy change to be transmitted specifically includes the request ID held in the
バックエンドサーバ12、…、1nにおける連携サービス部は、占有変更を受信すると、受信された占有変更に含まれる変更前に関する要求IDと、自らの占有受付レジスタに保持されている要求受付情報の要求IDとが一致する場合、変更前の正真のバックエンドサーバからの占有変更であると判断して、受信された占有変更に含まれる変更後に関する受付要求IDで自らの占有受付レジスタを更新し、その要求IDで識別されるバックエンドサーバへ占有受諾応答を送信する。
When the cooperation service unit in the back-
他方、バックエンドサーバ11よりも高位の競合サーバがない場合には、占有試行部132は何もせず、競合サーバにおける占有試行部が前述した処理を行うことによって競合が解消されるのを待つ。
On the other hand, when there is no competing server higher than the back-
占有試行部132は、所定の時間内に占有成功も占有変更もできなかった場合に占有失敗と判断する。
The
要求発行部138は、占有失敗と判断されると、クライアントからのアクセス要求を転送したフロントエンドサーバへフロントエンド通信制御部210を介してアクセス失敗を通知する。
If the
(主要部の詳細な動作)
以下、本発明の主要部の詳細な動作についてフローチャートを参照しながら説明する。
(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
統合制御部100は、クライアントから発行されたアクセス要求を受信すると(S101)、データベース31のみでそのアクセス要求を実行したとすれば他のデータベースとのデータの同期が維持されるか否か、言い換えれば、システム全体でのデータ同期制御が必要かを要求判断部110で判断する。そして、システム全体でのデータ同期制御が必要でないと判断された場合(S102でNO)、単独アクセス部120へそのアクセス要求を引き渡し(S103)、必要であると判断された場合(S102でYES)、連携マスタ部130へそのアクセス要求を引き渡す(S200)。
When the
図8は、連携マスタ部130によって行われる連携マスタ処理の一例を示すフローチャートである。
FIG. 8 is a flowchart illustrating an example of the cooperation master process performed by the
連携マスタ部130は、要求判断部110からアクセス要求を受け取ると、占有受付レジスタ140の占有受付情報が空値になるまで(つまり、占有から解かれるまで)待って(S210)、バックエンドサーバ11を識別するサーバIDと採番部131で生成された番号とからなる要求IDを、占有受付情報として占有受付レジスタ140に登録する(S202)。
When the
そして、占有試行処理を行い(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-
そして、占有受付情報を空値で更新することにより削除し(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
さらに、他のバックエンドサーバ12、…、1nと、データベース制御部310とからアクセス応答が返るのを待って(S208)、クライアントからのアクセス要求を転送したフロントエンドサーバへアクセス結果を送信する(S209)。
Further, after waiting for an access response to be returned from the other back-
また、占有に失敗した場合には(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
占有試行部132は、占有受付レジスタ140に保持されている占有受付情報で示される要求IDを含む占有要求を他の全てのバックエンドサーバ12、…、1nへ送信し(S301)、タイマ部400をスタートさせる(S302)。この占有要求は、ブロードキャストされてもよく、またそれぞれのバックエンドサーバへ個別に送信されてもよい。
The
占有試行部132は、占有一覧テーブル133の占有一覧情報から、前記占有受付情報と一致する対象要求IDを持つ占有応答を参照し(S303)、参照された占有応答の中に、占有受付レジスタ140の直前占有情報と同一の受付要求IDを持つ占有拒否応答があれば(S304でYES)、その占有拒否応答を送信したバックエンドサーバへ前記占有要求を再送信する(S305)。
The
占有試行部132は、他の全てのバックエンドサーバから占有応答が収集された後(S311でYES)、収集された占有応答が全て占有受諾応答なら(S312でYES)、占有成功を示して連携マスタ処理へ戻る(S313)。
After the exclusive responses are collected from all the other back-end servers (YES in S311), the
収集された占有応答の一つ以上が占有拒否応答なら(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
そして、占有受付レジスタ140の占有受付情報を更新し(S322)、占有変更を示して連携マスタ処理へ戻る(S323)。
Then, the occupancy reception information in the
占有試行部132は、全てのバックエンドサーバから占有応答が収集されていないか(S311でNO)、特定すべき優先サーバ(つまり、バックエンドサーバ11よりも上位の競合サーバ)がなければ(S314でNO)、タイマ部400を参照する。タイムアウトしていれば(S315でYES)、占有受付レジスタ140の占有受付情報を空値で更新することによって削除し(S331)、占有失敗を示して連携マスタ処理へ戻る(S332)。タイムアウトしていなければ(S315でNO)、S303へ戻って処理を継続する。
The
図10は、連携サービス部150によって行われる連携サービス処理の一例を示すフローチャートである。
FIG. 10 is a flowchart illustrating an example of cooperative service processing performed by the
連携サービス部150は、他のバックエンドサーバからデータを受信すると(S401)、受信されたデータの種類を判断する。
When the
受信されたデータが占有要求である場合(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
また、占有受付情報と受信された占有要求に含まれる要求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-
その後、占有受付情報を空値で更新することによって削除し(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
受信されたアクセス要求に含まれる要求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
受信データが占有応答、又はアクセス応答である場合(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
(連携動作の典型例)
以下、連携動作の典型例についてシーケンスチャートを参照しながら説明する。
(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-
この例では、まず全てのバックエンドサーバの占有受付レジスタに、そのアクセス要求に対応する占有要求に含まれる要求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-
このように、アクセス要求は全てのバックエンドサーバがバックエンドサーバ11による占有を受諾してから初めて実行されるため、そのアクセス要求は全てのバックエンドサーバで確実に実行される。また、新たなアクセス要求に対応する占有要求が占有中に発生しても拒否されるため、複数のアクセス要求がバックエンドサーバによって異なる順序で実行される事態が避けられる。
In this way, since the access request is executed only after all back-end servers accept the occupation by the back-
このことはどのバックエンドサーバのどのアクセス要求についても成り立つから、この構成によって全てのデータベース間でのデータの同期が維持される。また、データの同期の維持そのものが分散処理されるので、従来のレプリケーションサーバを省略できる。その結果、システムからデータの同期維持に関する性能及び信頼性の面でのボトルネックが排除され、システムのスケーラビリティの具現化が容易となる。 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-
この例では、最初バックエンドサーバ12は、バックエンドサーバ11において直前に処理されたアクセス要求をまだ処理中であり、バックエンドサーバ12の占有受付レジスタには、その直前のアクセス要求に対応する占有要求(不図示)に関する要求IDが登録されている。そのため、バックエンドサーバ11からの新たな占有要求に対して占有拒否応答が返される。なお、直前のアクセス要求に関係するデータフローは点線で示される。
In this example, the first back-
バックエンドサーバ11は、返された占有拒否応答に含まれる受付要求IDが受付占有レジスタ140に保持されている直前占有情報と同一であることによって、自らが直前に受け入れていた占有がバックエンドサーバ12ではまだ解除されていないことを知り、占有要求を再送することによって、バックエンドサーバ12の処理終了後に占有に成功する。その後の動作は、図11と同様である。
The back-
このように、占有拒否応答が受信された場合でも、自らが直前に受け入れていた占有に関係する占有拒否である場合には、直ちに占有失敗とするのではなく、占有要求を再送することで、効率的に占有に成功する可能性が高まる。 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-
この例では、バックエンドサーバ11は、受信された占有拒否応答に基づいて優先サーバを特定し、占有受諾応答を返したバックエンドサーバ12に、バックエンドサーバ11からその優先サーバへの変更を示す占有変更を送信すると共に、自らの占有受付レジスタの占有受付情報を占有拒否応答に含まれる受付要求IDで更新することによって、占有者をその優先サーバに変更する。
In this example, the back-
このように、より優先順位の高いバックエンドサーバとの間で占有要求が競合したことを知ったバックエンドサーバは、自らの占有を優先サーバへと積極的に変更するので、競合の解消を、例えば所定時間待ってリトライするといった簡略な方法に比べて、より迅速かつ円滑に行うことができる。 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
この通信プロトコル選択処理による選択の基準は、送信されるデータの量が予め定められたしきい値を超える場合(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-
以下、第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
サーバ状態管理部160は、他のバックエンドサーバからのデータ受信の有無を所定時間監視することによって故障状態を検出する部であり、検出結果を保持するサーバ状態テーブル161を有する。
The server
サーバ状態管理部160は、周期的に交換されるよう定められた監視用データの受信の有無を監視してもよく、また、例えば状態通知要求や占有要求といった所定のデータの送信に応じて受信されるべき応答の有無を監視してもよい。
The server
図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
サーバ状態管理部160は、周期的に、又は、例えば占有要求といった所定のデータが送信された後に、サーバ状態管理処理を実行して故障検出を行い、その検出の結果に応じてサーバ状態テーブル161のサーバ状態163を更新する。このサーバ状態管理処理は、後述するように、自分自身の故障をも検出する。
The server
要求判断部110aは、サーバ状態テーブル161を参照して、自バックエンドサーバのサーバ状態が’故障中’と示されている間、フロントエンド通信制御部210からのアクセス要求の受け入れを停止する機能を、要求判断部110に追加してなる。
The
連携マスタ部130aは、サーバ状態テーブル161を参照して、サーバ状態が故障中と示されているバックエンドサーバを除外して、占有要求の送信、占有の成否判断、及びアクセス要求の送信を行うよう、連携マスタ部130を変更してなる。
The
この変更は、詳細には、図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
サーバ状態管理部160は、サーバ状態テーブル161の全ての受信フラグ164を’NO’にしてから(S601)、他の全てのバックエンドサーバへ状態通知要求を送信し(S602)、タイマ部400をスタートさせる(S603)。
The server
状態通知応答が受信されると(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
この構成によれば、故障したバックエンドサーバが自動的にシステムから切り離されるので、一つのバックエンドサーバの故障がシステム全体に及ぼす影響が軽減され、サービス無中断の運用が可能となる。 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
(第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
以下、第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
保留制御部170は、特定の動作モードにおいて一つ以上のアクセス要求を蓄積し、前記動作モードが解除されるとき、前記アクセス要求を蓄積された順に取り出してデータベース制御部310へ発行する部であり、アクセス要求を蓄積して蓄積された順に出力する要求保留キュー171を有する。
The
図19は、要求保留キュー171に蓄積されているアクセス要求の一例を示す図である。要求保留キュー171は、アクセス要求ごとに、要求ID172、及び要求内容173を保持している。
FIG. 19 is a diagram illustrating an example of access requests stored in the
保留制御部170は、例えばシステム管理者から図示しないシステムコンソール等を介して、前記特定の動作モードの開始と解除とを指示される。説明の便宜上、前記特定の動作モードを保留モードと呼び、保留モードの開始及び解除の指示を、それぞれ保留指示及び再開指示と呼ぶ。
The
サーバ状態管理部160bは、保留制御部170からの制御に応じて、自バックエンドサーバのサーバ状態を’保留中’及び’運用中’に更新する機能を、サーバ状態管理部160に追加してなる。
The server
要求判断部110bは、自バックエンドサーバのサーバ状態が’保留中’と示されている間、フロントエンド通信制御部210からのアクセス要求の受け入れを制限する(例えば、ダンプコマンド等の参照専用コマンドのみを受け入れる)機能を、要求判断部110aに追加してなる。
The
連携サービス部150bは、自バックエンドサーバのサーバ状態が’保留中’と示されている間、他のバックエンドサーバから転送されたアクセス要求を、データベース制御部310へ発行する代わりに、保留制御部170の要求保留キュー171に蓄積するように、連携サービス部150を変更してなる。そして、連携サービス部150bは、この変更点を除いて連携サービス部150と同様に動作する。
While the server status of the own backend server is indicated as “pending”, the
図20は、連携サービス部150bによって行われる連携サービス処理の一例を示すフローチャートである。
FIG. 20 is a flowchart illustrating an example of the cooperative service process performed by the
連携サービス部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
このように、連携サービス部150bは、保留中にも、占有に関する処理を運用中と変わらずに行うことから、保留中に受信されたアクセス要求は、運用中であれば実行されていた順序、つまりデータの同期維持に必要な順序通りに、要求保留キュー171に蓄積される。
In this way, since the
図21は、保留制御部170によって行われる保留制御処理の一例を示すフローチャートである。
FIG. 21 is a flowchart illustrating an example of a hold control process performed by the
保留制御部170は、保留指示を受け付けると(S701で保留)、自バックエンドサーバについてサーバ状態テーブル161のサーバ状態163を’保留中’に更新する(S702)。
When the
また、再開指示を受け付けると(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
そして、要求保留キュー171が空になれば(S703でYES)、自バックエンドサーバについてサーバ状態テーブル161のサーバ状態163を’運用中’に更新する(S706)。
If the
この構成によれば、保留モードが解除されるとき、データの同期維持に必要な順序通りに蓄積された一つ以上のアクセス要求を単に蓄積された順に実行することによって、迅速にデータの同期を回復できる。そして、データの同期回復のために他のデータベースからデータを複写する必要がないため、データベースの規模が大きいほど、データの同期回復の迅速化に大きな効果が得られる。 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
バックエンドサーバ11a、12a、…、1naは、ネットワーク20を通してフロントエンドサーバと通信し、ネットワーク21を通して他のバックエンドサーバと通信する。
The
図23は、バックエンドサーバ11aの機能的な構成の一例を示すブロック図である。バックエンドサーバ11aと共に示されるデータベース31は、第1の実施の形態と同様である。
FIG. 23 is a block diagram illustrating an example of a functional configuration of the back-
バックエンドサーバ11aは、バックエンドサーバ11におけるネットワークアダプタ部200に代えて、2つのネットワークアダプタ部201、202を備える。
The
ネットワークアダプタ部201は、ネットワーク20と物理的に接続し、フロントエンド通信制御部210は、ネットワークアダプタ部201を介してフロントエンドサーバとの通信を実行する。
The
ネットワークアダプタ部202は、ネットワーク21と物理的に接続し、バックエンド通信制御部220は、ネットワークアダプタ部202を介してバックエンドサーバとの通信を実行する。
The
この構成によれば、バックエンドサーバ同士は、フロントエンドサーバとバックエンドサーバとの間の通信トラフィックに影響されることなく通信を行うことができる。そのため、データ制御システム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
本発明のデータ制御装置は、データの同期が維持されるべき複数のデータベースを制御するデータ制御システムに利用でき、とりわけ、前記複数のデータベース間でのデータの同期を低コストかつ効率的に維持する装置として有用である。 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、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
135 Response server ID
136 Acceptance request ID
138
142, 144
163
173
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 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.
自データ制御装置及び前記受信された占有拒否応答によって示される競合データ制御装置がそれぞれ自分以外のデータ制御装置を占有しているか否かを、受信された占有許諾応答又は占有拒否応答に基づいて判断し、 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 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.
ことを特徴とする請求項1に記載のデータ制御装置。 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.
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)
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 |
-
2005
- 2005-12-06 JP JP2005352447A patent/JP3823169B1/en not_active Expired - Fee Related
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 |