diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2023-11-27 10:55:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-27 10:55:19 +0100 |
commit | 6a2c1a65086386b37862596ecf73d161e17b56e1 (patch) | |
tree | 197353937cd1dcf378800af9762e73d60202802a /node-repository/src | |
parent | fbd789068d1fa8c0a726e85bb9f4efcb276e7523 (diff) | |
parent | 0d3c747d73f19281af0bbced663adbf192b88696 (diff) |
Merge pull request #29458 from vespa-engine/hakonhall/keep-oldest-preprovisioned-hosts
Keep oldest preprovisioned hosts
Diffstat (limited to 'node-repository/src')
-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++; |