summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-05-21 13:19:32 +0200
committerJon Bratseth <bratseth@gmail.com>2020-05-21 13:19:32 +0200
commitb7dbfcbdd6722945019fc5ccc55729db4516328a (patch)
tree82e65008501c3e9d98d89c52d11d5944859b9695
parent1ca40f19299c6c96273415472f8a9ac3a0d02c28 (diff)
Access flavor resources through resources()
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java23
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java8
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java6
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java4
4 files changed, 25 insertions, 16 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java
index 0998d583d6c..9cea509b13b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.search;
import com.yahoo.config.provision.Flavor;
+import com.yahoo.config.provision.NodeResources;
import com.yahoo.vespa.config.search.core.ProtonConfig;
import static java.lang.Long.min;
@@ -13,8 +14,8 @@ import static java.lang.Long.min;
*/
public class NodeFlavorTuning implements ProtonConfig.Producer {
- static long MB = 1024 * 1024;
- static long GB = MB * 1024;
+ final static long MB = 1024 * 1024;
+ final static long GB = MB * 1024;
private final Flavor nodeFlavor;
private final int redundancy;
private final int searchableCopies;
@@ -51,13 +52,13 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
private void getConfig(ProtonConfig.Documentdb.Builder builder) {
ProtonConfig.Documentdb dbCfg = builder.build();
if (dbCfg.mode() != ProtonConfig.Documentdb.Mode.Enum.INDEX) {
- long numDocs = (long)nodeFlavor.getMinMainMemoryAvailableGb()*GB/64L;
+ long numDocs = (long)nodeFlavor.resources().memoryGb() * GB / 64L;
builder.allocation.initialnumdocs(numDocs/Math.max(searchableCopies, redundancy));
}
}
private void tuneSummaryCache(ProtonConfig.Summary.Cache.Builder builder) {
- long memoryLimitBytes = (long) ((nodeFlavor.getMinMainMemoryAvailableGb() * 0.05) * GB);
+ long memoryLimitBytes = (long) ((nodeFlavor.resources().memoryGb() * 0.05) * GB);
builder.maxbytes(memoryLimitBytes);
}
@@ -69,13 +70,13 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
}
private void tuneDiskWriteSpeed(ProtonConfig.Builder builder) {
- if (!nodeFlavor.hasFastDisk()) {
+ if (nodeFlavor.resources().diskSpeed() != NodeResources.DiskSpeed.fast) {
builder.hwinfo.disk.writespeed(40);
}
}
private void tuneDocumentStoreMaxFileSize(ProtonConfig.Summary.Log.Builder builder) {
- double memoryGb = nodeFlavor.getMinMainMemoryAvailableGb();
+ double memoryGb = nodeFlavor.resources().memoryGb();
long fileSizeBytes = 4 * GB;
if (memoryGb <= 12.0) {
fileSizeBytes = 256 * MB;
@@ -88,25 +89,25 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
}
private void tuneFlushStrategyMemoryLimits(ProtonConfig.Flush.Memory.Builder builder) {
- long memoryLimitBytes = (long) ((nodeFlavor.getMinMainMemoryAvailableGb() / 8) * GB);
+ long memoryLimitBytes = (long) ((nodeFlavor.resources().memoryGb() / 8) * GB);
builder.maxmemory(memoryLimitBytes);
builder.each.maxmemory(memoryLimitBytes);
}
private void tuneFlushStrategyTlsSize(ProtonConfig.Flush.Memory.Builder builder) {
- long tlsSizeBytes = (long) ((nodeFlavor.getMinDiskAvailableGb() * 0.07) * GB);
+ long tlsSizeBytes = (long) ((nodeFlavor.resources().diskGb() * 0.07) * GB);
tlsSizeBytes = min(tlsSizeBytes, 100 * GB);
builder.maxtlssize(tlsSizeBytes);
}
private void tuneSummaryReadIo(ProtonConfig.Summary.Read.Builder builder) {
- if (nodeFlavor.hasFastDisk()) {
+ if (nodeFlavor.resources().diskSpeed() == NodeResources.DiskSpeed.fast) {
builder.io(ProtonConfig.Summary.Read.Io.DIRECTIO);
}
}
private void tuneSearchReadIo(ProtonConfig.Search.Mmap.Builder builder) {
- if (nodeFlavor.hasFastDisk()) {
+ if (nodeFlavor.resources().diskSpeed() == NodeResources.DiskSpeed.fast) {
builder.advise(ProtonConfig.Search.Mmap.Advise.RANDOM);
}
}
@@ -122,7 +123,7 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
// "Reserve" 1GB of memory for other processes running on the content node (config-proxy, cluster-controller, metrics-proxy)
double reservedMemoryGb = 1;
double defaultMemoryLimit = new ProtonConfig.Writefilter(new ProtonConfig.Writefilter.Builder()).memorylimit();
- double scaledMemoryLimit = ((nodeFlavor.getMinMainMemoryAvailableGb() - reservedMemoryGb) * defaultMemoryLimit) / nodeFlavor.getMinMainMemoryAvailableGb();
+ double scaledMemoryLimit = ((nodeFlavor.resources().memoryGb() - reservedMemoryGb) * defaultMemoryLimit) / nodeFlavor.resources().memoryGb();
builder.memorylimit(scaledMemoryLimit);
}
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
index 8d767e9f4ad..6f51e28b51e 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Flavor.java
@@ -109,12 +109,20 @@ public class Flavor {
public Optional<FlavorOverrides> flavorOverrides() { return flavorOverrides; }
+ // TODO: Remove after June 2020
+ @Deprecated
public double getMinMainMemoryAvailableGb() { return resources.memoryGb(); }
+ // TODO: Remove after June 2020
+ @Deprecated
public double getMinDiskAvailableGb() { return resources.diskGb(); }
+ // TODO: Remove after June 2020
+ @Deprecated
public boolean hasFastDisk() { return resources.diskSpeed() == NodeResources.DiskSpeed.fast; }
+ // TODO: Remove after June 2020
+ @Deprecated
public double getBandwidthGbps() { return resources.bandwidthGbps(); }
/** Returns the number of cores available in this flavor, not scaled for speed. */
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
index 134b3bc1cd7..f3fe1fc4915 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializerTest.java
@@ -275,12 +275,12 @@ public class NodeSerializerTest {
@Test
public void flavor_overrides_serialization() {
Node node = createNode();
- assertEquals(20, node.flavor().getMinDiskAvailableGb(), 0);
+ assertEquals(20, node.flavor().resources().diskGb(), 0);
node = node.with(node.flavor().with(FlavorOverrides.ofDisk(1234)));
- assertEquals(1234, node.flavor().getMinDiskAvailableGb(), 0);
+ assertEquals(1234, node.flavor().resources().diskGb(), 0);
Node copy = nodeSerializer.fromJson(Node.State.provisioned, nodeSerializer.toJson(node));
- assertEquals(1234, copy.flavor().getMinDiskAvailableGb(), 0);
+ assertEquals(1234, copy.flavor().resources().diskGb(), 0);
assertEquals(node, copy);
}
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java
index fd2374c55b7..ea4386f2fd5 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/AllocationVisualizer.java
@@ -102,13 +102,13 @@ public class AllocationVisualizer extends JPanel {
if (isHost) {
g.setColor(Color.GRAY);
- for (int i = 0; i < node.flavor().getMinMainMemoryAvailableGb(); i++) {
+ for (int i = 0; i < node.flavor().resources().memoryGb(); i++) {
g.fillRect(x, y - nodeHeight, nodeWidth, nodeHeight);
y = y - (nodeHeight + 2);
}
} else {
g.setColor(Color.YELLOW);
- int multi = (int) node.flavor().getMinMainMemoryAvailableGb();
+ int multi = (int) node.flavor().resources().memoryGb();
int height = multi * nodeHeight + ((multi - 1) * 2);
g.fillRect(x, y - height, nodeWidth, height);