summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2021-05-26 10:33:25 +0200
committerMartin Polden <mpolden@mpolden.no>2021-05-26 10:33:25 +0200
commitf590ad4ff88683f1b041c9a126c90373cdd83390 (patch)
treee71c3f33709c1ef4404d730c2c7c4b9d59896d4c /node-repository
parent0e794ad4d1e92cd37610918319b940475f660d2e (diff)
Expiry nodes based on stateful property
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java20
1 files changed, 10 insertions, 10 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java
index 17bd4b9174c..70444ada9c2 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/FailedExpirer.java
@@ -1,7 +1,6 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.maintenance;
-import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.Zone;
@@ -48,21 +47,21 @@ public class FailedExpirer extends NodeRepositoryMaintainer {
private static final int maxAllowedFailures = 50;
private final NodeRepository nodeRepository;
- private final Duration defaultExpiry; // Grace period to allow recovery of data
- private final Duration containerExpiry; // Stateless nodes, no data to recover
+ private final Duration statefulExpiry; // Stateful nodes: Grace period to allow recovery of data
+ private final Duration statelessExpiry; // Stateless nodes: No data to recover
FailedExpirer(NodeRepository nodeRepository, Zone zone, Duration interval, Metric metric) {
super(nodeRepository, interval, metric);
this.nodeRepository = nodeRepository;
if (zone.system().isCd()) {
- defaultExpiry = containerExpiry = Duration.ofMinutes(30);
+ statefulExpiry = statelessExpiry = Duration.ofMinutes(30);
} else {
if (zone.environment() == Environment.staging || zone.environment() == Environment.test) {
- defaultExpiry = Duration.ofHours(1);
+ statefulExpiry = Duration.ofHours(1);
} else {
- defaultExpiry = Duration.ofDays(4);
+ statefulExpiry = Duration.ofDays(4);
}
- containerExpiry = Duration.ofHours(1);
+ statelessExpiry = Duration.ofHours(1);
}
}
@@ -74,10 +73,11 @@ public class FailedExpirer extends NodeRepositoryMaintainer {
recycleIf(remainingNodes, node -> node.allocation().isEmpty());
recycleIf(remainingNodes, node ->
- node.allocation().get().membership().cluster().type() == ClusterSpec.Type.container &&
- node.history().hasEventBefore(History.Event.Type.failed, clock().instant().minus(containerExpiry)));
+ !node.allocation().get().membership().cluster().isStateful() &&
+ node.history().hasEventBefore(History.Event.Type.failed, clock().instant().minus(statelessExpiry)));
recycleIf(remainingNodes, node ->
- node.history().hasEventBefore(History.Event.Type.failed, clock().instant().minus(defaultExpiry)));
+ node.allocation().get().membership().cluster().isStateful() &&
+ node.history().hasEventBefore(History.Event.Type.failed, clock().instant().minus(statefulExpiry)));
return true;
}