Soumyakanti Das created HIVE-28094:
--------------------------------------
Summary: Improve HMS client and query caching performance for
getTableInternal
Key: HIVE-28094
URL: https://issues.apache.org/jira/browse/HIVE-28094
Project: Hive
Issue Type: Improvement
Components: Hive
Affects Versions: 4.0.0-beta-1
Reporter: Soumyakanti Das
Assignee: Soumyakanti Das
Currently we cache calls to {{getTableInternal}} method in HMS client cache and
query cache. We also cache table ids in the query cache, but not in the HMS
client cache.
To cache {{{}getTableInternal{}}}, we create a CacheKey containing the
{{GetTableRequest}} object. However, we do not check if all the necessary
fields are set in the key. This results in a lot of cache misses, especially
because we rely on {{validWriteIdList}} not being null and {{tableId}} not
being -1. {{GetTableRequest}} object also contains `catName` which is not
always set. All these things result in creating duplicate keys and not using
the caches efficiently.
Moreover, {{getTableInternal}} is called from other APIs that are getting
cached, e.g. {{getPartitionsByExprInternal}}, so improvements in its
performance will positively affect other APIs too.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)