IP Library Granted Patent US 9,256,612
Granted Patent B1
US 9,256,612 · App. 13/915,072 · Granted Feb 9, 2016

Systems and methods for managing references in deduplicating data systems

Inventors: Neel Bhatt (Roseville, MN); Stephan Gipp (St. Louis Park, MN)
Assignee: Symantec Corporation
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,256,612
App. No.
13/915,072
Filed
Jun 11, 2013
Granted
Feb 9, 2016
Kind
B1
Art Unit
2166
USPC
707/692
Abstract

A computer-implemented method for managing references in deduplicating data systems may include (1) identifying a first instance of a data segment stored within a deduplicating data system that reduces redundant data storage by storing at least two data objects such that each of the two data objects references the first instance of the data segment, (2) identifying an additional data object to be stored by the deduplicating data system that includes the data segment, (3) determining whether a reference limit associated with the first instance of the data segment has been reached, and (4) storing, based at least in part on determining that the reference limit associated with the first instance of the data segment has been reached, a second instance of the data segment within the deduplicating data system. Various other methods, systems, and computer-readable media are also disclosed.

Claims (80)

1. A computer-implemented method for managing references 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:

identifying a first instance of a data segment stored within a deduplicating data system that reduces redundant data storage by storing at least two data objects such that each of the two data objects references the first instance of the data segment;

identifying an additional data object to be stored by the deduplicating data system, wherein the additional data object comprises the data segment;

determining that an age limit of the first instance of the data segment has been reached, wherein the age limit of the first instance of the data segment:

limits the amount of time during which the first instance of the data segment is available to be referenced; and

indicates an age of the first instance of the data segment after which the first instance of the data segment cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

preventing storage-space fragmentation within the deduplicating data system by storing, based at least in part on determining that the age limit of the first instance of the data segment has been reached, a second instance of the data segment within the deduplicating data system that is referenced by the additional data object while also retaining the first instance of the data segment within the deduplicating data system.

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

the first instance of the data segment is stored within a first container that is stored within the deduplicating data system;

the first container also stores a plurality of additional data segments;

the age limit of the first instance of the data segment comprises an age limit of the first container that indicates an age of the first container after which data segments stored within the first container cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

preventing storage-space fragmentation within the deduplicating data system by storing the second instance of the data segment within the deduplicating data system comprises storing the second instance of the data segment within a second container within the deduplicating data system that is separate and distinct from the first container.

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

the first instance of the data segment is stored within a first container that is stored within the deduplicating data system;

the first container also stores a plurality of additional data segments;

the age limit of the first instance of the data segment comprises an age limit of the first container that indicates an age of the first container after which the first container cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

preventing storage-space fragmentation within the deduplicating data system by storing the second instance of the data segment within the deduplicating data system comprises storing the second instance of the data segment within a second container within the deduplicating data system that is separate and distinct from the first container.

4. The computer-implemented method of claim 1 , wherein preventing storage-space fragmentation within the deduplicating data system by storing the second instance of the data segment within the deduplicating data system comprises storing the second instance of the data segment within a container within the deduplicating data system that is separate and distinct from the container within the deduplicating data system within which the first instance of the data segment is stored.

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

determining whether any data objects within the deduplicating data system reference the first instance of the data segment;

deleting the first instance of the data segment based at least in part on determining that no data objects within the deduplicating data system reference the first instance of the data segment.

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

detecting that the first instance of the data segment has become corrupt;

using the second instance of the data segment to repair the first instance of the data segment.

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

detecting that the second instance of the data segment has become corrupt;

using the first instance of the data segment to repair the second instance of the data segment.

8. A system for managing references in deduplicating data systems, the system comprising:

an identifying module that identifies:

a first instance of a data segment stored within a deduplicating data system that reduces redundant data storage by storing at least two data objects such that each of the two data objects references the first instance of the data segment;

an additional data object to be stored by the deduplicating data system, wherein the additional data object comprises the data segment;

a determining module that determines that an age limit of the first instance of the data segment has been reached, wherein the age limit of the first instance of the data segment:

limits the amount of time during which the first instance of the data segment is available to be referenced; and

indicates an age of the first instance of the data segment after which the first instance of the data segment cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

a storing module that prevents storage-space fragmentation within the deduplicating data system by storing, based at least in part on determining that the age limit of the first instance of the data segment has been reached, a second instance of the data segment within the deduplicating data system that is referenced by the additional data object while also retaining the first instance of the data segment within the deduplicating data system;

at least one processor that executes the identifying module, the determining module, and the storing module.

