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

stack commented on HBASE-5543:
------------------------------

Yeah, it looks like its inevitable that we'll ask the server to do legitimate 
stuff that will take longer than the rpctimeout yet the server is making 
headway: e.g. the reproducing test case, though a little artificial, for 
"HBASE-4890  fix possible NPE in HConnectionManager" was asking the 
regionserver to open 3k regions.

If its a task like the above, there should be a facility for telling client 
we're alive still or we should just refuse the request because it will take too 
long (The latter we need to do toooo -- from Benoiit.  If server is going to 
take too long servicing a request, so long the client will be gone by the time 
its done its work, then refuse the request... don't do the increment or update 
that the updating client will not be around to see).
                
> 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

        

Reply via email to