IP Library › Patent Application 17681598
Patent Application
App. No. 17/681,598

RESOURCE-SHARING MESH-NETWORKED MOBILE NODES

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 None
App. No.
17/681,598
Abstract

The nodes of a squad of nodes include a coordinating node and a set of worker nodes for sharing computational resources to perform resource intensive tasks. A requesting worker node may send work requests to the coordinating node of a squad of nodes. In response to a work request, the requesting worker node receives from the coordinating node a list of worker nodes to assign one or more tasks associated with the work request. The list of worker nodes is selected based on a report of resources and current utilization of each node within the squad. Upon receiving the list of workers, the requesting worker node divides the tasks associated with the work request into multiple buckets, assigns each bucket to a worker node form the list of worker nodes, and sends a request to process tasks from each of the buckets to the corresponding worker node.

Claims (71)

1 . A non-transitory computer readable storage medium storing instructions, the instructions when executed by a processor cause the processor to:

transmit a work request to a coordinating node;

receive, from the coordinating node, a list of worker nodes to assign one or more processing tasks associated with the work request, the list of worker nodes comprising at least a subset of worker nodes of the plurality of worker nodes, the subset of worker nodes identified at least based on a report of processing resources and current processing utilization of each of the worker nodes of the plurality of worker nodes, the report of processing resources including at least a battery level of a corresponding worker node;

divide, responsive to receiving the list of worker nodes, the one or more processing tasks associated with the work request into one or more processing buckets;

assign a processing bucket from the one or more processing buckets to a worker node form the list of worker nodes; and

transmit, to the worker node from the list of worker nodes, a request to process a first processing task from the processing bucket associated to the worker node.

2 . The non-transitory computer readable storage medium of claim 1 , wherein each processing bucket comprises an identification of a predefined task and a location where data for processing the predefined task is stored.

3 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions further cause the processor to:

receive, from the worker node, a request for data associated with the first processing task; and

transmit the data associated with the first processing task to the worker node.

4 . The non-transitory computer readable storage medium of claim 1 , wherein the instructions further cause the processor to:

receive, from the worker node, a notification of completion for the first processing task; and

remove, responsive to receiving the notification of completion, the first processing task from the processing bucket.

5 . The non-transitory computer readable storage medium of claim 4 , wherein the instructions further cause the processor to:

responsive to receiving the notification of completion, determine whether the processing bucket is empty;

responsive to determining that the processing bucket is not empty, transmit to the worker node, a second request to process a second processing task from the processing bucket associated to the worker node;

receive, from the worker node, a second request for data associated with the second processing task; and

transmit the data associated with the second processing task to the worker node; receive, from the worker node, a second notification of completion for the second processing task; and

responsive to receiving the second notification of completion, remove the second processing task from the processing bucket.

6 . The non-transitory computer readable storage medium of claim 5 , wherein the instructions further cause the processor to:

responsive to receiving the notification of completion, determine whether the processing bucket is empty;

responsive to determining that the processing bucket is empty, re-divide unprocessed tasks into the one or more processing buckets.

7 . The non-transitory computer readable storage medium of claim 1 , wherein the worker node is a body worn computing device.

8 . A system comprising:

a work-share coordination module configured to:

transmit a work request to a coordinating node,

receive, from the coordinating node, a list of worker nodes to assign one or more processing tasks associated with the work request, the list of worker nodes comprising at least a subset of worker nodes of the plurality of worker nodes, the subset of worker nodes identified at least based on a report of processing resources and current processing utilization of each of the worker nodes of the plurality of worker nodes, the report of processing resources including at least a battery level of a corresponding worker node;

a task assignation module configured to:

divide, responsive to receiving the list of worker nodes, the one or more processing tasks associated with the work request into one or more processing buckets,

assign a processing bucket from the one or more processing buckets to a worker node form the list of worker nodes, and

transmit, to the worker node from the list of worker nodes, a request to process a first processing task from the processing bucket associated to the worker node.

9 . The system of claim 8 , wherein each processing bucket comprises an identification of a predefined task and a location where data for processing the predefined task is stored.

10 . The system of claim 8 , wherein the task assignation module is further configured to:

receive, from the worker node, a request for data associated with the first processing task; and

transmit the data associated with the first processing task to the worker node.

11 . The system of claim 8 , wherein the task assignation module is further configured to: receive, from the worker node, a notification of completion for the first processing task; and

remove, responsive to receiving the notification of completion, the first processing task from the processing bucket.

12 . The system of claim 11 , wherein the task assignation module is further configured to:

responsive to receiving the notification of completion, determine whether the processing bucket is empty;

responsive to determining that the processing bucket is not empty, transmit to the worker node, a second request to process a second processing task from the processing bucket associated to the worker node;

receive, from the worker node, a second request for data associated with the second processing task; and

transmit the data associated with the second processing task to the worker node;

receive, from the worker node, a second notification of completion for the second processing task; and

responsive to receiving the second notification of completion, remove the second processing task from the processing bucket.

13 . The system of claim 12 , wherein the task assignation module is further configured to:

responsive to receiving the notification of completion, determine whether the processing bucket is empty;

responsive to determining that the processing bucket is empty, re-divide unprocessed tasks into the one or more processing buckets.

14 . A method for sharing a computational load among worker nodes of a plurality of worker nodes, comprising:

transmitting a work request to a coordinating node;

receiving, from the coordinating node, a list of worker nodes to assign one or more processing tasks associated with the work request, the list of worker nodes comprising at least a subset of worker nodes of the plurality of worker nodes, the subset of worker nodes identified at least based on a report of processing resources and current processing utilization of each of the worker nodes of the plurality of worker nodes, the report of processing resources including at least a battery level of a corresponding worker node;

dividing, responsive to receiving the list of worker nodes, the one or more processing tasks associated with the work request into one or more processing buckets;

assigning a processing bucket from the one or more processing buckets to a worker node form the list of worker nodes; and

transmitting, to the worker node from the list of worker nodes, a request to process a first processing task from the processing bucket associated to the worker node.

15 . The method of claim 14 , wherein each processing bucket comprises an identification of a predefined task and a location where data for processing the predefined task is stored.

16 . The method of claim 14 , further comprising:

receiving, from the worker node, a request for data associated with the first processing task; and

transmitting the data associated with the first processing task to the worker node.

17 . The method of claim 14 , further comprising:

receiving, from the worker node, a notification of completion for the first processing task; and

removing, responsive to receiving the notification of completion, the first processing task from the processing bucket.

18 . The method of claim 17 , further comprising:

responsive to receiving the notification of completion, determining whether the processing bucket is empty;

responsive to determining that the processing bucket is not empty, transmitting to the worker node, a second request to process a second processing task from the processing bucket associated to the worker node;

receiving, from the worker node, a second request for data associated with the second processing task; and

transmitting the data associated with the second processing task to the worker node;

receiving, from the worker node, a second notification of completion for the second processing task; and

responsive to receiving the second notification of completion, removing the second processing task from the processing bucket.

19 . The method of claim 18 , further comprising:

responsive to receiving the notification of completion, determining whether the processing bucket is empty;

responsive to determining that the processing bucket is empty, re-dividing unprocessed tasks into the one or more processing buckets.

20 . The method of claim 14 , wherein the worker node is a body worn computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2022
From: AMACKER, MATTHEW WARREN; KALIN, IAN JAY
To: TURBINEONE, INC.
Reel/Frame 061076/0983 →