# US 2021/0334172 A1 · Systems and methods for continuous data protection with near zero recovery point

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0334172 A1
- Document ID: US20210334172A1
- Status: Published application
- Kind: A1
- Application number: 17/370,820
- Filed: 2021-07-08
- Published: 2021-10-28
- Earliest claimed: 2019-04-30
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Benjamin Travis Meadowcroft; Li Ding; Shaomin Chen; Hardik Vohra; Arijit Banerjee; Abhay Mitra; Kushaagra Goyal; Arnav Gautum Mishra; Samir Rishi Chaudhry; Suman Swaroop; Kunal Sean Munshani
- Web page: https://patentgrep.com/patent/US20210334172A1

## CPC

- G06F 3/0671: {In-line storage system}
- G06F 11/1466: {to make the backup process non-disruptive}
- G06F 3/0611: {in relation to response time}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0667: {at data level, e.g. file, record or object virtualisation}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1464: {for networked environments}
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/1484: {involving virtual machines}
- G06F 11/203: {using migration}
- G06F 11/2035: {without idle spare hardware}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 1

A method comprising:
receiving, at a backup site, I/O data intercepted from an I/O stream between a virtual machine (VM) and a virtualization server;
flushing the I/O data to a first log file, the first log file being included in a first plurality of log files, each log file in the first plurality of log files, other than a second log file included in the first plurality of log files, including the I/O data intercepted from the I/O stream between the VM and the virtualization server, the second log file, of the first plurality of log files, further including a base snapshot of the VM to form a recoverable snapshot-log chain; and
pushing data to a replication target based on the recoverable snapshot-log chain.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
establishing an instance of a log replication sender at a backup site to communicate with a log replication receiver at a replication target; and
determining a request for data from the replication target.

### Claim 3 (depends on 1, 2)

The method of claim 2, wherein the first plurality of log files includes a second plurality of log files, the method of claim 1 further comprising:
buffering the I/O data into memory before the flushing the I/O data to a log file; and
removing the second plurality of log files from the recoverable snapshot-log chain based on a first service level agreement policy, the second plurality of log files including the second log file.

### Claim 4 (depends on 3)

The method of claim 3, further comprising configuring the log replication receiver at the replication target to run at an unmodified existing snapshot recovery service.

### Claim 5 (depends on 3)

The method of claim 3, further comprising configuring a CDP metadata service to communicate with the log replication sender and the log replication receiver.

### Claim 6 (depends on 3)

The method of claim 3, further comprising:
configuring the log replication sender to identify a log file to be replicated in the first plurality of log files at the log receiver; and
based on the identified log file including a closed file, including contents of the log file in a closed replication.

### Claim 7 (depends on 6)

The method of claim 6, wherein the configuring the log replication sender to identify a log file to be replicated in the first plurality of log files at the log receiver and, based on the identified log file including an open file receiving I/O data from the intercepted I/O stream, including the I/O data in a live replication.

### Claim 8

A 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 perform operations comprising:
receiving, at a backup site, I/O data intercepted from an I/O stream between a virtual machine (VM) and a virtualization server;
flushing the I/O data to a first log file, the first log file being included in a first plurality of log files, each log file in the first plurality of log files, other than a second log file included in the first plurality of log files, including the/O data intercepted from the I/O stream between the VM and the virtualization server, the second log file, of the first plurality of log files, further including a base snapshot of the VM to form a recoverable snapshot-log chain; and
pushing data to a replication target based on the recoverable snapshot-log chain.

### Claim 9 (depends on 8)

The system of claim 8, wherein the operations further comprise:
establishing an instance of a log replication sender at a backup site to communicate with a log replication receiver at the replication target; and
determining a request for data from a replication target.

### Claim 10 (depends on 1, 9)

The system of claim 9, wherein the first plurality of log files includes a second plurality of log files, the system of claim 1 wherein the operations further comprise:
buffering the I/O data into memory before the flushing the I/O data to a log file; and
removing the second plurality of log files from the recoverable snapshot-log chain based on a first service level agreement policy, the second plurality of log files including the second log file.

### Claim 11 (depends on 10)

The system of claim 10, wherein the operations further comprise configuring the log replication receiver at the replication target to run at an unmodified existing snapshot recovery service.

### Claim 12 (depends on 10)

The system of claim 10, wherein the operations further comprise configuring a CDP metadata service to communicate with the log replication sender and the log replication receiver.

### Claim 13 (depends on 10)

The system of claim 10, further comprising:
configuring the log replication sender to identify a log file to be replicated in the first plurality of log files at the log receiver, and
based on the identified log file including a closed file, including contents of the log file in a closed replication.

### Claim 14 (depends on 13)

The system of claim 13, wherein the configuring the log replication sender to identify a log file to be replicated in the first plurality of log files at the log receiver and, based on the identified log file including an open file receiving I/O data from the intercepted I/O stream, including the I/O data in a live replication.

### Claim 15

A non-transitory, machine-readable medium storing instructions which, when read by a machine, cause the machine to perform operations in a method for continuous data protection for a virtual machine (VM) having a virtual disk, the operations comprising:
receiving, at a backup site, I/O data intercepted from an I/O stream between a virtual machine (VM) and a virtualization server;
flushing the I/O data to a first log file, the first log file being included in a first plurality of log files, each log file in the first plurality of log files, other than a second log file included in the first plurality of log files, including the I/O data intercepted from the I/O stream between the VM and the virtualization server, the second log file, of the first plurality of log files, further including a base snapshot of the VM to form a recoverable snapshot-log chain; and
pushing data to a replication target based on the recoverable snapshot-log chain.

### Claim 16 (depends on 15)

The non-transitory machine-readable medium, of claim 15, wherein the operations further comprise:
establishing an instance of a log replication sender at a backup site to communicate with a log replication receiver at a replication target; and
determining a request for data from the replication target.

### Claim 17 (depends on 16)

The non-transitory machine-readable medium, of claim 16, wherein the first plurality of log files includes a second plurality of log files and wherein the operations further comprise:
buffering the I/O data into memory before the flushing the I/O data to a log file; and
removing the second plurality of log files from the recoverable snapshot-log chain based on a first service level agreement policy, the second plurality of log files including the second log file.

### Claim 18 (depends on 17)

The non-transitory machine-readable medium of claim 17, wherein the operations further comprise configuring the log replication receiver at the replication target to run at an unmodified existing snapshot recovery service.

### Claim 19 (depends on 17)

The non-transitory machine-readable medium of claim 17, wherein the operations further comprise configuring a CDP metadata service to communicate with the log replication sender and the log replication receiver.

### Claim 20 (depends on 17)

The non-transitory machine-readable medium of claim 17, wherein the operations further comprise:
configuring the log replication sender to identify a log file to be replicated in the first plurality of log files at the log receiver; and
based on the identified log file including a closed file, including contents of the log file in a closed replication.
