IP Library › Granted Patent US 9,785,643
Granted Patent B1
US 9,785,643 · App. 14/019,971 · Granted Oct 10, 2017

Systems and methods for reclaiming storage space in deduplicating data systems

Inventors: Deepak Patil (Maharashtra, IN); Vishal Bajpai (Roseville, MN)
Assignee: Veritas Technologies LLC
G06F17/30156
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,785,643
App. No.
14/019,971
Filed
Sep 6, 2013
Granted
Oct 10, 2017
Kind
B1
Art Unit
2153
USPC
707/692
Abstract

A computer-implemented method for reclaiming storage space in deduplicating data systems may include (1) storing at least one non-synthesized backup image within a deduplicating data system by storing at least one data segment of the non-synthesized backup image within a container of deduplicated data segments that is used by the deduplicating data system, (2) storing at least one synthesized backup image within the deduplicating data system by referencing at least one previously stored data segment within the container that is also referenced by a previous backup image within the deduplicating data system, (3) determining that no non-synthesized backup images still reference the container, and (4) removing the data segment of the non-synthesized backup image from the container of deduplicated data segments in response to determining that no non-synthesized backup images still reference the container. Various other methods, systems, and computer-readable media are also disclosed.

Claims (38)

1. A computer-implemented method for reclaiming storage space in deduplicating data systems, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

storing at least one non-synthesized backup image within a deduplicating data system by storing at least one data segment of the non-synthesized backup image within a container of deduplicated data segments that is used by the deduplicating data system, wherein storing the non-synthesized backup image within the deduplicating data system comprises storing the non-synthesized backup within the deduplicating data system before the container no longer accepts new deduplicated data segments;

storing at least one synthesized backup image within the deduplicating data system by referencing at least one previously stored data segment within the container that is also referenced by a previous backup image within the deduplicating data system, wherein the synthesized backup image was derived from a plurality of existing backup images comprising the previous backup image, wherein storing the synthesized backup image within the deduplicating data system comprises storing the synthesized backup image within the deduplicating data system after the container no longer accepts new deduplicated data segments: determining that no non-synthesized backup images still reference the container; removing the data segment of the non-synthesized backup image from the container of deduplicated data segments in response to determining that no non-synthesized backup images still reference the container and determining that no synthesized backup image references the data segment.

2. The computer-implemented method of claim 1 , wherein storing the synthesized backup image within the deduplicating data system comprises storing an indication of an initial location within the container of the previously stored data segment in a container map.

3. The computer-implemented method of claim 2 , wherein removing the data segment of the non-synthesized backup image from the container comprises:

compacting the container by moving the previously stored data segment to a new location within the container;

storing an indication of the new location within the container of the previously stored data segment in the container map.

4. The computer-implemented method of claim 1 , wherein:

storing the non-synthesized backup image comprises incrementing a non-synthesized reference count for the container;

storing the synthesized backup image comprises incrementing a synthesized reference count for the container;

determining that no non-synthesized backup images still reference the container comprises determining that the non-synthesized reference count for the container is at zero.

5. The computer-implemented method of claim 1 , wherein the container expires at a predetermined time, before which the container accepts new deduplicated data segments and after which the container no longer accepts new deduplicated data segments.

6. The computer-implemented method of claim 1 , further comprising restoring the synthesized backup image by retrieving a current location within the container of the previously stored data segment from a container map that corresponds to the container.

7. A system for reclaiming storage space in deduplicating data systems, the system comprising:

a storing module that stores at least one non-synthesized backup image within a deduplicating data system by storing at least one data segment of the non-synthesized backup image within a container of deduplicated data segments that is used by the deduplicating data system, wherein storing the non-synthesized backup image within the deduplicating data system comprises storing the non-synthesized backup within the deduplicating data system before the container no longer accepts new deduplicated data segments;

a synthesizing module that stores at least one synthesized backup image within the deduplicating data system by referencing at least one previously stored data segment within the container that is also referenced by a previous backup image within the deduplicating data system, wherein the synthesized backup image was derived from a plurality of existing backup images comprising the previous backup image, wherein storing the synthesized backup image within the deduplicating data system comprises storing the synthesized backup image within the deduplicating data system after the container no longer accepts new deduplicated data segments;

a determination module that determines that no non-synthesized backup images still reference the container;

a removing module that removes the data segment of the non-synthesized backup image from the container of deduplicated data segments in response to determining that no non-synthesized backup images still reference the container and determining that no synthesized backup image references the data segment;

at least one processor configured to execute the storing module, the synthesizing module, the determination module, and the removing module.

8. The system of claim 7 , wherein the synthesizing module stores the synthesized backup image within the deduplicating data system by storing an indication of an initial location within the container of the previously stored data segment in a container map.

9. The system of claim 8 , wherein the removing module removes the data segment of the non-synthesized backup from the container by:

compacting the container by moving the previously stored data segment to a new location within the container;

storing an indication of the new location within the container of the previously stored data segment in the container map.

10. The system of claim 7 , wherein:

the storing module stores the non-synthesized backup image by incrementing a non-synthesized reference count for the container;

the synthesizing module stores the synthesized backup image by incrementing a synthesized reference count for the container;

the determination module determines that no non-synthesized backup images still reference the container by determining that the non-synthesized reference count for the container is at zero.

11. The system of claim 7 , wherein the container expires at a predetermined time, before which the container accepts new deduplicated data segments and after which the container no longer accepts new deduplicated data segments.

12. The system of claim 7 , further comprising a restoring module that restores the synthesized backup image by retrieving a current location within the container of the previously stored data segment from a container map that corresponds to the container.

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

store at least one non-synthesized backup image within a deduplicating data system by storing at least one data segment of the non-synthesized backup image within a container of deduplicated data segments that is used by the deduplicating data system, wherein storing the non-synthesized backup image within the deduplicating data system comprises storing the non-synthesized backup within the deduplicating data system before the container no longer accepts new deduplicated data segments;

store at least one synthesized backup image within the deduplicating data system by referencing at least one previously stored data segment within the container that is also referenced by a previous backup image within the deduplicating data system, wherein the synthesized backup image was derived from a plurality of existing backup images comprising the previous backup image, wherein storing the synthesized backup image within the deduplicating data system comprises storing the synthesized backup image within the deduplicating data system after the container no longer accepts new deduplicated data segments;

determine that no non-synthesized backup images still reference the container;

remove the data segment of the non-synthesized backup image from the container of deduplicated data segments in response to determining that no non-synthesized backup images still reference the container and determining that no synthesized backup image references the data segment.

14. The non-transitory computer-readable-storage medium of claim 13 , wherein the one or more computer-readable instructions cause the computing device to store the synthesized backup image within the deduplicating data system by storing an indication of an initial location within the container of the previously stored data segment in a container map.

15. The computer-implemented method of claim 1 , wherein:

the container is configured to expire at a predetermined time;

the container accepts new deduplicated data segments before the container expires but does not accept new deduplicated data segments after the container expires.

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 Sep 6, 2013
From: PATIL, DEEPAK; BAJPAI, VISHAL
To: SYMANTEC CORPORATION
Reel/Frame 031151/0308 →