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

Viraj Jasani reassigned PHOENIX-6126:
-------------------------------------

    Assignee: Viraj Jasani

> All createViewAddChildLink requests will go to the same region of 
> SYSTEM.CHILD_LINK
> -----------------------------------------------------------------------------------
>
>                 Key: PHOENIX-6126
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6126
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 5.0.0, 4.15.0
>            Reporter: Chinmay Kulkarni
>            Assignee: Viraj Jasani
>            Priority: Minor
>             Fix For: 5.1.0, 4.16.0
>
>
> Currently, since there is no split policy defined for SYSTEM.CHILD_LINK, it 
> can split by default.
> If SYSTEM.CHILD_LINK does split, then when the client invokes 
> ConnectionQueryServices.childLinkMetaDataCoprocessorExec(), we always invoke 
> the endpoint on the first region that contains linking rows for that parent 
> (see 
> [this|https://github.com/apache/phoenix/blob/e3c7b4bdce2524eb4fd1e7eb0ccd3454fcca81ce/phoenix-core/src/main/java/org/apache/phoenix/query/ConnectionQueryServicesImpl.java#L1629]).
>  
> Thus, no matter which region would actually contain the parent→child link, 
> the first region is the one that has to always service the request and its RS 
> finally issues the mutation to the correct region. Note that the 
> mutateRowsWithLocks() call inside 
> [ChildLinkMetaDataEndpoint.createViewAddChildLink()|https://github.com/apache/phoenix/blob/e3c7b4bdce2524eb4fd1e7eb0ccd3454fcca81ce/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ChildLinkMetaDataEndpoint.java#L105]
>  doesn’t fail even if the region doesn’t contain that row since we pass in an 
> empty list for rowsToLock.
> During view creation, this request will lead to a Put of just 1 row and we 
> have all the information to be able to pass in the exact row key instead of 
> just the prefix (parent tenantId, parent schema, parent name). This should 
> distribute load to all regions of SYSTEM.CHILD_LINK.



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

Reply via email to