Claims
- 1. A system for replicating data over a network, comprising:
a. a master server containing an original copy of the data, said master server comprising:
i. a master user layer adapted to start a data replication process by calling a start method, the master user layer further adapted to send information relating to the original copy of the data; ii. a master service layer containing the start method and adapted to receive the call from the master user layer and the information relating to the original copy of the data, the master service layer further adapted to create and send a data replication packet containing at least some of the information relating to the original copy of the data; b. a slave server adapted to store a copy of the data from the master server, the slave server comprising:
i. a slave service layer adapted to receive the data replication packet from the master service layer and process the data replication packet, the slave service layer further adapted to send information relating to the data replication packet; and ii. a slave user layer adapted to receive the information relating to the data replication packet from the slave service layer, the slave user layer adapted to store the information in the data replication packet.
- 2. A system according to claim 1, wherein said master user layer is in communication with at least one of a master user and a master user device.
- 3. A system according to claim 1, wherein said master user layer is adapted to send information relating to the original copy of the data in the form of a delta, the delta containing information relating to changes between a previous state and the current state of the original copy of the data.
- 4. A system according to claim 1, wherein said master user layer is adapted to update the original copy of the data.
- 5. A system according to claim 1, wherein said master user layer is adapted to send a roll-back message indicating that a change to the original copy of the data should not be replicated on a slave server.
- 6. A system according to claim 1, wherein said master user layer is adapted to set a timeout value for the replication.
- 7. A system according to claim 1, wherein said master user layer is adapted to create a delta between the present state of the original copy of the data and the prior state of the original copy of the data.
- 8. A system according to claim 1, wherein said master user layer is adapted to create a delta between the present state of the original copy of the data and a previous state of the original copy of the data.
- 9. A system according to claim 1, wherein said master user layer is adapted to generate a unique version number for each state of the original copy of the data.
- 10. A system according to claim 1, wherein said master service layer is adapted to multicast the data replication packet.
- 11. A system according to claim 1, wherein said master service layer is adapted to heartbeat the data replication packet.
- 12. A system according to claim 1, wherein said master service layer is adapted to include a version number in the data replication packet.
- 13. A system according to claim 1, wherein said master service layer is adapted to include information necessary to update the copy of the data on the slave server to the current state of the original copy of the data.
- 14. A system according to claim 1, wherein said master service layer is further adapted to create and send a data replication packet comprising a delta.
- 15. A system according to claim 1, wherein said master service layer is further adapted to create and send a data replication packet comprising a delta between successive states of the original copy of the data.
- 16. A system according to claim 1, wherein said master service layer is further adapted to create and send a data replication packet comprising a delta between arbitrary states of the original copy of the data.
- 17. A system according to claim 1, wherein said master service layer is adapted to request a delta from the master user layer.
- 18. A system according to claim 1, wherein said master service layer is adapted to send a commit message to a slave service layer.
- 19. A system according to claim 1, wherein said master service layer is adapted to heartbeat a commit message to a slave service layer.
- 20. A system according to claim 1, wherein said master service layer is adapted to multicast a commit message to a slave service layer.
- 21. A system according to claim 1, wherein said master service layer is adapted to send an abort message to a slave service layer.
- 22. A system according to claim 1, wherein said master service layer is adapted to heartbeat an abort message to a slave service layer.
- 23. A system according to claim 1, wherein said master service layer is adapted to multicast an abort message to a slave service layer.
- 24. A system according to claim 1, wherein said slave user layer is in communication with at least one of a slave user and a slave user device.
- 25. A system according to claim 1, wherein said slave user layer is adapted to check the current version number of data stored on the slave server.
- 26. A system according to claim 1, wherein said slave user layer is adapted to commit information relating to the data replication packet to the data stored on the slave server.
- 27. A system according to claim 1, wherein said slave user layer is adapted to abort an update to the data stored on the slave server.
- 28. A system according to claim 1, wherein said slave user layer is adapted to process a prepare request contained in the data replication packet.
- 29. A system according to claim 1, wherein said slave user layer is adapted to send a response to the slave service layer relating to a prepare request contained in the data replication packet.
- 30. A system according to claim 1, wherein said slave user layer is adapted to persistently cache data on a local disk.
- 31. A system according to claim 1, wherein said slave user layer is adapted to update the version number of the copy of the data on the slave server.
- 32. A system according to claim 1, wherein said slave service layer is adapted to request a delta from the master service layer.
- 33. A system according to claim 1, wherein said slave service layer is adapted to request the current version number of the data stored on the slave server from the slave user layer.
- 34. A system according to claim 1, wherein said slave service layer is adapted to send a commit message to the slave user layer.
- 35. A system according to claim 1, wherein said slave service layer is adapted to send an abort message to the slave user layer.
- 36. A method for replicating data from a master server to a slave server, comprising:
a. sending a start call from a master user level to a master service level on a master server, the start call containing information relating to the current state of master data on the master server; b. sending the information to a slave service layer on a slave server, the slave service layer adapted to check a slave user layer on the slave server to determine whether slave data on the slave server has the current state; c. sending a request for a delta from the slave service layer to the master service layer, the master service layer adapted to request and receive a delta from the master user layer; d. sending a delta from the master service layer to the slave service layer, the delta containing the information necessary to bring the slave data up to the current state, the slave service layer adapted to process the delta and send the information to the slave user layer; and e. updating the slave data using the slave user layer.
- 37. A method according to claim 36, further comprising:
determining a version number for the current state of the data using the master user layer.
- 38. A method according to claim 36, further comprising:
sending the information to the slave service layer by multicasting.
- 39. A method according to claim 36, further comprising:
sending information to the slave service layer, the information comprising a version number for the current state of the master data.
- 40. A method for replicating data from a master server to a slave server, comprising:
a. sending a new delta from a master user level to a master service level on a master server, the delta containing information relating to a change from the prior state to the current state in master data stored on the master server; b. sending the new delta form the master service layer to a slave service layer on a slave server, the slave service layer adapted to check a slave user layer on the slave server to determine whether the slave data on the slave server has the current state; c. sending a request for a syncing delta from the slave service layer to the master service layer, the master service layer adapted to request and receive a syncing delta from the master user layer, the syncing delta containing information necessary to update the slave data to the prior state of the master data; d. sending the syncing delta from the master service layer to the slave service layer, the slave service layer adapted to process the delta and send the information to the slave user layer to be committed to the slave data; and e. committing the information in the new delta to the slave data using the slave user layer.
- 41. A method for replicating data from a master server to a slave server over a network, the method comprising the steps of:
a. sending a version number from a master service layer to a slave service layer relating to the present state of the original copy of the data on the master server; b. allowing a slave user layer to determine whether the data on the slave server has been updated to correspond to the version number; and c. requesting a delta be sent from the master service layer to the slave service layer if the data on the slave server does not correspond to the version number.
- 42. A method according to claim 36, further comprising:
allowing the slave user layer to persistently cache the data on a local disk for each slave server.
- 43. A method according to claim 36, further comprising:
allowing the master user layer to determine a unique version number for the current state of the data on the master server.
- 44. A method according to claim 36, further comprising:
including data with the version number that is necessary for a slave user layer to update the data on a slave server.
- 45. A method according to claim 36, further comprising:
committing the data necessary to update the slave server as soon as it is received by the slave user layer.
- 46. A method for replicating data over a network including a master server and at least one slave server, the method comprising the steps of:
a. sending a packet of information from a master service layer to a slave service layer on 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; b. allowing a slave user layer on each slave server to determine whether the data on the slave server corresponds to the prior version number contained in the packet; c. allowing each slave user layer 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 d. allowing each slave user layer not corresponding to the prior version number to request that a delta be sent from the master service layer to the slave service layer corresponding to that slave user layer, the delta containing the information necessary to update the slave to the prior version number before the slave service layer commits the packet of information.
- 47. A method for replicating data from a master server to at least one slave server over a network, the method comprising the steps of:
a. sending a packet of information from a master service layer on the master server to the user service layer on 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; b. allowing the slave user layer on the 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 user layer can process the packet of information if needed to update to correspond to the version number contained in the packet; c. sending a signal from the slave service layer to the master service layer, the signal indicating whether the slave server needs to be updated and whether the slave server can process the update; d. sending a response signal from the master service layer to the slave service layer indicating whether the slave user layer should commit to the information contained in the packet; and e. committing the packet of information to the slave server if so indicated by the response signal.
- 48. A computer-readable medium, comprising:
a. means for sending a version number from a master service layer to a slave service layer relating to the present state of the original copy of the data on the master server; b. means for allowing a slave user layer to determine whether the data on the slave server has been updated to correspond to the version number; and c. means for requesting a delta be sent from the master service layer to the slave service layer if the data on the slave server does not correspond to the version number.
- 49. A computer program product for execution by a server computer for replicating data from a master server to a slave server over a network, comprising:
a. computer code for sending a version number from a master service layer to a slave service layer relating to the present state of the original copy of the data on the master server; b. computer code for allowing a slave user layer to determine whether the data on the slave server has been updated to correspond to the version number; and c. computer code for requesting a delta be sent from the master service layer to the slave service layer if the data on the slave server does not correspond to the version number.
- 50. A system for replicating data over a network, comprising:
a. means for sending a version number from a master service layer to a slave service layer relating to the present state of the original copy of the data on the master server; b. means for allowing a slave user layer to determine whether the data on the slave server has been updated to correspond to the version number; and c. means for requesting a delta be sent from the master service layer to the slave service layer if the data on the slave server does not correspond to the version number.
- 51. A computer system comprising:
a processor; object code executed by said processor, said object code configured to:
a. send a version number from a master service layer to a slave service layer relating to the present state of the original copy of the data on the master server; b. allow a slave user layer to determine whether the data on the slave server has been updated to correspond to the version number; and c. request a delta be sent from the master service layer to the slave service layer if the data on the slave server does not correspond to the version number.
CLAIM OF PRIORITY
[0001] This application claims priority to U.S. Provisional patent application No. 60/305,978, filed Jul. 16, 2001, entitled LAYERED ARCHITECTURE FOR DATA REPLICATION, incorporated herein by reference.
[0002] The following application is cross-referenced and incorporated herein by reference:
[0003] U.S. patent application Ser. No. ______ entitled “DATA REPLICATION PROTOCOL,” inventors Dean Bernard Jacobs, Reto Kramer, and Ananthan Bala Srinivasan, filed Oct. 11, 2001.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60305978 |
Jul 2001 |
US |