CN112138372B - Data synchronization method in distributed system and related equipment - Google Patents

Data synchronization method in distributed system and related equipment Download PDF

Info

Publication number
CN112138372B
CN112138372B CN202011100080.XA CN202011100080A CN112138372B CN 112138372 B CN112138372 B CN 112138372B CN 202011100080 A CN202011100080 A CN 202011100080A CN 112138372 B CN112138372 B CN 112138372B
Authority
CN
China
Prior art keywords
data
slave
host
sequence number
serial number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011100080.XA
Other languages
Chinese (zh)
Other versions
CN112138372A (en
Inventor
谢亚晋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shanghai Co Ltd
Original Assignee
Tencent Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shanghai Co Ltd filed Critical Tencent Technology Shanghai Co Ltd
Priority to CN202011100080.XA priority Critical patent/CN112138372B/en
Publication of CN112138372A publication Critical patent/CN112138372A/en
Application granted granted Critical
Publication of CN112138372B publication Critical patent/CN112138372B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers

Abstract

The application relates to the technical field of cloud computing, and particularly provides a data synchronization method in a distributed system, which comprises the following steps: if the host receives a data reading request, acquiring a first serial number identifier stored by the host and a second serial number identifier stored by the host, wherein the first serial number identifier is a serial number identifier which is generated by the host after data writing is finished and is used for identifying a corresponding version of the written data; the second sequence number identification is used for identifying the sequence number identification of the corresponding version of the synchronous data from the host computer to the slave computer; if the first serial number identification is inconsistent with the second serial number identification, synchronizing the data of the version corresponding to the first serial number identification to the slave computer; after the data synchronization is finished, the data requested to be read is returned to the initiator of the data reading request, so that the condition that the version of the data read by the initiator of the data reading request is certainly not lower than the version of the data read before at different time points can be ensured; at the same time point, the data read by the initiator of the different data read requests are the same.

Description

Data synchronization method in distributed system and related equipment
Technical Field
The present application relates to the field of computer and communication technologies, and in particular, to a data synchronization method and related device in a distributed system.
Background
The distributed cloud storage system is a storage system which integrates a large number of storage devices (storage devices are also called storage nodes) of different types in a network through application software or application interfaces to cooperatively work through functions of cluster application, grid technology, distributed storage file systems and the like, and provides data storage and service access functions to the outside.
In a large-scale multi-player online role-playing game application with a large number of players, in order to improve the bearing capacity of a game server, distributed cluster deployment is generally adopted for data reading and writing. Game data (e.g., battle scene data, ranking scene data) is typically stored on multiple machines, one of which is a master and the others are slaves. However, it is difficult to ensure consistency of data read by each game client at the same time point in the existing distributed cluster deployment.
Disclosure of Invention
The embodiment of the application provides a data synchronization method and related equipment in a distributed system, and aims to solve the problem that in the related art, the consistency of data read by game clients at the same time point is difficult to ensure under distributed cluster deployment.
Other features and advantages of the present application will be apparent from the following detailed description, or may be learned by practice of the application.
According to an aspect of an embodiment of the present application, there is provided a data synchronization method in a distributed system, where the distributed system includes a master and a plurality of slaves, the method including:
if the host receives a data reading request, acquiring a first sequence number identifier and a second sequence number identifier stored by the host, wherein the first sequence number identifier is a sequence number identifier which is generated by the host after data writing is finished and is used for identifying a corresponding version of the written data; the second sequence number identification is a sequence number identification used for identifying a version corresponding to the synchronous data from the host to the slave;
if the first serial number identification is inconsistent with the second serial number identification, synchronizing the data of the version corresponding to the first serial number identification to a slave computer;
and after the data synchronization is finished, returning the requested read data to the initiator of the data read request.
According to an aspect of an embodiment of the present application, there is provided a data synchronization apparatus in a distributed system, the distributed system including a master and a plurality of slaves, the apparatus including:
A first obtaining module, configured to obtain, if the host receives a data reading request, a first sequence number identifier and a second sequence number identifier stored in the host, where the first sequence number identifier is a sequence number identifier generated by the host after data writing is completed and used to identify a version corresponding to the written data; the second sequence number identification is a sequence number identification used for identifying a version corresponding to the synchronous data from the host to the slave;
the data synchronization module is used for synchronizing the data of the version corresponding to the first serial number identifier to a slave computer if the first serial number identifier is inconsistent with the third serial number identifier;
and the data return module is used for returning the data requested to be read to the initiator of the data reading request after the data synchronization is finished.
According to an aspect of an embodiment of the present application, there is provided an electronic device including: a processor; a memory having computer readable instructions stored thereon which, when executed by the processor, implement the method as described above.
According to an aspect of embodiments of the present application, there is provided a computer-readable storage medium having stored thereon computer-readable instructions which, when executed by a processor, implement a method as described above.
In the scheme of the application, after a host computer in the distributed system receives a data reading request and when a first serial number identification stored in the host computer is determined to be inconsistent with a second serial number identification stored in the host computer, data synchronization is started to a slave computer, so that the consistency of data in the distributed system is ensured, and further, the version of the data read by an initiator of the data reading request is ensured to be certainly not lower than the version of the data read before at different time points; at the same time point, the data read by the initiator of the different data read requests are the same.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the application.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and together with the description, serve to explain the principles of the application. It is obvious that the drawings in the following description are only some embodiments of the application, and that for a person skilled in the art, other drawings can be derived from them without inventive effort. In the drawings:
FIG. 1 shows a schematic diagram of an exemplary system architecture to which aspects of embodiments of the present application may be applied;
FIG. 2 is a flow diagram illustrating a method of data synchronization in a distributed system according to one embodiment;
FIG. 3 is a flow diagram illustrating a method of data synchronization in a distributed system in accordance with another embodiment;
FIG. 4 is a flow diagram illustrating a method of data synchronization in a distributed system in accordance with another embodiment;
FIG. 5 is a flow diagram illustrating a method of data synchronization in a distributed system in accordance with another embodiment;
FIG. 6 is a diagram illustrating data synchronization after a host in a distributed system receives a data read request, according to an example embodiment;
FIG. 7 is a diagram illustrating data synchronization after a slave in a distributed system receives a data read request, according to an example embodiment;
FIG. 8 is a diagram illustrating a method for synchronizing data in a synchronous manner according to the prior art;
FIG. 9 is a diagram illustrating a prior art method for data synchronization in an asynchronous manner;
FIG. 10 is a diagram illustrating proxy election among slaves in accordance with one embodiment;
FIG. 11 illustrates a data synchronization apparatus in a distributed system, according to an embodiment;
FIG. 12 illustrates a schematic structural diagram of a computer system suitable for use to implement the electronic device of the embodiments of the subject application.
Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example embodiments to those skilled in the art.
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of the application. One skilled in the relevant art will recognize, however, that the subject matter of the present application can be practiced without one or more of the specific details, or with other methods, components, devices, steps, and so forth. In other instances, well-known methods, devices, implementations, or operations have not been shown or described in detail to avoid obscuring aspects of the application.
The block diagrams shown in the figures are functional entities only and do not necessarily correspond to physically separate entities. I.e. these functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor means and/or microcontroller means.
The flow charts shown in the drawings are merely illustrative and do not necessarily include all of the contents and operations/steps, nor do they necessarily have to be performed in the order described. For example, some operations/steps may be decomposed, and some operations/steps may be combined or partially combined, so that the actual execution sequence may be changed according to the actual situation.
A distributed cloud storage system (hereinafter, referred to as a storage system) refers to a storage system that integrates a large number of storage devices (storage devices are also referred to as storage nodes) of different types in a network through application software or application interfaces to cooperatively work by using functions such as cluster application, grid technology, and a distributed storage file system, and provides a data storage function and a service access function to the outside.
The distributed cloud storage system adopts a master-slave mode, and the requirement on data consistency between the master and the slave is high. However, in the existing distributed cloud storage system, the data consistency requirement between the host and the slave cannot meet the use requirement, and it cannot be guaranteed that the data read from the distributed system by the initiator of different data read requests at the same time point is the same. Based on the above, the scheme of the application is provided to solve the problem that the consistency of data read by the clients at the same time point is difficult to ensure under the existing distributed cluster deployment in the related art.
Fig. 1 shows a schematic diagram of an exemplary system architecture to which the technical solution of the embodiments of the present application can be applied.
As shown in fig. 1, the system architecture may include an external device 110 and a distributed system 120, the terminal 110 and the distributed system 120 communicate with each other through a wired or wireless network, and the terminal 110 may be a smart phone, a tablet computer, a notebook computer, a desktop computer, or the like, which is not limited in detail herein. The distributed system may be composed of a plurality of computer devices, wherein the computer devices may be servers, desktop computers, notebook computers, etc., and are not limited in particular.
The distributed system 120 generally employs a master-multiple-slave mode, which includes a master 121 and a plurality of slaves 122. The master 121 generally performs task coordination and division in the entire distributed system, and the slave 122 generally performs some specific tasks, receives an instruction from the master 121, and feeds back an operation state of the slave to the master 121.
In a distributed system, the requirement on data consistency is high, namely the data in a host and a slave in the distributed system are the same at the same time point; at any one time point, the data read from the distributed system by different external devices does not have different data. In view of the requirement of data consistency in the master and the slave in the distributed system, in the case where new data is written in the distributed system, data synchronization between the master and the slave is required.
It should be understood that the number of slaves in external device 110 and distributed system 120 in FIG. 1 is merely illustrative. There may be any number of external devices 110 and slaves, as desired for the implementation. For example, the server 120 may be a server cluster composed of a plurality of servers, and the like.
The implementation details of the technical solution of the embodiment of the present application are set forth in detail below:
fig. 2 is a flowchart illustrating a data synchronization method in a distributed system according to an embodiment of the present application, the method being applied to the distributed system, the distributed system including a master and several slaves. Referring to fig. 2, the data synchronization method in the distributed system at least includes steps 210 to 230, which are described in detail below.
Step 210, if the host receives a data reading request, acquiring a first sequence number identifier and a second sequence number identifier stored by the host, where the first sequence number identifier is a sequence number identifier generated by the host after completing data writing and used for identifying a corresponding version of the written data; the second sequence number identification is used for identifying the version corresponding to the synchronous data from the host to the slave.
As described above, in the distributed system, the slave receives the instruction of the master, that is, the slave is controlled by the master. Therefore, in the distributed system, data writing is started from the master, that is, if data writing is required, the data is written into the master first, and then the newly written data is synchronized to each slave by the master. The data synchronization can be performed according to the data synchronization method in the present application.
The data read request requests only read data, without modifying the data. The data reading request may be sent by an external device outside the distributed system, for example, in an application scenario where the distributed system serves as a server to provide a service for a client, the data reading request may be sent by the client.
In some embodiments of the present application, after writing data, the host generates a serial number identifier corresponding to the written data, where the generated serial number identifier is used to identify a version corresponding to the written data, and the generated serial number identifier is a first serial number identifier, and stores the first serial number identifier. And after the next data writing, the first sequence number identification is correspondingly updated.
In some embodiments of the present application, as the version of the data written into the host changes, the host may generate corresponding sequence number identifiers for the written data according to an ascending sequence of the sequence number identifiers, for example, according to a time sequence, a first sequence number identifier corresponding to the data written into the host first is larger than a first sequence number identifier corresponding to the data written into the host later, and thus, in a case where there are a plurality of first sequence number identifiers, the size of the first sequence number identifier may be directly compared to determine the level of the version of the corresponding data without resorting to the version number of the data.
Of course, in other embodiments, after the data is written into the host, the corresponding version number may also be randomly generated, in which case, in order to compare the levels of the versions of the data corresponding to the plurality of first sequence numbers, it is also necessary to determine by means of the association relationship between the first sequence numbers and the version numbers of the data.
In some embodiments of the present application, after the slave receives the data synchronized by the master, the slave performs maintenance on the corresponding second serial number identifier, that is, the second serial number identifier stored in the slave is updated to the serial number identifier indicating the version corresponding to the data sent by the master to the slave.
The exchange of the first sequence number identification and the second sequence number identification is performed between the master and the slave through heartbeat detection, so that the second sequence number identification stored by the master is obtained from the slave through heartbeat detection. For a specific implementation process of heartbeat detection, reference is made to the following description, which is not described herein again.
Step 220, if the first serial number identifier is inconsistent with the second serial number identifier, synchronizing the data of the version corresponding to the first serial number identifier to the slave.
It can be understood that, after the new data is written in the master and the written new data is synchronized to the slave, the first sequence number identifier stored in the master and the second sequence number identifier stored in the slave are the same, that is, the version corresponding to the data synchronized to the slave by the master last time is the same as the version of the corresponding data written in the master last time.
If the first serial number identifier is inconsistent with the second serial number identifier, it indicates that the version corresponding to the data synchronized to the slave by the master is different from the version of the corresponding data stored in the master, in other words, after the master completes the data synchronization last time, there may be newly written data in the master, and the newly written data is not synchronized to the slave. Therefore, whether the version of the data stored in the host is consistent with the version corresponding to the data synchronized to the slave by the host can be judged by comparing the first sequence number identification stored in the host with the second sequence number identification stored in the host.
In some embodiments of the present application, the distributed system may include two or more slaves, and therefore, in order to facilitate recording the data synchronization from the master to each slave, the master records the second serial number for each slave. In other words, after the master performs data synchronization to a slave and receives the second serial number identifier of the slave sent in the heartbeat detection, the second serial number identifier corresponding to the slave is updated to the serial number identifier of the version corresponding to the synchronized data. Therefore, when the second sequence number identifiers of all the slaves in the master are the sequence number identifiers of the versions corresponding to the synchronized data, the master is indicated to perform data synchronization on all the slaves, and the situation that the slaves are omitted to perform data synchronization is avoided.
In some embodiments of the present application, if the first serial number identifier is identical to the second serial number identifier, it indicates that the master is synchronized with the completion data, that is, the version of the data stored in the master is the same as the version of the data synchronized to each slave.
It can be understood that the serial number identifier indicated by the second serial number identifier actually originates from the serial number identifier indicated by the first serial number identifier, and due to different involved processes, it may occur that the second serial number identifier is different from the first serial number identifier in the master or the slave at the same time, and therefore, in the process of data synchronization, the first serial number identifier and the second serial number identifier need to be updated correspondingly, so as to ensure that the first serial number identifier stored in the master conforms to the version corresponding to the data stored in the master, and ensure that the data synchronization process performed by the master conforms to the second serial number identifier stored in the slave.
In some embodiments of the present application, after step 220, the method further comprises: and after the slave computer receives the data synchronized by the host computer, the slave computer updates the second sequence number identification stored by the slave computer into the sequence number identification indicating the version corresponding to the received data. Therefore, the updating of the second serial number identifier is realized, and the host acquires the updated second serial number identifier in the slave correspondingly when the host and the slave perform heartbeat detection.
Step 230, after completing the data synchronization, returning the requested read data to the initiator of the data read request.
In some embodiments of the present application, the process of the master synchronizing data to a slave includes: the host sends the newly written data in the host to the slave; after receiving the data sent by the host, the slave maintains the data, namely, the data stored in the slave is updated to the newly received data; after the data maintenance is completed, the slave machine sends maintenance result information to the master machine, and whether the data sent by the master machine is maintained in the slave machine or not is indicated through the maintenance result information. Completing the three processes is regarded as completing one data synchronization between the master and the slave.
In some embodiments of the present application, in the distributed system, to complete data synchronization means that the master completes data synchronization to each slave in the distributed system, for example, if the master receives maintenance result information indicating that data maintenance is successful sent by each slave, it is considered that data synchronization is completed in the distributed system.
In the scheme of the application, after a host in a distributed system receives a data reading request and when a first serial number identification stored in the host is determined to be inconsistent with a second serial number identification stored in the host, data synchronization is started to a slave, so that the consistency of data in the host and the slave in the distributed system is ensured, and further, the condition that the version of the data read by an initiator of the same data reading request is certainly not lower than that of the data read by the initiator before at different time points can be ensured; at the same time point, the data read by the initiator of the different data read requests are the same.
In some embodiments of the present application, as shown in fig. 3, the method further comprises:
step 310, if the slave receives the data reading request, acquiring a first serial number identifier stored in the slave and a second serial number identifier stored in the slave, where the first serial number identifier stored in the slave is obtained by performing heartbeat detection on the slave and the master.
In this embodiment, in the distributed system, the data reading request may be processed not only by the master but also by the slave. If the data reading request is received by any slave, the data synchronization is performed according to the process of the embodiment.
The heartbeat detection performed by the master machine and the slave machine is as follows: the method comprises the steps that a heartbeat request packet is sent to a slave machine by a host machine according to a preset period, a first sequence number identification stored in the host machine is added in the heartbeat request packet, and after the slave machine receives the heartbeat request packet, the first sequence number identification can be correspondingly proposed from the heartbeat request packet and stored in the slave machine.
In some embodiments of the present application, after receiving the data synchronized by the master, the slave updates the second serial number identifier stored in the slave, so as to ensure that the version of the data indicated by the second serial number identifier stored in the slave is consistent with the version corresponding to the stored data.
And step 320, if the first serial number identification stored in the slave is inconsistent with the second serial number identification stored in the slave, redirecting the data reading request received by the slave to the host, and performing data synchronization by the host according to the received data reading request.
The version of the data stored in the host computer indicated by the first sequence number identification stored in the slave computer, the version of the data stored in the slave computer indicated by the second sequence number identification stored in the slave computer, and if the first sequence number identification stored in the slave computer is consistent with the second sequence number identification stored in the slave computer, the version corresponding to the data stored in the slave computer is consistent with the version corresponding to the data stored in the host computer. In this case, data synchronization is not required, and the slave can directly return the requested read data to the initiator of the data read request.
On the contrary, if the first sequence number identifier stored in the slave is inconsistent with the second sequence number identifier stored in the slave, it indicates that the version corresponding to the data stored in the slave is inconsistent with the version corresponding to the data stored in the master, and data synchronization is required.
Since in a distributed system, the writing of data is done by the host first, the latest version of data in the distributed system must appear to the host first. On the basis, if the first sequence number identification stored by the slave machine is inconsistent with the second sequence number identification stored by the slave machine, the data reading request is redirected to the host machine, namely the slave machine transmits the data reading request to the host machine, and the host machine carries out data synchronization according to the data reading request.
After the slave redirects the data reading request to the host, the data synchronization performed by the host may be performed according to the process of step 210 and step 230, which is not described herein again.
In this embodiment, the data read request received by the distributed system may be processed by the master or processed by the slave, but the data synchronization performed based on the data read request is completed by the master, so that it can be ensured that the data in the slave is consistent with the data in the master after the data synchronization is performed.
In some embodiments of the present application, as shown in fig. 4, before the step of the slave acquiring the first serial number identifier stored by the slave, the method further comprises:
in step 410, the slave receives the heartbeat request packet sent by the master.
In some embodiments of the present application, the master sends heartbeat request packets to the slaves according to a set period. The time length of the set period may be set according to actual needs, and is not particularly limited herein.
In step 420, the sequence number identifier indicated by the first sequence number identifier stored in the host is extracted from the heartbeat request packet.
The heartbeat request packet includes a first sequence number identifier stored in the host. Therefore, the slave computer can correspondingly extract the first sequence number identification after receiving the heartbeat request packet.
Step 430, the first sequence number identifier stored in the slave is updated to the sequence number identifier extracted from the heartbeat request packet.
In this embodiment, in the heartbeat detection process, the heartbeat request packet of the first sequence number identifier stored in the master is sent to the slave by the master, so that the slave can conveniently acquire the first sequence number identifier stored in the master in time, and the slave can conveniently know the version of the data stored in the master in time.
In some embodiments of the present application, after step 410, the method further comprises: generating a heartbeat response packet according to the serial number identification indicated by the second serial number identification stored in the slave; and returning the heartbeat response packet to the host computer so that the host computer extracts the sequence number identifier from the heartbeat response packet and updates the second sequence number identifier stored in the host computer into the sequence number identifier extracted from the heartbeat response packet.
The heartbeat request packet of the first sequence number identification stored in the host is sent to the slave by the host, the slave responds to the heartbeat request packet and sends the heartbeat response packet comprising the third sequence number identification stored in the slave to the host, so that the exchange of the first sequence number identification and the third sequence number identification between the host and the slave is realized, the slave can update the first sequence number identification stored in the slave in time according to the first sequence number identification stored in the host, and similarly, the third sequence number identification stored in the host can be updated in time according to the third sequence number identification stored in the slave by the host, and the host and the slave can judge whether the version of the data in the slave is consistent with the version of the data in the host or not in time.
In some embodiments of the present application, the method further comprises: the host receives a data write request; writing the data requested to be written into the host according to the data writing request; and after the data is successfully written, generating a sequence number identifier for identifying the version corresponding to the written data.
The data write request is for requesting data writing. In this embodiment, the data write requests are processed by the host in a unified manner, so as to ensure that the writing of new data is started from the host, and it is convenient to subsequently determine whether data synchronization is required by using the version of the data stored in the host as a reference.
In some embodiments of the present application, after the host writes the content requested to be written into the host, the host returns a processing result of data writing to an initiator of the data writing request, where the processing result of data writing is used to indicate whether the data requested to be written is successfully written into the host. In this embodiment, since the host returns the processing result of data writing to the initiator of the data writing request after writing the content requested to be written into the host, high performance of data writing is ensured.
In this embodiment, after data writing is completed in the host each time, the host correspondingly generates a sequence number identifier for indicating a version corresponding to the written data, where the generated sequence number identifier is the first sequence number identifier. In some embodiments of the present application, the serial number identifiers generated by the host are sequentially incremented as the corresponding version of the written data increases.
In some embodiments of the present application, as shown in fig. 5, the method further comprises:
step 510, if it is detected that the communication between the master and the slave is interrupted, the slave acquires the second serial number identifiers stored in other slaves in the distributed system.
In some embodiments of the present application, the slave may detect that communication between the master and the slave is interrupted according to a condition of receiving a heartbeat request packet sent by the master, for example, if the master is set to send the heartbeat request packet to the slave according to a preset period T1, and if a time from last receiving of the heartbeat request packet is greater than a specified time length (where the specified time length is greater than or equal to T1), it may be determined that the master and the slave are disconnected.
In some embodiments of the present application, the reason why the communication between the master and the slave is interrupted may be that the master fails to work or the communication link between the master and the slave is broken. However, it is understood that in any case, the communication between the master and the slave is interrupted, which results in that the master in the distributed system cannot provide services, such as processing data write requests, on one hand, and on the other hand, the slave in the distributed system cannot be controlled, and thus the entire distributed system may not work normally.
Therefore, in order to reduce the influence on the distributed system due to the interruption of the communication between the master and the slaves, a slave is selected as a proxy in the slave in the distributed system, and the proxy replaces the master to execute the task originally executed by the master.
In some embodiments of the present application, each slave in the distributed slave system exchanges the second serial number identifier stored in the slave with other slaves, so that each slave in the distributed system can obtain the second serial number identifier stored in other slaves in the distributed system.
And step 520, determining the highest version serial number identifier according to the second serial number identifiers stored in the slaves in the distributed system, wherein the highest version serial number identifier refers to the second serial number identifier with the highest indicated version.
As described above, the second sequence number identifier corresponds to the version of the data stored in the slave, and therefore, the second sequence number identifier with the highest version indicated in the second sequence number identifiers stored in the slaves in the distributed system may be correspondingly determined based on the mapping relationship between the second sequence number identifier and the version corresponding to the data.
Step 530, the slave machine with the highest version serial number identification is used as the proxy, and the proxy replaces the host to provide service.
In some embodiments of the present application, after determining the proxy, the proxy synchronizes its stored data to other slaves in the distributed system. Because the data stored in the proxy host is the data with the highest version stored in each slave, the data in the proxy host is synchronized to other slaves, so that the condition that the version of the data stored in the slave is reduced after the data synchronization is performed can be avoided.
It is understood that the service provided by the proxy instead of the host may be data processing performed on the data write request and the data read request, or data synchronization processing performed in the distributed system based on the data read request, and of course, the service provided may also be task allocation and coordination performed on each slave in the distributed system, and is not limited specifically here.
In this embodiment, when the communication between the master and the slaves is interrupted, the slaves exchange the second serial number identifiers stored in the slaves themselves, and determine the master in which the highest version serial number identifier is located as the proxy, thereby implementing the election of the proxy on the slaves in the distributed system based on the second serial number identifiers stored in the slaves themselves. After the proxy is determined, the proxy replaces the host to provide service, so that the distributed system can still provide service normally under the condition that the communication between the host and the slave is interrupted.
The following specifically describes the scheme of the present application with reference to a specific application scenario.
Before proceeding with the detailed description, the terms involved are explained:
online Game (Online Game): also known as online gaming, generally refers to an electronic game in which a plurality of game players play interactive entertainment over the computer internet.
Massively multiplayer Online Role-playing game (MMORPG): the electronic role playing game is a network game which is classified according to the number of people in the electronic game. In all MMORPGs, a player can play one or more virtual characters and control the character's activities and behavior in a game scene.
Game Client (Game Client): and a program for providing a local service to the client corresponding to the game server. Generally, the game server is installed on a terminal device such as a computer and needs to be matched with a game server terminal for operation.
Game Server (Game Server): the game software program provides data calculation, verification, storage and forwarding functions for game clients, and a game developer needs to ensure stable operation and normal service functions.
In the MMORPG game, there are numerous playing methods and a large number of players, in order to improve the carrying capacity of the server, data reading and writing are usually deployed according to a distributed cluster, and one piece of game data is usually stored in a distributed system composed of a plurality of machines, one of which is a master machine and the others are slave machines. And the data consistency of the host and the slave in the distributed system is difficult to guarantee due to network and physical faults. In a specific playing method such as a battle scene and a ranking scene, the consistency of data in a host computer and a slave computer in a distributed system is high by each client, and it is required to ensure that the data read from the distributed system by different clients are the same at the same time point as far as possible.
FIG. 6 illustrates a data synchronization diagram after a host in a distributed system receives a data read request. As shown in fig. 6, the distributed system serves as a server to provide services for game clients, which are hereinafter referred to simply as clients.
As shown in fig. 6, the master stores a first serial number identifier and a second serial number identifier for each slave, and correspondingly, the slave also stores the first serial number identifier for the master and its own second serial number identifier. Specifically, as shown in fig. 6, the first serial number stored in the master is 10, and the second serial numbers stored in the master for the slave a, the slave B, and the slave C are 10, 8, and 9 in this order.
In this embodiment, a heartbeat detection mechanism (Ping Pong) is performed between the master and the slave to make the first sequence number identifier stored in the master and the first sequence number identifier stored in the slave coincide with each other, and to make the second sequence number identifier stored in the master for the slave and the second sequence number identifier stored in the slave coincide with each other.
Specifically, the host adds a first sequence number identifier stored by the host in a heartbeat request packet (Ping), and after receiving the heartbeat request packet (Ping) sent by the host, the slave extracts the first sequence number identifier from the received heartbeat request packet (Ping), and updates the first sequence number identifier stored by the slave to the first sequence number identifier extracted from the heartbeat request packet; similarly, the slave adds the second serial number identifier stored in the slave to the heartbeat response packet (Pong) responding to the heartbeat request packet of the master, and after receiving the heartbeat response packet (Pong), the master extracts the second serial number identifier from the heartbeat response packet (Pong), and updates the second serial number identifier stored in the master to the second serial number identifier extracted from the heartbeat response packet.
As shown in fig. 6, since the second sequence number identifier 8 corresponding to the slave B and the second sequence number identifier 9 corresponding to the slave C are not identical to the first sequence number identifier 10 of the master, it indicates that the versions of the data stored in the slave B and the slave C are different from the version of the data stored in the master. Therefore, the master needs to synchronize the data corresponding to the first sequence number identification to the slaves B and C. After the data synchronization is completed, the host returns the data requested to be read by the client to the client.
After the master synchronizes the data corresponding to the first serial number identifier to the slave B and the slave C, the second serial number identifier stored in the master is updated, and after the slave receives the synchronized data, the second serial number identifier stored in the slave is correspondingly updated. When next heartbeat detection is carried out, the second sequence number identification stored in the slave machine can be correspondingly transmitted to the master machine.
The host is responsible for processing a data writing request sent by the client, the host can reply a processing result of the client if the data writing is successful, and the writing performance is ensured.
Fig. 7 shows a data synchronization diagram after a slave in a distributed system receives a data read request. As shown in fig. 7, the slave C receives the data Read Request (Read Request) sent by the client, and if the second serial number identifier stored in the slave C is not consistent with the stored first serial number identifier, the slave C redirects (Redirect) the data Read Request to the master. Then the host determines whether data synchronization (Sync) is needed according to the first sequence number identification stored in the host and the second sequence number identification stored in the host: specifically, if the first sequence number identifier stored by the host itself is not consistent with the second sequence number identifier stored by the host, data synchronization (Sync) needs to be performed, and the performed data synchronization process is the same as the synchronization process in fig. 6, and is not described herein again. After the host completes the data synchronization, the data requested to be accessed by the client is returned to the game client by the host (Read Response).
Fig. 8 is a diagram illustrating data synchronization in a synchronization manner in the prior art. As shown in fig. 8, each time the client sends a data Write Request (Write Request), the data Write Request (Write Request) is processed by the Master (Master), after the Master processes the data Write Request (Write Request) locally, the Master updates and synchronizes (Sync) the newly written data to all the slaves, the slaves correspondingly maintain their own data copies and reply to the Master maintenance result (Response), and when the Master receives the successful maintenance results of all the slaves, the Master replies to the client the processing result (Write Response) of the data Write Request this time. The data reading request of the client can be sent to any slave machine for processing. The upper right shows that, although the strong consistency of data can be ensured by performing data synchronization in a synchronization manner, the processing result of the data write request of this time is replied to the client only after the host receives the successful maintenance results of all the slaves, so that the write performance of the distributed system is greatly reduced, and it is difficult to cope with a high-concurrency write scene.
Fig. 9 shows a schematic diagram of data synchronization in an asynchronous manner in the prior art. As shown in fig. 9, for the data Write Request (Write Request) of the client, the master replies the client processing result (Write Response) after updating the data locally without waiting for the acknowledgements of all the slaves; and then the background of the host synchronizes the data to all the slave machines, thereby greatly improving the write-in performance of the client. The data reading request of the client can be processed by any slave. The problem of the asynchronous method is that although the write performance is improved, the data consistency of the slave is not guaranteed, and when the client requests to read data, the host may not have time to synchronize the latest data to the slave, and the client may read the old data.
In summary, it can be seen from the analysis that, in the scheme of the present application, the data synchronization time of the master and the slave is shifted to the stage of reading data by the client, when the slave processes a data reading request, it is determined whether the data requested to be read in the slave is consistent with the version of the data stored in the master, and if the versions are consistent, synchronization is not required, and the data is directly returned to the client; if the version of the data stored in the slave machine is judged to be inconsistent with the version of the data stored in the host machine, the data reading request is forwarded to the host machine; the master computer synchronizes the trigger data, synchronizes the data to the slave computer and replies to the client.
According to the scheme, on the premise of ensuring high writing performance of the distributed system, strong consistency of data in the distributed system is ensured, and the fact that the version of the data read by one client is certainly not lower than the version of the data read by any client at different time points is ensured; meanwhile, the data read by different clients are the same at the same time point.
In a distributed system, a host provides a single point of service, and it is necessary to ensure that the distributed system serving as a server can still operate normally even after the host goes down. According to the scheme of the application, after the host fails to work down to cause the communication between the host and the slave to be interrupted, the heartbeat detection of all the slave machines and the host loses response, and an election mechanism of the host can be initiated among the slave machines in the distributed system. Fig. 10 shows a schematic diagram of proxy election between slaves. As shown in fig. 10, the third sequence number stored by the slave a is identified as 10, the third sequence number stored by the slave B is identified as 8, and the third sequence number stored by the slave C is identified as 9, where the third sequence number stored by the slave a is the largest and is the highest version sequence number, and the slave a is determined as the proxy and provides service instead of the master.
Embodiments of the apparatus of the present application are described below, which may be used to perform the methods of the above-described embodiments of the present application. For details which are not disclosed in the embodiments of the apparatus of the present application, reference is made to the above-described embodiments of the method of the present application.
Fig. 11 illustrates a data synchronization apparatus in a distributed system including a master and a plurality of slaves according to an embodiment, where the data synchronization apparatus in the distributed system includes:
a first obtaining module 1110, configured to obtain, if the host receives a data reading request, a first sequence number identifier and a second sequence number identifier stored by the host, where the first sequence number identifier is a sequence number identifier generated by the host after completing data writing and used for identifying a version corresponding to the written data; the second sequence number identification is a sequence number identification used for identifying a version corresponding to data synchronized from the host computer to the slave computer.
The data synchronization module 1120 is configured to synchronize the version of the data corresponding to the first serial number identifier with the slave device if the first serial number identifier is inconsistent with the second serial number identifier.
And a data returning module 1130, configured to return the requested read data to the initiator of the data read request after the data synchronization is completed.
In some embodiments of the present application, the apparatus further comprises: the second obtaining module is used for obtaining a first serial number identifier stored in the slave machine and obtaining a second serial number identifier stored in the slave machine if the slave machine receives a data reading request, wherein the first serial number identifier stored in the slave machine is obtained by performing heartbeat detection on the slave machine and the host machine. And the redirection module is used for redirecting the data reading request received by the slave to the host if the first serial number identification stored by the slave is inconsistent with the second serial number identification stored by the slave, and the host performs data synchronization according to the received data reading request.
In some embodiments of the present application, the apparatus further comprises: the heartbeat request packet receiving module is used for receiving a heartbeat request packet sent by the host from the slave; the first extraction module is used for extracting the sequence number identification indicated by the first sequence number identification stored in the host from the heartbeat request packet; and the first updating module is used for updating the first sequence number identification stored in the slave computer into the sequence number identification extracted from the heartbeat request packet.
In some embodiments of the present application, the apparatus further comprises: the heartbeat response packet generation module is used for generating a heartbeat response packet according to the serial number identification indicated by the second serial number identification stored in the slave; and the heartbeat response packet returning module is used for returning the heartbeat response packet to the host so that the host extracts the sequence number identifier from the heartbeat response packet and updates the second sequence number identifier stored in the host into the sequence number identifier extracted from the heartbeat response packet.
In some embodiments of the present application, the apparatus further comprises: the data write-in request receiving module is used for receiving a data write-in request by the host; the data writing module is used for writing the data requested to be written into the host according to the data writing request; and the sequence number identifier generating module is used for generating a sequence number identifier for identifying the corresponding version of the written data after the data is successfully written in to obtain a first sequence number identifier.
In some embodiments of the present application, the apparatus further comprises: the third acquisition module is used for acquiring second serial number identifications stored by other slave machines in the distributed system by the slave machines if the communication between the host machine and the slave machines is detected to be interrupted; the highest version serial number identification determining module is used for determining the highest version serial number identification according to the second serial number identification stored in each slave computer in the distributed system, wherein the highest version serial number identification refers to the second serial number identification with the highest indicated version; and the proxy determining module is used for taking the slave in which the highest version serial number is identified as the proxy and providing service by using the proxy to replace the host.
In some embodiments of the present application, the apparatus further comprises: and the second updating module is used for updating the stored second sequence number identifier into the sequence number identifier indicated by the first sequence number identifier in the slave after synchronizing the data of the version corresponding to the first sequence number identifier to the slave.
In some embodiments of the present application, the apparatus further comprises: and the third updating module is used for updating the machine synchronization point to indicate the serial number identifier of the version corresponding to the received data after the slave computer receives the data synchronized by the master computer and synchronizes the version corresponding to the first serial number identifier stored in the slave computer to the slave computer.
FIG. 12 illustrates a schematic structural diagram of a computer system suitable for use to implement the electronic device of the embodiments of the subject application.
It should be noted that the computer system 1200 of the electronic device shown in fig. 12 is only an example, and should not bring any limitation to the functions and the scope of use of the embodiments of the present application.
As shown in fig. 12, the computer system 1200 includes a Central Processing Unit (CPU) 1201, which can perform various appropriate actions and processes, such as executing the methods in the above-described embodiments, according to a program stored in a Read-Only Memory (ROM) 1202 or a program loaded from a storage section 1208 into a Random Access Memory (RAM) 1203. In the RAM 1203, various programs and data necessary for system operation are also stored. The CPU 1201, ROM 1202, and RAM 1203 are connected to each other by a bus 1204. An Input/Output (I/O) interface 1205 is also connected to bus 1204.
The following components are connected to the I/O interface 1205: an input section 1206 including a keyboard, a mouse, and the like; an output section 1207 including a Display device such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and a speaker; a storage section 1208 including a hard disk and the like; and a communication section 1209 including a Network interface card such as a LAN (Local Area Network) card, a modem, or the like. The communication section 1209 performs communication processing via a network such as the internet. A driver 1210 is also connected to the I/O interface 1205 as needed. A removable medium 1211, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like, is mounted on the drive 1210 as necessary, so that a computer program read out therefrom is mounted into the storage section 1208 as necessary.
In particular, according to embodiments of the application, the processes described above with reference to the flow diagrams may be implemented as computer software programs. For example, embodiments of the present application include a computer program product comprising a computer program embodied on a computer readable medium, the computer program comprising program code for performing the method illustrated by the flow chart. In such an embodiment, the computer program may be downloaded and installed from a network through the communication section 1209, and/or installed from the removable medium 1211. The computer program executes various functions defined in the system of the present application when executed by a Central Processing Unit (CPU) 1201.
It should be noted that the computer readable medium shown in the embodiments of the present application may be a computer readable signal medium or a computer readable storage medium or any combination of the two. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the foregoing. More specific examples of the computer readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a Read-Only Memory (ROM), an Erasable Programmable Read-Only Memory (EPROM), a flash Memory, an optical fiber, a portable Compact Disc Read-Only Memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the present application, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. In this application, however, a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may also be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wired, etc., or any suitable combination of the foregoing.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. Each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams or flowchart illustration, and combinations of blocks in the block diagrams or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units described in the embodiments of the present application may be implemented by software, or may be implemented by hardware, and the described units may also be disposed in a processor. Wherein the names of the elements do not in some way constitute a limitation on the elements themselves.
As another aspect, the present application also provides a computer-readable storage medium, which may be contained in the electronic device described in the above embodiments; or may exist separately without being assembled into the electronic device. The computer-readable storage medium carries computer-readable instructions that, when executed by a processor, implement the method in the embodiments described above.
According to an aspect of the present application, there is also provided an electronic device, including: a processor; a memory having computer readable instructions stored thereon which, when executed by the processor, implement the method of the above embodiments.
It should be noted that although in the above detailed description several modules or units of the device for action execution are mentioned, such a division is not mandatory. Indeed, the features and functionality of two or more modules or units described above may be embodied in one module or unit, according to embodiments of the application. Conversely, the features and functions of one module or unit described above may be further divided into embodiments by a plurality of modules or units.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a touch terminal, or a network device, etc.) to execute the method according to the embodiments of the present application.
Other embodiments of the present application will be apparent to those skilled in the art from consideration of the specification and practice of the embodiments disclosed herein. This application is intended to cover any variations, uses, or adaptations of the invention following, in general, the principles of the application and including such departures from the present disclosure as come within known or customary practice within the art to which the invention pertains.
It will be understood that the present application is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the application is limited only by the appended claims.

