IP Library Granted Patent US 9,063,893
Granted Patent B1
US 9,063,893 · App. 13/930,235 · Granted Jun 23, 2015

Methods and systems for creating full backups

Inventor: Russell Stringham (Orem, UT)
Assignee: Symantec Corporation
G06F11/1448
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,063,893
App. No.
13/930,235
Granted
Jun 23, 2015
Kind
B1
Abstract

A computer-implemented method may create a first full backup of a set of data units at a first point in time. The method may create, at a second point in time, a representation of one or more data units in the set of data units that have been modified since the first point in time. The method may determine, based at least in part on the representation of one or more data units that have been modified since the first point in time, a difference between a state of the set of data units at the first point in time and a state of the set of data units at the second point in time. The method may use the difference to update the first full backup to a second full backup that comprises modifications made to the set of data units between the first and second points in time.

Claims (77)

1. A computer-implemented method, at least a portion of the method being performed by a computing system comprising at least one processor, the method comprising:

creating a first backup of a set of data units at a first point in time;

creating, at a subsequent point in time, a representation of one or more data units in the set of data units that have been modified since the first point in time;

creating, based at least in part on the representation of the one or more data units that have been modified since the first point in time, a delta that represents a difference between a state of the set of data units at the first point in time and a state of the set of data units at the subsequent point in time, wherein the delta comprises:

at least one reference to a data unit in the first backup, the reference identifying a data unit that moved from a first location to a second location within the set of data units between the first point in time and the subsequent point in time;

at least one data unit that was not present in the set of data units at the first point in time and was present in the set of data units at the subsequent point in time;

using the delta to update the first backup to a subsequent backup that represents the state of the set of data units at the subsequent point in time, wherein using the delta to update the first backup comprises updating the data units in the first backup with the at least one data unit that was not present in the set of data units at the first point in time and was present in the set of data units at the subsequent point in time.

2. The computer-implemented method of claim 1 , wherein the delta further comprises at least one reference that identifies a data unit that remained in the same location within the set of data units between the first point in time and the subsequent point in time.

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

the delta comprises a delta stream sent from a client system to a backup system that stores the first backup;

the first backup comprises backup data from the client system;

the client system creates the delta stream;

the delta stream comprises a stream of data that includes the one or more data units that have been modified since the first point in time;

the delta stream is created on the fly without first creating an incremental backup.

4. The computer-implemented method of claim 1 , wherein creating the delta comprises:

sending the representation of the one or more data units that have been modified from a client system to a backup system that backs up data from the client system;

processing, at the backup system, the representation of the one or more data units that have been modified to create the delta.

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

the representation comprises an incremental backup that includes the one or more data units that have been modified since the first point in time;

creating the delta comprises, for each data unit in the set of data units, at least one of:

adding a data unit from the incremental backup corresponding to the data unit of the set of data units to the delta;

adding a reference to a data unit in the first full backup.

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

the representation of the one or more data units that have been modified since the first point in time comprises an incremental backup;

creating the delta comprises converting the incremental backup into the delta.

7. The computer-implemented method of claim 1 , further comprising identifying the one or more data units in the set of data units that have been modified since the first point in time by tracking modifications to the set of data units.

8. The computer-implemented method of claim 1 , further comprising identifying the one or more data units in the set of data units that have been modified since the first point in time by reading archive bits associated with files in the set of data units.

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

sending the delta to a data deduplication system;

deduplicating, at the data deduplication system, data in the delta and the first backup by deduplicating only the data units that have been modified since the first point in time.

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

creating, at an additional point in time, a representation of one or more data units in the set of data units that have been modified since the subsequent point in time;

determining, based at least in part on the representation of the one or more data units that have been modified since the subsequent point in time, a difference between the state of the set of data units at the subsequent point in time and a state of the set of data units at the additional point in time;

using the difference to update the subsequent backup to an additional backup that represents the set of data units at the additional point in time.

11. A system comprising:

at least one processor;

a backup module, stored in memory, that directs the at least one processor to:

create a first backup of a set of data units at a first point in time;

create, at a subsequent point in time, a representation of one or more data units in the set of data units that have been modified since the first point in time;

at least one storage device configured to store the first backup;

