DRILL-8132: Improvement of RPC (#2464)
Co-authored-by: feiteng.wtf <feiteng.wtf@cainiao.com>
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlClient.java b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlClient.java
index d74402a..b95d42b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlClient.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlClient.java
@@ -50,7 +50,7 @@
super(ControlRpcConfig.getMapping(config.getBootstrapContext().getConfig(),
config.getBootstrapContext().getExecutor()),
config.getAllocator().getAsByteBufAllocator(),
- config.getBootstrapContext().getBitLoopGroup(),
+ config.getBootstrapContext().getControlLoopGroup(),
RpcType.HANDSHAKE,
BitControlHandshake.class,
BitControlHandshake.PARSER);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlServer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlServer.java
index d8cc3fb..a70cfb2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlServer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/ControlServer.java
@@ -41,7 +41,7 @@
super(ControlRpcConfig.getMapping(config.getBootstrapContext().getConfig(),
config.getBootstrapContext().getExecutor()),
config.getAllocator().getAsByteBufAllocator(),
- config.getBootstrapContext().getBitLoopGroup());
+ config.getBootstrapContext().getControlLoopGroup());
this.config = config;
this.connectionRegistry = connectionRegistry;
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataClient.java b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataClient.java
index da6e176..306ca90 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataClient.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataClient.java
@@ -51,7 +51,7 @@
DataRpcConfig.getMapping(config.getBootstrapContext().getConfig(),
config.getBootstrapContext().getExecutor()),
config.getAllocator().getAsByteBufAllocator(),
- config.getBootstrapContext().getBitClientLoopGroup(),
+ config.getBootstrapContext().getDataClientLoopGroup(),
RpcType.HANDSHAKE,
BitServerHandshake.class,
BitServerHandshake.PARSER);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataServer.java b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataServer.java
index c4c8490..dc593e3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataServer.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/data/DataServer.java
@@ -41,7 +41,7 @@
DataRpcConfig.getMapping(config.getBootstrapContext().getConfig(),
config.getBootstrapContext().getExecutor()),
config.getAllocator().getAsByteBufAllocator(),
- config.getBootstrapContext().getBitLoopGroup());
+ config.getBootstrapContext().getDataServerLoopGroup());
this.config = config;
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/BootStrapContext.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/BootStrapContext.java
index b090857..a353d81 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/BootStrapContext.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/BootStrapContext.java
@@ -63,8 +63,9 @@
private final DrillConfig config;
private final CaseInsensitiveMap<OptionDefinition> definitions;
private final AuthenticatorProvider authProvider;
- private final EventLoopGroup loop;
- private final EventLoopGroup loop2;
+ private final EventLoopGroup controlLoopGroup;
+ private final EventLoopGroup dataClientLoopGroup;
+ private final EventLoopGroup dataServerLoopGroup;
private final MetricRegistry metrics;
private final BufferAllocator allocator;
private final ScanResult classpathScan;
@@ -81,8 +82,9 @@
this.hostName = getCanonicalHostName();
login(config);
this.authProvider = new AuthenticatorProviderImpl(config, classpathScan);
- this.loop = TransportCheck.createEventLoopGroup(config.getInt(ExecConstants.BIT_SERVER_RPC_THREADS), "BitServer-");
- this.loop2 = TransportCheck.createEventLoopGroup(config.getInt(ExecConstants.BIT_SERVER_RPC_THREADS), "BitClient-");
+ this.controlLoopGroup = TransportCheck.createEventLoopGroup(config.getInt(ExecConstants.BIT_SERVER_RPC_THREADS), "Control-");
+ this.dataClientLoopGroup = TransportCheck.createEventLoopGroup(config.getInt(ExecConstants.BIT_SERVER_RPC_THREADS), "DataClient-");
+ this.dataServerLoopGroup = TransportCheck.createEventLoopGroup(config.getInt(ExecConstants.BIT_SERVER_RPC_THREADS), "DataServer-");
// Note that metrics are stored in a static instance
this.metrics = DrillMetrics.getRegistry();
this.allocator = RootAllocatorFactory.newRoot(config);
@@ -195,12 +197,16 @@
return definitions;
}
- public EventLoopGroup getBitLoopGroup() {
- return loop;
+ public EventLoopGroup getControlLoopGroup() {
+ return controlLoopGroup;
}
- public EventLoopGroup getBitClientLoopGroup() {
- return loop2;
+ public EventLoopGroup getDataClientLoopGroup() {
+ return dataClientLoopGroup;
+ }
+
+ public EventLoopGroup getDataServerLoopGroup() {
+ return dataClientLoopGroup;
}
public MetricRegistry getMetrics() {
@@ -258,9 +264,9 @@
try {
AutoCloseables.close(allocator, authProvider);
- shutdown(loop);
- shutdown(loop2);
-
+ shutdown(controlLoopGroup);
+ shutdown(dataClientLoopGroup);
+ shutdown(dataServerLoopGroup);
} catch (final Exception e) {
logger.error("Error while closing", e);
}
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/DrillbitContext.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/DrillbitContext.java
index bcc446b..e17b4fa 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/DrillbitContext.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/DrillbitContext.java
@@ -227,7 +227,7 @@
public OAuthTokenProvider getoAuthTokenProvider() { return oAuthTokenProvider; }
public EventLoopGroup getBitLoopGroup() {
- return context.getBitLoopGroup();
+ return context.getControlLoopGroup();
}
public DataConnectionCreator getDataConnectionsPool() {
diff --git a/exec/java-exec/src/main/resources/drill-module.conf b/exec/java-exec/src/main/resources/drill-module.conf
index d5277ff..e36b4ff 100644
--- a/exec/java-exec/src/main/resources/drill-module.conf
+++ b/exec/java-exec/src/main/resources/drill-module.conf
@@ -91,7 +91,7 @@
count: 7200,
delay: 500
},
- threads: 10
+ threads: 8
memory: {
control: {
reservation: 0,