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

Samarth Jain updated PHOENIX-3994:
----------------------------------
    Attachment: PHOENIX-3994_addendum.patch

Addendum patch that fixes the test failures introduced in the previous patch. 
It also covers cases which the previous patch didn't cover. Summary of changes:

1) Disabled server side upsert select when source and destination tables are 
different across the board. See PHOENIX-4012 for explanation.
2) Introduced two new controller factories - 
InterRegionServerIndexRpcControllerFactory and 
InterRegionServerMetadataRpcControllerFactory (the names are a bit lengthy but 
I wanted to be explicit). 
InterRegionServerMetadataRpcControllerFactory  is used for setting the priority 
of remote RPC controls made to the region server hosting SYSTEM tables.
InterRegionServerIndexRpcControllerFactory is used by the Indexer coprocessor 
to set the priority of remote RPC calls to region servers hosting global 
mutable indexes.

For backwards compatibility, I have left the ServerRpcControllerFactory class. 
It now just extends the InterRegionServerMetadataRpcControllerFactory 

[~jamestaylor], please review. It would be good to get your eyes on it too, 
[~vincentpoon].

> Index RPC priority still depends on the controller factory property in 
> hbase-site.xml
> -------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3994
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3994
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.11.0
>            Reporter: Sergey Soldatov
>            Assignee: Samarth Jain
>            Priority: Critical
>             Fix For: 4.12.0, 4.11.1
>
>         Attachments: PHOENIX-3994_addendum.patch, PHOENIX-3994.patch, 
> PHOENIX-3994_v2.patch
>
>
> During PHOENIX-3360 we tried to remove dependency on 
> hbase.rpc.controllerfactory.class property in hbase-site.xml since it cause 
> problems on the client side (if client is using server side configuration, 
> all client request may go using index priority). Committed solution is using 
> setting the controller factory programmatically for coprocessor environment 
> in Indexer class, but it comes that this solution doesn't work because the 
> environment configuration is not used for the coprocessor connection 
> creation. We need to provide a better solution since this issue may cause 
> accidental locks and failures that hard to identify and avoid. 



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

Reply via email to