aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-03-15 09:34:46 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2024-03-15 09:34:46 +0100
commit474a41beb2e21108e36b29790aff0df7a07c19ff (patch)
treeec330d2e54dc67acb9eb1c4986642de0568c0fbc /config-model
parentf1469547deb26ffcf7235d3228af73e437def820 (diff)
If any schema is streaming, cluster is streaming.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java27
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java35
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java8
5 files changed, 23 insertions, 64 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
index 91622e9fe31..a71d1025ece 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/search/ContainerSearch.java
@@ -5,7 +5,6 @@ import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.container.QrSearchersConfig;
import com.yahoo.prelude.semantics.SemanticRulesConfig;
-import com.yahoo.schema.derived.SchemaInfo;
import com.yahoo.search.config.IndexInfoConfig;
import com.yahoo.search.config.SchemaInfoConfig;
import com.yahoo.search.dispatch.Dispatcher;
@@ -35,15 +34,15 @@ import static com.yahoo.vespa.model.container.PlatformBundles.SEARCH_AND_DOCPROC
* @author gjoranv
* @author Tony Vaagenes
*/
-public class ContainerSearch extends ContainerSubsystem<SearchChains>
- implements
+public class ContainerSearch extends ContainerSubsystem<SearchChains> implements
IndexInfoConfig.Producer,
IlscriptsConfig.Producer,
QrSearchersConfig.Producer,
QueryProfilesConfig.Producer,
SemanticRulesConfig.Producer,
PageTemplatesConfig.Producer,
- SchemaInfoConfig.Producer {
+ SchemaInfoConfig.Producer
+{
public static final String QUERY_PROFILE_REGISTRY_CLASS = CompiledQueryProfileRegistry.class.getName();
@@ -169,25 +168,7 @@ public class ContainerSearch extends ContainerSubsystem<SearchChains>
@Override
public void getConfig(QrSearchersConfig.Builder builder) {
- for (int i = 0; i < searchClusters.size(); i++) {
- SearchCluster sys = findClusterWithId(searchClusters, i);
- var scB = new QrSearchersConfig.Searchcluster.Builder().name(sys.getClusterName());
- for (SchemaInfo spec : sys.schemas().values()) {
- scB.searchdef(spec.fullSchema().getName());
- }
- scB.rankprofiles_configid(sys.getConfigId());
- scB.indexingmode(QrSearchersConfig.Searchcluster.Indexingmode.Enum.valueOf(sys.getIndexingModeName()));
- scB.storagecluster(new QrSearchersConfig.Searchcluster.Storagecluster.Builder().routespec(sys.getStorageRouteSpec()));
- builder.searchcluster(scB);
- }
- }
-
- private static SearchCluster findClusterWithId(List<SearchCluster> clusters, int index) {
- for (SearchCluster sys : clusters) {
- if (sys.getClusterIndex() == index)
- return sys;
- }
- throw new IllegalArgumentException("No search cluster with index " + index + " exists");
+ searchClusters.forEach(sc -> builder.searchcluster(sc.getQrSearcherConfig()));
}
}
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 469901bb542..ae9c0b681d2 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
@@ -87,7 +87,8 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
public Builder(Map<String, NewDocumentType> documentDefinitions,
Set<NewDocumentType> globallyDistributedDocuments,
- double fractionOfMemoryReserved, ResourceLimits resourceLimits) {
+ double fractionOfMemoryReserved, ResourceLimits resourceLimits)
+ {
this.documentDefinitions = documentDefinitions;
this.globallyDistributedDocuments = globallyDistributedDocuments;
this.fractionOfMemoryReserved = fractionOfMemoryReserved;
@@ -101,13 +102,10 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer>
Boolean flushOnShutdownElem = clusterElem.childAsBoolean("engine.proton.flush-on-shutdown");
Boolean syncTransactionLog = clusterElem.childAsBoolean("engine.proton.sync-transactionlog");
- var search = new ContentSearchCluster(ancestor, clusterName,
- deployState.getProperties().featureFlags(),
- documentDefinitions,
- globallyDistributedDocuments,
- getFlushOnShutdown(flushOnShutdownElem),
- syncTransactionLog,
- fractionOfMemoryReserved);
+ var search = new ContentSearchCluster(ancestor, clusterName, deployState.getProperties().featureFlags(),
+ documentDefinitions, globallyDistributedDocuments,
+ getFlushOnShutdown(flushOnShutdownElem), syncTransactionLog,
+ fractionOfMemoryReserved);
ModelElement tuning = clusterElem.childByPath("engine.proton.tuning");
if (tuning != null) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
index 1bb79969507..67d99e300de 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java
@@ -45,9 +45,6 @@ public class IndexedSearchCluster extends SearchCluster implements
summaryDecodePolicy = featureFlags.summaryDecodePolicy();
}
- @Override
- protected IndexingMode getIndexingMode() { return IndexingMode.REALTIME; }
-
public void addSearcher(SearchNode searcher) {
searchNodes.add(searcher);
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
index 383f9884666..9d459259253 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.model.search;
import com.yahoo.config.ConfigInstance;
import com.yahoo.config.model.deploy.DeployState;
+import com.yahoo.container.QrSearchersConfig;
import com.yahoo.schema.DocumentOnlySchema;
import com.yahoo.schema.derived.AttributeFields;
import com.yahoo.schema.derived.DerivedConfiguration;
@@ -146,7 +147,6 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
}
public String getClusterName() { return clusterName; }
- public final String getIndexingModeName() { return getIndexingMode().getName(); }
public final boolean hasStreaming() {
return schemas().values().stream().anyMatch(schema -> schema.getIndexMode() == SchemaInfo.IndexMode.STREAMING);
}
@@ -157,7 +157,6 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
public final void setQueryTimeout(Double to) { this.queryTimeout = to; }
public final void setVisibilityDelay(double delay) { this.visibilityDelay = delay; }
- protected abstract IndexingMode getIndexingMode();
public final Double getVisibilityDelay() { return visibilityDelay; }
public final Double getQueryTimeout() { return queryTimeout; }
public final void setClusterIndex(int index) { this.index = index; }
@@ -175,9 +174,17 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
}
}
- protected void fillDocumentDBConfig(DocumentDatabase sdoc, ProtonConfig.Documentdb.Builder ddbB) {
- ddbB.inputdoctypename(sdoc.getSchemaName())
- .configid(sdoc.getConfigId());
+ public QrSearchersConfig.Searchcluster.Builder getQrSearcherConfig() {
+ var builder = new QrSearchersConfig.Searchcluster.Builder()
+ .name(getClusterName())
+ .rankprofiles_configid(getConfigId())
+ .storagecluster(new QrSearchersConfig.Searchcluster.Storagecluster.Builder().routespec(getStorageRouteSpec()))
+ .indexingmode(hasStreaming() ? QrSearchersConfig.Searchcluster.Indexingmode.STREAMING
+ : QrSearchersConfig.Searchcluster.Indexingmode.REALTIME);
+ for (SchemaInfo spec : schemas().values()) {
+ builder.searchdef(spec.fullSchema().getName());
+ }
+ return builder;
}
@Override
@@ -213,24 +220,6 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer
@Override
public String toString() { return "search-capable cluster '" + clusterName + "'"; }
- public static final class IndexingMode {
-
- public static final IndexingMode REALTIME = new IndexingMode("REALTIME");
- public static final IndexingMode STREAMING = new IndexingMode("STREAMING");
-
- private final String name;
-
- private IndexingMode(String name) {
- this.name = name;
- }
-
- public String getName() { return name; }
-
- public String toString() {
- return "indexingmode: " + name;
- }
- }
-
/**
* Class used to retrieve combined configuration from multiple document databases.
* It is not a direct {@link ConfigInstance.Producer} of those configs,
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java
index 8f02cf7a6d4..02a7a946e17 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java
@@ -4,7 +4,6 @@ package com.yahoo.vespa.model.container.search.searchchain;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.search.config.SchemaInfoConfig;
import com.yahoo.vespa.config.search.AttributesConfig;
-import com.yahoo.vespa.config.search.RankProfilesConfig;
import com.yahoo.config.model.producer.AbstractConfigProducerRoot;
import com.yahoo.prelude.fastsearch.DocumentdbInfoConfig;
import com.yahoo.search.config.IndexInfoConfig;
@@ -28,18 +27,13 @@ public class MockSearchClusters {
@Override
public void deriveFromSchemas(DeployState deployState) { }
- @Override public List<DocumentDatabase> getDocumentDbs() {return List.of();}
+ @Override public List<DocumentDatabase> getDocumentDbs() { return List.of(); }
@Override public void getConfig(AttributesConfig.Builder builder) {}
@Override public void getConfig(DocumentdbInfoConfig.Builder builder) {}
@Override public void getConfig(IndexInfoConfig.Builder builder) {}
@Override public void getConfig(IlscriptsConfig.Builder builder) {}
@Override public void getConfig(SchemaInfoConfig.Builder builder) {}
- @Override
- protected SearchCluster.IndexingMode getIndexingMode() {
- return streaming ? SearchCluster.IndexingMode.STREAMING : SearchCluster.IndexingMode.REALTIME;
- }
-
}
public static SearchCluster mockSearchCluster(AbstractConfigProducerRoot root, String clusterName, int clusterIndex, boolean isStreaming) {