a processing module, stored in memory, that directs the at least one processor to create, based at least in part on the representation of the one or more data units that have been modified since the first point in time, a delta that represents a difference between a state of the set of data units at the first point in time and a state of the set of data units at the subsequent point in time, wherein the delta comprises:

at least one reference to a data unit in the first backup, the reference identifying a data unit that moved from a first location to a second location within the set of data units between the first point in time and the subsequent point in time;

at least one data unit that was not present in the set of data units at the first point in time and was present in the set of data units at the subsequent point in time;

an update module, stored in memory, that directs the at least one processor to use the delta to update the first backup to a subsequent backup that represents the state of the set of data units at the subsequent point in time, wherein using the delta to update the first backup comprises updating the data units in the first backup with the at least one data unit that was not present in the set of data units at the first point in time and was present in the set of data units at the subsequent point in time.

12. The system of claim 11 , wherein the delta further comprises at least one reference that identifies a data unit that remained in the same location within the set of data units between the first point in time and the subsequent point in time.

13. The system of claim 11 , wherein:

the delta comprises a delta stream sent to a backup system that stores the first backup;

the delta stream comprises a stream of data that includes the one or more data units that have been modified since the first point in time;

the delta stream comprises information regarding how the one or more data units that have been modified since the first point in time map to the first backup.

14. The system of claim 11 , wherein:

the delta comprises a delta file that includes the one or more data units that have been modified since the first point in time.

15. The system of claim 11 , wherein:

the processing module directs the at least one processor to create the delta by iterating through the representation of the one or more data units in the set of data units that have been modified since the first point in time to determine, for each data unit in the set of data units, whether to add a data unit that is not present in the first backup or a reference to a data unit that is present in the first backup.

16. The system of claim 11 , wherein:

the set of data units comprises a data volume;

each data unit in the set of data units comprises a data block in the data volume.

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

create a first backup of a set of data units at a first point in time;

create, at a subsequent point in time, a representation of one or more data units in the set of data units that have been modified since the first point in time;

create, based at least in part on the representation of the one or more data units that have been modified since the first point in time, a delta that represents a difference between a state of the set of data units at the first point in time and a state of the set of data units at the subsequent point in time, wherein the delta comprises:

at least one reference to a data unit in the first backup, the reference identifying a data unit that moved from a first location to a second location within the set of data units between the first point in time and the subsequent point in time;

at least one data unit that was not present in the set of data units at the first point in time and was present in the set of data units at the subsequent point in time;

use the delta to update the first backup to a subsequent backup that represents the state of the set of data units at the subsequent point in time, wherein using the delta to update the first backup comprises updating the data units in the first backup with the at least one data unit that was not present in the set of data units at the first point in time and was present in the set of data units at the subsequent point in time.

18. The computer-readable-storage medium of claim 17 , wherein:

the representation of the one or more data units that have been modified since the first point in time comprises:

a first bitmap that indicates each data unit that has changed since the first point in time;

a second bitmap that indicates a state of each data unit in the set of data units at the first point in time;

a third bitmap that indicates a state of each data unit in the set of data units at the subsequent point in time;

an incremental backup that includes the one or more data units that have been modified since the first point in time; the one or more computer-executable instructions further cause the computing device to:

add a data unit from the incremental backup corresponding to the data unit of the set of data units to the delta if:

a bit corresponding to the data unit of the set of data units in the third bitmap is set; and

a bit corresponding to the data unit of the set of data units in the first bitmap is set;

add a reference to a data unit in the first backup to the delta if:

the bit corresponding to the data unit of the set of data units in the third bitmap is set; and

the bit corresponding to the data unit of the set of data units in the first bitmap is not set.

19. The computer-implemented method of claim 1 , wherein using the delta to update the first backup further comprises moving the data unit identified by the reference from the first location to the second location within the first backup.

20. The system of claim 11 , wherein the update module that directs the at least one processor to move the data unit identified by the reference from the first location to the second location within the first backup.

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 AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
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 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2013
From: STRINGHAM, RUSSELL
To: SYMANTEC CORPORATION
Reel/Frame 030708/0364 →
Continuity (1)
Continuation 12415798 · Mar 31, 2009