diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-18 09:53:03 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2024-03-18 22:18:40 +0100 |
commit | ca46966d409aa2f07e3ca98cc20a7b356c76e06e (patch) | |
tree | 0de626cee983cb284e70251997f65aa1a7c1598a | |
parent | f30d81b16dd11fd68e1be04ab1685df26193735e (diff) |
GC confusing and void ClusterConfig.clusterId
12 files changed, 32 insertions, 71 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java index 9153f148c77..65bd116904c 100644 --- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java +++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java @@ -21,7 +21,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import java.io.IOException; import java.io.Reader; -import java.io.Serializable; import java.io.StringReader; import java.util.ArrayList; import java.util.Collection; @@ -39,9 +38,7 @@ import java.util.logging.Logger; * * @author gjoranv */ -public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iterable<ConfigModel> { - - private static final long serialVersionUID = 1L; +public class ConfigModelRepo implements ConfigModelRepoAdder, Iterable<ConfigModel> { private static final Logger log = Logger.getLogger(ConfigModelRepo.class.getPackage().toString()); @@ -252,8 +249,10 @@ public class ConfigModelRepo implements ConfigModelRepoAdder, Serializable, Iter } private static String getImplicitAdminV4() { - return "<admin version='4.0'>\n" + - " <nodes count='1' />\n" + - "</admin>\n"; + return """ + <admin version='4.0'> + <nodes count='1' /> + </admin> + """; } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java index 65572d07cc2..1c4b0d31ab2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java @@ -11,7 +11,6 @@ import com.yahoo.component.Version; import com.yahoo.component.annotation.Inject; import com.yahoo.component.provider.ComponentRegistry; import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.config.model.ConfigModelRegistry; import com.yahoo.config.model.MapConfigModelRegistry; import com.yahoo.config.model.NullConfigModelRegistry; @@ -31,7 +30,6 @@ import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.VespaVersion; import com.yahoo.vespa.model.application.validation.Validation; import com.yahoo.vespa.model.application.validation.Validator; -import com.yahoo.yolean.Exceptions; import org.xml.sax.SAXException; import java.io.IOException; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java index 53f72a53f0c..0cd10849b8b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java @@ -21,8 +21,6 @@ import com.yahoo.vespa.model.builder.VespaModelBuilder; import com.yahoo.vespa.model.container.ContainerCluster; import com.yahoo.vespa.model.container.ContainerModel; import com.yahoo.vespa.model.container.docproc.ContainerDocproc; -import com.yahoo.vespa.model.content.Content; -import com.yahoo.vespa.model.search.SearchCluster; import org.w3c.dom.Element; import java.util.LinkedHashMap; import java.util.Map; @@ -261,7 +259,6 @@ public class VespaDomBuilder extends VespaModelBuilder { * @param configModelRepo a {@link ConfigModelRepo} */ public void postProc(DeployState deployState, TreeConfigProducer<AnyConfigProducer> root, ConfigModelRepo configModelRepo) { - setContentSearchClusterIndexes(configModelRepo); createDocprocMBusServersAndClients(configModelRepo); if (deployState.isHosted()) validateContainerClusterIds(configModelRepo); } @@ -290,15 +287,4 @@ public class VespaDomBuilder extends VespaModelBuilder { } } - /** - * For some reason, search clusters need to be enumerated. - * @param configModelRepo a {@link ConfigModelRepo} - */ - private void setContentSearchClusterIndexes(ConfigModelRepo configModelRepo) { - int index = 0; - for (SearchCluster sc : Content.getSearchClusters(configModelRepo)) { - sc.setClusterIndex(index++); - } - } - } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java index 3ccc44fe60b..9d15eddbef3 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java @@ -128,8 +128,8 @@ public class Content extends ConfigModel { public static List<Content> getContent(ConfigModelRepo pc) { List<Content> contents = new ArrayList<>(); for (ConfigModel model : pc.asMap().values()) - if (model instanceof Content) - contents.add((Content)model); + if (model instanceof Content content) + contents.add(content); return contents; } 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 ebb556a2ba2..fbac9e9d710 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 @@ -39,8 +39,6 @@ import java.util.function.Predicate; */ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer> implements ProtonConfig.Producer, - DispatchNodesConfig.Producer, - DispatchConfig.Producer, Redundancy.Provider { @@ -131,7 +129,7 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer> search.setVisibilityDelay(visibilityDelay); } - var isc = new IndexedSearchCluster(search, clusterName, 0, search, deployState.featureFlags()); + var isc = new IndexedSearchCluster(search, clusterName, search, deployState.featureFlags()); search.addSearchCluster(deployState, isc, getQueryTimeout(clusterElem), docElem.subElements("document")); } } @@ -328,15 +326,16 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer> ddbB.inputdoctypename(docTypeName) .configid(getConfigId()) .visibilitydelay(visibilityDelay) - .global(globalDocType); - ddbB.allocation.max_compact_buffers(defaultMaxCompactBuffers); + .global(globalDocType) + .allocation.max_compact_buffers(defaultMaxCompactBuffers); if (hasIndexingModeStreaming(type)) { hasAnyNonIndexedSchema = true; - searchCluster.fillDocumentDBConfig(type.getFullName().getName(), ddbB); + ddbB.configid(searchCluster.getDocumentDBConfigId(type.getFullName().getName())); ddbB.mode(ProtonConfig.Documentdb.Mode.Enum.STREAMING); } else if (hasIndexingModeIndexed(type)) { - searchCluster.fillDocumentDBConfig(type.getFullName().getName(), ddbB); + ddbB.configid(searchCluster.getDocumentDBConfigId(type.getFullName().getName())); + ddbB.mode(ProtonConfig.Documentdb.Mode.Enum.INDEX); } else { hasAnyNonIndexedSchema = true; ddbB.mode(ProtonConfig.Documentdb.Mode.Enum.STORE_ONLY); @@ -388,14 +387,12 @@ public class ContentSearchCluster extends TreeConfigProducer<AnyConfigProducer> return globallyDistributedDocuments.contains(docType); } - @Override public void getConfig(DispatchNodesConfig.Builder builder) { if (searchCluster != null) { searchCluster.getConfig(builder); } } - @Override public void getConfig(DispatchConfig.Builder builder) { if (searchCluster != null) { searchCluster.getConfig(builder); 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 c9c7e424ee6..d93ef0e2e5b 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 @@ -18,9 +18,7 @@ import java.util.List; /** * @author baldersheim */ -public class IndexedSearchCluster extends SearchCluster implements - DispatchConfig.Producer, - DispatchNodesConfig.Producer +public class IndexedSearchCluster extends SearchCluster { private Tuning tuning; private SearchCoverage searchCoverage; @@ -32,9 +30,9 @@ public class IndexedSearchCluster extends SearchCluster implements private final double dispatchWarmup; private final String summaryDecodePolicy; - public IndexedSearchCluster(TreeConfigProducer<AnyConfigProducer> parent, String clusterName, int index, + public IndexedSearchCluster(TreeConfigProducer<AnyConfigProducer> parent, String clusterName, Redundancy.Provider redundancyProvider, ModelContext.FeatureFlags featureFlags) { - super(parent, clusterName, index); + super(parent, clusterName); this.redundancyProvider = redundancyProvider; defaultDispatchPolicy = DispatchTuning.Builder.toDispatchPolicy(featureFlags.queryDispatchPolicy()); dispatchWarmup = featureFlags.queryDispatchWarmup(); @@ -66,7 +64,6 @@ public class IndexedSearchCluster extends SearchCluster implements case LATENCY_AMORTIZED_OVER_TIME: yield DistributionPolicy.LATENCY_AMORTIZED_OVER_TIME; }; } - @Override public void getConfig(DispatchNodesConfig.Builder builder) { for (SearchNode node : getSearchNodes()) { DispatchNodesConfig.Node.Builder nodeBuilder = new DispatchNodesConfig.Node.Builder(); @@ -77,7 +74,6 @@ public class IndexedSearchCluster extends SearchCluster implements builder.node(nodeBuilder); } } - @Override public void getConfig(DispatchConfig.Builder builder) { if (tuning.dispatch.getTopkProbability() != null) { builder.topKProbability(tuning.dispatch.getTopkProbability()); 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 8a60930664e..f19ae5155eb 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 @@ -16,7 +16,6 @@ import com.yahoo.search.config.IndexInfoConfig; import com.yahoo.vespa.config.search.RankProfilesConfig; import com.yahoo.vespa.config.search.SummaryConfig; import com.yahoo.vespa.config.search.core.OnnxModelsConfig; -import com.yahoo.vespa.config.search.core.ProtonConfig; import com.yahoo.vespa.config.search.core.RankingConstantsConfig; import com.yahoo.vespa.config.search.core.RankingExpressionsConfig; import com.yahoo.vespa.config.search.summary.JuniperrcConfig; @@ -46,7 +45,6 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer SchemaInfoConfig.Producer { private final String clusterName; - private int index; private Double queryTimeout; private Double visibilityDelay = 0.0; private final Map<String, SchemaInfo> schemas = new LinkedHashMap<>(); @@ -96,10 +94,9 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer } } - public SearchCluster(TreeConfigProducer<?> parent, String clusterName, int index) { + public SearchCluster(TreeConfigProducer<?> parent, String clusterName) { super(parent, "cluster." + clusterName); this.clusterName = clusterName; - this.index = index; } public String getStorageRouteSpec() { return getClusterName(); } @@ -160,19 +157,17 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer public final Double getVisibilityDelay() { return visibilityDelay; } public final Double getQueryTimeout() { return queryTimeout; } - public final void setClusterIndex(int index) { this.index = index; } - public final int getClusterIndex() { return index; } - public void fillDocumentDBConfig(String documentType, ProtonConfig.Documentdb.Builder builder) { + public String getDocumentDBConfigId(String documentType) { DocumentDatabase db = documentDbs.get(documentType); if (db != null) { - builder.inputdoctypename(documentType); if (db.getDerivedConfiguration().isStreaming()) { - builder.configid(documentDBProducerForStreaming.get(documentType).getConfigId()); + return documentDBProducerForStreaming.get(documentType).getConfigId(); } else { - builder.configid(db.getConfigId()); + return db.getConfigId(); } } + return ""; } public QrSearchersConfig.Searchcluster.Builder getQrSearcherConfig() { @@ -219,7 +214,6 @@ public abstract class SearchCluster extends TreeConfigProducer<AnyConfigProducer } public void getConfig(ClusterConfig.Builder builder) { - builder.clusterId(getClusterIndex()); builder.clusterName(getClusterName()); builder.storageRoute(getClusterName()); builder.configid(getConfigId()); 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 02a7a946e17..9cba6fc04c0 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 @@ -18,8 +18,8 @@ public class MockSearchClusters { private static class MockSearchCluster extends SearchCluster { - public MockSearchCluster(AbstractConfigProducerRoot root, String clusterName, int clusterIndex, boolean isStreaming) { - super(root, clusterName, clusterIndex); + public MockSearchCluster(AbstractConfigProducerRoot root, String clusterName, boolean isStreaming) { + super(root, clusterName); streaming = isStreaming; } @@ -36,15 +36,15 @@ public class MockSearchClusters { } - public static SearchCluster mockSearchCluster(AbstractConfigProducerRoot root, String clusterName, int clusterIndex, boolean isStreaming) { + public static SearchCluster mockSearchCluster(AbstractConfigProducerRoot root, String clusterName, boolean isStreaming) { - return new MockSearchCluster(root, clusterName, clusterIndex, isStreaming); + return new MockSearchCluster(root, clusterName, isStreaming); } public static Map<String, SearchCluster> twoMockClusterSpecsByName(AbstractConfigProducerRoot root) { Map<String, SearchCluster> result = new HashMap<>(); - result.put("cluster1", mockSearchCluster(root, "cluster1", 1, false)); - result.put("cluster2", mockSearchCluster(root, "cluster2", 2, true)); + result.put("cluster1", mockSearchCluster(root, "cluster1", false)); + result.put("cluster2", mockSearchCluster(root, "cluster2", true)); return result; } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest.java index 2423bae4761..5a316f69a9f 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest.java @@ -87,7 +87,6 @@ public class SchemaChainsTest extends SchemaChainsTestBase { @Test void validateLocalProviderConfig() { - assertEquals(2, clusterConfig.clusterId()); assertEquals("cluster2", clusterConfig.clusterName()); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaClusterTest.java index c8d84f24581..f9999a30869 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaClusterTest.java @@ -149,13 +149,11 @@ public class SchemaClusterTest { ClusterConfig.Builder clusterConfigBuilder = new ClusterConfig.Builder(); model.getConfig(clusterConfigBuilder, "j1/searchchains/chain/normal/component/com.yahoo.prelude.cluster.ClusterSearcher"); ClusterConfig clusterConfig = new ClusterConfig(clusterConfigBuilder); - assertEquals(normalIndex, clusterConfig.clusterId()); assertEquals("normal", clusterConfig.clusterName()); ClusterConfig.Builder clusterConfigBuilder2 = new ClusterConfig.Builder(); model.getConfig(clusterConfigBuilder2, "j2/searchchains/chain/xbulk/component/com.yahoo.prelude.cluster.ClusterSearcher"); ClusterConfig clusterConfig2 = new ClusterConfig(clusterConfigBuilder2); - assertEquals(xbulkIndex, clusterConfig2.clusterId()); assertEquals("xbulk", clusterConfig2.clusterName()); SearchCluster searchCluster1 = model.getSearchClusters().get(normalIndex); diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java index cb5ac7a6a4f..4ea9facc138 100644 --- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java +++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java @@ -80,7 +80,6 @@ public class ClusterSearcher extends Searcher { super(id); this.executor = executor; this.schemaInfo = schemaInfo; - int searchClusterIndex = clusterConfig.clusterId(); searchClusterName = clusterConfig.clusterName(); this.globalPhaseRanker = globalPhaseRanker; schema2Searcher = new LinkedHashMap<>(); @@ -89,7 +88,7 @@ public class ClusterSearcher extends Searcher { maxQueryCacheTimeout = ParameterParser.asMilliSeconds(clusterConfig.maxQueryCacheTimeout(), DEFAULT_MAX_QUERY_CACHE_TIMEOUT); VespaBackend streaming = null, indexed = null; - ClusterParams clusterParams = makeClusterParams(searchClusterIndex, documentDbConfig, schemaInfo); + ClusterParams clusterParams = makeClusterParams(searchClusterName, documentDbConfig, schemaInfo); for (DocumentdbInfoConfig.Documentdb docDb : documentDbConfig.documentdb()) { if (docDb.mode() == DocumentdbInfoConfig.Documentdb.Mode.Enum.INDEX) { if (indexed == null) { @@ -106,9 +105,9 @@ public class ClusterSearcher extends Searcher { } } - private static ClusterParams makeClusterParams(int searchclusterIndex, DocumentdbInfoConfig documentDbConfig, SchemaInfo schemaInfo) + private static ClusterParams makeClusterParams(String searchclusterName, DocumentdbInfoConfig documentDbConfig, SchemaInfo schemaInfo) { - return new ClusterParams("sc" + searchclusterIndex + ".num" + 0, UUID.randomUUID().toString(), + return new ClusterParams(searchclusterName + ".num" + 0, UUID.randomUUID().toString(), null, documentDbConfig, schemaInfo); } diff --git a/container-search/src/main/resources/configdefinitions/search.config.cluster.def b/container-search/src/main/resources/configdefinitions/search.config.cluster.def index ac88d5baa24..efa4a261546 100644 --- a/container-search/src/main/resources/configdefinitions/search.config.cluster.def +++ b/container-search/src/main/resources/configdefinitions/search.config.cluster.def @@ -1,13 +1,8 @@ # Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. namespace=search.config -#The id of the cluster (as specified in qr-searchers) -#Note: Use clusterName where possible instead -clusterId int default=0 - #Timeout for internal searcher cache. Entries older than this number -#of seconds will be removed from cache. 0 or less means the cache is -#disabled. +#of seconds will be removed from cache. 0 or less means the cache is disabled. cacheTimeout double default=0 #The name of the cluster (as specified in qr-searchers) |