aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2024-03-18 09:53:03 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2024-03-18 22:18:40 +0100
commitca46966d409aa2f07e3ca98cc20a7b356c76e06e (patch)
tree0de626cee983cb284e70251997f65aa1a7c1598a
parentf30d81b16dd11fd68e1be04ab1685df26193735e (diff)
GC confusing and void ClusterConfig.clusterId
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ConfigModelRepo.java13
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/Content.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java15
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchCluster.java16
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/MockSearchClusters.java12
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/search/searchchain/SchemaChainsTest.java1
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/test/SchemaClusterTest.java2
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java7
-rw-r--r--container-search/src/main/resources/configdefinitions/search.config.cluster.def7
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)