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

Chinmay Kulkarni updated PHOENIX-6086:
--------------------------------------
    Description: 
Currently we only take a snapshot of SYSTEM.CATALOG before attempting to 
upgrade it (see 
[this|https://github.com/apache/phoenix/blob/1922895dfe5960dc025709b04acfaf974d3959dc/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3718]).
 From 4.15 onwards we also store critical metadata information in other SYSTEM 
tables like SYSTEM.CHILD_LINK, so it is beneficial to also snapshot those 
tables before upgrading them henceforth.

We also currently don't take a snapshot of SYSTEM.CATALOG on receiving an 
[UpgradeRequiredException|https://github.com/apache/phoenix/blob/1922895dfe5960dc025709b04acfaf974d3959dc/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3685-L3707]
 which we should do.

In case of any errors during the upgrade, we restore SYSTEM.CATALOG from this 
snapshot and we should extend this to all tables. In cases where the table 
didn't exist before the upgrade, we need to ensure it is dropped so that a 
subsequent upgrade attempt can start afresh.

  was:
Currently we only take a snapshot of SYSTEM.CATALOG before attempting to 
upgrade it (see 
[this|https://github.com/apache/phoenix/blob/1922895dfe5960dc025709b04acfaf974d3959dc/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3718]).
 From 4.15 onwards we also store critical metadata information in other SYSTEM 
tables like SYSTEM.CHILD_LINK, so it is beneficial to also snapshot those 
tables before upgrading them henceforth.

We also currently don't take a snapshot of SYSTEM.CATALOG on receiving an 
[UpgradeRequiredException|https://github.com/apache/phoenix/blob/1922895dfe5960dc025709b04acfaf974d3959dc/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3685-L3707]
 which we should do.


> Take a snapshot of all SYSTEM tables before attempting to upgrade them
> ----------------------------------------------------------------------
>
>                 Key: PHOENIX-6086
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6086
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.0.0, 4.15.0
>            Reporter: Chinmay Kulkarni
>            Priority: Major
>             Fix For: 5.1.0, 4.16.0
>
>
> Currently we only take a snapshot of SYSTEM.CATALOG before attempting to 
> upgrade it (see 
> [this|https://github.com/apache/phoenix/blob/1922895dfe5960dc025709b04acfaf974d3959dc/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3718]).
>  From 4.15 onwards we also store critical metadata information in other 
> SYSTEM tables like SYSTEM.CHILD_LINK, so it is beneficial to also snapshot 
> those tables before upgrading them henceforth.
> We also currently don't take a snapshot of SYSTEM.CATALOG on receiving an 
> [UpgradeRequiredException|https://github.com/apache/phoenix/blob/1922895dfe5960dc025709b04acfaf974d3959dc/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L3685-L3707]
>  which we should do.
> In case of any errors during the upgrade, we restore SYSTEM.CATALOG from this 
> snapshot and we should extend this to all tables. In cases where the table 
> didn't exist before the upgrade, we need to ensure it is dropped so that a 
> subsequent upgrade attempt can start afresh.



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

Reply via email to