IP Library Granted Patent US 11,416,179
Granted Patent B1
US 11,416,179 · App. 17/115,020 · Granted Aug 16, 2022

Storage unit solicitation for encoded data slice storage

Inventors: Gary W. Grube (Barrington Hills, IL); Timothy W. Markison (Mesa, AZ)
Assignee: PURE STORAGE, INC.
G06F3/0659G06F3/0604G06F3/067G06F3/0619G06F3/0629G06F3/0683
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,416,179
App. No.
17/115,020
Granted
Aug 16, 2022
Kind
B1
Abstract

A method includes obtaining, by a computing device of a storage network, data for storage and interpreting metadata associated with the data to determine data storage requirements. The method further includes selecting a plurality of storage units of the storage network as target storage units based on the data storage requirements and a storage sequence and transmitting a solicitation message to the target storage units. The method further includes receiving favorable responses from at least some of target storage units, selecting storage units from the at least some of the target storage units to produce a set of selected storage units, determining an error coding dispersal storage function, encoding a data segment of the data in accordance with the error coding dispersal storage function to produce a plurality of encoded data slices, and outputting the plurality of encoded data slices to the set of selected storage units for storage therein.

Claims (71)

1. A method comprises:

obtaining, by a computing device of a storage network, data for storage;

interpreting, by the computing device, metadata associated with the data to determine data storage requirements;

selecting, by the computing device, a subset of storage units of a plurality of storage units of the storage network as target storage units based on the data storage requirements and a storage sequence;

transmitting, by the computing device, a solicitation message to the target storage units, wherein the solicitation message solicits the target storage units to store encoded data slices of the data, and wherein the solicitation message is not sent to storage units of the plurality of storage units that are not included in the target storage units;

receiving, by the computing device, favorable responses from at least some of target storage units;

selecting, by the computing device, storage units from the at least some of the target storage units providing a favorable response to produce a set of selected storage units;

determining, by the computing device, an error coding dispersal storage function based on an amount of storage units of the set of selected storage units and the data storage requirements;

encoding, by the computing device, a data segment of the data in accordance with the error coding dispersal storage function to produce a plurality of encoded data slices; and

outputting, by the computing device, the plurality of encoded data slices to the set of selected storage units for storage therein.

2. The method of claim 1 further comprises:

excluding, by the computing device, previously solicited storage units during a current storage sequence from being selected as target storage units.

3. The method of claim 1 , wherein the determining the error coding dispersal storage function further comprises:

establishing, by the computing device, error coding dispersal storage function parameters based on the favorable responses from the set of selected storage units, wherein the error coding dispersal storage function parameters includes at least one of:

a segmenting protocol;

a pre-slice data manipulation function;

a forward error correction encoding function;

a slicing pillar width;

a post-slice data manipulation function;

a write threshold; and

a read threshold.

4. The method of claim 1 , wherein the transmitting the solicitation message comprises one or more of:

sending, by the computing device, a solicitation broadcast message to the target storage units;

sending, by the computing device, a solicitation unicast message to each of the target storage units; and

sending, by the computing device, solicitation multicast messages to target storage unit subsets of the target storage units.

5. The method of claim 1 further comprises:

establishing, by the computing device, a slicing pillar width in accordance with the metadata;

encoding, by the computing device, the data in accordance with the error coding dispersal storage function and the slicing pillar width when a number of the favorable responses is equal to or greater than the slicing pillar width; and

when the number of the favorable responses is less than the slicing pillar width, adjusting, by the computing device, the error coding dispersal storage function.

6. The method of claim 1 , wherein the favorable responses comprises one or more of:

first storage requirements that substantially match the data storage requirements; and

second storage requirements that sufficiently encompass the data storage requirements.

7. The method of claim 1 , wherein the data storage requirements include one or more of:

a priority requirement, a security requirement, a performance requirement, a size indicator, a data type indicator, and a location requirement.

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

an interface;

memory; and

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

obtain data for storage;

interpret metadata associated with the data to determine data storage requirements;

select a subset of storage units from a plurality of storage units of the storage network as target storage units based on the data storage requirements and a storage sequence;

transmit a solicitation message to the target storage units, wherein the solicitation message solicits the target storage units to store encoded data slices of the data, and wherein the solicitation message is not sent to storage units of the plurality of storage units that are not included in the target storage units;

receive, via the interface, favorable responses from at least some of target storage units;

select storage units from the at least some of the target storage units providing a favorable response to produce a set of selected storage units;

determine an error coding dispersal storage function based on an amount of storage units of the set of selected storage units and the data storage requirements;

encode a data segment of the data in accordance with the error coding dispersal storage function to produce a plurality of encoded data slices; and

output, via the interface, the plurality of encoded data slices to the set of selected storage units for storage therein.

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

exclude previously solicited storage units during a current storage sequence from being selected as target storage units.

10. The computing device of claim 8 , wherein the processing module is further operable to determine the error coding dispersal storage function by:

establishing error coding dispersal storage function parameters based on the favorable responses from the set of selected storage units, wherein the error coding dispersal storage function parameters includes at least one of:

a segmenting protocol;

a pre-slice data manipulation function;

a forward error correction encoding function;

a slicing pillar width;

a post-slice data manipulation function;

a write threshold; and

a read threshold.

11. The computing device of claim 8 , wherein the processing module is further operable to transmit the solicitation message by one or more of:

sending, via the interface, a solicitation broadcast message to the target storage units;

sending, via the interface, a solicitation unicast message to each of the target storage units; and

sending, via the interface, solicitation multicast messages to target storage unit subsets of the target storage units.

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

establish a slicing pillar width in accordance with the metadata;

encode the data in accordance with the error coding dispersal storage function and the slicing pillar width when a number of the favorable responses is equal to or greater than the slicing pillar width; and

when the number of the favorable responses is less than the slicing pillar width, adjust the error coding dispersal storage function.

13. The computing device of claim 8 , wherein the favorable responses comprises one or more of:

first storage requirements that substantially match the data storage requirements; and

second storage requirements that sufficiently encompass the data storage requirements.

14. The computing device of claim 8 , wherein the data storage requirements include one or more of:

a priority requirement, a security requirement, a performance requirement, a size indicator, a data type indicator, and a location requirement.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2020
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 054615/0196 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2020
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 054699/0186 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 054699/0546 →
Continuity (2)
Continuation 12850606 · Aug 4, 2010
Provisional Application 61256314 · Oct 30, 2009
Cited By (2)
US 12,314,413 US 12,531,800