summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-10-29 14:24:37 +0100
committerHarald Musum <musum@verizonmedia.com>2020-10-29 14:24:37 +0100
commit31bd8f7ddf34bd305c33a42bf1956d651aff0251 (patch)
tree2b4e5b4795bdde91c7998a484481c14fd4d84637 /node-repository/src/main/java
parent55100169f422b5c051fc56b211eff940c9b7ba5b (diff)
Add method to calculate thin pool size
Diffstat (limited to 'node-repository/src/main/java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/EmptyProvisionServiceProvider.java5
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/HostResourcesCalculator.java7
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeResourceLimits.java14
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(); }