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