[
https://issues.apache.org/jira/browse/HIVE-29073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18007850#comment-18007850
]
Raghav Aggarwal commented on HIVE-29073:
----------------------------------------
[~zhangbutao] , thanks for looking into this. We'll not set metaconf everytime,
instead whenever metaStoreClient is null i.e. a new connection is made, at that
moment setMetaConf will be invoked. That's the appraoch I've taken.
> Overlay modified session level metaconf to new hmsclient connection
> -------------------------------------------------------------------
>
> Key: HIVE-29073
> URL: https://issues.apache.org/jira/browse/HIVE-29073
> Project: Hive
> Issue Type: Improvement
> Reporter: Raghav Aggarwal
> Assignee: Raghav Aggarwal
> Priority: Major
> Attachments: HIVE-29073.pdf, WIP-HIVE-29073.patch
>
>
> Scenario steps:
> {code:java}
> 1. Create a beeline session and modify metaconf like following (for example):
> set metaconf:metastore.try.direct.sql=false;
> set metaconf:metastore.partition.name.whitelist.pattern=[^9]*;
> 2. Restart HMS keeping the beeline session same.
> 3. Run some queries which leverages the modified metaConf, the sessions level
> modified metaconf are not honoured (observation){code}
>
> In SetProcessor.java, for metaconf's, SessionState is not updated.
> setMetaConf() is called which calls HMSHandler#setMetaConf and updates
> HMSHandlerContext which is ThreadLocal.
> SessionState should store modified metaconf in a map, similar to
> SessionState#overriddenConfigurations which currently stores only HS2 level
> configs.
> {*}From user perspective{*}, if the configs are set on beeline, it shouldn't
> matter to them, if HMS crashes and restarted or the HMS call (get_table etc)
> goes to another HMS (if more than 1 HMS are present), it should honour the
> session level modified conf. The new hmsclient connection should pass the
> metaConf to HMSHandler.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)