summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2021-09-07 17:59:12 +0200
committerGitHub <noreply@github.com>2021-09-07 17:59:12 +0200
commit3d3c9117a600ccc7ca3cd924b60a2dde64b67f6b (patch)
tree88c84fa3c4e0876d0746876bbf693695b3cc34a7
parent16fcfa934713d64cc420363f66fbe13cf2f5ee16 (diff)
parent7d3b6bac3c312e1bcc60228ab9b15af44d07c779 (diff)
Merge pull request #19000 from vespa-engine/geirst/num-distributor-stripes-safeguard
Add safeguards for num distributor stripes being set to -1.
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java18
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java1
-rw-r--r--storageserver/src/vespa/storageserver/app/distributorprocess.cpp2
3 files changed, 13 insertions, 8 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
index f0a2e52f6bf..b5fe4ddee41 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java
@@ -49,14 +49,18 @@ public class Distributor extends ContentNode implements StorDistributormanagerCo
}
private int tuneNumDistributorStripes() {
- if ((numDistributorStripesFlag == -1) && (getHostResource() != null)) {
- int cores = (int)getHostResource().realResources().vcpu();
- if (cores <= 16) {
- return 1;
- } else if (cores <= 64) {
- return 2;
+ if (numDistributorStripesFlag == -1) {
+ if (getHostResource() != null) {
+ int cores = (int)getHostResource().realResources().vcpu();
+ if (cores <= 16) {
+ return 1;
+ } else if (cores <= 64) {
+ return 2;
+ } else {
+ return 4;
+ }
} else {
- return 4;
+ return 1;
}
}
return numDistributorStripesFlag;
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 c79238ed1d6..c7c02c581f9 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
@@ -1079,6 +1079,7 @@ public class ContentClusterTest extends ContentBaseTest {
assertEquals(0, resolveNumDistributorStripesConfigWithFeatureFlag(new TestProperties(), Optional.empty()));
assertEquals(0, resolveNumDistributorStripesConfigWithFeatureFlag(0));
assertEquals(1, resolveNumDistributorStripesConfigWithFeatureFlag(1));
+ assertEquals(1, resolveNumDistributorStripesConfigWithFeatureFlag(-1));
assertEquals(4, resolveNumDistributorStripesConfigWithFeatureFlag(4));
}
diff --git a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp
index 45802df8866..9b66500cef4 100644
--- a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp
+++ b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp
@@ -56,7 +56,7 @@ DistributorProcess::setupConfig(milliseconds subscribeTimeout)
auto distr_cfg = config::ConfigGetter<StorDistributormanagerConfig>::getConfig(
_configUri.getConfigId(), _configUri.getContext(), subscribeTimeout);
- _num_distributor_stripes = adjusted_num_distributor_stripes(distr_cfg->numDistributorStripes);
+ _num_distributor_stripes = adjusted_num_distributor_stripes(std::max(distr_cfg->numDistributorStripes, 0));
_distributorConfigHandler = _configSubscriber.subscribe<StorDistributormanagerConfig>(_configUri.getConfigId(), subscribeTimeout);
_visitDispatcherConfigHandler = _configSubscriber.subscribe<StorVisitordispatcherConfig>(_configUri.getConfigId(), subscribeTimeout);
Process::setupConfig(subscribeTimeout);