phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chinmay Kulkarni (Jira)" <j...@apache.org>
Subject [jira] [Updated] (PHOENIX-6035) Extend phoenix.allow.system.catalog.rollback to completely rollback changes introduced by Splittable SYSTEM.CATALOG
Date Wed, 22 Jul 2020 21:43:00 GMT

     [ 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)

Mime
View raw message