You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/10/09 08:20:01 UTC
[shardingsphere] branch master updated: Reduce Proxy flush times
when exception occur (#12956)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 3a45bf2 Reduce Proxy flush times when exception occur (#12956)
3a45bf2 is described below
commit 3a45bf2b3b3c4348f4a5a8155f6120e2e0d96961
Author: 吴伟杰 <wu...@apache.org>
AuthorDate: Sat Oct 9 16:19:14 2021 +0800
Reduce Proxy flush times when exception occur (#12956)
---
.../shardingsphere/proxy/frontend/command/CommandExecutorTask.java | 5 +++--
.../proxy/frontend/command/CommandExecutorTaskTest.java | 6 ++++--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
index b3c59d2..43e6153 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/main/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTask.java
@@ -114,9 +114,10 @@ public final class CommandExecutorTask implements Runnable {
if (!ExpectedExceptions.isExpected(cause.getClass())) {
log.error("Exception occur: ", cause);
}
- context.writeAndFlush(databaseProtocolFrontendEngine.getCommandExecuteEngine().getErrorPacket(cause, backendConnection));
+ context.write(databaseProtocolFrontendEngine.getCommandExecuteEngine().getErrorPacket(cause, backendConnection));
Optional<DatabasePacket<?>> databasePacket = databaseProtocolFrontendEngine.getCommandExecuteEngine().getOtherPacket(backendConnection);
- databasePacket.ifPresent(context::writeAndFlush);
+ databasePacket.ifPresent(context::write);
+ context.flush();
}
private Collection<SQLException> closeExecutionResources() {
diff --git a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java
index a55edd4..d3f5e1b 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/command/CommandExecutorTaskTest.java
@@ -43,11 +43,12 @@ import java.util.Optional;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+@SuppressWarnings("unchecked")
@RunWith(MockitoJUnitRunner.class)
public final class CommandExecutorTaskTest {
@@ -169,7 +170,8 @@ public final class CommandExecutorTaskTest {
when(backendConnection.closeFederationExecutor()).thenReturn(Collections.emptyList());
CommandExecutorTask actual = new CommandExecutorTask(engine, backendConnection, handlerContext, message);
actual.run();
- verify(handlerContext, atLeast(2)).writeAndFlush(databasePacket);
+ verify(handlerContext, times(2)).write(databasePacket);
+ verify(handlerContext).flush();
verify(backendConnection).closeDatabaseCommunicationEngines(true);
}
}