Legal claims defining the scope of protection, as filed with the USPTO.
1. A method performed by a load balancer for calculating a set of preferences for a plurality of servers, the method comprising: receiving, by the load balancer, a plurality of metric values from a plurality of servers; calculating an average metric value based on the plurality of metric values; calculating a first error value based on the average metric value and a first metric value of the plurality of metric values; generating a first integral value by incorporating the first error value into a first previous integral value; generating a first preference value for a first server of the plurality of servers based on the first integral value; calculating a second error value based on the average metric value and a desired metric threshold; generating a second integral value by incorporating the second error value into a second previous integral value; generating a second preference value for a call bucket based on the second integral value; and selecting a selected server of the plurality of servers according to a non-deterministic method based on a set of preferences that incorporates the first preference value.
2. The method of claim 1 , further comprising: receiving, at the load balancer, a work request; transmitting the work request to the selected server.
3. The method of claim 2 , wherein the non-deterministic method comprises: generating a random number; identifying a server associated with the random number based on the set of preferences; and selecting the identified server as the selected server.
4. The method of claim 1 , wherein the plurality of metric values comprises at least one of: a processor utilization value, a queue depth value, and a memory usage value.
5. The method of claim 1 , wherein the plurality of servers comprise at least one of: a user equipment management unit, a radio network controller, and a cloud component.
6. The method of claim 1 , wherein the first preference value is a cumulative value, wherein the first preference value is further generated based on at least one other preference value.
7. The method of claim 1 , further comprising: generating a proportional value based on the first error and a proportional constant, wherein generating the first preference value is further based on the proportional value.
8. The method of claim 7 , further comprising: periodically changing a value of the proportional constant.
9. The method of claim 8 , wherein changing a value of the proportional constant comprises: determining a previous direction of a previous change; determining whether the previous change resulted in increased performance; changing, based on the previous change resulting in increased performance, the value of the proportional constant in the same direction as the previous direction; and changing, based on the previous change resulting in decreased performance, the value of the proportional constant in the opposite direction from the previous direction.
10. The method of claim 1 , further comprising: receiving, at the load balancer, a work request; selecting the call bucket as a selected server based on a set of preferences that incorporates the first preference value and the second preference value; and dropping the work request based on selection of the call bucket.
11. The method of claim 1 , wherein generating a first preference value comprises: calculating a preliminary preference value based on the first integral value; determining that the preliminary preference value exceeds a threshold; and based on the preliminary preference value exceeding the threshold, reducing the preliminary preference value to generate the first preference value.
12. The method of claim 11 , wherein the threshold is set based on a known work-processing capability associated with the first server.
13. The method of claim 1 , wherein the plurality of metric values are transmitted to the load balancer according to an assured transfer protocol.
14. The method of claim 1 , further comprising sharing the first integral value with at least one other load balancer.
15. A load balancer device comprising: a preference storage; and a processor configured to: receive a plurality of metric values from a plurality of servers, calculate an average metric value based on the plurality of metric values, calculate a first error value based on the average metric value and a first metric value of the plurality of metric values, generate a first integral value by incorporating the first error value into a first previous integral value, generate a first preference value for a first server of the plurality of servers based on the first integral value, store the first preference value in the preference storage, calculate a second error value based on the average metric value and a desired metric threshold, generate a second integral value by incorporating the second error value into a second previous integral value, generate a second preference value for a call bucket based on the second integral value; and selecting a selected server of the plurality of servers according to a non-deterministic method based on a set of preferences that incorporates the first preference value.
16. The load balancer of claim 15 , wherein the processor is further configured to: receive a work request; transmit the work request to the selected server.
17. The load balancer of claim 16 , wherein the non-deterministic method comprises: generating a random number; identifying a server associated with the random number based on the set of preferences; and selecting the identified server as the selected server.
18. The load balancer of claim 15 , wherein the plurality of metric values comprises at least one of: a processor utilization value, a queue depth value, and a memory usage value.
19. The load balancer of claim 15 , wherein the plurality of servers comprise at least one of: a user equipment management unit, a radio network controller, and a cloud component.
20. The load balancer of claim 15 , wherein the first preference value is a cumulative value, wherein the first preference value is further generated based on at least one other preference value.
21. The load balancer of claim 15 , wherein the processor is further configured to: generate a proportional value based on the first error and a proportional constant, wherein generating the first preference value is further based on the proportional value.
22. The load balancer of claim 21 , wherein the processor is further configured to: periodically change a value of the proportional constant.
23. The load balancer of claim 22 , wherein, in changing a value of the proportional constant, the processor is configured to: determine a previous direction of a previous change; determine whether the previous change resulted in increased performance; change, based on the previous change resulting in increased performance, the value of the proportional constant in the same direction as the previous direction; and change, based on the previous change resulting in decreased performance, the value of the proportional constant in the opposite direction from the previous direction.
24. The load balancer of claim 15 , wherein the processor is further configured to: receive a work request; select the call bucket as a selected server based on a set of preferences that incorporates the first preference value and the second preference value; and drop the work request based on selection of the call bucket.
25. The load balancer of claim 15 , wherein, in generating a first preference value, the processor is configured to: calculate a preliminary preference value based on the first integral value; determine that the preliminary preference value exceeds a threshold; and based on the preliminary preference value exceeding the threshold, reduce the preliminary preference value to generate the first preference value.
26. The load balancer of claim 25 , wherein the threshold is set based on a known work-processing capability associated with the first server.
27. The load balancer of claim 15 , wherein the plurality of metric values are transmitted to the load balancer according to an assured transfer protocol.
28. The load balancer of claim 15 , wherein the processor is further configured to share the first integral value with at least one other load balancer.
29. A non-transitory machine-readable medium encoded with instructions for execution by a hardware processor for calculating a set of preferences for a plurality of servers, the non-transitory machine-readable medium comprising: instructions for receiving, by a load balancer, a plurality of metric values from a plurality of servers; instructions for calculating an average metric value based on the plurality of metric values; instructions for calculating a first error value based on the average metric value and a first metric value of the plurality of metric values; instructions for generating a first integral value by incorporating the first error value into a first previous integral value; instructions for generating a first preference value for a first server of the plurality of servers based on the first integral value; instructions for calculating a second error value based on the average metric value and a desired metric threshold; instructions for generating a second integral value by incorporating the second error value into a second previous integral value; instructions for generating a second preference value for a call bucket based on the second integral value; and selecting a selected server of the plurality of servers according to a non-deterministic method based on a set of preferences that incorporates the first preference value.
30. The non-transitory machine-readable medium of claim 29 , further comprising: instructions for receiving, at the load balancer, a work request; instructions for transmitting the work request to the selected server.
31. The non-transitory machine-readable medium of claim 30 , wherein the non-deterministic method comprises: generating a random number; identifying a server associated with the random number based on the set of preferences; and selecting the identified server as the selected server.
32. The non-transitory machine-readable medium of claim 29 , wherein the plurality of metric values comprises at least one of: a processor utilization value, a queue depth value, and a memory usage value.
33. The non-transitory machine-readable medium of claim 29 , wherein the plurality of servers comprise at least one of: a user equipment management unit, a radio network controller, and a cloud component.
34. The non-transitory machine-readable medium of claim 29 , wherein the first preference value is a cumulative value, wherein the first preference value is further generated based on at least one other preference value.
35. The non-transitory machine-readable medium of claim 29 , further comprising: instructions for generating a proportional value based on the first error and a proportional constant, wherein generating the first preference value is further based on the proportional value.
36. The non-transitory machine-readable medium of claim 35 , further comprising: instructions for periodically changing a value of the proportional constant.
37. The non-transitory machine-readable medium of claim 36 , wherein changing a value of the proportional constant comprises: instructions for determining a previous direction of a previous change; instructions for determining whether the previous change resulted in increased performance; instructions for changing, based on the previous change resulting in increased performance, the value of the proportional constant in the same direction as the previous direction; and instructions for changing, based on the previous change resulting in decreased performance, the value of the proportional constant in the opposite direction from the previous direction.
38. The non-transitory machine-readable medium of claim 29 , further comprising: instructions for receiving, at the load balancer, a work request; instructions for selecting the call bucket as a selected server based on a set of preferences that incorporates the first preference value and the second preference value; instructions for dropping the work request based on selection of the call bucket.
39. The non-transitory machine-readable medium of claim 29 , wherein the instructions for generating a first preference value comprise: instructions for calculating a preliminary preference value based on the first integral value; instructions for determining that the preliminary preference value exceeds a threshold; and instructions for, based on the preliminary preference value exceeding the threshold, reducing the preliminary preference value to generate the first preference value.
40. The non-transitory machine-readable medium of claim 39 , wherein the threshold is set based on a known work-processing capability associated with the first server.
41. The non-transitory machine-readable medium of claim 29 , wherein the plurality of metric values are transmitted to the load balancer according to an assured transfer protocol.
42. The non-transitory machine-readable medium of claim 29 , further comprising instructions for sharing the first integral value with at least one other load balancer.
Unknown
February 23, 2016
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.