IP Library Granted Patent US 11,663,092
Granted Patent B2
US 11,663,092 · App. 16/398,597 · Granted May 30, 2023

Systems and methods for continuous data protection

Inventors: Benjamin Travis Meadowcroft (San Jose, CA); Li Ding (Cupertino, CA); Shaomin Chen (San Jose, CA); Hardik Vohra (Sunnyvale, CA); Arijit Banerjee (Palo Alto, CA); Abhay Mitra (Santa Clara, CA); Kushaagra Goyal (Mountain View, CA); Arnav Gautum Mishra (San Jose, CA); Samir Rishi Chaudhry (Saratoga, CA); Suman Swaroop (Palo Alto, CA); Kunal Sean Munshani (Fremont, CA)
Assignee: Rubrik, Inc.
G06F11/1469G06F9/45558G06F16/2365G06F2009/45579G06F2009/45583G06F2201/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 11,663,092
App. No.
16/398,597
Granted
May 30, 2023
Kind
B2
Abstract

Example embodiments relate generally to systems and methods for continuous data protection (CDP) and more specifically to an input and output (I/O) filtering framework and log management system to seek a near-zero recovery point objective (RPO).

Claims (56)

1. A method for establishing a system for continuous data protection, comprising:

capturing, by a driver, continuous inputs and outputs (I/Os) exchanged between a server and a virtual machine (VM) having a virtual disk, wherein the continuous I/Os are captured after a base snapshot in a series of snapshots of the VM is taken;

caching, by the driver, the continuous I/Os;

sending, by the driver, the continuous I/Os as stream logs to one or more clusters, the stream logs forming a log stream;

receiving, by a log receiver service (LRS), that runs on one or more nodes within the one or more clusters, the log stream;

writing, by the LRS, the log stream to a disk, wherein continuous log chains are formed by the stream logs in the log stream and the base snapshot, the base snapshot serving as a base for the stream logs in the continuous log chains, wherein a later stream log depends at least partially on a former stream log in a continuous log chain;

using a set of algorithms to calculate a recoverable range of the VM based at least in part on the continuous log chains, wherein calculating the recoverable range comprises:

affirming a validity of each continuous log chain of the continuous log chains based at least in part on whether an unbroken path to the base snapshot exists, the recoverable range being based at least in part on a first continuous log chain of the continuous log chains that has a shortest unbroken path to the base snapshot and a second continuous log chain of the continuous log chains that has a longest unbroken path to the base snapshot; and

recovering the VM to a continuous point-in-time version based at least in part on the recoverable range of the VM.

2. The method of claim 1 , wherein the validity of one or more continuous log chains is affirmed solely based on an existence of the base snapshot in a path of the one or more continuous log chains.

3. The method of claim 1 , further comprising:

taking a new snapshot in the series of snapshots and designating the new snapshot as the base snapshot.

4. The method of claim 3 , further comprising:

identifying an old or expired continuous log chain based at least in part on a designation of the new snapshot as the base snapshot.

5. The method of claim 4 , further comprising:

assigning a garbage collection (GC) operation to the old or expired continuous log based at least in part on a service level agreement (SLA) policy.

6. The method of claim 1 , further comprising:

configuring the driver to enable an I/O touch point in the captured continuous I/Os.

7. A system for continuous data protection, the system comprising:

at least one processor for executing machine-readable instructions; and

a memory storing instructions configured to cause the at least one processor to cause the system to:

capture, by a driver, continuous inputs and outputs (I/Os) exchanged between a server and a virtual machine (VM) having a virtual disk, wherein the continuous I/Os are captured after a base snapshot in a series of snapshots of the VM is taken;

cache by the driver, the continuous I/Os;

send, by the driver, the continuous I/Os as stream logs to one or more clusters, the stream logs forming a log stream;

receive, by a log receiver service (LRS), that runs on one or more nodes within the one or more clusters, the log stream;

write, by the LRS, the log stream to a disk, wherein continuous log chains are formed by the stream logs in the log stream and the base snapshot, the base snapshot serving as a base for the stream logs in the continuous log chains, wherein a later stream log depends at least partially on a former stream log in a continuous log chain;

use a set of algorithms to calculate a recoverable range of the VM based at least in part on the continuous log chains, wherein, to calculate the recoverable range, the instructions further cause the at least one processor to cause the system to:

