# US 2025/0094064 A1 · Data resychronization methods and systems in continuous data protection

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

- Number: US 2025/0094064 A1
- Document ID: US20250094064A1
- Status: Published application
- Kind: A1
- Application number: 18/969,103
- Filed: 2024-12-04
- Published: 2025-03-20
- Earliest claimed: 2020-12-07
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Shaomin Chen; Li Ding; Kushaagra Goyal; Abhay Mitra; Kunal Sean Munshani; Shaswat Chaubey; Benjamin Travis Meadowcroft
- Web page: https://patentgrep.com/patent/US20250094064A1

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0673: {Single storage device}
- G06F 3/0683: {Plurality of storage devices}
- G06F 11/1464: {for networked environments}
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/1484: {involving virtual machines}
- G06F 11/2023: {Failover techniques}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/1461: {Backup scheduling policy}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- 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 data resynchronization methods and systems in 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:
detecting a condition in an input/output (I/O) stream between a virtual machine and a backup system that stores a snapshot of the virtual machine, wherein the condition causes the backup system to become out-of-sync with the virtual machine:
activating, in accordance with detecting the condition, a resynchronization mode for the virtual machine:
updating, in accordance with the resynchronization mode, a bitmap that is configured to document changed data blocks resulting from active writes to a virtual disk of the virtual machine; and
transmitting, to a log receiver service of the backup system, the changed data blocks documented via the bitmap to support resynchronization of the backup system.

### Claim 2 (depends on 1)

The method of claim 1, wherein updating the bitmap comprises:
modifying, in response to a data block of a plurality of data blocks being changed, a corresponding bit within the bitmap to indicate that the data block is changed.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
maintaining, based at least in part on activating the resynchronization mode, a buffer that is configured to read data of the changed data blocks of the virtual machine and transmit the data of the changed data blocks to the log receiver service for the resynchronization mode.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
activating, in accordance with the bitmap indicating that no changed data blocks remain at the virtual machine, a data synchronization mode for the virtual machine; and
sending disk writes associated with the virtual machine to the log receiver service in accordance with the data synchronization mode.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
blocking, in accordance with the bitmap indicating that no changed data blocks remain at the virtual machine, the I/O stream to support an activation of the data synchronization mode for the virtual machine; and
unblocking, after the activation of the data synchronization mode, the I/O stream.

### Claim 6 (depends on 4)

The method of claim 4, wherein the snapshot is a base snapshot of the virtual machine, the method further comprising:
applying a replicated I/O stream associated with the I/O stream to the base snapshot of the virtual machine, wherein applying the replicated I/O stream to the base snapshot results in a recoverable log chain for a virtual disk of the virtual machine.

### Claim 7 (depends on 1)

The method of claim 1, wherein detecting the condition comprises:
detecting an interruption or discontinuity associated with the I/O stream that results in the backup system becoming out-of-sync with the virtual machine, wherein the resynchronization mode is activated based at least in part on detecting the interruption or discontinuity.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
filtering, using an I/O filter, the I/O stream to identify the changed data blocks in accordance with the resynchronization mode, wherein the bitmap is updated based at least in part the filtering.

### Claim 9

An apparatus, comprising:
one or more memories storing processor-executable code; and
one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:
detect a condition in an input/output (I/O) stream between a virtual machine and a backup system that stores a snapshot of the virtual machine, wherein the condition causes the backup system to become out-of-sync with the virtual machine:
activate, in accordance with detecting the condition, a resynchronization mode for the virtual machine:
update, in accordance with the resynchronization mode, a bitmap that is configured to document changed data blocks resulting from active writes to a virtual disk of the virtual machine; and
transmit, to a log receiver service of the backup system, the changed data blocks documented via the bitmap to support resynchronization of the backup system.

### Claim 10 (depends on 9)

The apparatus of claim 9, wherein, to update the bitmap, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to:
modify, in response to a data block of a plurality of data blocks being changed, a corresponding bit within the bitmap to indicate that the data block is changed.

### Claim 11 (depends on 9)

The apparatus of claim 9, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:
maintain, based at least in part on activating the resynchronization mode, a buffer that is configured to read data of the changed data blocks of the virtual machine and transmit the data of the changed data blocks to the log receiver service for the resynchronization mode.

### Claim 12 (depends on 9)

The apparatus of claim 9, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:
activate, in accordance with the bitmap indicating that no changed data blocks remain at the virtual machine, a data synchronization mode for the virtual machine; and
send disk writes associated with the virtual machine to the log receiver service in accordance with the data synchronization mode.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:
block, in accordance with the bitmap indicating that no changed data blocks remain at the virtual machine, the I/O stream to support an activation of the data synchronization mode for the virtual machine; and
unblock, after the activation of the data synchronization mode, the I/O stream.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the snapshot is a base snapshot of the virtual machine, and wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:
apply a replicated I/O stream associated with the I/O stream to the base snapshot of the virtual machine, wherein applying the replicated I/O stream to the base snapshot results in a recoverable log chain for a virtual disk of the virtual machine.

### Claim 15

A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:
detect a condition in an input/output (I/O) stream between a virtual machine and a backup system that stores a snapshot of the virtual machine, wherein the condition causes the backup system to become out-of-sync with the virtual machine;
activate, in accordance with detecting the condition, a resynchronization mode for the virtual machine:
update, in accordance with the resynchronization mode, a bitmap that is configured to document changed data blocks resulting from active writes to a virtual disk of the virtual machine; and
transmit, to a log receiver service of the backup system, the changed data blocks documented via the bitmap to support resynchronization of the backup system.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15,
wherein the instructions to update the bitmap are executable by the one or more processors to:
modify, in response to a data block of a plurality of data blocks being changed, a corresponding bit within the bitmap to indicate that the data block is changed.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions are further executable by the one or more processors to:
maintain, based at least in part on activating the resynchronization mode, a buffer that reads data of the changed data blocks of the virtual machine and transmits the data of the changed data blocks to the log receiver service for the resynchronization mode.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the instructions are further executable by the one or more processors to:
activate, in accordance with the bitmap indicating that no changed data blocks remain at the virtual machine, a data synchronization mode for the virtual machine; and
send disk writes associated with the virtual machine to the log receiver service in accordance with the data synchronization mode.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the instructions are further executable by the one or more processors to:
block, in accordance with the bitmap indicating that no changed data blocks remain at the virtual machine, the I/O stream to support an activation of the data synchronization mode for the virtual machine; and
unblock, after the activation of the data synchronization mode, the I/O stream.

### Claim 20 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the snapshot is a base snapshot of the virtual machine, and wherein the instructions are further executable by the one or more processors to:
apply a replicated I/O stream associated with the I/O stream to the base snapshot of the virtual machine, wherein applying the replicated I/O stream to the base snapshot results in a recoverable log chain for a virtual disk of the virtual machine.
