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]