IP Library Granted Patent US 9,563,683
Granted Patent B2
US 9,563,683 · App. 14/120,340 · Granted Feb 7, 2017

Efficient data replication

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,563,683
App. No.
14/120,340
Granted
Feb 7, 2017
Kind
B2
Abstract

Described herein are systems and methods for efficient data replication. A set of hashes for a source object to be replicated is sent from the source local deduplication store to the remote server. The remote server generates a set of object hashes representative of data in the source object that is already present on the remote server, and data indicative of source object hashes that are not present on the remote server. The remote server transmits the generated data to the source local deduplication store. The source local deduplication store identifies portions of the source object that are not already present on the remote server based on the received data. The source local deduplication store transmits the identified portions of the source object to the remote server to replicate the source object on the remote server.

Claims (34)

1. A computerized method of replicating an object from a source local deduplication store to a remote server based on data already stored on the remote server to reduce the amount of duplicate data sent from the local deduplication store to the remote server, the method comprising:

sending, by the source local deduplication store to the remote server, a set of hashes for a source object to be replicated from the source local deduplication store to the remote server, the source object comprising a deduplicated version of source data, the source object being represented as a plurality of temporal objects, each of the temporal objects associated with changes to the source object at a replication time, the set of hashes including a hash for each of the temporal objects;

receiving, by the source local deduplication store, data from the remote server indicating at least one of:

a set of object hashes representative of data in the source object that is already present on the remote server, and

data indicative of source object hashes that are not present on the remote server;

identifying, by the source local deduplication store, portions of the source object that are not already present on the remote server based on the received data; and

transmitting, by the source local deduplication store, the identified portions of the source object to the remote server to replicate the source object on the remote server so that only the portions of the source object not already present on the remote server are copied to the remote server to replicate the source object.

2. The method of claim 1 , further comprising generating hashes for the source object, wherein generating hashes for the source object includes generating a set of hashes of greater-depth objects, the greater-depth objects being part of the source object, the greater-depth objects comprising temporal objects associated with a replication time subsequent in time to a first replication of the source object.

3. The method of claim 1 , wherein sending the set of hashes for the source object to the remote server causes the remote server to create a first synthetic object based on the set of hashes for the source object.

4. The method of claim 3 , further comprising creating a second synthetic object based on the data from the remote server, wherein the second synthetic object is identical to the first synthetic object.

5. The method of claim 4 , wherein identifying further comprises:

calculating a set of differences between the second synthetic object and the source object; and

transmitting the set of differences to the remote server.

6. The method of claim 5 , wherein sending the set of differences to the remote server causes the remote content addressable store to assemble a remote object, the remote object including the first synthetic object and the set of differences, wherein the remote object is identical to the source object.

7. A computerized method of replicating an object from a source local deduplication store to a remote server based on data already stored on the remote server to reduce the amount of duplicate data sent from the local deduplication store to the remote server, the method comprising:

receiving, by the remote server, a set of hashes for a source object to be replicated from the source local deduplication store to the remote server, the source object comprising a deduplicated version of source data, the source object being represented as a plurality of temporal objects, each of the temporal objects associated with changes to the source object at a replication time, the set of hashes including a hash for each of the temporal objects;

generating, by the remote server, data indicating at least one of:

a set of object hashes representative of data in the source object that is already present on the remote server, and

data indicative of source object hashes that are not present on the remote server; and

sending, by the remoter server, the generated data to the source local deduplication store so that the source local deduplication store can identify data from the source object that is already present on the remote server so that only remaining data of the source object not already present on the remote server is copied to the remote server to replicate the source object.

8. The method of claim 7 , wherein receiving the set of hashes for the source object includes receiving hashes of greater-depth objects, the greater-depth objects being part of the source object, the greater-depth objects comprising temporal objects associated with a replication time subsequent in time to a first replication of the source object.

9. The method of claim 7 , further comprising creating a first synthetic object based on the set of source hashes.

10. The method of claim 9 , wherein sending the generated data from the remote server to the source local deduplication store causes the source local deduplication store to create a second synthetic object based on the data from the remote server, wherein the second synthetic object is identical to the first synthetic object.

11. The method of claim 10 , further comprising receiving, from the source local deduplication store, a set of differences between the second synthetic object and the source object.

12. The method of claim 11 , further comprising assembling a remote object, the remote object including the first synthetic object and the set of differences, wherein the remote object is identical to the source object.

13. A computerized method of replicating an object from a source local deduplication store to a remote server based on data already stored on the remote server to reduce the amount of duplicate data sent from the local deduplication store to the remote server, the method comprising:

sending, by the source local deduplication store to the remote server, a set of hashes for a source object to be replicated from the source local deduplication store to the remote server, the source object comprising a deduplicated version of source data, the source object being represented as a plurality of temporal objects, each of the temporal objects associated with changes to the source object at a replication time, the set of hashes including a hash for each of the temporal objects;

generating, by the remote server, data indicating at least one of:

a set of object hashes representative of data in the source object that is already present on the remote server, and

data indicative of source object hashes that are not present on the remote server;

transmitting, by the remote server, the generated data to the source local deduplication store;

identifying, by the source local deduplication store, portions of the source object that are not already present on the remote server based on the received data;

transmitting, by the source local deduplication store, the identified portions of the source object to the remote server to replicate the source object on the remote server so that only the portions of the source object not already present on the remote server are copied to the remote server to replicate the source object; and

assembling, by the remote server, a remote object, the remote object comprising the set of object hashes representative of data in the source object that is already present on the remote server and the identified portions, wherein the remote object is identical to the source object.

Assignments (8)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2021
From: ACTIFIO, INC.
To: GOOGLE LLC
Reel/Frame 056911/0517 →
RELEASE OF SECURITY INTEREST Recorded May 29, 2020
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: ACTIFIO, INC.
Reel/Frame 053483/0084 →
SECURITY INTEREST Recorded Aug 3, 2018
From: ACTIFIO, INC.
To: CRESTLINE DIRECT FINANCE, L.P., AS ADMINISTRATIVE AGENT, COLLATERAL AGENT AND SOLE LEAD ARRANGER
Reel/Frame 046702/0543 →
RELEASE OF SECURITY INTEREST Recorded May 5, 2017
From: HERCULES CAPITAL, INC. (FORMERLY KNOWN AS HERCULES TECHNOLOGY GROWTH CAPITAL, INC.)
To: ACTIFIO, INC.
Reel/Frame 042415/0395 →
RELEASE OF SECURITY INTEREST Recorded May 5, 2017
From: SILICON VALLEY BANK
To: ACTIFIO, INC.
Reel/Frame 042415/0317 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2015
From: PROVENZANO, CHRISTOPHER A; GOLDBERG, KEITH; ABERCROMBIE, PHILIP J.
To: ACTIFIO, INC.
Reel/Frame 037086/0107 →
SECURITY AGREEMENT Recorded Jul 16, 2015
From: ACTIFIO, INC.
To: SILICON VALLEY BANK
Reel/Frame 036113/0970 →
SECURITY INTEREST Recorded Jul 14, 2015
From: ACTIFIO, INC.
To: HERCULES TECHNOLOGY GROWTH CAPITAL, INC., AS AGENT
Reel/Frame 036106/0004 →