[
https://issues.apache.org/jira/browse/HDFS-1323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13044678#comment-13044678
]
Todd Lipcon commented on HDFS-1323:
-----------------------------------
Some thoughts on the patch while I was updating it:
- The ReadChannelPool class needs to have some updated javadoc explaining what
exactly it does.
- The synchronization isn't entirely clear within the class - looks like some
things are both using the rwlock and concurrent collections, which always makes
me suspicious
- it probably makes more sense for this to be a least-recently-used cache
rather than least-recently-created
- not clear why we have a high-water and low-water mark, instead of just a
single limit, where we close exactly one channel if we exceed the limit.
- should be a conf to completely take the cache out of the loop
> Pool/share file channels for HDFS read
> --------------------------------------
>
> Key: HDFS-1323
> URL: https://issues.apache.org/jira/browse/HDFS-1323
> Project: Hadoop HDFS
> Issue Type: Improvement
> Components: data-node
> Reporter: Jay Booth
> Attachments: hdfs-1323-20100730.patch, hdfs-1323-trunk.txt
>
>
> Currently, all reads in HDFS require opening and closing the underlying
> block/meta filechannels. We could pool these filechannels and save some
> system calls and other work. Since HDFS read requests can be satisfied by
> positioned reads and transferTos, we can even share these filechannels
> between concurrently executing requests.
> The attached patch was benchmarked as part of work on HDFS-918 and exhibited
> a 10% performance increase for small random reads.
> This does not affect client logic and involves minimal change to server
> logic. Patch is based on branch 20-append.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira