[ 
https://issues.apache.org/jira/browse/PHOENIX-4229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16199755#comment-16199755
 ] 

Geoffrey Jacoby commented on PHOENIX-4229:
------------------------------------------

[~jamestaylor] - SystemCatalogWALEntryFilter's job is to allow replication of 
System.Catalog to be safely turned on. It keeps all edits to System.Catalog 
from being replicated *except* those involving tenant views. Table creation 
doesn't get replicated; global view creation doesn't get replicated. Tenant 
view creation does. 

Before PHOENIX-2051, this was easy. If you just looked at the tenant_id of the 
row key of every edit to System.Catalog, you could filter out those with a 
tenant_id of null, and let replicate those with a tenant_id of anything else. 

PHOENIX-2051 introduced parent-child links as an extra row of metadata 
associated with a tenant-view _but not necessarily owned by the view's tenant_. 
This broke SystemCatalogWALEntryFilter's logic, because that parent-child link 
would be mistakenly filtered out when it should be replicated, in the case of a 
tenant view on a table or global view.

This JIRA expands the SystemCatalogWALEntryFilter's criteria to also replicate 
parent-child links pointing to tenant-owned views.  

> Parent-Child linking rows in System.Catalog break tenant view replication
> -------------------------------------------------------------------------
>
>                 Key: PHOENIX-4229
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4229
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.11.0, 4.12.0
>            Reporter: Geoffrey Jacoby
>            Assignee: Geoffrey Jacoby
>             Fix For: 4.13.0
>
>         Attachments: PHOENIX-4229-v2.patch, PHOENIX-4229.patch
>
>
> PHOENIX-2051 introduced new Parent-Child linking rows to System.Catalog that 
> speed up view deletion. Unfortunately, this breaks assumptions in 
> PHOENIX-3639, which gives a way to replicate tenant views from one cluster to 
> another. (It assumes that all the metadata for a tenant view is owned by the 
> tenant -- the linking rows are not.) 
> PHOENIX-3639 was a workaround in the first place to the more fundamental 
> design problem that Phoenix places the metadata for both table schemas -- 
> which should never be replicated -- in the same table and column family as 
> the metadata for tenant views, which should be replicated. 
> Note that the linking rows also make it more difficult to ever split these 
> two datasets apart, as proposed in PHOENIX-3520.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to