IP Library Granted Patent US 10,146,621
Granted Patent B2
US 10,146,621 · App. 15/405,130 · Granted Dec 4, 2018

Chaining computes in a distributed computing system

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,146,621
App. No.
15/405,130
Granted
Dec 4, 2018
Kind
B2
Abstract

A computing device includes an interface configured to interface and communicate with a dispersed storage network (DSN), a memory that stores operational instructions, and a processing module operably coupled to the interface and memory such that the processing module, when operable within the computing device based on the operational instructions, is configured to perform various operations. The computing device receives distributed computing data and a distributed computing request that includes a trigger pattern and then identifies a portion of the distributed computing data. The computing device then executes a distributed computing task on the portion of the distributed computing data based on the distributed computing request to generate a partial result, determines whether the partial result compares favorably to the trigger pattern of the distributed computing request, and then either dispersed error encodes the partial result to generate sets of encoded data slices (EDSs) or facilitates execution of further processing.

Claims (81)

1. A computing device comprising:

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

memory that stores operational instructions; and

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 distributed computing data via the DSN;

receive a distributed computing request that includes a trigger pattern via the DSN;

identify a portion of the distributed computing data;

execute a distributed computing task on the portion of the distributed computing data based on the distributed computing request to generate a partial result;

determine whether the partial result compares favorably to the trigger pattern of the distributed computing request;

when the partial result compares favorably to the trigger pattern of the distributed computing request, dispersed error encode (DSE) the partial result to generate sets of encoded data slices (EDSs) to be stored within a plurality of storage units (SUs) of the DSN; and

when the partial result compares unfavorably to the trigger pattern of the distributed computing request, facilitate execution of at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data via the DSN.

2. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured, when the partial result compares favorably to the trigger pattern of the distributed computing request, to:

segment the partial result to generate a plurality of partial result segments;

DSE the plurality of partial result segments to generate sets of EDSs; and

distributedly store the sets of EDSs within the plurality of SUs of the DSN, wherein a decode threshold number of EDSs are needed to recover a partial result segment of the plurality of partial result segments, wherein a read threshold number of EDSs provides for reconstruction of the partial result segment of the plurality of partial result segments, and wherein a write threshold number of EDSs provides for a successful transfer of a set of the sets of the EDSs from a first at least one location in the DSN to a second at least one location in the DSN.

3. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured, when the partial result compares unfavorably to the trigger pattern of the distributed computing request, to:

determine the at least one other distributed computing task;

determine processing parameters of the at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on a number of a plurality of other computing devices to perform execution of at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data;

determine task partitioning based on the plurality of other computing devices and the processing parameters;

process the at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on processing parameters to generate data slice groupings;

partition the at least one other distributed computing task based on the task partitioning to generate partial tasks; and

transmit the partial tasks and the data slice groupings respectively to the plurality of other computing devices to be executed respectively by the plurality of other computing devices to generate a plurality of processed partial results.

4. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured, when the partial result compares unfavorably to the trigger pattern of the distributed computing request, to:

select the at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on at least one of the partial result, a partial result threshold, a comparison of the partial result of the partial result threshold, an aspect of the partial result, a trigger associated with the aspect of the partial result, or a comparison of the aspect of the partial result with the trigger associated with the aspect of the partial result.

5. The computing device of claim 1 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured to:

determine whether the partial result compares favorably to the trigger pattern of the distributed computing request by at least one of comparing the partial result to a partial result threshold or determining whether the partial result includes a keyword search aspect.

6. The computing device of claim 1 , wherein the computing device is located at a first premises that is remotely located from at least one SU of the plurality of SUs within the DSN.

7. The computing device of claim 1 further comprising:

a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

8. The computing device of claim 1 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

9. A computing device comprising:

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

memory that stores operational instructions; and

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 distributed computing data via the DSN;

receive a distributed computing request that includes a trigger pattern via the DSN;

identify a portion of the distributed computing data;

execute a distributed computing task on the portion of the distributed computing data based on the distributed computing request to generate a partial result;

determine whether the partial result compares favorably to the trigger pattern of the distributed computing request by at least one of comparing the partial result to a partial result threshold or determining whether the partial result includes a keyword search aspect;

when the partial result compares favorably to the trigger pattern of the distributed computing request, dispersed error encode (DSE) the partial result to generate sets of encoded data slices (EDSs) to be stored within a plurality of storage units (SUs) of the DSN including to:

segment the partial result to generate a plurality of partial result segments;

DSE the plurality of partial result segments to generate sets of EDSs; and

distributedly store the sets of EDSs within the plurality of SUs of the DSN, wherein a decode threshold number of EDSs are needed to recover a partial result segment of the plurality of partial result segments, wherein a read threshold number of EDSs provides for reconstruction of the partial result segment of the plurality of partial result segments, and wherein a write threshold number of EDSs provides for a successful transfer of a set of the sets of the EDSs from a first at least one location in the DSN to a second at least one location in the DSN; and

