diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-08-23 11:36:06 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-08-23 11:36:06 +0200 |
commit | a38b7742b4060d34d01a144815b6c0944350f30f (patch) | |
tree | e0ba759bfa77b67a5d231c555ee50a488e6f36cb /container-search/src/main/java/com/yahoo/search/dispatch | |
parent | b896e0243677f86fb61a57df3ae6cde09c54b67d (diff) |
Use a continous function to avoid capping.
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/dispatch')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java b/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java index 04855bf24ed..59821827d4e 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/LoadBalancer.java @@ -15,7 +15,6 @@ import java.util.logging.Logger; /** * LoadBalancer determines which group of content nodes should be accessed next for each search query when the * internal java dispatcher is used. - * * The implementation here is a simplistic least queries in flight + round-robin load balancer * * @author ollivir @@ -244,9 +243,8 @@ public class LoadBalancer { } public void decay(RequestDuration duration) { double searchTime = Math.max(toDouble(duration.duration()), MIN_QUERY_TIME); - double decayRate = LATENCY_DECAY_TIME; - double sampleWeight = Math.min(decayRate/2, toDouble(duration.difference(prev))); - averageSearchTime = (sampleWeight*searchTime + (decayRate - sampleWeight) * averageSearchTime) / decayRate; + double sampleWeight = toDouble(duration.difference(prev)); + averageSearchTime = (sampleWeight*searchTime + LATENCY_DECAY_TIME * averageSearchTime) / (LATENCY_DECAY_TIME + sampleWeight); prev = duration; } public double averageCost() { return averageSearchTime; } |