[
https://issues.apache.org/jira/browse/HIVE-27440?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HIVE-27440:
----------------------------------
Labels: pull-request-available (was: )
> Improve data connector cache
> ----------------------------
>
> Key: HIVE-27440
> URL: https://issues.apache.org/jira/browse/HIVE-27440
> Project: Hive
> Issue Type: Sub-task
> Reporter: zhangbutao
> Assignee: zhangbutao
> Priority: Major
> Labels: pull-request-available
>
> _*DataConnectorProviderFactory*_ uses HashMap to cache data connector
> instances, and there is no way to invalidate the cache unless you restart the
> MetaStore.
> What is more serious is that if you drop or alter the dataconnector, the
> cache will not change, and you maybe use a invalid dataconnector next time.
>
> I think we can improve the dataconnector cache from the two aspects:
> * Use Caffeine with a *maxmumsize* e.g. 100 to cache data connector instead
> of HashMap, and set a *expire time* after the last accessing. And we also
> should close the underlying datasource connection using {*}Caffeine
> RemovalListener{*}.
> * After executing Drop or Alter DDL on a dataConnector, we should *update
> cache* to clean the dataConnector to avoid using the invalid dataConnector
> next time.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)