okumin commented on PR #4444:
URL: https://github.com/apache/hive/pull/4444#issuecomment-1612793303

   @ganeshashree Thanks! I think this point is still a bit controversial.
   
   > I vote for users to specify an implementation of IMetaStoreClient via 
HiveConf and use that in SessionHiveMetastoreClient instead of specifying a 
factory class
   
   As the third author of this patch, to be honest, I currently prefer to keep 
the current design using a factory class for the following reasons.
   
   - Is it really useful to always add traits of `RetryingMetaStoreClient`, 
`SessionHiveMetastoreClient`, and `HiveMetaStoreClientWithLocalCache`?
       - `RetryingMetaStoreClient` is meaningless or even harmful to a custom 
client since it is coupled with Thrift or Kerberos. I am not 100% sure the 
features of `SessionHiveMetastoreClient` will never conflict with all custom 
clients now or in the future. `HiveMetaStoreClientWithLocalCache` seems to be 
tightly coupled with `HiveMetaStoreClient`. The design using a factory class 
can enable us to handle any situation since users can decorate their custom 
clients as they like
   - Who is the target users we help?
       - Existing users historically have depended on the current design for 
years. If we adopt a new design, they have to maintain the unmerge patch. 
Otherwise, they have to ask their customers to take action on Hive 4 upgrade. 
Of course, we can choose the best way for not existing users but new users. I 
believe existing users have backported the unreviewed patch on their own 
responsibility
   
   Anyway, I hope we agree with the following points.
   - Some of us are really willing to have a feature to replace 
`IMetaStoreClient` as we see many watchers on 
[HIVE-12679](https://issues.apache.org/jira/browse/HIVE-12679)
   - It seems to be useful if we can reuse traits of 
`SessionHiveMetastoreClient`. I started working on it on 
[HIVE-27473](https://issues.apache.org/jira/browse/HIVE-27473)
   
   As for if we should configure our custom clients via a factory or not, I 
would also say it is finally up to the community members. Sorry for my long 
opinions 🙇 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to