IP Library Granted Patent US 11,281,389
Granted Patent B2
US 11,281,389 · App. 17/100,178 · Granted Mar 22, 2022

Method and system for inline deduplication using erasure coding

Inventors: Dharmesh M. Patel (Round Rock, TX); Rizwan Ali (Cedar Park, TX); Ravikanth Chaganti (Bangalore, IN)
Assignee: Dell Products L.P.
G06F3/0641G06F3/065G06F3/0608G06F3/0619G06F3/0673G06F11/1076
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 11,281,389
App. No.
17/100,178
Granted
Mar 22, 2022
Kind
B2
Abstract

A method includes obtaining a data, applying an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk, deduplicating the plurality of data chunks to obtain a plurality of deduplicated data chunks, and storing, across a plurality of nodes, the plurality of deduplicated data chunks and the at least one parity chunk.

Claims (40)

1. A method for storing data, the method comprising:

obtaining data;

applying an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk;

deduplicating the plurality of data chunks to obtain a plurality of deduplicated data chunks, wherein deduplicating the plurality of data chunks to obtain the plurality of deduplicated data chunks is performed after a parity value for the plurality of data chunks is generated by performing an erasure coding procedure; and

storing, across a plurality of nodes, the plurality of deduplicated data chunks and the at least one parity chunk.

2. The method of claim 1 , wherein the erasure coding procedure is applied by a deduplicator executing on a node in an accelerator pool, wherein the plurality of nodes is located is a non-accelerator pool, and wherein a data cluster comprises the accelerator pool and the non-accelerator pool.

3. The method of claim 1 , wherein applying the erasure coding procedure comprises:

dividing the data into data chunks;

selecting, from the data chunks, the plurality of data chunks; and

generating the at least one the parity chunk using the plurality of data chunks.

4. The method of claim 1 , wherein the at least one parity chunk comprises a P parity value.

5. The method of claim 1 , wherein the at least one parity chunk comprises a first parity chunk comprising a P parity value and a second parity chunk comprising a Q parity value.

6. The method of claim 1 , wherein each of the plurality of nodes is in a separate fault domain.

7. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for storing, the method comprising:

obtaining data;

applying an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk;

deduplicating the plurality of data chunks to obtain a plurality of deduplicated data chunks, wherein deduplicating the plurality of data chunks to obtain the plurality of deduplicated data chunks is performed after a parity value for the plurality of data chunks is generated by performing an erasure coding procedure; and

storing, across a plurality of nodes, the plurality of deduplicated data chunks and the at least one parity chunk.

8. The non-transitory computer readable medium of claim 7 , wherein the erasure coding procedure is applied by a deduplicator executing on a node in an accelerator pool, wherein the plurality of nodes is located is a non-accelerator pool, and wherein a data cluster comprises the accelerator pool and the non-accelerator pool.

9. The non-transitory computer readable medium of claim 7 , wherein applying the erasure coding procedure comprises:

dividing the data into data chunks;

selecting, from the data chunks, the plurality of data chunks; and

generating the at least one the parity chunk using the plurality of data chunks.

10. The non-transitory computer readable medium of claim 7 , wherein the at least one parity chunk comprises a P parity value.

11. The non-transitory computer readable medium of claim 7 , wherein the at least one parity chunk comprises a first parity chunk comprising a P parity value and a second parity chunk comprising a Q parity value.

12. The non-transitory computer readable medium of claim 7 , wherein each of the plurality of nodes is in a separate fault domain.

13. A data cluster, comprising:

a plurality of data nodes comprising an accelerator pool and a non-accelerator pool, wherein the accelerator pool comprises a data node, and the non-accelerator pool comprises a plurality of data nodes;

wherein the data node of the plurality of data nodes is programmed to:

obtain data;

apply an erasure coding procedure to the data to obtain a plurality of data chunks and at least one parity chunk;

deduplicate the plurality of data chunks to obtain a plurality of deduplicated data chunks, wherein deduplicating the plurality of data chunks to obtain the plurality of deduplicated data chunks is performed after a parity value for the plurality of data chunks is generated by performing an erasure coding procedure; and

store, across the plurality of nodes, the plurality of deduplicated data chunks and the at least one parity chunk.

14. The data cluster of claim 13 , wherein applying the erasure coding procedure comprises:

dividing the data into data chunks;

selecting, from the data chunks, the plurality of data chunks; and

generating the at least one the parity chunk using the plurality of data chunks.

15. The data cluster of claim 13 , wherein the at least one parity chunk comprises a P parity value.

16. The data cluster of claim 13 , wherein the at least one parity chunk comprises a first parity chunk comprising a P parity value and a second parity chunk comprising a Q parity value.

17. The data cluster of claim 13 , wherein each of the plurality of nodes is in a separate fault domain.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2021
From: PATEL, DHARMESH M.; ALI, RIZWAN; CHAGANTI, RAVIKANTH
To: DELL PRODUCTS L.P.
Reel/Frame 054794/0141 →