IP Library Granted Patent US 8,924,366
Granted Patent B2
US 8,924,366 · App. 13/235,277 · Granted Dec 30, 2014

Data storage deduplication systems and methods

Inventor: Graham Bromley (Dublin, CA)
Assignee: Symantec Corporation
G06F17/30156G06F3/0641
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 8,924,366
App. No.
13/235,277
Granted
Dec 30, 2014
Kind
B2
Abstract

Storage systems and methods are presented. In one embodiment, a variable length segment storage method comprises: receiving a data stream; performing a tailored segment process on the data stream, wherein at least one of a plurality of tailored segments include corresponding data of at least one of a plurality of variable length segments and alignment padding to align with boundaries of a fixed length de-duplication scheme; performing a de-duplication process on the plurality of tailored segments; and storing information corresponding to the result of the de-duplication process. In one embodiment, the tailored segment process includes adjusting the alignment padding of the at least one of a plurality of tailored segments, wherein an adjustment in the alignment padding of the at least one of a plurality of tailored segments corresponds to a modification in the at least one of the plurality of variable length segments.

Claims (57)

1. A variable length segment storage method comprising:

intercepting, by a filter driver interposed between a data source and a third-party fixed length deduplication system, a data stream in transit from the data source to the third-party fixed length deduplication system for storage in the third-party fixed length deduplication system;

segmenting, by the filter driver, the data stream into a plurality of variable length segments;

performing, by the filter driver, a tailored segment process on each variable length segment of the plurality of variable length segments to create a corresponding tailored segment of a plurality of tailored segments by extending the each variable length segment with at least one bit of alignment padding to align with boundaries of a fixed length deduplication scheme; and

sending, by the filter driver, the plurality of tailored segments as a tailored data stream to the third-party fixed length deduplication system, wherein the third-party fixed length deduplication system is configured to perform a fixed length deduplication process associated with the fixed length deduplication scheme on the plurality of tailored segments and store deduplicated tailored segments corresponding to the result of the deduplication process, without any information about the filter driver and each amount of alignment padding of each tailored segment in the plurality of tailored segments.

2. The variable length segment storage method of claim 1 wherein the tailored segment process includes adjusting, by the filter driver, the alignment padding of the at least one of the plurality of tailored segments, wherein an adjustment in the alignment padding of the at least one of the plurality of tailored segments corresponds to a modification in the at least one of the plurality of variable length segments.

3. The variable length segment storage method of claim 1 wherein the tailored segment process includes:

intercepting, by a filter driver, a second data stream;

determining, by the filter driver, corresponding variable length data in at least one of the plurality of tailored segments is changed from the data stream previously stored by the fixed length deduplication system;

deleting, by the filter driver, a first portion of the padding from the at least one of the corresponding plurality of tailored segments, a size of the first portion of padding equal to a size of data added by the change in the data in the at least one of the plurality of variable length segments; and

adding, by the filter driver, a second portion of padding to the at least one of the corresponding plurality of tailored segments, a size of the second portion of padding equal to a size of data deleted by the change in the data in the at least one of the plurality of variable length segments.

4. The variable length segment storage method of claim 1 further comprising:

performing, by the filter driver, a variable length segmenting association process on the data stream;

performing, by the filter driver, a padding process on the data stream; and

creating, by the filter driver, a map object including a segment descriptor for each tailored segment associated with the data stream.

5. The variable length segment storage method of claim 1 further comprising compressing, by the filter driver, contents of the tailored segments.

6. The variable length segment storage method of claim 1 wherein anchor points are associated, by the filter driver, with the data of each respective one of the plurality of the variable length segments and each size of each of the plurality of variable length segments size is bounded, by the filter driver, within a range.

7. A non-transitory computer readable storage medium having stored thereon, computer executable instructions that when executed by a computer system cause the computer system to perform a method comprising:

intercepting, by a filter driver interposed between a data source and a fixed length deduplication system, a data stream in transit from the data source to the fixed length deduplication system for storage in the fixed length deduplication system;

segmenting, by the filter driver, the data stream into a plurality of variable length segments;

performing, by the filter driver, a padding adjustment process on the plurality of variable length segments to create a corresponding plurality of tailored segments, wherein at least one of a plurality of tailored segments include corresponding data of at least one of a plurality of variable length segments and alignment padding to align with boundaries of a fixed length deduplication scheme, and wherein each tailored segment of the plurality of tailored segments aligns with the boundaries of the fixed length deduplication scheme; and

sending, by the filter driver, the corresponding plurality of tailored segments as a tailored data stream to the fixed length deduplication system, wherein the fixed length deduplication system is configured to perform a fixed length deduplication process associated with the fixed length deduplication scheme on the plurality of tailored segments and store deduplicated tailored segments corresponding to the result of the deduplication process.

8. The non-transitory computer readable storage medium of claim 7 wherein the tailored segment process includes adjusting the alignment padding of the at least one of the plurality of tailored segments, wherein an adjustment in the alignment padding of the at least one of the plurality of tailored segments corresponds to a modification in the at least one of the plurality of variable length segments.

