IP Library Granted Patent US 10,922,184
Granted Patent B2
US 10,922,184 · App. 16/041,267 · Granted Feb 16, 2021

Data access during data recovery

Inventors: Michael John Dutch (Los Gatos, CA); Christopher Hercules Claudatos (San Jose, CA); Mandavilli Navneeth Rao (Santa Clara, CA)
Assignee: EMC IP HOLDING COMPANY LLC
G06F11/1448G06F11/1466G06F11/1469G06F13/26G06F13/385
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,922,184
App. No.
16/041,267
Granted
Feb 16, 2021
Kind
B2
Abstract

A method, article of manufacture, and apparatus for accessing data during data recovery. In some embodiments, this includes sending an I/O request from an application to an object, wherein the object is being recovered, establishing an I/O intercept, intercepting the application's I/O request with the I/O intercept, and redirecting the I/O request based on the status of the object's sub-objects.

Claims (52)

1. A method, comprising:

intercepting, during a data recovery operation, a request to access an object that is being recovered as part of the data recovery operation, wherein the object includes one or more sub-objects;

in response to intercepting the access request, determining a recovery status for a first sub-object of the one or more sub-objects in relation to the data recovery operation;

determining an access method to be implemented during the data recovery operation, the access method being implemented to make available at least one of the one or more sub-objects for access in connection with the request to access the object wherein:

the access method is determined based at least in part on the determined recovery status of at least the first object;

the determining the access method comprises changing a recovery priority of the first-sub object relative to recovery priorities of the one or more sub-objects; and

the recovery priorities of the one or more sub-objects pertain to an order with which the one or more sub-objects are recovered; and

providing, in connection with the request to access the object, access to the at least one of the one or more sub-objects in accordance with the determined access method.

2. The method of claim 1 , wherein the determining the access method comprises determining whether the first sub-object is to be accessed via local I/O, remote I/O, or recovery on access.

3. The method of claim 1 , wherein the determining the access method comprises determining whether to change the recovery priority of the first sub-object.

4. The method of claim 3 , wherein the recovery priority of the first sub-object is used in connection with determining an order for recovering the first sub-object in relation to another one of the one or more sub-objects.

5. The method of claim 4 , further comprising:

determining that the access request corresponds to a request for accessing the first sub-object; and

in response to determining that the access request corresponds to the request for accessing the first-sub-object, determining to change the recovery priority of the first sub-object, and changing the recovery priority of the first sub-object, the first sub-object being recoverable sooner after the recovery priority of the first sub-object is changed than before the recovery priority of the first sub-object is changed.

6. The method of claim 1 , wherein the providing access to the at least one of the one or more sub objects comprises:

in response to determining that the recovery status of the first sub-object corresponds to available via local I/O and that I/O has been successfully performed on a local copy of the first sub-object, accessing the local copy of the first sub-object; and

in response to determining that the recovery status of the first sub-object corresponds to available via local I/O and that I/O has not been performed on the local copy of the first sub-object, rerouting, an I/O request to access the object to a recovery service that manages recovery of the object.

7. The method of claim 1 , wherein the request to access the object is intercepted by an I/O intercept, and the I/O intercept is configured to apply the determined access method and transparently redirect the I/O request.

8. The method of claim 7 , wherein in response to determining that the recovery status of the first sub-object corresponds to available via local I/O and that I/O has been successfully performed on the local copy of the first sub-object, the I/O intercept is abolished with regard to the local copy of the first sub-object after the I/O has been successfully performed on the local copy of the first sub-object.

9. The method of claim 7 , wherein the I/O request to access the object is rerouted by the I/O intercept.

10. The method of claim 1 , wherein the determining the recovery status of the first sub-object includes determining whether the first sub-object is available via local I/O, remote I/O, or recovery on access.

11. The method of claim 10 , wherein in response to determining that the first sub-object is available via local I/O, the access method for an application to access the object includes redirecting the I/O request to a local copy of the first sub-object.

12. The method of claim 10 , wherein in response to determining that the first sub-object is available via remote I/O, the access method for an application to access the object includes redirecting the I/O request to a remote copy of the first sub-object.

