From 47704941845e7c5b83fc85b41c3541226919cc88 Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Mon, 2 Sep 2024 16:25:54 +0800 Subject: [PATCH 1/2] [improvement](jdbc catalog)Optimize JDBC Catalog refresh to reduce frequent client creation. --- .../doris/datasource/jdbc/JdbcExternalCatalog.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java index 8f9bca79fcc37d..cbc2cd6ca1a2e7 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java @@ -101,11 +101,10 @@ public void checkProperties() throws DdlException { } @Override - public void onRefresh(boolean invalidCache) { - super.onRefresh(invalidCache); - if (jdbcClient != null) { - jdbcClient.closeClient(); - } + public void notifyPropertiesUpdated(Map updatedProps) { + super.notifyPropertiesUpdated(updatedProps); + this.onClose(); + initLocalObjectsImpl(); } @Override @@ -113,6 +112,7 @@ public void onClose() { super.onClose(); if (jdbcClient != null) { jdbcClient.closeClient(); + jdbcClient = null; } } @@ -205,6 +205,9 @@ public boolean isTestConnection() { @Override protected void initLocalObjectsImpl() { + if (jdbcClient != null) { + return; + } JdbcClientConfig jdbcClientConfig = new JdbcClientConfig() .setCatalog(this.name) .setUser(getJdbcUser()) From 9a284692e0469d423274e7d819f235bfe944e536 Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Mon, 2 Sep 2024 17:54:29 +0800 Subject: [PATCH 2/2] fix ut --- .../org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java | 1 - 1 file changed, 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java index cbc2cd6ca1a2e7..aabe9d140ee02c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java @@ -104,7 +104,6 @@ public void checkProperties() throws DdlException { public void notifyPropertiesUpdated(Map updatedProps) { super.notifyPropertiesUpdated(updatedProps); this.onClose(); - initLocalObjectsImpl(); } @Override