diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-07-08 16:31:42 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-07-08 16:31:42 +0000 |
commit | 48eeb176bcfa38037109abad6d9bd490f9b0830c (patch) | |
tree | dd188af23c1d95eb98c3ce1ba53c20d9e685ce8c /config-model/src | |
parent | 1828213155d2254361ea515941cad0b84a87b0e8 (diff) |
Avoid that desire for low latency and high feed throughput selects the conservative solution.
Diffstat (limited to 'config-model/src')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java | 8 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java | 14 |
2 files changed, 18 insertions, 4 deletions
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 3efc26913a0..f329f62ee7b 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 @@ -392,7 +392,13 @@ public class ContentSearchCluster extends AbstractConfigProducer implements Prot if (hasAnyNonIndexedCluster) { builder.feeding.concurrency(builder.feeding.build().concurrency() * 2); } - builder.indexing.optimize(feedSequencerType); + if ((feedSequencerType == ProtonConfig.Indexing.Optimize.Enum.THROUGHPUT) && (visibilityDelay == 0.0)) { + // THROUGHPUT and zero visibilityDelay is inconsistent and currently a suboptimal combination, defaulting to LATENCY. + // TODO: Once we have figured out optimal combination this limitation will be cleaned up. + builder.indexing.optimize(ProtonConfig.Indexing.Optimize.Enum.LATENCY); + } else { + builder.indexing.optimize(feedSequencerType); + } } 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 5d9b5e3dbce..bd44489fab7 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,10 +760,16 @@ public class ContentBuilderTest extends DomBuilderTest { } } - private void verifyFeedSequencer(String input, String expceted) { + private void verifyFeedSequencer(String input, String expected) { + verifyFeedSequencer(input, expected, 0); + } + private void verifyFeedSequencer(String input, String expected, double visibilityDelay) { String hostedXml = "<services>" + "<content version='1.0' id='search'>" + " <redundancy>1</redundancy>" + + " <search>" + + " <visibility-delay>" + visibilityDelay + "</visibility-delay>" + + " </search>" + " <documents>" + " <document type='music' mode='index'/>" + " </documents>" + @@ -778,7 +784,7 @@ public class ContentBuilderTest extends DomBuilderTest { .build()) .create(deployStateBuilder); ProtonConfig config = getProtonConfig(model.getContentClusters().values().iterator().next()); - assertEquals(expceted, config.indexing().optimize().toString()); + assertEquals(expected, config.indexing().optimize().toString()); } @@ -786,7 +792,9 @@ public class ContentBuilderTest extends DomBuilderTest { public void ensureFeedSequencerIsControlledByFlag() { verifyFeedSequencer("LATENCY", "LATENCY"); verifyFeedSequencer("ADAPTIVE", "ADAPTIVE"); - verifyFeedSequencer("THROUGHPUT", "THROUGHPUT"); + verifyFeedSequencer("THROUGHPUT", "LATENCY", 0); + verifyFeedSequencer("THROUGHPUT", "THROUGHPUT", 0.1); + verifyFeedSequencer("THOUGHPUT", "LATENCY"); verifyFeedSequencer("adaptive", "LATENCY"); |