diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-15 09:34:46 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-15 09:34:46 +0100 |
commit | 474a41beb2e21108e36b29790aff0df7a07c19ff (patch) | |
tree | ec330d2e54dc67acb9eb1c4986642de0568c0fbc /config-model | |
parent | f1469547deb26ffcf7235d3228af73e437def820 (diff) |
If any schema is streaming, cluster is streaming.
Diffstat (limited to 'config-model')
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) { |