IP Library Granted Patent US 10,191,678
Granted Patent B1
US 10,191,678 · App. 15/499,445 · Granted Jan 29, 2019

System and method for data re-protection with erasure coding

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,191,678
App. No.
15/499,445
Granted
Jan 29, 2019
Kind
B1
Abstract

The disclosure relates data protection management (e.g. data re-protection) for distributed storage systems. Specifically, the systems (and methods) of the disclosure implement erasure coding to protect replicated data efficiently while reducing the storage capacity overhead. Traditional approaches for data re-protection that implement erasure coding often require performing a complete re-encoding to reflect changes in data (e.g. a removal of data). The disclosure provides an improved mechanism for data re-protection by implementing an efficient re-encoding (or un-encoding) process that reduces the requirements for data reads and operations, and thus, reduces the resource requirements for data re-protection.

Claims (47)

1. A computer-implemented method to provide data re-protection, comprising:

encoding data using an erasure coding technique, wherein the encoding includes dividing the data into k data fragments (D), and

creating, from the data fragments, m redundant coding fragments (C) using a coding matrix, wherein the redundant coding fragments allow for recovery of one or more of the data fragments;

storing the data fragments and redundant coding fragments across a set of storage nodes of a distributed data storage system;

identifying a data fragment for removal from the set of storage nodes; and

performing a re-encoding to reflect the removal of the identified data fragment, wherein the re-encoding includes for each of the redundant coding fragments,

performing a calculation to obtain an updated coding fragment (C′), wherein the calculation is based on an operation performed using at least a portion of the coding matrix and the identified data fragment.

2. The method of claim 1 , wherein re-encoding the one or more of the redundant coding fragments includes accessing at most m+1 fragments, wherein m is the number of coding fragments used for encoding the data.

3. The method of claim 1 , wherein for each of the redundant coding fragments, the calculation to obtain the updated coding fragment is based on an operation performed using a coefficient (X) of the coding matrix and the identified data fragment, wherein the coefficient corresponds to the identified data fragment to be removed.

4. The method of claim 1 , wherein for each of the redundant coding fragments, the calculation to obtain the updated coding fragment is a formula comprising:

C′ i =C i −X i,j *D j , wherein X i,j is a coefficient of the coding matrix, C i is an index of the redundant coding fragment to be updated, and D j is an index of the identified data fragment to be removed.

5. The method of claim 1 , creating m redundant coding fragments includes creating a matrix-vector product from a vector including the k data fragments and a distribution matrix of (k+m)×k size, wherein the first k rows of the distribution matrix compile a k×k identity matrix and the bottom m rows of the distribution matrix form the coding matrix.

6. The method of claim 1 , further comprising reclaiming a storage capacity of the identified data fragment by performing the removal the data fragment from the distributed data storage system.

7. The method of claim 1 , wherein the data fragment to be removed is identified based on a garbage collection process.

8. A data storage system, comprising:

a memory storing instructions; and

one or more processors coupled to the memory to execute the instructions from the memory, the one or more processors being configured to perform operations, the operations comprising:

encoding data using an erasure coding technique, wherein the encoding includes

dividing the data into k data fragments (D), and

creating, from the data fragments, m redundant coding fragments (C) using a coding matrix, wherein the redundant coding fragments allow for recovery of one or more of the data fragments;

storing the data fragments and redundant coding fragments across a set of storage nodes of a distributed data storage system;

identifying a data fragment for removal from the set of storage nodes; and

performing a re-encoding to reflect the removal of the identified data fragment, wherein

the re-encoding includes for each of the redundant coding fragments,

performing a calculation to obtain an updated coding fragment (C′), wherein the calculation is based on an operation performed using at least a portion of the coding matrix and the identified data fragment.

9. The system of claim 8 , wherein re-encoding the one or more of the redundant coding fragments includes accessing at most m+1 fragments, wherein m is the number of coding fragments used for encoding the data.

10. The system of claim 8 , wherein for each of the redundant coding fragments, the calculation to obtain the updated coding fragment is based on an operation performed using a coefficient (X) of the coding matrix and the identified data fragment, wherein the coefficient corresponds to the identified data fragment to be removed.

11. The system of claim 8 , wherein for each of the redundant coding fragments, the calculation to obtain the updated coding fragment is a formula comprising:

C′ i =C i −X i,j *D j , wherein X i,j is a coefficient of the coding matrix, C i is an index of the redundant coding fragment to be updated, and D j is an index of the identified data fragment to be removed.

12. The system of claim 8 , creating m redundant coding fragments includes creating a matrix-vector product from a vector including the k data fragments and a distribution matrix of (k+m)×k size, wherein the first k rows of the distribution matrix compile a k×k identity matrix and the bottom m rows of the distribution matrix form the coding matrix.

13. The system of claim 8 , further comprising reclaiming a storage capacity of the identified data fragment by performing the removal the data fragment from the distributed data storage system.

14. The method of claim 1 , wherein the data fragment to be removed is identified based on a garbage collection process.

15. A non-transitory computer-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations in a data storage system, the operations comprising:

encoding data using an erasure coding technique, wherein the encoding includes

dividing the data into k data fragments (D), and

creating, from the data fragments, m redundant coding fragments (C) using a coding matrix, wherein the redundant coding fragments allow for recovery of one or more of the data fragments;

storing the data fragments and redundant coding fragments across a set of storage nodes of a distributed data storage system;

identifying a data fragment for removal from the set of storage nodes; and

performing a re-encoding to reflect the removal of the identified data fragment, wherein

the re-encoding includes for each of the redundant coding fragments,

performing a calculation to obtain an updated coding fragment (C′), wherein the calculation is based on an operation performed using at least a portion of the coding matrix and the identified data fragment.

16. The medium of claim 15 , wherein re-encoding the one or more of the redundant coding fragments includes accessing at most m+1 fragments, wherein m is the number of coding fragments used for encoding the data.

17. The medium of claim 15 , wherein for each of the redundant coding fragments, the calculation to obtain the updated coding fragment is based on an operation performed using a coefficient (X) of the coding matrix and the identified data fragment, wherein the coefficient corresponds to the identified data fragment to be removed.

18. The medium of claim 15 , wherein for each of the redundant coding fragments, the calculation to obtain the updated coding fragment is a formula comprising:

C′ i =C i −X i,j *D j , wherein X i,j is a coefficient of the coding matrix, C i is an index of the redundant coding fragment to be updated, and D j is an index of the identified data fragment to be removed.

19. The medium of claim 15 , creating m redundant coding fragments includes creating a matrix-vector product from a vector including the k data fragments and a distribution matrix of (k+m)×k size, wherein the first k rows of the distribution matrix compile a k×k identity matrix and the bottom m rows of the distribution matrix form the coding matrix.

20. The medium of claim 15 , further comprising reclaiming a storage capacity of the identified data fragment by performing the removal the data fragment from the distributed data storage system.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (042769/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2017
From: DANILOV, MIKHAIL; BUINOV, KONSTANTIN; FOMIN, ANDREY; KOYUSHEV, SERGEY; TRUSOV, MAXIM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042245/0514 →