IP Library Granted Patent US 10,148,574
Granted Patent B2
US 10,148,574 · App. 14/160,428 · Granted Dec 4, 2018

Load balancing for mesh computing

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,148,574
App. No.
14/160,428
Granted
Dec 4, 2018
Kind
B2
Abstract

Techniques for load balancing in a network of nodes can include a first node receiving and/or generating a request having an identifier, task description, and information regarding an entity originating the request. The first node can either perform the task and report back to the originating entity of the completion of the task, or forward the request to a random one of a plurality of other nodes with which the first node is communicatively connected.

Claims (74)

1. A server configured to operate as a node in a network of nodes, the server comprising:

a communication interface configured to be communicatively coupled with a plurality of nodes of the network of nodes;

a memory; and

a processing unit communicatively coupled with the communication interface and the memory and configured to:

obtain, via the communication interface from a first node of the plurality of nodes, a first request comprising:

a request identifier,

a description of a first task to perform, and

information regarding an entity originating the first request;

determine that the first request was not previously received, wherein the determining that the first request was not previously received comprises checking the memory for the request identifier of the first request;

subsequent to the determining that the first request was not previously received, determine that the server does not have sufficient resources to perform the first task at the server;

as a result of determining that the server does not have sufficient resources to perform the first task at the server, randomly select a second node from the plurality of nodes; and

prior to the second node determining whether the second node has sufficient resources to perform the first task, send, via the communication interface, the first request to the second node.

2. The server configured to operate as a node in a network of nodes as recited in claim 1 , wherein the processing unit is further configured to store the request identifier of the first request.

3. The server configured to operate as a node in a network of nodes as recited in claim 2 , wherein the processing unit is further configured to:

receive a second request;

compare a request identifier of the second request with the stored request identifier of the first request; and

send a response to a sender of the second request an indication that the server has already received a request having the same request identifier.

4. The server configured to operate as a node in a network of nodes as recited in claim 1 , wherein the processing unit is configured to randomly select the second node from the plurality of nodes by randomly selecting the second node using a uniform distribution.

5. The server configured to operate as a node in a network of nodes as recited in claim 1 , wherein the processing unit is configured to randomly select the second node from the plurality of nodes by randomly selecting the second node using a weighted distribution.

6. The server configured to operate as a node in a network of nodes as recited in claim 5 , wherein the processing unit is further configured to create the weighted distribution by assigning a weight to each of the plurality of nodes based on either or both of:

a geographical location or distance, or

historical information regarding each of the plurality of nodes.

7. The server configured to operate as a node in a network of nodes as recited in claim 1 , wherein the processing unit is further configured to:

receive, via the communication interface, a second request comprising:

a second request identifier,

a description of a second task to perform, and

information regarding an entity originating the second request;

perform the second task; and

send, via the communication interface, an indication to the entity originating the second request that the second task has been performed.

8. A method of load balancing in a network of nodes, the method comprising:

obtaining, from a first node of a plurality of nodes of the network of nodes, a first request comprising:

a request identifier,

a description of a first task to perform, and

information regarding an entity originating the first request;

determining that the first request was not previously received, wherein the determining that the first request was not previously received comprises checking a memory for the request identifier of the first request;

subsequent to the determining that the first request was not previously received, determining, using a physical processing unit, that a computing system does not have sufficient resources to perform the first task at the computing system;

as a result of the determination, randomly selecting a second node from the plurality of nodes to which the computing system is communicatively connected; and

prior to the second node determining whether the second node has sufficient resources to perform the first task, sending the first request to the second node.

9. The method of load balancing in a network of nodes as recited in claim 8 , further comprising storing the request identifier of the first request in the memory.

10. The method of load balancing in a network of nodes as recited in claim 9 , further comprising:

receiving a second request;

comparing a request identifier of the second request with the stored request identifier of the first request; and

sending a response to a sender of the second request an indication that the computing system has already received a request having the same request identifier.

11. The method of load balancing in a network of nodes as recited in claim 8 , wherein randomly selecting the second node from the plurality of nodes comprises randomly selecting the second node using a uniform distribution.

12. The method of load balancing in a network of nodes as recited in claim 8 , wherein randomly selecting the second node from the plurality of nodes comprises randomly selecting the second node using a weighted distribution.

13. The method of load balancing in a network of nodes as recited in claim 8 , further comprising:

receiving, a second request comprising:

a second request identifier,

a description of a second task to perform, and

information regarding an entity originating the second request;

performing the second task; and

sending an indication to the entity originating the second request that the second task has been performed.

14. A non-transitory computer-readable medium having instructions embedded thereon for providing load balancing in a network of nodes, the instructions including computer code for:

obtaining, from a first node of a plurality of nodes of the network of nodes, a first request comprising:

a request identifier,

a description of a first task to perform, and

information regarding an entity originating the first request;

determining that the first request was not previously received, wherein the determining that the first request was not previously received comprises checking a memory for the request identifier of the first request;

subsequent to the determining that the first request was not previously received, determining that a computing system does not have sufficient resources to perform the first task at the computing system;

as a result of the determination, randomly selecting a second node from the plurality of nodes to which the computing system is communicatively connected; and

prior to the second node determining whether the second node has sufficient resources to perform the first task, sending the first request to the second node.

15. The computer-readable medium as recited in claim 14 , further comprising computer code for storing the request identifier of the first request in the memory.

16. The computer-readable medium as recited in claim 15 , further comprising computer code for:

receiving a second request;

comparing a request identifier of the second request with the stored request identifier of the first request; and

sending a response to a sender of the second request an indication that the computing system has already received a request having the same request identifier.

17. The computer-readable medium as recited in claim 14 , wherein the computer code for randomly selecting the second node from the plurality of nodes comprises computer code for randomly selecting the second node using a uniform distribution.

18. The computer-readable medium as recited in claim 14 , further comprising computer code for:

receiving, a second request comprising:

a second request identifier,

a description of a second task to perform, and

information regarding an entity originating the second request;

performing the second task; and

sending an indication to the entity originating the second request that the second task has been performed.

Assignments (4)
PATENT SECURITY AGREEMENT Recorded Jun 12, 2025
From: BRIGHTCOVE INC.
To: INTESA SANPAOLO S.P.A., AS SECURITY AGENT
Reel/Frame 071575/0646 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 8, 2015
From: CACTI ACQUISITION LLC
To: BRIGHTCOVE INC.
Reel/Frame 034745/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 22, 2014
From: UNICORN MEDIA, INC.
To: CACTI ACQUISITION LLC
Reel/Frame 033788/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2014
From: JOHNSON, MATTHEW A.
To: UNICORN MEDIA, INC.
Reel/Frame 032015/0304 →