aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-10-27 12:08:53 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2023-10-27 12:59:36 +0000
commit72cd1b31537080ee318d545656c0d4570e1e826a (patch)
tree49b3fdd6259b5a44ad54ad9b2bd5fc99bbd81b59 /config-model
parent3777edf6f4ea18c2dbc8fc473225972098422690 (diff)
Resolving of initialnumdocs is now done in the backend.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java19
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java57
4 files changed, 8 insertions, 84 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java
index 273e5580403..a78304a65a7 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java
@@ -56,7 +56,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
} else if (equals("flushstrategy", e)) {
handleFlushStrategy(e, t.searchNode);
} else if (equals("resizing", e)) {
- handleResizing(deployLogger, e, t.searchNode);
+ deployLogger.logApplicationPackage(Level.WARNING, "saerchnode.resizing is deprecated and ignored");
} else if (equals("index", e)) {
handleIndex(deployLogger, e, t.searchNode);
} else if (equals("attribute", e)) {
@@ -164,18 +164,6 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
}
}
- private void handleResizing(DeployLogger deployLogger, Element spec, Tuning.SearchNode sn) {
- sn.resizing = new Tuning.SearchNode.Resizing();
- for (Element e : XML.getChildren(spec)) {
- if (equals("initialdocumentcount", e)) {
- deployLogger.logApplicationPackage(Level.WARNING, "resizing.initialdocumentcount is deprecated.");
- sn.resizing.initialDocumentCount = asInt(e);
- } else if (equals("amortize-count", e)) {
- deployLogger.logApplicationPackage(Level.WARNING, "resizing.amortize-count is deprecated and ignored");
- }
- }
- }
-
private void handleIndex(DeployLogger deployLogger, Element spec, Tuning.SearchNode sn) {
sn.index = new Tuning.SearchNode.Index();
for (Element e : XML.getChildren(spec)) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java
index 2beec421faa..2616dd8a93c 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java
@@ -23,21 +23,16 @@ public class NodeResourcesTuning implements ProtonConfig.Producer {
private final static double TLS_SIZE_FRACTION = 0.02;
final static long MB = 1024 * 1024;
public final static long GB = MB * 1024;
- // This is an approximate number based on observation of a node using 33G memory with 765M docs
- private final static long MEMORY_COST_PER_DOCUMENT_DB_ONLY = 46L;
private final NodeResources resources;
private final int threadsPerSearch;
private final double fractionOfMemoryReserved;
- private final Redundancy redundancy;
public NodeResourcesTuning(NodeResources resources,
int threadsPerSearch,
- double fractionOfMemoryReserved,
- Redundancy redundancy) {
+ double fractionOfMemoryReserved) {
this.resources = resources;
this.threadsPerSearch = threadsPerSearch;
this.fractionOfMemoryReserved = fractionOfMemoryReserved;
- this.redundancy = redundancy;
}
@Override
@@ -52,18 +47,6 @@ public class NodeResourcesTuning implements ProtonConfig.Producer {
tuneSummaryReadIo(builder.summary.read);
tuneSummaryCache(builder.summary.cache);
tuneSearchReadIo(builder.search.mmap);
- for (ProtonConfig.Documentdb.Builder dbb : builder.documentdb) {
- getConfig(dbb);
- }
- }
-
- private void getConfig(ProtonConfig.Documentdb.Builder builder) {
- // TODO => Move this to backend to enable ignoring this setting.
- ProtonConfig.Documentdb dbCfg = builder.build();
- if (dbCfg.mode() != ProtonConfig.Documentdb.Mode.Enum.INDEX) {
- long numDocs = (long)usableMemoryGb() * GB / MEMORY_COST_PER_DOCUMENT_DB_ONLY;
- builder.allocation.initialnumdocs(numDocs/redundancy.readyCopies());
- }
}
private void tuneSummaryCache(ProtonConfig.Summary.Cache.Builder builder) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
index 83c1778b95e..c0f22da2982 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java
@@ -284,7 +284,7 @@ public class SearchNode extends AbstractService implements
if (nodeResources.isPresent()) {
var nodeResourcesTuning = new NodeResourcesTuning(nodeResources.get(),
tuning.map(Tuning::threadsPerSearch).orElse(1),
- fractionOfMemoryReserved, redundancyProvider.redundancy());
+ fractionOfMemoryReserved);
nodeResourcesTuning.getConfig(builder);
tuning.ifPresent(t -> t.getConfig(builder));
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java
index 1f143fd2d82..fbc4f6768a2 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java
@@ -1,16 +1,12 @@
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.search;
-import com.yahoo.collections.Pair;
import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provisioning.FlavorsConfig;
import com.yahoo.vespa.config.search.core.ProtonConfig;
import com.yahoo.vespa.model.container.ApplicationContainerCluster;
-import com.yahoo.vespa.model.content.Redundancy;
import org.junit.jupiter.api.Test;
-import java.util.List;
-
import static com.yahoo.vespa.model.Host.memoryOverheadGb;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static com.yahoo.vespa.model.search.NodeResourcesTuning.MB;
@@ -41,35 +37,6 @@ public class NodeResourcesTuningTest {
assertEquals(0.7, memoryOverheadGb, delta);
}
- private ProtonConfig getProtonMemoryConfig(List<Pair<String, String>> sdAndMode, double gb, Redundancy redundancy) {
- ProtonConfig.Builder builder = new ProtonConfig.Builder();
- for (Pair<String, String> sdMode : sdAndMode) {
- builder.documentdb.add(new ProtonConfig.Documentdb.Builder()
- .inputdoctypename(sdMode.getFirst())
- .configid("some/config/id/" + sdMode.getFirst())
- .mode(ProtonConfig.Documentdb.Mode.Enum.valueOf(sdMode.getSecond())));
- }
- return configFromMemorySetting(gb, builder, redundancy);
- }
-
- private void verify_that_initial_numdocs_is_dependent_of_mode(int readyCopies) {
- ProtonConfig cfg = getProtonMemoryConfig(List.of(new Pair<>("a", "INDEX"), new Pair<>("b", "STREAMING"), new Pair<>("c", "STORE_ONLY")),
- 24 + memoryOverheadGb, new Redundancy(readyCopies+1,readyCopies+1, readyCopies,1, readyCopies));
- assertEquals(3, cfg.documentdb().size());
- assertEquals(1024, cfg.documentdb(0).allocation().initialnumdocs());
- assertEquals("a", cfg.documentdb(0).inputdoctypename());
- assertEquals(24 * GB / (46 * readyCopies), cfg.documentdb(1).allocation().initialnumdocs());
- assertEquals("b", cfg.documentdb(1).inputdoctypename());
- assertEquals(24 * GB / (46 * readyCopies), cfg.documentdb(2).allocation().initialnumdocs());
- assertEquals("c", cfg.documentdb(2).inputdoctypename());
- }
-
- @Test
- void require_that_initial_numdocs_is_dependent_of_mode_and_searchablecopies() {
- verify_that_initial_numdocs_is_dependent_of_mode(1);
- verify_that_initial_numdocs_is_dependent_of_mode(2);
- }
-
@Test
void require_that_hwinfo_cpu_cores_is_set() {
ProtonConfig cfg = configFromNumCoresSetting(24);
@@ -227,9 +194,9 @@ public class NodeResourcesTuningTest {
return getConfig(new FlavorsConfig.Flavor.Builder().minMainMemoryAvailableGb(memoryGb), fractionOfMemoryReserved);
}
- private static ProtonConfig configFromMemorySetting(double memoryGb, ProtonConfig.Builder builder, Redundancy redundancy) {
+ private static ProtonConfig configFromMemorySetting(double memoryGb, ProtonConfig.Builder builder) {
return getConfig(new FlavorsConfig.Flavor.Builder()
- .minMainMemoryAvailableGb(memoryGb), builder, redundancy);
+ .minMainMemoryAvailableGb(memoryGb), builder);
}
private static ProtonConfig configFromNumCoresSetting(double numCores) {
@@ -255,11 +222,7 @@ public class NodeResourcesTuningTest {
}
private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder) {
- return getConfig(flavorBuilder, protonBuilder, new Redundancy(1,1,1,1,1));
- }
- private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder,
- Redundancy redundancy) {
- return getConfig(flavorBuilder, protonBuilder,1, redundancy);
+ return getConfig(flavorBuilder, protonBuilder,1);
}
private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder, double fractionOfMemoryReserved) {
return getConfig(flavorBuilder, protonBuilder, 1, fractionOfMemoryReserved);
@@ -267,24 +230,14 @@ public class NodeResourcesTuningTest {
private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder,
int numThreadsPerSearch) {
- return getConfig(flavorBuilder, protonBuilder, numThreadsPerSearch, new Redundancy(1,1,1,1,1));
- }
-
- private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder,
- int numThreadsPerSearch, Redundancy redundancy) {
- return getConfig(flavorBuilder, protonBuilder, numThreadsPerSearch, 0, redundancy);
+ return getConfig(flavorBuilder, protonBuilder, numThreadsPerSearch, 0);
}
private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder,
int numThreadsPerSearch, double fractionOfMemoryReserved) {
- return getConfig(flavorBuilder, protonBuilder, numThreadsPerSearch, fractionOfMemoryReserved,
- new Redundancy(1,1,1,1,1));
- }
- private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder,
- int numThreadsPerSearch, double fractionOfMemoryReserved, Redundancy redundancy) {
flavorBuilder.name("my_flavor");
NodeResourcesTuning tuning = new NodeResourcesTuning(new Flavor(new FlavorsConfig.Flavor(flavorBuilder)).resources(),
- numThreadsPerSearch, fractionOfMemoryReserved, redundancy);
+ numThreadsPerSearch, fractionOfMemoryReserved);
tuning.getConfig(protonBuilder);
return new ProtonConfig(protonBuilder);
}