IP Library Granted Patent US 9,336,250
Granted Patent B1
US 9,336,250 · App. 13/243,421 · Granted May 10, 2016

Systems and methods for efficiently backing up data

Inventors: Mohammed Shaikh (Maharashtra, IN); Ravindra Teli (Maharashtra, IN); Srineet Sridharan (Maharashtra, IN); Kirk Searls (Maitland, FL)
Assignee: Veritas Technologies, LLC
G06F17/30306G06F17/30212
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 9,336,250
App. No.
13/243,421
Granted
May 10, 2016
Kind
B1
Abstract

A computer-implemented method for efficiently backing up data may include (1) identifying a volume scheduled for a backup by a computing system, (2) determining that resource usage of the computing system will fall below a predetermined threshold for a period of time, (3) identifying at least one unit of data in the volume of data to copy to a backup image for the backup during the period of time, (4) in response to determining that the resource usage of the computing system will fall below the predetermined threshold for the period of time, copying the unit of data to the backup image during the period of time, (5) taking the snapshot of the volume, and (6) copying at least one additional unit of data from the snapshot to the backup image to make the backup image consistent with the snapshot. Various other methods, systems, and computer-readable media are also disclosed.

Claims (76)

1. A computer-implemented method for efficiently backing up data, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a volume of data scheduled for a backup by a computing system;

before taking a snapshot of the volume of data for the backup:

determining that resource usage of the computing system will fall below a predetermined threshold for a period of time;

identifying at least one unit of data in the volume of data to copy to a backup image for the backup during the period of time;

in response to determining that the resource usage of the computing system will fall below the predetermined threshold for the period of time, copying the unit of data to the backup image during the period of time;

taking the snapshot of the volume of data;

after taking the snapshot of the volume of data, copying at least one additional unit of data from the snapshot to the backup image to make the backup image consistent with the snapshot.

2. The computer-implemented method of claim 1 , further comprising, before taking the snapshot:

determining that the unit of data was overwritten in the volume of data;

in response to determining that the unit of data was overwritten, marking the unit of data as dirty to indicate that the unit of data within the backup image is no longer consistent with the volume of data.

3. The computer-implemented method of claim 1 ,

further comprising, before taking the snapshot, identifying a most recent backup of the volume of data;

wherein identifying the unit of data to copy to the backup image comprises identifying a change to the volume of data following the most recent backup.

4. The computer-implemented method of claim 1 , wherein determining that the resource usage of the computing system will fall below the predetermined threshold comprises determining that usage of a resource that is required both for backing up the volume of data and for a separate application running on the computing system will fall below a predetermined threshold.

5. The computer-implemented method of claim 1 , wherein determining that the resource usage of the computing system will fall below the predetermined threshold for the period of time comprises:

monitoring the resource usage to collect usage data on the resource usage;

projecting that the resource usage will fall below the predetermined threshold for the period of time based on the usage data.

6. The computer-implemented method of claim 1 , wherein identifying the unit of data in the volume of data to copy to the backup image for the backup during the period of time comprises:

at least partially ordering a plurality of units of data within the volume of data that require backup in a priority queue according to a likelihood of each unit of data within the plurality being overwritten in the volume of data before the snapshot is taken;

identifying a first unit of data on the priority queue.

7. The computer-implemented method of claim 6 , wherein partially ordering the plurality of units of data within the volume of data that require backup in the priority queue comprises:

determining that the unit of data was overwritten in the volume of data since a most recent backup;

in response to determining that the unit of data was overwritten since the most recent backup, placing the unit of data in a position of lower priority within the priority queue than at least one unchanged unit of data.

8. The computer-implemented method of claim 1 , further comprising:

before taking the snapshot of the volume of data for the backup:

determining that resource usage of the computing system will fall below the predetermined threshold for a subsequent period of time separate from the period of time;

identifying at least one subsequent unit of data in the volume of data to copy to the backup image for the backup during the subsequent period of time;

in response to determining that the resource usage of the computing system will fall below the predetermined threshold for the subsequent period of time, copying the subsequent unit of data to the backup image during the subsequent period of time.

9. The computer-implemented method of claim 1 , further comprising:

determining that the unit of data was deleted from the volume of data before the snapshot was taken;

in response to determining that the unit of data was deleted from the volume of data, removing the unit of data from the backup image.

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

the unit of data comprises a file stored in the volume of data;

