IP Library Granted Patent US 11,416,149
Granted Patent B1
US 11,416,149 · App. 16/944,923 · Granted Aug 16, 2022

Selecting a processing unit in accordance with a customizable data processing plan

Inventors: Jason K. Resch (Chicago, IL); S. Christopher Gladwin (Chicago, IL); Kumar Abhijeet (Chicago, IL); Greg R. Dhuse (Chicago, IL)
Assignee: Pure Storage, Inc.
G06F3/0619G06F3/067G06F3/0638G06F3/0659G06F11/1076G06F11/1092
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,149
App. No.
16/944,923
Granted
Aug 16, 2022
Kind
B1
Abstract

A method includes determining, by a computing device of a plurality of computing devices of a storage network, a data processing plan for processing an access request. The method further includes identifying two or more processing units of a plurality of processing units of the storage network based on the data processing plan and availability information, and determining processing capabilities of each of the two or more processing units. The method further includes selecting a processing unit of the two or more processing units to process the access request based on a favorable comparison of the processing capabilities of the processing unit and the data processing plan. The method further includes selecting one or more processing options of the processing unit to process the access request according to the data processing plan, and sending the access request and selection of the one or more processing options to the processing unit.

Claims (111)

1. A method comprises:

determining, by a computing device of a plurality of computing devices of a storage network, a data processing plan for processing an access request based on a data type of the access request and one or more storage network access requirements of the access request;

identifying, by the computing device, two or more processing units of a plurality of processing units of the storage network based on the data processing plan and availability information of the plurality of processing units;

determining, by the computing device, processing capabilities of each of the two or more processing units;

selecting, by the computing device, a processing unit of the two or more processing units to process the access request based on a favorable comparison of the processing capabilities of the processing unit and the data processing plan;

selecting, by the computing device, one or more processing options of the processing unit to process the access request according to the data processing plan; and

sending, by the computing device, the access request and selection of the one or more processing options to the processing unit, wherein the processing unit processes the access request in accordance with the one or more processing options.

2. The method of claim 1 , wherein the determining the data processing plan includes one or more of:

selecting, by the computing device, dispersed storage error encoding parameters for storing data of the access request in accordance with a desired level of security requirement;

selecting, by the computing device, the dispersed storage error encoding parameters for storing the data of the access request in accordance with a desired level of performance requirement; and

selecting, by the computing device, the dispersed storage error encoding parameters for storing the data of the access request in accordance with a desired level of access requirement.

3. The method of claim 1 , wherein the identifying the two or more processing units comprises one or more of:

accessing, by the computing device, a virtual storage network table that includes, for the plurality of processing units, information regarding availability and one or more of: a data type, a data size, an access request processing type, a security indicator, a performance indicator, and a status indicator;

receiving, by the computing device, a command identifying the two or more processing units;

performing, by the computing device, a lookup of available processing units of the plurality of processing units;

identifying, by computing device, a predetermined two or more processing units as the two or more processing units; and

receiving, by the computing device, messages from processing units of the plurality of processing units in response to a query-response protocol to obtain the information.

4. The method of claim 3 , wherein the identifying the two or more processing units further comprises:

when the information is obtained, correlating, by the computing device, the information regarding the one or more of: the data type, the data size, the security indicator, the performance indicator, and the status indicator with the data processing plan; and

identifying, by the computing device, processing units having information that correlates with the data processing plan as the two or more processing units.

5. The method of claim 1 , wherein the processing capabilities include one or more of:

current capacity;

current loading;

uptime history;

performance history;

data types supported;

data types not supported;

access requests supported;

security restrictions; and

encryption algorithms supported.

6. The method of claim 1 , wherein the processing options include one or more of:

compression type;

encryption type;

encoding function type; and

rebuilding options.

7. The method of claim 1 , wherein the computing device is a user computing device.

8. A computing device of a plurality of computing devices 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:

determine a data processing plan for processing an access request based on a data type of the access request and one or more storage network access requirements of the access request;

identify two or more processing units of a plurality of processing units of the storage network based on the data processing plan and availability information of the plurality of processing units;

determine processing capabilities of each of the two or more processing units;

select a processing unit of the two or more processing units to process the access request based on a favorable comparison of the processing capabilities of the processing unit and the data processing plan;

select one or more processing options of the processing unit to process the access request according to the data processing plan; and

send the access request and selection of the one or more processing options to the processing unit, wherein the processing unit processes the access request in accordance with the one or more processing options.

9. The computing device of claim 8 , wherein the processing module is operable to determine the data processing plan by one or more of:

