diff options
author | Harald Musum <musum@yahooinc.com> | 2023-04-17 09:01:06 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-04-17 09:01:06 +0200 |
commit | 9e30a3f0e6267191a591454ea673947fc43dd70b (patch) | |
tree | 2f786f7a3e251ded3907964464f4ccce3f3750aa /configserver | |
parent | 8ee27958b2f51eff74f3e4e8eff945f186243a92 (diff) |
Add flag for allowing more than one content group down
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java | 26 |
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"; |