[ 
https://issues.apache.org/jira/browse/HIVE-9582?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14380812#comment-14380812
 ] 

Sushanth Sowmyan commented on HIVE-9582:
----------------------------------------

I've gone through this patch, and am +1 on the intent of the .4.patch. It did 
not apply cleanly on trunk, however, so I've rebased the patch slightly to make 
it patch. I'm uploading the .5.patch to reflect this change so we can get one 
more unit test run complete with the latest patch.

That said, I do have one point of concern. Changing HCatUtil.getHiveClient to 
return IMetaStoreClient instead of a HMSC can potentially break oozie, falcon 
and sqoop compilation, not to mention other external user code that uses that 
method to get a HiveMetaStoreClient. I agree that it should have been IMSC all 
along, rather than HMSC, but it is now published interface.

We could solve this as follows:

a) create a new function getMetaStoreClient() which returns a IMSC. Change all 
code in HCat to refer to this function instead of the current getHiveClient()

b) retain the existing getHiveClient() and have it continue to return a HMSC, 
and mark it for deprecation in 2 releases - i.e. deprecated in 1.2, gone in 
1.3. I worried if this was possible given that you change the Cache class, but 
luckily, your underlying implementation of ICacheableMetaStoreClient is a 
CacheableHiveMetaStoreClient which is a HMSC, so this is still possible with 
minimal changes.

Once we do this, we should communicate to oozie/falcon/sqoop developers to 
change their usage of this function to the more generic one.

> HCatalog should use IMetaStoreClient interface
> ----------------------------------------------
>
>                 Key: HIVE-9582
>                 URL: https://issues.apache.org/jira/browse/HIVE-9582
>             Project: Hive
>          Issue Type: Sub-task
>          Components: HCatalog, Metastore
>    Affects Versions: 0.14.0, 0.13.1
>            Reporter: Thiruvel Thirumoolan
>            Assignee: Thiruvel Thirumoolan
>              Labels: hcatalog, metastore, rolling_upgrade
>         Attachments: HIVE-9582.1.patch, HIVE-9582.2.patch, HIVE-9582.3.patch, 
> HIVE-9582.4.patch, HIVE-9583.1.patch
>
>
> Hive uses IMetaStoreClient and it makes using RetryingMetaStoreClient easy. 
> Hence during a failure, the client retries and possibly succeeds. But 
> HCatalog has long been using HiveMetaStoreClient directly and hence failures 
> are costly, especially if they are during the commit stage of a job. Its also 
> not possible to do rolling upgrade of MetaStore Server.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to