IP Library Granted Patent US 10,523,781
Granted Patent B2
US 10,523,781 · App. 16/130,431 · Granted Dec 31, 2019

Method for providing schedulers in a distributed storage network

Inventors: Ethan S. Wozniak (Park Ridge, IL); Manish Motwani (Chicago, IL)
Assignee: PURE STORAGE, INC.
H04L67/322G06F1/3296G06F9/5061G06F11/079G06F11/0727G06F11/0751G06F11/0772G06F11/0793G06F11/1076G06F11/1448G06F11/1464G06F11/1471G06F11/3428G06F13/26G06F16/00G06F16/182G06F16/185G06F16/2282G06F16/24G06F16/245G06F16/248G06F16/2455G06F16/2477G06F16/24569G06F16/252G06F16/27G06F16/282G06F16/284G06F16/29G06F16/43G06F21/10G06F21/602G06F21/6218G06F21/80H03M13/3761H04L9/085H04L9/0894H04L9/14H04L9/16H04L43/0852H04L43/0888H04L63/101H04L67/06H04L67/1097H04N21/2181H04N21/232H04N21/23116G06F9/5005G06F9/5072G06F2221/2107G06F2221/2129G06F2221/2151H03M13/1515H04L63/102H04L2209/34
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 10,523,781
App. No.
16/130,431
Granted
Dec 31, 2019
Kind
B2
Abstract

A method for optimizing scheduler selection by a distributed storage (DS) unit of a dispersed storage network (DSN) begins with a DS unit receiving a dispersed storage error function from a DSN user and queries DS elements to determine measured throughput and measured latency. The method resumes when the DS unit receives measured throughput and measured latency from the DSN elements and selects a scheduler based on the measured throughput and measured latency. The method continues with the DS unit receiving a different updated measured throughput and measured latency from the DSN elements and selecting a different scheduler.

Claims (67)

1. A method for execution by a distributed storage (DS) unit of a dispersed storage network (DSN), the method comprises:

receiving, from a user of the DSN, a dispersed storage error function for execution by the DS unit;

querying, by the DS unit, one or more computing devices of a set of computing devices associated with the DSN for a measured throughput of the DSN;

receiving, by the DS unit, information sufficient to determine the measured throughput of the DSN;

querying, by the DS unit, the one or more computing devices of the set of computing devices associated with the DSN for a measured latency of the DSN;

receiving, by the DS unit, information sufficient to determine the measured latency of the DSN;

based on the measured throughput and the measured latency, determining, by the DS unit, whether to use a scheduler to execute the dispersed storage error function;

in response to determining to use a scheduler to execute the dispersed storage error function, selecting a first scheduler of a plurality of schedulers, wherein the first scheduler is based on both the measured throughput and the measured latency;

querying, by the DS unit, one or more computing devices of a set of computing devices associated with the DSN for an update measured throughput of the DSN;

receiving, by the DS unit, the updated measured throughput of the DSN;

querying, by the DS unit, the one or more computing devices of a set of computing devices associated with the DSN for an updated measured latency of the DSN;

receiving, by the DS unit, the updated measured latency of the DSN;

based on the updated measured throughput and the updated measured latency, determining, by the DS unit, whether to change the first scheduler to a second scheduler to execute the dispersed storage error function; and

in response to determining to change the first scheduler to a second scheduler to execute the dispersed storage error function, selecting another scheduler of the plurality of schedulers to execute the dispersed storage error function.

2. The method of claim 1 , wherein the first scheduler is substantially optimized for higher throughput scheduler.

3. The method of claim 2 , wherein the selection of the first scheduler is further based at least partly on the dispersed storage error function being a read request, and wherein the read request is for a one or more relatively large encoded data slices.

4. The method of claim 1 , wherein the first scheduler is substantially optimized for reduced latency.

5. The method of claim 4 , wherein the selection of the first scheduler is further based at least partly on the dispersed storage error function being associated with a relatively high rate of transactions between devices of the DSN.

6. The method of claim 1 , wherein the first scheduler is substantially optimized based on a fraction that is a quotient of measured latency divided by a desired latency.

7. The method of claim 1 , wherein the first scheduler is substantially optimized based on a fraction that is a quotient of measured throughput divided by a desired throughput.

8. The method of claim 1 , wherein the dispersed storage error function is at least one of a write request, a read request, a rebuild function, or an error checking function.

9. A computing device comprising:

