IP Library Granted Patent US 9,916,114
Granted Patent B2
US 9,916,114 · App. 14/847,855 · Granted Mar 13, 2018

Deterministically sharing a plurality of processing 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,916,114
App. No.
14/847,855
Granted
Mar 13, 2018
Kind
B2
Abstract

A method for deterministic sharing of a plurality of processing resources with respect to one or more distributed network actionable items begins by the plurality of processing resources executing a scoring function using one or more properties of the one or more distributed network actionable items and one or more properties of each of the plurality of processing resources to produce a plurality of scoring resultants. The method continues with each of the plurality of processing resources independently determining a first priority processing resource of the plurality of processing resources based on a corresponding one of the plurality of scoring resultants for a first distributed network actionable item of the one or more distributed network actionable items. The method continues with the first priority processing resource assuming by responsibility for the first distributed network actionable item and executing one or more functions regarding the first distributed network actionable item.

Claims (112)

1. A method for deterministic sharing of a plurality of processing resources with respect to one or more distributed network actionable items, the method comprises:

executing within a decentralized agreement module, by the plurality of processing resources, a scoring function using one or more properties of the one or more distributed network actionable items and one or more properties of each of the plurality of processing resources to produce a plurality of scoring results, wherein each of the plurality of scoring results are substantially identical when a first request for the scoring function includes substantially identical content as a second request for the scoring function, and wherein a scoring result of the plurality of scoring results is prioritized based on a location weighted sharing of the plurality of processing resources with respect to the one or more distributed network actionable items; and wherein the executing the scoring function comprises:

performing a plurality of deterministic functions based on an identifier of the first distributed network actionable item and a plurality of resource identifiers corresponding to the plurality of processing resources to produce a plurality of deterministic results;

normalizing the plurality of deterministic results to produce a plurality of normalized results; and

performing a plurality of location based weighting functions on the plurality of normalized results based on a plurality of location based weighting values corresponding to the plurality of processing resources to produce the scoring results;

independently determining, by each of the plurality of processing resources, a first priority processing resource of the plurality of processing resources based on a corresponding one of the plurality of scoring results for a first distributed network actionable item of the one or more distributed network actionable items, wherein a location associated with a highest scoring result is considered a highest priority location for resource utilization;

assuming, by the first priority processing resource, responsibility for the first distributed network actionable item; and

executing, by the first priority processing resource, one or more functions regarding the first distributed network actionable item.

2. The method of claim 1 , wherein the first distributed network actionable item comprises one or more of:

an executable task;

a virtual storage address;

a physical storage address; or

a communication resource.

3. The method of claim 1 , wherein the one or more functions comprises one or more of:

writing data to a storage location;

reading the data from the storage location;

determining a virtual address for the storage location;

determining a physical address for the storage location; or

executing a task.

4. The method of claim 1 further comprises:

independently determining, by each of the plurality of processing resources, a second priority processing resource of the plurality of processing resources based on a corresponding one of the plurality of scoring results for a second distributed network actionable item of the one or more distributed network actionable items;

assuming, by the second priority processing resource, responsibility for the second distributed network actionable item; and

executing, by the second priority processing resource, one or more functions regarding the second distributed network actionable item.

5. The method of claim 1 further comprises:

when the executing by the first priority processing resource of the one or more functions regarding the first distributed network actionable item was unsuccessful:

independently determining, by each of the plurality of processing resources, a second priority processing resource of the plurality of processing resources based on the corresponding one of the plurality of scoring results for the first distributed network actionable item;

assuming, by the second priority processing resource, responsibility for the first distributed network actionable item; and

executing, by the second priority processing resource, the one or more functions regarding the first distributed network actionable item.

6. The method of claim 1 , wherein a processing resource of the plurality of processing resources comprises one or more of:

a computing core;

memory;

a processing module;

a computing device; or

a communications device.

7. A non-transitory computer readable storage medium comprises:

at least one memory section that stores operational instructions of a decentralized agreement module that, when executed by one or more processing resources of a plurality of processing resources of one or more computing devices of a distributed network, causes the one or more computing devices to:

execute, by the plurality of processing resources, a scoring function using one or more properties of one or more distributed network actionable items and one or more properties of each of the plurality of processing resources to produce a plurality of scoring results, wherein each of the plurality of scoring results are substantially identical when a first request for the scoring function includes substantially identical content as a second scoring function request, and wherein a scoring result of the plurality of scoring results is prioritized based on a location weighted sharing of the plurality of processing resources with respect to the one or more distributed network actionable items, and wherein the one or more processing resources functions to execute the operational instructions stored by the at least one memory section to cause the one or more computing devices to execute the scoring function by:

performing a plurality of deterministic functions based on an identifier of the first distributed network actionable item and a plurality of resource identifiers corresponding to the plurality of processing resources to produce a plurality of deterministic results;

normalizing the plurality of deterministic results to produce a plurality of normalized results; and

performing a plurality of location based weighting functions on the plurality of normalized results based on a plurality of weighting values corresponding to the plurality of processing resources to produce the scoring results;

independently determine, by each of the plurality of processing resources, a first priority processing resource of the plurality of processing resources based on a corresponding one of the plurality of scoring results for a first distributed network actionable item of the one or more distributed network actionable items, wherein a location associated with a highest scoring result is considered a highest priority location for resource utilization;

