summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-03-10 10:37:55 +0100
committerHarald Musum <musum@verizonmedia.com>2021-03-10 10:37:55 +0100
commit8aa6cd74137b3bb10658e80aba0a248467c4f2c6 (patch)
tree9281f7e5a5e35e1f0a7e816af2fc79f1fb7bdcbe /config-model
parenta979438f32ee5d8475a04f70fcef45f02d6fc025 (diff)
parent04d47d154b3fbd6433e6364de2adbbe56fb9543f (diff)
Merge branch 'master' into jonmv/reserve-less-memory-on-content-nodes
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java13
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java6
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java31
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainerCluster.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricSet.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/SecretStoreValidator.java9
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validator.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java2
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java2
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/CloudSecretStore.java64
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java46
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java4
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java5
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/NodeResourcesTuning.java12
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java14
-rw-r--r--config-model/src/main/resources/schema/containercluster.rnc5
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/application/validation/SecretStoreValidatorTest.java2
-rwxr-xr-xconfig-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java2
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java34
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/NodeResourcesTuningTest.java29
28 files changed, 185 insertions, 141 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
index be15abc5ac8..77e5e98cd99 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java
@@ -51,13 +51,12 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
private boolean useAccessControlTlsHandshakeClientAuth;
private boolean useAsyncMessageHandlingOnSchedule = false;
private double feedConcurrency = 0.5;
- private boolean reconfigurableZookeeperServer = false;
private boolean useBucketExecutorForLidSpaceCompact;
private boolean useBucketExecutorForBucketMove;
- private boolean enableFeedBlockInDistributor = false;
+ private boolean enableFeedBlockInDistributor = true;
private double maxDeadBytesRatio = 0.2;
- private int clusterControllerMaxHeapSizeInMb = 512;
- private int metricsProxyMaxHeapSizeInMb = 512;
+ private int clusterControllerMaxHeapSizeInMb = 256;
+ private int metricsProxyMaxHeapSizeInMb = 256;
private int maxActivationInhibitedOutOfSyncGroups = 0;
@Override public ModelContext.FeatureFlags featureFlags() { return this; }
@@ -91,7 +90,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
@Override public boolean useAccessControlTlsHandshakeClientAuth() { return useAccessControlTlsHandshakeClientAuth; }
@Override public boolean useAsyncMessageHandlingOnSchedule() { return useAsyncMessageHandlingOnSchedule; }
@Override public double feedConcurrency() { return feedConcurrency; }
- @Override public boolean reconfigurableZookeeperServer() { return reconfigurableZookeeperServer; }
@Override public boolean useBucketExecutorForLidSpaceCompact() { return useBucketExecutorForLidSpaceCompact; }
@Override public boolean useBucketExecutorForBucketMove() { return useBucketExecutorForBucketMove; }
@Override public boolean enableFeedBlockInDistributor() { return enableFeedBlockInDistributor; }
@@ -200,11 +198,6 @@ public class TestProperties implements ModelContext.Properties, ModelContext.Fea
return this;
}
- public TestProperties reconfigurableZookeeperServer(boolean enabled) {
- this.reconfigurableZookeeperServer = enabled;
- return this;
- }
-
public TestProperties useBucketExecutorForLidSpaceCompact(boolean enabled) {
useBucketExecutorForLidSpaceCompact = enabled;
return this;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
index 0f006c31959..3f346f20144 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java
@@ -105,6 +105,7 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable
return metricsProxyCluster;
}
+ /** Used by model amenders */
public void setAdditionalDefaultMetrics(MetricSet additionalDefaultMetrics) {
if (additionalDefaultMetrics == null) return;
this.additionalDefaultMetrics = additionalDefaultMetrics;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java
index 356453dcf5b..c2bc2494613 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java
@@ -26,4 +26,9 @@ public class LogserverContainer extends Container {
return ContainerServiceType.LOGSERVER_CONTAINER;
}
+ @Override
+ public String defaultPreload() {
+ return "";
+ }
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java
index 916c65e5f82..a8621eae3f5 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainerCluster.java
@@ -1,4 +1,4 @@
-// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.admin;
import com.yahoo.config.model.deploy.DeployState;
@@ -26,8 +26,8 @@ public class LogserverContainerCluster extends ContainerCluster<LogserverContain
@Override
public void getConfig(QrStartConfig.Builder builder) {
super.getConfig(builder);
- builder.jvm.heapsize(384)
- .verbosegc(true);
+ builder.jvm.heapsize(128)
+ .verbosegc(true);
}
protected boolean messageBusEnabled() { return false; }
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java
index f55d179b184..f1717625d10 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainer.java
@@ -3,7 +3,6 @@ package com.yahoo.vespa.model.admin.clustercontroller;
import com.yahoo.cloud.config.ZookeeperServerConfig;
import com.yahoo.component.ComponentSpecification;
-import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.api.container.ContainerServiceType;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
@@ -41,16 +40,13 @@ public class ClusterControllerContainer extends Container implements
private static final ComponentSpecification REINDEXING_CONTROLLER_BUNDLE = new ComponentSpecification("clustercontroller-reindexer");
private final Set<String> bundles = new TreeSet<>();
- private final ModelContext.FeatureFlags featureFlags;
-
- public ClusterControllerContainer(
- AbstractConfigProducer<?> parent,
- int index,
- boolean runStandaloneZooKeeper,
- DeployState deployState,
- boolean retired) {
+
+ public ClusterControllerContainer(AbstractConfigProducer<?> parent,
+ int index,
+ boolean runStandaloneZooKeeper,
+ DeployState deployState,
+ boolean retired) {
super(parent, "" + index, retired, index, deployState.isHosted());
- this.featureFlags = deployState.featureFlags();
addHandler("clustercontroller-status",
"com.yahoo.vespa.clustercontroller.apps.clustercontroller.StatusHandler",
"/clustercontroller-status/*",
@@ -70,7 +66,7 @@ public class ClusterControllerContainer extends Container implements
addFileBundle("clustercontroller-utils");
addFileBundle("zookeeper-server");
configureReindexing();
- configureZooKeeperServer(runStandaloneZooKeeper, deployState.featureFlags().reconfigurableZookeeperServer());
+ configureZooKeeperServer(runStandaloneZooKeeper);
}
@Override
@@ -88,16 +84,13 @@ public class ClusterControllerContainer extends Container implements
return ContainerServiceType.CLUSTERCONTROLLER_CONTAINER;
}
- private void configureZooKeeperServer(boolean runStandaloneZooKeeper, boolean reconfigurable) {
- if (reconfigurable && runStandaloneZooKeeper) {
+ private void configureZooKeeperServer(boolean runStandaloneZooKeeper) {
+ if (runStandaloneZooKeeper)
ContainerModelBuilder.addReconfigurableZooKeeperServerComponents(this);
- } else {
+ else
addComponent("clustercontroller-zookeeper-server",
- runStandaloneZooKeeper
- ? "com.yahoo.vespa.zookeeper.VespaZooKeeperServerImpl"
- : "com.yahoo.vespa.zookeeper.DummyVespaZooKeeperServer",
+ "com.yahoo.vespa.zookeeper.DummyVespaZooKeeperServer",
ZOOKEEPER_SERVER_BUNDLE);
- }
}
private void addHandler(Handler<?> h, String path) {
@@ -148,7 +141,7 @@ public class ClusterControllerContainer extends Container implements
@Override
public void getConfig(ZookeeperServerConfig.Builder builder) {
builder.myid(index());
- builder.dynamicReconfiguration(featureFlags.reconfigurableZookeeperServer());
+ builder.dynamicReconfiguration(true);
}
@Override
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainerCluster.java
index 4fc73de3b48..abdbb3c90a3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/clustercontroller/ClusterControllerContainerCluster.java
@@ -35,11 +35,10 @@ public class ClusterControllerContainerCluster extends ContainerCluster<ClusterC
@Override
public void getConfig(QrStartConfig.Builder builder) {
super.getConfig(builder);
- int maxHeapSize = featureFlags.clusterControllerMaxHeapSizeInMb();
- boolean verboseGc = (maxHeapSize < 512);
+
builder.jvm
- .verbosegc(verboseGc)
- .heapsize(maxHeapSize);
+ .verbosegc(true)
+ .heapsize(featureFlags.clusterControllerMaxHeapSizeInMb());
}
public ReindexingContext reindexingContext() { return reindexingContext; }
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java
index 690900865ad..45af078f2a3 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainer.java
@@ -15,7 +15,6 @@ import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.api.container.ContainerServiceType;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.provision.ClusterMembership;
-import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.search.config.QrStartConfig;
import com.yahoo.vespa.model.HostResource;
import com.yahoo.vespa.model.PortAllocBridge;
@@ -150,9 +149,8 @@ public class MetricsProxyContainer extends Container implements
if (clusterMembership.isPresent()) {
int maxHeapSize = featureFlags.metricsProxyMaxHeapSizeInMb(clusterMembership.get().cluster().type());
- boolean verboseGc = (maxHeapSize < 512);
builder.jvm
- .verbosegc(verboseGc)
+ .verbosegc(true)
.heapsize(maxHeapSize);
}
}
@@ -173,4 +171,5 @@ public class MetricsProxyContainer extends Container implements
protected String defaultPreload() {
return "";
}
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java
index 347d0ebce6c..6bb3a62f234 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java
@@ -20,7 +20,8 @@ public class AutoscalingMetrics {
"mem.util",
"disk.util",
"application_generation",
- "in_service"));
+ "in_service",
+ "queries.rate"));
}
private static Set<Metric> metrics(String ... metrics) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricSet.java
index 30797f27789..9c969d4f11e 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricSet.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/MetricSet.java
@@ -43,13 +43,13 @@ public class MetricSet {
/**
* Returns all metrics in this set, including all metrics in any contained metric sets.
- * <br>
+ *
* Joins this set's metrics with its child sets into a named flat map of metrics.
* In the case of duplicate metrics, the metrics directly defined in this set
* takes precedence with respect to output name, description and dimension value
* (even if they are empty), while new dimensions from the children will be added.
*
- * @return All metrics contained in this set.
+ * @return all the metrics contained in this set
*/
public final Map<String, Metric> getMetrics() {
return unmodifiableMap(flatten(metrics, children));
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SecretStoreValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SecretStoreValidator.java
index d26ff49c4fa..b57d2841a98 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SecretStoreValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/SecretStoreValidator.java
@@ -7,8 +7,11 @@ import com.yahoo.vespa.model.VespaModel;
import com.yahoo.vespa.model.container.Container;
import com.yahoo.vespa.model.container.ContainerCluster;
import com.yahoo.vespa.model.container.IdentityProvider;
+import com.yahoo.vespa.model.container.SecretStore;
import com.yahoo.vespa.model.container.component.Component;
+import java.util.List;
+
/**
* Validates the requirements for setting up a secret store.
*
@@ -22,11 +25,10 @@ public class SecretStoreValidator extends Validator {
if (model.getAdmin().getApplicationType() != ApplicationType.DEFAULT) return;
for (ContainerCluster cluster : model.getContainerClusters().values()) {
- if (cluster.getSecretStore().isPresent() && ! hasIdentityProvider(cluster)) {
- throw new IllegalArgumentException(String.format(
+ if (cluster.getSecretStore().isPresent() && ! hasIdentityProvider(cluster))
+ throw new IllegalArgumentException(String.format(
"Container cluster '%s' uses a secret store, so an Athenz domain and an Athenz service" +
" must be declared in deployment.xml.", cluster.getName()));
- }
}
}
@@ -36,4 +38,5 @@ public class SecretStoreValidator extends Validator {
}
return false;
}
+
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validator.java
index c926c1f13a0..f3bebbe7fb9 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/Validator.java
@@ -8,7 +8,6 @@ import com.yahoo.vespa.model.VespaModel;
* Abstract superclass of all application package validators.
*
* @author hmusum
- * @since 2010-01-29
*/
public abstract class Validator {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
index dafce877ddd..f0c62664988 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
@@ -81,7 +81,7 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
private ContainerModelEvaluation modelEvaluation;
- private Optional<String> tlsClientAuthority;
+ private final Optional<String> tlsClientAuthority;
private MbusParams mbusParams;
private boolean messageBusEnabled = true;
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
index a1db3c43f1c..db4cda8b72e 100755
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java
@@ -487,7 +487,7 @@ public abstract class ContainerCluster<CONTAINER extends Container>
.availableProcessors(2)
.compressedClassSpaceSize(32)
.minHeapsize(32)
- .heapsize(512)
+ .heapsize(256)
.heapSizeAsPercentageOfPhysicalMemory(0)
.gcopts(Objects.requireNonNullElse(jvmGCOptions, G1GC));
if (environmentVars != null) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/CloudSecretStore.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/CloudSecretStore.java
new file mode 100644
index 00000000000..39f9a627e0c
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/CloudSecretStore.java
@@ -0,0 +1,64 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.model.container.xml;
+
+import com.yahoo.container.bundle.BundleInstantiationSpecification;
+import com.yahoo.container.jdisc.secretstore.SecretStoreConfig;
+import com.yahoo.osgi.provider.model.ComponentModel;
+import com.yahoo.vespa.model.container.component.SimpleComponent;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author olaa
+ */
+public class CloudSecretStore extends SimpleComponent implements SecretStoreConfig.Producer {
+
+ private static final String CLASS = "com.yahoo.jdisc.cloud.aws.AwsParameterStore";
+ private static final String BUNDLE = "jdisc-cloud-aws";
+
+ private final List<StoreConfig> configList;
+
+ public CloudSecretStore() {
+ super(new ComponentModel(BundleInstantiationSpecification.getFromStrings(CLASS, CLASS, BUNDLE)));
+ configList = new ArrayList<>();
+ }
+
+ public void addConfig(String name, String region, String awsId, String role, String externalId) {
+ configList.add(
+ new StoreConfig(name, region, awsId, role, externalId)
+ );
+ }
+
+ @Override
+ public void getConfig(SecretStoreConfig.Builder builder) {
+ builder.groups(
+ configList.stream()
+ .map(config -> new SecretStoreConfig.Groups.Builder()
+ .name(config.name)
+ .region(config.region)
+ .awsId(config.awsId)
+ .role(config.role)
+ .externalId(config.externalId)
+ ).collect(Collectors.toList())
+ );
+ }
+
+ class StoreConfig {
+ private final String name;
+ private final String region;
+ private final String awsId;
+ private final String role;
+ private final String externalId;
+
+ public StoreConfig(String name, String region, String awsId, String role, String externalId) {
+ this.name = name;
+ this.region = region;
+ this.awsId = awsId;
+ this.role = role;
+ this.externalId = externalId;
+ }
+
+ }
+}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index e7e82d577f4..4efd88c7307 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -14,6 +14,7 @@ import com.yahoo.config.model.ConfigModelContext.ApplicationType;
import com.yahoo.config.model.api.ConfigServerSpec;
import com.yahoo.config.model.api.ContainerEndpoint;
import com.yahoo.config.model.api.EndpointCertificateSecrets;
+import com.yahoo.config.model.api.TenantSecretStore;
import com.yahoo.config.model.application.provider.IncludeDirs;
import com.yahoo.config.model.builder.xml.ConfigModelBuilder;
import com.yahoo.config.model.builder.xml.ConfigModelId;
@@ -29,7 +30,6 @@ import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.HostName;
import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
-import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.Zone;
import com.yahoo.container.logging.FileConnectionLog;
import com.yahoo.osgi.provider.model.ComponentModel;
@@ -181,7 +181,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
DeployState deployState = context.getDeployState();
DocumentFactoryBuilder.buildDocumentFactories(cluster, spec);
addConfiguredComponents(deployState, cluster, spec);
- addSecretStore(cluster, spec);
+ addSecretStore(cluster, spec, deployState);
addRestApis(deployState, spec, cluster);
addServlets(deployState, spec, cluster);
@@ -255,17 +255,49 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
return new SimpleComponent(new ComponentModel(idSpec, null, "zookeeper-server", configId));
}
- private void addSecretStore(ApplicationContainerCluster cluster, Element spec) {
+ private void addSecretStore(ApplicationContainerCluster cluster, Element spec, DeployState deployState) {
+
Element secretStoreElement = XML.getChild(spec, "secret-store");
if (secretStoreElement != null) {
- SecretStore secretStore = new SecretStore();
- for (Element group : XML.getChildren(secretStoreElement, "group")) {
- secretStore.addGroup(group.getAttribute("name"), group.getAttribute("environment"));
+ String type = secretStoreElement.getAttribute("type");
+ if ("cloud".equals(type)) {
+ addCloudSecretStore(cluster, secretStoreElement, deployState);
+ } else {
+ SecretStore secretStore = new SecretStore();
+ for (Element group : XML.getChildren(secretStoreElement, "group")) {
+ secretStore.addGroup(group.getAttribute("name"), group.getAttribute("environment"));
+ }
+ cluster.setSecretStore(secretStore);
}
- cluster.setSecretStore(secretStore);
}
}
+ private void addCloudSecretStore(ApplicationContainerCluster cluster, Element secretStoreElement, DeployState deployState) {
+ CloudSecretStore cloudSecretStore = new CloudSecretStore();
+ Map<String, TenantSecretStore> secretStoresByName = deployState.getProperties().tenantSecretStores()
+ .stream()
+ .collect(Collectors.toMap(
+ TenantSecretStore::getName,
+ store -> store
+ ));
+
+ for (Element group : XML.getChildren(secretStoreElement, "group")) {
+ String name = group.getAttribute("name");
+ String region = group.getAttribute("region");
+ TenantSecretStore secretStore = secretStoresByName.get(name);
+
+ if (secretStore == null)
+ throw new RuntimeException("No configured secret store named " + name);
+
+ if (secretStore.getExternalId().isEmpty())
+ throw new RuntimeException("No external ID has been set");
+
+ cloudSecretStore.addConfig(name, region, secretStore.getAwsId(), secretStore.getRole(), secretStore.getExternalId().get());
+ }
+
+ cluster.addComponent(cloudSecretStore);
+ }
+
private void addAthensCopperArgos(ApplicationContainerCluster cluster, ConfigModelContext context) {
if ( ! context.getDeployState().isHosted()) return;
app.getDeployment().map(DeploymentSpec::fromXml)
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 0de111e459e..6f7709efc24 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
@@ -325,10 +325,6 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster>
indexedCluster.setSearchableCopies(redundancy.readyCopies());
}
this.redundancy = redundancy;
- for (SearchNode node : getSearchNodes()) {
- node.setRedundancy(redundancy.finalRedundancy());
- node.setSearchableCopies(redundancy.readyCopies());
- }
}
private Optional<StreamingSearchCluster> findStreamingCluster(String docType) {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
index c3591d9ebdd..c909aeec022 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java
@@ -303,13 +303,12 @@ public class ContentCluster extends AbstractConfigProducer implements
clusterControllers = overlappingCluster.getClusterControllers();
}
else if (admin.multitenant()) {
- String clusterName = contentClusterName + "-controllers";
if (context.properties().dedicatedClusterControllerCluster())
clusterControllers = getDedicatedSharedControllers(contentElement, admin, context, deployState);
else {
clusterControllers = createClusterControllers(new ClusterControllerCluster(contentCluster, "standalone", deployState),
drawControllerHosts(3, rootGroup),
- clusterName,
+ contentClusterName + "-controllers",
true,
context.getDeployState());
contentCluster.clusterControllers = clusterControllers;
@@ -355,7 +354,7 @@ public class ContentCluster extends AbstractConfigProducer implements
private ClusterControllerContainerCluster getDedicatedSharedControllers(ModelElement contentElement, Admin admin,
ConfigModelContext context, DeployState deployState) {
if (admin.getClusterControllers() == null) {
- NodesSpecification spec = NodesSpecification.requiredFromSharedParents(deployState.zone().environment().isTest() ? 1 : 3,
+ NodesSpecification spec = NodesSpecification.requiredFromSharedParents(deployState.zone().environment().isProduction() ? 3 : 1,
deployState.featureFlags().dedicatedClusterControllerFlavor().orElse(clusterControllerResources),
contentElement,
context);
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 1d18b26440b..3fadd1f2efd 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
@@ -16,9 +16,9 @@ public class NodeResourcesTuning implements ProtonConfig.Producer {
final static long MB = 1024 * 1024;
public final static long GB = MB * 1024;
+ // This is an approximate number base on observation of a node using 33G memory with 765M docs
+ private final static long MEMORY_COST_PER_DOCUMENT_STORE_ONLY = 46L;
private final NodeResources resources;
- private final int redundancy;
- private final int searchableCopies;
private final int threadsPerSearch;
private final boolean combined;
@@ -26,13 +26,9 @@ public class NodeResourcesTuning implements ProtonConfig.Producer {
public static final double reservedMemoryGb = 0.5;
public NodeResourcesTuning(NodeResources resources,
- int redundancy,
- int searchableCopies,
int threadsPerSearch,
boolean combined) {
this.resources = resources;
- this.redundancy = redundancy;
- this.searchableCopies = searchableCopies;
this.threadsPerSearch = threadsPerSearch;
this.combined = combined;
}
@@ -56,8 +52,8 @@ public class NodeResourcesTuning implements ProtonConfig.Producer {
private void getConfig(ProtonConfig.Documentdb.Builder builder) {
ProtonConfig.Documentdb dbCfg = builder.build();
if (dbCfg.mode() != ProtonConfig.Documentdb.Mode.Enum.INDEX) {
- long numDocs = (long)usableMemoryGb() * GB / 64L;
- builder.allocation.initialnumdocs(numDocs/Math.max(searchableCopies, redundancy));
+ long numDocs = (long)usableMemoryGb() * GB / MEMORY_COST_PER_DOCUMENT_STORE_ONLY;
+ builder.allocation.initialnumdocs(numDocs);
}
}
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 16302ddff49..9f129f65281 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
@@ -62,8 +62,6 @@ public class SearchNode extends AbstractService implements
private final boolean flushOnShutdown;
private NodeSpec nodeSpec;
private int distributionKey;
- private int redundancy = 1;
- private int searchableCopies = 1;
private final String clusterName;
private TransactionLogServer tls;
private AbstractService serviceLayerService;
@@ -160,16 +158,6 @@ public class SearchNode extends AbstractService implements
private String getBaseDir() {
return getDefaults().underVespaHome("var/db/vespa/search/cluster." + getClusterName()) + "/n" + distributionKey;
}
- public void setSearchableCopies(int searchableCopies) {
- this.searchableCopies = searchableCopies;
- }
- public void setRedundancy(int redundancy) {
- this.redundancy = redundancy;
- }
-
- void updatePartition(int partitionId) {
- nodeSpec = new NodeSpec(nodeSpec.groupIndex(), partitionId);
- }
@Override
public NodeSpec getNodeSpec() {
@@ -286,8 +274,6 @@ public class SearchNode extends AbstractService implements
}
if (getHostResource() != null && ! getHostResource().realResources().isUnspecified()) {
var nodeResourcesTuning = new NodeResourcesTuning(getHostResource().realResources(),
- redundancy,
- searchableCopies,
tuning.map(Tuning::threadsPerSearch).orElse(1),
combined);
nodeResourcesTuning.getConfig(builder);
diff --git a/config-model/src/main/resources/schema/containercluster.rnc b/config-model/src/main/resources/schema/containercluster.rnc
index 5257345c39e..abe7386fa00 100644
--- a/config-model/src/main/resources/schema/containercluster.rnc
+++ b/config-model/src/main/resources/schema/containercluster.rnc
@@ -86,10 +86,11 @@ AccessLog = element accesslog {
}
SecretStore = element secret-store {
- attribute type { string "oath-ckms" } &
+ attribute type { string "oath-ckms" | string "cloud" } &
element group {
attribute name { string } &
- attribute environment { string "alpha" | string "corp" | string "prod" | string "aws" | string "aws_stage" }
+ (attribute environment { string "alpha" | string "corp" | string "prod" | string "aws" | string "aws_stage" } |
+ attribute region { string } )
} +
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java
index 0a99797a53f..4ce52aaf4d3 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/ClusterControllerTestCase.java
@@ -1,4 +1,4 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.admin;
import com.google.common.collect.Collections2;
@@ -389,10 +389,10 @@ public class ClusterControllerTestCase extends DomBuilderTest {
model.getConfig(qrBuilder, "admin/cluster-controllers/0/components/clustercontroller-bar-configurer");
QrStartConfig qrStartConfig = new QrStartConfig(qrBuilder);
assertEquals(32, qrStartConfig.jvm().minHeapsize());
- assertEquals(512, qrStartConfig.jvm().heapsize());
+ assertEquals(256, qrStartConfig.jvm().heapsize());
assertEquals(0, qrStartConfig.jvm().heapSizeAsPercentageOfPhysicalMemory());
assertEquals(2, qrStartConfig.jvm().availableProcessors());
- assertFalse(qrStartConfig.jvm().verbosegc());
+ assertTrue(qrStartConfig.jvm().verbosegc());
assertEquals("-XX:+UseG1GC -XX:MaxTenuringThreshold=15", qrStartConfig.jvm().gcopts());
assertEquals(512, qrStartConfig.jvm().stacksize());
assertEquals(0, qrStartConfig.jvm().directMemorySizeCache());
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SecretStoreValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SecretStoreValidatorTest.java
index da81c74fdd2..4a9535623bb 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SecretStoreValidatorTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/SecretStoreValidatorTest.java
@@ -27,7 +27,7 @@ public class SecretStoreValidatorTest {
private static String servicesXml() {
return joinLines("<services version='1.0'>",
" <container id='default' version='1.0'>",
- " <secret-store>",
+ " <secret-store type='oath-ckms'>",
" <group name='group1' environment='prod'/>",
" </secret-store>",
" </container>",
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
index 30e3767e3dc..23c37666257 100755
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/ContainerClusterTest.java
@@ -107,7 +107,7 @@ public class ContainerClusterTest {
private void verifyHeapSizeAsPercentageOfPhysicalMemory(boolean isHosted, boolean isCombinedCluster,
Integer explicitMemoryPercentage,
int expectedMemoryPercentage) {
- ContainerCluster cluster = createContainerCluster(createRoot(isHosted), isCombinedCluster, explicitMemoryPercentage);
+ ContainerCluster<?> cluster = createContainerCluster(createRoot(isHosted), isCombinedCluster, explicitMemoryPercentage);
QrStartConfig.Builder qsB = new QrStartConfig.Builder();
cluster.getConfig(qsB);
QrStartConfig qsC= new QrStartConfig(qsB);
@@ -171,7 +171,7 @@ public class ContainerClusterTest {
cluster.getConfig(qrBuilder);
QrStartConfig qrStartConfig = new QrStartConfig(qrBuilder);
assertEquals(32, qrStartConfig.jvm().minHeapsize());
- assertEquals(512, qrStartConfig.jvm().heapsize());
+ assertEquals(256, qrStartConfig.jvm().heapsize());
assertEquals(32, qrStartConfig.jvm().compressedClassSpaceSize());
assertEquals(0, qrStartConfig.jvm().heapSizeAsPercentageOfPhysicalMemory());
root.freezeModelTopology();
@@ -398,7 +398,7 @@ public class ContainerClusterTest {
return cluster;
}
- private static ClusterInfoConfig getClusterInfoConfig(ContainerCluster cluster) {
+ private static ClusterInfoConfig getClusterInfoConfig(ContainerCluster<?> cluster) {
ClusterInfoConfig.Builder builder = new ClusterInfoConfig.Builder();
cluster.getConfig(builder);
return new ClusterInfoConfig(builder);
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
index e0e4cbf19c0..92e0b116878 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilderTest.java
@@ -704,7 +704,7 @@ public class ContainerModelBuilderTest extends ContainerModelBuilderTestBase {
public void secret_store_can_be_set_up() {
Element clusterElem = DomBuilderTest.parse(
"<container version='1.0'>",
- " <secret-store>",
+ " <secret-store type='oath-ckms'>",
" <group name='group1' environment='env1'/>",
" </secret-store>",
"</container>");
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
index afaea7c0200..ea76578ef04 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java
@@ -1,7 +1,6 @@
// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.model.content;
-import com.yahoo.cloud.config.ZookeeperServerConfig;
import com.yahoo.config.model.api.ModelContext;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.deploy.TestProperties;
@@ -46,11 +45,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
-import static java.util.stream.Collectors.toSet;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -255,7 +251,7 @@ public class ContentClusterTest extends ContentBaseTest {
List<String> sds = ApplicationPackageUtils.generateSchemas("type1", "type2");
VespaModel model = new VespaModelCreatorWithMockPkg(null, xml, sds).create();
assertEquals(2, model.getContentClusters().get("bar").getDocumentDefinitions().size());
- ContainerCluster cluster = model.getAdmin().getClusterControllers();
+ ContainerCluster<?> cluster = model.getAdmin().getClusterControllers();
assertEquals(3, cluster.getContainers().size());
}
@@ -305,7 +301,7 @@ public class ContentClusterTest extends ContentBaseTest {
VespaModel model = createEnd2EndOneNode(new TestProperties());
assertEquals(1, model.getContentClusters().get("storage").getDocumentDefinitions().size());
- ContainerCluster cluster = model.getAdmin().getClusterControllers();
+ ContainerCluster<?> cluster = model.getAdmin().getClusterControllers();
assertEquals(1, cluster.getContainers().size());
}
@@ -399,8 +395,7 @@ public class ContentClusterTest extends ContentBaseTest {
"</content>"
);
fail("no exception thrown");
- } catch (Exception e) {
- }
+ } catch (Exception e) { /* ignore */ }
}
@Test
@@ -420,8 +415,7 @@ public class ContentClusterTest extends ContentBaseTest {
"</content>"
);
fail("no exception thrown");
- } catch (Exception e) {
- }
+ } catch (Exception e) { /* ignore */ }
}
FleetcontrollerConfig getFleetControllerConfig(String xml) {
@@ -1027,11 +1021,8 @@ public class ContentClusterTest extends ContentBaseTest {
assertEquals(0.1, resolveMaxDeadBytesRatio(0.1), 1e-5);
}
- void assertZookeeperServerImplementation(boolean reconfigurable, String expectedClassName) {
- VespaModel model = createEnd2EndOneNode(
- new TestProperties()
- .reconfigurableZookeeperServer(reconfigurable)
- .setMultitenant(true));
+ void assertZookeeperServerImplementation(String expectedClassName) {
+ VespaModel model = createEnd2EndOneNode(new TestProperties().setMultitenant(true));
ContentCluster cc = model.getContentClusters().get("storage");
for (ClusterControllerContainer c : cc.getClusterControllers().getContainers()) {
@@ -1040,19 +1031,14 @@ public class ContentClusterTest extends ContentBaseTest {
assertEquals(1, new ComponentsConfig(builder).components().stream()
.filter(component -> component.classId().equals(expectedClassName))
.count());
-
- var zBuilder = new ZookeeperServerConfig.Builder();
- c.getConfig(zBuilder);
- assertEquals(reconfigurable, new ZookeeperServerConfig(zBuilder).dynamicReconfiguration());
}
}
@Test
- public void reconfigurableZookeeperServerForClusterController() {
- assertZookeeperServerImplementation(false, "com.yahoo.vespa.zookeeper.VespaZooKeeperServerImpl");
- assertZookeeperServerImplementation(true, "com.yahoo.vespa.zookeeper.ReconfigurableVespaZooKeeperServer");
- assertZookeeperServerImplementation(true, "com.yahoo.vespa.zookeeper.Reconfigurer");
- assertZookeeperServerImplementation(true, "com.yahoo.vespa.zookeeper.VespaZooKeeperAdminImpl");
+ public void reconfigurableZookeeperServerComponentsForClusterController() {
+ assertZookeeperServerImplementation("com.yahoo.vespa.zookeeper.ReconfigurableVespaZooKeeperServer");
+ assertZookeeperServerImplementation("com.yahoo.vespa.zookeeper.Reconfigurer");
+ assertZookeeperServerImplementation("com.yahoo.vespa.zookeeper.VespaZooKeeperAdminImpl");
}
private int resolveMaxInhibitedGroupsConfigWithFeatureFlag(int maxGroups) {
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java
index 50495a211e2..5fd4885a1f2 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentSearchClusterTest.java
@@ -117,13 +117,13 @@ public class ContentSearchClusterTest {
@Test
public void requireThatOnlyDiskLimitCanBeSet() throws Exception {
- assertProtonResourceLimits(0.88, 0.8,
+ assertProtonResourceLimits(0.88, 0.9,
new ContentClusterBuilder().protonDiskLimit(0.88).getXml());
}
@Test
public void requireThatOnlyMemoryLimitCanBeSet() throws Exception {
- assertProtonResourceLimits(0.8, 0.77,
+ assertProtonResourceLimits(0.9, 0.77,
new ContentClusterBuilder().protonMemoryLimit(0.77).getXml());
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
index 32b84d95cc8..b1bd44d93b4 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/content/FleetControllerClusterTest.java
@@ -28,7 +28,7 @@ public class FleetControllerClusterTest {
}
private ClusterControllerConfig parse(String xml) {
- return parse(xml, false);
+ return parse(xml, true);
}
@Test
@@ -158,6 +158,6 @@ public class FleetControllerClusterTest {
}
private FleetcontrollerConfig getConfigForBasicCluster() {
- return getConfigForBasicCluster(false);
+ return getConfigForBasicCluster(true);
}
}
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 b1a8cf07ead..00b4ce02411 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
@@ -48,18 +48,17 @@ public class NodeResourcesTuningTest {
.configid("some/config/id/" + sdMode.getFirst())
.mode(ProtonConfig.Documentdb.Mode.Enum.valueOf(sdMode.getSecond())));
}
- return configFromMemorySetting(gb, builder, redundancy, searchableCopies);
+ return configFromMemorySetting(gb, builder);
}
private void verify_that_initial_numdocs_is_dependent_of_mode(int redundancy, int searchablecopies) {
- int divisor = Math.max(redundancy, searchablecopies);
ProtonConfig cfg = getProtonMemoryConfig(Arrays.asList(new Pair<>("a", "INDEX"), new Pair<>("b", "STREAMING"), new Pair<>("c", "STORE_ONLY")), 24 + reservedMemoryGb, redundancy, searchablecopies);
assertEquals(3, cfg.documentdb().size());
assertEquals(1024, cfg.documentdb(0).allocation().initialnumdocs());
assertEquals("a", cfg.documentdb(0).inputdoctypename());
- assertEquals(24 * GB / 64 / divisor, cfg.documentdb(1).allocation().initialnumdocs());
+ assertEquals(24 * GB / 46, cfg.documentdb(1).allocation().initialnumdocs());
assertEquals("b", cfg.documentdb(1).inputdoctypename());
- assertEquals(24 * GB / 64 / divisor, cfg.documentdb(2).allocation().initialnumdocs());
+ assertEquals(24 * GB / 46, cfg.documentdb(2).allocation().initialnumdocs());
assertEquals("c", cfg.documentdb(2).inputdoctypename());
}
@@ -210,9 +209,9 @@ public class NodeResourcesTuningTest {
return getConfig(new FlavorsConfig.Flavor.Builder().minMainMemoryAvailableGb(memoryGb), combined);
}
- private static ProtonConfig configFromMemorySetting(double memoryGb, ProtonConfig.Builder builder, int redundancy, int searchableCopies) {
+ private static ProtonConfig configFromMemorySetting(double memoryGb, ProtonConfig.Builder builder) {
return getConfig(new FlavorsConfig.Flavor.Builder()
- .minMainMemoryAvailableGb(memoryGb), builder, redundancy, searchableCopies, false);
+ .minMainMemoryAvailableGb(memoryGb), builder, false);
}
private static ProtonConfig configFromNumCoresSetting(double numCores) {
@@ -221,7 +220,7 @@ public class NodeResourcesTuningTest {
private static ProtonConfig configFromNumCoresSetting(double numCores, int numThreadsPerSearch) {
return getConfig(new FlavorsConfig.Flavor.Builder().minCpuCores(numCores),
- new ProtonConfig.Builder(), 1, 1, numThreadsPerSearch, false);
+ new ProtonConfig.Builder(), numThreadsPerSearch, false);
}
private static ProtonConfig configFromEnvironmentType(boolean docker) {
@@ -233,25 +232,17 @@ public class NodeResourcesTuningTest {
return getConfig(flavorBuilder, new ProtonConfig.Builder(), combined);
}
- private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder,
- ProtonConfig.Builder protonBuilder, boolean combined) {
- return getConfig(flavorBuilder, protonBuilder, 1, 1, combined);
- }
-
- private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder,
- int redundancy, int searchableCopies, boolean combined) {
+ private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder, boolean combined) {
flavorBuilder.name("my_flavor");
- NodeResourcesTuning tuning = new NodeResourcesTuning(new Flavor(new FlavorsConfig.Flavor(flavorBuilder)).resources(),
- redundancy, searchableCopies, 1, combined);
+ NodeResourcesTuning tuning = new NodeResourcesTuning(new Flavor(new FlavorsConfig.Flavor(flavorBuilder)).resources(), 1, combined);
tuning.getConfig(protonBuilder);
return new ProtonConfig(protonBuilder);
}
private static ProtonConfig getConfig(FlavorsConfig.Flavor.Builder flavorBuilder, ProtonConfig.Builder protonBuilder,
- int redundancy, int searchableCopies, int numThreadsPerSearch, boolean combined) {
+ int numThreadsPerSearch, boolean combined) {
flavorBuilder.name("my_flavor");
- NodeResourcesTuning tuning = new NodeResourcesTuning(new Flavor(new FlavorsConfig.Flavor(flavorBuilder)).resources(),
- redundancy, searchableCopies, numThreadsPerSearch, combined);
+ NodeResourcesTuning tuning = new NodeResourcesTuning(new Flavor(new FlavorsConfig.Flavor(flavorBuilder)).resources(), numThreadsPerSearch, combined);
tuning.getConfig(protonBuilder);
return new ProtonConfig(protonBuilder);
}