IP Library Granted Patent US 11,394,779
Granted Patent B1
US 11,394,779 · App. 16/989,043 · Granted Jul 19, 2022

Storing all or nothing encoded data chunks in a storage network

Inventors: Jason K. Resch (Chicago, IL); Wesley B. Leggette (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L67/1097G06F11/1076H03M13/611H03M13/616H04L9/08H04L9/085H04L67/1008H04L67/322G06F3/067H03M13/1515H04L47/2475H04L67/06
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,394,779
App. No.
16/989,043
Granted
Jul 19, 2022
Kind
B1
Abstract

A method includes all-or-nothing (AONT) encoding a first data chunk of a plurality of data chunks in accordance with distributed data storage parameters to produce a first set of AONT encoded data pieces, where the distributed data storage parameters include a T number that corresponds to a minimum number AONT encoded data pieces needed to recover a data chunk of the plurality of data chunks, and where the first set of AONT encoded data pieces includes the T number of AONT encoded data pieces. The method further includes facilitating storage of the first set of AONT encoded data pieces in a set of storage units of the storage network, where the set of storage units includes the T number of storage units.

Claims (55)

1. A method for execution by a computing device of a storage network, the method comprising:

all-or-nothing (AONT) encoding a plurality of data chunks in accordance with distributed data storage parameters to produce a set of encoded data slices, wherein the distributed data storage parameters include a T number that corresponds to a minimum number of encoded data slices of the set of encoded data slices needed to recover each data chunk of the plurality of data chunks; and

facilitating storage of the set of encoded data slices in a set of storage units of the storage network such that a first data chunk of the plurality of data chunks can be reconstructed from a first section of any combination of the T number of encoded data slices of the set of encoded data slices.

2. The method of claim 1 further comprises:

dividing a data segment into the plurality of data chunks in accordance with the distributed data storage parameters.

3. The method of claim 1 further comprises:

all-or-nothing (AONT) encoding the plurality of data chunks in accordance with the distributed data storage parameters to produce a second set of encoded data slices.

4. The method of claim 3 further comprises:

all-or-nothing (AONT) encoding the plurality of data chunks in accordance with the distributed data storage parameters to produce a third set of encoded data slices.

5. The method of claim 1 , wherein the all-or-nothing encoding further comprises:

all-or-nothing encoding the plurality of data chunks to produce a plurality of sets of AONT encoded data pieces;

splitting and rearranging, the plurality of sets of AONT encoded data pieces to produce a plurality of sets of rearranged AONT encoded data pieces, wherein a number of sets of the plurality of sets of rearranged AONT encoded data pieces is at least the T number; and

error encoding the T number of sets of rearranged AONT encoded data pieces to produce the set of encoded data slices, wherein the set of encoded data slices includes the T number+an R number of encoded data slices.

6. The method of claim 5 , wherein the error encoding the T number of sets of rearranged AONT encoded data pieces comprises:

generating a data matrix from the T number of sets of rearranged AONT encoded data pieces;

matrix multiplying the data matrix with an encoded matrix to produce a coded matrix; and

partitioning the coded matrix into the set of encoded data slices.

7. The method of claim 5 , wherein the splitting and rearranging comprises:

arranging first encoded data pieces of each set of the plurality of sets of AONT encoded data pieces into a first set of the T number of sets of AONT encoded data pieces;

arranging second encoded data pieces of each set of the plurality of sets of AONT encoded data pieces into a second set of the T number of sets of AONT encoded data pieces; and

arranging third encoded data pieces of each set of the plurality of sets of AONT encoded data pieces into a third set of the T number of sets of AONT encoded data pieces.

8. The method of claim 1 , wherein the facilitating storage of the set of encoded data slices comprises:

sending the set of encoded data slices to the set of storage units for storage therein, wherein the set of storage units includes the T number+the R number of storage units.

9. The method of claim 1 further comprises:

obtaining the first section of at least the T number of encoded data slices; and

decoding the first section of at least the T number of encoded data slices to recover the first data chunk.

10. A computing device of a storage network comprises:

memory;

an interface; and

a processing module, wherein the memory and the interface are operably coupled to the processing module, wherein the processing module is operable to:

all-or-nothing (AONT) encode a plurality of data chunks in accordance with distributed data storage parameters to produce a set of encoded data slices, wherein the distributed data storage parameters include a T number that corresponds to a minimum number of encoded data slices of the set of encoded data slices needed to recover each data chunk of the plurality of data chunks; and

facilitate storage of the set of encoded data slices in a set of storage units of the storage network such that a first data chunk of the plurality of data chunks can be reconstructed from a first section of any combination of the T number of encoded data slices of the set of encoded data slices.

11. The computing device of claim 10 , wherein the processing module is further operable to:

divide a data segment into the plurality of data chunks in accordance with the distributed data storage parameters.

12. The computing device of claim 10 , wherein the processing module is further operable to:

all-or-nothing (AONT) encode the plurality of data chunks in accordance with the distributed data storage parameters to produce a second set of encoded data slices.

13. The computing device of claim 12 , wherein the processing module is further operable to:

all-or-nothing (AONT) encode the plurality of data chunks in accordance with the distributed data storage parameters to produce a third set of encoded data slices.

14. The computing device of claim 13 , wherein the processing module is further operable to perform the all-or-nothing encoding by:

all-or-nothing encoding the plurality of data chunks to produce a plurality of sets of AONT encoded data pieces;

splitting and rearranging, the plurality of sets of AONT encoded data pieces to produce a plurality of sets of rearranged AONT encoded data pieces, wherein a number of sets of the plurality of sets of rearranged AONT encoded data pieces is at least the T number; and

error encode the T number of sets of rearranged AONT encoded data pieces to produce the set of encoded data slices, wherein the set of encoded data slices includes the T number+an R number of encoded data slices.

15. The computing device of claim 14 , wherein the processing module performing the error encoding the T number of sets of rearranged AONT encoded data pieces comprises:

generating a data matrix from the T number of sets of rearranged AONT encoded data pieces;

matrix multiplying the data matrix with an encoded matrix to produce a coded matrix; and

partitioning the coded matrix into the set of encoded data slices.

16. The computing device of claim 14 , wherein the processing module performing the splitting and rearranging comprises:

arranging first encoded data pieces of each set of the first, second and third sets of AONT encoded data pieces into a first set of the T number of sets of AONT encoded data pieces;

arranging second encoded data pieces of each set of the first, second and third sets of AONT encoded data pieces into a second set of the T number of sets of AONT encoded data pieces; and

arranging third encoded data pieces of each set of the first, second and third sets of AONT encoded data pieces into a third set of the T number of sets of AONT encoded data pieces.

17. The computing device of claim 10 , wherein the processing module performing the facilitating storage of the first set of AONT encoded data pieces comprises:

sending the set of encoded data slices to the set of storage units for storage therein, wherein the set of storage units includes the T number+the R number of storage units.

18. The computing device of claim 10 , wherein the processing module is further operable to:

obtain the first section of at least the T number of encoded data slices; and

decode the first section of at least the T number of encoded data slices to recover the first data chunk.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2020
From: RESCH, JASON K.; LEGGETTE, WESLEY B.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 053452/0220 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 053452/0364 →