IP Library Granted Patent US 9,792,306
Granted Patent B1
US 9,792,306 · App. 15/006,495 · Granted Oct 17, 2017

Data transfer between dissimilar deduplication systems

Inventor: Jeremy Wartnick (Minnetonka, MN)
Assignee: Veritas Technologies LLC
G06F17/303G06F17/30336G06F17/30371H04L67/10
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,792,306
App. No.
15/006,495
Granted
Oct 17, 2017
Kind
B1
Abstract

Various systems and methods for migrating data between deduplication systems. For example, one method involves receiving a fingerprint, where the fingerprint is received from a source computing device at a destination computing device, and the fingerprint is associated with a data segment stored at the source computing device. The method also involves identifying a fingerprint type associated with the fingerprint. The method also involves performing a migration operation from the source computing device to the destination computing device. The migration operation involves determining whether the fingerprint is stored in a fingerprint sub-index. The migration operation also involves determining whether a second fingerprint that corresponds to the data segment is stored in a second sub-index, where the second fingerprint is of a second fingerprint type.

Claims (99)

1. A method comprising:

performing a data migration operation to migrate data from a source computing device to a destination computing device, wherein the data migration operation comprises

receiving, at the source computing device, a request to perform the data migration operation, wherein

the data comprises a first plurality of data segments, and

the first plurality of data segments comprise a first data segment;

transmitting a message to the destination computing device, wherein

the message comprises

a first fingerprint corresponding to the first data segment, and

information identifying a first fingerprint type of the first fingerprint;

receiving a reply from the destination computing device, wherein

the reply indicates whether any data segment of a second plurality of data segments, stored at the destination computing device, is identical to the first data segment; and

in response to an indication in the reply that a second data segment of the second plurality of data segments is identical to the first data segment, preventing the first data segment from being migrated to the destination computing device as part of the data migration operation, wherein

the indication that the second data segment is identical to the first data segment represents that the first fingerprint is associated with a second fingerprint corresponding to the second data segment,

the second fingerprint is of a second fingerprint type, and

the first fingerprint type and the second fingerprint type are different from one another.

2. The method of claim 1 , further comprising:

transmitting the data to the destination computing device, in response to the reply indicating that none of the second plurality of data segments are identical to the first data segment.

3. The method of claim 1 , wherein

the source computing device is configured to use the first fingerprint type, and

the destination computing device is configured to use the second fingerprint type.

4. The method of claim 1 , wherein

the destination computing device is configured to maintain a fingerprint lookup table comprising a plurality of sub-indexes, and

each sub-index of the plurality of sub-indexes corresponds to a respective fingerprint type of a plurality of fingerprint types.

5. The method of claim 4 , wherein the destination computing device is configured to:

determine whether the first fingerprint is stored in a first fingerprint sub-index of the fingerprint lookup table.

6. The method of claim 1 , further comprising:

in response to the receiving the request, generating the first fingerprint.

7. The method of claim 1 , wherein the destination computing device is configured to:

create a first fingerprint sub-index, in response to a determination that the first fingerprint type does not match any fingerprint type associated with an existing fingerprint sub-index.

8. The method of claim 1 , wherein the destination computing device is configured to:

generate a corresponding second fingerprint, in response to a determination that the first fingerprint is not included in a first fingerprint sub-index;

determine whether the corresponding second fingerprint is included in a second fingerprint sub-index; and

associate the corresponding second fingerprint and the first fingerprint with one another by

storing the corresponding second fingerprint in the second fingerprint sub-index.

9. The method of claim 1 , wherein

the first fingerprint type is associated with a first deduplication methodology, and

the second fingerprint type is associated with a second deduplication methodology.

10. A non-transitory computer readable storage medium storing program instructions executable to:

perform a data migration operation to migrate data from a source computing device to a destination computing device, by virtue of being executable to

receive, at the source computing device, a request to perform the data migration operation, wherein

the data comprises a first plurality of data segments, and

the first plurality of data segments comprise a first data segment;

transmit a message to the destination computing device, wherein

the message comprises

a first fingerprint corresponding to the first data segment, and

information identifying a first fingerprint type of the first fingerprint;

receive a reply from the destination computing device, wherein

the reply indicates whether any data segment of a second plurality of data segments, stored at the destination computing device, is identical to the first data segment; and

