diff options
author | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-05-10 15:44:45 +0200 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahooinc.com> | 2023-05-10 15:44:45 +0200 |
commit | 2ad5edd01b4eea8aa961413d10d3777012adc53e (patch) | |
tree | 834173b4604ee3ef565af79d42e80e3e16418827 /configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java | |
parent | 2d11f545108d46dc6ae2aff098892f5462f2cefc (diff) |
Add feature flag for enabling conditional put/remove write repair
This maps to controlling the distributed condition probe feature
of the content layer, which in turn controls whether a conditional
put/remove to an inconsistent bucket triggers a write repair step
on the distributor.
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java | 3 |
1 files changed, 3 insertions, 0 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 b443a0e64b0..59ddb8b68ab 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 @@ -205,6 +205,7 @@ public class ModelContextImpl implements ModelContext { private final boolean enableGlobalPhase; private final String summaryDecodePolicy; private final Predicate<ClusterSpec.Id> allowMoreThanOneContentGroupDown; + private final boolean enableConditionalPutRemoveWriteRepair; public FeatureFlags(FlagSource source, ApplicationId appId, Version version) { this.defaultTermwiseLimit = flagValue(source, appId, version, Flags.DEFAULT_TERM_WISE_LIMIT); @@ -252,6 +253,7 @@ public class ModelContextImpl implements ModelContext { this.enableGlobalPhase = flagValue(source, appId, version, Flags.ENABLE_GLOBAL_PHASE); this.summaryDecodePolicy = flagValue(source, appId, version, Flags.SUMMARY_DECODE_POLICY); this.allowMoreThanOneContentGroupDown = clusterId -> flagValue(source, appId, version, clusterId, Flags.ALLOW_MORE_THAN_ONE_CONTENT_GROUP_DOWN); + this.enableConditionalPutRemoveWriteRepair = flagValue(source, appId, version, Flags.ENABLE_CONDITIONAL_PUT_REMOVE_WRITE_REPAIR); } @Override public int heapSizePercentage() { return heapPercentage; } @@ -307,6 +309,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.test(id); } + @Override public boolean enableConditionalPutRemoveWriteRepair() { return enableConditionalPutRemoveWriteRepair; } private static <V> V flagValue(FlagSource source, ApplicationId appId, Version vespaVersion, UnboundFlag<? extends V, ?, ?> flag) { return flag.bindTo(source) |