[hive] branch master updated: HIVE-27440: Improve data connector cache (#4418) (Butao Zhang, Reviewed by Akshat Mathur, Naveen Gangam, Sai Hemanth Gantasala)

2023-07-13 Thread gsaihemanth
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new f61efe666f0 HIVE-27440: Improve data connector cache (#4418) (Butao 
Zhang, Reviewed by Akshat Mathur, Naveen Gangam, Sai Hemanth Gantasala)
f61efe666f0 is described below

commit f61efe666f0e5432c87daeb0b8c6c5b4d2aeb47b
Author: Butao Zhang 
AuthorDate: Fri Jul 14 05:28:59 2023 +0800

HIVE-27440: Improve data connector cache (#4418) (Butao Zhang, Reviewed by 
Akshat Mathur, Naveen Gangam, Sai Hemanth Gantasala)
---
 .../apache/hadoop/hive/metastore/HMSHandler.java   |  2 +
 .../DataConnectorProviderFactory.java  | 68 +++---
 2 files changed, 49 insertions(+), 21 deletions(-)

diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
index e0cc6486676..a8f888f3a40 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java
@@ -1941,6 +1941,7 @@ public class HMSHandler extends FacebookBase implements 
IHMSHandler {
 
   ms.openTransaction();
   ms.alterDataConnector(dcName, newDC);
+  DataConnectorProviderFactory.invalidateDataConnectorFromCache(dcName);
 
 /*
 if (!transactionalListeners.isEmpty()) {
@@ -1999,6 +2000,7 @@ public class HMSHandler extends FacebookBase implements 
IHMSHandler {
 RawStore ms = getMS();
 try {
   connector = getMS().getDataConnector(dcName);
+  DataConnectorProviderFactory.invalidateDataConnectorFromCache(dcName);
 } catch (NoSuchObjectException e) {
   if (!ifNotExists) {
 throw new NoSuchObjectException("DataConnector " + dcName + " doesn't 
exist");
diff --git 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/DataConnectorProviderFactory.java
 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/DataConnectorProviderFactory.java
index a0cf8b50b78..6a24fb0f85d 100644
--- 
a/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/DataConnectorProviderFactory.java
+++ 
b/standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/dataconnector/DataConnectorProviderFactory.java
@@ -18,29 +18,53 @@
 
 package org.apache.hadoop.hive.metastore.dataconnector;
 
+import com.github.benmanes.caffeine.cache.Cache;
+import com.github.benmanes.caffeine.cache.Caffeine;
+import com.github.benmanes.caffeine.cache.RemovalCause;
+import com.github.benmanes.caffeine.cache.RemovalListener;
+import java.util.concurrent.TimeUnit;
 import org.apache.hadoop.hive.metastore.IHMSHandler;
 import org.apache.hadoop.hive.metastore.api.DataConnector;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.metastore.api.DatabaseType;
 import org.apache.hadoop.hive.metastore.api.MetaException;
 import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
+import org.checkerframework.checker.nullness.qual.NonNull;
+import org.checkerframework.checker.nullness.qual.Nullable;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import static 
org.apache.hadoop.hive.metastore.dataconnector.IDataConnectorProvider.*;
+import static 
org.apache.hadoop.hive.metastore.dataconnector.IDataConnectorProvider.DERBY_TYPE;
+import static 
org.apache.hadoop.hive.metastore.dataconnector.IDataConnectorProvider.MSSQL_TYPE;
+import static 
org.apache.hadoop.hive.metastore.dataconnector.IDataConnectorProvider.MYSQL_TYPE;
+import static 
org.apache.hadoop.hive.metastore.dataconnector.IDataConnectorProvider.ORACLE_TYPE;
+import static 
org.apache.hadoop.hive.metastore.dataconnector.IDataConnectorProvider.POSTGRES_TYPE;
 
 public class DataConnectorProviderFactory {
-  Logger LOG = LoggerFactory.getLogger(DataConnectorProviderFactory.class);
+  static final Logger LOG = 
LoggerFactory.getLogger(DataConnectorProviderFactory.class);
 
-  private static Map cache = null;
+  private static Cache dataConnectorCache = 
null;
   private static DataConnectorProviderFactory singleton = null;
   private static IHMSHandler hmsHandler = null;
 
+  private static class CacheRemoveListener implements RemovalListener {
+@Override
+public void onRemoval(@Nullable String dcName, @Nullable 
IDataConnectorProvider dataConnectorProvider,
+  @NonNull RemovalCause cause) {
+  try {
+LOG.info("Closing dataConnectorProvider :{}", dcName);
+dataConnectorProvider.close();
+  } catch 

[hive] branch master updated (bd02abc9eba -> 9da7488179e)

2023-07-13 Thread sankarh
This is an automated email from the ASF dual-hosted git repository.

sankarh pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


from bd02abc9eba HIVE-27482 - Minor issues in array_intersect udf (#4469) 
(Taraka Rama Rao Lethavadla, reviewed by Okumin, Attila Turoczy, Sai Hemanth 
Gantasala)
 add 9da7488179e HIVE-27501: Upgrade h2database version to 2.2.220 to fix 
CVE-2022-45868 (Diksha, reviewed by Aman Raj)

No new revisions were added by this update.

Summary of changes:
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)