IP Library Granted Patent US 9,811,533
Granted Patent B2
US 9,811,533 · App. 14/055,174 · Granted Nov 7, 2017

Accessing distributed computing functions 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 9,811,533
App. No.
14/055,174
Granted
Nov 7, 2017
Kind
B2
Abstract

A method begins by a processing module identifying, in accordance with an ordered manner, a next distributed computing function, where distributed computing functions are stored in multiple storage units as a set of encoded computing function slices. The method continues with the processing module determining whether ownership of the next distributed computing function can be established and when the ownership of the next distributed computing function can be established, securing ownership of the next distributed computing function. When the ownership of the next distributed computing function cannot be established, the method continues with the processing module requesting another next distributed computing function.

Claims (49)

1. A distributed computing system comprises:

a distributed memory that includes a plurality of storage units, wherein the distributed memory stores:

a plurality of data objects, wherein a data object of the plurality of data objects is stored in a set of storage units of the plurality of storage units as one or more sets of encoded data slices; and

in an ordered manner, a dynamic plurality of distributed computing functions, wherein a distributed computing function of the dynamic plurality of distributed computing functions is stored in multiple storage units of the plurality of storage units as a set of encoded computing function slices, wherein at least one of the dynamic plurality of distributed computing functions executes on at least one of the plurality of data objects stored in the distributed memory; and

a plurality of distributed computing processing resources, wherein at least some of the plurality of distributed computing processing resources individually function to:

identify, in accordance with the ordered manner, a next distributed computing function of the dynamic plurality of distributed computing functions;

determine whether ownership of the next distributed computing function compares favorably to establishment including:

sending lock-read-delete requests to the multiple storage units regarding a set of encoded computing function slices of the next distributed computing function;

interpreting responses from the multiple storage units regarding the lock-read-delete requests;

when the responses are favorable, indicating that the ownership of the next distributed computing function compares favorably to establishment; and

when the responses are unfavorable, indicating that the ownership of the next distributed computing function fails to be established; and

when the ownership of the next distributed computing function compares favorably to establishment, secure the ownership of the next distributed computing function, wherein when the ownership of the next distributed computing function compares favorably to establishment, receiving an indication that the set of encoded computing function slices are locked as a separate message or an interpretation of receiving the set of encoded computing function slices from the multiple storage units; and

when the ownership of the next distributed computing function compares unfavorably to establishment, request, in accordance with the ordered manner, another next distributed computing function of the dynamic plurality of distributed computing functions.

2. The distributed computing system of claim 1 further comprises:

a managing processing module operable to update the dynamic plurality of distributed computing functions by adding or deleting distributed computing functions to/from the dynamic plurality of distributed computing functions, wherein the managing processing module is a processing module of a computing device of the distributed computing system or one or more of the plurality of distributed computing processing resources.

3. The distributed computing system of claim 1 further comprises:

a managing processing module operable to establish the ordered manner based on one or more of a time stamp, a sequential operational dependency, co-processing function ordering, and a priority level, wherein the distributed computing function includes one or more of a partial task, a task, a computer operation, an algorithm, operational data, and a co-processing function, and wherein each of the dynamic plurality of distributed computing functions is stored separately in the distributed memory as opposed to being stored in a list.

4. The distributed computing system of claim 1 , wherein the function to identify the next distributed computing function comprises:

requesting, from the multiple storage units, a listing of encoded computing function slices stored therein;

generate a list of the dynamic plurality of distributed computing functions currently stored by the multiple storage units from the listing;

determining a retrieval scheme for the list of the dynamic plurality of distributed computing functions; and

identifying the next distributed computing function from the list of the dynamic plurality of distributed computing functions in accordance with the retrieval scheme.

5. The distributed computing system of claim 1 further comprises:

executing the next distributed computing function on one or more of the plurality of data objects stored in the distributed memory; and

after executing the next distributed computing function, initiating a delete portion of the lock-read-delete requests.

6. A method for execution by a distributed computing processing resource of a plurality of distributed computing processing resources within a distributed computing system, the method comprises:

identifying, in accordance with an ordered manner, a next distributed computing function of a dynamic plurality of distributed computing functions, wherein a distributed memory of the distributed computing system includes a plurality of storage units and stores:

a plurality of data objects, wherein a data object of the plurality of data objects is stored in a set of storage units of the plurality of storage units as one or more sets of encoded data slices, wherein at least one of the dynamic plurality of distributed computing functions executes on at least one of the plurality of data objects stored in the distributed memory; and

in the ordered manner, the dynamic plurality of distributed computing functions, wherein a distributed computing function of the dynamic plurality of distributed computing functions is stored in multiple storage units of the plurality of storage units as a set of encoded computing function slices; and

determining whether ownership of the next distributed computing function

compares favorably to establishment including:

sending lock-read-delete requests to the multiple storage units regarding a set of encoded computing function slices of the next distributed computing function;

interpreting responses from the multiple storage units regarding the lock-read-delete requests;

when the responses are favorable, indicating that the ownership of the next distributed computing function compares favorably to establishment; and

when the responses are unfavorable, indicating that the ownership of the next distributed computing function compares unfavorably to establishment; and

when the ownership of the next distributed computing function compares favorably to establishment, securing the ownership of the next distributed computing function, wherein when the ownership of the next distributed computing function compares favorably to establishment, receiving an indication that the set of encoded computing function slices are locked as a separate message or an interpretation of receiving the set of encoded computing function slices from the multiple storage units; and

when the ownership of the next distributed computing function compares unfavorably to establishment, requesting, in accordance with the ordered manner, another next distributed computing function of the dynamic plurality of distributed computing functions.

7. The method of claim 6 further comprises:

when functioning as a managing processing module, updating the dynamic plurality of distributed computing functions by adding or deleting distributed computing functions to/from the dynamic plurality of distributed computing functions.

8. The method of claim 6 further comprises:

when functioning as a managing processing module, establishing the ordered manner based on one or more of a time stamp, a sequential operational dependency, co-processing function ordering, and a priority level, wherein the distributed computing function includes one or more of a partial task, a task, a computer operation, an algorithm, operational data, and a co-processing function, and wherein each of the dynamic plurality of distributed computing functions is stored separately in the distributed memory as opposed to being stored in a list.

9. The method of claim 6 , wherein the identifying the next distributed computing function comprises:

requesting, from the multiple storage units, a listing of encoded computing function slices stored therein;

generate a list of the dynamic plurality of distributed computing functions currently stored by the multiple storage units from the listing;

determining a retrieval scheme for the list of the dynamic plurality of distributed computing functions; and

identifying the next distributed computing function from the list of the dynamic plurality of distributed computing functions in accordance with the retrieval scheme.

10. The method of claim 6 further comprises:

executing the next distributed computing function on one or more of the plurality of data objects stored in the distributed memory; and

after executing the next distributed computing function, initiating a delete portion of the lock-read-delete requests.

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 Oct 16, 2013
From: BAPTIST, ANDREW; LEGGETTE, WESLEY; RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 031416/0143 →