diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-12-03 14:03:25 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2020-12-03 17:11:36 +0100 |
commit | fb21ab2649cd20e2361926404e1843c47c15d4fd (patch) | |
tree | f0bea441c78b8bd0390471fe8c57434df8effd89 /config-model-api | |
parent | 5832d0d6182f69bcd67403cb219420ddbe29487c (diff) |
Move non-permanent feature flags to ModelContext.FeatureFlags
Diffstat (limited to 'config-model-api')
-rw-r--r-- | config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java | 80 |
1 files changed, 47 insertions, 33 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index 09bc6c77e82..8fafa7e6048 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -49,8 +49,35 @@ public interface ModelContext { /** The Vespa version we want nodes to become */ Version wantedNodeVespaVersion(); + /** + * How to remove temporary feature flags: + * 1) + * - Remove flag definition from Flags + * - Remove method implementation from ModelContextImpl.FeatureFlags + * - Modify default implementation of below method to return the new default value + * - Remove all usage of below method from config-model + * + * 2) + * - Wait for all config-model versions in hosted production to include above changes + * - Remove below method + */ interface FeatureFlags { @ModelFeatureFlag(owners = {"bjorncs", "jonmv"}) default boolean enableAutomaticReindexing() { return false; } + @ModelFeatureFlag(owners = {"baldersheim"}, comment = "Revisit in May or June 2020") default double defaultTermwiseLimit() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"vekterli"}) default boolean useThreePhaseUpdates() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"geirst"}, comment = "Remove on 7.XXX when this is default on") default boolean useDirectStorageApiRpc() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"geirst"}, comment = "Remove on 7.XXX when this is default on") default boolean useFastValueTensorImplementation() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}, comment = "Select sequencer type use while feeding") default String feedSequencerType() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default String responseSequencerType() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default int defaultNumResponseThreads() { return 2; } + @ModelFeatureFlag(owners = {"baldersheim"}) default boolean skipCommunicationManagerThread() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default boolean skipMbusRequestThread() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default boolean skipMbusReplyThread() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"tokle"}) default boolean useAccessControlTlsHandshakeClientAuth() { return false; } + @ModelFeatureFlag(owners = {"baldersheim"}) default boolean useAsyncMessageHandlingOnSchedule() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default int contentNodeBucketDBStripeBits() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default int mergeChunkSize() { throw new UnsupportedOperationException("TODO specify default value"); } + @ModelFeatureFlag(owners = {"baldersheim"}) default double feedConcurrency() { throw new UnsupportedOperationException("TODO specify default value"); } } /** Warning: As elsewhere in this package, do not make backwards incompatible changes that will break old config models! */ @@ -68,39 +95,8 @@ public interface ModelContext { boolean isBootstrap(); boolean isFirstTimeDeployment(); - // TODO: Only needed for LbServicesProducerTest - default boolean useDedicatedNodeForLogserver() { return true; } - default Optional<EndpointCertificateSecrets> endpointCertificateSecrets() { return Optional.empty(); } - // TODO Revisit in May or June 2020 - double defaultTermwiseLimit(); - - default int defaultNumResponseThreads() { return 2; } - - /// Default setting for the gc-options attribute if not specified explicit by application - String jvmGCOptions(); - - // Select sequencer type use while feeding. - String feedSequencerType(); - String responseSequencerType(); - boolean skipCommunicationManagerThread(); - boolean skipMbusRequestThread(); - boolean skipMbusReplyThread(); - - boolean useAsyncMessageHandlingOnSchedule(); - int contentNodeBucketDBStripeBits(); - int mergeChunkSize(); - double feedConcurrency(); - - boolean useThreePhaseUpdates(); - - // TODO Remove on 7.XXX when this is default on. - boolean useDirectStorageApiRpc(); - - // TODO Remove on 7.XXX when this is default on. - boolean useFastValueTensorImplementation(); - default Optional<AthenzDomain> athenzDomain() { return Optional.empty(); } Optional<ApplicationRoles> applicationRoles(); @@ -109,9 +105,27 @@ public interface ModelContext { return Quota.unlimited(); } - // TODO(mortent): Temporary feature flag - default boolean useAccessControlTlsHandshakeClientAuth() { return false; } + /// Default setting for the gc-options attribute if not specified explicit by application + String jvmGCOptions(); + // TODO(somebody): Only needed for LbServicesProducerTest + default boolean useDedicatedNodeForLogserver() { return true; } + // NOTE: Use FeatureFlags interface above instead of non-permament flags + @Deprecated double defaultTermwiseLimit(); + @Deprecated default int defaultNumResponseThreads() { return 2; } + @Deprecated String feedSequencerType(); + @Deprecated String responseSequencerType(); + @Deprecated boolean skipCommunicationManagerThread(); + @Deprecated boolean skipMbusRequestThread(); + @Deprecated boolean skipMbusReplyThread(); + @Deprecated boolean useAsyncMessageHandlingOnSchedule(); + @Deprecated int contentNodeBucketDBStripeBits(); + @Deprecated int mergeChunkSize(); + @Deprecated double feedConcurrency(); + @Deprecated boolean useThreePhaseUpdates(); + @Deprecated boolean useDirectStorageApiRpc(); + @Deprecated boolean useFastValueTensorImplementation(); + @Deprecated default boolean useAccessControlTlsHandshakeClientAuth() { return false; } } @Retention(RetentionPolicy.RUNTIME) |