IP Library › Granted Patent US 10,127,119
Granted Patent B1
US 10,127,119 · App. 14/283,742 · Granted Nov 13, 2018

Systems and methods for modifying track logs during restore processes

Inventors: Sudhakar Paulzagade (Pune, IN); Saurabh Jain (Jabalpur, IN); Chirag Dalal (Pune, IN); Siddharth Karandikar (Pune, IN)
Assignee: Veritas Technologies, LLC
G06F11/1469G06F11/1471
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,127,119
App. No.
14/283,742
Filed
May 21, 2014
Granted
Nov 13, 2018
Kind
B1
Art Unit
2113
USPC
714/20
Abstract

The disclosed computer-implemented method for modifying track logs during restore processes may include (1) identifying a backup application that maintains a track log used to identify changed blocks during backup operations, (2) detecting a restore process launched by the backup application to restore at least one block backed up in a backup image, (3) retrieving, from the backup image, block information about the block being restored by the restore process, and then (4) recording the block information to the track log during the restore process such that the backup application does not identify the block as changed during a subsequent backup operation due at least in part to the block already being backed up in the backup image. Various other methods, systems, and computer-readable media are also disclosed.

Claims (97)

1. A computer-implemented method for modifying track logs during restore processes, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying:

a backup application that maintains a track log that is used to identify changed blocks during backup operations and that represents a record of changes made to data stored on a computing system;

a first incremental backup image that was created on a first date and that comprises a first version of a block and block information about the first version of the block stored in the first incremental backup image, wherein the block information comprises a timestamp of a most recent modification of the block by any process prior to a creation of the first incremental backup image; and

a more recent incremental backup image that was created on a second date that is more recent than the first date and that comprises a modified version of the block from the first version of the block in the first incremental backup image;

detecting a restore process launched by the backup application to restore the first version of the block backed up in the first incremental backup image;

retrieving, from the first incremental backup image, the block information about the first version of the block being restored by the restore process that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image;

recording the block information that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image to the track log during the restore process;

reading, during a subsequent backup operation, the block information that was recorded to the track log during the restore process and that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image in order to determine that:

a most current version of the block does not match the modified version of the block in the recent incremental backup image; and

the most current version of the block matches the first version of the block that is already backed up in the first incremental backup image; and

based on determining that the most current version of the block matches the first version of the block that is already backed up in the first incremental backup image, avoiding backing up a redundant copy of the most current version of the block despite the most current version of the block differing from the modified version of the block in the more recent incremental backup image.

2. The computer-implemented method of claim 1 , wherein:

detecting the restore process launched by the backup application comprises detecting a restore process that restores a complete copy of the first incremental backup image to a computing system; and

recording the block information to the track log comprises creating a new track log for the backup application in connection with the restore process.

3. The computer-implemented method of claim 1 , wherein:

detecting the restore process launched by the backup application comprises detecting a restore process that restores a partial copy of the first incremental backup image to a computing system; and

recording the block information to the track log comprises modifying an existing track log for the backup application in connection with the restore process.

4. The computer-implemented method of claim 1 , wherein:

retrieving the block information comprises retrieving a hash of the block being restored by the restore process; and

recording the block information to the track log comprises recording the hash of the block to the track log.

5. The computer-implemented method of claim 1 , wherein:

retrieving the block information comprises retrieving object information about an object that contains the block; and

recording the block information to the track log comprises recording the object information to the track log.

6. The computer-implemented method of claim 5 , wherein the object information comprises at least one of:

metadata about the object;

a size of the object;

an identifier of the object;

a timestamp of a backup image containing a stored image of the object;

an identifier of a backup image containing a stored image of the object; and

a hash of the object.

7. The computer-implemented method of claim 1 , further comprising avoiding generating a new track log during the subsequent backup operation due at least in part to the track log updated by the restore operation.

8. A system for modifying track logs during restore processes, the system comprising:

an identification module, stored in memory, that identifies:

a backup application that maintains a track log that is used to identify changed blocks during backup operations and that represents a record of changes made to data stored on a computing system;

a first incremental backup image that was created at a first date and that comprises a first version of a block and block information about the first version of the block stored in the first incremental backup image, wherein the block information comprises a timestamp of a most recent modification of the block by any process prior to a creation of the first incremental backup image; and

a more recent incremental backup image that was created on a second date that is more recent than the first date and that comprises a modified version of the block from the first version of the block in the first incremental backup image;

a detection module, stored in memory, that detects a restore process launched by the backup application to restore the first version of the block backed up in the first incremental backup image;

