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

Chinmay Kulkarni updated PHOENIX-6035:
--------------------------------------
    Description: 
Currently, https://issues.apache.org/jira/browse/PHOENIX-3534 just makes sure 
that SYSTEM.CATALOG does not split and continues writing parent column metadata 
with view metadata. Clients that want 4.15/4.x features without needing 
SYSTEM.CATALOG to be splittable can already just provide 
phoenix.system.catalog.splittable=false. We should extend the 
phoenix.allow.system.catalog.rollback config so that when it is true, it will 
include the following:

* Continue writing parent->child links to SYSTEM.CATALOG instead of using 
SYSTEM.CHILD_LINK
* Not use SYSTEM.TASK for dropping child views but directly issue the drop view 
commands since SYSTEM.CATALOG is on a single region anyways
* In the upgrade path for 4.16, if this config is on, we will have to reliably 
also do the following:
# Move all parent->child links from SYSTEM.CHILD_LINK to SYSTEM.CATALOG
# Clean the SYSTEM.TASK table and execute all unscheduled DropChildViewsTask 
tasks

Basically, for a 4.15 client with phoenix.allow.system.catalog.rollback=true, 
at the end of their upgrade to 4.16, the SYSTEM.CHILD_LINK table should be 
empty and unused henceforth and the SYSTEM.TASK table should not contain any 
DropChildViewsTask tasks and should be unused for the purpose of DROP 
TABLE/VIEW <parent table/view name> CASCADE DDLs henceforth.

  was:
Currently, phoenix.allow.system.catalog.rollback=true just makes sure that 
SYSTEM.CATALOG does not split and continues writing parent column metadata with 
view metadata. Clients that want 4.15/4.x features without needing 
SYSTEM.CATALOG to be splittable can already just provide 
phoenix.system.catalog.splittable=false. We should extend the 
phoenix.allow.system.catalog.rollback config so that when it is true, it will 
include the following:

* Continue writing parent->child links to SYSTEM.CATALOG instead of using 
SYSTEM.CHILD_LINK
* Not use SYSTEM.TASK for dropping child views but directly issue the drop view 
commands since SYSTEM.CATALOG is on a single region anyways
* In the upgrade path for 4.16, if this config is on, we will have to reliably 
also do the following:
# Move all parent->child links from SYSTEM.CHILD_LINK to SYSTEM.CATALOG
# Clean the SYSTEM.TASK table and execute all unscheduled tasks


> Extend phoenix.allow.system.catalog.rollback to completely rollback changes 
> introduced by Splittable SYSTEM.CATALOG
> -------------------------------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-6035
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6035
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.0.0, 4.15.0
>            Reporter: Chinmay Kulkarni
>            Priority: Critical
>             Fix For: 5.1.0, 4.16.0
>
>
> Currently, https://issues.apache.org/jira/browse/PHOENIX-3534 just makes sure 
> that SYSTEM.CATALOG does not split and continues writing parent column 
> metadata with view metadata. Clients that want 4.15/4.x features without 
> needing SYSTEM.CATALOG to be splittable can already just provide 
> phoenix.system.catalog.splittable=false. We should extend the 
> phoenix.allow.system.catalog.rollback config so that when it is true, it will 
> include the following:
> * Continue writing parent->child links to SYSTEM.CATALOG instead of using 
> SYSTEM.CHILD_LINK
> * Not use SYSTEM.TASK for dropping child views but directly issue the drop 
> view commands since SYSTEM.CATALOG is on a single region anyways
> * In the upgrade path for 4.16, if this config is on, we will have to 
> reliably also do the following:
> # Move all parent->child links from SYSTEM.CHILD_LINK to SYSTEM.CATALOG
> # Clean the SYSTEM.TASK table and execute all unscheduled DropChildViewsTask 
> tasks
> Basically, for a 4.15 client with phoenix.allow.system.catalog.rollback=true, 
> at the end of their upgrade to 4.16, the SYSTEM.CHILD_LINK table should be 
> empty and unused henceforth and the SYSTEM.TASK table should not contain any 
> DropChildViewsTask tasks and should be unused for the purpose of DROP 
> TABLE/VIEW <parent table/view name> CASCADE DDLs henceforth.



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

Reply via email to