[
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)