diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-05-21 13:19:32 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-05-21 13:19:32 +0200 |
commit | b7dbfcbdd6722945019fc5ccc55729db4516328a (patch) | |
tree | 82e65008501c3e9d98d89c52d11d5944859b9695 | |
parent | 1ca40f19299c6c96273415472f8a9ac3a0d02c28 (diff) |
Access flavor resources through resources()
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); |