Systems and methods for the propagation of conflict resolution to enforce item convergence (i.e., data convergence)
First Claim
1. A method for synchronizing change unit data among at least two peer computer systems in a synchronization community, said method comprising:
- synchronizing said change unit data among said at least two peer computer systems; and
ensuring convergence of said change unit data in the synchronization community by using a metadata component corresponding to said change unit data, said metadata component comprising a conflict resolution version component.
2 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments of the present invention are directed to systems and method for detecting conflicts and applying conflict resolutions during manual and automatic conflict resolution operations. Several embodiments are directed to preventing both: (a) non-convergence of conflict resolutions, where partners can end up in a divergent steady state (i.e. have different data in the absence of outstanding conflicts); and (b) a non-terminating ping-pong of conflict resolutions between partners (which can occur with certain inefficient solutions that continuously update metadata for each conflict resolution without end). Certain specific embodiments of the present invention are directed to a method for maintaining knowledge that guarantees convergence of data, even when different partners apply different conflict resolutions.
63 Citations
28 Claims
-
1. A method for synchronizing change unit data among at least two peer computer systems in a synchronization community, said method comprising:
-
synchronizing said change unit data among said at least two peer computer systems; and
ensuring convergence of said change unit data in the synchronization community by using a metadata component corresponding to said change unit data, said metadata component comprising a conflict resolution version component. - View Dependent Claims (2, 3, 4)
-
-
5. A method for resolving divergent states of change unit data in a peer-to-peer synchronization system for a sync community and its member partner computer system, said data embodied in a first change unit on a first computer system and in a second change unit on a second computer system, said method comprising:
-
tracking conflict resolutions that occur during a first synchronization operation;
identifying a divergent state of change unit data between said first change unit and said second change unit during a subsequent synchronization operation;
deterministically selecting a change unit solution to ensure convergence of change unit data in said synchronization community. - View Dependent Claims (6)
-
-
7. A method for synchronizing change unit data between a first computer system (P1) and a second computer system (P2), said first computer system comprising a first replica of said change unit (CU1) and a first metadata corresponding to said first replica (MI), said metadata further comprising a first change version (CV1), a first conflict resolution version (CRV1), and a first awareness vector (AV1), and said second computer system comprising a second replica of said change unit (CU2) and a second metadata corresponding to said second replica (M2), said metadata further comprising a second change version (CV2), a second conflict resolution version (CRV2), and a second awareness vector (AV2), said method comprising:
-
sending AV1 from P1 to P2;
determining if AV1 contains CV2 and CRV2 and, if so, sending CU2 from P2 to P1;
sending M2 from P2 to P1;
comparing M2 to M1, completing any required synchronization updates, and resolving any conflicts or special handling situations that arise; and
updating CU1 and M1 and, if a conflict has arisen, further updating CRV1 and AV1 to reflect a conflict resolution and thereby preventing a divergent state from arising.
-
-
8. A system for synchronizing change unit data among at least two peer computer systems in a synchronization community, said system comprising at least one subsystem for:
-
synchronizing said change unit data among said at least two peer computer systems; and
ensuring convergence of said change unit data in the synchronization community by using a metadata component corresponding to said change unit data, said metadata component comprising a conflict resolution version component. - View Dependent Claims (9, 10, 11)
-
-
12. A system for resolving divergent states of change unit data in a peer-to-peer synchronization system for a sync community and its member partner computer system, said data embodied in a first change unit on a first computer system and in a second change unit on a second computer system, said system comprising at least one subsystem for:
-
tracking conflict resolutions that occur during a first synchronization operation;
identifying a divergent state of change unit data between said first change unit and said second change unit during a subsequent synchronization operation;
deterministically selecting a change unit solution to ensure convergence of change unit data in said synchronization community. - View Dependent Claims (13)
-
-
14. A system for synchronizing change unit data between a first computer system (P1) and a second computer system (P2), said first computer system comprising a first replica of said change unit (CU1) and a first metadata corresponding to said first replica (M1), said metadata further comprising a first change version (CV1), a first conflict resolution version (CRV1), and a first awareness vector (AV1), and said second computer system comprising a second replica of said change unit (CU2) and a second metadata corresponding to said second replica (M2), said metadata further comprising a second change version (CV2), a second conflict resolution version (CRV2), and a second awareness vector (AV2), said system comprising at least one subsystem for:
-
sending AV1 from P1 to P2;
determining if AV1 contains CV2 and CRV2 and, if so, sending CU2 from P2 to P1;
sending M2 from P2 to P1;
comparing M2 to MI, completing any required synchronization updates, and resolving any conflicts or special handling situations that arise; and
updating CU1 and M1 and, if a conflict has arisen, further updating CRV1 and AV1 to reflect a conflict resolution and thereby preventing a divergent state from arising.
-
-
15. A computer-readable medium comprising computer-readable instructions for synchronizing change unit data among at least two peer computer systems in a synchronization community, said computer-readable instructions comprising instructions for:
-
synchronizing said change unit data among said at least two peer computer systems; and
ensuring convergence of said change unit data in the synchronization community by using a metadata component corresponding to said change unit data, said metadata component comprising a conflict resolution version component. - View Dependent Claims (16, 17, 18)
-
-
19. A computer-readable medium comprising computer-readable instructions for resolving divergent states of change unit data in a peer-to-peer synchronization system for a sync community and its member partner computer system, said data embodied in a first change unit on a first computer system and in a second change unit on a second computer system, said computer-readable instructions comprising instructions for:
-
tracking conflict resolutions that occur during a first synchronization operation;
identifying a divergent state of change unit data between said first change unit and said second change unit during a subsequent synchronization operation;
deterministically selecting a change unit solution to ensure convergence of change unit data in said synchronization community. - View Dependent Claims (20)
-
-
21. A computer-readable medium comprising computer-readable instructions for synchronizing change unit data between a first computer system (P1) and a second computer system (P2), said first computer system comprising a first replica of said change unit (CU1) and a first metadata corresponding to said first replica (M1), said metadata further comprising a first change version (CV1), a first conflict resolution version (CRV1), and a first awareness vector (AV1), and said second computer system comprising a second replica of said change unit (CU2) and a second metadata corresponding to said second replica (M2), said metadata further comprising a second change version (CV2), a second conflict resolution version (CRV2), and a second awareness vector (AV2), said computer-readable instructions comprising instructions for:
-
sending AV1 from P1 to P2;
determining if AV1 contains CV2 and CRV2 and, if so, sending CU2 from P2 to P1;
sending M2 from P2 to P1;
comparing M2 to M1, completing any required synchronization updates, and resolving any conflicts or special handling situations that arise; and
updating CU1 and M1 and, if a conflict has arisen, further updating CRV1 and AV1 to reflect a conflict resolution and thereby preventing a divergent state from arising.
-
-
22. A hardware control device for synchronizing change unit data among at least two peer computer systems in a synchronization community, said hardware control device comprising means for:
-
synchronizing said change unit data among said at least two peer computer systems; and
ensuring convergence of said change unit data in the synchronization community by using a metadata component corresponding to said change unit data, said metadata component comprising a conflict resolution version component. - View Dependent Claims (23, 24, 25)
-
-
26. A hardware control device for resolving divergent states of change unit data in a peer-to-peer synchronization system for a sync community and its member partner computer system, said data embodied in a first change unit on a first computer system and in a second change unit on a second computer system, said hardware control device comprising means for:
-
tracking conflict resolutions that occur during a first synchronization operation;
identifying a divergent state of change unit data between said first change unit and said second change unit during a subsequent synchronization operation;
deterministically selecting a change unit solution to ensure convergence of change unit data in said synchronization community. - View Dependent Claims (27)
-
-
28. A hardware control device for synchronizing change unit data between a first computer system (P1) and a second computer system (P2), said first computer system comprising a first replica of said change unit (CU1) and a first metadata corresponding to said first replica (M1), said metadata further comprising a first change version (CV1), a first conflict resolution version (CRV1), and a first awareness vector (AV1), and said second computer system comprising a second replica of said change unit (CU2) and a second metadata corresponding to said second replica (M2), said metadata further comprising a second change version (CV2), a second conflict resolution version (CRV2), and a second awareness vector (AV2), said hardware control device comprising means for:
-
sending AV1 from P1 to P2;
determining if AV1 contains CV2 and CRV2 and, if so, sending CU2 from P2 to P1;
sending M2 from P2 to P1;
comparing M2 to M1, completing any required synchronization updates, and resolving any conflicts or special handling situations that arise; and
updating CU1 and M1 and, if a conflict has arisen, further updating CRV1 and AV1 to reflect a conflict resolution and thereby preventing a divergent state from arising.
-
Specification