[
https://issues.apache.org/jira/browse/PHOENIX-4579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17116974#comment-17116974
]
Neha Gupta commented on PHOENIX-4579:
-------------------------------------
Phoenix checks upgrade path even if client has set "DoNotUpgrade" config. When
HMaster failover happens and Phoenix client creating phoenix connection, we get
exception "org.apache.hadoop.hbase.PleaseHoldException: Master is initializing"
because phoenix calls HBase admin apis to check if SYSTEM tables are in place
and does not require an upgrade.
[CQSI.init()|https://github.com/apache/phoenix/blob/aad583670ea821286ab5e2460ce0ab7255d474c4/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3169]
initiates creating systems table and
[CQSI.ensureTableCreated|https://github.com/apache/phoenix/blob/aad583670ea821286ab5e2460ce0ab7255d474c4/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1246]
is checking if SYTEM table requires upgrade and calls hbaseAdminApis to
perform this operation which fails if HMaster is not running. Can we honor the
"DoNotUpgrade" config by client(By making an assumption that SYSTEM table is
already up-to-date and phoenix client shouldn't perform any upgrades) and skip
this upgrade checks ?
EnsureTableCreated performs bunch of client-server compatibility checks like:
1.SYSTEM.CATALOG exists and its timestamp < MIN_SYSTEM_TABLE_TIMESTAMP
2.SYSTEM.CATALOG exists, but client and server-side namespace mapping is
enabled so we need to migrate SYSTEM tables to the SYSTEM namespace
3.When an end-user uses the vanilla PhoenixDriver to create a connection and a
requirement for upgrade is detected. In this case, the user should get a
connection on which they are only able to run "EXECUTE UPGRADE".
WDYT [~ckulkarni] [~swaroopa] [~jisaac] [~mujtabachohan] [~sukumaddineni]
[~kadir] [~gjacoby] [~abhishek.chouhan] [~dwong] ?
> Add a config to conditionally create Phoenix meta tables on first client
> connection
> -----------------------------------------------------------------------------------
>
> Key: PHOENIX-4579
> URL: https://issues.apache.org/jira/browse/PHOENIX-4579
> Project: Phoenix
> Issue Type: New Feature
> Reporter: Mujtaba Chohan
> Assignee: Chinmay Kulkarni
> Priority: Major
> Fix For: 4.14.0, 5.0.0
>
> Attachments: PHOENIX-4579.patch
>
>
> Currently we create/modify Phoenix meta tables on first client connection.
> Adding a property to make it configurable (with default true as it is
> currently implemented).
> With this property set to false, it will avoid lockstep upgrade requirement
> for all clients when changing meta properties using PHOENIX-4575 as this
> property can be flipped back on once all the clients are upgraded.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)