hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zhihong Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5924) In the client code, don't wait for all the requests to be executed before resubmitting a request in error.
Date Tue, 05 Jun 2012 20:41:23 GMT

    [ https://issues.apache.org/jira/browse/HBASE-5924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13289703#comment-13289703

Zhihong Ted Yu commented on HBASE-5924:

Nice work.
    private static class Process<R> {
Can we name the above class more meaningfully ? javadoc is desirable.
       * @param sleepTime - sleep time befora actually executing the actions. Can be zero.
'befora' -> 'before'
       for (Action<R> aTodo : actionsList) {
aToDo -> anAction ?
          Callable<MultiResponse> callable = createDelayedCallable(sleepTime, e.getKey(),
          Triple<MultiAction<R>, HRegionLocation, Future<MultiResponse>>
p =
            new Triple<MultiAction<R>, HRegionLocation, Future<MultiResponse>>(e.getValue(),
e.getKey(), this.pool.submit(callable));
Wrap the two long lines above.
          throw new IllegalArgumentException(
            "argument results must be the same size as argument list");
It would be nice to include the sizes in exception message.

> 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
>         Attachments: 5924.v5.patch
> 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


View raw message