diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-10-29 14:24:37 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-10-29 14:24:37 +0100 |
commit | 31bd8f7ddf34bd305c33a42bf1956d651aff0251 (patch) | |
tree | 2b4e5b4795bdde91c7998a484481c14fd4d84637 /node-repository/src/main/java | |
parent | 55100169f422b5c051fc56b211eff940c9b7ba5b (diff) |
Add method to calculate thin pool size
Diffstat (limited to 'node-repository/src/main/java')
3 files changed, 18 insertions, 8 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java index 07668189107..3a3a5d80b72 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java @@ -3,6 +3,8 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.NodeResources; +import com.yahoo.config.provision.NodeType; +import com.yahoo.config.provision.Zone; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.Nodelike; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerService; @@ -45,6 +47,9 @@ public class EmptyProvisionServiceProvider implements ProvisionServiceProvider { @Override public NodeResources realToRequest(NodeResources resources) { return resources; } + @Override + public long thinPoolSizeInBase2Gb(Zone zone, NodeType nodeType) { return 0; } + } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java index 97752fd3cda..40ecaa8a7a3 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java @@ -3,6 +3,8 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.config.provision.Flavor; import com.yahoo.config.provision.NodeResources; +import com.yahoo.config.provision.NodeType; +import com.yahoo.config.provision.Zone; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.Nodelike; @@ -34,4 +36,9 @@ public interface HostResourcesCalculator { */ NodeResources realToRequest(NodeResources realResources); + /** + * Returns the needed thin pool size in base2 Gb. + */ + long thinPoolSizeInBase2Gb(Zone zone, NodeType nodeType); + } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java index 3d5cde35bf6..d2347fe0cb6 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.config.provision.ClusterSpec; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.NodeResources; +import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.hosted.provision.NodeRepository; @@ -75,15 +76,12 @@ public class NodeResourceLimits { return minRealDiskGb() + getThinPoolSize(requested.storageType()); } - // TODO: Calculate thin pool size instead of hardcoding + // Note: Assumes node type 'host' private long getThinPoolSize(NodeResources.StorageType storageType) { - if (storageType == NodeResources.StorageType.local && zone().getCloud().dynamicProvisioning()) { - if (zone().system() == SystemName.Public) - return 12; - else - return 24; - } - return 4; + if (storageType == NodeResources.StorageType.local && zone().getCloud().dynamicProvisioning()) + return nodeRepository.resourcesCalculator().thinPoolSizeInBase2Gb(zone(), NodeType.host); + else + return 4; } private double minRealVcpu() { return minAdvertisedVcpu(); } |