IP Library › Granted Patent US 10,528,428
Granted Patent B2
US 10,528,428 · App. 14/960,267 · Granted Jan 7, 2020

Dynamic prioritized recovery

Inventors: Michael John Dutch (Saratoga, CA); Christopher Hercules Claudatos (San Jose, CA); Mandavilli Navneeth Rao (Santa Clara, CA)
Assignee: EMC IP Holding Company LLC
G06F11/1451G06F11/1461G06F11/1469G06F16/164G06F16/1752G06F16/907G06F2201/84
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,528,428
App. No.
14/960,267
Filed
Dec 4, 2015
Granted
Jan 7, 2020
Kind
B2
Art Unit
2168
USPC
707/610
Abstract

A method, article of manufacture, and apparatus for recovering data. A method for recovering data includes selecting an object to be recovered, recovering sub-objects of the object based on the priorities assigned to the sub-objects, and reprioritizing the sub-objects based on an application's I/O during recovery. A method for recovering data includes reprioritizing the sub-objects the sub-objects includes assigning a lower priority to the sub-objects when an application has completed I/O on the object. A method for recovering data includes recovering sub-objects includes recovering sub-objects to a remote location.

Claims (41)

1. A method for recovering data, comprising:

using a processor to select a previously backed up data object to be recovered using backup data, wherein the data object includes a plurality of sub-objects;

using the processor to recover the plurality of sub-objects based on a first set of priorities assigned to the sub-objects, wherein at least a subset of the plurality of sub-objects are assigned a priority from the first set of priorities;

using the processor to receive, after recovery of the previously backed up data object has started, information associated with an application's I/O; and

using the processor to reprioritize the sub-objects based at least in part on the information associated with the application's I/O received after recovery of the previously backed up data object has started, wherein the information associated with the application's I/O that is used in connection with reprioritizing the sub-objects is obtained during recovery of the backup data and comprises information pertaining to an I/O event that is detected during recovery of the backup data, the reprioritizing the sub-objects comprises assigning a priority from a second set of priorities to at least a subset of the sub-objects, and the at least the subset of the plurality of sub-objects is assigned a new priority from the second set of priorities, contemporaneously with recovery of the backed up data object.

2. The method of claim 1 , wherein the data object corresponds to a data file, the plurality of sub-objects correspond to a plurality of segments of the data file, and the data file is segmented into the plurality of segments according to an access pattern.

3. The method of claim 1 , wherein the priority respectively assigned to the at least the subset of the plurality of sub-objects is assigned based at least in part on an access state associated with an application's I/O of the data object.

4. The method of claim 3 , further comprising:

using the processor to detect an indication of a change in the access state associated with the application's I/O of the data object while the data object is being recovered, wherein the change in the access state comprises one or more of the application attempting to access the data object and the application being finished with the data object.

5. The method of claim 4 , wherein the respective priority assigned to the at least the subset of the plurality of sub-objects is assigned based at least in part on the changed access state associated with the application's I/O of the data object.

6. The method of claim 5 , wherein the change in the access state includes that the application is attempting to access the data object and wherein reprioritizing the sub-objects includes changing dynamically during recovery a priority assigned to the sub-objects from a higher priority to a lower priority in response to detecting the indication.

7. The method of claim 1 , wherein recovering sub-objects includes recovering sub-objects to a remote location.

8. The method of claim 1 , wherein recovering sub-objects includes recovering sub-objects to a local location.

9. The method of claim 1 , wherein the data object includes a virtual machine.

10. The method of claim 1 , wherein the data object includes a version of the data object.

11. The method of claim 1 , wherein in response to the data object being closed while the data object is being recovered, the new priority is assigned to each of at least the subset of the plurality of sub-objects such that the new priority is lower than the priority from the first set of priorities previously assigned to the each of at least the subset of the plurality of sub-objects.

12. The method of claim 1 , further comprising: determining to pin at least one of the subset of the plurality of sub-objects to a remote recovery location based at least in part on the information associated with the application's I/O that is received after recovery of the previously backed up data object has started.

13. The method of claim 12 , wherein to pin the at least one of the subset of the plurality of sub-objects to a remote recovery comprises restricting the at least one of the subset of the plurality of sub-objects to be recovered only via the remote recovery during the recovery operation.

14. The method of claim 1 , wherein the first set of priorities assigned to the sub-objects are based at least in part on an access pattern with respect to the at least the subset of the plurality of sub-objects, and the reprioritization of the sub-objects is based at least in part on information obtained during recovery of the backup data.

