IP Library Granted Patent US 9,569,313
Granted Patent B1
US 9,569,313 · App. 14/605,541 · Granted Feb 14, 2017

Method and apparatus for optimizing a backup chain using synthetic backups

Inventor: Russell R. Stringham (Orem, UT)
Assignee: Veritas Technologies LLC
G06F11/1469G06F11/1448G06F17/30876G06F2201/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 9,569,313
App. No.
14/605,541
Filed
Jan 26, 2015
Granted
Feb 14, 2017
Kind
B1
Art Unit
2137
USPC
711/162
Abstract

A method and apparatus for optimizing a backup chain using synthetic backups is described. In one embodiment, a method for creating synthetic incremental backups to optimize a backup chain comprises accessing a backup chain, which further comprises a plurality of incremental backups and determining schedule information defining a number of incremental backups to use to create one or more synthetic incremental backups representing the plurality of incremental backups from the backup chain, wherein the number of backups is defined by a numerical progression.

Claims (84)

1. A method comprising:

receiving a request to perform a restore operation, wherein

the request specifies a requested version of requested data that has been modified at least twice since a base backup was captured;

accessing, in response to the receiving the request, a synthetic incremental backup of a plurality of first synthetic incremental backups in a backup chain, wherein the backup chain comprises the base backup and the plurality of first synthetic incremental backups,

the synthetic incremental backup is created using N incremental backups in the backup chain,

the synthetic incremental backup comprises at least a previous version of the requested data and a modified version of the requested data,

N is a pre-specified value that determines how many incremental backups are created between creation of each of the plurality of first synthetic incremental backups, and

each of the plurality of first synthetic incremental backups is created in response to the creation of the respective N incremental backups in the backup chain;

identifying the requested version of the requested data, wherein

the requested version of the requested data is capable of being either the previous version or the modified version of the requested data; and

restoring the requested version of the requested data.

2. The method of claim 1 , further comprising:

creating a synthetic base backup from a previously-created synthetic incremental backup and the base backup, wherein

the synthetic base backup is created in response to either a length of the backup chain or a size of one or more previously-created synthetic incremental backups.

3. The method of claim 1 , wherein

N is inversely proportional to an average length of the backup chain.

4. The method of claim 1 , wherein

N is defined by a numerical progression, and

the numerical progression comprises at least one of a logarithmic progression, an exponential progression, or a geometric progression.

5. The method of claim 1 , further comprising:

adjusting N in response to detecting a creation of M incremental backups.

6. The method of claim 1 , further comprising:

creating at least one second synthetic incremental backup from at least two of the plurality of first synthetic incremental backups, wherein

the at least one second synthetic incremental backup is created in response to the creation of the at least two of the plurality of first synthetic incremental backups.

7. The method of claim 1 , further comprising:

deleting at least one incremental backup of the plurality of first synthetic incremental backups after the creation of a first synthetic incremental backup of the plurality of first synthetic incremental backups, wherein

the at least one incremental backup was used to create the first synthetic incremental backup.

8. The method of claim 1 , further comprising:

deleting the synthetic incremental backup after a defined period of time elapses subsequent to creating the synthetic incremental backup.

9. An apparatus, comprising:

a storage subsystem storing backup chain comprising a base backup and a plurality of first synthetic incremental backups; and

a storage controller configured to:

receive a request to perform a restore operation, wherein

the request specifies a requested version of requested data that has been modified at least twice since the base backup was captured,

access, in response to receiving the request, a synthetic incremental backup of the plurality of first synthetic incremental backups, wherein

the synthetic incremental backup is created using N incremental backups in the backup chain,

the synthetic incremental backup comprises at least a previous version of the requested data and a modified version of the requested data,

N is a pre-specified value that determines how many incremental backups are created between creation of each of the plurality of first synthetic incremental backups, and

each of the plurality of first synthetic incremental backups is created in response to the creation of the respective N incremental backups in the backup chain,

identify the requested version of the requested data, wherein

the requested version of the requested data is capable of being either the previous version or the modified version of the requested data, and

restore the requested version of the requested data.

10. The apparatus of claim 9 , wherein the storage controller is further configured to:

create a synthetic base backup from a previously-created synthetic incremental backup and the base backup, wherein

the synthetic base backup is created in response to either a length of the backup chain or a size of one or more previously-created synthetic incremental backups.

11. The apparatus of claim 9 , wherein

N is defined by a numerical progression, and

the numerical progression comprises at least one of a logarithmic progression, an exponential progression, or a geometric progression.

12. The apparatus of claim 9 , wherein the storage controller is further configured to:

adjust N in response to detecting a creation of M incremental backups.

13. The apparatus of claim 9 , wherein the storage controller is further configured to:

create at least one second synthetic incremental backup from at least two of the plurality of first synthetic incremental backups, wherein

the at least one second synthetic incremental backup is created in response to the creation of the at least two of the plurality of first synthetic incremental backups.

14. The apparatus of claim 9 , wherein the storage controller is further configured to:

delete at least one incremental backup of the plurality of first synthetic incremental backups after the creation of a first synthetic incremental backup of the plurality of first synthetic incremental backups, wherein

the at least one incremental backup was used to create the first synthetic incremental backup.

15. A system, comprising:

a server for managing backups of data within a computing environment, comprising:

a storage subsystem storing backup chain comprising a base backup and a plurality of first synthetic incremental backups; and

a storage controller configured to:

receive a request to perform a restore operation, wherein

the request specifies a requested version of requested data that has been modified at least twice since the base backup was captured,

access, in response to receiving the request, a synthetic incremental backup of the plurality of first synthetic incremental backups, wherein

the synthetic incremental backup is created using N incremental backups in the backup chain,

the synthetic incremental backup comprises at least a previous version of the requested data and a modified version of the requested data,

N is a pre-specified value that determines how many incremental backups are created between creation of each of the plurality of first synthetic incremental backups, and

each of the plurality of first synthetic incremental backups is created in response to the creation of the respective N incremental backups in the backup chain,

identify the requested version of the requested data, wherein

the requested version of the requested data is capable of being either the previous version or the modified version of the requested data, and

restore the requested version of the requested data.

16. The system of claim 15 , wherein the storage controller is further configured to:

create a synthetic base backup from a previously-created synthetic incremental backup and the base backup, wherein

the synthetic base backup is created in response to either a length of the backup chain or a size of one or more previously-created synthetic incremental backups.

17. The system of claim 15 , wherein

N is defined by a numerical progression, and

the numerical progression comprises at least one of a logarithmic progression, an exponential progression, or a geometric progression.

18. The system of claim 15 , wherein the storage controller is further configured to:

adjust N in response to detecting a creation of M incremental backups.

19. The system of claim 15 , wherein the storage controller is further configured to:

create at least one second synthetic incremental backup from at least two of the plurality of first synthetic incremental backups, wherein

the at least one second synthetic incremental backup is created in response to the creation of the at least two of the plurality of first synthetic incremental backups.

20. The system of claim 15 , wherein the storage controller is further configured to:

delete at least one incremental backup of the plurality of first synthetic incremental backups after the creation of a first synthetic incremental backup of the plurality of first synthetic incremental backups, wherein

the at least one incremental backup was used to create the first synthetic incremental backup.

Assignments (10)
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 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069632/0613 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2017
From: SYMANTEC CORPORATION
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041897/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
Continuity (1)
Continuation 12033365 · Feb 19, 2008