9. The non-transitory computer readable storage medium of claim 7 wherein the tailored segment process includes:

intercepting, by the filter driver, a second data stream;

determining, by the filter driver, corresponding variable length data in at least one of the plurality of tailored segments is changed from the data stream previously stored by the third-party fixed length deduplication system;

deleting, by the filter driver, a first portion of the padding from the at least one of the corresponding plurality of tailored segments, a size of the first portion of padding equal to a size of data added by the change in the data in the at least one of the plurality of variable length segments; and

adding, by the filter driver, a second portion of padding to the at least one of the corresponding plurality of tailored segments, a size of the second portion of padding equal to a size of data deleted by the change in the data in the at least one of the plurality of variable length segments.

10. The non-transitory computer readable storage medium of claim 7 further comprising:

performing, by the filter driver, a variable length segmenting association process on the data stream;

performing, by the filter driver, a padding process on the data stream; and

creating, by the filter driver, a map object including a segment descriptor for each tailored segment associated with the data stream.

11. The non-transitory computer readable storage medium of claim 7 further comprising compressing, via the filter driver, contents of the tailored segments.

12. The non-transitory computer readable storage medium of claim 7 wherein anchor points are associated, by the filter driver, with the data of each respective one of the plurality of the variable length segments and size of each of the plurality of variable length segment size is bounded, by the filter driver, within a range.

13. A computer system comprising:

a processor coupled to at least one non-transitory computer readable storage medium and executing computer readable code which causes the computer system to perform operations including:

intercepting, by a filter driver interposed between a data source and a fixed length deduplication system, a data stream in transit from the data source to the fixed length deduplication system for storage in the fixed length deduplication system;

segmenting, by the filter driver, the data stream into a plurality of variable length segments;

performing, by the filter driver, a padding adjustment process on the plurality of variable length segments to create a corresponding plurality of tailored segments, wherein at least one of a plurality of tailored segments include corresponding data of at least one of a plurality of variable length segments and alignment padding to align with boundaries of a fixed length deduplication scheme, and wherein each tailored segment of the plurality of tailored segments aligns with the boundaries of the fixed length deduplication scheme;

sending, by the filter driver, the plurality of tailored segments as a tailored data stream to the fixed length deduplication system, wherein the fixed length deduplication system is configured to perform a fixed length deduplication process associated with the fixed length deduplication scheme on the plurality of tailored segments and store deduplicated tailored segments corresponding to the result of the deduplication process, without any information about the filter driver and each amount of alignment padding of each tailored segment in the plurality of tailored segments.

14. The computer system of claim 13 wherein the tailored segment process includes adjusting, by the filter driver, the alignment padding of the at least one of the plurality of least one of the plurality of tailored segments corresponds to a modification in the at least one of the plurality of variable length segments.

15. The computer system of claim 13 wherein the tailored segment process includes:

intercepting, by a filter driver, a second data stream;

determining, by the filter driver, corresponding variable length data in at least one of the plurality of tailored segments is changed from the data stream previously stored by the fixed length deduplication system;

deleting, by the filter driver, a first portion of the padding from the at least one of the corresponding plurality of tailored segments, a size of the first portion of padding equal to a size of data added by the change in the data in the at least one of the plurality of variable length segments; and

adding, by the filter driver, a second portion of padding to the at least one of the corresponding plurality of tailored segments, a size of the second portion of padding equal to a size of data deleted by the change in the data in the at least one of the plurality of variable length segments.

16. The computer system of claim 13 further comprising:

performing, by the filter driver, a variable length segmenting association process on the data stream;

performing, by the filter driver, a padding process on the data stream; and

creating, by the filter driver, a map object including a segment descriptor for each tailored segment associated with the data stream.

17. The computer system of claim 13 wherein anchor points are associated, by the filter driver, with the data of each respective one of the plurality of the variable length segments and each size of each of the plurality of variable length segments size is bounded, by the filter driver, within a range.

18. A deduplicated storage method comprising:

intercepting, by a filter driver interposed between a data source and a fixed length deduplication system, a data stream in transit from the data source to the fixed length deduplication system for storage in the fixed length deduplication system;

identifying, by the filter driver, a fixed segment length of the deduplication system;

applying, by the filter driver, a variable length segment process to the data stream to identify a plurality of variably-spaced anchor points in the data stream;

modifying the data stream by inserting, by the filter driver, at least one padding bit at each anchor point of the plurality of variably-spaced anchor points so that a distance between two consecutive anchor points equals an integer multiple of the fixed length segment length; and

sending, by the filter driver, the modified data stream to the fixed length deduplication system, wherein the fixed length deduplication system stores deduplicated fixed length segments of the modified data stream, without any information about the filter driver and each position of each anchor bit of the plurality of anchor bits.

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 AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
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 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2011
From: BROMLEY, GRAHAM
To: SYMANTEC CORPORATION
Reel/Frame 026923/0696 →
Continuity (1)
Related Publication 20130073527A1 · Mar 21, 2013