IP Library Granted Patent US 11,983,070
Granted Patent B2
US 11,983,070 · App. 17/538,694 · Granted May 14, 2024

Determining segmentation size in a distributed storage network

Inventors: Andrew D. Baptist (Mt. Pleasant, WI); Jason K. Resch (Warwick, RI)
Assignee: PURE STORAGE, INC.
G06F11/1076G06F3/0619G06F3/064G06F3/0644G06F3/067G06F11/10G06F11/1088G06F11/1092G06F11/1464G06F2211/1028
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,983,070
App. No.
17/538,694
Granted
May 14, 2024
Kind
B2
Abstract

A method begins by receiving data to be distributedly stored in a storage network and continues by determining a decode threshold value for storage of the data, wherein the data is to be distributedly stored in the storage network. The method continues by determining a preferred encoded data slice size for storage of the data, where the preferred encoded data slice size is based on a minimum performance level requirement and based on the preferred encoded data slice size and the decode threshold value the method continues by determining a preferred segment size for the data. The method then continues by determining a segmentation scheme for the data based on the preferred segment size for the data and segmenting the data into a plurality of data segments in accordance with the segmentation scheme. The method then continues by determining dispersed error encoding parameters for encoding each data segment and encoding each data segment to produce a set of error encoded data slices.

Claims (52)

1. A method for execution by one or more modules of one or more processors of a storage network comprises:

receiving data for storage in a storage network;

determining, a decode threshold value for storage of the data, wherein the data is to be distributedly stored in the storage network, wherein the determining a decode threshold value is based on at least one of receiving the decode threshold value, initiating a query, receiving a query response, accessing a storage network registry information and a previously determined desired performance level;

determining a preferred encoded data slice size for storage of the data, wherein the preferred encoded data slice size is based on a minimum performance level requirement;

based on the preferred encoded data slice size and the decode threshold value, determining a preferred segment size for the data;

based on the preferred segment size for the data, determining a segmentation scheme for the data, wherein the segmentation scheme is a variable segmentation scheme;

segmenting the data into a plurality of data segments in accordance with the segmentation scheme;

determining dispersed error encoding parameters for encoding each data segment of the plurality of data segments to provide a plurality of data segment dispersed error encoding parameters; and

encoding, based on data segment dispersed error encoding parameters for a data segment of the plurality of data segments, a data segment to produce a set of error encoded data slices.

2. The method of claim 1 , wherein the data is at least one of a data object, a data partition and a data file.

3. The method of claim 1 , wherein the preferred encoded data slice size is based on at least one of a predetermination, an indicator of contemporary storage network performance and a desired storage network performance.

4. The method of claim 1 , wherein the segmentation scheme is a fixed segmentation scheme and a variable segmentation scheme, wherein the fixed segmentation scheme is determined by multiplying the preferred encoded data slice size by the decode threshold value.

5. The method of claim 1 , wherein each data segment of the plurality of data segments is substantially a same number of bits.

6. The method of claim 1 , further comprising:

generating a set of write slice requests corresponding to the set of error encoded data slices, wherein the set of write slice requests includes the set of error encoded data slices.

7. The method of claim 6 , further comprising:

outputting the set of write slice requests to a set of storage units of the storage network.

8. The method of claim 7 , wherein each write slice request of the set of write slice requests includes a slice identifier, wherein the slice identifier includes information sufficient to determine a storage unit for an error encoded data slice of the set of error encoded data slices.

9. The method of claim 7 , further comprising:

receiving, from a storage unit of the set of storage units, a write response, wherein the write response indicates that the preferred encoded data slice size is not desirable;

determining another preferred encoded data slice size for storage of the data;

based on the another preferred encoded data slice size and the decode threshold value, determining another preferred segment size for the data;

based on the preferred segment size for the data, determine another segmentation scheme for the data;

segmenting the data into a plurality of another data segments in accordance with the another segmentation scheme;

determining dispersed error encoding parameters for encoding each another data segment of the plurality of another data segments to provide one or more data segment dispersed error encoding parameters; and

encoding, based on data segment dispersed error encoding parameters for another data segment of the plurality of another data segments, the another data segment to produce another set of error encoded data slices.

10. A computing device comprising:

an interface configured to interface and communicate with a storage network;

memory that stores operational instructions; and

processing circuitry operably coupled to the interface and to the memory, wherein the processing circuitry is configured to execute the operational instructions to:

receive data for storage in a storage network;

determine a decode threshold value for storage of the data, wherein the data is to be distributedly stored in the storage network, wherein the decode threshold value is determined based on at least one of receiving the decode threshold value, initiating a query, receiving a query response, accessing a storage network registry information and a previously determined desired performance level;

determine a preferred encoded data slice size for storage of the data, wherein the preferred encoded data slice size is based on a minimum performance level requirement;

based on the preferred encoded data slice size and the decode threshold value, determine a preferred segment size for the data;

based on the preferred segment size for the data, determine a segmentation scheme for the data, wherein the segmentation scheme is a variable segmentation scheme;

segment the data into a plurality of data segments in accordance with the segmentation scheme;

determine dispersed error encoding parameters for encoding each data segment of the plurality of data segments to provide one or more data segment dispersed error encoding parameters; and

encode, based on data segment dispersed error encoding parameters for a data segment of the plurality of data segments, a data segment to produce a set of error encoded data slices.

11. The computing device of claim 10 , wherein the processing circuitry is further configured to execute the operational instructions to:

generate a set of write slice requests corresponding to the set of error encoded data slices, wherein the set of write slice requests includes the set of error encoded data slices.

12. The computing device of claim 11 , wherein the processing circuitry is further configured to execute the operational instructions to:

receive, from a storage unit of the set of storage units, a write response, wherein the write response indicates that the preferred encoded data slice size is not desirable;

determine another preferred encoded data slice size for storage of the data;

based on the another preferred encoded data slice size and the decode threshold value, determine another preferred segment size for the data;

based on the preferred segment size for the data, determine another segmentation scheme for the data;

segment the data into a plurality of another data segments in accordance with the another segmentation scheme;

determine dispersed error encoding parameters for encoding each another data segment of the plurality of another data segments to provide one or more data segment dispersed error encoding parameters; and

encode, based on data segment dispersed error encoding parameters for another data segment of the plurality of another data segments, the another data segment to produce another set of error encoded data slices.

13. The computing device of claim 10 , wherein the data is at least one of a data object, a data partition and a data file.

14. The computing device of claim 10 , wherein the preferred encoded data slice size is determined based on at least one of a predetermination, an indicator of contemporary storage network performance and a desired storage network performance.

15. The computing device of claim 10 , wherein the segmentation scheme is a fixed segmentation scheme and a variable segmentation scheme, wherein the fixed segmentation scheme is determined by multiplying the preferred encoded data slice size by the decode threshold value.

16. The computing device of claim 10 , wherein each data segment of the plurality of data segments is substantially a same number of bits.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2021
From: BAPTIST, ANDREW D.; RESCH, JASON K.
To: PURE STORAGE, INC.
Reel/Frame 058360/0980 →
Continuity (5)
Continuation In Part 16542946 · Aug 16, 2019
Continuation In Part 15398163 · Jan 4, 2017
Continuation 14549253 · Nov 20, 2014
Provisional Application 61933953 · Jan 31, 2014
Related Publication 20220091937A1 · Mar 24, 2022