IP Library Granted Patent US 12,493,524
Granted Patent B2
US 12,493,524 · App. 18/436,599 · Granted Dec 9, 2025

Near continuous data protection without using snapshots

Inventors: Jehuda Shemer (Kfar Saba, IL); Ravi Vijayakumar Chitloor (Bangalore, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1448G06F2201/80
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,493,524
App. No.
18/436,599
Granted
Dec 9, 2025
Kind
B2
Abstract

One example method includes performing delta operations to protect data. A delta queue is provided that allows a replica volume to be rolled forwards and backwards in time. When rolling the replica volume forward, an undo delta is created such that the replica volume can be moved backwards after being moved forward. When rolling the replica volume backwards, a forward delta is created such that the replica volume can be moved forwards after being moved backwards.

Claims (40)

1 . A method, comprising:

selecting a delta from a delta queue that includes deltas including forward deltas and undo deltas, each of the deltas including metadata associated with a source volume, wherein the deltas relate to data that has changed at the source volume;

moving a replica volume at a first point in time to a second point in time associated with the selected delta, wherein the second point in time is earlier than the first point in time, wherein moving the replica volume includes:

creating a forward delta associated with the first point in time such that the replica volume can be rolled forward to the first point in time using the forward delta after moving the replica volume to the second point in time; and

moving the replica volume to the second point in time by applying data identified from metadata of the selected delta to the replica volume,

wherein the delta queue is configured such that the replica volume can be moved to different points in time repeatedly by generating forward deltas when moving the replica volume back in time and generating undo deltas when moving the replica volume forward in time.

2 . The method of claim 1 , wherein creating the forward delta includes reading locations from the replica volume corresponding to locations identified in the metadata of the selected delta and writing data read from the locations on the replica volume and associated metadata to the forward delta.

3 . The method of claim 2 , wherein each of the locations comprises an extent.

4 . The method of claim 2 , further comprising applying data from the selected delta to the replica volume to bring the replica volume to the second point in time.

5 . The method of claim 4 , further comprising inserting the forward delta into the delta queue, wherein the forward delta is inserted to be closest in time to the replica volume in the forward direction.

6 . The method of claim 1 , wherein the forward deltas are configured to allow the replica volume to be rolled forward to any of the forward deltas, wherein the forward deltas are associated with points of time later in time than the first point in time.

7 . The method of claim 6 , wherein the undo deltas are configured to allow the replica volume to be rolled to any of the undo deltas, wherein the undo deltas are associated with points of time earlier in time than the first point in time.

8 . The method of claim 1 , further comprising, when rolling the replica volume to the second point in time, creating multiple forward deltas when the selected delta is separated from the point in time by a plurality of the deltas.

9 . A method comprising:

selecting a delta from a delta queue that includes deltas including forward deltas and undo deltas, each delta including metadata associated with a source volume, wherein the deltas relate to data that has changed with respect to data that has changed at the source volume;

moving a replica volume at a first point in time to a second point in time associated with the selected delta, wherein the second point in time is later than the first point in time, wherein moving the replica volume includes:

creating an undo delta associated with the first point in time such that the replica volume can be rolled back to the first point in time using the undo delta after moving the replica volume to the second point in time; and

moving the replica volume to the second point in time by applying data identified from the metadata of the selected delta to the replica volume,

wherein the delta queue is configured such that the replica volume can be moved to different points in time repeatedly by generating forward deltas when moving the replica volume back in time and generating undo deltas when moving the replica volume forward in time.

10 . The method of claim 9 , wherein creating the undo delta includes reading locations from the replica volume corresponding to locations identified in the metadata of the selected delta and writing the data read from the replica volume and associated metadata to the undo delta.

11 . The method of claim 10 , further comprising applying data from the selected delta to the replica volume to bring the replica volume to the second point in time.

12 . The method of claim 11 , further comprising inserting the undo delta into the delta queue, wherein the undo delta is inserted to be closest in time to the replica volume in the backward direction.

13 . The method of claim 9 , wherein the forward deltas are configured to allow the replica volume to be rolled forward to any of the forward deltas, wherein the forward deltas are associated with points of time later in time than the first point in time.

14 . The method of claim 13 , wherein the undo deltas are configured to allow the replica volume to be rolled to any of the undo deltas, wherein the undo deltas are associated with points of time earlier in time than the first point in time.

15 . The method of claim 9 , further comprising, when rolling the replica volume to the second point in time, creating multiple undo deltas when the selected delta is separated from the point in time by a plurality of the deltas.

16 . A method comprising:

selecting a delta from a delta queue that includes deltas including forward deltas and undo deltas, each delta including metadata associated with a source volume, wherein the deltas relate to data that has changed with respect to data that has changed at the source volume;

repeating, until a replica volume is rolled from a current point in time to a second point in time of the selected delta;

when the second point in time is later than the current point in time:

reading metadata of a next forward delta in the delta queue;

reading data from the replica volume based on metadata of the next forward delta;

creating an undo delta from the data read from the replica volume and the metadata of the replica volume; and

applying data from the next forward delta to the replica volume;

when the point in time is earlier than the current point in time:

reading metadata of a next undo delta in the delta queue;

reading data from the replica volume based on the metadata of the next undo delta;

creating a forward delta from the data read from the replica volume and the metadata of the replica volume; and

applying data from the next undo delta to the replica volume.

17 . The method of claim 16 , further comprising inserting the undo deltas created when rolling the replica volume into the delta queue.

18 . The method of claim 17 , further comprising inserting the forward deltas created when rolling the replica volume into the delta queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2024
From: SHEMER, JEHUDA; CHITLOOR, RAVI VIJAYAKUMAR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 066425/0716 →
Continuity (2)
Continuation 17452427 · Oct 27, 2021
Related Publication 20240220368A1 · Jul 4, 2024
References Cited (27)
US 6578120B1 · Crockett et al. · 2003 [cited by applicant]
US 6715030B1 · Vandenbergh et al. · 2004 [cited by applicant]
US 7702670B1 · Duprey et al. · 2010 [cited by applicant]
US 8335771B1 · Natanzon et al. · 2012 [cited by applicant]
US 8620973B1 · Veeraswamy et al. · 2013 [cited by applicant]
US 8849764B1 · Long et al. · 2014 [cited by applicant]
US 8862546B1 · Natanzon et al. · 2014 [cited by applicant]
US 8874508B1 · Mittal · 2014 [cited by applicant]
US 9218251B1 · Hemashekar et al. · 2015 [cited by applicant]
US 9529885B1 · Natanzon et al. · 2016 [cited by applicant]
US 10140039B1 · Baruch et al. · 2018 [cited by applicant]
US 10176183B1 · Shim et al. · 2019 [cited by applicant]
US 10725967B1 · Natanzon et al. · 2020 [cited by applicant]
US 10838923B1 · Menezes et al. · 2020 [cited by applicant]
US 20050033828A1 · Watanabe · 2005 [cited by applicant]
US 20110225359A1 · Kulkarni et al. · 2011 [cited by applicant]
US 20130103650A1 · Natanzon et al. · 2013 [cited by applicant]
US 20140025714A1 · Reyntjens · 2014 [cited by applicant]
US 20170083412A1 · Mamluk et al. · 2017 [cited by applicant]
US 20180329636A1 · Dornemann et al. · 2018 [cited by applicant]
US 20190243683A1 · Botelho · 2019 [cited by applicant]
US 20190251286A1 · Desai et al. · 2019 [cited by applicant]
US 20190332781A1 · Natanzon · 2019 [cited by applicant]
US 20210034244A1 · Ausarkar et al. · 2021 [cited by applicant]
US 20210406133A1 · Shemer et al. · 2021 [cited by applicant]
US 20220147541A1 · Mallipeddi · 2022 [cited by examiner]
US 20220283724A1 · Malamut · 2022 [cited by examiner]