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

Brandon Li commented on HDFS-2533:
----------------------------------

Just noticed that this JIRA is interesting. Basically it moves File.exists() 
call out of the lock and it could make non-trivial performance improvement. 
Depends on the workload, the cost of File.exists() call can be variant and thus 
the gain of this patch. 

Here is a discussion of the cost of File.exists(): 
http://stackoverflow.com/questions/6321180/how-expensive-is-file-exists-in-java

I did a test on my laptop(Darwin Kernel Version 11.3.0). For a non-exist file, 
the first check took 30ms.

Uploaded a patch for branch-1.
                
> Remove needless synchronization on FSDataSet.getBlockFile
> ---------------------------------------------------------
>
>                 Key: HDFS-2533
>                 URL: https://issues.apache.org/jira/browse/HDFS-2533
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: data-node, performance
>    Affects Versions: 0.23.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>            Priority: Minor
>             Fix For: 0.24.0, 0.23.1
>
>         Attachments: HDFS-2533.branch-1.patch, hdfs-2533.txt, hdfs-2533.txt
>
>
> HDFS-1148 discusses lock contention issues in FSDataset. It provides a more 
> comprehensive fix, converting it all to RWLocks, etc. This JIRA is for one 
> very specific fix which gives a decent performance improvement for 
> TestParallelRead: getBlockFile() currently holds the lock which is completely 
> unnecessary.

--
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