diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-09-22 13:53:41 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-09-22 13:53:41 +0000 |
commit | 28f7c0ced6e771fe9fd44d1716d71f3788bf1d5c (patch) | |
tree | 2cd97e07a04f53492660e4c8133ecb6ba0bb3c7c /config-model | |
parent | fc4520c2727345ff8d67616c4d3bb50b3b765307 (diff) |
Control visibility-delay with feature flag.
Diffstat (limited to 'config-model')
3 files changed, 37 insertions, 6 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 22bdf31350a..d9cebd2b1d2 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 @@ -41,6 +41,7 @@ public class TestProperties implements ModelContext.Properties { private double defaultTermwiseLimit = 1.0; private double threadPoolSizeFactor = 0.0; private double queueSizeFactor = 0.0; + private double visibilityDelay = 0.0; private String jvmGCOptions = null; private String sequencerType = "LATENCY"; private String responseSequencerType = "ADAPTIVE"; @@ -83,6 +84,7 @@ public class TestProperties implements ModelContext.Properties { @Override public boolean skipMbusRequestThread() { return false; } @Override public boolean skipMbusReplyThread() { return false; } @Override public Quota quota() { return quota; } + @Override public double visibilityDelay() { return visibilityDelay; } public TestProperties setJvmGCOptions(String gcOptions) { jvmGCOptions = gcOptions; @@ -139,6 +141,11 @@ public class TestProperties implements ModelContext.Properties { return this; } + public TestProperties setVisibilityDelay(double visibilityDelay) { + this.visibilityDelay = visibilityDelay; + return this; + } + public TestProperties setMultitenant(boolean multitenant) { this.multitenant = multitenant; 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 f329f62ee7b..50a6054d1b9 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 @@ -200,6 +200,7 @@ public class ContentSearchCluster extends AbstractConfigProducer implements Prot this.flushOnShutdown = flushOnShutdown; this.combined = combined; feedSequencerType = convertFeedSequencerType(featureFlags.feedSequencerType()); + visibilityDelay = featureFlags.visibilityDelay(); } public void setVisibilityDelay(double delay) { 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 99f8b8cbb5e..443bd2433c1 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 @@ -760,15 +760,12 @@ public class ContentBuilderTest extends DomBuilderTest { } } - private void verifyFeedSequencer(String input, String expected) { - verifyFeedSequencer(input, expected, 0); - } - private void verifyFeedSequencer(String input, String expected, double visibilityDelay) { - String hostedXml = "<services>" + + private String xmlWithVisibilityDelay(Double visibilityDelay) { + return "<services>" + "<content version='1.0' id='search'>" + " <redundancy>1</redundancy>" + " <search>" + - " <visibility-delay>" + visibilityDelay + "</visibility-delay>" + + ((visibilityDelay != null) ? " <visibility-delay>" + visibilityDelay + "</visibility-delay>" : "") + " </search>" + " <documents>" + " <document type='music' mode='index'/>" + @@ -776,6 +773,13 @@ public class ContentBuilderTest extends DomBuilderTest { " <nodes count='1'/>" + "</content>" + "</services>"; + } + + private void verifyFeedSequencer(String input, String expected) { + verifyFeedSequencer(input, expected, 0); + } + private void verifyFeedSequencer(String input, String expected, double visibilityDelay) { + String hostedXml = xmlWithVisibilityDelay(visibilityDelay); DeployState.Builder deployStateBuilder = new DeployState.Builder().properties(new TestProperties().setFeedSequencerType(input)); VespaModel model = new VespaModelCreatorWithMockPkg(new MockApplicationPackage.Builder() @@ -800,6 +804,25 @@ public class ContentBuilderTest extends DomBuilderTest { } + private void verifyThatFeatureFlagControlsVisibilityDelayDefault(double defaultVisibiliDelay, Double xmlOverride, double expected) { + String hostedXml = xmlWithVisibilityDelay(xmlOverride); + DeployState.Builder deployStateBuilder = new DeployState.Builder().properties(new TestProperties().setVisibilityDelay(defaultVisibiliDelay)); + VespaModel model = new VespaModelCreatorWithMockPkg(new MockApplicationPackage.Builder() + .withServices(hostedXml) + .withSearchDefinition(MockApplicationPackage.MUSIC_SEARCHDEFINITION) + .build()) + .create(deployStateBuilder); + ProtonConfig config = getProtonConfig(model.getContentClusters().values().iterator().next()); + assertEquals(expected, config.documentdb(0).visibilitydelay(), 0.0); + } + @Test + public void verifyThatFeatureFlagControlsVisibilityDelayDefault() { + verifyThatFeatureFlagControlsVisibilityDelayDefault(0.0, null, 0.0); + verifyThatFeatureFlagControlsVisibilityDelayDefault(0.3, null, 0.3); + verifyThatFeatureFlagControlsVisibilityDelayDefault(0.0, 0.5, 0.5); + verifyThatFeatureFlagControlsVisibilityDelayDefault(0.3, 0.6, 0.6); + } + @Test public void failWhenNoDocumentsElementSpecified() { expectedException.expect(IllegalArgumentException.class); |