summaryrefslogtreecommitdiffstats
path: root/documentapi
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-06-02 13:56:17 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-06-02 13:56:17 +0000
commit6dd95e3b312f027bef0feee9f9272ff82caf2324 (patch)
tree67216c7b0deaada82ee086160e576f27289ef8ba /documentapi
parent341d1ed24adbeb1eb9934980d498ca1227dd2270 (diff)
Follow up after PR comments.
- Make system test deterministic. - Add @Override and be consistent on white space.
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/AdaptiveLoadBalancer.java6
-rw-r--r--documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/LegacyLoadBalancer.java13
-rw-r--r--documentapi/src/test/java/com/yahoo/documentapi/messagebus/protocol/LoadBalancerTestCase.java17
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