IP Library Granted Patent US 10,831,391
Granted Patent B2
US 10,831,391 · App. 15/965,306 · Granted Nov 10, 2020

Method to serve restores from remote high-latency tiers by reading available data from a local low-latency tier in a deduplication appliance

Inventors: Nitin Madan (Gurugram, IN); Srikant Viswanathan (Pune, IN); Kedar Godbole (Pune, IN); Kalyan C. Gunda (Bangalore, IN); Kalidas Balakrishnan (San Jose, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0647G06F3/067G06F3/0619G06F3/0641G06F3/0643
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 10,831,391
App. No.
15/965,306
Granted
Nov 10, 2020
Kind
B2
Abstract

Embodiments are described for performing file restores from remote high-latency storage tiers by reading available data from a local low-latency tier in a deduplication appliance. A request to restore a previously segmented and deduplicated file can be received by a storage appliance from an application, each segment having a fingerprint. The name of the file can be looked up in an index on the storage appliance, and a first batch of fingerprints of segments of the file can be retrieved from the index. Each fingerprint can be looked up in metadata in the index to determine whether the segment corresponding to the fingerprint is available locally and therefore need not be retrieved locally. A list of local and remote prefetch segments is generated, and a prefetch request is generated for each list, if non-empty. Use of the prefetch scheme can be dynamically turned on or off.

Claims (52)

1. A computer-implemented comprising:

receiving, by a storage appliance, a request to restore a file to the storage appliance, the file having been previously segmented into a plurality of deduplicated segments, each deduplicated segment having a fingerprint;

determining, by the storage appliance, a tier of storage where all deduplicated segments of the requested file are stored;

for each batch of fingerprints of a plurality of batches of fingerprints, iteratively performing:

determining a hit-rate as a first ratio of segments associated with a previous batch of fingerprints that are stored on the storage appliance vs. stored on the tier storage;

retrieving, from the storage appliance, the batch of fingerprints, each fingerprint in the batch of fingerprints identifying a deduplicated segment of the file;

for each fingerprint in the batch of fingerprints, accessing an index of the storage appliance to determine where the segment associated with the fingerprint is stored;

determining whether an advanced direct restore (ADR) was enabled or disabled for the previous batch of fingerprints;

in response to determining that the ADR was disabled for the previous batch of fingerprints, determining the hit-rate as a second ratio of segments associated with a portion of fingerprints of the batch of fingerprints that are stored on the storage appliance vs. stored on the tier storage;

determining whether the hit-rate is below a threshold;

in response to determining that the hit-rate is above the threshold, enabling the ADR for the batch of fingerprints and prefetching segments associated with the batch of fingerprints by retrieving at least one segment associated with a fingerprint in the batch of fingerprints from the storage appliance and retrieving at least one other segment associated with one other fingerprint in the batch of fingerprints from the tier of storage where all segments of the file are stored; and

in response to determining that the hit-rate is below the threshold, disabling the ADR and retrieving all of the segments associated with the batch of fingerprints from the tier of storage.

2. The method of claim 1 , wherein the tier of storage where all deduplicated segments of the file are located is distinct from the storage appliance.

3. The method of claim 1 , wherein all segments of the file are located on a remote tier of storage that comprises a cloud storage service.

4. The method of claim 1 , wherein the request is received from an application in the context of a storage appliance input/output (I/O) operation from the application.

5. The method of claim 1 , wherein the prefetched segments are read and provided to an application that requested that the file be restored.

6. The method of claim 1 , wherein the batch of fingerprints are ordered in a file order of the prefetched segments.

7. A non-transitory computer-readable medium programmed with executable instructions that, when executed by a processing system having at least one hardware processor, perform operations comprising:

receiving, by a storage appliance, a request to restore a file to the storage appliance, the file having been previously segmented into a plurality of deduplicated segments, each deduplicated segment having a fingerprint;

determining, by the storage appliance, a tier of storage where all deduplicated segments of the requested file are stored;

for each batch of fingerprints of a plurality of batches of fingerprints, iteratively performing:

determining a hit-rate as a first ratio of segments associated with a previous batch of fingerprints that are stored on the storage appliance vs. stored on the tier storage;

retrieving, from the storage appliance, the batch of fingerprints, each fingerprint in the batch of fingerprints identifying a deduplicated segment of the file;

for each fingerprint in the batch of fingerprints, accessing an index of the storage appliance to determine where the segment associated with the fingerprint is stored;

determining whether an advanced direct restore (ADR) was enabled or disabled for the previous batch of fingerprints;

in response to determining that the ADR was disabled for the previous batch of fingerprints, determining the hit-rate as a second ratio of segments associated with a portion of fingerprints of the batch of fingerprints that are stored on the storage appliance vs. stored on the tier storage;

determining whether the hit-rate is below a threshold;

in response to determining that the hit-rate is above the threshold, enabling the ADR for the batch of fingerprints and, prefetching segments associated with the batch of fingerprints by retrieving at least one segment associated with a fingerprint in the batch of fingerprints from the storage appliance and retrieving at least one other segment associated with one other fingerprint in the batch of fingerprints from the tier of storage where all segments of the file are stored; and

in response to determining that the hit-rate is below the threshold, disabling the ADR and retrieving all of the segments associated with the batch of fingerprints from the tier of storage.

8. The medium of claim 7 , wherein the tier of storage where all deduplicated segments of the file are located is distinct from the storage appliance.

9. The medium of claim 7 , wherein all segments of the file are located on a remote tier of storage that comprises a cloud storage service.

10. The medium of claim 7 , wherein the request is received from an application in the context of a storage appliance input/output (I/O) operation from the application.

11. The medium of claim 7 , wherein the prefetched segments are read and provided to an application that requested that the file be restored.

12. The medium of claim 7 , wherein the batch of fingerprints are ordered in a file order of the prefetched segments.

13. A system comprising:

a processing system having at least one hardware processor, the processing system coupled to a memory programmed with executable instructions that, when executed by the processing system, perform operations comprising:

receiving, by a storage appliance, a request to restore a file to the storage appliance, the file having been previously segmented into a plurality of deduplicated segments, each deduplicated segment having a fingerprint;

determining, by the storage appliance, a tier of storage where all deduplicated segments of the requested file are stored;

for each batch of fingerprints of a plurality of fingerprints, iteratively performing:

determining, a hit-rate as a first ratio of segments associated with a previous batch of fingerprints that are stored on the storage appliance vs. stored on the tier storage;

retrieving, from the storage appliance, the batch of fingerprints, each fingerprint in the batch of fingerprints identifying a deduplicated segment of the file;

for each fingerprint in the batch of fingerprints, accessing an index of the storage appliance to determine where the segment associated with the fingerprint is stored;

determining whether an advanced direct restore (ADR) was enabled or disabled for the previous batch of fingerprints;

in response to determining that the ADR was disabled for the previous batch of fingerprints, determining the hit-rate as a second ratio of segments associated with a portion of the fingerprints of the batch of fingerprints that are stored on the storage appliance vs. stored on the tier storage;

determining whether the hit-rate is below a threshold;

in response to determining that the hit-rate is above the threshold, enabling the ADR for the batch of fingerprints and prefetching segments associated with the batch of fingerprints by retrieving at least one segment associated with a fingerprint in the batch of fingerprints from the storage appliance and retrieving at least one other segment associated with one other fingerprint in the plurality of fingerprints from the tier of storage where all segments of the file are stored; and

in response to determining that the hit-rate is below the threshold, disabling the ADR and retrieving all of the segments associated with the batch of fingerprints from the tier storage.

14. The system of claim 13 , wherein the tier of storage where all deduplicated segments of the file are located is distinct from the storage appliance.

15. The system of claim 13 , wherein all segments of the file are located on a remote tier of storage that comprises a cloud storage service.

16. The system of claim 13 , wherein the request is received from an application in the context of a storage appliance input/output (I/O) operation from the application.

17. The system of claim 13 , wherein the prefetched segments are read and provided to an application that requested that the file be restored.

18. The system of claim 13 , wherein the batch of fingerprints are ordered in a file order of the prefetched segments.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (046366/0014) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060450/0306 →
RELEASE OF SECURITY INTEREST AT REEL 046286 FRAME 0653 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0093 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046286/0653 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 1, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 046366/0014 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2018
From: MADAN, NITIN; VISWANATHAN, SRIKANT; GODBOLE, KEDAR; GUNDA, KALYAN C.; BALAKRISHNAN, KALIDAS
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046035/0474 →