summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-06-14 23:51:23 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2022-06-14 23:51:23 +0200
commit0973c5c6582ff96388581206d05198e4f0a20eb7 (patch)
treef72ae1f69516d9ca199529ff1a53dcf1dd2cbe6a /config-model/src/main/java
parent607989caa12d1ec3fbafac816431a60239974d05 (diff)
Add control of wether shared string repo will reclaim unused enums, or if they will just grow.
Diffstat (limited to 'config-model/src/main/java')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java25
3 files changed, 30 insertions, 11 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
index aa8a0f6e1ec..1e135b5ac6c 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
@@ -76,6 +76,8 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
private List<String> environmentVariables = List.of();
private boolean avoidRenamingSummaryFeatures = true;
private boolean enableBitVectors = false;
+ private boolean loadCodeAsHugePages = false;
+ private boolean sharedStringRepoReclaim = true;
private Architecture adminClusterNodeResourcesArchitecture = Architecture.getDefault();
@Override public ModelContext.FeatureFlags featureFlags() { return this; }
@@ -132,6 +134,18 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
@Override public boolean avoidRenamingSummaryFeatures() { return this.avoidRenamingSummaryFeatures; }
@Override public boolean enableBitVectors() { return this.enableBitVectors; }
@Override public Architecture adminClusterArchitecture() { return adminClusterNodeResourcesArchitecture; }
+ @Override public boolean sharedStringRepoReclaim() { return sharedStringRepoReclaim; }
+ @Override public boolean loadCodeAsHugePages() { return loadCodeAsHugePages; }
+
+ public TestProperties sharedStringRepoReclaim(boolean sharedStringRepoReclaim) {
+ this.sharedStringRepoReclaim = sharedStringRepoReclaim;
+ return this;
+ }
+
+ public TestProperties loadCodeAsHugePages(boolean loadCodeAsHugePages) {
+ this.loadCodeAsHugePages = loadCodeAsHugePages;
+ return this;
+ }
public TestProperties maxUnCommittedMemory(int maxUnCommittedMemory) {
this.maxUnCommittedMemory = maxUnCommittedMemory;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
index 1ab5fd22648..379115ab3ca 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java
@@ -274,7 +274,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster>
if (element == null) {
searchNode = SearchNode.create(parent, "" + node.getDistributionKey(), node.getDistributionKey(), spec,
clusterName, node, flushOnShutdown, tuning, resourceLimits, deployState.isHosted(),
- deployState.featureFlags().loadCodeAsHugePages(), fractionOfMemoryReserved);
+ fractionOfMemoryReserved, deployState.featureFlags());
searchNode.setHostResource(node.getHostResource());
searchNode.initService(deployState);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
index 3461cab1201..0c8ff954375 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.search;
import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig;
+import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.config.provision.NodeResources;
@@ -60,10 +61,10 @@ public class SearchNode extends AbstractService implements
private final boolean isHostedVespa;
private final boolean flushOnShutdown;
private final NodeSpec nodeSpec;
- private int distributionKey;
+ private final int distributionKey;
private final String clusterName;
private TransactionLogServer tls;
- private AbstractService serviceLayerService;
+ private final AbstractService serviceLayerService;
private final Optional<Tuning> tuning;
private final Optional<ResourceLimits> resourceLimits;
private final double fractionOfMemoryReserved;
@@ -96,7 +97,7 @@ public class SearchNode extends AbstractService implements
protected SearchNode doBuild(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec) {
return SearchNode.create(ancestor, name, contentNode.getDistributionKey(), nodeSpec, clusterName, contentNode,
flushOnShutdown, tuning, resourceLimits, deployState.isHosted(),
- deployState.featureFlags().loadCodeAsHugePages(), fractionOfMemoryReserved);
+ fractionOfMemoryReserved, deployState.featureFlags());
}
}
@@ -104,22 +105,26 @@ public class SearchNode extends AbstractService implements
public static SearchNode create(AbstractConfigProducer parent, String name, int distributionKey, NodeSpec nodeSpec,
String clusterName, AbstractService serviceLayerService, boolean flushOnShutdown,
Optional<Tuning> tuning, Optional<ResourceLimits> resourceLimits, boolean isHostedVespa,
- boolean loadCodeAsHugePages, double fractionOfMemoryReserved) {
- return new SearchNode(parent, name, distributionKey, nodeSpec, clusterName, serviceLayerService, flushOnShutdown,
- tuning, resourceLimits, isHostedVespa, loadCodeAsHugePages, fractionOfMemoryReserved);
+ double fractionOfMemoryReserved, ModelContext.FeatureFlags featureFlags) {
+ SearchNode node = new SearchNode(parent, name, distributionKey, nodeSpec, clusterName, serviceLayerService, flushOnShutdown,
+ tuning, resourceLimits, isHostedVespa, fractionOfMemoryReserved);
+ if (featureFlags.loadCodeAsHugePages()) {
+ node.addEnvironmentVariable("VESPA_LOAD_CODE_AS_HUGEPAGES", "true");
+ }
+ if ( ! featureFlags.sharedStringRepoReclaim()) {
+ node.addEnvironmentVariable("VESPA_SHARED_STRING_REPO_NO_RECLAIM", "true");
+ }
+ return node;
}
private SearchNode(AbstractConfigProducer parent, String name, int distributionKey, NodeSpec nodeSpec,
String clusterName, AbstractService serviceLayerService, boolean flushOnShutdown,
Optional<Tuning> tuning, Optional<ResourceLimits> resourceLimits, boolean isHostedVespa,
- boolean loadCodeAsHugePages, double fractionOfMemoryReserved) {
+ double fractionOfMemoryReserved) {
super(parent, name);
this.distributionKey = distributionKey;
this.serviceLayerService = serviceLayerService;
this.isHostedVespa = isHostedVespa;
- if (loadCodeAsHugePages) {
- addEnvironmentVariable("VESPA_LOAD_CODE_AS_HUGEPAGES", "true");
- }
this.fractionOfMemoryReserved = fractionOfMemoryReserved;
this.nodeSpec = nodeSpec;
this.clusterName = clusterName;