IP Library Patent Application 15805464
Patent Application
App. No. 15/805,464

Multiplying width and threshold for improved performance and efficiency

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 None
App. No.
15/805,464
Abstract

A method for execution by a dispersed storage network (DSN), the method begins by receiving data for storage in the DSN. The method continues by selecting a set of storage units, identifying a baseline pillar width and a baseline decode threshold, determining an estimated performance of the set of storage units, determining a parameter multiple based on the estimated performance and the baseline pillar width and the baseline decode threshold, multiplying the parameter multiple by each of the baseline pillar width and the baseline decode threshold to produce a pillar width and a decode threshold, encoding the data using a dispersed storage error coding function in accordance with the pillar width and the decode threshold to produce a plurality of sets of encoded data slices, facilitating storage of the plurality of sets of encoded data slices in the set of storage units and storing the parameter multiple.

Claims (60)

1 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving data for storage in the dispersed storage network (DSN);

selecting a set of storage units;

identifying a baseline pillar width and a baseline decode threshold;

determining an estimated performance of the set of storage units;

determining a parameter multiple based on the estimated performance and the baseline pillar width and the baseline decode threshold;

multiplying the parameter multiple by each of the baseline pillar width and the baseline decode threshold to produce a pillar width and a decode threshold respectively;

encoding the data using a dispersed storage error coding function in accordance with the pillar width and the decode threshold to produce a plurality of sets of encoded data slices;

facilitating storage of the plurality of sets of encoded data slices in the set of storage units; and

storing the parameter multiple.

2 . The method of claim 1 , wherein the receiving further includes receiving one or more of a data identifier, a data owner identifier, a requesting entity identifier, a DSN address, baseline parameters, or a data type indicator.

3 . The method of claim 1 , wherein the selecting may be based on one or more of a lookup, a data owner identifier, a vault identifier, a requesting entity identifier, or a data type indicator.

4 . The method of claim 1 , wherein the identifying is based on one or more of a lookup, a data owner identifier, a vault ID, a requesting entity ID, or a data type indicator.

5 . The method of claim 1 , wherein the determining an estimated performance includes one or more of: receiving the estimated performance, performing a lookup, initiating a query, initiating a test, accessing a historical record, or retrieving a predetermination.

6 . The method of claim 1 , wherein the determining a parameter multiple is based on optimizing expected access performance such that a decode threshold number of encoded data slices can be retrieved from selected storage units of the DSN with favorable performance.

7 . The method of claim 1 , wherein the determining a parameter multiple is based on optimizing expected access performance such that at least a write threshold number of encoded data slices can be stored to the set of storage units of the DSN with favorable performance.

8 . The method of claim 1 , wherein the facilitating includes issuing write slice requests to each storage unit of the set of storage units, where each storage unit receives a parameter multiple number of encoded data slices.

9 . The method of claim 1 , wherein the storing includes one or more of storing the parameter multiple in a local memory, a vault, and a directory, or in a hierarchical dispersed index.

10 . The method of claim 1 further comprising, for a retrieval request for the data:

reproduce the pillar width and the decode threshold based on the parameter multiple;

identify the set of storage units;

determine an estimated performance of the set of storage units;

select one or more storage units of the set of storage units based on the estimated performance, the parameter multiple, and the decode threshold;

recover a decode threshold number of encoded data slices from the selected one or more storage units; and

decode the decode threshold number of encoded data slices using the dispersed storage error coding function to reproduce the data.

11 . A method for execution by one or more processing modules of one or more computing devices of a dispersed storage network (DSN), the method comprises:

receiving a retrieval request for data;

reproducing a pillar width and a decode threshold based on a parameter multiple;

identifying a set of storage units;

determining an estimated performance of the set of storage units;

selecting one or more storage units of the set of storage units based on the estimated performance, the parameter multiple, and the decode threshold;

recovering a decode threshold number of encoded data slices from the selected one or more storage units; and

decoding the decode threshold number of encoded data slices using a dispersed storage error coding function to reproduce the data.

12 . The method of claim 11 , wherein the reproducing includes retrieving a baseline decode threshold and a baseline pillar width, recovering the parameter multiple, and multiplying the parameter multiple by the baseline decode threshold and the baseline pillar width to reproduce the decode threshold and the pillar width.

13 . The method of claim 11 , wherein the identifying the set of storage units includes any of: receive identifiers or performing a lookup based on a data identifier.

14 . The method of claim 11 , wherein the selecting one or more storage units of the set of storage units begins with best-performing storage units to retrieve a parameter multiple number of encoded data slices from each storage unit until the decode threshold number of encoded data slices can be retrieved.

15 . The method of claim 11 , wherein the recovering includes issuing read slice requests, receiving read slice responses, where read slice responses from the selected one or more storage units includes a parameter multiple number of encoded data slices.

16 . The method of claim 11 , wherein the data includes a data segment of a plurality of data segments of the data.

17 . A computing device of a group of computing devices of a dispersed storage network (DSN), the computing device comprises:

an interface;

a local memory; and

a processing module operably coupled to the interface and the local memory, wherein the processing module functions to:

receive data for storage in the dispersed storage network (DSN);

select a set of storage units;

identify a baseline pillar width and a baseline decode threshold;

determine an estimated performance of the set of storage units;

determine a parameter multiple based on the estimated performance and the baseline pillar width and the baseline decode threshold;

multiply the parameter multiple by each of the baseline pillar width and the baseline decode threshold to produce a pillar width and a decode threshold respectively;

encode the data using a dispersed storage error coding function in accordance with the pillar width and the decode threshold to produce a plurality of sets of encoded data slices;

facilitate storage of the plurality of sets of encoded data slices in the set of storage units; and

store the parameter multiple.

18 . The computing device of claim 17 , wherein the determining an estimated performance includes one or more of: receiving the estimated performance, performing a lookup, initiating a query, initiating a test, accessing a historical record, or retrieving a predetermination.

19 . The computing device of claim 17 , wherein the determining a parameter multiple is based on optimizing expected access performance such that a decode threshold number of encoded data slices can be retrieved from selected storage units of the DSN with favorable performance.

20 . The computing device of claim 17 , wherein the processing module is further configured to, for a retrieval request for the data:

reproduce the pillar width and the decode threshold based on the parameter multiple;

identify the set of storage units;

determine an estimated performance of the set of storage units;

select one or more storage units of the set of storage units based on the estimated performance, the parameter multiple, and the decode threshold;

recover a decode threshold number of encoded data slices from the selected one or more storage units; and

decode the decode threshold number of encoded data slices using the dispersed storage error coding function to reproduce the data.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE DELETE 15/174/279 AND 15/174/596 PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 49555 FRAME: 530. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 7, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 051495/0831 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049555/0530 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2017
From: RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044051/0951 →