[ https://issues.apache.org/jira/browse/HBASE-5924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13287582#comment-13287582 ]
nkeywal commented on HBASE-5924: -------------------------------- This leads to a complete rewriting of the processBatchCallback function. 3 comments: 1) I don't see how this piece of code can happen, and I ran the complete test suite without getting into this part. Do I miss anything? {noformat} for (Pair<Integer, Object> regionResult : regionResults) { if (regionResult == null) { // if the first/only record is 'null' the entire region failed. LOG.debug("Failures for region: " + Bytes.toStringBinary(regionName) + ", removing from cache"); } else { {noformat} 2) The callback is never used internally. Is this something we should keep for customer code? 3) Do I move it to HTable? There is a comment saying that it does not belong to Connection, and it's true. But it's public, so... > In the client code, don't wait for all the requests to be executed before > resubmitting a request in error. > ---------------------------------------------------------------------------------------------------------- > > Key: HBASE-5924 > URL: https://issues.apache.org/jira/browse/HBASE-5924 > Project: HBase > Issue Type: Improvement > Components: client > Affects Versions: 0.96.0 > Reporter: nkeywal > Assignee: nkeywal > Priority: Minor > > The client (in the function HConnectionManager#processBatchCallback) works in > two steps: > - make the requests > - collect the failures and successes and prepare for retry > It means that when there is an immediate error (region moved, split, dead > server, ...) we still wait for all the initial requests to be executed before > submitting again the failed request. If we have a scenario with all the > requests taking 5 seconds we have a final execution time of: 5 (initial > requests) + 1 (wait time) + 5 (final request) = 11s. > We could improve this by analyzing immediately the results. This would lead > us, for the scenario mentioned above, to 6 seconds. > So we could have a performance improvement of nearly 50% in many cases, and > much more than 50% if the request execution time is different. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira