IP Library Granted Patent US 10,514,857
Granted Patent B2
US 10,514,857 · App. 15/984,920 · Granted Dec 24, 2019

Dynamic adjusting of parameters based on resource scoring

Inventors: Ilya Volvovski (Chicago, IL); Manish Motwani (Chicago, IL); Andrew D. Baptist (Mt. Pleasant, WI); Jason K. Resch (Chicago, IL)
Assignee: PURE STORAGE, INC.
G06F3/0644G06F3/0604G06F3/067G06F3/0653G06F11/1076
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,514,857
App. No.
15/984,920
Granted
Dec 24, 2019
Kind
B2
Abstract

A method includes obtaining an input factor regarding dispersed storage operational criteria and generating a set of hardware scores for hardware resources of a computing device based on at least one of: operational conditions of the computing device and the DSN. The method further includes ordering the set of hardware scores based on the dispersed storage operational criteria and identifying a set of modules based on at least one of the dispersed storage operational criteria and the ordered set of hardware scores. The method further includes determining, for each module in the set of modules, a desired adjustment based on at least one of the dispersed storage operational criteria and the ordered set of hardware scores. The method further includes adjusting the set of modules to produce a set of adjusted modules, and utilizing an adjusted module to at least partially satisfy the dispersed storage operational criteria.

Claims (89)

1. A method comprises:

obtaining, by a computing device of a dispersed storage network (DSN), an input factor regarding dispersed storage operational criteria, wherein the DSN includes a plurality of computing devices;

generating, by the computing device, a set of hardware scores for hardware resources of the computing device based on at least one of: operational conditions of the computing device and operational conditions of the DSN;

ordering, by the computing device, the set of hardware scores based on the dispersed storage operational criteria to produce an ordered set of hardware scores;

identifying, by the computing device, a set of modules from a plurality of modules based on at least one of the dispersed storage operational criteria and the ordered set of hardware scores;

determining, by the computing device, for each module in the set of modules, a desired adjustment based on at least one of the dispersed storage operational criteria and the ordered set of hardware scores to produce a set of desired adjustments, wherein a desired adjustment of the set of desired adjustments includes one of: changing functionality of a module, disabling a module, enabling a module, and changing execution prioritization of a module;

adjusting, by the computing device, the set of modules based on the set of desired adjustments to produce a set of adjusted modules; and

utilizing, by the computing device, an adjusted module of the set of modules to at least partially satisfy the dispersed storage operational criteria.

2. The method of claim 1 , wherein the dispersed storage operational criteria comprises:

functions to be executed by one or more of the DSN and the computing device, wherein the functions include one or more of: a read function, a write function, a rebuild function, a list slice function, a memory management function, a management function, add a storage unit, delete a storage unit, add a user device, delete a user device, a slice fostering function, dispersed storage error encoding, dispersed storage error decoding, a task processing function, and a partial task processing function.

3. The method of claim 1 , wherein the operational conditions of the computing device and operational conditions of the DSN include one or more of:

central processing unit (CPU) speed;

number of cores;

amount of main memory;

amount of memory devices;

latency of memory devices;

throughput of memory devices;

latency of network interfaces;

throughput of network interfaces; and

capacity of memory devices.

4. The method of claim 1 further comprises:

obtaining, by the computing device, one or more hardware scores from one or more other computing devices of the DSN; and

including, by the computing device, the one or more hardware scores as a factor in generating the set of hardware scores.

5. The method of claim 1 , wherein the plurality of modules includes one or more of:

a distributed task execution module;

a rebuild identifier (ID) module;

a rebuild execute module;

a memory management module;

a drivers module;

a directory function module;

a foster slices module;

a slice read module;

a slice write module; and

a list slice names module.

6. The method of claim 1 further comprises:

at a subsequent time interval:

obtaining, by the computing device, a second input factor regarding second dispersed storage operational criteria;

generating, by the computing device, a second set of hardware scores for the hardware resources of the computing device based on at least one of: the operational conditions of the computing device and the operational conditions of the DSN;

ordering, by the computing device, the second set of hardware scores based on the second dispersed storage operational criteria to produce a second ordered set of hardware scores;

identifying, by the computing device, a second set of modules from the plurality of modules based on at least one of the second dispersed storage operational criteria and the second ordered set of hardware scores;

