Consolidation of replicated data
First Claim
1. A method for managing updates to a replicated data resource, comprising the steps of:
- applying one or more updates to a first replica of the data resource at a first data processing system;
comparing said updates applied to the first replica with a master copy of the data resource held at a second data processing system;
for said updates which do not conflict with updates applied to the master copy, applying said non-conflicting updates to the master copy; and
for said updates which conflict with updates concurrently applied to the master copy, backing out said conflicting updates from the first replica and replacing them in the first replica with the corresponding updates applied to the master copy.
1 Assignment
0 Petitions
Accused Products
Abstract
Provided are methods, apparatus and computer programs for managing updates to replicated data, which enable one or many replicas of a data resource to be updated independently of a master copy of the data resource, and then each replica to be separately consolidated with the master copy. If data updates applied ‘optimistically’ to a local replica conflict with updates applied to the master copy (since the last consolidation with that replica), then the local updates will not be applied to the master copy. Instead, the conflicting local updates are replaced using the current version of the master copy—preferably by backing out the conflicting update transactions and then applying the latest updates from the master copy. If there are no data conflicts when consolidation is performed, then both the master copy and the replica are successfully updated. This provides the high data availability and scalability of concurrently updatable replicas, while avoiding the complexity of conventional solutions to conflict resolution between replicas. The invention is applicable to on-line goods or services ordering applications, especially where replicas of a data resource are updated on a mobile device.
147 Citations
20 Claims
-
1. A method for managing updates to a replicated data resource, comprising the steps of:
-
applying one or more updates to a first replica of the data resource at a first data processing system;
comparing said updates applied to the first replica with a master copy of the data resource held at a second data processing system;
for said updates which do not conflict with updates applied to the master copy, applying said non-conflicting updates to the master copy; and
for said updates which conflict with updates concurrently applied to the master copy, backing out said conflicting updates from the first replica and replacing them in the first replica with the corresponding updates applied to the master copy. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for managing updates to a replicated data resource, comprising the steps of:
-
in response to one or more updates applied to a first replica of the data resource at a first data processing system, comparing said updates with a master copy of the data resource held at a second data processing system;
for said updates which do not conflict with the master copy, applying said non-conflicting updates to the master copy; and
for said updates which conflict with the master copy due to other updates applied to the master copy, sending to the first data processing system an instruction to back out said conflicting updates from the first replica and to replace them in the first replica with the corresponding other updates applied to the master copy.
-
-
13. A method for managing updates to a replicated data resource, comprising the steps of:
-
applying one or more updates to a first replica of the data resource at a first data processing system;
sending a request, to a second data processing system which holds a master copy of said data resource, for applying the one or more updates to the master copy;
for said updates which do not conflict with the master copy and are successfully applied to the master copy, responding to a confirmation of the successful application of updates to the master copy by committing the updates to the first replica at the first data processing system; and
for said updates which conflict with the master copy due to other updates applied to the master copy, such that said conflicting updates are not applied to the master copy, responding to a confirmation of failure from the second data processing system by backing out said conflicting updates from the first replica and replacing them in the first replica with the corresponding other updates applied to the master copy. - View Dependent Claims (14)
-
-
15. A database manager for managing updates to a replicated data resource, the database manager including:
-
means, responsive to an identification of one or more updates applied to a first replica of the data resource at a first data processing system, for comparing said updates with a master copy of the data resource held at a second data processing system;
means for applying to the master copy said updates which do not conflict with the master copy;
means for sending to the first data processing system an instruction to back out from the first replica said updates which conflict with the master copy, due to other updates applied to the master copy, and to replace them in the first replica with the corresponding updates applied to the master copy.
-
-
16. A database manager for running at a first data processing system for use in a method for managing updates to a replicated data resource, the database manager including:
-
means for applying one or more updates to a first replica of the data resource at the first data processing system;
means for sending a request, to a second data processing system which holds a master copy of said data resource, for applying the one or more updates to the master copy;
means for responding to a confirmation of the successful application of updates to the master copy, for said updates which do not conflict with the master copy, by committing the updates to the first replica at the first data processing system; and
means for responding to a confirmation of failure to apply updates to the master copy, for said updates which conflict with the master copy due to other updates applied to the master copy, by backing out said conflicting updates from the first replica and replacing them in the first replica with the corresponding other updates applied to the master copy.
-
-
17. A data processing system comprising:
-
a processor;
a storage means for storing a master copy of a data resource;
means, responsive to an identification of one or more updates applied to a first replica of the data resource at a first data processing system, for comparing said updates with the master copy of the data resource;
means for applying to the master copy said updates which do not conflict with the master copy;
means for sending to the first data processing system an instruction to back out from the first replica said updates which conflict with the master copy, due to other updates applied to the master copy, and to replace them in the first replica with the corresponding other updates applied to the master copy.
-
-
18. A data processing system comprising:
-
a processor;
a storage means for storing a first replica of a data resource;
means for applying one or more updates to the first replica of the data resource;
means for sending a request, to a second data processing system which holds a master copy of said data resource, for applying said one or more updates to the master copy;
means for responding to a confirmation of the successful application of updates to the master copy, for said updates which do not conflict with the master copy, by committing the updates to the first replica; and
means for responding to a confirmation of failure to apply updates to the master copy, for said updates which conflict with the master copy due to other updates applied to the master copy, by backing out said conflicting updates from the first replica and replacing them in the first replica with the corresponding other updates applied to the master copy.
-
-
19. A program product comprising machine-readable program code recorded on a recording medium, the program code comprising instructions for controlling the operation of a current data processing system on which it executes to perform the following steps:
-
in response to one or more updates applied to a first replica of the data resource at a first data processing system, comparing said updates with a master copy of the data resource held at the current data processing system;
for said updates which do not conflict with the master copy, applying said non-conflicting updates to the master copy; and
for said updates which conflict with the master copy due to other updates applied to the master copy, sending to the first data processing system an instruction to back out said conflicting updates from the first replica and to replace them in the first replica with the corresponding other updates applied to the master copy.
-
-
20. A program product comprising machine-readable program code recorded on a recording medium, the program code comprising instructions for controlling the operation of a first data processing system on which it executes to perform the following steps:
-
applying one or more updates to a first replica of the data resource at the first data processing system;
sending a request, to a second data processing system which holds a master copy of said data resource, for applying the one or more updates to the master copy;
for said updates which do not conflict with the master copy and are successfully applied to the master copy, responding to a confirmation of the successful application of updates to the master copy by committing the updates to the first replica at the first data processing system; and
for said updates which conflict with the master copy due to other updates applied to the master copy, such that said conflicting updates are not applied to the master copy, responding to a confirmation of failure from the second data processing system by backing out said conflicting updates from the first replica and replacing them in the first replica with the corresponding other updates applied to the master copy.
-
Specification