IP Library Granted Patent US 10,318,389
Granted Patent B2
US 10,318,389 · App. 15/211,208 · Granted Jun 11, 2019

Joint de-duplication-erasure coded distributed storage

Inventors: Suayb S. Arslan (Irvine, CA); Turguy Goker (Irvine, CA); Roderick B. Wideman (Shakopee, MN)
Assignee: Quantum Corporation
G06F11/1453H03M13/033H03M13/1102H03M13/1177H03M13/356H03M13/3761G06F2201/84
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,318,389
App. No.
15/211,208
Granted
Jun 11, 2019
Kind
B2
Abstract

Methods and apparatus deduplicate and erasure code a message in a data storage system. One example apparatus includes a first chunking circuit that generates a set of data chunks from a message, an outer precoding circuit that generates a set of precoded data chunks and a set of parity symbols from the set of data chunks, a second chunking circuit that generates a set of chunked parity symbols from the set of parity symbols, a deduplication circuit that generates a set of deduplicated data chunks by deduplicating the set of precoded chunks or the set of chunked parity symbols, an unequal error protection (UEP) circuit that generates an encoded message from the set of deduplicated data chunks, and a storage circuit that controls the data storage system to store the set of deduplicated data chunks, the set of parity symbols, or the encoded message.

Claims (20)

1. A non-transitory computer-readable storage device storing computer executable instructions that when executed by a computer control the computer to perform a method for deduplicating and erasure coding a message, the method comprising: accessing the message, generating a set of message chunks by chunking the message using a first chunking approach; generating a set of outer-precoded parity symbols and a set of outer-precoded data symbols from the set of message chunks using an outer precode, where the outer precode is a low density parity check (LDPC) precode that uses an LDPC parity check matrix, where the LDPC parity check matrix has a column weight and a row weight; selectively adapting the LDPC parity check matrix by: computing a set of chunk statistics associated with a first set of erasure codes; generating a worst-case (WC) symbol characterization for a member of the first set of erasure codes based, at least in part, on a WC average number of symbol erasures or a WC average number of symbol errors; computing an average number of symbol errors for the first set of erasure codes based, at least in part, on a set of deduplication parameters, the set of chunk statistics, and the worst-case symbol characterization; choosing a column weight or a row weight such that a failure probability Pf is less than a decoding threshold; upon determining that there has been a change in a chunk pool: generating a new LDPC parity check matrix based, at least in part, on the column weight and the row weight; and replacing the LDPC parity check matrix with the new LDPC parity check matrix; storing the set of outer-precoded parity symbols in a data storage system; generating a set of unique data symbols by deduplicating the set of outer-precoded data symbols based, at least in part, on a chunk identification (ID) table, where the chunk ID table stores a unique chunk ID associated with a unique data symbol stored in the data storage system, a chunk size associated with the unique data symbol, or a chunk reference count associated with the unique chunk ID, where the chunk ID table is stored in a data storage device with a faster access time than the data storage system; storing a copy of the set of unique data symbols in the data storage system; generating a set of inner-precoded data symbols from the set of unique data symbols using an inner-precode; generating the first set of erasure codes from the set of inner-precoded data symbols using an unequal error protection (UEP) rateless Luby transform (LT) code based, at least in part, on the chunk ID table; and storing the first set of erasure codes in the data storage system.

2. The non-transitory computer-readable storage device of claim 1 , where the unique chunk ID is generated using a weak hash function.

3. The non-transitory computer-readable storage device of claim 1 , where the unique chunk ID is a 16 bit cyclic redundancy check (CRC).

4. The non-transitory computer-readable storage device of claim 1 , where the set of outer-precoded parity symbols comprises a subset of outer-precoded parity symbols that is distinct from the set of outer-precoded data symbols.

5. The non-transitory computer-readable storage device of claim 1 , where generating the first set of erasure codes from the set of inner-precoded data symbols using the UEP LT code comprises generating a concatenated subset of inner-precoded data symbols by concatenating a subset of the set of inner-precoded data symbols, where a size of the subset of the set of inner-precoded data symbols is based, at least in part, on a data protection policy.

6. The non-transitory computer-readable storage device of claim 5 , where generating the first set of erasure codes from the set of inner-precoded data symbols using the UEP LT code includes assigning a protection level to a member of the first set of erasure codes, where the protection level is based on a chunk size or a chunk reference count stored in the chunk ID table.

7. The non-transitory computer-readable storage device of claim 1 , where the column weight is three and the row weight is 47.

8. The non-transitory computer-readable storage device of claim 1 , the method further comprising:

generating a set of chunked outer-precoded parity symbols by chunking the set of outer-precoded parity symbols using a second chunking approach;

generating a set of unique parity symbols by deduplicating the set of chunked outer-precoded parity symbols based, at least in part, on the chunk ID table; and

storing the set of unique parity symbols in the data storage system.

9. The non-transitory computer-readable storage device of claim 8 , the method further comprising:

generating a second set of erasure codes from the set of unique parity symbols using the UEP LT code based, at least in part, on the chunk ID table; and

storing the second set of erasure codes in the data storage system.

10. The non-transitory computer-readable storage device of claim 9 , the method further comprising storing the copy of the set of unique data symbols, the first set of erasure codes, the set of unique parity symbols, or the second set of erasure codes, in a buffer.

11. The non-transitory computer-readable storage device of claim 8 , where the second chunking approach is different than the first chunking approach.

12. The non-transitory computer-readable storage device of claim 1 , where the outer precode comprises a cyclic redundancy check (CRC) code.

13. The non-transitory computer-readable storage device of claim 1 , the method further comprising generating a reconstructed message by decoding the first set of erasure codes.

14. The non-transitory computer-readable storage device of claim 13 , where generating the reconstructed message includes performing a CRC on a decoded member of the first set of erasure codes.

15. The non-transitory computer-readable storage device of claim 1 , where the first chunking approach is a variable length chunking approach, or a two-thresholds two divisors chunking approach.

Assignments (12)
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 INTELLECTUAL PROPERTY SECURITY AGREEMENT AT REEL/FRAME NO. 40473/0378 Recorded Oct 8, 2025
From: PNC BANK, NATIONAL ASSOCIATION, AS AGENT
To: QUANTUM CORPORATION
Reel/Frame 073061/0454 →
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 →
SUPPLEMENT TO INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jun 22, 2023
From: QUANTUM CORPORATION; QUANTUM LTO HOLDINGS, LLC
To: BLUE TORCH FINANCE, LLC
Reel/Frame 064069/0563 →
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 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 047988/0642 →
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 Oct 25, 2016
From: QUANTUM CORPORATION
To: PNC BANK, NATIONAL ASSOCIATION
Reel/Frame 040473/0378 →
SECURITY INTEREST Recorded Oct 21, 2016
From: QUANTUM CORPORATION
To: TCW ASSET MANAGEMENT COMPANY LLC, AS AGENT
Reel/Frame 040451/0183 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2016
From: ARSLAN, SUAYB S.; GOKER, TURGUY; WIDEMAN, RODERICK B.
To: QUANTUM CORPORATION
Reel/Frame 039394/0867 →
Continuity (1)
Related Publication 20180018235A1 · Jan 18, 2018
Cited By (6)
US 12,386,542 US 12,413,243 US 12,430,056 US 12,474,852 US 12,498,869 US 12,687,967