From 33a30b2c11e7857ff5c29344a9c90cd260843e5d Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Fri, 2 Jul 2021 07:37:01 +0000 Subject: Support multiple network threads in mbus. --- messagebus/src/vespa/messagebus/network/rpcnetwork.cpp | 2 +- messagebus/src/vespa/messagebus/network/rpcnetwork.h | 1 - .../src/vespa/messagebus/network/rpcnetworkparams.cpp | 1 + messagebus/src/vespa/messagebus/network/rpcnetworkparams.h | 14 ++++++++++++++ 4 files changed, 16 insertions(+), 2 deletions(-) (limited to 'messagebus') diff --git a/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp b/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp index 34ba486d0c9..8d0733c4cf1 100644 --- a/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp +++ b/messagebus/src/vespa/messagebus/network/rpcnetwork.cpp @@ -82,7 +82,7 @@ struct TargetPoolTask : public FNET_Task { TransportConfig toFNETConfig(const RPCNetworkParams & params) { - return TransportConfig() + return TransportConfig(params.getNumNetworkThreads()) .maxInputBufferSize(params.getMaxInputBufferSize()) .maxOutputBufferSize(params.getMaxOutputBufferSize()) .tcpNoDelay(params.getTcpNoDelay()); diff --git a/messagebus/src/vespa/messagebus/network/rpcnetwork.h b/messagebus/src/vespa/messagebus/network/rpcnetwork.h index d701358fc84..a3722376086 100644 --- a/messagebus/src/vespa/messagebus/network/rpcnetwork.h +++ b/messagebus/src/vespa/messagebus/network/rpcnetwork.h @@ -74,7 +74,6 @@ private: bool _allowDispatchForEncode; bool _allowDispatchForDecode; - /** * Resolves and assigns a service address for the given recipient using the * given address. This is called by the {@link diff --git a/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp b/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp index d440d3b012b..ed104dc6cd5 100644 --- a/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp +++ b/messagebus/src/vespa/messagebus/network/rpcnetworkparams.cpp @@ -16,6 +16,7 @@ RPCNetworkParams::RPCNetworkParams(config::ConfigUri configUri) : _maxInputBufferSize(256_Ki), _maxOutputBufferSize(256_Ki), _numThreads(4), + _numNetworkThreads(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 ddb4df1a3a3..193bc013c0a 100644 --- a/messagebus/src/vespa/messagebus/network/rpcnetworkparams.h +++ b/messagebus/src/vespa/messagebus/network/rpcnetworkparams.h @@ -20,6 +20,7 @@ private: uint32_t _maxInputBufferSize; uint32_t _maxOutputBufferSize; uint32_t _numThreads; + uint32_t _numNetworkThreads; bool _tcpNoDelay; bool _dispatchOnEncode; bool _dispatchOnDecode; @@ -33,6 +34,19 @@ public: RPCNetworkParams(config::ConfigUri configUri); ~RPCNetworkParams(); + /** + * Sets number of threads for the network. + * + * @param numNetworkThreads number of threads for the network + * @return This, to allow chaining. + */ + RPCNetworkParams &setNumNetworkThreads(uint32_t numNetworkThreads) { + _numNetworkThreads = numNetworkThreads; + return *this; + } + + uint32_t getNumNetworkThreads() const { return _numNetworkThreads; } + /** * Returns the identity to use for the network. * -- cgit v1.2.3