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

Colin Patrick McCabe commented on HDFS-6755:
--------------------------------------------

Ah.  I misinterpreted your description.  I thought you wanted to get rid of the 
sleep completely.  But you only wanted to get rid of it for the case that we 
are not going to retry the connection to the NameNode.

+1 for the patch, pending jenkins.

> Make DFSOutputStream more efficient
> -----------------------------------
>
>                 Key: HDFS-6755
>                 URL: https://issues.apache.org/jira/browse/HDFS-6755
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>    Affects Versions: 2.6.0
>            Reporter: Mit Desai
>            Assignee: Mit Desai
>         Attachments: HDFS-6755.patch
>
>
> Following code in DFSOutputStream may have an unnecessary sleep.
> {code}
> try {
>           Thread.sleep(localTimeout);
>           if (retries == 0) {
>             throw new IOException("Unable to close file because the last 
> block"
>                 + " does not have enough number of replicas.");
>           }
>           retries--;
>           localTimeout *= 2;
>           if (Time.now() - localstart > 5000) {
>             DFSClient.LOG.info("Could not complete " + src + " retrying...");
>           }
>         } catch (InterruptedException ie) {
>           DFSClient.LOG.warn("Caught exception ", ie);
>         }
> {code}
> Currently, the code sleeps before throwing an exception which should not be 
> the case.
> The sleep time gets doubled on every iteration, which can make a significant 
> effect if there are more than one iterations and it would sleep just to throw 
> an exception. We need to move the sleep down after decrementing retries.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to