IP Library Granted Patent US 11,093,343
Granted Patent B2
US 11,093,343 · App. 16/363,415 · Granted Aug 17, 2021

Fragmentation mitigation in synthetic full backups

Inventor: Shuai Cheng (Beijing, CN)
Assignee: Veritas Technologies LLP
G06F11/1453G06F11/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 11,093,343
App. No.
16/363,415
Granted
Aug 17, 2021
Kind
B2
Abstract

Various methods, systems, and processes for mitigating fragmentation in synthetic full backups are disclosed. One or more storage units out of multiple storage units are identified. The multiple storage units include one or more new storage units or one or more existing storage units. The multiple storage units are accessed and a determination is made as to whether the one or more storage units out of the multiple storage units meet a threshold. The threshold is a measure of a characteristic of those one or more storage units. If one or more storage units meet the threshold, those one or more storage units are included in a backup stream, and the backup stream is sent to a backup server.

Claims (86)

1. A computer-implemented method comprising:

generating a backup stream of data accessed from a storage device, wherein the backup stream is generated for use in creating a synthetic full backup image of the storage device,

the generation of the backup stream comprising

receiving one or more extents of data accessed from the storage device;

identifying a span of one or more contiguous existing extents of data of the one or more extents of data, wherein existing extents of data include data of the storage device that has not been changed;

determining whether the span of one or more contiguous extents of data meets a first threshold;

in response to a determination that the span of one or more contiguous existing extents of data meet the first threshold,

including the span of one or more contiguous existing extents of data in the backup stream;

determining whether a new extent of data accessed from the storage device meets a second threshold, wherein

the new extent of data includes new data accessed from the storage device; and

in response to a determination that the new extent of data meets the second threshold, including the new extent of data in the backup stream.

2. The computer-implemented method of claim 1 , wherein

the one or more extents of data are received from a client configured to maintain the one or more extents of data in a change tracking log.

3. The computer-implemented method of claim 1 , wherein the first threshold is a first size threshold, and

a size of the span of one or more contiguous existing extents of data that is less than the first size threshold will cause an unacceptably high level of fragmentation in creation of the synthetic full backup image.

4. The computer-implemented method of claim 1 , wherein the second threshold is a second size threshold,

a size of a given new extent of data that is less than the second size threshold will cause an unacceptably high level of fragmentation in creation of the synthetic full backup image.

5. The computer-implemented method of claim 1 , wherein the one or more extents of data are comprised in a plurality of extents of data, and the computer-implemented method further comprises:

determining whether a span of extents of data among the plurality of extents of data comprises more new extents of data than existing extents of data; and

in response to a determination that the span of extents of data comprises more new extents of data than existing extents of data, including the span of extents of data in the backup stream.

6. The computer-implemented method of claim 1 , wherein the one or more extents of data are comprised in a plurality of extents of data, and the computer-implemented method further comprises:

determining whether the plurality of extents of data comprises more new extents of data than existing extents of data; and

in response to a determination that the plurality of extents of data comprise more new extents of data than existing extents of data, including the plurality of extents of data in the backup stream.

7. The computer-implemented method of claim 1 , wherein the including the span of one or more contiguous existing extents of data in the backup stream comprises:

merging existing extents of data in the span of one or more contiguous existing extents of data into a merged extent of data; and

including the merged extent of data in the backup stream.

8. The computer-implemented method of claim 7 , wherein the including the merged extent of data comprises:

generating metadata associated with the merged extent of data; and

including the metadata in the backup stream.

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

in response to a determination that the new extent of data does not meet the first threshold,

storing the new extent of data, and

awaiting receipt of an additional new extent of data.

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

merging the new extent of data and the additional new extent of data into a merged extent of data, wherein

the additional new extent of data is contiguous to the new extent of data;

determining whether the merged extent of data meets the first threshold; and

in response to a determination that the merged extent of data meets the first threshold, including the merged extent of data in the backup stream.

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

obtaining state file information, wherein

the state file information comprises metadata associated with existing extents of data in the extents of data accessed from the storage device.

