IP Library Granted Patent US 9,813,501
Granted Patent B2
US 9,813,501 · App. 15/427,934 · Granted Nov 7, 2017

Allocating distributed storage and task execution resources

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 9,813,501
App. No.
15/427,934
Granted
Nov 7, 2017
Kind
B2
Abstract

A method begins by a dispersed storage (DS) processing module obtaining a plurality of data access requests and a request to execute a distributed computing function that includes a plurality of partial tasks. The method continues with the DS processing module allocating execution of the plurality of partial tasks to a set of distributed storage and task execution (DSTE) units in accordance with a desired executing efficiency and allocating processing of the plurality of data access requests in accordance with a desired data access efficiency. The method continues with the DS processing module establishing the desired executing efficiency and the desired data access efficiency to obtain a desired utilization of the set of DSTE units.

Claims (80)

1. A distributed storage and/or task (DST) client module comprising

an outbound DST processing module, when operable within a computing device, causes the computing device to:

allocate execution of a plurality of partial tasks of a distributed computing function to a set of distributed storage and task execution (DSTE) units to produce a plurality of partial results in accordance with a desired executing efficiency based on respective executing resource capabilities of respective DSTE units within the set of DSTE units; and

allocate processing of a plurality of data access requests for data to the set of DSTE units in accordance with a desired data access efficiency based on respective data access capabilities of respective DSTE units within the set of DSTE units, wherein the data is dispersed storage error encoded to produce one or more sets of encoded data slices;

an efficiency module, when operable within the computing device, causes the computing device to:

establish the desired executing efficiency and the desired data access efficiency to obtain a desired utilization of the set of DSTE units based on both the respective executing resource capabilities and the respective data access capabilities of the respective DSTE units within the set of DSTE units; and

an inbound DST processing module, when operable within the computing device, causes the computing device to:

receive the plurality of partial results from the set of DSTE units; and

aggregate the plurality of partial results to generate a result.

2. The DST client module of claim 1 further comprising:

the outbound DST processing module, when operable within the computing device, causes the computing device to:

allocate processing of the plurality of data access requests that includes a plurality of read requests regarding reading a data file from the set of DSTE units as a plurality of sets of encoded data slices to the set of DSTE units, wherein, for a set of the plurality of sets of encoded data slices, a read threshold indicates a number of encoded data slices that provides for reconstruction of a data segment of the data file;

the efficiency module, when operable within the computing device, causes the computing device to establish the desired data access efficiency based on the read threshold; and

the inbound DST processing module, when operable within the computing device, causes the computing device to:

receive, for the set of the plurality of sets of encoded data slices, a read threshold number of encoded data slices from the set of DSTE units; and

decode, for the set of the plurality of sets of encoded data slices, the read threshold number of encoded data slices to reproduce the data segment of the data file.

3. The DST client module of claim 1 further comprising:

the outbound DST processing module, when operable within the computing device, causes the computing device to:

allocate processing of the plurality of data access requests that includes a plurality of write requests regarding storing a data file within the set of DSTE units as a plurality of sets of encoded data slices to the set of DSTE units, wherein, for a set of the plurality of sets of encoded data slices, a write threshold indicates a number of encoded data slices that provides for proper storage of a data segment of the data file; and

the efficiency module, when operable within the computing device, causes the computing device to establish the desired data access efficiency based on the write threshold.

4. The DST client module of claim 1 further comprising:

the outbound DST processing module, when operable within the computing device, causes the computing device to:

substantially equally allocate the plurality of partial tasks among the set of DSTE units; and

substantially equally allocate the plurality of data access requests to the set of DSTE units.

5. The DST client module of claim 1 further comprising:

the outbound DST processing module, when operable within the computing device, causes the computing device to:

allocate, in an imbalanced manner, the plurality of partial tasks among the set of DSTE units; and

allocate, in the imbalanced manner, the plurality of data access requests to the set of DSTE units.

6. The DST client module of claim 1 further comprising:

the outbound DST processing module, when operable within the computing device, causes the computing device to:

allocate the execution of the plurality of partial tasks to the set of DSTE units in accordance with the desired executing efficiency, such that, from time-to-time, differing DSTE units of the set of DSTE units are not assigned execution of a partial task of the plurality of partial tasks; and

allocate the processing of the plurality of data access requests to the set of DSTE units in accordance with the desired data access efficiency such that, from time-to-time, the differing DSTE units of the set of DSTE units are not processing a data access request of the plurality of data access requests.

7. The DST client module of claim 1 , wherein the computing device further comprising:

a social networking device, a gaming device, a cell phone, a smart phone, a personal digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a tablet, a video game controller, a personal computer (PC), a computer server, a cable set-top box, a satellite receiver, a television set, a printer, a fax machine, home entertainment equipment, or a video game console.

8. The DST client module of claim 1 , wherein the computing device is implemented within a distributed computing system that includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

9. A distributed storage and/or task (DST) client module comprising

an outbound DST processing module, when operable within a computing device, causes the computing device to:

allocate, in an imbalanced manner, execution of a plurality of partial tasks of a distributed computing function to a set of distributed storage and task execution (DSTE) units to produce a plurality of partial results in accordance with a desired executing efficiency based on respective executing resource capabilities of respective DSTE units within the set of DSTE units such that, from time-to-time, differing DSTE units of the set of DSTE units are not assigned execution of a partial task of the plurality of partial tasks; and

allocate, in an imbalanced manner, processing of a plurality of data access requests for data to the set of DSTE units in accordance with a desired data access efficiency based on respective data access capabilities of respective DSTE units within the set of DSTE units, wherein the data is dispersed storage error encoded to produce one or more sets of encoded data slices such that, from time-to-time, the differing DSTE units of the set of DSTE units are not processing a data access request of the plurality of data access requests;

