Add a keepalive option for IPC connections
------------------------------------------
Key: HBASE-5543
URL: https://issues.apache.org/jira/browse/HBASE-5543
Project: HBase
Issue Type: Improvement
Components: client, coprocessors, ipc
Reporter: Andrew Purtell
On the user list someone wrote in with a connection failure due to a long
running coprocessor:
{quote}
On Wed, Mar 7, 2012 at 10:59 PM, raghavendhra rahul wrote:
2012-03-08 12:03:09,475 WARN org.apache.hadoop.ipc.HBaseServer: IPC Server
Responder, call execCoprocessor([B@50cb21, getProjection(), rpc version=1,
client version=0, methodsFingerPrint=0), rpc version=1, client version=29,
methodsFingerPrint=54742778 from 10.184.17.26:46472: output error
2012-03-08 12:03:09,476 WARN org.apache.hadoop.ipc.HBaseServer: IPC Server
handler 7 on 60020 caught: java.nio.channels.ClosedChannelException
{quote}
I suggested in response we might consider give our RPC a keepalive option for
calls that may run for a long time (like execCoprocessor).
LarsH +1ed the idea:
{quote}
+1 on "keepalive". It's a shame (especially for long running server code) to do
all the work, just to find out at the end that the client has given up.
Or maybe there should be a way to cancel an operation if the clients decides it
does not want to wait any longer (PostgreSQL does that for example). Here that
would mean the server would need to check periodically and coprocessors would
need to be written to support that - so maybe that's no-starter.
{quote}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira