diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-14 21:36:13 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-02-14 21:36:13 +0100 |
commit | b0ab8b2c6a278a343ed6f08af6072e4fa526150a (patch) | |
tree | 1d472a8f719c6b61947f5e6a9a83b22a2e0c5ee4 /config-model | |
parent | 5e6d0030e9bc9d4b61327ee62ae441a7322fc811 (diff) |
Control use of bucket executor for bucket move job.
Diffstat (limited to 'config-model')
3 files changed, 27 insertions, 1 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 397b11661e5..af1afb32d29 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 @@ -51,6 +51,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea private boolean enableAutomaticReindexing = false; private boolean reconfigurableZookeeperServer = false; private boolean useBucketExecutorForLidSpaceCompact; + private boolean useBucketExecutorForBucketMove; private boolean enableFeedBlockInDistributor = false; private double maxDeadBytesRatio = 0.2; private int clusterControllerMaxHeapSizeInMb = 512; @@ -87,6 +88,7 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea @Override public boolean enableAutomaticReindexing() { return enableAutomaticReindexing; } @Override public boolean reconfigurableZookeeperServer() { return reconfigurableZookeeperServer; } @Override public boolean useBucketExecutorForLidSpaceCompact() { return useBucketExecutorForLidSpaceCompact; } + @Override public boolean useBucketExecutorForBucketMove() { return useBucketExecutorForBucketMove; } @Override public boolean enableFeedBlockInDistributor() { return enableFeedBlockInDistributor; } @Override public double maxDeadBytesRatio() { return maxDeadBytesRatio; } @Override public int clusterControllerMaxHeapSizeInMb() { return clusterControllerMaxHeapSizeInMb; } @@ -194,6 +196,11 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea return this; } + public TestProperties useBucketExecutorForBucketMove(boolean enabled) { + useBucketExecutorForBucketMove = enabled; + return this; + } + public TestProperties enableFeedBlockInDistributor(boolean enabled) { enableFeedBlockInDistributor = enabled; 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 0fdd39e70cf..b081b165f5b 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 @@ -12,7 +12,6 @@ import com.yahoo.vespa.model.builder.xml.dom.DomSearchTuningBuilder; import com.yahoo.vespa.model.builder.xml.dom.ModelElement; import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder; import com.yahoo.vespa.model.content.cluster.ContentCluster; -import com.yahoo.vespa.model.content.cluster.DomResourceLimitsBuilder; import com.yahoo.vespa.model.search.AbstractSearchCluster; import com.yahoo.vespa.model.search.IndexedSearchCluster; import com.yahoo.vespa.model.search.NamedSchema; @@ -66,6 +65,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> private final ProtonConfig.Indexing.Optimize.Enum feedSequencerType; private final double defaultFeedConcurrency; private final boolean useBucketExecutorForLidSpaceCompact; + private final boolean useBucketExecutorForBucketMove; private final double defaultMaxDeadBytesRatio; /** Whether the nodes of this cluster also hosts a container cluster in a hosted system */ @@ -207,6 +207,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> feedSequencerType = convertFeedSequencerType(featureFlags.feedSequencerType()); defaultFeedConcurrency = featureFlags.feedConcurrency(); useBucketExecutorForLidSpaceCompact = featureFlags.useBucketExecutorForLidSpaceCompact(); + useBucketExecutorForBucketMove = featureFlags.useBucketExecutorForBucketMove(); defaultMaxDeadBytesRatio = featureFlags.maxDeadBytesRatio(); } @@ -430,6 +431,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> builder.indexing.optimize(feedSequencerType); } builder.lidspacecompaction.usebucketexecutor(useBucketExecutorForLidSpaceCompact); + builder.bucketmove.usebucketexecutor(useBucketExecutorForBucketMove); } private boolean isGloballyDistributed(NewDocumentType docType) { 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 55234a3a96e..336cfb2d757 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 @@ -835,6 +835,17 @@ public class ContentBuilderTest extends DomBuilderTest { assertEquals(flag, config.lidspacecompaction().usebucketexecutor()); } + private void verifyThatFeatureFlagControlsUseBucketExecutorForBucketMove(boolean flag) { + DeployState.Builder deployStateBuilder = new DeployState.Builder().properties(new TestProperties().useBucketExecutorForBucketMove(flag)); + VespaModel model = new VespaModelCreatorWithMockPkg(new MockApplicationPackage.Builder() + .withServices(singleNodeContentXml()) + .withSearchDefinition(MockApplicationPackage.MUSIC_SEARCHDEFINITION) + .build()) + .create(deployStateBuilder); + ProtonConfig config = getProtonConfig(model.getContentClusters().values().iterator().next()); + assertEquals(flag, config.bucketmove().usebucketexecutor()); + } + @Test public void verifyUseBucketExecutorForLidSpaceCompact() { verifyThatFeatureFlagControlsUseBucketExecutorForLidSpaceCompact(true); @@ -842,6 +853,12 @@ public class ContentBuilderTest extends DomBuilderTest { } @Test + public void verifyUseBucketExecutorForBucketMove() { + verifyThatFeatureFlagControlsUseBucketExecutorForBucketMove(true); + verifyThatFeatureFlagControlsUseBucketExecutorForBucketMove(false); + } + + @Test public void failWhenNoDocumentsElementSpecified() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("The specified content engine requires the <documents> element to be specified."); |