assume, by the first priority processing resource, responsibility for the first distributed network actionable item; and

execute, by the first priority processing resource, one or more functions regarding the first distributed network actionable item.

8. The non-transitory computer readable storage medium of claim 7 , wherein the first distributed network actionable item comprises one or more of:

an executable task;

a virtual storage address;

a physical storage address; or

a communication resource.

9. The non-transitory computer readable storage medium of claim 7 , wherein the one or more functions comprises one or more of:

writing data to a storage location;

reading the data from the storage location;

determining a virtual address for the storage location;

determining a physical address for the storage location; or

executing a task.

10. The non-transitory computer readable storage medium of claim 7 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing resources, causes the one or more computing devices to:

independently determine, by each of the plurality of processing resources, a second priority processing resource of the plurality of processing resources based on a corresponding one of the plurality of scoring results for a second distributed network actionable item of the one or more distributed network actionable items;

assume, by the second priority processing resource, responsibility for the second distributed network actionable item; and

execute, by the second priority processing resource, one or more functions regarding the second distributed network actionable item.

11. The non-transitory computer readable storage medium of claim 7 further comprises:

the at least one memory section stores further operational instructions that, when executed by the one or more processing resources, causes the one or more computing devices to:

when the executing by the first priority processing resource of the one or more functions regarding the first distributed network actionable item was unsuccessful:

independently determine, by each of the plurality of processing resources, a second priority processing resource of the plurality of processing resources based on the corresponding one of the plurality of scoring results for the first distributed network actionable item;

assume, by the second priority processing resource, responsibility for the first distributed network actionable item; and

execute, by the second priority processing resource, the one or more functions regarding the first distributed network actionable item.

12. The non-transitory computer readable storage medium of claim 7 , wherein a processing resource of the plurality of processing resources comprises one or more of:

a computing core;

memory;

a processing module;

a computing device; or

a communications device.

13. A computing device of a group of computing devices of a distributed network, the computing device comprises:

an interface;

a local memory;

a decentralized agreement module; and

a processing resource of a plurality of processing resources of the distributed network, wherein the processing resource is operably coupled to the interface, the local memory, and the decentralized agreement module, and wherein the processing resource functions to:

execute a scoring function using one or more properties of one or more distributed network actionable items and one or more properties of each of the plurality of processing resources to produce a scoring result of a plurality of scoring results, wherein each of the plurality of scoring results are substantially identical when a first request for the scoring function includes substantially identical content as a second scoring function request, and wherein the scoring result of the plurality of scoring results is prioritized based on a location weighted sharing of the plurality of processing resources with respect to the one or more distributed network actionable items; and wherein the processing resource functions to execute the scoring function by:

performing a plurality of deterministic functions based on an identifier of the first distributed network actionable item and a plurality of resource identifiers corresponding to the plurality of processing resources to produce a plurality of deterministic results;

normalizing the plurality of deterministic results to produce a plurality of normalized results; and

performing a plurality of location based weighting functions on the plurality of normalized results based on a plurality of weighting values corresponding to the plurality of processing resources to produce the scoring results;

independently determine a first priority processing resource of the plurality of processing resources based on a corresponding one of the plurality of scoring results for a first distributed network actionable item of the one or more distributed network actionable items, wherein a location associated with a highest scoring result is considered a highest priority location for resource utilization;

when the processing resource is determined to be the first priority processing resource:

assume, by the first priority processing resource, responsibility for the first distributed network actionable item; and

execute, by the first priority processing resource, one or more functions regarding the first distributed network actionable item.

14. The computing device of claim 13 , wherein the first distributed network actionable item comprises one or more of:

an executable task;

a virtual storage address;

a physical storage address; or

a communication resource.

15. The computing device of claim 13 , wherein the one or more functions comprises one or more of:

writing data to a storage location;

reading the data from the storage location;

determining a virtual address for the storage location;

determining a physical address for the storage location; or

executing a task.

16. The computing device of claim 13 , wherein the processing resource further functions to:

independently determine a second priority processing resource of the plurality of processing resources based on a corresponding one of the plurality of scoring results for a second distributed network actionable item of the one or more distributed network actionable items; and

when the processing resource is determined to be the second priority processing resource:

assume responsibility for the second distributed network actionable item; and

execute one or more functions regarding the second distributed network actionable item.

17. The computing device of claim 13 , wherein the processing resource further functions to:

when the executing by the first priority processing resource of the one or more functions regarding the first distributed network actionable item was unsuccessful:

independently determine a second priority processing resource of the plurality of processing resources based on the corresponding one of the plurality of scoring results for the first distributed network actionable item; and

when the processing resource is determined to be the second priority processing resource:

assume, by the second priority processing resource, responsibility for the first distributed network actionable item; and

execute, by the second priority processing resource, the one or more functions regarding the first distributed network actionable item.

18. The computing device of claim 13 , wherein the processing resource of the plurality of processing resources comprises one or more of:

a computing core;

memory;

a processing module;

a computing device; or

a communications device.

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 28, 2015
From: RESCH, JASON K.
To: CLEVERSAFE, INC.
Reel/Frame 036897/0490 →