IP Library Granted Patent US 10,671,487
Granted Patent B2
US 10,671,487 · App. 16/276,346 · Granted Jun 2, 2020

Fast and optimized restore using delta information

Inventor: Rupesh Bajaj (Bangalore, IN)
Assignee: Cohesity, Inc.
G06F11/1451G06F16/128G06F2201/80G06F2201/82G06F2201/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 10,671,487
App. No.
16/276,346
Granted
Jun 2, 2020
Kind
B2
Abstract

An indication of one or more changes to file system data since a last backup snapshot is received. One or more changes to the file system data between a requested backup version and the last backup snapshot are determined based in part on differences between a first tree data structure corresponding to the requested backup version and a second tree data structure corresponding to the last backup snapshot. The differences correspond to the one or more changes to the file system data between the requested backup version and the last backup snapshot. One or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and one or more data blocks corresponding to the one or more changes to file system data between the requested backup version and the last backup snapshot are provided to a primary system.

Claims (28)

1. A system, comprising:

a processor configured to:

receive, at a secondary storage system, an indication of one or more changes to file system data since a last backup snapshot;

determine one or more changes to the file system data between a requested backup version and the last backup snapshot based in part on differences between a first tree data structure corresponding to the requested backup version and a second tree data structure corresponding to the last backup snapshot, wherein the differences correspond to the one or more changes to the file system data between the requested backup version and the last backup snapshot, wherein the second tree data structure is associated with a snapshot tree corresponding to the last backup snapshot and the first tree data structure is associated with a snapshot tree corresponding to the requested backup version, wherein the snapshot tree corresponding to the requested backup version includes one or more leaf nodes associated with the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot; and

provide to a primary system, one or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 , wherein in response to receiving the one or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot, the primary system is configured to apply the received data blocks to an object, virtual machine, physical entity, file system, array backup, and/or volume of the primary system.

3. The system of claim 1 , wherein the processor is further configured to receive a request for one or more data blocks associated with the requested backup version.

4. The system of claim 3 , wherein an object, virtual machine, physical entity, file system, array backup, and/or volume of the primary system is corrupted.

5. The system of claim 3 , wherein the request is for an entire version of the requested backup version.

6. The system of claim 5 , wherein in the event the request is for the entire version of the requested backup version, one or more data blocks associated with the entire version of the requested backup version are provided to the primary system in place of the one or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot.

7. The system of claim 1 , wherein at least one node of the snapshot tree corresponding to the last backup snapshot references at least one node of the snapshot tree corresponding to the requested backup version.

8. The system of claim 1 , wherein the snapshot tree corresponding to the last backup snapshot and the snapshot tree corresponding to the requested backup version have corresponding root nodes.

9. The system of claim 1 , wherein the one or more determined changes to the file system data between the requested backup version and the last backup snapshot includes one or more nodes included in the snapshot tree corresponding to the requested backup version and not included in the snapshot tree corresponding to the last backup snapshot.

10. The system of claim 9 , wherein the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot include one or more data blocks corresponding to the one or more nodes included in the snapshot tree corresponding to the requested backup version and not included in the snapshot tree corresponding to the last backup snapshot.

11. The system of claim 1 , wherein the processor is further configured to determine whether a conflict exists between the one or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot.

12. The system of claim 11 , wherein the processor is further configured to resolve the conflict at least in part by providing at least one data block corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot in place of at least one data block corresponding to the one or more changes to the file system data since the last backup snapshot.

13. A method, comprising:

receiving, at a secondary storage system, an indication of one or more changes to file system data since a last backup snapshot;

determining one or more changes to the file system data between a requested backup version and the last backup snapshot based in part on differences between a first tree data structure corresponding to the requested backup version and a second tree data structure corresponding to the last backup snapshot, wherein the differences correspond to the one or more changes to the file system data between the requested backup version and the last backup snapshot, wherein the second tree data structure is associated with a snapshot tree corresponding to the last backup snapshot and the first tree data structure is associated with a snapshot tree corresponding to the requested backup version, wherein the snapshot tree corresponding to the requested backup version includes one or more leaf nodes associated with the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot; and

providing to a primary system, one or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot.

14. The method of claim 13 , further comprising receiving a request for one or more data blocks associated with the requested backup version.

15. The method of claim 13 , wherein an object, virtual machine, physical entity, file system, array backup, and/or volume of the primary system is corrupted.

16. The method of claim 13 , wherein in response to receiving the one or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot, the primary system is configured to apply the received data blocks to an object, virtual machine, physical entity, file system, array backup, and/or volume of the primary system.

17. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving an indication of one or more changes to file system data since a last backup snapshot;

determining one or more changes to the file system data between a requested backup version and the last backup snapshot based in part on differences between a first tree data structure corresponding to the requested backup version and a second tree data structure corresponding to the last backup snapshot, wherein the differences correspond to the one or more changes to the file system data between the requested backup version and the last backup snapshot, wherein the second tree data structure is associated with a snapshot tree corresponding to the last backup snapshot and the first tree data structure is associated with a snapshot tree corresponding to the requested backup version, wherein the snapshot tree corresponding to the requested backup version includes one or more leaf nodes associated with the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot; and

providing to a primary system, one or more data blocks corresponding to the one or more changes to the file system data since the last backup snapshot and the one or more data blocks corresponding to the one or more changes to the file system data between the requested backup version and the last backup snapshot.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2019
From: BAJAJ, RUPESH
To: COHESITY, INC.
Reel/Frame 048647/0434 →
Continuity (2)
Continuation 15964678 · Apr 27, 2018
Related Publication 20190332490A1 · Oct 31, 2019