Claims (10)

1. A method for synchronizing data in a distributed system, the distributed system including a master and a plurality of slaves, the method comprising:
if the host receives a data reading request, acquiring a first sequence number identifier and a second sequence number identifier stored by the host, wherein the first sequence number identifier is a sequence number identifier which is generated by the host after data writing is finished and is used for identifying a corresponding version of the written data; the second sequence number identification is a sequence number identification used for identifying a version corresponding to the synchronous data from the host to the slave;
if the first serial number identification is inconsistent with the second serial number identification, synchronizing the data of the version corresponding to the first serial number identification to the slave;
if the slave machine receives a data reading request, acquiring a first serial number identifier stored by the slave machine and a second serial number identifier stored by the slave machine, wherein the first serial number identifier stored by the slave machine is obtained by performing heartbeat detection on the slave machine and the host machine;
if the first serial number identification stored by the slave machine is inconsistent with the second serial number identification stored by the slave machine, redirecting the data reading request received by the slave machine to the host machine, and carrying out data synchronization by the host machine according to the received data reading request;
And after the data synchronization is finished, returning the requested read data to the initiator of the data read request.
2. The method of claim 1, wherein prior to obtaining the first sequence number identification stored by the slave, the method further comprises:
the slave machine receives a heartbeat request packet sent by the host machine;
extracting a sequence number identification indicated by a first sequence number identification stored by the host from the heartbeat request packet;
and updating the first sequence number identification stored by the slave machine into the sequence number identification extracted from the heartbeat request packet.
3. The method according to claim 2, wherein after the slave receives the heartbeat request packet sent by the master, the method further comprises:
generating a heartbeat response packet according to the serial number identification indicated by the second serial number identification stored in the slave computer;
and returning the heartbeat response packet to the host computer so that the host computer extracts the sequence number identification from the heartbeat response packet and updates the second sequence number identification stored by the host computer into the sequence number identification extracted from the heartbeat response packet.
4. The method of claim 1, further comprising:
If the communication between the host and the slave is interrupted, the slave acquires second serial number identifications stored by other slaves in the distributed system;
determining a highest version serial number identifier according to second serial number identifiers stored in all slave machines in the distributed system, wherein the highest version serial number identifier is the second serial number identifier with the highest indicated version;
and taking the slave machine with the highest version serial number as a proxy, and replacing the master machine by the proxy to provide service.
5. The method of claim 1, further comprising:
the host receives a data write request;
writing the data requested to be written into the host according to the data writing request;
and after the data is successfully written, generating a serial number identifier for identifying a version corresponding to the written data to obtain the first serial number identifier.
6. The method of claim 1, wherein after synchronizing the version of data corresponding to the first sequence number identifier to a slave, the method further comprises:
and after the slave computer receives the data synchronized by the host computer, the slave computer updates the second sequence number identification stored by the slave computer into the sequence number identification indicating the version corresponding to the received data.
7. A data synchronization apparatus in a distributed system, the distributed system including a master and a plurality of slaves, the apparatus comprising:
a first obtaining module, configured to obtain, if the host receives a data reading request, a first sequence number identifier and a second sequence number identifier stored in the host, where the first sequence number identifier is a sequence number identifier generated by the host after data writing is completed and used to identify a version corresponding to the written data; the second sequence number identification is a sequence number identification used for identifying a version corresponding to the synchronous data from the host to the slave;
the data synchronization module is used for synchronizing the data of the version corresponding to the first serial number identification to the slave computer if the first serial number identification is inconsistent with the second serial number identification;
a second obtaining module, configured to obtain a first sequence number identifier stored in the slave and a second sequence number identifier stored in the slave if the slave receives a data reading request, where the first sequence number identifier stored in the slave is obtained by performing heartbeat detection on the slave and the host;
a redirection module, configured to redirect a data read request received by the slave to the host if the first sequence number identifier stored in the slave is inconsistent with the second sequence number identifier stored in the slave, and perform data synchronization by the host according to the received data read request;
And the data return module is used for returning the data requested to be read to the initiator of the data reading request after the data synchronization is finished.
8. The apparatus of claim 7, further comprising:
a heartbeat request packet receiving module, configured to receive, by the slave, a heartbeat request packet sent by the host;
a first extracting module, configured to extract, from the heartbeat request packet, a sequence number identifier indicated by a first sequence number identifier stored in the host;
and the first updating module is used for updating the first sequence number identification stored in the slave computer to the sequence number identification extracted from the heartbeat request packet.
9. An electronic device, comprising:
a processor;
a memory having stored thereon computer readable instructions which, when executed by the processor, implement the method of any one of claims 1 to 7.
10. A computer readable storage medium having computer readable instructions stored thereon which, when executed by a processor, implement the method of any one of claims 1 to 7.
CN202011100080.XA 2020-10-14 2020-10-14 Data synchronization method in distributed system and related equipment Active CN112138372B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011100080.XA CN112138372B (en) 2020-10-14 2020-10-14 Data synchronization method in distributed system and related equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011100080.XA CN112138372B (en) 2020-10-14 2020-10-14 Data synchronization method in distributed system and related equipment

