diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2020-03-25 20:31:06 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2020-03-25 20:31:06 +0100 |
commit | 34d5d8e4539462eb69045fc2def38d2529ba4288 (patch) | |
tree | 0609c67ceaea57f86512967c1e9816f29ccce8c2 | |
parent | f2e14e9ac5e5ea2b05f7aa34bf21dc73b6d8e0eb (diff) |
Remove clustertype from ClusterResources
5 files changed, 23 insertions, 22 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java index 7e2d6680827..e547de939ae 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java @@ -303,7 +303,7 @@ public abstract class Container extends AbstractService implements .slobrokId(serviceSlobrokId())). filedistributor(filedistributorConfig()); if (clusterName != null) { - builder.discriminator(clusterName+"."+name); + builder.discriminator(clusterName + "." + name); } else { builder.discriminator(name); } 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 40af5f43312..4d0de686a16 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 @@ -33,20 +33,25 @@ public class AllocatableClusterResources { this.clusterType = nodes.get(0).allocation().get().membership().cluster().type(); } - public AllocatableClusterResources(ClusterResources realResources, NodeResources advertisedResources) { + public AllocatableClusterResources(ClusterResources realResources, + NodeResources advertisedResources, + ClusterSpec.Type clusterType) { this.realResources = realResources.nodeResources(); this.advertisedResources = advertisedResources; this.nodes = realResources.nodes(); this.groups = realResources.groups(); - this.clusterType = realResources.clusterType(); + this.clusterType = clusterType; } - public AllocatableClusterResources(ClusterResources realResources, Flavor flavor, HostResourcesCalculator calculator) { + public AllocatableClusterResources(ClusterResources realResources, + Flavor flavor, + ClusterSpec.Type clusterType, + HostResourcesCalculator calculator) { this.realResources = realResources.nodeResources(); this.advertisedResources = calculator.advertisedResourcesOf(flavor); this.nodes = realResources.nodes(); this.groups = realResources.groups(); - this.clusterType = realResources.clusterType(); + this.clusterType = clusterType; } /** diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java index 0e70178f71e..d5658ff59f3 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/Autoscaler.java @@ -99,7 +99,8 @@ public class Autoscaler { Optional<AllocatableClusterResources> bestAllocation = Optional.empty(); for (ResourceIterator i = new ResourceIterator(cpuLoad, memoryLoad, diskLoad, currentAllocation); i.hasNext(); ) { ClusterResources allocation = i.next(); - Optional<AllocatableClusterResources> allocatableResources = toAllocatableResources(allocation); + Optional<AllocatableClusterResources> allocatableResources = toAllocatableResources(allocation, + currentAllocation.clusterType()); if (allocatableResources.isEmpty()) continue; if (bestAllocation.isEmpty() || allocatableResources.get().cost() < bestAllocation.get().cost()) bestAllocation = allocatableResources; @@ -123,15 +124,16 @@ public class Autoscaler { * Returns the smallest allocatable node resources larger than the given node resources, * or empty if none available. */ - private Optional<AllocatableClusterResources> toAllocatableResources(ClusterResources resources) { - NodeResources nodeResources = nodeResourceLimits.enlargeToLegal(resources.nodeResources(), - resources.clusterType()); + private Optional<AllocatableClusterResources> toAllocatableResources(ClusterResources resources, + ClusterSpec.Type clusterType) { + NodeResources nodeResources = nodeResourceLimits.enlargeToLegal(resources.nodeResources(), clusterType); if (allowsHostSharing(nodeRepository.zone().cloud())) { // return the requested resources, or empty if they cannot fit on existing hosts for (Flavor flavor : nodeRepository.getAvailableFlavors().getFlavors()) { if (flavor.resources().satisfies(nodeResources)) return Optional.of(new AllocatableClusterResources(resources.with(nodeResources), - nodeResources)); + nodeResources, + clusterType)); } return Optional.empty(); } @@ -145,6 +147,7 @@ public class Autoscaler { flavor = flavor.with(FlavorOverrides.ofDisk(nodeResources.diskGb())); var candidate = new AllocatableClusterResources(resources.with(flavor.resources()), flavor, + clusterType, resourcesCalculator); if (best.isEmpty() || candidate.cost() <= best.get().cost()) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterResources.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterResources.java index ebceba8c97f..7676b36add6 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterResources.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ClusterResources.java @@ -20,24 +20,19 @@ public class ClusterResources { /** The resources of each node in the cluster */ private final NodeResources nodeResources; - /** The kind of cluster these resources are for */ - private final ClusterSpec.Type clusterType; - - public ClusterResources(int nodes, int groups, NodeResources nodeResources, ClusterSpec.Type clusterType) { + public ClusterResources(int nodes, int groups, NodeResources nodeResources) { this.nodes = nodes; this.groups = groups; this.nodeResources = nodeResources; - this.clusterType = clusterType; } /** Returns the total number of allocated nodes (over all groups) */ public int nodes() { return nodes; } public int groups() { return groups; } public NodeResources nodeResources() { return nodeResources; } - public ClusterSpec.Type clusterType() { return clusterType; } public ClusterResources with(NodeResources resources) { - return new ClusterResources(nodes, groups, resources, clusterType); + return new ClusterResources(nodes, groups, resources); } @Override @@ -49,18 +44,17 @@ public class ClusterResources { if (other.nodes != this.nodes) return false; if (other.groups != this.groups) return false; if (other.nodeResources != this.nodeResources) return false; - if (other.clusterType != this.clusterType) return false; return true; } @Override public int hashCode() { - return Objects.hash(nodes, groups, nodeResources, clusterType); + return Objects.hash(nodes, groups, nodeResources); } @Override public String toString() { - return clusterType + " cluster resources: " + nodes + " * " + nodeResources + (groups > 1 ? " in " + groups + " groups" : ""); + return "cluster resources: " + nodes + " * " + nodeResources + (groups > 1 ? " in " + groups + " groups" : ""); } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ResourceIterator.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ResourceIterator.java index ee1af65753a..f8b9ae6924a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ResourceIterator.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/ResourceIterator.java @@ -58,8 +58,7 @@ public class ResourceIterator { int nodesWithRedundancy = currentNodes - (singleGroupMode ? 1 : groupSize); ClusterResources next = new ClusterResources(currentNodes, singleGroupMode ? 1 : currentNodes / groupSize, - resourcesFor(nodesWithRedundancy), - allocation.clusterType()); + resourcesFor(nodesWithRedundancy)); currentNodes += nodeIncrement; return next; } |