aboutsummaryrefslogtreecommitdiffstats
path: root/messagebus
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-25 14:31:21 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-25 14:31:21 +0000
commit5ba4494cacab2dda7e037aecd18bf9055033094d (patch)
tree57cfd6333903577d8aeed7fd1b072a49e7fa1bed /messagebus
parente1424276029d0c364a33724eb3b03b7807e17c9e (diff)
Add control over
- num network threads - num connections per target - tcpnodelay Defaults are unchanged.
Diffstat (limited to 'messagebus')
-rw-r--r--messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java2
-rwxr-xr-xmessagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java21
2 files changed, 22 insertions, 1 deletions
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java
index 0fd52e9bdbc..602c33bd6f4 100644
--- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetwork.java
@@ -82,7 +82,7 @@ public class RPCNetwork implements Network, MethodHandler {
public RPCNetwork(RPCNetworkParams params, SlobrokConfigSubscriber slobrokConfig) {
this.slobroksConfig = slobrokConfig;
identity = params.getIdentity();
- orb = new Supervisor(new Transport(2));
+ orb = new Supervisor(new Transport(params.getNumNetworkThreads(), params.getOptimization() == RPCNetworkParams.Optimization.LATENCY));
orb.setMaxInputBufferSize(params.getMaxInputBufferSize());
orb.setMaxOutputBufferSize(params.getMaxOutputBufferSize());
targetPool = new RPCTargetPool(params.getConnectionExpireSecs(), params.getNumTargetsPerSpec());
diff --git a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java
index d6d7603f54a..e77cddd8b06 100755
--- a/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java
+++ b/messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java
@@ -20,6 +20,9 @@ public class RPCNetworkParams {
private int maxOutputBufferSize = 256 * 1024;
private double connectionExpireSecs = 30;
private int numTargetsPerSpec = 1;
+ private int numNetworkThreads = 2;
+ public enum Optimization {LATENCY, THROUGHPUT}
+ Optimization optimization = Optimization.LATENCY;
/**
* Constructs a new instance of this class with reasonable default values.
@@ -42,6 +45,8 @@ public class RPCNetworkParams {
maxInputBufferSize = params.maxInputBufferSize;
maxOutputBufferSize = params.maxOutputBufferSize;
numTargetsPerSpec = params.numTargetsPerSpec;
+ numNetworkThreads = params.numNetworkThreads;
+ optimization = params.optimization;
}
/**
@@ -152,6 +157,22 @@ public class RPCNetworkParams {
return numTargetsPerSpec;
}
+ public RPCNetworkParams setNumNetworkThreads(int numNetworkThreads) {
+ this.numNetworkThreads = numNetworkThreads;
+ return this;
+ }
+ int getNumNetworkThreads() {
+ return numNetworkThreads;
+ }
+
+ public RPCNetworkParams setOptimization(Optimization optimization) {
+ this.optimization = optimization;
+ return this;
+ }
+ Optimization getOptimization() {
+ return optimization;
+ }
+
/**
* Returns the maximum input buffer size allowed for the underlying FNET connection.
*