aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2023-02-21 12:51:58 +0100
committerGitHub <noreply@github.com>2023-02-21 12:51:58 +0100
commit07afcf4b4ad1034601b8b438ff4b13ed63e1b0c1 (patch)
tree7e9fd1d8b80cddf0a35c688b432929bb20608204
parent02707baee5757c8299020c7135826e3c2380c315 (diff)
parent869c206879f2ae4b215dd476b3fc14693cd2a7b1 (diff)
Merge pull request #26125 from vespa-engine/bratseth/handle-zero-trafficv8.129.8
Handle zero traffic
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModel.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java8
2 files changed, 12 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModel.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModel.java
index 264664f91b2..4a4222cca6a 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModel.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterModel.java
@@ -196,8 +196,10 @@ public class ClusterModel {
if (! cluster.bcpGroupInfo().isEmpty()) {
// Do a weighted sum of the ideal "vote" based on local and bcp group info.
// This avoids any discontinuities with a near-zero local query rate.
- double localInformationWeight = Math.min(1, averageQueryRate().orElse(0) /
- Math.min(queryRateGivingFullConfidence, cluster.bcpGroupInfo().queryRate()));
+ double localInformationWeight = cluster.bcpGroupInfo().queryRate() == 0
+ ? 1
+ : Math.min(1, averageQueryRate().orElse(0) /
+ Math.min(queryRateGivingFullConfidence, cluster.bcpGroupInfo().queryRate()));
Load bcpGroupIdeal = adjustQueryDependentIdealLoadByBcpGroupInfo(ideal);
ideal = ideal.multiply(localInformationWeight).add(bcpGroupIdeal.multiply(1 - localInformationWeight));
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java
index 91de7209ac1..5cef4baadd4 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingUsingBcpGroupInfoTest.java
@@ -54,6 +54,14 @@ public class AutoscalingUsingBcpGroupInfoTest {
fixture.tester().assertResources("Scaling up cpu using bcp group cpu info",
9, 1, 5.4, 6.1, 25.3,
fixture.autoscale());
+
+ // Bcp elsewhere is 0 - use local only
+ fixture.tester().clock().advance(Duration.ofDays(2));
+ fixture.store(new BcpGroupInfo(0, 1.1, 0.45));
+ fixture.loader().addCpuMeasurements(0.7f, 10);
+ fixture.tester().assertResources("Scaling using local info",
+ 8, 1, 1, 7.0, 29.0,
+ fixture.autoscale());
}
/** Tests with varying BCP group info parameters. */