Method and system for providing a synchronization service
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 causal 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 - 8 . (canceled)
9 . A method comprising:
transmitting, by a client computing device to a synchronization server computer, an update request to overwrite at least one data value of a data store of at least one data storage system with the request's at least one updated data value, the update request comprising a synchronization value for the request's at least one updated data value, a synchronization base value for the direct causal ancestor of the request's at least one updated data value and a data identifier for use in retrieving a synchronization value associated with the data store's at least one data value, the request's synchronization base value and data store's synchronization value for use in making a determination whether or not the data store's at least one data value identified by the request's data identifier is the direct causal ancestor of the request's at least one updated data value; receiving, by the client computing device, a response to the write request, the response indicating that a conflict exists because the data store's at least one data value is not a direct causal ancestor of the request's at least one updated data value, the response further comprising data store's at least one data value; and identifying, by the at least one computing device, a selection of one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
10 . The method of claim 9 , the identifying further comprising:
permitting a client application executing at the at least one computing device to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
11 . The method of claim 10 , the permitting further comprising permitting the client application to use one or more of a default setting and user preference to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
12 . The method of claim 9 , the identifying further comprising:
displaying, by the at least one computing device, a user interface to enable the user to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict; and receiving, by the at least one computing device, input indicative of the user's selection.
13 . The method of claim 9 , the request's synchronization value comprising a synchronization base value comprising a hash generated using at least one data value of the direct causal ancestor of the request's at least one updated data value, and the data store's synchronization value comprising a hash generated using the data store's at least one data value.
14 - 21 . (canceled)
22 . A system comprising:
a processor of a client computing device; a storage medium for tangibly storing thereon program logic for execution by the processor, the stored program logic comprising:
transmitting logic executed by the processor for transmitting, to a synchronization server computer, an update request to overwrite at least one data value of a data store of at least one data storage system with the request's at least one updated data value, the update request comprising a synchronization value for the request's at least one updated data value, a synchronization base value for the direct causal ancestor of the request's at least one updated data value and a data identifier for use in retrieving a synchronization value associated with the data store's at least one data value, the request's synchronization base value and data store's synchronization value for use in making a determination whether or not the data store's at least one data value identified by the request's data identifier is the direct causal ancestor of the request's at least one updated data value;
receiving logic executed by the processor for receiving a response to the write request, the response indicating that a conflict exists because the data store's at least one data value is not a direct causal ancestor of the request's at least one updated data value, the response further comprising data store's at least one data value; and
identifying logic executed by the processor for identifying a selection of one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
23 . The system of claim 22 , the identifying logic executed by the processor further comprising:
permitting logic executed by the processor for permitting a client application to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
24 . The system of claim 23 , the permitting logic executed by the processor for permitting further comprising permitting logic executed by the processor for permitting the client to use one or more of a default setting and user preference to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
25 . The system of claim 22 , the identifying logic further comprising:
displaying logic executed by the processor for displaying a user interface to enable the user to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict; and receiving logic executed by the processor for receiving input indicative of the user's selection.
26 . The system of claim 22 , the request's synchronization value comprising a synchronization base value comprising a hash generated using at least one data value of the direct causal ancestor of the request's at least one updated data value, and the data store's synchronization value comprising a hash generated using the data store's at least one data value.
27 - 34 . (canceled)
35 . A computer readable non-transitory storage medium for tangibly storing thereon computer readable instructions that when executed cause at least one processor to:
transmit, to a synchronization service, an update request to overwrite at least one data value of a data store of at least one data storage system with the request's at least one updated data value, the update request comprising a synchronization value for the request's at least one updated data value, a synchronization base value for the direct causal ancestor of the request's at least one updated data value and a data identifier for use in retrieving a synchronization value associated with the data store's at least one data value, the request's synchronization base value and data store's synchronization value for use in making a determination whether or not the data store's at least one data value identified by the request's data identifier is the direct causal ancestor of the request's at least one updated data value; receive a response to the write request, the response indicating that a conflict exists because the data store's at least one data value is not a direct causal ancestor of the request's at least one updated data value, the response further comprising data store's at least one data value; and identify a selection of one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
36 . The computer readable non-transitory storage medium of claim 35 , the instructions to identify further comprising instructions to:
permit client application to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
37 . The computer readable non-transitory storage medium of claim 36 , the instructions to permit further comprising instructions to permit the client application to use one or more of a default setting and user preference to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict.
38 . The computer readable non-transitory storage medium of claim 35 , the instructions to identifying further comprising instructions to:
display a user interface to enable the user to select one of the data store's at least one data value and the request's at least one updated data value to resolve the conflict; and receive input indicative of the user's selection.
39 . The computer readable non-transitory storage medium of claim 35 , the request's synchronization value comprising a synchronization base value comprising a hash generated using at least one data value of the direct causal ancestor of the request's at least one updated data value, and the data store's synchronization value comprising a hash generated using the data store's at least one data value.Join the waitlist — get patent alerts
Track US2017169086A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.