diff options
Diffstat (limited to 'config-model/src')
3 files changed, 23 insertions, 0 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 9f2f3620c73..ee9af73c554 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 @@ -42,6 +42,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private String jvmGCOptions = null; private String sequencerType = "LATENCY"; private int feedTaskLimit = 1000; + private int feedMasterTaskLimit = 0; private String sharedFieldWriterExecutor = "NONE"; private boolean firstTimeDeployment = false; private String responseSequencerType = "ADAPTIVE"; @@ -88,6 +89,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public String jvmGCOptions(Optional<ClusterSpec.Type> clusterType) { return jvmGCOptions; } @Override public String feedSequencerType() { return sequencerType; } @Override public int feedTaskLimit() { return feedTaskLimit; } + @Override public int feedMasterTaskLimit() { return feedMasterTaskLimit; } @Override public String sharedFieldWriterExecutor() { return sharedFieldWriterExecutor; } @Override public boolean isBootstrap() { return false; } @Override public boolean isFirstTimeDeployment() { return firstTimeDeployment; } @@ -178,6 +180,10 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea feedTaskLimit = value; return this; } + public TestProperties setFeedMasterTaskLimit(int value) { + feedMasterTaskLimit = value; + return this; + } public TestProperties setSharedFieldWriterExecutor(String value) { sharedFieldWriterExecutor = value; return this; 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 b8de1845834..d5500e7d040 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 @@ -65,6 +65,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> private Optional<ResourceLimits> resourceLimits = Optional.empty(); private final ProtonConfig.Indexing.Optimize.Enum feedSequencerType; private final int feedTaskLimit; + private final int feedMasterTaskLimit; private final ProtonConfig.Feeding.Shared_field_writer_executor.Enum sharedFieldWriterExecutor; private final double defaultFeedConcurrency; private final double defaultDiskBloatFactor; @@ -218,6 +219,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> this.combined = combined; this.feedSequencerType = convertFeedSequencerType(featureFlags.feedSequencerType()); this.feedTaskLimit = featureFlags.feedTaskLimit(); + this.feedMasterTaskLimit = featureFlags.feedMasterTaskLimit(); this.sharedFieldWriterExecutor = convertSharedFieldWriterExecutor(featureFlags.sharedFieldWriterExecutor()); this.defaultFeedConcurrency = featureFlags.feedConcurrency(); this.defaultDiskBloatFactor = featureFlags.diskBloatFactor(); @@ -441,6 +443,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> builder.indexing.optimize(feedSequencerType); } builder.indexing.tasklimit(feedTaskLimit); + builder.feeding.master_task_limit(feedMasterTaskLimit); builder.feeding.shared_field_writer_executor(sharedFieldWriterExecutor); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java index 1de37dbeccf..6d3e83af927 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java @@ -825,6 +825,20 @@ public class ContentBuilderTest extends DomBuilderTest { } @Test + public void feed_master_task_limit_is_controlled_by_feature_flag() { + assertEquals(0, resolveFeedMasterTaskLimitConfigWithFeatureFlag(null)); + assertEquals(2000, resolveFeedMasterTaskLimitConfigWithFeatureFlag(2000)); + } + + private int resolveFeedMasterTaskLimitConfigWithFeatureFlag(Integer value) { + var props = new TestProperties(); + if (value != null) { + props.setFeedMasterTaskLimit(value); + } + return resolveProtonConfig(props, singleNodeContentXml()).feeding().master_task_limit(); + } + + @Test public void shared_field_writer_executor_is_controlled_by_feature_flag() { assertEquals(Shared_field_writer_executor.Enum.NONE, |