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