IP Library Granted Patent US 9,817,834
Granted Patent B1
US 9,817,834 · App. 13/632,740 · Granted Nov 14, 2017

Techniques for performing an incremental backup

Inventors: Kirk Searls (Maitland, FL); Pu Ou (Longwood, FL)
Assignee: Veritas Technologies LLC
G06F17/30088
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,817,834
App. No.
13/632,740
Granted
Nov 14, 2017
Kind
B1
Abstract

Techniques for performing an incremental backup are disclosed. In one particular exemplary embodiment, the techniques may be realized as a method for performing an incremental backup comprising retrieving a first identifier from a first portion of a prior backup of a database, backing up a first portion of a snapshot of the database, retrieving, using at least one computer processor, a second portion of the snapshot of the database, determining whether a second identifier of the second portion of the snapshot of the database is greater than the first identifier, and in the event the second identifier is greater than the first identifier, backing up the second portion of the snapshot of the database.

Claims (62)

1. A method for performing an incremental backup comprising:

retrieving a first identifier for a first portion of a prior full backup of a database, wherein retrieving the first identifier comprises parsing the first portion of the prior full backup of the database to identify the first identifier;

backing up a first portion of a snapshot of the database;

retrieving, using at least one computer processor, a second identifier of a second portion of the snapshot of the database, wherein retrieving the second identifier of the second portion of the snapshot comprises parsing the snapshot to identify the second identifier by sequentially reading one or more pages stored in the snapshot, wherein parsing the snapshot comprises iteratively comparing versions of portions of the snapshot against a version of the backup of the database;

determining whether the second identifier of the second portion of the snapshot of the database is greater than the first identifier;

in the event the second identifier is less than or equal to the first identifier, indicating that the second portion of the snapshot has not been modified subsequent to the prior full backup, skip backing up the second portion of the snapshot of the database; and

in the event the second identifier is greater than the first identifier, indicating that the second portion of the snapshot has been modified subsequent to the prior full backup,

backing up the second portion of the snapshot of the database; and

storing an offset with the backup of the first portion of the snapshot, wherein the offset indicates where the second portion of the snapshot is to be inserted into the prior full backup.

2. The method of claim 1 , further comprising:

retrieving one or more identifiers for additional portions of the snapshot of the database;

determining, for each of the one or more additional portions, that a third identifier of at least one of the one or more additional portions is greater than the first identifier; and

backing up the at least one of the one or more additional portions.

3. The method of claim 1 , wherein the first identifier and the second identifier comprise sequential numbers.

4. The method of claim 1 , wherein the first identifier and the second identifier comprise timestamps.

5. The method of claim 1 , wherein the first portion of the prior backup of the database comprises a database header.

6. The method of claim 1 , wherein the first portion of the snapshot of the database comprises a database header.

7. The method of claim 1 , wherein the first portion and the second portion comprise pages.

8. The method of claim 2 , wherein the determination that a third identifier of at least one of the one or more additional portions is greater than the first identifier comprises:

requesting a full backup from an application storing data in a collection of pages; and

parsing the full backup as received to compare an identifier of each page with the first identifier, wherein pages having an identifier greater than the first identifier are stored as part of an incremental backup and pages having an identifier less than or equal to the first identifier are ignored.

9. The method of claim 1 , further comprising:

using a stream of backup portions to create a virtual database image.

10. The method of claim 9 , wherein the virtual database image is created using a virtual file filter.

11. The method of claim 8 , further comprising:

restoring the database using the full backup and the backup of the second portion, wherein the offset indicates a location of portion of the full backup to be updated by the backup of the second portion.

12. At least one non-transitory processor readable storage medium storing a computer program of instructions configured to be readable by at least one processor for instructing the at least one processor to execute a computer process for performing the method as recited in claim 1 .

13. The method of claim 1 , further comprising:

verifying integrity of the second portion of the snapshot using a checksum of the first portion of the snapshot.

