US2017169086A1PendingUtilityA1

Method and system for providing a synchronization service

48
Assignee: EXCALIBUR IP LLCPriority: Oct 7, 2014Filed: Feb 26, 2017Published: Jun 15, 2017
Est. expiryOct 7, 2034(~8.2 yrs left)· nominal 20-yr term from priority
H04L 67/1095G06F 16/1873G06F 16/182G06F 16/128G06F 16/2365G06F 16/178G06F 16/27G06F 17/30575G06F 17/30371
48
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 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-modified
1 - 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.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.