summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-27 00:35:33 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-27 00:35:33 +0000
commitd6261332f8014bf55b8f6b76227a1be0146630be (patch)
tree939fe6012b0a088364602525c3d25f5bb7e7c992 /storage
parent9a448a86c87d6c2878c55443b66255fc0c23feb7 (diff)
tcpnodelay is dead. Both worse latency and throughput.
Use optimize_for to select executor type instead.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanager.cpp14
-rw-r--r--storage/src/vespa/storage/storageserver/communicationmanager.h2
2 files changed, 14 insertions, 2 deletions
diff --git a/storage/src/vespa/storage/storageserver/communicationmanager.cpp b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
index fa2b0cda018..e7d1f06bbd7 100644
--- a/storage/src/vespa/storage/storageserver/communicationmanager.cpp
+++ b/storage/src/vespa/storage/storageserver/communicationmanager.cpp
@@ -25,6 +25,7 @@ LOG_SETUP(".communication.manager");
using vespalib::make_string;
using document::FixedBucketSpaces;
+using CommunicationManagerConfig = vespa::config::content::core::StorCommunicationmanagerConfig;
namespace storage {
@@ -281,6 +282,17 @@ struct PlaceHolderBucketResolver : public BucketResolver {
}
};
+mbus::RPCNetworkParams::OptimizeFor
+convert(CommunicationManagerConfig::Mbus::OptimizeFor optimizeFor) {
+ switch (optimizeFor) {
+ case CommunicationManagerConfig::Mbus::OptimizeFor::LATENCY:
+ return mbus::RPCNetworkParams::OptimizeFor::LATENCY;
+ case CommunicationManagerConfig::Mbus::OptimizeFor::THROUGHPUT:
+ default:
+ return mbus::RPCNetworkParams::OptimizeFor::THROUGHPUT;
+ }
+}
+
}
CommunicationManager::CommunicationManager(StorageComponentRegister& compReg, const config::ConfigUri & configUri)
@@ -415,7 +427,7 @@ void CommunicationManager::configure(std::unique_ptr<CommunicationManagerConfig>
params.setNumThreads(std::max(1, config->mbus.numThreads));
params.setDispatchOnDecode(config->mbus.dispatchOnDecode);
params.setDispatchOnEncode(config->mbus.dispatchOnEncode);
- params.setTcpNoDelay(config->mbus.optimizeFor == CommunicationManagerConfig::Mbus::OptimizeFor::LATENCY);
+ params.setOptimizeFor(convert(config->mbus.optimizeFor));
params.setIdentity(mbus::Identity(_component.getIdentity()));
if (config->mbusport != -1) {
diff --git a/storage/src/vespa/storage/storageserver/communicationmanager.h b/storage/src/vespa/storage/storageserver/communicationmanager.h
index c08ad214768..a0ae4bf3b43 100644
--- a/storage/src/vespa/storage/storageserver/communicationmanager.h
+++ b/storage/src/vespa/storage/storageserver/communicationmanager.h
@@ -116,7 +116,7 @@ private:
void process(const std::shared_ptr<api::StorageMessage>& msg);
- using CommunicationManagerConfig= vespa::config::content::core::StorCommunicationmanagerConfig;
+ using CommunicationManagerConfig = vespa::config::content::core::StorCommunicationmanagerConfig;
using BucketspacesConfig = vespa::config::content::core::BucketspacesConfig;
void configureMessageBusLimits(const CommunicationManagerConfig& cfg);