IP Library Granted Patent US 10,681,129
Granted Patent B1
US 10,681,129 · App. 15/702,694 · Granted Jun 9, 2020

Systems and methods for recovering data

Inventors: Sunil Hasbe (Shirur Anantpal, IN); Subash Rajaa (Pune, IN); Hrudil Gorantla (Guntur, IN); Rushikesh Patil (Pune, IN)
Assignee: Veritas Technologies LLC
H04L67/1095G06F9/4843H04L67/1097
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,681,129
App. No.
15/702,694
Granted
Jun 9, 2020
Kind
B1
Abstract

The disclosed computer-implemented method for recovering data may include (i) accumulating a list of changed blocks that have changed in a replicated source volume over a continuous-data-protection window of time, (ii) receiving a request to recover data in a replication target volume of the replicated source volume, (iii) converting the changed blocks to a changed-block volume that is paired with the replication target volume, (iv) launching a virtual machine from the replication target volume and the paired changed-block volume, (v) determining that an intercepted read request is directed to a changed block stored within the changed-block volume, and (vi) redirecting the intercepted read request from the replication target volume to the changed-block volume to fulfill the intercepted read request. Various other methods, systems, and computer-readable media are also disclosed.

Claims (47)

1. A computer-implemented method for recovering data, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

accumulating a list of changed blocks that have changed in a replicated source volume over a continuous-data-protection window of time;

receiving a request to recover data in a replication target volume of the replicated source volume;

converting the changed blocks to a changed-block volume that is paired with the replication target volume;

launching a virtual machine from the replication target volume and the paired changed-block volume;

determining that an intercepted read request is directed to a changed block stored within the changed-block volume; and

redirecting the intercepted read request from the replication target volume to the changed-block volume to fulfill the intercepted read request.

2. The computer-implemented method of claim 1 , wherein redirecting the intercepted read request from the replication target volume to the changed-block volume is performed by a kernel-level module.

3. The computer-implemented method of claim 2 , wherein the kernel-level module is configured to intercept each read request at the virtual machine that issues over a period of time.

4. The computer-implemented method of claim 2 , wherein:

the method further comprises generating metadata for the changed-block volume that specifies details about the changed blocks; and

the kernel-level module performs the redirecting the intercepted read request from the replication target volume to the changed-block volume at least in part by referencing the generated metadata for the changed-block volume.

5. The computer-implemented method of claim 2 , wherein the kernel-level module performs the redirecting the intercepted read request inside of the virtual machine without accessing a hypervisor that executes the virtual machine.

6. The computer-implemented method of claim 2 , wherein:

the replication target volume is stored in a third-party cloud storage service; and

the kernel-level module is cloud storage service agnostic.

7. The computer-implemented method of claim 1 , further comprising synchronizing the replication target volume with the changed-block volume such that the replication target volume accurately reflects the changed blocks.

8. The computer-implemented method of claim 7 , wherein synchronizing the replication target volume with the changed-block volume is performed upon expiration of the continuous-data-protection window of time.

9. The computer-implemented method of claim 1 , further comprising receiving user input that specifies a length of the continuous-data-protection window of time.

10. The computer-implemented method of claim 1 , wherein receiving the request to recover data in the replication target volume of the replicated source volume comprises receiving a request to recover the replicated source volume to a specified point of time within the continuous-data-protection window of time.

11. A system for recovering data, the system comprising:

an accumulation module, stored in memory, that accumulates a list of changed blocks that have changed in a replicated source volume over a continuous-data-protection window of time;

a reception module, stored in memory, that receives a request to recover data in a replication target volume of the replicated source volume;

a conversion module, stored in memory, that converts the changed blocks to a changed-block volume that is paired with the replication target volume;

a launching module, stored in memory, that launches a virtual machine from the replication target volume and the paired changed-block volume;

a determination module, stored in memory, that determines that an intercepted read request is directed to a changed block stored within the changed-block volume;

a redirection module, stored in memory, that redirects the intercepted read request from the replication target volume to the changed-block volume to fulfill the intercepted read request; and

at least one physical processor configured to execute the accumulation module, the reception module, the conversion module, the launching module, the determination module, and the redirection module.

12. The system of claim 11 , wherein the redirection module comprises a kernel-level module.

13. The system of claim 12 , wherein the kernel-level module is configured to intercept each read request at the virtual machine that issues over a period of time.

14. The system of claim 12 , wherein:

the conversion module further generates metadata for the changed-block volume that specifies details about the changed blocks; and

the kernel-level module performs the redirecting the intercepted read request from the replication target volume to the changed-block volume at least in part by referencing the generated metadata for the changed-block volume.

15. The system of claim 12 , wherein the kernel-level module performs the redirecting the intercepted read request inside of the virtual machine without accessing a hypervisor that executes the virtual machine.

16. The system of claim 12 , wherein:

the replication target volume is stored in a third-party cloud storage service; and

the kernel-level module is cloud storage service agnostic.

17. The system of claim 11 , wherein the conversion module synchronizes the replication target volume with the changed-block volume such that the replication target volume accurately reflects the changed blocks.

18. The system of claim 17 , wherein the conversion module synchronizes the replication target volume with the changed-block volume upon expiration of the continuous-data-protection window of time.

19. The system of claim 11 , wherein the reception module is configured to receive user input that specifies a length of the continuous-data-protection window of time.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

accumulate a list of changed blocks that have changed in a replicated source volume over a continuous-data-protection window of time;

receive a request to recover data in a replication target volume of the replicated source volume;

convert the changed blocks to a changed-block volume that is paired with the replication target volume;

launch a virtual machine from the replication target volume and the paired changed-block volume;

determine that an intercepted read request is directed to a changed block stored within the changed-block volume; and

redirect the intercepted read request from the replication target volume to the changed-block volume to fulfill the intercepted read request.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075377/0130 →
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0938 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 051594/0529 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0412 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Aug 2, 2019
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 051594/0529 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Dec 4, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 044682/0967 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2017
From: HASBE, SUNIL; RAJAA, SUBASH; GORANTLA, HRUDIL; PATIL, RUSHIKESH
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 043566/0532 →