IP Library › Granted Patent US 9,116,971
Granted Patent B2
US 9,116,971 · App. 13/865,045 · Granted Aug 25, 2015

Data synchronization using a composite change clock

Inventor: Peter John Nicklin (San Jose, CA)
Assignee: SOFTFRAME, INC.
G06F17/30575G06F17/30578
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,116,971
App. No.
13/865,045
Granted
Aug 25, 2015
Kind
B2
Abstract

A method can include: calculating a maximum sync anchor change number; and creating a sync action entry, the sync action entry having a sync action change number and a composite change clock number, the composite change clock number set: to the maximum sync anchor change number when the sync action change number of the sync action entry is less than the maximum sync anchor change number, and to the sync action change number of the sync action entry when the sync action change number of the sync action entry is less than a sync action change number of a subsequent sync action entry and the sync action change number of the sync action entry is greater than the maximum sync anchor change number.

Claims (62)

1. A method comprising:

calculating a maximum sync anchor change number;

creating a sync action queue haying a sync action entry for a data record on a local machine, a data record on a remote machine, or a combination thereof, the sync action entry having an action change number and a composite change clock number:

the action change number set:

to a greatest change number between a change number for the data record on the local machine and a change number for the data record on the remote machine,

the change number for the data record on the local machine generated based on the data record on the local machine being added or modified and generated autonomously from any changes in data in the remote machine, and

the change number for the data record on the remote machine generated based on the data record on the remote machine being added or modified and generated autonomously from any changes in data in the local machine; and

the composite change clock number stored on the local machine, and the composite change clock number of the sync action entry in the sync action queue set:

to the maximum sync anchor change number based on the action change number of the sync action entry being less than the maximum sync anchor change number, and

to the action change number of the sync action entry:

based on the sync action entry being a last sync action entry in the sync action queue and the action change number of the sync action entry being greater than the maximum sync anchor change number, or

based on the action change number of the sync action entry being less than an action change number of a subsequent sync action entry and the action change number of the sync action entry being greater than the maximum sync anchor change number; and

performing a synchronization action for the sync action entry.

2. The method of claim 1 , further comprising updating a sync anchor change number with the composite change clock number.

3. The method of claim 1 , further comprising sorting the sync action entry by the action change number.

4. The method of claim 1 , further comprising creating a bi-directional sync action queue or a one-way sync action queue.

5. The method of claim 1 , further comprising:

calculating a maximum change clock number;

comparing the maximum change clock number to the maximum sync anchor change number; and

ending a synchronization if the maximum change clock number is less than or equal to the maximum sync anchor change number.

6. The method of claim 1 , wherein creating the sync action entry includes creating the sync action entry having a sync action determined, at least in part, by a comparison between the maximum sync anchor change number and a local record change number, a remote record change number, or a combination thereof.

7. A non-transitory computer readable medium, useful in association with a processor, including instructions configured to:

calculate a maximum sync anchor change number;

create a sync action queue haying a sync action entry for a data record on a local machine, a data record on a remote machine, or a combination thereof, the sync action entry having an action change number and a composite change clock number:

the action change number set:

to a greatest change number between a change number for the data record on the local machine and a change number for the data record on the remote machine,

the change number for the data record on the local machine generated based on the data record on the local machine being added or modified and generated autonomously from any changes in data in the remote machine, and

the change number for the data record on the remote machine generated based on the data record on the remote machine being added or modified and generated autonomously from any changes in data in the local machine; and

the composite change clock number stored on the local machine, and the composite change clock number of the sync action entry in the sync action queue set:

to the maximum sync anchor change number based on the action change number of the sync action entry being less than the maximum sync anchor change number, and

to the action change number of the sync action entry:

based on the sync action entry being a last sync action entry in the sync action queue and the action change number of the sync action entry being greater than the maximum sync anchor change number, or

based on the action change number of the sync action entry being less than an action change number of a subsequent sync action entry and the action change number of the sync action entry being greater than the maximum sync anchor change number; and

perform a synchronization action for the sync action entry.

8. The non-transitory computer readable medium of claim 7 , further comprising instructions configured to update a sync anchor change number with the composite change clock number.

9. The non-transitory computer readable medium of claim 7 , further comprising instructions configured to sort the sync action entry by the action change number.

10. The non-transitory computer readable medium of claim 7 , further comprising instructions configured to create a bi-directional sync action queue or a one-way sync action queue.

11. The non-transitory computer readable medium of claim 7 , further comprising instructions configured to:

calculate a maximum change clock number;

compare the maximum change clock number to the maximum sync anchor change number; and

end a synchronization if the maximum change clock number is less than or equal to the maximum sync anchor change number.

12. The non-transitory computer readable medium of claim 7 , wherein the instructions configured create the sync action entry includes instructions configured to create the sync action entry having a sync action determined, at least in part, by a comparison between the maximum sync anchor change number and a local record change number, a remote record change number, or a combination thereof.

13. A system comprising:

a sync processor configured to calculate a maximum sync anchor change number;

a data store, coupled to the processor, including a sync action queue having a sync action entry for a data record on a local machine, a data record on a remote machine, or a combination thereof, the sync action entry having an action change number and a composite change clock number:

the action change number set:

to a greatest change number between a change number for the data record on the local machine and a change number for the data record on the remote machine,

the change number for the data record on the local machine generated based on the data record on the local machine being added or modified and generated autonomously from any changes in data in the remote machine, and

the change number for the data record on the remote machine generated based on the data record on the remote machine being added or modified and generated autonomously from any changes in data in the local machine; and

the composite change clock number stored on the local machine, and the composite change clock number of the sync action entry in the sync action queue set:

to the maximum sync anchor change number based on the action change number of the sync action entry being less than the maximum sync anchor change number, and

to the action change number of the sync action entry:

based on the sync action entry being a last sync action entry in the sync action queue and the action change number of the sync action entry being greater than the maximum sync anchor change number, or

based on the action change number of the sync action entry being less than an action change number of a subsequent sync action entry and the action change number of the sync action entry being greater than the maximum sync anchor change number; and

wherein the sync processor is further configured to perform a synchronization action for the sync action entry.

14. The system of claim 13 , wherein the sync processor is configured to update a sync anchor change number with the composite change clock number.

15. The system of claim 13 , wherein the sync processor is configured to sort the sync action entry by the action change number.

16. The system of claim 13 , wherein the sync processor is configured to create a bi-directional sync action queue or a one-way sync action queue.

17. The system of claim 13 , wherein the sync processor is configured to:

calculate a maximum change clock number;

compare the maximum change clock number to the maximum sync anchor change number; and

end a synchronization if the maximum change clock number is less than or equal to the maximum sync anchor change number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2013
From: NICKLIN, PETER JOHN
To: SOFTFRAME, INC.
Reel/Frame 030237/0447 →
Continuity (2)
Provisional Application 61644251 · May 8, 2012
Related Publication 20130304700A1 · Nov 14, 2013