diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-03-25 14:31:21 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-03-25 14:31:21 +0000 |
commit | 5ba4494cacab2dda7e037aecd18bf9055033094d (patch) | |
tree | 57cfd6333903577d8aeed7fd1b072a49e7fa1bed /messagebus | |
parent | e1424276029d0c364a33724eb3b03b7807e17c9e (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.java | 2 | ||||
-rwxr-xr-x | messagebus/src/main/java/com/yahoo/messagebus/network/rpc/RPCNetworkParams.java | 21 |
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. * |