IP Library Granted Patent US 10,484,016
Granted Patent B2
US 10,484,016 · App. 15/602,726 · Granted Nov 19, 2019

Data deduplication with adaptive erasure code redundancy

Inventors: Roderick B. Wideman (Shakopee, MN); Suayb Sefik Arslan (Irvine, CA); Jaewook Lee (Aliso Vlejo, CA); Turguy Goker (Irvine, CA)
Assignee: Quantum Corporation
H03M13/154G06F3/064G06F3/0619G06F3/0641G06F3/0673G06F11/1076G06F11/1453G06F16/1752H03M13/373H03M13/3707H03M13/3761
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,484,016
App. No.
15/602,726
Granted
Nov 19, 2019
Kind
B2
Abstract

Example apparatus and methods combine erasure coding with data deduplication to simultaneously reduce the overall redundancy in data while increasing the redundancy of unique data. In one embodiment, an efficient representation of a data set is produced by deduplication. The efficient representation reduces duplicate data in the data set. Redundancy is then added back into the data set using erasure coding. The redundancy that is added back in adds protection to the unique data associated with the efficient representation. How much redundancy is added back in and what type of redundancy is added back in may be controlled based on an attribute (e.g., value, reference count, symbol size, number of symbols) of the unique data. Decisions concerning how much and what type of redundancy to add back in may be adapted over time based, for example, on observations of the efficiency of the overall system.

Claims (49)

1. A non-transitory computer-readable storage medium storing computer-executable instructions that when executed by a computer control the computer to perform a method, the method comprising:

generating, by a processor, a characterization of segments of a plurality of segments with failure probabilities associated with the segments that indicate a likelihood of failure of the segments;

parsing, by a processor, the plurality of segments to generate a plurality of original chunks;

deduplicating, by a processor, the plurality of original chunks to generate a plurality of unique chunks;

grouping, by a processor, the plurality of unique chunks to form grouped chunks;

encoding, by a processor, the grouped chunks to generate a desired number of erasure code symbols that satisfy the failure probabilities associated with the segments; and

selectively storing members of the desired number of erasure code symbols on a number of storage devices.

2. The non-transitory computer-readable storage medium of claim 1 , further comprising:

calculating, by a processor, attributes of unique chunks of the plurality of unique chunks based, at least in part, on the failure probabilities; and where the encoding is based, at least in part, on the attributes being constrained by the failure probabilities.

3. The non-transitory computer-readable storage medium of claim 2 , where importance is an attribute of the attributes, and where importance is calculated based on a reference count to the data in a unique chunk.

4. The non-transitory computer-readable storage medium of claim 2 , where the attributes are variable, and where the desired number of erasure code symbols changes when an attribute changes.

5. The non-transitory computer-readable storage medium of claim 2 , where the number of storage devices is based, at least in part, on the attributes of the unique chunks.

6. The non-transitory computer-readable storage medium of claim 1 , where an erasure code symbol represents a number of connections between at least one segment and an erasure code symbol.

7. The non-transitory computer-readable storage medium of claim 1 , where the encoding is based on information stored in a generator matrix, and the method further comprising:

identifying, by a processor, attributes of unique chunks of the plurality of unique chunks; and

manipulating, by a processor, the generator matrix to control, at least in part, a size or composition of an erasure code symbol of the desired number of erasure code symbols.

8. A method comprising:

generating, by a processor, a characterization of segments of a plurality of segments with failure probabilities associated with the segments that indicate a likelihood of failure of the segments;

parsing, by a processor, the plurality of segments to generate a plurality of original chunks,

deduplicating, by a processor, the plurality of original chunks to generate a plurality of unique chunks;

calculating, by a processor, attributes of unique chunks of the plurality of unique chunks based, at least in part, on the failure probabilities associated with corresponding segments;

grouping, by a processor, the plurality of unique chunks to form a grouped chunk;

encoding, by a processor, the grouped chunk to generate a desired number of erasure code symbols based, at least in part, on the attributes being constrained by the failure probabilities; and

selectively storing members of the desired number of erasure code symbols on a number of storage devices, where the number of storage devices is based, at least in part, on the attributes for the unique chunks.

9. The method of claim 8 , where the attributes include an importance of a unique chunk, a size of the unique chunk, or an age of the unique chunk.

