summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp1
-rw-r--r--messagebus/src/vespa/messagebus/network/rpcnetworkparams.h8
-rw-r--r--storage/src/vespa/storage/config/stor-communicationmanager.def8
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanager.cpp3
4 files changed, 18 insertions, 2 deletions
diff --git a/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp b/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp
index ed104dc6cd5..59802167c34 100644
--- a/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp
+++ b/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp
@@ -17,6 +17,7 @@ RPCNetworkParams::RPCNetworkParams(config::ConfigUri configUri) :
_maxOutputBufferSize(256_Ki),
_numThreads(4),
_numNetworkThreads(1),
+ _numRpcTargets(1),
_tcpNoDelay(true),
_dispatchOnEncode(true),
_dispatchOnDecode(false),
diff --git a/messagebus/src/vespa/messagebus/network/rpcnetworkparams.h b/messagebus/src/vespa/messagebus/network/rpcnetworkparams.h
index 193bc013c0a..37739ee5189 100644
--- a/messagebus/src/vespa/messagebus/network/rpcnetworkparams.h
+++ b/messagebus/src/vespa/messagebus/network/rpcnetworkparams.h
@@ -21,6 +21,7 @@ private:
uint32_t _maxOutputBufferSize;
uint32_t _numThreads;
uint32_t _numNetworkThreads;
+ uint32_t _numRpcTargets;
bool _tcpNoDelay;
bool _dispatchOnEncode;
bool _dispatchOnDecode;
@@ -47,6 +48,13 @@ public:
uint32_t getNumNetworkThreads() const { return _numNetworkThreads; }
+ RPCNetworkParams &setNumRpcTargets(uint32_t numRpcTargets) {
+ _numRpcTargets = numRpcTargets;
+ return *this;
+ }
+
+ uint32_t getNumRpcTargets() const { return _numRpcTargets; }
+
/**
* Returns the identity to use for the network.
*
diff --git a/storage/src/vespa/storage/config/stor-communicationmanager.def b/storage/src/vespa/storage/config/stor-communicationmanager.def
index 534be7cb6fe..70b8d3ca2b7 100644
--- a/storage/src/vespa/storage/config/stor-communicationmanager.def
+++ b/storage/src/vespa/storage/config/stor-communicationmanager.def
@@ -29,8 +29,14 @@ mbus.compress.type enum {NONE, LZ4, ZSTD} default=LZ4 restart
## TTL for rpc target cache
mbus.rpctargetcache.ttl double default = 600 restart
+## Number of rpc targets per spec
+mbus.num_rpc_targets int default=1 restart
+
+## Use tcpNoDelay for mbus network writes
+mbus.tcp_no_delay bool default=true restart
+
## Number of threads for network.
-mbus.num_network_threads int default=1
+mbus.num_network_threads int default=1 restart
## Number of workers threads for messagebus
## Any value below 1 will be 1.
diff --git a/storage/src/vespa/storage/storageserver/communicationmanager.cpp b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
index 39f058d1085..7de1b7d869e 100644
--- a/storage/src/vespa/storage/storageserver/communicationmanager.cpp
+++ b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
@@ -394,9 +394,10 @@ void CommunicationManager::configure(std::unique_ptr<CommunicationManagerConfig>
params.setConnectionExpireSecs(config->mbus.rpctargetcache.ttl);
params.setNumThreads(std::max(1, config->mbus.numThreads));
params.setNumNetworkThreads(std::max(1, config->mbus.numNetworkThreads));
+ params.setNumRpcTargets(std::max(1, config->mbus.numRpcTargets));
params.setDispatchOnDecode(config->mbus.dispatchOnDecode);
params.setDispatchOnEncode(config->mbus.dispatchOnEncode);
- params.setTcpNoDelay(config->mbus.optimizeFor == CommunicationManagerConfig::Mbus::OptimizeFor::LATENCY);
+ params.setTcpNoDelay(config->mbus.tcpNoDelay);
params.setIdentity(mbus::Identity(_component.getIdentity()));
if (config->mbusport != -1) {