13. The method of claim 12 , wherein the first sub-object is available via remote access and the I/O request is redirected to a remote copy of the first sub-object based at least in part on a pinned status of at least the first sub-object, and wherein pinning at least the first sub-object restricts access to the first sub-object to remote I/O.

14. The method of claim 10 , wherein in response to determining that the first sub-object is available via recovery on access, the access method for an application to access the object includes holding the I/O request until the first sub-object has been recovered.

15. The method of claim 10 , further comprising spinning up at least the first sub-object on a system and establishing a connection between an application and the spun-up first sub-object.

16. The method of claim 15 , wherein the system comprises a virtual machine mounted on top of a physical machine that is connected by a comparatively high bandwidth connection to a storage container storing the first sub-object.

17. The method of claim 1 , wherein the object is segmented into the one or more sub-objects based at least in part on one or more of the following: a predefined segment interval, an access pattern associated with the object, metadata, one or more policies, and one or more user commands.

18. The method of claim 1 , wherein each of at least a subset of the one or more sub-objects is assigned a recovery priority based at least in part on one or more of the following: an access pattern associated with the object, metadata, one or more polices, and one or more user commands.

19. The method of claim 18 , wherein the recovery priority corresponding to at least one of the one or more sub-objects is dynamically changed during the data recovery operation.

20. The method of claim 18 , wherein the recovery priority corresponding to the at least one of the one or more sub-objects is dynamically changed during the data recovery operation based on one or more access requests for the at least one of the one or more sub-objects.

21. The method of claim 1 , wherein each of at least a subset of the one or more sub-objects is assigned a recovery priority, and the recovery priority is stored in metadata or a header associated with the subset of the one or more sub-objects.

22. The method of claim 21 , wherein the recovery priority for at least one of the one or more sub-objects is updated during the recovery operation based at least in part on an access request for accessing the at least one of the one or more sub-objects.

23. The method of claim 1 , further comprising:

establishing an I/O intercept in connection with the data recovery operation, wherein the I/O intercept intercepts the request to access the object in connection with an I/O of an application; and

in response to a determination that the first sub-object has completed, abolishing the I/O intercept with respect to the first sub-object.

24. A system for accessing data during data recovery, comprising a storage device and a processor configured to:

intercept, during a data recovery operation, a request to access an object that is being recovered as part of the data recovery operation, wherein the object includes one or more sub-objects;

in response to intercepting the access request, determine a recovery status for a first sub-object of the one or more sub-objects in relation to the data recovery operation;

determine an access method to be implemented during the data recovery operation, the access method being implemented to make available at least one of the one or more sub-objects for access in connection with the request to access the object wherein:

the access method is determined based at least in part on the determined recovery status of at least the first object;

to determine the access method comprises changing a recovery priority of the first-sub object relative to recovery priorities of the one or more sub-objects; and

the recovery priorities of the one or more sub-objects pertain to an order with which the one or more sub-objects are recovered; and

provide, in connection with the request to access the object, access to the at least one of the one or more sub-objects in accordance with the determined access method.

25. A computer program product for accessing data during data recovery, comprising a non-transitory computer usable medium having machine readable code embodied therein for:

intercepting, during a data recovery operation, a request to access an object that is being recovered as part of the data recovery operation, wherein the object includes one or more sub-objects;

in response to intercepting the access request, determining a recovery status for a first sub-object of the one or more sub-objects in relation to the data recovery operation;

determining an access method to be implemented during the data recovery operation, the access method being implemented to make available at least one of the one or more sub-objects for access in connection with the request to access the object, wherein:

the access method is determined based at least in part on the determined recovery status of at least the first object;

the determining the access method comprises changing a recovery priority of the first-sub object relative to recovery priorities of the one or more sub-objects; and

the recovery priorities of the one or more sub-objects pertain to an order with which the one or more sub-objects are recovered; and

providing, in connection with the request to access the object, access to the at least one of the one or more sub-objects in accordance with the determined access method.

Assignments (9)
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 (047648/0422) 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 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 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/0510 →
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 Oct 12, 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 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 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 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2018
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046607/0417 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 23, 2018
From: DUTCH, MICHAEL JOHN; CLAUDATOS, CHRISTOPHER HERCULES; RAO, MANDAVILLI NAVNEETH
To: EMC CORPORATION
Reel/Frame 046425/0001 →