IP Library Patent Application 13117135
Patent Application
App. No. 13/117,135

LOCAL DIFFERENTIAL COMPRESSION

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 None
App. No.
13/117,135
Abstract

The disclosure is related to systems and methods of local differential compression. Local differential compression can allow a computer to transfer data efficiently over a limited or restricted bandwidth network. For example, a first computer can be adapted to synchronize a data object between the first computer and a second computer by: determining a list of portions of a data object to synchronize and sending the list to the second computer. When the second computer has received the list, the second computer may build the data object based on the list, data retrieved corresponding to the list, and other data already existing at the second computer.

Claims (66)

1 . A method comprising:

synchronizing a data object between a first node and a second node including:

processing in the first node including:

partitioning the data object into portions;

determining a signature for each of the portions to produce a first object signature;

retrieving a previously stored object signature from a cache, the previously stored object signature corresponding to a previous version of the data object;

comparing the first object signature to the previously stored object signature;

creating a list of the portions of the data object that are different than corresponding portions of the previous version based on the comparison; and

sending the list to the second node.

2 . The method of claim 1 further comprising:

determining if the second node already has data corresponding to the portions in the list;

sending the data from the first node to the second node when the second node does not have the data corresponding to the portions in the list; and

only sending the list to the second node when the second node does have all of the data corresponding to the portions in the list.

3 . The method of claim 2 further comprising:

processing at the second node including:

receiving the list indicating the portions of the data object that are different than a previous version of the data object;

receiving the data corresponding to the portions in the list when the data is needed from the first node; and

building the data object in the second node by combining the data with other portions of the data object that are already present in the second node.

4 . The method of claim 2 further comprising sending the data when the list is sent, without receiving any intervening responses from the second node.

5 . The method of claim 2 further comprising sending the data in response to a request for the data from the second node.

6 . The method of claim 1 wherein the signature for each of the portions is determined by applying a hash function to each of the portions.

7 . The method of claim 1 wherein the list comprises a start address and an indicator of a length of data to send that corresponds to the portions in the list.

8 . A method comprising:

synchronizing a file between a first computer and a second computer including:

processing at the second computer including:

receiving a list indicating selected portions of the file at the second computer;

receiving data corresponding to the selected portions when the data is not already present in a memory of the second computer; and

combining the data with other portions of the file that are already present in the second node.

9 . The method of claim 8 further comprising combining the data corresponding to the selected portions with the other portions of the file to form a whole version of the file.

10 . The method of claim 9 comprising:

determining a signature for each portion of the whole version of the file; and

saving the signature to a cache.

11 . The method of claim 8 further comprising:

processing at the second computer:

receiving the list;

determining a location of the selected portions on a network; and

retrieving the selected portions from the location.

12 . The method of claim 11 wherein the location is not the first computer or the second computer.

13 . A device comprising:

a memory including a cache to store at least one signature file;

a control circuit adapted to synchronize a data object between a first computer and a second computer, the control circuit further adapted to:

determine a list of portions of the data object that are different than corresponding portions of another version of the data object; and

send the list to the second computer.

14 . The device of claim 13 wherein the control circuit is further adapted to:

partition the data object into portions;

determine a signature for each of the portions to produce a first signature file;

retrieve another signature file from the cache, the another signature file corresponding to the another version of the data object; and

compare the first signature file to the previous signature file.

15 . The device of claim 13 wherein the control circuit is further adapted to:

determine the signature for each of the portions; and

combine the signature for each of the portions to produce the first signature file.

16 . The device of claim 13 wherein the control circuit is further adapted to:

send data from the first computer to the second computer corresponding to the portions of the data object that are different than the corresponding portions of the previous version of the object.

17 . The device of claim 13 wherein the control circuit further comprises a controller implementing firmware to synchronize the data object between the first computer and the second computer.

18 . A computer readable medium embodying instructions that, when executed by a processor, cause the processor to:

synchronize a data object between a first node and a second node of a network, including processing in the first node comprising:

comparing a first signature file to a second signature file;

creating a list of portions of the data object to be synchronized based on the comparison; and

sending the list to the second node.

19 . The computer readable medium of claim 18 further embodying instructions that, when executed by a processor, cause the processor to:

send data from the first node to the second node corresponding to the portions of the data object that are identified in the list.

20 . The computer readable medium of claim 19 further embodying instructions that, when executed by a processor, cause the processor to:

synchronize the data object between the first node and the second node, further including processing in the second node comprising:

receiving the list indicating the portions of the data object to be synchronized;

receiving data corresponding to the portions in the list from another node on the network; and

building the data object in the second node by combining the received data with at least one other portion of the data object at the second node.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Oct 3, 2018
From: OAKTREE FUND ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT FOR THE LENDERS AND SUCCESSOR AGENT TO FIFTH STREET MANAGEMENT LLC
To: METALOGIX INTERNATIONAL GMBH
Reel/Frame 047048/0008 →
RELEASE OF SECURITY INTEREST Recorded Dec 30, 2014
From: GOLD HILL CAPITAL 2008, L.P.
To: METALOGIX INTERNATIONAL GMBH
Reel/Frame 034604/0378 →
SECURITY INTEREST Recorded Dec 1, 2014
From: METALOGIX INTERNATIONAL GMBH
To: FIFTH STREET MANAGEMENT LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 034290/0262 →
FIRST AMENDMENT TO IPSA Recorded Jun 10, 2013
From: METALOGIX INTERNATIONAL GMBH
To: GOLD HILL CAPITAL 2008, L.P.
Reel/Frame 030592/0038 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2011
From: SEAMAN, DAVID ROBERT; WALL, BLAIR JAMES; CAPSON, CHRISTOPHER CARL
To: SYNTERGY, INC.
Reel/Frame 026351/0220 →