phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samarth Jain (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-3974) Create index may issue a distributed dead lock due lack of handlers
Date Thu, 22 Jun 2017 22:01:00 GMT

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

Samarth Jain commented on PHOENIX-3974:
---------------------------------------

With 0.98 we noticed that we had to set both the RPCControllerFactory as well as the RPCSchedulerFactory
configs. See this:
https://issues.apache.org/jira/browse/PHOENIX-3360?focusedCommentId=15968697&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15968697

And +1 to what [~lhofhansl] suggested. Maybe the change should be here? 

{code}
if (upsertSelectTable != null) {
             isUpsert = true;
             projectedTable = deserializeTable(upsertSelectTable);
+            env.getConfiguration().setClass(RpcControllerFactory.CUSTOM_CONTROLLER_CONF_KEY,
ServerRpcControllerFactory.class,
+                RpcControllerFactory.class);
             targetHTable = new HTable(env.getConfiguration(), projectedTable.getPhysicalName().getBytes());
             selectExpressions = deserializeExpressions(scan.getAttribute(BaseScannerRegionObserver.UPSERT_SELECT_EXPRS));
             values = new byte[projectedTable.getPKColumns().size()][];
{code}



> Create index may issue a distributed dead lock due lack of handlers
> -------------------------------------------------------------------
>
>                 Key: PHOENIX-3974
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3974
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.11.0
>            Reporter: Sergey Soldatov
>            Assignee: Sergey Soldatov
>         Attachments: PHOENIX-3974.patch
>
>
> In PHOENIX-3360 we were trying to avoid using index rpc on client side, setting controller
manually in Indexer.  But after we moved index creating to server side there is another set
of RS-RS communication that comes from UngroupedAggregateRegionObserver with regular priority.
That may cause distributed dead lock when all handlers are occupied by index create scanners
for user table and inside they are trying to send index updates. To prevent it we need to
set controller in UngroupedAggregateRegionObserver in the similar way like we did in Indexer.




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

Mime
View raw message