12. A computer program product comprising:

a plurality of instructions, comprising

a first set of instructions, executable by a processor of a computer system, configured to generate a backup stream of data accessed from a storage device, wherein the backup stream is generated for use in creating a synthetic full backup image of the storage device, wherein the first set of instructions comprises

a first subset of instructions, executable by the processor, configured to receive one or more extents of data accessed from the storage device,

a second subset of instructions, executable by the processor, configured to identify a span of one or more contiguous existing extents of data of the one or more extents of data, wherein existing extents of data include data that has not been changed,

a third subset of instructions, executable by the processor, configured to determine whether the span of one or more contiguous existing extents of data meets a first threshold, and

a fourth subset of instructions, executable by the processor, configured to, in response to a determination that the span of one or more contiguous existing extents of data meet the first threshold,

including the span of one or more contiguous existing extents of data in the backup stream,

determine whether a new extent of data accessed from the storage device meets a second threshold, wherein

the new extent of data includes new data accessed from the storage device,

in response to a determination that the new extent of data meets the second threshold, include the new extent of data in the backup stream; and

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

13. The computer program product of claim 12 , wherein the first threshold is a first size threshold,

a size of a given span of one or more contiguous existing extents of data that is less than the first size threshold will cause an unacceptably high level of fragmentation in creation of a synthetic full backup image,

the second threshold is a second size threshold,

a size of a given new extent of data that is less than the first size threshold will cause the unacceptably high level of fragmentation in the creation of the synthetic full backup.

14. The computer program product of claim 12 , wherein the fourth subset of instructions comprise:

a first sub-subset of instructions, executable by the processor, configured to merge the span of one or more contiguous existing extents of data into a merged extent of data; and

a second sub-subset of instructions, executable by the processor, configured to include the merged extent of data in the backup stream.

15. The computer program product of claim 14 , wherein the second sub-subset of instructions are further configured to:

generate metadata associated with the merged extent of data; and

include the metadata in the backup stream.

16. The computer program product of claim 12 , wherein the instructions further comprise:

a second set of instructions, executable by the processor, configured to, in response to the determination that the new extent of data does not meet the first threshold,

store the new extent of data, and

await receipt of an additional new extent of data.

17. The computer program product of claim 16 , wherein the instructions further comprise:

a third set of instructions, executable by the processor, configured to merge the new extent of data and the additional new extent of data into a merged extent of data, wherein

the additional new extent of data is contiguous to the new extent of data;

a fourth set of instructions, executable by the processor, configured to determine whether the merged extent of data meets the first threshold; and

a fifth set of instructions, executable by the processor, configured to in response to a determination that the merged extent of data meets the first threshold, include the merged extent of data in the backup stream.

18. The computer program product of claim 12 , wherein the one or more extents of data are comprised in a plurality of extents of data, and the instructions further comprise:

a second set of instructions, executable by the processor, configured to determine whether a span of extents of data among the plurality of extents of data comprises more new extents of data than existing extents of data; and

a third set of instructions, executable by the processor, configured to in response to a determination that the span of extents of data comprises more new extents of data than existing extents of data, include the span of extents of data in the backup stream.

19. A computer system comprising:

one or more processors;

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

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

generate a backup stream by virtue of being configured to

receive one or more extents of data accessed from a storage device, wherein the backup stream is generated for use in creating a synthetic full backup image of the storage device,

identify a span of one or more contiguous existing extents of data of the one or more extents of data, wherein existing extents of data include data of the storage device that has not been changed,

determine whether the span of one or more contiguous existing extents of data meets a first threshold,

in response to a determination that the span of one or more contiguous existing extents of data meet the first threshold, including the span of one or more contiguous existing extents of data in the backup stream,

determine whether a new extent of data accessed from the storage device meets a second threshold, wherein the new extent of data includes new data accessed from the storage device, and

in response to a determination that the new extent of data meets the second threshold, include the new extent of data in the backup stream.

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 (2)
Continuation 14674015 · Mar 31, 2015
Related Publication 20190317863A1 · Oct 17, 2019