This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push:
new 4cb7122a897 [branch-2.1][fix](jdbc catalog) Fix Memory Leak by
Enabling Weak References in HikariCP (#39833)
4cb7122a897 is described below
commit 4cb7122a89713c08ea8693a3296586c89483c71c
Author: zy-kkk <[email protected]>
AuthorDate: Sat Aug 24 00:45:12 2024 +0800
[branch-2.1][fix](jdbc catalog) Fix Memory Leak by Enabling Weak References
in HikariCP (#39833)
pick(#39582)
---
.../src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java | 3 ++-
.../src/main/java/org/apache/doris/jdbc/JdbcDataSource.java | 6 ++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git
a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java
b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java
index d1cd0c9d33e..67a0cf5a636 100644
---
a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java
+++
b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/BaseJdbcExecutor.java
@@ -93,6 +93,7 @@ public abstract class BaseJdbcExecutor implements
JdbcExecutor {
.setConnectionPoolMaxLifeTime(request.connection_pool_max_life_time)
.setConnectionPoolKeepAlive(request.connection_pool_keep_alive);
JdbcDataSource.getDataSource().setCleanupInterval(request.connection_pool_cache_clear_time);
+ System.setProperty("com.zaxxer.hikari.useWeakReferences", "true");
init(config, request.statement);
this.jdbcDriverVersion = getJdbcDriverVersion();
}
@@ -308,7 +309,7 @@ public abstract class BaseJdbcExecutor implements
JdbcExecutor {
ds.setKeepaliveTime(config.getConnectionPoolMaxLifeTime() / 5L); // default 6
min
}
hikariDataSource = ds;
-
JdbcDataSource.getDataSource().putSource(hikariDataSourceKey, ds);
+
JdbcDataSource.getDataSource().putSource(hikariDataSourceKey, hikariDataSource);
LOG.info("JdbcClient set"
+ " ConnectionPoolMinSize = " +
config.getConnectionPoolMinSize()
+ ", ConnectionPoolMaxSize = " +
config.getConnectionPoolMaxSize()
diff --git
a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcDataSource.java
b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcDataSource.java
index 447566596a7..1aea763852f 100644
---
a/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcDataSource.java
+++
b/fe/be-java-extensions/jdbc-scanner/src/main/java/org/apache/doris/jdbc/JdbcDataSource.java
@@ -59,8 +59,10 @@ public class JdbcDataSource {
}
public void setCleanupInterval(long interval) {
- this.cleanupInterval = interval * 1000L;
- restartCleanupTask();
+ if (this.cleanupInterval != interval * 1000L) {
+ this.cleanupInterval = interval * 1000L;
+ restartCleanupTask();
+ }
}
private synchronized void restartCleanupTask() {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]