diff options
author | Jon Bratseth <bratseth@gmail.com> | 2023-02-21 12:51:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-21 12:51:58 +0100 |
commit | 07afcf4b4ad1034601b8b438ff4b13ed63e1b0c1 (patch) | |
tree | 7e9fd1d8b80cddf0a35c688b432929bb20608204 /node-repository | |
parent | 02707baee5757c8299020c7135826e3c2380c315 (diff) | |
parent | 869c206879f2ae4b215dd476b3fc14693cd2a7b1 (diff) |
Merge pull request #26125 from vespa-engine/bratseth/handle-zero-trafficv8.129.8
Handle zero traffic
Diffstat (limited to 'node-repository')
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. */ |