IP Library Granted Patent US 11,379,317
Granted Patent B2
US 11,379,317 · App. 16/734,243 · Granted Jul 5, 2022

Uninterrupted file level restore service using siamese engine

Inventors: Mahesh Reddy Appireddygari Venkataramana (Bangalore, IN); Chetan Battal (Banglore, IN); Mahantesh Ambaljeri (Banglore, IN); Swaroop Shankar DH (Bangalore, IN)
Assignee: EMC IP HOLDING COMPANY LLC
G06F11/1469G06F16/1744G06F21/602
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 11,379,317
App. No.
16/734,243
Granted
Jul 5, 2022
Kind
B2
Abstract

Methods and systems for restoring data to a host device are described. According to some embodiments, a hybrid buffer may be used to generate a twin file of each file object to be restored and append the twin file to the corresponding file object. Each file object and its corresponding twin file may be transmitted to a construction container via a restore agent. In the event of an unexpected abort during the first restoration session, the restore agent may preserve the twin file of a file object currently being restored (if one has been created at the time of the abort) and instruct the hybrid buffer to terminate operation. During a subsequent restore session, the restore agent may poll for the preserved twin file and commence the data restore operation from the file object currently being restored using the twin file.

Claims (69)

1. A method comprising:

transmitting, to a target device, a request to restore a plurality of file objects to a host device;

restoring, during a first restore session, one or more of the plurality of file objects requested, wherein restoring a file object comprises:

creating a twin file of the file object using a Siamese engine and appending the twin file to the file object;

storing the file object and the twin file in an operational buffer; and

transmitting the file object and the twin file to a reconstruction container;

detecting an abort of the first restore session;

pausing restoration of a file object currently being restored in response to detecting the abort;

polling, during a second restore session, for a twin file of the file object currently being restored; and

in response to receiving an acknowledgement of the twin file of the file object currently being restored, commencing restoration of the plurality of file objects with the twin file of the file object currently being restored.

2. The method of claim 1 , wherein the twin file of the file object currently being restored comprises an encrypted and compressed version of a payload of the file object currently being restored.

3. The method of claim 1 , further comprising:

in response to detecting the abort, preserving the twin file of the file object currently being restored if it exists at a time of the abort.

4. The method of claim 3 , wherein preserving the twin file of the file object currently being restored comprises:

storing the twin file of the file object currently being restored at the reconstruction container if the twin file of the file object currently being restored is at or en route to the reconstruction container at the time of the abort;

storing the twin file of the file object currently being restored in the operational buffer if the twin file of the file object currently being restored is at the operational buffer or en route to a restore agent at the time of the abort.

5. The method of claim 1 , further comprising:

in response to receiving no acknowledgement of the twin file, determining that no twin file has been created for the file object currently being restored at a time of the abort; and

transmitting to the target device, a request index of the file object currently being restored.

6. The method of claim 1 , wherein commencing restoration of the plurality of file objects with the twin file of the file object currently being restored comprises:

instructing the operational buffer to transmit the file object currently being restored to the reconstruction container.

7. The method of claim 6 , wherein commencing restoration of the plurality of file objects with the twin file further comprises:

restoring, during the second restore session, any of the plurality of file objects requested that have not yet been restored.

8. A system comprising:

a target device to back up data; and

a host device to:

transmit, to a target device, a request to restore a plurality of file objects to a host device;

restore, during a first restore session, one or more of the plurality of file objects requested, wherein restoring a file object comprises:

creating a twin file of the file object using a Siamese engine and appending the twin file to the file object;

storing the file object and the twin file in an operational buffer; and

transmitting the file object and the twin file to a reconstruction container;

detect an abort of the first restore session;

pause restoration of a file object currently being restored in response to detecting the abort;

poll, during a second restore session, for a twin file of the file object currently being restored; and

in response to receiving an acknowledgement of the twin file of the file object currently being restored, commence restoration of the plurality of file objects with the twin file of the file object currently being restored.

9. The system of claim 8 , wherein the twin file of the file object currently being restored comprises an encrypted and compressed version of a payload of the file object currently being restored.

10. The system of claim 8 , wherein the host device is further to:

in response to detecting the abort, preserve the twin file of the file object currently being restored if it exists at a time of the abort.

11. The system of claim 10 , wherein to preserve the twin file of the file object currently being restored, the host device is to:

store the twin file of the file object currently being restored at the reconstruction container if the twin file of the file object currently being restored is at or en route to the reconstruction container at the time of the abort;

store the twin file of the file object currently being restored in the operational buffer if the twin file of the file object currently being restored is at the operational buffer or en route to a restore agent at the time of the abort.

12. The system of claim 8 , wherein the host device is further to:

in response to receiving no acknowledgement of the twin file, determine that no twin file has been created for the file object currently being restored at a time of the abort; and

transmit to the target device, a request index of the file object currently being restored.

13. The system of claim 8 , wherein to commence restoration of the plurality of file objects with the twin file of the file object currently being restored, the host device is to:

instruct the operational buffer to transmit the file object currently being restored to the reconstruction container.

14. The system of claim 13 , wherein to commence restoration of the plurality of file objects with the twin file, the host device is further to:

restore, during the second restore session, any of the plurality of file objects requested that have not yet been restored.

15. A non-transitory computer readable medium, having instruction stored thereon that when executed by a processing device, cause the processing device to:

transmit, to a target device, a request to restore a plurality of file objects to a host device;

restore, during a first restore session, one or more of the plurality of file objects requested, wherein restoring a file object comprises:

creating a twin file of the file object using a Siamese engine and appending the twin file to the file object;

storing the file object and the twin file in an operational buffer; and

transmitting the file object and the twin file to a reconstruction container;

detect an abort of the first restore session;

pause restoration of a file object currently being restored in response to detecting the abort;

poll, during a second restore session, for a twin file of the file object currently being restored; and

in response to receiving an acknowledgement of the twin file of the file object currently being restored, commence restoration of the plurality of file objects with the twin file of the file object currently being restored.

16. The non-transitory computer readable medium of claim 15 , wherein the twin file of the file object currently being restored comprises an encrypted and compressed version of a payload of the file object currently being restored.

17. The non-transitory computer readable medium of claim 15 , wherein the processing device is further to:

in response to detecting the abort, preserve the twin file of the file object currently being restored if it exists at a time of the abort.

18. The non-transitory computer readable medium of claim 17 , wherein to preserve the twin file of the file object currently being restored, the processing device is to:

store the twin file of the file object currently being restored at the reconstruction container if the twin file of the file object currently being restored is at or en route to the reconstruction container at the time of the abort;

store the twin file of the file object currently being restored in the operational buffer if the twin file of the file object currently being restored is at the operational buffer or en route to a restore agent at the time of the abort.

19. The non-transitory computer readable medium of claim 15 , wherein the processing device is further to:

in response to receiving no acknowledgement of the twin file, determine that no twin file has been created for the file object currently being restored at a time of the abort; and

transmit to the target device, a request index of the file object currently being restored.

20. The non-transitory computer readable medium of claim 15 , wherein to commence restoration of the plurality of file objects with the twin file of the file object currently being restored, the processing device is to:

instruct the operational buffer to transmit the file object currently being restored to the reconstruction container.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 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 060438/0742 →
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 (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2020
From: APPIREDDYGARI VENKATARAMANA, MAHESH REDDY; BATTAL, CHETAN; AMBALJERI, MAHANTESH; SHANKAR DH, SWAROOP
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051437/0515 →