IP Library Granted Patent US 11,989,093
Granted Patent B2
US 11,989,093 · App. 17/806,662 · Granted May 21, 2024

Selection of memory for data storage in a storage network

Inventors: S. Christopher Gladwin (Chicago, IL); Timothy W. Markison (Mesa, AZ); Greg R. Dhuse (Chicago, IL); Thomas F. Shirley, Jr. (Oconomowoc, WI); Wesley B. Leggette (Chicago, IL); Jason K. Resch (Warwick, RI); Gary W. Grube (Barrington Hills, IL)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/06G06F3/061G06F3/0619G06F3/0635G06F3/064G06F3/0659G06F3/067G06F12/1458G06F21/00G06F21/6218H03M13/2903G06F12/1483G06F2211/1028H03M13/09H03M13/3761H04L67/1097
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,989,093
App. No.
17/806,662
Granted
May 21, 2024
Kind
B2
Abstract

Methods and apparatus for selection of memory devices in a distributed storage network. In an example, a computing device receives a data object for storage and selects a set of storage nodes of a plurality of sets of storage nodes for storing the data object. Selection of the set of storage nodes includes determining storage attributes associated with each set of storage nodes of the plurality of sets of storage nodes. Selection of the set of storage nodes additionally includes determining a storage preference associated with the data object, and comparing the storage preference with the storage attributes of the plurality of sets of storage nodes to determine a best match. Following selection of a set of storage nodes, the computing device facilitates storage of the data object in the selected set of storage nodes.

Claims (62)

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

receiving a data object for storage in memory of the storage network;

selecting a set of storage nodes of a plurality of sets of storage nodes for dispersed storage of the data object, including:

determining storage attributes associated with each set of storage nodes of the plurality of sets of storage nodes;

determining a storage preference of a user of the storage network associated with the data object; and

comparing the storage preference with the storage attributes; and

in response to determining that the storage preference compares favorably with the storage attributes, facilitating dispersed storage of the data object in the selected set of storage nodes.

2. The method of claim 1 , wherein facilitating dispersed storage of the data object in the selected set of storage nodes includes:

determining dispersed storage error encoding parameters based, at least in part, on the selected set of storage nodes;

encoding the data object in accordance with the dispersed storage error encoding parameters to generate a plurality of encoded data slices; and

forwarding the plurality of encoded data slices to the selected set of storage nodes for storage therein.

3. The method of claim 2 , wherein determining dispersed storage error encoding parameters is further based on a retrieval reliability level associated with the data object.

4. The method of claim 2 , further comprising:

temporarily storing the received data object in a buffer of the storage network, wherein facilitating dispersed storage of the data object in the selected set of storage nodes further includes retrieving the data object from the buffer.

5. The method of claim 1 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to a storage reliability level.

6. The method of claim 1 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to an input/output bandwidth level.

7. The method of claim 1 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to a memory type of a plurality of memory types.

8. The method of claim 1 , wherein the storage preference of a user of the storage network associated with the data object includes at least one of:

a data type of the data object;

a data size of the data object;

a system privilege of an authorized user of the storage network; or

a user group affiliation of an authorized user of the storage network.

9. A computing device comprises:

an interface;

memory that stores operational instructions; and

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

receive, via the interface, a data object for dispersed storage in memory of a storage network;

select a set of storage nodes of a plurality of sets of storage nodes for storage of the data object, including:

determining storage attributes associated with each set of storage nodes of the plurality of sets of storage nodes;

determining a storage preference of a user of the storage network associated with the data object; and

comparing the storage preference with the storage attributes; and

in response to determining that the storage preference compares favorably with the storage attributes, facilitate dispersed storage of the data object in the selected set of storage nodes.

10. The computing device of claim 9 , wherein facilitating dispersed storage of the data object in the selected set of storage nodes includes:

determining dispersed storage error encoding parameters based, at least in part, on the selected set of storage nodes;

encoding the data object in accordance with the dispersed storage error encoding parameters to generate a plurality of encoded data slices; and

forwarding the plurality of encoded data slices to the selected set of storage nodes for storage therein.

11. The computing device of claim 10 , wherein determining dispersed storage error encoding parameters is further based on a retrieval reliability level associated with the data object.

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

temporarily store the received data object in a buffer of the storage network, wherein facilitating dispersed storage of the data object in the selected set of storage nodes further includes retrieving the data object from the buffer.

13. The computing device of claim 9 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to a storage reliability level.

14. The computing device of claim 9 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to an input/output bandwidth level.

15. The computing device of claim 9 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to a memory type of a plurality of memory types.

16. The computing device of claim 9 , wherein the storage preference of the user of the storage network associated with the data object includes at least one of:

a data type of the data object;

a data size of the data object;

a system privilege of an authorized user of the storage network; or

a user group affiliation of an authorized user of the storage network.

17. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions that, when executed by one or more processing modules of a computing device of a storage network, causes the computing device to:

receive a data object for storage in memory of the storage network;

select a set of storage nodes of a plurality of sets of storage nodes for dispersed storage of the data object, including:

determining storage attributes associated with each set of storage nodes of the plurality of sets of storage nodes;

determining a storage preference associated with the data object, including determining a storage preference of an authorized user of the storage network; and

comparing the storage preference with the storage attributes;

in response to determining that the storage preference compares favorably with the storage attributes, facilitate dispersed storage of the data object in the selected set of storage nodes; and

generate system addressing information for the data object.

18. The non-transitory computing readable storage medium of claim 17 , wherein facilitating dispersed storage of the data object in the selected set of storage nodes includes:

determining dispersed storage error encoding parameters based, at least in part, on the selected set of storage nodes;

encoding the data object in accordance with the dispersed storage error encoding parameters to generate a plurality of encoded data slices; and

forwarding the plurality of encoded data slices to the selected set of storage nodes for storage therein.

19. The non-transitory computing readable storage medium of claim 17 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to a storage reliability level.

20. The non-transitory computing readable storage medium of claim 17 , wherein the storage attributes associated with each set of storage nodes correspond, at least in part, to an input/output bandwidth level.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2022
From: GLADWIN, S. CHRISTOPHER; MARKISON, TIMOTHY W.; DHUSE, GREG R.; SHIRLEY, THOMAS F., JR.; LEGGETTE, WESLEY B.; RESCH, JASON K.; GRUBE, GARY W.
To: PURE STORAGE, INC.
Reel/Frame 060189/0343 →
Continuity (8)
Continuation 17151249 · Jan 18, 2021
Continuation 16580379 · Sep 24, 2019
Continuation In Part 16047942 · Jul 27, 2018
Continuation In Part 15224839 · Aug 1, 2016
Continuation 14792898 · Jul 7, 2015
Continuation 13889557 · May 8, 2013
Provisional Application 61663836 · Jun 25, 2012
Related Publication 20220308962A1 · Sep 29, 2022