IP Library Granted Patent US 12,182,420
Granted Patent B2
US 12,182,420 · App. 18/357,906 · Granted Dec 31, 2024

Data resychronization methods and systems in continuous data protection

Inventors: Shaomin Chen (San Jose, CA); Li Ding (Cupertino, CA); Kushaagra Goyal (Cupertino, CA); Abhay Mitra (Santa Clara, CA); Kunal Sean Munshani (Fremont, CA); Shaswat Chaubey (Mountain View, CA); Benjamin Travis Meadowcroft (Lincoln, CA)
Assignee: Rubrik, Inc.
G06F3/0619G06F3/065G06F3/0673G06F11/1464G06F9/45558G06F2009/45579G06F2009/45583G06F2009/45587G06F2201/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 12,182,420
App. No.
18/357,906
Granted
Dec 31, 2024
Kind
B2
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 (55)

1. A method, comprising:

obtaining a snapshot of a computing object;

intercepting, from an input/output (I/O) path, an I/O stream for the computing object;

forming a recoverable log chain based at least in part on applying a replicated I/O stream to the snapshot, the replicated I/O stream based at least in part on the intercepted I/O stream; and

based at least in part on a condition of the intercepted I/O stream or the replicated I/O stream:

filtering the intercepted I/O stream to identify changed data blocks, and

using the changed data blocks to resynchronize the recoverable log chain with a state of the computing object.

2. The method of claim 1 , further comprising:

maintaining at least one bitmap corresponding to a plurality of data blocks of the computing object; and

modifying, in response to a data block of the plurality of data blocks being changed, a corresponding bit within the at least one bitmap to indicate that the data block is changed.

3. The method of claim 1 , wherein using the changed data blocks to resynchronize the recoverable log chain comprises:

transmitting data of the changed data blocks to a log receiver service for resynchronization of the recoverable log chain.

4. The method of claim 1 , further comprising:

maintaining a first buffer that tracks modified data blocks of the computing object; and

maintaining a second buffer that reads modified data of the modified data blocks of the computing object and transmits the modified data to a log receiver service for resynchronization of the recoverable log chain.

5. The method of claim 1 , wherein the snapshot and the recoverable log chain are stored using a backup system that is different from a host system for the computing object.

6. The method of claim 1 , wherein the condition comprises an interruption or discontinuity associated with the I/O stream, an interruption or discontinuity associated with the replicated I/O stream, or both.

7. The method of claim 1 , wherein the intercepted I/O stream is filtered to identify changed data blocks based at least in part on an I/O filter switching to a resynchronization mode from a synchronization mode.

8. The method of claim 1 , wherein the computing object comprises a virtual disk.

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:

obtain a snapshot of a computing object;

intercept, from an input/output (I/O) path, an I/O stream for the computing object;

form a recoverable log chain based at least in part on applying a replicated I/O stream to the snapshot, the replicated I/O stream based at least in part on the intercepted I/O stream; and

based at least in part on a condition of the intercepted I/O stream or the replicated I/O stream:

filter the intercepted I/O stream to identify changed data blocks, and

use the changed data blocks to resynchronize the recoverable log chain with a state of the computing object.

10. 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 at least one bitmap corresponding to a plurality of data blocks of the computing object; and

modify, in response to a data block of the plurality of data blocks being changed, a corresponding bit within the at least one bitmap to indicate that the data block is changed.

11. The apparatus of claim 9 , wherein, to use the changed data blocks to resynchronize the recoverable log chain, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to:

transmit data of the changed data blocks to a log receiver service for resynchronization of the recoverable log chain.

12. 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 a first buffer that tracks modified data blocks of the computing object; and

maintain a second buffer that reads modified data of the modified data blocks of the computing object and transmits the modified data to a log receiver service for resynchronization of the recoverable log chain.

13. The apparatus of claim 9 , wherein the one or more processors are individually or collectively operable to execute the code to cause the apparatus to store the snapshot and the recoverable log chain using a backup system that is different from a host system for the computing object.

14. The apparatus of claim 9 , wherein the condition comprises an interruption or discontinuity associated with the I/O stream, an interruption or discontinuity associated with the replicated I/O stream, or both.

15. The apparatus of claim 9 , wherein the one or more processors are individually or collectively operable to execute the code to cause the apparatus to filter the intercepted I/O stream to identify changed data blocks based at least in part on an I/O filter switching to a resynchronization mode from a synchronization mode.

16. A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:

obtain a snapshot of a computing object;

intercept, from an input/output (I/O) path, an I/O stream for the computing object;

form a recoverable log chain based at least in part on applying a replicated I/O stream to the snapshot, the replicated I/O stream based at least in part on the intercepted I/O stream; and

based at least in part on a condition of the intercepted I/O stream or the replicated I/O stream:

filter the intercepted I/O stream to identify changed data blocks, and

use the changed data blocks to resynchronize the recoverable log chain with a state of the computing object.

17. The non-transitory computer-readable medium of claim 16 , wherein the instructions are further executable by the one or more processors to:

maintain at least one bitmap corresponding to a plurality of data blocks of the computing object; and

modify, in response to a data block of the plurality of data blocks being changed, a corresponding bit within the at least one bitmap to indicate that the data block is changed.

18. The non-transitory computer-readable medium of claim 16 , wherein the instructions to use the changed data blocks to resynchronize the recoverable log chain are executable by the one or more processors to:

transmit data of the changed data blocks to a log receiver service for resynchronization of the recoverable log chain.

19. The non-transitory computer-readable medium of claim 16 , wherein the instructions are further executable by the one or more processors to:

maintain a first buffer that tracks modified data blocks of the computing object; and

maintain a second buffer that reads modified data of the modified data blocks of the computing object and transmits the modified data to a log receiver service for resynchronization of the recoverable log chain.

20. The non-transitory computer-readable medium of claim 16 , wherein the condition comprises an interruption or discontinuity associated with the I/O stream, an interruption or discontinuity associated with the replicated I/O stream, or both.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 64659/0236 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071566/0187 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Aug 21, 2023
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 064659/0236 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2023
From: CHEN, SHAOMIN; DING, LI; GOYAL, KUSHAAGRA; MITRA, ABHAY; MUNSHANI, KUNAL SEAN; CHAUBEY, SHASWAT; MEADOWCROFT, BENJAMIN TRAVIS
To: RUBRIK, INC.
Reel/Frame 064374/0301 →