Publications (2)

Publication Number Publication Date
CN112138372A CN112138372A (en) 2020-12-29
CN112138372B true CN112138372B (en) 2022-07-29

Family

ID=73951856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011100080.XA Active CN112138372B (en) 2020-10-14 2020-10-14 Data synchronization method in distributed system and related equipment

Country Status (1)

Country Link
CN (1) CN112138372B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311641B (en) * 2020-12-30 2021-04-06 深圳市法拉第电驱动有限公司 CAN communication-based communication method and system for upper computer and lower computer

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160182638A1 (en) * 2011-10-11 2016-06-23 Tianjin Surdoc Corp. Cloud serving system and cloud serving method
CN103905220B (en) * 2012-12-25 2018-02-27 腾讯科技(北京)有限公司 Data synchronizing processing method and system
CN107300851A (en) * 2016-04-14 2017-10-27 南京南瑞继保电气有限公司 A kind of logical algorithm unperturbed update method of redundancy control system
CN106341454B (en) * 2016-08-23 2019-09-24 世纪龙信息网络有限责任公司 Across computer room distributed data base management system (DDBMS) mostly living and method
CN109240257B (en) * 2017-07-11 2021-06-01 深圳市中兴微电子技术有限公司 Multi-slave unmanned aerial vehicle test system and method

