hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Hsieh (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-5543) Add a keepalive option for IPC connections
Date Wed, 14 Mar 2012 19:50:39 GMT

    [ https://issues.apache.org/jira/browse/HBASE-5543?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13229551#comment-13229551

Jonathan Hsieh commented on HBASE-5543:

A straw man:

As a mechanism for dealing with long running rpcs, we could adding something similar to what
I understand Hadoop's Progressable class (the uuid could be a reference to this in a map or
something).  The coprocessor context would have a ref Progressable that the coprocessor would
have to periodically call to demonstrate progress.  If it isn't called for a while, it is
assumed to be hung.

This could possibly be wired into the hbase rpc mechanism also -- for HBase ServerCallables
on the server side, we might add a ref to a Progressable -- if a call is long running (like
a bulk call), calls to the progress() method might reset the rpc timeout counter.
> 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 output
> 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


View raw message