Chinmay Kulkarni created PHOENIX-6127:
-----------------------------------------
Summary: Prevent unnecessary HBase Admin API calls in
ViewUtil.getSystemTableForChildLinks() and act lazily instead
Key: PHOENIX-6127
URL: https://issues.apache.org/jira/browse/PHOENIX-6127
Project: Phoenix
Issue Type: Improvement
Affects Versions: 4.15.0, 5.0.0
Reporter: Chinmay Kulkarni
Fix For: 5.1.0, 4.16.0
In order to handle the case of older clients connecting to a 4.16 cluster that
has old metadata (no SYSTEM.CHILD_LINK table yet), we call
ViewUtil.getSystemTableForChildLinks() to figure out whether to use
SYSTEM.CHILD_LINK or SYSTEM.CATALOG to look up parent->child linking rows.
Here we do HBase table existence checks using HBase admin APIs (see
[this|https://github.com/apache/phoenix/blob/e3c7b4bdce2524eb4fd1e7eb0ccd3454fcca81ce/phoenix-core/src/main/java/org/apache/phoenix/util/ViewUtil.java#L265-L269])
which can be avoided. In almost all cases once we've called this API, we later
go on and retrieve the Table object anyhow so we can instead try to always get
the SYSTEM.CHILD_LINK table and if that fails, try to get SYSTEM.CATALOG. This
will avoid additional admin API calls.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)