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

Liang Xie commented on HDFS-5776:
---------------------------------

bq. Can this scenario be possible? In hedgedFetchBlockByteRange, if we hit the 
timeout for the first DN, we will add the DN to the ignore list, and call 
chooseDataNode again. If the first DN is the only DN we can read, we will get 
IOException from bestNode. Then we will run into a loop where we keep trying to 
get another DN multiple times (some NN rpc call will even be fired). And during 
this process the first DN can even return the data. In this scenario I guess we 
may get a worse performance? Thus I guess we should not trigger hedged read if 
we find that we cannot (easily) find the second DN for read?
yes,there's possible happen about your case, nice! and a very easy handling 
method is just introduce a double-check function, say 
enoughNodesForHedgedRead(LocatedBlock block)  into the pread checking code 
branch

> Support 'hedged' reads in DFSClient
> -----------------------------------
>
>                 Key: HDFS-5776
>                 URL: https://issues.apache.org/jira/browse/HDFS-5776
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: hdfs-client
>    Affects Versions: 3.0.0
>            Reporter: Liang Xie
>            Assignee: Liang Xie
>         Attachments: HDFS-5776-v2.txt, HDFS-5776-v3.txt, HDFS-5776-v4.txt, 
> HDFS-5776-v5.txt, HDFS-5776-v6.txt, HDFS-5776-v7.txt, HDFS-5776.txt
>
>
> This is a placeholder of hdfs related stuff backport from 
> https://issues.apache.org/jira/browse/HBASE-7509
> The quorum read ability should be helpful especially to optimize read outliers
> we can utilize "dfs.dfsclient.quorum.read.threshold.millis" & 
> "dfs.dfsclient.quorum.read.threadpool.size" to enable/disable the hedged read 
> ability from client side(e.g. HBase), and by using DFSQuorumReadMetrics, we 
> could export the interested metric valus into client system(e.g. HBase's 
> regionserver metric).
> The core logic is in pread code path, we decide to goto the original 
> fetchBlockByteRange or the new introduced fetchBlockByteRangeSpeculative per 
> the above config items.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to