Distributed conflict resolution for replicated databases
AssigneeMicrosoft Corporation
InventorStephan Tobies
Life of this patent
Estimating the term…
Abstract
One or more resolution processes run concurrently with the synchronization process of each replica, in response to detection of one or more synchronization conflicts. Each resolution process works to resolve the conflict for a data object while the synchronization process continues to process other synchronization updates. After a conflict resolution has been determined, the conflict resolution is tested against current conditions of the local replica. If the conflict resolution is not stale, it is applied to the local replica and passed back to the synchronization process for propagation to remote replicas. Otherwise, if the conflict resolution is stale, it is discarded.
Claims12
A method of resolving a conflict in synchronization of a local replica, the method comprising:
- executing a synchronization process that receives synchronization updates from one or more remote replicas, the synchronization process initiating a resolution process associated with a local data object of the local replica if a conflict is detected between the local data object and a synchronization update;
- and
- executing the resolution process concurrently with the synchronization process, responsive to initiation of the resolution process by the synchronization process, the resolution process determining a conflict resolution while the synchronization process processes other synchronization updates, wherein the synchronization process further records a snapshot of the conflict and passes the snapshot to the resolution process, if a conflict is detected between the local data object and the synchronization update, wherein the resolution process further determines whether the conflict resolution is stale by comparing the snapshot to conditions existing after the conflict resolution has been determined, and wherein the resolution process further updates the local data object with the conflict resolution, while the synchronization process processes the other synchronization updates.
A computer system for resolving a conflict in synchronization of a local replica, the system comprising:
- a processing unit coupled to a memory;
- the memory comprising a synchronization module and a resolution module;
- the synchronization module executes a synchronization process that receives synchronization updates from one or more remote replicas, the synchronization process initiating a resolution process associated with a local data object of the local replica if a conflict is detected between the local data object and a synchronization update;
- and
- the resolution module executes the resolution process concurrently with the synchronization process, responsive to initiation of the resolution process by the synchronization process, the resolution process determining a conflict resolution while the synchronization process processes other synchronization updates, wherein the synchronization process further records a snapshot of the conflict and passes the snapshot to the resolution process, if a conflict is detected between the local data object and the synchronization update, wherein the resolution process further determines whether the conflict resolution is stale by comparing the snapshot to conditions existing after the conflict resolution has been determined, wherein the resolution process further updates the local data object with the conflict resolution, while the synchronization process processes the other synchronization updates.
Dependencies are inferred from the claim text.