aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-08-30 12:24:07 +0200
committerHarald Musum <musum@yahooinc.com>2023-08-30 12:24:07 +0200
commit5445d9f3b1b91b073dac2d609037b534e526c477 (patch)
treec187ff43b0ed1da976a1960ac5a93da8e4bea674 /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java
parent306dce28ed3cfa0d2f4679fd2519db3d1ac780c7 (diff)
Use deploy time (prepare time) when considering applications for maintenance deployment
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java
index 28679b504aa..ba71bbf0d42 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java
@@ -16,7 +16,8 @@ import java.time.Duration;
import java.time.Instant;
import java.util.Map;
import java.util.function.Function;
-import java.util.stream.Collectors;
+
+import static java.util.stream.Collectors.toMap;
/**
* The application maintainer regularly redeploys all applications to make sure the node repo and application
@@ -39,7 +40,7 @@ public class PeriodicApplicationMaintainer extends ApplicationMaintainer {
@Override
protected boolean canDeployNow(ApplicationId application) {
- return deployer().activationTime(application)
+ return deployer().deployTime(application)
// Don't deploy if a regular deploy just happened
.map(lastDeployTime -> lastDeployTime.isBefore(nodeRepository().clock().instant().minus(minTimeBetweenRedeployments)))
// We only know last deploy time for applications that were deployed on this config server,
@@ -57,13 +58,17 @@ public class PeriodicApplicationMaintainer extends ApplicationMaintainer {
.map(node -> node.allocation().get().owner())
.distinct()
.filter(this::canDeployNow)
- .collect(Collectors.toMap(Function.identity(), this::activationTime));
+ .collect(toMap(Function.identity(), this::deployTime));
return deploymentTimes.entrySet().stream()
.sorted(Map.Entry.comparingByValue())
.map(Map.Entry::getKey)
.filter(this::shouldMaintain)
- .collect(Collectors.toMap(applicationId -> applicationId, applicationId -> "current deployment being too old"));
+ .collect(toMap(applicationId -> applicationId, applicationId -> "current deployment being too old"));
+ }
+
+ private Instant deployTime(ApplicationId applicationId) {
+ return deployer().deployTime(applicationId).orElse(Instant.EPOCH);
}
private boolean shouldMaintain(ApplicationId id) {