summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-07-08 16:31:42 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-07-08 16:31:42 +0000
commit48eeb176bcfa38037109abad6d9bd490f9b0830c (patch)
treedd188af23c1d95eb98c3ce1ba53c20d9e685ce8c /config-model
parent1828213155d2254361ea515941cad0b84a87b0e8 (diff)
Avoid that desire for low latency and high feed throughput selects the conservative solution.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java8
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java14
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");