in response to an indication in the reply that a second data segment of the second plurality of data segments is identical to the first data segment, prevent the first data segment from being migrated to the destination computing device as part of the data migration operation, wherein

the indication that the second data segment is identical to the first data segment represents that the first fingerprint is associated with a second fingerprint corresponding to the second data segment,

the second fingerprint is of a second fingerprint type, and

the first fingerprint type and the second fingerprint type are different from one another.

11. The non-transitory computer readable storage medium of claim 10 , wherein the program instructions are further executable to:

transmit the data to the destination computing device, in response to the reply indicating that none of the second plurality of data segments are identical to the first data segment.

12. The non-transitory computer readable storage medium of claim 10 , wherein

the source computing device is configured to use the first fingerprint type, and

the destination computing device is configured to use the second fingerprint type.

13. The non-transitory computer readable storage medium of claim 10 , wherein

the destination computing device is configured to maintain a fingerprint lookup table comprising a plurality of sub-indexes, and

each sub-index of the plurality of sub-indexes corresponds to a respective fingerprint type of a plurality of fingerprint types.

14. The non-transitory computer readable storage medium of claim 10 , wherein the destination computing device is configured to:

create a first fingerprint sub-index, in response to a determination that the first fingerprint type does not match any fingerprint type associated with an existing fingerprint sub-index.

15. The non-transitory computer readable storage medium of claim 10 , wherein the destination computing device is configured to:

generate a corresponding second fingerprint, in response to a determination that the first fingerprint is not included in a first fingerprint sub-index;

determine whether the corresponding second fingerprint is included in a second fingerprint sub-index; and

associate the corresponding second fingerprint and the first fingerprint with one another by

storing the corresponding second fingerprint in the second fingerprint sub-index.

16. A system comprising:

one or more processors; and

a non-transitory computer-readable storage medium coupled to the one or more processors, wherein the non-transitory computer-readable storage medium stores program instructions executable by the one or more processors to

perform a data migration operation to migrate data from a source computing device to a destination computing device, by virtue of being executable to

receive, at the source computing device, a request to perform the data migration operation, wherein

the data comprises a first plurality of data segments, and

the first plurality of data segments comprise a first data segment;

transmit a message to the destination computing device, wherein

the message comprises

 a first fingerprint corresponding to the first data segment, and

 information identifying a first fingerprint type of the first fingerprint;

receive a reply from the destination computing device, wherein

the reply indicates whether any data segment of a second plurality of data segments, stored at the destination computing device, is identical to the first data segment; and

in response to an indication in the reply that a second data segment of the second plurality of data segments is identical to the first data segment, prevent the first data segment from being migrated to the destination computing device as part of the data migration operation, wherein

the indication that the second data segment is identical to the first data segment represents that the first fingerprint is associated with a second fingerprint corresponding to the second data segment,

the second fingerprint is of a second fingerprint type, and

the first fingerprint type and the second fingerprint type are different from one another.

17. The system of claim 16 , wherein the program instructions are further executable to:

transmit the data to the destination computing device, in response to the reply indicating that none of the second plurality of data segments are identical to the first data segment.

18. The system of claim 16 , wherein

the source computing device is configured to use the first fingerprint type, and

the destination computing device is configured to use the second fingerprint type.

19. The system of claim 16 , wherein

the destination computing device is configured to maintain a fingerprint lookup table comprising a plurality of sub-indexes, and

each sub-index of the plurality of sub-indexes corresponds to a respective fingerprint type of a plurality of fingerprint types.

20. The system of claim 16 , wherein the destination computing device is configured to:

create a first fingerprint sub-index, in response to a determination that the first fingerprint type does not match any fingerprint type associated with an existing fingerprint sub-index.

21. The system of claim 16 , wherein the destination computing device is configured to:

generate a corresponding second fingerprint, in response to a determination that the first fingerprint is not included in a first fingerprint sub-index;

determine whether the corresponding second fingerprint is included in a second fingerprint sub-index; and

associate the corresponding second fingerprint and the first fingerprint with one another by

storing the corresponding second fingerprint in the second fingerprint sub-index.

Assignments (10)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2017
From: SYMANTEC CORPORATION
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041897/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
Continuity (1)
Continuation 13929097 · Jun 27, 2013