summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-06-14 15:48:11 +0200
committerHenning Baldersheim <balder@oath.com>2018-06-15 14:51:38 +0200
commitf82b045d1ad8d032c5074d95b33aa0b0f3eb43b6 (patch)
treebc93945d71a5fce0ce8ce221b849ae035ecad4e6 /storage
parentf94ea4ac173c3477bb3c1069df97b666c36065db (diff)
Control threadpool and dispatch of encode/decode by config.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/config/stor-communicationmanager.def13
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanager.cpp11
2 files changed, 20 insertions, 4 deletions
diff --git a/storage/src/vespa/storage/config/stor-communicationmanager.def b/storage/src/vespa/storage/config/stor-communicationmanager.def
index e29540de064..2a2a840dd4e 100644
--- a/storage/src/vespa/storage/config/stor-communicationmanager.def
+++ b/storage/src/vespa/storage/config/stor-communicationmanager.def
@@ -28,3 +28,16 @@ mbus.compress.type enum {NONE, LZ4, ZSTD} default=LZ4
## TTL for rpc target cache
mbus.rpctargetcache.ttl double default = 600
+
+## Number of threads for mbus threadpool
+## Any value below 1 will be 1.
+mbus.num_threads int default=4
+
+## Enable to use above thread pool for encoding replies
+## False will use network(fnet) thread
+mbus.dispatch_on_encode bool default=true
+
+## Enable to use above thread pool for decoding replies
+## False will use network(fnet) thread
+## Todo: Change default once verified in large scale deployment.
+mbus.dispatch_on_decode bool default=false
diff --git a/storage/src/vespa/storage/storageserver/communicationmanager.cpp b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
index 94a151bcdc1..1704b97ccc7 100644
--- a/storage/src/vespa/storage/storageserver/communicationmanager.cpp
+++ b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
@@ -79,7 +79,7 @@ StorageTransportContext::StorageTransportContext(std::unique_ptr<RPCRequestWrapp
: _request(std::move(request))
{ }
-StorageTransportContext::~StorageTransportContext() { }
+StorageTransportContext::~StorageTransportContext() = default;
void
CommunicationManager::receiveStorageReply(const std::shared_ptr<api::StorageReply>& reply)
@@ -278,13 +278,13 @@ void CommunicationManager::fail_with_unresolvable_bucket_space(
namespace {
struct PlaceHolderBucketResolver : public BucketResolver {
- virtual document::Bucket bucketFromId(const document::DocumentId &) const override {
+ document::Bucket bucketFromId(const document::DocumentId &) const override {
return document::Bucket(FixedBucketSpaces::default_space(), document::BucketId(0));
}
- virtual document::BucketSpace bucketSpaceFromName(const vespalib::string &) const override {
+ document::BucketSpace bucketSpaceFromName(const vespalib::string &) const override {
return FixedBucketSpaces::default_space();
}
- virtual vespalib::string nameFromBucketSpace(const document::BucketSpace &bucketSpace) const override {
+ vespalib::string nameFromBucketSpace(const document::BucketSpace &bucketSpace) const override {
assert(bucketSpace == FixedBucketSpaces::default_space());
return FixedBucketSpaces::to_string(bucketSpace);
}
@@ -423,6 +423,9 @@ void CommunicationManager::configure(std::unique_ptr<CommunicationManagerConfig>
params.setSlobrokConfig(_configUri);
params.setConnectionExpireSecs(config->mbus.rpctargetcache.ttl);
+ params.setNumThreads(config->mbus.numThreads);
+ params.setDispatchOnDecode(config->mbus.dispatchOnDecode);
+ params.setDispatchOnEncode(config->mbus.dispatchOnEncode);
params.setIdentity(mbus::Identity(_component.getIdentity()));
if (config->mbusport != -1) {