IP Library Granted Patent US 10,691,557
Granted Patent B1
US 10,691,557 · App. 15/192,826 · Granted Jun 23, 2020

Backup file recovery from multiple data sources

Inventor: Anupam Sharma (Bangalore, IN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F11/1469G06F16/27
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,691,557
App. No.
15/192,826
Granted
Jun 23, 2020
Kind
B1
Abstract

Backup file recovery from multiple data sources is described. A system determines whether each of multiple data sources stores a corresponding copy of a backup file associated with a data object, in response to receiving a request to recover the backup file associated with the data object. The system allocates multiple portions of the backup file to corresponding multiple data streams, if each of the multiple data sources stores the corresponding copy of the backup file associated with the data object. The system recovers the backup file by concurrently recovering the multiple data streams from the corresponding multiple data sources.

Claims (28)

1. A system for backup file recovery from multiple data sources, the system comprising:

a processor-based application, which when executed on a computer, will cause a processor to:

determine, in response to receiving a request to recover a backup file associated with a data object, whether each data source of a plurality of data sources stores an entire copy of the backup file associated with the data object;

allocate, in response to a determination that each data source of the plurality of data sources stores the entire copy of the backup file associated with the data object, an amount of the backup file requested to be recovered to each data stream of a plurality of data streams, the plurality of data streams equaling the plurality of data sources, each of the data streams transmitting the corresponding allocated amount of the backup file from a different one of the plurality of data sources;

recover the allocated backup file by concurrently recovering the corresponding plurality of data streams from the corresponding plurality of data sources; and

recover the backup file from a single data source of the plurality of data sources in response to a determination that each of the data sources of the plurality number of data sources stores less than the entire copy of the backup file associated with the data object.

2. The system of claim 1 , wherein the backup file comprises one of a plurality of data files and a plurality of data blocks.

3. The system of claim 1 , wherein determining the plural number of data sources that each store the entire copy of the backup file associated with the data object comprises reading a backup catalog associated with a backup application that created the backup file.

4. The system of claim 1 , wherein allocating the corresponding plural number of data streams comprises allocating a first part in a sequence of different portions of the entire copy of the backup file to a first data stream, allocating a second part in the sequence of different portions of the entire copy of the backup file to a second data stream, allocating a third part in the sequence of different portions of the entire copy of the backup file to the first data stream, and allocating a fourth part in the sequence of different portions of the entire copy of the backup file to the second data stream.

5. The system of claim 1 , wherein allocating the corresponding plural number of data streams comprises allocating a largest part in a descending size order of different portions of the entire copy of the backup file to a first data stream, allocating a next largest part in the descending size order of different portions of the entire copy of the backup file to a second data stream, and allocating a smallest part in the descending size order of different portions of the entire copy of the backup file to one of the first data stream and the second data stream.

6. A computer-implemented method for backup file recovery from multiple data sources, the method comprising:

determining, in response to receiving a request to recover a backup file associated with a data object, whether each data source of a plurality of data sources stores an entire copy of the backup file associated with the data object;

allocating, in response to a determination that each data source of the plurality of data sources stores the entire copy of the backup file associated with the data object, an amount of the backup file requested to be recovered to each data stream of a plurality of data streams, the plurality of data streams equaling the plurality of data sources, each of the data streams transmitting the corresponding allocated amount of the backup file from a different one of the plurality of data sources;

recovering the allocated backup file by concurrently recovering the corresponding plurality of data streams from the corresponding plurality of data sources; and

recovering the backup file from a single data source of the plurality of data sources in response to a determination that each of the data sources of the plurality number of data sources stores less than the entire copy of the backup file associated with the data object.

7. The method of claim 6 , wherein the backup file comprises one of a plurality of data files and a plurality of data blocks.

8. The method of claim 6 , wherein determining the plural number of data sources that each store the entire copy of the backup file associated with the data object comprises reading a backup catalog associated with a backup application that created the backup file.

9. The method of claim 6 , wherein allocating the corresponding plural number of data streams comprises allocating a first part in a sequence of different portions of the entire copy of the backup file to a first data stream, allocating a second part in the sequence of different portions of the entire copy of backup file to a second data stream, allocating a third part in the sequence of different portions of the entire copy of the backup file to the first data stream, and allocating a fourth part in the sequence of different portions of the entire copy of the backup file to the second data stream.

10. The method of claim 6 , wherein allocating the corresponding plural number of data streams comprises allocating a largest part in a descending size order of different portions of the entire copy of the backup file to a first data stream, allocating a next largest part in the descending size order of different portions of the entire copy of the backup file to a second data stream, and allocating a smallest part in the descending size order of different portions of the entire copy of the backup file to one of the first data stream and the second data stream.

11. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:

determine, in response to receiving a request to recover a backup file associated with a data object, whether each data source of a plurality of data sources stores an entire copy of the backup file associated with the data object;

allocate, in response to a determination that each data source of the plurality of data sources stores the entire copy of the backup file associated with the data object, an amount of the backup file requested to be recovered to each data stream of a plurality of data streams, the plurality of data streams equaling the plurality of data sources, each of the data streams transmitting the corresponding allocated amount of the backup file from a different one of the plurality of data sources;

recover the allocated backup file by concurrently recovering the corresponding plurality of data streams from the corresponding plurality of data sources; and

recover the backup file from a single data source of the plurality of data sources in response to a determination that each of the data sources of the plurality number of data sources stores less than the entire copy of the backup file associated with the data object.

12. The computer program product of claim 11 , wherein the backup file comprises one of a plurality of data files and a plurality of data blocks.

13. The computer program product of claim 11 , wherein determining the plural number of data sources that each store the entire copy of the backup file associated with the data object comprises reading a backup catalog associated with a backup application that created the backup file.

14. The computer program product of claim 11 , wherein allocating the corresponding plural number of data streams comprises allocating a first part in a sequence of different portions of the entire copy of the backup file to a first data stream, allocating a second part in the sequence of different portions of the entire copy of the backup file to a second data stream, allocating a third part in the sequence of different portions of the entire copy of the backup file to the first data stream, and allocating a fourth part in the sequence of different portions of the entire copy of the backup file to the second data stream.

15. The computer program product of claim 11 , wherein allocating the corresponding plural number of data streams comprises allocating a largest part in a descending size order of different portions of the entire copy of the backup file to a first data stream, allocating a next largest part in the descending size order of different portions of the entire copy of the backup file to a second data stream, and allocating a smallest part in the descending size order of different portions of the entire copy of the backup file to one of the first data stream and the second data stream.

Assignments (5)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2017
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041872/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2016
From: SHARMA, ANUPAM
To: EMC CORPORATION
Reel/Frame 039124/0016 →