a retrieval module, stored in memory, that retrieves, from the first incremental backup image, the block information about the first version of the block being restored by the restore process that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image;

a recording module, stored in memory, that records the block information that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image to the track log during the restore process;

a backup module, stored in memory, that:

reads, during a subsequent backup operation, the block information that was recorded to the track log during the restore process and that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image in order to determine that:

a most current version of the block does not match the modified version of the block in the recent incremental backup image; and

the most current version of the block comprises the same timestamp as the first version of the block that is already backed up in the first incremental backup image; and

based on determining that the most current version of the block matches the first version of the block that is already backed up in the first incremental backup image, avoids backing up a redundant copy of the most current version of the block despite the most current version of the block differing from the modified version of the block in the more recent incremental backup image; and

at least one physical processor configured to execute the identification module, the detection module, the retrieval module, the recording module, and the backup module.

9. The system of claim 8 , wherein:

the detection module detects a restore process that restores a complete copy of the first incremental backup image to a computing system; and

the recording module records the block information to the track log by creating a new track log for the backup application in connection with the restore process.

10. The system of claim 8 , wherein:

the detection module detects a restore process that restores a partial copy of the first incremental backup image to a computing system; and

the recording module records the block information to the track log by modifying an existing track log for the backup application in connection with the restore process.

11. The system of claim 8 , wherein:

the retrieval module retrieves the block information by retrieving a hash of the block being restored by the restore process; and

the recording module records the block information to the track log by recording the hash of the block to the track log.

12. The system of claim 8 , wherein:

the retrieval module retrieves the block information by retrieving object information about an object that contains the block; and

the recording module records the block information to the track log by recording the object information to the track log.

13. The system of claim 12 , wherein the object information comprises at least one of:

metadata about the object;

a size of the object;

an identifier of the object;

a timestamp of a backup image containing a stored image of the object;

an identifier of a backup image containing a stored image of the object; and

a hash of the object.

14. The system of claim 8 , wherein the backup module does not record the block information to the track log during the subsequent backup operation due to the block information already being recorded to the track log by the restore process.

15. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

identify:

a backup application that maintains a track log that is used to identify changed blocks during backup operations and that represents a record of changes made to data stored on a computing system;

a first incremental backup image that was created on a first date and that comprises a first version of a block and block information about the first version of the block stored in the first incremental backup image, wherein the block information comprises a timestamp of a most recent modification of the block by any process prior to a creation of the first incremental backup image; and

a more recent incremental backup image that that was created on a second date that is more recent than the first date and comprises a modified version of the block from the first version of the block in the first incremental backup image;

detect a restore process launched by the backup application to restore the first version of the block backed up in the first incremental backup image;

retrieve, from the first incremental backup image, the block information about the block being restored by the restore process that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image;

record the block information that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image to the track log during the restore process;

read, during a subsequent backup operation, the block information that was recorded to the track log during the restore process and that comprises the timestamp of the most recent modification of the block prior to the creation of the first incremental backup image in order to determine that:

a most current version of the block does not match the modified version of the block in the recent incremental backup image; and

the most current version the block matches the first version of the block that is already backed up in the first incremental backup image;

based on determining that the most current version of the block matches the first version of the block that is already backed up in the first incremental backup image, avoid backing up a redundant copy of the most current version of the block despite the most current version of the block differing from the modified version of the block in the more recent incremental backup image.

16. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to:

detect a restore process that restores a complete copy of the first incremental backup image to a computing system; and

create a new track log for the backup application in connection with the restore process.

17. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to:

detect a restore process that restores a partial copy of the first incremental backup image to a computing system; and

modify an existing track log for the backup application in connection with the restore process.

18. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to:

retrieve a hash of the block being restored by the restore process; and

record the hash of the block to the track log.

19. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-readable instructions cause the computing device to:

retrieve object information about an object that contains the block; and

record the object information to the track log.

20. The non-transitory computer-readable medium of claim 19 , wherein the object information comprises at least one of:

metadata about the object;

a size of the object;

an identifier of the object;

a timestamp of a backup image containing a stored image of the object;

an identifier of a backup image containing a stored image of the object; and

a hash of the object.

Assignments (13)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2014
From: PAULZAGADE, SUDHAKAR; JAIN, SAURABH; DALAL, CHIRAG; KARANDIKAR, SIDDHARTH
To: SYMANTEC CORPORATION
Reel/Frame 032941/0796 →
Cited By (3)
US 12,210,757 US 12,222,824 US 12,717,681