IP Library Granted Patent US 9,928,210
Granted Patent B1
US 9,928,210 · App. 13/459,987 · Granted Mar 27, 2018

Constrained backup image defragmentation optimization within deduplication system

Inventors: Xianbo Zhang (Madison, WI); Benjamin Potvien (Andover, MN); Thomas Hartnett (Saint Paul, MN); Weibao Wu (Vadnais Heights, MN); Satyajit Gorhe Parlikar (Shoreview, MN)
Assignee: Veritas Technologies LLC
G06F15/8084
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,928,210
App. No.
13/459,987
Filed
Apr 30, 2012
Granted
Mar 27, 2018
Kind
B1
Art Unit
2137
USPC
711/165
Abstract

The present disclosure provides for defragmenting deduplicated data, such as one or more backup image files, stored in a deduplicated data store. A defragmentation module can be implemented on a deduplication server to reduce fragmentation of backup images and improve processing time for restoring a backup image. A defragmentation module can be configured to defragment a backup image file by migrating portions of data of the backup image file that are stored in various containers at non-contiguous locations throughout deduplicated data store. A defragmentation module can contiguously write the portions to one or more containers, which are stored at one or more new locations in the deduplicated data store. A defragmentation module can be configured to evaluate whether portions of a backup image file meet criteria for defragmentation. A defragmentation module can also be configured to update location information about the portions that are migrated to the new container(s).

Claims (96)

1. A method comprising:

determining whether a chunk of deduplicated file data needs to be defragmented, wherein the chunk comprises a plurality of segments,

the plurality of segments are stored in a first plurality of containers,

the first plurality of containers comprises a first number of containers,

the determining is based, at least in part, on the first number of containers a second number of containers, and a first total number of the plurality of segments,

the determining comprises calculating a ratio of the first total number of the plurality of segments to the second number of containers, and

the ratio is associated with the chunk; and

in response to a determination that the chunk needs to be defragmented, migrating the plurality of segments from the first plurality of containers to a second plurality of containers, wherein

the second plurality of containers comprises no more than the second number of containers, and

the second number of containers is less than the first number of containers.

2. The method of claim 1 , wherein the migrating comprises:

reading the plurality of segments from the first plurality of containers; and

contiguously writing the plurality of segments into the second plurality of containers.

3. The method of claim 2 , wherein

a first portion of segments of the plurality of segments are presently stored in the first plurality of containers,

the first portion of segments are contiguously written into a first container of the second plurality of containers, and

the first container is located in cache memory.

4. The method of claim 3 , further comprising:

writing the first container to data storage; and

deleting the first portion of segments from the first plurality of containers.

5. The method of claim 1 , further comprising:

updating metadata about the plurality of segments, wherein

a location associated with each segment of the plurality of segments is updated to include an identification of one of the second plurality of containers.

6. The method of claim 1 , further comprising:

determining that the ratio falls below a threshold value, wherein the ratio indicates that the chunk needs to be defragmented.

7. A computer program product comprising:

a non-transitory computer readable medium storing program instructions executable by a processor, wherein the program instructions are configured to

make a determination whether a chunk of deduplicated file data needs to be defragmented, wherein

the chunk comprises a plurality of segments, the plurality of segments are stored in a first plurality of containers,

the first plurality of containers comprises a first number of containers,

the determination is based, at least in part, on the first number of containers, a second number of containers, and a first total number of the plurality of segments,

the determining comprises calculating a ratio of the first total number of the plurality of segments to the second number of containers, and

the ratio is associated with the chunk; and

in response to a determination that the chunk needs to be defragmented, migrate the plurality of segments from the first plurality of containers to a second plurality of containers, wherein

the second plurality of containers comprises no more than the second number of containers, and

the second number of containers is less than the first number of containers.

8. The computer program product of claim 7 , wherein

the program instructions are further configured to

read the plurality of segments from the first plurality of containers, and

contiguously write the plurality of segments into the second plurality of containers.

9. The computer program product of claim 8 , wherein

a first portion of segments of the plurality of segments are presently stored in the first plurality of containers,

the first portion of segments are contiguously written into a first container of the second plurality of containers, and

the first container is located in cache memory.

10. The computer program product of claim 9 , wherein

the program instructions are further configured to

write the first container to data storage, and

delete the first portion of segments from the first plurality of containers.

11. The computer program product of claim 7 , wherein

the program instructions are further configured to update metadata about the plurality of segments, wherein

a location associated with each segment of the plurality of segments is updated to include an identification of one of the second plurality of containers.

12. The computer program product of claim 7 , wherein the program instructions are further configured to

determine that the ratio falls below a threshold value, wherein

the ratio indicates that the chunk needs to be defragmented.

13. A system comprising:

a defragmentation module, wherein

the defragmentation module is implemented on a server,

the defragmentation module is communicatively coupled to a data store, and

the defragmentation module is configured to make a determination whether a chunk of deduplicated file data needs to be defragmented, wherein

the chunk is stored in the data store,

the chunk comprises a plurality of segments,

the plurality of segments are stored in a first plurality of containers,

the first plurality of containers comprises a first number of containers,

the determination is based, at least in part, on the first number of containers, a second number of containers, and a first total number of the plurality of segments,

the determining comprises calculating a ratio of the first total number of the plurality of segments to the second number of containers, and

the ratio is associated with the chunk; and

in response to a determination that the chunk needs to be defragmented, migrate the plurality of segments from the first plurality of containers to a second plurality of containers, wherein

the second plurality of containers comprises no more than the second number of containers, and

the second number of containers is less than the first number of containers.

14. The system of claim 13 , wherein

the defragmentation module is further configured to

read the plurality of segments from the first plurality of containers, and

contiguously write the plurality of segments into the second plurality of containers.

15. The system of claim 14 , wherein

a first portion of segments of the plurality of segments are presently stored in the first plurality of containers,

the first portion of segments are contiguously written into a first container of the second plurality of containers, and

the first container is located in cache memory.

16. The system of claim 13 , wherein

the defragmentation module is communicatively coupled to a metadata store, and

the defragmentation module is further configured to

update metadata about the plurality of segments, wherein

the metadata is stored in the metadata store,

a location associated with each segment of the plurality of segments is updated to include an identification of one of the second plurality of containers.

17. An apparatus comprising:

an analysis module configured to

make a determination whether a chunk of file data needs to be defragmented, wherein the chunk comprises a plurality of segments,

the plurality of segments are stored in a first plurality of containers,

the first plurality of containers comprises a first number of containers,

the determination is based, at least in part, on the first number of containers, a second number of containers, and a first total number of the plurality of segments,

making the determination comprises calculating a ratio of the first total number of the plurality of segments to the second number of containers, and

the ratio is associated with the chunk; and

a migration module configured to

in response to a determination that the chunk needs to be defragmented, migrate the plurality of segments from the first plurality of containers to a second plurality of containers,

wherein

the second plurality of containers comprises no more than the second number of containers, and

the second number of containers is less than the first number of containers.

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 15, 2012
From: ZHANG, XIANBO; POTVIEN, BENJAMIN; HARTNETT, THOMAS; WU, WEIBAO; PARLIKAR, SATYAJIT GORHE
To: SYMANTEC CORPORATION
Reel/Frame 028381/0915 →