identifying the unit of data comprises identifying the file within a file change journal.

11. A system for efficiently backing up data, the system comprising:

an identification module programmed to identify a volume of data scheduled for a backup by a computing system;

a resource module programmed to, before a snapshot of the volume of data for the backup is taken, determine that resource usage of the computing system will fall below a predetermined threshold for a period of time;

a backup module programmed to, before the snapshot is taken:

identify at least one unit of data in the volume of data to copy to a backup image for the backup during the period of time;

in response to determining that the resource usage of the computing system will fall below the predetermined threshold for the period of time, copy the unit of data to the backup image during the period of time;

a snapshot module programmed to take the snapshot of the volume of data;

a consistency module programmed to, after taking the snapshot of the volume of data, copy at least one additional unit of data from the snapshot to the backup image to make the backup image consistent with the snapshot;

at least one processor configured to execute the identification module, the resource module, the backup module, the snapshot module, and the consistency module.

12. The system of claim 11 , wherein the backup module is further programmed to, before taking the snapshot:

determine that the unit of data was overwritten in the volume of data;

in response to determining that the unit of data was overwritten, mark the unit of data as dirty to indicate that the unit of data within the backup image is no longer consistent with the volume of data.

13. The system of claim 11 ,

wherein the backup module is further programmed to, before taking the snapshot, identify a most recent backup of the volume of data;

wherein the backup module is programmed to identify the unit of data to copy to the backup image by identifying a change to the volume of data following the most recent backup.

14. The system of claim 11 , wherein the resource module is programmed to determine that the resource usage of the computing system will fall below the predetermined threshold by determining that usage of a resource that is required both for backing up the volume of data and for a separate application running on the computing system will fall below a predetermined threshold.

15. The system of claim 11 , wherein the resource module is programmed to determine that the resource usage of the computing system will fall below the predetermined threshold for the period of time by:

monitoring the resource usage to collect usage data on the resource usage;

projecting that the resource usage will fall below the predetermined threshold for the period of time based on the usage data.

16. The system of claim 11 , wherein the backup module is programmed to identify the unit of data in the volume of data to copy to the backup image for the backup during the period of time by:

at least partially ordering a plurality of units of data within the volume of data that require backup in a priority queue according to a likelihood of each unit of data within the plurality being overwritten in the volume of data before the snapshot is taken;

identifying a first unit of data on the priority queue.

17. The system of claim 16 , wherein the backup module is programmed to partially order the plurality of units of data within the volume of data that require backup in the priority queue by:

determining that the unit of data was overwritten in the volume of data since a most recent backup;

in response to determining that the unit of data was overwritten since the most recent backup, placing the unit of data in a position of lower priority within the priority queue than at least one unchanged unit of data.

18. The system of claim 11 , wherein:

the resource module is further programmed to, before taking the snapshot of the volume of data for the backup, determine that resource usage of the computing system will fall below the predetermined threshold for a subsequent period of time separate from the period of time;

the backup module is further programmed to, before taking the snapshot of the volume of data for the backup:

identify at least one subsequent unit of data in the volume of data to copy to the backup image for the backup during the subsequent period of time;

in response to determining that the resource usage of the computing system will fall below the predetermined threshold for the subsequent period of time, copy the subsequent unit of data to the backup image during the subsequent period of time.

19. The system of claim 11 , wherein the consistency module is further programmed to:

determine that the unit of data was deleted from the volume of data before the snapshot was taken;

in response to determining that the unit of data was deleted from the volume of data, remove the unit of data from the backup image.

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

identify a volume of data scheduled for a backup by a computing system;

before taking a snapshot of the volume of data for the backup:

determine that resource usage of the computing system will fall below a predetermined threshold for a period of time;

identify at least one unit of data in the volume of data to copy to a backup image for the backup during the period of time;

in response to determining that the resource usage of the computing system will fall below the predetermined threshold for the period of time, copy the unit of data to the backup image during the period of time;

take the snapshot of the volume of data;

after taking the snapshot of the volume of data, copy at least one additional unit of data from the snapshot to the backup image to make the backup image consistent with the snapshot.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075728/0466 →
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 Sep 23, 2011
From: SHAIKH, MOHAMMED; TELI, RAVINDRA; SRIDHARAN, SRINEET; SEARLS, KIRK
To: SYMANTEC CORPORATION
Reel/Frame 026961/0876 →