10. The method of claim 8 , where importance is an attribute, and where importance is calculated, by a processor, based on a reference count to the data in a unique chunk.

11. The method of claim 8 , where the attributes are variable, and where the desired number of erasure code symbols changes when an attribute changes.

12. The method of claim 8 , where the desired number of erasure code symbols is greater than or equal to a minimum threshold of erasure code symbols but less than the total possible erasure codes.

13. The method of claim 12 , where the desired number of erasure code symbols, the minimum threshold of erasure code symbols, and the total possible erasure codes are directly proportional to a variation of the attributes.

14. The method of claim 8 , where the encoding is based on information stored in a generator matrix, the method further comprising:

identifying, by a processor, attributes of unique chunks of the plurality unique chunks; and

manipulating, by a processor, the generator matrix to control, at least in part, a size or composition of an erasure code symbol of the desired number of erasure code symbols.

15. An apparatus, comprising:

a number of storage devices; and

a processor configured to:

generate a characterization of segments of a plurality of segments with failure probabilities associated with the segments that indicate a likelihood of failure of segments;

parse the plurality of segments to generate a plurality of original chunks,

deduplicate the plurality of original chunks to generate a plurality of unique chunks;

calculate attributes of unique chunks of the plurality of unique chunks based, at least in part, on the failure probabilities;

group the plurality of unique chunks to form at least one grouped chunk;

encode the at least one grouped chunk to generate a desired number of erasure code symbols that satisfy the failure probabilities associated with the segments, where the encoding is based, at least in part, on the attributes being constrained by the failure probabilities; and

selectively store members of the desired number of erasure code symbols on the number of storage devices, where the number of storage devices is based, at least in part, on the attributes for the unique chunks.

16. The apparatus of claim 15 , where importance is an attribute of the attributes, and where importance is calculated based on a reference count to the data in a unique chunk.

17. The apparatus of claim 15 , where the attributes are variable, and where the desired number of erasure code symbols changes when an attribute changes.

18. The apparatus of claim 15 , where an erasure code symbol represents a number of connections between at least one segment and an erasure code symbol.

19. The apparatus of claim 15 , where the encoding is based on information stored in a generator matrix, and where the processor is further configured to:

identify attributes of unique chunks of the plurality unique chunks; and

manipulate the generator matrix to control, at least in part, a size or composition of an erasure code symbol of the desired number of erasure code symbols.

20. The apparatus of claim 19 , where a non-zero entry in the generator matrix represents a node/edge probability distribution.

Assignments (10)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 18, 2025
From: QUANTUM CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 074024/0084 →
TERMINATION AND RELEASE OF AMENDED AND RESTATED INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 48029/0525 Recorded Aug 19, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 072542/0594 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2025
From: BLUE TORCH FINANCE LLC, AS AGENT FOR THE SECURED PARTIES
To: ALTER DOMUS (US) LLC, AS AGENT FOR THE SECURED PARTIES
Reel/Frame 071019/0850 →
RELEASE OF SECURITY INTEREST Recorded Aug 10, 2021
From: U.S. BANK NATIONAL ASSOCIATION
To: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
Reel/Frame 057142/0252 →
SECURITY INTEREST Recorded Aug 5, 2021
From: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
To: BLUE TORCH FINANCE LLC, AS AGENT
Reel/Frame 057107/0001 →
SECURITY INTEREST Recorded Jan 8, 2019
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 048029/0525 →
RELEASE OF SECURITY INTEREST Recorded Dec 27, 2018
From: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 047863/0252 →
SECURITY INTEREST Recorded Dec 27, 2018
From: QUANTUM CORPORATION, AS GRANTOR; QUANTUM LTO HOLDINGS, LLC, AS GRANTOR
To: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 049153/0518 →
SECURITY INTEREST Recorded Aug 13, 2018
From: QUANTUM CORPORATION
To: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
Reel/Frame 046778/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2017
From: WIDEMAN, RODERICK B.; ARSLAN, SUAYB SEFIK; LEE, JAEWOOK; GOKER, TURGUY
To: QUANTUM CORPORATION
Reel/Frame 042479/0221 →
Continuity (3)
Continuation 15227285 · Aug 3, 2016
Continuation 14326774 · Jul 9, 2014
Related Publication 20170257119A1 · Sep 7, 2017