Also Published As

Publication number Publication date
CN112138372A (en) 2020-12-29

Similar Documents

Publication Publication Date Title
CN106528224B (en) Content updating method, server and system for Docker container
KR101750429B1 (en) Document editing system and method for collaborative editing
US11878251B2 (en) Method of synchronizing online game, and server device
US20020161821A1 (en) Synchronization and recovery of peers in a peer to peer environment
US9864791B2 (en) Flow for multi-master replication in distributed storage
CN106708603B (en) Virtual machine quick recovery method and device
JP7397094B2 (en) Resource configuration method, resource configuration device, computer equipment, and computer program
JP6473259B1 (en) System, server, program and method for detecting fraud of user in game
CN109173270B (en) Game service system and implementation method
CN111399991B (en) Virtual resource locking method and device, storage medium and electronic device
CN110180177B (en) Maintenance method, device and medium of online game and electronic equipment
CN111544895B (en) Ranking list processing method and device, electronic equipment and storage medium
CN110888858A (en) Database operation method and device, storage medium and electronic device
CN112190924A (en) Data disaster tolerance method, device and computer readable medium
CN107665141B (en) Database configuration method and equipment thereof
CN106075911A (en) A kind of generation method and device of the micro-end of web game
CN112138372B (en) Data synchronization method in distributed system and related equipment
US9977795B1 (en) System and method for multiplayer network gaming
CN112988377B (en) Resource allocation method, system and medium for cloud service
CN107168774A (en) It is a kind of based on the virtual machine migration method being locally stored and system
CN113230661A (en) Data synchronization method and device, computer readable medium and electronic equipment
US11138079B2 (en) Repairing partially completed transactions in fast consensus protocol
JP2019045936A (en) Information processing device, information processing system, and program
CN113893528A (en) Game team processing method, game team processing device, game team processing medium, and electronic device
CN110221868A (en) Dispositions method, device, electronic equipment and the storage medium of host system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210125

Address after: 5 / F, area C, 1801 Hongmei Road, Xuhui District, Shanghai, 201200

Applicant after: Tencent Technology (Shanghai) Co.,Ltd.

Address before: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors

Applicant before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd.

GR01 Patent grant
GR01 Patent grant