an interface configured to interface and communicate with a distributed storage network (DSN);

memory that stores operational instructions;

a processing module operably coupled to the interface and to the memory, wherein the processing module, when operable within the computing device based on the operational instructions, is configured to:

receive, from a user of the DSN, a dispersed storage error function for execution by the DS unit;

query one or more distributed storage (DS) units associated with the DSN for a measured throughput of the DSN;

receive information sufficient to determine the measured throughput of the DSN;

query the one or more DS units for a measured latency of the DSN;

receive information sufficient to determine the measured latency of the DSN;

based on the measured throughput and the measured latency, determine whether to use a scheduler to execute the dispersed storage error function;

in response to a determination to use a scheduler to execute the dispersed storage error function, select a first scheduler of a plurality of schedulers, wherein the first scheduler is based on both the measured throughput and the measured latency;

query the one or more DS units for an update measured throughput of the DSN;

receive the updated measured throughput of the DSN;

query the one or more DS units for an updated measured latency of the DSN;

receive the updated measured latency of the DSN;

based on the updated measured throughput and the updated measured latency, determine whether to change the first scheduler to another scheduler to execute the dispersed storage error function; and

in response to a determination to change the first scheduler to another scheduler select a second scheduler of the plurality of schedulers to execute the dispersed storage error function.

10. The computing device of claim 9 , wherein the first scheduler is substantially optimized for higher throughput.

11. The computing device of claim 10 , wherein the selection of the first scheduler is further based at least partly on the dispersed storage error function being associated with a read request, and wherein the read request is for a one or more relatively large encoded data slices.

12. The computing device of claim 9 , wherein the first scheduler is substantially optimized for reduced latency.

13. The computing device of claim 12 , wherein the selection of the first scheduler is further based at least partly on the dispersed storage error function being associated with a relatively high rate of transactions between devices of the DSN.

14. The computing device of claim 12 , wherein the selection of the first scheduler is based at least partly on a low measured throughput.

15. The computing device of claim 9 , wherein the first scheduler is substantially optimized based on a fraction that is a quotient of measured latency divided by the desired latency.

16. The computing device of claim 9 , wherein the first scheduler is substantially optimized based on a fraction that is a quotient of measured throughput divided by a desired throughput.

17. The computing device of claim 9 , wherein the first scheduler is substantially optimized based on a weighting of a desired throughput and a desired latency.

18. The computing device of claim 9 , wherein the dispersed storage error function is at least one of a write request, a read request, a rebuild function, or an error checking function.

19. A computer readable memory comprises:

a first memory element that stores operational instructions that, when executed by a computing device of a dispersed storage network (DSN), causes the computing device to:

receive, from a user of the DSN, a dispersed storage error function for execution by computing device;

a second memory element that stores operational instructions that, when executed by the computing device causes the computing device to:

query one or more distributed storage (DS) units associated with the DSN for a measured throughput of the DSN;

receive information sufficient to determine the measured throughput of the DSN;

query the one or more distributed storage (DS) units for a measured latency of the DSN;

receive information sufficient to determine the measured latency of the DSN;

a third memory element that stores operational instructions that, when executed by the computing device causes the computing device to:

based on the measured throughput and the measured latency, determine whether to use a scheduler to execute the dispersed storage error function;

in response to a determination to use a scheduler to execute the dispersed storage error function, select a first scheduler of a plurality of schedulers, wherein the first scheduler is based on both the measured throughput and the measured latency;

a fourth memory element that stores operational instructions that, when executed by the computing device causes the computing device to:

query the one or more distributed storage (DS) units for an update measured throughput of the DSN;

receive the updated measured throughput of the DSN;

query the one or more distributed storage (DS) units for an updated measured latency of the DSN;

receive the updated measured latency of the DSN;

a fifth memory element that stores operational instructions that, when executed by the computing device causes the computing device to:

based on the updated measured throughput and the updated measured latency, determine whether to change the first scheduler to another scheduler to execute the dispersed storage error function; and

in response to a determination to change the first scheduler to another scheduler select a second scheduler of the plurality of schedulers to execute the dispersed storage error function.

20. The computer readable memory of claim 19 , wherein the dispersed storage error function is at least one of a write request, a read request, a rebuild function, or an error checking function.

Assignments (5)
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 →
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 Sep 13, 2018
From: WOZNIAK, ETHAN S.; MOTWANI, MANISH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 046869/0455 →