IP Library Granted Patent US 10,176,055
Granted Patent B1
US 10,176,055 · App. 14/936,705 · Granted Jan 8, 2019

Systems and methods for generating full backups of applications

Inventor: Sameer Ranade (Pune, IN)
Assignee: Veritas Technologies LLC
G06F11/1464G06F11/1451
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,176,055
App. No.
14/936,705
Granted
Jan 8, 2019
Kind
B1
Abstract

The disclosed computer-implemented method for generating full backups of applications may include (1) storing, at a backup server that is remote from an application, an initial full backup of the application that indicates an initial version of each data block within the application, (2) after storing the full backup of the application, receiving, from the application, an incremental log file generated by the application that indicates at least one change made to a data block within the application after the initial full backup of the application was generated, and (3) creating, by applying the change made to the data block within the application to the initial full backup of the application, an updated full backup of the application that indicates the most current version of each data block within the application. Various other methods, systems, and computer-readable media are also disclosed.

Claims (67)

1. A computer-implemented method for generating full backups of applications, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

storing, at a backup server that is remote from an application, an initial full backup of the application that indicates an initial version of each data block within the application;

after storing the initial full backup of the application, receiving, from the application, an incremental log file generated by the application that indicates at least one change made to a corresponding data block within the application after the initial full backup of the application was generated; and

creating an updated full backup of the application that indicates the most current version of each data block within the application by:

replicating a computing environment in which the application is designed to run;

loading a copy of the initial full backup of the application into a portion of fast-access memory within the replicated computing environment; and

recreating the at least one change made to the corresponding data block within the copy of the initial full backup of the application by:

identifying, based on the incremental log file, input provided to the application that resulted in the at least one change being made to the corresponding data block within the application; and

providing, to the copy of the initial full backup of the application within the portion of fast-access memory within the replicated computing environment, the input that resulted in the at least one change being made to the corresponding data block within the application.

2. The method of claim 1 , further comprising storing both the updated full backup of the application and the initial full backup of the application within the backup server.

3. The method of claim 2 , further comprising:

receiving an additional incremental log file generated by the application that indicates an additional change made to the corresponding data block within the application after the updated full backup of the application was created;

creating a most-recently updated full backup of the application by recreating the additional change made to the corresponding data block within a copy of the updated full backup of the application; and

storing the most-recently updated full backup of the application in addition to the initial full backup of the application and the updated full backup of the application.

4. The method of claim 1 , further comprising storing an indication of the at least one change made to the corresponding data block within the application.

5. The method of claim 4 , further comprising:

receiving a request to obtain a version of the application as the application was when the initial full backup of the application was generated; and

in response to the request, using the stored indication of the at least one change made to the corresponding data block to return the updated full backup of the application to a state that represents the version of the application as the application was when the initial full backup of the application was generated.

6. The method of claim 1 , further comprising:

receiving, from the application, an additional incremental log file generated by the application that indicates an additional change made to the corresponding data block within the application after the updated full backup of the application was created;

creating a most-recently updated full backup of the application by overwriting the updated full backup of the application based on the additional change made to the corresponding data block within the application; and

storing an indication of the additional change made to the corresponding data block within the application.

7. The method of claim 1 , wherein replicating the computing environment in which the application is designed to run comprises:

determining that the backup server that stores the initial full backup of the application runs an operating system that is not compatible with an operating system that executes the application; and

sending, in response to determining that the operating system run by the backup server is not compatible with the operating system that executes the application, at least a portion of the updated full backup of the application to a proxy server that runs an operating system that is compatible with the operating system that executes the application.

8. The method of claim 1 , wherein creating the updated full backup of the application comprises utilizing at least one application program interface to recreate the at least one change made to the corresponding data block within the application within the copy of the initial full backup of the application.

9. The method of claim 1 , wherein the portion of fast-access memory within the replicated computing environment is:

contained within the backup server; and

distinct from a portion of memory that stores a filesystem of the backup server.

10. The method of claim 1 , wherein the portion of fast-access memory comprises a cache.

11. A system for generating full backups of applications, the system comprising:

