IP Library Granted Patent US 9,648,087
Granted Patent B2
US 9,648,087 · App. 13/959,006 · Granted May 9, 2017

Allocating distributed storage and task execution resources

Inventor: Ahmad Alnafoosi (Streamwood, IL)
Assignee: International Business Machines Corporation
H04L67/10G06F9/5027G06F17/30153G06F21/64H04L12/5695
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,648,087
App. No.
13/959,006
Granted
May 9, 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 (68)

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

obtaining, by the one or more processing modules, a plurality of data access requests for data and a request to execute a distributed computing function that includes a plurality of partial tasks regarding the data, wherein the data is dispersed storage error encoded to produce one or more sets of encoded data slices;

allocating, by the one or more processing modules, 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, wherein the desired executing efficiency distributes the execution of the plurality of partial tasks among the set of DSTE units 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;

allocating, by the one or more processing modules, processing of the plurality of data access requests to the set of DSTE units in accordance with a desired data access efficiency, wherein the desired data access efficiency distributes the processing of the plurality of data access requests among the set of DSTE units based on respective data access capabilities of respective DSTE units within the set of DSTE units 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; and

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.

2. The method of claim 1 further comprises:

obtaining, overlapping in time, the plurality of data access requests and the plurality of partial tasks; and

during the overlapping time, establishing the desired utilization of the set of DSTE units to substantially balance loading of the set of DSTE units based on per unit processing resource utilization to processing resource capabilities.

3. The method of claim 1 further comprises:

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

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

4. The method of claim 3 further comprises:

utilizing a pattern to provide the substantially equally allocation, wherein the pattern indicates on a DSTE unit by DSTE unit basis of when and when not a DSTE unit of the set of DSTE units is allocated the partial task of the plurality of partial tasks and when and when not the DSTE unit is allocated the data access request of the plurality of data access requests.

5. The method of claim 1 further comprises at least one of:

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.

6. The method of claim 1 further comprises at least one of:

adjusting allocation of remaining ones of the plurality of partial tasks among the set of DSTE units; and

adjusting allocation of remaining ones of the plurality of data access requests to the set of DSTE units.

7. The method of claim 1 further comprises:

the plurality of data access requests including 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;

determining a read threshold that indicates, for a set of the plurality of sets of encoded data slices, a number of encoded data slices to read to ensure recovery of a data segment of the data file from the number of encoded data slices; and

establishing, at least in part, the desired data access efficiency based on the read threshold.

8. The method of claim 1 further comprises:

the plurality of data access requests including a plurality of write requests regarding storing a data file as a plurality of sets of encoded data slices in the set of DSTE units;

determining a write threshold that indicates, for a set of the plurality of sets of encoded data slices, a number of encoded data slices to write to the set of DSTE units to ensure proper storage of a data segment of the data file; and

establishing, at least in part, the desired data access efficiency based on the write threshold.

9. The method of claim 1 further comprises:

obtaining, by the one or more processing modules, the plurality of data access requests regarding storage of a data file; and

obtaining, by the one or more processing modules, the distributed computing function regarding the data file.

10. A distributed storage and/or task (DST) client module comprises:

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

obtain a plurality of data access requests for data and a request to execute a distributed computing function that includes a plurality of partial tasks regarding the data, wherein the data is dispersed error encoded to produce one or more sets of encoded data slices;

allocate 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, wherein the desired executing efficiency distributes the execution of the plurality of partial tasks among the set of DSTE units 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;

allocate processing of the plurality of data access requests to the set of DSTE units in accordance with a desired data access efficiency, wherein the desired data access efficiency distributes the processing of the plurality of data access requests among the set of DSTE units based on respective data access capabilities of respective DSTE units within the set of DSTE units 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; and

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.

11. The DST client module of claim 10 further comprises:

the outbound DST processing module further functions to obtain, overlapping in time, the plurality of data access requests and the plurality of partial tasks; and

during the overlapping time, the efficiency module further functions to establish the desired utilization of the set of DSTE units to substantially balance loading of the set of DSTE units based on per unit processing resource utilization to processing resource capabilities.

12. The DST client module of claim 10 further comprises:

the outbound DST processing module further functions 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.

13. The DST client module of claim 12 further comprises:

the outbound DST processing module further functions to utilize a pattern to provide the substantially equally allocation, wherein the pattern indicates on a DSTE unit by DSTE unit basis of when and when not a DSTE unit of the set of DSTE units is allocated the partial task of the plurality of partial tasks and when and when not the DSTE unit is allocated the data access request of the plurality of data access requests.

14. The DST client module of claim 10 further comprises at least one of:

the outbound DST processing module further functions 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.

15. The DST client module of claim 10 further comprises at least one of:

the outbound DST processing module further functions to:

adjust allocation of remaining ones of the plurality of partial tasks among the set of DSTE units; and

adjust allocation of remaining ones of the plurality of data access requests to the set of DSTE units.

16. The DST client module of claim 10 further comprises:

the outbound DST processing module further functions to:

the plurality of data access requests 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;

determine a read threshold that indicates, for a set of the plurality of sets of encoded data slices, a number of encoded data slices to read to ensure recovery of a data segment of the data file from the number of encoded data slices; and

establish, at least in part, the desired data access efficiency based on the read threshold.

17. The DST client module of claim 10 further comprises:

the outbound DST processing module further functions to:

the plurality of data access requests includes a plurality of write requests regarding storing a data file as a plurality of sets of encoded data slices in the set of DSTE units;

determine a write threshold that indicates, for a set of the plurality of sets of encoded data slices, a number of encoded data slices to write to the set of DSTE units to ensure proper storage of a data segment of the data file; and

establish, at least in part, the desired data access efficiency based on the write threshold.

18. The DST client module of claim 10 further comprises:

the outbound DST processing module further functions to:

obtain the plurality of data access requests regarding storage of a data file; and

obtain the distributed computing function regarding the data file.

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 May 6, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038629/0015 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2013
From: ALNAFOOSI, AHMAD
To: CLEVERSAFE, INC.
Reel/Frame 030942/0108 →
Continuity (2)
Provisional Application 61711106 · Oct 8, 2012
Related Publication 20140101221A1 · Apr 10, 2014