[ 
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.master.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.4.x.patch, PHOENIX-5920.master.patch, 
> PHOENIX-5920.patch, PHOENIX-5920.v1.patch, PHOENIX-5920.v2.patch, 
> PHOENIX-5920.v3.patch, PHOENIX-5920.v4.patch, PHOENIX-5920.v5.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)

Reply via email to