IP Library Granted Patent US 12675366
Granted Patent B2
US 12675366 · App. 18/808,433 · Granted Jul 7, 2026

Recovering data from de-sequenced encoded data slices

Inventors: S. Christopher Gladwin (Chicago, IL); Chuck Wilson Templeton (Chicago, IL); Jason K. Resch (Warwick, RI); Gary W. Grube (Barrington Hills, IL)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/0619G06F3/0647G06F3/067G06F21/72G06F21/80G06F21/85H04L9/3242H04L67/1097H04N21/222H04N21/2347H04N21/8456H04W12/033G06F11/1008G06F2211/1028G06F2221/2107H04L65/764H04W12/02
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 12675366
App. No.
18/808,433
Granted
Jul 7, 2026
Kind
B2
Abstract

A method for execution by one or more computing devices of a storage network, the method includes de-selecting a sequence of input encoded data slices based on de-selection information to produce deselected encoded data slices of a set of encoded data slices, where the input encoded data slices include a set of encoded data slices interspersed with a set of auxiliary data slices. The method further includes error decoding at least a decode threshold number of encoded data slices of the deselected encoded data slices in accordance with error decoding parameters to reproduce a data segment. The method further includes outputting the data segment to a requesting computing device of the storage network.

Claims (68)

1 . A method for execution by one or more computing devices of a storage network, the method comprises:

de-selecting a sequence of input encoded data slices based on de-selection information to produce deselected encoded data slices of a set of encoded data slices, wherein the input encoded data slices include the set of encoded data slices interspersed with a set of auxiliary data slices;

de-sequencing a random sequence of the deselected encoded data slices to produce an ordered sequence of at least a decode threshold number of encoded data slices;

error decoding the ordered sequence of the at least the decode threshold number of encoded data slices of the deselected encoded data slices in accordance with error decoding parameters to reproduce a data segment; and

outputting the data segment to a requesting computing device of the storage network.

2 . The method of claim 1 further comprises:

obtaining the input encoded data slices from memory of the storage network.

3 . The method of claim 1 further comprises:

error encoding a data segment into the set of encoded data slices in accordance with error coding parameters.

4 . The method of claim 1 further comprises:

error encoding auxiliary data into the set of auxiliary data slices in accordance with auxiliary encoding parameters.

5 . The method of claim 1 further comprises:

de-selecting the sequence of input encoded data slices based on the de-selection information to produce the set of auxiliary data slices; and

error decoding the auxiliary data slices in accordance with auxiliary decoding parameters to reproduce the auxiliary data.

6 . The method of claim 5 , wherein the auxiliary decoding parameters are the same as the error decoding parameters.

7 . The method of claim 3 further comprises:

determining the deselected encoded data slices are in a random sequence based on the auxiliary data;

wherein the auxiliary data comprises identity of the random sequence.

8 . The method of claim 3 further comprises:

determining the data segment is an encrypted data segment based on the auxiliary data; and

decrypting the encrypted data segment utilizing a decryption key to produce the data segment, wherein the auxiliary data includes an identity of the decryption key.

9 . The method of claim 1 further comprises:

obtaining operational parameters for the input encoded data slices; and

determining the error decoding parameters for the error decoding the at least the decode threshold number of encoded data slices based on the operational parameters.

10 . The method of claim 1 further comprises:

obtaining the de-selection information by performing a lookup.

11 . The method of claim 1 , wherein the de-selection information includes an identifier of a de-selection algorithm.

12 . The method of claim 1 , wherein the set of auxiliary data slices, when reconstructed as auxiliary data, comprises at least one of:

null data;

authentication information;

a next pseudo random output sequencing order;

a pseudo random output sequencing order identifier;

a next outputting threshold;

a random number generator output;

an encryption key;

a starting point for the pseudo random output sequencing order;

a device identifier;

a data identifier;

a data type;

a data size indicator;

a priority indicator;

a security indicator; or

a performance indicator.

13 . A computing device of a storage network, the computing device comprises:

memory;

an interface; and

at least one processing module operably coupled to the memory and the interface,

wherein the processing module is operable to:

de-select a sequence of input encoded data slices based on de-selection information to produce deselected encoded data slices of a set of encoded data slices, wherein the input encoded data slices include the set of encoded data slices interspersed with a set of auxiliary data slices;

de-sequence a random sequence of the deselected encoded data slices to produce an ordered sequence of at least a decode threshold number of encoded data slices;

error decode the ordered sequence of the at least the decode threshold number of encoded data slices of the deselected encoded data slices in accordance with error decoding parameters to reproduce a data segment; and

outputting the data segment to a requesting computing device of the storage network.

14 . The computing device of claim 13 further comprises:

obtaining the input encoded data slices from memory of the storage network.

15 . The computing device of claim 13 further comprises:

error encoding a data segment into the set of encoded data slices in accordance with error coding parameters.

16 . The computing device of claim 13 further comprises:

error encoding auxiliary data into the set of auxiliary data slices in accordance with auxiliary encoding parameters.

17 . The computing device of claim 16 further comprises:

de-selecting the sequence of input encoded data slices based on the de-selection information to produce the set of auxiliary data slices; and

error decoding the auxiliary data slices in accordance with auxiliary decoding parameters to reproduce the auxiliary data.

18 . The computing device of claim 17 , wherein the auxiliary decoding parameters are the same as the error decoding parameters.

19 . The computing device of claim 16 further comprises:

determining the deselected encoded data slices are in a random sequence based on the auxiliary data;

wherein the auxiliary data comprises identity of the random sequence.

20 . The computing device of claim 16 further comprises:

determining the data segment is an encrypted data segment based on the auxiliary data; and

decrypting the encrypted data segment utilizing a decryption key to produce the data segment, wherein the auxiliary data includes an identity of the decryption key.