when the partial result compares unfavorably to the trigger pattern of the distributed computing request, facilitate execution of at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data via the DSN.

10. The computing device of claim 9 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured, when the partial result compares unfavorably to the trigger pattern of the distributed computing request, to:

determine the at least one other distributed computing task;

determine processing parameters of the at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on a number of a plurality of other computing devices to perform execution of at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data;

determine task partitioning based on the plurality of other computing devices and the processing parameters;

process the at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on processing parameters to generate data slice groupings;

partition the at least one other distributed computing task based on the task partitioning to generate partial tasks; and

transmit the partial tasks and the data slice groupings respectively to the plurality of other computing devices to be executed respectively by the plurality of other computing devices to generate a plurality of processed partial results.

11. The computing device of claim 9 , wherein the processing module, when operable within the computing device based on the operational instructions, is further configured, when the partial result compares unfavorably to the trigger pattern of the distributed computing request, to:

select the at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on at least one of the partial result, a partial result threshold, a comparison of the partial result of the partial result threshold, an aspect of the partial result, a trigger associated with the aspect of the partial result, or a comparison of the aspect of the partial result with the trigger associated with the aspect of the partial result.

12. The computing device of claim 9 further comprising:

a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

13. The computing device of claim 9 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, 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 a computing device, the method comprising:

receiving, via an interface of the computing device that is configured to interface and communicate with a dispersed or distributed storage network (DSN), distributed computing data;

receiving, via the interface of the computing device, a distributed computing request that includes a trigger pattern;

identifying a portion of the distributed computing data;

executing a distributed computing task on the portion of the distributed computing data based on the distributed computing request to generate a partial result;

determining whether the partial result compares favorably to the trigger pattern of the distributed computing request;

when the partial result compares favorably to the trigger pattern of the distributed computing request, dispersed error encoding the partial result to generate sets of encoded data slices (EDSs) to be stored within a plurality of storage units (SUs) of the DSN; and

when the partial result compares unfavorably to the trigger pattern of the distributed computing request, facilitating execution of at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data via the DSN.

15. The method of claim 14 , when the partial result compares favorably to the trigger pattern of the distributed computing request, further comprising:

segmenting the partial result to generate a plurality of partial result segments;

dispersed error encoding the plurality of partial result segments to generate sets of EDSs; and

distributedly storing the sets of EDSs within the plurality of SUs of the DSN, wherein a decode threshold number of EDSs are needed to recover a partial result segment of the plurality of partial result segments, wherein a read threshold number of EDSs provides for reconstruction of the partial result segment of the plurality of partial result segments, and wherein a write threshold number of EDSs provides for a successful transfer of a set of the sets of the EDSs from a first at least one location in the DSN to a second at least one location in the DSN.

16. The method of claim 14 , when the partial result compares favorably to the trigger pattern of the distributed computing request, further comprising:

determining the at least one other distributed computing task;

determining processing parameters of the at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on a number of a plurality of other computing devices to perform execution of at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data;

determining task partitioning based on the plurality of other computing devices and the processing parameters;

processing the at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on processing parameters to generate data slice groupings;

partitioning the at least one other distributed computing task based on the task partitioning to generate partial tasks; and

transmitting, via the interface of the computing device, the partial tasks and the data slice groupings respectively to the plurality of other computing devices to be executed respectively by the plurality of other computing devices to generate a plurality of processed partial results.

17. The method of claim 14 , when the partial result compares unfavorably to the trigger pattern of the distributed computing request, further comprising:

selecting the at least one other distributed computing task on at least one of the partial result, the portion of the distributed computing data, or another portion of the distributed computing data based on at least one of the partial result, a partial result threshold, a comparison of the partial result of the partial result threshold, an aspect of the partial result, a trigger associated with the aspect of the partial result, or a comparison of the aspect of the partial result with the trigger associated with the aspect of the partial result.

18. The method of claim 14 further comprising:

determining whether the partial result compares favorably to the trigger pattern of the distributed computing request by at least one of comparing the partial result to a partial result threshold or determining whether the partial result includes a keyword search aspect.

19. The method of claim 14 , wherein the computing device is a SU of the plurality of SUs within the DSN, a wireless smart phone, a laptop, a tablet, a personal computers (PC), a work station, or a video game device.

20. The method of claim 14 , wherein the DSN includes at least one of a wireless communication system, a wire lined communication system, a non-public intranet system, a public internet system, a local area network (LAN), or a wide area network (WAN).

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 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 Jan 12, 2017
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; LEGGETTE, WESLEY B.; MOTWANI, MANISH; RESCH, JASON K.; SHIRLEY, THOMAS F., JR.; VOLOVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040966/0645 →