diff options
author | Håkon Hallingstad <hakon@yahooinc.com> | 2023-11-24 16:08:23 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@yahooinc.com> | 2023-11-24 16:08:23 +0100 |
commit | 0d3c747d73f19281af0bbced663adbf192b88696 (patch) | |
tree | 9f672a98cd76bc5543c9e149db35201a0cc62b69 /node-repository | |
parent | 999368ffee9d84c324f419653961bc9abf2a4c18 (diff) |
Keep oldest preprovisioned hosts
Diffstat (limited to 'node-repository')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java index 226f5834b66..98f0dfebc4a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/HostCapacityMaintainer.java @@ -36,6 +36,7 @@ import com.yahoo.vespa.hosted.provision.provisioning.ProvisioningThrottler; import java.time.Duration; import java.time.Instant; import java.util.ArrayList; +import java.util.Comparator; import java.util.EnumSet; import java.util.List; import java.util.Map; @@ -112,6 +113,9 @@ public class HostCapacityMaintainer extends NodeRepositoryMaintainer { Map<Optional<String>, List<Node>> currentNodesByParent = nodeRepository().nodes().list().stream().collect(groupingBy(Node::parentHostname)); List<Node> candidateHosts = new ArrayList<>(getHosts(currentNodesByParent)); candidateHosts.retainAll(typeEmptyHosts); + // Deprovision newly provisioned hosts before older to reduce churn + candidateHosts.sort(Comparator.comparing((Node node) -> node.history().event(History.Event.Type.provisioned).map(History.Event::at).orElse(Instant.now())) + .reversed()); for (Node host : candidateHosts) { attempts++; |