[ 
https://issues.apache.org/jira/browse/HADOOP-6768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiao Kang updated HADOOP-6768:
------------------------------

    Attachment: HADOOP-6768.patch

patch attached.

A. change org.apache.hadoop.ipc.Client

1. add call.setException(e) when sendParam() got IOException to set call.done 
to avoid current call wait receiveResponse() thread.

2. interrupt receiveResponse() thread to cleanup other calls on this connection



B. test case for it 

> RPC client can response more efficiently when sendParam() got IOException
> -------------------------------------------------------------------------
>
>                 Key: HADOOP-6768
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6768
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: ipc
>    Affects Versions: 0.22.0
>            Reporter: Xiao Kang
>             Fix For: 0.22.0
>
>         Attachments: HADOOP-6768.patch
>
>
> Under current RPC client implementation, when Client.Connection.sendParam() 
> encounters IOException it just marks the exception and wait receiveResponse() 
> thread to handle the exception. However, receiveResponse() may block 
> ipc.ping.interval on socket read(). 
> This means that RPC client may wait ipc.ping.interval(typically 1 miniute) 
> when exception in sendParam().
> It maybe not so reasonable in some situation. For example using "hadoop fs 
> -put " a small file, DFSClient.close() will interupt renewLease() thread and 
> it may wait 1 minute.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to