IP Library Granted Patent US 11,409,604
Granted Patent B1
US 11,409,604 · App. 16/028,615 · Granted Aug 9, 2022

Storage optimization of pre-allocated units of storage

Inventors: Sudhakar Paulzagade (Maharashtra, IN); Chirag Dalal (Aundh, IN)
Assignee: VERITAS TECHNOLOGIES LLC
G06F11/1402G06F16/188
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 11,409,604
App. No.
16/028,615
Granted
Aug 9, 2022
Kind
B1
Abstract

Disclosed herein are systems, methods, and processes to optimize the storage of pre-allocated units of storage during a backup operation. Null units of storage are identified in pre-allocated units of storage prior to the backup operation. Upon being identified, the null units of storage are inhibited from being written to a backup image during the backup operation.

Claims (98)

1. A method, implemented in a computer system, comprising:

retrieving, by a processor of the computer system, a backup image from a storage device associated with the computer system, wherein

the backup image is for a pre-allocated data file,

the backup image comprises a map file and one or more live data blocks, and

the map file identifies one or more null units of storage of the pre-allocated data file at least by virtue of comprising metadata;

reading, by the processor, the metadata from the backup image, wherein

the metadata is associated with the one or more live data blocks by virtue of comprising live block metadata;

retrieving, by the processor, the one or more live data blocks from the backup image; and

restoring, by the processor, the pre-allocated data file to a restored data file, wherein

the restoring uses the metadata and the one or more live data blocks, and

the restoring comprises

generating, by the processor, one or more null data blocks, and

recreating, by the processor, the pre-allocated data file using the one or more live data blocks, the one or more null data blocks, and the metadata.

2. The method of claim 1 , wherein

the metadata indicates whether a given block of the pre-allocated data file is a null data block or a live data block, and

the method further comprises

recreating the given block of the restored data file by writing a null data block of the one or more null data blocks or a live data block of the one or more live data blocks, as indicated by the metadata.

3. The method of claim 1 , wherein

the map file comprises null block metadata that identifies the one or more null units of storage of the pre-allocated data file.

4. The method of claim 3 , wherein the restoring further comprises:

accessing the map file, wherein

the map file was used in creating the backup image by inhibiting writing of the one or more null units of storage by virtue of identifying the one or more null units of storage.

5. The method of claim 4 , further comprising:

detecting a restoration request, wherein

the restoration request is a request for restoration of the pre-allocated data file from the backup image.

6. The method of claim 5 , further comprising:

serving the restoration request by providing the restored data file.

7. The method of claim 1 , wherein

the one or more null data blocks are generated using the metadata.

8. The method of claim 1 , wherein the recreating comprises:

reading at least a portion of the metadata;

determining whether a given block of the pre-allocated data file is a null data block or a live data block;

in response to the at least the portion of the metadata indicating that the given block was live data, restoring a live block of data from the one or more live data blocks into a position of the given block in the restored data file; and

in response to the at least the portion of the metadata indicating that the given block was not live data, inserting a null block into the position of the given block in the restored data file.

9. The method of claim 8 , wherein the recreating further comprises:

determining a starting point, wherein

the starting point is defined as an offset in the pre-allocated data file,

the at least a portion of the metadata indicates the offset; and

setting the start point as the starting point for the recreating.

10. A computer system comprising:

one or more processors;

a non-transitory computer-readable storage medium coupled to the one or more processors; and

a plurality of instructions, encoded in the non-transitory computer-readable storage medium and configured to cause the one or more processors to

retrieve a backup image from a storage device associated with the computer system, wherein

the backup image is for a pre-allocated data file,

the backup image comprises a map file and one or more live data blocks, and

the map file identifies one or more null units of storage of the pre-allocated data file at least by virtue of comprising metadata,

read metadata from the backup image, wherein

the metadata is associated with the one or more live data blocks by virtue of comprising live block metadata,

retrieve the one or more live data blocks from the backup image, and

restore the pre-allocated data file to a restored data file, wherein

the plurality of instructions configured to cause the one or more processors to restore uses the metadata and the one or more live data blocks, and

the plurality of instructions configured to cause the one or more processors to restore comprise instructions configured to cause the one or more processors to

generate one or more null data blocks, and

