summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2019-11-14 11:05:36 +0100
committerHåkon Hallingstad <hakon@verizonmedia.com>2019-11-14 11:05:36 +0100
commitb4dd01400a045c16f2ff0302f735d2c62d4d1f57 (patch)
tree294e7ed36504121db4e9a7c9ab223f6cbcd4e38a /node-repository
parentb2be7d18f2b540294db374a4740500cdb24650a1 (diff)
Do not use discrete probabilities
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java9
1 files changed, 3 insertions, 6 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java
index f84c6ec430a..d81d01bc941 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRebooter.java
@@ -74,12 +74,9 @@ public class NodeRebooter extends Maintainer {
// naturally scheduling the remaining with probability 1.
int configServers = 3;
- long runs = Math.max(1L, Math.round(rebootInterval.toSeconds() * configServers / (double) interval().toSeconds()));
-
- double progressFraction = overdue.get().getSeconds() / (double) rebootInterval.getSeconds();
- long currentRun = Math.max(1, Math.min(Math.round(progressFraction * runs), runs));
-
- double probability = 1.0 / (runs + 1 - currentRun);
+ long secondsRemaining = Math.max(0, rebootInterval.getSeconds() - overdue.get().getSeconds());
+ double runsRemaining = configServers * secondsRemaining / (double) interval().getSeconds();
+ double probability = 1 / (1 + runsRemaining);
return random.nextDouble() < probability;
}