Data synchronization system, data synchronization method, and data synchronization program
The data synchronization system optimizes data transmission and restoration by using correlation determination logic to minimize data exchange and correct discrepancies, addressing high volumes and low restoration rates in limited-capacity environments.
Patent Information
- Application Number
- JP2023039228
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-03-14
- Publication Date
- 2026-02-16
- Estimated Expiration
- 2043-03-14
AI Technical Summary
Existing data synchronization systems struggle with high data transmission volumes and low restoration rates, especially when communication capacity is limited, leading to potential data loss and incomplete data restoration.
A data synchronization system that utilizes correlation determination logic to minimize data transmission by sending only state transition data, allowing servers to update their states using the same logic as the main server, and includes mechanisms to detect and correct data discrepancies.
Enables efficient data synchronization with reduced communication requirements and improved accuracy, preventing data loss even in environments with limited bandwidth, ensuring complete and accurate data restoration.
Smart Images

Figure 0007814337000001 
Figure 0007814337000002 
Figure 0007814337000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a data synchronization system, a data synchronization method, and a data synchronization program. [Background technology]
[0002] A distributed backup system has been proposed to improve the time required for backup while improving the data restoration rate (see, for example, Patent Document 1). The distributed backup system has a management server that manages data and multiple servers that are backup destinations for the management server's data. In the distributed backup system, the management server divides data into multiple data pieces to reduce the data volume before transmitting the data to each server, enabling high-speed inter-server cooperation. In addition, the restoration rate of important data can be improved by ranking each divided data piece. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2015-043142 Summary of the Invention [Problem to be solved by the invention]
[0004] Patent Document 1 discloses a technology for achieving high-speed inter-server collaboration by dividing image data into multiple pieces of image data to reduce the data volume. However, this technology cannot reduce the total amount of data required for transmission, and therefore cannot solve the problem of inter-system collaboration when the amount of data being transmitted is large relative to the communication capacity. Furthermore, Patent Document 1 discloses a technology that improves the possibility of restoring important data by ranking divided data. While this technology improves the efficiency of transmission and synchronization, it also makes it difficult to completely restore data when data loss or other issues occur, because the restoration rate for less important data is low. The present disclosure aims to provide a data synchronization system for use in cases where sufficient communication capacity cannot be secured, which performs close server cooperation and prevents data loss. [Means for solving the problem]
[0005] The data synchronization system according to the present disclosure includes: A data synchronization system comprising a main server and one or more other servers, When each of the one or more other servers is a target other server, the target other server manages synchronized data of the target data managed by the main server as target synchronized data, and manages data corresponding to the target data as its own server data, The target data is updated to post-update target data upon occurrence of a target event; The target other server is a data transceiver that receives update data used to update the target data to the updated target data from the main server as received update data; an other server data update unit that updates the target synchronization data to updated target synchronization data using the received update data; an own server data update unit that generates first updated own server data by updating the own server data using the same logic as that used to update the target data to the updated target data in the main server; an update data prediction unit that generates second updated local server data by updating the local server data using the received update data, and determines whether the first updated local server data and the second updated local server data match; Equipped with When the other server data update unit of the target other server determines that the first updated own server data and the second updated own server data do not match, the updated target synchronization data is data that updates the target synchronization data based on the state transition from the state indicated by the own server data to the state indicated by the first updated own server data. [Effects of the Invention]
[0006] According to the present disclosure, in each other server, the data transmitter / receiver receives update data from the main server, and the other server data updater updates the synchronization data of the target data managed by the main server to updated target synchronization data based on the received update data. Furthermore, when it is determined that the first updated local server data and the second updated local server data do not match, the other server data updater determines that the updated target synchronization data is data obtained by updating the target synchronization data based on a state transition from the state indicated by the local server data to the state indicated by the first updated local server data. Here, the target data is data that is updated upon occurrence of a target event. The update data may be data for realizing a state transition that occurs upon occurrence of a target event. The first updated local server data is data obtained by updating the local server data using the same logic as the logic used to update the target data in the main server. The second updated local server data is data obtained by updating the local server data using the update data. Therefore, according to the present disclosure, it is possible to provide a data synchronization system for use in cases where sufficient communication capacity cannot be secured, which performs close server cooperation and prevents data loss. [Brief explanation of the drawings]
[0007] [Figure 1] 1 is a diagram showing an example of the configuration of a data synchronization system 90 according to a first embodiment. [Figure 2] FIG. 2 is a diagram showing an example of the hardware configuration of a server 100 according to the first embodiment. [Figure 3]FIG. 3 is a diagram showing a processing flow of the data synchronization system 90 according to the first embodiment. [Figure 4] FIG. 3 is a diagram showing a processing flow of the data synchronization system 90 according to the first embodiment. [Figure 5] FIG. 3 is a diagram showing a processing flow of the data synchronization system 90 according to the first embodiment. [Figure 6] FIG. 3 is a diagram showing a processing flow of the data synchronization system 90 according to the first embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0008] In the description of the embodiments and the drawings, the same elements and corresponding elements are given the same reference numerals. The description of elements given the same reference numerals will be omitted or simplified as appropriate. Arrows in the drawings mainly indicate the flow of data or the flow of processing. Furthermore, "unit" may be read as "circuit," "step," "procedure," "process," or "circuitry" as appropriate.
[0009] Embodiment 1 Hereinafter, this embodiment will be described in detail with reference to the drawings.
[0010] ***Configuration Description*** 1 shows an example of the configuration of a data synchronization system 90 according to this embodiment. As shown in the figure, the data synchronization system 90 includes a plurality of servers 100.
[0011] Each server 100 includes an update data prediction unit 110, a local server data update unit 120, a correlation determination unit 130, an other server data update unit 140, and a data transmission / reception unit 150. The numbers attached to the arrows and each unit indicate the numbers of each process described below. One of the multiple servers 100 is a main server. The main server may be selected in any way from the multiple servers 100. Of the multiple servers 100, each server 100 other than the main server is also called an other server. If the main server fails, one of the other servers will take over as the main server. The main server manages the target data and manages the same data as the data managed by each of one or more other servers as synchronized data of the target data. The target data is data that is updated to the target data after updating when a target event occurs. When each of one or more other servers is considered a target other server, the target other server manages the synchronized data of the target data managed by the main server as target synchronized data. As a specific example, in each of Server 2 and Server 3, the target synchronized data is Server 1 data. Furthermore, the target other server manages data corresponding to the target data as its own server data, and manages the own server data managed by each other server other than the target other server as each other server data. Note that other server data also includes the target synchronized data.
[0012] Hereinafter, as shown in Fig. 1, each server 100 shown in Fig. 1 may be referred to as server 1, server 2, or server 3. Server 1 is the main server.
[0013] The data synchronization system 90 is a system that focuses on the correlation of data before and after an event occurs, for data whose contents may change due to the occurrence of an event. The main server does not transmit data that indicates the state after the event occurs itself, but transmits to the other server 100 the minimum data necessary to transition from the state before the event to the state after the event occurs. Close inter-server cooperation is achieved by utilizing correlation and correlation determination logic in the data synchronization system 90. Specifically, in the data synchronization system 90, each server 100 other than the main server restores its state using data received from the main server and the same correlation determination logic as the correlation determination logic used by the main server, thereby achieving close inter-server cooperation.
[0014] In addition, in the data synchronization system 90, the correlation determination logic is also used to determine the accuracy of information. Specifically, the correlation determination logic is used to determine whether data is missing by determining whether a state transition corresponding to the data of the synchronization destination server can occur, and to determine whether the data of the local server can be correctly restored, thereby improving the accuracy of server synchronization. Here, in the example shown in Figure 1, the local server corresponding to server 2 is server 2, and the other servers corresponding to server 2 are server 1 and server 3, respectively. The correlation determination logic is used in the update data prediction unit 110 and the correlation determination unit 130.
[0015] The update data prediction unit 110 of the main server is used when the main server is switched to another server. The update data prediction unit 110 of the target other server generates second updated own server data by updating its own server data using the update data received by the data transmission / reception unit 150 of each other server as received update data from the main server, and determines whether the first updated own server data described below matches the second updated own server data.
[0016] The local server data update unit 120 of each other server generates first updated local server data by updating the local server data using the same logic as that used to update the target data to the updated target data in the main server. In the local server data update unit 120, initial values of local server data are stored in the initial state, and when the local server data is updated, the updated local server data is stored. The local server data is data of the server 100 that includes the local server data update unit 120. As a specific example, the local server data of server 1 is stored in the local server data update unit 120 of server 1.
[0017] When each other server data managed by the main server is treated as target other server data, the correlation determination unit 130 of the main server derives the correlation between the target data and the target other server data if the target other server data can be updated using update data. The update data is data used to update the target data to post-update target data, and as a specific example, is data for realizing a state transition that occurs in the target data when a target event occurs. The correlation determination unit 130 of each other server derives the correlation between the update data received by the data transmission / reception unit 150 of each other server as received update data from the main server and each other server data other than the target synchronization data.
[0018] The other server data update unit 140 stores the initial value of the other server data in the initial state, and when the other server data is updated, the updated other server data is stored. The other server data is data of each server 100 other than the server 100 that has the other server data update unit 140, among the servers 100 provided in the data synchronization system 90. As a specific example, the other server data update unit 140 of server 1 stores the own server data of server 2 and the own server data of server 3. When the correlation determination unit 130 of the main server derives a correlation between the target data and the target other server data, the other server data update unit 140 of the main server updates the target other server data using the update data. The other server data update unit 140 of each other server updates the target synchronization data to updated target synchronization data using the received update data, and updates each other server data other than the target synchronization data based on the correlation derived by the correlation determination unit 130 of each other server and corresponding to each other server data other than the target synchronization data. When the update data prediction unit 110 determines that the first updated own server data and the second updated own server data do not match, the other server data update unit 140 of each other server sets the updated target synchronization data to data obtained by updating the target synchronization data based on the state transition from the state indicated by the own server data to the state indicated by the first updated own server data.
[0019] The data transmission / reception unit 150 transmits and receives data to and from other servers 100 . The data transmission / reception unit 150 of the server 1 transmits and receives the server 1 data to and from the other servers 100. The data transmission / reception unit 150 of the main server transmits the update data to each of the one or more other servers. In response to a request from the target other server, the data transmission / reception unit 150 of the main server retransmits the update data to each of the one or more other servers. The data transmitter / receiver 150 of each other server receives the update data as received update data. Furthermore, if the correlation derived in the target other server corresponds to either an impossible state transition or a state transition whose occurrence probability is equal to or less than the reference occurrence probability, the data transmitter / receiver 150 of the target other server requests the main server to resend the update data. In this case, the data transmitter / receiver 150 of the target other server receives the resent update data and sets the received update data as received update data. The reference occurrence probability is a probability corresponding to a state transition that is unlikely to occur and may be determined in any way. Furthermore, when the correlation derived in a first other server among the multiple other servers corresponds to either an impossible state transition or a state transition whose occurrence probability is equal to or less than a reference occurrence probability, the data transmission / reception unit 150 of a second other server among the multiple other servers, which is a server other than the first other server, receives the update data resent by the data transmission / reception unit 150 of the main server, and treats the received update data as received update data.
[0020] 2 shows an example of the hardware configuration of the server 100 according to this embodiment. The server 100 is made up of a computer. The server 100 may be made up of multiple computers.
[0021] As shown in the figure, the server 100 is a computer including hardware such as a processor 11, a memory 12, an auxiliary storage device 13, an input / output IF (Interface) 14, and a communication device 15. These pieces of hardware are appropriately connected via signal lines 19.
[0022] The processor 11 is an integrated circuit (IC) that performs arithmetic processing and controls the hardware of the computer. Specific examples of the processor 11 include a central processing unit (CPU), a digital signal processor (DSP), or a graphics processing unit (GPU). The server 100 may include multiple processors that take the place of the processor 11. The multiple processors share the role of the processor 11.
[0023] The memory 12 is typically a volatile storage device, specifically a random access memory (RAM). The memory 12 is also called a primary storage device or a main memory. Data stored in the memory 12 is saved in the secondary storage device 13 as needed.
[0024] The auxiliary storage device 13 is typically a non-volatile storage device, and specific examples thereof include a ROM (Read Only Memory), an HDD (Hard Disk Drive), or a flash memory. Data stored in the auxiliary storage device 13 is loaded into the memory 12 as needed. The memory 12 and the auxiliary storage device 13 may be integrated into one unit.
[0025] The input / output IF 14 is a port to which an input device and an output device are connected. A specific example of the input / output IF 14 is a USB (Universal Serial Bus) terminal. Specific examples of the input device are a keyboard and a mouse. A specific example of the output device is a display.
[0026] The communication device 15 is a receiver and a transmitter, and is specifically a communication chip or a network interface card (NIC).
[0027] Each unit of the server 100 may use the input / output IF 14 and the communication device 15 as appropriate when communicating with other devices.
[0028] The auxiliary storage device 13 stores a data synchronization program. The data synchronization program is a program that causes a computer to realize the functions of each unit included in the server 100. The data synchronization program is loaded into the memory 12 and executed by the processor 11. The functions of each unit included in the server 100 are realized by software.
[0029] Data used when executing the data synchronization program and data obtained by executing the data synchronization program are stored in a storage device as appropriate. Each part of the server 100 uses a storage device as appropriate. Specific examples of the storage device include at least one of the memory 12, the auxiliary storage device 13, a register in the processor 11, and a cache memory in the processor 11. Note that the terms "data" and "information" may have the same meaning. The storage device may be independent of the computer. The functions of the memory 12 and the auxiliary storage device 13 may be realized by other storage devices.
[0030] The data synchronization program may be stored in a computer-readable nonvolatile recording medium. Specific examples of the nonvolatile recording medium include an optical disk and a flash memory. The data synchronization program may be provided as a program product.
[0031] ***Explanation of Operation*** The operation procedure of the data synchronization system 90 corresponds to a data synchronization method, and the program that realizes the operation of the data synchronization system 90 corresponds to a data synchronization program.
[0032] 3 to 6 are diagrams showing an example of a processing flow of the data synchronization system 90. The processing flow of the data synchronization system 90 will be described with reference to FIGS. In the data synchronization system 90, after each server 100 is powered on, a main server is selected and the data of the main server is updated, causing the following processes 1 to 27 to occur periodically. Hereinafter, it is assumed that the data synchronization system 90 includes three servers 100, namely, server 1, server 2, and server 3, and that server 1 has been selected as the main server.
[0033] <Process 1> In the server 1, the local server data update unit 120 transmits data (hereinafter referred to as "server 1 difference data") indicating the state transition from the state indicated by the server 1 data before the update to the state indicated by the server 1 data after the update to the correlation determination unit 130. The server 1 data is data of the main server. The server 1 difference data corresponds to update data.
[0034] <Process 2> In the server 1, the correlation determination unit 130 transmits data indicating a request to acquire the server 2 data and the server 3 data to the other server data update unit 140. The server 2 data is the data of the server 2, and the server 3 data is the data of the server 3.
[0035] <Process 3> In the server 1, the other server data update unit 140 transmits the server 2 data and the server 3 data to the correlation determination unit .
[0036] <Process 4> In the server 1, the correlation determination unit 130 determines whether or not it is possible to update each of the received server 2 data and server 3 data based on the received server 1 difference data.
[0037] <Process 5> In server 1, correlation determination unit 130 transmits data indicating the results of process 4 to each of local server data update unit 120 and other server data update unit 140. At this time, as a specific example, if there is a correlation between the other server data and server 1 difference data, data indicating the location of the correlation is transmitted, and if there is no correlation between the other server data and server 1 difference data, data indicating 0 is transmitted. If data indicating 0 is transmitted, process 7 is then executed. The other server data in server 1 is each of server 2 data and server 3 data.
[0038] <Process 6> In the server 1, the other server data update unit 140 updates each other server data only when there is a correlation between each other server data and the server 1 difference data.
[0039] <Process 7> In the server 1, the local server data update unit 120 transmits the server 1 difference data to the data transmission / reception unit 150.
[0040] <Process 8> In server 1, the data transmitter / receiver 150 transmits the server 1 difference data to the data transmitter / receiver 150 of each of the other servers. Hereinafter, the other servers are server 2 and server 3, respectively.
[0041] <Process 9> In each of the other servers, the data transmitter / receiver 150 receives the server 1 difference data from the server 1, and transmits the received server 1 difference data to the correlation determination unit .
[0042] <Process 10> In each other server, the correlation determination unit 130 transmits to the other server data update unit 140 data indicating an acquisition request for each other server data other than the server 1 data.
[0043] <Process 11> In each other server, the other server data update unit 140 transmits the other server data other than the server 1 data to the correlation determination unit 130.
[0044] <Process 12> In each other server, the correlation determination unit 130 derives values corresponding to the locations where there is a correlation between each other server data other than the server 1 data and the server 1 difference data based on the received server 1 difference data and other server data.
[0045] <Process 13> In each other server, if the value derived in process 12 corresponds to a state transition that cannot occur or a state transition with a low probability of occurrence, the correlation determination unit 130 transmits data to the data transmission / reception unit 150 indicating a request to re-acquire the server 1 differential data. If it is determined that the state transition is impossible or has a low probability of occurring in at least one of the servers 2 and 3, the server 1 difference data is retransmitted to each of the servers 2 and 3. Furthermore, in the case where the value derived in process 12 is a value that does not correspond to either an impossible state transition or a state transition with a low probability of occurrence, if neither server 2 nor server 3 re-receives the server 1 difference data within a certain time after process 12 is performed (the time required to perform processes 13 to 18), process 19 is not performed and process 20 is performed. In this case, if another server re-receives the server 1 difference data within a certain time after process 12 is performed (target case), process 19 is performed. As a specific example, the target case occurs on server 2 when server 2 does not send data indicating a request to re-acquire the server 1 difference data, but server 3 sends data indicating a request to re-acquire the server 1 difference data.
[0046] <Process 14> In each of the other servers, the data transmitter / receiver 150 transmits data indicating a request to reacquire the difference data of the server 1 to the data transmitter / receiver 150 of the server 1.
[0047] <Process 15> In the server 1, the data transmitter / receiver 150 receives data indicating a request to re-acquire the server 1 difference data from the other server, and transmits the received data indicating the request to re-acquire the server 1 difference data to the server data updater 120.
[0048] <Process 16> In the server 1, the local server data update unit 120 retransmits the server 1 difference data to the data transmission / reception unit 150.
[0049] <Process 17> In the server 1, the data transmitter / receiver 150 retransmits the server 1 difference data to the data transmitter / receiver 150 of each of the other servers.
[0050] <Process 18> In each of the other servers, the data transmitter / receiver 150 receives the server 1 difference data again from the server 1, and transmits the received server 1 difference data to the correlation determination unit .
[0051] <Process 19> In each other server, the correlation determination unit 130 derives a value corresponding to a portion where there is a correlation between each other server data other than the server 1 data and the server 1 difference data based on the received other server data and the reacquired server 1 difference data.
[0052] <Process 20> In each other server, the correlation determination unit 130 transmits the “server 1 difference data” and the “value derived in process 12 or process 19” to the other server data update unit 140.
[0053] <Process 21> In each other server, the other server data update unit 140 updates the server 1 data using the server 1 data and the "server 1 difference data," and updates the "other server data" corresponding to servers other than 1 using the "other server data" corresponding to servers other than 1 and the "value derived in process 12 or process 19." In server 2, the "other server data" corresponding to servers other than 1 is server 3 data.
[0054] <Process 22> In each of the other servers, the correlation determination unit 130 transmits the server 1 difference data to the update data prediction unit 110 .
[0055] <Process 23> In each other server, the update data prediction unit 110 transmits to the local server data update unit 120 data indicating an acquisition request for the local server data before the update and the local server data after the update.
[0056] <Process 24> In each other server, the own server data update unit 120 generates updated own server data and transmits the pre-update own server data and the generated updated own server data to the update data prediction unit 110. Note that the own server data update unit 120 of each other server updates the pre-update own server data to the updated own server data without using the data received from the main server.
[0057] <Process 25> In each other server, the update data prediction unit 110 predicts "updated own server data" from the "server 1 data difference" and the "own server data before update," and compares the "updated own server data" obtained from the own server data update unit 120 with the predicted "updated own server data." Here, the "updated own server data" obtained from the own server data update unit 120 corresponds to the correct value and also corresponds to the first updated own server data. The "updated own server data" predicted by the update data prediction unit 110 corresponds to the predicted value and also corresponds to the second updated own server data. If the "updated own server data" acquired from the own server data update unit 120 does not match the predicted "updated own server data", processing from step 26 onwards is executed. Otherwise, the processing for this cycle ends when processing 25 is completed.
[0058] <Process 26> In each other server, if the two data do not match in process 25, the update data prediction unit 110 transmits "data indicating the state transition" indicating the state transition from the state indicated by the own server data before the update to the state indicated by the own server data after the update to the other server data update unit 140 of each other server and the other server data update unit 140 of server 1.
[0059] <Process 27> In server 1 and each other server, the other server data update unit 140 obtains the other server data based on the "other server data before update" and the received "data indicating state transition", and sets the obtained other server data as the other server data after update.
[0060] As a result of the above processing, if there is no missing data, the data exchanged between the servers 100 is only server 1 data. Furthermore, the correlation determination unit 130 has the function of detecting impossible data updates and data updates with a low probability of occurrence, and is therefore able to detect missing data. If missing data is detected, the server 1 data can be resent between the servers 100 to prevent the missing data.
[0061] Although there are three servers 100 in FIG. 1, this embodiment can also be applied to a data synchronization system 90 having four or more servers 100.
[0062] ***Explanation of the effect of the first embodiment*** According to this embodiment, it is possible to realize close cooperation between servers and improve the accuracy of server synchronization. Details of the effects are as follows.
[0063] <Tight server-to-server collaboration> The correlation determination unit 130 determines whether or not it is possible to update each of the server 2 data and the server 3 data based on the "server 1 differential data" (see processes 4, 12, and 19). The other server data update unit 140 updates the other server data based on the determination result of the correlation determination unit 130 (see processes 6, 21, and 27). Therefore, according to this embodiment, when the predicted value of the updated server's own data is correct and there is no missing data, the number of communications between servers 100 is two per cycle. On the other hand, according to Patent Document 1, the number of communications is four or more per cycle. Therefore, according to this embodiment, inter-server cooperation can be achieved with fewer communications than in the prior art. Furthermore, according to this embodiment, the total amount of data required for transmission can be reduced compared to the prior art.
[0064] <Improved accuracy of server synchronization> If the predicted value is incorrect or if there is missing data, the number of communications between the servers 100 increases to two or more. However, according to this embodiment, more accurate data can be exchanged between the servers 100.
[0065] In addition, in command systems where units are deployed in the field, data sharing between servers may need to cover the narrow bandwidth allocated to the units through minimal data synchronization and data sharing via personnel, such as voice, since the field communications allocated to the units are narrow bandwidth. In future battles, it is expected that combat will occur simultaneously in multiple locations due to the repurposing of civilian technologies such as drones. Therefore, even servers deployed outdoors will need to closely cooperate in a short time. However, due to narrow communication bandwidth, data loss may occur, resulting in incorrect data being transmitted to the user. Data loss must be prevented, as there is a risk that a friendly aircraft may be mistaken for an enemy aircraft and shot down. On the other hand, according to the present embodiment, a data synchronization system capable of performing close server cooperation and preventing data loss can be realized in such a data synchronization system in which sufficient communication capacity cannot be secured.
[0066] ***Other embodiments*** Although the first embodiment has been described, it is also possible to combine multiple parts of this embodiment. Alternatively, it is also possible to implement this embodiment in part. In addition, this embodiment may be modified in various ways as needed, and may be implemented in any combination, either as a whole or in part. The above-described embodiments are essentially preferred examples and are not intended to limit the scope of the present disclosure, its applications, and uses. The procedures described using flowcharts and the like may be modified as appropriate.
[0067] Various aspects of the present disclosure are summarized below as appendices.
[0068] (Appendix 1) A data synchronization system comprising a main server and one or more other servers, When each of the one or more other servers is a target other server, the target other server manages synchronized data of the target data managed by the main server as target synchronized data, and manages data corresponding to the target data as its own server data, The target data is updated to post-update target data upon occurrence of a target event; The target other server is a data transceiver that receives update data used to update the target data to the updated target data from the main server as received update data; an other server data update unit that updates the target synchronization data to updated target synchronization data using the received update data; an own server data update unit that generates first updated own server data by updating the own server data using the same logic as that used to update the target data to the updated target data in the main server; an update data prediction unit that generates second updated local server data by updating the local server data using the received update data, and determines whether the first updated local server data and the second updated local server data match; Equipped with A data synchronization system in which, when it is determined that the first updated local server data and the second updated local server data do not match, the other server data update unit of the target other server updates the updated target synchronization data based on a state transition from the state indicated by the local server data to the state indicated by the first updated local server data.
[0069] (Appendix 2) the target other server manages, as other server data, its own server data managed by each other server other than the target other server among the one or more other servers, The target other server further a correlation determination unit for deriving a correlation between the received update data and each other server data; Equipped with 2. The data synchronization system according to claim 1, wherein the other server data update unit updates each other server data based on the derived correlation corresponding to each other server data.
[0070] (Appendix 3) the main server manages the target data, and manages, as synchronized data of the target data, data identical to data managed by each of the one or more other servers as each other server data; When each other server data managed by the main server is set as target other server data, the main server: a correlation determination unit that derives a correlation between the target data and the target other server data when the target other server data can be updated using the update data; an other server data updating unit that updates the target other server data using the update data when a correlation between the target data and the target other server data is derived; 3. The data synchronization system according to claim 1, further comprising: a data transmitter / receiver unit for transmitting the update data to each of the one or more other servers.
[0071] (Appendix 4) When the correlation derived in the target other server corresponds to either an impossible state transition or a state transition whose occurrence probability is equal to or less than a reference occurrence probability, the data transmission / reception unit of the target other server requests the main server to retransmit the update data; the data transmission / reception unit of the main server retransmits the update data to each of the one or more other servers; A data synchronization system according to any one of appendices 1 to 3, wherein the data transmitter / receiver of the target other server receives the resent update data and uses the received update data as the received update data.
[0072] (Appendix 5) the data synchronization system includes a plurality of other servers as the one or more other servers, When the correlation derived in a first other server among the plurality of other servers corresponds to either an impossible state transition or a state transition whose occurrence probability is equal to or less than the reference occurrence probability, A data synchronization system as described in Appendix 4, in which the data transmission / reception unit of a second other server, which is a server other than the first other server among the plurality of other servers, receives the resent update data and uses the received update data as the received update data.
[0073] (Appendix 6) 6. A data synchronization system according to any one of claims 1 to 5, wherein the update data is data for realizing a state transition that occurs in the target data when the target event occurs. [Explanation of symbols]
[0074] 11 processor, 12 memory, 13 auxiliary storage device, 14 input / output IF, 15 communication device, 18 processing circuit, 19 signal line, 90 data synchronization system, 100 server, 110 update data prediction unit, 120 own server data update unit, 130 correlation determination unit, 140 other server data update unit, 150 data transmission / reception unit.
Claims
1. A data synchronization system comprising a main server and one or more other servers, When each of the one or more other servers is a target other server, the target other server manages synchronized data of the target data managed by the main server as target synchronized data, and manages data corresponding to the target data as its own server data, The target data is updated to post-update target data upon occurrence of a target event; The target other server is a data transceiver that receives update data used to update the target data to the updated target data from the main server as received update data; an other server data update unit that updates the target synchronization data to updated target synchronization data using the received update data; an own server data update unit that generates first updated own server data by updating the own server data using the same logic as that used to update the target data to the updated target data in the main server; an update data prediction unit that generates second updated local server data by updating the local server data using the received update data, and determines whether the first updated local server data and the second updated local server data match; Equipped with A data synchronization system in which, when it is determined that the first updated local server data and the second updated local server data do not match, the other server data update unit of the target other server updates the updated target synchronization data based on a state transition from the state indicated by the local server data to the state indicated by the first updated local server data.
2. the target other server manages, as other server data, its own server data managed by each other server other than the target other server among the one or more other servers, The target other server further a correlation determination unit for deriving a correlation between the received update data and each other server data; Equipped with 2. The data synchronization system according to claim 1, wherein the other server data update unit updates each other server data based on the derived correlation corresponding to each other server data.
3. the main server manages the target data, and manages, as each other server data, data that is the same as data managed by each other server of the one or more other servers as synchronization data of the target data; When each other server data managed by the main server is set as target other server data, the main server: a correlation determination unit that derives a correlation between the target data and the target other server data when the target other server data can be updated using the update data; an other server data updating unit that updates the target other server data using the update data when a correlation between the target data and the target other server data is derived; 3. The data synchronization system according to claim 1, further comprising a data transmission / reception unit that transmits the update data to each of the one or more other servers.
4. When the correlation derived in the target other server corresponds to either an impossible state transition or a state transition whose occurrence probability is equal to or less than a reference occurrence probability, the data transmission / reception unit of the target other server requests the main server to retransmit the update data; the data transmission / reception unit of the main server retransmits the update data to each of the one or more other servers; 3. The data synchronization system according to claim 1, wherein the data transmitter / receiver of the other target server receives the retransmitted update data and uses the received update data as the received update data.
5. the data synchronization system includes a plurality of other servers as the one or more other servers, When the correlation derived in a first other server among the plurality of other servers corresponds to either an impossible state transition or a state transition whose occurrence probability is equal to or less than the reference occurrence probability, The data synchronization system of claim 4, wherein the data transmission / reception unit of a second other server, which is a server other than the first other server among the plurality of other servers, receives the retransmitted update data and uses the received update data as the received update data.
6. 3. The data synchronization system according to claim 1, wherein the update data is data for realizing a state transition that occurs in the target data when the target event occurs.
7. A data synchronization method executed in a data synchronization system including a main server that is a computer and one or more other servers, each of which is a computer, comprising: When each of the one or more other servers is a target other server, the target other server manages synchronized data of the target data managed by the main server as target synchronized data, and manages data corresponding to the target data as its own server data, The target data is updated to post-update target data upon occurrence of a target event; The target other server, receiving update data used to update the target data to the updated target data from the main server as received update data; updating the target synchronization data to post-update target synchronization data using the received update data; generating first updated local server data by updating the local server data using the same logic as that used to update the target data to the updated target data in the main server; a data synchronization method for generating second updated local server data by updating the local server data using the received update data, and determining whether the first updated local server data and the second updated local server data match, A data synchronization method in which, when the target other server determines that the first updated own server data and the second updated own server data do not match, the updated target synchronization data is data that updates the target synchronization data based on a state transition from the state indicated by the own server data to the state indicated by the first updated own server data.
8. A data synchronization program executed by each of the one or more other servers in a data synchronization system including a main server that is a computer and one or more other servers, each of the one or more other servers being a computer, comprising: When each of the one or more other servers is a target other server, the target other server manages synchronized data of the target data managed by the main server as target synchronized data, and manages data corresponding to the target data as its own server data, The target data is updated to post-update target data upon occurrence of a target event; To the target other server, a data transmission / reception process for receiving update data used to update the target data to the updated target data from the main server as received update data; an other server data update process for updating the target synchronization data to the updated target synchronization data using the received update data; a local server data update process for generating first updated local server data by updating the local server data using the same logic as that used to update the target data to the updated target data in the main server; an update data prediction process for generating second updated local server data by updating the local server data using the received update data, and determining whether the first updated local server data and the second updated local server data match; A data synchronization program that executes A data synchronization program that, when it is determined in the other server data update process that the first updated local server data and the second updated local server data do not match, sets the updated target synchronization data to data that updates the target synchronization data based on a state transition from the state indicated by the local server data to the state indicated by the first updated local server data.
Citation Information
Patent Citations
Method, system and program for data management among plurality of computers
JP2007025781A
Distributed backup system
JP2015043142A
Data arrangement method, data arrangement program, and information processing system
JP2015095015A
Data allocation method and information processing system
US20150135004A1