Hi everyone,

This thread is to initiate a discussion on the removal of deprecated APIs
in the HMS thrift class. Any client including HiveMetastoreClient talks to
HiveMetaStore Server via the thrift layer. Over the past few years, the
thrift class is bloated with duplicated APIs with varying parameters
(function overloading) in the API definition. The reason why the APIs are
being deprecated is that the API might need an additional argument, so a
new API is added with an additional argument, and mark the old API as
deprecated.

I'm working on HIVE-26537 <https://issues.apache.org/jira/browse/HIVE-26537>
to clean up the code around the interaction between HiveMetaStoreClient and
HMS to not use the deprecated APIs (the HMS client will now be using
request-based APIs instead of APIs using individual arguments). Going
forward, using these request-based APIs is ideal as we can just add an
additional field to request object definition in the thrift class and API
remains unchanged. This would hopefully require minimal changes between
client and server interaction in the future.

I would like to hear the community member's opinions regarding the
deprecated APIs,
1) Keep the deprecated APIs for the 4.x release, HMSClient will use the
request-based APIs, So that would keep the older clients compatible with
the new HMS server.
2) Remove the deprecated APIs for the 4.x release. This would break
backward compatibility with the older clients but we have the opportunity
to clean up a lot of deprecated code. Since we are making a major release
after 5 years, I hope this incompatibility is acceptable.

Please let me know your thoughts.

Thanks,
Sai.

Reply via email to