recreate the pre-allocated data file using the one or more live data blocks, the one or more null data blocks, and the metadata.

11. The computer system of claim 10 , wherein

the backup image is stored in the non-transitory computer-readable storage medium.

12. The computer system of claim 10 , wherein

the metadata indicates whether a given block of the pre-allocated data file is a null data block or a live data block, and

the plurality of instructions configured to cause the one or more processors to recreate is further configured to cause the one or more processors to

recreate the given block of the restored data file by writing a null data block of the one or more null data blocks or a live data block of the one or more live data blocks, as indicated by the metadata.

13. The computer system of claim 10 , wherein

the map file comprises null block metadata that identifies the one or more null units of storage of the pre-allocated data file.

14. The computer system of claim 13 , wherein the plurality of instructions configured to cause the one or more processors to restore is further configured to cause the one or more processors to:

access the map file, wherein

the map file was used in creating the backup image by inhibiting writing of the one or more null units of storage by virtue of identifying the one or more null units of storage.

15. The computer system of claim 13 , wherein the plurality of instructions configured to cause the one or more processors to recreate the pre-allocated data file is further configured to cause the one or more processors to:

read at least a portion of the metadata;

determine whether a given block of the pre-allocated data file is a null data block or a live data block;

in response to the at least the portion of the metadata indicating that the given block was live data, restore a live block of data from the one or more live data blocks into a position of the given block in the restored data file; and

in response to the at least the portion of the metadata indicating that the given block was not live data, insert a null block into the position of the given block in the restored data file.

16. A computer program product comprising:

a plurality of instructions, comprising

a first set of instructions, executable on a computer system, configured to retrieve a backup image from a storage device associated with the computer system, wherein

the backup image is for a pre-allocated data file,

the backup image comprises a map file and one or more live data blocks, and

the map file identifies one or more null units of storage of the pre-allocated data file at least by virtue of comprising metadata,

a second set of instructions, executable on the computer system, configured to read metadata from the backup image, wherein

the metadata is associated with the one or more live data blocks by virtue of comprising live block metadata,

a third set of instructions, executable on the computer system, configured to retrieve the one or more live data blocks from the backup image, and

a fourth set of instructions, executable on the computer system, configured to restore the pre-allocated data file to a restored data file, wherein

the fourth set of instructions uses the metadata and the one or more live data blocks, and

the fourth set of instructions comprise

a first subset of instructions, executable on the computer system, configured to generate one or more null data blocks, and

a second subset of instructions, executable on the computer system, configured to recreate the pre-allocated data file using the one or more live data blocks, the one or more null data blocks, and the metadata; and

a non-transitory computer-readable storage medium, wherein the instructions are encoded in the non-transitory computer-readable storage medium.

17. The computer program product of claim 16 , wherein the metadata indicates whether a given block of the pre-allocated data file is a null data block or a live data block, and the second subset of instructions comprise:

a first sub-subset of instructions, executable on the computer system, configured to recreate the given block of the restored data file by writing a null data block of the one or more null data blocks or a live data block of the one or more live data blocks, as indicated by the metadata.

18. The computer program product of claim 16 , wherein

the map file comprises null block metadata that identifies the one or more null units of storage of the pre-allocated data file.

19. The computer program product of claim 18 , wherein the fourth set of instructions comprises:

a first sub-subset of instructions, executable on the computer system, configured to access the map file, wherein

the map file was used in creating the backup image by inhibiting writing of the one or more null units of storage by virtue of identifying the one or more null units of storage.

20. The computer program product of claim 16 , wherein the fourth set of instructions comprises:

a first subset of instructions, executable on the computer system, configured to reading at least a portion of the metadata;

a second subset of instructions, executable on the computer system, configured to determining whether a given block of the pre-allocated data file is a null data block or a live data block;

a third subset of instructions, executable on the computer system, configured to, in response to the at least the portion of the metadata indicating that the given block was live data, restoring a live block of data from the one or more live data blocks into a position of the given block in the restored data file; and

a fourth subset of instructions, executable on the computer system, configured to, in response to the at least the portion of the metadata indicating that the given block was not live data, inserting a null block into the position of the given block in the restored data file.

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 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069697/0238 →
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 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 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 18, 2020
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 052189/0311 →
Continuity (1)
Continuation 14609711 · Jan 30, 2015