a storage module, stored in memory, that stores, at a backup server that is remote from an application, an initial full backup of the application that indicates an initial version of each data block within the application;

a reception module, stored in memory, that receives, from the application, after the initial full backup of the application is stored, an incremental log file generated by the application that indicates at least one change made to a corresponding data block within the application after the initial full backup of the application was generated;

a creation module, stored in memory, that creates an updated full backup of the application that indicates the most current version of each data block within the application by:

replicating a computing environment in which the application is designed to run;

loading a copy of the initial full backup of the application into a portion of fast-access memory within the replicated computing environment; and

recreating the at least one change made to the corresponding data block within the copy of the initial full backup of the application by:

identifying, based on the incremental log file, input provided to the application that resulted in the at least one change being made to the corresponding data block within the application; and

providing, to the copy of the initial full backup within the portion of fast-access memory within the replicated computing environment, the input that resulted in the at least one change being made to the corresponding data block within the application; and

at least one hardware processor configured to execute the storage module, the reception module, and the creation module.

12. The system of claim 11 , wherein the storage module stores both the updated full backup of the application and the initial full backup of the application within the backup server.

13. The system of claim 12 , wherein:

the reception module further receives an additional incremental log file generated by the application that indicates an additional change made to the corresponding data block within the application after the updated full backup of the application was created;

the creation module further creates a most-recently updated full backup of the application by recreating the additional change made to the corresponding data block within a copy of the updated full backup of the application; and

the storage module further stores the most-recently updated full backup of the application in addition to the initial full backup of the application and the updated full backup of the application.

14. The system of claim 11 , wherein the storage module further stores an indication of the at least one change made to the corresponding data block within the application.

15. The system of claim 14 , further comprising a request module that:

receives a request to obtain a version of the application as the application was when the initial full backup of the application was generated; and

in response to the request, uses the stored indication of the at least one change made to the corresponding data block to return the updated full backup of the application to a state that represents the version of the application as the application was when the initial full backup of the application was generated.

16. The system of claim 11 , wherein:

the reception module further receives, from the application, an additional incremental log file generated by the application that indicates an additional change made to the corresponding data block within the application after the updated full backup of the application was created;

the creation module further creates a most-recently updated full backup of the application by overwriting the updated full backup of the application based on the additional change made to the corresponding data block within the application; and

the storage module further stores an indication of the additional change made to the corresponding data block within the application.

17. The system of claim 11 , wherein the creation module replicates the computing environment in which the application is designed to run by:

determining that the backup server that stores the initial full backup of the application runs an operating system that is not compatible with an operating system that executes the application; and

sending, in response to determining that the operating system run by the backup server is not compatible with the operating system that executes the application, at least a portion of the updated full backup of the application to a proxy server that runs an operating system that is compatible with the operating system that executes the application.

18. The system of claim 11 , wherein the creation module creates the updated full backup of the application by utilizing at least one application program interface to recreate the at least one change made to the corresponding data block within the application within the copy of the initial full backup of the application.

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

store, at a backup server that is remote from an application, an initial full backup of the application that indicates an initial version of each data block within the application;

after storing the initial full backup of the application, receive, from the application, an incremental log file generated by the application that indicates at least one change made to a corresponding data block within the application after the initial full backup of the application was generated; and

create an updated full backup of the application that indicates the most current version of each data block within the application by:

replicating a computing environment in which the application is designed to run;

loading a copy of the initial full backup of the application into a portion of fast-access memory within the replicated computing environment; and

recreating the at least one change made to the corresponding data block within the copy of the initial full backup of the application by:

identifying, based on the incremental log file, input provided to the application that resulted in the at least one change being made to the corresponding data block within the application; and

providing, to the copy of the initial full backup within the portion of fast-access memory within the replicated computing environment, the input that resulted in the at least one change being made to the corresponding data block within the application.

20. The computer-readable medium of claim 19 , wherein the one or more computer-readable instructions cause the computing device to store both the initial full backup of the application and the updated full backup of the application within the backup server.

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 Nov 10, 2015
From: RANADE, SAMEER
To: SYMANTEC CORPORATION
Reel/Frame 036997/0652 →