14. The method of claim 1 , further comprising:

verifying, using a database signature of the snapshot, that the snapshot corresponds to the database.

15. An article of manufacture for performing an incremental backup, the article of manufacture comprising:

at least one non-transitory processor readable storage medium; and

instructions stored on the at least one medium;

wherein the instructions are configured to be readable from the at least one medium by at least one processor and thereby cause the at least one processor to operate so as to:

retrieve a first identifier for a first portion of a prior backup of a database, wherein retrieving the first identifier comprises parsing the first portion of the prior full backup of the database to identify the first identifier;

back up a first portion of a snapshot of the database;

retrieve a second identifier of a second portion of the snapshot of the database, wherein retrieving the second identifier of the second portion of the snapshot comprises parsing the snapshot to identify the second identifier by sequentially reading one or more pages stored in the snapshot, wherein parsing the snapshot comprises iteratively comparing versions of portions of the snapshot against a version of the backup of the database;

determine whether the second identifier of the second portion of the snapshot of the database is greater than the first identifier;

in the event the second identifier is less than or equal to the first identifier, indicating that the second portion of the snapshot has not been modified subsequent to the prior full backup, skip backing up the second portion of the snapshot of the database; and

in the event the second identifier is greater than the first identifier, indicating that the second portion of the snapshot has been modified subsequent to the prior full backup,

back up the second portion of the snapshot of the database; and

store an offset with the backup of the first portion of the snapshot, wherein the offset indicates where the second portion of the snapshot is to be inserted into the prior full backup.

16. A system for performing an incremental backup comprising:

one or more processors communicatively coupled to a network; wherein the one or more processors are configured to:

retrieve a first identifier for a first portion of a prior backup of a database, wherein retrieving the first identifier comprises parsing the first portion of the prior full backup of the database to identify the first identifier;

back up a first portion of a snapshot of the database;

retrieve a second identifier of a second portion of the snapshot of the database, wherein retrieving the second identifier of the second portion of the snapshot comprises parsing the snapshot to identify the second identifier by sequentially reading one or more pages stored in the snapshot, wherein parsing the snapshot comprises iteratively comparing versions of portions of the snapshot against a version of the backup of the database;

determine whether the second identifier of the second portion of the snapshot of the database is greater than the first identifier; and

in the event the second identifier is less than or equal to the first identifier, indicating that the second portion of the snapshot has not been modified subsequent to the prior full backup, skip backing up the second portion of the snapshot of the database; and

in the event the second identifier is greater than the first identifier, indicating that the second portion of the snapshot has been modified subsequent to the prior full backup,

back up the second portion of the snapshot of the database; and

store an offset with the backup of the first portion of the snapshot, wherein the offset indicates where the second portion of the snapshot is to be inserted into the prior full backup.

17. The system of claim 16 , wherein the processors are further configured to:

retrieve identifiers for one or more additional portions of the snapshot of the database;

determine, for each of the one or more additional portions, that a third identifier of at least one of the one or more additional portions is greater than the first identifier; and

back up the at least one of the one or more additional portions.

18. The system of claim 16 , wherein the first identifier and the second identifier comprise at least one of sequential numbers and timestamps.

19. The system of claim 16 , wherein the first portion of the prior backup of the database and the first portion of the snapshot comprises a database header.

20. The system of claim 17 , wherein the determination that a third identifier of at least one of the one or more additional portions is greater than the first identifier comprises:

requesting a full backup from an application storing data in a collection of pages; and

parsing the full backup as received to compare an identifier of each page with the first identifier, wherein pages having an identifier greater than the first identifier are stored as part of an incremental backup and pages having an identifier less than or equal to the first identifier are ignored.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075763/0001 →
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 Jun 26, 2014
From: OU, PU; SEARLS, KIRK L
To: SYMANTEC CORPORATION
Reel/Frame 033187/0127 →