Liang Xie created HDFS-6286:
-------------------------------

             Summary: adding a timeout setting for local read io
                 Key: HDFS-6286
                 URL: https://issues.apache.org/jira/browse/HDFS-6286
             Project: Hadoop HDFS
          Issue Type: Improvement
          Components: hdfs-client
    Affects Versions: 2.4.0, 3.0.0
            Reporter: Liang Xie
            Assignee: Liang Xie


Currently, if a write or remote read requested into a sick disk, 
DFSClient.hdfsTimeout could help the caller have a guaranteed time cost to 
return back. but it doesn't work on local read. Take HBase scan for example,
DFSInputStream.read -> readWithStrategy -> readBuffer -> BlockReaderLocal.read 
->  dataIn.read -> FileChannelImpl.read
if it hits a bad disk, the low read io probably takes tens of seconds,  and 
what's worse is, the "DFSInputStream.read" hold a lock always.
Per my knowledge, there's no good mechanism to cancel a running read io(Please 
correct me if it's wrong), so my opinion is adding a future around the read 
request, and we could set a timeout there, if the threshold reached, we can add 
the local node into deadnode probably...
Any thought?



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

Reply via email to