diff options
author | Geir Storli <geirst@verizonmedia.com> | 2021-09-16 09:15:12 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2021-09-16 09:15:12 +0000 |
commit | e71201912bfde5477861f6b69bad783e2705fab4 (patch) | |
tree | 2748a5c9407887aad7a9180b0ecd30f8f295791f /storageserver | |
parent | fb5d4c9b0ac504698f4df52b9b0257170b944450 (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.cpp | 20 |
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); |