phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Neha Gupta (Jira)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-5920) Skip SYSTEM TABLE checks while creating phoenix connection if client has set the DoNotUpgrade config
Date Thu, 04 Jun 2020 18:05:00 GMT

     [ https://issues.apache.org/jira/browse/PHOENIX-5920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Neha Gupta updated PHOENIX-5920:
--------------------------------
    Attachment: PHOENIX-5920.v3.patch

> Skip SYSTEM TABLE checks while creating phoenix connection if client has set the DoNotUpgrade
config
> ----------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-5920
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5920
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0, 4.15.0, 4.14.3
>            Reporter: Neha Gupta
>            Assignee: Neha Gupta
>            Priority: Major
>             Fix For: 5.1.0, 4.16.0
>
>         Attachments: PHOENIX-5920.patch, PHOENIX-5920.v1.patch, PHOENIX-5920.v2.patch,
PHOENIX-5920.v3.patch
>
>          Time Spent: 2h
>  Remaining Estimate: 0h
>
> 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".



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message