15. The method of claim 1 , the information associated with the application's I/O obtained during the recovery of the backup data corresponds to an input received from a user during the recovery.

16. The method of claim 12 , wherein the determining to pin at least one of the subset of the plurality of sub-objects to a remote recovery location comprises determining that the at least one of the subset of the plurality of sub-objects to be pinned to the remote recovery location corresponds to data for which data integrity considerations are more important than performance considerations.

17. A system for recovering data, comprising a storage device and one or more processors and a memory to store instructions, wherein the instructions are executed by the one or more processors to perform:

selecting a previously backed up data object to be recovered using backup data, wherein the data object includes a plurality of sub-objects;

recovering the plurality of sub-objects based on a first set of priorities assigned to the sub-objects, wherein at least a subset of the plurality of sub-objects are assigned a priority from the first set of priorities;

receiving, after recovery of the previously backed up data object has started, information associated with an application's I/O; and

reprioritizing the sub-objects based at least in part on the information associated with the application's I/O received after recovery of the previously backed up data object has started, wherein the information associated with the application's I/O that is used in connection with reprioritizing the sub-objects is obtained during recovery of the backup data and comprises information pertaining to an I/O event that is detected during recovery of the backup data, the reprioritizing the sub-objects comprises assigning a priority from a second set of priorities to each of at least a subset of the sub-objects, and the at least the subset of the plurality of sub-objects is assigned a new priority from the second set of priorities contemporaneously with recovery of the backed-up data object.

18. The system of claim 17 , wherein the data object corresponds to a data file, the plurality of sub-objects correspond to a plurality of segments of the data file, and the data file is segmented into the plurality of segments according to an access pattern.

19. The system of claim 17 , wherein the priority respectively assigned to the at least the subset of the plurality of sub-objects is assigned based at least in part on an access state associated with an application's I/O of the data object.

20. The system of claim 17 , wherein the instructions are further executed by the one or more processors to perform:

detecting an indication of a change in the access state associated with the application's I/O of the data object while the data object is being recovered, wherein the change in the access state comprises one or more of the application attempting to access the data object and the application being finished with the data object.

21. The system of claim 20 , wherein the respective priority assigned to the at least the subset of the plurality of sub-objects is assigned based at least in part on the changed access state associated with the application's I/O of the data object.

22. The system of claim 21 , wherein the change in the access state includes that the application is finished with the data object and wherein to reprioritize the sub-objects includes changing dynamically during recovery a priority assigned to the sub-objects from a higher priority to a lower priority in response to detecting the indication.

23. The system as recited in claim 22 , wherein the change in the access state includes that the application is attempting to access the data object and wherein to reprioritize the sub-objects includes changing dynamically during recovery a priority assigned to the sub-objects from a higher priority to a lower priority in response to detecting the indication.

24. The system as recited in claim 17 , wherein recover sub-objects includes recover sub-objects to a remote location.

25. The system as recited in claim 17 , wherein recover sub-objects includes recover sub-objects to a local location.

26. The system as recited in claim 17 , wherein the data object includes a virtual machine.

27. A computer program product for recovering data, comprising a non-transitory computer readable storage medium having computer readable code embodied therein that, executed by a computer, performs:

selecting a previously backed up data object to be recovered using backup data, wherein the data object includes a plurality of sub-objects;

recovering the plurality of sub-objects based on a first set of priorities assigned to the sub-objects, wherein at least a subset of the plurality of sub-objects are assigned a priority from the first set of priorities;

receiving, after recovery of the previously backed up data object has started, information associated with an application's I/O; and

reprioritizing the sub-objects based at least in part on the information associated with the application's I/O received after recovery of the previously backed up data object has started, wherein the information associated with the application's I/O that is used in connection with reprioritizing the sub-objects is obtained during recovery of the backup data and comprises information pertaining to an I/O event that is detected during recovery of the backup data, the reprioritizing the sub-objects comprises assigning a priority from a second set of priorities to each of at least a subset of the sub-objects, and the at least the subset of the plurality of sub-objects is assigned a new priority from a the second set of priorities contemporaneously with recovery of the backed-up data object.

Assignments (10)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/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 Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2016
From: DUTCH, MICHAEL JOHN; CLAUDATOS, CHRISTOPHER HERCULES; RAO, MANDAVILLI NAVNEETH
To: EMC CORPORATION
Reel/Frame 037717/0576 →
Continuity (2)
Continuation 12828205 · Jun 30, 2010
Related Publication 20160154705A1 · Jun 2, 2016