[ 
https://issues.apache.org/jira/browse/HADOOP-2188?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12567163#action_12567163
 ] 

Hairong Kuang commented on HADOOP-2188:
---------------------------------------

Owen's proposal looks good. Here are a few things I plan to do at the client 
side:
1. Remove client.call.timeout from Configuration;
2. Connection thread waits for response with a timeout of 1 minute.
3. If it does not receive a response, it pings the server to detect server side 
failure. If failure is detected, mark all pending calls as done.
4. Remove ConnectionCuller thread. Instead Connection thread detects idle 
connection itself in waitForWork.
5. Application thread does not timeout checking for results. Instead it waits 
until a call is done;


> RPC should send a ping rather than use client timeouts
> ------------------------------------------------------
>
>                 Key: HADOOP-2188
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2188
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: dfs, ipc
>            Reporter: Owen O'Malley
>            Assignee: Hairong Kuang
>         Attachments: rpc-to.patch
>
>
> Current RPC (really IPC) relies on client side timeouts to find "dead" 
> sockets. I propose that we have a thread that once a minute (if the 
> connection has been idle) writes a "ping" message to the socket. The client 
> can detect a dead socket by the resulting error on the write, so no client 
> side timeout is required. Also note that the ipc server does not need to 
> respond to the ping, just discard it.

-- 
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