selecting dispersed storage error encoding parameters for storing data of the access request in accordance with a desired level of security requirement;

selecting the dispersed storage error encoding parameters for storing the data of the access request in accordance with a desired level of performance requirement; and

selecting the dispersed storage error encoding parameters for storing the data of the access request in accordance with a desired level of access requirement.

10. The computing device claim 8 , wherein the processing module is operable to identify the two or more processing units by one or more of:

accessing a virtual storage network table that includes, for the plurality of processing units, information regarding availability and one or more of: a data type, a data size, an access request processing type, a security indicator, a performance indicator, and a status indicator;

receiving a command identifying the two or more processing units;

performing a lookup of available processing units of the plurality of processing units;

identifying a predetermined two or more processing units as the two or more processing units; and

receiving messages from processing units of the plurality of processing units in response to a query-response protocol to obtain the information.

11. The computing device of claim 10 , wherein the processing module is operable to further identify the two or more processing units by:

when the information is obtained, correlating the information regarding the one or more of: the data type, the data size, the security indicator, the performance indicator, and the status indicator with the data processing plan; and

identifying processing units having information that correlates with the data processing plan as the two or more processing units.

12. The computing device of claim 8 , wherein the processing capabilities include one or more of:

current capacity;

current loading;

uptime history;

performance history;

data types supported;

data types not supported;

access requests supported;

security restrictions; and

encryption algorithms supported.

13. The computing device of claim 8 , wherein the processing options include one or more of:

compression type;

encryption type;

encoding function type; and

rebuilding options.

14. The computing device of claim 8 , wherein the computing device is a user computing device.

15. A non-transitory computer readable memory comprises:

a first memory element that stores operational instructions that, when executed by a computing device of a plurality of computing devices of a storage network, causes the computing device to:

determine a data processing plan for processing an access request based on a data type of the access request and one or more storage network access requirements of the access request;

identify two or more processing units of a plurality of processing units of the storage network based on the data processing plan and availability information of the plurality of processing units;

determine processing capabilities of each of the two or more processing units;

select a processing unit of the two or more processing units to process the access request based on a favorable comparison of the processing capabilities of the processing unit and the data processing plan;

select one or more processing options of the processing unit to process the access request according to the data processing plan; and

send the access request and selection of the one or more processing options to the processing unit, wherein the processing unit processes the access request in accordance with the one or more processing options.

16. The non-transitory computer readable memory of claim 15 , wherein the first memory element further stores operational instructions that, when executed by the computing device, causes the computing device to determine the data processing plan by one or more of:

selecting dispersed storage error encoding parameters for storing data of the access request in accordance with a desired level of security requirement;

selecting the dispersed storage error encoding parameters for storing the data of the access request in accordance with a desired level of performance requirement; and

selecting the dispersed storage error encoding parameters for storing the data of the access request in accordance with a desired level of access requirement.

17. The non-transitory computer readable memory of claim 15 , wherein the first memory element further stores operational instructions that, when executed by the computing device, causes the computing device to identify the two or more processing units by one or more of:

accessing a virtual storage network table that includes, for the plurality of processing units, information regarding availability and one or more of: a data type, a data size, an access request processing type, a security indicator, a performance indicator, and a status indicator;

receiving a command identifying the two or more processing units;

performing a lookup of available processing units of the plurality of processing units;

identifying a predetermined two or more processing units as the two or more processing units; and

receiving messages from processing units of the plurality of processing units in response to a query-response protocol to obtain the information.

18. The non-transitory computer readable memory of claim 17 , wherein the first memory element further stores operational instructions that, when executed by the computing device, causes the computing device to further identify the two or more processing units by one or more of:

when the information is obtained, correlating the information regarding the one or more of: the data type, the data size, the security indicator, the performance indicator, and the status indicator with the data processing plan; and

identifying processing units having information that correlates with the data processing plan as the two or more processing units.

19. The non-transitory computer readable memory of claim 15 , wherein the processing capabilities include one or more of:

current capacity;

current loading;

uptime history;

performance history;

data types supported;

data types not supported;

access requests supported;

security restrictions; and

encryption algorithms supported.

20. The non-transitory computer readable memory of claim 15 , wherein the processing options include one or more of:

compression type;

encryption type;

encoding function type; and

rebuilding options.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 053371/0880 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2020
From: RESCH, JASON K.; GLADWIN, S. CHRISTOPHER; ABHIJEET, KUMAR; DHUSE, GREG R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 053372/0529 →