diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-06-02 13:56:17 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-06-02 13:56:17 +0000 |
commit | 6dd95e3b312f027bef0feee9f9272ff82caf2324 (patch) | |
tree | 67216c7b0deaada82ee086160e576f27289ef8ba | |
parent | 341d1ed24adbeb1eb9934980d498ca1227dd2270 (diff) |
Follow up after PR comments.
- Make system test deterministic.
- Add @Override and be consistent on white space.
3 files changed, 20 insertions, 16 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AdaptiveLoadBalancer.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AdaptiveLoadBalancer.java index 4688762bebf..9d5ccf9f71d 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AdaptiveLoadBalancer.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AdaptiveLoadBalancer.java @@ -12,9 +12,13 @@ import java.util.Random; * @author baldersheim */ class AdaptiveLoadBalancer extends LoadBalancer { - private Random random = new Random(); + private final Random random; AdaptiveLoadBalancer(String cluster) { + this(cluster, new Random()); + } + AdaptiveLoadBalancer(String cluster, Random random) { super(cluster); + this.random = random; } @Override diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LegacyLoadBalancer.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LegacyLoadBalancer.java index 54e18302ef6..c1e580794b4 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LegacyLoadBalancer.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LegacyLoadBalancer.java @@ -30,7 +30,8 @@ class LegacyLoadBalancer extends LoadBalancer { * @param choices the node choices, represented as Slobrok entries * @return the chosen node, or null only if the given choices were zero */ - public Node getRecipient(List<Mirror.Entry> choices) { + @Override + Node getRecipient(List<Mirror.Entry> choices) { if (choices.isEmpty()) return null; double weightSum = 0.0; @@ -56,6 +57,7 @@ class LegacyLoadBalancer extends LoadBalancer { return selectedNode; } + @Override protected NodeMetrics createNodeMetrics() { return new LegacyNodeMetrics(); } @@ -66,15 +68,12 @@ class LegacyLoadBalancer extends LoadBalancer { LegacyNodeMetrics n = (LegacyNodeMetrics) nodeMetrics; if (n == null) continue; double want = n.weight * 1.01010101010101010101; - if (want >= 1.0) { - n.weight = want; - } else { - n.weight = 1.0; - } + n.weight = Math.max(1.0, want); } } - public void received(Node node, boolean busy) { + @Override + void received(Node node, boolean busy) { if (busy) { synchronized (this) { LegacyNodeMetrics n = (LegacyNodeMetrics) node.metrics; diff --git a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerTestCase.java b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerTestCase.java index 770665e825c..9afbeecec83 100644 --- a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerTestCase.java +++ b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerTestCase.java @@ -6,6 +6,7 @@ import org.junit.Test; import java.util.Arrays; import java.util.List; +import java.util.Random; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -52,7 +53,7 @@ public class LoadBalancerTestCase { @Test public void testAdaptiveLoadBalancer() { - LoadBalancer lb = new AdaptiveLoadBalancer("foo"); + LoadBalancer lb = new AdaptiveLoadBalancer("foo", new Random(1)); List<Mirror.Entry> entries = Arrays.asList(new Mirror.Entry("foo/0/default", "tcp/bar:1"), new Mirror.Entry("foo/1/default", "tcp/bar:2"), @@ -100,13 +101,13 @@ public class LoadBalancerTestCase { sumPending += metrics.pending(); } assertEquals(9999, sentSum); - assertTrue(200 > Math.abs(sumPending - 2700)); - assertTrue( 100 > Math.abs(weights.get(0).sent() - 1780)); - assertTrue( 200 > Math.abs(weights.get(1).sent() - 5500)); - assertTrue( 100 > Math.abs(weights.get(2).sent() - 2650)); - assertTrue( 100 > Math.abs(weights.get(0).pending() - 1340)); - assertEquals( 0, weights.get(1).pending()); - assertTrue( 100 > Math.abs(weights.get(2).pending() - 1340)); + assertEquals(2636, sumPending); + assertEquals(1781, weights.get(0).sent()); + assertEquals(5585, weights.get(1).sent()); + assertEquals(2633, weights.get(2).sent()); + assertEquals(1318, weights.get(0).pending()); + assertEquals(0, weights.get(1).pending()); + assertEquals(1318, weights.get(2).pending()); } @Test |