an efficiency module, when operable within the computing device, causes the computing device to:

establish the desired executing efficiency and the desired data access efficiency to obtain a desired utilization of the set of DSTE units based on both the respective executing resource capabilities and the respective data access capabilities of the respective DSTE units within the set of DSTE units; and

an inbound DST processing module, when operable within the computing device, causes the computing device to:

receive the plurality of partial results from the set of DSTE units; and

aggregate the plurality of partial results to generate a result.

10. The DST client module of claim 9 further comprising:

the outbound DST processing module, when operable within the computing device, causes the computing device to:

allocate processing of the plurality of data access requests that includes a plurality of read requests regarding reading a data file from the set of DSTE units as a plurality of sets of encoded data slices to the set of DSTE units, wherein, for a set of the plurality of sets of encoded data slices, a read threshold indicates a number of encoded data slices that provides for reconstruction of a data segment of the data file;

the efficiency module, when operable within the computing device, causes the computing device to establish the desired data access efficiency based on the read threshold; and

the inbound DST processing module, when operable within the computing device, causes the computing device to:

receive, for the set of the plurality of sets of encoded data slices, a read threshold number of encoded data slices from the set of DSTE units; and

decode, for the set of the plurality of sets of encoded data slices, the read threshold number of encoded data slices to reproduce the data segment of the data file.

11. The DST client module of claim 9 further comprising:

the outbound DST processing module, when operable within the computing device, causes the computing device to:

allocate processing of the plurality of data access requests that includes a plurality of write requests regarding storing a data file within the set of DSTE units as a plurality of sets of encoded data slices to the set of DSTE units, wherein, for a set of the plurality of sets of encoded data slices, a write threshold indicates a number of encoded data slices that provides for proper storage of a data segment of the data file; and

the efficiency module, when operable within the computing device, causes the computing device to establish the desired data access efficiency based on the write threshold.

12. The DST client module of claim 9 , wherein the computing device further comprising:

a social networking device, a gaming device, a cell phone, a smart phone, a personal digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a tablet, a video game controller, a personal computer (PC), a computer server, a cable set-top box, a satellite receiver, a television set, a printer, a fax machine, home entertainment equipment, or a video game console.

13. The DST client module of claim 9 , wherein the computing device is implemented within a distributed computing system that includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

14. A method for execution by one or more processing modules of one or more computing devices, the method comprising:

allocating, by the one or more processing modules, execution of a plurality of partial tasks of a distributed computing function to a set of distributed storage and task execution (DSTE) units to produce a plurality of partial results in accordance with a desired executing efficiency based on respective executing resource capabilities of respective DSTE units within the set of DSTE units;

allocating, by the one or more processing modules, processing of a plurality of data access requests for data to the set of DSTE units in accordance with a desired data access efficiency based on respective data access capabilities of respective DSTE units within the set of DSTE units, wherein the data is dispersed storage error encoded to produce one or more sets of encoded data slices;

establishing, by the one or more processing modules, the desired executing efficiency and the desired data access efficiency to obtain a desired utilization of the set of DSTE units based on both the respective executing resource capabilities and the respective data access capabilities of the respective DSTE units within the set of DSTE units;

receiving, by the one or more processing modules, the plurality of partial results from the set of DSTE units; and

aggregating, by the one or more processing modules, the plurality of partial results to generate a result.

15. The method of claim 14 further comprising:

allocating processing of the plurality of data access requests that includes a plurality of read requests regarding reading a data file from the set of DSTE units as a plurality of sets of encoded data slices to the set of DSTE units, wherein, for a set of the plurality of sets of encoded data slices, a read threshold indicates a number of encoded data slices that provides for reconstruction of a data segment of the data file;

establishing the desired data access efficiency based on the read threshold;

receiving, for the set of the plurality of sets of encoded data slices, a read threshold number of encoded data slices from the set of DSTE units; and

decoding, for the set of the plurality of sets of encoded data slices, the read threshold number of encoded data slices to reproduce the data segment of the data file.

16. The method of claim 14 further comprising:

allocating processing of the plurality of data access requests that includes a plurality of write requests regarding storing a data file within the set of DSTE units as a plurality of sets of encoded data slices to the set of DSTE units, wherein, for a set of the plurality of sets of encoded data slices, a write threshold indicates a number of encoded data slices that provides for proper storage of a data segment of the data file; and

establishing the desired data access efficiency based on the write threshold.

17. The method of claim 14 further comprising:

substantially equally allocate the plurality of partial tasks among the set of DSTE units; and

substantially equally allocate the plurality of data access requests to the set of DSTE units.

18. The method of claim 14 further comprising:

allocating, in an imbalanced manner, the plurality of partial tasks among the set of DSTE units; and

allocating, in the imbalanced manner, the plurality of data access requests to the set of DSTE units.

19. The method of claim 14 , wherein the computing device comprising a social networking device, a gaming device, a cell phone, a smart phone, a personal digital assistant, a digital music player, a digital video player, a laptop computer, a handheld computer, a tablet, a video game controller, a personal computer (PC), a computer server, a cable set-top box, a satellite receiver, a television set, a printer, a fax machine, home entertainment equipment, or a video game console.

20. The method of claim 14 , wherein the computing device is implemented within a distributed computing system that includes at least one of a wireless communication system, a wire lined communication systems, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

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 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2017
From: ALNAFOOSI, AHMAD
To: CLEVERSAFE, INC.
Reel/Frame 041217/0196 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2017
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041671/0001 →