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

Phil Yang updated HBASE-16285:
------------------------------
    Attachment: HBASE-16285-v1.patch

Upload a patch which drops timeout requests at the start of CallRunner.run(). I 
think it is a simple but useful approach. With this patch we can recover much 
faster when a RS has been stuck for several seconds.

And there can be more complex improvement which we can do later, for example, 
aborting a request in the path of reading/writing to reduce the waste of 
resource.

> Drop RPC requests if it must be considered as timeout at client
> ---------------------------------------------------------------
>
>                 Key: HBASE-16285
>                 URL: https://issues.apache.org/jira/browse/HBASE-16285
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Phil Yang
>            Assignee: Phil Yang
>         Attachments: HBASE-16285-v1.patch
>
>
> After HBASE-15593, we have a timeout param in header of RPC requests. We can 
> use it in more scenes.
> A straightforward scene is to drop requests if it has waited so long in RPC 
> queue and has been dropped by client. Even if we handle this request and send 
> the response back, it will not be used any more. And client may have been 
> sent a retry. In an extreme case, if the server is slow, all requests may be 
> timeout or queue-full-exception because we should handle previous requests 
> which have been dropped by client and many resources at server are wasted.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to