summaryrefslogtreecommitdiffstats
path: root/configserver/src
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-04-17 09:01:06 +0200
committerHarald Musum <musum@yahooinc.com>2023-04-17 09:01:06 +0200
commit9e30a3f0e6267191a591454ea673947fc43dd70b (patch)
tree2f786f7a3e251ded3907964464f4ccce3f3750aa /configserver/src
parent8ee27958b2f51eff74f3e4e8eff945f186243a92 (diff)
Add flag for allowing more than one content group down
Diffstat (limited to 'configserver/src')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java26
1 files changed, 24 insertions, 2 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
index 7a2377594a1..7ba7f4c9e77 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java
@@ -22,10 +22,10 @@ import com.yahoo.config.provision.AthenzDomain;
import com.yahoo.config.provision.CloudAccount;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.DockerImage;
+import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.TenantName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.jdisc.secretstore.SecretStore;
-import com.yahoo.config.provision.HostName;
import com.yahoo.vespa.config.server.tenant.SecretStoreExternalIdRetriever;
import com.yahoo.vespa.flags.FetchVector;
import com.yahoo.vespa.flags.FlagSource;
@@ -33,7 +33,6 @@ import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.flags.PermanentFlags;
import com.yahoo.vespa.flags.StringFlag;
import com.yahoo.vespa.flags.UnboundFlag;
-
import java.io.File;
import java.net.URI;
import java.security.cert.X509Certificate;
@@ -204,6 +203,7 @@ public class ModelContextImpl implements ModelContext {
private final int heapPercentage;
private final boolean enableGlobalPhase;
private final String summaryDecodePolicy;
+ private final ToIntFunction<ClusterSpec.Id> allowMoreThanOneContentGroupDown;
public FeatureFlags(FlagSource source, ApplicationId appId, Version version) {
this.defaultTermwiseLimit = flagValue(source, appId, version, Flags.DEFAULT_TERM_WISE_LIMIT);
@@ -250,6 +250,7 @@ public class ModelContextImpl implements ModelContext {
this.heapPercentage = flagValue(source, appId, version, PermanentFlags.HEAP_SIZE_PERCENTAGE);
this.enableGlobalPhase = flagValue(source, appId, version, Flags.ENABLE_GLOBAL_PHASE);
this.summaryDecodePolicy = flagValue(source, appId, version, Flags.SUMMARY_DECODE_POLICY);
+ this.allowMoreThanOneContentGroupDown = clusterId -> flagValueAsInt(source, appId, version, clusterId, Flags.ALLOW_MORE_THAN_ONE_CONTENT_GROUP_DOWN);
}
@Override public int heapSizePercentage() { return heapPercentage; }
@@ -304,6 +305,7 @@ public class ModelContextImpl implements ModelContext {
}
@Override public boolean useRestrictedDataPlaneBindings() { return useRestrictedDataPlaneBindings; }
@Override public boolean enableGlobalPhase() { return enableGlobalPhase; }
+ @Override public boolean allowMoreThanOneContentGroupDown(ClusterSpec.Id id) { return allowMoreThanOneContentGroupDown.applyAsInt(id) != 0; }
private static <V> V flagValue(FlagSource source, ApplicationId appId, Version vespaVersion, UnboundFlag<? extends V, ?, ?> flag) {
return flag.bindTo(source)
@@ -331,6 +333,18 @@ public class ModelContextImpl implements ModelContext {
.boxedValue();
}
+ private static <V> V flagValue(FlagSource source,
+ ApplicationId appId,
+ Version vespaVersion,
+ ClusterSpec.Id clusterId,
+ UnboundFlag<? extends V, ?, ?> flag) {
+ return flag.bindTo(source)
+ .with(FetchVector.Dimension.APPLICATION_ID, appId.serializedForm())
+ .with(FetchVector.Dimension.CLUSTER_ID, clusterId.value())
+ .with(FetchVector.Dimension.VESPA_VERSION, vespaVersion.toFullString())
+ .boxedValue();
+ }
+
static int flagValueAsInt(FlagSource source,
ApplicationId appId,
Version version,
@@ -339,6 +353,14 @@ public class ModelContextImpl implements ModelContext {
return flagValue(source, appId, version, clusterType, flag) ? 1 : 0;
}
+ static int flagValueAsInt(FlagSource source,
+ ApplicationId appId,
+ Version version,
+ ClusterSpec.Id clusterId,
+ UnboundFlag<? extends Boolean, ?, ?> flag) {
+ return flagValue(source, appId, version, clusterId, flag) ? 1 : 0;
+ }
+
private String translateJvmOmitStackTraceInFastThrowIntToString(ToIntFunction<ClusterSpec.Type> function,
ClusterSpec.Type clusterType) {
return function.applyAsInt(clusterType) == 1 ? "" : "-XX:-OmitStackTraceInFastThrow";