Techniques for decentralized load balancing
First Claim
Patent Images
1. A system comprising:
- a cluster having a plurality of host instances, each host instance in the cluster, includes a processor and memory, to implement one or more service agents, the one or more service agents to perform tasks included in a workload;
a shared cache utilized by the one or more service agents of the plurality of hosts instances to automatically balance processing of the tasks in the workload among the host instances in the cluster without a centralized controller or a load balancer;
a first service agent of the one or more service agents implemented by a first host instance in the cluster of host instances to perform a task in the workload based on a data structure in the shared cache that indicates the first service agent is an active agent for the task;
a second service agent of the one or more service agents implemented by a second host instance in the cluster of host instances to;
transition from a sleep state to an active state in response to expiration of a timer;
identify a number of active service agents associated with the first host instance based on the data structure in the shared cache;
compute a difference between the number of active service agents associated with the first host instance and a number of active service agents associated with the second host instance;
compare the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance to a load difference threshold, wherein the load difference threshold is a numerical value determined based on a comparison of processing capabilities of hardware resources available to the first host instance to processing capabilities of hardware resources available to the second host instance; and
update the data structure in the shared cache to indicate that the second service agent is the active agent for the task when the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance exceeds the load difference threshold, the update to the data structure in the shared cache to reduce a portion of the workload performed by the first service agent of the one or more service agents implemented by the first host instance in the cluster of host instances.
0 Assignments
0 Petitions
Accused Products
Abstract
Various embodiments are generally directed to decentralized load balancing in a host cluster utilized to coordinate performance of processing tasks in a workload, such as via service agents and/or host instances included in the host cluster, for instance. Some embodiments are particularly directed to a set of service agents on one or more host instances that utilize a shared cache to coordinate among themselves to automatically balance a workload without a centralized controller or a centralized load balancer. In one or more embodiments, a set of service agents may automatically and cooperatively balance a workload among themselves using the shared cache.
-
Citations
27 Claims
-
1. A system comprising:
-
a cluster having a plurality of host instances, each host instance in the cluster, includes a processor and memory, to implement one or more service agents, the one or more service agents to perform tasks included in a workload; a shared cache utilized by the one or more service agents of the plurality of hosts instances to automatically balance processing of the tasks in the workload among the host instances in the cluster without a centralized controller or a load balancer; a first service agent of the one or more service agents implemented by a first host instance in the cluster of host instances to perform a task in the workload based on a data structure in the shared cache that indicates the first service agent is an active agent for the task; a second service agent of the one or more service agents implemented by a second host instance in the cluster of host instances to; transition from a sleep state to an active state in response to expiration of a timer; identify a number of active service agents associated with the first host instance based on the data structure in the shared cache; compute a difference between the number of active service agents associated with the first host instance and a number of active service agents associated with the second host instance; compare the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance to a load difference threshold, wherein the load difference threshold is a numerical value determined based on a comparison of processing capabilities of hardware resources available to the first host instance to processing capabilities of hardware resources available to the second host instance; and update the data structure in the shared cache to indicate that the second service agent is the active agent for the task when the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance exceeds the load difference threshold, the update to the data structure in the shared cache to reduce a portion of the workload performed by the first service agent of the one or more service agents implemented by the first host instance in the cluster of host instances. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-implemented method, comprising:
-
implementing one or more service agents with each host instance in a cluster having a plurality of host instances, the one or more service agents to perform tasks included in a workload; utilizing a shared cache with the one or more service agents of the plurality of hosts instances to automatically balance processing of the tasks in the workload among the host instances in the cluster without a centralized controller or a load balancer; performing a task in the workload with a first service agent based on a data structure in the shared cache that indicates the first service agent is an active agent for the task, the first service agent of the one or more service agents implemented by a first host instance in the cluster of host instances; implementing a second service agent of the one or more service agents with a second host instance in the cluster of host instances, the second service agent for; transitioning from a sleep state to an active state in response to expiration of a timer; identifying a number of active service agents associated with the first host instance based on the data structure in the shared cache; computing a difference between the number of active service agents associated with the first host instance and a number of active service agents associated with the second host instance; comparing the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance to a load difference threshold, wherein the load difference threshold is a numerical value determined based on a comparison of processing capabilities of hardware resources available to the first host instance to processing capabilities of hardware resources available to the second host instance; and updating the data structure in the shared cache to indicate that the second service agent is the active agent for the task when the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance exceeds the load difference threshold, the update to the data structure in the shared cache to reduce a portion of the workload performed by the first service agent of the one or more service agents implemented by the first host instance in the cluster of host instances. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, the computer-program product including instructions operable to cause a processor to perform operations comprising:
-
implement one or more service agents with each host instance in a cluster having a plurality of host instances, the one or more service agents to perform tasks included in a workload; utilize a shared cache with the one or more service agents of the plurality of hosts instances to automatically balance processing of the tasks in the workload among the host instances in the cluster without a centralized controller or a load balancer; perform a task in the workload with a first service agent based on a data structure in the shared cache that indicates the first service agent is an active agent for the task, the first service agent of the one or more service agents implemented by a first host instance in the cluster of host instances; implement a second service agent of the one or more service agents with a second host instance in the cluster of host instances, the second service agent to; transition from a sleep state to an active state in response to expiration of a timer; identify a number of active service agents associated with the first host instance based on the data structure in the shared cache; compute a difference between the number of active service agents associated with the first host instance and a number of active service agents associated with the second host instance; compare the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance to a load difference threshold, wherein the load difference threshold is a numerical value determined based on a comparison of processing capabilities of hardware resources available to the first host instance to processing capabilities of hardware resources available to the second host instance; and update the data structure in the shared cache to indicate that the second service agent is the active agent for the task when the difference between the number of active service agents associated with the first host instance and the number of active service agents associated with the second host instance exceeds the load difference threshold, the update to the data structure in the shared cache to reduce a portion of the workload performed by the first service agent of the one or more service agents implemented by the first host instance in the cluster of host instances. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification