diff --git a/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java b/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java index b85b98a089e..6b70e5974df 100644 --- a/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java +++ b/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java @@ -567,7 +567,7 @@ public void allSubchannelsInTransientFailure() { @Test public void hostSelectionProportionalToWeights() { - RingHashConfig config = new RingHashConfig(100000, 1000000); // large ring + RingHashConfig config = new RingHashConfig(10000, 100000); // large ring List servers = createWeightedServerAddrs(1, 10, 100); // 1:10:100 loadBalancer.handleResolvedAddresses( ResolvedAddresses.newBuilder() @@ -594,16 +594,16 @@ public void hostSelectionProportionalToWeights() { pickCounts.put(addr, pickCounts.get(addr) + 1); } - // Actual distribution: server0 = 91, server1 = 866, server2 = 9043 (~0.5% tolerance) + // Actual distribution: server0 = 104, server1 = 808, server2 = 9088 double ratio01 = (double) pickCounts.get(servers.get(0)) / pickCounts.get(servers.get(1)); double ratio12 = (double) pickCounts.get(servers.get(1)) / pickCounts.get(servers.get(2)); - assertThat(ratio01).isWithin(0.01).of((double) 1 / 10); - assertThat(ratio12).isWithin(0.01).of((double) 10 / 100); + assertThat(ratio01).isWithin(0.03).of((double) 1 / 10); + assertThat(ratio12).isWithin(0.03).of((double) 10 / 100); } @Test public void hostSelectionProportionalToRepeatedAddressCount() { - RingHashConfig config = new RingHashConfig(100000, 100000); + RingHashConfig config = new RingHashConfig(10000, 100000); List servers = createRepeatedServerAddrs(1, 10, 100); // 1:10:100 loadBalancer.handleResolvedAddresses( ResolvedAddresses.newBuilder() @@ -630,11 +630,11 @@ public void hostSelectionProportionalToRepeatedAddressCount() { pickCounts.put(addr, pickCounts.get(addr) + 1); } - // Actual distribution: server0 = 0, server1 = 90, server2 = 9910 + // Actual distribution: server0 = 104, server1 = 808, server2 = 9088 double ratio01 = (double) pickCounts.get(servers.get(0)) / pickCounts.get(servers.get(1)); double ratio12 = (double) pickCounts.get(servers.get(1)) / pickCounts.get(servers.get(11)); - assertThat(ratio01).isWithin(0.01).of((double) 1 / 10); - assertThat(ratio12).isWithin(0.01).of((double) 10 / 100); + assertThat(ratio01).isWithin(0.03).of((double) 1 / 10); + assertThat(ratio12).isWithin(0.03).of((double) 10 / 100); } @Test