This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new fdd7ddc1fe5 [improvement](mem)Dereference for executor (#40800)
fdd7ddc1fe5 is described below

commit fdd7ddc1fe5a6cf2ffe02b7a4083e04723a665c6
Author: wuwenchi <[email protected]>
AuthorDate: Wed Sep 18 18:59:27 2024 +0800

    [improvement](mem)Dereference for executor (#40800)
    
    ## Proposed changes
    
    When a cmd is executed, we can cancel the reference to the `executor` to
    release the related resources. Otherwise, these resources can only be
    released when the next cmd is executed.
---
 .../src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java   | 1 +
 fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java     | 5 +++++
 .../src/main/java/org/apache/doris/qe/MysqlConnectProcessor.java     | 2 ++
 3 files changed, 8 insertions(+)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java
index ffebe97e706..0c400950c58 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/AutoCloseConnectContext.java
@@ -36,6 +36,7 @@ public class AutoCloseConnectContext implements AutoCloseable 
{
 
     @Override
     public void close() {
+        connectContext.clear();
         ConnectContext.remove();
         if (previousContext != null) {
             previousContext.setThreadLocalInfo();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
index fa81825d370..cdbbd058377 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java
@@ -832,6 +832,11 @@ public class ConnectContext {
         return executor;
     }
 
+    public void clear() {
+        executor = null;
+        statementContext = null;
+    }
+
     public PlSqlOperation getPlSqlOperation() {
         if (plSqlOperation == null) {
             plSqlOperation = new PlSqlOperation();
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/qe/MysqlConnectProcessor.java 
b/fe/fe-core/src/main/java/org/apache/doris/qe/MysqlConnectProcessor.java
index db0eb848079..f5062ac3926 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/MysqlConnectProcessor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/MysqlConnectProcessor.java
@@ -283,6 +283,8 @@ public class MysqlConnectProcessor extends ConnectProcessor 
{
         finalizeCommand();
 
         ctx.setCommand(MysqlCommand.COM_SLEEP);
+        ctx.clear();
+        executor = null;
     }
 
     public void loop() {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to