Data replication protocol
First Claim
1. A method for replicating data from a master server to a slave server over a network, the method comprising the steps of:
- sending a packet of information from the master server to the slave server, the information relating to a change in the data stored on the master server and containing a version number for the present state of the data;
allowing the slave server to determine whether the data on the slave server has been updated to correspond to the version number contained in the packet; and
requesting a delta be sent from the master server to the slave server if the data on the slave server does not correspond to the version number contained in the packet, the delta containing information needed to update the slave server.
2 Assignments
0 Petitions
Accused Products
Abstract
Data can be replicated over a network using a one or two phase method. For the one phase method, a master server containing an original copy of the data sends a version number for the current state of the data to each slave on the network so that each slave can request a delta from the master. The delta that is requested contains the data necessary to update the slave to the appropriate version of the data. For the two phase method, the master server sends a packet of information to each slave. The packet of information can be committed by the slaves if each slave is able to process the commit.
-
Citations
41 Claims
-
1. A method for replicating data from a master server to a slave server over a network, the method comprising the steps of:
-
sending a packet of information from the master server to the slave server, the information relating to a change in the data stored on the master server and containing a version number for the present state of the data;
allowing the slave server to determine whether the data on the slave server has been updated to correspond to the version number contained in the packet; and
requesting a delta be sent from the master server to the slave server if the data on the slave server does not correspond to the version number contained in the packet, the delta containing information needed to update the slave server. - View Dependent Claims (2, 3, 4)
-
-
5. A method for replicating data from a master server to a slave server over a network, the method comprising the steps of:
-
sending a version number from the master server to the slave server, the version number relating to the present state of the data stored on the master server;
allowing the slave server to determine whether the slave server has been updated to reflect the present state of the data corresponding to the version number sent from the master server; and
requesting a delta be sent from the master server to the slave server if the slave server does not correspond to the version number sent by the master, the delta containing information needed to update the slave server. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 37)
-
-
14. A method for replicating data over a network including a master server and at least one slave server, the method comprising the steps of:
-
sending a packet of information from a master server to each slave server on the network, the information relating to a change in the data stored on the master server and containing a current version number for the present state of the data, the information further relating to previous changes in the data and a version number for each previous change;
allowing each slave server to determine whether the slave server has been updated to correspond to the current version number;
allowing each slave server to commit the information if the slave server has not missed a previous change; and
allowing each slave server having missed a previous change to request that previous change be sent from the master server to the slave server before the slave server commits the packet of information.
-
-
19. A method for replicating data over a network including a master server and at least one slave server, the method comprising the steps of:
-
sending a packet of information from a master server to each slave server on the network, the information relating to a change in the data stored on the master server and containing a prior version number for the prior state and a new version number for the new state of the data, the information further relating to previous changes in the data and a previous version number for each previous change;
allowing each slave server to determine whether the data on the slave server corresponds to the prior version number contained in the packet;
allowing each slave server to commit the packet of information if the data on the slave server corresponds to the prior version number contained in the packet, the commit also updating the version of the slave server to the new version number; and
allowing each slave server not corresponding to the prior version number to request that a delta be sent from the master server containing the information necessary to update the slave to the prior version number before the slave server commits the packet of information.
-
-
20. A method for replicating data over a network including a master server and at least one slave server, the method comprising the steps of:
-
sending a packet of information from a master server to each slave server on the network, the information relating to a change in the data stored on the master server and containing a version number for the prior state and a version number for the new state of the data, the information further relating to previous changes in the data and a version number for each previous change;
allowing each slave server to determine whether the data on the slave server corresponds to the prior version number contained in the packet;
allowing each slave server to commit the packet of information if the data on the slave server corresponds to the prior version number contained in the packet, the commit also updating the version of the slave server to the new version number; and
allowing each slave server not corresponding to the prior version number to request that a delta be sent from the master server containing the information necessary to update the slave to the new version number.
-
-
21. A method for replicating data from a master server to at least one slave server over a network, the method comprising the steps of:
-
sending a packet of information from the master server to a slave server, the information relating to a change in the data stored on the master server and containing a version number for the present state of the data;
receiving the packet of information to a slave server;
allowing the slave server to determine whether the slave server has been updated to correspond to the version number contained in the packet, and to further determine whether the slave server can process the packet of information if needed to update to correspond to the version number contained in the packet;
sending a signal from the slave server to the master server, the signal indicating whether the slave server needs to be updated and whether the slave server can process the update; and
sending a response signal from the master server to the slave server indicating whether the slave server should commit to the information contained in the packet; and
committing the packet of information to the slave server if so indicated by the response signal. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A method for replicating data over a network, the method comprising the steps of:
-
(a) determining whether the replication should be accomplished in a one or two phase method;
(b) sending replication information determined to he accomplished in a one phase method by;
sending a packet of information from the master server to the slave server, the information relating to a change in the data stored on the master server and containing a version number for the present state of the data;
receiving the packet of information to a slave server;
allowing the slave server to determine whether the data on the slave server has been updated to correspond to the version number; and
requesting a delta be sent from the master server to the slave server if the slave server does not correspond to the version number, the delta containing information needed to update the slave server;
(c) sending replication information determined to he accomplished in a two phase method by;
sending a packet of information from the master server to the slave server, the information relating to a change in the data stored on the master server and containing a version number for the present state of the data;
allowing the slave server to determine whether the slave server has been updated to correspond to the version number, and to further determine whether the slave server can process the packet of information;
sending a signal from the slave server to the master server indicating whether the slave server needs to be updated and whether the slave server can process the packet of information;
sending a response signal from the master server to the slave server indicating whether the slave server should commit to the packet of information; and
committing the packet of information to the slave server if so indicated by the response signal.
-
-
32. A method for replicating data over a network, the method comprising the steps of:
-
(a) determining whether replication should be accomplished in a one or two phase method;
(b) sending data to be replicated in a one phase method by;
sending a version number for the current state of the data from a master server to a slave server;
requesting a delta be sent from the master server to the slave server if the data on the slave server does not correspond to the version number; and
(c) sending data to be replicated in a two phase method by;
sending a packet of information from the master server to a slave server;
determining whether the slave server can process the packet of information; and
committing the packet of information to the slave server if the slave server can process the packet of information.
-
-
33. A method for replicating data from a master to a plurality of slaves on a network, the method comprising the steps of:
-
(a) determining whether replication should be accomplished in a one or two phase method;
(b) sending data to be replicated in a one phase method by;
sending a version number for the current state of the data from the master to each slave; and
requesting a delta be sent from the master to each slave containing data that does not correspond to the version number;
(c) sending data to be replicated in a two phase method by;
sending a packet of information from the master to each slave; and
committing the packet of information to the slaves if each of the plurality of slaves can process the packet of information. - View Dependent Claims (36)
-
-
34. A method for replicating data from a master to a plurality of slaves on a network using one and two phase methods, the method comprising the steps of:
-
(a) sending data to be replicated in a one phase method by sending a version number for the current state of the data from the master to each slave so that each slave may request a delta to be sent from the master to the slave to update the data on the slave; and
(b) sending data to be replicated in a two phase method by sending a packet of information from the master to each slave, the packet of information to be committed by each slave if every slave is able to commit the packet of information.
-
-
35. A method for replicating data on a clustered network using one and two phase methods, each network cluster containing a cluster master and at least one cluster slave, the method comprising the steps of:
-
(a) sending data to be replicated in a one phase method by sending a version number for the current state of the data from a first cluster master to all other cluster masters so the other cluster masters may each request a delta; and
(b) sending data to be replicated in a two phase method by sending a packet of information from the first cluster master to each other cluster master, the packet of information to be committed by the other cluster masters if the other cluster masters are able to commit the packet of information.
-
-
38. A computer-readable medium, comprising:
-
(a) means for sending a packet of information from a master server to each slave server on the network, the information relating to a change in the data stored on the master server and containing a current version number for the present state of the data, the information further relating to previous changes in the data and a version number for each previous change;
(b) means for allowing each slave server to determine whether the slave server has been updated to correspond to the current version number;
(c) means for allowing each slave server to commit the information if the slave server has not missed a previous change; and
(d) means for allowing each slave server having missed a previous change to request that previous change be sent from the master server to the slave server before the slave server commits the packet of information.
-
-
39. A computer program product for execution by a server computer for replicating data over a network, comprising:
-
(a) computer code for sending a packet of information from a master server to each slave server on the network, the information relating to a change in the data stored on the master server and containing a current version number for the present state of the data, the information further relating to previous changes in the data and a version number for each previous change;
(b) computer code for allowing each slave server to determine whether the slave server has been updated to correspond to the current version number;
(c) computer code for allowing each slave server to commit the information if the slave server has not missed a previous change; and
(d) computer code for allowing each slave server having missed a previous change to request that previous change be sent from the master server to the slave server before the slave server commits the packet of information.
-
-
40. A system for replicating data over a network, comprising:
-
(a) means for sending a packet of information from a master server to each slave server on the network, the information relating to a change in the data stored on the master server and containing a current version number for the present state of the data, the information further relating to previous changes in the data and a version number for each previous change;
(b) means for allowing each slave server to determine whether the slave server has been updated to correspond to the current version number;
(c) means for allowing each slave server to commit the information if the slave server has not missed a previous change; and
(d) means for allowing each slave server having missed a previous change to request that previous change be sent from the master server to the slave server before the slave server commits the packet of information.
-
-
41. A computer system comprising:
-
a processor;
object code executed by said processor, said object code configured to;
(a) send a packet of information from a master server to each slave server on the network, the information relating to a change in the data stored on the master server and containing a current version number for the present state of the data, the information further relating to previous changes in the data and a version number for each previous change;
(b) allow each slave server to determine whether the slave server has been updated to correspond to the current version number;
(c) allow each slave server to commit the information if the slave server has not missed a previous change; and
(d) allow each slave server having missed a previous change to request that previous change be sent from the master server to the slave server before the slave server commits the packet of information.
-
Specification