Methods and systems for halting synchronization loops in a distributed system
Abstract
The present provides for consistent resolution of data conflicts when synchronizing data between two or more devices in order to reduce the likelihood of an infinite synchronization loop within a distributed computing system. More particularly, example embodiments provide for a conflict resolution algorithm capable of generating unique values for properties that are in conflict. Data selection criteria can then be used to determine which of the properties should be used to resolve the conflict. Such data selection criterion increases the likelihood of providing consistent resolution of similar data conflicts between other devices in the distributed system.
Claims
exact text as granted — not AI-modified1 . A method of providing consistent resolution for synchronization conflicts in order to reduce infinite synchronization loops within a distributed system, the method comprising:
receiving remote device data that includes a remote property needing to be synchronized with a local property, the remote device data having been input at a first remote device; accessing local machine data that includes the local property needing to be synchronized with the remote property; after receiving the remote device data and accessing the local machine data, determining that a conflict exists between the remote property and the local property; and in response to determining that the conflict exists:
applying a conflict resolution algorithm to generate a remote value from the remote property and generate a local value from the local property; and
selecting the local property or the remote property based on use of the remote and local values with data selection criteria, wherein the data selection criteria is used to compare the remote value and the local value, and select one of the remote value or the local value based on data selection criteria that does not include time/date information.
2 . The method of claim 1 , wherein the conflict resolution algorithm is transitive.
3 . The method of claim 1 , wherein applying the conflict resolution algorithm comprises using a hash function to hash the remote property to generate a first hash and to hash the local property to generate a second hash.
4 . The method of claim 3 , wherein selecting the local property or the remote property includes:
comparing the first hash to the second hash; and using the data selection criteria to select either the first hash or the second hash, wherein selection of the first hash or the second hash is based on the first and second hashes being different.
5 . The method of claim 4 , wherein using the data selection criteria to select either the first hash or the second hash includes determining which of the first hash and second hash has a largest value.
6 . The method of claim 1 , wherein applying the conflict resolution algorithm comprises obtaining a binary data set for each of the remote value and the local value.
7 . The method of claim 6 , wherein selecting the local property or the remote property includes comparing the binary data set of the local value to the binary data set of the remote value, and selecting either the local value or the remote value based on which binary data set has a first positive bit without a conflict.
8 . The method of claim 6 , wherein selecting the local property or the remote property includes comparing the binary data set of the local value to the binary data set of the remote value, and selecting either the local value or the remote value based on a sum of all positive bits in the binary data set of the local value and a sum of all positive bits in the binary data set of the remote value.
9 . The method of claim 6 , wherein selecting the local property or the remote property includes walking through the binary data sets of the local property and the remote property and selecting either the local value or the remote value based on a first non-matching bit.
10 . The method of claim 1 , further comprising:
receiving third device data, the third device data including a third property needing to be synchronized with the remote property and the local property, the third device data having been input at a third device; and determining that at least one conflict exists between the third property, the remote data, and the local data, wherein applying the conflict resolution algorithm includes generating a third value from the third property, and wherein selecting the local property or the remote property includes comparing the remote value, the local value, and the third value.
11 . A computer readable storage medium having stored thereon computer executable instructions that, when executed by one or more processors, cause a computing system to perform a method of providing consistent resolution for synchronization conflicts in order to reduce infinite synchronization loops within a distributed system, the method comprising:
receiving remote device data that includes a remote property needing to be synchronized with a local property, the remote device data having been input at a first remote device; accessing local machine data that includes the local property needing to be synchronized with the remote property; after receiving the remote device data and accessing the local machine data, determining that a conflict exists between the remote property and the local property; and in response to determining that the conflict exists:
applying a conflict resolution algorithm to generate a remote value from the remote property and generate a local value from the local property; and
selecting the local property or the remote property based on use of the remote and local values with data selection criteria, wherein the data selection criteria is used to compare the remote value and the local value, and select one of the remote value or the local value based on data selection criteria that does not include time/date information.
12 . The computer readable storage medium of claim 11 , wherein the conflict resolution algorithm is transitive.
13 . The computer readable storage medium of claim 11 , wherein applying the conflict resolution algorithm comprises using a hash function to hash the remote property to generate a first hash and to hash the local property to generate a second hash.
14 . The computer readable storage medium of claim 13 , wherein selecting the local property or the remote property includes:
comparing the first hash to the second hash; and using the data selection criteria to select either the first hash or the second hash, wherein selection of the first hash or the second hash is based on the first and second hashes being different.
15 . The computer readable storage medium of claim 14 , wherein using the data selection criteria to select either the first hash or the second hash includes determining which of the first hash and second hash has a largest value.
16 . The computer readable storage medium of claim 11 , wherein applying the conflict resolution algorithm comprises obtaining a binary data set for each of the remote value and the local value.
17 . The computer readable storage medium of claim 16 , wherein selecting the local property or the remote property includes comparing the binary data set of the local value to the binary data set of the remote value, and selecting either the local value or the remote value based on which binary data set has a first positive bit without a conflict.
18 . The computer readable storage medium of claim 16 , wherein selecting the local property or the remote property includes comparing the binary data set of the local value to the binary data set of the remote value, and selecting either the local value or the remote value based on a sum of all positive bits in the binary data set of the local value and a sum of all positive bits in the binary data set of the remote value.
19 . The computer readable storage medium of claim 16 , wherein selecting the local property or the remote property includes walking through the binary data sets of the local property and the remote property and selecting either the local value or the remote value based on a first non-matching bit.
20 . A computing system providing consistent resolution for synchronization conflicts in order to reduce infinite synchronization loops within a distributed system, the computing system comprising:
one or more processors; one or more computer readable media communicatively coupled to the one or more processors, wherein the one or more computer readable media includes computer-executable instructions that, when executed cause the computing system to:
receive remote device data that includes a remote property needing to be synchronized with a local property, the remote device data having been input at a first remote device;
access local machine data that includes the local property needing to be synchronized with the remote property;
after receiving the remote device data and accessing the local machine data, determine that a conflict exists between the remote property and the local property; and
in response to determining that the conflict exists:
apply a conflict resolution algorithm to generate a remote value from the remote property and generate a local value from the local property; and
select the local property or the remote property based on use of the remote and local values with data selection criteria, wherein the data selection criteria is used to compare the remote value and the local value, and select one of the remote value or the local value based on data selection criteria that does not include time/date information, and
wherein one or more of the remote device or the local device is incapable of storing time/date information for the remote property or local property, respectively.Join the waitlist — get patent alerts
Track US2010211542A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.