aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java10
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepoStats.java8
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java6
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java4
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java4
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java3
9 files changed, 26 insertions, 21 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java
index 8fcdebc5d97..21349910ca1 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java
@@ -208,7 +208,7 @@ public class NodeResources {
/** Returns this with disk speed and storage type set to any */
public NodeResources justNumbers() {
if (isUnspecified()) return unspecified();
- return with(NodeResources.DiskSpeed.any).with(StorageType.any);
+ return with(NodeResources.DiskSpeed.any).with(StorageType.any).with(Architecture.any);
}
/** Returns this with all numbers set to 0 */
@@ -227,7 +227,8 @@ public class NodeResources {
diskGb - other.diskGb,
bandwidthGbps - other.bandwidthGbps,
this.diskSpeed.combineWith(other.diskSpeed),
- this.storageType.combineWith(other.storageType));
+ this.storageType.combineWith(other.storageType),
+ this.architecture.combineWith(other.architecture));
}
public NodeResources add(NodeResources other) {
@@ -239,7 +240,8 @@ public class NodeResources {
diskGb + other.diskGb,
bandwidthGbps + other.bandwidthGbps,
this.diskSpeed.combineWith(other.diskSpeed),
- this.storageType.combineWith(other.storageType));
+ this.storageType.combineWith(other.storageType),
+ this.architecture.combineWith(other.architecture));
}
private boolean isInterchangeableWith(NodeResources other) {
@@ -249,6 +251,8 @@ public class NodeResources {
return false;
if (this.storageType != StorageType.any && other.storageType != StorageType.any && this.storageType != other.storageType)
return false;
+ if (this.architecture != Architecture.any && other.architecture != Architecture.any && this.architecture != other.architecture)
+ return false;
return true;
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepoStats.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepoStats.java
index 338187c5270..fadd6814e64 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepoStats.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepoStats.java
@@ -58,7 +58,7 @@ public class NodeRepoStats {
}
private static Pair<Load, Load> computeLoad(NodeList allNodes, List<NodeTimeseries> allNodeTimeseries) {
- NodeResources totalActiveResources = NodeResources.zero();
+ NodeResources totalActiveResources = NodeResources.zero().justNumbers();
Load load = Load.zero();
for (var nodeTimeseries : allNodeTimeseries) {
Optional<Node> node = allNodes.node(nodeTimeseries.hostname());
@@ -73,7 +73,7 @@ public class NodeRepoStats {
totalActiveResources = totalActiveResources.add(resources.justNumbers());
}
- NodeResources totalHostResources = NodeResources.zero();
+ NodeResources totalHostResources = NodeResources.zero().justNumbers();
for (var host : allNodes.hosts()) {
totalHostResources = totalHostResources.add(host.resources().justNumbers());
@@ -91,8 +91,8 @@ public class NodeRepoStats {
.not().tester()
.groupingBy(node -> node.allocation().get().owner()).entrySet()) {
- NodeResources totalResources = NodeResources.zero();
- NodeResources totalUtilizedResources = NodeResources.zero();
+ NodeResources totalResources = NodeResources.zero().justNumbers();
+ NodeResources totalUtilizedResources = NodeResources.zero().justNumbers();
for (var node : applicationNodes.getValue()) {
var snapshot = snapshotsByHost.get(node.hostname());
if (snapshot == null) continue;
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java
index 5664b9bd7f4..88a4b492a0b 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/AllocatableClusterResources.java
@@ -125,7 +125,7 @@ public class AllocatableClusterResources {
}
private static NodeResources averageRealResourcesOf(List<Node> nodes, NodeRepository nodeRepository) {
- NodeResources sum = new NodeResources(0, 0, 0, 0);
+ NodeResources sum = new NodeResources(0, 0, 0, 0).justNumbers();
for (Node node : nodes)
sum = sum.add(nodeRepository.resourcesCalculator().realResourcesOf(node, nodeRepository).justNumbers());
return nodes.get(0).allocation().get().requestedResources().justNonNumbers()
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
index 636884cef0a..1fe29c8b162 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/MetricsReporter.java
@@ -343,7 +343,7 @@ public class MetricsReporter extends NodeRepositoryMaintainer {
(applicationId, applicationNodes) -> {
var allocatedCapacity = applicationNodes.stream()
.map(node -> node.allocation().get().requestedResources().justNumbers())
- .reduce(new NodeResources(0, 0, 0, 0, any), NodeResources::add);
+ .reduce(new NodeResources(0, 0, 0, 0, any).justNumbers(), NodeResources::add);
var context = getContext(dimensions(applicationId));
@@ -379,14 +379,14 @@ public class MetricsReporter extends NodeRepositoryMaintainer {
return nodes.hosts().state(State.active).asList().stream()
.map(host -> host.flavor().resources())
.map(NodeResources::justNumbers)
- .reduce(new NodeResources(0, 0, 0, 0, any), NodeResources::add);
+ .reduce(new NodeResources(0, 0, 0, 0, any).justNumbers(), NodeResources::add);
}
private static NodeResources getFreeCapacityTotal(NodeList nodes) {
return nodes.hosts().state(State.active).asList().stream()
.map(n -> freeCapacityOf(nodes, n))
.map(NodeResources::justNumbers)
- .reduce(new NodeResources(0, 0, 0, 0, any), NodeResources::add);
+ .reduce(new NodeResources(0, 0, 0, 0, any).justNumbers(), NodeResources::add);
}
private static NodeResources freeCapacityOf(NodeList nodes, Node host) {
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java
index 6a18003db62..3dd0b7d45a5 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/Rebalancer.java
@@ -77,14 +77,14 @@ public class Rebalancer extends NodeMover<Rebalancer.Move> {
}
private double skewReductionByRemoving(Node node, Node fromHost, HostCapacity capacity) {
- NodeResources freeHostCapacity = capacity.unusedCapacityOf(fromHost);
+ NodeResources freeHostCapacity = capacity.unusedCapacityOf(fromHost).justNumbers();
double skewBefore = Node.skew(fromHost.flavor().resources(), freeHostCapacity);
double skewAfter = Node.skew(fromHost.flavor().resources(), freeHostCapacity.add(node.flavor().resources().justNumbers()));
return skewBefore - skewAfter;
}
private double skewReductionByAdding(Node node, Node toHost, HostCapacity capacity) {
- NodeResources freeHostCapacity = capacity.unusedCapacityOf(toHost);
+ NodeResources freeHostCapacity = capacity.unusedCapacityOf(toHost).justNumbers();
double skewBefore = Node.skew(toHost.flavor().resources(), freeHostCapacity);
double skewAfter = Node.skew(toHost.flavor().resources(), freeHostCapacity.subtract(node.resources().justNumbers()));
return skewBefore - skewAfter;
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java
index b12f2c052c5..541194af36f 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainer.java
@@ -296,11 +296,11 @@ public class SpareCapacityMaintainer extends NodeRepositoryMaintainer {
NodeResources resources = hostCapacity.availableCapacityOf(host);
for (Move move : moves) {
if ( ! move.toHost().equals(host)) continue;
- resources = resources.subtract(move.node().resources());
+ resources = resources.subtract(move.node().resources()).justNumbers();
}
for (Move move : moves) {
if ( ! move.fromHost().equals(host)) continue;
- resources = resources.add(move.node().resources());
+ resources = resources.add(move.node().resources()).justNumbers();
}
return resources;
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
index 68aea0e9056..d9eef310c20 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/CapacityCheckerTester.java
@@ -76,7 +76,8 @@ public class CapacityCheckerTester {
new MemoryMetricsDb(clock),
new OrchestratorMock(),
true,
- 0, 1000);
+ 0,
+ 1000);
}
private void updateCapacityChecker() {
@@ -208,7 +209,8 @@ public class CapacityCheckerTester {
NodeResources containingNodeResources(List<NodeResources> resources, NodeResources excessCapacity) {
NodeResources usedByChildren = resources.stream()
- .reduce(new NodeResources(0, 0, 0, 0), NodeResources::add);
+ .map(NodeResources::justNumbers)
+ .reduce(new NodeResources(0, 0, 0, 0).justNumbers(), NodeResources::add);
return usedByChildren.add(excessCapacity);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
index 93cbce3f894..c642897748e 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ReservationExpirerTest.java
@@ -17,10 +17,8 @@ import com.yahoo.vespa.hosted.provision.provisioning.ProvisioningTester;
import org.junit.Test;
import java.time.Duration;
-import java.util.List;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
/**
* @author bratseth
@@ -35,7 +33,7 @@ public class ReservationExpirerTest {
NodeRepository nodeRepository = tester.nodeRepository();
TestMetric metric = new TestMetric();
- NodeResources nodeResources = new NodeResources(2, 8, 50, 1);
+ NodeResources nodeResources = new NodeResources(2, 8, 50, 1).justNumbers();
NodeResources hostResources = nodeResources.add(nodeResources).add(nodeResources);
tester.makeReadyNodes(2, nodeResources);
tester.makeReadyHosts(1, hostResources);
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
index 2fa18681ece..00fff017836 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/SpareCapacityMaintainerTest.java
@@ -270,7 +270,8 @@ public class SpareCapacityMaintainerTest {
new MemoryMetricsDb(clock),
new OrchestratorMock(),
true,
- 1, 1000);
+ 1,
+ 1000);
deployer = new MockDeployer(nodeRepository);
maintainer = new SpareCapacityMaintainer(deployer, nodeRepository, metric, Duration.ofDays(1), maxIterations);
}