summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@verizonmedia.com>2020-01-22 17:35:42 +0100
committerJon Bratseth <bratseth@verizonmedia.com>2020-01-22 17:35:42 +0100
commit97c2dd0fb54bd2aed689e5b8b432588cc4fb6401 (patch)
treec0ca4c6ce86ccc59d17643ddf3f6307bd1b8224a /node-repository
parent995e6883f191574ba3f386c49271950fc5e5a50a (diff)
Prefer using reserved hosts
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/PrioritizableNode.java4
2 files changed, 7 insertions, 3 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java
index a7519de3776..cb9294b3485 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/Activator.java
@@ -117,9 +117,9 @@ class Activator {
.filter(node -> node.state() != Node.State.active)
.map(Node::hostname)
.collect(Collectors.toSet());
- long numNonActive = nonActiveHosts.size();
- if (numNonActive > 0) {
- long numActive = parentHostnames.size() - numNonActive;
+
+ if (nonActiveHosts.size() > 0) {
+ long numActive = parentHostnames.size() - nonActiveHosts.size();
var messageBuilder = new StringBuilder()
.append(numActive).append("/").append(parentHostnames.size())
.append(" hosts for ")
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/PrioritizableNode.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/PrioritizableNode.java
index c7732695069..6183bffe5ba 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/PrioritizableNode.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/PrioritizableNode.java
@@ -87,6 +87,10 @@ class PrioritizableNode implements Comparable<PrioritizableNode> {
throw new IllegalStateException("Nodes " + this.node + " and " + other.node + " have different states");
if (this.parent.isPresent() && other.parent.isPresent()) {
+ // Prefer reserved hosts (that they are reserved to the right tenant is ensured elsewhere)
+ if ( this.parent.get().reservedTo().isPresent() && ! other.parent.get().reservedTo().isPresent()) return -1;
+ if ( ! this.parent.get().reservedTo().isPresent() && other.parent.get().reservedTo().isPresent()) return 1;
+
int diskCostDifference = NodeResources.DiskSpeed.compare(this.parent.get().flavor().resources().diskSpeed(),
other.parent.get().flavor().resources().diskSpeed());
if (diskCostDifference != 0)