determining, by the computing device, for each module in the second set of modules, a desired adjustment based on at least one of the second dispersed storage operational criteria and the second ordered set of hardware scores to produce a second set of desired adjustments, wherein a desired adjustment of the second set of desired adjustments includes one of: changing functionality of a module, disabling a module, enabling a module, and changing execution prioritization of a module;

adjusting, by the computing device, the second set of modules based on the second set of desired adjustments to produce a second set of adjusted modules; and

utilizing, by the computing device, an adjusted module of the second set of modules to at least partially satisfy the second dispersed storage operational criteria.

7. A computing device of a plurality of computing devices of a dispersed storage network (DSN), 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:

obtain an input factor regarding dispersed storage operational criteria;

generate a set of hardware scores for hardware resources of the computing device based on at least one of: operational conditions of the computing device and operational conditions of the DSN;

order the set of hardware scores based on the dispersed storage operational criteria to produce an ordered set of hardware scores;

identify a set of modules from a plurality of modules based on at least one of the dispersed storage operational criteria and the ordered set of hardware scores;

determine for each module in the set of modules, a desired adjustment based on at least one of the dispersed storage operational criteria and the ordered set of hardware scores to produce a set of desired adjustments, wherein a desired adjustment of the set of desired adjustments includes one of: changing functionality of a module, disabling a module, enabling a module, and changing execution prioritization of a module;

adjust the set of modules based on the set of desired adjustments to produce a set of adjusted modules; and

utilize an adjusted module of the set of modules to at least partially satisfy the dispersed storage operational criteria.

8. The computing device of claim 7 , wherein the dispersed storage operational criteria comprises:

functions to be executed by one or more of the DSN and the computing device, wherein the functions include one or more of: a read function, a write function, a rebuild function, a list slice function, a memory management function, a management function, add a storage unit, delete a storage unit, add a user device, delete a user device, a slice fostering function, dispersed storage error encoding, dispersed storage error decoding, a task processing function, and a partial task processing function.

9. The computing device of claim 7 , wherein the operational conditions of the computing device and operational conditions of the DSN include one or more of:

central processing unit (CPU) speed;

number of cores;

amount of main memory;

amount of memory devices;

latency of memory devices;

throughput of memory devices;

latency of network interfaces;

throughput of network interfaces; and

capacity of memory devices.

10. The computing device of claim 7 , wherein the processing module is further operable to:

obtain one or more hardware scores from one or more other computing devices of the DSN; and

include the one or more hardware scores as a factor in generating the set of hardware scores.

11. The computing device of claim 7 , wherein the plurality of modules includes one or more of:

a distributed task execution module;

a rebuild identifier (ID) module;

a rebuild execute module;

a memory management module;

a drivers module;

a directory function module;

a foster slices module;

a slice read module;

a slice write module; and

a list slice names module.

12. The computing device of claim 7 , wherein the processing module is further operable to:

at a subsequent time interval:

obtain a second input factor regarding second dispersed storage operational criteria;

generate a second set of hardware scores for the hardware resources of the computing device based on at least one of: the operational conditions of the computing device and the operational conditions of the DSN;

order the second set of hardware scores based on the second dispersed storage operational criteria to produce a second ordered set of hardware scores;

identify a second set of modules from the plurality of modules based on at least one of the second dispersed storage operational criteria and the second ordered set of hardware scores;

determine for each module in the second set of modules, a desired adjustment based on at least one of the second dispersed storage operational criteria and the second ordered set of hardware scores to produce a second set of desired adjustments, wherein a desired adjustment of the second set of desired adjustments includes one of: changing functionality of a module, disabling a module, enabling a module, and changing execution prioritization of a module;

adjust the second set of modules based on the second set of desired adjustments to produce a second set of adjusted modules; and

utilize an adjusted module of the second set of modules to at least partially satisfy the second dispersed storage operational criteria.

Assignments (6)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PREVIOUSLY RECORDED AT REEL: 045861 FRAME: 0968. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 7, 2019
From: VOLVOVSKI, ILYA; MOTWANI, MANISH; BAPTIST, ANDREW D.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 049411/0650 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2018
From: VOLVOVOSKI, ILYA; MOTWANI, MANISH; BAPTIST, ANDREW D.; RESCH, JASON K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 045861/0968 →
Continuity (3)
Continuation In Part 14316061 · Jun 26, 2014
Provisional Application 61871649 · Aug 29, 2013
Related Publication 20180267734A1 · Sep 20, 2018