IP Library Granted Patent US 10,552,040
Granted Patent B2
US 10,552,040 · App. 15/695,979 · Granted Feb 4, 2020

Fixed size extents for variable size deduplication segments

Inventors: Goutham Rao (Los Altos, CA); Vinod Jayaraman (San Francisco, CA)
Assignee: QUEST SOFTWARE INC.
G06F3/0608G06F3/065G06F3/067G06F3/0619G06F3/0641G06F16/1748
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 10,552,040
App. No.
15/695,979
Granted
Feb 4, 2020
Kind
B2
Abstract

Mechanisms are provided for maintaining variable size deduplication segments using fixed size extents. Variable size segments are identified and maintained in a datastore suitcase. Duplicate segments need not be maintained redundantly but can be managed by updating reference counts associated with the segments in the datastore suitcase. Segments are maintained using fixed size extents. A minor increase in storage overhead removes the need for inefficient recompaction when a segment is removed from the datastore suitcase. Fixed size extents can be reallocated for storage of new segments.

Claims (42)

1. A method comprising:

receiving a data stream at an interface;

segmenting at least a portion of the data stream to generate a plurality of variable size segments including a first segment;

determining whether the first segment is maintained in storage;

identifying a predetermined size value for a fixed size extent;

determining a first number of fixed sized extents in the storage needed to maintain the first segment in view of the predetermined size value; and

maintaining the first segment in a plurality of fixed size extents in the storage,

wherein after the first segment is deleted, the plurality of fixed size extents in the storage used to maintain the now deleted first segment are used to maintain at least one portion of a new segment.

2. The method of claim 1 , wherein the plurality of variable size segments includes a second segment having a second segment size different from a first segment size.

3. The method of claim 1 , wherein a first reference count is associated with the first segment.

4. The method of claim 3 , wherein the first segment is deleted when the first reference count indicates that the segment is no longer mapped to any file.

5. The method of claim 1 , wherein the first segment is maintained in one or more datastore suitcases in the storage.

6. The method of claim 1 , wherein determining whether the first segment is maintained in storage includes accessing a deduplication dictionary.

7. The method of claim 6 , wherein the deduplication dictionary is accessed using a first fingerprint corresponding to the first segment.

8. The method of claim 1 , wherein the first segment is maintained in a plurality of non-contiguous fixed size extents in the storage.

9. The method of claim 8 , wherein after the first segment is deleted, the plurality of non-contiguous fixed size extents in the storage used to maintain the now deleted first segment are used to maintain portions of a plurality of new segments without having to perform recompaction.

10. A system comprising:

an interface operable to receive a data stream;

a processor operable to:

generate, from at least a portion of the data stream, a plurality of variable size segments including a first segment;

determine whether the first segment is maintained in storage;

identify a predetermined size value for a fixed size extent;

determine a first number of fixed sized extents in the storage needed to maintain the first segment in view of the predetermined size value; and

maintain the first segment in a plurality of fixed size extents in the storage,

wherein after the first segment is deleted, the plurality of fixed size extents in the storage used to maintain the now deleted first segment are used to maintain at least one portion of a new segment.

11. The system of claim 10 , wherein the plurality of variable size segments includes a second segment having a second segment size different from a first segment size.

12. The system of claim 10 , wherein a first reference count is associated with the first segment.

13. The system of claim 12 , wherein the first segment is deleted when the first reference count indicates that the segment is no longer mapped to any file.

14. The system of claim 10 , wherein the first segment is maintained in one or more datastore suitcases in the storage.

15. The system of claim 10 , wherein determining whether the first segment is maintained in storage includes accessing a deduplication dictionary.

16. The system of claim 15 , wherein the deduplication dictionary is accessed using a first fingerprint corresponding to the first segment.

17. The system of claim 10 , wherein the first segment is maintained in a plurality of non-contiguous fixed size extents in the storage.

18. The system of claim 17 , wherein after the first segment is deleted, the plurality of non-contiguous fixed size extents in the storage used to maintain the now deleted first segment are used to maintain portions of a plurality of new segments without having to perform recompaction.

19. A non-transitory computer readable storage medium comprising instructions that, when executed by a processor, cause a system to perform operations comprising:

receive a data stream at an interface;

segment at least a portion of the data stream to generate a plurality of variable size segments including a first segment;

determine whether the first segment is maintained in storage;

identify a predetermined size value for a fixed size extent;

determine a first number of fixed sized extents in the storage needed to maintain the first segment in view of the predetermined size value; and

maintain the first segment in a plurality of fixed size extents in the storage,

wherein after the first segment is deleted, the plurality of fixed size extents in the storage used to maintain the now deleted first segment are used to maintain at least one portion of a new segment.

20. The non-transitory computer readable medium of claim 19 , wherein the plurality of variable size segments includes a second segment having a second segment size different from a first segment size.

Assignments (8)
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2019
From: DELL PRODUCTS L.P.
To: DELL SOFTWARE INC.
Reel/Frame 051279/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2019
From: RAO, GOUTHAM; JAYARAMAN, VINOD
To: DELL PRODUCTS L.P.
Reel/Frame 051289/0843 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
Continuity (3)
Continuation 15018809 · Feb 8, 2016
Continuation 13415324 · Mar 8, 2012
Related Publication 20180088824A1 · Mar 29, 2018