[ https://issues.apache.org/jira/browse/HBASE-10942?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13993680#comment-13993680 ]
Nicolas Liochon commented on HBASE-10942: ----------------------------------------- Unrelated to this patch, but related to multiget & replica {code} In AsyncProcess#receiveGlobalFailure if (firstAction) { // <============== always false firstAction = false; isReplica = !RegionReplicaUtil.isDefaultReplica(action.getReplicaId()); } // [...] // isReplica is always false here if (toReplay.isEmpty()) { logNoResubmit(server, numAttempt, rsActions.size(), t, isReplica, failed, stopped); } else { resubmit(server, toReplay, numAttempt, rsActions.size(), t, isReplica, selfTi); } {code} {code} AsyncProcess#receiveMultiAction Same as AsyncProcess#receiveGlobalFailure {code} Nits: bq. if (0 == ti.actionCount) { yoda style spotted :-) bq. if (e instanceof InterruptedIOException && (validateInterrupt() == null)) return; Either it's very smart, either it's wrong, as a SocketTimeoutException is a IIOE. ExceptionUtil contains a method to check a Throwable. bq. // If we use interruption, we'll have to pre-create the syncronization structure Typo on syncronization bq. validateInterrupt I don't really understand what this method is doing. Some comments would be great. bq. private void groupAndSendMultiAction(List<Action<Row>> currentActions, int numAttempt, ThreadInfo selfTi) { The javadoc should be updated here. Not nit: I think that useInterrupt should not be an option. It doubles the test cases, and it's not consistent with the simple get code. The code is quite complex. Removing useInterruption will make it a little simpler. I'm not sure it will be enough to make it reasonably easy to understand.... There is as well some confusion between the Threads and and the future: we're cancelling tasks, not killing threads. I tend to think that it would be easier to read with a specific CompletionService? > support parallel request cancellation for multi-get > --------------------------------------------------- > > Key: HBASE-10942 > URL: https://issues.apache.org/jira/browse/HBASE-10942 > Project: HBase > Issue Type: Sub-task > Reporter: Sergey Shelukhin > Assignee: Sergey Shelukhin > Fix For: hbase-10070 > > Attachments: HBASE-10942.01.patch, HBASE-10942.patch > > -- This message was sent by Atlassian JIRA (v6.2#6252)