US2017364572A1PendingUtilityA1
Method and system for providing a synchronization service
Est. expiryOct 7, 2034(~8.2 yrs left)· nominal 20-yr term from priority
G06F 16/128G06F 16/1873G06F 16/2365G06F 16/182G06F 16/178G06F 16/27H04L 67/1095G06F 17/3023G06F 17/30575G06F 17/30371G06F 17/30088G06F 17/30174G06F 17/30194
51
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Disclosed herein is a data synchronization between a client computing device's local store and another data store, such as a data store that is remote to the client computing device. The other data store may comprise a cloud data store. The existence, or absence, of a causal relationship between the local and remote data stores for a given data item is used to determine whether or not a conflict exists and/or whether a requested operation may be performed. The casual relationship may be determined using a previous commit's hash value, referred to as a hash_base value, and a hash value, both of which are associated with the data item.
Claims
exact text as granted — not AI-modified1 - 39 . (canceled)
40 . A method comprising:
receiving, by a data synchronization computing device, a request of a client computing device to perform a data storage operation in connection with a data store under synchronization control of the data synchronization computing device, the request comprising a data identifier, an operation type and a synchronization value associated with the request; retrieving, by the data synchronization computing device, the data store's synchronization value using the received data identifier; conditionally performing, by the data synchronization computing device, a data-item synchronization operation without using versioning information in connection with a data item identified by the data identifier, performance of the data-item synchronization operation being conditioned on a determination whether or not the received synchronization value and the retrieved synchronization value match indicating that the data store's data item identified by the data identifier is a direct causal ancestor of data associated with the request; conditionally performing, by the data synchronization computing device, a synchronization-value synchronization operation in connection with at least one of the retrieved synchronization value and the received synchronization value, performance of the synchronization-value synchronization operation being conditioned on at least the received operation type.
41 . The method of claim 40 , the performance of the synchronization-value synchronization operation being further conditioned on the performance of the data-item synchronization operation, performance of the synchronization-value synchronization operation being conditioned on the determination whether or not the received synchronization value and the retrieved synchronization value match indicating that the data store's data item identified by the data identifier is a direct causal ancestor of data associated with the request.
42 . The method of claim 40 , the received operation type indicating a write operation, the request further comprising a new value for the data associated with the request and the data-item synchronization operation comprising writing the new value for the data item in the data store if the received synchronization value and the retrieved synchronization value match.
43 . The method of claim 42 , the synchronization-value synchronization operation comprising writing a new synchronization value in the data store in connection with the new value written to the data store.
44 . The method of claim 43 , the new synchronization value is determined using the new value of the data item.
45 . The method of claim 44 , further comprising transmitting the new synchronization value to the client computing device in response to the request.
46 . The method of claim 42 , further comprising transmitting a response to the request indicating that a data conflict exists if it is determined that the received synchronization value and the retrieved synchronization value do not match.
47 . The method of claim 40 , the received operation type indicating a read operation, the data-item synchronization operation performed in response to the request comprising retrieving the data item identified by the data identifier from the data store and transmitting the retrieved data item and the retrieved synchronization value to the client computing device in response to the request if the retrieved synchronization value and the received synchronization value do not match.
48 . The method of claim 40 , the received operation type indicating a read operation, the data-item synchronization operation performed in response to the request comprising retrieving the data item identified by the data identifier from the data store and transmitting the retrieved data item to the client computing device in response to the request if the retrieved synchronization value and the received synchronization value match.
49 . The method of claim 48 , the received operation type indicating a read operation, the synchronization-value synchronization operation performed in response to the request comprising transmitting the retrieved synchronization value with the retrieved data item to the client computing device in response to the request if the retrieved synchronization value and the received synchronization value match.
50 . The method of claim 40 , further comprising transmitting, to the client computing device, a response indicating that the retrieved synchronization value and the retrieved value match if the retrieved synchronization value and the received synchronization value match and the received operation type indicates a read operation.
51 . A non-transitory computer-readable storage medium tangibly encoded with computer-executable instructions that when executed by a processor associated with a computing device perform a method comprising:
receiving a request of a client computing device to perform a data storage operation in connection with a data store under synchronization control of a data synchronization computing device, the request comprising a data identifier, an operation type and a synchronization value associated with the request; retrieving the data store's synchronization value using the received data identifier; conditionally performing a data-item synchronization operation without using versioning information in connection with a data item identified by the data identifier, performance of the data-item synchronization operation being conditioned on a determination whether or not the received synchronization value and the retrieved synchronization value match indicating that the data store's data item identified by the data identifier is a direct causal ancestor of data associated with the request; conditionally performing a synchronization-value synchronization operation in connection with at least one of the retrieved synchronization value and the received synchronization value, performance of the synchronization-value synchronization operation being conditioned on at least the received operation type.
52 . The non-transitory computer-readable storage medium of claim 51 , the performance of the synchronization-value synchronization operation being further conditioned on the performance of the data-item synchronization operation, performance of the synchronization-value synchronization operation being conditioned on the determination whether or not the received synchronization value and the retrieved synchronization value match indicating that the data store's data item identified by the data identifier is a direct causal ancestor of data associated with the request.
53 . The non-transitory computer-readable storage medium of claim 51 , the received operation type indicating a write operation, the request further comprising a new value for the data associated with the request and the data-item synchronization operation comprising writing the new value for the data item in the data store if the received synchronization value and the retrieved synchronization value match.
54 . The non-transitory computer-readable storage medium of claim 53 , the synchronization-value synchronization operation comprising writing a new synchronization value in the data store in connection with the new value written to the data store.
55 . The non-transitory computer-readable storage medium of claim 54 , the new synchronization value is determined using the new value of the data item.
56 . The non-transitory computer-readable storage medium of claim 55 , further comprising transmitting the new synchronization value to the client computing device in response to the request.
57 . The non-transitory computer-readable storage medium of claim 53 , further comprising transmitting a response to the request indicating that a data conflict exists if it is determined that the received synchronization value and the retrieved synchronization value do not match.
58 . The non-transitory computer-readable storage medium of claim 51 , the received operation type indicating a read operation, the data-item synchronization operation performed in response to the request comprising retrieving the data item identified by the data identifier from the data store and transmitting the retrieved data item to the client computing device in response to the request if the retrieved synchronization value and the received synchronization value match.
59 . A data synchronization computing device comprising:
a processor; a non-transitory storage medium for tangibly storing thereon program logic for execution by the processor, the program logic comprising:
receiving logic executed by the processor for receiving a request of a client computing device to perform a data storage operation in connection with a data store under synchronization control of the data synchronization computing device, the request comprising a data identifier, an operation type and a synchronization value associated with the request;
retrieving logic executed by the processor for retrieving the data store's synchronization value using the received data identifier;
performing logic executed by the processor for conditionally performing a data-item synchronization operation without using versioning information in connection with a data item identified by the data identifier, performance of the data-item synchronization operation being conditioned on a determination whether or not the received synchronization value and the retrieved synchronization value match indicating that the data store's data item identified by the data identifier is a direct causal ancestor of data associated with the request;
performing logic executed by the processor for conditionally performing a synchronization-value synchronization operation in connection with at least one of the retrieved synchronization value and the received synchronization value, performance of the synchronization-value synchronization operation being conditioned on at least the received operation type.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.