9. The system of claim 8 , wherein:

the first instance of the data segment is stored within a first container that is stored within the deduplicating data system;

the first container also stores a plurality of additional data segments;

the age limit of the first instance of the data segment comprises an age limit of the first container that indicates an age of the first container after which data segments stored within the first container cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

the storing module stores the second instance of the data segment within the deduplicating data system by storing the second instance of the data segment within a second container within the deduplicating data system that is separate and distinct from the first container.

10. The system of claim 8 , wherein:

the first instance of the data segment is stored within a first container that is stored within the deduplicating data system;

the first container also stores a plurality of additional data segments;

the age limit of the first instance of the data segment comprises an age limit of the first container that indicates an age of the first container after which the first container cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

the storing module stores the second instance of the data segment within the deduplicating data system by storing the second instance of the data segment within a second container within the deduplicating data system that is separate and distinct from the first container.

11. The system of claim 8 , wherein the storing module stores the second instance of the data segment within the deduplicating data system by storing the second instance of the data segment within a container within the deduplicating data system that is separate and distinct from the container within the deduplicating data system within which the first instance of the data segment is stored.

12. The system of claim 8 , wherein the storing module further:

determines whether any data objects within the deduplicating data system reference the first instance of the data segment;

deletes the first instance of the data segment based at least in part on determining that no data objects within the deduplicating data system reference the first instance of the data segment.

13. The system of claim 8 , further comprising a repairing module that:

detects that the first instance of the data segment has become corrupt;

uses the second instance of the data segment to repair the first instance of the data segment.

14. The system of claim 8 , further comprising a repairing module that:

detects that the second instance of the data segment has become corrupt;

uses the first instance of the data segment to repair the second instance of the data segment.

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

identify a first instance of a data segment stored within a deduplicating data system that reduces redundant data storage by storing at least two data objects such that each of the two data objects references the first instance of the data segment;

identify an additional data object to be stored by the deduplicating data system, wherein the additional data object comprises the data segment;

determine that an age limit of the first instance of the data segment has been reached, wherein the age limit of the first instance of the data segment:

limits the amount of time during which the first instance of the data segment is available to be referenced; and

indicates an age of the first instance of the data segment after which the first instance of the data segment cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

prevent storage-space fragmentation within the deduplicating data system by causing the computing device to store, based at least in part on determining that the age limit of the first instance of the data segment has been reached, a second instance of the data segment within the deduplicating data system that is referenced by the additional data object while also retaining the first instance of the data segment within the deduplicating data system.

16. The non-transitory computer-readable medium of claim 15 , wherein:

the first instance of the data segment is stored within a first container that is stored within the deduplicating data system;

the first container also stores a plurality of additional data segments;

the age limit of the first instance of the data segment comprises an age limit of the first container that indicates an age of the first container after which data segments stored within the first container cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

the one or more computer-executable instructions cause the computing device to store the second instance of the data segment within the deduplicating data system by causing the computing device to store the second instance of the data segment within a second container within the deduplicating data system that is separate and distinct from the first container.

17. The non-transitory computer-readable medium of claim 15 , wherein:

the first instance of the data segment is stored within a first container that is stored within the deduplicating data system;

the first container also stores a plurality of additional data segments;

the age limit of the first instance of the data segment comprises an age limit of the first container that indicates an age of the first container after which the first container cannot be referenced by any additional data objects that are later stored to the deduplicating data system;

the one or more computer-executable instructions cause the computing device to store the second instance of the data segment within the deduplicating data system by causing the computing device to store the second instance of the data segment within a second container within the deduplicating data system that is separate and distinct from the first container.

18. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-executable instructions cause the computing device to store the second instance of the data segment within the deduplicating data system by causing the computing device to store the second instance of the data segment within a container within the deduplicating data system that is separate and distinct from the container within the deduplicating data system within which the first instance of the data segment is stored.

19. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-executable instructions further cause the computing device to:

determine whether any data objects within the deduplicating data system reference the first instance of the data segment;

delete the first instance of the data segment based at least in part on determining that no data objects within the deduplicating data system reference the first instance of the data segment.

20. The non-transitory computer-readable medium of claim 15 , wherein the one or more computer-executable instructions further cause the computing device to:

detect that the first instance of the data segment has become corrupt;

use the second instance of the data segment to repair the first instance of the data segment.

Assignments (14)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2026
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 075728/0466 →
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 11, 2013
From: BHATT, NEEL; GIPP, STEPHAN
To: SYMANTEC CORPORATION
Reel/Frame 030588/0311 →