affirm a validity of each continuous log chain of the continuous log chains based at least in part on whether an unbroken path to the base snapshot exists, the recoverable range being based at least in part on a first continuous log chain of the continuous log chains that has a shortest unbroken path to the base snapshot and a second continuous log chain of the continuous log chains that has a longest unbroken path to the base snapshot; and

recover the VM to a continuous point-in-time version based at least in part on the recoverable range of the VM.

8. The system of claim 7 , wherein the validity of one or more continuous log chains is affirmed solely based on an existence of the base snapshot in a path of the one or more continuous log chains.

9. The system of claim 7 , wherein the instructions are further configured to cause the at least one processor to cause the system to:

take a new snapshot in the series of snapshots and designating the new snapshot as the base snapshot.

10. The system of claim 9 , wherein the instructions are further configured to cause the at least one processor to cause the system to:

identify an old or expired continuous log chain based at least in part on a designation of the new snapshot as the base snapshot.

11. The system of claim 10 , wherein the instructions are further configured to cause the at least one processor to cause the system to:

assign a garbage collection (GC) operation to the old or expired continuous log chain based at least in part on a service level agreement (SLA) policy.

12. The system of claim 7 , wherein the instructions are further configured to cause the at least one processor to cause the system to:

configure the driver to enable an I/O touch point in the captured continuous I/Os.

13. A non-transitory, machine-readable medium storing instructions which, when read by a machine, cause the machine to:

capture, by a driver, continuous inputs and outputs (I/Os) exchanged between a server and a virtual machine (VM) having a virtual disk, wherein the continuous I/Os are captured after a base snapshot in a series of snapshots of the VM is taken;

cache by the driver, the continuous I/Os;

send, by the driver, the continuous I/Os as stream logs to one or more clusters, the stream logs forming a log stream;

receive, by a log receiver service (LRS), that runs on one or more nodes within the one or more clusters, the log stream;

write, by the LRS, the log stream to a disk, wherein continuous log chains are formed by the stream logs in the log stream and the base snapshot, the base snapshot serving as a base for the stream logs in the continuous log chains, wherein a later stream log depends at least partially on a former stream log in a continuous log chain;

use a set of algorithms to calculate a recoverable range of the VM based at least in part on the continuous log chains, wherein, to calculate the recoverable range, the instructions, when read by the machine, further cause the machine to:

affirm a validity of each continuous log chain of the continuous log chains based at least in part on whether an unbroken path to the base snapshot exists, the recoverable range being based at least in part on a first continuous log chain of the continuous log chains that has a shortest unbroken path to the base snapshot and a second continuous log chain of the continuous log chains that has a longest unbroken path to the base snapshot; and

recover the VM to a continuous point-in-time version based at least in part on the recoverable range of the VM.

14. The medium of claim 13 , wherein the validity of one or more continuous log chains is affirmed solely based on an existence of the base snapshot in a path of the one or more continuous log chains.

15. The medium of claim 13 , wherein the instructions, when read by the machine, further cause the machine to:

take a new snapshot in the series of snapshots and designating the new snapshot as the base snapshot.

16. The medium of claim 15 , wherein the instructions, when read by the machine, further cause the machine to:

identify an old or expired continuous log chain based at least in part on a designation of the new snapshot as the base snapshot.

17. The medium of claim 16 , wherein the instructions, when read by the machine, further cause the machine to:

assign a garbage collection (GC) operation to the old or expired continuous log chain based at least in part on a service level agreement (SLA) policy.

18. The medium of claim 13 , wherein the instructions, when read by the machine, further cause the machine to:

configure the driver to enable an I/O touch point in the captured continuous I/Os.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: MUNSHANI, KUNAL SEAN
To: RUBRIK, INC.
Reel/Frame 052674/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2020
From: MEADOWCROFT, BENJAMIN TRAVIS; DING, LI; CHEN, SHAOMIN; VOHRA, HARDIK; BANERJEE, ARIJIT; MITRA, ABHAY; GOYAL, KUSHAAGRA; MISHRA, ARNAV GAUTUM; CHAUDHRY, SAMIR RISHI; SWAROOP, SUMAN
To: RUBRIK, INC.
Reel/Frame 052037/0331 →
Continuity (1)
Related Publication 20200349031A1 · Nov 5, 2020
Cited By (3)
US 12,248,593 US 12,386,711 US 12,657,090