diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-07-02 07:37:01 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-07-02 07:37:01 +0000 |
commit | 33a30b2c11e7857ff5c29344a9c90cd260843e5d (patch) | |
tree | ac0d43afc25ff5701e9c596bab25d42a1f83c7cf /messagebus | |
parent | 644e1e158f842e858a557871d58414b01e335b9b (diff) |
Support multiple network threads in mbus.
Diffstat (limited to 'messagebus')
4 files changed, 16 insertions, 2 deletions
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; @@ -34,6 +35,19 @@ public: ~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. * * @return The identity. |