aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-08-28 15:26:13 +0200
committerjonmv <venstad@gmail.com>2023-08-28 15:26:13 +0200
commit308ee70e0b33057ac9ba5852d7226c731dd52bf8 (patch)
tree0e3ebc5701b60fdf4041566e064a5a19f298e880 /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance
parent3455f876114c1220ecd04be9cc9e856597f55ea2 (diff)
Max 100 hosts a time
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DiskReplacer.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DiskReplacer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DiskReplacer.java
index f53eae4ee2b..0e67027f8ca 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DiskReplacer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DiskReplacer.java
@@ -30,6 +30,7 @@ import java.util.logging.Logger;
public class DiskReplacer extends NodeRepositoryMaintainer {
private static final Logger log = Logger.getLogger(DiskReplacer.class.getName());
+ private static final int maxBatchSize = 100;
private final HostProvisioner hostProvisioner;
private final ExecutorService executor = Executors.newCachedThreadPool(new DaemonThreadFactory("disk-replacer"));
@@ -42,13 +43,12 @@ public class DiskReplacer extends NodeRepositoryMaintainer {
@Override
protected double maintain() {
NodeList nodes = nodeRepository().nodes().list().rebuilding(true);
- int attempts = 0;
+ int rebuilding = 0;
int failures = 0;
try (var locked = nodeRepository().nodes().lockAndGetAll(nodes.asList(), Optional.of(Duration.ofSeconds(10)))) {
Map<String, Future<Node>> rebuilt = new HashMap<>();
for (NodeMutex node : locked.nodes()) {
- if (node.node().status().wantToRebuild()) {
- ++attempts;
+ if (node.node().status().wantToRebuild() && ++rebuilding <= maxBatchSize) {
rebuilt.put(node.node().hostname(), executor.submit(() -> hostProvisioner.replaceRootDisk(node.node())));
}
}
@@ -70,7 +70,7 @@ public class DiskReplacer extends NodeRepositoryMaintainer {
}
}
}
- return this.asSuccessFactorDeviation(attempts, failures);
+ return this.asSuccessFactorDeviation(rebuilding, failures);
}
@Override