[
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