summaryrefslogtreecommitdiffstats
path: root/storageserver
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2021-09-16 09:15:12 +0000
committerGeir Storli <geirst@verizonmedia.com>2021-09-16 09:15:12 +0000
commite71201912bfde5477861f6b69bad783e2705fab4 (patch)
tree2748a5c9407887aad7a9180b0ecd30f8f295791f /storageserver
parentfb5d4c9b0ac504698f4df52b9b0257170b944450 (diff)
Flip to always use the new distributor stripe code path.
If the number of stripes is not configured, we tune it based on the sampled number of CPU cores.
Diffstat (limited to 'storageserver')
-rw-r--r--storageserver/src/vespa/storageserver/app/distributorprocess.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp
index 9b66500cef4..d1403c279d9 100644
--- a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp
+++ b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp
@@ -5,6 +5,7 @@
#include <vespa/storage/common/bucket_stripe_utils.h>
#include <vespa/storage/common/i_storage_chain_builder.h>
#include <vespa/storage/common/storagelink.h>
+#include <thread>
#include <vespa/log/log.h>
LOG_SETUP(".process.distributor");
@@ -36,14 +37,19 @@ DistributorProcess::shutdown()
namespace {
uint32_t
-adjusted_num_distributor_stripes(uint32_t cfg_n_stripes)
+adjusted_num_distributor_stripes(int32_t cfg_n_stripes)
{
- uint32_t adjusted_n_stripes = storage::adjusted_num_stripes(cfg_n_stripes);
- if (adjusted_n_stripes != cfg_n_stripes) {
- LOG(warning, "Configured number of distributor stripes (%u) is not valid. Adjusting to a valid value (%u)",
- cfg_n_stripes, adjusted_n_stripes);
+ if (cfg_n_stripes <= 0) {
+ uint32_t cpu_cores = std::thread::hardware_concurrency();
+ return storage::tune_num_stripes_based_on_cpu_cores(cpu_cores);
+ } else {
+ uint32_t adjusted_n_stripes = storage::adjusted_num_stripes(cfg_n_stripes);
+ if (adjusted_n_stripes != static_cast<uint32_t>(cfg_n_stripes)) {
+ LOG(warning, "Configured number of distributor stripes (%d) is not valid. Adjusting to a valid value (%u)",
+ cfg_n_stripes, adjusted_n_stripes);
+ }
+ return adjusted_n_stripes;
}
- return adjusted_n_stripes;
}
}
@@ -56,7 +62,7 @@ DistributorProcess::setupConfig(milliseconds subscribeTimeout)
auto distr_cfg = config::ConfigGetter<StorDistributormanagerConfig>::getConfig(
_configUri.getConfigId(), _configUri.getContext(), subscribeTimeout);
- _num_distributor_stripes = adjusted_num_distributor_stripes(std::max(distr_cfg->numDistributorStripes, 0));
+ _num_distributor_stripes = adjusted_num_distributor_stripes(distr_cfg->numDistributorStripes);
_distributorConfigHandler = _configSubscriber.subscribe<StorDistributormanagerConfig>(_configUri.getConfigId(), subscribeTimeout);
_visitDispatcherConfigHandler = _configSubscriber.subscribe<StorVisitordispatcherConfig>(_configUri.getConfigId(), subscribeTimeout);
Process::setupConfig(subscribeTimeout);