IP Library Granted Patent US 9,575,680
Granted Patent B1
US 9,575,680 · App. 14/466,210 · Granted Feb 21, 2017

Deduplication rehydration

Inventors: Lei Hu Zhang (Beijing, CN); Xianbo Zhang (Plymouth, MN)
Assignee: Veritas Technologies LLC
G06F3/0641G06F3/067G06F3/0619
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,575,680
App. No.
14/466,210
Granted
Feb 21, 2017
Kind
B1
Abstract

A method for deduplication rehydration is described. In one embodiment, a request to restore a backup image is received. The backup image is stored in a deduplication system. The backup image includes a plurality of data segments. The method includes determining locality information for at least one of the plurality of data segments. The locality information includes information regarding a location of the at least one data segment in relation to each other data segment of the plurality of data segments in the backup image. The method includes obtaining an identifier of each data container storing the plurality of data segments of the backup image, determining a degree to which the plurality of data segments of the backup image are processed by prefetching, and prefetching one or more of the plurality of target data segments from a data container based at least in part on a predetermined effectiveness threshold.

Claims (59)

1. A method for deduplication rehydration, comprising:

receiving a request to restore a backup image, the backup image being stored in a deduplication system, wherein the backup image comprises a plurality of data segments;

determining locality information for at least one of the plurality of data segments, wherein the locality information comprises information regarding a location of the at least one data segment in relation to each other data segment of the plurality of data segments in the backup image;

obtaining an identifier of each data container storing the plurality of data segments of the backup image; and

determining a degree to which the plurality of data segments of the backup image are processed by prefetching.

2. The method of claim 1 , further comprising:

calculating a prefetch ratio based on a complementary percentage of a value of a predetermined self-read ratio, the prefetch ratio expressing the degree to which the plurality of data segments of the backup image are processed by prefetching.

3. The method of claim 1 , further comprising:

calculating a data segment sum, wherein calculating the data segment sum comprises summing a number of data segments in the backup image with a number of data segments currently being prefetched by all prefetch threads.

4. The method of claim 3 , further comprising:

calculating a data container sum, wherein calculating the data container sum comprises summing a number of unique data container files containing the plurality of data segments in the backup image with a number of unique data container files containing the data segments currently being prefetched by all prefetch threads.

5. The method of claim 4 , further comprising:

calculating a merged locality, wherein calculating the merged locality comprises determining a ratio of the data segment sum to the data container sum.

6. The method of claim 5 , further comprising:

if merged locality satisfies a predetermined high-locality threshold, then setting a self-read ratio of the request to restore a backup image to 100 percent, the self-read ratio expressing the degree to which the plurality of data segments of the backup image are processed without prefetching.

7. The method of claim 5 , further comprising:

if merged locality satisfies a predetermined low-locality threshold and fails to satisfy a predetermined high-locality threshold, then calculating a magnification factor based on a ratio of merged locality to the low-locality threshold; and

calculating a self-read ratio based on a product of the magnification factor and a predetermined self-read-ratio baseline value.

8. The method of claim 5 , further comprising:

if merged locality fails to satisfy both a predetermined low-locality threshold and a predetermined high-locality threshold, then calculating a magnification factor based on a ratio of the low-locality threshold to merged locality; and

calculating a self-read ratio based a complementary percentage of a product of the magnification factor and a complementary percentage of a predetermined self-read ratio-baseline value.

9. The method of claim 1 , further comprising:

determining a value for at least one of a low-locality threshold, a high-locality threshold, and a self-read-ratio baseline based at least in part on analyzing system parameters and accessing previous test data.

10. A method for deduplication rehydration, comprising:

receiving a request to restore a backup image, the backup image being stored in a deduplication system, wherein the backup image comprises a plurality of target data segments;

determining locality information for at least one of the plurality of target data segments, wherein the locality information comprises information regarding a location of the at least one target data segment in relation to each other target data segment of the plurality of target data segments in the backup image;

obtaining an identifier of each data container storing the plurality of target data segments of the backup image; and

prefetching one or more of the plurality of target data segments from a data container based at least in part on a predetermined effectiveness threshold.

11. The method of claim 10 , further comprising:

determining a maximum read length, wherein the maximum read length is based on an allocated memory size for a temporary buffer.

12. The method of claim 11 , further comprising:

selecting a data container, the data container containing one or more target data segments from the backup image.

13. The method of claim 12 , further comprising:

iteratively determining length values for a consecutive sequence of one or more data segments in the data container, comprising:

a first iteration comprising determining a length of a first target data segment in the data container;

adding at least one sequential data segment to a current length of the one or more data segments for each subsequent iteration;

determining a length of target data segments in each subsequent iteration; and

stopping the iterative determination of length values when a current length value exceeds the maximum read length or the current length of the one or more data segments includes all target data segments in the data container.

14. The method of claim 13 , further comprising:

saving the determined length values in an array of length values for each length value that does not exceed a determined length value of a final iteration.

15. The method of claim 14 , further comprising:

analyzing the one or more data segments within each consecutive sequence of one or more data segments from the final iteration length value to the shortest length value, wherein the analyzing the one or more data segments comprises determining a number of target data segments included within each consecutive sequence of one or more data segments; and

determining an effectiveness ratio for each consecutive sequence of one or more data segments, the effectiveness ratio comprising a ratio of a length of the one or more target data segments within a first consecutive sequence of one or more data segments to a length value of the first consecutive sequence of one or more data segments.

16. The method of claim 15 , further comprising:

wherein, if the effectiveness ratio of an analyzed length satisfies an effectiveness threshold and the effectiveness ratio of the analyzed length is the largest of the effectiveness ratios in the array of length values, then selecting the analyzed length; and

reading all of the data segments from the analyzed length into the temporary buffer.

17. The method of claim 16 , further comprising:

reading the target data segments in the temporary buffer into a shared buffer, wherein the shared buffer comprises each of the data segments of the backup image.

18. A computing device configured for improving deduplication rehydration, comprising:

a processor;

memory in electronic communication with the processor, wherein the memory stores computer executable instructions that when executed by the processor cause the processor to perform the steps of:

receiving a request to restore a backup image, the backup image being stored in a deduplication system, wherein the backup image comprises a plurality of data segments;

determining locality information for at least one of the plurality of data segments, wherein the locality information comprises information regarding a location of the at least one data segment in relation to each other data segment of the plurality of data segments in the backup image;

obtaining an identifier of each data container storing the plurality of data segments of the backup image; and

determining a degree to which the plurality of data segments of the backup image are processed by prefetching.

19. The computing device of claim 18 , wherein the instructions are executable by the processor to:

calculate a prefetch ratio based on a complementary percentage of a value of a predetermined self-read ratio, the prefetch ratio expressing the degree to which the plurality of data segments of the backup image are processed by prefetching.

20. The computing device of claim 18 , wherein the instructions are executable by the processor to:

calculate a data segment sum, wherein calculating the data segment sum comprises summing a number of data segments in the backup image with a number of data segments currently being prefetched by all prefetch threads.

Assignments (13)
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 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
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 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2014
From: ZHANG, LEI HU; ZHANG, XIANBO
To: SYMANTEC CORPORATION
Reel/Frame 033591/0654 →