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

        

Reply via email to